SlideShare a Scribd company logo
1 of 9
Download to read offline
F
a
s
i
l
k
o
m
U
I
KUIS TRYOUT 1 DASAR-DASAR PEMROGRAMAN 2 - FASILKOM UI
Tanggal: 2022.03.23
Waktu Pengerjaan: 70 menit
Penyusun Soal: Tim DDP 2 G
Catatan: Dilarang bekerja sama secara aktif dengan pihak lain, dilarang mencontek,
kejujuran akan sangat dihargai & kecurangan akan sangat merugikan Anda sendiri
PG (Urutan pilihan jawaban akan diacak pada LMS)
1. Manakah pernyataan yang benar terkait Java?
a. Pemeriksaan tipe dari sebuah variabel dilakukan saat proses kompilasi (sebelum program
berjalan).
b. Semua data/nilai adalah Object.
c. Source code dalam bahasa pemrograman Java tidak portable.
d. Java menggunakan interpreter untuk mentranslasikan source code menjadi byte code.
2. Apakah yang akan dicetak oleh potongan program berikut?
boolean x = false || (!!!false && true);
boolean y = !(true && (false || !!false));
System.out.println(x + " " + y);
a. true true
b. true false
c. false true
d. false false
3. Berikut adalah pernyataan yang benar mengenai konvensi penamaan pada Java, kecuali:
a. Kebab case digunakan untuk nama konstanta
b. Camel case digunakan untuk nama variabel
c. Pascal case digunakan untuk nama class
d. Camel case digunakan untuk nama fungsi
4. Manakah yang merupakan superclass dari java.lang.Integer?
Petunjuk: Pelajari https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Integer.html
a. java.lang.Number
b. java.lang.Subject
c. java.lang.Numeric
d. java.lang.BigInteger
F
a
s
i
l
k
o
m
U
I
5. Jenis pewarisan (inheritance) manakah yang paling tepat untuk kode Java berikut:
public class D { ..... }
public class E extends D { ..... }
public class F extends E { ..... }
public class G extends F { ..... }
a) Multilevel inheritance
b) Single inheritance
c) Hierarchical inheritance
d) Multiple inheritance
6. Perhatikan kode berikut ini. Pemanggilan method mystery() tersebut akan disimpan ke
dalam variabel result. Persamaan matematika apakah yang dapat dinyatakan dari program
tersebut?
public static long mystery(int a, int b) {
return mysteryHelper(a, b, 0);
}
public static long mysteryHelper(int a, int b, long count) {
if (b == -1) { // Base case
return count;
}
count += Math.pow(a, b);
b--;
return mysteryHelper(a, b, count);
}
a) result = ab
+ (a-1)b
+ (a-2)b
+ … + (0)b
b) result = ab
+ (a-1)b
+ (a-2)b
+ … + (0)b
+ (-1)b
c) result = ab
+ ab-1
+ ab-2
+ … + a0
d) result = ab
+ ab-1
+ ab-2
+ … + a0
+ a-1
F
a
s
i
l
k
o
m
U
I
7. Diketahui suatu proyek Java dengan susunan (layout) package dan class sebagai berikut:
Jika GroupPairing bukan merupakan subclass dari Student dan Student adalah suatu public
class, atribut dan method Student dengan access modifier apa saja yang bisa diakses dari
GroupPairing?
a. Public, protected, default (no modifier), private
b. Public, protected, default (no modifier)
c. Public dan protected saja
d. Public saja
ESAI
ESAI-01: Lengkapilah kode program di bawah ini agar program mencetak String "Halo!".
public static void main(String args[]) {
int v = 3;
int w = 7;
int x = 13;
int y = w * v % x / __ISIAN__++;
int z = ++y + x-- * --v / __ISIAN__;
if (z % 2 == __ISIAN__) {
System.out.println("Hai!");
} else {
System.out.println("__ISIAN__");
}
}
Jawaban:
public static void main(String args[]) {
int v = 3;
int w = 7;
int x = 13;
int y = w * v % x / v++;
int z = ++y + x-- * --v / w;
F
a
s
i
l
k
o
m
U
I
if (z % 2 == 1) {
System.out.println("Hai!");
} else {
System.out.println("Halo!");
}
}
ESAI-02:
Jelaskan dengan detail apa yang dilakukan oleh method doSomething() serta berikan dua
contoh input dan output dari method tersebut!
public static String doSomething(String input) {
return doSomethingHelper(input, true, "");
}
public static String doSomethingHelper(String input, boolean flag, String result) {
if (input.length() == 0) {
return "";
} else if (input.length() == 1) {
if (flag) {
result += input.charAt(0);
}
return result;
} else {
if (flag) {
result += input.charAt(0);
}
return doSomethingHelper(input.substring(1), !flag, result);
}
}
Jawaban:
Mencetak karakter berindeks genap pada String input.
Contoh:
- doSomething("01234567") mengembalikan "0246"
- doSomething("abcd") mengembalikan "ac"
ESAI-03:
Perhatikan kode Vehicle.java berikut:
F
a
s
i
l
k
o
m
U
I
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package sc;
class Stuff {
public String toString() {
return "Stuff";
}
}
public class Vehicle extends Stuff {
public String toString() {
return "Vehicle";
}
public static void main(String[] args) {
Stuff s = new RareBicycle();
System.out.println(s);
}
}
class Bicycle extends Vehicle {
public String toString() {
return "Bicycle";
}
}
class RareBicycle extends Bicycle {
}
class Car extends Vehicle {
public String toString() {
return "Car";
}
}
Apa yang dicetak? Jelaskan jawaban Anda dalam kaitannya terhadap dynamic binding!
Jawaban tanpa penjelasan akan bernilai 0.
Jawaban:
Yang dicetak: Bicycle
F
a
s
i
l
k
o
m
U
I
Terjadi dynamic binding: Diberikan suatu method, misal m(), yang dipanggil pada suatu object
dari class C. Jika terdapat definisi method m() pada class C, panggil definisi method m()
tersebut. Jika tidak, cari method m() di parent class dari C (atau telusuri hierarki class sampai
definisi method m() ditemukan). Pada kasus kode di atas, dynamic binding terjadi pada method
toString() untuk object s.
ESAI-04:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package sc;
class AB {
static private int x = 1;
static int y = 2;
static protected int z = 3;
}
class C extends AB {
public static void f() {
System.out.println(AB.w);
System.out.println(AB.x);
System.out.println(AB.y);
System.out.println(AB.z);
}
}
Perhatikan kode di atas. Masalah-masalah apa saja yang terdapat pada kode di atas?
Jelaskan! Serta, jelaskan pula apa itu access modifier protected?
Jawaban:
Kode tersebut tidak dapat di-compile. Terdapat dua isu pada kode tersebut:
1) Baris 14 terkait “System.out.println(AB.w)” di mana w tidak dapat di-resolve.
2) Baris 15 terkait “System.out.println(AB.x)” di mana x tidak visible karena memiliki access
modifier private.
Access modifier protected: Field/method yang memakai protected hanya bisa diakses pada
package yang sama, atau subclassnya (yang bisa juga terdapat di package yang lain).
Sumber: https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html
F
a
s
i
l
k
o
m
U
I
ESAI-05:
Apa yang dicetak oleh kode berikut? Beri penjelasan line-by-line!
1
2
3
4
5
6
7
8
9
10
11
12
13
import java.util.Arrays;
public class Tes {
public static void main(String[] args) {
int[] arr1 = new int[]{5,7,13,4,9,23};
int[] arr2 = arr1;
arr2[3] = 17;
arr1[4] = 11;
int[] arr3 = Arrays.copyOf(arr1, 5);
arr1[2] = 9;
System.out.println(Arrays.toString(arr3));
}
}
Jawaban:
Yang dicetak adalah: [5, 7, 13, 17, 11]
Penjelasan:
Pada line ke-5, diinisiasi suatu array baru dengan tipe data integer ke variabel bernama arr1.
Pada line ke-6, dibuat variabel baru, yaitu arr2 yang menyimpan reference array arr1.
Pada line ke-7, indeks ke-3 dari arr2 diubah. Karena arr2 menyimpan reference array yang
sama dengan arr1, maka arr1 juga ikut terubah, sehingga keduanya jadi [5, 7, 13, 17, 9, 23].
Pada line ke-8, indeks ke-4 dari arr1 diubah. Sama seperti sebelumnya, karena reference
array-nya sama dengan arr2, maka arr2 juga ikut berubah sehingga keduanya menjadi [5, 7, 13,
17, 11, 23].
Pada line ke-9, dibuat variabel baru, yaitu arr3 yang melakukan penyalinan (via copyOf)
terhadap arr1 sepanjang 5, sehingga arr3 memiliki nilai [5, 7, 13, 17, 11].
Pada line ke-10, indeks ke-2 dari arr1 diubah. Perubahan ini memengaruhi arr2, tetapi tidak
untuk arr3 (karena arr3 merupakan hasil dari penyalinan via copyOf). Di sini, arr3 sekarang
menyimpan array yang berbeda dari arr1 dan arr2.
Pada line ke-11, akan dicetak array arr3 yang valuenya adalah [5, 7, 13, 17, 11].
ESAI-06:
Perhatikan kode mystery() berikut yang menerima parameter array 2 dimensi dengan ukuran
2x2.
F
a
s
i
l
k
o
m
U
I
public static int[][] mystery(int[][] array1, int[][] array2) {
int[][] array = new int[2][2];
for (int x = 0; x < 2; x++) {
for (int y = 0; y < 2; y++) {
for (int z = 0; z < 2; z++) {
array[x][y] += array1[x][z] * array2[z][y];
}
}
}
return array;
}
Diberikan suatu array1 = [[2, 4], [3,5]] dan array2 = [[3, 1], [4, 7]]. Apa isi array yang di-return
oleh method tersebut? Apa yang sebenarnya dilakukan oleh program tersebut?
Jawaban:
Array tersebut berisikan [[22, 30], [29,38]]. Program tersebut melakukan matrix multiplication.
ESAI-07:
Perhatikan kode berikut:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import java.util.Scanner;
public class Main {
public static StringBuilder process(StringBuilder s) {
// lengkapi method ini
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
StringBuilder s = new StringBuilder(7);
s.append(in.nextLine());
String p = process(s).toString();
System.out.println(p);
}
}
Apabila diberikan input "detar", program akan mencetak output "rated7". Apabila diberikan input
"rednow", program akan mencetak output "wonder7". Gunakan method-method yang terdapat
pada java.lang.StringBuilder untuk melengkapi method process() di atas.
Jawaban:
1
2
3
import java.util.Scanner;
public class Main
F
a
s
i
l
k
o
m
U
I
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
public static StringBuilder process(StringBuilder s) {
// lengkapi method ini
s.reverse();
s.append('7');
return s;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
StringBuilder s = new StringBuilder(7);
s.append(in.nextLine());
String p = process(s).toString();
System.out.println(p);
}
}
Penjelasan:
Misalnya input adalah "detar". Pada Baris 14, terjadi construction object StringBuilder kosong
dengan kapasitas 7, yang selanjutnya object tersebut di-assign ke variabel s. Lalu, "detar" akan
di-append ke s. Dalam process(), nilai s akan di-reverse menjadi "rated" dan di-append dengan
karakter '7' menjadi "rated7", yang di-return dan di-assign ke variabel p pada main() untuk
dicetak.
For further content of free Java programming course by Fasilkom UI, please visit:
https://ocw.ui.ac.id/course/view.php?id=47

