Chapter 9 Pewarisan Pe

dokumen-dokumen yang mirip
KARAKTERISTIK PEMROGRAMAN BERORIENTASI OBJEK (OOP) Pemrograman berorientasi Objek mempunyai karakterisitik sebagai berikut:

Bahasa Pemrograman :: Inheritance

Inheritance (Pewarisan) Pengertian dasar inheritance

ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM

Chapter 10 Polimorphism

Bahasa Pemrograman :: Polimorfism and Abstraction

CLASS, METHOD DAN MODIFIER

INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM

Modul Bahasa Pemrograman 1

Inheritance dan Kata Kunci static

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

MODUL 4 ENCAPSULATION, INHERITANCE DAN POLYMORPHISM

PRAKTIKUM I Class dan Obyek

UJIAN TENGAH SEMESTER GENAP TA 2011/2012

2015 BAHASA PEMROGRAMAN I. Pertemuan VI Inheritance (Pewarisan)

Deklarasi atribut dapat dilakukan dengan sintaks sebagai berikut:

public class B extends A {... }

MODUL 3 PEWARISAN TUJUAN DASAR TEORI

BAB 6 INHERITANCE Tujuan:

subclass class manapun private default protected public package yang sama

BAB 1 PEMROGRAMAN BERORIENTASI OBJEK

Gambar 1: Hirarki class

Oleh : Rahmady Liyantanto

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

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN 2

Praktikum 3 Konsep Class, Attribute dan Method

KONSEP OOP: POLYMORPHISM

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

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

Pewarisan atau Inheritance

Pewarisan, Polimorfisme, dan Interface

Pemrograman Berorientasi. Inheritance

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

Modul Praktikum Bahasa Pemrograman 1

Polymorphism. Oleh : Agus Priyanto, M.Kom

MODUL 2. UML, Generalization, and Specialization UML. 2.1 Pengertian UML. 2.2 Diagram-Diagram yang Ada Dalam UML TUJUAN PRAKTIKUM LANDASAN TEORI

PEMROGRAMAN I. By : Sri Rezeki Candra Nursari

BAB 12 ENKAPSULASI, INHERITANCE DAN POLIMORPISME

PRAKTIKUM III & IV PEMROGRAMAN BERORIENTASI OBJEK

* - Menandakan bahwa terjadi lebih dari satu kejadian dimana elemen tersebut diimplementasikan

Pewarisan (Inheritance)

