SlideShare a Scribd company logo
1 of 39
Inheritance
(Pewarisan)
Object Oriented Programming with JAVA
2011/2012
Topics
• Inheritance
• Deklarasi inheritance
• Kata kunci this & super
Pengertian dasar inheritance
• Inheritance (Pewarisan) merupakan salah satu
dari tiga konsep dasar OOP.
• Konsep inheritance ini mengadopsi dunia riil
dimana suatu entitas/obyek dapat
mempunyai entitas/obyek turunan.
• Dengan konsep inheritance, sebuah class
dapat mempunyai class turunan.
Pengertian dasar inheritance
• Pewarisan merupakan mekanisme/cara
membuat kelas baru dari kelas yang sudah ada.
• Kelas yang sudah ada  superclass/parent class
Kelas turunan  subclass
• Suatu subclass dapat mewarisi apa-apa yang
dipunyai oleh parent class.
Contoh Gambaran Pewarisan antar Class
superclass
subclass
Deklarasi inheritance
• Dengan menambahkan kata kunci extends
setelah deklarasi nama class, kemudian diikuti
dengan nama parent class-nya.
• Kata kunci extends tersebut memberitahu
kompiler Java bahwa kita ingin melakukan
perluasan class.
Deklarasi inheritance
public class B extends A {
…
}
Class A menjadi parent class
Class B menjadi child class
Class B mewarisi semua member class yang ada pada
class A.
Bagaimana caranya?
A
- varA
+ getA()
+ setA(int a)
Bagaimana membuat
kelas B dari kelas A?
• Class B extends A{
//.......
• }
• Class C extends B{
//.....
• |
• Semua class di dalam Java adalah
merupakan subclass dari class super induk
yang bernama Object.
• Misalnya saja terdapat sebuah class
sederhana :
public class A {
…
}
• Pada saat dikompilasi, Kompiler Java akan
membacanya sebagai subclass dari class
Object.
public class A extends Object {
…
}
Kapan kita menerapkan inheritance?
• Kita baru perlu menerapkan inheritance pada
saat kita jumpai ada suatu class yang dapat
diperluas dari class lain.
Misal terdapat class Pegawai
public class Pegawai {
public String nama;
public double gaji;
}
Misal terdapat class Manager
public class Manajer {
public String nama;
public double gaji;
public String departemen;
}
public class Manajer extends Pegawai {
public String departemen;
}
Single Inheritance
• Konsep inheritance yang ada di Java hanya
memperkenankan adanya single inheritance,
yaitu suatu sublass hanya dapat mempunyai
satu parent class. Dengan kata lain, suatu
class hanya dapat meng-extend satu class
saja.
• Jika dibutuhkan adanya multiple inheritance
(satu class memiliki lebih dari satu parent
class) maka solusinya dapat menggunakan
interface. (next topic)
Multilevel Inheritance
• Konsep inheritance yang ada di Java juga
memperkenankan adanya multilevel
inheritance.
• Konsep multilevel inheritance
memperbolehkan suatu subclass mempunyai
subclass lagi.
Single dan Multilevel Inheritance
Pengaksesan member yang dideklarasikan di parent class dari
subclass
• 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.
public class Manajer extends Pegawai {
public String departemen;
public void IsiData(String n, String d) {
nama=n;
departemen=d;
}
}
Kontrol pengaksesan
• Dalam dunia riil, suatu entitas induk bisa saja tidak
mewariskan sebagian dari apa-apa yang ia punyai
kepada entitas turunan karena sesuatu hal.
• Demikian juga dengan konsep inheritance dalam
OOP.
• Suatu parent class dapat tidak mewariskan sebagian
member-nya kepada subclass-nya.
• Sebagai contoh, kita coba untuk memodifikasi class
Pegawai.
• Hal ini dipengaruhi oleh access modifier.
public class Pegawai {
private String nama;
public double gaji;
}
• Coba untuk mengkompilasi class Manajer pada
contoh sebelumnya.
• Apa yang terjadi?
• Pesan kesalahan akan muncul seperti ini :
• Ini membuktikan bahwa class Manajer tidak
mewarisi data member nama dari parent class-
nya (Pegawai).
Manajer.java:5: nama has private access in Pegawai
nama=n;
protected
• Protected mempunyai kemampuan akses yang lebih
besar daripada private dan default.
• Protected feature dari suatu class bisa diakses oleh
semua class dalam satu package.
• Class diluar package boleh melakukan melakukan
subclass, dan subclass tersebut bisa mengakses
feature superclass.
Example: protected
1. package adifferentpackage; // Class Ski now in
// a different package
2. Public class Ski {
3. protected void applyWax() { . . . }
4. }
1. Public package sportinggoods;
2. class DownhillSki extends Ski {
3. void tuneup() {
4. applyWax();  OK
5. // other tuneup functionality here
6. }
7. }
Konstruktor tidak diwariskan
• Konstruktor dari parent class tidak dapat diwariskan
ke subclass-nya.
• Konsekuensinya, setiap kali kita membuat suatu
subclass, maka kita harus memanggil konstruktor
parent class.
• Pemanggilan konstruktor parent harus dilakukan
pada baris pertama dari konstruktor subclass.
Konstruktor tidak diwariskan
• Jika kita tidak mendeklarasikannya secara
eksplisit, maka kompiler Java akan
menambahkan deklarasi pemanggilan
konstruktor parent class di konstruktor
subclass.
Konstruktor tidak diwariskan
• Sebelum subclass menjalankan konstruktornya
sendiri, subclass akan menjalankan constructor
superclass terlebih dahulu.
• Hal ini terjadi karena secara implisit pada constructor
subclass ditambahkan pemanggilan super()yang
bertujuan memanggil constructor superclass oleh
kompiler.
Misalnya saja kita mempunyai dua buah class sebagai berikut :
• Pada saat program tersebut dikompilasi, maka
kompiler Java akan menambahkan :
– konstruktor class Parent
– konstruktor class Child
– pemanggilan konstruktor class Parent di
kostruktor class Child
Sehingga program tersebut sama saja dengan yang
berikut ini :
Constructor pada inheritance
• Misalkan kita buat class parent bernama Person sbb :
• Sekarang, kita buat class lain bernama Student yang meng-extends
class Person.
public class Person {
protected String name;
protected String address;
public Person(){
System.out.println(“Inside Person:Constructor”);
}
}
public class Student extends Person {
public Student(){
System.out.println(“Inside Student:Constructor”);
}
}
Alur Eksekusi Constructor
• Ketika sebuah object Student diinstansiasi, default
constructor dari superclass Student dipanggil secara implisit
untuk melakukan inisialisasi seperlunya.
• Setelah itu, pernyataan di dalam constructor subclass baru
dijalankan.
Penjelasan
• Untuk memperjelasnya, perhatikan kode dibawah ini,
• Dalam kode ini, kita membuat sebuah object dari class
Student. Hasil dari program adalah:
public static void main( String[] args ){
Student anna = new Student();
}
Inside Person:Constructor
Inside Student:Constructor
Diagram Alur Eksekusi Constructor
Latihan 1
Untuk kelas Bentuk :
• getWarna adl method yang akan
mengembalikan nilai variabel warna
• setWarna adl method untuk mengubah nilai
variabel warna
• printInfo adl method yang akan menuliskan
“Bentuk berwarna [warna]”
Untuk kelas BujurSangkar :
• getSisi adl method yang akan mengembalikan
nilai variabel sisi
• setSisi adl method untuk mengubah nilai
variabel sisi
• hitungLuas adl method yang akan
mengembalikan hasil perhitungan luas
bujursangkar
• printInfo adl method yang akan menuliskan
“Bujursangkar berwarna [warna], luas = [luas]”
Bentuk
- warna
+ constructor (String warna)
+ String getWarna()
+ void setWarna(String warna)
+ void printInfo()
BujurSangkar
- sisi
+ constructor (double sisi,
String warna)
+ double getSisi()
+ void setSisi(double sisi)
+ double hitungLuas()
+ void printInfo()
Latihan 2
• Buatlah kelas Lingkaran sbg turunan kelas Bentuk.
• constructor akan menginisialisasi radius dan warna
• getRadius adl method yang akan mengembalikan nilai variabel radius
• setRadius adl method untuk mengubah nilai variabel radius
• hitungLuas adl method yang akan mengembalikan hasil perhitungan luas lingkaran
(PHI jadikan sbg konstanta kelas)
• printInfo adl method yang akan menuliskan “Lingkaran [warna], luas = [luas]”
Lingkaran
- radius
+ constructor (double radius, String warna)
+ double getRadius()
+ void setRadius(double r)
+ double hitungLuas()
+ void printInfo()
Latihan 3
• Buatlah kelas Silinder sbg turunan kelas Lingkaran
– constructor akan menginisialisasi variabel tinggi, radius, dan warna
– getTinggi adl method yg akan mengembalikan tinggi
– setTinggi adl method yg akan mengubah tinggi
– hitungVolume adl method yg akan mengembalikan hasil perhitungan volum
silinder
– printInfo adl method yg akan menuliskan “Silinder warna [warna], volume =
[volume]”
Silinder
- tinggi
+ constructor (double tinggi, double radius, String warna)
+ double getTinggi()
+ void setTinggi(double t)
+ double hitungVolume()
+ void printInfo()

More Related Content

What's hot

2 database system concepts and architecture
2 database system concepts and architecture2 database system concepts and architecture
2 database system concepts and architectureKumar
 
Java: Heranca e polimorfismo
Java: Heranca e polimorfismoJava: Heranca e polimorfismo
Java: Heranca e polimorfismoArthur Emanuel
 
Kartu soal kompetensi kejuruan tkj usbn 2018
Kartu soal kompetensi kejuruan tkj usbn 2018Kartu soal kompetensi kejuruan tkj usbn 2018
Kartu soal kompetensi kejuruan tkj usbn 2018Walid Umar
 
Kd1 Struktur Hirarki Database
Kd1 Struktur Hirarki DatabaseKd1 Struktur Hirarki Database
Kd1 Struktur Hirarki DatabaseDesty Yani
 
Perancangan perangkat lunak
Perancangan perangkat lunakPerancangan perangkat lunak
Perancangan perangkat lunakSahrul Sindriana
 
Arquitectura de la Web y Computación en el Servidor
Arquitectura de la Web y Computación en el ServidorArquitectura de la Web y Computación en el Servidor
Arquitectura de la Web y Computación en el ServidorJose Emilio Labra Gayo
 
PRESENTASI TKJ 2022.ppt
PRESENTASI TKJ 2022.pptPRESENTASI TKJ 2022.ppt
PRESENTASI TKJ 2022.pptAman Kenting
 
Pertemuan 6 Infrastruktur Datawarehouse
Pertemuan 6 Infrastruktur DatawarehousePertemuan 6 Infrastruktur Datawarehouse
Pertemuan 6 Infrastruktur DatawarehouseEndang Retnoningsih
 
Modul prak2 constructor dan overloading
Modul prak2   constructor dan overloadingModul prak2   constructor dan overloading
Modul prak2 constructor dan overloadingwahyuniwulan
 
Trigger Database
Trigger DatabaseTrigger Database
Trigger DatabasePutra Andry
 
7 Materi Kuliah Bahasa SQL
7 Materi Kuliah Bahasa SQL7 Materi Kuliah Bahasa SQL
7 Materi Kuliah Bahasa SQLSimon Patabang
 
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQL
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQLKelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQL
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQLDejiko Chaem
 
Bahasa Query Terapan
Bahasa Query TerapanBahasa Query Terapan
Bahasa Query TerapanSherly Uda
 
Seminar on java
Seminar on javaSeminar on java
Seminar on javashathika
 

What's hot (20)

2 database system concepts and architecture
2 database system concepts and architecture2 database system concepts and architecture
2 database system concepts and architecture
 
Java: Heranca e polimorfismo
Java: Heranca e polimorfismoJava: Heranca e polimorfismo
Java: Heranca e polimorfismo
 
[PBO] Pertemuan 6 - Interface
[PBO] Pertemuan 6 - Interface[PBO] Pertemuan 6 - Interface
[PBO] Pertemuan 6 - Interface
 
Kartu soal kompetensi kejuruan tkj usbn 2018
Kartu soal kompetensi kejuruan tkj usbn 2018Kartu soal kompetensi kejuruan tkj usbn 2018
Kartu soal kompetensi kejuruan tkj usbn 2018
 
Kd1 Struktur Hirarki Database
Kd1 Struktur Hirarki DatabaseKd1 Struktur Hirarki Database
Kd1 Struktur Hirarki Database
 
Perancangan perangkat lunak
Perancangan perangkat lunakPerancangan perangkat lunak
Perancangan perangkat lunak
 
Pbo
PboPbo
Pbo
 
Optimasi query
Optimasi queryOptimasi query
Optimasi query
 
Arquitectura de la Web y Computación en el Servidor
Arquitectura de la Web y Computación en el ServidorArquitectura de la Web y Computación en el Servidor
Arquitectura de la Web y Computación en el Servidor
 
PRESENTASI TKJ 2022.ppt
PRESENTASI TKJ 2022.pptPRESENTASI TKJ 2022.ppt
PRESENTASI TKJ 2022.ppt
 
Pertemuan 6 Infrastruktur Datawarehouse
Pertemuan 6 Infrastruktur DatawarehousePertemuan 6 Infrastruktur Datawarehouse
Pertemuan 6 Infrastruktur Datawarehouse
 
Modul prak2 constructor dan overloading
Modul prak2   constructor dan overloadingModul prak2   constructor dan overloading
Modul prak2 constructor dan overloading
 
Data model and entity relationship
Data model and entity relationshipData model and entity relationship
Data model and entity relationship
 
Trigger Database
Trigger DatabaseTrigger Database
Trigger Database
 
7 Materi Kuliah Bahasa SQL
7 Materi Kuliah Bahasa SQL7 Materi Kuliah Bahasa SQL
7 Materi Kuliah Bahasa SQL
 
SDD
SDDSDD
SDD
 
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQL
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQLKelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQL
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQL
 
BAB 1 AIJ.pptx
BAB 1 AIJ.pptxBAB 1 AIJ.pptx
BAB 1 AIJ.pptx
 
Bahasa Query Terapan
Bahasa Query TerapanBahasa Query Terapan
Bahasa Query Terapan
 
Seminar on java
Seminar on javaSeminar on java
Seminar on java
 

Viewers also liked

Kb 2 perawatan luka operasi
Kb 2 perawatan luka operasiKb 2 perawatan luka operasi
Kb 2 perawatan luka operasipjj_kemenkes
 
pbo 3 ervan
pbo 3 ervanpbo 3 ervan
pbo 3 ervanaris
 
Tugas 5 individu rekayasa web 0316
Tugas 5 individu rekayasa web 0316Tugas 5 individu rekayasa web 0316
Tugas 5 individu rekayasa web 0316septianarul
 
Konsep Inheritance
Konsep InheritanceKonsep Inheritance
Konsep InheritanceRiski_kiki
 
Modul 4 kb 1 penanganan luka bakar
Modul 4 kb 1 penanganan luka bakarModul 4 kb 1 penanganan luka bakar
Modul 4 kb 1 penanganan luka bakarpjj_kemenkes
 
Kb 2 pemeriksaan urine
Kb 2 pemeriksaan urineKb 2 pemeriksaan urine
Kb 2 pemeriksaan urinepjj_kemenkes
 
Kb 1 pemeriksaan darah
Kb 1 pemeriksaan darahKb 1 pemeriksaan darah
Kb 1 pemeriksaan darahpjj_kemenkes
 
Perawatan luka terinfeksi
Perawatan luka terinfeksiPerawatan luka terinfeksi
Perawatan luka terinfeksirahmi rahimah
 
Pelajaran oop java 2 pengertian method dan cara pembuatan method by hermawan
Pelajaran oop java 2 pengertian method dan cara pembuatan method by hermawan Pelajaran oop java 2 pengertian method dan cara pembuatan method by hermawan
Pelajaran oop java 2 pengertian method dan cara pembuatan method by hermawan hermawanawang
 
Laporan PBO Pratikum 3
Laporan PBO Pratikum 3Laporan PBO Pratikum 3
Laporan PBO Pratikum 3rahmi wahyuni
 
Konsep perawatan luka bersih dan angkat jahitan
Konsep perawatan luka bersih dan angkat jahitanKonsep perawatan luka bersih dan angkat jahitan
Konsep perawatan luka bersih dan angkat jahitanSulistia Rini
 
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
 
Perawatan Luka Bersih (Luka Kering)
Perawatan Luka Bersih (Luka Kering)Perawatan Luka Bersih (Luka Kering)
Perawatan Luka Bersih (Luka Kering)pjj_kemenkes
 
Kb 2 perawatan luka operasi
Kb 2 perawatan luka operasiKb 2 perawatan luka operasi
Kb 2 perawatan luka operasipjj_kemenkes
 
Tanda tanda infeksi
Tanda tanda infeksiTanda tanda infeksi
Tanda tanda infeksiAULIA SHARA
 
Aplikasi penjualan busana fashion berbasis dekstop
Aplikasi penjualan busana fashion berbasis dekstopAplikasi penjualan busana fashion berbasis dekstop
Aplikasi penjualan busana fashion berbasis dekstopalfian_nasir
 
Aplikasi Koperasi Mahasiswa (Kopma) Berbasis Java Desktop
Aplikasi Koperasi Mahasiswa (Kopma) Berbasis Java DesktopAplikasi Koperasi Mahasiswa (Kopma) Berbasis Java Desktop
Aplikasi Koperasi Mahasiswa (Kopma) Berbasis Java DesktopImam Isyida
 

Viewers also liked (20)

Kb 2 perawatan luka operasi
Kb 2 perawatan luka operasiKb 2 perawatan luka operasi
Kb 2 perawatan luka operasi
 
pbo 3 ervan
pbo 3 ervanpbo 3 ervan
pbo 3 ervan
 
Tugas 5 individu rekayasa web 0316
Tugas 5 individu rekayasa web 0316Tugas 5 individu rekayasa web 0316
Tugas 5 individu rekayasa web 0316
 
Konsep Inheritance
Konsep InheritanceKonsep Inheritance
Konsep Inheritance
 
Modul 4 kb 1 penanganan luka bakar
Modul 4 kb 1 penanganan luka bakarModul 4 kb 1 penanganan luka bakar
Modul 4 kb 1 penanganan luka bakar
 
Perawatan bedah kebidanan1
Perawatan bedah kebidanan1Perawatan bedah kebidanan1
Perawatan bedah kebidanan1
 
Kb 2 pemeriksaan urine
Kb 2 pemeriksaan urineKb 2 pemeriksaan urine
Kb 2 pemeriksaan urine
 
Kb 1 pemeriksaan darah
Kb 1 pemeriksaan darahKb 1 pemeriksaan darah
Kb 1 pemeriksaan darah
 
Materi pelatihan java fundamental
Materi pelatihan java fundamentalMateri pelatihan java fundamental
Materi pelatihan java fundamental
 
Perawatan luka terinfeksi
Perawatan luka terinfeksiPerawatan luka terinfeksi
Perawatan luka terinfeksi
 
Pelajaran oop java 2 pengertian method dan cara pembuatan method by hermawan
Pelajaran oop java 2 pengertian method dan cara pembuatan method by hermawan Pelajaran oop java 2 pengertian method dan cara pembuatan method by hermawan
Pelajaran oop java 2 pengertian method dan cara pembuatan method by hermawan
 
Algoritma Pemrograman 2
Algoritma Pemrograman 2Algoritma Pemrograman 2
Algoritma Pemrograman 2
 
Laporan PBO Pratikum 3
Laporan PBO Pratikum 3Laporan PBO Pratikum 3
Laporan PBO Pratikum 3
 
Konsep perawatan luka bersih dan angkat jahitan
Konsep perawatan luka bersih dan angkat jahitanKonsep perawatan luka bersih dan angkat jahitan
Konsep perawatan luka bersih dan angkat jahitan
 
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)
 
