Bab 4
Bab 4
BAB 10 INHERITANCE1
C. TUGAS PENDAHULUAN
1. Apa yang dimaksud dengan inheritance?
Inheritance atau Pewarisan/Penurunan adalah konsep pemrograman dimana
sebuah class dapat ‘menurunkan’ property dan method yang dimilikinya kepada
class lain.
3. Adakah perbedaan cara mengakses member class milik parent dan member class milik
sendiri? Jelaskan melalui contoh ! (Silahkan memanfaat jawaban soal nomor 2.)
Pengaksesan member yang ada di parent class dari subclass-nya tidak berbeda
dengan pengaksesan member subclass itu sendiri. Misalnya di class Manajer kita
ingin mengakses data member nama melalui sebuah function member IsiData(),
sekaligus kita juga ingin mengakses data member departemen di class Manajer.
D. PERCOBAAN
Penyembunyian Informasi
Source Code : Pegawai.java
Analisis :
Program di atas tidak bisa dijalan kan, itu terjadi karena class Manajer tidak mewarisi data
member nama dari parent class-nya (Pegawai). Dapat dilihat data member nama memiliki access
modifier private, yang dimana private tidak bisa dipanggil diluar classnya
E. LATIHAN
1. Latihan 1. Tempatkan class Base dan class Class1 di direktori yang sama. Apa yang
terjadi ketika Class1.java dikompile dan dijalankan jika sebelumnya Base.java
belum dikompile? Jelaskan !
Source Code : Base.java
package Base;
class Base {
protected void amethod() {
System.out.println("amethod");
}
}
package Class1;
Analisis :
Program di atas terjadi error karena untuk mewarisi suatu class harus berada di satu package
yang sama
class HumptyDumpty {
private void myMethod() {}
}
class HumptyDumpty {
void myMethod() {}
}
Analisis :
Pada soal a jawabannya adalah access modifier private, karena private bisa digunakan jika dalam
class yang sama. Sedangkan soal b jawabannya adalah penambahan keywords @Override
3. Latihan 3.
a. Apa yang terjadi bila kedua kode dibawah ini dikompile dan dijalankan dalam
satu direktori? Jelaskan !
b. Bagaimana solusi supaya tidak terjadi error?
Source Code : P1.java
package P1;
public class P1 {
public void aFancyMethod() {
System.out.println("What a fancy method");
}
}
package P2;
import P1.P1;
Analisis :
Program di atas terjadi error karena access modifier dari class P1.java adalah default, yaitu hanya
bisa diturunkan dalam package yang sama. Untuk memperbaiki error ditambahkan public pada
class P1 dan pada method aFancyMethod(). Kemudian pada file P2.java ditambah kodingan
import P1.P1 untuk memanggil class P1 yang diluar package
package perbankan;
}
public int getSaldo(){
return saldo;
}
public void setSaldo(int val){
this.saldo=val;
}
}
package perbankan;
public class PenyimpananUang extends Tabungan {
package perbankan;
import perbankan.*;
Hasil :
Analisis :
F. TUGAS
Mengimplementasikan UML class diagram dalam program untuk package perbankan
Source Code : Tabungan.java
package perbankan;
}
public int getSaldo(){
return saldo;
}
public void setSaldo(int val){
this.saldo=val;
}
}
package perbankan;
}
public PengambilanUang(int saldo, int tingkatBunga){
super.setSaldo(saldo - tingkatBunga);
this.proteksi = tingkatBunga;
}
public int getSaldo(){
return super.getSaldo() + proteksi;
}
public boolean ambilUang(int jumlah){
if(jumlah <= super.getSaldo()){
super.setSaldo(super.getSaldo() - jumlah);
return true;
} else {
return false;
}
}
}
import perbankan.*;
Hasil :
Analisis :
C. TUGAS PENDAHULUAN
1. Ada berapa modifier untuk pengontrolan akses? Jelaskan masing – masing!
2. Apakah kegunaan kata kunci super? Jelaskan!
3. Apakah yang dimaksud dengan konstruktor tidak diwariskan?
D. PERCOBAAN
1. Percobaan 1 : Menggunakan kata kunci super
Source Code : Parent.java
package Percobaan1;
package Percobaan1;
Hasil :
Analisis :
Program di atas adalah percobaan menggunakan kata kunci super. Yang dimana super ini berarti
mengambil nilai aslinya atau nilai pada kelas induknya.
package Percobaan2;
package Percobaan2;
Analisis :
Program di atas menjelaskan sebelum melakukan pemanggilan variabel, harus ada pemanggilan
dari class induk dengan menggunakan kata kunci super(). Jika kata kunci super() diletakkan
setelah pemanggilan variabel nilai, maka akan terjadi error pada program
E. LATIHAN
1. Latihan 1 : Konstruktor tidak diwariskan
Source Code : Parent.java
package Latihan1;
class Base {
Base(int i){
System.out.println("base constructor");
}
Base(){
}
}
Sup(){
super(1);
}
Hasil :
Analisis :
Untuk memanggil base constructor di class Base, menggunakan kata super ditambah dengan
nilai variabelnya. Untuk method derived di bikin object Base dan di panggil dengan syntax
s.derived()
package Latihan2;
package Latihan2;
Hasil :
Analisis :
Yang terjadi pada program di atas adalah, terpanggil variabel i baik di class induk maupun di
class anak. Hal ini terjadi karena di kelas anak ada jenis modifier yang digunakan, yaitu modifier
static. Yang dimana static ini adalah sebuah modifier di java yang berfungsi agar suatu varuabel
method dapat diakses oleh class atau object tanpa harus melakukan instansiasi terhadap class
tersebut. Jadi nilai i di class induk maupun anak akan tetap terpanggil karena modifier static
3. Latihan 3 : Apa yang tampil di layar bila kode dibawah ini dijalankan?
Source Code : Base.java
package Latihan3;
class X{
Y b = new Y();
X(){
System.out.println("X");
}
}
class Y{
Y(){
System.out.println("Y");
}
}
Hasil :
Analisis :
Hasil dari program tersebut adalah Y, X, Y, Z. Hasil nya seperti itu karena memanggil class Z,
dimana class Z ini adalah anak dari class X, maka X dipanggil. Di class X sendiri ada pembuatan
object dengan nilai class Y, y tercetak dan kemudian X tercetak di class Z juga ada pembuatan
object Y, maka Y tercetak dan terakhir Z tercetak
4. Latihan 4 : Kompile dan jalankan program berikut! Apa yang terjadi? Jelaskan!
Source Code : Base.java
package Latihan3;
class X{
Y b = new Y();
X(){
System.out.println("X");
}
}
class Y{
Y(){
System.out.println("Y");
}
}
Hasil :
Analisis :
Hasil dari program tersebut adalah Y, X, Y, Z. Hasil nya seperti itu karena memanggil class Z,
dimana class Z ini adalah anak dari class X, maka X dipanggil. Di class X sendiri ada pembuatan
object dengan nilai class Y, y tercetak dan kemudian X tercetak di class Z juga ada pembuatan
object Y, maka Y tercetak dan terakhir Z tercetak
F. TUGAS