Modul Praktikum 2 Pemograman Berorientasi Objek 1. Judul : Dasar Pemrograman Java (Operator) 2. Tujuan Percobaan : Diakhir praktikum, mahasiswa diharapkan mampu : Memahami penggunaan operator-operator di pemrograman Java Memahami hierarki/prioritas operator-operator di pemrograman Java Mampu menggunakan operador-operator di pemrograman Java. 3. Teori Singkat Pada pemograman Java, ada beberapa tipe operator. Ada operator aritmatika, operator relasi, operator logika, dan operator kondisional. Operator ini mengikuti aturan-aturan prioritas yang telah ditentukan oleh compiler Java. 3.1 Operator Aritmatika Berikut ini adalah operator-operator aritmatika yang dapat digunakan untuk membuat suatu program Java: Tabel 1. Operator Aritmatika Operator Penggunaan Deskripsi + Operan 1 + Operan 2 Menambahkan Operan 1 dengan Operan 2 * Operan 1 * Operan 2 Mengalikan Operan 1 dengan Operan 2 / Operan 1 / Operan 2 Membagi Operan 1 dengan Operan 2 % Operan 1 % Operan 2 Menghitung sisa pembagian Operan 1 dengan Operan 2 - Operan 1 - Operan 2 Mengurangkann Operan 2 dari Operan 1 Catatan: Bila integer dan bilangan flooting-point digunakan sebagai operan untuk operasi aritmatika tunggal, hasilnya berupa floating 11
point. Operator *, / dan % memiliki prioritas yang sama dan lebih tinggi dari operator * dan -. Jika tingkatan operator adalah sama maka eksekusi program dilakukan dari arah kiri ke kanan. Operator Increment dan Decrement Java juga memiliki operator unary increment (++) dan operator unary decrement (--). Operator increment dan decrement menambah dan mengurangi nilai yang tersimpan dalam bentuk variabel angka terhadap nilai 1. Operator increment dan decrement dapat dilakukan sebelum atau sesudah operan. Tabel 2. Operator increment dan decrement Operator Penggunaan Deskripsi ++ Operan++ Menambahkan operan dengan1, evaluasi ke nilai dari operan sebelum ia ditambahkan ++ ++Operan Menambahkan operan dengan 1, evaluasi ke nilai dari operan sesudah ia ditambahkan -- Operan-- Mengurangi operan dengan 1, evaluasi ke nilai dari operan sebelum ia ditambahkan -- --Operan Mengurangi operan dengan 1, evaluasi ke nilai dari operan sesudah ia ditambahkan 3.2 Operator Relasi Operator Relasi membandingkan dua nilai dan menentukan keterhubungan diantara nilai-nilai tersebut. Hasil keluarannya berupa nilai boolean yaitu true atau false. Tabel 3. Operator relasi Operator Penggunaan Deskripsi > Operan 1 >Operan 2 Operan 1 adalah lebih besar dari operan 2 >= Operan 1 >=Operan 2 Operan 1 adalah lebih besar atau sama dengan operan 2 12
Operator Penggunaan Deskripsi < Operan 1 <Operan 2 Operan 1 adalah lebih kecil dari operan 2 <= Operan 1 <=Operan 2 Operan 1 adalah lebih kecil atau sama dengan operan 2 == Operan 1 ==Operan 2 Opera 1 adalah sama dengan operan 2!= Operan 1!= Operan 2 Opera 1 tidak sama dengan operan 2 3.3 Operator logika Operator logika memiliki satu atau lebih operan boolean yang menghasilkan nilai boolean. Ada enam operator logika yaitu: && (logika AND), & (boolean logika AND), (logika OR), (boolean logika inclusive OR), ^ (boolean logika exclusive OR), dan! (logika NOT). Pernyataan dasar untuk operasi logika adalah x l operan x 2 dimana x l, x 2 dapat menjadi pernyataan boolean. 1. (logika AND) dan & (boolean logika AND) Berikut ini adalah tabel kebenaran untuk && dan &: Tabel 4. Tabel kebenaran untuk && dan & X1 X2 Hasil TRUE TRUE TRUE TRUE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE Perbedaan dasar antara operator && dan & adalah bahwa && mendukung evaluasi sebagian (short-circuit evaluations), sementara operator & tidak 2. (logika OR) dan (boolean logika inclusive OR) Berikut ini adalah tabel kebenaran untuk dan : Tabel 5. Tabel kebenaran untuk dan X1 X2 Hasil TRUE TRUE TRUE TRUE FALSE TRUE FALSE TRUE TRUE FALSE FALSE FALSE 13
Perbedaan dasar antara operator dan adalah bahwa mendukung proses evaluasi sebagian (short-circuit evaluations), sementara tidak. 3. ^ (boolean logika Exclusive OR ) Berikut ini adalah tabel kebenaran untuk ^: Tabel 6. Tabel kebenaran untuk ^ X1 X2 Hasil TRUE TRUE FALSE TRUE FALSE TRUE FALSE TRUE TRUE FALSE FALSE FALSE 4.! (logika NOT) Logika NOT digunakan dalam satu argumen, dimana argumen tersebut dapat menjadi suatu pernyataan, variabel atau konstanta. Berikut ini adalah tabel kebenaran untuk operator not!: Tabel 7. Tabel kebenaran untuk! X1 Hasil TRUE FALSE FALSE TRUE 3.4 Operator Kondisional (?:) Operator kondisional?: adalah operator ternary. Hal ini berarti bahwa operator ini digunakan dalam tiga bentuk pernyataan kondisional argument yang digunakan bersama-sama. Struktur pernyataan yang menggunakan operator kondisional adalah Ekspresi1?Ekspresi2:Ekspresi3 dimana nilai ekspresi1 adalah suatu pernyataan boolean yang memiliki hasil yang salah satunva harus berupa nilai true atau false. Jika ekspresi1 bernilai true maka ekspresi2 merupakan hasil operasi. Jika ekspresi1 bernilai false maka ekspresi3 merupakan hasil operasi. 4. Alat dan Bahan PC dengan sistem operasi Windows dan Java compiler. 14
5. Prosedur Percobaan 5.1 Operator Aritmatika operator aritmatika. Ketiklah dan coba fahami hasilnya. 1. public class aritmatikademo { 2. public static void main(string[] args) { 3. //sedikit angka 4. int i = 37; 5. int j = 42; 6. double x = 27.475; 7. double y = 7.22; 8. 9. System.out.println("Nilai variabel..."); 10. System.out.println(" i = " + i); 11. System.out.println(" j = " + j); 12. System.out.println(" x = " + x); 13. System.out.println(" y = " + y); 14. 15. //penjumlahan angka 16. System.out.println("Penjumlahan..."); 17. System.out.println(" i + j = "+(i + j)); 18. System.out.println(" x + y = "+(x + y)); 19. 20. //pengurangan angka 21. System.out.println("Pengurangan..."); 22. System.out.println(" i - j = "+(i - j)); 23. System.out.println(" x - y = "+(x - y)); 24. 25. //perkalian angka 26. System.out.println("Perkalian..."); 27. System.out.println(" i * j = "+(i * j)); 28. System.out.println(" x * y = "+(x * y)); 29. 30. //pembagian angka 31. System.out.println("Pembagian..."); 32. System.out.println(" i / j = "+(i / j)); 33. System.out.println(" x / y = "+(x / y)); 34. 35. //menghitung hasil modulus dari pembagian 36. System.out.println("Modulus..."); 37. System.out.println(" i % j = "+(i % j)); 38. System.out.println(" x % y = "+(x % y)); 39. //tipe penggabungan 40. 15
41. System.out.println("Tipe campuran..."); 42. System.out.println(" j + y = "+(j + y)); 43. System.out.println(" i * x = "+(i * x)); 44. } 45. } 5.2 Operator Relasi operator relasi. Ketiklah dan coba fahami hasilnya. 1. public class RelasiDemo { 2. public static void main(string[] args) { 3. //a few numbers 4. int i = 37; 5. int j = 42; 6. int k = 42; 7. System.out.println("Variable values..."); 8. System.out.println(" i = " + i); 9. System.out.println(" j = " + j); 10. System.out.println(" k = " + k); 11. 12. //lebih besar dari 13. System.out.println("Lebih besar dari..."); 14. System.out.println(" i > j = " + (i > j)); 15. System.out.println(" j > i = " + (j > i)); 16. System.out.println(" k > j = " + (k > j)); 17. 18. //lebih besar atau sama dengan 19. System.out.println("Lebih besar atau sama ); 20. System.out.println(" i >= j = " + (i >= j)); 21. System.out.println(" j >= i = " + (j >= i)); 22. System.out.println(" k >= j = " + (k >= j)); 23. 24. //lebih kecil dari 25. System.out.println("Lebih kecil dari..."); 26. System.out.println(" i < j = " + (i < j)); 27. System.out.println(" j < i = " + (j < i)); 28. System.out.println(" k < j = " + (k < j)); 29. 30. //lebih kecil atau sama dengan 31. System.out.println("Lebih kecil atau sama"); 32. System.out.println(" i <= j = " + (i <= j)); 33. System.out.println(" j <= i = " + (j <= i)); 34. System.out.println(" k <= j = " + (k <= j)); 35. 16
36. //sama dengan 37. System.out.println("Sama dengan..."); 38. System.out.println(" i == j = " + (i == j)); 39. System.out.println(" k == j = " + (k == j)); 40. 41. //tidak sama dengan 42. System.out.println("Tidak sama dengan..."); 43. System.out.println(" i!= j = " + (i!= j)); 44. System.out.println(" k!= j = " + (k!= j)); 45. } 46. } 5.3 Operator Logika And operator logika AND. Ketiklah dan coba fahami hasilnya. 1. public class TestAND { 2. public static void main( String[] args ){ 3. int i = 0; 4. int j = 10; 5. boolean test= false; 6. 7. //demonstrasi && 8. test = (i > 10) && (j++ > 9); 9. System.out.println(i); 10. System.out.println(j); 11. System.out.println(test); 12. 13. //demonstrasi & 14. test = (i > 10) & (j++ > 9); 15. System.out.println(i); 16. System.out.println(j); 17. System.out.println(test); 18. } 19. } 5.4 Operator Logika Or operator logika OR. Ketiklah dan coba fahami hasilnya. 1. public class TestOR { 2. public static void main( String[] args ){ 3. int i = 0; 17
4. int j = 10; 5. boolean test= false; 6. 7. //demonstrasi 8. test = (i < 10) (j++ > 9); 9. System.out.println(i); 10. System.out.println(j); 11. System.out.println(test); 12. 13. //demonstrasi 14. test = (i < 10) (j++ > 9); 15. System.out.println(i); 16. System.out.println(j); 17. System.out.println(test); 18. } 19. } 5.5 Operator Logika Xor operator logika XOR. Ketiklah dan coba fahami hasilnya. 1. public class TestXOR { 2. public static void main( String[] args ){ 3. boolean val1 = true; 4. boolean val2 = true; 5. System.out.println(val1^val2); 6. val1 = false; 7. val2 = true; 8. System.out.println(val1^val2); 9. val1 = false; 10. val2 = false; 11. System.out.println(val1^val2); 12. val1 = true; 13. System.out.println(val1^val2); 14. } 15. } 5.4 Operator Kondisional operator kondisional. Ketiklah dan coba fahami hasilnya. 18
1. public class kondisioperator { 2. public static void main( String[] args ){ 3. String status = ""; 4. int grade = 80; 5. //mendapatkan status pelajar 6. status = (grade >= 60)?"Passed":"Fail"; 7. //print status 8. System.out.println( status ); 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. 7. Tugas Tuliskan hasil dari compiler Java untuk deklarasi/pernyataan berikut ini. Sebelumnya, cobalah menuliskan hasilnya dengan pemikiran anda sendiri tanpa menggunakan compiler. 1. int a=2, b=5; double x=2.0, y=5.0; a) a/b; g) a/x; b) x/y; h) (a-1)/n; c) a/b*y; i) (a-1.0)/b; d) a%b*y; j) a/(b+1); e) a*y /b; k) a/(b+1.0); f) x/b*a; l) (x+y)/a/b; 2. int a=2, b; double x=2.0, y; a) b=2*a; g) b=2*a ++ ; b) b=a/4; h) b=2* ++ a; c) b=2*a/4; i) b=78a*(3+a); d) b=a*3.0; j) y=a; e) b=x; k) y=(6+a)%3/2; f) y=5/a; l) b=(x+a)*2; 19
3. Apa output dari penggalan program berikut ini: a. int x=1,y; if (x>5) y=16; else if (x>6) y=25; else y=23; S.O.Pl(" Y= " +y); b. int x=7,y; if (x>5) y=16; if (x>6) y=25; else y=23; S.O.Pl("Y = " +y); c. int x=1,y; while(x<10) S.O.Pl("X = "+x); d. for(int x=o; x<2;x++) {S.O.Pl("X = "+x); } S.O.Pl("X = "+x); 20