#include <LiquidCrystal_I2C.h>
// Menginisialisasi display LCD dengan 16 kolom dan 2 baris, menggunakan alamat I2C 0x27
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Mendefinisikan array pin-pin tombol (2, 3, dan 4)
const int buttonPins[] = {2, 3, 4};
// Mendefinisikan array pin-pin LED (10, 11, dan 12)
const int ledPins[] = {10, 11, 12};
void setup() {
// Melakukan loop melalui array pin tombol dan LED
for (int i = 0; i < 3; i++) {
// Menetapkan pin tombol sebagai input dengan resistor pull-up internal
pinMode(buttonPins[i], INPUT_PULLUP);
// Menetapkan pin LED sebagai output
pinMode(ledPins[i], OUTPUT);
}
// Menginisialisasi display LCD dan menyalakan backlight
lcd.begin(16, 2);
lcd.backlight();
}
void loop() {
// Melakukan loop melalui array pin tombol dan LED
for (int i = 0; i < 3; i++) {
// Memeriksa apakah tombol pada indeks saat ini ditekan (LOW)
if (digitalRead(buttonPins[i]) == LOW) {
// Mengubah keadaan LED pada indeks saat ini
digitalWrite(ledPins[i], !digitalRead(ledPins[i]));
// Menunggu tombol dilepas (HIGH)
while (digitalRead(buttonPins[i]) == LOW);
// Membersihkan display LCD
lcd.clear();
// Mencetak "Kelompok [i+1]" pada display LCD
lcd.print("Kelompok " + String(i + 1));
}
}
}