Inheritance (Pewarisan)

Slides:



Advertisements
Presentasi serupa
Modul 5: Constructor, Overloading, inheritance, Polymorphism
Advertisements

Nur Hayatin, S.ST Jurusan Teknik Informatika Universitas Muhammadiyah Malang Sem Genap 2010.
Package As’ad Djamalilleil
Inheritance (Pewarisan) As’ad Djamalilleil
Pemrograman JAVA (TIB09)
Workshop SCS: Java Game Programming
Abstract & Interface As’ad Djamalilleil
Pemrograman Berorientasi Objek
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.
Pertemuan 8 Pemrograman Berbasis Obyek Oleh Tita Karlita
Encapsulation, Inheritance, polymorphism, dan interface
Pemrograman Berorientasi Objek
Inheritance (Pewarisan)
ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM
Pemrograman Berorientasi Obyek Oleh Tita Karlita
As’ad Djamalilleil Function (method) As’ad Djamalilleil
Pertemuan : Object Oriented Programming
Pemrograman Berorientasi Obyek dengan JAVA Interface
Inheritance Nana Ramadijanti Laboratorium Computer Vision Politeknik Elekltronika Negeri Surabaya PENS-ITS 2009.
Object Oriented Programming with JAVA 2011/2012
Inheritance Konsep Inheritance Protected Member
Pemrograman Berorientasi Obyek (PBO)
INHERITANCE (Oleh : Nur Hayatin, S.ST)
MATERI IV OOP (Object Oriented Programming) Chapter II.
Pertemuan 6 PEWARISAN AND POLYMORPHISM
INHERITANCE (PEWARISAN)
Access Modifier.
Inheritance dan Kata Kunci static
Inheritance (Pewarisan)
POLYMORPHISM (KEBANYAKRUPAAN)
Encapsulation, Inheritance, Polymorphism
Outline: Pewarisan/Inheritance Polymorphism
Pemrograman Berorientasi Objek
POLYMORPHISM (KEBANYAKRUPAAN)
Teori *Karakteristik PBO*
MODIFIER JAVA.
MEMBUAT CLASS SENDIRI 2.
As’ad Djamalilleil Function (method) As’ad Djamalilleil
As’ad Djamalilleil Class dan Object As’ad Djamalilleil
As’ad Djamalilleil Abstract & Interface As’ad Djamalilleil
As’ad Djamalilleil Package As’ad Djamalilleil
PACKAGE (FOLDER/DIREKTORI)
PACKAGE (FOLDER/DIREKTORI)
Pemrograman Berorientasi Objek
Inheritance.
Inheritance (Turunan)
Pilar Object Oriented Programming
INHERITANCE (PEWARISAN)
Pilar Object Oriented Programming
DIKTAT PBO Oleh: Adam Mukharil B. S.Kom. BAB VII - INHERITANCE.
Encapsulation / Visibility, Getter Setter, Pewarisan, Overloading dan Overriding PBO.
Visibility, Getter Setter, Pewarisan, Overloading dan Overriding
STUDI KASUS.
Visibility, Getter Setter, Pewarisan, Overloading dan Overriding
Subclassing and Inheritance
Pemrograman Berorientasi Object
Algoritma dan Struktur Data
Pilar Object Oriented Programming
Pemrograman Berorientasi Object
Constructor, Overloading, inheritance, Polymorphism
Encapsulation / Visibility, Getter Setter, Pewarisan, Overloading dan Overriding Pemrograman.
@kovazzevic | SMKN 24 Jakarta
Pertemuan 5 Inheritance
Encapsulation / Visibility, Getter Setter, Pewarisan, Overloading dan Overriding PBO.
Pemrograman Berorientasi Objek
Pemrograman Berorientasi Obyek (PBO) Disusun oleh : Khairan Marzuki, M.Kom Fakultas Teknik dan Kesehatan, Universitas Bumigora.
Transcript presentasi:

Inheritance (Pewarisan) As’ad Djamalilleil http://kampusku.my.id asad.kom@gmail.com

Sekilas tentang pewarisan Seorang ayah dapat mewariskan beberapa sifat yang sama pada anak-anaknya, konsep tersebut dikenal dengan istilah inheritance Namun setiap anak dapat memiliki sifat yang berbeda dan tidak dimiliki oleh ayah maupun saudara-saudaranya, konsep ini dikenal dengan polymorphism