Perawatan Luka Bersih (Luka Kering)
Perawatan Luka Bersih (Luka Kering)Perawatan Luka Bersih (Luka Kering)
Perawatan Luka Bersih (Luka Kering)
 
Kb 2 perawatan luka operasi
Kb 2 perawatan luka operasiKb 2 perawatan luka operasi
Kb 2 perawatan luka operasi
 
Tanda tanda infeksi
Tanda tanda infeksiTanda tanda infeksi
Tanda tanda infeksi
 
Aplikasi penjualan busana fashion berbasis dekstop
Aplikasi penjualan busana fashion berbasis dekstopAplikasi penjualan busana fashion berbasis dekstop
Aplikasi penjualan busana fashion berbasis dekstop
 
Aplikasi Koperasi Mahasiswa (Kopma) Berbasis Java Desktop
Aplikasi Koperasi Mahasiswa (Kopma) Berbasis Java DesktopAplikasi Koperasi Mahasiswa (Kopma) Berbasis Java Desktop
Aplikasi Koperasi Mahasiswa (Kopma) Berbasis Java Desktop
 

Similar to inheritance

Modul PBO Bab-05 - Pewarisan (Inheritance)
Modul PBO Bab-05 - Pewarisan (Inheritance)Modul PBO Bab-05 - Pewarisan (Inheritance)
Modul PBO Bab-05 - Pewarisan (Inheritance)Rakhmat Dedi Gunawan
 
