Dua orang, satu tabel, dua angka yang berbeda
3 September 2026·4 menit baca
Satu kedai kopi, satu tabel, satu pertanyaan. Dua jawaban yang selisihnya sembilan kali lipat, dan tidak satu pun query-nya error.
Sebuah kedai kopi punya satu tabel berisi 49.894 baris struk penjualan selama April 2019. Satu tabel, satu bulan, satu cabang.
Dua orang diminta menjawab pertanyaan yang sama: berapa transaksi bulan ini?
Orang pertama menghitung nomor transaksi yang berbeda. Jawabannya 4.203.
Orang kedua menghitung struk yang benar-benar terjadi, dengan memperhitungkan bahwa nomor transaksi diulang di tiap cabang tiap hari. Jawabannya 39.271.
Selisihnya sembilan kali lipat. Keduanya memakai tabel yang sama, dan keduanya menjalankan query yang tidak memunculkan satu pun pesan error.
Yang membuat ini bukan cerita tentang SQL
Mudah membaca cerita di atas sebagai soal teknis. Seseorang kurang paham perintahnya, dan sudah.
Bukan itu yang terjadi.
Yang terjadi: kolom bernama transaction_id ternyata bukan pengenal transaksi.
Ia direset tiap hari di tiap cabang, jadi nomor 1 muncul berkali-kali sepanjang
bulan.
Tidak ada satu pun dokumen yang menyebutkan itu.
Orang pertama membaca nama kolomnya dan mempercayainya. Itu keputusan yang wajar, dan hampir semua orang mengambilnya.
Yang membedakan orang kedua bukan hafalan perintah. Ia bertanya satu hal lebih dulu: satu baris di tabel ini mewakili apa?
Pertanyaan itu punya nama
Namanya grain. Ia menjawab apa yang diwakili satu baris.
Di tabel struk kedai kopi tadi, satu baris bukan satu transaksi. Satu baris adalah satu jenis barang di dalam satu struk.
Pesanan berisi kopi, gula, dan susu muncul tiga kali.
Begitu itu diketahui, dua hal langsung berubah. Menghitung baris tidak lagi berarti menghitung transaksi.
Dan menjumlahkan kolom apa pun yang melekat pada struk, misalnya total pembayaran, akan menghitungnya berulang kali.
Grain bukan istilah yang rumit. Ia satu pertanyaan yang butuh sepuluh detik, dan ia mencegah kelas kesalahan yang paling mahal di pekerjaan data.
Kesalahan yang tidak pernah berteriak
Ada dua jenis kesalahan di pekerjaan data, dan keduanya tidak setara.
Jenis pertama berhenti sendiri: salah ketik nama kolom, tanda kurung kurang, tanggal salah format.
Layar menampilkan pesan error, pekerjaan berhenti, dan Anda memperbaikinya dalam dua menit.
Jenis kedua tidak berhenti. Query jalan, angka keluar, grafik terbentuk, dan laporan terkirim tepat waktu.
Tidak ada yang gagal untuk memberi tahu.
Angka 4.203 adalah jenis kedua. Ia masuk ke slide, lalu ke rapat, lalu ke keputusan, dan tidak ada satu titik pun di sepanjang jalan itu yang menandai bahwa angkanya salah sembilan kali lipat.
Jenis kedua yang membuat orang kehilangan kepercayaan pada data di kantornya. Bukan karena datanya buruk, tapi karena tidak ada yang tahu cara memeriksanya.
Tiga pertanyaan yang bisa dipakai besok
Ketiganya tidak butuh perkakas baru, tidak butuh izin, dan tidak butuh kursus.
Satu baris di tabel ini mewakili apa? Kalau tidak ada yang bisa menjawabnya, itu sendiri temuan, dan ia lebih penting daripada angka yang sedang dicari.
Apakah kolom ini benar-benar unik? Bandingkan jumlah baris dengan jumlah nilai berbeda di kolom itu. Kalau berbeda jauh, kolom itu bukan pengenal, dan menghitungnya menjawab pertanyaan lain.
Apakah jumlah barisnya berubah setelah saya menggabungkan tabel? Kalau naik, setiap penjumlahan dari tabel asal sudah tergandakan, dan tidak ada apa pun di hasil akhir yang menunjukkannya.
Tiga pertanyaan ini yang membedakan orang yang bisa menjalankan query dari orang yang bisa dipercaya angkanya.
Kenapa tulisan ini ada di sini
anakdata.id berdiri sejak 2020 dengan satu ide sederhana: belajar data paling cepat kalau dikerjakan bersama, pada kasus yang nyata.
Yang berubah di 2026 bukan idenya, tapi apa yang dicari orang. Perekrut tidak lagi kekurangan orang yang bisa menjalankan perintah.
Alat bantu sudah menuliskan query dengan lancar.
Yang langka adalah orang yang tahu kapan hasilnya tidak boleh dipercaya.
Karena itu artikel ini tidak berisi daftar perintah. Perintah bisa dicari dalam tiga puluh detik.
Yang tidak bisa dicari adalah kebiasaan bertanya sebelum menerima angka.
Kalau ingin tahu Anda ada di mana
Ada diagnostik singkat berisi delapan pertanyaan, namanya DRA Lite. Gratis, tanpa akun, tanpa mendaftar apa pun.
Ia tidak memberi skor, dan itu disengaja. Satu-satunya keluarannya adalah satu miskonsepsi yang baru saja terungkap dari jawaban Anda sendiri.
Dua di antara delapan pertanyaannya justru soal yang dibahas artikel ini: tabel yang satu barisnya bukan satu pesanan, dan laporan yang menunjukkan nol tiga hari berturut-turut.
Anda tidak perlu belajar apa pun lebih dulu untuk mengerjakannya.
Kalau setelah itu Anda ingin melanjutkan, ada tempatnya di datasight.web.id. Kalau tidak, tiga pertanyaan di atas tetap bisa dipakai besok pagi, dan itu memang maksudnya.
Data kedai kopi di artikel ini nyata, dari arsip kelas anakdata.id 2020, dan angkanya diperiksa ulang sebelum ditulis. Nama kedainya tidak disebut karena tidak relevan dengan pelajarannya.