Inheritance adalah salah satu fitur pada Java yang digunakan untuk membuat beberapa class turunan (sub-class) dari sebuah class lain (super-class) Setiap sub-class dapat memiliki perbedaan bentuk (morph) di antara sub-sub class yang lain pada level yang sama Bentuk yang dimaksud adalah class member yang dimiliki oleh class tersebut

class member dari class Gelas Class member diartikan sebagai property dan function yang dimiliki oleh sebuah class Class Gelas tinggi diameter kosong warna pegangan diisi( ) diminum( ) dipecahkan( ) isiMaksimum( ) class member dari class Gelas

Syntax Inheritance class subClass extends superClass { // definisi class } Keterangan: subClass  nama class turunan yang kita buat, merupakan sub-class dari sebuah class lain superClass  class yang kita ingin wariskan sifat-sifatnya ke class baru yang kita buat

Ilustrasi Inheritance superClass subClass << extends >> Hasil dari inheritance adalah class member pada superClass akan diwariskan kepada subClass Sehingga subClass JUGA memiliki class member yang sama dengan superClass (bergantung dari modifier yang diberikan)

Contoh kode dengan inheritance (9.1) class Kendaraan{ boolean mesin; int kapasitas; void jalan(){ } void berhenti(){ class Mobil extends Kendaraan{ public static void main(String args[]){ Mobil sedan = new Mobil(); sedan.mesin = true; sedan.kapasitas = 5; sedan.jalan(); sedan.berhenti();

<< extends >> Ilustrasi program 9.1 class Kendaraan mesin kapasitas jalan( ) berhenti( ) class Mobil mesin kapasitas jalan( ) berhenti( ) << extends >> Class Mobil merupakan turunan dari class Kendaraan, sehingga class member dari Kendaraan diwariskan kepada Mobil Class Mobil tidak perlu mendefinisikan ulang seluruh class member tersebut karena secara otomatis dimiliki oleh class Mobil

Sebelum menggunakan inheritance lebih jauh, ada baiknya kita pelajari terlebih dahulu tentang access level berupa beberapa macam modifier Modifier dapat digunakan untuk mengendalikan akses terhadap class maupun class member di dalam class tersebut

Access level sebuah class Modifier Package Sub-class Class lain public Ya tanpa modifier Tidak

Class yang memiliki modifier public dapat terlihat oleh semua class lain Class yang tidak memiliki modifier (diistilahkan juga dengan package-private) hanya dapat terlihat oleh class-class yang berada dalam package yang sama dengan class tersebut

Contoh class modifier public //program 9.2a //nama file:Coba.java //class Coba berada //dalam package prog package prog; public class Coba{ }

//program 9.2b //nama file:Saja.java //class ini berada dalam package yg sama //dengan class Coba package prog; class Saja{ public static void main(String args[]){ Coba akses = new Coba(); }

//program 9.2c //nama file:Turunan.java //class ini berada di luar package prog //dan merupakan turunan dari class Coba import prog.Coba; class Turunan extends Coba{ }

//program 9.2d //nama file:Lagi.java //class ini berada di luar package prog import prog.Coba; class Lagi{ public static void main(String args[]){ Coba baca = new Coba(); }

Ilustrasi kode program 9.2 package prog << import >> class Lagi public class Coba class Turunan class Saja << extends >> Class Coba dapat diakses oleh class di luar package prog karena class Coba bersifat public

Class tanpa modifier Apabila program 9.2a kita modifikasi dengan menghilangkan modifier public, maka class Coba secara default akan dianggap memiliki modifier package-private Hasilnya adalah class Lagi dan Turunan tidak dapat lagi mengakses class Coba karena kedua class tersebut berada di luar dari package prog (package dimana class Coba tersimpan)

<< import >> << extends >> package prog << import >> class Lagi class Coba class Turunan class Saja << extends >> Class Coba tidak dapat diakses oleh class di luar package prog karena class Coba tidak memiliki modifier atau diistilahkan dengan package-private

Access level pada class member Modifier Class Package Sub-class Class lain public Ya protected Tidak tanpa modifier private

Class member yang memiliki modifier public dapat diakses oleh semua class dimanapun class itu berada Class member yang memiliki modifier protected dapat diakses hanya oleh class-class yang berada dalam package yang sama dan sub-class pada package yang lain Class member tanpa modifier hanya dapat diakses oleh class-class dalam package yang sama

Class member yang memiliki modifier private hanya dapat diakses dari dalam class tersebut saja Amati contoh kode program 9.3

//program 9.3a. Nama file:Coba.java package prog; public class Coba{ public int varA; protected int varB; int varC; private int varD; public static void main(String args[]){ Coba buat = new Coba(); buat.varA = 1; //sukses buat.varB = 3; //sukses buat.varC = 5; //sukses buat.varD = 7; //sukses }

//program 9.3b. Nama file:Saja.java package prog; class Saja{ public static void main(String args[]){ Coba akses = new Coba(); akses.varA = 1; //sukses akses.varB = 3; //sukses akses.varC = 5; //sukses akses.varD = 7; //error }

//program 9.3c. Nama file:Turunan.java import prog.Coba; class Turunan extends Coba{ public static void main(String args[]){ Turunan sifat = new Turunan(); sifat.varA = 1; //sukses sifat.varB = 3; //sukses sifat.varC = 5; //error sifat.varD = 7; //error }

//program 9.3d. Nama file:Lagi.java import prog.Coba; class Lagi{ public static void main(String args[]){ Coba baca = new Coba(); baca.varA = 1; //sukses baca.varB = 3; //error baca.varC = 5; //error baca.varD = 7; //error }

Ilustrasi kode program 9.3 package prog class Lagi objek baca varA class Coba varA varB varC varD << import >> << extends >> class Saja class Turunan objek sifat varA varB objek akses varA varB varC

Class Saja, Turunan, dan Lagi tidak dapat mengakses varD karena varD bersifat private sehingga hanya bisa diakses dari dalam class Coba Class Turunan dan Lagi tidak dapat mengakses varC karena varC bersifat package-private sehingga hanya bisa diakses dari dalam package prog Class Lagi tidak dapat mengakses varB karena varB bersifat protected sehingga hanya bisa diakses dari dalam package prog atau dari class yang merupakan sub-class Coba

Over-riding Over-riding terjadi bila sebuah function yang merupakan warisan dari super-class dialihkan (over-ride) atau didefinisi ulang isinya sehingga tidak lagi berisi definisi asli Teknik ini digunakan untuk mengubah definisi dari function agar lebih spesifik dan sesuai dengan sub-class yang dirancang Berikut adalah contoh over-riding (9.4)

// program 9.4. contoh over-riding class Kendaraan{ boolean mesin; int kapasitas; void jalan(){ System.out.println("kendaraan dijalankan"); } void berhenti(){} class Mobil extends Kendaraan{ System.out.println("masukkan kunci"); System.out.println("putar kunci"); System.out.println("injak gas");

public static void main(String args[]){ Mobil sedan = new Mobil(); sedan.jalan(); }

Class Kendaraan memiliki function jalan() dengan definisi tertentu Class Mobil merupakan sub-class dari class Kendaraan Pada class Mobil, definisi function jalan() yang baru meng-over-ride function jalan() dari class Kendaraan, sehingga apabila dijalankan maka akan memberikan output yang berbeda dengan function di super-class-nya

Polymorphism Poly  banyak. Morph  bentuk Polymorphism adalah teknik di Java yang berhubungan erat dengan inheritance Polymorphism diartikan sebagai beberapa sub-class yang berasal dari super-class yang sama namun memiliki karakteristik/bentuk yang berbeda di antara sub-sub class tersebut Perhatikan kode program 9.5 berikut:

//program 9.5. contoh polymorphism class Kendaraan{ boolean mesin; int kapasitas; void jalan(){} void berhenti(){} } class Mobil extends Kendaraan{ void injakRem(){} class SepedaMotor extends Kendaraan{ boolean standard; void gantiOli(){}

<< extends >> << extends >> class Kendaraan mesin kapasitas jalan( ) berhenti( ) << extends >> << extends >> class SepedaMotor mesin kapasitas jalan( ) berhenti( ) gantiOli( ) standard class Mobil mesin kapasitas jalan( ) berhenti( ) injakRem( )

Class SepedaMotor dan Mobil merupakan sub-class dari Kendaraan Class SepedaMotor dan Mobil mewarisi class member dari Kendaraan Namun class SepedaMotor dan Mobil tidak identik karena masing-masing memiliki perbedaan bentuk SepedaMotor memiliki tambahan member, yaitu standard dan gantiOli() sedangkan Mobil memiliki tambahan member yaitu injakRem()