Modul 3 Flow Control dan Input Flow control terbagi menjadi dua, yaitu control seleksi dan control perulangan. 1. KONTROL SELEKSI Kontrol seleksi digunakan untuk membuat pemilihan terhadap aksi yang akan dilakukan. 1.1. IF Statement if merupakan control seleksi tunggal. Jika kondisi di dalam If terpenuhi maka statement yang ada di dalamnya akan dijalankan. if (kondisi) Aksi1; Aksi2;..; int a = 10; If (a == 10) System.out.println( a bernilai sepuluh ); Jika nilai a diubah menjadi 7, apakah akan terjadi error atau tidak? Jika tidak terjadi error, maka apa yang akan terjadi? Jika terjadi error, pesan error apa yang akan disampaikan? 1.2. IF ELSE If else digunakan ketika kita akan melakukan beberapa pemilihan yang memliki kondisi yang berbeda-beda If (kondisi) Aksi 1; Aksi 2; else if (kondisi) Aksi 3; Aksi 4;
else Aksi 5; int a = 15; If (a == 10) System.out.println( a bernilai sepuluh ); else If (a == 15) System.out.println( a bernilai lima belas ); else System.out.println( a bukan sepuluh ataupun lima belas ); Coding di atas akan menghasilkan output apa? Jika nilai a diubah menjadi 8, output apa yang akan dihasilkan? Jika nilai a diubah menjadi 10, output apa yang akan dihasilkan? Jika nilai a diubah menjadi 17, output apa yang akan dihasilkan? Contoh 2 : public class HelloWorld public static void main(string[] args) int a = 5; if(a==10) System.out.println("Nilai A tu 10"); else if(a!=10) System.out.println("Nilai A tu bkn 10"); else if(a>=10)
System.out.println("Nilai A lebih besar daripada 10"); else if(a<=10) System.out.println("Nilai A lebih kecil daripada 10"); else System.out.println("Nilai A bukan angka"); Output apakah yang dihasilkan dari program diatas? Output apakah yang dihasilkan jika a diubah menjadi 10? Output apakah yang dihasilkan jika a diubah menjadi 15? Output apakah yang dihasilkan jika a diubah menjadi a? 1.3. SWITCH Switch digunakan pada saat kita melakukan pemilihan yang kondisinya pasti. switch (a) Case 1: aksi 1; break; Case 2: aksi 2; break; default: aksi 3;
Contoh : Output apa yang akan dihasilkan dari coding di atas? Jika nilai a diubah menjadi 7, output apa yang akan dihasilkan? Jika nilai a diubah menjadi 7, output apa yang akan dihasilkan? Contoh 2: public class VokalKonsonan public static void main(string args[]) char c = (char) (Math.random() * 26 + a ); System.out.print(c + : ); switch(c) case a : case e : case i : case o : case u : System.out.println( huruf vokal ); default : System.out.println( huruf konsonan ); Output apakah yang dihasilkan dari program diatas? Apabila di case a diberi break apakah yang terjadi?
2. KONTROL PERULANGAN 2.1. For For digunakan untuk perulangan yang kita ketahui batas akhirnya. for (initialization ; Boolean-expression ; step) Statement; int a = 1; for (int x = 1; x < =5; x++) System.out.println( nilai a ke + x + adalah + a); a++; a. Output apakah yang akan dihasilkan dari coding di atas? b. Jika a++ dipindahkan ke atas statement System.out.println( nilai a ke + x + adalah + a); apakah yang akan terjadi? c. Jika statement for (int x = 1; x < =5; x++) diubah menjadi for (int x = 1; x > =5; x++), apakah yang akan terjadi? 2.2. While Kontrol perulangan while lebih diperuntukkan pada kontrol perulangan yang didasarkan pada kondisi yang benar. Bisa jadi, tidak ada inisialisasi nilai awal. while (Boolean-expression) Statement; int a = 1; while (a <= 5) System.out.println( nilai a adalah + a); a++;
a. Output apakah yang akan dihasilkan dari coding di atas? b. Jika a++ dipindahkan ke atas statement System.out.println( nilai a adalah + a); apakah yang akan terjadi? c. Jika statement while(a <= 5) diubah menjadi while (a >= 5), apakah yang akan terjadi? d. Jika a++ diubah menjadi a+=3, dan while (a<=5) diubah menjadi while(a!=5), output apakah yang akan dihasilkan? 2.3. Do while Do while mirip dengan while, hanya perintah yang berada dalam blok perulangan paling tidak akan dikerjakan satu kali do Statement; while (Boolean-expression); int a = 1; do System.out.println( nilai a adalah + a); a++; while (a <= 5); a. Output apakah yang akan dihasilkan dari coding di atas? b. Jika a++ dipindahkan ke atas statement System.out.println( nilai a adalah + a); apakah yang akan terjadi? c. Jika statement while(a <= 5) diubah menjadi while (a >= 5), apakah yang akan terjadi? d. Jika a++ diubah menjadi a+=3, dan while (a<=5) diubah menjadi while(a!=5), output apakah yang akan dihasilkan?
3. BREAK DAN CONTINUE 3.1. Break break digunakan dalam control seleksi dan control perulangan untuk membuat program exit dari statement tersebut. Selanjutnya program akan mengeksekusi baris pertama sesudah control statement. 3.1.1. Unlabled Break String output = ""; int count; for (count = 1; count <=10; count++) if (count == 5) break; output += count + " "; output += "\nkeluar statement pada iterasi ke = " + count; System.out.println(output); 3.1.2. Labeled Break String output = ; int count1,count2; labelnya: for(count1 = 1;count1<=5;count1++) for(count2 = 1;count2<=3;count2++) if(count2==2) break labelnya; System.out.println( Nilai count 1 = +count1+ dan count 2 = +count2); a. Output apakah yang akan dihasilkan dari program diatas? b. Apabila labelnya dimasukkan ke dalam for pertama, output apa yang dihasilkan? c. Output apa yang dihasilkan apabila if(count2==2) diganti dengan if(count1==1)?
3.2. Continue continue menyebabkan program melewati (skip) sisa statement yang ada dan langsung menuju iterasi berikut. 3.2.1. Unlabeled Continue String output = ""; int count; for (count = 1; count <=10; count++) if (count == 5) continue; output += count + " "; output += "\nkeluar statement pada iterasi ke = " + count; System.out.println(output); 3.2.2. Labeled Continue Contoh String output = ; int count1,count2; labelnya: for(count1 = 1;count1<=5;count1++) for(count2 = 1;count2<=3;count2++) if(count2==2) continue labelnya; System.out.println( Nilai count 1 = +count1+ dan count 2 = +count2); a. Output apakah yang dihasilkan dari program diatas? b. Apakah yang terjadi apabila if(count2==2) diubah menjadi if(count1==2)?
4. INPUT 4.1. Menggunakan method readline Contoh : import java.io.bufferedreader; import java.io.inputstreamreader; import java.io.ioexception; public class InputNama public static void main( String[] args ) BufferedReader input = new BufferedReader(new InputStreamReader( System.in) ); String nama = ""; System.out.print("Masukkan nama anda :"); try nama = input.readline(); catch( IOException e ) System.out.println("Error!"); System.out.println("Hello "+nama+"!"); 4.2. Menggunakan method JOptionPane Contoh : import javax.swing.joptionpane; public class InputNama public static void main(string[] args) System.out.println( Masukkan nama anda : ); String nama; Nama = JOptionPane.showInputDialog( Nama ); System.out.println( Terima Kasih +nama);
Latihan : 1. Ambil tiga nilai ujian dari user dan hitung nilai rata-rata dari nilai tersebut. Berikan output rata-rata dari tiga ujian. Berikan pujian jika nilai rata-rata lebih besar atau sama dengan 60, selain itu beri outputnya diberi tugas tambahan. a. Gunakan BufferedReader untuk mendapat input dari user, dan System.out untuk output hasilnya. b. Gunakan JOptionPane untuk mendapat input dari user dan output hasilnya. 2. Hitung pangkat sebuah nilai berdasarkan angka dan nilai pangkatnya. Buat tiga versi dari program ini menggunakan while loop, do-while dan for-loop. 3. Apa hasil dari perintah berikut bila dijalankan? for (int i=1;i<=5;i++) for (int j=1;j<=3 ;j++ ) for (int k=1;k<=4 ;k++ ) System.out.print("*"); System.out.println(); System.out.println();