Belajar Javascript : Percabangan Pada Javascript

Estimated: 6 min read
Belajar Javascript : Percabangan Pada Javascript

Seperti bahasa-bahasa pemrograman lainnya, di dalam Javascript juga terdapat percabangan. Percabangan berfungsi untuk menentukan tindakan yang akan dilakukan oleh program berdasarkan logika atau kondisi yang kita berikan.

Mari kita lihat bagaimana penggunaan percabangan di dalam Javascript

1. Percabangan If/Else

Dalam kehidupan sehari-hari sebenarnya kita sudah sangat sering menjumpai penerapan percabangan, yaitu pengambilan keputusan berdasarkan kondisi yang sedang kita alami.

Misalnya, kendaraan apa yang ingin kita gunakan ketika hujan untuk pergi ke tempat tujuan kita? Jika kita gambarkan menggunakan flowchart maka akan terlihat seperti berikut:

flowchart-hujan

Dari flowchart di atas kita sudah dapat menggambarkan tentang keputusan yang akan diambil berdasarkan kondisi yang sedang di alami, bagaimana implementasinya dalam Javascript???

Ketika kita mengembangkan sebuah program dan dihadapkan oleh sebuah kondisi, untuk mengecek kondisi tersebut kita dapat menggunakan sintaks if.

Sintaks if akan mengecek sebuah kondisi tersebut, jika kondisinya menghasilkan nilai benar (true) maka blok kode di dalamnya akan dijalankan dan jika kondisinya bernilai salah (false) maka blok kode di dalamnya akan dilewatkan.

const isRaining = true

if (isRaining) {
  console.log("Hari ini hujan, silakan gunakan mobil")
}

console.log("Berangkat ke tempat tujuan")

Output dari kode di atas adalah:

Hari ini hujan, silakan gunakan mobil
Berangkat ke tempat tujuan

Karena kondisi isRaining bernilai true maka baris kode di dalam if akan di eksekusi "Hari ini hujan, silakan gunakan mobil". Tetapi jika kondisi isRaining bernilai false maka kode di dalam blok if tidak akan di eksekusi atau akan dilewati.

const isRaining = false

if (isRaining) {
  console.log("Hari ini hujan, silakan gunakan mobil")
}

console.log("Berangkat ke tempat tujuan")

/**
 * Output:
 * Berangkat ke tempat tujuan
 */

Bagaimana jika kita implementasikan sesuai dengan flowchart dia atas? Kita ingin menggunakan motor untuk berangkat jika tidak hujan? Kita punya dua opsi yakni menggunakan motor atau mobil tergantung pada kondisi cuacanya.

Kita dapat menggunakan sintaks else. Blok di dalam else akan dieksekusi apabila kondisi yang diinginkan bernilai sebaliknya.

const isRaining = false

if (isRaining) {
  console.log("Hari ini hujan, silakan gunakan mobil")
} else {
  console.log("Hari ini hujan, silakan gunakan motor")
}

console.log("Berangkat ke tempat tujuan")

Karena kita memberikan kondisi isRaining bernilai false atau kondisi tidak hujan maka kode di dalam blok else akan di eksekusi.

Hari ini hujan, silakan gunakan motor
Berangkat ke tempat tujuan

Javascript juga mendukung ternary operator loh...

const isDiscount = true
let discount = 0

if (isDiscount) {
  discount = 0.5
}

console.log(`Kamu mendapatkan diskon ${discount * 100}%`)

Output ketika kode di atas dijalankan adalah:

Kamu mendapatkan diskon 50%

Ketika kita menggunakan ternary operator maka penulisan baris kode di atas dapat menjadi lebih sederhana seperti berikut:

const isDiscount = true
// penulisan dengan ternary operator
const discount = isDiscount ? 0.5 : 0
console.log(`Kamu mendapatkan diskon ${discount * 100}%`)

Ternary operator membutuhkan tiga buah operand, sebelum ? merupakan kondisi yang ingin dicek. Kemudian diikuti dengan expression apabila kondisi benar sebelum :, dan terakhir expression ketika kondisi salah setelah :.

Karena ternary operator merupakan conditional expression maka operand kedua dan ketiga wajib mengembalikan nilai.

2. Percabangan If/Else If

Terkadang di dalam kehidupan kita dihadapkan dengan berbagai kondisi dan pilihan, tidak hanya satu. Begitu halnya di dalam program, ada kalanya kita dihadapkan dengan lebih dari dua kondisi atau pilihan.

flowchart

Mari kita implementasikan flowchart pengelompokan predikat nilai di atas di dalam Javascript:

const score = 90
let result = ''

if (score > 90) result = 'Sangat Baik, Anda lulus'
else if (score > 80) result = 'Baik, Anda lulus'
else if (score > 70) result = 'Cukup, Anda lulus'
else if (score > 60) result = 'Sedang, Anda lulus'
else result = 'Kurang, Anda tidak lulus'

console.log(`Predikat anda: ${result}`)

Output dari program di atas adalah:

Predikat anda: Baik, Anda lulus

Kita juga dapat melakukan pengecekan lebih dari satu kondisi seperti berikut:

