Inheritance.

Slides:



Advertisements
Presentasi serupa
PERTEMUAN 4 PEMROGRAMAN API OOP Concept mudafiqriyan.com.
Advertisements

Nur Hayatin, S.ST Jurusan Teknik Informatika Universitas Muhammadiyah Malang Sem Genap 2010.
POLIMORFISME Imam Fahrur Rozi 01.
Inheritance (Pewarisan) As’ad Djamalilleil
Pemrograman JAVA (TIB09)
Workshop SCS: Java Game Programming
Inheritance ImamFahrur Rozi.
Inheritance Ery Setiyawan Jullev A.
Inheritance (Pewarisan)
1.Polymorphism Polymorphism adalah konsep yang memungkinkan mendefinisikan metod pada class anak (sub class) yang memiliki definisi sama dengan metod.
7 Rekayasa Sistem Konsep Utama OOP Dedy Alamsyah, S.Kom.
Membuat Class Sendiri Atribut Pertemuan : Object Oriented Programming.
Overriding, Overloading, Polymorphism
Advanced Class Oleh : Nur Hayatin, S.ST Teknik Informatika – UMM 2011.
Pertemuan 8 Pemrograman Berbasis Obyek Oleh Tita Karlita
Praktikum 8 Pemrograman Berbasis Obyek
Encapsulation, Inheritance, polymorphism, dan interface
Variabel, Method & Constructor Oleh : Nur Hayatin, S.ST Teknik Informatika – UMM 2011.
Pemrograman Berorientasi Objek
Inheritance (Pewarisan)
ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM
Class, Inheritance, Encapsulation & Interface
Pertemuan : Object Oriented Programming
Pemrograman Berorientasi Obyek dengan JAVA Interface
Advanced Class Oleh : Nur Hayatin, S.ST Teknik Informatika – UMM 2011.
Inheritance Nana Ramadijanti Laboratorium Computer Vision Politeknik Elekltronika Negeri Surabaya PENS-ITS 2009.
Object Oriented Programming with JAVA 2011/2012
Enkapsulasi Pemrograman Berorientasi Obyek Oleh Tita Karlita.
Polymorphism (bag. 2).
OOP Java 06 Polymorphism.
Inheritance Matakuliah : T0984 / Algoritma dan Metode Object Oriented Programming II Pertemuan : 4 Tahun : 2008 Versi : 1/0.
Inheritance, polymorphism, dan interface
Pemrograman Berorientasi Obyek (PBO)
INHERITANCE (Oleh : Nur Hayatin, S.ST)
Pertemuan 6 PEWARISAN AND POLYMORPHISM
Perancangan dan Pemrograman Web
FONDASI PEMROGRAMAN & STRUKTUR DATA #8
Access Modifier.
Inheritance dan Kata Kunci static
Pemrograman Berorientasi Obyek
Pemograman Berorientasi Objek
Encapsulation, Inheritance, Polymorphism
Object Oriented Programming
Inheritance Pertemuan 8
Pewarisan Disusun Oleh: Reza Budiawan Untuk:
MODIFIER JAVA.
Enkapsulasi, Accessor Method, Mutator Method
Association, Composition dan Inheritance
MEMBUAT CLASS SENDIRI 2.
Pemrograman Berorientasi Objek
Object Oriented Programming
Inheritance (Turunan)
Inheritance (Pewarisan)
INHERITANCE SUSSI.
Polymorphism (bag. 2).
Praktikum 02 konstruksi class
Encapsulation / Visibility, Getter Setter, Pewarisan, Overloading dan Overriding PBO.
Visibility, Getter Setter, Pewarisan, Overloading dan Overriding
Matakuliah : M0074/PROGRAMMING II Tahun : 2005 Versi : 1/0
Visibility, Getter Setter, Pewarisan, Overloading dan Overriding
Subclassing and Inheritance
Algoritma dan Struktur Data
PEWARISAN Kelompok : Alim Mutohidin ( )
Encapsulation / Visibility, Getter Setter, Pewarisan, Overloading dan Overriding Pemrograman.
@kovazzevic | SMKN 24 Jakarta
Pertemuan 5 Inheritance
Oleh : Rahmat Robi Waliyansyah, M.Kom
Encapsulation / Visibility, Getter Setter, Pewarisan, Overloading dan Overriding PBO.
Pemrograman Berorientasi Obyek (PBO) Disusun oleh : Khairan Marzuki, M.Kom Fakultas Teknik dan Kesehatan, Universitas Bumigora.
DPH1C4 Pemrograman berorientasi Obyek
Transcript presentasi:

Inheritance

PEWARISAN (INHERITANCE) Salah satu fitur yang paling kuat dalam OOP adalah penggunaan kode kembali (code reuse). Sekali sebuah prosedur dibuat, maka kita bisa menggunakannya berulang kali Dalam OOP, kemampuan yang dimiliki tidak hanya itu. Kita juga bisa mendefinisikan hubungan antar kelas yang tidak hanya dimanfaatkan untuk code reuse, tapi juga dari segi pendesainannya yang jauh lebih baik, yaitu dengan cara mengelola kelas-kelas dan faktor kemiripan di antara kelas-kelas tersebut.

