Memahami Operator Pada PHP – Panduan Lengkap

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

Penting diperhatikan bahwa ketika PHP membandingkan string dengan number, maka PHP otomatis  akan  mengubah string tersebut menjadi number.  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

Komitmen Kami: Kami senantiasa menghargai privasi Anda dan tidak akan membagikan identitas Anda ke pihak manapun.

Silakan tinggalkan komentar

Newsletter

Jadilah yang pertama tahu berita terbaru dari Jagowebdev.com