Perulangan #
Perulangan (loop) adalah konsep penting dalam pemrograman yang memungkinkan Anda untuk mengeksekusi blok kode berulang kali hingga kondisi tertentu terpenuhi. Dalam Dart, seperti dalam banyak bahasa pemrograman lainnya, ada beberapa jenis struktur perulangan yang dapat digunakan: for
, while
, do-while
, dan beberapa variasi lainnya. Setiap jenis perulangan memiliki kegunaan yang berbeda tergantung pada situasi yang ingin Anda capai.
Perulangan for
#
Perulangan for
adalah salah satu struktur perulangan yang paling umum dan serbaguna. Ini digunakan ketika Anda mengetahui sebelumnya berapa kali Anda ingin menjalankan blok kode.
Sintaks:
for (inisialisasi; kondisi; increment/decrement) {
// Blok kode yang akan diulang
}
- Inisialisasi: Bagian ini dieksekusi sekali, sebelum loop dimulai. Biasanya digunakan untuk mendeklarasikan dan menginisialisasi variabel kontrol.
- Kondisi: Kondisi ini dievaluasi sebelum setiap iterasi. Jika kondisi bernilai
true
, blok kode di dalam loop dieksekusi. Jikafalse
, loop berhenti. - Increment/Decrement: Bagian ini dieksekusi setelah setiap iterasi. Biasanya digunakan untuk mengubah nilai variabel kontrol.
Contoh:
void main() {
for (int i = 0; i < 5; i++) {
print('Iterasi ke-$i');
}
}
Pada contoh di atas, perulangan for
akan berjalan sebanyak 5 kali, mencetak Iterasi ke-0
hingga Iterasi ke-4
.
Variasi Perulangan for
#
Selain perulangan for
biasa, Dart juga mendukung dua variasi lain: for-in
dan forEach
.
for-in
#
for-in
digunakan untuk mengiterasi elemen dalam koleksi seperti List
, Set
, atau Map
.
Contoh:
void main() {
List<String> buah = ['Apel', 'Pisang', 'Jeruk'];
for (var item in buah) {
print(item);
}
}
Pada contoh di atas, perulangan for-in
mengiterasi setiap elemen dalam list buah
dan mencetaknya.
forEach
#
forEach
adalah metode yang bisa digunakan pada koleksi untuk mengiterasi setiap elemen dan mengeksekusi fungsi tertentu.
Contoh:
void main() {
List<int> angka = [1, 2, 3, 4, 5];
angka.forEach((item) {
print(item);
});
}
Pada contoh di atas, forEach
digunakan untuk mencetak setiap elemen dalam list angka
.
Perulangan while
#
Perulangan while
digunakan ketika Anda ingin mengulangi blok kode selama kondisi tertentu terpenuhi. Tidak seperti for
, while
biasanya digunakan ketika jumlah iterasi tidak diketahui sebelumnya.
Sintaks:
while (kondisi) {
// Blok kode yang akan diulang
}
- Kondisi: Kondisi ini dievaluasi sebelum setiap iterasi. Jika
true
, blok kode di dalam loop dieksekusi. Jikafalse
, loop berhenti.
Contoh:
void main() {
int i = 0;
while (i < 5) {
print('Iterasi ke-$i');
i++;
}
}
Pada contoh di atas, perulangan while
berjalan selama i
kurang dari 5. Loop berhenti ketika kondisi i < 5
tidak lagi terpenuhi.
Perulangan do-while
#
do-while
mirip dengan while
, tetapi dengan satu perbedaan utama: blok kode di dalam do
selalu dieksekusi setidaknya satu kali, bahkan jika kondisi while
adalah false
pada iterasi pertama.
Sintaks:
do {
// Blok kode yang akan diulang
} while (kondisi);
- Kondisi: Kondisi ini dievaluasi setelah blok kode dijalankan. Jika
true
, loop akan diulang. Jikafalse
, loop berhenti.
Contoh:
void main() {
int i = 0;
do {
print('Iterasi ke-$i');
i++;
} while (i < 5);
}
Pada contoh di atas, blok kode di dalam do
akan dieksekusi setidaknya satu kali, dan kemudian kondisi i < 5
dievaluasi untuk menentukan apakah loop akan dilanjutkan.
Penggunaan break
dan continue
dalam Perulangan
#
Dart mendukung pernyataan break
dan continue
untuk mengontrol alur eksekusi dalam perulangan.
break
#
break
digunakan untuk keluar dari loop sepenuhnya, menghentikan semua iterasi lebih lanjut.
Contoh:
void main() {
for (int i = 0; i < 5; i++) {
if (i == 3) {
break; // Loop berhenti ketika i adalah 3
}
print('Iterasi ke-$i');
}
}
Pada contoh di atas, loop akan berhenti sepenuhnya ketika i
mencapai 3.
continue
#
continue
digunakan untuk melewati iterasi saat ini dan melanjutkan dengan iterasi berikutnya.
Contoh:
void main() {
for (int i = 0; i < 5; i++) {
if (i == 3) {
continue; // Iterasi ke-3 dilewati
}
print('Iterasi ke-$i');
}
}
Pada contoh di atas, ketika i
adalah 3, loop akan melewatkan iterasi tersebut dan melanjutkan dengan iterasi berikutnya.
Perulangan Bersarang (Nested Loop) #
Perulangan bersarang adalah ketika satu loop ditempatkan di dalam loop lain. Ini sering digunakan ketika Anda perlu bekerja dengan struktur data yang memiliki dimensi lebih dari satu, seperti matriks.
Contoh:
void main() {
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3; j++) {
print('i: $i, j: $j');
}
}
}
Pada contoh di atas, perulangan luar mengontrol baris, sedangkan perulangan dalam mengontrol kolom. Hasilnya adalah semua kombinasi dari i
dan j
.
Labelled Loop #
Dart mendukung penggunaan label untuk loop, yang memungkinkan Anda mengontrol loop secara lebih spesifik ketika menggunakan break
atau continue
dalam loop bersarang.
Contoh:
void main() {
outerLoop: for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (i == 1 && j == 1) {
break outerLoop; // Keluar dari kedua loop ketika i dan j sama-sama 1
}
print('i: $i, j: $j');
}
}
}
Pada contoh di atas, ketika i
dan j
keduanya sama dengan 1, break
keluar dari kedua loop karena mengacu pada label outerLoop
.
Kesimpulan #
Perulangan dalam Dart adalah alat yang sangat berguna untuk mengelola tugas-tugas yang berulang dalam kode Anda. Dengan memahami berbagai jenis perulangan seperti for
, while
, do-while
, serta menggunakan kontrol alur dengan break
dan continue
, Anda dapat menulis kode yang lebih efisien dan fleksibel. Penggunaan loop bersarang dan labelled loop juga memungkinkan untuk menangani skenario yang lebih kompleks. Memilih jenis perulangan yang tepat tergantung pada situasi yang Anda hadapi, dan pengetahuan mendalam tentang cara kerja loop dalam Dart akan membantu Anda membuat keputusan tersebut dengan lebih baik.