Ratusan soal dari kasus bisnis nyata. Database hidup di browser — tulis query, tekan Enter, lihat hasilnya dalam hitungan milidetik. Tanpa instalasi, tanpa akun.
tanpa instalasitanpa registrasiumpan balik seketika
tamu@practice-sql — playgroundsiap
sql›
coba
0+
soal terkurasi
0
skema dunia nyata
0
jalur bertingkat
0
instalasi & biaya
// jalur latihan
Enam jalur, dari SELECT pertama sampai window function.
Setiap jalur berisi soal berurutan dengan skema yang konsisten. Klik modul untuk melihat cuplikan soalnya — semuanya bisa dicoba langsung di playground.
Soal 1.7 — Tampilkan semua pelanggan beserta kotanya, urut dari yang paling lama bergabung.
SELECT nama, kota, sejak FROM pelanggan ORDER BY sejak;
Soal 1.12 — Tiga produk termahal di katalog.
SELECT nama, harga FROM produk ORDER BY harga DESC LIMIT 3;
Soal 2.9 — Produk mana yang harganya di bawah Rp80.000 tapi bukan drip bag?
SELECT nama, kategori, harga FROM produk WHERE harga < 80000 AND kategori != 'drip bag';
Soal 2.18 — Siapa saja pelanggan dari Bandung atau Medan?
SELECT nama, kota FROM pelanggan WHERE kota IN ('Bandung','Medan');
Soal 3.4 — Berapa banyak produk dan rata-rata harga per kategori?
SELECT kategori, COUNT(*) AS jumlah, AVG(harga) AS rata_harga FROM produk GROUP BY kategori;
Soal 3.11 — Kota mana yang pelanggannya paling banyak?
SELECT kota, COUNT(*) AS pelanggan FROM pelanggan GROUP BY kota ORDER BY pelanggan DESC;
Soal 4.6 — Siapa yang pernah memesan lebih dari 2 item sekaligus?
SELECT c.nama, o.jumlah, o.tanggal FROM pesanan o JOIN pelanggan c ON o.pelanggan_id = c.id WHERE o.jumlah > 2 ORDER BY o.jumlah DESC;
Soal 4.14 — Semua pesanan produk kategori alat seduh, lengkap dengan namanya.
SELECT p.nama AS produk, o.jumlah FROM pesanan o JOIN produk p ON o.produk_id = p.id WHERE p.kategori = 'alat seduh';
Soal 5.3 — Pelanggan mana yang pernah berbelanja dalam jumlah besar?
SELECT nama, kota FROM pelanggan WHERE id IN (SELECT pelanggan_id FROM pesanan WHERE jumlah > 3);
Soal 6.2 — Urutkan senioritas pelanggan di dalam tiap kota.
SELECT nama, kota, RANK() OVER (PARTITION BY kota ORDER BY sejak) AS senioritas FROM pelanggan;
// metode
Tiga langkah. Tiap hari. Sampai bisa.
Menonton tutorial memberi ilusi bisa. Menulis query yang gagal lalu berhasil memberi bisa yang sungguhan — itu inti dari semua soal di sini.
01
Baca skenario bisnisnya
Bukan "pelajari klausa X", melainkan: pemilik toko minta laporan produk yang stoknya menipis. Kamu menerjemahkan kebutuhan manusia menjadi SQL.
-- "Buang yang stoknya di bawah 15 dari laporan"
02
Tulis & jalankan query
Hasil muncul seketika. Kalau salah, pesan kesalahannya menjelaskan — bukan sekadar "syntax error" yang membuat frustrasi.
sql› SELECT nama FROM produk WHERE stok < 15;
03
Buka level berikutnya
Kesulitan menyesuaikan pola jawabanmu. Streak harian menjaga momentum, jadi 15 menit sehari cukup untuk terus naik.
✓ 3/3 kasus uji lulus — level naik
// skema pekan ini
Toko Kopi Nusantara
Setiap pekan skema latihan diganti dengan bisnis yang berbeda. Pekan ini: toko kopi dengan tiga tabel — pas untuk melatih JOIN dan agregasi. Skema yang sama hidup di playground di atas.
pelanggan
idPKINTEGER
namaTEXT
kotaTEXT
sejakINTEGER
1 : N
pesanan
idPKINTEGER
pelanggan_idFKINTEGER
produk_idFKINTEGER
jumlahINTEGER
tanggalTEXT
N : 1
produk
idPKINTEGER
namaTEXT
kategoriTEXT
hargaINTEGER
stokINTEGER
3 tabel · 34 baris data · relasi berantai pelanggan → pesanan → produk
// tanya jawab
Pertanyaan yang sering muncul
Apakah practice-sql.com gratis?
Ya. Playground SQL dan seluruh jalur dasar bisa dipakai gratis tanpa akun. Jalur lanjutan (subquery, CTE, window function) terbuka penuh melalui akun.
Apakah saya harus menginstal MySQL atau PostgreSQL?
Tidak. Database berjalan langsung di browser — cukup tulis query, tekan Enter, dan hasilnya langsung tampil. Nol konfigurasi.
Saya pemula total, apakah bisa mengikuti?
Bisa. Jalur Fondasi SELECT dimulai dari nol: satu query pertama, lalu naik bertahap dengan penjelasan di setiap langkah. Tidak perlu latar belakang programming.
Dialek SQL apa yang dipakai?
Soal ditulis dalam SQL standar yang kompatibel dengan MySQL dan PostgreSQL. Bila ada perbedaan dialek penting, soal menyertakan catatannya.
Apakah progres latihan saya tersimpan?
Progres tersimpan otomatis di perangkat Anda, dan tersinkron lintas perangkat jika Anda masuk dengan akun.
Berapa lama sampai bisa beroperasi dengan SQL?
Dengan latihan 15 menit sehari, kebanyakan pelajar menyelesaikan fondasi — SELECT, WHERE, dan JOIN dasar — dalam 3–4 minggu.
// mulai
Query pertamamu lima detik dari sekarang.
Tanpa daftar, tanpa kartu kredit, tanpa instalasi. Scroll ke atas, klik terminal, ketik.
SELECT rasa_punya FROM dirimu WHERE alasan = 'belum siap'; -- 0 baris