const score = 75
let result = ''

if (score > 90) result = 'Sangat Baik, Anda lulus'
else if (score > 80 && score <= 90) result = 'Baik, Anda lulus'
else if (score > 70 && score <= 80) result = 'Cukup, Anda lulus'
else if (score > 60 && score <= 70) result = 'Sedang, Anda lulus'
else result = 'Kurang, Anda tidak lulus'

console.log(`Predikat anda: ${result}`)

/**
 * Output:
 * Predikat anda: Cukup, Anda lulus
 * */

Pada kode di atas kita menggunakan operator logika AND untuk mengecek apakah score lebih besar dari 80 dan score lebih kecil dari 90 dan seterusnya.

3. Percabangan Switch/Case

Jika di atas kita telah belajar percabangan menggunakan if/else, sekarang kita akan melihat bentuk lain dari if/else untuk membuat percabangan yaitu switch/case.

Dengan menggunakan switch/case kita dapat melakukan pengecekan banyak kondisi dengan lebih ringkas dan mudah.

switch (expression) {
  case <value>:
    // baris kode
    break
  case <value>:
    // baris kode
    break
  default:
    // baris kode
}

Tanda kurung setelah switch berisi variabel atau expression yang akan dicek. Kita dapat membuat blok case sebanyak yang kita inginkan sesuai kebutuhan program yang dibuat. <value> merupakan nilai yang nantinya akan dibandingkan dengan expression yang diberikan.

Jika nilai yang kita berikan pada case yaitu <value> sama dengan variabel yang diberikan pada switch, maka blok setelah : akan dieksekusi. Setiap case harus diakhiri dengan break, khusus untuk default tidak perlu menggunakan break.

Sintaks break digunakan untuk keluar dari proses switch, default memiliki fungsi yang sama seperti else, yaitu apabila tidak ada kondisi yang terpenuhi maka baris kode di dalam default akan di eksekusi.

Mari kita lihat contoh penggunaan switch/case.

var hari = 3;
var namaHari;

switch (hari) {
  case 1:
    namaHari = "Minggu";
    break;
  case 2:
    namaHari = "Senin";
    break;
  case 3:
    namaHari = "Selasa";
    break;
  case 4:
    namaHari = "Rabu";
    break;
  case 5:
    namaHari = "Kamis";
    break;
  case 6:
    namaHari = "Jumat";
    break;
  case 7:
    namaHari = "Sabtu";
    break;
  default:
    namaHari = "Hari tidak valid";
}

console.log("Hari ini adalah " + namaHari);

/**
 * Output:
 * Hari ini adalah Selasa
 * */

4. Truthy dan Falsy

Di dalam if statement kita perlu menentukan expression yang akan dicek, umumnya expression tersebut mengembalikan nilai dengan tipe data boolean untuk menentukan kondisi tersebut benar (true) atau salah (false).

Terus apakah bisa jika kita menuliskan expression yang tidak mengembalikan nilai boolean???

Tentu saja bisa...

Pada dasarnya setiap nilai pada Javascript mewarisi sifat boolean atau yang lebih dikenal dengan istilah truthy dan falsy. Nilai truthy merupakan sebuah nilai yang ketika dievaluasi atau dicek akan mengembalikan nilai true, sedangkan nilai falsy akan mengembalikan nilai false.

Berikut beberapa nilai di dalam Javascript yang akan mengembalikan nilai falsy:

  1. Number 0, Contoh: const angka = 0
  2. BigInt 0n, Contoh: const angkat = 0n
  3. String kosong, Contoh: const nama = ""
  4. null, Contoh: let angka = null
  5. undefined, Contoh: let nama;
  6. NaN, Not a Number

Selain dari nilai di atas maka nilainya akan mengembalikan nilai truthy atau true.

let nama;

if (nama) {
  console.log(`Selamat datang ${nama}`)
} else {
  console.log('Tidak memiliki nama')
}

Output dari kode di atas adalah:

Tidak memiliki nama

Hal tersebut dikarenakan variabel nama memiliki nilai undefined sehingga menghasilkan nilai falsy.

let nama = 'Andi';

if (nama) {
  console.log(`Selamat datang ${nama}`)
} else {
  console.log('Tidak memiliki nama')
}

/**
 * Output:
 * Selamat datang Andi
 * */

Ketika kita mencoba memberikan variable nama dengan nilai Andi maka ketika dicek akan mengembalikan nilai truthy.

Kesimpulan

Percabangan akan sering kita jumpai ketika membuat sebuah program, maka dari itu penting untuk memahami penggunaan percabangan baik menggunakan if atau switch/case. Kita dapat menemukan berbagai penggunaan percabangan dari mulai pengecekan lebih dari satu expression seperti contoh perhitungan nilai di atas ataupun percabangan yang bersarang (Nested).

Selanjutnya kita akan melihat lebih banyak lagi tentang bahasa pemrograman Javasript, terima kasih dan sampai jumpa... 😄

Comments

Mohon sertakan informasi yang detail saat bertanya tentang eror, seperti: pesan error, log, dan screenshot.