Playground
Latihan web development lewat permainan singkat. Kamu menulis kode dan langsung melihat hasilnya, tanpa perlu daftar akun.
46 playground ditampilkan
CSS Grid · 10 level
Sawah Grid
Tanam padi di petak yang tepat dengan menulis CSS Grid. Bertahap dari grid-column-start sampai justify-self.
Main Sawah GridCanvas API · 10 level
Pelukis Pixel
Gambar ulang bendera, rumah, sampai papan catur dengan JavaScript dan Canvas API. Bertahap dari fillRect sampai perulangan for.
Main Pelukis PixelCSS selector · 11 level
Selektor Sniper
Bidik buah di meja dengan selector CSS. Bertahap dari nama tag sampai :not() dan gabungan selector.
Main Selektor Sniperasync JavaScript · 10 level
Event Loop Warung
Tebak urutan output console dari kode async. Mulai dari setTimeout sampai Promise dan await, dengan kasir dan dua antrean warung sebagai pegangan.
Main Event Loop WarungCSS box model · 10 level
Box Model Bengkel
Rakit kotak pesanan dengan width, padding, border, dan margin. Bertahap sampai margin collapse, box-sizing, dan margin auto.
Main Box Model Bengkelregular expression · 12 level
Regex Pancing
Pancing ikan dan hindari sampah dengan pola regex. Bertahap dari teks biasa sampai nomor HP, pelat nomor, dan email.
Main Regex PancingGit · 10 level
Git Kereta
Atur rel kereta dengan perintah git. Bertahap dari commit dan branch sampai merge, rebase, cherry-pick, reset, dan detached HEAD.
Main Git KeretaBig-O · 11 level
Big-O Balapan
Adu algoritma di n yang makin besar dan tebak siapa yang menang. Dari O(1) lawan O(n) sampai Fibonacci O(2ⁿ) lawan memo.
Main Big-O BalapanURL API · 12 level
Bongkar URL
Bongkar link iklan, link toko, dan link WhatsApp dengan URL dan URLSearchParams. Bertahap dari new URL sampai menyusun link kampanye.
Main Bongkar URLHTTP & REST · 10 level
HTTP Kurir
Jadi kurir yang mengantar request ke server warung. Bertahap dari GET dan query string sampai Authorization, PUT vs PATCH, idempotensi, dan membaca status code.
Main HTTP KurirCSS responsive · 10 level
Responsive Tukang Jahit
Jahit kartu, navbar, dan galeri yang pas di badan 360, 768, dan 1200px. Belajar persen, rem, max-width, media query mobile-first, clamp(), dan min().
Main Responsive Tukang JahitIntl API · 11 level
Kasir Intl
Jadi kasir yang mencetak harga, persen diskon, tanggal, dan isi keranjang untuk pembeli Indonesia dan luar negeri. Bertahap dari toLocaleString sampai Intl.NumberFormat, DateTimeFormat, RelativeTimeFormat, ListFormat, dan PluralRules.
Main Kasir IntlArray JavaScript · 13 level
Array Pasar
Olah dagangan lapak pasar dengan method array JavaScript. Bertahap dari map dan filter sampai reduce, sort dengan pembanding, flatMap, dan toSorted.
Main Array PasarJSON di JavaScript · 11 level
JSON Bengkel
Servis respons API yang rusak di bengkel motor. Perbaiki sintaks JSON, ambil data bersarang dengan optional chaining, rapikan output JSON.stringify, hidupkan tanggal dengan reviver, dan salin data dengan structuredClone.
Main JSON Bengkelfetch dan async/await · 10 level
Fetch Simulasi
Ambil menu, ongkir, dan promo dari server aplikasi pesan antar dengan fetch. Tangani restoran tutup, koneksi putus, server sibuk, dan request yang kelamaan, lalu lihat bedanya sekuensial dan paralel di timeline.
Main Fetch SimulasiWeb Crypto · 11 level
Gembok Hash
Jaga loker pos ronda dengan dasar kriptografi di browser: TextEncoder, hex, SHA-256 lewat crypto.subtle, efek longsor, garam, angka acak yang aman, dan cap HMAC. Plus kenapa Base64 bukan enkripsi.
Main Gembok HashCSS Flexbox · 10 level
Flex Antre Loket
Atur antrean di depan loket dengan CSS Flexbox. Bertahap dari display: flex sampai order, flex-grow, dan align-self.
Main Flex Antre LoketClosure JavaScript · 10 level
Closure Celengan
Bikin celengan yang saldonya hanya bisa diubah lewat method-nya. Belajar closure dan scope JavaScript: fungsi pabrik, variabel privat, let vs var di loop, once, dan memoize.
Main Closure Celengankombinator Promise · 10 level
Promise Antar Jemput
Atur ojek dan mobil antar jemput dengan Promise.race, Promise.any, AggregateError, Promise.all, antrean dua mobil, batas waktu, dan finally. Semua perjalanan tercatat di timeline waktu virtual.
Main Promise Antar Jemputdebounce dan throttle · 10 level
Debounce Bel Pintu
Redam bel yang ditekan berkali-kali dengan debounce dan throttle buatanmu sendiri: setTimeout, clearTimeout, argumen terakhir, this, cancel, opsi leading, dan memilih peredam untuk pencarian, scroll, dan tombol bayar.
Main Debounce Bel PintuTerminal · 11 level
Rumah Berkas
Belajar terminal dari nol tanpa takut merusak komputer. Pindah folder, buat, salin, pindahkan, dan hapus berkas sambil melihat pohon foldernya berubah.
Main Rumah BerkasTerminal · 12 level
Saluran Log
Olah berkas log dengan grep, head, tail, sort, uniq, dan wc. Sambung perintah dengan pipa | dan lihat datanya menyusut di tiap tahap.
Main Saluran LogTerminal · 10 level
Kunci & Izin
Pahami arti -rw-r--r-- dan kenapa muncul Permission denied. Atur izin dengan chmod, angka 755, chown, dan sudo sambil melihat saklar izinnya.
Main Kunci & IzinTerminal · 11 level
Jejak Berkas
Temukan berkas dan isi yang tersembunyi di folder bersarang dengan find, -name, -type, -iname, grep -r, grep -rl, dan grep -rn sambil melihat temuannya di pohon folder.
Main Jejak BerkasTerminal · 11 level
Rambu PATH
Pahami kenapa muncul command not found. Atur variabel, export, dan PATH, lalu lihat shell mencari program dari rambu ke rambu sampai ketemu.
Main Rambu PATHTerminal · 10 level
Dapur Proses
Kelola program yang sedang berjalan: jalankan di latar dengan &, lihat jobs dan ps, hentikan dengan kill, kill -9, Ctrl+C, dan pindahkan dengan Ctrl+Z, bg, fg.
Main Dapur Prosesevent DOM · 12 level
Estafet Klik
Ikuti perjalanan satu klik dari document turun ke tombol lalu naik lagi. Atur urutannya dengan capture, stopPropagation, once, dan event delegation.
Main Estafet KlikCSS Position · 10 level
Tumpukan Kardus
Tata kardus di gudang dengan CSS position. Dari relative dan absolute, containing block, sampai z-index dan stacking context.
Main Tumpukan KardusSQL JOIN · 11 level
Jodohkan Tabel
Gabungkan tabel pelanggan, pesanan, dan menu dengan JOIN. Lihat garis yang menjodohkan tiap baris, baris yang terbuang, dan NULL dari LEFT JOIN.
Main Jodohkan TabelSQL WHERE · 12 level
Saringan Kopi
Saring katalog kopi dengan WHERE: pembanding, AND/OR dengan kurung, LIKE, IN, BETWEEN, dan NOT. Lihat baris mana yang lolos dan syarat mana yang menahan sisanya.
Main Saringan KopiSQL GROUP BY · 11 level
Rekap Kasir
Rekap struk warung dengan COUNT, SUM, AVG, MIN, MAX, GROUP BY, dan HAVING. Lihat struk masuk keranjang per kelompok dan keranjang yang dibuang HAVING.
Main Rekap KasirSQL NULL · 10 level
Lubang NULL
Kenali NULL sebagai lubang kosong yang beda dari 0 dan teks kosong. Lihat kenapa = NULL tidak menemukan apa-apa, nilai TRUE, FALSE, UNKNOWN tiap baris, COALESCE, dan NULL di COUNT, AVG, serta LEFT JOIN.
Main Lubang NULLSQL ORDER BY · 10 level
Antre Urut
Susun antrean hasil query dengan ORDER BY. Lihat kunci kedua memutus skor kembar, arah ASC dan DESC per kolom, letak NULL saat diurutkan, lalu LIMIT dan OFFSET untuk halaman.
Main Antre UrutSQL subquery · 10 level
Subquery Matryoshka
Pasang query di dalam query seperti boneka matryoshka. Lihat hasil query dalam dicolokkan ke query luar, jebakan NULL di NOT IN, EXISTS yang dijalankan ulang per baris, dan subquery di FROM.
Main Subquery MatryoshkaSQL index · 9 level
Lemari Indeks
Buat CREATE INDEX supaya petugas arsip tidak membuka 600 laci. Lihat kapan indeks terpakai, aturan kolom paling kiri di indeks gabungan, dan kenapa fungsi, LIKE '%x', atau kolom yang tidak selektif membuat indeks percuma.
Main Lemari IndeksCSS Specificity · 11 level
Rebutan Kursi
Aturan CSS berebut mewarnai satu elemen. Hitung skor id, kelas, dan tag, pahami urutan sumber, :is(), :where(), dan kapan !important memang perlu.
Main Rebutan KursiRekursi JavaScript · 10 level
Boneka Matryoshka
Buka boneka di dalam boneka dengan fungsi yang memanggil dirinya sendiri. Belajar rekursi: kasus dasar, langkah yang mengecil, call stack, array dan objek bersarang, dan stack yang meluap.
Main Boneka MatryoshkaDestructuring JavaScript · 11 level
Destructuring Paket
Bongkar paket di gudang ke variabel yang diminta. Belajar destructuring JavaScript: objek, ganti nama, nilai default, pola bersarang, array, rest, tukar variabel, dan parameter fungsi.
Main Destructuring PaketCORS · 12 level
Satpam Kompleks
Browser jadi satpam di gerbang kompleks: siapa boleh membaca respons dari origin lain. Bertahap dari origin dan `Access-Control-Allow-Origin` sampai preflight `OPTIONS` dan cookie lintas origin.
Main Satpam KompleksCSS Custom Properties · 10 level
Variabel Cat Tembok
Cat dinding rumah dari kaleng variabel CSS. Belajar --nama di :root, var() dengan cadangan, pewarisan ke ruangan di dalamnya, menimpa variabel di satu elemen, calc(), dan tema malam.
Main Variabel Cat TemboklocalStorage, sessionStorage, dan cookie · 12 level
Loker Stasiun
Titip data di tiga deret loker browser: Loker Tetap (`localStorage`), Loker Harian per tab (`sessionStorage`), dan kupon cookie yang ikut ke server. Lihat isinya bertahan, hilang, atau berubah jadi teks saat tab ditutup dan waktu berlalu.
Main Loker StasiunCSS transition dan animation · 12 level
Transisi Lampu Merah
Atur lampu lalu lintas dan mobil dengan `transition` dan `@keyframes`. Belajar durasi, delay, easing sampai `cubic-bezier()` dan `steps()`, properti yang bisa ditransisikan, `fill-mode`, `direction`, dan `prefers-reduced-motion`, lewat grafik nilai terhadap waktu.
Main Transisi Lampu MerahAbortController · 9 level
Batal Pesan
Hentikan pesanan warung yang sudah tidak dibutuhkan dengan AbortController: signal untuk fetch, AbortError, batas waktu, hasil pencarian basi, satu signal untuk banyak request, listener abort, dan AbortSignal.any.
Main Batal PesanBroadcastChannel dan postMessage · 12 level
Chat Antar Tab
Kirim pesan antar tab dan iframe palsu dengan BroadcastChannel, window.postMessage, dan event storage. Lihat pesan yang sampai, diabaikan, atau dibuang browser karena origin-nya salah.
Main Chat Antar TabCaching dan cache LRU · 9 level
Rak Warung
Taruh barang laris di rak depan supaya pembeli tidak menunggu barang dijemput ke gudang. Belajar caching: hit dan miss, kapasitas, FIFO vs LRU, cache LRU dengan `Map`, hit rate, dan memoization.
Main Rak WarungBilangan biner · 12 level
Saklar Lampu
Nyalakan 8 lampu untuk memahami bilangan biner: nilai tempat, desimal ke biner, 0b dan toString(2), hex untuk warna, operator bitwise & | ^ << >>, dan batas 0 sampai 255.
Main Saklar Lampu