Operator dalam PHP
Operator digunakan untuk melakukan operasi pada variabel dan nilai. PHP memiliki berbagai jenis operator yang dapat digunakan untuk berbagai keperluan pemrograman.
Jenis-jenis Operator
PHP mendukung berbagai jenis operator yang dikelompokkan berdasarkan fungsinya:
- Operator Aritmatika
- Operator Penugasan (Assignment)
- Operator Perbandingan
- Operator Increment/Decrement
- Operator Logika
- Operator String
- Operator Array
- Operator Kondisional (Ternary)
- Operator Null Coalescing
1. Operator Aritmatika
Operator aritmatika digunakan untuk melakukan operasi matematika dasar.
Operator | Nama | Contoh | Hasil |
---|---|---|---|
+ | Penjumlahan | $a + $b | Jumlah dari $a dan $b |
- | Pengurangan | $a - $b | Selisih dari $a dan $b |
* | Perkalian | $a * $b | Hasil kali dari $a dan $b |
/ | Pembagian | $a / $b | Hasil bagi dari $a dan $b |
% | Modulus (Sisa bagi) | $a % $b | Sisa pembagian $a dengan $b |
** | Eksponen (Pangkat) | $a ** $b | $a pangkat $b |
<?php
$a = 10;
$b = 3;
echo "a = $a, b = $b<br>";
echo "a + b = " . ($a + $b) . "<br>"; // Output: 13
echo "a - b = " . ($a - $b) . "<br>"; // Output: 7
echo "a * b = " . ($a * $b) . "<br>"; // Output: 30
echo "a / b = " . ($a / $b) . "<br>"; // Output: 3.3333333333333
echo "a % b = " . ($a % $b) . "<br>"; // Output: 1
echo "a ** b = " . ($a ** $b) . "<br>"; // Output: 1000
?>
2. Operator Penugasan (Assignment)
Operator penugasan digunakan untuk menetapkan nilai ke variabel.
Operator | Contoh | Sama dengan |
---|---|---|
= | $a = $b | $a = $b |
+= | $a += $b | $a = $a + $b |
-= | $a -= $b | $a = $a - $b |
*= | $a *= $b | $a = $a * $b |
/= | $a /= $b | $a = $a / $b |
%= | $a %= $b | $a = $a % $b |
<?php
$a = 10;
echo "Nilai awal a: $a<br>";
$a += 5; // $a = $a + 5
echo "Setelah a += 5: $a<br>"; // Output: 15
$a -= 3; // $a = $a - 3
echo "Setelah a -= 3: $a<br>"; // Output: 12
$a *= 2; // $a = $a * 2
echo "Setelah a *= 2: $a<br>"; // Output: 24
$a /= 4; // $a = $a / 4
echo "Setelah a /= 4: $a<br>"; // Output: 6
$a %= 4; // $a = $a % 4
echo "Setelah a %= 4: $a<br>"; // Output: 2
?>
3. Operator Perbandingan
Operator perbandingan digunakan untuk membandingkan dua nilai dan mengembalikan nilai boolean (true atau false).
Operator | Nama | Contoh | Hasil |
---|---|---|---|
== | Sama dengan | $a == $b | TRUE jika $a sama dengan $b setelah konversi tipe |
=== | Identik | $a === $b | TRUE jika $a sama dengan $b, dan tipe datanya sama |
!= | Tidak sama dengan | $a != $b | TRUE jika $a tidak sama dengan $b setelah konversi tipe |
<> | Tidak sama dengan | $a <> $b | TRUE jika $a tidak sama dengan $b setelah konversi tipe |
!== | Tidak identik | $a !== $b | TRUE jika $a tidak sama dengan $b, atau tipe datanya berbeda |
< | Lebih kecil dari | $a < $b | TRUE jika $a lebih kecil dari $b |
> | Lebih besar dari | $a > $b | TRUE jika $a lebih besar dari $b |
<= | Lebih kecil atau sama dengan | $a <= $b | TRUE jika $a lebih kecil dari atau sama dengan $b |
>= | Lebih besar atau sama dengan | $a >= $b | TRUE jika $a lebih besar dari atau sama dengan $b |
<=> | Spaceship (Perbandingan tiga arah) | $a <=> $b | -1 jika $a < $b, 0 jika $a = $b, 1 jika $a > $b |
<?php
$a = 10;
$b = 5;
$c = "10";
// Fungsi untuk menampilkan hasil boolean dalam bentuk string
function showResult($result) {
return $result ? "TRUE" : "FALSE";
}
echo "a = $a, b = $b, c = \"$c\"<br><br>";
echo "a == b: " . showResult($a == $b) . "<br>"; // FALSE
echo "a == c: " . showResult($a == $c) . "<br>"; // TRUE (nilai sama setelah konversi)
echo "a === c: " . showResult($a === $c) . "<br>"; // FALSE (tipe data berbeda)
echo "a != b: " . showResult($a != $b) . "<br>"; // TRUE
echo "a !== c: " . showResult($a !== $c) . "<br>"; // TRUE (tipe data berbeda)
echo "a > b: " . showResult($a > $b) . "<br>"; // TRUE
echo "a < b: " . showResult($a < $b) . "<br>"; // FALSE
echo "a >= b: " . showResult($a >= $b) . "<br>"; // TRUE
echo "a <= b: " . showResult($a <= $b) . "<br>"; // FALSE
// Operator Spaceship (PHP 7+)
echo "a <=> b: " . ($a <=> $b) . "<br>"; // 1 (a > b)
echo "b <=> a: " . ($b <=> $a) . "<br>"; // -1 (b < a)
echo "a <=> c: " . ($a <=> $c) . "<br>"; // 0 (a = c setelah konversi)
?>
4. Operator Increment/Decrement
Operator increment dan decrement digunakan untuk menambah atau mengurangi nilai variabel sebesar 1.
Operator | Nama | Penjelasan |
---|---|---|
++$a | Pre-increment | Menambah $a sebesar 1, kemudian mengembalikan $a |
$a++ | Post-increment | Mengembalikan $a, kemudian menambah $a sebesar 1 |
--$a | Pre-decrement | Mengurangi $a sebesar 1, kemudian mengembalikan $a |
$a-- | Post-decrement | Mengembalikan $a, kemudian mengurangi $a sebesar 1 |
<?php
$a = 5;
echo "Nilai awal: a = $a<br><br>";
// Post-increment
$b = $a++;
echo "Setelah \$b = \$a++:<br>";
echo "a = $a<br>"; // 6
echo "b = $b<br><br>"; // 5
// Reset nilai a
$a = 5;
echo "Reset: a = $a<br><br>";
// Pre-increment
$c = ++$a;
echo "Setelah \$c = ++\$a:<br>";
echo "a = $a<br>"; // 6
echo "c = $c<br><br>"; // 6
// Reset nilai a
$a = 5;
echo "Reset: a = $a<br><br>";
// Post-decrement
$d = $a--;
echo "Setelah \$d = \$a--:<br>";
echo "a = $a<br>"; // 4
echo "d = $d<br><br>"; // 5
// Reset nilai a
$a = 5;
echo "Reset: a = $a<br><br>";
// Pre-decrement
$e = --$a;
echo "Setelah \$e = --\$a:<br>";
echo "a = $a<br>"; // 4
echo "e = $e<br>"; // 4
?>
5. Operator Logika
Operator logika digunakan untuk menggabungkan kondisi dan mengembalikan nilai boolean.
Operator | Nama | Contoh | Hasil |
---|---|---|---|
and | AND | $a and $b | TRUE jika $a dan $b keduanya TRUE |
or | OR | $a or $b | TRUE jika $a atau $b TRUE |
xor | XOR | $a xor $b | TRUE jika $a atau $b TRUE, tapi tidak keduanya |
&& | AND | $a && $b | TRUE jika $a dan $b keduanya TRUE |
|| | OR | $a || $b | TRUE jika $a atau $b TRUE |
! | NOT | !$a | TRUE jika $a FALSE, FALSE jika $a TRUE |
<?php
$a = true;
$b = false;
// Fungsi untuk menampilkan hasil boolean
function showBool($bool) {
return $bool ? "TRUE" : "FALSE";
}
echo "a = " . showBool($a) . ", b = " . showBool($b) . "<br><br>";
echo "a && b: " . showBool($a && $b) . "<br>"; // FALSE
echo "a || b: " . showBool($a || $b) . "<br>"; // TRUE
echo "a and b: " . showBool($a and $b) . "<br>"; // FALSE
echo "a or b: " . showBool($a or $b) . "<br>"; // TRUE
echo "a xor b: " . showBool($a xor $b) . "<br>"; // TRUE
echo "!a: " . showBool(!$a) . "<br>"; // FALSE
echo "!b: " . showBool(!$b) . "<br>"; // TRUE
// Contoh prioritas operator
$c = true;
$d = false;
echo "<br>c = " . showBool($c) . ", d = " . showBool($d) . "<br><br>";
// Perbedaan prioritas antara 'and' dan '&&'
echo "c = true && d = false: " . showBool($c && $d) . "<br>"; // FALSE
echo "c = true and d = false: " . showBool($c and $d) . "<br>"; // FALSE
$e = false;
$f = $e || true; // Prioritas lebih tinggi, f = true
$g = $e or true; // Prioritas lebih rendah, g = false
echo "<br>e = " . showBool($e) . "<br>";
echo "f = e || true: " . showBool($f) . "<br>"; // TRUE
echo "g = e or true: " . showBool($g) . "<br>"; // FALSE
?>
&&
dan ||
memiliki prioritas yang lebih tinggi daripada and
dan or
. Ini dapat menyebabkan perbedaan hasil dalam ekspresi kompleks.
6. Operator String
PHP menyediakan dua operator untuk string: concatenation (.) dan concatenation assignment (.=).
<?php
$a = "Hello";
$b = "World";
// Operator concatenation (.)
$c = $a . " " . $b;
echo $c . "<br>"; // Output: Hello World
// Operator concatenation assignment (.=)
$a .= " " . $b;
echo $a; // Output: Hello World
?>
7. Operator Array
PHP memiliki beberapa operator khusus untuk bekerja dengan array.
Operator | Nama | Contoh | Hasil |
---|---|---|---|
+ | Union | $a + $b | Gabungan dari $a dan $b, kunci dari $a dipertahankan |
== | Equality | $a == $b | TRUE jika $a dan $b memiliki pasangan kunci/nilai yang sama |
=== | Identity | $a === $b | TRUE jika $a dan $b memiliki pasangan kunci/nilai yang sama, dalam urutan yang sama, dan dengan tipe yang sama |
!= | Inequality | $a != $b | TRUE jika $a tidak sama dengan $b |
<> | Inequality | $a <> $b | TRUE jika $a tidak sama dengan $b |
!== | Non-identity | $a !== $b | TRUE jika $a tidak identik dengan $b |
<?php
// Operator Union (+)
$a1 = array("a" => "apple", "b" => "banana");
$a2 = array("b" => "blueberry", "c" => "cherry");
$result = $a1 + $a2;
echo "Union dari \$a1 dan \$a2:<br>";
print_r($result); // Output: Array ( [a] => apple [b] => banana [c] => cherry )
echo "<br><br>";
// Operator Equality (==) dan Identity (===)
$a3 = array("apple", "banana");
$a4 = array("0" => "apple", "1" => "banana");
$a5 = array(1 => "banana", 0 => "apple");
echo "\$a3 == \$a4: " . (($a3 == $a4) ? "TRUE" : "FALSE") . "<br>"; // TRUE
echo "\$a3 === \$a4: " . (($a3 === $a4) ? "TRUE" : "FALSE") . "<br>"; // TRUE
echo "\$a3 == \$a5: " . (($a3 == $a5) ? "TRUE" : "FALSE") . "<br>"; // TRUE
echo "\$a3 === \$a5: " . (($a3 === $a5) ? "TRUE" : "FALSE") . "<br>"; // FALSE (urutan berbeda)
?>
8. Operator Kondisional (Ternary)
Operator kondisional (ternary) mengevaluasi ekspresi dan mengembalikan satu dari dua nilai tergantung hasilnya.
<?php
// Sintaks: (condition) ? value_if_true : value_if_false;
$nilai = 75;
$hasil = ($nilai >= 60) ? "Lulus" : "Gagal";
echo "Hasil: $hasil<br>"; // Output: Hasil: Lulus
// Contoh lain
$umur = 20;
$kategori = ($umur < 13) ? "Anak-anak" : (($umur < 18) ? "Remaja" : "Dewasa");
echo "Kategori: $kategori<br>"; // Output: Kategori: Dewasa
// Versi singkat (PHP 5.3+)
$nama = null;
$display = $nama ?: "Tamu";
echo "Halo, $display"; // Output: Halo, Tamu
?>
$var ?: "default"
setara dengan $var ? $var : "default"
dan berguna untuk memberikan nilai default untuk variabel.
9. Operator Null Coalescing
Operator null coalescing (??) adalah fitur dari PHP 7.0+ yang memeriksa apakah operand kiri ada dan tidak NULL. Jika iya, mengembalikan operand kiri, jika tidak, mengembalikan operand kanan.
<?php
// Sintaks: $variable ?? "default"
// Contoh 1: Variabel tidak ada
$nama = $_GET['nama'] ?? "Tamu";
echo "Halo, $nama<br>"; // Output: Halo, Tamu (jika $_GET['nama'] tidak ada)
// Contoh 2: Variabel ada tapi NULL
$nama = null;
$display = $nama ?? "Tamu";
echo "Selamat datang, $display<br>"; // Output: Selamat datang, Tamu
// Contoh 3: Variabel ada dan tidak NULL
$nama = "Andi";
$display = $nama ?? "Tamu";
echo "Selamat datang, $display<br>"; // Output: Selamat datang, Andi
// Contoh 4: Dapat dirantai
$a = null;
$b = null;
$c = "Nilai C";
$result = $a ?? $b ?? $c ?? "default";
echo "Result: $result"; // Output: Result: Nilai C
?>
$nama ??= "Tamu"; // Sama dengan: $nama = $nama ?? "Tamu";
10. Prioritas Operator
Prioritas operator menentukan urutan evaluasi ekspresi. Operator dengan prioritas lebih tinggi akan dievaluasi terlebih dahulu.
Prioritas | Operator | Keterangan |
---|---|---|
1 (tertinggi) | ** (Right associative) | Eksponen |
2 | ++ -- ~ (Right) ! (Right) | Increment/Decrement, Bitwise NOT, Logical NOT |
3 | * / % | Perkalian, Pembagian, Modulus |
4 | + - . | Penjumlahan, Pengurangan, String concatenation |
5 | << >> | Bitwise shift |
6 | < <= > >= <=> | Perbandingan |
7 | == != === !== <> | Equality |
8 | & | Bitwise AND |
9 | ^ | Bitwise XOR |
10 | | | Bitwise OR |
11 | && | Logical AND |
12 | || | Logical OR |
13 | ?? | Null Coalescing |
14 | ? : (Right) | Ternary |
15 | = += -= *= etc. (Right) | Assignment |
16 | and | Logical AND |
17 | xor | Logical XOR |
18 (terendah) | or | Logical OR |
<?php
// Contoh prioritas operator
$a = 5;
$b = 3;
$c = 2;
$result1 = $a + $b * $c; // Perkalian dilakukan terlebih dahulu
echo "5 + 3 * 2 = $result1<br>"; // Output: 11
$result2 = ($a + $b) * $c; // Kurung diutamakan
echo "(5 + 3) * 2 = $result2<br>"; // Output: 16
// Prioritas antara assignment dan logical operator
$d = false;
$e = true;
$f = $d || $e; // || diproses sebelum =
echo "f = " . ($f ? "true" : "false") . "<br>"; // Output: true
$g = $d or $e; // = diproses sebelum or
echo "g = " . ($g ? "true" : "false") . "<br>"; // Output: false
?>
Praktik Terbaik
- Gunakan tanda kurung untuk memperjelas prioritas operator dalam ekspresi kompleks
- Lebih baik menggunakan
===
dan!==
daripada==
dan!=
untuk menghindari masalah konversi tipe - Gunakan operator
&&
dan||
daripadaand
danor
karena prioritas yang lebih jelas - Manfaatkan operator null coalescing (
??
) untuk menyederhanakan kode dalam situasi yang tepat - Hindari penggunaan operator terlalu banyak dalam satu baris untuk menjaga keterbacaan kode
- Berikan spasi di sekitar operator untuk meningkatkan keterbacaan
Kesimpulan
Operator adalah komponen penting dalam pemrograman PHP yang memungkinkan Anda melakukan berbagai operasi pada variabel dan nilai. Memahami berbagai jenis operator dan prioritasnya akan membantu Anda menulis kode yang efisien dan bebas dari kesalahan logika.
Sebelumnya:
Variabel dan Tipe DataSelanjutnya:
Struktur KontrolPath Belajar PHP
Memahami apa itu PHP dan cara instalasinya
Mempelajari cara menulis kode PHP yang benar
Memahami alur program dan pengorganisasian kode
Membuat aplikasi web interaktif
Mengelola data dan keamanan aplikasi
Topik lanjutan untuk pengembangan professional
Tutorial Saat Ini
Level: Pemula
Cocok untuk yang baru mulai belajar PHP