Anda di halaman 1dari 13

Statemen Perulangan (Iterasi)

58

V STATEMEN PERULANGAN (ITERASI)


V.1 Pendahuluan
- Mengulang suatu proses merupakan tindakan yang banyak
dijumpai dalam pemrograman.
- Pada semua bahasa pemrograman, pengulangan proses ditangani
dengan suatu mekanisme yang disebut loop.
- Dengan menggunakan loop, suatu proses yang berulang dapat
diimplemetnasikan dengan baris program yang pendek.
- Pada bahasa C terdapat tiga struktur loop, yaitu dengan
menggunakan statemen while, do-while, dan for.
- Berhubungan dengan penanganan loop ada beberapa pernyataan
lain yang berfungsi diantaranya untuk keluar dari loop, seperti
break, goto, dan continue.
V.2 Statemen do-while
- Statemen do-while digunakan untuk mengulang suatu proses
selama kondinya dipenuhi.
- Bentuk sintaks statemen do-while adalah:
do
Pernyataan
while (kondisi)
- Pada pernyataan do-while, tubuh loop berupa pernyataan yang bisa
berupa pernyataan tunggal, pernyataan majemuk maupun
pernyataan kososng.
- Pada statemen do, mula-mula pernyataan akan dieksekusi,
selanjutnya nilai kondisi akan diuji. Jika nilai kondisi benar, maka
pernyataan akan dieksekusi lagi, kemudian kondisi diperiksa
kembali, begitu seterusnya, sampai nilai kondisi salah.
- Diagram alir statemen do-while dapat dilihat pada Gambar 5.1.

pernyataan

tubuh
loop

benar
kondisi
salah
keluar loop

Gambar 5.1 Diagram alir do-while.

Statemen Perulangan (Iterasi)

59

- Contoh program berikut memberi gambaran pemakaian statemen


do-while untuk mengatur penampilan tulisan Turbo C sebanyak
sepuluh kali.
/* --------------------------------------*/
/* File Program : TurboC.C
*/
/* Menampilkan tulisan Turbo C */
/* sepuluh kali
*/
/* --------------------------------------*/
#include <stdio.h>
main ()
{
char pencacah;
pencacah = 0;
do
{
puts("Turbo C++\n");
pencacah++;
}
while (pencacah < 10);
}
Program 5-1.
- Pada program di atas, variabel pencacah digunakan untuk
menghitung jumlah tulisan yang sudah ditampilkan pada layar.
- Selama nilai pencacah kurang dari 10, maka perintah :
puts(Turbo C++);
akan dieksekusi kembali.
- Contoh lain pemakaian do-while misalnya untuk mengatur agar
tombol yang ditekan oleh pemakai program berupa salah satu
diantara Y, y, T, atau t. Implementasi programnya adalah:
do
{
pilihan = getch(); /* baca tombol */
sudah_benar = (pilihan == Y) || (pilihan = = y) ||
(pilihan = = T) || (pilihan = = t);
}
while (!sudah_benar);

Statemen Perulangan (Iterasi)

60

- Mula-mula tombol dibaca dengan menggunakan statemen getch(),


dan kemudian diberikan ke variabel pilihan.
- Setelah itu variabel sudah_benar akan diisi dengan nilai benar (1)
atau salah (0) tergantung dari nilai pilihan.
- Jika pilihan berisi salah satu diantara Y, y, T, atau t, maka
sudah_benar akan berisi benar.
- Nilai variabel sudah_benar ini selanjutnya dijadikan sebagai
kondisi do-while.
- Pengulangan terhadap pembacaan tombol akan dilakukan kembali
selama variabel sudah_benar bernilai salah.
/* -----------------------------*/
/* File Program : Pilihan.C
*/
/* Membaca tombol Y atau T
*/
/* -----------------------------*/
#include <stdio.h>
#include <conio.h>
main ()
{
char pilihan;
int sudah_benar;
printf("Pilihlah Y atau T. ");
/* Program hanya mau dilanjutkan
kalau tombol Y, y, T, t yang ditekan */
do
{
pilihan = getch(); /* baca tombol */
sudah_benar = (pilihan == 'T') || (pilihan == 't')||
(pilihan == 'Y') || (pilihan == 'y');
}
while (!sudah_benar);
/* Memberi keterangan tentang pilihan */
switch(pilihan)
{
case 'Y':
case 'y':
puts("\nPilihan anda adalah Y");

Statemen Perulangan (Iterasi)

61

break;
case 'T':
case 't':
puts("\nPilihan anda adalah T");
}
}
Program 5-2.
V.3 Statemen While
- Berbeda dengan do-while, pada statemen while pengujian terhadap
loop dilakukan di bagian awal (sebelum tubuh loop). Bentuk
sintaksisnya adalah sebagai berikut:
While (kondisi)
pernyataan
dengan pernyataan dapat berupa pernyataan tunggal, pernyataan
majemuk ataupun pernyataan kosong.
Proses pengulangan terhadap pernyataan diperlihatkan pada Gambar
5.2.

kondisi
benar
pernyataan

keluar loop

Gambar 5.2 Diagram alir while.


