# Hari 4: Percabangan

### Percabangan

Percabangan atau sering disebut juga dengan conditional digunakan untuk pengambilan keputusan berdasarkan kondisi-kondisi. Secara default, javascript menjalankan percabangan dari atas kebawah. Misal jika sudah ketemu nilai true maka selanjutnya kode akan diabaikan oleh program.

### IF

Gunakan if untuk menjalankan kode yang pada kondisi yang bernilai benar.

```jsx
if (syarat) {
  // Jalankan kode jika syarat terpenuhi atau bernilai benar
}
```

Perhatikan penggunaan if berikut

```jsx
let usia = 19;
if (usia >= 18) {
  console.log("Okay selamat, Anda boleh ikut");
}
// hasil: Okay selamat, Anda boleh ikut
```

Pada contoh, jika usia dibawah 18 maka program tidak menjalankan apa-apa.

### IF-ELSE

IF-ELSE ini memungkinkan untuk menjalankan kode yang tidak sesuai dengan persyaratan.

```jsx
if (syarat) {
  // Jalankan kode jika syarat terpenuhi atau bernilai benar
} else {
  // Jalankan kode jika syarat tidak terpenuhi atau bernilai salah
}
```

Perhatikan penggunaan IF-ELSE berikut.

```jsx
let usia = 10;
if (usia >= 18) {
  console.log("Okay selamat, Anda boleh ikut");
} else {
  console.log("Maaf nak, Anda harus menunggu beberapa tahun lagi");
}

// hasil: Maaf nak, Anda harus menunggu beberapa tahun lagi
```

### IF-ELSE IF

Mungkin anda butuh untuk mengambil keputusan dari beberapa syarat yang diajukan, seperti halnya kehidupan sehari-hari.

```jsx
if (syarat) {
  // jalankan jika syarat terpenuhi
} else if (kondisi) {
  // jalankan jika syarat terpenuhi dan syarat sebelumnya tidak terpenuhi
} else {
  // jalankan jika semua syarat tidak terpenuhi
}
```

Perhatikan penggunaan IF-ELSE IF berikut.

```jsx
let angka = 0;
if (angka > 0) {
  console.log(`${angka} adalah bilangan positif`);
} else if (angka < 0) {
  console.log(`${angka} adalah bilangan negati`);
} else if (angka == 0) {
  console.log(`${angka} adalah Nol`);
} else {
  console.log(`${angka} bukanlah angka yang valid`);
}
// hasil: 0 adalah Nol
```

### Switch

Switch adalah alternatif untuk `if else`. Blok case dijalankan jika nilai dalam tanda kurung pernyataan cocok dengan case. Berhenti jika case telah terpenuhi.

```jsx
switch (nilai) {
  case 1:
    // jalankan jika nilai sama dengan case 1
    break;

  case 2:
    // jalankan jika nilai sama dengan case 2
    break;
  default:
  // jalankan jika semua case salah
}
```

Perhatikan contoh switch berikut.

```jsx
let cuaca = "berawan";
switch (cuaca) {
  case "hujan":
    console.log("Kamu butuh jas hujan");
    break;
  case "berawan":
    console.log("Sedikit dingin, gunakan jaket kesayanganmu");
    break;
  case "cerah":
    console.log("Senangnya bisa kemana saja");
    break;
  default:
    console.log("BMKG belum update cuaca nih :(");
}

// hasil: Sedikit dingin, gunakan jaket kesayanganmu
```

### Ternary

Ini sudah dibahas pada hari sebelumnya, Silahkan cek kembali  [disini](https://asrul.dev/hari-3-operator) 
