> For the complete documentation index, see [llms.txt](https://learn.devlabss.my.id/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://learn.devlabss.my.id/php/bab-3-struktur-kontrol/3.2-percabangan-switch.md).

# 3.2 Percabangan SWITCH

`switch` dipakai saat satu nilai dibandingkan dengan beberapa pilihan tetap.

Struktur ini membuat kode lebih rapi jika pilihan kondisi cukup banyak.

### Tujuan belajar

Setelah mempelajari bagian ini, Anda diharapkan bisa:

* memahami fungsi `switch`
* menulis beberapa `case`
* membedakan kapan memakai `switch` dan `if else`

### Kapan `switch` berguna

`switch` cocok saat Anda punya satu variabel dengan beberapa pilihan yang jelas.

Contohnya adalah:

* hari dalam seminggu
* kode menu
* tingkat nilai huruf

### Bentuk dasar `switch`

```php
<?php
$hari = "Senin";

switch ($hari) {
    case "Senin":
        echo "Upacara";
        break;
    case "Selasa":
        echo "Belajar seperti biasa";
        break;
    default:
        echo "Hari tidak dikenali";
}
?>
```

### Penjelasan bagian penting

* `switch ($hari)` berarti nilai yang dicek adalah `$hari`
* `case` adalah pilihan nilai
* `break` menghentikan proses setelah kondisi cocok
* `default` dijalankan jika tidak ada yang cocok

Jika `break` dihilangkan, program bisa lanjut ke `case` berikutnya. Ini sering membuat hasil menjadi salah.

### Perbedaan `switch` dan `if else`

Gunakan `switch` jika:

* satu variabel punya banyak pilihan tetap
* pilihan nilainya jelas
* Anda ingin kode lebih ringkas dan mudah dibaca

Gunakan `if else` jika:

* Anda membandingkan rentang nilai
* kondisi melibatkan lebih dari satu variabel
* logika keputusan lebih fleksibel

### Contoh kasus lain

```php
<?php
$grade = "B";

switch ($grade) {
    case "A":
        echo "Sangat baik";
        break;
    case "B":
        echo "Baik";
        break;
    case "C":
        echo "Cukup";
        break;
    default:
        echo "Perlu belajar lagi";
}
?>
```

### Kesalahan umum

* lupa menulis `break`
* memakai `switch` untuk kondisi yang seharusnya lebih cocok dengan `if else`
* menulis nilai `case` tidak sama dengan nilai yang dicek
* lupa menambahkan `default`

### Latihan singkat

Buat program `switch` untuk:

* `A` menampilkan `Sangat baik`
* `B` menampilkan `Baik`
* `C` menampilkan `Cukup`
* selain itu menampilkan `Perlu belajar lagi`

Setelah itu, buat contoh kedua dengan kasus nama hari atau jurusan.

### Poin evaluasi bab 3.2.

Pastikan Anda sudah memahami poin berikut:

* Saya paham fungsi `switch`.
* Saya tahu peran `case`, `break`, dan `default`.
* Saya bisa membuat banyak pilihan dengan satu variabel.
* Saya berhasil menulis contoh `switch` sederhana.

Jika semua sudah jelas, lanjut ke [3.3 Perulangan FOR](/php/bab-3-struktur-kontrol/3.3-perulangan-for.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://learn.devlabss.my.id/php/bab-3-struktur-kontrol/3.2-percabangan-switch.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