Sekarang, kita akan mencoba untuk menganalisa program Java pertama : public class Hello {

Pemrograman Berorientasi Objek INHERITANCE

KONSEP OOP: PEWARISAN / INHERITANCE

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

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN JAVA 2

Inheritance. Pertemuan 8 Pemrograman Berbasis Obyek

Pewarisan(Inheritance) Oleh: Mike Yuliana PENS-ITS

KONSEP OOP: POLYMORPHISM

Array. Pengantar. int a, b, c, d, e;

KONSEP OOP: PEWARISAN / INHERITANCE

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

BAB II VARIABEL DAN TIPE DATA

Inheritance. Topik 5/17/2013

Dasar-Dasar OOP di Java

Pemrograman Berbasis Objek Inheritance

Ismail Wibi Wicaksono

Pemrograman Berorientasi Objek (PBO) By : Jeffry Montolalu, ST PERTEMUAN XIII POLYMORPHISM

Bahasa Pemrograman 2.

Pertemuan 4 Halaman 1/1. Class Inheritance

Employee employee=new Manager();

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

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

Politeknik Elektronika Negeri Surabaya

MODUL 5 PERULANGAN A. WHILE

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

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

BAB 5 Mendapatkan Input dari Keyboard

ENKAPSULASI. 1. Kompetensi Setelah kegiatan perkuliahan selesai, mahasiswa diharapkan dapat:

INTERAKSI ANTAR OBJECT

BAB 5 Mendapatkan Input dari Keyboard

Konsep Pemrograman Berbasis Obyek

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

Percabangan & Perulangan

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

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

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

Praktikum 4 Konsep Inheritance, Polymorphism, dan Encapsulation

LAPORAN V PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK

Praktikum. PBO (Kelas K) Oleh : MOHAMMAD SHOLIKIN

DASAR PEMOGRAMAN JAVA

Bahasa Pemrograman 2.

PEMAHAMAN DASAR DASAR JAVA

BAB 7 OVERLOADING DAN OVERRIDING

Array Pendeklarasian Array

PAKET (PACKAGE) 20 Januari 2012

Polymorphism (Polimorfisme)

2 TIPE DATA DAN VARIABEL

Bab 8. Dasar-Dasar OOP

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

Praktikum 6 Class Design (Encapsulation)

Percobaan 5 Paket dan Import, Interface

Kita akan membuat class yang mengandung informasi dari Siswa dan operasi operasi yang dibutuhkan pada record siswa.

PEMROGRAMAN BERORIENTASI OBJEK

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

LAPORAN RESMI PRAKTIKUM BAHASA PEMROGRAMAN

Pemrograman Berorientasi. Polimorfisme dan Binding

Konsep Dasar Pemrograman Berorientasi Objek

Parent dan Child di Java

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA PENGENALAN OBJECT ORIENTED PROGRAMMING

Transkripsi:

Chapter 9 Pewarisan

A. Konsep Pewarisan Pewarisan adalah proses penciptaan kelas baru dengan mewarisi karakteristik kelas yang telah ada, ditambah karakteristik unik kelas baru tersebut. Kelas yang menjadi turunannya mewarisi fungsionalitas yang telah ada Pewarisan dapat digunakan untuk mengorganisasikan program maupun penciptaan klasisfikasi berhirarki. Dalam Java kelas yang diwarisi disebut superkelas sedangkan kelas yang mewarisi disebut subkelas Subkelas mewarisi semua metode dan variabel superkelas, hal tersebut sama halnya dengan mengopi kode dari kelas lain

B. Pembuatan kelas turunan Kata kunci pembuatan kelas turunan adalah extend Contoh syntak program : Class Identifier extends SuperClass { ClassBody Penjelasan : identifier mengacu ke nama kelas turunan baru yang akan dibuat. Superclass mengacu nama kelas yang diwarisi. Sedangkan classbody merupakan badan kelas baru. Apabila kita ingin menurunkan superkelas eksternal, maka harus melakukan import dengan pernyataan import

Contoh kelas turunan Kelas StudentToy yang merupakan subkelas PersonToy. Pada kelas StudentToy ditambah data nrp, strata, department serta metode pengaksesannya. Syntak contoh PersonToy.java Package toy; Public class PersonToy { String name; String addressline1; String addressline2; String city; Int age; Public PersonToy() { AddressLine1 = ; AddressLine2 = ; City = ; Age = 0; Name = ;

Next syntax.. Public PersonToy(String newname, String newaddressline1, String newaddressline2, String newcity, int newage) { Name = newname; Address1 = newaddressline1;.. Public void setname (String newname){ Name = newname;.. Public String tostring(){ String str = Nama : + name + \n + Alamat : + addressline1 + \n +. ; Return str;

Next syntax.. Static void test(){ PersonToy t = new PersonToy( Slamet, Jln. Warung Boto 94, Jln. Sudirman 78 Jakarta, Jakarta,21); System.out.println( Slamet sebagai Person ); System.out.println(t.getName()); System.out.println(t.getAddressLine1()); System.out.println(t.getAddressLine2()); System.out.println(t.getCity()); System.out.println(t.getAge()); System.out.println(t); Public static void main (String[] args) { Test();

Syntak contoh StudentToy.java Karena studenttoy merupakan kelas turunan dari persontoy, maka pada kelas ini dapat menambah variabel baru dengan tetap mengikutkan variabel yang dimiliki oleh super kelasnya yaitu persontoy. Package toy; Public class StudentToy extend PersonToy { String nrp; String strata; String department; Public StudentToy() { Super(); nrp= ; strata= ; department = ;

Next syntax.. Public StudentToy(String newname, String newaddressline1, String newaddressline2, String newcity, int newage, String newnrp, String newstrata, String newdepartment) { Super(String newname, String newaddressline1, String newaddressline2, String newcity, int newage); nrp = newnrp; strata = newstrata; department=newdepartment; Public void setnrp (String newnrp){ nrp = newnrp;.. Public String tostring(){ String str = Nama : + name + \n + Alamat : + addressline1 + \n + Nrp : + nrp + \n +. ; Return str;

Next syntax.. Static void test(){ StudentToy t = new StudentToy( Slamet, Jln. Warung Boto 94, Jln. Sudirman 78 Jakarta, Jakarta,21); System.out.println( Slamet sebagai Student ); System.out.println(t.getName()); System.out.println(t.getAddressLine1()); System.out.println(t.getAddressLine2()); System.out.println(t.getCity()); System.out.println(t.getAge()); System.out.println(t.getNrp()) System.out.println(t.getStrata()) System.out.println(t.getDepartment()) System.out.println(t);

Diagram UML dari PersonToy & StudentToy Person Name : string Addressline1 : string Addressline2 : string City : string Age : integer setname() setaddressline1() setaddressline2() setcity() setage() getname() getaddressline1() getaddressline2() getcity() getage() Nrp Strata department Student setnrp() setstrata() setdepartment() getnrp() getstrata() getdepartment() Kata kunci extend memberitahu Java bahwa StudentToy adalah subkelas persontoy dan mewarisi field dan metode di kelas persontoy

C. Petunjuk ringkas penggunaan pewarisan Petunjuk penggunaan pewarisan, yaitu : Tempatkan operasi-operasi dan field-field yang sama di superkelas Jangan gunakan protected fields Gunakan pewarisan untuk memodelkan hubungan is-a Jangan gunakan pewarisan kecuali semua metode yang diturunkan berarti Gunakan polymorphism, bukan informasi tentang tipe

Petunjuk ringkas penggunaan pewarisan. 1. Tempatkan operasi-operasi pada field-field yang common di superkelas; apabila pada contoh persontoy dan studenttoy, maka field name, birthday di kelas PersonToy, tidak mereplikasinya di kelas StudentToy 2. Tidak menggunakan protected fields; Metode protected dapat berguna untuk mengindikasikan metode yang belum siap untuk penggunaan umum dan seharusnya diredefinisi di subkelas-subkelas. 3. Gunakan pewarisan untuk memodelkan hubungan is-a ; penggunaan pewarisan perlu memperhatikan bahwa subkelas memang merupakan kelas dari superkelasnya

Petunjuk ringkas penggunaan pewarisan. 4. Tidak menggunakan pewarisan kecuali semua metode yang diturunkan berarti; artinya untuk melakukan pewarisan perlu diperhatikan bahwa sifat-sifat dari superkelas memang dibutuhkan oleh subkelas

D. Contoh-contoh Jika kelas B adalah kelas turunan dari kelas A, maka kita bisa juga menyebut kelas A adalah kelas super dari kelas B. Kelas turunan bisa memiliki struktur atau perilaku tambahan dari kelas supernya. Atau bahkan kelas turunan bisa mengubah atau mengganti perilaku kelas supernya. Hubungan antara kelas turunan dan kelas super sering dilukiskan dalam bentuk diagram di mana kelas turunan digambarkan di bawah kelas supernya, dan dihubungkan dengan garis penghubung dengan tanda segitiga yang diletakkan di dekat kelas supernya.

Deklarasi dalam Java class B extends A { // tambahan atau perubahan // struktur dan perilaku dari kelas A Beberapa kelas dapat menurunkan kelas yang sama. Kelas-kelas turunan ini masing-masing disebut kelas saudara, yaitu diwariskan dari satu kelas super yang sama. Struktur dan perilaku kelas super ini akan dimiliki oleh masing-masing turunannya. Pada diagram berikut, kelas B, C, dan D adalah kelas saudara. Pewarisan juga bisa dilakukan beberapa kali, atau suatu kelas bisa memiliki cucu, buyut, dan seterusnya. Pada diagram, kelas E merupakan kelas turunan kelas D, sehingga kelas E adalah "cucu" dari kelas A. Kelas E masih bisa disebut turunan dari kelas A, walaupun bukan merupakan turunan langsungnya.

Ada 3 kelas turunannya yaitu Mobil, Truk dan Motor yang akan menyimpan variabel dan metode khusus untuk setiap jenis kendaraan. Kelas Mobil misalnya memiliki variabel jumlahpintu, kelas Truk memiliki variabel jumlahroda, dan kelas Motor memiliki variabel jumlahtak. Kelas-kelas ini bisa dideklarasikan dalam Java dalam bentuk class Kendaraan { int nomorpolisi; Orang pemilik; // (anggap kelas Orang telah dibuat sebelumnya) void gantipemilik(orang pemilikbaru) {...... class Mobil extends Kendaraan { int jumlahpintu;... class Truk extends Kendaraan { int jumlahroda;... class Motor extends Kendaraan { int jumlahtak; // 2-tak atau 4-tak...

Apabila mobilku adalah variabel dengan tipe Mobil akan dideklarasikan dan diinisialisasi dengan pernyataan berikut Mobil mobilku = new Mobil(); Dengan deklarasi seperti ini, maka program akan bisa mengakses mobilku.jumlahpintu, karena jumlahpintu adalah variabel instansi dari kelas Mobil. Akan tetapi karena kelas Mobil merupakan turunan dari kelas Kendaraan, maka mobil ini juga memiliki stuktur dan perilaku dari kendaraan. Artinya program juga bisa mengakses mobilku.nomorpolisi, mobilku.pemilik, dan menjalankan metode mobilku.gantipemilik()

Dari diagram di atas, maka dapat dilakukan pencetakan informasi sebagai berikut : System.out.println("Data Kendaraan:"); System.out.println("Nomor polisi: " + kendaraanku.nomorpolisi); if (kendaraanku instanceof Mobil) { System.out.println("Jenis kendaraan: Mobil"); Mobil m = (Mobil)kendaraanku; System.out.println("Jumlah pintu: " + m.jumlahpintu); else if (kendaraanku instanceof Truk) { System.out.println("Jenis kendaraan: Truk"); Truk t = (Truk)kendaraanku ; System.out.println("Jumlah roda: " + t.jumlahroda); else if (kendaraanku instanceof Motor) { System.out.println("Jenis kendaraan: Motor"); Motor sm = (Motor)kendaraanku ; System.out.println("Jumlah tak: " + sm.jumlahtak);

Perhatikan bahwa untuk setiap jenis objek, komputer akan menguji satu per satu tipe objek yang disimpan dalam kendaraanku. Jika kendaraanku[code] merujuk pada objek bertipe Truk maka casting [code](mobil)kendaraanku akan menampilkan pesan kesalahan.