Aliran Kendali (Flow Control) - Afif Supianto Blog · Pemrograman Lanjut: Aliran Kendali 1 ......

18
Aliran Kendali (Flow Control) Pernyataan-pernyataan yang menentukan urutan eksekusi Pernyataan/struktur berurutan (sequence) Pencabangan bersyarat (selection, conditional structure) if, if-else, switch-case Pengulangan (repetition, iteration, loop) for, while, do-while Pemrograman Lanjut: Aliran Kendali 1

Transcript of Aliran Kendali (Flow Control) - Afif Supianto Blog · Pemrograman Lanjut: Aliran Kendali 1 ......

Page 1: Aliran Kendali (Flow Control) - Afif Supianto Blog · Pemrograman Lanjut: Aliran Kendali 1 ... Contoh program untuk mendapatkan akar-akar dari persamaan kwardrat. ... Latihan 1. Buatlah

Aliran Kendali (Flow Control)

Pernyataan-pernyataan yang menentukan urutan eksekusi Pernyataan/struktur berurutan (sequence)

Pencabangan bersyarat (selection, conditional structure)

if, if-else, switch-case

Pengulangan (repetition, iteration, loop) for, while, do-while

Pemrograman Lanjut: Aliran Kendali 1

Page 2: Aliran Kendali (Flow Control) - Afif Supianto Blog · Pemrograman Lanjut: Aliran Kendali 1 ... Contoh program untuk mendapatkan akar-akar dari persamaan kwardrat. ... Latihan 1. Buatlah

Dalam sebuah algoritma, seringkali suatu atausekelompok instruksi harus dilaksanakan bila suatupersyaratan dipenuhi (bernilai benar) dan sebaliknya,dilewati atau tidak dilaksanakan jika persyaratantersebut tidak dipenuhi (bernilai salah).

Pernyataan pencabangan bersyarat terdiri dari: if, if-else switch-case

2Pemrograman Lanjut: Aliran Kendali

Pencabangan bersyarat

Page 3: Aliran Kendali (Flow Control) - Afif Supianto Blog · Pemrograman Lanjut: Aliran Kendali 1 ... Contoh program untuk mendapatkan akar-akar dari persamaan kwardrat. ... Latihan 1. Buatlah

Penggambaran dalam flow-chart

3

Eks.boolean

Statement;Statement;

...

true

false

Statements sebelum if

Statements setelah if

Booleanexpression

Statement;Statement;

...

Pemrograman Lanjut: Aliran Kendali

Pernyataan if

Page 4: Aliran Kendali (Flow Control) - Afif Supianto Blog · Pemrograman Lanjut: Aliran Kendali 1 ... Contoh program untuk mendapatkan akar-akar dari persamaan kwardrat. ... Latihan 1. Buatlah

Sintaks :if (boolean expression)statement;

atau

if (boolean expression)

{statement1;statement2;……

}

Jika ekspresi boolean bernilai TRUE, maka statement atau block statement akan dilaksanakan.

4

Block statement

Pemrograman Lanjut: Aliran Kendali

Pernyataan if

Page 5: Aliran Kendali (Flow Control) - Afif Supianto Blog · Pemrograman Lanjut: Aliran Kendali 1 ... Contoh program untuk mendapatkan akar-akar dari persamaan kwardrat. ... Latihan 1. Buatlah

Penggambaran if-else dalam flow-chart

5

Statements sebelum if

Statements setelah if

Eks.boolean

Statement_01;Statement_02;

...

truefalse

Statement_11;Statement_12;

...

Boolean expression

Statement_01;Statement_02;

...

Statement_11;Statement_12;

...

Pemrograman Lanjut: Aliran Kendali

Pernyataan if-else

Page 6: Aliran Kendali (Flow Control) - Afif Supianto Blog · Pemrograman Lanjut: Aliran Kendali 1 ... Contoh program untuk mendapatkan akar-akar dari persamaan kwardrat. ... Latihan 1. Buatlah

Sintaks :if (ekspresi boolean) statement_01;else statement_02;

atau

if (ekspresi boolean){statement_01;

……}else {statement_02;

…...}

