05 for-dowhile-while

28
STRUKTUR KENDALI PROSES

description

 

Transcript of 05 for-dowhile-while

Page 1: 05 for-dowhile-while

STRUKTUR KENDALI PROSES

Page 2: 05 for-dowhile-while

STRUKTUR KENDALI PEMILIHANSuatu Struktur dasar algoritma yang memiliki satu atau lebih kondisi tertentu dimana sebuah instruksi dilaksanakan jika sebuah kondisi/persyaratan terpenuhi. Ada beberapa bentuk struktur dasar pemilihan ini :

Sebuah pernyataan yang dapat dipakai muntuk mengambil keputusan berdasarkan suatu kondisi. Bentuk pernyataan ini ada dua macam :

- if saja, dan

- if else

Page 3: 05 for-dowhile-while

PEMILIHAN (SELECTION)if (kondisi) pernyataan;

Pernyataan dilaksanakan jika dan hanya jika kondisi yang diinginkan terpenuhi, jika tidak program tidak memberikan hasil apa-apa.

Contoh ptongan program :

If(nilai >= 56)

puts(“Lulus”);

kondisi

pernyataan

truefalse

Page 4: 05 for-dowhile-while

PEMILIHAN (SELECTION)

if(kondisi) pernyataan1; else pernyataan2;

•Pernyataan1 dilaksanakan jika dan hanya jika kondisi yang diinginkan terpenuhi, jika tidak, lakukan pernyataan2. •Jika Anda tidak mempergunakan pernyataan else program tidak akan error, namun jika anda mempergunakan pernyataan else tanpa didahului pernyataan if, maka program akan error. •Jika pernyataan1 atau pernyataan2 hanya terdiri dari satu baris, maka tanda { } tidak diperlukan, namun jika lebih maka diperlukan. •Selain dari if … else, juga dikenal bentuk if … else if.

kondisi

pernyataan1

truefalse

pernyataan2

Page 5: 05 for-dowhile-while

PEMILIHAN (SELECTION) Instruksi switch Pernyataan swich adalah pernyataan yang digunakan untuk menjalankan

salah satu pernyataan dari beberapa kemungkinan pernyataan, berdasarkan nilai dari sebuah ungkapan dan nilai penyeleksian.

Pernyataan if…else jamak dapat dibangun dengan pernyataan switch.

Switch (ekspresi) {

case konstanta1 : pernyataan_1;

[break;]

case konstanta2 : pernyataan_2; [break;]

case konstantan : pernyataan_n; [break;]

[default] : pernyataan_x

}

Ekspresi dievaluasi, jika hasilnya konstanta1, maka pernyataan_1 dikerjakan, jika hasilnya konstanta2, maka pernyataan_2 dikerjakan. Jika hasilnya bukan merupakan semua konstanta1.. n, maka pernyataan_x dikerjakan.

Klausa [default] dan [break] bersifat oprtional

Page 6: 05 for-dowhile-while

PEMILIHAN (SELECTION)//contoh : Switch : 1 = senin, 2= selasa dst.#include <stdio.h>#include <stdlib.h>

