Switch Statement

Switch Statement 🎛️

switch adalah alternatif untuk if...else if...else ketika kamu perlu membandingkan satu nilai dengan banyak kemungkinan yang sudah pasti.


Sintaks Dasar Switch

let hari = 'Senin';

switch (hari) {
  case 'Senin':
    console.log('Hari kerja pertama.');
    break;
  case 'Selasa':
    console.log('Hari kerja kedua.');
    break;
  case 'Rabu':
    console.log('Hari pertengahan minggu.');
    break;
  case 'Kamis':
    console.log('Hampir akhir pekan!');
    break;
  case 'Jumat':
    console.log('Hore, besok libur!');
    break;
  case 'Sabtu':
  case 'Minggu':
    console.log('Weekend!');
    break;
  default:
    console.log('Hari tidak dikenal.');
}

Pentingnya break

Tanpa break, eksekusi akan "jatuh" ke case berikutnya (fall-through):

let angka = 2;

switch (angka) {
  case 1:
    console.log('Satu');
    // tidak ada break — akan lanjut ke case 2!
  case 2:
    console.log('Dua');
    // tidak ada break — akan lanjut ke case 3!
  case 3:
    console.log('Tiga');
    break;
}
// Output: "Dua", "Tiga" — bukan hanya "Dua"!

Intentional fall-through — terkadang dipakai dengan sengaja:

let bulan = 4; // April

switch (bulan) {
  case 1:
  case 3:
  case 5:
  case 7:
  case 8:
  case 10:
  case 12:
    console.log('31 hari');
    break;
  case 4:
  case 6:
  case 9:
  case 11:
    console.log('30 hari'); // April masuk sini
    break;
  case 2:
    console.log('28 atau 29 hari');
    break;
}

Contoh Nyata: Status Pesanan

let statusPesanan = 'dikirim';

switch (statusPesanan) {
  case 'menunggu':
    console.log('⏳ Pesanan sedang menunggu konfirmasi');
    break;
  case 'diproses':
    console.log('🔄 Pesanan sedang diproses');
    break;
  case 'dikirim':
    console.log('🚚 Pesanan sedang dalam pengiriman');
    break;
  case 'selesai':
    console.log('✅ Pesanan telah diterima');
    break;
  case 'dibatalkan':
    console.log('❌ Pesanan telah dibatalkan');
    break;
  default:
    console.log('Status tidak dikenal');
}

Switch vs if...else if

// Switch lebih bersih untuk banyak nilai pasti
switch (kode) {
  case 200: console.log('OK'); break;
  case 201: console.log('Created'); break;
  case 404: console.log('Not Found'); break;
  case 500: console.log('Server Error'); break;
  default:  console.log('Status tidak dikenal');
}

// if...else if lebih cocok untuk kondisi rentang
if (nilai >= 90)      { grade = 'A'; }
else if (nilai >= 80) { grade = 'B'; }
else if (nilai >= 70) { grade = 'C'; }
Situasi Gunakan
Membandingkan satu variabel dengan banyak nilai pasti switch
Kondisi dengan rentang angka (>, <, >=) if...else if
Kondisi boolean yang kompleks (&&, ||) if...else if

💡 Tips: Selalu sertakan break di akhir setiap case kecuali kamu sengaja menggunakan fall-through. Selalu tambahkan default sebagai penanganan nilai yang tidak terduga — mirip seperti else di if-else. Perlu diketahui bahwa switch menggunakan perbandingan strict equality (===) secara internal. 🔒

Informasi Kursus

Kursus

JavaScript Dasar

Kategori

Kontrol Alur

Durasi Pelajaran

20 menit

Pelajaran dalam Kategori Ini