Menggunakan Konstruksi Perulangan for Di C#

konstruksi perulangan for di c#

Halo! Selamat datang kembali di “Seri Belajar Dasar Pemrograman Bahasa C#“. Setelah mempelajari bagaimana mengatur alur eksekusi program dengan percabangan if dan switch di C#, kali ini kita akan mempelajari bagaimana mengulangi sebuah proses eksekusi selama sebuah kondisi masih terpenuhi dengan menggunakan konstruksi perulangan for di C#.

Sebenarnya ada beberapa konstruksi perluangan lain di C#, seperti perulangan while, do-while, dan foreach. Namun pada materi kali ini, kita hanya akan mempelajari bagaimana menggunakan konstruksi perulangan for di C#.

Kapan Kita Perlu Melakukan Perulangan?

Pada saat mengembangkan sebuah aplikasi, seringkali kita perlu mengulang sebuah proses selama suatu kondisi masih terpenuhi.

Misalnya ketika kita perlu menampilkan puluhan atau bahkan jutaan daftar produk (pengulangan / iteration), atau ketika sebuah proses perlu dieksekusi terus menerus selama sebuah kondisi terpenuhi (perulangan / loop), kita memerlukan sebuah konstruksi yang mampu melakukan pekerjaan tersebut untuk kita.

Seperti bahasa pemrograman lain, C# juga menyediakan beberapa konstruksi perulangan yang bisa kita gunakan sesuai dengan kebutuhan.

Untuk membantu Anda memahami konstruksi perulangan di C#, buatlah sebuah aplikasi console bernama KonstruksiPerulanganFor.

Konstruksi Perulangan for di C#

Konstruksi perulangan yang akan kita pelajari pertama kali adalah perulangan for. Konstruksi perulangan for biasanya kita gunakan ketika kita sudah mengetahui batas awal dan batas akhir sebuah perulangan.

Contohnya adalah, ketika kita perlu memanipulasi nilai setiap elemen dari sebuah matriks 1 x 10 (matriks dengan 1 baris dan 10 kolom) seperti pada gambar di bawah ini.

matriks 1 x 10

Kita bisa memastikan berapa jumlah elemen dari matriks di atas, yaitu 10. Dengan demikian kita juga bisa memastikan bahwa batas awal dari matriks di atas adalah 0 dan batas akhirnya adalah 9.

Oleh karena itu, kita bisa menggunakan perulangan for untuk, katakanlah, menampilkan nilai dari setiap elemen pada matriks di atas.

Tambahkan kode program di bawah ini di dalam method Main().

for (int i = 0; i < 10; i++)
{
    Console.Write("({0})", i);
}

/*
output: (0)(1)(2)(3)(4)(5)(6)(7)(8)(9)
*/

Jika konstruksi perulangan for di atas kita rinci, di dalam pernyataan for, kita mendeklarasikan sebuah variabel i dengan tipe data int (int i = 0). Angka 0 yang ditetapkan ke variabel i adalah batas awal perulangan for di atas.

Pernyataan setelahnya, yaitu i < 10, adalah kondisi yang harus dipenuhi untuk melanjutkan proses perulangan. Jadi, selama nilai variabel i masih di bawah angka 10, lanjutkan proses perulangan. Dalam kata lain, ini adalah kondisi yang menentukan batas akhir dari perulangan for di atas.

Pernyataan terakhir, yaitu i++, adalah pencacah yang nilainya akan bertambah sebesar 1 selama kondisi pada pernyataan kedua masih terpenuhi.

Jadi, perulangan for di atas akan menampilkan nilai variabel i mulai dari 0 sampai dengan 9.

Latihan: Sekarang giliran Anda bereksperimen. Ganti pernyataan terakhir (pencacah) dengan i += 2 atau i = i + 2. Lalu, perhatikan keluaran yang Anda dapatkan.

