Null Value
Null Value adalah representasi dari "data yang nggak ada" atau "belum diisi" dalam database. Ini bukan angka nol, bukan string kosong, dan punya sifat unik yang sering bikin bingung.
NULL itu salah satu konsep paling sederhana sekaligus paling sering disalahpahami di dunia database. Kalau kamu pernah nulis query SQL dan hasilnya aneh saat ada nilai NULL di kolom, kamu nggak sendiri. Banyak data practitioner berpengalaman pun masih perlu double-check cara NULL berperilaku.
NULL Bukan Nol, Bukan Kosong
| Nilai | Maknanya | Contoh |
|---|---|---|
| NULL | Nilai tidak ada atau tidak diketahui | Nomor telepon belum diisi |
| 0 | Angka nol yang valid | Transaksi dengan diskon 0% |
| '' (empty string) | String kosong tapi sengaja ada | Komentar yang dikosongkan oleh user |
| 'NULL' (string literal) | Teks "NULL" bukan nilai NULL yang sebenarnya | Kesalahan input yang sering terjadi |
Bayangkan kamu bikin survei. Ada responden yang nulis "0 anak" (punya anak tapi jumlahnya nol) itu angka 0 yang valid. Tapi responden yang nggak jawab pertanyaannya sama sekali? Itu NULL, karena kita nggak tahu jawabannya.
Sifat Unik NULL: Three-Valued Logic
NULL di SQL punya perilaku yang beda dari nilai biasa. Logika SQL pakai Three-Valued Logic: TRUE, FALSE, dan UNKNOWN.
Perbandingan apapun dengan NULL menghasilkan UNKNOWN, bukan TRUE atau FALSE. Makanya:
- NULL = NULL menghasilkan UNKNOWN (bukan TRUE!)
- NULL != NULL juga menghasilkan UNKNOWN
- NULL + 1 = NULL (NULL "menular" dalam operasi aritmatika)
Karena itu, untuk cek NULL kamu pakai IS NULL atau IS NOT NULL, bukan = NULL.
NULL dalam Fungsi Agregat
| Fungsi | Perilaku dengan NULL |
|---|---|
| SUM, AVG, MIN, MAX | Otomatis mengabaikan NULL |
| COUNT(*) | Menghitung semua baris, termasuk yang punya NULL |
| COUNT(kolom) | Menghitung baris yang nilainya bukan NULL |
Ini penting banget! COUNT(*) dan COUNT(kolom) bisa kasih hasil yang beda kalau ada NULL di kolom tersebut. Banyak laporan yang salah gara-gara nggak aware soal perbedaan ini.
Kapan NULL Muncul?
NULL bisa muncul dari berbagai sumber:
- Field yang memang opsional dan belum diisi user
- Hasil LEFT JOIN yang nggak nemu pasangannya di tabel kanan
- Hasil fungsi yang nggak ketemu nilai (misalnya NULLIF)
- Data migration yang nggak lengkap
Cara Handle NULL dengan Baik
Beberapa pendekatan yang sering dipakai: gunakan COALESCE untuk substitusi NULL dengan nilai default yang masuk akal. Pakai IS NULL dan IS NOT NULL untuk filter yang benar. Dokumentasikan kolom mana yang memang boleh NULL dan apa artinya secara bisnis, biar tim lain nggak bingung.
Udah paham Null Value? Lanjut latihan SQL dan Excel yuk!
Latihan interaktif, langsung di browser.