- Dengan melihat gambar 5.2 di atas tampak bahwa ada
kemungkinan pernyataan yang merupakan tubuh loop tidak
dijalankan sama sekali, yaitu jika pada pengujian kondisi while
yang pertama kali ternyata kondisi bernilai salah.

Statemen Perulangan (Iterasi)

62

- Contoh lain penggunaan while dapat dilihat pada Program 5-3,


yang digunakan untuk menghitung benyaknya karakter dari
kalimat yang dimasukkan melalui papan-ketik. Disamping itu juga
menghitung banyaknya spasi.
- Untuk mengakhiri pemasukan kalimat, maka tombol ENTER harus
ditekan. Jadi tombol ENTER yang dijadikan sebagai kondisi
perhitungan jumlah spasi maupu karakter keseluruhannya.
(karakter = getch()) != ENTER
- Ungkapan di atas mempunyai arti:
o Bacalah sebuah karakter dan berikan ke variabel karakter.
o Kemudian bandingkan apakah karakter tersebut tidak sama
dengan ENTER (Catatan: ENTER didefinisikan dalam
#define).
o Ungkapan akan menghasilkan nilai benar jika tombol yang
ditekan bukan ENTER.
- Pada program, jika tombol yang ditekan bukan ENTER, maka:
o Jumlah karakterr dinaikkan sebesar satu (jumkar++;)
o Kalau karakter berupa spasi, maka jumlah spasi dinaikkan
sebesar satu melalui pernyataan:
If (karakter == SPASI) jumspasi++;
/* -----------------------------------*/
/* File Program : Jumkar.C
*/
/* Menghitung jumlah kata dan */
/* karakter dlm kalimat
*/
/* ------------------------------------*/
#include <stdio.h>
#include <conio.h>
#define ENTER '\R'
#define SPASI ' '

/* Karakter CR */
/* Karakter spasi */

main ()
{
char karakter;
int jumkar = 0;
int jumspasi = 0;
puts("Masukkan sebuah kalimat dan akhiri dengan ENTER.");
puts("Saya akan menghitung jumlah karakter");
puts("pada kalimat tersebut. \n");

Statemen Perulangan (Iterasi)

63

while((karakter = getche()) != ENTER)


{
jumkar++;
if (karakter == SPASI) jumspasi++;
}
printf("\n Jumlah karakter = %d",jumkar);
printf("\n Jumlah SPASI = %d\n", jumspasi);
}
Program 5-3.
Latihan 5.1
Apa hasil eksekusi dari program berikut:
#include <stdio.h>
main( )
{
int i, jum;
i = 5; jum = 0;
while (i--)
{
printf(%d ,i);
jum = jum + i;
}
printf(%d, jum);
}
Latihan 5.2
Buatlah program untuk menampilkan deret berikut :
20 30 40 . . . 200
dengan menggunakan
a. while
b. do-while
V.4 Statemen for
- Statemen for digunakan untuk mengulang eksekusi suatu ungkapan
dengan jumlah pengulangan yang sudah tertentu. Bentuk
sintaksisnya adalah sebagai berikut:

Statemen Perulangan (Iterasi)

64

For (ungkapan1; ungkapan2; ungkapan3)


pernyataan;
- Fungsi dari masing-masing ungkapan pada statemen for adalah:
o Ungkapan1 : digunakan untuk memberikan inisialisasi
terhadap variabel pengendali loop.
o Ungkapan2 : digunakan sebagai kondisi utnuk keluar dari
loop.
o Ungkapan3 : digunakan sebagai pengatur kenaikan nilai
variabel pencacah/pengendali loop.
- Ketiga ungkapan dalam for tersebut dipisahkan dengan tanda titik
koma (;).
- Loop for sebenarnya identik dengan bentuk loop while sebagai
berikut:
ungkapan1;
while (ungkapan2)
{
pernyataan ungkapan3
}

bilangan = 20

bilangan
<= 100

salah

benar
cetak
bilangan

bilangan =
bilangan + 10

keluar loop

Gambar 5.3 Diagram Alir Statemen For.

Statemen Perulangan (Iterasi)

65

-Contoh penggunaan for misalnya untuk menampilkan deretan angka


sebagai berikut:
20
30
40
.
.
.
100
- Untuk keperluan ini, pernyataan for yang digunakan berupa:

for(bilangan = 20; bilangan <= 100; bilangan +10)


printf(%d\n, bilangan);
/* ------------------------------------------------------*/
/* File Program : For.C
*/
/* Pemakaian For untuk membentuk deret naik */
/* ------------------------------------------------------*/
#include <stdio.h>
main ()
{
int bilangan;
for(bilangan = 20; bilangan <= 100; bilangan +=10)
printf("%d\n", bilangan);
}
Program 5-4
- Pada program di atas kenaikan terhadap variabel
pengendali loop sebesar 10 (positif), yang dinyatakan
dengan ungkapan
bilangan += 10 (atau bilangan = bilangan + 10)

Statemen Perulangan (Iterasi)

66

V.5 Loop Di Dalam Loop


- Dalam suatu loop dapat terkandung loop yang lain.
- Loop yang terletak di dalam loop biasa disebut dengan
nested loop.
- Salah satu contoh penggunaan nested loop misalnya untuk
membuat tabel perkalian berikut:
1
2
3
4
5
6
7
8

1
1
2
3
4
5
6
7
8

2
2
4
6
8
10
12
14
16

3
3
6
9
12
15
18
21
24

4
4
8
12
16
20
24
28
32

5
5
10
15
20
25
31
35
40

6
6
12
18
24
30
36
42
48

7
7
14
21
28
35
42
49
56

8
8
16
24
32
40
48
56
64

- Bagian yang terletak di dalam bingkai dapat diperoleh


melalui ungkapan sebagai berikut:
For (baris = 1; baris <= Maks; baris++)
{
for (kolom = 1; kolom <= Maks; kolom++)
{
hasil_kali = baris * kolom;
printf(%2d , hasil_kali);
}
printf(\n);
/* Pindah baris */
}
- Dengan Maks didefinisikan bernilai 8. Loop terdalam :
for (kolom = 1; kolom <= Maks; kolom++)
{
hasil_kali = baris * kolom;
printf(%2d , hasil_kali);
}
- digunakan untuk mencetak satu deret hasil perkalian dalam
satu baris.

Statemen Perulangan (Iterasi)

67

- Untuk berpindah ke baris berikutnya, digunakan pernyataan


Printf(\n);
Latihan 5.3
Buatlah suatu program untuk menampilkan semua bilangan
genap yang terletak antara 20 sampai 100.
V.6 Loop Yang Tidak Pernah Berhenti
- Loop yang tidak pernah berhenti (berputar terus) sering
terjadi disebabkan adanya kesalahan pada penanganan
kondisi yang digunakan untuk keluar dari loop.
- Sebagai contoh, jika ditulis:
for(bilangan = 80; bilangan >= 10; bilangan -= 0)
printf(%d\n, bilangan);
- Maka statemen di atas tidak akan pernah berhenti berputar
dalam menampilkan nilai 60. Kesalahan yang terjadi
disebabkan kondisi yang tidak pernah tercapai.
- Hal ini karena ungkapan ketiga dalam for salah tulis.
Seharusnya berupa:
bilangan -= 10
- namun yang tertulis adalah:
bilangan -= 0
- Oleh karena kondisi bilangan >= 10 selalu bernilai benar
(sebab bilangan tetap bernilai 60) , maka pernyataan:
printf(%d\n, bilangan);
akan dijalankan terus menerus (biasa disebut hang ).
- Jika kondisi di atas terjadi, maka dapat dihentikan dengan
menggunakan tombol CTRL-BREAK.

Statemen Perulangan (Iterasi)

68

V.7 Statemen Break


- Statemen break berfungsi untuk keluar dari loop for, dowhile, dan while.
- Sedangkan pada statemen switch, digunakan untuk menuju
ke akhir (keluar dari) struktur switch.
- Gambar 5.4 memperlihatkan ilustrasi statemen break pada
struktur loop for. Jika statemen break dijalankan maka
eksekusi akan dilanjutkan ke statemen sesudah akhir tubuh
loop for.
for ( ; ; )
{
.
:

if ( ... )
break;
.
:
}
puts("\nSelesai ... ");

akhir tubuh loop for

Gambar 5.4 Ilustrasi pengaruh statemen break.


/* ---------------------------------------*/
/* File Program : Ketik.C
*/
/* Pemakaian break pada loop for */
/* ---------------------------------------*/
#include <stdio.h>
#include <conio.h>
#define ENTER '\R'

Statemen Perulangan (Iterasi)

69

main ()
{
char karakter;
puts("Ketikkan apa saja");
puts("Sampai tombol ENTER ditekan. \n");
for( ; ;)
{
karakter = getche();
if (karakter == ENTER)
break; /* keluar dari loop for */
}
puts("\nSelesai ...");
}
Program 5-5
V.8 Statemen continue
- Statemen continue digunakan untuk mengarahkan eksekusi
ke iterasi (proses) berikutnya pada loop yang sama.
- Pada do-while dan while, pernyataan continue
menyebabkan eksekusi akan menuju ke kondisi pengujian
pengulangan, seperti yang diperlihatkan pada Gambar 5.5.
- Pada loop for, pernyataan continue akan menyebabkan
bagian penaik variabel pengendali loop dikerjakan
(ungkapan 3 pada struktur loop for) dan kondisi untuk
keluar dari loop (ungkapan2) akan diuji kembali.
do
{

while ( kondisi )
{
continue;

continue;

}
while ( kondisi )

Gambar 5.5 Pengaruh continue pada while dan do-while.

Statemen Perulangan (Iterasi)

/* ------------------------------------*/
/* File Program : Deret.C
*/
/* Pemakaian continue pada for */
/* ------------------------------------*/
#include <stdio.h>
main ()
{
int x;
/* Menampilkan bilangan ganjil
antara 7 sampai 25, kecuali 15 */
for(x = 7;x <= 25 ; x += 2)
{
if (x == 15)
continue; /* melanjutkan loop */
printf("%d ",x);
}
}
Program 5-6

70