# \`switch\` Statement

Berikut adalah penjelasan tentang `switch` statement yang dikombinasikan dengan HTML untuk kasus menampilkan nama hari berdasarkan nomor hari dari 1 hingga 7:

#### Penjelasan `switch` Statement

Pernyataan `switch` digunakan untuk memilih salah satu dari beberapa blok kode berdasarkan nilai ekspresi. `switch` berguna ketika Anda memiliki banyak kondisi yang perlu diperiksa terhadap satu nilai.

#### Sintaks:

```php
switch (ekspresi) {
    case nilai1:
        // kode jika ekspresi sama dengan nilai1
        break;
    case nilai2:
        // kode jika ekspresi sama dengan nilai2
        break;
    default:
        // kode jika ekspresi tidak sama dengan nilai-nilai sebelumnya
}
```

#### Contoh Penggunaan:

**Soal:** Buatlah program yang menampilkan nama hari berdasarkan nomor hari dari 1 hingga 7.

**Penjelasan:** Jika nomor hari adalah 1, tampilkan "Senin". Jika nomor hari adalah 2, tampilkan "Selasa", dan seterusnya. Jika nomor hari tidak valid, tampilkan "Hari tidak valid".

Berikut adalah contoh kode yang menggabungkan PHP dan HTML untuk kasus ini:

```php
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Contoh Switch Statement</title>
</head>
<body>
    <?php
    $day = 4; // Ubah nilai ini untuk menguji kondisi yang berbeda
    switch ($day) {
        case 1:
            $dayName = "Senin";
            break;
        case 2:
            $dayName = "Selasa";
            break;
        case 3:
            $dayName = "Rabu";
            break;
        case 4:
            $dayName = "Kamis";
            break;
        case 5:
            $dayName = "Jumat";
            break;
        case 6:
            $dayName = "Sabtu";
            break;
        case 7:
            $dayName = "Minggu";
            break;
        default:
            $dayName = "Hari tidak valid";
    }
    ?>
    <p>Nama hari: <?= $dayName ?></p>
</body>
</html>
```

#### Penjelasan:

1. **Deklarasi Variabel:**

   ```php
   $day = 4;
   ```

   Kita menetapkan nilai variabel `$day` menjadi 4. Anda bisa mengubah nilai ini untuk menguji kondisi yang berbeda.
2. **Pernyataan Switch:**

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

   * Kita menggunakan pernyataan `switch` untuk memeriksa nilai variabel `$day`.
   * Setiap kasus (`case`) memeriksa apakah nilai `$day` sama dengan nilai tertentu (1 hingga 7).
   * Jika kondisi terpenuhi, kita menetapkan variabel `$dayName` dengan nama hari yang sesuai dan menghentikan eksekusi blok `switch` dengan `break`.
   * Jika tidak ada kondisi yang terpenuhi, blok `default` akan dijalankan dan `$dayName` akan diatur menjadi "Hari tidak valid".
3. **Menampilkan Hasil di HTML:**

   ```php
   <p>Nama hari: <?= $dayName ?></p>
   ```

   * Kita menampilkan hasil nama hari di dalam elemen `<p>` HTML menggunakan `<?= $dayName ?>`.

Dengan cara ini, kita bisa menggabungkan logika pemrograman PHP dengan elemen HTML untuk membuat halaman web yang dinamis dan interaktif.

{% hint style="info" %}
Kenapa switch tidak ada contoh alternative lain seperti if else?
{% endhint %}

Pernyataan `switch` sering digunakan sebagai alternatif dari beberapa pernyataan `if-else if-else` karena lebih mudah dibaca dan dipelihara ketika memeriksa banyak kondisi yang berhubungan dengan satu variabel. Berikut adalah contoh bagaimana `switch` dan `if-else if-else` dapat digunakan untuk tujuan yang sama, yaitu menampilkan nama hari berdasarkan nomor hari.

#### Contoh Menggunakan `switch`:

```php
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Contoh Switch Statement</title>
</head>
<body>
    <?php
    $day = 4; // Ubah nilai ini untuk menguji kondisi yang berbeda
    switch ($day) {
        case 1:
            $dayName = "Senin";
            break;
        case 2:
            $dayName = "Selasa";
            break;
        case 3:
            $dayName = "Rabu";
            break;
        case 4:
            $dayName = "Kamis";
            break;
        case 5:
            $dayName = "Jumat";
            break;
        case 6:
            $dayName = "Sabtu";
            break;
        case 7:
            $dayName = "Minggu";
            break;
        default:
            $dayName = "Hari tidak valid";
    }
    ?>
    <p>Nama hari: <?= $dayName ?></p>
</body>
</html>
```

#### Contoh Menggunakan `if-else if-else`:

```php
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Contoh If-Else If-Else Statement</title>
</head>
<body>
    <?php
    $day = 4; // Ubah nilai ini untuk menguji kondisi yang berbeda
    if ($day == 1) {
        $dayName = "Senin";
    } elseif ($day == 2) {
        $dayName = "Selasa";
    } elseif ($day == 3) {
        $dayName = "Rabu";
    } elseif ($day == 4) {
        $dayName = "Kamis";
    } elseif ($day == 5) {
        $dayName = "Jumat";
    } elseif ($day == 6) {
        $dayName = "Sabtu";
    } elseif ($day == 7) {
        $dayName = "Minggu";
    } else {
        $dayName = "Hari tidak valid";
    }
    ?>
    <p>Nama hari: <?= $dayName ?></p>
</body>
</html>
```

#### Penjelasan:

1. **Deklarasi Variabel:**

   ```php
   $day = 4;
   ```

   Kita menetapkan nilai variabel `$day` menjadi 4. Anda bisa mengubah nilai ini untuk menguji kondisi yang berbeda.
2. **Pernyataan `switch`:**
   * Lebih mudah dibaca saat ada banyak kondisi yang perlu diperiksa terhadap satu nilai variabel.
   * Setiap `case` memeriksa apakah nilai `$day` sama dengan nilai tertentu (1 hingga 7).
   * Jika kondisi terpenuhi, kita menetapkan variabel `$dayName` dengan nama hari yang sesuai dan menghentikan eksekusi blok `switch` dengan `break`.
   * Jika tidak ada kondisi yang terpenuhi, blok `default` akan dijalankan dan `$dayName` akan diatur menjadi "Hari tidak valid".
3. **Pernyataan `if-else if-else`:**
   * Mungkin lebih panjang dan kurang rapi dibandingkan `switch` ketika ada banyak kondisi yang perlu diperiksa.
   * Setiap `if` atau `elseif` memeriksa apakah nilai `$day` sama dengan nilai tertentu (1 hingga 7).
   * Jika kondisi terpenuhi, kita menetapkan variabel `$dayName` dengan nama hari yang sesuai.
   * Jika tidak ada kondisi yang terpenuhi, blok `else` akan dijalankan dan `$dayName` akan diatur menjadi "Hari tidak valid".
4. **Menampilkan Hasil di HTML:**

   ```php
   <p>Nama hari: <?= $dayName ?></p>
   ```

   * Kita menampilkan hasil nama hari di dalam elemen `<p>` HTML menggunakan `<?= $dayName ?>`.

Dengan contoh ini, Anda dapat melihat bagaimana `switch` dan `if-else if-else` dapat digunakan untuk memecahkan masalah yang sama dengan cara yang sedikit berbeda.
