is not null mysql | java php laravel linux mysql sql bootstrap html css query java php laravel linux mysql sql bootstrap html css query: is not null mysql

Sunday, April 5, 2026

is not null mysql

๐Ÿ  Beranda Tutorial MySQL Artikel 12
๐ŸŸก Menengah ๐Ÿ—„️ SQL & Database ⏱️ ~8 Menit Baca ๐Ÿ“š Artikel 12 dari 28

Menangani Nilai Kosong:
IS NULL dan IS NOT NULL

Kuasai cara MySQL menangani kekosongan data — karena tahu bedanya "kosong" dan "tidak ada isinya" bisa menyelamatkan query kamu dari hasil yang salah.

4
Perintah SQL
8
Contoh Query
8
Menit Baca

Pernah pesan makanan online, terus di kolom "Catatan Pesanan" kamu biarkan kosong? Nah, kolom yang kamu biarkan kosong itu bukan berarti berisi kata "kosong" — melainkan benar-benar tidak ada isinya sama sekali. Inilah yang dalam dunia database disebut sebagai NULL.

Di artikel ke-12 dari seri Belajar Query SQL MySQL ini, kita akan bahas tuntas konsep NULL MySQL IS NULL — mulai dari apa itu NULL, kenapa NULL berbeda dari string kosong atau angka nol, hingga cara menggunakannya dalam query nyata di proyek toko online.

Kenapa ini penting? Karena banyak developer pemula yang terjebak — mereka nulis WHERE kolom = NULL dan heran kenapa hasilnya selalu kosong. Spoiler: cara itu tidak pernah bekerja. Yang benar adalah pakai IS NULL dan IS NOT NULL.

Di artikel ini kamu akan belajar:

  • Apa itu NULL dan bedanya dengan nilai kosong lainnya
  • Cara pakai IS NULL dan IS NOT NULL dalam query MySQL
  • Kombinasi dengan WHERE, UPDATE, dan fungsi IFNULL / COALESCE
  • Studi kasus nyata dari database toko online
⚡ Fakta Menarik tentang NULL!

NULL tidak sama dengan 0, '' (string kosong), atau false. NULL berarti "nilai tidak diketahui" atau "tidak ada nilai". Bahkan ekspresi NULL = NULL menghasilkan NULL (bukan TRUE!), karena kamu tidak bisa membandingkan "sesuatu yang tidak diketahui" dengan "sesuatu yang tidak diketahui". Ini adalah salah satu perilaku paling membingungkan — sekaligus paling penting — yang wajib kamu pahami di SQL.

1. Apa Itu NULL MySQL? Jangan Salah Kaprah!

Bayangkan kamu mengisi formulir pendaftaran online. Ada kolom "Nomor Telepon Alternatif" yang bersifat opsional. Kalau kamu biarkan kosong dan submit, database tidak akan menyimpan angka nol atau string kosong — dia akan menyimpan NULL, yang artinya "kolom ini tidak diisi / tidak diketahui nilainya".

Dalam konteks toko online, ada banyak kolom yang bisa bernilai NULL. Misalnya: kolom catatan_pesanan yang tidak wajib diisi, kolom tanggal_dikirim yang belum terisi karena pesanan belum diproses, atau kolom diskon yang belum ditentukan. Mari lihat struktur tabel dan datanya:

SQL
-- Buat tabel pesanan toko online
CREATE TABLE pesanan (
  id_pesanan   INT PRIMARY KEY,
  nama_pelanggan VARCHAR(100) NOT NULL,
  total_harga  DECIMAL(10,2) NOT NULL,
  catatan      TEXT,           -- boleh NULL
  tanggal_kirim DATE,          -- NULL jika belum dikirim
  diskon       DECIMAL(5,2)    -- NULL jika tidak ada diskon
);

