Inheritance (Pewarisan) Pengertian dasar inheritance

dokumen-dokumen yang mirip
5/23/12. Inheritance. Pengertian inheritance Deklarasi inheritance Single inheritance Multilevel inheritance Access Control super keyword

Inheritance. Pertemuan 8 Pemrograman Berbasis Obyek

Inheritance. Topik 5/17/2013

KARAKTERISTIK PEMROGRAMAN BERORIENTASI OBJEK (OOP) Pemrograman berorientasi Objek mempunyai karakterisitik sebagai berikut:

Pemrograman Berbasis Objek Inheritance

INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM

(INHERITANCE) Nurochman

Inheritance (Pewarisan Sifat) Imam Fahrur Rozi

Chapter 10 Polimorphism

public class B extends A {... }

Polymorphism (Polimorfisme)

Modul Bahasa Pemrograman 1

3/31/2011. Tujuan. Inheritance, Polymorphism,& Interfaces. Inheritance / pewarisan. Inheritance / pewarisan. Inheritance / pewarisan

Bahasa Pemrograman :: Polimorfism and Abstraction

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN JAVA 2

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN 2

KONSEP OOP: POLYMORPHISM

Gambar 1: Hirarki class

BAB 6 INHERITANCE Tujuan:

Praktikum 4 Konsep Inheritance, Polymorphism, dan Encapsulation

Pewarisan, Polimorfisme, dan Interface

KONSEP OOP: POLYMORPHISM

1.Tujuan. 2. Latar Belakang. Mendefinisikan superclasses dan subclasses Override method dari superclasses Membuat method final dan class final

ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM

PEWARISAN. Disusun Oleh: Reza Budiawan. Untuk: Tim Dosen Algoritma & Pemrograman Lanjut

Overriding. Subclass yang berusaha memodifikasi tingkah laku yang diwarisi dari superclass. Tujuan: subclass memiliki tingkah laku yang lebih

Inheritance dan Kata Kunci static

PEMROGRAMAN BERORIENTASI OBJEK

Polymorphism. Materi ke-8 Pemrograman Berbasis Objek

Dasar-Dasar OOP di Java

MODUL 3. Inheritance, Abstract Class, Interface TUJUAN PRAKTIKUM LANDASAN TEORI. A. Inheritance

BAB 1 PEMROGRAMAN BERORIENTASI OBJEK

2015 BAHASA PEMROGRAMAN I. Pertemuan VI Inheritance (Pewarisan)

Dasar-Dasar OOP di Java

PRAKTIKUM I Class dan Obyek

E-Book PEMROGRAMAN BERORIENTASI OBJEK. Disusun Oleh: Arfian Hidayat, S.Kom

Bab 8. Dasar-Dasar OOP

Jobsheet 09. Overloading and Overriding Method

KONSEP OOP: PEWARISAN / INHERITANCE

Bahasa Pemrograman :: Inheritance

Bahasa Pemrograman 2.

PERTEMUAN 13 PERANCANGAN BERORIENTASI OBJEK UNTUK MULTI KELAS

POLIMORPHISM PEMROGRAMAN LANJUT. Dr. Eng. Herman Tolle. Sistem Informasi FILKOM UB Semester Genap 2016/2017

KONSEP OOP: PEWARISAN / INHERITANCE

PRAKTIKUM III & IV PEMROGRAMAN BERORIENTASI OBJEK

IKG2I4 / Software Project I

Pemrograman Berorientasi. Polimorfisme dan Binding

subclass class manapun private default protected public package yang sama

Pemrograman Berorientasi Objek Danu Wira Pangestu

Polymorphism. Oleh : Agus Priyanto, M.Kom

8 - Overriding dan Overloading

Overriding, Overloading, Polymorphism. Pertemuan 10 Pemrograman Berbasis Obyek Dr. Rodiah

Konsep Pemrograman Berbasis Obyek

Pertemuan 11 Object Oriented Program

JOBSHEET 8 INHERITANCE (PEWARISAN)

adalah cara pandang yang memandang SEGALA SESUATU sebagai OBJEK. Semua aspek dalam Java programming dapat dianggap sebagai objek, -kecuali

Pemrograman Berorientasi Objek 2

Pemrograman Berbasis Objek (Polimorfisme)

Object Oriented Programming (OOP) --Inheritance- Saniati STMIK Teknokrat, Bandar Lampung

Konsep Objek Oriented

BAB 7 OVERLOADING DAN OVERRIDING

Pewarisan Sifat Objek. Nur Hasanah, M.Cs

PERTEMUAN 5 OOP. Objektif : Praktikan mengetahui konsep OOP. Praktikan dapat membuat program sederhana dengan konsep OOP.

PEWARISAN D E W I S A R T I K A, M. K O M

KONSEP OBJEK ORIENTASI PROGRAM

Composition dan Inheritance

[Lanjutan] Nurochman

INHERITANCE. Gambar 1. Kelas Hierarki Java

