"Whatever you are, be a good one.
"
– Abraham Lincoln"
A. CAPAIAN PEMBELAJARAN
1. Mampu menggunakan, menganalisis, mengkode alur perulangan (looping) dalam
pemrograman untuk pemecahan suatu masalah atau kasus tertentu.
2. Mampu menggunakan, membuat program dengan menggunakan struktur
perulangan for, while, do while, nested loop dengan IDE.
B. POKOK MATERI
1. Perulangan
2. For
3. While
4. Do while
5. Nested Loop
1. PERULANGAN (LOOP)
Loop adalah konstruksi aliran kontrol yang memungkinkan sepotong kode
untuk dieksekusi secara berulang kali hingga beberapa kondisi terpenuhi. Loop ini
memberikan kemudahan dalam pemrograman, karena memungkinkan kita
melakukan banyak hal secara berulang tapi dengan program yang ringkas.
Misalnya lagi untuk menampilkan "Tutorial Pemrograman C!" sebanyak 10x ke layar!
Mungkin kamu bisa menuliskannya dengan fungsi printf() sebanyak 10 kali seperti ini:
106
Bagaimana kalau nanti mau menampilkan sebanyak 1000 kali?
Maka dari itu perlu penggunaan perulangan dalam program untuk efisiensi penulisan.
Perulangan akan membantu kita mengeksekusi kode yang berulang-ulang, berapapun
yang kita mau.
Ada 4 macam bentuk perulangan pada C. Secara umum, dibagi menjadi dua
kelompok. Yaitu: counted loop dan uncounted loop. Perbedaanya: Counted Loop
merupakan perulangan yang jelas dan sudah tentu banyak kali perulangannya.
Sedangkan Uncounted Loop, merupakan perulangan yang tidak jelas berapa kali ia
harus mengulang.
Perulangan yang termasuk dalam Counted Loop:
1. Perulangan For
Perulangan yang termasuk dalam Uncounted Loop:
1. Perulangan While
2. Perulangan Do…While
2. PERULANGAN: FOR
Loop adalah konstruksi aliran kontrol yang memungkinkan sepotong kode
untuk dieksekusi secara berulang kali hingga beberapa kondisi terpenuhi. Loop ini
107
memberikan kemudahan dalam pemrograman, karena memungkinkan kita
melakukan banyak hal secara berulang tapi dengan program yang ringkas.
Misalnya lagi untuk menampilkan "Tutorial Pemrograman C!" sebanyak 10x ke layar!
Mungkin kamu bisa menuliskannya dengan fungsi printf() sebanyak 10 kali seperti ini:
108
Yang perlu diperhatikan adalah kondisi yang ada di dalam kurung setelah kata for.
Kondisi ini akan menentukan:
• Hitungan akan dimulai dari 0 (i = 0);
• Hitungannya sampai berapa? Sampai i < 10;
• Lalu di setiap perulangan i akan bertambah +1 (i++).
• Variabel i pada perulangan for berfungsi untuk menyimpan nilai hitungan.
Jadi setiap perulangan dilakukan nilai i akan selalu bertambah satu. Karena kita
menentukannya di bagian i++.
PERCOBAAN 7.1.
Apakah nama variabelnya harus selalu i? Tidak.
Kita juga bisa menggunakan nama lain.
109
Pada contoh tersebut, kita melakukan perulangan dimulai dari nol 0. Lalu di setiap
perulangan nilai variabel counter akan ditambah 2 (counter+2).
Bagaimana kalau counter perulangannya dimulai dari angka yang lebih besar sampai
yang ke paling kecil? Ini biasanya kita buat saat ingin menghitung mundur.
Caranya gampang:
➢ Kita tinggal isi nilai counter dengan nilai terbesarnya.
➢ Misalnya kita akan mulai hitungan dari 10 sampai ke 0.
➢ Maka nilai counter, kita isi awalnya dengan 10.
➢ Lalu di kondisi perbandingannya, kita berikan counter > 0. Artinya
perulangan akan dilakukan selama nilai counter lebih besar dari 0.
➢ Lalu kita kurangi (-1) nilai counter di setiap perulangan (counter--).
110
PERCOBAAN 7.2.
Mengapa tidak sampai nol (0)?
Karena kondisi yang kita berikan counter > 0. Apabila counter bernilai 0, maka kondisi
ini akan menjadi false. Kecuali kita menggunakan operator lebih besar sama dengan
(>=), maka jika counter bernilai 0, kondisi akan menjadi true.
PERCOBAAN 7.3.
111
3. PERULANGAN: WHILE
Perulangan while merupakan perulangan yang termasuk dalam perulangan
uncounted loop. Perulangan while juga dapat menjadi perulangan yang counted loop
dengan memberikan counter di dalamnya.
Bentuk flowchart-nya sama seperti flowchart for:
Cara kerja perulangan while adalah sebagai berikut: Evaluasi kondisi, jika kondisi
bernilai true, maka pernyataan di dalam blok kode akan dieksekusi. Setelah pernyataan
di dalam blok kode selesai dieksekusi, kontrol kembali ke awal perulangan dan kondisi
dievaluasi kembali. Jika kondisi masih bernilai true, maka pernyataan di dalam blok
kode akan dieksekusi lagi. Proses ini akan terus berlanjut sampai kondisi bernilai false.
Perulangan while sangat berguna ketika jumlah perulangan yang dibutuhkan tidak
diketahui pada saat kompilasi.
112
PERCOBAAN 7.4.
Perulangan akan terjadi selama variabel ulangi bernilai y.
Lalu kita menggunakan fungsi scanf() untuk mengambil input. Selama kita menjawab
y pada input, maka perulangan akan terus dilakukan. Tapi kalau kita jawab yang lain,
maka perulangan akan dihentikan. Karena kondisi perulangannya tidak terpenuhi.
PERCOBAAN 7.5.
113
Di sini, kami telah menginisialisasi nilai i dengan 1.
➢ Ketika i = 1, ekspresi uji i <= 5 bernilai true. Oleh karena itu, blok kode while
dieksekusi. Ini mencetak 1 di layar dan nilai i ditingkatkan menjadi 2.
➢ Sekarang, i = 2, ekspresi uji i <= 5 lagi bernilai true. Blok kode while dieksekusi
lagi. Ini mencetak 2 di layar dan nilai i ditingkatkan menjadi 3.
➢ Proses ini terus berlanjut sampai i menjadi 6. Kemudian, ekspresi uji i <= 5
akan menjadi false dan perulangan berhenti.
4. PERULANGAN: DO…WHILE
Perulangan do…while sama seperti perulangan while. Perbedaanya: Perulangan
do…while akan melakukan perulangan sebanyak 1 kali terlebih dahulu, lalu mengecek
kondisi yang ada di dalam kurung while.
114
Jadi perbedaanya: Perulangan do…while akan mengecek kondisi di belakang (sesudah
mengulang), sedangkan while akan mencek kondisi di depan atau awal (sebelum
mengulang).
PERCOBAAN 7.6.
Contoh tersebut sama seperti contoh pada perulangan while. Saat perulangan pertama,
cobalah untuk membatalkan perulangannya dengan menjawab t. maka hasilnya:
115
PERCOBAAN 7.7.
5. PERULANGAN: NESTED LOOP
Di dalam blok perulangan, kita juga dapat membuat perulangan. Ini disebut
dengan nested loop atau perulangan bersarang atau perulangan di dalam perulangan.
116
PERCOBAAN 7.8.
C. RANGKUMAN
➢ Perulangan digunakan untuk menjalankan sekelompok pernyataan secara
berulang berdasarkan kondisi atau iterasi tertentu.
➢ Pernyataan while:
while (kondisi) { pernyataan }
➢ Pernyataan do-while:
do { pernyataan } while (kondisi);
➢ Pernyataan for:
for (inisialisasi; kondisi; peningkatan) { pernyataan }
➢ Pernyataan break:
break;
➢ Pernyataan continue:
continue;
117
D. TUGAS STUDI KASUS
1. Buatlah program ATM sederhana dengan menu sebagai berikut:
1) Cek Saldo
2) Setoran
3) Penarikan Tunai
4) Exit
Setiap terdapat transaksi setoran ataupun penarikan maka nilai total saldo akan
berubah (bisa dicek melalui menu cek saldo). Kemudian kebijakan bank menyatakan
saldo minimal yang harus ada dalam saldo adalah Rp50,000. Jika saldo kurang dari
atau sama dengan Rp. 50.000 maka tidak bisa dilakukan penarikan tunai
Kasus:
No Rek : 012345
Nama Akun : Hatori
Saldo ATM : Rp250.000
Skenario:
1) Hatori menyetorkan uang sebesar Rp25,000, kemudian setoran kedua
sebesar Rp35,000. Berapakah saldo Hatori saat ini?
2) Hatori melakukan penarikan pertama sebesar Rp. 50.000, kemudian
penarikan kedua sebesar Rp. 70.000. Berapakah sisa saldo Hatori setelah
itu?
3) Hattori melakukan penarikan ketiga sebesar Rp. 100.000. Berapakah sisa
saldo Hattori?
Berikan jawaban dengan ilustrasi dan bukti screenshot program yang Anda buat!
2. Seseorang pengendara sepeda motor memiliki pola kecepatan sebagai berikut:
➢ Pada 10 detik pertama (detik ke-1 sampai dengan detik ke-10)
kecepatannya tetap 3 m/detik.
➢ Pada 10 detik berikutnya (detik ke-11 sampai dengan detik ke-20)
kecepatannya berubah menjadi kecepatan tetap 4 m/detik.
➢ Demikian seterusnya setiap 10 detik berikutnya kecepatannya bertambah
1m/detik dibandingkan 10 detik sebelumnya.
118
Susun program untuk mencetak berapa detik yang dia perlukan untuk mencapai
jarak 100 m.
3. Andi adalah seorang pelatih sepak bola di sebuah klub, ia ingin menghitung total
kemenangan dari timnya selama musim ini. Timnya telah bermain 20 kali dan ia
ingin menghitung berapa kali timnya menang. Lengkapi program berikut untuk
menghitung berapa kali tim Andi menang, jika daftar riwayat pertandingannya
sebagai berikut:
119