Lanjut
UTS Daring – Pilihan Ganda
Dosen : Bayu Rahayudi
Waktu : 75 menit
Sifat : Tutup Buku & Gadget
[ SOAL ]
1. Hubungan antar kelas yang paling kuat dari relasi berikut adalah:
a. Komposisi
b. Asosiasi
c. Agregasi
d. Enkapsulasi
e. Abstraksi
1 class Circle {
2 private double jarijari;
3 private final static double PI = 3.1415;
4 public Circle() { ... }
5 public Circle(int diameter) { ... }
6 public Circle(double jarijari) { ... }
7 public double getLuas() {
8 return (PI * jarijari * jarijari);
9 }
10 }
Class Circle memiliki 3 macam konstruktor yaitu, konstruktor tanpa parameter, konstruktor dengan
satu parameter integer, dan konstruktor dengan satu parameter double. Tentukan dari pilihan yang
ada, manakah syntax kode konstruktor yang paling tepat untuk masing-masing konstruktor tersebut.
Isi konstruktor yang tepat dengan 1 parameter integer yang dianggap sebagai diameter dari
lingkaran adalah:
a. public Circle(int diameter) {this.jarijari = 10;}
b. public Circle(int diameter){ jarijari = diameter * 2;}
c. public Circle(int diameter)
{this.jarijari = diameter;}
1
d. public Circle(int jarijari)
{this.jarijari = jarijari;}
e. public Circle(int diameter)
{jarijari = diameter / 2.0;}
a. public Circle()
{this.jarijari = 0;}
b. public Circle()
{this.jarijari = j;}
c. public Circle()
{this.jarijari = 10;}
d. public Circle()
{this(diameter);}
e. public Circle()
{this(jarijari);}
2
9
10 public setXY(int x1, int y1) {
11 x = x1;
12 y = y1;
13 }
14
15 public int getX() {
16 return x;
17 }
18
19
public int getY() {
20
return y;
21
}
}
Deklarasi untuk array of objects untuk menyimpan sejumlah titik yang benar adalah...
a. Titik [] arrTitik = new Titik;
b. Titik [] arrTitik = new Titik[3];
c. Titik arrTitik[] = new Titik();
d. Titik arrTitik[] = new Titik(3);
e. Titik arrTitik[] = new Titik arrTitik();
3
7. Perhatikan kode di bawah ini:
1 class PersegiPanjang {
2 private int panjang;
3 private int lebar;
4
5 public PersegiPanjang(int panjang, int lebar) {
6 this.panjang = panjang;p
7 this.lebar = lebar;
8 }
9
10 public int hitungLuas() {
11
return panjang*lebar;
12
}
13
}
Berdasarkan kode di atas, cara yang benar untuk instansiasi objek dari kelas tersebut melalui variabel
pp adalah...
a. PersegiPanjang pp;
b. PersegiPanjang pp = new PersegiPanjang();
c. PersegiPanjang pp = new PersegiPanjang(2,3);
d. PersegiPanjang pp = new PersegiPanjang(2);
e. Jawaban b dan c benar
1 class Circle {
2 private double jarijari;
3 private final static double PI = 3.1415;
4 public Circle() { ... }
5 public Circle(int diameter) { ... }
6 public Circle(double jarijari) { ... }
7 public double getLuas() {
8 return (PI * jarijari * jarijari);
9 }
10 }
11
12
class CobaCircle {
13
Circle C1 = new Circle();
14
System.out.println("Luas = " + C1.getLuas());
15
Circle C2 = new Circle(10);
16
4
17 System.out.println("Luas = " + C2.getLuas());
18 Circle C3 = new Circle(10.00);
19 System.out.println("Luas = " + C3.getLuas());
}
Sebuah kotak dapat dibuat hanya dengan mengetahui dua buah titik yaitu titik kiri atas dan kanan
bawah. Apabila p1 dan p2 diasumsikan sebagai koordinat kiri atas dan kanan bawah sebuah kotak,
maka method kotak dapat dideklarasikan sebagai berikut...
5
a. public kotak(Titik p1, Titik p2)
b. public void kotak(Titik p1, Titik p2, Titik p3)
c. public void kotak(Titik p1, Titik p2)
d. public void kotak(int p1, int p2)
e. public void kotak(Titik p1, int p2)
dalam soal dibilang kita perlu dua buah titik. Dalam titik terdapat int x yang adalah sumbu x dan int y
yang adalah sumbu y.
6
Jika deklarasi static pada baris 3 dihilangkan, apa yang akan ditampilkan dari hasil eksekusi baris 20
– 23?
a. 5511
b. 5 10 1 1
c. 5 10 2 2
d. 5 10 1 2
e. 10 10 2 2
Jika variabel static pada jumlah dihilangkan, maka nilai jml dari setiap objek (c1 dan c2) akan selalu
satu, tidak bertambah.
1 class PersegiPanjang{
2 private int panjang;
3 private int lebar;
4
5 public PersegiPanjang(int panjang, int lebar) {
6 this.panjang = panjang;
7 this.lebar = lebar;
8 }
9
10 public int hitungLuas() {
11
return panjang*lebar;
12
}
13
}
Berdasarkan kode di atas, diasumsikan terdapat sebuah objek yang dibuat dan diacu melalui variabel
referensi bernama pp1. Variabel pp1 tersebut berada di luar kelas dari kelas PersegiPanjang. Maka
source code berikut yang benar untuk dapat mengakses atribut atau metode dari objek tersebut
adalah...
a. System.out.println(“Panjang: ” + pp1.panjang);
b. System.out.println(“Luas: ” + pp1.hitungLuas());
c. System.out.println(“Panjang: ” + pp1.lebar);
d. System.out.println(“Luas: ” + pp1.panjang * pp1.lebar);
e. System.out.println(“Keliling: ” + 2*( pp1.panjang + pp1.lebar));
Panjang dan lebar memiliki modifier private, tidak bisa langsung dipanggil
7
1 package p1;
2
3 public class C1 {
4 public int x;
5 private int y;
6
7 public void m1(){}
8 private void m2(){}
9 }
Dengan mempertimbangkan kode di atas, maka yang terjadi pada kode di bawah ini adalah:
1 package p1;
2
3 public class C3 {
4 public static void main(String args[]) {
5 C1 benda1 = new C1();
6 benda1.y = 4;
7 benda1.x = 10;
8 System.out.print(benda1.x);
9 }
10 }
8
14. Perhatikan kode di bawah ini:
1 class Circle {
2 private double jarijari;
3 private final static double PI = 3.1415;
4 public Circle() { ... }
5 public Circle(int diameter) {
6 this.jarijari = diameter/2d;
7 }
8 public Circle(double jarijari) { ... }
9 public double getLuas() {
10 return (PI * jarijari * jarijari);
11
}
12
}
13
14
class CobaCircle {
15
public static void main(String[] args) {
16
Circle C1 = new Circle();
17
18 System.out.println("Luas = " + C1.getLuas());
19 Circle C2 = new Circle(10);
20 System.out.println("Luas = " + C2.getLuas());
21 Circle C3 = new Circle(10.00);
22 System.out.println("Luas = " + C3.getLuas());
23 }
}
15. Pada kode nomor 14, output dari baris ke-19 adalah:
a. Luas = 10
b. Luas = 78.5375
c. Luas = 3.1415
d. Luas = 628.150
e. Luas = 314.150
16. Perhatikan ilustrasi dibawah ini:
9
Ilustrasi di atas disebut sebagai hubungan:
a. Komposisi
b. Asosiasi
c. Agregasi
d. Enkapsulasi
e. Semua salah
10
17. Perhatikan kode di bawah ini:
1 public class Circle {
2 private static int radius;
3 private static int jml=0;
4
5 public Circle(int r){
6 radius = r;
7 jml++;
8 }
9
10 public int getRadius(){
11
return radius;
12
}
13
14
public int getJml(){
15
return jml;
16
}
17
18 }
19
20 class Test {
21 public static void main(String args[]) {
22 Circle c1 = new Circle(5);
23 Circle c2 = new Circle(10);
24 System.out.print(c1.getRadius()+" ");
25 System.out.print(c2.getRadius()+" ");
26 System.out.print(c1.getJml()+" ");
27 System.out.print(c2.getJml()+" ");}
28 }
}
Jika pada baris 2 ditambahkan deklarasi static, apa yang akan ditampilkan dari hasil eksekusi baris 20
– 23?
a. 5511
b. 5 10 1 1
c. 5 10 2 2
d. 5 10 1 2
e. 10 10 2 2
11
18. Apakah nilai yang tersimpan dalam sebuah field bernama obj berikut?
Kotak obj;
a. String kosong
b. Null
c. Sembarang alamat memori
d. Tidak diketahui
e. Alamat memori yang dari objek kelas Kotak
20. Berikut adalah keuntungan prinsip enkapsulasi dalam Pemrograman Berorientasi Objek, kecuali:
a. Keamanan
b. Konsistensi data
c. Data Hiding
d. Akses data lebih luas dan terbuka
e. Pembatasan akses data
12