Mengenal Apa Itu Control Flow Pada Dart

Mengenal Apa Itu Control Flow Pada Dart

Seperti halnya dunia nyata yang kadang kala kita harus membuat keputusan seperti apakah anda hari ini dalam kondisi sehat atau tidak, jika kondisi anda sehat maka anda bisa pergi kesekolah, dan jika anda tidak sehat maka anda tidak akan pergi ke sekolah. begitu juga dengan program yang harus membuat keputusan untuk menjalankan kode yang sudah di buat. Pada artikel kali ini kita akan belajar bagaimana memberikan instruksi bagi komputer untuk mengambil keputusan dari kondisi yang diberikan dan juga kita akan mempelajari bagaimana melakukan instruksi yang berulang.

If dan Else

if dan else digunakan untuk menguji sutau kondisi. dimana jika suatu ekspesi bernilai true maka blok kode yang ada di dalamnya akan di eksekusi. jika bernilai false maka proses yang sudah ditentukan akan di abaikan.

contoh penggunaan if dan else menentukan bilangan ganjil dan genap :

void main(){

var number = 10;

if(number % 2 == 0){

print("ini adalah bilangan genap");

}else{

print("ini adalah bilangan ganjil");

}

}

penjelasan dari kode di atas :

  1. void main() -> merupakan sebuah fungsi yang dimana ini merupakan titik masuk dari program dart. fungsi main akan di jalankan pertama kali saat kita menjalankan program.
  2. var number = 10; -> disini kita mendeklarasikan variabel number dengan kata kunci var dengan memasukan nilai 10.
  3. if(number % 2 == 0) {} -> merupakan struktur kontrol pada if. dimana kode yang berada didalam {} akan di eksekusi ketika kondisi yang diberikan pada () sesuai atau bernilai true.
  4. else {} -> ini merupakan bagian alternatif dari struktur kontrol if. jika kondisi dalam if tidak terpebuhi maka kode yang berada di dalam else ini lah yang akan di eksekusi.
For Loops

ketika membuat suatu program terkadang kita perlu melakukan hal yang berkali kali, contohnya ketika kita hendak menampilkan semua nama pengguna pada aplikasi kita tentu sangat menyulitkan jika kita menuliskannya satu per satu apalagi pengguna dari aplikasi kita sudah berjuta- juta tentu ini akan sangat menyulitkan dan membutuhkan waktu banyak untuk bisa dilakukan.

beruntungnya pada dart ada solusi untuk permasalahan tadi yaitu dengan menggunakan for.

for cocok digunakan pada kondisi perulangan dimana kita membutuhkan variabel indeks dan tahu berapa kali perulangan yang kita butuhkan. contohnya jika kita ingin menampilkan angka 1 – 1000, kita bisa menuliskan sebagai berikut :

void main(){

for(int i = 1; i < 10001; i++){

print(i);

}

}

penjelasan :

  1. int i = 1; -> kita menginisialisasi nilai awal untuk variabel i adalah 1.
  2. i < 1001; -> ini murapakan operasi perbandingan dimana selama variabel i kurang dari 1001 maka variabel i akan ditambahkan dengan 1 disetiap akhir perulangan.
  3. print(i) -> jika bernilai true maka program akan menjalankan kode yang berada di dalam block for yaitu mencetak setiap angka dari 1 – 1000

dengan menggunakan for kita bisa dengan mudah membuat perulangan tanpa kita menuliskan satu per satu.

While and do-while

Sama seperti for, while mengevaluasi ekspresi boolean dan menjalankan kode di dalam blok while ketika bernilai true.

contoh penggunaan while untuk menampilkan angka 1 sampai 1000 sebagai berikut :

void main(){

var i = 1;

while (i <= 1000){

print(i);

i++;

}

}

perulangan dengan while tidak memiliki ketergantungan dengan variabel index seperti pada for loop sebelumnya. while lebih cocok digunakan ketika kita tidak tahu pasti berapa banyak perulangan yang di perlukan.

berbeda dengan while yang akan di evaluasi sebelum blok kode didalamnya dijalankan, do while justru mengevaluasi boolean expression setelah blok kodenya dijalankan. yang artinya kode yang berada didalam do while akan di jalankan terlebih dahulu setidaknya 1 kali.

contoh penggunaan do while sebagai berikut :

void main(){

var i = 1;

do{

print(1);

i++;

} while (i <= 1000);

}
Infinite Loops

Ada satu kondisi dimana kita perlu menghindari yaitu infinite loop. infinite loop merupakan kondisi dimana program kita stucked di dalam perulangan. ia akan berjalan terus sampai menyebabkan crash pada aplikasi dan komputer kecuali ada tindakan secara eksternal, seperti mematikan aplikasi.

berikut contoh kode dimana infinite loop dapat terjadi :

void main() {

var i = 1;

while (i < 5){

print(i);

}

}

bisakah anda mencari dimana letak kesalah pada kode di atas sehingga bisa terjadi infinite loop.

yap betul! karena variabel i akan selalu bernilai 1. alhasil kondisi i < 5 akan selalu bernilai true dan akan mengakibatkan program akan mencetak 1 ke konsol sehingga mengalami crash.

Break dan Continue

Dalam bahasa pemrograman Dart, ada dua pernyataan khusus yang memainkan peran penting dalam mengontrol aliran program: break dan continue. Keduanya memungkinkan pengembang untuk mengubah perilaku perulangan dan struktur kontrol lainnya, sehingga memungkinkan pengembangan kode yang lebih efisien dan elegan.

