Anda di halaman 1dari 4

M.

Irfan Miftah
Rahardjo
24060118120029
LATIHAN SOAL UTS

1. Konsep
a) Perbedaan overloading dengan overriding
Overloading Overriding
terdapat konstruktor dan method dengan Mendefinisikan ulang metode yang ada
nama yang sama dalam satu kelas. pada super class.
Dideklarasikan lebih dari satu dengan
parameter berbeda.
Di dalam satu kelas yang sama Di dalam kelas yang berbeda namun
dengan nama method yang sama
Nama method sama namun dengan Nama method sama namun yang berbeda
parameter yang berbeda. adalah isi dari method tersebut.

b) Fungsi selector-mutator
Selector untuk mengambil nilai atribut. Biasanya menggunakan get, namun untuk
tipe data boolean menggunakan is.
Mutator untuk mengubah nilai atribut. Menggunakan set.

2. Fix me!
a) Yang tidak tepat dari implementasi tersebut adalah pada kelas BujurSangkar
seharusnya atribut sisi tidak private agar dapat diwariskan ke kelas Kubus. Di kelas
Kubus, seharusnya menggunakan apa yang sudah diwariskan dari kelas BujurSangkar,
seperti fungsi hitungLuas().
b) Implementasi
class BujurSangkar
sisi : real, protected

constructor BujurSangkar(sisi : real)


this.sisi sisi
{selector-mutator}
function getSisi() real
this.sisi
function hitungLuas() real
this.sisi * this.sisi
end class BujurSangkar
class Kubus inherits BujurSangkar
constructor Kubus(sisi : real)
super(sisi)
{selector-mutator}
function hitungLuasPermukaan() real
6 * super.hitungLuas()
function hitungVolume() real
super.hitungLuas * super.getSisi()
end class Kubus

3. Implementasi
class ItemKoleksi
id : int, protected
judul : String, protected
tahunTerbit : int, protected
counter : int,static, protected

constructor ItemKoleksi(id : int, judul : String, tahunTerbit : int)


this.id id this.judul judul
this.tahunTerbit tahunTerbit
counter = counter + 1

{selector-mutator}
function getCounter() int
counter
function getId() int
this.id
function getJudul() String
this.judul
function getTahunTerbit() int
this.tahunTerbit
procedure printInfo()
output(‘ID : ’, this.get.Id(), ’Judul : ’, this.getJudul(), ‘Tahun Terbit : ’,
this.tahunTerbit())
end class ItemKoleksi
class Buku inherits ItemKoleksi
pengarang : String, private

constructor Buku(id : int, judul : String, tahunTerbit : int, pengarang : String)


super(id, judul, tahunTerbit)
this.pengarang pengarang

{selector-mutator}
function getPengarang() String
this.pengarang
procedure printInfo()
super.printInfo()
output(‘Pengarang : ’, this.getPengarang())
procedure hitungBiayaPinjam(lamaPinjam : int)
output(‘Biaya peminjaman buku : Rp ’, (lamaPinjam * 500))
end class Buku

class Majalah inherits ItemKoleksi


bulanTerbit : int, private

constructor Majalah(id : int, judul : String, tahunTerbit : int, bulanTerbit : int)


super(id, judul, tahunTerbit)
this.bulanTerbit bulanTerbit

{selector-mutator}
function getBulanTerbit() int
this.bulanTerbit
procedure printInfo()
super.printInfo()
output(‘Bulan Terbit : ’, this.getBulanTerbit())
procedure hitungBiayaPinjam(lamaPinjam : int)
output(‘Biaya peminjaman majalah : Rp ’, (lamaPinjam * 1500 *
(1+(1/this.getBulanTerbit))))
end class Majalah
class Proceding inherits ItemKoleksi
cetakanKe : int, private

constructor Proceding(id : int, judul : String, tahunTerbit : int, cetakanKe : int)


super(id, judul, tahunTerbit)
this. cetakanKe cetakanKe
constructor Proceding(id : int, judul : String, tahunTerbit : int)
super(id, judul, tahunTerbit)

{selector-mutator}
procedure setCetakanKe(cetakanKe : int)
this.cetakanKe cetakanKe
function getCetakanKe() int
this.cetakanKe
procedure printInfo()
super.printInfo()
output(‘Cetakan ke : ’, this.getCetakanKe())
procedure hitungBiayaPinjam(lamaPinjam : int)
output(‘Biaya peminjaman majalah : Rp 5000’)
end class Proceding

Anda mungkin juga menyukai