Terkadang dalam sebuah pengolahan data dengan melibatkan database kita akan menemukan sebuah query dari hasil pengolahan data yang menghasilkan nilai keluaran (result) yang null. Hasil ini bukan berarti error, tetapi null adalah hasil query yang tidak mengeluarkan data. (ingat angka 0 (nol) tidak sama dengan null). Secara matematis null adalah himpunan kosong Ø. Tutorial berikut, akan mencoba membahas bagaimana kita mengatasi nilai null dari sebuah result query. Dalam hal ini kita akan mencoba mengganti result dari query yang menghasilkan nilai null dengan nilai 0 (nol). Ini diperlukan karena mungkin pada proses pengolahan data selanjutnya kita memerlukan angka 0 (nol) bukan null.
Contoh sederhana query yang menghasilkan nilai null adalah seperti berikut :
1 | select (1/0) as hasil; |
Query sederhana tersebut menghasilkan nilai null karena 1 dibagi 0 hasilnya adalah error. Nah, apabila kita ingin mengganti result dari query itu menjadi misalkan tulisan “ERROR Kang” maka kita bisa menggunakan fungsi MySql =IFNULL(). Fungsi ini akan mengganti result query yang bernilai null dengan nilai lain yang dimasukan ke dalam parameter fungsi tersebut.
Fungsi =IFNULL() memiliki dua parameter param1 dan param2. =IFNULL(param1, param2). Param1 merupakan query yang akan kita olah dari database dan param2 adalah nilai yang akan dikeluarkan apabila query yang kita hasilkan yang ada di param1 menghasilkan null . Jadi fungsi ini meng-cek apakah param1 menghasilkan nilai null, apabila benar maka fungsi ini akan mengeluarkan param2 sebagai result dari pengolahan data tersebut. Tetapi apabila param1 menghasilkan result, maka fungsi ini akan mengeluarkan result dari param1.
1 | SELECT IFNULL(1,0); |
Query ini akan menhasilkan nilai 1, karena param1 memiliki data yaitu angka 1.
1 | SELECT IFNULL(NULL,10); |
Query ini akan menghasilkan nilai 10, karena param1 merupakan null.
Jadi, apabila kita kembali ke contoh 1, query tersebut akan menghasilkan null. Apabila misalkan kita akan mengganti hasil dari query tersebut menjadi “Error Kang” script querynya adalah sebagai berikut :
1 | SELECT IFNULL((select 1/0),"error kang"); |
Fungsi dari query ini adalah untuk menghindari adanya result NULL dari sebuah query. Biasanya programmer akan mengganti NULL tersebut dengan nilai 0 (nol).
Berikut adalah contoh aplikasi penggunaan IFNULL dalam basis data.
1 2 3 4 5 6 | SELECT k.id_kar, k.nama_kar, (SELECT IFNULL((SELECT COUNT(id_anak)*gl.tunjangan_anak FROM tbl_anak ta WHERE ta.id_kar=k.id_kar AND gl.id_gol=k.id_gol),0)) AS tunjangan_anak FROM tbl_karyawan k, tbl_golongan gl, tbl_jabatan j WHERE k.id_gol=gl.id_gol AND j.id_jab=k.id_jab ORDER BY k.id_kar |
Query diatas akan menghasilkan field (ID_KAR, NAMA_KAR, TUNJANGAN_ANAK) dengan ketentuan jika seorang karyawan memiliki tunjangan anak maka nilai tunjangan anak tersebut akan ditampilkan tetapi apabila seorang karyawan belum memiliki anak maka dia tidak akan menerima tunjangan anak selanjutnya nilai tunjangan anak adalah 0 (nol)
No related posts.
kunjungan balik sodara, sory comment nya tdk nyambung dengan tulisan masalahnya tdk ngerti, thakss
sama-sama sebanyak yang kamu mau..
memang ini membahas function yang tersembunyi atau lebih tepatnya jarang dipake orang dalam mengoptimalkan basis data, karena kebanyakan menyerahkan semuanya di program…
ini yang gw cari,, gilaa…. you rock !!!
thank you bro…
sama-sama bro…
itulah gunanya sharing