SlideShare a Scribd company logo
1 of 13
Download to read offline
Modul PBO – Teknokrat
39
PEWARISAN (INHERITANCE)
Tujuan
Praktikan dapat memahami dan menjelaskan tentang pewarisan kelas, kelas abstrak,
dan juga interface, serta dapat mengimplementasikan ke dalam pemrograman Java.
PEWARISAN
Pewarisan merupakan kemampuan suatu kelas untuk mewariskan seluruh atau sebagian atribut dan
methodnya ke kelas lain, sehingga atribut dan method tersebut dapat dikenali oleh kelas yang
menerima pewarisan tanpa harus menuliskannya. Pewarisan merupakan implementasi dari
hubungan antar kelas generalisasi dan spesialisasi.
Kelas yang mewariskan disebut dengan kelas induk, super class, atau base class. Kelas yang
menerima pewarisan disebut kelas anak, kelas turunan, atau subclass. Konsep pewarisan dapat
dilakukan jika:
· Ada beberapa atribut dan method yang sama yang digunakan oleh beberapa kelas berbeda
(reduksi penulisan kode)
· Ada satu atau beberapa kelas yang sudah pernah dibuat yang dibutuhkan oleh aplikasi
(reusability)
· Ada perubahan kebutuhan fungsional atau feature aplikasi dimana sebagian atau seluruh
perubahan tersebut tercakup di satu atau beberapa kelas yang sudah ada (extend)
Berikut adalah beberapa contoh pewarisan:
Tabel 5. 1 Contoh Bentuk Pewarisan
Superclass Subclasses
Student GraduateStudent, UndergraduateStudent
Shape Circle, Triangle, Rectangle
Loan CarLoan, HomeImprovementLoan, MortgageLoan
Employee Faculty, Staff
BankAccount CheckingAccount, SavingAccount
PEWARISAN DI JAVA
Pada pemrograman Java hanya mengenal pewarisan tunggal, sebuah kelas hanya dapat mewarisi
atribut dan method dari satu kelas induk. Untuk menggunakan pewarisan di Java digunakan keyword
extends. Gambar 5.1 adalah contoh bentuk pewarisan.
5
BAB
Modul PBO – Teknokrat
40
Berdasarkan Gambat 5.1, kelas induk (kelas dosen) memiliki atribut nik dan nama. Method yang
dimiliki kelas dosen antara lain Konsturktor Dosen, getNik, getNama, dan view. Untuk kelas turunan
dari kelas dosen yaitu kelas Dekan dan Rektor. Pada kelas Dekan terdapat tambahan atribut yaitu
fakultas, serta method Konstruktor Dekan, getFakultas, dan viewDekan. Pada kelas Rektor terdapat
tambahan atribut tahunMasuk, serta method konstruktor Rektor, getTahunMasuk, dan viewRektor.
Gambar 5. 1 Contoh kelas diagram pewarisan Dosen, Dekan, dan Rektor
Berikut adalah pendefinisian dari masing-masing kelas:
Modul PBO – Teknokrat
41
Program 5-
1
// Dosen.java
public class Dosen {
private String nik;
private String nama;
public Dosen(String nik, String nama) {
this.nik = nik;
this.nama = nama;
}
public String getNik() { return nik; }
public String getNama() { return nama; }
public void view() {
System.out.println("Dosen: " + nik + " - " + nama);
}
}
// Dekan.java
public class Dekan extends Dosen {
private String fakultas;
public Dekan(String nik, String nama, String fakultas) {
super(nik, nama);
this.fakultas = fakultas;
}
public String getFakultas() { return fakultas; }
public void viewDekan() {
System.out.print("Dekan Fakultas " + fakultas);
System.out.print(": " + super.getNik());
System.out.println(" = " + super.getNama());
}
}
// Rektor.java
public class Rektor extends Dosen {
private int tahunMasuk;
public Rektor(String nik, String nama, int tahunMasuk) {
super(nik, nama);
this.tahunMasuk = tahunMasuk;
}
public int getTahunMausk() { return tahunMasuk; }
public void viewRektor() {
System.out.print("Rektor: " + super.getNik());
System.out.print(" - " + super.getNama() + "n");
System.out.println("Tahun Diangkat: " + tahunMasuk);
}
}
Modul PBO – Teknokrat
42
// MainInheritance1.java
public class MainInheritance1 {
public static void main(String [] args) {
Dosen Do = new Dosen("1234567", "Budiono");
Do.view();
Dekan De = new Dekan("1234577", "Warsito", "FMIPA");
De.view();
De.viewDekan();
Rektor Re = new Rektor("1234588", "Dewanto", 2015);
Re.view();
Re.viewRektor();
}
}
Hasil Output
Kode: PC-01
Processor: Pentium IV, 500
Monitor: Sony Multiscan 15sf
Printer: Canon BJC-210sp, Color
Harga: Rp. 850000
Berdasarkan implementasi terlihat bahwa method getNik, getNama, dan view diturunkan ke kelas
Rektor dan Dekan sehingga kelas-kelas tersebut dapat menggunakan method tersebut. Konstruktor
dari kelas induk tidak dapat diturunkan kepada kelas turunannya. Untuk menggunakan method dan
konstruktor dari kelas induk pada kelas anak dapat menggunakan keyword super.
Berikut adalah contoh lain bentuk pewarisan:
Gambar 5. 2 Contoh kelas diagram pewarisan Rectangle dan Box
Implementasi kelas diagram di atas dalam Java adalah sebagai berikut:
Modul PBO – Teknokrat
43
Program 5-2
// Rectangle.java
public class Rectangle {
private double panjang;
private double lebar;
public Rectangle (double p, double l) {
panjang = p;
lebar = l;
}
public double getPanjang() { return panjang; }
public double getLebar() { return lebar; }
public double luas() {
return panjang * lebar;
}
public double keliling() {
return 2 * (panjang + lebar);
}
}
// Box.java
public class Box extends Rectangle {
private double tinggi;
public Box(double p, double l, double t) {
super(p, l);
tinggi = t;
}
public double getTinggi() { return tinggi; }
public double luasPermukaan() {
return 2 * (getPanjang() * getLebar() +
getPanjang() * getTinggi() +
getLebar() * getTinggi());
}
public double volume() {
return luas() * tinggi;
}
}
Modul PBO – Teknokrat
44
// MainInheritance2.java
public class MainInheritance2 {
public static void main(String [] args) {
Rectangle R = new Rectangle(10, 5);
Box B = new Box(3, 4, 5);
System.out.println("Rectangle");
System.out.println("Panjang: " + R.getPanjang());
System.out.println("Lebar: " + R.getLebar());
System.out.println("Keliling: " + R.keliling());
System.out.println("Luas: " + R.luas());
System.out.println();
System.out.println("Box");
System.out.println("Panjang: " + B.getPanjang());
System.out.println("Lebar: " + B.getLebar());
System.out.println("Tinggi: " + B.getTinggi());
System.out.println("Luas Permukaan: " + B.luasPermukaan());
System.out.println("Volume: " + B.volume());
}
}
Hasil Output
Rectangle
Panjang: 10.0
Lebar: 5.0
Keliling: 30.0
Luas: 50.0
Box
Panjang: 3.0
Lebar: 4.0
Tinggi: 5.0
Luas Permukaan: 94.0
Volume: 60.0
PEWARISAN BERTINGKAT (MULTILEVEL INHERITANCE)
Konsep inheritance yang ada di Java memperkenankan adanya multilevel inheritance. Konsep
multilevel inheritance memperbolehkan suatu subclass mempunyai subclass lagi. Berikut adalah
contoh class diagram penerepan pewarisan bertingkat pada Java.
Modul PBO – Teknokrat
45
Gambar 5. 3 Contoh kelas diagram multiple inheritance
KELAS ABSTRAK
Kelas abstrak merupakan bentuk khusus dari kelas. Kelas abstrak ini tidak dapat diinstansiasi dan
digunakan hanya untuk diturunkan ke dalam bentuk kelas konkret atau kelas abstrak berikutnya.
Untuk mendeklarasikan kelas abstrak dengan menggunakan keyword abstract.
Kelas abstrak memiliki atribut dan method sama seperti kelas konkret, namun dalam kelas abstrak
harus terdapat minimal satu method abstrak. Method abstrak adalah method yang tidak mempunyai
implementasi hanya deklarasinya (prototipe) saja. Berikut ini adalah contoh kelas abstrak:
Gambar 5. 4 Kelas diagram untuk kelas abstrak Person
Implementasi dari kelas abstrak diagram di atas pada Java adalah sebagai berikut:
Program 5-3
Modul PBO – Teknokrat
46
// Person.java
public abstract class Person {
private String name;
public Person(String name) {
this.name = name;
}
public abstract String getDescription();
public String getName() { return name; }
}
Berdasarkan kode di atas, dapat dilihat method getDescription merupaka method abstrak karena
tidak memiliki implementasi. Ketika suatu kelas mewarisi kelas abstrak, kelas tersebut harus
mendefinisikan implementasi dari method abstrak yang ada dalam kelas induknya. Jika tidak
didefinisikan implementasinya, maka kelas tersebut akan menjadi kelas abstrak juga. Berikut adalah
contoh pewarisan teradap kelas abstrak:
Gambar 5. 5 Kelas diagram kelas abstrak dan kelas turunannya
Implementasi dari kelas diagram di atas pada Java adalah sebagai berikut:
Program 5-4
// Student.java
public class Student extends Person {
private String major;
public Student(String name, String major) {
super(name);
this.major = major;
}
public String getDescription() {
return ("a student name " + getName() +
" majoring in " + major);
}
}
// Employee.java
public class Employee extends Person {
private double salary;
public Employee(String name, double salary) {
super(name);
this.salary = salary;
}
Modul PBO – Teknokrat
47
public String getDescription() {
return ("an employee name " + getName() +
" with a salary of " + salary);
}
}
// MainAbstrak.java
public class MainAbstrak {
public static void main(String [] args) {
Student S = new Student("Delpiero", "Sistem Informasi");
System.out.println(S.getDescription());
Employee E = new Employee("Nesta", 2500000);
System.out.println(E.getDescription());
}
}
Hasil Output
a student name Delpiero majoring in Sistem Informasi
an employee name Nesta with a salary of 2500000.0
INTERFACE
Interface adalah prototipe kelas yang berisi definisi konstanta dan deklarasi method (hanya nama
method tanpa implementasi). Interface terdiri dari:
· Semua atribut adalah public, static, dan final (semua atribut bertindak sebagai konstanta)
· Semua method adalah abstract dan public
· Tidak boleh ada deklarasi konstruktor
Interface digunakan untuk menyatakan spesifikasi fungsional beberapa kelas secara umum. Dengan
adanya interface, Java menyediakan sebuah fitur untuk pewarisan jamak (multiple inheritance).
Berikut adalah contoh interface:
Gambar 5. 6 Contoh kelas diagram interface start stop dan kelas implements-nya
Implementasi dari kelas diagram di atas pada Java adalah sebagai berikut:
Modul PBO – Teknokrat
48
Program 5-4
// StartStop.java
public interface StartStop {
public void start();
public void stop();
}
// Car.java
public class Car implements StartStop {
private String name;
public Car(String name) {
this.name = name;
}
public void start() {
System.out.println("Insert key into ignition and turn");
}
public void stop() {
System.out.println("Turn key and remove from ignition");
}
public String getName() { return name; }
}
// washingMachine.java
public class WashingMachine implements StartStop {
private String name;
public WashingMachine(String name) {
this.name = name;
}
public void start() {
System.out.println("Push button and turn right");
}
public void stop() {
System.out.println("Turn left and push button");
}
public String getName() { return name; }
}
Modul PBO – Teknokrat
49
// MainInterface.java
public class MainInterface {
public static void main(String [] args) {
Car c = new Car("Ertiga");
System.out.println(c.getName());
System.out.print("Start: ");
c.start();
System.out.print("Stop : ");
c.stop();
WashingMachine w = new WashingMachine("Sanyo");
System.out.println("n"+w.getName());
System.out.print("Start: ");
w.start();
System.out.print("Stop : ");
w.stop();
}
}
Hasil Output
Ertiga
Start: Insert key into ignition and turn
Stop : Turn key and remove from ignition
Sanyo
Start: Push button and turn right
Stop : Turn left and push button
Modul PBO – Teknokrat
50
Lembar Kerja Praktikum: Modul 5
NPM: Asisten:
Nama: Nilai:
Kelas: Tanggal:
Soal
[Score: 100] Perhatikan kelas diagram berikut:
Modul PBO – Teknokrat
51
Ketentuan:
· Kelas pegawai adalah kelas abstrak
· Gaji pokok ditentukan berdasarkan golongan:
o Golongan = ’A’, gaji pokok = 3.000.000
o Golongan = ’B’, gaji pokok = 2.000.000
o Golongan = ’C’, gaji pokok = 1.000.000
· Uang lembur dihitung dari jam lembur x 30.000
· Seorang pegawai dianggap lembur jika jam kerja > 8
· Gaji Bersih = Gaji Pokok + Uang Lembur
Buatlah kode program Java dari kelas diagram di atas.

