Pemrograman Berorientasi. Inheritance

dokumen-dokumen yang mirip
Bahasa Pemrograman 2.

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

Pewarisan atau Inheritance

Inheritance dan Kata Kunci static

Pemrograman Berorientasi. Abstract & Interface

Pemrograman Berorientasi. Class dan Obyek 2

KONSEP OOP: PEWARISAN / INHERITANCE

INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM

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

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

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

Polymorphism. Materi ke-8 Pemrograman Berbasis Objek

Bahasa Pemrograman 2.

(INHERITANCE) Nurochman

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

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

5/23/12. Inheritance. Pengertian inheritance Deklarasi inheritance Single inheritance Multilevel inheritance Access Control super keyword

IKG2I4 / Software Project I

KONSEP OOP: PEWARISAN / INHERITANCE

Konsep Dasar Pemrograman Berorientasi Objek

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

subclass class manapun private default protected public package yang sama

Bahasa Pemrograman 2.

MODUL 3 PEWARISAN TUJUAN DASAR TEORI

Abstract Class dan Interface. Viska Mutiawani, M.Sc

Inheritance (Pewarisan) Pengertian dasar inheritance

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

Composition dan Inheritance

Overriding Overloading Polymorphism

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

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

Inheritance. Pertemuan 8 Pemrograman Berbasis Obyek

Pemrograman Berbasis Objek Inheritance

Pemrograman Berorientasi. Polimorfisme dan Binding

JOBSHEET POLIMORFISME

Inheritance (Pewarisan Sifat) Imam Fahrur Rozi

PEMROGRAMAN BERORIENTASI OBJEK

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

Pemrograman Berorientasi Objek Danu Wira Pangestu

Inheritance. Topik 5/17/2013

Modul Bahasa Pemrograman 1

ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM

Gambar 1: Hirarki class

KONSEP OOP: POLYMORPHISM

MINGGU V : PBO (PEWARISAN)

INTERAKSI ANTAR OBJECT

Praktikum Minggu VI 1 dan 2 Dasar-dasar Object Oriented Programming PHP

KONSEP OOP: POLYMORPHISM

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN 2

Pemrograman Lanjut. Interface

Polymorphism (Polimorfisme)

Object Oriented Programming (Class, Inheritance, Encapsulation dan Interface)

JOBSHEET 8 INHERITANCE (PEWARISAN)

C#, Programming, Object-oriented. Pengenalan C# Erick Pranata. Edisi I

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

Pewarisan, Polimorfisme, dan Interface

KONSEP OOP: PEWARISAN / INHERITANCE

Pemrograman Lanjut. Class : Deeper Look 2

IT652 Pemrograman Berorientasi Aspek. Ramos Somya

Bahasa Pemrograman 2.

Praktikum 4 Konsep Inheritance, Polymorphism, dan Encapsulation

2015 BAHASA PEMROGRAMAN I. Pertemuan VI Inheritance (Pewarisan)

Pemograman Berorientasi Objek. Week 3 Abstrak dan Interface dalam suatu kelas

LAPORAN RESMI INHERITANCE

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

public class B extends A {... }

Konsep Pemrograman Berorientasi Obyek. Maria Ulfah S Nurochman

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

Praktikum. PBO (Kelas K) Oleh : MOHAMMAD SHOLIKIN

Konsep Pemrograman Berbasis Obyek

Pertemuan 4 Halaman 1/1. Class Inheritance

BAB 1 PEMROGRAMAN BERORIENTASI OBJEK

Like mother, like daughter... [common saying]

INHERITANCE. Pelatihan Java 2 Mei 2015 Fakultas Teknologi Informasi Program Studi Teknik Informatika

CSG2H3 Object Oriented Programming. Polymorphism -RSM-

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Membuat dan Menggunakan Class

Method yang ada pada parent class(superclass) didefinisikan kembali oleh kelas anaknya (subclass).

Pertemuan 11 Object Oriented Program

Pemrograman Lanjut Review Class dan Object PTIIK

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

Jobsheet 09. Overloading and Overriding Method

ABSTRACT CLASS DAN INTERFACE

Bahasa Pemrograman :: Inheritance

8 - Overriding dan Overloading

PERTEMUAN 13 PERANCANGAN BERORIENTASI OBJEK UNTUK MULTI KELAS

PRAKTIKUM I Class dan Obyek

Bahasa Pemrograman :: Polimorfism and Abstraction

Pemrograman Berorientasi Objek

Overriding Overloading Polymorphism

Praktikum 3 Konsep Class, Attribute dan Method

LAPORAN RESMI PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK MODUL 3 ABSTRAKSI

