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.. operator
assigment (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:
1
2
3
|
<?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.
Source:
http://www.duniailkom.com/pengertian-dan-jenis-jenis-operator-logika-dalam-php/