More Related Content

What's hot

Laporan PBO pratikum 2
Laporan PBO pratikum 2Laporan PBO pratikum 2
Laporan PBO pratikum 2rahmi wahyuni
 
[PBO] Pertemuan 3 - Pengenalan Pemrograman Berbasis Objek
[PBO] Pertemuan 3 - Pengenalan Pemrograman Berbasis Objek[PBO] Pertemuan 3 - Pengenalan Pemrograman Berbasis Objek
[PBO] Pertemuan 3 - Pengenalan Pemrograman Berbasis Objekrizki adam kurniawan
 
PBO - Pert 7, Mengenal dan Memahami Konsep Array Pada Java
PBO - Pert 7, Mengenal dan Memahami Konsep Array Pada JavaPBO - Pert 7, Mengenal dan Memahami Konsep Array Pada Java
PBO - Pert 7, Mengenal dan Memahami Konsep Array Pada JavaRUDISELAMAT2
 
MudafiqRiyan - MVC-DAO Java Desktop
MudafiqRiyan - MVC-DAO Java DesktopMudafiqRiyan - MVC-DAO Java Desktop
MudafiqRiyan - MVC-DAO Java DesktopMudafiq R. Pratama
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)Debby Ummul
 
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
 
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
 
Soal + jawaban PAT PBO Kelas XI RPL 2021.docx
Soal + jawaban PAT PBO Kelas XI RPL 2021.docxSoal + jawaban PAT PBO Kelas XI RPL 2021.docx
Soal + jawaban PAT PBO Kelas XI RPL 2021.docxSaprudin Eskom
 