Selain melakukan perulangan dari nilai yang lebih kecil ke nilai yang lebih besar, Kita bisa membalik prosesnya dimulai dari nilai yang lebih besar ke nilai yang lebih kecil seperti kode program di bawah ini. Perhatikan bahwa kali ini, kita menggunakan pencacah mundur (i--).

for (int i = 9; i >= 0; i--)
{
    Console.Write("({0})", i);
}

Perulangan for Bersarang

Seringkali, kita perlu melakukan operasi perulangan for di dalam operasi perulangan for yang lain. Konstruksi seperti ini biasa disebut dengan perulangan for bersarang. Kegunaanya adalah untuk memanipulasi setiap elemen pada sebuah matriks multi-dimensi.

Katakan kita sekarang memiliki sebuah matriks dua dimensi berukuran 3 x 3 seperti pada gambar di bawah ini.

matriks 3x3

Kali ini, kita memiliki sebuah matriks yang terdiri dari 3 baris dan 3 kolom. Untuk menampilkan nomer baris dan nomer kolom pada setiap elemen matriks di atas, kita bisa menggunakan perulangan for bersarang seperti pada kode program di bawah ini.

for (int i = 0; i < 3; i++) // iterasi baris
{
    for (int j = 0; j < 3; j++) // iterasi kolom
    {
        Console.Write("({0}, {1})", i, j);
    }

    Console.Write("\n");
}

/*
output:
(0, 0)(0, 1)(0, 2)
(1, 0)(1, 1)(1, 2)
(2, 0)(2, 1)(2, 2)
*/

Pada konstruksi di atas, kita memiliki dua buah pernyataan for. Satu pernyataan for berada di dalam pernyataan for yang lain. Pernyataan for yang berada di luar (biasa disebut dengan outer-loop) berfungsi untuk melakukan perulangan pada baris matriks. Sedangkan pernyataan for di dalamnya (biasa disebut dengan inner-loop) berfungsi untuk melakukan perulangan pada kolom matriks.

Pada saat outer-loop mengiterasi baris pertama, inner-loop akan mengiterasi kolom pertama sampai kolom ketiga pada baris pertama. Selanjutnya, saat outer-loop mengiterasi baris kedua, inner-loop akan melakukan iterasi pada kolom pertama sampai kolom ketiga pada baris kedua. Hal yang sama juga dilakukan untuk iterasi baris ketiga.

Latihan: Ganti kondisi batas akhir pada outer-loop di atas dengan i < 10 dan inner-loop dengan j < 10. Lalu, perhatikan keluaran yang Anda dapatkan.

Menentukan Batas Akhir Perulangan for Secara Dinamis

Sejauh ini, kita menentukan batas akhir perulangan for dengan sebuah konstanta. Artinya, kita tidak bisa mengubah batas akhir tersebut apabila nantinya diperlukan. Agar batas akhir dari sebuah perulangan bisa ditentukan secara dinamis, kita bisa menggunakan sebuah variabel bertipe int disamping menggunakan sebuah konstanta.

Tambahkan kode program di bawah ini ke dalam program Anda.

Console.WriteLine("=> Menentukan jumlah baris dan kolom secara dinamis");
int jmlBaris, jmlKolom;

Console.Write("Tentukan jumlah baris: ");
jmlBaris = Convert.ToInt32(Console.ReadLine());

Console.Write("Tentukan jumlah kolom: ");
jmlKolom = Convert.ToInt32(Console.ReadLine());

for (int i = 0; i < jmlBaris; i++)
{
    for (int j = 0; j < jmlKolom; j++)
    {
        Console.Write("({0}, {1})", i, j);
    }

    Console.Write("\n");
}

/*
contoh input:
Tentukan jumlah baris: 2
Tentukan jumlah kolom: 3

output:
(0, 0)(0, 1)(0, 2)
(1, 0)(1, 1)(1, 2)
*/

Bereksperimenlah dengan memberi masukan yang bervariasi untuk jumlah baris dan kolom. Lalu perhatikan keluaran yang Anda dapatkan.

Jump Statement Pada Konstruksi Perulangan for

