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) { 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) { else { 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. } Bilangan Genap SELESAI 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
Bilangan Genap SELESAI Perintah if...else if... mempunyai format penulisan : if (boolean expression) { else if (boolean expression) { else if (boolean expression) { else { 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. } 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
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) { else {... else{ else { 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. //memasukan angka KETIGA 20. ANGKAtemp = JOptionPane.showInputDialog("MASUKAN ANGKA KETIGA : "); 21. 22. //konversi angka KETIGA 23. C = Integer.parseInt(ANGKAtemp); 24. 25. //Block if mencari nilai maksimum 26. if ( A>B ){ 27. if ( A>C ) Maks = A; 28. else Maks = C; } 29. else { 30. if ( B>C ) Maks = B; 31. else Maks = C; } 32. 33. //Block if mencari nilai minimum 34. if ( A<B ){ 35. if ( A<C ) Min = A; 36. else Min = C; } 37. else { 38. if ( B<C ) Min = B; 39. else Min = C; } 40. 41. AVG =(float) (A+B+C)/3; 42. System.out.println("\nNilai Asal : "); 43. System.out.println("\nA = " + A + ", B = " +B + ", C = "+ C); 44. System.out.println("\nNilai Maksimum : "+ Maks); 45. System.out.println("\nNilai Minimum : "+ Min); 46. System.out.println("\nNilai Rata-rata : "+ AVG); 47. } } 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: default: } break;... 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. } 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 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; Jika inputdialog di isi selain 1-3 : maka akan tampil ANDA SALAH INPUT 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) { } 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. } 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 { } while (expression); 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) { } 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; 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. } 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. } 1 2 3 4 6 7 8 9 PBO/Java/Ayuliana/Feb2009 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. } I = 0, J=0 BAHASA JAVA I = 0, J=1 BAHASA JAVA I = 1, J=0 BAHASA JAVA I = 1, J=1 BAHASA JAVA I = 2, J=0 BAHASA JAVA I = 2, J=1 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