Jika ekspresi boolean bernilai TRUE, maka statement_01 atau block statement_01 yang dilaksanakan, jika bernilai FALSE maka statement_02 atau block statement_02 yang dilaksanakan.

6

Block statement_01

Block statement_02

Pemrograman Lanjut: Aliran Kendali

Pernyataan if-else

Page 7: Aliran Kendali (Flow Control) - Afif Supianto Blog · Pemrograman Lanjut: Aliran Kendali 1 ... Contoh program untuk mendapatkan akar-akar dari persamaan kwardrat. ... Latihan 1. Buatlah

Contoh program untuk mendapatkan akar-akar dari persamaan kwardrat.

Algoritma :1. Dapatkan koefisien a, b, dan c dari keyboard2. Hitung diskriminan d = b*b – 4*a*c3. Bila d >= 0 maka hitung x1 dan x2

Bila d < 0 maka print akar imajiner dan stop4. Stop

Menghitung x1, dengan rumus :

Menghitung x2, dengan rumus :

7

-b + d

2*a

-b - d

2*aPemrograman Lanjut: Aliran Kendali

Pernyataan if-else

Page 8: Aliran Kendali (Flow Control) - Afif Supianto Blog · Pemrograman Lanjut: Aliran Kendali 1 ... Contoh program untuk mendapatkan akar-akar dari persamaan kwardrat. ... Latihan 1. Buatlah

Contoh :

8

main(){ float a,b,c,d,x1,x2;

printf("PERHITUNGAN AKAR PERS. KUADRAT\n\n");printf("Masukan koef. a : "); a=input.nextInt;printf("Masukan koef. b : "); b=input.nextInt;printf("Masukan koef. c : "); c=input.nextInt;d = b*b - 4 * a * c;if (d >= 0){ x1 = (-b + sqrt(d)) / (2 * a);

x2 = (-b - sqrt(d)) / (2 * a);printf("\nx1=%f\nx2=%f\n\n",x1,x2);

}else printf("Akar Persamaan Imajiner\n\n");

}

Pemrograman Lanjut: Aliran Kendali

Pernyataan if-else

Page 9: Aliran Kendali (Flow Control) - Afif Supianto Blog · Pemrograman Lanjut: Aliran Kendali 1 ... Contoh program untuk mendapatkan akar-akar dari persamaan kwardrat. ... Latihan 1. Buatlah

Konstruksi if-else dapat digunakan secara bertingkat atau bersarang (nested)

Contoh:

Semua statements dalam level yang sama

if (boolean exp) {

statement;

}

else if (boolean exp) {

statement;

}

else {

statement;

} 9Pemrograman Lanjut: Aliran Kendali

Pernyataan if-else

Page 10: Aliran Kendali (Flow Control) - Afif Supianto Blog · Pemrograman Lanjut: Aliran Kendali 1 ... Contoh program untuk mendapatkan akar-akar dari persamaan kwardrat. ... Latihan 1. Buatlah

Contoh:

Konstruksi if-else bersarang; terdapat statements dalam level yang berbeda

if (boolean exp) {

statement;

}

else if (boolean exp) {

if (boolean exp) statement;

else statement;

}

else {

statement;

} 10Pemrograman Lanjut: Aliran Kendali

Pernyataan if-else

Page 11: Aliran Kendali (Flow Control) - Afif Supianto Blog · Pemrograman Lanjut: Aliran Kendali 1 ... Contoh program untuk mendapatkan akar-akar dari persamaan kwardrat. ... Latihan 1. Buatlah

11Pemrograman Lanjut: Aliran Kendali

Pernyataan if

Page 12: Aliran Kendali (Flow Control) - Afif Supianto Blog · Pemrograman Lanjut: Aliran Kendali 1 ... Contoh program untuk mendapatkan akar-akar dari persamaan kwardrat. ... Latihan 1. Buatlah

Pernyataan switch-case dapat dipergunakan sebagaipengganti pernyataan if-else, jika pernyataan if-elsebertingkat terlalu banyak, sehingga menjadi sulit dibaca.

