Terkadang, instruksi tertentu memerlukan eksekusi yang berulang-ulang. Perulangan atau yang biasa disebut dengan istilah loop adalah cara yang ideal untuk melakukan hal tersebut. Sebuah loop mewakili satu set instruksi yang harus diulang. Dalam konteks loop, pengulangan disebut sebagai iterasi.
Gambar berikut mengilustrasikan klasifikasi loop :
Mari kita mulai diskusi dengan Definite Loops. Sebuah loop yang jumlah iterasinya pasti / tetap disebut definite loop.
No | Deskripsi |
---|---|
1 | for loop Perulangan for adalah implementasi dari perulangan tertentu. Perulangan for mengeksekusi blok kode untuk beberapa jumlah tertentu. |
2 | for…in loop For…in loop digunakan untuk mengulang melalui properti object. |
For Loop
For loop adalah implementasi dari perulangan tertentu yang digunakan untuk mengeksekusi blok kode sejumlah bilangan tertentu. For loop juga berguna untuk mengulang dan mengoperasikan nilai dalam array.
Berikut ini adalah cara penulisan dari for loop.
for (inisialisasi; kondisi; expression) {
// perintah coding yang diulang
}
Contoh
void main() {
var num = 5;
var faktorial = 1;
for( var i = num ; i >= 1; i-- ) {
factorial *= i ;
}
print(faktorial);
}
Kode program di atas akan menghasilkan output berikut :
120
For loop terdiri dari tiga bagian: inisialisasi (i=num), kondisi (i>=1), dan expression (i–).
Contoh di atas menghitung faktorial dari angka 5 dan menampilkan hasilnya. Perulangan for digunakan untuk menghasilkan urutan angka dari 5 hingga 1, dan menghitung hasil angka pada setiap iterasi.
Beberapa kondisi dan expression dapat digabungkan dalam for loop dengan menggunakan operator koma (,). Sebagai contoh, perulangan for berikut ini mencetak delapan angka Fibonacci pertama :
void main() {
for(int temp, i = 0, j = 1; j<30; temp = i, i = j, j = i + temp) {
print('${j}');
}
}
Kode di atas akan menghasilkan output berikut :
1
1
2
3
5
8
13
21
For-in Loop
For…in loop digunakan untuk mengulang melalui properti object.
Berikut ini adalah cara penulisan dari for…in loop.
for (namaVariabel dalam Object){
// perintah coding yang diulang
}
Dalam setiap iterasi, satu properti dari object dipindahkan ke nama variabel dan loop ini berlanjut hingga semua properti object habis.
Contoh
void main() {
var obj = [12,13,14];
for (var prop in obj) {
print(prop);
}
}
Kode diatas akan menghasilkan output berikut :
12
13
14
Selanjutnya, mari kita bahas loop tak terbatas. Indefinite loop digunakan ketika jumlah iterasi dalam satu loop tidak ditentukan atau tidak diketahui. Perulangan tak terbatas dapat diimplementasikan menggunakan :
No | Lingkaran & Deskripsi |
---|---|
1 | while loop Perulangan while mengeksekusi instruksi setiap kali kondisi yang ditentukan bernilai benar. Dengan kata lain, loop mengevaluasi kondisi sebelum blok kode dieksekusi. |
2 | do…while loop Perulangan do…while mirip dengan perulangan while kecuali bahwa perulangan do…while tidak mengevaluasi kondisi pada waktu pertama kali perulangan dijalankan. |
While Loop
While loop akan mengeksekusi instruksi di dalamnya selama kondisi yang ditentukan masih bernilai benar. Dengan kata lain, loop akan mengevaluasi kondisi sebelum blok kode dieksekusi.
Ilustrasi berikut menunjukkan flowchart dari while loop :
Berikut adalah cara penulisan untuk while loop.
while (expression) {
// perintah coding yang diulang
}
Contoh
void main() {
var num = 5;
var faktorial = 1;
while(num >=1) {
faktorial = faktorial * num;
num--;
}
print("faktorial adalah ${faktorial}");
}
Kode di atas menggunakan while loop untuk menghitung faktorial dari nilai dalam variabel num. Setelah berhasil dieksekusi, kode akan menampilkan output berikut.
Faktorial adalah 120
Do While Loop
Perulangan do…while mirip dengan perulangan while, namun berbeda pada saat evaluasi kondisi. Pada perulangan do…while, blok kode akan dieksekusi setidaknya sekali sebelum kondisi dievaluasi. Kemudian, kondisi akan dievaluasi untuk setiap iterasi berikutnya.
Ilustrasi berikut menunjukkan flowchart dari do…while loop :
Berikut adalah cara penulisan untuk do…while loop.
do {
// perintah coding yang diulang
} while (expression);
Catatan − Jangan lewatkan titik koma yang digunakan di akhir do…while loop.
Contoh
void main() {
var n = 10;
do {
print(n);
n--;
}
while(n>=0);
}
Kode di atas adalah program yang mencetak angka dari 10 sampai 0 secara terbalik. Setelah berhasil dieksekusi, program akan menampilkan output sebagai berikut.
10
9
8
7
6
5
4
3
2
1
0
Mari kita lanjutkan dan diskusikan Loop Control Statement Dart.
No | Deskripsi Kontrol |
---|---|
1 | break statement Perintah break digunakan untuk mengambil kendali dari sebuah loop. Menggunakan break dalam satu loop menyebabkan program keluar dari loop. |
2 | continue statement Perintah continue melompati pernyataan dalam loop saat ini dan mengembalikan kontrol ke awal loop |
Break Statement dalam Pemrograman Dart
Perintah break digunakan untuk mengambil kendali dari sebuah loop. Penggunaan break dalam sebuah loop akan menyebabkan program keluar dari loop tersebut. Berikut ini adalah contoh penggunaan pernyataan break:
Contoh
void main() {
var i = 1;
while(i<=10) {
if (i % 5 == 0) {
print("Kelipatan pertama dari 5 antara 1 dan 10 adalah : ${i}");
break ;
//keluar dari loop jika kelipatan pertama ditemukan
} i++;
}
}
Kode di atas mencetak kelipatan pertama dari 5 untuk rentang angka dari 1 hingga 10.
Jika suatu angka habis dibagi 5, struktur if akan memaksa kontrol keluar dari loop menggunakan pernyataan break. Output berikut akan ditampilkan saat kode di atas berhasil dieksekusi.
Kelipatan pertama dari 5 antara 1 dan 10 adalah : 5
Continue Statement dalam Pemrograman Dart
Perintah continue memungkinkan untuk melompati pernyataan dalam iterasi saat ini dan mengembalikan kontrol ke awal loop. Berbeda dengan pernyataan break, pernyataan continue tidak akan keluar dari loop, namun akan menghentikan iterasi saat ini dan melanjutkan ke iterasi berikutnya.
Berikut ini adalah contoh penggunaan pernyataan continue di dalam Dart :
Contoh
void main() {
var num = 0;
var count = 0;
for(num = 0;num<=20;num++) {
if (num % 2==0) {
continue;
}
count++;
}
print("Hitungan nilai ganjil antara 0 dan 20 adalah: ${count}");
}
Contoh di atas menampilkan jumlah nilai genap antara 0 dan 20. Loop akan keluar dari iterasi saat nilai tersebut genap. Hal ini dapat dicapai dengan menggunakan pernyataan continue.
Berikut adalah output yang akan ditampilkan pada eksekusi sukses dari kode di atas.
Hitungan nilai ganjil antara 0 dan 20 adalah: 10
Menggunakan Label untuk Mengontrol Loop
Label adalah pengidentifikasi yang diikuti oleh tanda titik dua (:) yang diterapkan pada pernyataan atau blok kode. Label dapat digunakan dengan break dan continue untuk mengontrol aliran program dengan lebih tepat.
Contoh: Label dengan Break
void main() {
outerloop: // Label nama
for (var i = 0; i < 5; i++) {
print("Innerloop: ${i}");
innerloop:
for (var j = 0; j < 5; j++) {
if (j > 3 ) break ;
// Keluar dari loop terdalam
if (i == 2) break innerloop;
// Melakukan hal yang sama dengan innerloop diatas
if (i == 4) break outerloop;
// Keluar dari outer loop
print("Innerloop: ${j}");
}
}
}
Setelah kode di atas berhasil dieksekusi, output berikut akan ditampilkan.
Innerloop: 0
Innerloop: 0
Innerloop: 1
Innerloop: 2
Innerloop: 3
Innerloop: 1
Innerloop: 0
Innerloop: 1
Innerloop: 2
Innerloop: 3
Innerloop: 2
Innerloop: 3
Innerloop: 0
Innerloop: 1
Innerloop: 2
Innerloop: 3
Innerloop: 4
Contoh: Label dengan Continue
void main() {
outerloop:
for (var i = 0; i < 3; i++) {
print("Outerloop:${i}");
for (var j = 0; j < 5; j++) {
if (j == 3){
continue outerloop;
}
print("Innerloop:${j}");
}
}
}
Setelah kode di atas berhasil dieksekusi, output berikut akan ditampilkan.
Outerloop:0
Innerloop:0
Innerloop:1
Innerloop:2
Outerloop:1
Innerloop:0
Innerloop:1
Innerloop:2
Outerloop:2
Innerloop:0
Innerloop:1
Innerloop:2
Tutorial sebelumnya : Dart Operator
Tutorial setelahnya : Pengkondisian Pada Dart
Semua Tutorial Dart : Tutorial Dart