Jawaban soal UTS PJJ PBO
@Tessy Badriyah, 21 April 2007
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) Jawaban : public class Ganjil { public static void main(String [] args) { int i; for (i=0; i<20; i++) { if ((i%2)>0) System.out.print(i + " "); } } } public class Ganjil { public static void main(String [] args) { int i=0; while (i<20) { if ((i%2)>0) System.out.print(i + " "); i++; } } } public class Ganjil { public static void main(String [] args) { 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 Amin Budi Candra
UTS 67 78 56
UAS 78 90 67
Tugas 89 87 70
Jawaban soal UTS PJJ PBO
@Tessy Badriyah, 21 April 2007
Jawaban : public class Nilai { public static void main(String [] args) { 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 ? public class Test { public static void main(String args []) { int a = 12; int b = 012; int c = 0x12; System.out.println(a); System.out.println(b); System.out.println(c); } }
Jawaban : 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 ! public class Test { public static void main(String args []) { short s = 9; int i=10; float f=11.1f; double d=12.2; s = i; d = f; i = d; } }
Jawaban : Prinsip : widening (tipe data variabel di sebelah kiri harus memiliki range (jangkauan) yang lebih luas daripada tipe data variabel di sebelah kanannya.
Jawaban soal UTS PJJ PBO
@Tessy Badriyah, 21 April 2007
Pembetulan : public class Test { public static void main(String args []) { 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 ? public class Test { public static void main(String args []) { int bil=1, j=0, temp, i; for (i=0; i<5; i++) { temp = i % 2; switch (temp) { case 0 : j=j+bil++; break; case 1 : j=j+ (++bil); break; } } System.out.println(j); } }
Jawaban : 17
6. Untuk program-program di bawah ini, berikan penjelasan dan tebaklah outputnya ! a.
b.
public class ShortAnd { public static void main(String args[] ) { int a=5, b=7; if ((a<2) && (b++<10)) b+=2; System.out.println(b); } } public class ShortOr { public static void main(String args[] ) { int a=5, b=7; if ((a<2) || (b++<10)) b+=2; System.out.println(b); } }
Jawaban : Output dari soal 6a. 7
c.
d.
public class Complement { public static void main(String args[] ) { int i; i=~7; System.out.println(i); } } public class LeftShift { public static void main(String args[] ) { int i=3; i = i << 2; System.out.println(i); } }
6b. 10
6c. -8
6d. 12
Jawaban soal UTS PJJ PBO
@Tessy Badriyah, 21 April 2007
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 Jawaban : public class Konversi { public static void main(String [] args) { 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 ! Jawaban : public class Fibonacci { public static void main(String args []) { int n = 9; // Program Fibonacci int i; int fibo[]; fibo=new int [10];
Jawaban soal UTS PJJ PBO
@Tessy Badriyah, 21 April 2007
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; break; case 2 : i+=5; break; default : i+=10; } System.out.println(i); } }
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; } System.out.println(i); } }
Jawaban : 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
Jawaban soal UTS PJJ PBO
@Tessy Badriyah, 21 April 2007
Jawaban : 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 { public static void main(String [] args) { Mahasiswa siswa = new Mahasiswa(123,"SAYA"); System.out.println("NRP = "+siswa.getNRP()); System.out.println("Nama = "+siswa.getNama()); } }