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 Operan1 + Operan2 Operan1 * Operan2 Operan1 / Operan2 Operan1 % Operan2
-
Operan1 - Operan2
Deskripsi Menambahkan Operan1 dengan Operan2 Mengalikan Operan1 dengan Operan2 Membagi Operan1 dengan Operan2 Menghitung sisa pembagian Operan1 dengan Operan2 Mengurangkann Operan2 dari Operan1
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 Operan++
++
++Operan
--
Operan--
--
--Operan
Deskripsi
Menambahkan operan dengan1, evaluasi ke nilai dari operan sebelum ia ditambahkan Menambahkan operan dengan 1, evaluasi ke nilai dari operan sesudah ia ditambahkan Mengurangi operan dengan 1, evaluasi ke nilai dari operan sebelum ia ditambahkan 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
>
Operan1>Operan2
>=
Operan1>=Operan2
Deskripsi
Operan1 adalah lebih besar dari operan2 Operan1 adalah lebih besar atau sama dengan operan2 12
Operator
Penggunaan
<
Operan1
<=
Operan1<=Operan2
== !=
Operan1==Operan2 Operan1 != Operan2
Deskripsi
Operan1 adalah lebih kecil dari operan2 Operan1 adalah lebih kecil atau sama dengan operan2 Opera1 adalah sama dengan operan2 Opera1 tidak sama dengan operan2
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 xl operan x2 dimana xl, x2 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
TRUE FALSE
Hasil
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 Source-code Java dibawah ini mendemonstrasikan penggunaan 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. 42. 43. 44. 45.
System.out.println("Tipe campuran..."); System.out.println(" j + y = "+(j + y)); System.out.println(" i * x = "+(i * x)); } }
5.2 Operator Relasi Source-code Java dibawah ini mendemonstrasikan penggunaan 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. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46.
//sama dengan System.out.println("Sama dengan ..."); System.out.println(" i == j = " + (i == j)); System.out.println(" k == j = " + (k == j)); //tidak sama dengan System.out.println("Tidak sama dengan ..."); System.out.println(" i != j = " + (i != j)); System.out.println(" k != j = " + (k != j)); } }
5.3 Operator Logika And Source-code Java dibawah ini mendemonstrasikan penggunaan operator logika AND. Ketiklah dan coba fahami hasilnya. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
public class TestAND { public static void main( String[] args ){ int i = 0; int j = 10; boolean test= false; //demonstrasi && test = (i > 10) && (j++ > 9); System.out.println(i); System.out.println(j); System.out.println(test); //demonstrasi & test = (i > 10) & (j++ > 9); System.out.println(i); System.out.println(j); System.out.println(test); } }
5.4 Operator Logika Or Source-code Java dibawah ini mendemonstrasikan penggunaan 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 Source-code Java dibawah ini mendemonstrasikan penggunaan 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 Source-code Java dibawah ini mendemonstrasikan penggunaan 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) b) c) d) e) f)
2.
a/b; x/y; a/b*y; a%b*y; a*y /b; x/b*a;
g) h) i) j) k) l)
a/x; (a-1)/n; (a-1.0)/b; a/(b+1); a/(b+1.0); (x+y)/a/b;
g) h) i) j) k) l)
b=2*a++; b=2*++a; b=78a*(3+a); y=a; y=(6+a)%3/2; b=(x+a)*2;
int a=2, b; double x=2.0, y; a) b) c) d) e) f)
b=2*a; b=a/4; b=2*a/4; b=a*3.0; b=x; y=5/a;
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