Loop Do While pada Arduino

Sintaks loop do while adalah sebagai berikut:

do {
//statemen di dalam tubuh loop do while
} while (ekspresi2);

Sama halnya dengan loop while, ekspresi2 merupakan bagian dari loopnya. Tapi do while dengan loop while punya perbedaan. Jika kondisi berlogika salah maka statemen di dalam tubuh loop while tidak dijalankan sedangkan meskipun kondisi awal berlogika salah maka program pada tubuh loop do while dijalankan meskipun hanya sekali. Supaya lebih jelas kita buat program menyalakan LED menggunakan loop while, perhatikan sintaks berikut ini:

/*
* membuat program nyala LED menggunakan loop while
* jika k<5 maka LED nyala
* jika k=>5 LED mati
*/

#define LED1 4 //mendefinisikan pin 4 sebagai LED1
#define LED2 5
#define LED3 6
#define LED4 7

void setup() {
  //setting LED1-LED4 sebagai output
  pinMode (LED1, OUTPUT);
  pinMode (LED2, OUTPUT);
  pinMode (LED3, OUTPUT);
  pinMode (LED4, OUTPUT);

  int k=5; //ekspresi1
  while(k<5){ //ekspresi2
    //tidak dieksekusi karena kondisi k false
    digitalWrite (LED1, HIGH);
    digitalWrite (LED2, HIGH);
    digitalWrite (LED3, HIGH);
    digitalWrite (LED4, HIGH);
    delay(1000);
    k++;
}
  //Menjalankan blok di bawah ini karena loop while dalam keadaan false
  digitalWrite (LED1, HIGH);
  digitalWrite (LED2, LOW);
  digitalWrite (LED3, HIGH);
  digitalWrite (LED4, LOW);
  delay(4000);
}

void loop() {
}

Outputnya adalah sebagai berikut: do while arduino

Gambar 1. Menggunakan loop while

Berdasarkan gambar 1 di atas, nilai pertama berkondisi salah sehingga kode di dalam blok while tidak dieksekusi yaitu kode untuk menyalakan semua LED, tapi mikrokontroler langsung mengeksekusi statement setelah blok while. Kita gunakan loop do while, maka kodingnya sebagai berikut:

/*
* membuat program nyala LED menggunakan loop do while
*/

#define LED1 4 //mendefinisikan pin 4 sebagai LED1
#define LED2 5
#define LED3 6
#define LED4 7

void setup() {
  //setting LED1-LED4 sebagai output
  pinMode (LED1, OUTPUT);
  pinMode (LED2, OUTPUT);
  pinMode (LED3, OUTPUT);
  pinMode (LED4, OUTPUT);

  int k=5; //ekspresi1
  do {
    //dieksekusi 1x meskipun false
    digitalWrite (LED1, HIGH);
    digitalWrite (LED2, HIGH);
    digitalWrite (LED3, HIGH);
    digitalWrite (LED4, HIGH);
    delay(1000);
    k++;
}while(k<5); //ekspresi2
  //Menjalankan blok di bawah ini setelah menjalankan blok do while
  digitalWrite (LED1, HIGH); 
  digitalWrite (LED2, LOW);
  digitalWrite (LED3, HIGH);
  digitalWrite (LED4, LOW);
  delay(4000);
}

void loop() {
}

Outputnya dapat dilihat pada gambar 2 di bawah ini:

do while pada arduino

Gambar 2. Program menyalakan LED menggunakan loop do while

Berdasarkan gambar 2, meskipun kondisi awal adalah false tapi statement di dalam tubuh do tetap dieksekusi meskipun hanya sekali. Setelah itu baru dilakukan pengecekan pada ekspresi2, karena false maka dilanjutkan menjalankan kode program setelah blok do while.

 

PREVIOUS: Loop While

NEXT: Fungsi

KE DAFTAR ISI

 

Leave a Reply

Your email address will not be published. Required fields are marked *