Adakalanya kita ingin menghentikan atau melangkahi sebuah proses perulangan pada sebuah kondisi tertentu. Misalnya, kita hanya sekedar ingin menemukan nilai tertentu di dalam sebuah matriks. Apabila nilai yang kita inginkan telah ditemukan, maka kita tidak ingin proses perulangan dilanjutkan. Atau pada kasus lain misalnya, kita ingin mengabaikan satu atau beberapa langkah pada proses perulangan.

Untuk mengimplementasikan skenario ini, C# menyediakan pernyataan break dan continue yang bisa kita gunakan di dalam konstruksi perulangan. Coba perhatikan kode program di bawah ini.

Console.WriteLine("=> Menggunakan break dan continue");
for (int i = 0; i < 10; i++)
{
    if (i == 2) continue;
    Console.Write(i);
    if (i == 5) break;
}

/*
output:
01345
*/

Pada kode program di atas, Jika nilai variabel i sama dengan 2, maka proses perulangan akan segera dilanjutkan ke langkah selanjutnya dan baris kode program setelah pernyataan continue akan seluruhnya diabaikan (tidak dieksukusi). Karena baris Console.Write(i) tidak dieksekusi pada kondisi ini, kita tidak akan melihat angka 2 pada keluaran yang dicetak di layar console.

Kemudian, jika nilai variabel i sama dengan 5, maka proses perulangan akan segera dihentikan oleh pernyataan break. Oleh karena itu, angka 6 sampai dengan angka 9 tidak akan dicetak ke layar console.

Perulangan Tanpa Batas Dengan Perulangan for

Sejauh ini kita telah menggunakan pernyataan for untuk melakukan perulangan dengan rentang tertentu. Apakah kita bisa melakukan perulangan terus menerus tanpa batas dengan konstruksi perulangan for di C#? Jawabannya, tentu saja bisa.

Tambahkan kode program di bawah ini ke dalam program yang telah Anda buat sebelumnya.

for (;;)
{
Console.Write("Apakah Anda ingin melanjutkan? [Ya/Tidak]: ");
string pilihan = Console.ReadLine();

if (pilihan.ToLower() == "tidak")
{
break;
}
}

/*
output:
Apakah Anda ingin melanjutkan? [Ya/Tidak]: Ya
Apakah Anda ingin melanjutkan? [Ya/Tidak]: Ya
Apakah Anda ingin melanjutkan? [Ya/Tidak]: Ya
Apakah Anda ingin melanjutkan? [Ya/Tidak]: Tidak
*/

Apabila kode program di atas Anda jalankan, Anda akan terus menerus ditanya “Apakah Anda ingin melanjutkan?” sampai Anda memberi jawaban “Tidak”.

Dengan mengabaikan batas bawah, batas atas, dan pencacah di dalam pernyataan for (for (;;)), perulangan for akan menjadi perulangan tanpa batas. Di C#, ada konstruksi yang lebih intuitif untuk melakukan perulangan tanpa batas seperti di atas, yaitu perulangan while dan do-while.

Penutup

Pada materi kali ini, kita telah mempelajari bagaimana menggunakan konstruksi perulangan for di C#.

Apabila kita sudah mengetahui batas awal dan batas akhir dari sebuah perulangan, maka kita bisa menggunakan pernyataan for untuk melakukan perulangan.

Pernyataan for juga bisa kita sarangkan ke dalam pernyataan for yang lain untuk misalnya melakukan iterasi pada matriks multi-dimensi.

Batas akhir sebuah perulangan bisa kita tentukan secara dinamis dengan menggunakan sebuah variabel sebagai batas akhir.

Sampai di sini dulu materi kita kali ini. Jika Anda masih merasa kesulitan dalam memahami materi ini, jangan menyerah! Tulis kesulitan atau pertanyaan Anda di kolom komentar, saya akan membantu.

Selamat belajar!

Mendapat Manfaat Dari Tulisan Ini? Bantu Bagikan Ya...
Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on whatsapp
WhatsApp
Tinggalkan Balasan

Close Menu