PEMBAHASAN UJIAN TENGAH SEMESTER PEMROGRAMAN BERBASIS OBYEK Dosen : Tim Dosen PBO 1. Buat program untuk menampilkan bilangan ganjil yang lebih kecil dari 20 menggunakan : a. For b. While atau do while (pilih salah satu) public class Ganjil { int i; for (i=0; i<20; i++) { if ((i%2)>0) System.out.print(i + " "); public class Ganjil { int i=0; while (i<20) { if ((i%2)>0) System.out.print(i + " "); i++; public class Ganjil { int i=0; do { if ((i%2)>0) System.out.print(i + " "); i++; while (i<20); 2. Dengan menggunakan array 2 dimensi, buatlah program yang menghitung nilai akhir dari 3 mahasiswa dengan aturan : Na = 0.35*UTS + 0.45*UAS + 0.2*Tugas; Nama UTS UAS Tugas Amin 67 78 89 Budi 78 90 87 Candra 56 67 70
public class Nilai { String nama[]={"amin", "Budi", "Candra"; double uts[]={67,78,56, uas[]={78,90,67, tugas[]={89,87,70, NA; for (int i=0; i<3; i++) { NA=0.35*uts[i] + 0.45*uas[i] + 0.2*tugas[i]; System.out.println("Nilai angka "+nama[i]+" = "+NA); 3. Jelaskan program di bawah ini dan bagaimana outputnya? int a = 12; int b = 012; int c = 0x12; System.out.println(a); System.out.println(b); System.out.println(c); Output variabel a, b dan c : 12 => bilangan desimal 10 => bilangan octal karena dimulai dengan 0 18 => bilangan hexa karena dimulai dengan 0x 4. Apa yang terjadi jika program ini dijalankan? Jika terjadi error betulkan! short s = 9; int i=10; float f=11.1f; double d=12.2; s = i; d = f; i = d; Prinsip : widening (tipe data variabel di sebelah kiri harus memiliki range (jangkauan) yang lebih luas daripada tipe data variabel di sebelah kanannya.
Pembetulan : short s = 9; int i=10; float f=11.1f; double d=12.2; s = (short) i; d = f; i = (int) d; 5. Apa hasil compile dan eksekusi program dibawah ini? int bil=1, j=0, temp, i; for (i=0; i<5; i++) { temp = i % 2; switch (temp) { case 0 : j=j+bil++; case 1 : j=j+ (++bil); System.out.println(j); 17 6. Untuk program-program di bawah ini, berikan penjelasan dan tebaklah outputnya! a. public class ShortAnd { int a=5, b=7; if ((a<2) && (b++<10)) b+=2; System.out.println(b); b. public class ShortOr { int a=5, b=7; if ((a<2) (b++<10)) b+=2; System.out.println(b); c. public class Complement { int i; i=~7; d. public class LeftShift { int i=3; i = i << 2; Output dari soal 6a. 7 6b. 10 6c. -8 6d. 12
7. Buat program Java untuk menampilkan konversi nilai angka ke nilai huruf berdasarkan range nilai di bawah dengan menggunakan statement else if Range Nilai A : 81 100 AB : 71 80 B : 66 70 BC : 61 65 C : 56 60 D : 41 55 E : 0 40 public class Konversi { int NA; String NH; NA=78; if (NA>80) NH="A"; else if (NA>70) NH="AB"; else if (NA>65) NH="B"; else if (NA>60) NH="BC"; else if (NA>55) NH="C"; else if (NA>40) NH="D"; else NH="E"; System.out.println("Nilai angka = "+NA); System.out.println("Nilai huruf = "+NH); 8. Buat program dengan menggunakan array untuk menghitung bilangan Fibonacci tentukan n=9 (Bilangan Fibonacci adalah bilangan yang menjumlahkan 2 bilangan sebelumnya! public class Fibonacci { int n = 9; // Program Fibonacci int i; int fibo[]; fibo=new int [10];
fibo[1]=1; fibo[2]=1; for (i=3; i<10; i++) fibo[i]=fibo[i-1]+fibo[i-2]; System.out.println("Bilangan Fibonacci suku ke-1 sampai 9 :"); for (i=1; i<10; i++) System.out.print(fibo[i]+" "); 9. Jelaskan perbedaan 2 program di bawah ini dan tebaklah masing-masing outputnya! public class Switch1 { public static void main(string args[]) { int i = 2; switch (i) { case 1 : i+=3; case 2 : i+=5; default : i+=10; public class Switch2 { public static void main(string args[]) { int i = 2; switch (i) { case 1 : i+=3; case 2 : i+=5; default : i+=10; Pada program sebelah kiri, setelah mengerjakan statement yang ada di case 2, dan karena diakhiri dengan perintah break maka keluar dari switch dan langsung mencetak nilai variabel i. outputnya 7. Pada program sebelah kanan, karena setelah mengerjakan statement yang ada di case 2, di dalamnya tidak diberi perintah break maka akan melanjutkan ke statement berikutnya (yaitu default) sehingga outputnya 17. 10. Implementasikan UML class diagram di bawah ini ke dalam program untuk class Mahasiswa Mahasiswa -nrp : int -nama : String + Mahasiswa(i : int, String n) + getnrp() : int + getnama() : String
public class Mahasiswa { public int nrp; public String nama; public Mahasiswa(int i, String n) { this.nrp=i; this.nama=n; public int getnrp() { return nrp; public String getnama() { return nama; class TesMahasiswa { Mahasiswa siswa = new Mahasiswa(123,"SAYA"); System.out.println("NRP = "+siswa.getnrp()); System.out.println("Nama = "+siswa.getnama());