Pengenalan pemrograman berorientasi obyek

Keyword this untuk memanggil private String pengarang; private String judul;

Overriding Method Overloading Method Class(iii) [Superclass and subclass] [constructor overloading] Keyword Super

Overriding Overloading Polymorphism

Encapsulation (Encapsulasi) Minggu 5 Pemrograman Berorientasi Objek Alfa Faridh Suni

Dengan menggunakan encapsulation kita dapat membatasi akses langsung suatu class atau program kecuali melalui suatu method yang sudah diberikan.

Bahasa Pemrograman 2.

Employee employee=new Manager();

Pemrograman Berorientasi. Inheritance

Konsep Dasar Pemrograman Berorientasi Objek

LAPORAN RESMI INHERITANCE

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

1. Manakah jawaban yang benar,pada saat Anda mengcompile dan menjalankan class berikut ini:

INTERAKSI ANTAR OBJECT

KONSEP OOP: PEWARISAN / INHERITANCE

Object Oriented Programming 1

A. TUJUAN PEMBELAJARAN 1. Memahami konsep package dan import 2. Menggunakan kata kunci this

BAB 1 PENGENALAN PEMROGRAMAN BERORIENTASI OBJEK

KONSEP Pemrograman Berorientasi Objek KARMILASARI

PRAKTIKUM 6 EXCEPTION

Praktikum 6 Abstract, Interface, Overloading, Overriding, dan Package

MODUL 6. PEMROGRAMAN VISUAL BASIC.NET DENGAN OOP (II) dan STRING

Pewarisan atau Inheritance

Pemrograman Lanjut Review Class dan Object PTIIK

Apa yang menjadi output potongan kode diatas? Error karena tidak ada String yang di-passing kedalam konstruktor Bapak

Pemrograman Berorientasi Objek / Object Oriented Programming / (OOP) Nur Hasanah, M.Cs

Pertemuan 4 Halaman 1/1. Class Inheritance

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA PENGENALAN OBJECT ORIENTED PROGRAMMING

1. Keyword mana yang memiliki fungsi sama dengan keyword this dan menyediakan reference ke atribut turunan dari objek? super

BAB 12 ENKAPSULASI, INHERITANCE DAN POLIMORPISME

Praktikum. PBO (Kelas K) Oleh : MOHAMMAD SHOLIKIN

Transkripsi:

