unisbadri.com » Python Java Golang Typescript Kotlin Ruby Rust Dart PHP
Perulangan

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. Jika false, 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. Jika false, 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. Jika false, 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.

« Seleksi Kondisi
Fungsi »