Modul pratikum pbo - inheritance
Modul pratikum pbo - inheritanceModul pratikum pbo - inheritance
Modul pratikum pbo - inheritancerahmantoyuri
 
Tugas 5 rekayasa web
Tugas 5 rekayasa webTugas 5 rekayasa web
Tugas 5 rekayasa webart david
 
Pbo inheritance, polymorphism, dan inte
Pbo inheritance, polymorphism, dan intePbo inheritance, polymorphism, dan inte
Pbo inheritance, polymorphism, dan inteSmkn-2 Pekanbaru
 
Tugas 5 rekayasa web
Tugas 5 rekayasa webTugas 5 rekayasa web
Tugas 5 rekayasa webosta92
 
Jeni intro1-bab11-pewarisan, polimorfisme, dan interface
Jeni intro1-bab11-pewarisan, polimorfisme, dan interfaceJeni intro1-bab11-pewarisan, polimorfisme, dan interface
Jeni intro1-bab11-pewarisan, polimorfisme, dan interfaceKristanto Wijaya
 
Jeni Intro1 Bab11 Pewarisan, Polimorfisme, Dan Interface
Jeni Intro1 Bab11 Pewarisan, Polimorfisme, Dan InterfaceJeni Intro1 Bab11 Pewarisan, Polimorfisme, Dan Interface
Jeni Intro1 Bab11 Pewarisan, Polimorfisme, Dan InterfaceIndividual Consultants
 
