KONSEP OOP: PEWARISAN / INHERITANCE

dokumen-dokumen yang mirip
KONSEP OOP: PEWARISAN / INHERITANCE

KONSEP OOP: PEWARISAN / INHERITANCE

ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM

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

Pemrograman Berbasis Objek Inheritance

Inheritance. Topik 5/17/2013

IKG2I4 / Software Project I

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN 2

Inheritance (Pewarisan) Pengertian dasar inheritance

Inheritance dan Kata Kunci static

Inheritance. Pertemuan 8 Pemrograman Berbasis Obyek

subclass class manapun private default protected public package yang sama

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

INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM

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

Pemrograman Berorientasi. Inheritance

Modul Bahasa Pemrograman 1

BAB 6 INHERITANCE Tujuan:

Bahasa Pemrograman :: Polimorfism and Abstraction

Pewarisan Sifat Objek. Nur Hasanah, M.Cs

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

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

Jobsheet 09. Overloading and Overriding Method

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

KONSEP OOP: POLYMORPHISM

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

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

Praktikum 3 Konsep Class, Attribute dan Method

PEMROGRAMAN BERORIENTASI OBJEK

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

(INHERITANCE) Nurochman

MODUL 3 PEWARISAN TUJUAN DASAR TEORI

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

Polymorphism. Materi ke-8 Pemrograman Berbasis Objek

2015 BAHASA PEMROGRAMAN I. Pertemuan VI Inheritance (Pewarisan)

Membuat dan Menggunakan Class

BAB IV KONSEP PEMROGRAMAN BERORIENTASI OBJEK

Bahasa Pemrograman 2.

Abstract Class dan Interface. Viska Mutiawani, M.Sc

KONSEP OOP: POLYMORPHISM

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

8 - Overriding dan Overloading

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

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

LAPORAN RESMI INHERITANCE

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

Pewarisan, Polimorfisme, dan Interface

Pemrograman Berorientasi Objek Danu Wira Pangestu

Parent dan Child di Java

Gambar 1: Hirarki class

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

UJIAN TENGAH SEMESTER GENAP TA 2011/2012

public class B extends A {... }

Pemrograman Berorientasi Objek

UJIAN TENGAH SEMESTER GENAP TA 2011/2012

Konsep Dasar Pemrograman Berorientasi Objek

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

UNIVERSITAS GUNADARMA

PRAKTIKUM I Class dan Obyek

Pemrograman Berorientasi Obyek. Ramos Somya

Pemrograman Berorientasi. Polimorfisme dan Binding

Class & Object 2 ~Praktikum~ Imam Fahrur Rozi

ENKAPSULASI Data Hiding

Bahasa Pemrograman :: Inheritance

PEMROGRAMAN JAVA : KONSEP PEMROGRAMAN BERORIENTASI OBJEK

Pewarisan atau Inheritance

PEWARISAN SIFAT OBYEK

Bahasa Pemrograman 2.

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

Pemrograman Berorientasi. Abstract & Interface

MODUL 1. CLASS, OBJECT, CONSTRUCTOR DAN METHOD

INTERAKSI ANTAR OBJECT

Inheritance (Pewarisan Sifat) Imam Fahrur Rozi

MODUL 1. Class, Object, Constructor dan Method

Polymorphism (Polimorfisme)

MODUL 4 ENCAPSULATION, INHERITANCE DAN POLYMORPHISM

Pertemuan 11 Object Oriented Program

PEMOGRAMAN JAVA. Yoannita, S.Kom. Class(ii) [Constructor] [keyword this] Modifier Passing parameter [by value] [by references]

BAB IV KONSEP PEMROGRAMAN BERORIENTASI OBJEK

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

Pemrograman Berorientasi. Class dan Obyek 2

Pertemuan 4 Halaman 1/1. Class Inheritance

Konsep Pemrograman Berbasis Obyek

BAB II VARIABEL DAN TIPE DATA

OOP Java. 05 Encapsulation & Inheritance

Composition dan Inheritance

2 TIPE DATA DAN VARIABEL

Polymorphism. Oleh : Agus Priyanto, M.Kom

Bahasa Pemrograman 2.

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

Praktikum 4 Konsep Inheritance, Polymorphism, dan Encapsulation

UJIAN TENGAH SEMESTER GENAP TA 2011/2012

Jelaskan tentang konsep Cohesion & Coupling!

MODUL 1 PENGENALAN OOP

IKG2I4 / Software Project I

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

Modul II Object Oriented Programming

LAPORAN RESMI PRAKTIKUM BAHASA PEMROGRAMAN

Modul 07. Pengantar Objek 2

Method / Fungsi / Sub Program

Transkripsi:

PEMROGRAMAN LANJUT Informatika FILKOM UB Semester Genap 2015/2016 KONSEP OOP: PEWARISAN / INHERITANCE Dr. Eng. Herman Tolle Program Teknologi Informasi & Ilmu Komputer, Universitas Brawijaya

Outline Keyword Inheritance Superclass Subclass Extends Reusability Override This & super Final Class, Final Method

Inheritance (Pewarisan) Pewarisan suatu class pada class lainnya 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 saudarasaudaranya Suatu class dapat mewariskan class member (atribut dan method) kepada class lain

Inheritance (Pewarisan) Inheritance Inheritans Pewarisan Suatu class dapat mewariskan atribut dan method kepada class lain (subclass), serta membentuk class hierarchy Penting untuk Reusability Java Keyword: extends

