4 Control Flow
-
Upload
gilang-sang-armada -
Category
Documents
-
view
194 -
download
10
Transcript of 4 Control Flow
![Page 1: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/1.jpg)
Control flow
Struktur Dasar JAVA
![Page 2: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/2.jpg)
Tujuan
• Mahasiswa dapat :– Memahami konsep control flow– Memahami struktur control flow
![Page 3: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/3.jpg)
Topik
• Control Flow :– If-then– If-then-else– Switch– While– Do-while– For
![Page 4: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/4.jpg)
Control Flow
• Digunakan untuk meng-eksekusi/menjalankan program berdasarkan alur : pengkondisian (decision making), percabangan (branching), maupun perulangan(looping).
• Decision making : if-then, if-then-else, switch• Looping : for, while, do-while• Branching : break, continue, return
![Page 5: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/5.jpg)
DECISION MAKING(PENGKONDISIAN)
Control Flow
![Page 6: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/6.jpg)
(1) IF-Then
• Baris perintah yang ada didalam blok if akan di-eksekusi jika ekspresi bernilai benar (true).
• Jika ekspresi bernilai salah maka program akan loncat ke statement yang ada dibawah blok if.
![Page 7: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/7.jpg)
Syntax IF-Then
• Jika hanya ada satu statement didalam blok if, maka kurung kurawal { dan } dapat tidak disertakan/ditulis.
if(ekspresi) {
/* baris ini akan di-eksekusi jika ekspresi pada if bernilai benar */
}....
![Page 8: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/8.jpg)
Flowchart If-then
![Page 9: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/9.jpg)
Implementasi• Menggunakan {}
• Tidak menggunakan {}
Char nilai_huruf;int nilai = 85;if(nilai>80) {
nilai_huruf = ‘A’;}
Char nilai_huruf;int nilai = 85;if(nilai>80) nilai_huruf = ‘A’;
![Page 10: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/10.jpg)
Implementasi
Char nilai_huruf;int nilai = 85;if(nilai>80) {
System.out.println(“A”);}System.out.println(“B”);;
Ekspresi If
Karena ekspresi bernilai benar maka baris perintah ini akan dijalankan
Perintah ini akan langsungdijalankan jika ekspresi bernilai salah
![Page 11: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/11.jpg)
(2) IF-then-Else
• Statement if-then-else memiliki dua kondisi percabangan.
• Jika ekspresi pada if bernilai salah, maka statement else yang akan di-eksekusi.
![Page 12: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/12.jpg)
Syntax IF-Then-Else (1)
• Statement else dapat memiliki lebih dari satu percabangan.
if(ekspresi) { /* baris ini akan di-eksekusi jika ekspresi pada if bernilai benar */
}else{
/* baris ini akan di-eksekusi jika ekspresi pada if bernilai salah*/
}
![Page 13: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/13.jpg)
Flowchart If-then-else
![Page 14: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/14.jpg)
Syntax IF-Then-Else (2)if(ekspresi 1) {
/* baris ini akan di-eksekusi jika ekspresi pada if bernilai benar */
}else if(ekspresi 2){
/* baris ini akan di-eksekusi jika ekspresi 1 bernilai salah*/
}else if(ekspresi 3){
/* baris ini akan di-eksekusi jika ekspresi 2 bernilai salah*/
}else{
/* baris ini akan di-eksekusi jika ekspresi 3 bernilai salah*/
}
![Page 15: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/15.jpg)
Flowchart If-then-else
![Page 16: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/16.jpg)
Implementasi
Char nilai_huruf;int nilai = 75;if(nilai>80) {
nilai_huruf = ‘A’;}else{
nilai_huruf = ‘B’;}
![Page 17: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/17.jpg)
Implementasi
Char nilai_huruf;int nilai = 75;if(nilai>80) {
nilai_huruf = ‘A’;}else{
nilai_huruf = ‘B’;}
statement If
Karena ekspresi bernilai benar maka baris perintah ini tidak dijalankan
Baris perintah ini akan dijalankan
Statement else
![Page 18: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/18.jpg)
Contoh program
• IfElseDemo.java
![Page 19: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/19.jpg)
(3) Switch
• Switch bekerja pada tipe data : byte, short, int, long, char dan string.
• Body switch dikenal dengan switch block.• Statement pada switch block terdiri dari satu
atau lebih case atau default.• Penambahan break pada tiap stament case
bersifat optional.
![Page 20: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/20.jpg)
Syntax Switchvariabel;switch(variabel){
case 1 :statement 1;case 2 :statement 2;case 3 :statement 3;.....case n :statement n;default : break;
}
![Page 21: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/21.jpg)
Flowchart Switch
![Page 22: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/22.jpg)
Penggunaan String pada Switch
• Contoh program : CharSwitchDemo.java
![Page 23: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/23.jpg)
LOOPING (PERULANGAN)Control Flow
![Page 24: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/24.jpg)
(1) While
• Syntax while :
while (expression) { statement(s)
}
![Page 25: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/25.jpg)
(1) While
• Statement yang ada didalam blok while akan dieksekusi jika ekspresi bernilai true.
while (true){// your code goes here
}
![Page 26: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/26.jpg)
Flowchart While
Benar
kondisi
Statement…….
Salah
Ke pernyataan sesudah while
![Page 27: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/27.jpg)
Implementasi
• Contoh kode program : WhileDemo.java
![Page 28: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/28.jpg)
(2) Do-While
• Syntax do-while :
• Statement yang ada didalam blok do-while akan dijalankan sekali sebelum pengecekan ekspresi do-while.
do { statement(s)
} while (expression);
![Page 29: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/29.jpg)
Flowchart do-while
kondisi
Statement…….
Salah
Ke pernyataan sesudah while
Benar
![Page 30: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/30.jpg)
Implementasi
• Contoh kode program : DoWhileDemo.java
![Page 31: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/31.jpg)
(3) For
• Syntax for:
for (inisialisasi; terminasi; increment) { statement(s)
}
for ( ; ; ) {// infinite loop // your code goes here
}
![Page 32: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/32.jpg)
Keterangan
• Inisialisasi : nilai awal dimulainya perulangan. Hanya dieksekusi satu kali.
• Terminasi : ekspresi untuk melakukan evaluasi pada tiap perulangan. Jika nilainya bernilai false maka perulangan berhenti.
• Increment : ekspresi yang dikerjakan pada tiap perulangan. Bisa berupa increment maupun decrement.
![Page 33: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/33.jpg)
Implementasi
• Contoh kode program : ForDemo.java• EnhancedForDemo.java
![Page 34: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/34.jpg)
BRANCHING STATEMENTControl Flow
![Page 35: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/35.jpg)
(1) Break
• Menggunakan keyword : Break• Digunakan untuk menghentikan perulangan
for, while, do-while.• Dibedakan menjadi dua :
1. Unlabeled Break2. Labeled Break
![Page 36: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/36.jpg)
Unlabeled Break
• Digunakan untuk menghentikan perulangan yang terdalam/inner statement atau perulangan yang paling dekat dengan percabangan.
![Page 37: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/37.jpg)
Syntax Unlabeled Break (1)
• Unlabeled brake pada perulangan while :
while(…){ if(…){ break; ……}//akhir whileStatement_diluar_perulangan;
![Page 38: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/38.jpg)
Syntax Unlabeled break (2)
• Break pada perulangan bersarang :
While (…){while(…){
if(…) break; …… }//akhir while terdalam Statement_setelah_while; ……
}//akhir while terluar
![Page 39: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/39.jpg)
Implementasi
• Contoh kode program : BreakDemo.java
![Page 40: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/40.jpg)
Labeled Break
• Digunakan untuk menghentikan perulangan yang terluar/outer statement atau sesuai dengan peletakan label.
![Page 41: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/41.jpg)
Syntax Labeled break
• Labeled brake dengan menggunakan label selesai.
selesai :While (…){
while(…){ if(…) break selesai; …… }//akhir while terdalam Statement_setelah_while; ……
}//akhir while terluarStatement_diluar_perulangan;
![Page 42: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/42.jpg)
Implementasi
• Contoh kode program : BreakWithLabelDemo.java
![Page 43: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/43.jpg)
(2) Continue
• Menggunakan keyword : continue• Digunakan untuk kembali ke perulangan for, while,
do-while.• Ketika continue di-eksekusi maka compiler akan
kembali ke perulangan sehingga statement yang ada dibawah percabangan/continue tidak dijalankan.
• Dibedakan menjadi dua :1. Unlabeled Continue2. Labeled Continue
![Page 44: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/44.jpg)
Unlabeled Continue
• Digunakan untuk kembali ke perulangan yang terdalam/inner statement atau perulangan yang paling dekat dengan percabangan.
![Page 45: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/45.jpg)
Implementasi
• Contoh kode program : ContinueDemo.java
![Page 46: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/46.jpg)
Labeled Continue
• Digunakan untuk kembali ke perulangan yang terluar/outer statement atau sesuai dengan peletakan label.
![Page 47: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/47.jpg)
Implementasi
• Contoh kode program : ContinueWithLabelDemo.java
![Page 48: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/48.jpg)
(3) Return
• Menggunakan keyword : return• Digunakan untuk keluar dari method maupun
control flow.• Dibedakan menjadi dua :
1. Return dengan mengirim value2. Return tanpa mengirim value
![Page 49: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/49.jpg)
Contoh
• Return dengan mengirim value : return ++count;
• Return tanpa mengirim value : return;
![Page 50: 4 Control Flow](https://reader035.fdocuments.net/reader035/viewer/2022081421/5571fb324979599169943538/html5/thumbnails/50.jpg)
Kesimpulan
• Control flow : pengkondisian, perulangan, percabangan.
• Pengkondisian : if-then, if-then-else, switch.• Perulangan : while, do-while, for.• Percabangan : brake, continue, return.