Inheritance (Pewarisan) 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. Suatu class yang mempunyai class turunan dinamakan parent class atau base class. Sedangkan class turunan itu sendiri seringkali disebut subclass atau child class. Dalam dunia riil, suatu entitas turunan dapat mewarisi apa-apa yang dipunyai dari entitas induknya. Misalkan saja antara entitas Bapak dan entitas Anak. Entitas anak dapat mewarisi apa-apa yang dipunyai oleh entitas Bapaknya. Demikian juga dalam konsep inheritance, suatu subclass dapat mewarisi apa-apa yang dipunyai oleh parent class. Inilah yang terpenting dari konsep inheritance. Karena suatu subclass dapat mewarisi apa-apa yang dipunyai oleh parent class-nya, maka member dari suatu subclass adalah terdiri dari apa-apa yang ia punyai dan juga apa-apa yang ia warisi dari class parent-nya. Kesimpulannya, boleh dikatakan bahwa suatu subclass adalah tidak lain hanya memperluas (extend) parent class-nya. Deklarasi inheritance Di dalam Java untuk mendeklarasikan suatu class sebagai subclass cukup mudah, yaitu 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. Berikut adalah contoh deklarasi inheritance : > class B adalah subclass dari class A public class B extends A { Semua class di dalam Java adalah merupakan subclass dari class super induk yang bernama Object. Misalnya saja kita mempunyai sebuah class sederhana : public class A{. Pada saat dikompilasi, Kompiler Java akan membacanya sebagai subclass dari class Object. public class A extends Object{. Single inheritance Satu hal penting yang harus kita ketahui dari konsep inheritance yang ada di Java adalah Java hanya memperkenankan adanya single inheritance. Konsep single inheritance hanya memperbolehkan suatu sublass mempunyai satu parent class. Dengan konsep single inheritance ini, masalah pewarisan akan dapat diamati dengan mudah. Inilah salah satu keunggulan OOP dalam Java.

Kapan kita menerapkan inheritance? Pertanyaan diatas seringkali muncul bagi siapa saja yang mempelajari konsep OOP. Pertanyaan tersebut dapat terjawab jika kita kembali pada konsep dasar inheritance. Dalam konsep dasar inheritance dikatakan bahwa suatu subclass adalah tidak lain hanya memperluas (extend) parent class-nya. Nah, jawaban yang tepat untuk menjawab pertanyaan diatas adalah kita baru perlu menerapkan inheritance pada saat kita menjumpai ada suatu class yang perlu memperluas class lain yang sudah ada. Masih bingung?. Baiklah untuk lebih mudahnya kita ikuti saja ilustrasi berikut. Misalnya kita mempunyai suatu class sederhana bernama Pegawai sebagai berikut : public class Pegawai { public String nama; public double gaji; Selain class tersebut, kita juga mempunyai sebuah class Manajer yang tampak sebagai berikut : public class Manajer { public String nama; public double gaji; public String departemen; Dari 2 buah class di atas, kita lihat class Manajer mempunyai data member yang identik sama dengan class Pegawai, hanya saja ada tambahan data member departemen. Sebenarnya yang terjadi disana adalah class Manajer merupakan perluasan dari class Pegawai dengan tambahan data member departemen. Disinilah kita perlu memakai konsep inheritance, sehingga class Manajer dapat kita tuliskan seperti berikut : public class Manajer extends Pegawai { public String departemen; Pada saat class Manajer menurunkan atau memperluas (extend) class Pegawai, maka ia mewarisi data member yang dipunyai oleh class Pegawai. Dengan demikian, class Manajer mempunyai data member yang diwarisi oleh dari class Pegawai (atribut nama & gaji), ditambah dengan data member yang ia punyai (atribut departemen). Pengaksesan member dari parent class Pengaksesan member yang ada di parent class dari subclass-nya tidak jauh berbeda dengan pengaksesan member subclass itu sendiri. Misalnya di class Manajer kita ingin mengakses data member nama di class Pegawai melalui sebuah function member isidata(), sekaligus kita juga ingin mengakses data member departemen di class Manajer. Kita dapat menuliskannya seperti dibawah ini :

public class Manajer extends Pegawai { public String departemen; public void isidata(string n, String d) { nama=n; departemen=d; Dapat kita lihat bahwa pengaksesan member dari parent class (nama) adalah tidak berbeda dengan pengaksesan member dari subclass-nya sendiri (departemen). 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 seperti dibawah ini : public class Pegawai { private String nama; public double gaji; Sekarang kita coba untuk mengkompilasi class Manajer pada contoh sebelumnya. Apa yang terjadi?. Pesan kesalahan akan muncul seperti ini : Manajer.java:5: nama has private access in Pegawai nama=n; Ini membuktikan bahwa class Manajer tidak mewarisi data member nama dari parent classnya (Pegawai). POLYMORPHISM Polymorphism adalah suatu object dapat memiliki berbagai bentuk, sebagai object dari class sendiri atau object dari superclassnya. Kemampuan sebuah variabel reference untuk merubah behavior sesuai dengan apa yang dipunyai object. Polymorphism membuat objek-objek yang berasal dari subclass yang berbeda, diperlakukan sebagai objek-objek dari satu superclass. Hal ini terjadi ketika memilih method yang sesuai untuk diimplementasikan ke objek tertentu berdasarkan pada subclass yang memiliki method bersangkutan. Untuk menjelaskan polymorphism, mari kita bahas sebuah contoh. Berikut adalah hirarki class nya. Dalam Java, kita dapat membuat referensi dari suatu superclass ke object dari subclassnya. Sebagai contoh,

public static main( String[] args ) { Person ref; Student studentobject = new Student(); Employee employeeobject = new Employee(); ref = studentobject; //titik referensi Person kepada // sebuah object Student misalnya, kita memiliki sebuah method getname dalam superclass Person. Dan kita mengoverride method ini di kedua subclass yaitu Student dan Employee. public class Student { public String getname(){ System.out.println( Student Name: + name); return name; public class Employee { public String getname(){ System.out.println( Employee Name: + name); return name; Kembali ke method utama kita, ketika kita mencoba memanggil method getname dari referensi Person ref, method getname dari object Student akan dipanggil. Sekarang, jika kita memberi ref kepada object Employee, maka method getname juga akan dipanggil public static main( String[] args ) { Person ref; Student studentobject = new Student(); Employee employeeobject = new Employee(); ref = studentobject; //titik referensi Person kepada object Student //getname dari class Student dipanggil String temp=ref.getname(); System.out.println( temp ); ref = employeeobject; //titik referensi Person kepada object Employee //getname dari class Employee dipanggil String temp = ref.getname(); System.out.println( temp ); Contoh lain yang menggambarkan polymorphism adalah ketika kita mencoba untuk passing reference kepada method. jika kita memiliki sebuah method static printinformation yang menerima referensi Person sebagai parameter. public static printinformation( Person p ){.... Sebenarnya kita dapat passing reference dari Employee dan Student kepada method printinformation selama kedua class tersebut merupakan subclass dari Person. public static main( String[] args ) { Student studentobject = new Student(); Employee employeeobject = new Employee();

printinformation( studentobject ); printinformation( employeeobject ); Overloading Overloading : penggunaan satu nama untuk beberapa method yang berbeda (beda parameter) hasil dari script diatas adalah dibawah ini: Overriding Overriding : terjadi ketika deklarasi method subclass dengan nama dan parameter yang sama dengan method dari superclassnya.

hasil dari script diatas adalah dibawah ini: