Modul Praktikum 3 Pemograman Berorientasi Objek 1. Judul : Kontrol Keputusan dan Pengulangan
2. Tujuan Percobaan : Diakhir praktikum, mahasiswa diharapkan mampu : • Menggunakan struktur kontrol keputusan (if, else, switch) yang digunakan untuk memilih blok kode yang akan dieksekusi • Menggunakan struktur kontrol pengulangan (while, do-while, for) yang digunakan untuk pengulangan pada blok kode yang akan dieksekusi • Menggunakan pernyataan percabangan (break, continue, return) yang digunakan untuk mengatur perpindahan dari program
3. Teori Singkat 3.1 Struktur Kontrol Keputusan Struktur kontrol keputusan adalah pernyataan dari Java yang mengijinkan user untuk memilih dan mengeksekusi blok kode dan mengabaikan blok kode yang lain. a. Pernyataan if Pernyataan-if menentukan apakah sebuah pernyataan ataupun sebuah blok kode akan dieksekusi. Sebuah pernyataan ataupun sebuah blok kode akan dieksekusi jika dan hanya jika ekspresi boolean bernilai true. Bentuk dari pernyataan if, if(ekspresi_boolean) pernyataan;
atau 21
if(ekspresi_boolean){ pernyataan1; pernyataan2; . . . }
dimana, ekspresi boolean adalah sebuah persyaratan boolean atau variabel boolean. Petunjuk Penulisan Program : 1. Express booleani pada pernyataan harus merupakan nilai boolean. Hal ini berarti persyaratan harus bernilai true atau false. 2. Masukkan pernyataan di dalam blok if. Contohnya, if(ekspresi_boolean){ //pernyataan1; //pernyataan2; }
b. Pernyataan if-else Pernyataan if-else digunakan apabila kita ingin mengeksekusi sebuah pernyataan dengan kondisi true dan pernyataan yang lain dengan kondisi false. Bentuk pernyataan if-else, if(ekspresi_boolean) pernyataan; else pernyataan;
dapat juga ditulis seperti, if(ekspresi_boolean){ pernyataan1; pernyataan2; . . . } else{ pernyataan1; pernyataan2; . . .
22
}
Petunjuk Penulisan Program : 1. Untuk menghindari kebingungan, selalu letakkan pernyataan di dalam blok if-else di dalam tanda {}, 2. Anda dapat memiliki blok if-else yang bersarang. Ini berarti anda dapat memiliki blok if-else yang lain di dalam blok if-else. Contohnya, if(ekspresi_boolean){ if(ekspresi_boolean){ . . . } } else{ . . . }
c. Pernyataan if-else-if Pernyataan pada bagian else dari blok if-else dapat menjadi struktur ifelse yang lain. Struktur seperti ini mengijinkan kita untuk membuat seleksi persyaratan yang lebih kompleks. Bentuk pernyataan if-else if adalah if(ekspresi_boolean1) pernyataan1; else if(ekspresi_boolean2) pernyataan2; else pernyataan3;
Bisa anda catat bahwa anda dapat memiliki banyak blok else-if sesudah pernyataan if. Blok else bersifat optional dan dapat dihilangkan. d. Pernyataan switch Cara lain untuk membuat percabangan adalah dengan menggunakan kata kunci switch.Dengan menggunakan switch kita bisa melakukan 23
percabangan dengan persyaratan yang beragam. Bentuk pernyataan switch adalah switch(ekspresi_switch){ case case_selector1: pernyataan1; // pernyataan2; //block 1 . . . // break; case case_selector2: pernyataan1; // pernyataan2; //block 2 . . . // break; . . . default: pernyataan1; // pernyataan2; //block n . . . // break; }
dimana, ekspresi_switch adalah persyaratan integer atau character dan case_selector1, case_selector2 dan seterusnya adalah konstanta nilai integer yang unik. Ketika pernyataan switch ditemukan, pertama kali Java memeriksa ekspresi_switch, dan meloncat ke case dan mencocokkan nilai yang sama dengan persyaratannya. Program mengeksekusi pernyataan dimulai dari atas sampai menemui pernyataan break, dan melewati pernyataan yang lain sampai akhir struktur switch. Jika tidak ditemui case yang cocok, maka program akan mengeksekusi blok default. Bisa anda catat bahwa blok default adalah optional. Sebuah pernyataan switch bisa tidak memiliki blok default.
24
Petunjuk Penulisan Program : 1. Menentukan penggunaan pernyataan if atau pernyataan switch adalah sebuah keputusan. Anda dapat menentukan yang mana yang akan dipakai berdasarkan kemudahan membaca program dan faktor-faktor yang lain. 2. Pernyataan if dapat digunakan untuk membuat keputusan berdasarkan rentang nilai tertentu atau kondisi tertentu, sedangkan pernyataan switch membuat keputusan hanya berdasarkan nilai unik dari integer atau character. 3.2 Struktur Kontrol Perulangan a. while loop Pernyataan while loop adalah pernyataan atau blok pernyataan yang diulang-ulang sampai mencapai kondisi yang cocok. Bentuk pernyataan while adalah while( ekspresi_boolean){ pernyataan1; pernyataan2; . . . }
Pernyataan di dalam while loop akan dieksekusi berulang-ulang selama ekspresi_boolean bernilai true. b. do-while loop Do-while loop mirip dengan while-loop. Pernyataan di dalam dowhile loop akan dieksekusi beberapa kali selama kondisi bernilai true. Perbedaan antara while dan do-while loop adalah dimana pernyataan di dalam do-while loop dieksekusi sedikitnya satu kali. Bentuk pernyataan do-while adalah do{ pernyataan1; pernyataan2;
25
. . . } while( ekspresi_boolean);
Pernyataan di dalam do-while loop akan dieksekusi pertama kali, dan dilakukan pengecekan kondisi dari boolean_ekspresi. Jika nilai tersebut belum mencapai nilai yang diinginkan, pernyataan akan dieksekusi lagi. Panduan pemrograman: 1. Kesalahan yang sering terjadi ketika pemrograman menggunakan do-while loop adalah lupa untuk menulis titik koma (;) setelah ekspresi while. do{ ... } while(boolean_ekspresi) //salah > tidak ada titik koma(;)
2. Seperti pada while loop, pastikan do-while loop anda berhenti pada suatu titik.
c. for loop Seperti pada struktur pengulangan sebelumnya yaitu melakukan pengulangan eksekusi code beberapa kali. Bentuk dari for loop adalah for (InitializationEkspresi; LoopCondition; StepEkspresi){ pernyataan1; pernyataan2; . . . }
26
dimana, InitializationEkspresi – inisialisasi dari variabel loop LoopCondition - membandingkan variabel loop pada nilai batas. StepEkspresi - melakukan update pada variabel loop.
3.3 Pernyataan Percabangan Pernyataan percabangan mengijinkan kita untuk mengatur jalannya eksekusi program. Java memberikan tiga bentuk percabangan pernyataans: break, continue dan return. a. Pernyataan break Pernyataan break memiliki dua bentuk: unlabeled dan labeled. Unlabeled menghentikan jalannya pernyataan switch. Anda bisa juga menggunakan bentuk unlabeled untuk menghentikan for, while atau do-while loop. Bentuk labeled dari pernyataan break akan menghentikan pernyataan luar, dimana diidentifikasikan berupa label pada pernyataan break. b. Pernyataan continue Pernyataan continue memiliki dua bentuk: unlabeled dan labeled. Anda dapat menggunakan pernyataan continue untuk melewati pengulangan dari for, while, atau do-while loop yang sedang berjalan. Bentuk unlabeled akan melewati akhir pernyataan pada bagian yang dalam dan memeriksa ekspresi boolean yang mengkontrol loop, pada dasarnya akan melewati bagian pengulangan pada loop. Bentuk labeled akan melanjutkan sebuah pernyataan dengan melewati pengulangan yang sedang berjalan dari loop terluar yang diberi label. c. Pernyataan return Pernyataan return digunakan untuk keluar dari sebuah fungsi (method). Pernyataan return memiliki dua bentuk: menggunakan sebuah nilai dan tidak memberikan nilai. Untuk memberikan sebuah 27
nilai, cukup berikan nilai (atau ekspresi yang menghasilkan sebuah nilai) sesudah return. Contohnya, return ++count;
atau return "Hello";
Tipe data dari nilai yang diberikan harus sama dengan tipe dari fungsi yang dideklarasikan. Ketika sebuah method void dideklariskan, gunakan bentuk return yang tidak memberikan nilai.
4. Alat dan Bahan PC dengan sistem operasi Windows dan Java compiler.
5. Prosedur Percobaan 5.1 Penggunaan if-else-if Source-code Java dibawah ini mendemonstrasikan penggunaan kontrol keputusan if. Ketiklah dan coba fahami hasilnya 1. public class GradeIF { 2. public static void main( String[] args ){ 3. double grade = 92.0; 4. if( grade >= 90 ){ 5. System.out.println( "Baik sekali!" ); 6. } 7. else if( (grade < 90) && (grade >= 80)){ 8. System.out.println("Baik!" ); 9. } 10. else if( (grade < 80) && (grade >= 60)){ 11. System.out.println("Belajarlah lebih keras!" ); 12. } 13. else{
28
14. 15. 16. 17.
System.out.println("Maaf, anda gagal."); } } }
5.2 Penggunaan switch-case Source-code Java dibawah ini mendemonstrasikan penggunaan kontrol keputusan swicth . Ketiklah dan coba fahami hasilnya 1. public class GradeSwicth { 2. public static void main( String[] args ){ 3. int grade = 92; 4. switch(grade){ 5. case 100: 6. System.out.println( "Baik sekali!" ); 7. break; 8. case 90: 9. System.out.println("Baik!" ); 10. break; 11. case 80: 12. System.out.println("Belajarlah lebih keras!" ); 13. break; 14. default: 15. System.out.println("Maaf, anda gagal."); 16. } 17. } 18. }
5.3 Penggunaan while Source-code Java dibawah ini mendemonstrasikan penggunaan kontrol loop while dan for. Ketiklah dan coba fahami hasilnya. Bandingkan hasil dari kedua class tersebut. 1. class WhileDemo { 2. public static void main(String[] args){ 3. int angka = 1; 4. while (angka < 11) {
29
5. System.out.println(angka); 6. angka++; 7. } 8. } 9. } 1. class ForDemo { 2. public static void main(String[] args){ 3. for(int i=1; i<11; i++){ 4. System.out.println(i); 5. } 6. } 7. }
5.4 Penggunaan for Source-code Java dibawah ini mendemonstrasikan penggunaan kontrol percabangan break. Ketiklah dan coba fahami hasilnya 1. class ContohBreak { 2. public static void main (String [] args) { 3. int n, c; 4. for (c=0;c<1000;c++){ 5. n = (int)(Math.random()*1000); 6. if (n==291) break; 7. } 8. System .out.println("Membutuhkan "+c+" percobaan"); 9. } 10. }
6. Analisis Hasil Percobaan Tulislahlah masing-masing output yang dihasilkan dari semua percobaan di atas. Catat semua error yang muncul selama percobaan dan coba analisa mengapa error tersebut muncul dan bagaimana mengatasinya. Bandingkan output yang anda peroleh dengan praktikan lainnya. 30
7. Tugas 1. Ambil tujuh nilai ujian dari user dan hitung nilai rata-rata dan standard deviasi dari nilai tersebut. Gunakan package mathFmipaUnsyiah untuk mendapat input dari user. 2. Ambil sebuah angka sebagai input dari user, dan outputnya berupa kata yang sesuai dengan angka. Angka yang dimasukkan antara 1-10 (1 <= angka <= 10).. Jika user memasukkan nilai yang tidak sesuai berikan output “Angka yang anda masukkan tidak benar”. a. Gunakan pernyataan if-else untuk menyelesaikan. b. Gunakan pernyataan switch untuk menyelesaikan. 3. Hitung pangkat sebuah nilai berdasarkan angka dan nilai pangkatnya. Angka untuk basisnya antara 2 – 5 (2 <= basis <= 5) dan untuk pangkatnya antara 1- 10 (1 <= pangkat <= 10). Buat tiga versi dari program ini menggunakan while loop, dowhile dan for-loop.
31