int main() { int angka; printf(“input Angka 1 - 7: “);scanf(“%d”,&angka); switch(angka) { case 1 : puts(“senin”);break; case 2 : puts(“selasa”);break; case 3 : puts(“rabu”);break; case 4 : puts(“kamis”);break; case 5 : puts(“jumat”);break; case 6 : puts(“sabtu”);break; case 7 : puts(“minggu”); // PERLU BREAK ATAU TIDAK? } system(“PAUSE”);}

Page 7: 05 for-dowhile-while

PEMILIHAN (SELECTION)//contoh : Switch

#include <stdio.h>

#include <stdlib.h>

int main() {

int nilai;

printf(“input nilai : “);scanf(“%d”,&nilai);

switch(nilai/10) {

case 10 :

case 9 :

case 8 : puts(“hebat”);break;

case 7 :

case 6 : puts(“cukup”);break;

case 5 : puts(“buruk”);break;

default: puts(“Anda harus mengulang !”);

}

system(“PAUSE”);

}

Page 8: 05 for-dowhile-while

STRUKTUR KENDALI PENGULANGAN

Sebuah / kelompok instruksi diulang untuk jumlah pengulangan tertentu. Baik yang terdifinisikan sebelumnya ataupun tidak.

Struktur pengulangan terdiri atas dua bagian : 1. Kondisi pengulangan yaitu ekspresi boolean yang harus dipenuhi

untuk melaksanakan pengulangan 2. Isi atau badan pengulangan yaitu satu atau lebih pernyataan (aksi)

yang akan diulang. Perintah atau notasi dalam struktur pengulangan adalah :

1. Pernyataan for2. Pernyataan while 3. Pernyataan do .. while 4. Pernyataan continue dan break 5. Pernyataan go to

Page 9: 05 for-dowhile-while

STRUKTUR KENDALI PENGULANGAN Instruksi for Instruksi for digunakan untuk menghasilkan pengulangan(looping)

beberapa kali tanpa penggunaan kondisi apapun. Pada umumnya looping yang dilakukan oleh for telah diketahui batas awal, syarat looping dan perubahannya. Selama kondisi terpenuhi, maka pernyataan akan terus dieksekusi.

Syntax : for ([expr1];[expr2];[expr3]) statement;

Expr1 untuk inisialisasi, berupa satu atau beberapa instruksi yang dipisahkan koma.

Expr2 berupa ekspresi kondisional untuk menentukan kondisi pengulangan. Selama menghasilkan nilai true, maka statement dikerjakan

Expr3 untuk menaikkan atau menurunkan nilai pengendali

Page 10: 05 for-dowhile-while

STRUKTUR KENDALI PENGULANGAN

for(expr1;expr2;expr3) statement;

expr1

expr2 statement expr3

true

false

Expr1 dikerjakan hanya sekali (nilai awal)

Expr2 diperiksa, jika true, kerjakan statement

Expr3 dikerjakan

Expr2 diperiksa, jika true, kerjakan statement

Expr3 dikerjakan

Proses berulang sehingga expr2 bernilai false

Page 11: 05 for-dowhile-while

Statement for : contoh 1

int main() { int i;

printf("percobaan 1:\n"); for (i = 0; i < 10; i++) printf("%d ", i); printf("\npercobaan 2:\n"); for (i = 1; i <= 10; i++) printf("%d ", i); printf("\npercobaan 3:\n"); for (i = 0; i < 10; i = i+2) printf("%d ", i); ...}

int main() { int i;

printf("percobaan 1:\n"); for (i = 0; i < 10; i++) printf("%d ", i); printf("\npercobaan 2:\n"); for (i = 1; i <= 10; i++) printf("%d ", i); printf("\npercobaan 3:\n"); for (i = 0; i < 10; i = i+2) printf("%d ", i); ...}

percobaan 1:0 1 2 3 4 5 6 7 8 9percobaan 2:1 2 3 4 5 6 7 8 9 10percobaan 3:0 2 4 6 8

percobaan 1:0 1 2 3 4 5 6 7 8 9percobaan 2:1 2 3 4 5 6 7 8 9 10percobaan 3:0 2 4 6 8

Page 12: 05 for-dowhile-while

Statement for : contoh 2

int main() { ... printf("\npercobaan 4:\n"); for (i = 9; i >= 0; i--) printf("%d ", i); printf("\npercobaan 5:\n"); for (i = 9; i >= 0; i -= 2) printf("%d ", i); return 0;}

int main() { ... printf("\npercobaan 4:\n"); for (i = 9; i >= 0; i--) printf("%d ", i); printf("\npercobaan 5:\n"); for (i = 9; i >= 0; i -= 2) printf("%d ", i); return 0;}

percobaan 4:9 8 7 6 5 4 3 2 1 0percobaan 5:9 7 5 3 1

percobaan 4:9 8 7 6 5 4 3 2 1 0percobaan 5:9 7 5 3 1

Page 13: 05 for-dowhile-while

Statement for : contoh 3

int main() { int i, batas;

printf("Tabel Perkalian Lima\n"); printf("sampai dengan ? "); scanf("%d", &batas); for (i = 1; i <= batas; i++) printf("5 * %d = %d\n", i, 5 * i); return 0;}

int main() { int i, batas;

printf("Tabel Perkalian Lima\n"); printf("sampai dengan ? "); scanf("%d", &batas); for (i = 1; i <= batas; i++) printf("5 * %d = %d\n", i, 5 * i); return 0;}

Tabel Perkalian Limasampai dengan ? 35 * 1 = 55 * 2 = 105 * 3 = 15

Tabel Perkalian Limasampai dengan ? 35 * 1 = 55 * 2 = 105 * 3 = 15

Page 14: 05 for-dowhile-while

Statement for : contoh 3

for (i = 1; i <= batas; i++) printf("5 * %d = %d\n", i, 5 * i);

for (i = 1; i <= batas; i++) printf("5 * %d = %d\n", i, 5 * i);

Langkah Instruksi i batas i <= batas Keluaran

1 scanf( ) ? 3

2 i = 1 1 3

3 i <= batas 1 3 true

4 printf("...", i, 5*i) 1 3 5 * 1 = 5

5 i++ 2 3

6 i <= batas 2 3 true

7 printf("...", i, 5*i) 2 3 5 * 2 = 10

8 i++ 3 3

Page 15: 05 for-dowhile-while

Statement for : contoh 3

Langkah Instruksi i batas i <= batas Keluaran

9 i <= batas 3 3 true

10 printf("...", i, 5*i) 3 3 5 * 3 = 5

11 i++ 4 3

12 i <= batas 4 3 false

for (i = 1; i <= batas; i++) printf("5 * %d = %d\n", i, 5 * i);

for (i = 1; i <= batas; i++) printf("5 * %d = %d\n", i, 5 * i);

Page 16: 05 for-dowhile-while

Statement for : contoh 4Tulis program untuk menampilkan bilangan-bilangan genap antara dua bilangan. Kedua bilangan batas ini ikut ditampilkan bila merupakan bilangan genap.

13 1913 14 15 16 17 18 19 20

15 1010 11 12 13 14 15 16

baca bil1, bil2jika bil1 <= bil2 cacah bil1 ulangi selama cacah <= bil2 jika cacah habis dibagi 2 cetak cacah akhir jika cacah cacah + 1 akhir pengulanganselain itu cacah bil2 ulangi selama cacah <= bil1 jika cacah habis dibagi 2 cetak cacah akhir jika cacah cacah + 1 akhir pengulanganakhir jika

baca bil1, bil2jika bil1 <= bil2 cacah bil1 ulangi selama cacah <= bil2 jika cacah habis dibagi 2 cetak cacah akhir jika cacah cacah + 1 akhir pengulanganselain itu cacah bil2 ulangi selama cacah <= bil1 jika cacah habis dibagi 2 cetak cacah akhir jika cacah cacah + 1 akhir pengulanganakhir jika

Page 17: 05 for-dowhile-while

Statement for : contoh 4

int main() { int bil1, bil2, cacah;

scanf("%d %d", &bil1, &bil2); if (bil1 <= bil2) { for (cacah = bil1; cacah <= bil2; cacah++) if ((cacah % 2) == 0) printf("%d ", cacah); } else { for (cacah = bil2; cacah <= bil1; cacah++) if ((cacah % 2) == 0) printf("%d ", cacah); } return 0;}

int main() { int bil1, bil2, cacah;

scanf("%d %d", &bil1, &bil2); if (bil1 <= bil2) { for (cacah = bil1; cacah <= bil2; cacah++) if ((cacah % 2) == 0) printf("%d ", cacah); } else { for (cacah = bil2; cacah <= bil1; cacah++) if ((cacah % 2) == 0) printf("%d ", cacah); } return 0;}

13 2514 16 18 20 22 24

13 2514 16 18 20 22 24

16 910 12 14 16

16 910 12 14 16

Page 18: 05 for-dowhile-while

STRUKTUR KENDALI PENGULANGAN

while (kondisi) statement;

while biasanya digunakan untuk perulangan stetment yang jumlah perulangannya tidak menentu. Statement yang ada didalam while bisa diabaikan sama sekali (tidak dikerjakan) apabila kondisi awal tersebut bernilai false.

Statement akan terus dikerjakan selama kondisi masih bernilai true.

kondisi statementtrue

false

Page 19: 05 for-dowhile-while

STRUKTUR KENDALI PENGULANGAN

do statement while (kondisi); Sama seperti while, do..

while biasanya digunakan untuk perulangan stetment yang jumlah perulangannya tidak menentu. Perbedaannya statement yang ada didalam do .. while minimal dikerjakan satu kali.

Statement akan terus dikerjakan selama kondisi masih bernilai true.

kondisi

statement

true

false

Page 20: 05 for-dowhile-while

break dan continue break digunakan untuk menghentikan sebuah loop, walaupun

sebenarnya kondisi dalam loop tersebut masih mungkin bernilai true. Selain untuk statement looping juga bisa digunakan untuk switch

Contoh :#include <stdio.h>#include <stdlib.h>int main() { int a; for(a=1;a < 5;a ++) { printf(“a = %d\n”,a); if(a==3) break; } system(“PAUSE”);}

Page 21: 05 for-dowhile-while

break dan continue continue digunakan untuk melanjutkan loop ke nilai

counter berikutnya dengan mengabaikan semua statement yang ada setelah statement continue tersebut

Contoh :#include <stdio.h>#include <stdlib.h>

int main() { int i; for(i=0;1<=100;i++) if(i % 2 == 0) continue; printf(“%3d”,i); }

Page 22: 05 for-dowhile-while

Infinite Loop: Pengulangan tanpa akhir

Infinite loopPengulangan tanpa akhirfor ( ; ; )for ( ; 1 ;)while (1)do while (1)

Page 23: 05 for-dowhile-while

Statement while: contoh 1

int main() { unsigned n;

scanf("%u", &n); while (n > 3) { printf("%u ", n); n--; } return 0;}

int main() { unsigned n;

scanf("%u", &n); while (n > 3) { printf("%u ", n); n--; } return 0;}

88 7 6 5 4

88 7 6 5 4

00

Page 24: 05 for-dowhile-while

Statement while: contoh 2

Apa hasil dari potongan program dibawah ini

a) While (a < 10) printf(“%d”,a);

b) b = 10;while (b < 20) { printf(“%d”,b); b += 2; }

