Statement Loop Control Pada Bahasa Arduino

Dalam pemrograman Arduino ada beberapa statement yang bisa digunakan untuk mengontrol pengulangan (loop), beberapa diantaranya adalah break dan continue. Keduanya digunakan dalam statement perulangan seperti for, while, switch-case, dan do-While. kedua statement itu memiliki fungsi yang berbeda, keduanya membantu bisa programmer untuk membuat sebuah program yang lebih efisien.

Break

Statement ini digunakan untuk keluar dari pengulangan yang disebabkan oleh for, while, atau do . . while dan kembali ke pengulangan utama loop(), selain itu bisa digunakan untuk keluar dari statement switch . . case.

				
					Syntax :
	//loop program ;
	break;
				
			

Contoh penggunaan statement break

				
					void setup() {
  // Inisialisasi Serial Monitor
  Serial.begin(9600);

  // Contoh penggunaan break
  Serial.println("=== Contoh Penggunaan break ===");
  for (int i = 1; i <= 10; i++) {
    if (i > 5) {
      Serial.println("Perulangan dihentikan karena i > 5.");
      break; // Hentikan perulangan jika i > 5
    }
    Serial.print("Nilai i: ");
    Serial.println(i);
  }
}

  void loop() {
  // no code
}
				
			

Upload dan buka serial monitor, terlihat bahwa pengulangan oleh statement for hanya sampai i=5, ini disebabkan karena dalam program tersebut ditambahkan kondisi khusus “jika nilai i lebih dari 5, maka eksekusi statement break” yang menyebabkan pengulangan pengulangan dari statement for berhenti.

Continue

Statement ini digunakan untuk melakukan skiploop program yang disebabkan oleh for, while, atau do . . while. Kita bisa menentukan sendiri pengulangan ke-berapa yang akan di lewati. 

				
					syntax :
//loop program
contiune;
				
			

Contoh penggunaan statement continue

				
					 void setup() {
  Serial.println("=== Contoh Penggunaan continue ===");
  for (int j = 1; j <= 10; j++) {
    if (j % 2 == 0) {
      continue; // Lewati iterasi jika j adalah bilangan genap
    }
    Serial.print("Bilangan ganjil: ");
    Serial.println(j);
  }
}

void loop() {
  // no code
}
				
			

upload dan buka serial monitor, terlihat bahwa pengulangan oleh statement for hanya melakukan pengulangan jika nilai variabel J adalah angka ganjil, itu disebabkan oleh penambahan kondisi khusus pada baris program 4 “jika nilai variabel j habis dibagi dengan 2 (j % 2 == 0), maka eksekusi statement continue (lewati pengulangan)”. Sehingga pengulangan yang dilakukan hanya jika nilai J adalah bilangan ganjil

goto

Statement goto digunakan untuk melompat ke label tertentu dalam program. Label adalah penanda yang ditulis dengan nama tertentu diikuti tanda titik dua (:). Meskipun goto dapat digunakan untuk mengontrol alur program, penggunaannya sering dihindari karena dapat membuat kode menjadi sulit dibaca dan dipahami. 

				
					label:

goto label; // sends program flow to the label
				
			

Untuk menggunakan goto kita perlu membuat label (nama bebas) kemudian tulis statement goto diikuti nama label yang dituju, sehingga ketika baris program goto dibaca, pembacaan program akan berpindah ke baris program dimana label ditempatkan. sekarang kita coba membuat program sederhana.

				
					void setup() {
  Serial.begin(9600);
  Serial.println("=== Contoh Penggunaan goto ===");
  int counter = 0;
startLoop:
  if (counter >= 5) {
    Serial.println("Perulangan selesai.");
    goto endLoop; // Loncat ke label endLoop
  }
  Serial.print("Nilai counter: ");
  Serial.println(counter);
  counter++;
  goto startLoop; // Loncat kembali ke label startLoop

endLoop:
  Serial.println("Program selesai.");
}


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

}
				
			

Upload dan buka serial monitor, terlihat bahwa program melakukan pengulangan sebanyak 5 kali, jadi setiap kali baris program 13 di eksekusi, pembacaan program akan kembali ke baris 5, sampai saat nilai variabel counter bernilai 5 dan baris program 8 di eksekusi, maka pembacaan program akan berpindah ke baris program 15.

return

Statement ini digunakan untuk mengakhiri fungsi dan mengembalikan nilai. Nilai yang dikembalikan bisa berupa variabel atau konstanta (constant).

				
					Syntax:

return;
return nilai;

				
			

Contoh penggunaan statement return untuk mengakhiri suatu fungsi

				
					void setup() {
Serial.begin (9600);
Serial.print (“Hallo dunia”);
Return;
Serial.print (“Hallo Kamu”)l
}

void loop () {
// no code
}

				
			

Perhatikan serial monitor setelah upload sketch diatas, terlihat bahwa pada serial monitor hanya menampilkan kalimat “hello dunia”, padahal dalam sketch terdapat dua syntax untuk menampilkan tulisan. Itu karena terdapat statement return, sehingga blok program dibawahnya tidak akan dieksekusi.

Contoh penggunaan statement return untuk mengembalikan nilai

				
					const int jarijari = 5;
const float pi = 3.14;
float luas;

void setup() {
  Serial.begin(9600);
  luas = luasLingkaran();
  Serial.print ("Luas lingkaran = ");
  Serial.println(luas, 4); // menampilkan 4 digit dibelakang koma
}

void loop() {
  // nocode
}

float luasLingkaran()//mendefinisikan fungsi bernama luasLingkaran
{
 float hasil;
 hasil= pi * jarijari * jarijari; 
 return hasil;
}

				
			

Code diatas adalah program untuk menghitung luas lingkaran, di serial monitor hasilnya seperti ini

Yang perlu diperhatikan disini adalah blok program 

				
					luas = luasLingkaran();
Serial.println(luas, 4);

				
			

blok program tersebut adalah perintah untuk menampilkan nilai variabel luas pada serial monitor, dimana nilai variabel luas adalah return value dari fungsi luasLingkaran(), fungsi tersebut melakukan perhitungan luas lingkaran, kemudian blok program terakhir terdapat syntax  return hasil; . statement return disana berfungsi memberi return value pada fungsi luasLingkaran(), akibatnya fungsi tersebut menjadi memiliki nilai hasil perhitungan luas lingkaran.