AI untuk SQL
Menulis query dengan AI: dari bahasa sehari-hari ke SQL, optimasi, dan jebakan yang wajib diwaspadai.
SQL: Bahasa yang "Hampir" Dimengerti AI Sempurna
SQL adalah salah satu bahasa yang paling dikuasai AI: sintaksnya standar, polanya berulang, dan ada jutaan contoh di data latih. Untuk query standar (SELECT dengan JOIN, GROUP BY, agregasi), AI jarang salah. Tapi justru karena "kelihatannya selalu benar", SQL adalah area di mana kesalahan AI paling berbahaya: query yang salah tapi tetap jalan dan mengembalikan angka yang meyakinkan namun keliru.
Contoh 1: Bahasa Sehari-hari ke SQL (Praktik)
Pola paling berguna: deskripsikan HASIL yang kamu mau, beri SKEMA tabel, terima SQL.
Prompt: "Buatkan query SQL (PostgreSQL). Skema:
- users(id, nama, kota)
- orders(id, user_id, total, tanggal) Kebutuhan: 5 kota dengan total penjualan tertinggi bulan ini, tampilkan nama kota dan totalnya, urut dari tertinggi. Jangan pakai SELECT *, sebutkan kolomnya eksplisit."
Hasilnya kira-kira:
SELECT u.kota, SUM(o.total) AS total_penjualan
FROM users u
JOIN orders o ON o.user_id = u.id
WHERE o.tanggal >= date_trunc('month', CURRENT_DATE)
GROUP BY u.kota
ORDER BY total_penjualan DESC
LIMIT 5;Verifikasi wajib (tidak bisa ditawar):
- Jalankan di data kecil yang kamu pahami. Buat 5-10 baris data dummy yang jawabannya kamu hitung manual. Cocokkan.
- Cek JOIN-nya: JOIN vs LEFT JOIN mengubah hasil drastis (kota tanpa order ikut/tidak ikut?). Tanya AI: "kenapa pakai JOIN bukan LEFT JOIN di sini, dan kapan hasilnya beda?"
- Cek logika tanggal/agregasi: "bulan ini" = dari tanggal 1? Zona waktu bagaimana? Minta AI menjelaskan tiap klausa dalam bahasa sehari-hari, lalu cocokkan dengan kebutuhanmu.
Contoh 2: Optimasi dan Debug Query (Praktik)
Optimasi: query lambat adalah masalah klasik.
Prompt: "Query ini lambat (5 detik untuk 100 ribu baris). Analisis dan usulkan optimasi. Jelaskan juga indeks apa yang perlu dibuat dan kenapa. [paste query + hasil EXPLAIN jika ada]"
AI biasanya menyarankan: indeks yang tepat, menghindari SELECT *, subquery vs JOIN, atau pagination yang benar. Tapi verifikasi dengan EXPLAIN ANALYZE beneran: teori AI vs rencana eksekusi database bisa beda.
Debug: query tidak error tapi hasilnya aneh.
Prompt: "Query ini mengembalikan 0 baris padahal seharusnya ada data. Jangan langsung perbaiki. Jelaskan dulu 3 kemungkinan penyebabnya (misal: kondisi WHERE terlalu ketat, JOIN salah kolom, tipe data tidak cocok), lalu beri cara mengecek tiap kemungkinan."
Pola "hipotesis dulu" dari modul debugging berlaku penuh di SQL.
Catatan teknis: Batasan AI di SQL: (1) dialek: MySQL, PostgreSQL, SQL Server punya sintaks berbeda (fungsi tanggal, pagination). Selalu sebutkan dialekmu; AI kadang mencampur. (2) skema buta: AI tidak tahu skema aslimu kecuali kamu beri. Beri skema LENGKAP (nama tabel, kolom, tipe, relasi) untuk hasil akurat; tanpa itu ia menebak nama kolom. (3) data buta: AI tidak tahu distribusi datamu (apakah kolom X nullable? ada duplikat?). Untuk query kritis, beri info ini. (4) keamanan: JANGAN minta AI membuat query dengan string concatenation ("WHERE nama = '" + input + "'"), itu pola SQL injection. Selalu minta parameterized query / prepared statement.
Kesalahan Umum
- Percaya angka tanpa verifikasi. Query agregasi yang salah (double counting karena JOIN duplikat adalah kasus klasik) menghasilkan angka meyakinkan yang salah total. Selalu uji dengan data kecil yang jawabannya kamu tahu.
- Tidak menyebut dialek. "Buatkan query..." tanpa menyebut PostgreSQL/MySQL = AI menebak, kadang salah fungsi.
- Skema tidak lengkap. AI menebak nama kolom yang tidak ada. Beri skema eksplisit, atau tempel hasil
DESCRIBE tabel. - Query dari AI langsung ke produksi. Untuk query yang mengubah data (UPDATE/DELETE), aturannya keras: pahami tiap klausa WHERE-nya, uji di data dummy/transaction rollback dulu, baru jalankan. Satu WHERE yang salah = bencana data.
Rangkuman
AI sangat kuat di SQL standar, tapi justru di situlah bahayanya: kesalahan yang meyakinkan. Pola aman: deskripsikan kebutuhan + beri skema lengkap + sebutkan dialek > verifikasi dengan data kecil yang jawabannya kamu tahu > pahami tiap klausa > untuk query kritis, cek EXPLAIN dan uji di lingkungan aman. SQL + AI = produktif, asal verifikasinya disiplin.
Tantangan
Jebak AI dengan Double Counting
Buat 2 tabel kecil (users, orders) di mana 1 user punya 3 orders. Minta AI: 'hitung jumlah user dan total penjualan'. Periksa: apakah query-nya double counting (misal COUNT setelah JOIN)? Kalau ya, minta ia perbaiki dan jelaskan kenapa salah. Ini bug SQL klasik yang sering lolos.