int hijau=13;
int kuning=12;
int merah=11;
int hijau2=10;
int kuning2=9;
int merah2=8;
int hijau3=7;
int kuning3=6;
int merah3=5;
int hijau4=2;
int kuning4=3;
int merah4=4;

unsigned long previousMillis=0;
const long interval=500;
bool ledState=LOW;

void setup() {
  // put your setup code here, to run once:
pinMode(hijau,OUTPUT);
pinMode(kuning,OUTPUT);
pinMode(merah,OUTPUT);
pinMode(hijau2,OUTPUT);
pinMode(kuning2,OUTPUT);
pinMode(merah2,OUTPUT);
pinMode(hijau3,OUTPUT);
pinMode(kuning3,OUTPUT);
pinMode(merah3,OUTPUT);
pinMode(hijau4,OUTPUT);
pinMode(kuning4,OUTPUT);
pinMode(merah4,OUTPUT);

digitalWrite(hijau, HIGH);
digitalWrite(kuning,HIGH);
digitalWrite(merah,HIGH);
digitalWrite(hijau2,HIGH);
digitalWrite(kuning2,HIGH);
digitalWrite(merah2,HIGH);
digitalWrite(hijau3,HIGH);
digitalWrite(kuning3,HIGH);
digitalWrite(merah3,HIGH);
digitalWrite(hijau4,HIGH);
digitalWrite(kuning4,HIGH);
digitalWrite(merah4,HIGH);
delay(2000); 

digitalWrite(hijau,LOW);
digitalWrite(kuning,LOW);
digitalWrite(merah,LOW);
digitalWrite(hijau2,LOW);
digitalWrite(kuning2,LOW);
digitalWrite(merah2,LOW);
digitalWrite(hijau3,LOW);
digitalWrite(kuning3,LOW);
digitalWrite(merah3,LOW);
digitalWrite(hijau4,LOW);
digitalWrite(kuning4,LOW);
digitalWrite(merah4,LOW);
}

void loop(){
  // put your main code here, to run repeatedly:

unsigned long currentMillis=millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
ledState = !ledState;
digitalWrite(kuning2, ledState);
digitalWrite(kuning4,ledState);
}
digitalWrite(hijau, LOW);
digitalWrite(merah3, LOW);
digitalWrite(kuning3, LOW);
digitalWrite(kuning, LOW);
digitalWrite(hijau3, HIGH);
digitalWrite(merah, HIGH);
delayNonBlocking(6000);
digitalWrite(kuning, HIGH);
digitalWrite(kuning3, HIGH);
delayNonBlocking(2000);
digitalWrite(hijau3, LOW);
digitalWrite(merah, LOW);
digitalWrite(kuning,LOW);
digitalWrite(kuning3, LOW);
digitalWrite(hijau, HIGH);
digitalWrite(merah3, HIGH);
delayNonBlocking(6000);
digitalWrite(kuning3, HIGH);
digitalWrite(kuning, HIGH);
delayNonBlocking(2000);
}
void delayNonBlocking(unsigned long delayTime) {
unsigned long start = millis();
while (millis() - start < delayTime) {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
ledState = !ledState;
digitalWrite(kuning2, ledState);
digitalWrite(kuning4, ledState);
}
}
}