Seleksi Kondisi #
Pendahuluan #
PHP menyediakan beberapa cara untuk melakukan seleksi kondisi. Seleksi kondisi memungkinkan kode untuk membuat keputusan dan menjalankan pernyataan yang berbeda berdasarkan kondisi tertentu. Berikut adalah jenis-jenis seleksi kondisi dalam PHP beserta contohnya:
If #
Pernyataan if
digunakan untuk menjalankan blok kode jika kondisi tertentu bernilai true
.
<?php
$umur = 20;
if ($umur >= 18) {
echo "Anda sudah dewasa.";
}
?>
If…Else #
Pernyataan if...else
digunakan untuk menjalankan satu blok kode jika kondisi bernilai true
, dan blok kode lainnya jika kondisi bernilai false
.
<?php
$umur = 16;
if ($umur >= 18) {
echo "Anda sudah dewasa.";
} else {
echo "Anda masih anak-anak.";
}
?>
If…Elseif…Else #
Pernyataan if...elseif...else
digunakan untuk memeriksa beberapa kondisi. Jika kondisi pertama false
, maka akan memeriksa kondisi berikutnya, dan seterusnya.
<?php
$nilai = 85;
if ($nilai >= 90) {
echo "Nilai A";
} elseif ($nilai >= 80) {
echo "Nilai B";
} elseif ($nilai >= 70) {
echo "Nilai C";
} else {
echo "Nilai D";
}
?>
Switch #
Pernyataan switch
digunakan untuk memilih salah satu dari banyak blok kode yang akan dijalankan berdasarkan nilai dari ekspresi.
<?php
$warna = "merah";
switch ($warna) {
case "merah":
echo "Warna favorit Anda adalah merah.";
break;
case "biru":
echo "Warna favorit Anda adalah biru.";
break;
case "hijau":
echo "Warna favorit Anda adalah hijau.";
break;
default:
echo "Warna favorit Anda bukan merah, biru, atau hijau.";
}
?>
Ternary Operator #
Operator ternary adalah cara singkat untuk menulis pernyataan if...else
. Bentuknya adalah kondisi ? nilai_true : nilai_false
.
<?php
$umur = 20;
$status = ($umur >= 18) ? "Dewasa" : "Anak-anak";
echo $status; // Output: Dewasa
?>
Null Coalescing Operator #
Operator null coalescing (??
) digunakan untuk memeriksa apakah sebuah variabel memiliki nilai atau tidak. Jika variabel tidak memiliki nilai (null), maka nilai default akan diberikan.
<?php
$nama = $_GET['nama'] ?? 'Tamu';
echo "Hello, " . $nama; // Output: Hello, Tamu jika $_GET['nama'] tidak diatur
?>
Contoh Penggunaan #
Berikut adalah contoh program PHP yang menggunakan berbagai jenis seleksi kondisi:
<?php
$nilai = 75;
$umur = 16;
$warna_favorit = "biru";
// If
if ($nilai >= 60) {
echo "Anda lulus.<br>";
}
// If...Else
if ($umur >= 18) {
echo "Anda sudah dewasa.<br>";
} else {
echo "Anda masih anak-anak.<br>";
}
// If...Elseif...Else
if ($nilai >= 90) {
echo "Nilai A<br>";
} elseif ($nilai >= 80) {
echo "Nilai B<br>";
} elseif ($nilai >= 70) {
echo "Nilai C<br>";
} else {
echo "Nilai D<br>";
}
// Switch
switch ($warna_favorit) {
case "merah":
echo "Warna favorit Anda adalah merah.<br>";
break;
case "biru":
echo "Warna favorit Anda adalah biru.<br>";
break;
case "hijau":
echo "Warna favorit Anda adalah hijau.<br>";
break;
default:
echo "Warna favorit Anda bukan merah, biru, atau hijau.<br>";
}
// Ternary Operator
$status = ($umur >= 18) ? "Dewasa" : "Anak-anak";
echo "Status: " . $status . "<br>";
// Null Coalescing Operator
$nama = $_GET['nama'] ?? 'Tamu';
echo "Hello, " . $nama . "<br>";
?>
Operator match
#
PHP 8 memperkenalkan ekspresi match
, yang mirip dengan pernyataan switch
tetapi dengan beberapa perbedaan penting. match
lebih fleksibel dan ekspresif, serta mendukung pengembalian nilai dan pemeriksaan identitas (strict type checking
).
Perbedaan match
dan switch
#
-
Pemeriksaan Identitas:
switch
menggunakan pemeriksaan kesetaraan lemah (==
), sedangkanmatch
menggunakan pemeriksaan kesetaraan ketat (===
).
-
Ekspresi:
match
adalah ekspresi, artinya mengembalikan nilai dan dapat disimpan dalam variabel atau digunakan langsung dalam ekspresi lain.
-
Tidak Memerlukan
break
:- Tidak seperti
switch
,match
tidak memerlukanbreak
karena setiap kasus hanya boleh memiliki satu ekspresi atau pernyataan yang dijalankan.
- Tidak seperti
-
Multi-kondisi:
match
mendukung beberapa nilai untuk satu hasil.
Contoh Penggunaan match
#
Berikut adalah beberapa contoh penggunaan match
dalam PHP:
-
Dasar Penggunaan
match
:<?php $status_kode = 200; $pesan = match ($status_kode) { 200 => 'OK', 301 => 'Moved Permanently', 404 => 'Not Found', 500 => 'Internal Server Error', default => 'Unknown Status Code' }; echo $pesan; // Output: OK ?>
-
Menggunakan Beberapa Nilai untuk Satu Hasil:
<?php $angka = 2; $hasil = match ($angka) { 1, 3, 5, 7, 9 => 'Ganjil', 2, 4, 6, 8, 10 => 'Genap', default => 'Tidak Diketahui' }; echo $hasil; // Output: Genap ?>
-
Menggunakan Ekspresi
match
dengan Ekspresi Lain:<?php $hari = 'Sabtu'; echo 'Besok adalah ' . match ($hari) { 'Senin' => 'Selasa', 'Selasa' => 'Rabu', 'Rabu' => 'Kamis', 'Kamis' => 'Jumat', 'Jumat' => 'Sabtu', 'Sabtu' => 'Minggu', 'Minggu' => 'Senin', default => 'hari yang tidak diketahui' }; // Output: Besok adalah Minggu ?>
-
Menggunakan Fungsi di dalam
match
:<?php function get_pesan($kode) { return match ($kode) { 200 => 'OK', 301 => 'Moved Permanently', 404 => 'Not Found', 500 => 'Internal Server Error', default => 'Unknown Status Code' }; } echo get_pesan(404); // Output: Not Found ?>
-
Menggunakan Variabel dalam
match
:<?php $kode_warna = 'B'; $warna = match ($kode_warna) { 'R' => 'Merah', 'G' => 'Hijau', 'B' => 'Biru', default => 'Tidak Diketahui' }; echo $warna; // Output: Biru ?>
Ekspresi match
di PHP 8 adalah tambahan yang kuat dan fleksibel untuk seleksi kondisi, menawarkan keunggulan seperti pemeriksaan identitas ketat, pengembalian nilai langsung, dan kemudahan penggunaan tanpa perlu break
. Ini membuat kode lebih bersih, lebih mudah dipelihara, dan lebih aman dari kesalahan logika.
Kesimpulan #
PHP menyediakan beberapa cara untuk melakukan seleksi kondisi, termasuk if
, if...else
, if...elseif...else
, switch
, ternary operator, dan null coalescing operator. Memahami cara kerja dan penggunaan seleksi kondisi ini akan membantu Anda menulis kode yang lebih fleksibel dan dinamis.