Mobile Application 2 Pertemuan 3 Dasar Kotlin Object Oriented Programming
Mobile Application 2 Pertemuan 3 Dasar Kotlin Object Oriented ProgrammingMobile Application 2 Pertemuan 3 Dasar Kotlin Object Oriented Programming
Mobile Application 2 Pertemuan 3 Dasar Kotlin Object Oriented ProgrammingAkhmad Khanif Zyen
 
Laporan PBO pratikum 2
Laporan PBO pratikum 2Laporan PBO pratikum 2
Laporan PBO pratikum 2rahmi wahyuni
 
Pelajaran oop java ii pengertian method dan cara pembuatan method by hermawan
Pelajaran oop java ii pengertian method dan cara pembuatan method by hermawan Pelajaran oop java ii pengertian method dan cara pembuatan method by hermawan
Pelajaran oop java ii pengertian method dan cara pembuatan method by hermawan hermawanawang
 
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
 
JENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdf
JENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdfJENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdf
JENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdfJurnal IT
 

Similar to inheritance (20)

365 4 inheritance
365 4 inheritance365 4 inheritance
365 4 inheritance
 
Modul PBO Bab-05 - Pewarisan (Inheritance)
Modul PBO Bab-05 - Pewarisan (Inheritance)Modul PBO Bab-05 - Pewarisan (Inheritance)
Modul PBO Bab-05 - Pewarisan (Inheritance)
 
