Mempelajari penggunaan switch-case dan state machine dengan enum untuk mengatur percabangan kondisi yang kompleks dan rapi.
Kita sering menggunakan if-else untuk membuat keputusan. Jika kita punya dua atau tiga pilihan, if-else sangat cocok. Tapi bayangkan jika kita harus membuat menu dengan 10 pilihan?
Bayangkan kalian sedang di restoran padang. Jika kalian menggunakan if-else, pelayan restoran akan bertanya satu per satu: "Apakah mau rendang? (Tidak) Apakah mau ayam pop? (Tidak) Apakah mau gulai tunjang? (Tidak)..." Sangat lama dan merepotkan bukan?
Solusi dari if-else yang terlalu panjang adalah switch-case. Struktur ini bekerja seperti kalian menunjuk langsung menu di restoran padang, tanpa perlu ditanya satu per satu.
Bentuk umum dari switch-case:
switch (variabel_yang_dicek) {
case nilai_1:
// lakukan ini jika variabel = nilai_1
break;
case nilai_2:
// lakukan ini jika variabel = nilai_2
break;
default:
// lakukan ini jika tidak ada yang cocok
break;
}switch-case jika kalian membandingkan SATU variabel dengan banyak nilai tetap (konstan), seperti angka 1, 2, 3 atau karakter 'A', 'B', 'C'. Jika kalian butuh mengecek "lebih besar dari" (>) atau rentang nilai, kalian harus tetap menggunakan if-else.Dalam robotika, sistem kita sering berada dalam satu "keadaan" (State) pada satu waktu. Misalnya: "State Tidur", "State Berjalan", "State Menghindar". Untuk memodelkan ini, kita menggunakan gabungan enum dan switch-case.
Enum (Enumeration) adalah cara kita membuat tipe data sendiri yang isinya adalah daftar kata-kata. Ini jauh lebih mudah dibaca daripada menggunakan angka 0, 1, 2.
Mari kita gabungkan semuanya! Kita akan membuat sistem dengan 4 mode yang bisa dikendalikan melalui Serial Monitor. Sistem ini menggunakan gabungan Enum, Switch-Case, dan Serial Monitor.
Solusi:Pastikan opsi "Line Ending" di pojok kanan bawah Serial Monitor diset ke "No line ending". Jika diset ke "Newline", karakter enter juga akan masuk sebagai input dan diproses oleh switch-case.
Solusi:Pastikan diakhiri dengan titik koma (;) setelah tanda kurung kurawal tutup `};` dari enum.
Luangkan 2–3 menit untuk menjawab pertanyaan di bawah secara jujur.
Apa yang paling mengejutkan atau menarik hari ini?
Kapan menurutmu kamu akan menggunakan struktur Enum di robotmu?
Apa yang masih membingungkan atau ingin kamu pahami lebih dalam?
Apakah konsep State Machine (mesin status) masih membingungkan bagimu?
Apa yang ingin kamu coba atau pelajari minggu depan?
Coba rancang (di atas kertas) state apa saja yang mungkin ada di robot line follower!
Refleksi tidak dinilai — ini adalah ruang jujurmu untuk berpikir.