Belajar PHP Part 16 : Operator Logika dalam PHP
Operator logika digunakan untuk membandingkan 2 inputan kondisi boolean, yakni true atau false. Dalam tutorial kali ini kita akan membahas tentang jenis dan cara penggunaan operator logika (Logical Operators) dalam PHP, serta memahami pengertian prinsip short-circuit dalam operasi logika PHP.
Pengertian Operator Logika dalam PHP
Operator Logika adalah operator yang digunakan untuk membandingkan 2 kondisi logika, yaitu logika benar (TRUE) dan logika salah (FALSE). Operator logika sering digunakan untuk kodisi IF, atau untuk keluar dari proses perulangan (looping).
Jenis operand dalam operator logika ini adalah variabel dengan tipe boolean. Namun jika operand bukan boolean, akan “dikonversi” menjadi boolean oleh PHP (aturan “konversi” ini telah kita bahas pada tutorial tentang tipe data boolean PHP).
Jenis-jenis Operator Logika dalam PHP
Jenis-jenis operator logika dalam PHP dapat dilihat dari tabel berikut:
Perbedaan dari operator AND dengan &&, dan OR dengan || terkait dengan cara penulisan dan aturan “kekuatan” operator. Operator && dan || memiliki “kekuatan” lebih tinggi dari pada AND dan OR, sehingga baris perintah: $a AND $b || $c, akan dieksekusi oleh PHP menjadi $a AND ($b || $c).
Dari tabel diatas, saya hanya memberikan hasil untuk kondisi TRUE, maka selain kondisi tersebut, hasilnya adalah FALSE.
Cara Penggunaan Operator Logika di dalam PHP
Berikut adalah contoh kode program, cara penggunaan operator logika dalam PHP:
Pengertian Operator Logika dalam PHP
Operator Logika adalah operator yang digunakan untuk membandingkan 2 kondisi logika, yaitu logika benar (TRUE) dan logika salah (FALSE). Operator logika sering digunakan untuk kodisi IF, atau untuk keluar dari proses perulangan (looping).
Jenis operand dalam operator logika ini adalah variabel dengan tipe boolean. Namun jika operand bukan boolean, akan “dikonversi” menjadi boolean oleh PHP (aturan “konversi” ini telah kita bahas pada tutorial tentang tipe data boolean PHP).
Jenis-jenis Operator Logika dalam PHP
Jenis-jenis operator logika dalam PHP dapat dilihat dari tabel berikut:
Perbedaan dari operator AND dengan &&, dan OR dengan || terkait dengan cara penulisan dan aturan “kekuatan” operator. Operator && dan || memiliki “kekuatan” lebih tinggi dari pada AND dan OR, sehingga baris perintah: $a AND $b || $c, akan dieksekusi oleh PHP menjadi $a AND ($b || $c).
Dari tabel diatas, saya hanya memberikan hasil untuk kondisi TRUE, maka selain kondisi tersebut, hasilnya adalah FALSE.
Cara Penggunaan Operator Logika di dalam PHP
Berikut adalah contoh kode program, cara penggunaan operator logika dalam PHP:
<?php
$hasil1 = true and false;
echo '$hasil1 = ';
echo var_dump($hasil1)."<br/>"; // $hasil1 = bool(true)
$hasil2 = (true and false);
echo '$hasil2 = ';
echo var_dump($hasil2)."<br/>"; // $hasil2 = bool(false)
$hasil3 = (true xor false);
echo '$hasil3 = ';
echo var_dump($hasil3)."<br/>"; // $hasil3 = bool(true)
$hasil4 = (false or true && false);
echo '$hasil4 = ';
echo var_dump($hasil4)."<br/>"; // $hasil4 = bool(false)
$a=true;
$b=false;
$hasil5 = ($a and $b || $a or b);
echo '$hasil5 = ';
echo var_dump($hasil5); // $hasil5 = bool(true)
?>
Saya akan membahas kode program diatas:
Pada baris 2, operasi logika yang dijalankan adalah $hasil1 = true and false, yang harusnya $hasil1 akan bernilai false (berdasarkan prinsip operator and: jika salah satu saja ada yang false, maka hasilnya adalah false)
Namun seperti yang terlihat dalam tampilan saat program dijalankan, variabel $hasil1 bernilai true!. Apa yang sebenarnya terjadi? Hal ini kembali kepada prinsip urutan prioritas operator.
Jika anda perhatikan tabel urutan operator pada tutorial urutan operator dalam PHP, operator assignment (pendefenisian variabel) yaitu menggunakan tanda sama dengan (=) memiliki priotitas lebih tinggi dari pada operator logika and. Sehingga yang sebenarnya diproses adalah ($hasil1 = true) and false, sehingga $hasil1 akan bernilai true.
Kesalahan pemograman seperti ini akan sulit dideteksi, sehingga anda disarankan menggunakan tanda kurung untuk menegaskan urutan program.
Pada baris ke-6, untuk variabel $hasil2 saya mengulangi operasi yang sama dengan baris 2, namun kali ini dengan menggunakan tanda kurung untuk memberitahukan kepada PHP bahwa operasi logikalah yang harus dijalankan pertama kali, baru setelah itu proses assigment yang kali ini berjalan sebagaimana harusnya (true and false menghasilkan false). Dan variabel $hasil2 bernilai false.
Pada baris ke-10, variabel $hasil3 bernilai true, karena operator xor akan menghasilkan true apabila salah satu operand bernilai true.
Untuk baris ke-14, $hasil4 = (false or true && false), urutan proses operasi dimulai terlebih dahulu pada operator && karena memiliki urutan prioritas lebih tinggi daripada operator or, sehingga yag diproses oleh PHP adalah (false or (true && false)), dan menghasilkan nilai false.
Pada contoh terakhir baris ke-20, operator || akan diproses terlebih dahulu, sehingga persamaanya menjadi $hasil5 = ($a and ($b || $a) or b).
Dalam membuat operasi logika ini, sedapat mungkin untuk mengujinya terlebih dahulu, karena kesalahan program pada logika akan sulit terdeteksi.
Pengertian Prinsip Short Circuit dalam operasi Logika PHP
PHP menjalankan operasi logika dengan prinsip short-circuit, yaitu jika dengan memeriksa satu perintah saja sudah didapati hasil logikanya, maka perintah lain tidak akan dijalankan. Contohnya:
Jika pada saat program dijalankan $a sudah bernilai FALSE, maka variabel $b, $c dan $d tidak akan diperiksa lagi, karena apapun nilai variabel tersebut, hasilnya akan tetap FALSE.
Hal ini akan berguna untuk kasus-kasus tertentu, seperti contoh berikut:
Fungsi exit() dalam kode PHP tersebut (yang akan membuat program PHP berhenti diproses) tidak akan dijalankan selama fopen($filename) bernilai true. Fungsi short-circuit ini sering digunakan dalam contoh-contoh aplikasi PHP.
Dalam tutorial ini kita telah mempelajari operator logika dalam PHP, untuk selanjutnya kita akan membahas operator perbandingan.
Pada baris 2, operasi logika yang dijalankan adalah $hasil1 = true and false, yang harusnya $hasil1 akan bernilai false (berdasarkan prinsip operator and: jika salah satu saja ada yang false, maka hasilnya adalah false)
Namun seperti yang terlihat dalam tampilan saat program dijalankan, variabel $hasil1 bernilai true!. Apa yang sebenarnya terjadi? Hal ini kembali kepada prinsip urutan prioritas operator.
Jika anda perhatikan tabel urutan operator pada tutorial urutan operator dalam PHP, operator assignment (pendefenisian variabel) yaitu menggunakan tanda sama dengan (=) memiliki priotitas lebih tinggi dari pada operator logika and. Sehingga yang sebenarnya diproses adalah ($hasil1 = true) and false, sehingga $hasil1 akan bernilai true.
Kesalahan pemograman seperti ini akan sulit dideteksi, sehingga anda disarankan menggunakan tanda kurung untuk menegaskan urutan program.
Pada baris ke-6, untuk variabel $hasil2 saya mengulangi operasi yang sama dengan baris 2, namun kali ini dengan menggunakan tanda kurung untuk memberitahukan kepada PHP bahwa operasi logikalah yang harus dijalankan pertama kali, baru setelah itu proses assigment yang kali ini berjalan sebagaimana harusnya (true and false menghasilkan false). Dan variabel $hasil2 bernilai false.
Pada baris ke-10, variabel $hasil3 bernilai true, karena operator xor akan menghasilkan true apabila salah satu operand bernilai true.
Untuk baris ke-14, $hasil4 = (false or true && false), urutan proses operasi dimulai terlebih dahulu pada operator && karena memiliki urutan prioritas lebih tinggi daripada operator or, sehingga yag diproses oleh PHP adalah (false or (true && false)), dan menghasilkan nilai false.
Pada contoh terakhir baris ke-20, operator || akan diproses terlebih dahulu, sehingga persamaanya menjadi $hasil5 = ($a and ($b || $a) or b).
Dalam membuat operasi logika ini, sedapat mungkin untuk mengujinya terlebih dahulu, karena kesalahan program pada logika akan sulit terdeteksi.
Pengertian Prinsip Short Circuit dalam operasi Logika PHP
PHP menjalankan operasi logika dengan prinsip short-circuit, yaitu jika dengan memeriksa satu perintah saja sudah didapati hasil logikanya, maka perintah lain tidak akan dijalankan. Contohnya:
$hasil = $a AND $b AND $c AND $d;
Jika pada saat program dijalankan $a sudah bernilai FALSE, maka variabel $b, $c dan $d tidak akan diperiksa lagi, karena apapun nilai variabel tersebut, hasilnya akan tetap FALSE.
Hal ini akan berguna untuk kasus-kasus tertentu, seperti contoh berikut:
<?php
$result = fopen($filename) or exit();
?>
Fungsi exit() dalam kode PHP tersebut (yang akan membuat program PHP berhenti diproses) tidak akan dijalankan selama fopen($filename) bernilai true. Fungsi short-circuit ini sering digunakan dalam contoh-contoh aplikasi PHP.
Dalam tutorial ini kita telah mempelajari operator logika dalam PHP, untuk selanjutnya kita akan membahas operator perbandingan.
No comments