1. Break: Menghentikan Perulangan

Pernyataan break digunakan untuk menghentikan eksekusi dari perulangan atau struktur kontrol lainnya. Saat ditempatkan di dalam blok kode, break akan menghentikan perulangan secara paksa dan melanjutkan eksekusi program setelah blok perulangan.

Contoh penggunaan break:

void main() {

for (var i = 1; i <= 10; i++) {

if (i == 5) {

break; // Menghentikan perulangan saat i bernilai 5

}

print(i);

}

print("Perulangan selesai.");

}

Output dari kode di atas adalah:

1

2

3

4

Perulangan selesai.

Seperti yang terlihat, perulangan berhenti ketika variabel i bernilai 5 karena pernyataan break dipanggil. Pernyataan print(“Perulangan selesai.”) dieksekusi setelahnya.

2. Continue: Melewati Iterasi Saat Kondisi Tertentu Terpenuhi

Pernyataan continue, di sisi lain, digunakan untuk melewati iterasi saat kondisi tertentu terpenuhi. Ketika continue dipanggil, program akan melanjutkan ke iterasi berikutnya tanpa menjalankan kode di bawahnya dalam blok perulangan.

Contoh penggunaan continue:

void main() {

for (var i = 1; i <= 5; i++) {

if (i % 2 == 0) {

continue; // Melewati iterasi saat i merupakan bilangan genap

}

print("Iterasi ke-$i");

}

}

Output dari kode di atas adalah:

Iterasi ke-1

Iterasi ke-3

Iterasi ke-5

Seperti yang terlihat, iterasi dengan nilai genap (2 dan 4) diabaikan dan tidak dicetak karena pernyataan continue dipanggil saat kondisi i % 2 == 0 terpenuhi.

Pentingnya Break dan Continue dalam Pengembangan Aplikasi

Penggunaan break dan continue dapat meningkatkan efisiensi dan kejelasan kode dalam berbagai skenario. Pada situasi tertentu, kita mungkin ingin menghentikan perulangan sebelum mencapai batas tertentu, atau melewati beberapa iterasi yang tidak memenuhi kriteria tertentu.

Misalnya, dalam aplikasi yang memproses data dari daftar panjang, break dapat digunakan saat kita menemukan data yang diinginkan, sehingga menghindari pemrosesan yang tidak perlu pada sisa data. Sementara itu, continue dapat membantu kita menyaring data dengan cepat dan mengabaikan yang tidak relevan.

Selain itu, break dan continue juga membantu menghindari potensi infinite loop atau perulangan tak terbatas yang dapat menyebabkan aplikasi menjadi tidak responsif atau bahkan crash.

Penggunaan break dan continue harus dipertimbangkan dengan bijaksana agar tidak menyebabkan program menjadi sulit dibaca atau membingungkan. Jika digunakan secara tepat, break dan continue akan menjadi alat yang sangat berguna dalam pengembangan aplikasi, membantu kita menciptakan kode yang lebih efisien, elegan, dan mudah dipelihara.

Kesimpulan:

Dalam blog ini, kita telah mengenal lebih dalam tentang konsep Control Flow pada bahasa pemrograman Dart. Control Flow adalah cara bagi program untuk membuat keputusan dan melakukan perulangan berdasarkan kondisi tertentu.

Pertama-tama, kita mempelajari penggunaan struktur if dan else. Kita bisa menguji suatu kondisi dan mengeksekusi blok kode tertentu jika kondisi tersebut bernilai true atau menggunakan blok alternatif jika kondisi tidak terpenuhi.

Selanjutnya, kita mengeksplorasi penggunaan for loop, yang sangat berguna ketika kita perlu melakukan perulangan sejumlah kali. Dengan menggunakan variabel indeks, kita dapat dengan mudah mengulangi tugas tertentu berdasarkan jumlah perulangan yang diinginkan.

Kemudian, kita juga memahami penggunaan while dan do-while loop. Sama seperti for loop, while digunakan untuk perulangan, tetapi tidak tergantung pada variabel indeks. Sementara itu, do-while loop mengevaluasi kondisi setelah satu iterasi berjalan, memastikan bahwa blok kode di dalamnya minimal dijalankan satu kali.

Dalam blog ini, kita juga diingatkan tentang pentingnya menghindari “Infinite Loops,” yang dapat menyebabkan program menjadi tidak responsif dan bahkan menyebabkan crash pada aplikasi. Contoh infinite loop memberikan gambaran tentang bagaimana kesalahan kecil dapat menyebabkan masalah serius.

Kesimpulannya, pemahaman tentang Control Flow sangat penting dalam pengembangan perangkat lunak karena memungkinkan kita untuk membuat keputusan dan menjalankan kode dengan tepat. Dengan memahami penggunaan if-else, for loop, while loop, dan do-while loop, kita dapat meningkatkan efisiensi dan kehandalan program yang kita buat. Selain itu, kesadaran akan kemungkinan terjadinya infinite loop juga membantu kita menghindari masalah yang tidak diinginkan dalam aplikasi. Dengan terus memperdalam pemahaman tentang Control Flow, kita dapat menjadi pengembang yang lebih terampil dan efektif dalam menghadapi tantangan dalam dunia pemrograman Dart.

Tertarik mengikuti training di ID-Networkers? Kami menyediakan berbagai pilihan training yang bisa kamu ikuti, klik disini untuk info lengkapnya.

Penulis : Syahril Sobirin