int ledPin = 13; // LED terhubung ke pin 13
int buttonPin = 2; // Push button terhubung ke pin 2
int ledState = LOW; // Status awal LED (mati)
int buttonState; // Variabel untuk menyimpan status tombol saat ini
int lastButtonState = LOW; // Variabel untuk menyimpan status tombol sebelumnya
bool buttonPressed = false; // Variabel untuk melacak apakah tombol sudah ditekan
void setup() {
pinMode(ledPin, OUTPUT); // Mengatur pin LED sebagai output
pinMode(buttonPin, INPUT_PULLUP); // Mengatur pin tombol sebagai input dengan pull-up internal
}
void loop() {
// Membaca status tombol saat ini
buttonState = digitalRead(buttonPin);
// Jika tombol ditekan (LOW) dan tombol sebelumnya tidak ditekan
if (buttonState == LOW && lastButtonState == HIGH && !buttonPressed) {
ledState = !ledState; // Mengubah status LED (toggle)
digitalWrite(ledPin, ledState); // Mengatur LED sesuai dengan status baru
buttonPressed = true; // Menandakan bahwa tombol sudah ditekan
}
// Jika tombol dilepas (HIGH)
if (buttonState == HIGH) {
buttonPressed = false; // Reset agar bisa mendeteksi penekanan tombol berikutnya
}
// Menyimpan status tombol sebelumnya
lastButtonState = buttonState;
}