//defining name and value of the pins
#define led_1 2 //inisialisasi lampu 1 di pin 2
#define led_2 13 //inisialisasi lampu 2 di pin 13
#define led_3 1 //inisialisasi lampu 3 di pin 1
#define led_4 0 //inisialisasi lampu 4 di pin 0
#define led_5 12 //inisialisasi lampu 5 di pin 12
//one-time execution function
void setup() {
// deklarasi status pin
pinMode(led_1, OUTPUT); //mendeklarasikan lampu 1 sebagai keluaran
pinMode(led_2, OUTPUT); //mendeklarasikan lampu 2 sebagai keluaran
pinMode(led_3, OUTPUT); //mendeklarasikan lampu 3 sebagai keluaran
pinMode(led_4, OUTPUT); //mendeklarasikan lampu 4 sebagai keluaran
pinMode(led_5, OUTPUT); //mendeklarasikan lampu 5 sebagai keluaran
}
//repeated execution function
void loop(){
if(digitalRead(5)) //apabila pin 5 sebagai masukan berlogika HIGH
{
led_berjalan(); //fungsi 1 yang akan dipanggil jika masukan dalam kondisi HIGH
}
if (digitalRead(6)) //apabila pin 6 sebagai masukan berlogika HIGH
{
kedap_kedip(); //fungsi 2 yang akan dipanggil jika masukan dalam kondisi HIGH
}
else //bila tidak ada kondisi yang memenuhi
{
mati(); //fungsi 3 yang akan dipanggil
}
}
void led_berjalan(){ //memanggil fungsi 1 untuk dieksekusi
digitalWrite(led_1, HIGH); //mengesekusi keluaran 1 agar berlogika HIGH
digitalWrite(led_2, HIGH); //mengesekusi keluaran 2 agar berlogika HIGH
digitalWrite(led_3, HIGH); //mengesekusi keluaran 3 agar berlogika HIGH
digitalWrite(led_4, HIGH); //mengesekusi keluaran 4 agar berlogika HIGH
digitalWrite(led_5, HIGH); //mengesekusi keluaran 5 agar berlogika HIGH
delay(500); //menunda eksekusi selanjutnya selama 5 detik
digitalWrite(led_1, LOW); //mengeksekusi keluaran 1 agar berlogika LOW
digitalWrite(led_2, LOW); //mengeksekusi keluaran 2 agar berlogika LOW
digitalWrite(led_3, LOW); //mengeksekusi keluaran 3 agar berlogika LOW
digitalWrite(led_4, LOW); //mengeksekusi keluaran 4 agar berlogika LOW
digitalWrite(led_5, LOW); //mengeksekusi keluaran 5 agar berlogika LOW
}
void kedap_kedip(){ //memanggil fungsi 2 untuk dieksekusi
digitalWrite(led_1, HIGH); //mengeksekusi keluaran 1 agar berlogika HIGH
delay(500); //menunda eksekusi selanjutnya selama 5 detik
digitalWrite(led_1, LOW); //mengeksekusi keluaran 1 agar berlogika LOW
digitalWrite(led_2, HIGH); //mengeksekusi keluaran 2 agar berlogika HIGH
delay(500); //menunda eksekusi selanjutnya selama 5 detik
digitalWrite(led_2, LOW); //mengeksekusi keluaran 2 agar berlogika LOW
digitalWrite(led_3, HIGH); //mengeksekusi keluaran 3 agar berlogika HIGH
delay(500); //menunda eksekusi selanjutnya selama 5 detik
digitalWrite(led_3, LOW); //mengeksekusi keluaran 3 agar berlogika LOW
digitalWrite(led_4, HIGH); //mengeksekusi keluaran 4 agar berlogika HIGH
delay(500); //menunda eksekusi selanjutnya selama 5 detik
digitalWrite(led_4, LOW); //mengeksekusi keluaran 4 agar berlogika LOW
digitalWrite(led_5, HIGH); //mengeksekusi keluaran 5 agar berlogika HIGH
delay(500); //menunda eksekusi selanjutnya selama 5 detik
digitalWrite(led_5, LOW); //mengeksekusi keluaran 5 agar berlogika LOW
}
void mati(){ //memanggil fungsi 3 untuk dieksekusi
digitalWrite(led_1, LOW); //mengeksekusi keluaran 1 agar berlogika LOW
digitalWrite(led_2, LOW); //mengeksekusi keluaran 2 agar berlogika LOW
digitalWrite(led_3, LOW); //mengeksekusi keluaran 3 agar berlogika LOW
digitalWrite(led_4, LOW); //mengeksekusi keluaran 4 agar berlogika LOW
digitalWrite(led_5, LOW); //mengeksekusi keluaran 5 agar berlogika LOW
}