Audit Nilai NULL di Seluruh Tabel dengan SQL (2026)
Blog/Tutorial SQL/Audit Nilai NULL di Seluruh Tabel dengan SQL (2026)

Audit Nilai NULL di Seluruh Tabel dengan SQL (2026)

BimaBima
·14 Desember 2026·10 menit baca

Penulis

Bima

Bima

Founder & Data Professional

Bagikan

TL;DR

Audit nilai NULL di SQL adalah proses ngitung berapa banyak data kosong di tiap kolom sebelum kamu mulai analisis. Cara dasarnya pakai COUNT(*) dikurangi COUNT(nama_kolom) buat tiap kolom. Buat tabel dengan banyak kolom, kamu bisa bikin query audit otomatis dari information_schema tanpa nulis satu-satu. Hasilnya kasih tahu kolom mana yang paling banyak bolong.

Audit nilai NULL di SQL adalah proses ngitung berapa banyak data kosong di tiap kolom sebelum kamu mulai analisis.

Ini langkah yang sering dilewat, padahal penting. Kolom yang separuh isinya kosong bisa bikin rata-rata melenceng dan kesimpulanmu salah tanpa kamu sadari.

Aku bakal tunjukin cara hitung NULL per kolom, ubah jadi persentase, sampai scan seluruh tabel otomatis tanpa nulis query satu-satu.

Apa itu nilai NULL di SQL?

NULL adalah penanda di SQL yang artinya nggak ada nilai sama sekali di sel itu. Beda dari nol atau string kosong. Nol itu angka, string kosong itu teks yang panjangnya nol, sedangkan NULL berarti datanya emang nggak ada atau belum diisi.

Bedanya kelihatan sepele, tapi ngefek ke perhitungan. Fungsi kayak AVG dan SUM otomatis ngelewatin NULL, jadi hasilnya bisa nyesatin kalau kamu nggak tahu ada berapa banyak yang kosong.

Gimana cara hitung NULL di satu kolom?

Cara paling ringkas pakai selisih COUNT(*) dan COUNT(nama_kolom). COUNT bintang ngitung semua baris, COUNT nama kolom cuma ngitung yang ada isinya. Selisihnya jumlah NULL.

SELECT
    COUNT(*) AS total_baris,
    COUNT(email) AS ada_isi,
    COUNT(*) - COUNT(email) AS jumlah_null
FROM pelanggan;

Kalau total_baris 1.000 dan ada_isi 720, berarti ada 280 baris yang email-nya kosong. Cara ini jalan di hampir semua database dan lebih rapi dibanding WHERE email IS NULL yang cuma ngasih satu angka.

Cara ubah jumlah NULL jadi persentase

Angka mentah kadang susah dibaca. Persentase lebih cepat nunjukin kolom mana yang parah. Kali 100 lalu bagi total baris. Jangan lupa pakai 100.0 biar hasilnya nggak dipotong jadi bilangan bulat.

SELECT
    ROUND(100.0 * (COUNT(*) - COUNT(email)) / COUNT(*), 1) AS persen_null_email,
    ROUND(100.0 * (COUNT(*) - COUNT(telepon)) / COUNT(*), 1) AS persen_null_telepon,
    ROUND(100.0 * (COUNT(*) - COUNT(alamat)) / COUNT(*), 1) AS persen_null_alamat
FROM pelanggan;

Hasilnya langsung kelihatan, misalnya email kosong 28%, telepon 5%, alamat 61%. Kolom alamat yang 61% kosong jelas nggak bisa dipercaya buat analisis apa pun.

Cara audit NULL di banyak kolom sekaligus

Format lebar tadi susah dibaca kalau kolomnya banyak. Aku lebih suka format panjang, satu baris per kolom, diurutkan dari yang paling bolong. Pakai UNION ALL buat numpuk hasilnya.

SELECT 'email' AS kolom, COUNT(*) - COUNT(email) AS jumlah_null FROM pelanggan
UNION ALL
SELECT 'telepon', COUNT(*) - COUNT(telepon) FROM pelanggan
UNION ALL
SELECT 'alamat', COUNT(*) - COUNT(alamat) FROM pelanggan
ORDER BY jumlah_null DESC;

Hasilnya rapi kayak laporan: nama kolom di kiri, jumlah NULL di kanan, diurutkan dari terparah. Ini format yang enak dibaca buat presentasi ke tim.

Audit NULL di seluruh tabel otomatis

Kalau tabelmu punya 40 kolom, nulis UNION ALL satu-satu bikin capek. Solusinya, biarin SQL yang nulisin query-nya buat kamu lewat information_schema. Ini katalog bawaan database yang nyimpan daftar semua kolom.

Query berikut nggak langsung ngitung NULL, tapi ngasih kamu teks query audit yang siap dijalanin (contoh PostgreSQL):

