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
Contoh Operator Aritmatika
<?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
Contoh Operator Penugasan
<?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
Contoh Operator Perbandingan
<?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)
?>
Perhatian: Penting untuk memahami perbedaan antara operator persamaan longgar (==) dan operator identitas ketat (===). Operator == hanya memeriksa nilai setelah konversi tipe, sedangkan === memeriksa nilai dan tipe data.

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
Contoh Operator Increment/Decrement
<?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
Contoh Operator Logika
<?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
?>
Perhatian: Operator && 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 (.=).

Contoh Operator String
<?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
Contoh Operator Array
<?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.

Operator Kondisional (Ternary)
<?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
?>
Tips: Sintaks singkat $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.

Operator Null Coalescing
<?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
?>
PHP 7.4+: Operator null coalescing assignment (??=) juga tersedia, yang menetapkan nilai ke variabel hanya jika variabel tersebut adalah NULL.
$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
Contoh Prioritas Operator
<?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
?>
Tips: Jika ragu tentang prioritas operator, sebaiknya gunakan tanda kurung untuk memastikan ekspresi dievaluasi dalam urutan yang diinginkan. Ini juga membuat kode lebih mudah dibaca.

Praktik Terbaik

  1. Gunakan tanda kurung untuk memperjelas prioritas operator dalam ekspresi kompleks
  2. Lebih baik menggunakan === dan !== daripada == dan != untuk menghindari masalah konversi tipe
  3. Gunakan operator && dan || daripada and dan or karena prioritas yang lebih jelas
  4. Manfaatkan operator null coalescing (??) untuk menyederhanakan kode dalam situasi yang tepat
  5. Hindari penggunaan operator terlalu banyak dalam satu baris untuk menjaga keterbacaan kode
  6. 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.


Path Belajar PHP
Step 1: Dasar-Dasar PHP

Memahami apa itu PHP dan cara instalasinya

๐Ÿ“„ Pengenalan๐Ÿ“„ Instalasi
Step 2: Sintaks & Variabel

Mempelajari cara menulis kode PHP yang benar

โœ… Sintaks Dasarโœ… Variabel๐Ÿ“ Operator
Step 3: Logika & Function

Memahami alur program dan pengorganisasian kode

๐Ÿ“„ Struktur Kontrol๐Ÿ“„ Function๐Ÿ“„ Array
Step 4: Web Development

Membuat aplikasi web interaktif

๐Ÿ“„ Form๐Ÿ“„ Session๐Ÿ“„ File
Step 5: Database & Keamanan

Mengelola data dan keamanan aplikasi

๐Ÿ“„ Database๐Ÿ“„ Pdo๐Ÿ“„ Security
Step 6: Advanced Topics

Topik lanjutan untuk pengembangan professional

๐Ÿ“„ Oop Basic๐Ÿ“„ Email๐Ÿ“„ Framework
Tips: Ikuti urutan step untuk hasil belajar optimal. Setiap step membangun pengetahuan dari step sebelumnya.
Tutorial Saat Ini
Level: Pemula

Cocok untuk yang baru mulai belajar PHP

Daftar Isi
Tips Belajar