Tutorial PHP Dasar

Null Coalescing Operator

Pada video ini kita akan membahas mengenai Null Coalescing Operator. Operator ini digunakan untuk memeriksa apakah sebuah variable belum pernah diset atau bernilai null. Apabila iya, maka kita bisa memberikan nilai lainnya. Operator ini menggunakan simbol tanda tanya sebanyak 2 buah. Sebagai contoh penggunaannya:

echo $a ?? ‘Kosong’;

Artinya. Pertama PHP memeriksa dahulu apakah variable $a sudah pernah diset atau belum. Apabila belum, maka tampilkan string ‘kosong’. Apabila sudah diset, maka PHP memeriksa lagi apakah nilai dari variable $a adalah null, apabila iya, maka PHP menampilkan string ‘kosong’. Sedangkan kalau nilai dari variable $a bukan null, maka PHP menampilkan nilai dari variable A.

Mungkin teman-teman masih bingung mendengarkan teori ini. Agar lebih jelas, kita langsung masuk praktek saja ya.

Kita mulai dari file PHP kosong. Misalkan kita hendak menuliskan nilai dari variable name, maka kita gunakan perintah

echo $name . PHP_EOL;

Kita jalankan, maka keluar pesan error bahwa belum ada variable $name. Hal ini terjadi karena kita hendak mencetak variable yang masih belum pernah kita set. Nah, yang uniknya dari PHP, ternyata di PHP tidak ada sintaks untuk mendeklarasikan variable. Kalau misalkan di baris atasnya kita tambahkan perintah

$name;

Kita jalankan. Maka kita tetap mendapatkan hasil yang sama. Tidak ada variable $name.

Kalau dibahasa pemograman lain, sintaks seperti ini dianggap sebagai deklarasi variable. Artinya komputer sudah membuat variable $name, namun belum ada isinya. Sedangkan pada PHP, sintaks seperti ini diabaikan oleh komputer. Variable $name tetap dianggap tidak ada.

Apabila kita ingin membuat variable $name, maka kita harus mengisinya dengan suatu nilai. Nah, kalau kita masih belum tau apa nilai yang pas untuk variable name, maka kita mengisikannya dengan nilai null. Null ini berarti kosong atau belum memiliki nilai. Kita jalankan. Sekarang sudah tidak ada error ya. Namun tidak ada tampil apa-apa, karena nilainya kosong. Jadi PHP hanya membuat variable apabila kita mengisinya dengan sesuatu.

Kita ganti isi name menjadi ‘Andi’. Sekarang baru keluar nilainya ‘Andi’.

Variable yang sudah pernah kita buat, bisa kita hapus kembali menggunakan perintah unset. Misalnya, setelah kita membuat variable $name, kita tambahkan perintah

unset($name).

Semua perintah setelah unset sudah tidak mengenali variable $name. Jadi kalau kita jalankan script kita, maka kita kembali mendapatkan error tidak ada variable $name.

Untuk mencegah terjadinya error seperti ini, maka kita melakukan pemeriksaan apakah variable $name sudah pernah diset atau belum. Kita menggunakan perintah if dengan funtion isset, untuk memeriksa apakah variable $name sudah ada atau belum, dan kalau ternyata ada, barulah kita mencetak nilai dari variable $name. Sedangkan kalau belum ada, maka kita cetak kata ‘Belum ada variable name’.

if(isset($name))
  echo $name . PHP_EOL;
else
  echo 'Belum ada variable name' . PHP_EOL;

Sejak PHP versi 7, sudah ada sintaks baru dengan nama null coalesing operator. Perintah if seperti ini, bisa kita sederhanakan menjadi:

echo $name ?? 'Belum ada variable name'
  . PHP_EOL;

Perintah if dan perintah null coalesing operator ini akan memberikan hasil yang sama persis. Saya sengaja tidak mengkomentari salah satunya ya, dengan tujuan agar kita bisa melihat bahwa kedua perintah memberikan hasil yang sama persis.

Pertama kita coba kalau variable $name belum ada sama sekali, maka hasilnya adalah ‘Belum ada variable name’. Setelah itu kita tambahkan variable $name dengan isi null, maka hasilnya masih tetap sama ‘Belum ada variable name’. Sedangkan kalau variable $name kita isi dengan kata ‘Andi’, maka yang tampil adalah ‘Andi’.

Nantinya null coalesing operator ini akan sangat membantu kalau kita sudah memasuki pemograman web. Terutama pada saat kita mau menerima input dari user yang berupa checkbox. Apabila checkbox-nya tidak dicentang, maka variable dengan nama checkbox tersebut tidak diset sama sekali sehingga kita harus menggunakan null coalesing operator untuk mengisinya dengan nilai default.

2 Jam 41 Menit

Dengan menggunakan fasilitas tanya jawab, maka Anda bisa bertanya dan akan dijawab langsung oleh instruktur kursus.

Anda belum terdaftar pada kursus ini sehingga tidak bisa mengajukan pertanyaan.