Modul pratikum pbo - inheritance
Modul pratikum pbo - inheritanceModul pratikum pbo - inheritance
Modul pratikum pbo - inheritance
 
17419 6 override
17419 6 override17419 6 override
17419 6 override
 
Modul Object Oriented Programming
Modul Object Oriented ProgrammingModul Object Oriented Programming
Modul Object Oriented Programming
 
Tugas 5 rekayasa web
Tugas 5 rekayasa webTugas 5 rekayasa web
Tugas 5 rekayasa web
 
Pbo inheritance, polymorphism, dan inte
Pbo inheritance, polymorphism, dan intePbo inheritance, polymorphism, dan inte
Pbo inheritance, polymorphism, dan inte
 
Tugas 5 rekayasa web
Tugas 5 rekayasa webTugas 5 rekayasa web
Tugas 5 rekayasa web
 
9150 8 interface
9150 8  interface9150 8  interface
9150 8 interface
 
Jeni intro1-bab11-pewarisan, polimorfisme, dan interface
Jeni intro1-bab11-pewarisan, polimorfisme, dan interfaceJeni intro1-bab11-pewarisan, polimorfisme, dan interface
Jeni intro1-bab11-pewarisan, polimorfisme, dan interface
 
Jeni Intro1 Bab11 Pewarisan, Polimorfisme, Dan Interface
Jeni Intro1 Bab11 Pewarisan, Polimorfisme, Dan InterfaceJeni Intro1 Bab11 Pewarisan, Polimorfisme, Dan Interface
Jeni Intro1 Bab11 Pewarisan, Polimorfisme, Dan Interface
 