BAB 4 PBO C++ PENGENALAN ACCESS SPECIEFER
BAB 4 PBO C++ PENGENALAN ACCESS SPECIEFERBAB 4 PBO C++ PENGENALAN ACCESS SPECIEFER
BAB 4 PBO C++ PENGENALAN ACCESS SPECIEFERRicko SkyWriter
 
Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQL
Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQLLaporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQL
Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQLShofura Kamal
 
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
 
Pertemuan 7 camera
Pertemuan 7 cameraPertemuan 7 camera
Pertemuan 7 cameraheriakj
 
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
 
[PBO] Pertemuan 10 - Exception & Error Handling
[PBO] Pertemuan 10 - Exception & Error Handling[PBO] Pertemuan 10 - Exception & Error Handling
[PBO] Pertemuan 10 - Exception & Error Handlingrizki adam kurniawan
 
PBO - Soal Percabangan dan Perulangan JAVA
PBO - Soal Percabangan dan Perulangan JAVAPBO - Soal Percabangan dan Perulangan JAVA
PBO - Soal Percabangan dan Perulangan JAVArahmantoyuri
 

What's hot (20)

Laporan PBO pratikum 2
Laporan PBO pratikum 2Laporan PBO pratikum 2
Laporan PBO pratikum 2
 
Modul praktikum-pemrograman java dgn netbeans
Modul praktikum-pemrograman java dgn netbeansModul praktikum-pemrograman java dgn netbeans
Modul praktikum-pemrograman java dgn netbeans
 