UJIAN TENGAH SEMESTER GENAP TA 2011/2012

Employee employee=new Manager();

Pertemuan 2 (2) : Membuat Class dan mengakses Anggota Class

Polymorphism. Oleh : Agus Priyanto, M.Kom

Pewarisan Jamak Oleh : Agus Priyanto Priy, anto M.Kom M.K

INHERITANCE. Gambar 1. Kelas Hierarki Java

Pewarisan Sifat Objek. Nur Hasanah, M.Cs

:: abstract class + interface. :: abstract class

Transkripsi:

Pemrograman Berorientasi Obyek Inheritance anton@ukdw.ac.id

Inheritance

Silsilah Pohon Keluarga

Relasi is-a Selain melakukan kategorisasi terhadap objek yang memiliki sekumpulan atribut dan perilaku yang sama, manusia sering melakukan pengelompokan terhadap objek yang memiliki kesamaan atas beberapa (tidak semua) atribut dan perilaku Contoh : Pengelompokan atas kendaraan bermotor, kemudian meng-grupkannya berdasarkan suatu tipe atau jenis (mobil, truk, sepeda motor, dll) Setiap subkategori ini merupakan class atas objekobjek yang serupa. Ada beberapa karakteristik yang di-share oleh semua kelompok.

Relasi is-a Relasi antar kelas-kelas ini disebut dengan relasi isa Dalam setiap kasus, objek yang dikelompokkan bersama dalam satu sub-kategori merupakan anggota dari kategori yang lebih umum. Mobil adalah ( is-a ) kendaraan bermotor Truk adalah ( is-a ) kendaraan bermotor Sepeda Motor adalah ( is-a ) kendaraan bermotor

Relasi is-a Objek yang dikelompokkan dalam satu kelas menshare sekumpulan atribut dan perilaku. Jadi, seluruh objek kendaraan bermotor memiliki sekumpulan atribut dan perilaku yang juga dimiliki oleh /diturunkan kepada objek dari mobil. Keterkaitan antar kelas dalam relasi is-a berasal dari kenyataan bahwa sub kelas memiliki atribut dan perilaku yang dimiliki oleh kelas induk, ditambah atribut dan perilaku yang dimiliki oleh sub kelas tersebut.

Inheritance Take an existing object type (collection of fields and methods) and extend it. create a special version of the code without rewriting any of the existing code (or even explicitly calling it!) End result is a more specificobject type, called the sub-class / derived class / child class. The original code is called the super class / parent class / base class.

Inheritance Superclass ( kelas dasar atau kelas induk ) Merupakan kelas yang lebihgeneral dalam relasi is-a Subclass ( kelas turunan atau kelas anak ) Merupakan kelas yang lebihspesifik dalam relasi is-a Objek yang dikelompokkan dalam sub kelas memiliki atribut dan perilaku kelas induk, dan juga atribut dan perilaku tambahan. Jadi, kumpulan atribut dan perilaku sub kelas lebih luas dari super kelas-nya

Inheritance Merupakan merupakan pewarisan pewarisan atributatribut dan dan method-method dari dari sebuah sebuah class ke class lainnya. Class yang memberi warisan => superclass Class yang diberi warisan => subclass Contoh: Superclass => sepeda Subclass => sepeda gunung, sepeda balap, sepeda motor Keyword pada Java = extends

Inheritance Keuntungan: Memberikan ciri khas pada masing-masing subclass Superclass mewariskan atribut dan methodnya ke subclass sehingga menerapkan reuse Pada inheritance juga dikenal adanya overriding Method yang sama nama dan tipenya tapi di kelas berbeda namun masih dalam satu hubungan keturunan Jika ada method di kelas parent yang sudah didefinisikan, dan didefinisikan ulang, maka method pada kelas anak akan menimpa method parent, kecuali dibuat final

Bentuk-bentuk Inheritance The different forms of inheritance are: Single inheritance (only one super class) Multiple inheritance (several super classes) Hierarchical inheritance (one super class, many sub classes) Multi-Level inheritance (derived from a derived class) Hybrid inheritance (more than two types) Multi-path inheritance (inheritance of some properties from two sources)

Bentuk-bentuk Inheritance A A B A B C B C D (a) Single Inheritance (b) Multiple Inheritance (c) Hierarchical Inheritance A A A B B c B c C (a) Multi-Level Inheritance D (b) Hybrid Inheritance D (b) Multipath Inheritance

UML Pengelompokan juga bisa menggunakan dasar kesamaan Menggunakan dasar generalisasi dan spesialisasi