-- Insert data contoh
INSERT INTO pesanan VALUES
(1, 'Andi Pratama',  250000, NULL,           '2024-03-10', 10.00),
(2, 'Budi Santoso',  175000, 'Tanpa bubble wrap', NULL,         NULL),
(3, 'Citra Dewi',    320000, 'Hadiah ulang tahun', '2024-03-11', NULL),
(4, 'Doni Firmansyah',98000, NULL,           NULL,         5.00),
(5, 'Eka Wulandari', 450000, NULL,           '2024-03-12', 15.00);

๐Ÿ“Š Hasil — Isi Tabel pesanan:

id_pesanan nama_pelanggan total_harga catatan tanggal_kirim diskon
1 Andi Pratama 250000.00 NULL 2024-03-10 10.00
2 Budi Santoso 175000.00 Tanpa bubble wrap NULL NULL
3 Citra Dewi 320000.00 Hadiah ulang tahun 2024-03-11 NULL
4 Doni Firmansyah 98000.00 NULL NULL 5.00
5 Eka Wulandari 450000.00 NULL 2024-03-12 15.00
๐Ÿ’ก TIP PRAKTIS

Kolom yang tidak memiliki constraint NOT NULL secara default akan menerima nilai NULL. Saat mendesain tabel, selalu pikirkan: "Apakah kolom ini bisa tidak diisi?" — jika tidak boleh kosong, tambahkan NOT NULL saat mendefinisikan kolom.

2. Menggunakan IS NULL — Cari Data yang Belum Terisi

Klausa IS NULL digunakan untuk mencari baris di mana kolom tertentu tidak memiliki nilai. Dalam konteks toko online, ini berguna misalnya untuk mencari pesanan yang belum dikirim (kolom tanggal_kirim masih NULL).

๐Ÿ“ SINTAKS IS NULL
SELECT kolom1, kolom2, ...    -- kolom yang ingin ditampilkan
FROM nama_tabel               -- dari tabel mana
WHERE nama_kolom IS NULL;    -- kondisi: kolom tersebut bernilai NULL

Sekarang praktik langsung. Kita mau cari pesanan mana yang belum dikirim (tanggal_kirim bernilai NULL) dan pesanan yang tidak punya catatan:

SQL
-- Cari pesanan yang BELUM dikirim
SELECT id_pesanan, nama_pelanggan, total_harga, tanggal_kirim
FROM pesanan
WHERE tanggal_kirim IS NULL;

๐Ÿ“Š Hasil Query:

id_pesanan nama_pelanggan total_harga tanggal_kirim
2 Budi Santoso 175000.00 NULL
4 Doni Firmansyah 98000.00 NULL
⚠️ PERINGATAN PENTING!

Jangan pernah nulis WHERE tanggal_kirim = NULL! Ekspresi ini tidak akan pernah menghasilkan baris apapun, karena NULL tidak bisa dibandingkan dengan operator =. MySQL tidak akan error, tapi hasilnya selalu kosong. Selalu gunakan IS NULL.

3. Menggunakan IS NOT NULL — Cari Data yang Sudah Ada Nilainya

Kebalikan dari IS NULL, klausa IS NOT NULL digunakan untuk mencari baris yang kolomnya sudah terisi nilai (bukan NULL). Analogi sederhananya: kalau IS NULL seperti mencari loker yang kosong, maka IS NOT NULL adalah mencari loker yang sudah ada isinya.

Misalnya, kita mau tampilkan pesanan yang sudah dikirim dan pesanan yang mendapat diskon:

SQL
-- Cari pesanan yang SUDAH dikirim
SELECT id_pesanan, nama_pelanggan, tanggal_kirim
FROM pesanan
WHERE tanggal_kirim IS NOT NULL;

-- Cari pesanan yang dapat diskon
SELECT id_pesanan, nama_pelanggan, total_harga, diskon
FROM pesanan
WHERE diskon IS NOT NULL;

๐Ÿ“Š Hasil — Pesanan yang Sudah Dikirim:

id_pesanan nama_pelanggan tanggal_kirim
1 Andi Pratama 2024-03-10
3 Citra Dewi 2024-03-11
5 Eka Wulandari 2024-03-12
๐Ÿ’ก TIP PRAKTIS

Kamu bisa menggabungkan IS NULL / IS NOT NULL dengan kondisi lain menggunakan AND dan OR. Misalnya: WHERE tanggal_kirim IS NULL AND total_harga > 150000 untuk mencari pesanan mahal yang belum dikirim.

4. Mengganti NULL dengan Nilai Default: IFNULL() dan COALESCE()

Terkadang kamu tidak hanya ingin mencari NULL, tapi juga ingin mengganti NULL dengan nilai yang lebih informatif saat ditampilkan. Misalnya, daripada menampilkan NULL di kolom catatan, lebih baik tampilkan teks "Tidak ada catatan". Di sinilah fungsi IFNULL() dan COALESCE() berperan.

Bayangkan IFNULL seperti operator ternary di pemrograman: "kalau nilainya NULL, pakai nilai ini; kalau tidak, pakai nilai aslinya." Sedangkan COALESCE lebih powerful karena bisa memeriksa banyak kolom sekaligus dan mengembalikan nilai pertama yang bukan NULL.

SQL
-- IFNULL: ganti NULL dengan nilai default
SELECT 
  nama_pelanggan,
  IFNULL(catatan, 'Tidak ada catatan') AS catatan,
  IFNULL(diskon, 0) AS diskon,
  IFNULL(tanggal_kirim, 'Belum dikirim') AS status_kirim
FROM pesanan;

-- COALESCE: cek beberapa kolom, ambil nilai pertama yang bukan NULL
SELECT 
  nama_pelanggan,
  COALESCE(catatan, tanggal_kirim, 'Tidak ada data') AS info_tambahan
FROM pesanan;

๐Ÿ“Š Hasil IFNULL — Tampilan Lebih Informatif:

nama_pelanggan catatan diskon status_kirim
Andi Pratama Tidak ada catatan 10.00 2024-03-10
Budi Santoso Tanpa bubble wrap 0.00 Belum dikirim
Citra Dewi Hadiah ulang tahun 0.00 2024-03-11
Doni Firmansyah Tidak ada catatan 5.00 Belum dikirim
Eka Wulandari Tidak ada catatan 15.00 2024-03-12
๐Ÿ”ฎ INSIGHT DARI LAPANGAN

Di proyek nyata, COALESCE() sangat berguna saat membuat laporan yang mengambil data dari beberapa kolom backup. Contoh: COALESCE(hp_utama, hp_alternatif, email, 'Tidak ada kontak') — sistem akan otomatis ambil kontak yang tersedia.

๐Ÿงช Langkah Praktikum: Dari Nol Sampai Bisa

1
Buat dan isi tabel dengan data yang mengandung NULL

Jalankan script CREATE TABLE dan INSERT VALUES seperti contoh di atas di MySQL Workbench atau phpMyAdmin kamu.

2
Coba filter dengan IS NULL dan IS NOT NULL

Jalankan query IS NULL dan IS NOT NULL, perhatikan perbedaan hasil yang didapat.

SELECT * FROM pesanan WHERE diskon IS NULL;
SELECT * FROM pesanan WHERE diskon IS NOT NULL;
3
Update data NULL dengan nilai baru menggunakan UPDATE + IS NULL

Misalkan pesanan Budi sudah dikirim. Update tanggal_kirim-nya:

UPDATE pesanan
SET tanggal_kirim = '2024-03-13'
WHERE id_pesanan = 2 AND tanggal_kirim IS NULL;
4
Tampilkan laporan dengan IFNULL / COALESCE

Buat query laporan yang menampilkan data lebih ramah pembaca dengan mengganti NULL menggunakan IFNULL:

SELECT nama_pelanggan,
  total_harga,
  IFNULL(diskon, 'Tidak ada') AS info_diskon
FROM pesanan
ORDER BY total_harga DESC;
Verifikasi hasil dan eksplorasi lebih lanjut

Coba kombinasikan IS NULL dengan COUNT() untuk menghitung berapa banyak data yang masih kosong: SELECT COUNT(*) FROM pesanan WHERE catatan IS NULL; — ini sangat berguna untuk audit kualitas data!

๐Ÿ“‹ Tabel Perbandingan & Ringkasan

Berikut ringkasan lengkap semua operator dan fungsi terkait NULL yang perlu kamu kuasai:

Operator / Fungsi Kegunaan Contoh Hasil
IS NULL Cek apakah nilai adalah NULL WHERE diskon IS NULL Baris tanpa diskon
IS NOT NULL Cek apakah nilai bukan NULL WHERE diskon IS NOT NULL Baris yang ada diskon
IFNULL(a, b) Ganti NULL dengan nilai default b IFNULL(catatan, '-') catatan atau '-'
COALESCE(a,b,c…) Ambil nilai pertama yang bukan NULL COALESCE(hp1, hp2, '-') Nilai kolom pertama yang ada
= NULL ❌ SALAH! Tidak berfungsi di SQL WHERE diskon = NULL Selalu 0 baris (salah!)
NULL MySQL IS NULL Konsep utama bab ini NULL IS NULL → TRUE TRUE (benar)
๐ŸŽฏ TIP #1 — NULL di Agregasi

Fungsi agregasi seperti SUM(), AVG(), dan COUNT(kolom) secara otomatis mengabaikan nilai NULL. Tapi COUNT(*) menghitung semua baris termasuk yang ada NULL. Pahami perbedaan ini untuk laporan yang akurat!

๐Ÿ”‘ TIP #2 — NULL & Performa

Kolom yang sering di-query dengan IS NULL sebaiknya diberi index. Namun perlu diingat, kolom dengan banyak NULL kadang tidak efisien diindex — pertimbangkan desain tabel yang baik dari awal daripada mengandalkan NULL berlebihan.

✅ Kesimpulan

  • NULL bukan string kosong, bukan angka nol — ia berarti "tidak ada nilai" atau "tidak diketahui".
  • Gunakan IS NULL dan bukan = NULL untuk mencari data kosong — ini adalah aturan wajib dalam NULL MySQL IS NULL.
  • IS NOT NULL berguna untuk memfilter data yang sudah terisi, sangat sering dipakai dalam laporan dan validasi data.
  • IFNULL() cocok untuk mengganti satu kolom NULL dengan nilai default; COALESCE() lebih fleksibel untuk banyak kolom.
  • Fungsi agregasi seperti AVG() dan SUM() mengabaikan NULL — pahami ini agar laporan statistik kamu tidak keliru.

Memahami NULL bukan sekadar hafalan sintaks — ini adalah fondasi penting untuk menulis query yang benar dan data yang bisa dipercaya. Seperti dalam kehidupan, kadang "tidak ada jawaban" itu beda dengan "jawabannya tidak ada." ๐Ÿ˜„

๐Ÿ“– ARTIKEL SELANJUTNYA DALAM SERI
Artikel 13: ORDER BY — Mengurutkan Hasil Query

Pelajari cara mengurutkan data hasil query secara ascending maupun descending, mengurutkan berdasarkan banyak kolom, dan tips optimasi performa ORDER BY.

Baca Selanjutnya →
#MySQL #SQL #Database #Query #Tutorial #NULL MySQL IS NULL #BelajarSQL #TokoOnline

No comments:

Post a Comment

saifiahmada.com adalah blog belajar programming Indonesia, membahas lengkap materi bahasa pemrograman: code HTML, CSS, Bootstrap, Desain, PHP, MySQL, coding Java, Query, SQL, dan dunia linux