[PBO] Pertemuan 3 - Pengenalan Pemrograman Berbasis Objek
[PBO] Pertemuan 3 - Pengenalan Pemrograman Berbasis Objek[PBO] Pertemuan 3 - Pengenalan Pemrograman Berbasis Objek
[PBO] Pertemuan 3 - Pengenalan Pemrograman Berbasis Objek
 
PBO - Pert 7, Mengenal dan Memahami Konsep Array Pada Java
PBO - Pert 7, Mengenal dan Memahami Konsep Array Pada JavaPBO - Pert 7, Mengenal dan Memahami Konsep Array Pada Java
PBO - Pert 7, Mengenal dan Memahami Konsep Array Pada Java
 
MudafiqRiyan - MVC-DAO Java Desktop
MudafiqRiyan - MVC-DAO Java DesktopMudafiqRiyan - MVC-DAO Java Desktop
MudafiqRiyan - MVC-DAO Java Desktop
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
 
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)
 
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
 
penyajian algoritma
penyajian algoritmapenyajian algoritma
penyajian algoritma
 
Modul belajar java I/O (Input/Ouptut)
Modul belajar java I/O (Input/Ouptut)Modul belajar java I/O (Input/Ouptut)
Modul belajar java I/O (Input/Ouptut)
 
Soal + jawaban PAT PBO Kelas XI RPL 2021.docx
Soal + jawaban PAT PBO Kelas XI RPL 2021.docxSoal + jawaban PAT PBO Kelas XI RPL 2021.docx
Soal + jawaban PAT PBO Kelas XI RPL 2021.docx
 
BAB 4 PBO C++ PENGENALAN ACCESS SPECIEFER
BAB 4 PBO C++ PENGENALAN ACCESS SPECIEFERBAB 4 PBO C++ PENGENALAN ACCESS SPECIEFER
BAB 4 PBO C++ PENGENALAN ACCESS SPECIEFER
 
Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQL
Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQLLaporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQL
Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQL
 
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"
 
Pertemuan 7 camera
Pertemuan 7 cameraPertemuan 7 camera
Pertemuan 7 camera
 
P9 enkapsulasi
P9 enkapsulasiP9 enkapsulasi
P9 enkapsulasi
 
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
 
GoLang_1
GoLang_1GoLang_1
GoLang_1
 
[PBO] Pertemuan 10 - Exception & Error Handling
[PBO] Pertemuan 10 - Exception & Error Handling[PBO] Pertemuan 10 - Exception & Error Handling
[PBO] Pertemuan 10 - Exception & Error Handling
 
PBO - Soal Percabangan dan Perulangan JAVA
PBO - Soal Percabangan dan Perulangan JAVAPBO - Soal Percabangan dan Perulangan JAVA
PBO - Soal Percabangan dan Perulangan JAVA
 

Similar to Modul PBO Bab-05 - Pewarisan (Inheritance)

pbo 3 ervan
pbo 3 ervanpbo 3 ervan
pbo 3 ervanaris
 
Modul pratikum pbo - ENCAPSULATION
Modul pratikum pbo - ENCAPSULATIONModul pratikum pbo - ENCAPSULATION
Modul pratikum pbo - ENCAPSULATIONrahmantoyuri
 
Pbo inheritance, polymorphism, dan inte
Pbo inheritance, polymorphism, dan intePbo inheritance, polymorphism, dan inte
Pbo inheritance, polymorphism, dan inteSmkn-2 Pekanbaru
 
Tugas 5 individu rekayasa web 0316
Tugas 5 individu rekayasa web 0316Tugas 5 individu rekayasa web 0316
Tugas 5 individu rekayasa web 0316septianarul
 
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
 
Tugas 5 rekayasa web
Tugas 5 rekayasa webTugas 5 rekayasa web
Tugas 5 rekayasa webart david
 
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
 
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
 
Basic Java Application - Sesi 5
Basic Java Application - Sesi 5Basic Java Application - Sesi 5
Basic Java Application - Sesi 5Rudi Hartono
 
Tugas 5 rekayasa web
Tugas 5 rekayasa webTugas 5 rekayasa web
Tugas 5 rekayasa webosta92
 
Laporan PBO Pratikum 3
Laporan PBO Pratikum 3Laporan PBO Pratikum 3
Laporan PBO Pratikum 3rahmi wahyuni
 
PBO_03_Inheritance.pptx
PBO_03_Inheritance.pptxPBO_03_Inheritance.pptx
PBO_03_Inheritance.pptxplgbk
 