More Related Content

What's hot

Laporan praktikum Algoritma dan Pemrograman pertemuan 15
Laporan praktikum Algoritma dan Pemrograman pertemuan 15Laporan praktikum Algoritma dan Pemrograman pertemuan 15
Laporan praktikum Algoritma dan Pemrograman pertemuan 15Ekha Cahya Nugraha
 
Romi oop-02-javafundamentals-29agustus2010
Romi oop-02-javafundamentals-29agustus2010Romi oop-02-javafundamentals-29agustus2010
Romi oop-02-javafundamentals-29agustus2010SabilaAulia
 
Jeni Intro2 Bab04 Tour Dari Package Java.Lang
Jeni Intro2 Bab04 Tour Dari Package Java.LangJeni Intro2 Bab04 Tour Dari Package Java.Lang
Jeni Intro2 Bab04 Tour Dari Package Java.LangIndividual Consultants
 
Perkenalan Pemrograman C++
Perkenalan Pemrograman C++Perkenalan Pemrograman C++
Perkenalan Pemrograman C++Sparisoma Viridi
 
sns_paper complement_r010110
sns_paper complement_r010110sns_paper complement_r010110
sns_paper complement_r010110S N M P Simamora
 
Pert 4. class dan objek
Pert 4. class dan objekPert 4. class dan objek
Pert 4. class dan objekradar radius
 
