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:
switchmenggunakan pemeriksaan kesetaraan lemah (==), sedangkanmatchmenggunakan pemeriksaan kesetaraan ketat (===).
-
Ekspresi:
matchadalah ekspresi, artinya mengembalikan nilai dan dapat disimpan dalam variabel atau digunakan langsung dalam ekspresi lain.
-
Tidak Memerlukan
break:- Tidak seperti
switch,matchtidak memerlukanbreakkarena setiap kasus hanya boleh memiliki satu ekspresi atau pernyataan yang dijalankan.
- Tidak seperti
-
Multi-kondisi:
matchmendukung 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
matchdengan 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.