Modul Pemrograman Berorientasi Objek
Modul Pemrograman Berorientasi ObjekModul Pemrograman Berorientasi Objek
Modul Pemrograman Berorientasi ObjekWahyu Widodo
 
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
 

Similar to Modul PBO Bab-05 - Pewarisan (Inheritance) (20)

pbo 3 ervan
pbo 3 ervanpbo 3 ervan
pbo 3 ervan
 
Modul pratikum pbo - ENCAPSULATION
Modul pratikum pbo - ENCAPSULATIONModul pratikum pbo - ENCAPSULATION
Modul pratikum pbo - ENCAPSULATION
 
Pbo inheritance, polymorphism, dan inte
Pbo inheritance, polymorphism, dan intePbo inheritance, polymorphism, dan inte
Pbo inheritance, polymorphism, dan inte
 
Tugas 5 individu rekayasa web 0316
Tugas 5 individu rekayasa web 0316Tugas 5 individu rekayasa web 0316
Tugas 5 individu rekayasa web 0316
 
9150 8 interface
9150 8  interface9150 8  interface
9150 8 interface
 
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
inheritanceinheritance
inheritance
 
Tugas 5 rekayasa web
Tugas 5 rekayasa webTugas 5 rekayasa web
Tugas 5 rekayasa web
 
365 4 inheritance
365 4 inheritance365 4 inheritance
365 4 inheritance
 
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
 
Basic Java Application - Sesi 5
Basic Java Application - Sesi 5Basic Java Application - Sesi 5
Basic Java Application - Sesi 5
 
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
 
11. inheritance
11. inheritance11. inheritance
11. inheritance
 
Laporan PBO Pratikum 3
Laporan PBO Pratikum 3Laporan PBO Pratikum 3
Laporan PBO Pratikum 3
 
PBO_03_Inheritance.pptx
PBO_03_Inheritance.pptxPBO_03_Inheritance.pptx
PBO_03_Inheritance.pptx
 
Modul Pemrograman Berorientasi Objek
Modul Pemrograman Berorientasi ObjekModul Pemrograman Berorientasi Objek
Modul Pemrograman Berorientasi Objek
 
Network programming 03- Pemrograman Java Lanjutan
Network programming 03- Pemrograman Java LanjutanNetwork programming 03- Pemrograman Java Lanjutan
Network programming 03- Pemrograman Java Lanjutan
 
Java4
Java4Java4
Java4
 

More from Rakhmat Dedi Gunawan

Modul PBO Bab-12 - Setup & Deployment
Modul PBO Bab-12 - Setup & DeploymentModul PBO Bab-12 - Setup & Deployment
Modul PBO Bab-12 - Setup & DeploymentRakhmat Dedi Gunawan
 
Modul PBO Bab-10 - Event & Exception Handling
Modul PBO Bab-10 - Event & Exception HandlingModul PBO Bab-10 - Event & Exception Handling
Modul PBO Bab-10 - Event & Exception HandlingRakhmat Dedi Gunawan
 
Modul PBO Bab-04 - Hubungan antar Kelas
Modul PBO Bab-04 - Hubungan antar KelasModul PBO Bab-04 - Hubungan antar Kelas
Modul PBO Bab-04 - Hubungan antar KelasRakhmat Dedi Gunawan
 
Modul PBO Bab-02 - Struktur Kontrol
Modul PBO Bab-02 - Struktur KontrolModul PBO Bab-02 - Struktur Kontrol
Modul PBO Bab-02 - Struktur KontrolRakhmat Dedi Gunawan
 
Modul PBO Bab-01 - Pengenalan Java
Modul PBO Bab-01 - Pengenalan JavaModul PBO Bab-01 - Pengenalan Java
Modul PBO Bab-01 - Pengenalan JavaRakhmat Dedi Gunawan
 
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
 
Chapter 02 - Pembuatan Projek Baru
Chapter 02 - Pembuatan Projek BaruChapter 02 - Pembuatan Projek Baru
Chapter 02 - Pembuatan Projek BaruRakhmat Dedi Gunawan
 
Chapter 10 - Pembatan Report Kwitansi
Chapter 10 - Pembatan Report KwitansiChapter 10 - Pembatan Report Kwitansi
Chapter 10 - Pembatan Report KwitansiRakhmat Dedi Gunawan
 

More from Rakhmat Dedi Gunawan (19)

Modul PBO Bab-00 - Daftar Isi
Modul PBO Bab-00 - Daftar IsiModul PBO Bab-00 - Daftar Isi
Modul PBO Bab-00 - Daftar Isi
 
Modul PBO Bab-12 - Setup & Deployment
Modul PBO Bab-12 - Setup & DeploymentModul PBO Bab-12 - Setup & Deployment
Modul PBO Bab-12 - Setup & Deployment
 
Modul PBO Bab-11 - JDBC
Modul PBO Bab-11 - JDBCModul PBO Bab-11 - JDBC
Modul PBO Bab-11 - JDBC
 
Modul PBO Bab-10 - Event & Exception Handling
Modul PBO Bab-10 - Event & Exception HandlingModul PBO Bab-10 - Event & Exception Handling
Modul PBO Bab-10 - Event & Exception Handling
 