Sintaks pernyataan switch-caseswitch (int or char expression) {case constant1 : statements1;

break; case constant2 : statements2;

break;…

[ default : statements; ]}

12Pemrograman Lanjut: Aliran Kendali

Pernyataan switch-case

Page 13: Aliran Kendali (Flow Control) - Afif Supianto Blog · Pemrograman Lanjut: Aliran Kendali 1 ... Contoh program untuk mendapatkan akar-akar dari persamaan kwardrat. ... Latihan 1. Buatlah

Pernyataan switch mengevaluasi ekspresi dan kemudian melihat isi case constant. Jika nilai ekspresi ada didalam constant list maka pernyataan dieksekusi. Jika tidak ada yang cocok, pernyataan default yang dieksekusi.

Catatan:

Nilai ekspresi harus integer atau character dan constantharus integer constant termasuk char constant.

13Pemrograman Lanjut: Aliran Kendali

Pernyataan switch-case

Page 14: Aliran Kendali (Flow Control) - Afif Supianto Blog · Pemrograman Lanjut: Aliran Kendali 1 ... Contoh program untuk mendapatkan akar-akar dari persamaan kwardrat. ... Latihan 1. Buatlah

Struktur logika switch-case dapat digambarkan sbb.:

14Pemrograman Lanjut: Aliran Kendali

Pernyataan switch-case

case b

case a

case z

case a action(s)

case b action(s)

case z action(s)

break

break

break

default action(s)

true

true

true

false

false

false

case b

case a

case z

case a action(s)

case b action(s)

case z action(s)

break

break

break

default action(s)

Page 15: Aliran Kendali (Flow Control) - Afif Supianto Blog · Pemrograman Lanjut: Aliran Kendali 1 ... Contoh program untuk mendapatkan akar-akar dari persamaan kwardrat. ... Latihan 1. Buatlah

15

Contoh :

main(){float bil1, bil2; char op;input bil1, bil2, op;switch(op){case '+': printf(" = %f", bil1 + bil2); break;case '-': printf(" = %f", bil1 - bil2); break;case '*': printf(" = %f", bil1 * bil2); break;case '/': printf(" = %f", bil1 / bil2); break;default: printf("operator TAK DIKENAL");

}printf("\n\n");

}

Pemrograman Lanjut: Aliran Kendali

Pernyataan switch-case

Page 16: Aliran Kendali (Flow Control) - Afif Supianto Blog · Pemrograman Lanjut: Aliran Kendali 1 ... Contoh program untuk mendapatkan akar-akar dari persamaan kwardrat. ... Latihan 1. Buatlah

16Pemrograman Lanjut: Aliran Kendali

Pernyataan switch-case

Page 17: Aliran Kendali (Flow Control) - Afif Supianto Blog · Pemrograman Lanjut: Aliran Kendali 1 ... Contoh program untuk mendapatkan akar-akar dari persamaan kwardrat. ... Latihan 1. Buatlah

Latihan1. Buatlah program untuk menentukan

mahasiswa lulus atau tidak dengan masukan suatu nilai, jika nilainya lebih besar atau sama dengan 60, maka muncul pesan lulus, kalau tidak maka muncul pesan gagal

2. Modifikasi program no 1 dengan menambahkan batasan nilai atas dan nilai bawah. Munculkan pesan bahwa nilai yang dimasukkan di luar range penilian jika nilai tersebut kurang dari 0 atau lebih dari 100

Pemrograman Lanjut: Aliran Kendali 17

Page 18: Aliran Kendali (Flow Control) - Afif Supianto Blog · Pemrograman Lanjut: Aliran Kendali 1 ... Contoh program untuk mendapatkan akar-akar dari persamaan kwardrat. ... Latihan 1. Buatlah

Tugas1. Buatlah program untuk mengkonversikan nilai

mahasiswa ke bentuk huruf :– Cetak A jika nilainya lebih besar atau sama dengan 81– Cetak B jika nilainya antara 70 sampai 79– Cetak C jika nilainya antara 60 sampai 69– Cetak D jika nilainya antara 50 sampai 59 – Cetak E untuk nilai yang lain

Pemrograman Lanjut: Aliran Kendali 18