Dua orang, satu tabel, dua angka yang berbeda
3 September 2026·5 menit baca
Satu kedai kopi, satu tabel, satu pertanyaan. Dua jawaban yang selisihnya sembilan kali lipat, dan tidak satu pun query-nya error.
Struk satu kedai kopi, April 2019, arsip kelas anakdata 2020.
Sebuah kedai kopi punya satu tabel berisi 49.894 baris struk penjualan selama April 2019. Satu tabel, satu bulan, tiga gerai.
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. Ia memperhitungkan bahwa nomor transaksi yang sama dipakai lagi di hari lain dan di gerai lain. Jawabannya 39.271.
Selisihnya sembilan kali lipat. Keduanya memakai tabel yang sama, dan keduanya menjalankan query yang tidak memunculkan satu pun pesan error.
Kenapa ini bukan cerita tentang SQL
Pembaca mudah menganggap cerita di atas soal teknis: orang pertama kurang paham perintahnya, dan selesai. Masalah sebenarnya ada di kolomnya.
Kolom bernama transaction_id ternyata tidak mengenali satu transaksi. Nomor
yang sama dipakai lagi di hari lain dan di gerai lain. Dari 4.203 nomor di
tabel itu, 2.859 muncul di lebih dari satu pasangan hari dan gerai.
Tidak ada satu pun dokumen yang menyebutkan itu.
Orang pertama membaca nama kolomnya dan mempercayainya. Itu keputusan yang wajar, dan hampir semua orang mengambilnya.
Orang kedua tidak menang karena hafal perintah. Ia bertanya satu hal lebih dulu: satu baris di tabel ini mewakili apa?
Pertanyaan itu punya nama
Namanya grain, dan kami memakai istilah aslinya karena itu yang akan Anda temui di dokumentasi mana pun. Grain menjawab satu pertanyaan: satu baris di tabel ini mewakili apa?
Di tabel struk kedai kopi tadi, satu baris mewakili satu jenis barang di dalam satu struk. Struk nomor 118 tanggal 5 April, misalnya, berisi tiga jenis barang, jadi ia tercatat sebagai tiga baris.
Struk satu kedai kopi, April 2019, arsip kelas anakdata 2020.
Grain tidak rumit. Ia satu pertanyaan yang butuh sepuluh detik, dan ia mencegah jenis kesalahan yang tidak memunculkan pesan error.
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 report terkirim tepat waktu, tanpa satu pun tanda bahwa ada yang salah.
Angka 4.203 termasuk jenis kedua. Ia masuk ke slide, lalu ke meeting, lalu ke keputusan, dan tidak ada satu titik pun di sepanjang jalan itu yang menandai bahwa angkanya salah sembilan kali lipat.
Kesalahan jenis kedua ini yang pelan-pelan membuat orang berhenti percaya pada angka di kantornya. Di kasus kedai kopi ini, datanya sendiri baik-baik saja. Kebiasaan memeriksanya yang belum ada.
Tiga pertanyaan yang bisa dipakai besok
Anda bisa mengerjakan ketiganya dengan alat yang sudah ada, tanpa izin siapa pun.
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, satu nilai mewakili banyak baris, dan menghitung baris 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.
Ketiga pertanyaan ini bisa dijawab dalam beberapa menit, dan ketiganya akan menangkap angka 4.203 sebelum angka itu sampai ke slide.
Kenapa tulisan ini ada di sini
anakdata.id berdiri sejak 2020 dengan satu ide sederhana: orang paling cepat belajar data kalau mengerjakannya bersama, pada kasus yang nyata.
Idenya masih sama di 2026. Bedanya, alat bantu AI sekarang bisa menuliskan query dengan lancar, jadi menulis perintah makin jarang jadi bagian tersulit. Bagian yang tetap harus Anda kerjakan sendiri adalah memutuskan kapan hasil query itu belum boleh dipercaya.
Karena itu artikel ini tidak berisi daftar perintah. Anda bisa mencari perintah SQL dalam tiga puluh detik. Kebiasaan bertanya sebelum menerima angka tidak bisa dicari di search engine; kebiasaan itu terbentuk dari kasus seperti kedai kopi ini.
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.id (membuka tab baru). 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. Kami menghitung ulang angkanya dari file aslinya pada 5 Oktober 2026. Versi sebelumnya menulis bahwa tabel ini berasal dari satu cabang dan bahwa nomor transaksinya direset tiap hari. File aslinya mencatat tiga gerai, dan pola nomornya tidak serapi itu, jadi kedua kalimat itu kami koreksi. Nama kedainya tidak disebut karena tidak relevan dengan pelajarannya.