// Definisi pin LED dan push button
const int ledMerah = 13;
const int ledHijau = 12;
const int ledBiru = 11;
const int tombolMerah = 4;
const int tombolHijau = 3;
const int tombolBiru = 2;
// Status LED (awal semua mati)
bool statusMerah = false;
bool statusHijau = false;
bool statusBiru = false;
// Menyimpan status tombol sebelumnya
bool lastStateMerah = HIGH;
bool lastStateHijau = HIGH;
bool lastStateBiru = HIGH;
void setup() {
// Atur LED sebagai OUTPUT
pinMode(ledMerah, OUTPUT);
pinMode(ledHijau, OUTPUT);
pinMode(ledBiru, OUTPUT);
// Atur tombol sebagai INPUT_PULLUP
pinMode(tombolMerah, INPUT_PULLUP);
pinMode(tombolHijau, INPUT_PULLUP);
pinMode(tombolBiru, INPUT_PULLUP);
// Pastikan semua LED mati di awal
digitalWrite(ledMerah, LOW);
digitalWrite(ledHijau, LOW);
digitalWrite(ledBiru, LOW);
}
void loop() {
// Baca status tombol
bool tombolMerahTekan = digitalRead(tombolMerah);
bool tombolHijauTekan = digitalRead(tombolHijau);
bool tombolBiruTekan = digitalRead(tombolBiru);
// Toggle LED merah
if (tombolMerahTekan == LOW && lastStateMerah == HIGH) {
statusMerah = !statusMerah; // Ubah status LED
digitalWrite(ledMerah, statusMerah ? HIGH : LOW);
delay(200); // Debounce
}
lastStateMerah = tombolMerahTekan;
// Toggle LED hijau
if (tombolHijauTekan == LOW && lastStateHijau == HIGH) {
statusHijau = !statusHijau;
digitalWrite(ledHijau, statusHijau ? HIGH : LOW);
delay(200);
}
lastStateHijau = tombolHijauTekan;
// Toggle LED biru
if (tombolBiruTekan == LOW && lastStateBiru == HIGH) {
statusBiru = !statusBiru;
digitalWrite(ledBiru, statusBiru ? HIGH : LOW);
delay(200);
}
lastStateBiru = tombolBiruTekan;
}