KENDALI PROSES Untuk mengatur arus program, pemrograman java menyediakan struktur perulangan (looping), kondisional, percabangan, dan lompatan. PERINTAH KONDISIONAL Pemrograman Java memiliki 2 Decision-making statement : if-else dan switch. Perintah if digunakan untuk seleksi sederhana, sedangkan perintah switch digunakan untuk kondisi yang mempunyai beberapa pilihan jawaban berdasarkan 1 nilai integer/karakter. IF SEDERHANA Perintah if akan dieksekusi jika hasil dari ekspresi bernilai benar, dengan format : if (boolean expression) { statement(s) } Perintah if...else... akan dieksekusi dengan ketentuan jika kondisi benar akan menjalankan blok statement berikutnya, dan jika salah akan menjalankan blok statement setelah else, dengan format : if (boolean expression) { statement(s) } else { statement(s) } contoh : 1. //Perintah IF sederhana 2. class contohIf01{ 3. public static void main (String Args[ ]){ 4. int Angka = 36; 5. if (Angka%2 == 0) System.out.print("Bilangan Genap\n"); 6. else System.out.print("Bilangan Ganjil\n"); 7. System.out.print("SELESAI\n"); 8. } 9. } Output : Bilangan Genap SELESAI contoh : 1. //Perintah IF dengan class JOptionPane 2. import javax.swing.JOptionPane; 3. class contohIf01{ 4. public static void main (String Args[]){ 5. String ANGKA; 6. int angka; 7. //memasukan sebuah angka dengan input dialog 8. ANGKA = JOptionPane.showInputDialog("MASUKAN SEBUAH ANGKA : "); 9. 10. //mengkonversi angka dari string ke integer 11. angka = Integer.parseInt(ANGKA); 12. 13. if (angka%2 == 0) System.out.print("Bilangan Genap\n"); 14. else System.out.print("Bilangan Ganjil\n"); 15. System.out.print("SELESAI\n"); 16. } 17. } PBO/Java/Ayuliana/Feb2009 1 Output : Bilangan Genap SELESAI Perintah if...else if... mempunyai format penulisan : if (boolean expression) { statement(s) } else if (boolean expression) { statement(s) } else if (boolean expression) { statement(s) } else { statement(s) } Contoh : 1. import javax.swing.JOptionPane; 2. class IndexMhs{ 3. public static void main(String []args){ 4. String NILAI; 5. int nilai; 6. NILAI = JOptionPane.showInputDialog("MASUKAN NILAI [0-100] : "); 7. nilai = Integer.parseInt(NILAI); 8. 9. if(nilai<0||nilai>100){ System.out.println("Nilai harus diantara 0-100"); 10. System.exit(0); } 11. 12. if (nilai >=85){ System.out.println("Nilai : " +nilai + " - Index = A"); } 13. else if(nilai >=75){ System.out.println("Nilai : " +nilai + " - Index = B"); } 14. else if(nilai >=55){ System.out.println("Nilai : " +nilai + " - Index = C"); } 15. else if(nilai >=45){ System.out.println("Nilai : " +nilai + " - Index = D"); } 16. else { System.out.println("Nilai : " +nilai + " - Index = E"); } 17. } 18. } Output : Nilai : 73 – Index = C COMPOUND IF Perintah Compound if, mempunyai kondisi yang diseleksi lebih dari satu, digabungkan dengan menggunakan bantuan operator AND (&) atau OR (|). PBO/Java/Ayuliana/Feb2009 2 contoh : 1. import javax.swing.JOptionPane; 2. class IndexMhs{ 3. public static void main(String []args){ 4. String NILAI; 5. int nilai; 6. 7. NILAI = JOptionPane.showInputDialog("MASUKAN NILAI [0-100] : "); 8. nilai = Integer.parseInt(NILAI); 9. 10. if(nilai<0||nilai>100){ System.out.println("Nilai harus diantara 0-100"); 11. System.exit(0); 12. } 13. if (nilai < 100 & nilai >= 85){ 14. System.out.println("Nilai : " +nilai + " - Index = A"); } 15. else if(nilai < 85 & nilai >= 75){ 16. System.out.println("Nilai : " +nilai + " - Index = B"); } 17. else if(nilai < 75 & nilai >= 55){ 18. System.out.println("Nilai : " +nilai + " - Index= C"); } 19. else if(nilai < 55 & nilai >=45){ 20. System.out.println("Nilai : " +nilai + " - Index = D"); } 21. else { 22. System.out.println("Nilai : " +nilai + " - Index = E"); } 23. } } NESTED IF Perintah Nested if, mempunyai format penulisan : if (boolean expression_1) { if (boolean expression_2) { ..... if (boolean expression_n) { statement(s) } else { statement(s) } ..... else{ statement(s) } else { statement(s) } Contoh : 1. import javax.swing.JOptionPane; 2. class nestedIf { 3. public static void main (String Args[]){ 4. String ANGKAtemp; 5. int A, B, C, Min, Maks; 6. float AVG; 7. 8. //memasukan angka PERTAMA 9. ANGKAtemp = JOptionPane.showInputDialog("MASUKAN ANGKA PERTAMA : "); 10. 11. //konversi angka pertama 12. A = Integer.parseInt(ANGKAtemp); 13. 14. //memasukan angka KEDUA 15. ANGKAtemp = JOptionPane.showInputDialog("MASUKAN ANGKA KEDUA : "); 16. 17. //konversi angka KEDUA 18. B = Integer.parseInt(ANGKAtemp); PBO/Java/Ayuliana/Feb2009 3 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. //memasukan angka KETIGA ANGKAtemp = JOptionPane.showInputDialog("MASUKAN ANGKA KETIGA : "); //konversi angka KETIGA C = Integer.parseInt(ANGKAtemp); //Block if mencari nilai maksimum if ( A>B ){ if ( A>C ) Maks = A; else Maks = C; } else { if ( B>C ) Maks = B; else Maks = C; } //Block if mencari nilai minimum if ( A<B ){ if ( A<C ) Min = A; else Min = C; } else { if ( B<C ) Min = B; else Min = C; } AVG =(float) (A+B+C)/3; System.out.println("\nNilai Asal : "); System.out.println("\nA = " + A + ", B = " +B + ", C = "+ C); System.out.println("\nNilai Maksimum : "+ Maks); System.out.println("\nNilai Minimum : "+ Min); System.out.println("\nNilai Rata-rata : "+ AVG); } } Output : Nilai Asal : A = 10, B = 8, C = 11 Nilai Maksimum : 11 Nilai Minimum : 8 Nilai Rata-rata : 9.666667 PERINTAH SWITCH Perintah switch meng-evaluasi ekspresi integer dan meng-eksekusi case yang sesuai, format penulisan: switch (integer_expression) { case integer_ expression: statement(s); break; ... default: statement(s); } PBO/Java/Ayuliana/Feb2009 4 Contoh : 1. import javax.swing.JOptionPane; 2. class switchBuah{ 3. public static void main (String Args[]){ 4. String Pilih; 5. int PILIH; 6. Pilih = JOptionPane.showInputDialog("----MENU BUAH----\n\n1. APEL 7. \n2. MANGGA\n3. JERUK\n\nPilihan Anda [1-3] : "); 8. 9. PILIH = Integer.parseInt(Pilih); 10. switch(PILIH){ 11. case 1 : System.out.print("\n\nANDA PILIH APEL"); break; 12. case 2 : System.out.print("\n\nANDA PILIH MANGGA"); break; 13. case 3 : System.out.print("\n\nANDA PILIH JERUK"); break; 14. default : System.out.print("\n\nANDA SALAH INPUT..."); 15. } 16. } 17. } Output : Jika inputDialog di isi 1 : maka akan tampil ANDA PILIH APEL Jika inputDialog di isi 2 : maka akan tampil ANDA PILIH MANGGA Jika inputDialog di isi 3 : maka akan tampil ANDA PILIH JERUK Jika inputDialog di isi selain 1-3 : maka akan tampil ANDA SALAH INPUT COBA penggalan program berikut Apa yang akan ditampilkan jika perintah baris 11-14 diatas diganti menjadi : case 1 : case 2 : System.out.print("\n\nANDA PILIH MANGGA"); break; case 3 : System.out.print("\n\nANDA PILIH JERUK"); break; default : System.out.print("\n\nANDA SALAH INPUT..."); Apa yang akan ditampilkan jika perintah baris 11-14 diatas diganti menjadi : default : System.out.print("\n\nANDA SALAH INPUT..."); case 1 : case 2 : System.out.print("\n\nANDA PILIH MANGGA"); break; case 3 : System.out.print("\n\nANDA PILIH JERUK"); break; Apa yang akan ditampilkan jika perintah baris 11-14 diatas diganti menjadi : default : System.out.print("\n\nANDA SALAH INPUT...");break case 2 : System.out.print("\n\nANDA PILIH MANGGA"); break; case 1 : System.out.print("\n\nANDA PILIH APEL"); break; case 3 : System.out.print("\n\nANDA PILIH JERUK"); break; APA YANG DAPAT ANDA SIMPULKAN DARI PERCOBAAN DIATAS!!! PBO/Java/Ayuliana/Feb2009 5 PERINTAH PERULANGAN Dalam bahasa Java terdapat 3 perintah yang dapat digunakan untuk alur perulangan, yaitu while, do...while, dan for. PERINTAH while Perintah while, akan terus melakukan eksekusi sebuah perintah maupun 1 blok perintah, jika ekspresi boolean bernilai TRUE. Ekspresi dievaluasi diawal loop, sehingga loop akan dilaksanakan 0 kali jika kondisi SALAH. Format penulisan : while (boolean expression) { statement(s); } contoh : 1. class while01{ 2. public static void main (String Args[]){ 3. int Angka=1; 4. while(Angka < 10) 5. System.out.print(Angka++ + "\t"); 6. } 7. } Output : 1 2 3 4 5 6 7 8 9 PERINTAH do...while Perintah do-while, akan terus melakukan eksekusi sebuah perintah maupun 1 blok perintah, jika ekspresi boolean bernilai TRUE. Ekspresi dievaluasi diakhir loop, sehingga loop akan dilaksanakan sedikitnya 1 kali jika kondisi SALAH. Format penulisan : do { statement(s); } while (expression); contoh : 1. class dowhile01{ 2. public static void main (String Args[]){ 3. int Angka=1; 4. do { 5. System.out.print(Angka++ + "\t"); 6. } while(Angka < 10); 7. } 8. } PERINTAH for Perintah for, akan terus melakukan eksekusi sebuah perintah maupun 1 blok perintah, memenuhi kondisi. Perintah for menyertakan inisialisasi, kondisi terminasi dan iterasi, dengan format penulisan : for (initialization ; termination ; increment) { statement(s); } Contoh : 1. class dowhile01{ 2. public static void main (String Args[]){int Angka=1; 3. int Angka; 4. for(Angka=1;Angka<10;Angka++) 5. System.out.print(Angka+"\t"); 6. } 7. } PBO/Java/Ayuliana/Feb2009 6 PERINTAH PERCABANGAN Terdapat beberapa perintah yang mengakibatkan percabangan di dalam bahasa java, yaitu pengunaan perintah berlabel, perintah break, perintah continue, dan perintah return. PERINTAH break Terdapat 2 bentuk perintah break, break berlabel dan break tidak berlabel. Perintah break tanpa label digunakan untuk mengakhiri blok switch, for, while, or do-while terdalam, dengan format penulisan : break; Perintah break berlabel digunakan untuk mengakhiri blok switch, for, while, or do-while yang disebutkan pada label : break label; contoh : 1. class BreakWithLabelDemo { 2. public static void main(String[] args) { 3. int i,j; 4. cetak: 5. for (i = 0; i < 3; i++) { 6. for(j=0 ; j < 3; j++){ 7. System.out.println("I = " + i +", J = " + j + " Bahasa JAVA"); 8. if (j==1) break cetak; 9. } 10. } 11. System.out.println("\nSELESAI"); 12. } 13. } Output : I = 0, J=0 BAHASA JAVA I = 0, J=1 BAHASA JAVA SELESAI PERTANYAAN : Apa yang terjadi jika kata ”cetak” pada baris delapan dihapuskan??? Bagaimana hasil keluarannya ??? PERINTAH continue Terdapat 2 bentuk perintah continue, continue berlabel dan continue tidak berlabel, Perintah continue tidak berlabel akan mengabaikan perintah sampai dengan akhir dari loop terdalam saat itu dan melanjutkan serta menyelesaikan looping berukutnya : continue; contoh continue tidak berlabel : 1. class continue01{ 2. public static void main (String Args[]){ 3. int Angka; 4. for(Angka=1;Angka<10;Angka++) { 5. if (Angka==5) continue; 6. System.out.print(Angka+"\t"); 7. } 8. } 9. } Output : 1 PBO/Java/Ayuliana/Feb2009 2 3 4 6 7 8 9 7 Perintah continue berlabel digunakan untuk mengakhiri iterasi saat itu dari suatu label : continue label; contoh continue berlabel : 1. class ContinueWithLabelDemo { 2. public static void main(String[] args) { 3. int i,j; 4. cetak: 5. for (i = 0; i < 3; i++) { 6. for(j=0 ; j < 3; j++){ 7. System.out.println("I = " + i +", J = " + j + " Bahasa JAVA"); 8. if (j==1) continue cetak; 9. } 10. } 11. System.out.println("\nSELESAI"); 12. } 13. } Output : I = 0, J=0 I = 0, J=1 I = 1, J=0 I = 1, J=1 I = 2, J=0 I = 2, J=1 BAHASA JAVA BAHASA JAVA BAHASA JAVA BAHASA JAVA BAHASA JAVA BAHASA JAVA SELESAI PERINTAH return Perintah return digunakan untuk mengakhiri metode yang sedang digunakan, dan alur kontrol program akan kembali ke method pemanggilnya. Perintah return mempunyai 2 bentuk, return dengan mengembalikan nilai dan return tidak mengembalikan : return; Perintah return dapat digunakan untuk mengembalikan nilai ke metode pemanggilnya dan nilai yang dikembalikan harus mempunyai format yang sama dengan type method yang dideklarasikan. format penulisan : return value; PBO/Java/Ayuliana/Feb2009 8