Pengulangan
Struktur pengulangan dimaksudkan untuk melakukan proses pengulangan dari beberapa instruksi dalam sejumlah pengulangan tertentu
Tiga macam struktur pengulangan dalam pemrograman terstruktur, yaitu: Struktur for Struktur while Struktur do-while
Aliran Kendali Pengulangan - TIF UB 2010
1
Pengulangan for
Konstruksi for for (exp1; exp2; exp3) statement;
atau for (exp1; exp2; exp3){ statement1; statement2; … } exp1 : initialisation of control variable(s) exp2 : condition exp3 : increment or decrement of control variable(s)
keberadaan exp1, exp2, dan exp3 bersifat optional Aliran Kendali Pengulangan - TIF UB 2010
2
Struktur pengulangan for
Struktur logika pengulangan for exp1 exp3 statements true exp2 false Aliran Kendali Pengulangan - TIF UB 2010
3
Struktur Pengulangan for
Contoh : for (x=1; x <= 10; x++) printf(“%d\n”,x);
x=1 x++ printf(“%d\n”,x) x<=10 0
true
false
Aliran Kendali Pengulangan - TIF UB 2010
4
Struktur Pengulangan for
Contoh : – Program mencetak angka dari 1 sampai 10
#include<stdio.h> int main() { int x; for(x=1; x<=10; x++) printf( "%d\n", x ); return(0); } – Program mencetak angka dari 10 sampai 1 #include<stdio.h> int main() { int x; for(x=10; x>=1; x--) printf( "%d\n", x); return(0); Aliran Kendali Pengulangan - TIF UB 2010 }
5
Struktur Pengulangan for
exp1 dan exp3 boleh terdiri dari beberapa ekspresi yang
dipisahkan dengan koma.
Contoh:
#include #include
<stdio.h> <stdlib.h>
int main () { int i,j; for(i=1, j=30; i<j; i++, j--){ printf("%04d -- %04d\n", i,j); } printf("\n\n"); system("PAUSE"); return(0); } Aliran Kendali Pengulangan - TIF UB 2010
6
Struktur Pengulangan for
Contoh penggunaan for untuk menghitung rata-rata pengeluaran uang bensin selama satu bulan, dengan data sbb : Minggu 1 2 3 4
Pengeluaran Rp. 32.000,Rp. 29.000,Rp. 33.000,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 Aliran Kendali Pengulangan - TIF UB 2010
7
Struktur Pengulangan for
Program dalam C: /*----------------------------------*/ /* Program Hitung_Rerata */ /*----------------------------------*/ #include<stdio.h> int main(){ float data, jumlah, rerata; int x; jumlah = 0.0; for( x = 1; x <= 4; x++) { printf(“Data minggu ke-%d :”,x); scanf(“%f”,&data); jumlah += data; } rerata = jumlah / 4; printf(“Rerata = Rp %8.2f\n”,rerata); return(0); Aliran Kendali Pengulangan - TIF UB 2010 }
8
Struktur Pengulangan for
Infinite Loop Infinite loop dapat diimplentasikan dengan menghilangkan ketiga parameter (exp1, exp2, exp3) pada for statement. break statement membuat keluar dari loop.
Contoh: #include <stdio.h> #include <stdlib.h> int main(){ int i = 0; for(;;){ i++; printf("%d ", i); if (i>=10) break; } printf("\n\n"); system("PAUSE"); return(0); Aliran Kendali Pengulangan - TIF UB 2010 }
9
Struktur Pengulangan for
Nested Loop Pengulangan dalam pernyataan pengulangan.
Bahasa C
Bahasa C++ (diperbolehkan)
int x, y; for (x=1;x<=5;x++) for (y=5; y>=1; y--) printf(”%d %d ”,x,y);
for (int x=1;x<=5;x++) for (int y=5; y>=1; y--) printf(”%d %d ”,x,y); Aliran Kendali Pengulangan - TIF UB 2010
Output : 1 5 1 4 1 3 .. 2 5 2 4 .. 5 1 10
Struktur Pengulangan for
Contoh :
#include <stdio.h> #include
int main () { int p,q; printf("===========================================\n"); printf(" p q p or q p and q not p p xor q\n"); printf("===========================================\n"); for(p=1; p>=0; p--) for(q = 1; q>=0; q--) printf("%2d %2d %6d %8d %8d %8d\n", p, q, p||q, p&&q, !p, p^q ); printf("===========================================\n"); printf("\n\n"); system("PAUSE"); return(0); } Aliran Kendali Pengulangan - TIF UB 2010
11
Struktur Pengulangan while
Sintaks : while (boolean exp) statement;
atau while(boolean exp){ statement1; statement2; .. }
statements true Boolean exp false
Aliran Kendali Pengulangan - TIF UB 2010
12
Struktur Pengulangan while
Contoh :
while(product <= 1000) product = 2*product;
product=2*product;
product <= 1000
true
false Aliran Kendali Pengulangan - TIF UB 2010
13
Struktur Pengulangan while
Contoh program:
#include <stdio.h> #include <stdlib.h> int main () { int n,i,f; printf("MENGHITUNG NILAI FAKTORIAL n (n!)\n\n"); printf("Masukkan sebarang bilangan integer: "); scanf("%i",&n); i = n; f = n; while (i>1){ i--; f=f*i; } printf("%d! = %d\n\n",n,f); system("PAUSE"); return(0); Aliran Kendali Pengulangan - TIF UB 2010 14 }
Struktur Pengulangan while
Kesetaraan for dengan while sbb:
exp1; while(exp2){ statement1; statement2; …. exp3 }
setara
for(exp1; exp2; exp3){ statement1; statement2; …. }
Contoh:
#include <stdio.h> void main(){ int x=1; while(x<=10){ serupa printf("%d\n", x); x++; } } Aliran Kendali Pengulangan - TIF UB 2010
#include <stdio.h> void main(){ int x; for(x=1;x<=10;x++) printf("%d\n", x); } 15
Struktur Pengulangan do-while
Sintaks : do statement while (boolean exp); atau do{ statement1; statement2; .. } while(boolean exp)
statements
eks. boolean
true
false
Selama boolean exp bernilai true maka statements dieksekusi.
Pengetesan boolean exp dilakukan setelah mengeksekusi statements. Aliran Kendali Pengulangan - TIF UB 2010
16
Struktur Pengulangan do-while
Contoh: int i = 0; do{ printf(“%d\n”, i); } while(++i <=10);
i=0
Cetak i ++i <= 10
true
false Aliran Kendali Pengulangan - TIF UB 2010
17
Catatan
Pada pengulangan while, statement atau block statement mungkin tidak akan pernah dilaksanakan bila nilai ekspresi boolen false, karena operasi pengulangan diawali dengan mengeksekusi ekspresi boolean.
Pada pengulangan do-while statement atau block statement pasti dikerjakan minimal satu kali, karena ekspresi boolean baru diuji pada akhir blok pengulangan.
Aliran Kendali Pengulangan - TIF UB 2010
18
break dan continue
break – keluar dari pengulangan (for, while dan dowhile) atau seleksi (switch)
continue – tinggalkan sisa instruksi dalam sebuah pengulangan dan masuki tahap pengulangan selanjutnya
Aliran Kendali Pengulangan - TIF UB 2010
19
break Contoh penggunaan break pada pengulangan: #include<stdio.h> int main(){ int x = 1; while(x<=10){ printf("%d\n", x); x++; if (x>5) break; } return 0; keluar dari }
loop
Aliran Kendali Pengulangan - TIF UB 2010
20
continue
Contoh: #include <stdio.h> int main() { int x; for(x=1; x<=10; x++) { if (x == 5) continue; printf("%d ", x); } return 0; }
Aliran Kendali Pengulangan - TIF UB 2010
21
break vs continue
do { scanf(“%f”, &x); if(x<0) { printf(”\nError. Negative”); break; } /*Proses nonnegatif */ … } while(exp);
do { scanf(“%f”, &x); if(x<0) { printf”\nError. Negative”); continue; } /*Proses nonnegatif*/ … } while(exp);
Aliran Kendali Pengulangan - TIF UB 2010
22