SlideShare a Scribd company logo
1 of 25
Object Oriented Programming (OOP)
--Inheritance-
Saniati
saniati@teknokrat.ac.id
STMIK Teknokrat, Bandar Lampung
saniati@teknokrat.ac.id 11/17/2016
Karakteristik OOP
• Inheritance
• Polimorphisme
saniati@teknokrat.ac.id 11/17/2016
Inheritance
• Membuat class baru yang merupakan turunan dari existing class
• Class baru tersebut akan mewarisi semua field dan method yang
ada di kelasnya.
• Untuk membuat sebuah kelas (subclass/child class) menjadi
turunan kelas lain(super class/parent class), digunakan kata kunci
“extends”
public static SubClass extends ParentClass {♦ ♦ ♦}
saniati@teknokrat.ac.id 11/17/2016
public class Main {
public static void main(String[1 argsi {
Pesawat boeing = new Pesawatf);
PesawatTempur fl6 = new PesawatTempurM;
boeine
.terbangi');
fl6.mendarat
//boeing.manuver()j
f 16.
manuver
ERR3R
PesawatTempur
extends Pesawat
F16 merupakan object
subclass(PesawatTempur), sehingga memiliki
semua method parentclass(Pesawat) ditambah
saniati@teknokrat.ac.id 11/17/2016
milik sendiri.
saniati@teknokrat.ac.id 11/17/2016
Overriding
Mengijinkan subclass mendefinisikan ulang method yang
dimiliki parentclassnya.
Method terbang() yang di eksekusi adalah
milik sendiri (subclass)
1
saniati@teknokrat.ac.id 11/17/2016
public class PesaivatTempur extends Pesawat { int rudal = 4j PesawatTeimpur(){
System, out. println ( "obj ect pesawat TEMPUR dibuat,,.1
'); }______
object pesaivat dibuat... object
pesaivat TEMPUR dibuat. , .
• Jika ingin membuat object dari sebuah subclass, yang terjadi yaitu:
• Jvm akan membuat object dari parent class terlebih dahulu
• Setelah itu jvm baru akan membuat object dari subclass
/------------------------------------------------------------------------
Object superclass/ parentclass
akan buat terlebih dahulu, lalu
object subclass/childclass
V
public class Main {
public static void main(String[] args) {
saniati@teknokrat.ac.id 11/17/2016
PesawatTempur fl6 = new PesawatTempur();
} '
saniati@teknokrat.ac.id 11/17/2016
Super();
• Pada kasus sebelumnya:
• object subclass dibuat oleh programmer,
• sedangkan object superclass dibuatkan oleh JVM dengan syarat
constructor tanpa parameter
• jika ingin menggunakan parameter, maka pada constructor
subclass didefinisikan pemanggilan constructor superclass
dengan keyword “super”
• Super untuk memanggil constructor parent class, syarat:
• Harus dibaris paling atas
• Hanya boleh satu kali
• Hanya boleh dilakukan dari constructor subclass
saniati@teknokrat.ac.id 11/17/2016
Inheritance
public class Tiga {
public staticvoid main(String[] args) {
Satu sa = new Satu();
}
1 ______
saniati@teknokrat.ac.id 11/17/2016
Object Parameter
Parameter bukan variabel
primitif, melainkan user defined (object)
saniati@teknokrat.ac.id 11/17/2016
Javap Namaclass
• Jika ingin mengetahui, sebuah class memiliki method apa saja, dapat
digunakan perintah “javap namaclass”
E:pelatihan>jauap Mobil
Compiled from
"Mobil.jaua" public class
Mobil < int mesin; int
roda; int bod^;
MobilO;
MobiKint, int, int>;
MobiKint, int, int, jaua. lang.String} ;
void majuO; void mundurO; void
belokO;
saniati@teknokrat.ac.id 11/17/2016
Kasus
Jika ingin memiliki fungsi test () untuk banyak binatang,
maka harus didefinisikan banyak fungsi test. Bagaimana agar
cukup satu fungsi untuk semua nya?
saniati@teknokrat.ac.id 11/17/2016
IS-A
• Buatlah kelas yang memiliki sifat umum (generik) yang mewakili
kelas-kelas lainnya, lalu jadikan superclass bagi sub-subclass.
• Karena tiap subclass IS-A superclass
saniati@teknokrat.ac.id 11/17/2016
Parameter merujuk pada Object yang lebih
generik, sehingga semua turunan Binatang
(Gajah, Kerbau) dapat dimasukkan ke
dalam parameter
Polymorphism
saniati@teknokrat.ac.id 11/17/2016
//compile time binding
//early binding
Polymorphisme
//late binding //run time binding
static void testiEinatang x){
x.makan();
x.tidurQ;
Object bisa berubah-ubah bentuk
RTTI = Run Time Type Identification = tipe data diidentifikasi
ketika program running
LATE BINDING = sebuah object akan di bind ke sebuah method
ketika runtime (bukan ketika compile)
POLY — banyak
MORP — bentuk
static void testrKerbau x){
x.makanf);
x.tidurf);
saniati@teknokrat.ac.id 11/17/2016
Polymorphisme
• Deklarasi Superclass namaobject = new SubClass()
lebih sering diimplementasikan.
• Hal tersebut memudahkan dalam
melakukan koleksi object
public class BonBin {
static void test(Binatang x){ x,makan(); x.tidur() i
}
pnh"l n r ctsti r uni rl mainKtrin sU. -■ "f ■) {
Binatang[] bin = {new
Gajah(), new Kerbau()};
test(bin[ti]) •,
test(bin[l]};
} ' ' '
1______________________
Koleksi (array)
saniati@teknokrat.ac.id
Error, karena object g hanya dapat mengakses
atribut dan method dari Binatang
Object g dicasting sehingga dapat mengakses
semua atribut dan method dari Gajah
11/17/2016
Casting
Object
public class Gajah extends Binatang{ void
makan(){
System.out.printlnf'Gajah
M a k a n . . ;
}
void tidur(){
System, out. printing "Gajah
Tidur...”);
}
void duduk(){
System, out. printlnf'Gajah Duduk. .
.”);
}
} ______________________________________________
public class Binatang { void imakan(){
System,out.println("Makan }
'
‘
void tidur(){
System,out.println("Tidur } ' ‘
saniati@teknokrat.ac.id 11/17/2016
Abstract
• Abstract class merupakan class yang hanya mendeklarasikan
methodnya, tanpa implementasi isi.
• Abstract class minimal memiliki satu abstract method
• Baik class maupun method harus ditambahkan keyword “abstract”
• Konsekuensi abstract class, tidak dapat dicreate objectnya, tapi yang
mengimplementasikannya bisa.
• Keuntungannya, lebih simpel dan hemat memori(tidak dibuatkan
objectnya oleh jvm).
i
saniati@teknokrat.ac.id 11/17/2016
labstract class Binatang {
abstract
abstract
void makan()i
void tidur()i
public class Gajah extends Binatarig{ void
makanQ{
System, out ,println(''Gajah Makan...”); } ' '
void tidur(){
System, out ,println(''Gajah Tidur. . .”); }
' '
} __________________________________________________
public class Kerbau extends Binatang{ void
makan(){
System,out, println("Gajah Makan }
'
void tidur(){
System,out. println( "Gajah Tidur }
'
public class BonBin {
static void test(Binatang x){
K.makan();
K.tidur();
}
public static void main(String[] arg s ) {
Binatang g = new Gajah();
Binatang k = new Kerbau();
test(g); test(k);
Abstract Class (2)
saniati@teknokrat.ac.id 11/17/2016
Boleh mengandung
method yang tidak
abstract
public class BonBin {
static void test(Binatang x){
K,makan(); K.tidur()i
}
public static void main(String[] args) {
Binatang g = new Gajah();
Binatang k = new Kerbau();
test(g);
test(k)i
Abstract Class (3)
saniati@teknokrat.ac.id 11/17/2016
Tidak implement method makan(),
maka wajib menjadi abstract class
Abstract Class (4)
Jika subclass dari class abstract tidak mengimplementasikan method
abstract, maka subclass wajib menjadi kelas abstract juga, sehingga
tidak bisa dibuat objeknya
saniati@teknokrat.ac.id 11/17/2016
Interface
• Cara menghasilkan efek polimorphisme
• Extends dari class biasa
• Extend dari abstract class
• Implement sebuah interface
• Interface:
• Mirip seperti abstract class, tapi semua method HARUS abstract
• Class yang mengimplement menggunakan keyword “implement”
bukan “extends
• Class yang mengimplement HARUS mengimplement SEMUA
method yang dideklarasikan dalam interface dan HARUS diberi label
“public”
• Sebuah class BISA mengimplement lebih dari satu interface
saniati@teknokrat.ac.id 11/17/2016
Interface (2) Interface, seluruh method akan bersifat
abstract, baik ditulis maupun tidak
Class yang ingin memiliki sifat interface,
harus “implements” dan semua method yang
method harus “public”
saniati@teknokrat.ac.id 11/17/2016
Reference
• Pemaparan materi TOT Java Fundamental oleh bapakTri
Haryoko (7-11 Nopember 2016, Bandar Lampung)
• https://docs.oracle.com/javase/tutorial/java
• “Thinking in Java”, Bruce Eckel

More Related Content

What's hot

Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)Melina Krisnawati
 
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
 
15. konsep java class library (jcl)
15. konsep java class library (jcl)15. konsep java class library (jcl)
15. konsep java class library (jcl)Saprudin Eskom
 
Laporan PBO Pratikum 3
Laporan PBO Pratikum 3Laporan PBO Pratikum 3
Laporan PBO Pratikum 3rahmi wahyuni
 
Laporan PBO pratikum 2
Laporan PBO pratikum 2Laporan PBO pratikum 2
Laporan PBO pratikum 2rahmi wahyuni
 
Laporan Modul 1 Praktikum Pemrograman Berbasis Objek
Laporan Modul 1 Praktikum Pemrograman Berbasis ObjekLaporan Modul 1 Praktikum Pemrograman Berbasis Objek
Laporan Modul 1 Praktikum Pemrograman Berbasis ObjekKuncara Laksana
 
[PBO] Pertemuan 1 (praktik) - Pengenalan java
[PBO] Pertemuan 1 (praktik) - Pengenalan java[PBO] Pertemuan 1 (praktik) - Pengenalan java
[PBO] Pertemuan 1 (praktik) - Pengenalan javarizki adam kurniawan
 
Pemrograman Berorientasi Objek "Pengenalan JAVA"
Pemrograman Berorientasi Objek "Pengenalan JAVA"Pemrograman Berorientasi Objek "Pengenalan JAVA"
Pemrograman Berorientasi Objek "Pengenalan JAVA"Asnita Meydelia C K
 
Java (Netbeans) - Abstract & Interface - Object Oriented Programming
Java (Netbeans) - Abstract & Interface - Object Oriented ProgrammingJava (Netbeans) - Abstract & Interface - Object Oriented Programming
Java (Netbeans) - Abstract & Interface - Object Oriented ProgrammingMelina Krisnawati
 
Tugas Praktikum Pemrograman Berorientasi Objek
Tugas Praktikum Pemrograman Berorientasi ObjekTugas Praktikum Pemrograman Berorientasi Objek
Tugas Praktikum Pemrograman Berorientasi ObjekPungkas Soebarkah
 
Object oriented programming menggunakan java
Object oriented programming menggunakan javaObject oriented programming menggunakan java
Object oriented programming menggunakan javaAntara BoyKean
 
Network Programming 2 - Dasar Pemrograman Java
Network Programming 2 - Dasar Pemrograman JavaNetwork Programming 2 - Dasar Pemrograman Java
Network Programming 2 - Dasar Pemrograman JavaLia Rusdyana Dewi
 
Kelas dan objek
Kelas  dan objekKelas  dan objek
Kelas dan objekroy naldo
 
Pemrograman Berorientasi Objek "Pengenalan Dasar Pemrograman JAVA"
Pemrograman Berorientasi Objek "Pengenalan Dasar Pemrograman JAVA"Pemrograman Berorientasi Objek "Pengenalan Dasar Pemrograman JAVA"
Pemrograman Berorientasi Objek "Pengenalan Dasar Pemrograman JAVA"Asnita Meydelia C K
 
Network programming 03- Pemrograman Java Lanjutan
Network programming 03- Pemrograman Java LanjutanNetwork programming 03- Pemrograman Java Lanjutan
Network programming 03- Pemrograman Java LanjutanLia Rusdyana Dewi
 
Laporan1
Laporan1Laporan1
Laporan1Sa Lam
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.7)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.7)Modul Praktikum Pemrograman Berorientasi Objek (Chap.7)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.7)Debby Ummul
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)Debby Ummul
 

What's hot (20)

Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
 
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)
 
15. konsep java class library (jcl)
15. konsep java class library (jcl)15. konsep java class library (jcl)
15. konsep java class library (jcl)
 
Laporan PBO Pratikum 3
Laporan PBO Pratikum 3Laporan PBO Pratikum 3
Laporan PBO Pratikum 3
 
Laporan PBO pratikum 2
Laporan PBO pratikum 2Laporan PBO pratikum 2
Laporan PBO pratikum 2
 
Laporan Modul 1 Praktikum Pemrograman Berbasis Objek
Laporan Modul 1 Praktikum Pemrograman Berbasis ObjekLaporan Modul 1 Praktikum Pemrograman Berbasis Objek
Laporan Modul 1 Praktikum Pemrograman Berbasis Objek
 
Laporan PBO Modul 4
Laporan PBO Modul 4Laporan PBO Modul 4
Laporan PBO Modul 4
 
[PBO] Pertemuan 1 (praktik) - Pengenalan java
[PBO] Pertemuan 1 (praktik) - Pengenalan java[PBO] Pertemuan 1 (praktik) - Pengenalan java
[PBO] Pertemuan 1 (praktik) - Pengenalan java
 
Pemrograman Berorientasi Objek "Pengenalan JAVA"
Pemrograman Berorientasi Objek "Pengenalan JAVA"Pemrograman Berorientasi Objek "Pengenalan JAVA"
Pemrograman Berorientasi Objek "Pengenalan JAVA"
 
Java (Netbeans) - Abstract & Interface - Object Oriented Programming
Java (Netbeans) - Abstract & Interface - Object Oriented ProgrammingJava (Netbeans) - Abstract & Interface - Object Oriented Programming
Java (Netbeans) - Abstract & Interface - Object Oriented Programming
 
Tugas Praktikum Pemrograman Berorientasi Objek
Tugas Praktikum Pemrograman Berorientasi ObjekTugas Praktikum Pemrograman Berorientasi Objek
Tugas Praktikum Pemrograman Berorientasi Objek
 
Modul praktikum PBO
Modul praktikum PBOModul praktikum PBO
Modul praktikum PBO
 
Object oriented programming menggunakan java
Object oriented programming menggunakan javaObject oriented programming menggunakan java
Object oriented programming menggunakan java
 
Network Programming 2 - Dasar Pemrograman Java
Network Programming 2 - Dasar Pemrograman JavaNetwork Programming 2 - Dasar Pemrograman Java
Network Programming 2 - Dasar Pemrograman Java
 
Kelas dan objek
Kelas  dan objekKelas  dan objek
Kelas dan objek
 
Pemrograman Berorientasi Objek "Pengenalan Dasar Pemrograman JAVA"
Pemrograman Berorientasi Objek "Pengenalan Dasar Pemrograman JAVA"Pemrograman Berorientasi Objek "Pengenalan Dasar Pemrograman JAVA"
Pemrograman Berorientasi Objek "Pengenalan Dasar Pemrograman JAVA"
 
Network programming 03- Pemrograman Java Lanjutan
Network programming 03- Pemrograman Java LanjutanNetwork programming 03- Pemrograman Java Lanjutan
Network programming 03- Pemrograman Java Lanjutan
 
Laporan1
Laporan1Laporan1
Laporan1
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.7)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.7)Modul Praktikum Pemrograman Berorientasi Objek (Chap.7)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.7)
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)
 

Viewers also liked

Tradedoubler mobile-shopping-2014
Tradedoubler mobile-shopping-2014Tradedoubler mobile-shopping-2014
Tradedoubler mobile-shopping-2014Marketing4eCommerce
 
Warm Weather Signals Danger of Brain-Eating Amoeba
Warm Weather Signals Danger of Brain-Eating AmoebaWarm Weather Signals Danger of Brain-Eating Amoeba
Warm Weather Signals Danger of Brain-Eating AmoebaCost U Less Direct
 
God's Gift: How Do You Respond?
God's Gift: How Do You Respond?God's Gift: How Do You Respond?
God's Gift: How Do You Respond?HaynesStreet
 
Egypt j bronchol_2016_10_3_243_193629
Egypt j bronchol_2016_10_3_243_193629Egypt j bronchol_2016_10_3_243_193629
Egypt j bronchol_2016_10_3_243_193629Saher Farghly
 
ใบงานความสัมพันธ์
ใบงานความสัมพันธ์ใบงานความสัมพันธ์
ใบงานความสัมพันธ์AirkiZa Supicha
 
Lessons from Jonah - 3/9/2014
Lessons from Jonah - 3/9/2014Lessons from Jonah - 3/9/2014
Lessons from Jonah - 3/9/2014HaynesStreet
 
Intervisiebijeenkomst Bogerman Lio's
Intervisiebijeenkomst Bogerman Lio'sIntervisiebijeenkomst Bogerman Lio's
Intervisiebijeenkomst Bogerman Lio'sHerman Van Schie
 
Training CPS-consultants 24 april 2015
Training CPS-consultants 24 april 2015 Training CPS-consultants 24 april 2015
Training CPS-consultants 24 april 2015 Herman Van Schie
 
Catalog UNIqueFORMS
Catalog UNIqueFORMSCatalog UNIqueFORMS
Catalog UNIqueFORMSUNIqueFORMS
 
відсоткові розрахунки 6 кл.
відсоткові розрахунки 6 кл.відсоткові розрахунки 6 кл.
відсоткові розрахунки 6 кл.Viktoria Mikolaenko
 
The Spiritual Athlete
The Spiritual AthleteThe Spiritual Athlete
The Spiritual AthleteHaynesStreet
 
задачі на відсотки
задачі на відсоткизадачі на відсотки
задачі на відсоткиViktoria Mikolaenko
 
PAN Studio - Experience Design
PAN Studio - Experience DesignPAN Studio - Experience Design
PAN Studio - Experience DesignPANstudio
 
Web 2.0 Laat je uitdagen. 12 januari 2017
Web 2.0 Laat je uitdagen. 12 januari 2017Web 2.0 Laat je uitdagen. 12 januari 2017
Web 2.0 Laat je uitdagen. 12 januari 2017Herman Van Schie
 

Viewers also liked (20)

Tradedoubler mobile-shopping-2014
Tradedoubler mobile-shopping-2014Tradedoubler mobile-shopping-2014
Tradedoubler mobile-shopping-2014
 
Warm Weather Signals Danger of Brain-Eating Amoeba
Warm Weather Signals Danger of Brain-Eating AmoebaWarm Weather Signals Danger of Brain-Eating Amoeba
Warm Weather Signals Danger of Brain-Eating Amoeba
 
Cells
CellsCells
Cells
 
God's Gift: How Do You Respond?
God's Gift: How Do You Respond?God's Gift: How Do You Respond?
God's Gift: How Do You Respond?
 
Normas de auditoria
Normas de auditoria Normas de auditoria
Normas de auditoria
 
Egypt j bronchol_2016_10_3_243_193629
Egypt j bronchol_2016_10_3_243_193629Egypt j bronchol_2016_10_3_243_193629
Egypt j bronchol_2016_10_3_243_193629
 
ใบงานความสัมพันธ์
ใบงานความสัมพันธ์ใบงานความสัมพันธ์
ใบงานความสัมพันธ์
 
Lessons from Jonah - 3/9/2014
Lessons from Jonah - 3/9/2014Lessons from Jonah - 3/9/2014
Lessons from Jonah - 3/9/2014
 
Intervisiebijeenkomst Bogerman Lio's
Intervisiebijeenkomst Bogerman Lio'sIntervisiebijeenkomst Bogerman Lio's
Intervisiebijeenkomst Bogerman Lio's
 
Training CPS-consultants 24 april 2015
Training CPS-consultants 24 april 2015 Training CPS-consultants 24 april 2015
Training CPS-consultants 24 april 2015
 
Catalog UNIqueFORMS
Catalog UNIqueFORMSCatalog UNIqueFORMS
Catalog UNIqueFORMS
 
відсоткові розрахунки 6 кл.
відсоткові розрахунки 6 кл.відсоткові розрахунки 6 кл.
відсоткові розрахунки 6 кл.
 
MySender_eng_v5
MySender_eng_v5MySender_eng_v5
MySender_eng_v5
 
The Spiritual Athlete
The Spiritual AthleteThe Spiritual Athlete
The Spiritual Athlete
 
Kamonchanok sankunta
Kamonchanok sankuntaKamonchanok sankunta
Kamonchanok sankunta
 
задачі на відсотки
задачі на відсоткизадачі на відсотки
задачі на відсотки
 
PAN Studio - Experience Design
PAN Studio - Experience DesignPAN Studio - Experience Design
PAN Studio - Experience Design
 
Elaizag
ElaizagElaizag
Elaizag
 
Deloitte tmt-predictions-2014
Deloitte tmt-predictions-2014Deloitte tmt-predictions-2014
Deloitte tmt-predictions-2014
 
Web 2.0 Laat je uitdagen. 12 januari 2017
Web 2.0 Laat je uitdagen. 12 januari 2017Web 2.0 Laat je uitdagen. 12 januari 2017
Web 2.0 Laat je uitdagen. 12 januari 2017
 

Similar to 04 inheritance

Modul PBO Bab-06 - Polimorfisme (Polymorphism)
Modul PBO Bab-06 - Polimorfisme (Polymorphism)Modul PBO Bab-06 - Polimorfisme (Polymorphism)
Modul PBO Bab-06 - Polimorfisme (Polymorphism)Rakhmat Dedi Gunawan
 
Modul pratikum pbo - Polimorphism
Modul pratikum pbo - PolimorphismModul pratikum pbo - Polimorphism
Modul pratikum pbo - Polimorphismrahmantoyuri
 
Basic Java Application - Sesi 5
Basic Java Application - Sesi 5Basic Java Application - Sesi 5
Basic Java Application - Sesi 5Rudi Hartono
 
Materi object yg kosong
Materi object yg kosongMateri object yg kosong
Materi object yg kosongkgsrizky
 
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptxPEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptxBBXSQUAD
 
CCIT OOP Pertemuan 1
CCIT OOP Pertemuan 1CCIT OOP Pertemuan 1
CCIT OOP Pertemuan 1giamuhammad
 
Pemrograman java
Pemrograman javaPemrograman java
Pemrograman javaMutiara Ayu
 
Unit 6 polymorphism
Unit 6   polymorphismUnit 6   polymorphism
Unit 6 polymorphismNafta If
 
PBO ( Pemograman berbasis Objek ).pptx
PBO ( Pemograman berbasis Objek ).pptxPBO ( Pemograman berbasis Objek ).pptx
PBO ( Pemograman berbasis Objek ).pptxHeriPurwanto74
 
OOP - Inheritance
OOP - InheritanceOOP - Inheritance
OOP - InheritanceKuliahKita
 
pertemuan_06_-_Konsep_PBO(InheratanceMultiple_Inheratance_Polimorpisme.pptx
pertemuan_06_-_Konsep_PBO(InheratanceMultiple_Inheratance_Polimorpisme.pptxpertemuan_06_-_Konsep_PBO(InheratanceMultiple_Inheratance_Polimorpisme.pptx
pertemuan_06_-_Konsep_PBO(InheratanceMultiple_Inheratance_Polimorpisme.pptxssuserc54f06
 
Object oriented programming dengan php
Object oriented programming dengan phpObject oriented programming dengan php
Object oriented programming dengan phpMateri Kuliah Online
 
java-fundamental-dan-java-web-blibli-dot-com-ilmu-komputer-IPB
java-fundamental-dan-java-web-blibli-dot-com-ilmu-komputer-IPBjava-fundamental-dan-java-web-blibli-dot-com-ilmu-komputer-IPB
java-fundamental-dan-java-web-blibli-dot-com-ilmu-komputer-IPBifnu bima
 
Pengenalan Java
Pengenalan JavaPengenalan Java
Pengenalan JavaLaili Aidi
 

Similar to 04 inheritance (20)

Modul PBO Bab-06 - Polimorfisme (Polymorphism)
Modul PBO Bab-06 - Polimorfisme (Polymorphism)Modul PBO Bab-06 - Polimorfisme (Polymorphism)
Modul PBO Bab-06 - Polimorfisme (Polymorphism)
 
Modul pratikum pbo - Polimorphism
Modul pratikum pbo - PolimorphismModul pratikum pbo - Polimorphism
Modul pratikum pbo - Polimorphism
 
Basic Java Application - Sesi 5
Basic Java Application - Sesi 5Basic Java Application - Sesi 5
Basic Java Application - Sesi 5
 
Materi object yg kosong
Materi object yg kosongMateri object yg kosong
Materi object yg kosong
 
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptxPEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
 
Modul Object Oriented Programming
Modul Object Oriented ProgrammingModul Object Oriented Programming
Modul Object Oriented Programming
 
CCIT OOP Pertemuan 1
CCIT OOP Pertemuan 1CCIT OOP Pertemuan 1
CCIT OOP Pertemuan 1
 
Pemrograman java
Pemrograman javaPemrograman java
Pemrograman java
 
Unit 6 polymorphism
Unit 6   polymorphismUnit 6   polymorphism
Unit 6 polymorphism
 
mf488_10_092649.ppt
mf488_10_092649.pptmf488_10_092649.ppt
mf488_10_092649.ppt
 
Tugas 4
Tugas 4Tugas 4
Tugas 4
 
PBO ( Pemograman berbasis Objek ).pptx
PBO ( Pemograman berbasis Objek ).pptxPBO ( Pemograman berbasis Objek ).pptx
PBO ( Pemograman berbasis Objek ).pptx
 
OOP - Inheritance
OOP - InheritanceOOP - Inheritance
OOP - Inheritance
 
pertemuan_06_-_Konsep_PBO(InheratanceMultiple_Inheratance_Polimorpisme.pptx
pertemuan_06_-_Konsep_PBO(InheratanceMultiple_Inheratance_Polimorpisme.pptxpertemuan_06_-_Konsep_PBO(InheratanceMultiple_Inheratance_Polimorpisme.pptx
pertemuan_06_-_Konsep_PBO(InheratanceMultiple_Inheratance_Polimorpisme.pptx
 
PBO Pratikum 1
PBO Pratikum 1PBO Pratikum 1
PBO Pratikum 1
 
Modul pbo baru
Modul pbo baruModul pbo baru
Modul pbo baru
 
Object oriented programming dengan php
Object oriented programming dengan phpObject oriented programming dengan php
Object oriented programming dengan php
 
java-fundamental-dan-java-web-blibli-dot-com-ilmu-komputer-IPB
java-fundamental-dan-java-web-blibli-dot-com-ilmu-komputer-IPBjava-fundamental-dan-java-web-blibli-dot-com-ilmu-komputer-IPB
java-fundamental-dan-java-web-blibli-dot-com-ilmu-komputer-IPB
 
Pengenalan Java
Pengenalan JavaPengenalan Java
Pengenalan Java
 
13216 3 enkapsulasi
13216 3 enkapsulasi13216 3 enkapsulasi
13216 3 enkapsulasi
 

04 inheritance

  • 1. Object Oriented Programming (OOP) --Inheritance- Saniati saniati@teknokrat.ac.id STMIK Teknokrat, Bandar Lampung
  • 3. saniati@teknokrat.ac.id 11/17/2016 Inheritance • Membuat class baru yang merupakan turunan dari existing class • Class baru tersebut akan mewarisi semua field dan method yang ada di kelasnya. • Untuk membuat sebuah kelas (subclass/child class) menjadi turunan kelas lain(super class/parent class), digunakan kata kunci “extends” public static SubClass extends ParentClass {♦ ♦ ♦}
  • 4. saniati@teknokrat.ac.id 11/17/2016 public class Main { public static void main(String[1 argsi { Pesawat boeing = new Pesawatf); PesawatTempur fl6 = new PesawatTempurM; boeine .terbangi'); fl6.mendarat //boeing.manuver()j f 16. manuver ERR3R PesawatTempur extends Pesawat F16 merupakan object subclass(PesawatTempur), sehingga memiliki semua method parentclass(Pesawat) ditambah
  • 6. saniati@teknokrat.ac.id 11/17/2016 Overriding Mengijinkan subclass mendefinisikan ulang method yang dimiliki parentclassnya. Method terbang() yang di eksekusi adalah milik sendiri (subclass)
  • 7. 1 saniati@teknokrat.ac.id 11/17/2016 public class PesaivatTempur extends Pesawat { int rudal = 4j PesawatTeimpur(){ System, out. println ( "obj ect pesawat TEMPUR dibuat,,.1 '); }______ object pesaivat dibuat... object pesaivat TEMPUR dibuat. , . • Jika ingin membuat object dari sebuah subclass, yang terjadi yaitu: • Jvm akan membuat object dari parent class terlebih dahulu • Setelah itu jvm baru akan membuat object dari subclass /------------------------------------------------------------------------ Object superclass/ parentclass akan buat terlebih dahulu, lalu object subclass/childclass V public class Main { public static void main(String[] args) {
  • 9. saniati@teknokrat.ac.id 11/17/2016 Super(); • Pada kasus sebelumnya: • object subclass dibuat oleh programmer, • sedangkan object superclass dibuatkan oleh JVM dengan syarat constructor tanpa parameter • jika ingin menggunakan parameter, maka pada constructor subclass didefinisikan pemanggilan constructor superclass dengan keyword “super” • Super untuk memanggil constructor parent class, syarat: • Harus dibaris paling atas • Hanya boleh satu kali • Hanya boleh dilakukan dari constructor subclass
  • 10. saniati@teknokrat.ac.id 11/17/2016 Inheritance public class Tiga { public staticvoid main(String[] args) { Satu sa = new Satu(); } 1 ______
  • 11. saniati@teknokrat.ac.id 11/17/2016 Object Parameter Parameter bukan variabel primitif, melainkan user defined (object)
  • 12. saniati@teknokrat.ac.id 11/17/2016 Javap Namaclass • Jika ingin mengetahui, sebuah class memiliki method apa saja, dapat digunakan perintah “javap namaclass” E:pelatihan>jauap Mobil Compiled from "Mobil.jaua" public class Mobil < int mesin; int roda; int bod^; MobilO; MobiKint, int, int>; MobiKint, int, int, jaua. lang.String} ; void majuO; void mundurO; void belokO;
  • 13. saniati@teknokrat.ac.id 11/17/2016 Kasus Jika ingin memiliki fungsi test () untuk banyak binatang, maka harus didefinisikan banyak fungsi test. Bagaimana agar cukup satu fungsi untuk semua nya?
  • 14. saniati@teknokrat.ac.id 11/17/2016 IS-A • Buatlah kelas yang memiliki sifat umum (generik) yang mewakili kelas-kelas lainnya, lalu jadikan superclass bagi sub-subclass. • Karena tiap subclass IS-A superclass
  • 15. saniati@teknokrat.ac.id 11/17/2016 Parameter merujuk pada Object yang lebih generik, sehingga semua turunan Binatang (Gajah, Kerbau) dapat dimasukkan ke dalam parameter Polymorphism
  • 16. saniati@teknokrat.ac.id 11/17/2016 //compile time binding //early binding Polymorphisme //late binding //run time binding static void testiEinatang x){ x.makan(); x.tidurQ; Object bisa berubah-ubah bentuk RTTI = Run Time Type Identification = tipe data diidentifikasi ketika program running LATE BINDING = sebuah object akan di bind ke sebuah method ketika runtime (bukan ketika compile) POLY — banyak MORP — bentuk static void testrKerbau x){ x.makanf); x.tidurf);
  • 17. saniati@teknokrat.ac.id 11/17/2016 Polymorphisme • Deklarasi Superclass namaobject = new SubClass() lebih sering diimplementasikan. • Hal tersebut memudahkan dalam melakukan koleksi object public class BonBin { static void test(Binatang x){ x,makan(); x.tidur() i } pnh"l n r ctsti r uni rl mainKtrin sU. -■ "f ■) { Binatang[] bin = {new Gajah(), new Kerbau()}; test(bin[ti]) •, test(bin[l]}; } ' ' ' 1______________________ Koleksi (array)
  • 18. saniati@teknokrat.ac.id Error, karena object g hanya dapat mengakses atribut dan method dari Binatang Object g dicasting sehingga dapat mengakses semua atribut dan method dari Gajah 11/17/2016 Casting Object public class Gajah extends Binatang{ void makan(){ System.out.printlnf'Gajah M a k a n . . ; } void tidur(){ System, out. printing "Gajah Tidur...”); } void duduk(){ System, out. printlnf'Gajah Duduk. . .”); } } ______________________________________________ public class Binatang { void imakan(){ System,out.println("Makan } ' ‘ void tidur(){ System,out.println("Tidur } ' ‘
  • 19. saniati@teknokrat.ac.id 11/17/2016 Abstract • Abstract class merupakan class yang hanya mendeklarasikan methodnya, tanpa implementasi isi. • Abstract class minimal memiliki satu abstract method • Baik class maupun method harus ditambahkan keyword “abstract” • Konsekuensi abstract class, tidak dapat dicreate objectnya, tapi yang mengimplementasikannya bisa. • Keuntungannya, lebih simpel dan hemat memori(tidak dibuatkan objectnya oleh jvm).
  • 20. i saniati@teknokrat.ac.id 11/17/2016 labstract class Binatang { abstract abstract void makan()i void tidur()i public class Gajah extends Binatarig{ void makanQ{ System, out ,println(''Gajah Makan...”); } ' ' void tidur(){ System, out ,println(''Gajah Tidur. . .”); } ' ' } __________________________________________________ public class Kerbau extends Binatang{ void makan(){ System,out, println("Gajah Makan } ' void tidur(){ System,out. println( "Gajah Tidur } ' public class BonBin { static void test(Binatang x){ K.makan(); K.tidur(); } public static void main(String[] arg s ) { Binatang g = new Gajah(); Binatang k = new Kerbau(); test(g); test(k); Abstract Class (2)
  • 21. saniati@teknokrat.ac.id 11/17/2016 Boleh mengandung method yang tidak abstract public class BonBin { static void test(Binatang x){ K,makan(); K.tidur()i } public static void main(String[] args) { Binatang g = new Gajah(); Binatang k = new Kerbau(); test(g); test(k)i Abstract Class (3)
  • 22. saniati@teknokrat.ac.id 11/17/2016 Tidak implement method makan(), maka wajib menjadi abstract class Abstract Class (4) Jika subclass dari class abstract tidak mengimplementasikan method abstract, maka subclass wajib menjadi kelas abstract juga, sehingga tidak bisa dibuat objeknya
  • 23. saniati@teknokrat.ac.id 11/17/2016 Interface • Cara menghasilkan efek polimorphisme • Extends dari class biasa • Extend dari abstract class • Implement sebuah interface • Interface: • Mirip seperti abstract class, tapi semua method HARUS abstract • Class yang mengimplement menggunakan keyword “implement” bukan “extends • Class yang mengimplement HARUS mengimplement SEMUA method yang dideklarasikan dalam interface dan HARUS diberi label “public” • Sebuah class BISA mengimplement lebih dari satu interface
  • 24. saniati@teknokrat.ac.id 11/17/2016 Interface (2) Interface, seluruh method akan bersifat abstract, baik ditulis maupun tidak Class yang ingin memiliki sifat interface, harus “implements” dan semua method yang method harus “public”
  • 25. saniati@teknokrat.ac.id 11/17/2016 Reference • Pemaparan materi TOT Java Fundamental oleh bapakTri Haryoko (7-11 Nopember 2016, Bandar Lampung) • https://docs.oracle.com/javase/tutorial/java • “Thinking in Java”, Bruce Eckel