Modul PBO Bab-08 - Java GUI
Modul PBO Bab-08 - Java GUIModul PBO Bab-08 - Java GUI
Modul PBO Bab-08 - Java GUI
 
Modul PBO Bab-09 - Swing
Modul PBO Bab-09 - SwingModul PBO Bab-09 - Swing
Modul PBO Bab-09 - Swing
 
Modul PBO Bab-04 - Hubungan antar Kelas
Modul PBO Bab-04 - Hubungan antar KelasModul PBO Bab-04 - Hubungan antar Kelas
Modul PBO Bab-04 - Hubungan antar Kelas
 
Modul PBO Bab-03 - Kelas & Objek
Modul PBO Bab-03 - Kelas & ObjekModul PBO Bab-03 - Kelas & Objek
Modul PBO Bab-03 - Kelas & Objek
 
Modul PBO Bab-02 - Struktur Kontrol
Modul PBO Bab-02 - Struktur KontrolModul PBO Bab-02 - Struktur Kontrol
Modul PBO Bab-02 - Struktur Kontrol
 
Modul PBO Bab-01 - Pengenalan Java
Modul PBO Bab-01 - Pengenalan JavaModul PBO Bab-01 - Pengenalan Java
Modul PBO Bab-01 - Pengenalan Java
 
Modul PBO Bab-06 - Polimorfisme (Polymorphism)
Modul PBO Bab-06 - Polimorfisme (Polymorphism)Modul PBO Bab-06 - Polimorfisme (Polymorphism)
Modul PBO Bab-06 - Polimorfisme (Polymorphism)
 
Chapter 01 - Pembuatan Database
Chapter 01 - Pembuatan DatabaseChapter 01 - Pembuatan Database
Chapter 01 - Pembuatan Database
 
Chapter 03 - Form Master
Chapter 03 - Form MasterChapter 03 - Form Master
Chapter 03 - Form Master
 
Chapter 02 - Pembuatan Projek Baru
Chapter 02 - Pembuatan Projek BaruChapter 02 - Pembuatan Projek Baru
Chapter 02 - Pembuatan Projek Baru
 
Chapter 10 - Pembatan Report Kwitansi
Chapter 10 - Pembatan Report KwitansiChapter 10 - Pembatan Report Kwitansi
Chapter 10 - Pembatan Report Kwitansi
 
T04-Stored Procedure
T04-Stored ProcedureT04-Stored Procedure
T04-Stored Procedure
 
T05-Trigger
T05-TriggerT05-Trigger
T05-Trigger
 
T02-Join & View
T02-Join & ViewT02-Join & View
T02-Join & View
 
Teori pbd - erd_studi_kasus (1)
Teori pbd - erd_studi_kasus (1)Teori pbd - erd_studi_kasus (1)
Teori pbd - erd_studi_kasus (1)
 

