Perbedaan If Else Dan Switch Case

Perbedaan If Else dan Switch Case dalam Pemrograman
Dalam pemrograman, kita sering dihadapkan pada situasi di mana program harus mengambil keputusan berdasarkan suatu kondisi. Dua struktur yang paling umum digunakan untuk ini adalah if else dan switch case.
Meskipun keduanya memiliki fungsi yang sama — mengeksekusi blok kode berdasarkan kondisi — terdapat perbedaan signifikan dalam cara penggunaan, performa, dan readability.
Artikel ini akan membahas perbedaan if else dan switch case secara mendalam dengan contoh di PHP dan JavaScript.
Saya sendiri baru benar-benar menghargai switch case setelah membaca kode orang lain yang penuh dengan elseif berantai — saat itulah saya sadar bahwa memilih struktur yang tepat bukan soal benar atau salah, tapi soal membuat kode lebih mudah dibaca dan dirawat. Artikel ini membahas hal yang sama dengan yang saya pelajari dari pengalaman itu.
1. Sekilas Tentang If Else
If else adalah struktur percabangan yang mengeksekusi blok kode jika kondisi bernilai true.
Sintaks Dasar
// PHP
if (kondisi) {
// kode jika kondisi true
} else {
// kode jika kondisi false
}
// Dengan elseif
if (kondisi1) {
// kode jika kondisi1 true
} elseif (kondisi2) {
// kode jika kondisi2 true
} else {
// kode jika semua false
}
// JavaScript
if (kondisi) {
// kode jika kondisi true
} else {
// kode jika kondisi false
}
Contoh If Else
$nilai = 85;
if ($nilai >= 90) {
echo "Grade A";
} elseif ($nilai >= 80) {
echo "Grade B";
} elseif ($nilai >= 70) {
echo "Grade C";
} elseif ($nilai >= 60) {
echo "Grade D";
} else {
echo "Grade E";
}
// Output: Grade B
2. Sekilas Tentang Switch Case
Switch case digunakan untuk mengeksekusi blok kode berdasarkan nilai tertentu dari sebuah ekspresi.
Sintaks Dasar
// PHP
switch (ekspresi) {
case nilai1:
// kode jika ekspresi == nilai1
break;
case nilai2:
// kode jika ekspresi == nilai2
break;
default:
// kode jika tidak ada yang cocok
}
// JavaScript
switch (ekspresi) {
case nilai1:
// kode
break;
case nilai2:
// kode
break;
default:
// kode default
}
Contoh Switch Case
$hari = 3;
switch ($hari) {
case 1:
echo "Senin";
break;
case 2:
echo "Selasa";
break;
case 3:
echo "Rabu";
break;
case 4:
echo "Kamis";
break;
case 5:
echo "Jumat";
break;
default:
echo "Akhir pekan";
}
// Output: Rabu
3. Tabel Perbandingan
| Aspek | if else | switch case |
|---|---|---|
| Kondisi | Mendukung ekspresi boolean (>, <, ==, !=, &&, ||) | Hanya perbandingan kesamaan (== atau ===) |
| Range nilai | Bisa — if ($x > 10 && $x < 20) | Tidak bisa — hanya nilai spesifik |
| Tipe data | Semua tipe data | Biasanya integer, string, char |
| Readability | Mudah untuk 1-3 kondisi | Jauh lebih rapi untuk 4+ cabang |
| Performa | Semua kondisi diperiksa berurutan | Langsung lompat ke case yang cocok (jump table) |
| Break | Tidak perlu | Diperlukan (kecuali fall-through) |
| Operator logika | Didukung (&&, ||) | Tidak didukung langsung |
4. Kapan Menggunakan Masing-masing?
Gunakan if else ketika:
- Kondisi melibatkan operator perbandingan (>, <, >=, <=)
- Range nilai — misal
if ($umur >= 17 && $umur <= 30) - Operator logika —
&&,||,! - Kondisi kompleks — melibatkan beberapa variabel sekaligus
- Hanya 1-3 cabang — lebih sederhana dan cepat ditulis
// Cocok untuk if else
if ($umur >= 17 && $umur <= 60) {
echo "Usia produktif";
} elseif ($umur > 60) {
echo "Lansia";
} else {
echo "Belum cukup umur";
}
Gunakan switch case ketika:
- Banyak cabang (4+) — switch case lebih rapi
- Nilai tetap/discrete — misal angka menu, kode status
- Perbandingan kesamaan —
$x == nilai1,$x == nilai2 - Fall-through logic — satu blok untuk beberapa nilai
// Cocok untuk switch case
switch ($kode_status) {
case 200:
echo "OK";
break;
case 201:
echo "Created";
break;
case 400:
echo "Bad Request";
break;
case 401:
echo "Unauthorized";
break;
case 404:
echo "Not Found";
break;
case 500:
echo "Internal Server Error";
break;
default:
echo "Unknown";
}
5. Fall-Through di Switch Case
Salah satu fitur switch case yang unik adalah fall-through — jika tidak ada break, eksekusi akan lanjut ke case berikutnya:
$nilai = 'B';
switch ($nilai) {
case 'A':
case 'B':
case 'C':
echo "Lulus";
break;
case 'D':
echo "Remidi";
break;
case 'E':
echo "Tidak lulus";
break;
}
// Output: Lulus (karena B, C, dan A masuk ke blok yang sama)
Ini sangat berguna ketika beberapa nilai memiliki perlakuan yang sama.
6. Contoh di JavaScript
If Else JavaScript
let role = "admin";
if (role === "admin" || role === "superadmin") {
console.log("Akses penuh");
} else if (role === "editor") {
console.log("Edit konten");
} else if (role === "user") {
console.log("Baca saja");
} else {
console.log("Akses ditolak");
}
Switch Case JavaScript
let browser = "chrome";
switch (browser) {
case "chrome":
case "edge":
console.log("Chromium-based");
break;
case "firefox":
console.log("Gecko-based");
break;
case "safari":
console.log("WebKit-based");
break;
default:
console.log("Browser tidak dikenal");
}
// Output: Chromium-based
7. Studi Kasus: Menu Aplikasi
Bandingkan kedua pendekatan untuk kode yang sama:
Dengan if else
$menu = 2;
if ($menu == 1) {
echo "Tambah data";
} elseif ($menu == 2) {
echo "Lihat data";
} elseif ($menu == 3) {
echo "Edit data";
} elseif ($menu == 4) {
echo "Hapus data";
} else {
echo "Menu tidak valid";
}
Dengan switch case
$menu = 2;
switch ($menu) {
case 1:
echo "Tambah data";
break;
case 2:
echo "Lihat data";
break;
case 3:
echo "Edit data";
break;
case 4:
echo "Hapus data";
break;
default:
echo "Menu tidak valid";
}
Manakah yang lebih rapi? Untuk kasus 4+ cabang dengan nilai spesifik, switch case jelas lebih mudah dibaca.
8. Tips dan Praktik Terbaik
- If else untuk logika kompleks, switch case untuk pencocokan nilai
- Jangan lupa break di switch case kecuali sengaja fall-through
- Selalu sediakan default di switch case untuk menangani nilai tak terduga
- Switch case strict comparison — di JavaScript gunakan
switch(x)bukanswitch(== x) - Ternary operator untuk if else satu baris:
$status = ($umur >= 17) ? "Dewasa" : "Anak-anak";
Lupa menulis break di switch case adalah bug paling licik yang pernah saya temui, karena tidak menghasilkan error — kode tetap berjalan, tapi hasilnya salah secara diam-diam. Kalau output program Anda aneh tanpa alasan jelas, periksa dulu baris break 🙂.
Kesimpulan
If else dan switch case adalah alat untuk membuat keputusan dalam program.
Pilih if else jika:
- Kondisi menggunakan >, <, >=, <=, &&, ||
- Melibatkan range nilai
- Hanya 1-3 cabang sederhana
Pilih switch case jika:
- Mencocokkan nilai spesifik (== atau ===)
- Memiliki 4+ cabang
- Ingin kode yang lebih rapi dan mudah dibaca
Tidak ada yang “lebih baik” secara mutlak — pilih yang paling sesuai dengan situasi Anda.