SELECT string_agg(
    'SELECT ''' || column_name || ''' AS kolom, ' ||
    'COUNT(*) - COUNT(' || quote_ident(column_name) || ') AS jumlah_null ' ||
    'FROM ' || quote_ident(table_name),
    ' UNION ALL ' || chr(10)
) AS query_audit
FROM information_schema.columns
WHERE table_name = 'pelanggan'
  AND table_schema = 'public';

Jalanin ini, kamu bakal dapat satu teks panjang berisi query UNION ALL buat semua kolom. Salin, tempel, jalanin lagi, dan kamu punya audit lengkap tanpa ngetik manual. Buat 40 kolom, ini nghemat belasan menit.

Kalau kamu masih baru sama konsep NULL atau SQL secara umum, cek dulu glossary biar nyambung sama query di atas.

Contoh kasus: audit data toko_berkah

Anggap kamu baru terima tabel pelanggan dari toko_berkah, UMKM sembako dengan 4.200 baris data member. Sebelum bikin kampanye promo, kamu audit dulu kelengkapan datanya.

Hasil audit-nya kayak gini:

KolomJumlah NULLPersen kosong
alamat2.56261,0%
email1.17628,0%
tanggal_lahir42010,0%
telepon2105,0%
nama00,0%

Temuannya jelas. Rencana kirim promo lewat email langsung goyah, soalnya 28% member nggak punya email. Sebaliknya, kolom telepon cuma 5% kosong, jadi kampanye lewat WhatsApp jauh lebih masuk akal. Satu audit 2 menit ngubah keputusan strategi promo. Ini alasan kenapa audit NULL bukan formalitas.

Kesalahan umum saat audit NULL

  • Nganggep string kosong sebagai NULL. COUNT tetap ngitung string kosong sebagai ada isi. Cek pakai WHERE kolom = '' kalau curiga.
  • Lupa 100.0 di persentase. Pakai 100 doang bikin hasilnya dipotong jadi 0. Selalu pakai 100.0.
  • Isi NULL asal nol. Ngisi kolom angka yang kosong dengan nol bisa nggeser rata-rata. Pikirin dulu apakah nol itu makna yang bener.
  • Audit sekali doang. Data baru masuk tiap hari. Audit ulang secara rutin, bukan cuma pas pertama terima data.

FAQ

Pertanyaan yang sering muncul soal audit NULL aku jawab di bagian FAQ, mulai dari beda NULL sama string kosong sampai apa yang harus dilakukan setelah nemu banyak data bolong.

Lanjut dari sini

Yang perlu diingat: hitung NULL pakai selisih COUNT, ubah jadi persentase biar gampang dibaca, dan pakai information_schema buat tabel berkolom banyak.

Audit NULL cuma satu bagian dari cek kualitas data. Lanjut baca query cek kualitas data di SQL buat cek duplikat dan nilai aneh juga. Latihan query-nya langsung di NgulikSQL.

Buat detail soal information_schema, cek dokumentasi PostgreSQL. Simpan artikel ini buat dipakai tiap kali terima dataset baru.

Coba Langsung

Mau praktek langsung? Mulai latihan SQL gratis

Latihan interaktif, langsung di browser.

Buka NgulikSQL →
Bagikan:
Bima
Ditulis oleh

Bima

Founder & Data Professional

Founder Ngulik Data. Passionate about making data analysis accessible for everyone.

Artikel terkait

Fungsi NTH_VALUE di SQL untuk Ambil Nilai ke-N (2026)
Tutorial SQL
29 Desember 2026•9 menit baca

Fungsi NTH_VALUE di SQL untuk Ambil Nilai ke-N (2026)

NTH_VALUE ngambil nilai baris ke-N dalam window, tapi frame default-nya sering bikin hasil NULL. Ini sintaksnya, cara benerin frame, plus contoh transaksi toko.

BimaBima
Running Max dan Min dengan Window Function SQL
Tutorial SQL
26 Desember 2026•11 menit baca

Running Max dan Min dengan Window Function SQL

Lacak nilai tertinggi dan terendah berjalan di SQL pakai window function MAX dan MIN OVER. Ini sintaks, frame clause, dan contoh rekor omzet toko.

BimaBima
Analisa Afinitas Produk (Cross-Sell) dengan SQL
Tutorial SQL
23 Desember 2026•12 menit baca

Analisa Afinitas Produk (Cross-Sell) dengan SQL

Produk apa yang sering dibeli bareng? Analisa afinitas produk pakai SQL self JOIN jawab itu. Ini cara hitung support, confidence, dan lift buat strategi cross-sell.

BimaBima
Kembali ke Blog
Ngulik Data logoNgulik Data

Platform edukasi data lengkap untuk professionals Indonesia. Belajar SQL, Data Analysis, dan lebih banyak lagi dengan praktek langsung dan feedback real-time.

© 2026 Ngulik Data. Semua hak dilindungi.

TAUTAN
BantuanHargaDatasetBlogAfiliasi
LEGAL
Syarat & KetentuanKebijakan Privasi
Ngulik Data
DatasetLeaderboardBlogStore