#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
int tombol = 2;
int led_hijau = 3;
int led_kuning = 4;
int led_merah = 5;
int jumlahTekanan;

void setup() 
{
  pinMode(tombol, INPUT);
  pinMode(led_hijau, OUTPUT);
  pinMode(led_kuning, OUTPUT);
  pinMode(led_merah, OUTPUT);
}

void loop() 
{
  int statusTombol = digitalRead(tombol);
if (statusTombol==HIGH) {
    jumlahTekanan ++;
    delay(200);
    if(jumlahTekanan==1){
      digitalWrite(led_hijau,HIGH);
      lcdmonitor();
      lcdmonitor1();
    }
    else if(jumlahTekanan==2){
      digitalWrite(led_hijau, LOW);
      lcdmonitor();
      lcdmonitor2();
    }
    else if(jumlahTekanan==3){
      digitalWrite(led_kuning, HIGH);
      lcdmonitor();
      lcdmonitor3();
    }
    else if(jumlahTekanan==4){
      digitalWrite(led_kuning, LOW);
      lcdmonitor();
      lcdmonitor4();
    }
    else if(jumlahTekanan==5){
      digitalWrite(led_merah, HIGH);
      lcdmonitor();
      lcdmonitor5();
    }
    else if(jumlahTekanan==6){
      digitalWrite(led_merah, LOW);
      lcdmonitor();
      lcdmonitor6();
    }
    else if(jumlahTekanan==7){
      digitalWrite(led_hijau, HIGH);
      digitalWrite(led_kuning, HIGH);
      digitalWrite(led_merah, HIGH);
      lcdmonitor();
      lcdmonitor7();
    }
    else if(jumlahTekanan==8){
      digitalWrite(led_hijau, LOW);
      digitalWrite(led_kuning, LOW);
      digitalWrite(led_merah, LOW);
      lcdmonitor();
      lcdmonitor8();
      jumlahTekanan=0;
    }
  }
}

void lcdmonitor()
{
  lcd.setCursor(0, 0);
  lcd.print(jumlahTekanan);
  lcd.print(" Tekanan");
}

void lcdmonitor1()
{
  lcd.setCursor(0, 1);
  lcd.print("Lampu Hijau  On.");
}

void lcdmonitor2()
{
  lcd.setCursor(0, 1);
  lcd.print("Lampu Hijau  Off.");
}
void lcdmonitor3()
{
  lcd.setCursor(0, 1);
  lcd.print("Lampu Kuning On.");
}
void lcdmonitor4()
{
  lcd.setCursor(0, 1);
  lcd.print("Lampu Kuning Off.");
}
void lcdmonitor5()
{
  lcd.setCursor(0, 1);
  lcd.print("Lampu Merah  On.");
}
void lcdmonitor6()
{
  lcd.setCursor(0, 1);
  lcd.print("Lampu Merah Off.");
}
void lcdmonitor7()
{
  lcd.setCursor(0, 1);
  lcd.print("Semua Lampu  On.");
}
void lcdmonitor8()
{
  lcd.setCursor(0, 1);
  lcd.print("Semua Lampu Off");
}

/* 
Kelompok 3
- Muhammad Ikbar Alfaridzi D  5311421055
- Muhammad Zaki Syahman       5311421056
- Maulana Azriel Haryanda     5311421060

Hal Yang ditambahkan
LCD

Penjelasan Code :
Program ini digunakan untuk mengontrol lampu dengan menggunakan tombol, menghitung jumlah tekanan tombol, 
menampilkan informasi di layar LCD, dan mengontrol LED hijau, kuning, dan merah.

#include <LiquidCrystal.h> adalah perintah untuk mengimpor library LiquidCrystal.h yang digunakan untuk 
mengontrol layar LCD.

LiquidCrystal lcd(12, 11, 10, 9, 8, 7); adalah perintah untuk menentukan koneksi pin Arduino ke layar LCD 
menggunakan konstruktor LiquidCrystal() dengan parameter 12, 11, 10, 9, 8, dan 7 yang mewakili 
koneksi RS, E, D4, D5, D6, dan D7 ke layar LCD.

int tombol = 2, int led_hijau = 3, int led_kuning = 4, dan int led_merah = 5 adalah deklarasi variabel 
untuk menentukan nomor pin Arduino yang digunakan untuk tombol dan LED hijau, kuning, dan merah.

int jumlahTekanan adalah variabel untuk menghitung jumlah tekanan tombol.

void setup() adalah fungsi yang dijalankan pada awal program. Dalam fungsi ini, 
pinMode() digunakan untuk menentukan mode input atau output dari pin yang digunakan.

void loop() adalah fungsi utama program yang diulang terus menerus selama program berjalan. 
Dalam fungsi ini, status tombol akan dibaca menggunakan digitalRead() dan dijadikan kondisi percabangan if. 
Ketika tombol ditekan, jumlahTekanan akan diinkremen dan kondisi if akan dijalankan sesuai dengan 
nilai jumlahTekanan, yaitu menghidupkan atau mematikan LED hijau, kuning, dan merah. 
Fungsi lcdmonitor() digunakan untuk menampilkan informasi jumlah tekanan pada baris pertama layar LCD, 
sedangkan fungsi lcdmonitor1() hingga lcdmonitor8() digunakan untuk menampilkan informasi pada 
baris kedua layar LCD.

Setiap fungsi lcdmonitor1() hingga lcdmonitor8() bertanggung jawab untuk menampilkan informasi yang berbeda 
di layar LCD tergantung pada kondisi jumlahTekanan.

Dalam keseluruhan, program ini dapat digunakan untuk mengendalikan lampu dengan menggunakan 
tombol dan layar LCD sebagai tampilan status. Dengan memodifikasi kode ini, Anda dapat mengontrol jenis 
perangkat lain yang sesuai dengan pin Arduino yang digunakan.
*/
$abcdeabcde151015202530fghijfghij