Tujuan
1. Memahami konsep Inheritance serta implementasinya pada program.
2. Memahami konsep Polimorfisme serta implementasinya pada program.
3. Memahami keyword abstract serta implementasinya pada program.
4. Memahami keywords package dan import serta implementasinya pada program.
Class dapat didefinisikan dengan referensi pada class yang lain yang telah terdefinisi.
Inheritance merupakan pewarisan atribut dan method pada sebuah class yang diperoleh dari
class yang telah terdefinisi tersebut.
Setiap subclass akan mewarisi state ( variabel- variabel ) dan behaviour ( method-
method ) dari superclass-nya.
Subclass kemudian dapat menambahkan state dan behaviour baru yang spesifik.
Subclass dapat pula memodifikasi ( override) state dan behaviour yang diturunkan oleh
superclass-nya.
Keuntungan implementasi inheritance :
o Subclass menyediakan state/behaviour yang spesifik yang membedakannya
dengan superclass, dengan tujuan untuk penggunaan ulang source code dari
superclass yang telah ada.
o Programmer Java dapat mendefinisikan superclass khusus yang bersifat
generik, yang disebut abstract class, untuk mendefinisikan class dengan
behaviour dan state secara umum.
Istilah dalam inheritance :
o Extends
Keyword ini harus kita tambahkan pada definisi class yang menjadi subclass.
o Superclass
Superclass digunakan untuk menunjukkan hirarki class yang berarti class dasar dari
subclass/class anak.
o Subclass
Subclass adalah class anak atau turunan secara hirarki dari superclass.
Istilah dalam inheritance :
o Super
Keyword ini digunakan untuk memanggil konstruktor dari superclass atau
menjadi variabel yang mengacu pada superclass.
o Methode Overriding
Pendefinisian ulang method yang sama pada subclass dengan superclass untuk
tujuan implementasi method yang berbeda.
POLIMORFISME
Kata polimorfisme yang berarti satu objek dengan banyak bentuk yang berbeda.
Polimorfisme berarti kemampuan dari suatu variabel referensi objek untuk memiliki
aksi berbeda bila method yang sama dipanggil, dimana aksi method tergantung dari
tipe objeknya.
Kondisi yang harus dipenuhi dalam prinsip
Polimorfisme :
o Method yang dipanggil harus melalui variabel dari basis class atau
superclass.
o Method yang dipanggil harus juga menjadi method dari basis class.
o Signature method harus sama baik pada superclass maupun subclass.
o Method access attribute pada subclass tidak boleh lebih terbatas dari basis
class (superclass).
ABSTRACT
Merupakan mekanisme dalam pemrograman java yang memungkinkan suatu metode
ditentukan dari dalam SuperClass namun tidak disertai dengan pendefinisiannya.
Metode demikian dinamakan sebagai metode abstract sedangkan kelas-nya
(SuperClass) dinamakan sebagai kelas abstract.
Definisi metode abstract harus didefinisikan disetiap kelas turunannya (SubClass).
Import nama_paket.nama_kelas;
1. Membuat paket dengan cara menyediakan folder terlebih dahulu sebagai tempat
untuk menyimpannya file-file class dari program- program java yang dibuat
sebelum proses eksekusi.
2. Melakukan proses compile dengan menggunakan instruksi berikut :
javac [spasi] –d [spasi] [spasi]namaFile.java
3. Jika class-class java yang dibuat tidak saling berkaitan atau tidak mengimplementasikan
inheritance di dalam paket, maka sisipkan instruksi tersebut di posisi awal (teratas) program
anda, sebelum pendefinisian access modifier serta nama class program anda, yaitu:
void void
int x, y TampilkanN int z TampilkanJ
ilaixy() umlah()
“Nilai x : “Jumlah :
“+x+”, y : “+y “+(x+y+z)
ret ret
start Q W E R
A
“Subclass
VarsuperOb=new “Subclass” “Subclass” “Superclass”
Jumlah”
A()
B
VarsubOb=new VarsubOb.x=5 VarsubOb.z=30 VarsubOb.x=15 VarsuperOb.x=10
B()
VarsubOb.Tampi
“Superclass” VarsubOb.y=4 VarsubOb.y=14 VarsuperOb.y=20
lkanJumlah
E
VarsubOb.Tampi VarsubOb.Tampi VarsubOb.Tampi
VarsuperOb.x=10
lkanNilaixy() lkanNilaixy() lkanNilaixy()
R end
VarsuperOb.y=20 W
VarsuperOb.Ta
mpilkanNilaixy()
Q
Analisis:
DemoKelasTurunan2
ret a ret b
a=nilai b=nilai
ret ret
public void
public int
Private int c setC(int
getC()
nilai)
ret c
c=nilai
ret
start X Y Z
“Nilai a :
“Nilai i :
C obj=new C() obj.setA(100) “+obj.getA
“+obj.i
()
“Nilai b :
“Nilai j :
obj.i=10 obj.setB(200) “+obj.getB
“+obj.j
()
“Nilai c : end
obj.j=20 obj.setC(300) “+obj.getC
()
X Y Z
Analisis:
2) Polimorfism
Polimorfisme
ret “Bentuk
Dasar” ret
this.panjang*this.l
this.panjang=panja ebar/2
ng2
public public
public int
BujurSangkar(int String
hitungluas()
panjang1, int lebar1) getBentuk() this.lebar=lebar2
this.lebar=lebar1
SegiTiga
BujurSangkar bs1=new cetakLuasBentu cetakLuasBentu
st1=new
BujurSangkar(10,20) k(bs1) k(st1)
ret SegiTiga(50,100)
X Y Z End
Analisis:
DemoPolimorfisme1
public void
bernyanyi()
public void
bernyanyi()
public void public void
bernyanyi() bernyanyi()
“Karakteristik
nadanya
“+”belum “Bernyanyi
didefinisikan” dengan irama
“Bernyanyi “Bernyanyi
Pop”
dengan irama dengan irama
Jazz” Dangdut”
ret
ret
ret ret
Start X Y
PenyanyiJazz
musmujiono=new p.bernyanyi() p=inul
PenyanyiJazz()
PenyanyiPop
audi=new p=audi p.bernyanyi()
PenyanyiPop()
PenyanyiDangdut Y End
inul=new
PenyanyiDangdut()
X
Analisis:
3) Abstract (DemoKelasAbstrak1)
abstract Start X
public void public void
public void
cobajuga() coba()
coba()
A ref ref.cob
“Method non-
“Method
abstrak “+”di
di dalam
dalam kelas
kelas B”
abstrak”
ret
End
ref=obj
Start X
A ref ref.coba()
End
ref=obj
X
Analisis:
4) Package dan Import (DemoPanggilPaket)
PACKAGE
public public
private double
Segitiga(double double
tinggi, alas
tinggi, double alas) luas()
ret
((tinggi*alas)/2)
this.tinggi=tinggi
this.alas=alas
Analisis:
IMPORT
import import
ContohPkg.Lingkaran ContohPkg.Segitiga
Start
“Luas lingkaran :
“+obLingkaran.luas()
Lingkaran
obLingkaran=new
Lingkaran()
“Keliling lingkaran :
“+obLingkaran.keliling()
Segitiga
obSegitiga=new
Segitiga()
“Luas Segitiga :
“+obSegitiga.luas()
End
Analisis:
V. Kesimpulan