Meneruskan seri belajar PHP, pada kesempatan kali ini kita akan membahas tentang operator pada PHP
Pada PHP, terdapat banyak operator, pada tulisan yang singkat ini kita akan membahas beberapa yang sering digunakan.
I. Operator Perbandingan Pada PHP
Seperti namanya, operator perbandingan digunakan untuk membandingkan dua buah nilai pada PHP dan hasilnya berupa boelan true
yang berarti benar atau false
yang berarti salah.
Berikut ini daftar operator perbandingan pada PHP:
Operator | Keterangan |
---|---|
$a == $b | TRUE jika nilai $a dan $b sama tanpa membedakan tipe data nya |
$a === $b | TRUE jika nilai dan tipe data $a dan $b sama |
$a != $b | TRUE jika nilai $a dan $b tidak sama tanpa membedakan tipe data nya |
$a <> $b | TRUE jika nilai $a dan $b tidak sama tanpa membedakan tipe data nya |
$a !== $b | TRUE jika nilai dan tipe data $a dan $b tidak sama |
$a < $b | TRUE jika nilai $a lebih kecil daripada $b |
$a > $b | TRUE jika nilai $a lebih besar daripada $b |
$a <= $b | TRUE jika nilai $a lebih kecil atau sama dengan $b |
$a >= $b | TRUE jika nilai $a lebih besar atau sama dengan $b |
$a <=> $b | TRUE jika nilai $a lebih besar, sama dengan, atau lebih besar dari $b . Mulai tersedia pada PHP 7 |
Contoh:
<?php
if ($_POST['password'] == '1234')
{
echo 'Login sukses';
}
Pada contoh diatas, jika user mengirim password dengan nilai 1234 maka akan muncul pesan Login sukses
Type Juggling
Proses ini dinamakan type juggling. Hal ini tidak terjadi jika operator yang digunakan === atau !==
Hal ini terkadang menyebabkan hasil perbandingan tidak sesuai dengan yang diharapkan.
Contoh:
$usia = '5 Tahun';
$batas = 5;
if ($batas == $usia) {
echo 'Usia sesuai;
} else {
echo 'Usia tidak sesuai';
}
// Browser akan mencetak output Usia sesuai;
Pada contoh diatas, php akan mengubah variabel $usia
dari tipe data string menjadi menjadi number (integer) sehingga hasil perbandingan menghasilkan nilai true
Nah, agar hasil perbandingan sesuai dengan nilai dan tipe data nya, maka kita gunakan operator ===
atau !==
Jika contoh diatas kita ubah menjadi $batas === $usia
, maka hasil yang kita peroleh adalah Usia tidak sesuai
0 = false
Selain type juggling, terdapat hal penting yang perlu diperhatikan ketika melakukan evaluasi suatu nilai, yaitu PHP akan menganggap 0
bernilai false
.
Hal ini akan aneh jika kita mengecek apakah sebuah string mengandung kata tertentu menggunakan fungsi strpos()
Contoh:
$css = 'https://jagowebdev.com/includes/css/style.css';
$site_url = 'https://jagowebdev.com';
if (strpos($css, $site_url)) {
echo 'Domain sama';
} else {
echo 'Domain tidak sama';
}
Contoh diatas akan menghasilkan output Domain tidak sama
, karena strpos($css, $site_url)
menghasilkan 0
(posisi teks berada di karakter ke-0), nah karena 0
bernilai false
, maka PHP akan mengeksekusi statement else
Untuk itu kita perlu operator pembanding !==
sebagai berikut:
$css = 'https://jagowebdev.com/includes/css/style.css';
$site_url = 'https://jagowebdev.com';
if (strpos($css, $site_url) !== false) {
echo 'Domain sama';
} else {
echo 'Domain tidak sama';
}
II. Operator Aritmatika Pada PHP
Selanjutnya mari kita bahas tentang operator aritmatika pada PHP.
Masih ingat pelajaran matematika SD? yup, operator ini persis seperti operator bilangan pada mata pelajaran tersebut.
Operator aritmatika terdiri dari:
Operator | Keterangan |
---|---|
$a + $b | Penjumlahan |
$a – $b | Pengurangan |
$a * $b | Perkalian |
$a / $b | Pembagian |
$a % $b | Modulus. Sisa bagi antara $a dan $b |
$a ** $b | Exponentiation. Diperkenalkan mulai PHP 5.6 |
Operator modulus ( % ) biasanya digunakan untuk mengidentifikasi apakah suatu bilangan berupa bilangan ganjil atau genap, contoh:
<?php
$bariske = 5;
if ($bariske % 2) {
echo 'Ganjil';
} else {
echo 'Genap';
}
// Hasil Ganjil
Pada praktiknya operator modulus digunakan untuk memberikan class tertentu pada baris yang ganjil atau genap, contoh:
<?php
for ($i = 1; $i <= 10, $i++) {
if ($i % 2) {
echo '<div class="baris-ganjil"></div>';
} else {
echo '<div></div>';
}
}
Operator Prioritas
Operator diatas memiliki prioritas tertentu dimana perkalian dan pembagian akan lebih diutamakan daripada penjumlahan dan pengurangan.
Misal
<?php
$a = 2 + 10 / 2;
echo $a; // Hasil 7
$b = 2 + 10 * 2;
echo $a; // Hasil 22
Jika kita ingin menjumlahkan angka 2 dengan 10 kemudian membaginya dengan 5, maka kita bisa membuat pengelompokan dengan memberikan tanda kurung.
<?php
$a = (2 + 10) / 2;
echo $a; // Hasil 6
Type Juggling
Seperti pada operator perbandingan, ketika menemukan string pada operasi aritmatika maka PHP akan melakukan type juggling, yaitu mengkonversi string menjadi number.
Contoh:
$usia = '7.5 Tahun';
$max = 3 + $usia;
echo $max; // 10.5
Hati-hati bahwa di bahasa pemrograman lain seperti Javascript, hal ini tidak berlaku, jika kita ingin menjumlahkan bilangan maka keduanya harus memiliki tipe data number.
III. Operator Logika Pada PHP
Pembahasan selanjutnya adalah pembahasan tentang operator logika pada PHP.
Perbandingan operator logika digunakan untuk membandingkan dua buah bilai boelan (true
atau false
) dengan hasil nilai juga berupa boelan (true
atau false
)
Tabel berikut ini merupakan tabel daftar operator logika pada PHP
Operator | Keterangan |
---|---|
$a AND $b | Bernilai TRUE jika $a dan $b bernilai TRUE |
$a OR $b | Bernilai TRUE jika $a atau $b bernilai TRUE |
$a && $b | Bernilai TRUE jika $a dan $b bernilai TRUE, $a memiliki prioritas |
$a || $b | Bernilai TRUE jika $a atau $b bernilai TRUE, $a memiliki prioritas |
$a XOR $b | Bernilai TRUE jika $a atau $b bernilai TRUE, tapi tidak keduanya |
!$a | Not. Bernilai TRUE jika $a bernilai FALSE |
Contoh operator not:
<?php
if (!$_POST['email']) {
echo 'Email harus diisi';
}
Note:perlu diperhatikan bahwa PHP akan mengevaluasi operand mulai dari kiri ke kanan, hal ini akan berguna ketika kita mengevaluasi nilai dimana operator yang digunakan semuanya &&
atau AND
1 Penggunaan &&, ||, AND, dan OR
Kita bebas menggunakan && atau AND, || atau OR, keduanya memiliki performa yang sama dan bersifat short-circuit
artinya jika salah satu ekspresi telah memenuhi kondisi yang disyaratkan, maka ekspresi lain tidak dievaluasi, misal:
<?php
$level = 1;
if ($level == 1 || $level == 2) {
echo 'Selamat datang admin';
}
Pada contoh diatas, $level == 2 tidak dievaluasi karena ekspresi 1 ($level == 1
) sudah terpenuhi
Yang umum adalah AND dan OR digunakan untuk control flow seperti ketika membuat koneksi pada database. contoh:
$conn = mysqli_connect('localhost', 'root', '', 'database') or die('Gagal terhubung dengan database');
Sedangkan && dan || untuk kondisi true
dan false
, seperti contoh sebelumnya:
$level = 1;
if ($level == 1 || $level == 2) {
echo 'Selamat datang admin';
}
Pada contoh diatas browser akan mencetak teks Selamat datang admin karena logika if
bernilai true
.
Logika if diatas dapat diibaratkan if (true || false) { .. }
Nah, seperti disampaikan sebelumnya, pada logika OR, jika salah salah satu bernilai true
, maka hasilnya akan true
2 Operator Logika Dengan AND Semua
Pada logika yang berisi AND semua maka jika salah satu operand bernilai false, maka PHP akan langsung menghasilkan nilai false
tanpa memeriksa operand lainnya
Contoh:
<?php
$level = 2;
if (check_exists() && check_status() && $level == 1) {
echo 'Selamat datang admin';
}
Pada contoh diatas PHP akan mejalankan fungsi check_exists()
jika bernilai true
maka akan mengecek nilai check_status()
, jika bernilai true
maka akan mengecek nilai $level
Nah karena menjalankan fungsi membutuhkan proses tambahan, maka sebaiknya memperhatikan urutan operand, intinya, yang paling sederhana di letakkan di paling depan.
Pada contoh diatas, lebih optimal jika kita mengubah urutan operand menjadi:
<?php
$level = 2;
if ($level == 1 && check_exists() && check_status()) {
echo 'Selamat datang admin';
}
Karena variabel level bernilai 2, maka operand pertama akan bernilai false
, sehingga PHP tidak akan mengecek operand yang lain.
3 Hati-Hati Penulisan Operator Assignment Pada Perbandingan
Terkadang operator pembanding yang kita tulis tidak pas, sehingga berubah menjadi operator assignment, yang akan selalu menghasilkan nilai true
Contoh:
$level = 1;
if ($level = 2) {
echo 'Selamat datang admin';
}
Pada contoh diatas, browser akan selalu mencetak output Selamat datang admin
karena statement if
selalu menghasilkan nilai true
($level = 2
seharusnya $level == 2
)
4 Pengelompokan Ekspresi
Ketika menggabungkan operator && dan || dalam satu statement, maka sebaiknya dikelompokkan sesuai dengan kriteria yang diinginkan, jika tidak maka akan memberikan hasil yang tidak sesuai yang diharapkan
Contoh misal hanya user dengan $level = 1
dan memiliki $hak_akses = 1
atau $hak_akses = 2
yang diijinkan masuk, jika kita tulis:
<?php
$level = 0;
$hak_akses = 2;
if ($level == 1 && $hak_akses == 1 || $hak_akses == 2) {
echo 'Login berhasil';
}
Maka browser akan mencetak Login berhasil
. Pada statemen diatas, user dengan level
apapun yang memiliki $hak_akses = 2
bisa masuk. Untuk itu, kita perlu mengelompokkannya menjadi:
<?php
$level = 0;
$hak_akses = 2;
if ($level == 1 && ( $hak_akses == 1 || $hak_akses == 2 )) {
echo 'Login berhasil';
}
IV. Operator Pada PHP – Increment dan Decrement
Operator ini digunakan untuk menambahkan atau mengurangkan nilai sebanyak 1 pada suatu variabel. Adapun jenis operator ini adalah sebagai berikut:
Operator | Nama | Keterangan |
---|---|---|
++$a | Pre Increment | Tambahkan 1 ke $a, kemudian tampilkan nilai $a |
$a++ | Post Increment | Tampilkan nilai $a, kemudian tambahkan 1 ke $a |
–$a | Pre Decrement | Kurangkan 1 dari $a, kemudian tampilkan nilai $a |
$a– | Post Decrement | Tampilkan $a, kemudian kurangkan 1 dari $a |
Perbedaan pre increment dan post increment
Pada pre increment, nilai variabel akan ditambahkan 1 baru kemudian siap digunakan, sebaliknya, untuk post increment, gunakan dulu nilai variabel kemudian baru ditambahkan dengan 1
Contoh:
<?php
$nomor = 1;
while($nomor <= 5) {
echo $nomor++;
}
Contoh diatas, akan menghasilkan angka 12345
Contoh 2:
<?php
$nomor = 1;
while($nomor <= 5) {
echo ++$nomor;
}
Contoh diatas akan menghasilkan 23456
V. Operator Assignment Pada PHP
Sesuai namanya “Assignment” operator ini digunakan untuk memberikan nilai pada suatu variabel. Operator dasarnya adalah tanda sama dengan ( =
)
Operator | Alias | Contoh |
---|---|---|
$a += $b | $a = $a + $b | $a += 2 |
$a -= $b | $a = $a – $b | $a -= 2 |
$a *= $b | $a = $a * $b | $a *= 2 |
$a /= $b | $a = $a / $b | $a /= 2 |
$a %= $b | $a = $a % $b | $a %= 2 |
Dalam praktiknya, operator ini sering digunakan ketika menjumlahkan nilai pada suatu perulangan, seperti ketika menjumlahkan data hasil query database.
Contoh:
<?php
$sql = 'SELECT * FROM sales';
$query = mysqli_query($sql);
$total = 0;
while($row = mysqli_fetch_array($query))
{
$total += $row['jml_bayar'];
}
Demikian pembahasan mengenai operator pada PHP, semoga bermanfaat.
Subscibe Now
Suka dengan artikel di Jagowebdev.com? jangan sampai ketinggalan, segera join ke milis kami untuk update informasi terbaru dari Jagowebdev.com