Mobile Application 2 Pertemuan 3 Dasar Kotlin Object Oriented Programming
Mobile Application 2 Pertemuan 3 Dasar Kotlin Object Oriented ProgrammingMobile Application 2 Pertemuan 3 Dasar Kotlin Object Oriented Programming
Mobile Application 2 Pertemuan 3 Dasar Kotlin Object Oriented Programming
 
Laporan PBO pratikum 2
Laporan PBO pratikum 2Laporan PBO pratikum 2
Laporan PBO pratikum 2
 
Pelajaran oop java ii pengertian method dan cara pembuatan method by hermawan
Pelajaran oop java ii pengertian method dan cara pembuatan method by hermawan Pelajaran oop java ii pengertian method dan cara pembuatan method by hermawan
Pelajaran oop java ii pengertian method dan cara pembuatan method by hermawan
 
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
 
Tugas aplinet meresum
Tugas aplinet meresumTugas aplinet meresum
Tugas aplinet meresum
 
Tugas resum
Tugas resumTugas resum
Tugas resum
 
13216 3 enkapsulasi
13216 3 enkapsulasi13216 3 enkapsulasi
13216 3 enkapsulasi
 
28431 3 enkapsulasi
28431 3 enkapsulasi28431 3 enkapsulasi
28431 3 enkapsulasi
 
JENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdf
JENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdfJENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdf
JENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdf
 

inheritance

  • 2. Topics • Inheritance • Deklarasi inheritance • Kata kunci this & super
  • 3. Pengertian dasar inheritance • Inheritance (Pewarisan) merupakan salah satu dari tiga konsep dasar OOP. • Konsep inheritance ini mengadopsi dunia riil dimana suatu entitas/obyek dapat mempunyai entitas/obyek turunan. • Dengan konsep inheritance, sebuah class dapat mempunyai class turunan.
  • 4. Pengertian dasar inheritance • Pewarisan merupakan mekanisme/cara membuat kelas baru dari kelas yang sudah ada. • Kelas yang sudah ada  superclass/parent class Kelas turunan  subclass • Suatu subclass dapat mewarisi apa-apa yang dipunyai oleh parent class.
  • 5. Contoh Gambaran Pewarisan antar Class superclass subclass
  • 6. Deklarasi inheritance • Dengan menambahkan kata kunci extends setelah deklarasi nama class, kemudian diikuti dengan nama parent class-nya. • Kata kunci extends tersebut memberitahu kompiler Java bahwa kita ingin melakukan perluasan class.
  • 7. Deklarasi inheritance public class B extends A { … } Class A menjadi parent class Class B menjadi child class Class B mewarisi semua member class yang ada pada class A.
  • 8. Bagaimana caranya? A - varA + getA() + setA(int a) Bagaimana membuat kelas B dari kelas A?
  • 9. • Class B extends A{ //....... • } • Class C extends B{ //..... • |
  • 10. • Semua class di dalam Java adalah merupakan subclass dari class super induk yang bernama Object. • Misalnya saja terdapat sebuah class sederhana : public class A { … }
  • 11. • Pada saat dikompilasi, Kompiler Java akan membacanya sebagai subclass dari class Object. public class A extends Object { … }
  • 12. Kapan kita menerapkan inheritance? • Kita baru perlu menerapkan inheritance pada saat kita jumpai ada suatu class yang dapat diperluas dari class lain.
  • 13. Misal terdapat class Pegawai public class Pegawai { public String nama; public double gaji; }
  • 14. Misal terdapat class Manager public class Manajer { public String nama; public double gaji; public String departemen; }
  • 15. public class Manajer extends Pegawai { public String departemen; }
  • 16. Single Inheritance • Konsep inheritance yang ada di Java hanya memperkenankan adanya single inheritance, yaitu suatu sublass hanya dapat mempunyai satu parent class. Dengan kata lain, suatu class hanya dapat meng-extend satu class saja. • Jika dibutuhkan adanya multiple inheritance (satu class memiliki lebih dari satu parent class) maka solusinya dapat menggunakan interface. (next topic)
  • 17. Multilevel Inheritance • Konsep inheritance yang ada di Java juga memperkenankan adanya multilevel inheritance. • Konsep multilevel inheritance memperbolehkan suatu subclass mempunyai subclass lagi.
  • 18. Single dan Multilevel Inheritance
  • 19. Pengaksesan member yang dideklarasikan di parent class dari subclass • 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.
  • 20. public class Manajer extends Pegawai { public String departemen; public void IsiData(String n, String d) { nama=n; departemen=d; } }
  • 21. Kontrol pengaksesan • Dalam dunia riil, suatu entitas induk bisa saja tidak mewariskan sebagian dari apa-apa yang ia punyai kepada entitas turunan karena sesuatu hal. • Demikian juga dengan konsep inheritance dalam OOP. • Suatu parent class dapat tidak mewariskan sebagian member-nya kepada subclass-nya. • Sebagai contoh, kita coba untuk memodifikasi class Pegawai. • Hal ini dipengaruhi oleh access modifier.
  • 22. public class Pegawai { private String nama; public double gaji; }
  • 23. • Coba untuk mengkompilasi class Manajer pada contoh sebelumnya. • Apa yang terjadi? • Pesan kesalahan akan muncul seperti ini : • Ini membuktikan bahwa class Manajer tidak mewarisi data member nama dari parent class- nya (Pegawai). Manajer.java:5: nama has private access in Pegawai nama=n;
  • 24. protected • Protected mempunyai kemampuan akses yang lebih besar daripada private dan default. • Protected feature dari suatu class bisa diakses oleh semua class dalam satu package. • Class diluar package boleh melakukan melakukan subclass, dan subclass tersebut bisa mengakses feature superclass.
  • 25. Example: protected 1. package adifferentpackage; // Class Ski now in // a different package 2. Public class Ski { 3. protected void applyWax() { . . . } 4. } 1. Public package sportinggoods; 2. class DownhillSki extends Ski { 3. void tuneup() { 4. applyWax();  OK 5. // other tuneup functionality here 6. } 7. }
  • 26. Konstruktor tidak diwariskan • Konstruktor dari parent class tidak dapat diwariskan ke subclass-nya. • Konsekuensinya, setiap kali kita membuat suatu subclass, maka kita harus memanggil konstruktor parent class. • Pemanggilan konstruktor parent harus dilakukan pada baris pertama dari konstruktor subclass.
  • 27. Konstruktor tidak diwariskan • Jika kita tidak mendeklarasikannya secara eksplisit, maka kompiler Java akan menambahkan deklarasi pemanggilan konstruktor parent class di konstruktor subclass.
  • 28. Konstruktor tidak diwariskan • Sebelum subclass menjalankan konstruktornya sendiri, subclass akan menjalankan constructor superclass terlebih dahulu. • Hal ini terjadi karena secara implisit pada constructor subclass ditambahkan pemanggilan super()yang bertujuan memanggil constructor superclass oleh kompiler.
  • 29. Misalnya saja kita mempunyai dua buah class sebagai berikut :
  • 30. • Pada saat program tersebut dikompilasi, maka kompiler Java akan menambahkan : – konstruktor class Parent – konstruktor class Child – pemanggilan konstruktor class Parent di kostruktor class Child
  • 31. Sehingga program tersebut sama saja dengan yang berikut ini :
  • 32.
  • 33. Constructor pada inheritance • Misalkan kita buat class parent bernama Person sbb : • Sekarang, kita buat class lain bernama Student yang meng-extends class Person. public class Person { protected String name; protected String address; public Person(){ System.out.println(“Inside Person:Constructor”); } } public class Student extends Person { public Student(){ System.out.println(“Inside Student:Constructor”); } }
  • 34. Alur Eksekusi Constructor • Ketika sebuah object Student diinstansiasi, default constructor dari superclass Student dipanggil secara implisit untuk melakukan inisialisasi seperlunya. • Setelah itu, pernyataan di dalam constructor subclass baru dijalankan.
  • 35. Penjelasan • Untuk memperjelasnya, perhatikan kode dibawah ini, • Dalam kode ini, kita membuat sebuah object dari class Student. Hasil dari program adalah: public static void main( String[] args ){ Student anna = new Student(); } Inside Person:Constructor Inside Student:Constructor
  • 36. Diagram Alur Eksekusi Constructor
  • 37. Latihan 1 Untuk kelas Bentuk : • getWarna adl method yang akan mengembalikan nilai variabel warna • setWarna adl method untuk mengubah nilai variabel warna • printInfo adl method yang akan menuliskan “Bentuk berwarna [warna]” Untuk kelas BujurSangkar : • getSisi adl method yang akan mengembalikan nilai variabel sisi • setSisi adl method untuk mengubah nilai variabel sisi • hitungLuas adl method yang akan mengembalikan hasil perhitungan luas bujursangkar • printInfo adl method yang akan menuliskan “Bujursangkar berwarna [warna], luas = [luas]” Bentuk - warna + constructor (String warna) + String getWarna() + void setWarna(String warna) + void printInfo() BujurSangkar - sisi + constructor (double sisi, String warna) + double getSisi() + void setSisi(double sisi) + double hitungLuas() + void printInfo()
  • 38. Latihan 2 • Buatlah kelas Lingkaran sbg turunan kelas Bentuk. • constructor akan menginisialisasi radius dan warna • getRadius adl method yang akan mengembalikan nilai variabel radius • setRadius adl method untuk mengubah nilai variabel radius • hitungLuas adl method yang akan mengembalikan hasil perhitungan luas lingkaran (PHI jadikan sbg konstanta kelas) • printInfo adl method yang akan menuliskan “Lingkaran [warna], luas = [luas]” Lingkaran - radius + constructor (double radius, String warna) + double getRadius() + void setRadius(double r) + double hitungLuas() + void printInfo()
  • 39. Latihan 3 • Buatlah kelas Silinder sbg turunan kelas Lingkaran – constructor akan menginisialisasi variabel tinggi, radius, dan warna – getTinggi adl method yg akan mengembalikan tinggi – setTinggi adl method yg akan mengubah tinggi – hitungVolume adl method yg akan mengembalikan hasil perhitungan volum silinder – printInfo adl method yg akan menuliskan “Silinder warna [warna], volume = [volume]” Silinder - tinggi + constructor (double tinggi, double radius, String warna) + double getTinggi() + void setTinggi(double t) + double hitungVolume() + void printInfo()