How to hack #IDSECCONF2014 ctf online challenge - nganggur
How to hack #IDSECCONF2014 ctf online challenge - nganggurHow to hack #IDSECCONF2014 ctf online challenge - nganggur
How to hack #IDSECCONF2014 ctf online challenge - ngangguridsecconf
 
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)Melina Krisnawati
 
contoh Program sederhana Java dan penjelasan programnya
contoh Program sederhana Java dan penjelasan programnyacontoh Program sederhana Java dan penjelasan programnya
contoh Program sederhana Java dan penjelasan programnyastephan EL'wiin Shaarawy
 
Bab ii keg pembel 6 array
Bab ii keg pembel 6  arrayBab ii keg pembel 6  array
Bab ii keg pembel 6 array087dwi
 
Soal Pascal OSN Komputer
Soal Pascal OSN KomputerSoal Pascal OSN Komputer
Soal Pascal OSN KomputerLabieb Maududi
 
Jeni Intro2 Bab01 Review Konsep Dasar Dalam Java
Jeni Intro2 Bab01 Review Konsep Dasar Dalam JavaJeni Intro2 Bab01 Review Konsep Dasar Dalam Java
Jeni Intro2 Bab01 Review Konsep Dasar Dalam JavaIndividual Consultants
 

What's hot (20)

Laporan praktikum Algoritma dan Pemrograman pertemuan 15
Laporan praktikum Algoritma dan Pemrograman pertemuan 15Laporan praktikum Algoritma dan Pemrograman pertemuan 15
Laporan praktikum Algoritma dan Pemrograman pertemuan 15
 
Pertemuan V
Pertemuan VPertemuan V
Pertemuan V
 
Romi oop-02-javafundamentals-29agustus2010
Romi oop-02-javafundamentals-29agustus2010Romi oop-02-javafundamentals-29agustus2010
Romi oop-02-javafundamentals-29agustus2010
 
Teori himpunan
Teori himpunanTeori himpunan
Teori himpunan
 
Jeni Intro2 Bab04 Tour Dari Package Java.Lang
Jeni Intro2 Bab04 Tour Dari Package Java.LangJeni Intro2 Bab04 Tour Dari Package Java.Lang
Jeni Intro2 Bab04 Tour Dari Package Java.Lang
 
Perkenalan Pemrograman C++
Perkenalan Pemrograman C++Perkenalan Pemrograman C++
Perkenalan Pemrograman C++
 
Algoritma Symboolon
Algoritma SymboolonAlgoritma Symboolon
Algoritma Symboolon
 
sns_paper complement_r010110
sns_paper complement_r010110sns_paper complement_r010110
sns_paper complement_r010110
 
Pert 4. class dan objek
Pert 4. class dan objekPert 4. class dan objek
Pert 4. class dan objek
 
How to hack #IDSECCONF2014 ctf online challenge - nganggur
How to hack #IDSECCONF2014 ctf online challenge - nganggurHow to hack #IDSECCONF2014 ctf online challenge - nganggur
How to hack #IDSECCONF2014 ctf online challenge - nganggur
 
