Perbedaan If Else Dan Switch Case

| | Algoritma
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

Aspekif elseswitch case
KondisiMendukung ekspresi boolean (>, <, ==, !=, &&, ||)Hanya perbandingan kesamaan (== atau ===)
Range nilaiBisa — if ($x > 10 && $x < 20)Tidak bisa — hanya nilai spesifik
Tipe dataSemua tipe dataBiasanya integer, string, char
ReadabilityMudah untuk 1-3 kondisiJauh lebih rapi untuk 4+ cabang
PerformaSemua kondisi diperiksa berurutanLangsung lompat ke case yang cocok (jump table)
BreakTidak perluDiperlukan (kecuali fall-through)
Operator logikaDidukung (&&, ||)Tidak didukung langsung

4. Kapan Menggunakan Masing-masing?

Gunakan if else ketika:

  1. Kondisi melibatkan operator perbandingan (>, <, >=, <=)
  2. Range nilai — misal if ($umur >= 17 && $umur <= 30)
  3. Operator logika&&, ||, !
  4. Kondisi kompleks — melibatkan beberapa variabel sekaligus
  5. 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:

  1. Banyak cabang (4+) — switch case lebih rapi
  2. Nilai tetap/discrete — misal angka menu, kode status
  3. Perbandingan kesamaan$x == nilai1, $x == nilai2
  4. 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

  1. If else untuk logika kompleks, switch case untuk pencocokan nilai
  2. Jangan lupa break di switch case kecuali sengaja fall-through
  3. Selalu sediakan default di switch case untuk menangani nilai tak terduga
  4. Switch case strict comparison — di JavaScript gunakan switch(x) bukan switch(== x)
  5. 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.

Sigit Nurhanafi avatar
Full-stack developer & technical writer. Berpengalaman di PHP, Laravel, NodeJS, MySQL, dan Python. Aktif menulis tutorial pemrograman dan maintaining open-source projects di PemburuKode sejak 2021.