Download - A Glimpse of Software Development Lifecycle
R E P E T I T I O N
Pemrograman Dasar
Pengulangan 2
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
Pengulangan FOR
3
Konstruksi for
for (exp1; exp2; exp3)
statement;
atau
for (exp1; exp2; exp3) {
statement1;
statement2;
…
}
exp1 : inisialisasi untuk variabel yang mengontrol
pengulangan exp2 : kondisi (true:diulang, false:berhenti) exp3 : increment or decrement of control variable(s) keberadaan exp1, exp2, dan exp3 bersifat optional
Pengulangan FOR
4
Struktur logika pengulangan for
exp1
exp3
statements
exp2 true
false
exp1
exp3
statements
exp2
false
Pengulangan FOR 5
Contoh :
byte x;
for (x=1; x <= 10; x++)
System.out.printf("%d\n",x);
x = 1
x++
printf(“%d\n”,x)
x<=10 true
false
Pengulangan FOR
6
Contoh :
Program mencetak angka dari 1 sampai 10
Program mencetak angka dari 10 sampai 1
byte x;
for (x=1; x <= 10; x++)
System.out.printf("%d\n",x);
byte x;
for(x=10; x>=1; x--)
System.out.printf("%d\n",x);
Pengulangan FOR
7
exp1 dan exp3 boleh terdiri dari beberapa ekspresi
yang dipisahkan dengan koma.
Contoh
byte i,j; for(i=1, j=30; i<j; i++, j--){
System.out.printf("%04d -- %04d\n", i,j);
}
System.out.printf("\n\n");
0001 -- 0030
0002 -- 0029
0003 -- 0028
0004 -- 0027
0005 -- 0026
0006 -- 0025
0007 -- 0024
0008 -- 0023
0009 -- 0022
0010 -- 0021
0011 -- 0020
0012 -- 0019
0013 -- 0018
0014 -- 0017
0015 -- 0016
Pengulangan FOR 8
Infinite Loop Infinite loop dapat diimplentasikan dengan menghilangkan ketiga parameter (exp1, exp2, exp3) pada for statement. break statement membuat keluar dari loop.
Contoh: byte i = 0;
for(;;){
i++;
System.out.printf("%d ", i);
if (i>=10) break;
}
System.out.printf("\n\n");
1 2 3 4 5 6 7 8 9 10
Pengulangan FOR 9
Nested Loop
Nested loop disebut juga dengan pengulangan
bersarang. Pengulangan dalam pernyataan
pengulangan.
Contoh:
Output :
1 5 1 4 1 3 .. 2 5 2 4 .. 5 1
byte x, y;
for (x=1;x<=5;x++)
for (y=5; y>=1; y--)
System.out.printf("%d %d ",x,y);
Pengulangan WHILE 10
Sintaks :
while (boolean exp) statement;
atau
while(boolean exp){
statement1;
statement2;
..
}
Boolean exp
statements
true
false
Pengulangan WHILE 11
Contoh :
while(product <= 1000)
product = 2*product;
product <= 1000
product=2*product;
false
true
Pengulangan WHILE
12
Contoh Program:
int n,i,f;
i = n; f = n;
while (i>1){
i--;
f=f*i;
}
printf("%d! = %d\n\n",n,f);
Pengulangan WHILE
13
Kesetaraan for dengan while sbb:
int x;
for(x=1;x<=10;x++)
printf("%d\n", x);
exp1;
while(exp2){
statement1;
statement2;
….
exp3
}
for(exp1; exp2; exp3){
statement1;
statement2;
….
}
setara
serupa
int x=1;
while(x<=10){
printf("%d\n", x);
x++;
}
Pengulangan DO-WHILE 14
Sintaks :
do statement while (boolean exp);
atau
do{
statement1;
statement2;
..
} while(boolean exp)
eks. boolean
true
false
statements
Pengulangan DO-WHILE 15
Contoh :
int i = 0;
do{
printf(“%d\n”, i);
} while(++i <=10);
++i <= 10 true
false
i = 0
Cetak i
Catatan 16
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.
Break dan Continue 17
break
keluar dari pengulangan (for, while dan do-while) atau seleksi (switch)
continue
tinggalkan sisa instruksi dalam sebuah pengulangan dan masuki tahap pengulangan selanjutnya
Break 18
Contoh penggunaan break pada pengulangan:
int x = 1;
while(x<=10){
printf("%d\n", x);
x++;
if (x>5)
break;
} keluar dari loop
Continue 19
Contoh penggunaan continue pada pengulangan:
int x;
for(x=1; x<=10; x++) {
if (x == 5)
continue;
printf("%d ", x);
}
Break vs Continue 20
do {
x = input.nextFloat();
if(x<0) {
printf(”\nError. Negative”);
break;
}
/*Proses nonnegatif */
…
} while(exp);
do {
x = input.nextFloat();
if(x<0) {
printf”\nError. Negative”);
continue;
}
/*Proses nonnegatif*/
…
} while(exp);
Tugas 21
1. Buat algoritma untuk menampilkan bilangan ganjil dari 11 sampai 188, dengan menggunakan :
for, while, dan do - while
2. Diasumsikan hari 1 menyatakan senin, 2 - selasa, 3 - rabu,…, 7 – minggu. Buatlah algoritma untuk menampilkan angka hari sebanyak n yang diinput dari keyboard. Perhatikan pola berikut :
n = 3 1 2 3
n = 7 1 2 3 4 5 6 7
n = 10 1 2 3 4 5 6 7 1 2 3
Tugas 22
3. Buatlah algoritma untuk menampilkan gambar
seperti di bawah ini, dengan n variabel integer yang
nilainya didapat dari keyboard input. Gunakan for,
while atau do-while.
*
* *
* * *
* * * *
* * * * *
n
n