Bayangkan kamu sedang menganalisis data penjualan toko online Tokopedia dan menemukan banyak kolom yang kosong (NULL) - ada produk tanpa deskripsi, pelanggan tanpa nomor telepon, atau alamat pengiriman yang tidak lengkap.
Data yang tidak lengkap ini bisa merusak laporan dan analisis kamu. Untungnya, SQL memiliki fungsi COALESCE yang dapat mengatasi masalah ini dengan elegan, memberikan nilai alternatif ketika data utama kosong.

Apa itu Fungsi COALESCE?

COALESCE adalah fungsi SQL yang mengembalikan nilai pertama yang tidak NULL dari daftar parameter yang diberikan. Fungsi ini sangat berguna untuk menangani data yang hilang atau tidak lengkap dalam database.
Sintaks:
Fungsi ini akan:
  • Memeriksa value1, jika tidak NULL maka dikembalikan
  • Jika value1 NULL, memeriksa value2, dan seterusnya
  • Mengembalikan nilai pertama yang tidak NULL
  • Jika semua nilai NULL, mengembalikan NULL

Contoh Praktis

Mari kita lihat data pelanggan toko online "Berkah Jaya":

Contoh Penggunaan COALESCE:

Hasil:
nama
email
kontak_aktif
Budi Santoso
08123456789
Siti Aminah
08234567890
Agus Wijaya
NULL
08345678901
Dewi Sartika
08456789012
Hasil:
nama
kota_pengiriman
provinsi_pengiriman
Budi Santoso
Jakarta
DKI Jakarta
Siti Aminah
Kota tidak diketahui
Jawa Barat
Agus Wijaya
Surabaya
Jawa Timur
Dewi Sartika
Bandung
Jawa Barat

Kasus Penggunaan dalam Dunia Nyata

1. Laporan Penjualan dengan Data Produk Tidak Lengkap

Contoh data produk:
Hasil:
nama_produk
deskripsi_display
harga_jual
Kemeja Batik Pria
Kemeja batik premium dengan motif...
120000
Dress Wanita Casual
Dress casual untuk sehari-hari
200000
Celana Jeans Slim Fit
Produk berkualitas
150000
Hijab Segi Empat
Hijab premium berbahan voal import...
45000

2. Analisis Customer Service

Contoh data pesanan dan kontak:
Hasil:
nama_pelanggan
kontak_prioritas
status_pesanan
Ahmad Rizki
08123456789
Pending
Sari Dewi
08234567890
Pending
Budi Hartono
Pending

3. Laporan Keuangan dengan Data Tidak Lengkap

Contoh data laporan keuangan:
Hasil:
bulan
total_pendapatan
Januari
75000000
Februari
60000000
Maret
50000000
April
100000000

Pro Tips & Gotchas

✅ Tips Berguna:

  1. Gunakan dengan aggregate functions: AVG(COALESCE(rating, 3)) untuk memberikan rating default
  1. Gabungkan dengan CASE: Untuk logika yang lebih kompleks
  1. Urutan parameter penting: Letakkan nilai dengan prioritas tertinggi di depan

⚠️ Hal yang Perlu Diperhatikan:

  1. Tipe data harus kompatibel: Semua parameter harus memiliki tipe data yang dapat dikonversi
  1. Performance: Untuk dataset besar, pertimbangkan indexing pada kolom yang sering di-COALESCE
  1. NULL vs Empty String: COALESCE tidak mengganti string kosong (''), hanya NULL

Coba Sendiri! 💪

Diberikan tabel karyawan berikut:
Challenge:
  1. Buat query untuk menampilkan total gaji (gaji_pokok + tunjangan + bonus) dimana nilai NULL dianggap 0
  1. Buat kolom email_kontak yang menggunakan email_kantor sebagai prioritas pertama, jika kosong gunakan email_pribadi
  1. Tambahkan fallback "Email tidak tersedia" jika kedua email kosong
Jawaban:
Hasil yang diharapkan:
nama
total_gaji
email_kontak
Andi Pratama
9500000
Lisa Sari
9500000
Rudi Hermawan
12000000
Maya Indira
1000000
Email tidak tersedia
Fajar Nugraha
11800000
Dengan menguasai fungsi COALESCE, kamu dapat membuat laporan yang lebih robust dan mengatasi masalah data yang tidak lengkap dengan mudah. Selamat beranalisis! 🚀
Share this article

Mau tetep update soal ilmu data?

Join sama 3000+ subscriber lain yang udah update skill bareng Ngulik Data