1
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
Struktur Pengulangan (looping)
Konstruksi for, while dan do-while
Nested dan infinite loop
Compound atau Block statement
Break dan Continue
3
Struktur pengulangan dimaksudkan untukmelakukan proses pengulangan dari beberapainstruksi dalam sejumlah pengulangan tertentu
Jumlah pengulangan dapat ditentukansebelumnya atau ditentukan dalam prosespelaksanaan pengulangan.
Tiga macam struktur pengulangan dalam pemrograman terstruktur, yaitu: Struktur for Struktur while Struktur do-while
4
Konstruksi for
for (exp1; exp2; exp3) statement;atau:
for (exp1; exp2; exp3){statement1;statement2;…….
}
exp1 : adalah ekspresi untuk inisialisasi,exp2 : adalah ekspresi conditional exp3 : adalah ekspresi increment atau decrement
exp1, exp2 dan exp3 adalah sifatnya optional (boleh ada bolehtidak ada).
5
6
Struktur logika pengulangan for
exp1
exp3
statements
exp2true
false
exp1
exp3
statements
exp2true
false
Contoh :• Program mencetak angka dari 1 sampai 10
• Program mencetak angka dari 10 sampai 1
8
int x;
for( x = 1 ; x <= 10 ; x++ ) sout(x );
int x;
for( x = 10 ; x >= 1 ; x-- ) sout(x );
Contoh penggunaan for untuk menghitung rata-rata pengeluaran uang bensin selama satu bulan, dengandata sbb :
Minggu Pengeluaran
1 Rp. 32.000,-
2 Rp. 29.000,-
3 Rp. 33.000,-
4 Rp. 24.000,-
9
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
Infinite LoopUntuk 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:
10
int i = 0;
for(;;) {
i++;
sout(i);
if (i>=10) break;
}
Nested Loop
Jika di dalam sebuah pengulangan terdapat
statement pengulangan. Pengulangan akan
dijalankan dimulai dari pengulangan terdalam.
11
Output :
1 5 1 4 1 3 .. 2 5 2 4 .. 5 1
int x, y;
for (x=1;x<=5;x++){
for (y=5; y>=1; y--){
sout(x +” ”+ y);
}
}
Bahasa C
Sintaks :
while (eks.boolean) statements;
atau :
while(eks.boolean){
statement1;
statement2;
…..
}
12
eks. boolean
statements
true
false
Kesetaraan for dengan while sbb:
Contoh:
14
int x;
for( x = 1 ; x <= 10 ; x++ )
Sout(x );
int x = 1;
while (x<=10) {
Sout(x );
x++;
}
exp1;
while ( exp2 ) {
statement1;
statement2;
….
exp3
}
for (exp1; exp2; exp3 ) {
statement1;
statement2;
….
}
setara
serupa dg
Sintaks :
do statement while (eks.boolean);
atau :
do {
statement1;
statement2;
…..
} while(eks.boolean)
Selama eks.boolean bernilai true maka statements dieksekusi berulang-ulang.
Pengetesan eks.boolean dilakukan setelah meng-eksekusistatements.
15
eks. booleantrue
false
statements
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.
17
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?”.
18
Contoh : Cara „sentinel‟ pada konstruksi do-while dengan
memakai nilai 0 pada variabel panjang dan variabel lebar.
19
int panjang,lebar,luas; char ulang;
do{ cetak(“Panjang [0=selesai] : “);
baca(panjang);
cetak(“Lebar [0=selesai] : “);
baca(lebar);
luas = panjang * lebar;
cetak (“Luas = “+luas);
} while((panjang != 0) && (lebar != 0));
Contoh : Cara „Pertanyaan‟ pada konstruksi While
20
int panjang, lebar, luar; char ulang;
cetak(”Teruskan Perhitungan ? (Y/T) :”);
baca(ulang);
while((toupper(ulang)) == ’Y’) {
cetak(”Panjang : ”); baca (panjang);
cetak(”Lebar : ”); baca(lebar);
luas = panjang * lebar;
cetak(”Luas =”,luas);
cetak(”Teruskan Perhitungan?(Y/T):”);
baca(ulang);
}
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
21
int x = 1;while (x<=10) {
sout(x );x++;if (x>5) break;
}
22
Contoh penggunaan statement break pada loop yangmenyebabkan program keluar dari loop tersebut
Keluar dari loop
Contoh:
23
int x;
for(x=1; x<=10; x++) {
if (x == 5) continue;
sout(x);
}
Output : 1 2 3 4 6 7 8 9 10
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 ?
24
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 ?
25
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;
26
Bandingkan dua buah sintaks for berikut ini :
Jelaskan outputnya dan perbedaannya dari dua
potongan program di atas!
27
for (i=0, j=1; i<8; i++, j++) printf("%d + %d = %d\n", i, j, i+j);
for (i=0, j=1; i<8; ++i, ++j); printf("%d + %d = %d\n", i, j, i+j);
#include <stdio.h>int main(){
int x,y;for(x=1;x<=3;x++)for (y=3;y>=1;y--)
printf("%d %d ",x,y);return 0;
}
28
#include <stdio.h>
int main()
{
int x,y;
for(x=1;x<=3;x++);
for (y=3;y>=1;y--)
printf("%d %d ",x,y);
return 0;
}
APA OUTPUT PROGRAM BERIKUT ??
awas! Ada titik koma
#include <stdio.h>int main(){
int x,y;for(x=1;x<=3;x++)for (y=3;y>=1;y--);
printf("%d %d ",x,y);return 0;
}
29
#include <stdio.h>
int main()
{
int x,y;
for (x=1;x<=3;x++);
for (y=3;y>=1;y--);
printf("%d %d ",x,y);
return 0;
}
APA OUTPUT PROGRAM BERIKUT ??
awas! ada titik koma
Awas! ada titik koma
Jelaskan output program berikut ini :
30
#include<stdio.h>
int main() {
int nilai = 0, jumlah = 0;
while(nilai < 10) {
jumlah += nilai;
printf(”\nNilai =%d, Jumlah =%d”, nilai++, jumlah);
}
return 0;
}
Jelaskan output program berikut ini :
31
#include<stdio.h>
int main() {
long bil, tmp, x=1;
printf(”\nInput bil:”); scanf(”%d”, &bil);
tmp=bil;
while(bil >= 1) x*=bil--;
printf(”\n%ld ! = %ld”,tmp, x);
return 0;
}
Buat program untuk menampilkan bilangan ganjil dari
11 s/d 188, dengan menggunakan :
• for
• while
• do - while
32
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 = 71 2 3 4 5 6 7
n = 101 2 3 4 5 6 7 1 2 3
33
int x ;for(x=0 ; x<10 ; x++) printf("Hello\n");
34
Berapa kali kata Hello dicetak di layar monitor oleh
setiap potongan program di bawah ini?
int x=0;
for( ; x<10 ; x++) printf("Hello\n");
int x=0;
for( ; ; x++){
if(x<10) printf("Hello\n");
else break;
}
int x=0;
for( ; ; ){
if(x<10) printf("Hello\n");
else break;
x++;
}
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).
*
* *
* * *
* * * *
* * * * *
35
n
n
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).
* * * * *
* * * *
* * *
* *
*
36
n
n
Apa Output dari program di bawah ini?
37
#include <stdio.h>int main(){ 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;
}printf("Selamat\n");
}printf("Datang\n");
}printf("di TIF-FTUB\n");getch();return(0);
}