// Definisikan pin tombol
const int buttonPin1 = 2; // Tombol Merah
const int buttonPin2 = 3; // Tombol Hijau
const int buttonPin3 = 4; // Tombol Biru
// Definisikan pin LED
const int ledPin1 = 12; // LED Merah
const int ledPin2 = 11; // LED Hijau
const int ledPin3 = 10; // LED Biru
const int ledPin4 = 5; // LED Kuning
// Variabel untuk menyimpan status tombol
bool lastButton1State = HIGH; // Tombol Merah
bool lastButton2State = HIGH; // Tombol Hijau
bool lastButton3State = HIGH; // Tombol Biru
// Variabel untuk status LED
bool led1State = LOW; // Status LED1
bool led2State = LOW; // Status LED2
bool led3State = LOW; // Status LED3
bool led4State = HIGH; // LED4 awalnya menyala
void setup() {
// Set pin tombol sebagai input dengan pull-up internal
pinMode(buttonPin1, INPUT_PULLUP);
pinMode(buttonPin2, INPUT_PULLUP);
pinMode(buttonPin3, INPUT_PULLUP);
// Set pin LED sebagai output
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
// Matikan semua LED di awal
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);
// Menyalakan LED sesuai urutan dengan delay 2 detik
digitalWrite(ledPin1, HIGH);
delay(2000); // Tunda 2 detik
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, HIGH);
delay(2000); // Tunda 2 detik
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, HIGH);
delay(2000); // Tunda 2 detik
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, HIGH);
delay(2000); // Tunda 2 detik
digitalWrite(ledPin4, LOW);
}
void loop() {
// Baca status tombol
bool button1State = digitalRead(buttonPin1);
bool button2State = digitalRead(buttonPin2);
bool button3State = digitalRead(buttonPin3);
// Toggle LED1 jika Button 1 ditekan dan dilepas
if (button1State == LOW && lastButton1State == HIGH) {
led1State = !led1State;
digitalWrite(ledPin1, led1State);
delay(50); // Debounce delay
}
lastButton1State = button1State;
// Toggle LED2 jika Button 2 ditekan dan dilepas
if (button2State == LOW && lastButton2State == HIGH) {
led2State = !led2State;
digitalWrite(ledPin2, led2State);
delay(50); // Debounce delay
}
lastButton2State = button2State;
// Toggle LED3 dan LED4 jika Button 3 ditekan dan dilepas
if (button3State == LOW && lastButton3State == HIGH) {
led3State = !led3State;
led4State = led3State; // Ikuti status LED3
digitalWrite(ledPin3, led3State);
digitalWrite(ledPin4, led4State);
delay(50); // Debounce delay
}
lastButton3State = button3State;
}