My javanote04
My javanote04My javanote04
My javanote04
 
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
 
Jeni Intro2 Bab13 Pengenalan Generics
Jeni Intro2 Bab13 Pengenalan GenericsJeni Intro2 Bab13 Pengenalan Generics
Jeni Intro2 Bab13 Pengenalan Generics
 
My javanote03
My javanote03My javanote03
My javanote03
 
contoh Program sederhana Java dan penjelasan programnya
contoh Program sederhana Java dan penjelasan programnyacontoh Program sederhana Java dan penjelasan programnya
contoh Program sederhana Java dan penjelasan programnya
 
Bab ii keg pembel 6 array
Bab ii keg pembel 6  arrayBab ii keg pembel 6  array
Bab ii keg pembel 6 array
 
Soal dan bahasan Pascal
Soal dan bahasan PascalSoal dan bahasan Pascal
Soal dan bahasan Pascal
 
Soal olimpiade tik
Soal olimpiade tikSoal olimpiade tik
Soal olimpiade tik
 
Soal Pascal OSN Komputer
Soal Pascal OSN KomputerSoal Pascal OSN Komputer
Soal Pascal OSN Komputer
 
Jeni Intro2 Bab01 Review Konsep Dasar Dalam Java
Jeni Intro2 Bab01 Review Konsep Dasar Dalam JavaJeni Intro2 Bab01 Review Konsep Dasar Dalam Java
Jeni Intro2 Bab01 Review Konsep Dasar Dalam Java
 

Similar to [PUBLIC] quiz-01-midterm-solutions.pdf

Soal UKK pbo smk kelas 11 esmester genap
Soal UKK pbo smk kelas 11 esmester genapSoal UKK pbo smk kelas 11 esmester genap
Soal UKK pbo smk kelas 11 esmester genapSaprudin Eskom
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)Debby Ummul
 
pertemuan ke-4 (Variabel dan Konstanta).ppt
pertemuan ke-4 (Variabel dan Konstanta).pptpertemuan ke-4 (Variabel dan Konstanta).ppt
pertemuan ke-4 (Variabel dan Konstanta).pptnafilarifki1
 
Soal soal pbo java
Soal soal pbo java Soal soal pbo java
Soal soal pbo java Abdullah Beu
 
Algotitma dan Struktur Algoritma - Collection
Algotitma dan Struktur Algoritma - CollectionAlgotitma dan Struktur Algoritma - Collection
Algotitma dan Struktur Algoritma - CollectionSiska Amelia
 
Pertemuan 6 Struktur Data, Algoritma dan Pemrograman
Pertemuan 6 Struktur Data, Algoritma dan PemrogramanPertemuan 6 Struktur Data, Algoritma dan Pemrograman
Pertemuan 6 Struktur Data, Algoritma dan PemrogramanPrasetyo Adi
 
Materi pelatihan java_fundamental
Materi pelatihan java_fundamentalMateri pelatihan java_fundamental
Materi pelatihan java_fundamentalLaode ADB Ali
 
Jeni Intro2 Bab07 Abstract Windowing Toolkit Dan Swing
Jeni Intro2 Bab07 Abstract Windowing Toolkit Dan SwingJeni Intro2 Bab07 Abstract Windowing Toolkit Dan Swing
Jeni Intro2 Bab07 Abstract Windowing Toolkit Dan SwingIndividual Consultants
 
Soal + jawaban PAT PBO Kelas XI RPL 2021.docx
Soal + jawaban PAT PBO Kelas XI RPL 2021.docxSoal + jawaban PAT PBO Kelas XI RPL 2021.docx
Soal + jawaban PAT PBO Kelas XI RPL 2021.docxSaprudin Eskom
 
Pemograman berorientasi objek
Pemograman berorientasi objekPemograman berorientasi objek
Pemograman berorientasi objekAlvin Setiawan
 

Similar to [PUBLIC] quiz-01-midterm-solutions.pdf (20)

Soal UKK pbo smk kelas 11 esmester genap
Soal UKK pbo smk kelas 11 esmester genapSoal UKK pbo smk kelas 11 esmester genap
Soal UKK pbo smk kelas 11 esmester genap
 
Ii java input ouput
Ii   java input ouputIi   java input ouput
Ii java input ouput
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
 
pertemuan ke-4 (Variabel dan Konstanta).ppt
pertemuan ke-4 (Variabel dan Konstanta).pptpertemuan ke-4 (Variabel dan Konstanta).ppt
pertemuan ke-4 (Variabel dan Konstanta).ppt
 
Soal soal pbo java
Soal soal pbo java Soal soal pbo java
Soal soal pbo java
 
Materi pelatihan java fundamental
Materi pelatihan java fundamentalMateri pelatihan java fundamental
Materi pelatihan java fundamental
 
Bab8.array
Bab8.array Bab8.array
Bab8.array
 
Algotitma dan Struktur Algoritma - Collection
Algotitma dan Struktur Algoritma - CollectionAlgotitma dan Struktur Algoritma - Collection
Algotitma dan Struktur Algoritma - Collection
 
Numerik
NumerikNumerik
Numerik
 
Laporan praktikum jawaban 10 algoritma(1)
Laporan praktikum jawaban 10 algoritma(1)Laporan praktikum jawaban 10 algoritma(1)
Laporan praktikum jawaban 10 algoritma(1)
 