Syntax Inheritance class subclass extends superclass { // definisi class 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 << extends >> subclass Hasil dari inheritance adalah class member pada superclass akan diwariskan kepada subclass Sehingga subclass juga memiliki class member yang sama dengan superclass Merupakan hubungan Generaliasasi (is-a) (tanda panah dengan segitiga full)

Contoh inheritance class Kendaraan{ boolean mesin; int kapasitas; void jalan(){ void berhenti(){ class Mobil extends Kendaraan { int Tahun; String JenisMobil; String Produsen; class MobilBeraksi{ public static void main(string args[]){ Mobil sedan = new Mobil(); sedan.mesin = true; sedan.kapasitas = 5; sedan.tahun = 2014; sedan.jalan();

class Kendaraan mesin kapasitas jalan( ) berhenti( ) << extends >> class Mobil mesin kapasitas jalan( ) berhenti( ) Class Mobil merupakan turunan dari class Kendaraan, sehingga class member dari Kendaraan otomatis diwariskan kepada Mobil Class Mobil tidak perlu mendefinisikan ulang seluruh class member tersebut, cukup menambahkan class member baru yg hanya ada pada Class Mobil saja.

Manfaat Inheritance Pewarisan Sifat: Superclass ke Subclass Menyusun Hirarki Reusability: (Penggunaan kembali code) kode method bisa ditulis sekali saja dan dapat digunakan oleh semua subclass. Object Complexity: Subclass hanya perlu mengimplementasikan perbedaannya sendiri dan induknya. Objek yang kompleks dapat dibangun dari kumpulan objek lain yang lebih sederhana

Semua Class adalah turunan Kelas Object Dalam Java, semua class, termasuk class yang membangun Java API, adalah subclassesdari superclass Object.

Tipe Inheritans Catatan: java hanya mengenal single superclass tidak ada multiple superclass

LATIHAN Buat contoh kelas induk dan kelas turunan: Person Student MahasiswaUB MahasiswaFilkom

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

Access level pada class member 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

//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; // akses.varb = 3; // akses.varc = 5; // akses.vard = 7; //

//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; // sifat.varb = 3; // sifat.varc = 5; // sifat.vard = 7; //

//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; // baca.varb = 3; // baca.varc = 5; // baca.vard = 7; //

Ilustrasi kode program package prog class Coba vara varb varc << extends >> << import >> class Lagi objek baca vara vard class Saja objek akses class Turunan objek sifat vara varb 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

OVERLOADING METHOD IN INHERITANCE

Overriding Method dalam Inheritans Anak kadang sedikit berbeda dari bapaknya Overriding adalah membuat method yang menggantikan method induknya. Jadi method yang sudah diturunkan dari kelas induk kita (superclass), kita buat lagi dengan nama yang sama tapi dengan isi yang berbeda pada kelas turunan (subclass). Dalam java dikenal dengan penambahan kata kunci @override. Teknik ini digunakan untuk mengubah definisi dari function agar lebih spesifik dan sesuai dengan sub-class yang dirancang

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

public Class MobilBeraksi { public static void main(string args[]){ Mobil sedan = new Mobil(); sedan.jalan(); Kelas Mobil dan Kelas Kendaraan sama-sama memiliki fungsi jalan() Fungsi jalan() pada kelas Mobile meng-override fungsi jalan() dari kelas induknya Pemanggilan fungsi jalan() dari objek Mobil akan mengeksekusi fungsi jalan() dari kelas Mobil (subclass) bukan fungsi jalan yang ada pada kelas Kendaraan (superclass)

this vs super Keyword this mengacu pada atribut dan method yang terdapat pada class itu sendiri Contoh: this.cetak() Keyword super mengacu pada atribut dan method yang terdapat pada class parentnya. Contoh: super.cetak()

class Parent{ public int x = 5; Contoh this & super class Child extends Parent { public int x = 10; public void Info(int x) { System.out.println("Nilai x sebagai parameter = " + x); System.out.println("Data member x di class Child = " + this.x); System.out.println("Data member x di class Parent = " + super.x); public class NilaiX{ public static void main(string[] args) { Child tes = new Child(); tes.info(20); // Tuliskan output dari perintah ini!

Final Class Class yang tidak boleh di extends lagi dapat dibuat dengan menambahkan keyword final Contoh: public final class KelasFinal {... Contoh final class dalam java package: java.lang.system java.lang.string

Final Method Method yang tidak dapat di override oleh sub class Contoh deklarasi: public final void contohfinalmethod() {...

Final Variabel Variabel Final adalah variabel yang hanya dapat diinisialisasi satu kali saja. Contoh deklarasi: public final double nilaieuler;

Latihan Buat 2 buah kelas berikut Kelas Induk: Persegi Atribut: panjang, lebar Method: HitungLuas, set-get Kelas Turunan: Kotak Atribut: tinggi Method: HitungLuas (override), HitungVolume

class Persegi { private int panjang; private int lebar; public Persegi(int P, int L){ this.panjang = P; this.lebar = L; public int hitungluas() { return panjang*lebar; public int getpanjang() { return panjang; public int getlebar() { return lebar; public void CetakLuas() { System.out.printf( Persegi dengan panjang = %d, dan Lebar = %d, Luas = %d, panjang, lebar, this.hitungluas());

class Kotak extends Persegi { private int tinggi; public Kotak(int P, int L, int T){ super(p, L); this.tinggi = T; public int hitungvolume() { return super.hitungluas()*tinggi; @override public int hitungluas() { int Luas = (2 * super.hitungluas()) + (2 * getpanjang()* tinggi) + (2 * getlebar() * tinggi); return Luas; @override public void CetakLuas() {

class KotakBeraksi { public static void main(string[] arg) { Persegi Box1 = new Persegi(5, 10); Box1.CetakLuas(); Kotak Box2 = new Kotak(5, 10, 8); Box2.CetakLuas();