-- playground sql · langsung di browser

Latihan SQL. Bukan menghafal SQL.

Ratusan soal dari kasus bisnis nyata. Database hidup di browser — tulis query, tekan Enter, lihat hasilnya dalam hitungan milidetik. Tanpa instalasi, tanpa akun.

Lihat jalur belajar

tanpa instalasi tanpa registrasi umpan balik seketika

tamu@practice-sql — playground siap
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.

  1. 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"
  2. 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;
  3. 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.

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