Pertemuan 6 Struktur Data, Algoritma dan Pemrograman
Pertemuan 6 Struktur Data, Algoritma dan PemrogramanPertemuan 6 Struktur Data, Algoritma dan Pemrograman
Pertemuan 6 Struktur Data, Algoritma dan Pemrograman
 
Materi pelatihan java_fundamental
Materi pelatihan java_fundamentalMateri pelatihan java_fundamental
Materi pelatihan java_fundamental
 
Modul Object Oriented Programming
Modul Object Oriented ProgrammingModul Object Oriented Programming
Modul Object Oriented Programming
 
Jeni Intro2 Bab07 Abstract Windowing Toolkit Dan Swing
Jeni Intro2 Bab07 Abstract Windowing Toolkit Dan SwingJeni Intro2 Bab07 Abstract Windowing Toolkit Dan Swing
Jeni Intro2 Bab07 Abstract Windowing Toolkit Dan Swing
 
Soal + jawaban PAT PBO Kelas XI RPL 2021.docx
Soal + jawaban PAT PBO Kelas XI RPL 2021.docxSoal + jawaban PAT PBO Kelas XI RPL 2021.docx
Soal + jawaban PAT PBO Kelas XI RPL 2021.docx
 
Penanganan kesalahan menangkap exception
Penanganan kesalahan menangkap exceptionPenanganan kesalahan menangkap exception
Penanganan kesalahan menangkap exception
 
Praktikum p-fisika
Praktikum p-fisikaPraktikum p-fisika
Praktikum p-fisika
 
Java
JavaJava
Java
 
Pemograman berorientasi objek
Pemograman berorientasi objekPemograman berorientasi objek
Pemograman berorientasi objek
 
PBO Pratikum 1
PBO Pratikum 1PBO Pratikum 1
PBO Pratikum 1
 

More from Fariz Darari

Data X Museum - Hari Museum Internasional 2022 - WMID
Data X Museum - Hari Museum Internasional 2022 - WMIDData X Museum - Hari Museum Internasional 2022 - WMID
Data X Museum - Hari Museum Internasional 2022 - WMIDFariz Darari
 
Free AI Kit - Game Theory
Free AI Kit - Game TheoryFree AI Kit - Game Theory
Free AI Kit - Game TheoryFariz Darari
 
Neural Networks and Deep Learning: An Intro
Neural Networks and Deep Learning: An IntroNeural Networks and Deep Learning: An Intro
Neural Networks and Deep Learning: An IntroFariz Darari
 
NLP guest lecture: How to get text to confess what knowledge it has
NLP guest lecture: How to get text to confess what knowledge it hasNLP guest lecture: How to get text to confess what knowledge it has
NLP guest lecture: How to get text to confess what knowledge it hasFariz Darari
 
Supply and Demand - AI Talents
Supply and Demand - AI TalentsSupply and Demand - AI Talents
Supply and Demand - AI TalentsFariz Darari
 
Basic Python Programming: Part 01 and Part 02
Basic Python Programming: Part 01 and Part 02Basic Python Programming: Part 01 and Part 02
Basic Python Programming: Part 01 and Part 02Fariz Darari
 
AI in education done properly
AI in education done properlyAI in education done properly
AI in education done properlyFariz Darari
 
Artificial Neural Networks: Pointers
Artificial Neural Networks: PointersArtificial Neural Networks: Pointers
Artificial Neural Networks: PointersFariz Darari
 
Open Tridharma at ICACSIS 2019
Open Tridharma at ICACSIS 2019Open Tridharma at ICACSIS 2019
Open Tridharma at ICACSIS 2019Fariz Darari
 
Defense Slides of Avicenna Wisesa - PROWD
Defense Slides of Avicenna Wisesa - PROWDDefense Slides of Avicenna Wisesa - PROWD
Defense Slides of Avicenna Wisesa - PROWDFariz Darari
 
Seminar Laporan Aktualisasi - Tridharma Terbuka - Fariz Darari
Seminar Laporan Aktualisasi - Tridharma Terbuka - Fariz DarariSeminar Laporan Aktualisasi - Tridharma Terbuka - Fariz Darari
Seminar Laporan Aktualisasi - Tridharma Terbuka - Fariz DarariFariz Darari
 
Foundations of Programming - Java OOP
Foundations of Programming - Java OOPFoundations of Programming - Java OOP
Foundations of Programming - Java OOPFariz Darari
 
Recursion in Python
Recursion in PythonRecursion in Python
Recursion in PythonFariz Darari
 
[ISWC 2013] Completeness statements about RDF data sources and their use for ...
[ISWC 2013] Completeness statements about RDF data sources and their use for ...[ISWC 2013] Completeness statements about RDF data sources and their use for ...
[ISWC 2013] Completeness statements about RDF data sources and their use for ...Fariz Darari
 
Testing in Python: doctest and unittest (Updated)
Testing in Python: doctest and unittest (Updated)Testing in Python: doctest and unittest (Updated)
Testing in Python: doctest and unittest (Updated)Fariz Darari
 
Testing in Python: doctest and unittest
Testing in Python: doctest and unittestTesting in Python: doctest and unittest
Testing in Python: doctest and unittestFariz Darari
 