Implementasi dalam Bahasa Pemrograman (Java) Sintaks class Anak extends Induk { // deklarasi badan kelas } }

Implementasi

Tester

Inheritance berurutan

Review: Aksesabilitas Anggota private Tidak dapat diakses oleh kelas lain Akses/manipulasi melalui fungsi anggota protected Dapat diakses oleh kelas turunan public Dapat diakses oleh sembarang kelas Kelas turunan dapat mengakses atribut kelas induk dengan yang protected atau public. Atribut yang private tidak diturunkan dari kelas induk ke kelas anak.

UML Class A -var1 : String -var2 : int +method1() +method2() Class B pasti mendapat warisan method public: -Method1 -Method2 Sedangkan atribut private tidak akan diwariskan Class B +method1() +method2()

Pewarisan variabel class

Pewarisan variabel class

Pewarisan method

Pewarisan method

Super Keyword super dapat digunakan untuk memanggil konstruktor yang ada pada superclass. Penggunaan super dilakukan saat inisialisasi di dalam sebuah konstruktor kelas anak

Konstruktor Super Class Constructor dari superclass tidak dapat dimatikan/dinon aktifkan Kita dapat memanfaatkan konstruktor class induk untuk digunakan pada class anak Kita dapat mengakses method class induk yang bersifat public/protected dengan super Kita dapat mengakses atribut class induk yang bersifat public/protected dengan super

Subtype Substitution Jika B adalah turunan dari A, maka B dapat diinstansiasi dari class B atau bertipe class A, tapi tidak sebaliknya! Examples: B obj = new B(); //ok A obj = new B(); B obj = new A(); //ok //tidak ok

Subtype Substitution Jika B adalah turunan dari A, maka B dapat diinstansiasi dari class B atau bertipe class A A a = new B() Obyek a akan memiliki konstruktor class B tapi dia akan memiliki method-method dari class A

Demo Inheritance Class Manusia Class Mahasiswa

Alur Pemanggilan Konstruktor Dipanggil dari kelas anak terendah (terkhusus) Dieksekusi mulai dari super class tertinggi (terumum) lalu menurun kepada class anak terendah (terkhusus)

Contoh Inheritance class CivitasAkademika { public CivitasAkademika() { System.out.println("Semua warga universitas"); } } class Staff extends CivitasAkademika { public Staff() { System.out.println("yang mencari sesuap nasi"); } } public class StaffEdukatif extends Staff { public StaffEdukatif() { System.out.println("sebagai pengajar"); } public static void main(string[] args) { StaffEdukatif x = new StaffEdukatif(); } }

Final Class yang diberi modifier final tidak dapat diturunkan lagi Error : cannot inherit from final KelasFinal Method yang diberi modifier final tidak dapat dioverride pada class anak Contoh Error: getx() in AnakFinal cannot override getx() in KelasFinal; overridden method is final Variabel kelas yang diberi modifier final dapat diturunkan ke class anak Diperlakukan sebagai konstanta!

Review: Contoh class final

Review: Contoh method final

Multiple Inheritance Java tidak mendukung Multiple Inheritance C++ mendukung Multiple Inheritance Multiple Inheritance bisa menimbulkan ambiguitas (diamond problem)

Overriding Yang dioverride bukan method static Memiliki jumlah, jenis, dan urutan parameter dan return yg sama (extactly) Asesibilitas harus minimal sama atau lebih besar Method final tidak dapat dioverride

Demo Overriding

Conversion Mengubah suatu type data ke type data lain Terjadi otomatis jika terjadi perubahan jangkauan Ada 2 jenis: Narrowing vs Widening

Wide vs Narrow Widening: Narrowing:

Object casting Suatu object dengan type A bisa dikonversi menjadi object dengan type B dengan syarat : Type A merupakan superclass dari type B Type A merupakan subclass dari type B Upcasting dan Downcasting

Upcasting dan downcasting

Upcasting Terjadi secara otomatis Subclass memuat superclass, jadi bisa langsung di- casting ke atas Upcasting dikatakan aman karena superclass lebih umum ketimbang subclass (widening conversion) Contoh: jika Contoh class Cat adalah child dari class Animal Jika a adalah obyek dari Animal dan c Cat, maka: Animal a = (Animal) c; //contoh upcasting

Downcasting Harus menggunakan operasi (cast) Dalam banyak kasus akan menimbulkan exception -> java.lang.classcastexception Untuk menghindari exception, bisa gunakan keyword instanceof untuk melakukan pengecekan terlebih dahulu Contoh: jika class Cat adalah child dari class Animal Jika a adalah obyek dari Animal dan c Cat, maka: Cat c = (Cat) a; //contoh downcasting

NEXT Abstract dan Interface