Fitur pewarisan (inheritance) mengijinkan sebuah kelas, yang disebut superclass, untuk menurunkan atribut-atribut dan method-methodnya kepada kelas lainnya yang disebut subclass (child)

Terdapat beberapa karakteristik dari subclass: - subclass adalah bentuk khusus dari sebuah superclass - dalam sebuah subclass terdapat atribut dan method yang diturunkan dari superclass - subclass bisa memiliki fitur tambahan yang berbeda dari fitur-fitur yang diturunkan dari superclass-nya

CONTOH PEWARISAN

JENIS-JENIS PEWARISAN Single inheritance, yaitu hanya terdapat satu superclass Multiple inheritance, yaitu terdapat lebih dari satu superclass. Bahasa Java tidak mengakomodasi multiple inheritance

Pewarisan adalah kemampuan sebuah kelas untuk mewariskan seluruh atau sebagian atribut dan methodnya ke kelas lain, sehingga atribut dan method tersebut dikenal oleh kelas yang menerima pewarisan tanpa harus menuliskannya. Pewarisan ini merupakan implementasi dari hubungan antar kelas generalisasi-spesialisasi.

Kelas yang mewariskan disebut kelas induk, super class, atau base class sedangkan kelas yang menerima pewarisan disebut kelas anak, kelas turunan, atau subclass.

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)

Pewarisan di Java Pewarisan di Java hanya mengenal pewarisan tunggal, artinya sebuah kelas hanya mewarisi atribut dan method dari satu kelas induk. Untuk menggunakan pewarisan di Java digunakan keyword extends.

Contoh Pewarisan

//Employee.java public class Employee { public String name; public Date birthDate; public double salary; public String getDetails() {...} }

//Manager.java public class Manager extends Employee { public String department; }

Dari kode di atas, terlihat bahwa atribut name, birthDate, dan salary serta method getDetails() diturunkan ke kelas Manager sehingga kelas Manager dapat menggunakan atribut dan method tersebut. Konstruktor dari kelas induk tidak dapat diturunkan kepada kelas turunannya. Untuk menggunakan method dan konstruktor dari kelas induk pada kelas anak digunakan keyword super

//Employee.java public class Employee { private String name; private double gaji; public Employee (String s, double g) { name = s; } public double getgaji() { return gaji;

//Manager.java public class Manager extends Employee { private String alamat; private double tunjangan; private double bonus; public Manager(String nama, String s, double gaji) { super(nama, gaji); alamat = s; } Public double getgaji() { return (super.getgaji()+tunjangan+bonus);

Ketika kode dalam satu kelas (kelas A) memiliki akses ke kelas yang lain (kelas B), hal tersebut berarti kelas A dapat melakukan satu dari tiga hal berikut : Membuat instance kelas B; Meng-extends kelas B (dengan kata lain, menjadi subclass dari kelas A); Mengakses atribut dan method tertentu dalam kelas B tergantung dari access control atribut dan methodnya.

Access Specifier yang dapat diterapkan pada kelas adalah akses default (friendly) dan public. Dalam deklarasinya, sebuah kelas dengan access specifier default tidak memiliki specifier di depan nama kelasnya. Kelas yang memiliki akses default berarti kelas ini hanya dapat diakses oleh kelas yang berada di dalam package yang sama. Contoh, jika kelas A dan B terletak di dalam package yang berbeda, dan kelas A memiliki akses default, maka kelas B tidak dapat membuat instance dari kelas A atau bahkan tidak dapat mendeklarasikan variabel yang bertipe kelas A. Perhatikan contoh berikut ini:

Contoh package packageOne; class Animal { } package packageTwo; import packageOne.Animal; class Dog extends Animal { } Superclass Animal berada di dalam package yang berbeda dengan subclassnya, yaitu Dog. Pernyataan import di dalam kelas Dog berusaha mengimpor kelas Animal. Ketika proses kompilasi dijalankan, kelas Animal dapat dikompilasi, tetapi tidak dengan kelas Dog. Hal ini disebabkan karena superclass Animal mempunyai akses default dan terletak di dalam package yang berbeda. Kelas yang dideklarasikan public dapat diakses oleh kelas yang berada di manapun, termasuk oleh kelas yang berada di package yang berbeda. Jika contoh kode di atas dimodifikasi dengan menjadikan kelas Animal memiliki access specifier public, maka kedua kelas tersebut dapat dikompilasi.

Access Specifier Tabel di bawah ini merupakan rangkuman aksesibilitas dari access specifier pada class member (atribut dan method). Specifier Kelas yang sama Package yang Sama Subclass Semua Kelas private Ya default protected public

Latihan Buatlah kode Java untuk diagram UML berikut