Anda di halaman 1dari 5

UJIAN TENGAH SEMESTER

FAKULTAS TEKNIK - UNIVERSITAS PERSADA INDONESIA Y.A.I JAKARTA

UTS

UJIAN TENGAH SEMESTER GASAL TAHUN AKADEMIK 2021/2022

NAMA : FADHLAN BARIQI


NIM : 2044190015
MATA KULIAH : PEMROGRAMAN BERORIENTASI OBJEK
PROGRAM STUDI : INFORMATIKA (S-1)
HARI\TANGGAL MULAI : JUMAT, 12 NOVEMBER – 19 NOVEMBER 2021
FAKULTAS : TEKNIK
SIFAT UJIAN : TAKE HOME EXAM (Open Book\Resources)

SOAL UJIAN

Perhatikan kode program di bawah ini:

class Bank

1 package thebank;
2
3 public class Bank {
4 protected String nmrRekening;
5 protected String nama;
6 private double saldo;
7
8 public Bank(String nmrRekening, String nama, double saldo) {
9 nmrRekening = nmrRekening;
10 nama = nama;
11 saldo = saldo;
12 }
14 public Bank(String nmrRekening, double saldo, String nama) {
15 nmrRekening = nmrRekening;
16 saldo = saldo;
17 nama =nama;
18 }
19 }
Class MyBank

1 public class MyBank (


2 public static void main(String[] args) {
3 Bank acc01 = newBank(“1230001234”, 1000000, “Budi”)
4 System.out.println(acc01.nmrRekening);
5 System.out.println(acc01.nama);
6 }
7 }

Soal

1) [10%] Sebutkan apa yang kurang pada file MyBank.java tersebut agar baris ke-3 dari
class MyBank tidak ada pesan kesalahan?
Jawaban : kurang menambahkan parameter dan menambahkan kata kunci this. Jadi
terkena variable shadowing maka terjadi error pada baris ke 3 di class MyBank.
Setelah diperbaiki di class Bank dan class MyBank :

Class Bank :
Class MyBank :

2) [10%] Class mana sajakah yang dapat mengakses secara langsung field protected
String nmrRekening dan protected String nama pada class Bank tersebut?
Jawaban : yang dapat mengakses diturunan nya dan di package yang sama, yaitu
class Bank nya sendiri juga dapat mengakses
3) [40%] Untuk dapat mengubah dan memanggil field private double saldo pada class
Bank tersebut di atas, apa yang harus dilakukan? Tuliskan Kode nya!
Jawaban :
Class bank :
Class MyBank :

4) [10%] Pada baris ke-3 class MyBank terdapat instansiasi objek dengan memanggil
constructor pada class Bank. Pada baris berapa constructor tersebut berada?
Jawaban : setelah ditambah method/syntax mengubah field private saldo, maka
constructor pada class bank terdapat di baris 22 – 27

Class Bank :
5) [20%] Jelaskan apa yang terjadi pada baris ke-4 dan ke-5 pada class MyBank.
Bagaimana solusinya agar tetap dapat mendapatkan data nomor rekening dan
nama? Tuliskan kodenya!
Jawaban : harus menerapkan method overloading constructor
6) [10%] Periksalah constructor pada baris 8-12 dan baris 14-18 apakah terdapat
kesalahan atau tidak. Jika terjadi kesalahan maka tuliskan yang benar
Jawaban : sebelum diubah constructor pada baris 8-12 dan baris 14-18 terjadi
kesalahan yaitu variable shadowing karena parameter dan field dari kedua
constructor tersebut sama.
Maka untuk menghindari variable shadowing di antara constructor tersebut, harus
menambahkan kata kunci this. Seperti dibawah ini

CATATAN: Jawablah dengan singkat dan jelas. Segala bentuk plagiarisme akan
mendapatkan sanksi, baik berupa pengurangan nilai sampai dengan sanksi tidak
lulus. Kerjakan dengan teliti dan berusahalah untuk mengerjakan sendiri!

Anda mungkin juga menyukai