Dissertation Defense - Managing and Consuming Completeness Information for RD...
Dissertation Defense - Managing and Consuming Completeness Information for RD...Dissertation Defense - Managing and Consuming Completeness Information for RD...
Dissertation Defense - Managing and Consuming Completeness Information for RD...Fariz Darari
 
Research Writing - 2018.07.18
Research Writing - 2018.07.18Research Writing - 2018.07.18
Research Writing - 2018.07.18Fariz Darari
 
KOI - Knowledge Of Incidents - SemEval 2018
KOI - Knowledge Of Incidents - SemEval 2018KOI - Knowledge Of Incidents - SemEval 2018
KOI - Knowledge Of Incidents - SemEval 2018Fariz Darari
 
Comparing Index Structures for Completeness Reasoning
Comparing Index Structures for Completeness ReasoningComparing Index Structures for Completeness Reasoning
Comparing Index Structures for Completeness ReasoningFariz Darari
 

More from Fariz Darari (20)

Data X Museum - Hari Museum Internasional 2022 - WMID
Data X Museum - Hari Museum Internasional 2022 - WMIDData X Museum - Hari Museum Internasional 2022 - WMID
Data X Museum - Hari Museum Internasional 2022 - WMID
 
Free AI Kit - Game Theory
Free AI Kit - Game TheoryFree AI Kit - Game Theory
Free AI Kit - Game Theory
 
Neural Networks and Deep Learning: An Intro
Neural Networks and Deep Learning: An IntroNeural Networks and Deep Learning: An Intro
Neural Networks and Deep Learning: An Intro
 
NLP guest lecture: How to get text to confess what knowledge it has
NLP guest lecture: How to get text to confess what knowledge it hasNLP guest lecture: How to get text to confess what knowledge it has
NLP guest lecture: How to get text to confess what knowledge it has
 
Supply and Demand - AI Talents
Supply and Demand - AI TalentsSupply and Demand - AI Talents
Supply and Demand - AI Talents
 
Basic Python Programming: Part 01 and Part 02
Basic Python Programming: Part 01 and Part 02Basic Python Programming: Part 01 and Part 02
Basic Python Programming: Part 01 and Part 02
 
AI in education done properly
AI in education done properlyAI in education done properly
AI in education done properly
 
Artificial Neural Networks: Pointers
Artificial Neural Networks: PointersArtificial Neural Networks: Pointers
Artificial Neural Networks: Pointers
 
Open Tridharma at ICACSIS 2019
Open Tridharma at ICACSIS 2019Open Tridharma at ICACSIS 2019
Open Tridharma at ICACSIS 2019
 
Defense Slides of Avicenna Wisesa - PROWD
Defense Slides of Avicenna Wisesa - PROWDDefense Slides of Avicenna Wisesa - PROWD
Defense Slides of Avicenna Wisesa - PROWD
 
Seminar Laporan Aktualisasi - Tridharma Terbuka - Fariz Darari
Seminar Laporan Aktualisasi - Tridharma Terbuka - Fariz DarariSeminar Laporan Aktualisasi - Tridharma Terbuka - Fariz Darari
Seminar Laporan Aktualisasi - Tridharma Terbuka - Fariz Darari
 
Foundations of Programming - Java OOP
Foundations of Programming - Java OOPFoundations of Programming - Java OOP
Foundations of Programming - Java OOP
 
Recursion in Python
Recursion in PythonRecursion in Python
Recursion in Python
 
[ISWC 2013] Completeness statements about RDF data sources and their use for ...
[ISWC 2013] Completeness statements about RDF data sources and their use for ...[ISWC 2013] Completeness statements about RDF data sources and their use for ...
[ISWC 2013] Completeness statements about RDF data sources and their use for ...
 
Testing in Python: doctest and unittest (Updated)
Testing in Python: doctest and unittest (Updated)Testing in Python: doctest and unittest (Updated)
Testing in Python: doctest and unittest (Updated)
 
Testing in Python: doctest and unittest
Testing in Python: doctest and unittestTesting in Python: doctest and unittest
Testing in Python: doctest and unittest
 
Dissertation Defense - Managing and Consuming Completeness Information for RD...
Dissertation Defense - Managing and Consuming Completeness Information for RD...Dissertation Defense - Managing and Consuming Completeness Information for RD...
Dissertation Defense - Managing and Consuming Completeness Information for RD...
 
Research Writing - 2018.07.18
Research Writing - 2018.07.18Research Writing - 2018.07.18
Research Writing - 2018.07.18
 
KOI - Knowledge Of Incidents - SemEval 2018
KOI - Knowledge Of Incidents - SemEval 2018KOI - Knowledge Of Incidents - SemEval 2018
KOI - Knowledge Of Incidents - SemEval 2018
 
Comparing Index Structures for Completeness Reasoning
Comparing Index Structures for Completeness ReasoningComparing Index Structures for Completeness Reasoning
Comparing Index Structures for Completeness Reasoning
 