Modul PBO Bab-05 - Pewarisan (Inheritance)

  • 1. Modul PBO – Teknokrat 39 PEWARISAN (INHERITANCE) Tujuan Praktikan dapat memahami dan menjelaskan tentang pewarisan kelas, kelas abstrak, dan juga interface, serta dapat mengimplementasikan ke dalam pemrograman Java. PEWARISAN Pewarisan merupakan kemampuan suatu kelas untuk mewariskan seluruh atau sebagian atribut dan methodnya ke kelas lain, sehingga atribut dan method tersebut dapat dikenali oleh kelas yang menerima pewarisan tanpa harus menuliskannya. Pewarisan merupakan implementasi dari hubungan antar kelas generalisasi dan spesialisasi. Kelas yang mewariskan disebut dengan kelas induk, super class, atau base class. Kelas yang menerima pewarisan disebut kelas anak, kelas turunan, atau subclass. Konsep pewarisan dapat dilakukan jika: · Ada beberapa atribut dan method yang sama yang digunakan oleh beberapa kelas berbeda (reduksi penulisan kode) · Ada satu atau beberapa kelas yang sudah pernah dibuat yang dibutuhkan oleh aplikasi (reusability) · Ada perubahan kebutuhan fungsional atau feature aplikasi dimana sebagian atau seluruh perubahan tersebut tercakup di satu atau beberapa kelas yang sudah ada (extend) Berikut adalah beberapa contoh pewarisan: Tabel 5. 1 Contoh Bentuk Pewarisan Superclass Subclasses Student GraduateStudent, UndergraduateStudent Shape Circle, Triangle, Rectangle Loan CarLoan, HomeImprovementLoan, MortgageLoan Employee Faculty, Staff BankAccount CheckingAccount, SavingAccount PEWARISAN DI JAVA Pada pemrograman Java hanya mengenal pewarisan tunggal, sebuah kelas hanya dapat mewarisi atribut dan method dari satu kelas induk. Untuk menggunakan pewarisan di Java digunakan keyword extends. Gambar 5.1 adalah contoh bentuk pewarisan. 5 BAB
  • 2. Modul PBO – Teknokrat 40 Berdasarkan Gambat 5.1, kelas induk (kelas dosen) memiliki atribut nik dan nama. Method yang dimiliki kelas dosen antara lain Konsturktor Dosen, getNik, getNama, dan view. Untuk kelas turunan dari kelas dosen yaitu kelas Dekan dan Rektor. Pada kelas Dekan terdapat tambahan atribut yaitu fakultas, serta method Konstruktor Dekan, getFakultas, dan viewDekan. Pada kelas Rektor terdapat tambahan atribut tahunMasuk, serta method konstruktor Rektor, getTahunMasuk, dan viewRektor. Gambar 5. 1 Contoh kelas diagram pewarisan Dosen, Dekan, dan Rektor Berikut adalah pendefinisian dari masing-masing kelas:
  • 3. Modul PBO – Teknokrat 41 Program 5- 1 // Dosen.java public class Dosen { private String nik; private String nama; public Dosen(String nik, String nama) { this.nik = nik; this.nama = nama; } public String getNik() { return nik; } public String getNama() { return nama; } public void view() { System.out.println("Dosen: " + nik + " - " + nama); } } // Dekan.java public class Dekan extends Dosen { private String fakultas; public Dekan(String nik, String nama, String fakultas) { super(nik, nama); this.fakultas = fakultas; } public String getFakultas() { return fakultas; } public void viewDekan() { System.out.print("Dekan Fakultas " + fakultas); System.out.print(": " + super.getNik()); System.out.println(" = " + super.getNama()); } } // Rektor.java public class Rektor extends Dosen { private int tahunMasuk; public Rektor(String nik, String nama, int tahunMasuk) { super(nik, nama); this.tahunMasuk = tahunMasuk; } public int getTahunMausk() { return tahunMasuk; } public void viewRektor() { System.out.print("Rektor: " + super.getNik()); System.out.print(" - " + super.getNama() + "n"); System.out.println("Tahun Diangkat: " + tahunMasuk); } }
  • 4. Modul PBO – Teknokrat 42 // MainInheritance1.java public class MainInheritance1 { public static void main(String [] args) { Dosen Do = new Dosen("1234567", "Budiono"); Do.view(); Dekan De = new Dekan("1234577", "Warsito", "FMIPA"); De.view(); De.viewDekan(); Rektor Re = new Rektor("1234588", "Dewanto", 2015); Re.view(); Re.viewRektor(); } } Hasil Output Kode: PC-01 Processor: Pentium IV, 500 Monitor: Sony Multiscan 15sf Printer: Canon BJC-210sp, Color Harga: Rp. 850000 Berdasarkan implementasi terlihat bahwa method getNik, getNama, dan view diturunkan ke kelas Rektor dan Dekan sehingga kelas-kelas tersebut dapat menggunakan method tersebut. Konstruktor dari kelas induk tidak dapat diturunkan kepada kelas turunannya. Untuk menggunakan method dan konstruktor dari kelas induk pada kelas anak dapat menggunakan keyword super. Berikut adalah contoh lain bentuk pewarisan: Gambar 5. 2 Contoh kelas diagram pewarisan Rectangle dan Box Implementasi kelas diagram di atas dalam Java adalah sebagai berikut:
  • 5. Modul PBO – Teknokrat 43 Program 5-2 // Rectangle.java public class Rectangle { private double panjang; private double lebar; public Rectangle (double p, double l) { panjang = p; lebar = l; } public double getPanjang() { return panjang; } public double getLebar() { return lebar; } public double luas() { return panjang * lebar; } public double keliling() { return 2 * (panjang + lebar); } } // Box.java public class Box extends Rectangle { private double tinggi; public Box(double p, double l, double t) { super(p, l); tinggi = t; } public double getTinggi() { return tinggi; } public double luasPermukaan() { return 2 * (getPanjang() * getLebar() + getPanjang() * getTinggi() + getLebar() * getTinggi()); } public double volume() { return luas() * tinggi; } }
  • 6. Modul PBO – Teknokrat 44 // MainInheritance2.java public class MainInheritance2 { public static void main(String [] args) { Rectangle R = new Rectangle(10, 5); Box B = new Box(3, 4, 5); System.out.println("Rectangle"); System.out.println("Panjang: " + R.getPanjang()); System.out.println("Lebar: " + R.getLebar()); System.out.println("Keliling: " + R.keliling()); System.out.println("Luas: " + R.luas()); System.out.println(); System.out.println("Box"); System.out.println("Panjang: " + B.getPanjang()); System.out.println("Lebar: " + B.getLebar()); System.out.println("Tinggi: " + B.getTinggi()); System.out.println("Luas Permukaan: " + B.luasPermukaan()); System.out.println("Volume: " + B.volume()); } } Hasil Output Rectangle Panjang: 10.0 Lebar: 5.0 Keliling: 30.0 Luas: 50.0 Box Panjang: 3.0 Lebar: 4.0 Tinggi: 5.0 Luas Permukaan: 94.0 Volume: 60.0 PEWARISAN BERTINGKAT (MULTILEVEL INHERITANCE) Konsep inheritance yang ada di Java memperkenankan adanya multilevel inheritance. Konsep multilevel inheritance memperbolehkan suatu subclass mempunyai subclass lagi. Berikut adalah contoh class diagram penerepan pewarisan bertingkat pada Java.
  • 7. Modul PBO – Teknokrat 45 Gambar 5. 3 Contoh kelas diagram multiple inheritance KELAS ABSTRAK Kelas abstrak merupakan bentuk khusus dari kelas. Kelas abstrak ini tidak dapat diinstansiasi dan digunakan hanya untuk diturunkan ke dalam bentuk kelas konkret atau kelas abstrak berikutnya. Untuk mendeklarasikan kelas abstrak dengan menggunakan keyword abstract. Kelas abstrak memiliki atribut dan method sama seperti kelas konkret, namun dalam kelas abstrak harus terdapat minimal satu method abstrak. Method abstrak adalah method yang tidak mempunyai implementasi hanya deklarasinya (prototipe) saja. Berikut ini adalah contoh kelas abstrak: Gambar 5. 4 Kelas diagram untuk kelas abstrak Person Implementasi dari kelas abstrak diagram di atas pada Java adalah sebagai berikut: Program 5-3
  • 8. Modul PBO – Teknokrat 46 // Person.java public abstract class Person { private String name; public Person(String name) { this.name = name; } public abstract String getDescription(); public String getName() { return name; } } Berdasarkan kode di atas, dapat dilihat method getDescription merupaka method abstrak karena tidak memiliki implementasi. Ketika suatu kelas mewarisi kelas abstrak, kelas tersebut harus mendefinisikan implementasi dari method abstrak yang ada dalam kelas induknya. Jika tidak didefinisikan implementasinya, maka kelas tersebut akan menjadi kelas abstrak juga. Berikut adalah contoh pewarisan teradap kelas abstrak: Gambar 5. 5 Kelas diagram kelas abstrak dan kelas turunannya Implementasi dari kelas diagram di atas pada Java adalah sebagai berikut: Program 5-4 // Student.java public class Student extends Person { private String major; public Student(String name, String major) { super(name); this.major = major; } public String getDescription() { return ("a student name " + getName() + " majoring in " + major); } } // Employee.java public class Employee extends Person { private double salary; public Employee(String name, double salary) { super(name); this.salary = salary; }
  • 9. Modul PBO – Teknokrat 47 public String getDescription() { return ("an employee name " + getName() + " with a salary of " + salary); } } // MainAbstrak.java public class MainAbstrak { public static void main(String [] args) { Student S = new Student("Delpiero", "Sistem Informasi"); System.out.println(S.getDescription()); Employee E = new Employee("Nesta", 2500000); System.out.println(E.getDescription()); } } Hasil Output a student name Delpiero majoring in Sistem Informasi an employee name Nesta with a salary of 2500000.0 INTERFACE Interface adalah prototipe kelas yang berisi definisi konstanta dan deklarasi method (hanya nama method tanpa implementasi). Interface terdiri dari: · Semua atribut adalah public, static, dan final (semua atribut bertindak sebagai konstanta) · Semua method adalah abstract dan public · Tidak boleh ada deklarasi konstruktor Interface digunakan untuk menyatakan spesifikasi fungsional beberapa kelas secara umum. Dengan adanya interface, Java menyediakan sebuah fitur untuk pewarisan jamak (multiple inheritance). Berikut adalah contoh interface: Gambar 5. 6 Contoh kelas diagram interface start stop dan kelas implements-nya Implementasi dari kelas diagram di atas pada Java adalah sebagai berikut:
  • 10. Modul PBO – Teknokrat 48 Program 5-4 // StartStop.java public interface StartStop { public void start(); public void stop(); } // Car.java public class Car implements StartStop { private String name; public Car(String name) { this.name = name; } public void start() { System.out.println("Insert key into ignition and turn"); } public void stop() { System.out.println("Turn key and remove from ignition"); } public String getName() { return name; } } // washingMachine.java public class WashingMachine implements StartStop { private String name; public WashingMachine(String name) { this.name = name; } public void start() { System.out.println("Push button and turn right"); } public void stop() { System.out.println("Turn left and push button"); } public String getName() { return name; } }
  • 11. Modul PBO – Teknokrat 49 // MainInterface.java public class MainInterface { public static void main(String [] args) { Car c = new Car("Ertiga"); System.out.println(c.getName()); System.out.print("Start: "); c.start(); System.out.print("Stop : "); c.stop(); WashingMachine w = new WashingMachine("Sanyo"); System.out.println("n"+w.getName()); System.out.print("Start: "); w.start(); System.out.print("Stop : "); w.stop(); } } Hasil Output Ertiga Start: Insert key into ignition and turn Stop : Turn key and remove from ignition Sanyo Start: Push button and turn right Stop : Turn left and push button
  • 12. Modul PBO – Teknokrat 50 Lembar Kerja Praktikum: Modul 5 NPM: Asisten: Nama: Nilai: Kelas: Tanggal: Soal [Score: 100] Perhatikan kelas diagram berikut:
  • 13. Modul PBO – Teknokrat 51 Ketentuan: · Kelas pegawai adalah kelas abstrak · Gaji pokok ditentukan berdasarkan golongan: o Golongan = ’A’, gaji pokok = 3.000.000 o Golongan = ’B’, gaji pokok = 2.000.000 o Golongan = ’C’, gaji pokok = 1.000.000 · Uang lembur dihitung dari jam lembur x 30.000 · Seorang pegawai dianggap lembur jika jam kerja > 8 · Gaji Bersih = Gaji Pokok + Uang Lembur Buatlah kode program Java dari kelas diagram di atas.