c) jawab = ‘’;while (jawab != ‘Y’ && jawab != ‘T’)

jawab = getchar();

d) while (jawab != ‘Y’ && jawab != ‘T’) jawab = getchar();

a) While (a < 10) printf(“%d”,a);

b) b = 10;while (b < 20) { printf(“%d”,b); b += 2; }

c) jawab = ‘’;while (jawab != ‘Y’ && jawab != ‘T’)

jawab = getchar();

d) while (jawab != ‘Y’ && jawab != ‘T’) jawab = getchar();

Page 25: 05 for-dowhile-while

Statement while: contoh 3

Ketik sejumlah bilangan, diakhiri 045 37 29 66 83 7 0

Jumlah Nilai = 267

Rerata = 44.5

Ketik sejumlah bilangan, diakhiri 045 37 29 66 83 7 0

Jumlah Nilai = 267

Rerata = 44.5

Buatlah program untuk memasukkan bilangan-bilangan.Kemudian jumlahkan bilangan-bilangan tersebut dan juga hitung reratanya.Jika user mengetikkan 0 berarti selesai dan 0 tersebut tidak dimasukkan ke dalam perhitungan.Gunakan statement while

Buatlah program untuk memasukkan bilangan-bilangan.Kemudian jumlahkan bilangan-bilangan tersebut dan juga hitung reratanya.Jika user mengetikkan 0 berarti selesai dan 0 tersebut tidak dimasukkan ke dalam perhitungan.Gunakan statement while

Page 26: 05 for-dowhile-while

Statement while: contoh 3

Page 27: 05 for-dowhile-while

Statement do while: contoh 1

Buat program untuk menebak angka yang dimasukkan user (antara 1-100). Angka yang ditebak dikeluarkan secara random ( function random).

Jika angka terlalu kecil / besar / tepat berikan pesan ke user.

Jika user menebak dengan tepat, maka program selesai.

Page 28: 05 for-dowhile-while

Statement do while: contoh 1