[PUBLIC] quiz-01-midterm-solutions.pdf

  • 1. F a s i l k o m U I KUIS TRYOUT 1 DASAR-DASAR PEMROGRAMAN 2 - FASILKOM UI Tanggal: 2022.03.23 Waktu Pengerjaan: 70 menit Penyusun Soal: Tim DDP 2 G Catatan: Dilarang bekerja sama secara aktif dengan pihak lain, dilarang mencontek, kejujuran akan sangat dihargai & kecurangan akan sangat merugikan Anda sendiri PG (Urutan pilihan jawaban akan diacak pada LMS) 1. Manakah pernyataan yang benar terkait Java? a. Pemeriksaan tipe dari sebuah variabel dilakukan saat proses kompilasi (sebelum program berjalan). b. Semua data/nilai adalah Object. c. Source code dalam bahasa pemrograman Java tidak portable. d. Java menggunakan interpreter untuk mentranslasikan source code menjadi byte code. 2. Apakah yang akan dicetak oleh potongan program berikut? boolean x = false || (!!!false && true); boolean y = !(true && (false || !!false)); System.out.println(x + " " + y); a. true true b. true false c. false true d. false false 3. Berikut adalah pernyataan yang benar mengenai konvensi penamaan pada Java, kecuali: a. Kebab case digunakan untuk nama konstanta b. Camel case digunakan untuk nama variabel c. Pascal case digunakan untuk nama class d. Camel case digunakan untuk nama fungsi 4. Manakah yang merupakan superclass dari java.lang.Integer? Petunjuk: Pelajari https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Integer.html a. java.lang.Number b. java.lang.Subject c. java.lang.Numeric d. java.lang.BigInteger
  • 2. F a s i l k o m U I 5. Jenis pewarisan (inheritance) manakah yang paling tepat untuk kode Java berikut: public class D { ..... } public class E extends D { ..... } public class F extends E { ..... } public class G extends F { ..... } a) Multilevel inheritance b) Single inheritance c) Hierarchical inheritance d) Multiple inheritance 6. Perhatikan kode berikut ini. Pemanggilan method mystery() tersebut akan disimpan ke dalam variabel result. Persamaan matematika apakah yang dapat dinyatakan dari program tersebut? public static long mystery(int a, int b) { return mysteryHelper(a, b, 0); } public static long mysteryHelper(int a, int b, long count) { if (b == -1) { // Base case return count; } count += Math.pow(a, b); b--; return mysteryHelper(a, b, count); } a) result = ab + (a-1)b + (a-2)b + … + (0)b b) result = ab + (a-1)b + (a-2)b + … + (0)b + (-1)b c) result = ab + ab-1 + ab-2 + … + a0 d) result = ab + ab-1 + ab-2 + … + a0 + a-1
  • 3. F a s i l k o m U I 7. Diketahui suatu proyek Java dengan susunan (layout) package dan class sebagai berikut: Jika GroupPairing bukan merupakan subclass dari Student dan Student adalah suatu public class, atribut dan method Student dengan access modifier apa saja yang bisa diakses dari GroupPairing? a. Public, protected, default (no modifier), private b. Public, protected, default (no modifier) c. Public dan protected saja d. Public saja ESAI ESAI-01: Lengkapilah kode program di bawah ini agar program mencetak String "Halo!". public static void main(String args[]) { int v = 3; int w = 7; int x = 13; int y = w * v % x / __ISIAN__++; int z = ++y + x-- * --v / __ISIAN__; if (z % 2 == __ISIAN__) { System.out.println("Hai!"); } else { System.out.println("__ISIAN__"); } } Jawaban: public static void main(String args[]) { int v = 3; int w = 7; int x = 13; int y = w * v % x / v++; int z = ++y + x-- * --v / w;
  • 4. F a s i l k o m U I if (z % 2 == 1) { System.out.println("Hai!"); } else { System.out.println("Halo!"); } } ESAI-02: Jelaskan dengan detail apa yang dilakukan oleh method doSomething() serta berikan dua contoh input dan output dari method tersebut! public static String doSomething(String input) { return doSomethingHelper(input, true, ""); } public static String doSomethingHelper(String input, boolean flag, String result) { if (input.length() == 0) { return ""; } else if (input.length() == 1) { if (flag) { result += input.charAt(0); } return result; } else { if (flag) { result += input.charAt(0); } return doSomethingHelper(input.substring(1), !flag, result); } } Jawaban: Mencetak karakter berindeks genap pada String input. Contoh: - doSomething("01234567") mengembalikan "0246" - doSomething("abcd") mengembalikan "ac" ESAI-03: Perhatikan kode Vehicle.java berikut:
  • 5. F a s i l k o m U I 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 package sc; class Stuff { public String toString() { return "Stuff"; } } public class Vehicle extends Stuff { public String toString() { return "Vehicle"; } public static void main(String[] args) { Stuff s = new RareBicycle(); System.out.println(s); } } class Bicycle extends Vehicle { public String toString() { return "Bicycle"; } } class RareBicycle extends Bicycle { } class Car extends Vehicle { public String toString() { return "Car"; } } Apa yang dicetak? Jelaskan jawaban Anda dalam kaitannya terhadap dynamic binding! Jawaban tanpa penjelasan akan bernilai 0. Jawaban: Yang dicetak: Bicycle
  • 6. F a s i l k o m U I Terjadi dynamic binding: Diberikan suatu method, misal m(), yang dipanggil pada suatu object dari class C. Jika terdapat definisi method m() pada class C, panggil definisi method m() tersebut. Jika tidak, cari method m() di parent class dari C (atau telusuri hierarki class sampai definisi method m() ditemukan). Pada kasus kode di atas, dynamic binding terjadi pada method toString() untuk object s. ESAI-04: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 package sc; class AB { static private int x = 1; static int y = 2; static protected int z = 3; } class C extends AB { public static void f() { System.out.println(AB.w); System.out.println(AB.x); System.out.println(AB.y); System.out.println(AB.z); } } Perhatikan kode di atas. Masalah-masalah apa saja yang terdapat pada kode di atas? Jelaskan! Serta, jelaskan pula apa itu access modifier protected? Jawaban: Kode tersebut tidak dapat di-compile. Terdapat dua isu pada kode tersebut: 1) Baris 14 terkait “System.out.println(AB.w)” di mana w tidak dapat di-resolve. 2) Baris 15 terkait “System.out.println(AB.x)” di mana x tidak visible karena memiliki access modifier private. Access modifier protected: Field/method yang memakai protected hanya bisa diakses pada package yang sama, atau subclassnya (yang bisa juga terdapat di package yang lain). Sumber: https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html
  • 7. F a s i l k o m U I ESAI-05: Apa yang dicetak oleh kode berikut? Beri penjelasan line-by-line! 1 2 3 4 5 6 7 8 9 10 11 12 13 import java.util.Arrays; public class Tes { public static void main(String[] args) { int[] arr1 = new int[]{5,7,13,4,9,23}; int[] arr2 = arr1; arr2[3] = 17; arr1[4] = 11; int[] arr3 = Arrays.copyOf(arr1, 5); arr1[2] = 9; System.out.println(Arrays.toString(arr3)); } } Jawaban: Yang dicetak adalah: [5, 7, 13, 17, 11] Penjelasan: Pada line ke-5, diinisiasi suatu array baru dengan tipe data integer ke variabel bernama arr1. Pada line ke-6, dibuat variabel baru, yaitu arr2 yang menyimpan reference array arr1. Pada line ke-7, indeks ke-3 dari arr2 diubah. Karena arr2 menyimpan reference array yang sama dengan arr1, maka arr1 juga ikut terubah, sehingga keduanya jadi [5, 7, 13, 17, 9, 23]. Pada line ke-8, indeks ke-4 dari arr1 diubah. Sama seperti sebelumnya, karena reference array-nya sama dengan arr2, maka arr2 juga ikut berubah sehingga keduanya menjadi [5, 7, 13, 17, 11, 23]. Pada line ke-9, dibuat variabel baru, yaitu arr3 yang melakukan penyalinan (via copyOf) terhadap arr1 sepanjang 5, sehingga arr3 memiliki nilai [5, 7, 13, 17, 11]. Pada line ke-10, indeks ke-2 dari arr1 diubah. Perubahan ini memengaruhi arr2, tetapi tidak untuk arr3 (karena arr3 merupakan hasil dari penyalinan via copyOf). Di sini, arr3 sekarang menyimpan array yang berbeda dari arr1 dan arr2. Pada line ke-11, akan dicetak array arr3 yang valuenya adalah [5, 7, 13, 17, 11]. ESAI-06: Perhatikan kode mystery() berikut yang menerima parameter array 2 dimensi dengan ukuran 2x2.
  • 8. F a s i l k o m U I public static int[][] mystery(int[][] array1, int[][] array2) { int[][] array = new int[2][2]; for (int x = 0; x < 2; x++) { for (int y = 0; y < 2; y++) { for (int z = 0; z < 2; z++) { array[x][y] += array1[x][z] * array2[z][y]; } } } return array; } Diberikan suatu array1 = [[2, 4], [3,5]] dan array2 = [[3, 1], [4, 7]]. Apa isi array yang di-return oleh method tersebut? Apa yang sebenarnya dilakukan oleh program tersebut? Jawaban: Array tersebut berisikan [[22, 30], [29,38]]. Program tersebut melakukan matrix multiplication. ESAI-07: Perhatikan kode berikut: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 import java.util.Scanner; public class Main { public static StringBuilder process(StringBuilder s) { // lengkapi method ini } public static void main(String[] args) { Scanner in = new Scanner(System.in); StringBuilder s = new StringBuilder(7); s.append(in.nextLine()); String p = process(s).toString(); System.out.println(p); } } Apabila diberikan input "detar", program akan mencetak output "rated7". Apabila diberikan input "rednow", program akan mencetak output "wonder7". Gunakan method-method yang terdapat pada java.lang.StringBuilder untuk melengkapi method process() di atas. Jawaban: 1 2 3 import java.util.Scanner; public class Main
  • 9. F a s i l k o m U I 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 { public static StringBuilder process(StringBuilder s) { // lengkapi method ini s.reverse(); s.append('7'); return s; } public static void main(String[] args) { Scanner in = new Scanner(System.in); StringBuilder s = new StringBuilder(7); s.append(in.nextLine()); String p = process(s).toString(); System.out.println(p); } } Penjelasan: Misalnya input adalah "detar". Pada Baris 14, terjadi construction object StringBuilder kosong dengan kapasitas 7, yang selanjutnya object tersebut di-assign ke variabel s. Lalu, "detar" akan di-append ke s. Dalam process(), nilai s akan di-reverse menjadi "rated" dan di-append dengan karakter '7' menjadi "rated7", yang di-return dan di-assign ke variabel p pada main() untuk dicetak. For further content of free Java programming course by Fasilkom UI, please visit: https://ocw.ui.ac.id/course/view.php?id=47