Checklist Data Cleaning: 12 Langkah Sebelum Data Dianalisa
TL;DR
Data cleaning adalah proses ngecek dan benerin data mentah biar siap dianalisa: hapus duplikat, samain format, tangani nilai kosong, dan buang baris yang gak masuk akal. Checklist 12 langkah di artikel ini urut dari yang paling murah (cek struktur) sampai yang paling mahal (cek logika bisnis). Kalau dilewatin, angka di dashboard kamu bisa salah tanpa ada yang sadar.
Data cleaning adalah proses ngecek dan benerin data mentah biar siap dianalisa. Hapus duplikat, samain format, tangani nilai kosong, buang baris yang gak masuk akal.
Kedengerannya membosankan. Tapi ini bagian yang paling nentuin apakah angka di laporan kamu bener atau ngaco.
Aku pernah lihat laporan penjualan yang total omzetnya kelebihan Rp 47 juta gara-gara satu file di-import dua kali. Gak ada yang sadar selama tiga bulan.
Di bawah ini 12 langkah yang aku jalanin tiap kali dapat file baru. Urut dari yang paling murah sampai yang paling makan otak.
Kenapa data cleaning butuh checklist?
Soalnya kesalahan data cleaning itu diem-diem. Query kamu tetap jalan. Dashboard tetap muncul. Angkanya aja yang salah.
Beda sama error syntax yang langsung ngamuk di layar. Data kotor gak protes, dia cuma diam dan bikin kamu ngambil keputusan berdasarkan angka palsu.
Checklist bikin kamu gak lupa langkah yang biasanya kelewat waktu lagi buru-buru. Dan langkah yang kelewat itu biasanya yang paling penting.
Apa saja 12 langkah checklist data cleaning?
1. Cek jumlah baris dan kolom
Sebelum ngapa-ngapain, hitung dulu. Berapa baris? Berapa kolom?
Bandingkan sama yang kamu harapkan. File penjualan sebulan dari toko yang rata-rata 80 transaksi per hari harusnya sekitar 2.400 baris. Kalau cuma 400, ada yang kepotong waktu export.
2. Lihat 20 baris pertama pakai mata sendiri
Jangan langsung query. Buka filenya, scroll, baca.
Sepuluh menit ngeliatin data mentah sering nemuin masalah yang gak bakal ketemu lewat statistik ringkasan. Header yang kegeser, baris kosong di tengah, kolom yang isinya gabungan dua hal.
3. Benerin tipe data tiap kolom
Ini penyebab bug nomor satu. Kolom total_harga kebaca sebagai teks gara-gara ada satu sel yang isinya "Rp 15.000".
Akibatnya SUM gak jalan, sorting jadi alfabetis, dan angka 9.000 kelihatan lebih besar dari 15.000.
4. Seragamkan format tanggal
Data Indonesia sering campur: 10/06/2026, 2026-06-10, 10 Juni 2026. Pilih satu format, ubah semuanya.
Hati-hati sama ambiguitas hari dan bulan. 03/04/2026 itu 3 April atau 4 Maret? Kalau gak yakin, balik ke sumbernya dan tanya.
5. Hapus duplikat berdasarkan ID unik
Bukan berdasarkan kemiripan isi baris. Dua orang beli gula 1 kg di menit yang sama itu bukan duplikat.
SELECT id_transaksi, COUNT(*) AS jumlah
FROM transaksi
GROUP BY id_transaksi
HAVING COUNT(*) > 1;
Kalau query ini balikin baris, kamu punya duplikat beneran.
6. Rapikan spasi dan huruf besar-kecil
"Beras Premium", "beras premium", dan "Beras Premium " (ada spasi di belakang) dianggap tiga produk berbeda sama GROUP BY. Padahal barangnya sama.
Pakai TRIM buat buang spasi dan LOWER buat samain huruf. Detail penggunaannya ada di halaman fungsi TRIM.
7. Satukan kategori yang ditulis beda-beda
Kota di data Indonesia itu neraka kecil. "Jakarta", "DKI Jakarta", "Jkt", "JAKARTA PUSAT" — semua nunjuk ke tempat yang sama tapi kehitung terpisah.
Bikin tabel mapping. Satu kolom nilai mentah, satu kolom nilai standar. Join, selesai.
8. Cek nilai kosong dan putuskan mau diapain
Hitung persentasenya dulu per kolom. Kolom yang 60 persen kosong biasanya lebih baik dibuang daripada dipaksa diisi.
Pilihan penanganannya ada beberapa dan masing-masing punya risiko. Aku bahas lengkap di artikel Missing Value: 6 Cara Menangani Data Kosong.
9. Cari nilai yang gak masuk akal
Umur 200 tahun. Harga negatif. Tanggal transaksi tahun 1900. Diskon 150 persen.
Cek nilai minimum dan maksimum tiap kolom angka. Yang aneh langsung kelihatan.
SELECT
MIN(total_harga) AS harga_terendah,
MAX(total_harga) AS harga_tertinggi,
MIN(qty) AS qty_terendah,
MAX(qty) AS qty_tertinggi
FROM transaksi;
10. Cek outlier, tapi jangan buru-buru dibuang
Transaksi Rp 8 juta di warung yang rata-rata Rp 35 ribu itu mencurigakan. Bisa jadi salah input. Bisa juga borongan buat hajatan.
Cek dulu sebelum dihapus. Baca konsep outlier biar tau kapan boleh dibuang dan kapan justru itu datanya yang menarik.
11. Validasi relasi antar kolom
Kolom total harusnya sama dengan qty dikali harga_satuan. Cek beneran, jangan cuma percaya.
Di satu dataset toko yang aku pegang, 3,1 persen barisnya gak nyambung. Ternyata ada diskon manual yang gak kecatat di kolom manapun.
12. Cek logika bisnisnya
Ini langkah terakhir dan gak bisa diotomatisasi. Duduk, lihat hasilnya, tanya: ini masuk akal gak?
Penjualan naik 400 persen di bulan puasa buat toko sembako, mungkin. Buat toko baju renang, kayaknya ada yang salah.
Gimana contohnya di dataset toko_berkah?
Dataset toko_berkah yang dipakai di NgulikSQL punya 4.812 baris transaksi selama enam bulan. Waktu pertama kali aku terima file mentahnya, hasil pengecekan checklist ini kayak gini:
| Masalah | Jumlah baris kena | Persen |
|---|---|---|
| Duplikat ID transaksi | 63 | 1,3% |
| Nama produk beda kapitalisasi | 417 | 8,7% |
Kolom total gak sama qty x harga | 149 | 3,1% |
| Tanggal kosong | 28 | 0,6% |
| Harga satuan 0 rupiah | 11 | 0,2% |
Yang paling ngeselin bukan duplikatnya. Yang 417 baris itu.
Gara-gara kapitalisasi beda, laporan produk terlaris nunjukin "Minyak Goreng" di posisi 4. Setelah dirapikan dan digabung sama "minyak goreng" dan "MINYAK GORENG", produk itu naik jadi nomor 1 dengan selisih 340 unit dari juara sebelumnya.
Satu langkah cleaning, kesimpulan bisnisnya berubah total.
Apa kesalahan umum waktu data cleaning?
Nimpa file asli. Selalu simpan data mentah apa adanya. Cleaning dikerjain di salinan. Kalau ada yang salah, kamu masih bisa balik.
Hapus duluan, tanya belakangan. Baris aneh itu kadang justru temuan paling menarik. Fraud, bug sistem, atau perilaku pelanggan yang gak terduga.
Cleaning manual di Excel tanpa jejak. Bulan depan datanya masuk lagi dan kamu lupa udah ngapain aja. Tulis langkahnya jadi query atau script.
Percaya sama data yang katanya udah bersih. Cek sendiri. Selalu. Definisi "bersih" tiap orang beda.
Isi nilai kosong pakai nol. Nol itu angka, artinya "gak ada penjualan". Kosong artinya "gak tau". Dua hal berbeda, dan nyampur keduanya bakal narik rata-rata kamu turun.
FAQ
Data cleaning itu apa sih?
Data cleaning adalah proses ngecek dan benerin data mentah sebelum dipakai analisa. Yang dibenerin: baris duplikat, format tanggal yang beda-beda, nilai kosong, angka yang gak masuk akal, dan penulisan kategori yang gak konsisten. Tujuannya satu, biar angka yang keluar dari analisa kamu bisa dipercaya.
Berapa lama waktu yang habis buat data cleaning?
Dari pengalamanku, 40 sampai 60 persen waktu proyek analisa habis di cleaning. Ini normal. File export dari kasir, form Google, atau sistem lama hampir gak pernah rapi. Kalau langkah cleaning-nya kamu simpan jadi script, batch berikutnya bisa dibersihin dalam hitungan menit.
Duplikat harus selalu dihapus?
Nggak. Cek dulu apakah itu duplikat beneran atau transaksi sah yang kebetulan mirip. Yang duplikat beneran biasanya punya ID transaksi sama persis. Jadi patokan hapusnya pakai kolom ID unik, bukan pakai kemiripan isi baris.
Missing value lebih baik dihapus atau diisi?
Tergantung berapa banyak dan kenapa kosong. Kalau yang kosong cuma 1 sampai 2 persen dan acak, hapus barisnya aman. Kalau lebih dari 10 persen, hapus artinya kamu buang informasi. Isi pakai median lebih aman dari rata-rata soalnya median gak gampang ketarik outlier.
Data cleaning bisa diotomatisasi?
Bisa. Kalau sumber datanya sama tiap bulan, tulis query SQL atau script yang jalanin semua langkah secara urut. Sekali nulis, tiap bulan tinggal jalanin. Yang gak bisa diotomatisasi cuma langkah terakhir: cek logika bisnis. Itu tetap butuh mata orang yang paham konteksnya.
Mulai dari mana?
Tiga hal yang paling sering nyelametin aku: cek jumlah baris di awal, simpan data mentah apa adanya, dan validasi kolom hitungan sebelum bikin laporan.
Kalau kamu mau bersihin data teks yang berantakan — nomor HP campur aduk, email typo, alamat gak konsisten — pola teks bisa nolong banyak. Lanjut baca Regex di SQL.
Buat referensi fungsi pembersih teks yang lain, ada di halaman fungsi COALESCE. Dokumentasi resmi pandas juga punya panduan bagus soal penanganan data hilang kalau kamu kerjanya di Python.
Simpan checklist ini. Buka tiap kali dapat file baru.
Mau praktek langsung? Mulai latihan SQL gratis
Latihan interaktif, langsung di browser.
Artikel Terkait
Cara Baca Laporan Data dengan Kritis: 7 Pertanyaan Wajib
Angka di laporan bisa bener semua tapi tetap nyesatin. Ini 7 pertanyaan yang aku pakai tiap kali dapat laporan dari orang lain.
Produktivitas Data Analyst: Sistem Kerja biar Gak Kebanjiran Request
Sistem 5 langkah buat data analyst yang tiap hari kebanjiran request dadakan — dari intake form, matriks prioritas, sampai cara nolak tanpa bikin stakeholder ngambek.
Bias dalam Analisis Data: 8 Jebakan yang Sering Gak Kerasa
Delapan bias analisis data yang paling sering nyelip di kerjaan analyst — dari survivorship bias sampai Simpson's paradox — plus cara ngecek dan ngebenerinnya.