Ditanyain LMS

Conditional & Decision Making

Setelah kita belajar cara membandingkan nilai di section sebelumnya, sekarang kita akan belajar bagaimana menggunakan hasil perbandingan tersebut untuk menentukan arah jalannya program. Dalam pemrograman, ini disebut Control Flow. Tanpa conditional, kode kita akan selalu berjalan lurus dari atas ke bawah. Dengan conditional, kode kita bisa "berbelok" atau melompati bagian tertentu berdasarkan situasi yang terjadi.

Konsep Conditional: If, Else If, dan Else

Struktur if adalah cara paling dasar untuk membuat keputusan. Bayangkan seperti sebuah gerbang: jika syaratnya terpenuhi (true), Anda boleh masuk dan menjalankan perintah di dalamnya. Jika tidak (false), gerbang akan tertutup.

1let nilai = 75; 2 3if (nilai >= 70) { 4 console.log("Selamat, Anda lulus!"); 5} else { 6 console.log("Maaf, silakan coba lagi tahun depan."); 7}

Alur Eksekusi:

  1. JavaScript mengevaluasi kondisi di dalam kurung: 75 >= 70. Hasilnya adalah true.
  2. Karena true, blok kode di dalam kurung kurawal {} pertama dijalankan.
  3. Bagian else diabaikan sepenuhnya.

Jika Anda memiliki lebih dari dua kemungkinan, kita bisa menggunakan else if.

1let jam = 14; 2 3if (jam < 12) { 4 console.log("Selamat Pagi"); 5} else if (jam < 18) { 6 console.log("Selamat Siang"); 7} else { 8 console.log("Selamat Malam"); 9}

Kenapa hasilnya "Selamat Siang"? JavaScript mengecek dari atas. 14 < 12 adalah false, maka ia lanjut ke else if. Karena 14 < 18 adalah true, maka pesan "Selamat Siang" dicetak. Setelah satu kondisi terpenuhi, JavaScript akan keluar dari seluruh rangkaian if-else tersebut dan tidak akan mengecek kondisi di bawahnya lagi.

Ternary Operator

Untuk keputusan sederhana yang hanya memiliki dua pilihan, kita bisa menggunakan cara singkat bernama Ternary Operator. Ini sering digunakan untuk menentukan nilai sebuah variabel secara cepat.

Sintaksnya adalah: kondisi ? hasil_jika_true : hasil_jika_false.

1let usia = 18; 2let statusPenyewa = usia >= 17 ? "Boleh menyewa motor" : "Belum cukup umur"; 3 4console.log(statusPenyewa);

Kesalahan Umum: Pemula sering mencoba memasukkan logika yang sangat kompleks ke dalam ternary operator. Jika logikanya sudah melibatkan banyak else if, gunakanlah if-else biasa agar kode tetap mudah dibaca oleh manusia.

Switch Case

Jika Anda memiliki satu variabel yang ingin dibandingkan dengan banyak nilai spesifik (seperti menu pilihan atau nama hari), switch adalah pilihan yang lebih rapi daripada menumpuk banyak else if.

1let hari = "Senin"; 2 3switch (hari) { 4 case "Senin": 5 console.log("Waktunya bekerja!"); 6 break; 7 case "Sabtu": 8 case "Minggu": 9 console.log("Waktunya libur!"); 10 break; 11 default: 12 console.log("Hari biasa."); 13}

Pentingnya break: Tanpa kata kunci break, JavaScript akan terus menjalankan kode ke baris bawahnya meskipun kondisinya sudah tidak cocok (kejadian ini disebut fall-through). Perhatikan pada "Sabtu" dan "Minggu"; karena tidak ada break di antara keduanya, mereka akan menjalankan perintah yang sama.

Nested Conditional (Kondisi Bersarang)

Kadang, sebuah keputusan bergantung pada keputusan lainnya. Ini disebut nesting.

1let username = "admin"; 2let password = "123"; 3 4if (username === "admin") { 5 if (password === "123") { 6 console.log("Login Berhasil!"); 7 } else { 8 console.log("Password Salah!"); 9 } 10} else { 11 console.log("User tidak ditemukan!"); 12}

Studi Kasus: Sistem Penilaian Mari kita gabungkan operator logika dari Section 3 dengan conditional.

1let nilaiUjian = 85; 2let kehadiran = 90; 3 4if (nilaiUjian >= 80 && kehadiran >= 80) { 5 console.log("Predikat: A"); 6} else if (nilaiUjian >= 60 || kehadiran >= 70) { 7 console.log("Predikat: B"); 8} else { 9 console.log("Predikat: C"); 10}

Prediksi Output: Apa yang terjadi jika nilaiUjian adalah 50 dan kehadiran adalah 85?

  • Kondisi pertama (50 >= 80 && 85 >= 80) menghasilkan false.
  • Kondisi kedua (50 >= 60 || 85 >= 70) menghasilkan true (karena salah satu benar).
  • Hasil akhirnya adalah "Predikat: B".