Pengulangan
1
Learning Outcomes
Pada akhir pertemuan ini, diharapkan mahasiswa
akan mampu :
Memahami struktur kendali pengulangan (looping) dan
memanfaatkannya dalam pembuatan aplikasi program
komputer dengan bahasa pemrograman Java.
2
Outline Materi
Struktur Pengulangan (looping)
Konstruksi for, while dan do-while
Nested dan infinite loop
Compound atau Block statement
Break dan Continue
3
Struktur Pengulangan
Struktur pengulangan dimaksudkan untuk melakukan
proses pengulangan dari beberapa instruksi dalam
sejumlah pengulangan tertentu
Jumlah pengulangan dapat ditentukan sebelumnya atau
ditentukan dalam proses pelaksanaan pengulangan.
Tiga macam struktur pengulangan dalam pemrograman
terstruktur, yaitu:
Struktur for
Struktur while
Struktur do-while
4
Struktur Pengulangan for
Konstruksi for
for ([exp1]; [exp2]; [exp3]) statement;
atau:
for ([exp1]; [exp2]; [exp3]){
statement1;
statement2;
…….
}
exp1 : adalah ekspresi untuk inisialisasi,
exp2 : adalah ekspresi conditional (batas pengulangan)
exp3 : adalah ekspresi increment atau decrement
exp1, exp2 dan exp3 adalah sifatnya optional (boleh ada boleh tidak ada).
5
Struktur Pengulangan for
Struktur logika pengulangan for
exp1
exp3
statements
true
exp2
false
6
Struktur Pengulangan for
Contoh :
for (x=1; x <= 10; x++) System.out.printf(“%d\n”,x);
x=1
x++
System.out.printf(“%d\n”,x)
true
x<=10
false
7
Struktur Pengulangan for
exp1 dan exp3 boleh terdiri dari beberapa ekspresi yang
dipisahkan dengan koma.
Contoh:
8
Struktur Pengulangan for
Contoh :
• Program mencetak angka dari 1 sampai 10
9
Struktur Pengulangan for
Contoh penggunaan for untuk menghitung rata-rata
pengeluaran uang bensin selama satu bulan, dengan data sbb :
Minggu Pengeluaran
1 Rp. 32.000,-
2 Rp. 29.000,-
3 Rp. 33.000,-
4 Rp. 24.000,-
Algoritma :
1. Variabel jumlah diberi nilai nol
2. Baca data pengeluaran bensin dari keyboard dan simpan ke variabel data
3. Tambahkan data ke jumlah
4. Ulangi 2 dan 3 sebanyak 4 kali
5. Rerata = Jumlah / 4
10
Struktur Pengulangan for
Program dalam C:
11
Struktur Pengulangan for
Infinite Loop
Untuk membuat infinite loop dapat dilakukan dengan
menggunakan “for-loop”, dengan menghilangkan ketiga parameter
(exp1, exp2, exp3) yang ada pada for loop. Untuk keluar dari loop
dapat digunakan statement break.
Contoh:
12
Struktur Pengulangan for
Nested Loop
Jika di dalam sebuah pengulangan terdapat statement
pengulangan. Pengulangan akan dijalankan dimulai dari
pengulangan terdalam.
int x, y;
for (x=1;x<=5;x++)
for (y=5; y>=1; y--)
System.out.printf(”%d %d ”,x,y);
atau Output :
for (int x=1;x<=5;x++) 1 5 1 4 1 3 .. 2 5 2 4 .. 5 1
for (int y=5; y>=1; y--)
System.out.printf(”%d %d ”,x,y);
13
Struktur Pengulangan for
Contoh :
14
Struktur Pengulangan while
Sintaks :
while (eks.boolean) statements;
atau :
while(eks.boolean){
statement1;
statement2; statements
…..
} true
eks. boolean
false
15
Struktur Pengulangan while
Contoh :
while(product <= 1000) product = 2*product;
product=2*product;
tru
product <= 1000 e
false
16
Struktur Pengulangan while
Contoh program:
17
Struktur Pengulangan while
Kesetaraan for dengan while sbb:
exp1;
while ( exp2 ) { for (exp1; exp2; exp3 ) {
statement1; statement1;
statement2; statement2;
setara
…. ….
exp3 }
}
Contoh:
int x = 1;
while (x<=10) { int x;
--- for( x = 1 ; x <= 10 ; x++ )
--- serupa dg ---
x++; ---
} }
18
Struktur Pengulangan do - while
Sintaks :
do statement while (eks.boolean);
atau : statements
do {
statement1; true
eks. boolean
statement2;
….. false
} while(eks.boolean)
19
Struktur Pengulangan do - while
Contoh:
int i = 0;
do { I=0
System.out.printf(”%d\n”, i);
} while(++i <=10);
Cetak
i
true
++i <= 10
false
20
Pengulangan
Pada pengulangan while, statement atau blok statement
mungkin tidak akan pernah dilaksanakan, bila nilai ekspresi
boolen bernilai false, karena operasi pengulangan diawali
dengan mengeksekusi ekspresi boolean terlebih dahulu.
Pada pengulangan do-while statement atau blok statement pasti
dikerjakan paling sedikit satu kali, karena ekspresi boolean
baru diuji pada akhir blok pengulangan.
21
Pengulangan
Beberapa cara untuk menghentikan pengulangan untuk
program interaktif, di antaranya dapat dilakukan dengan
menambah:
• Sentinel atau Pembatas dengan kode khusus.
• Pertanyaan, misalkan: “Apakah pengulangan akan
dilanjutkan?”.
22
Pengulangan
Contoh : Cara ‘sentinel’ pada konstruksi do-while dengan memakai nilai
0 pada variabel panjang dan variabel lebar.
23
Pengulangan
Contoh : Cara ‘Pertanyaan’ pada konstruksi While
24
Statement break dan continue
break
• Digunakan untuk keluar dari loop (for, while dan do-while)
• Digunakan untuk keluar dari switch
continue
• skip sisa instruksi dalam loop, dan eksekusi loop berjalan ke
tahap selanjutnya
25
Break
Contoh penggunaan statement break pada loop yang
menyebabkan program keluar dari loop tersebut
int x = 1;
while (x<=10) {
Syatem.out.printf( "%d\n", x );
x++;
if (x>5) break;
}
26
continue
Contoh:
int x;
for(x=1; x<=10; x++) {
if (x == 5) continue;
System.out.printf("%d ", x);
}
Output : 1 2 3 4 6 7 8 9 10
27
break vs continue
do { do {
scanf(“%f”, &x); scanf(“%f”, &x);
if(x<0) { if(x<0) {
System.out.printf( System.out.printf(
“\nEror. Negatif”); “\nEror. Negatif”);
break; continue;
} }
/*Proses nonnegatif */ /*Proses nonnegatif */
… …
} while(exp); } while(exp);
28
Latihan
for (i=k; i < n; i++)
System.out. printf(”TIF-FTUB\n”);
29
Latihan
for (i=k; i >= n; i--) printf(” TIF-FTUB \n”);
1. Jika k < n maka berapa kali kata TIF-FTUB di cetak
dilayar monitor ?
2. Jika k=n maka berapa kali kata TIF-FTUB di cetak
dilayar monitor ?
3. Jika k > n maka berapa kali kata TIF-FTUB di cetak
dilayar monitor ?
30
Latihan
Dapatkah infinite/forever loop ditulis menggunakan for loop,
while loop dan do-while loop ?
Jika p = pernyataan dan e = ekspresi, ubahlah loop for berikut
menjadi loop while.
a. for(; e ;) p;
b. for(; ; e) p;
31
Latihan
Bandingkan dua buah sintaks for berikut ini :
for (i=0, j=1; i<8; i++, j++) printf("%d + %d = %d\n", i, j, i+j);
32
Latihan
APA OUTPUT POTONGAN PROGRAM BERIKUT ??
int x,y;
for(x=1;x<=3;x++) awas! Ada titik koma
for (y=3;y>=1;y--)
System.out.printf( int x,y;
"%d %d ",x,y); for(x=1;x<=3;x++);
for (y=3;y>=1;y--)
System.out.printf(
"%d %d ",x,y);
33
Latihan
APA OUTPUT PROGRAM BERIKUT ??
35
Latihan
Jelaskan output dari potongan program berikut ini :
long bil, tmp, x=1;
Scanner input = new Scanner(System.in);
printf(”\nInput bil:”);
bil = input.nextLong();
tmp=bil;
while(bil >= 1) x*=bil--;
System.out.printf(”\n%ld ! = %ld”,tmp, x);
36
Latihan
Buat program untuk menampilkan bilangan ganjil dari 11 s/d
188, dengan menggunakan :
• for
• while
• do - while
37
Latihan
Diasumsikan hari 1 menyatakan senin, 2 - selasa, 3 - rabu,…, 7 –
minggu. Buatlah sebuah program untuk menampilkan angka hari
sebanyak n yang diinput dari keyboard. Perhatikan pola berikut :
n=3
1 2 3
n=7
2 2 3 4 5 6 7
n = 10
1 2 3 4 5 6 7 1 2 3
38
Latihan
Berapa kali kata Hello dicetak di layar monitor oleh
setiap potongan program di bawah ini?
int x ;
for(x=0 ; x<10 ; x++) int x=0;
System.out.printf("Hello\n"); for( ; ; ){
if(x<10)
int x=0; System.out.printf("Hello\n");
for( ; x<10 ; x++) else break;
System.out.printf("Hello\n"); x++;
}
int x=0;
for( ; ; x++){
if(x<10) System.out.printf("Hello\n");
else break;
}
39
Latihan
Buatlah program untuk menampilkan gambar seperti contoh
dibawah, dimana n variabel integer yg nilainya di-input dari
keyboard (dengan for, while atau do-while loop).
*
**
***
**** n
*****
40
Latihan
Buatlah program untuk menampilkan gambar seperti contoh
dibawah, dimana n variabel integer yg nilainya di-input dari
keyboard (dengan for, while atau do-while loop).
*****
****
***
** n
*
41
Latihan
Apa Output dari potongan program di bawah ini, serta jelaskan?
int x,y,z;
for (x=0; x<4; x++) {
for (y=0; y<3; y++) {
for (z=0; z<3; z++) {
if (z==2) break;
}
System.out.printf("Selamat\n");
}
System.out.printf("Datang\n”
}
System.out.printf("di TIF-FTUB\n");
42