---LESSON_INFO--- Matematika Robotika: Logika Boolean. **Learning Objectives:** - Memahami tipe data Boolean (True/False). - Mengenal operator logika AND, OR, dan NOT. - Menerapkan logika kombinasi untuk pengambilan keputusan robot. **Prerequisites:** - Dasar-Dasar Pemrograman ---END_LESSON_INFO--- # Matematika: Logika Boolean Robot mengambil keputusan berdasarkan kondisi. Logika Boolean adalah sistem matematika yang hanya memiliki dua nilai: **Benar (1)** atau **Salah (0)**. ## 1. Operator Logika Dasar Dalam pemrograman Arduino (C++), kita menggunakan simbol khusus untuk logika: | Operator | Simbol | Penjelasan | Contoh Kasus | | :--- | :--- | :--- | :--- | | **AND** | `&&` | Benar jika **SEMUA** kondisi terpenuhi. | Jalan jika depan aman DAN baterai penuh. | | **OR** | `||` | Benar jika **SALAH SATU** kondisi terpenuhi. | Berhenti jika ada tembok DI KIRI atau DI KANAN. | | **NOT** | `!` | Membalikkan nilai (Benar jadi Salah). | Jalan jika TIDAK ada rintangan. | ## 2. Tabel Kebenaran (Truth Table) | A | B | A && B (AND) | A || B (OR) | | :--- | :--- | :--- | :--- | | 0 | 0 | 0 | 0 | | 0 | 1 | 0 | 1 | | 1 | 0 | 0 | 1 | | 1 | 1 | 1 | 1 | ---EXERCISE--- ### Tantangan: Sistem Keamanan Robot Sebuah robot pembersih memiliki dua sensor tabrakan (Bumper): `sensorKiri` dan `sensorKanan`. Robot hanya boleh "Maju" jika **kedua sensor tidak menyentuh apapun** (Bernilai 0). **Tugas:** 1. Buatlah variabel boolean `bolehMaju`. 2. Isi `bolehMaju` dengan logika: `!sensorKiri && !sensorKanan`. 3. Gunakan `if (bolehMaju)` untuk mencetak "ROBOT MAJU" ke Serial Monitor. 4. Jika tidak boleh maju, cetak "ROBOT BERHENTI". --- ---INITIAL_CODE_ARDUINO--- // Latihan Logika Boolean void setup() { Serial.begin(9600); // Simulasi nilai sensor (0 = Aman, 1 = Menabrak) int sensorKiri = 0; int sensorKanan = 1; // --- TULIS KODE KAMU DI BAWAH INI --- bool bolehMaju = false; // Ganti dengan logika AND/NOT if (bolehMaju) { Serial.println("STATUS: ROBOT MAJU"); } else { Serial.println("STATUS: ROBOT BERHENTI"); } // ------------------------------------ } void loop() { } ---END_INITIAL_CODE_ARDUINO--- ---KEY_TEXT--- bool && || ! ---END_KEY_TEXT---