2015 BAHASA PEMROGRAMAN I. Pertemuan VI Inheritance (Pewarisan)

dokumen-dokumen yang mirip
Gambar 1: Hirarki class

Pewarisan, Polimorfisme, dan Interface

INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM

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

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

Bahasa Pemrograman :: Polimorfism and Abstraction

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

Bahasa Pemrograman :: Inheritance

Inheritance (Pewarisan) Pengertian dasar inheritance

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

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

BAB 12 ENKAPSULASI, INHERITANCE DAN POLIMORPISME

Pewarisan Sifat Objek. Nur Hasanah, M.Cs

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

ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM

Inheritance dan Kata Kunci static

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

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN JAVA 2

LAPORAN RESMI INHERITANCE

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

KONSEP OOP: POLYMORPHISM

IKG2I4 / Software Project I

INHERITANCE. Gambar 1. Kelas Hierarki Java

BAB 1 PEMROGRAMAN BERORIENTASI OBJEK

PEWARISAN SIFAT OBYEK

MODUL 3 PEWARISAN TUJUAN DASAR TEORI

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

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

KONSEP OOP: POLYMORPHISM

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

Pemrograman Berorientasi Objek Danu Wira Pangestu

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

Membuat dan Menggunakan Class

Pemrograman Berbasis Objek Inheritance

Bahasa Pemrograman 2.

PRAKTIKUM I Class dan Obyek

KONSEP OOP: PEWARISAN / INHERITANCE

(INHERITANCE) Nurochman

Modul Bahasa Pemrograman 1

Chapter 10 Polimorphism

Inheritance. Topik 5/17/2013

Polymorphism (Polimorfisme)

KONSEP OOP: PEWARISAN / INHERITANCE

Inheritance. Pertemuan 8 Pemrograman Berbasis Obyek

Pemrograman Berorientasi. Inheritance

Pemrograman Berorientasi. Abstract & Interface

Konstruktor dan Polimorfisme

Pemrograman Berorientasi. Class dan Obyek 2

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

UJIAN TENGAH SEMESTER GENAP TA 2011/2012

Praktikum 3 Konsep Class, Attribute dan Method

Pemrograman Berorientasi Objek

IT652 Pemrograman Berorientasi Aspek. Ramos Somya

PRAKTIKUM III & IV PEMROGRAMAN BERORIENTASI OBJEK

INTERAKSI ANTAR OBJECT

Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno

Pemrograman Berorientasi Objek 2

Abstract Class dan Interface. Viska Mutiawani, M.Sc

Pewarisan atau Inheritance

Pemrograman Berorientasi Objek INHERITANCE

Pertemuan 4 Halaman 1/1. Class Inheritance

Pemrograman Lanjut Review Class dan Object PTIIK

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

MEMBUAT KELAS SENDIRI. Dewi Sartika, M.Kom

Jobsheet 09. Overloading and Overriding Method

Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno

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

Bahasa Pemrograman 2.

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

Konsep Dasar Pemrograman Berorientasi Objek

UJIAN TENGAH SEMESTER GENAP TA 2011/2012

subclass class manapun private default protected public package yang sama

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

OVERLOADING, CONSTRUCTOR DAN DESTRUCTOR. Dewi Sartika, M.Kom

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

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

[Lanjutan] Nurochman

Pemrograman Berorientasi. Polimorfisme dan Binding

8 - Overriding dan Overloading

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

UJIAN TENGAH SEMESTER GENAP TA 2011/2012

UNIVERSITAS GUNADARMA

Review PBO. Ramos Somya

Bahasa Pemrograman 2.

Konsep Inheritance. Praktikum 8 Pemrograman Berbasis Obyek

Konsep Lanjut Pemrograman Objek

Praktikum. PBO (Kelas K) Oleh : MOHAMMAD SHOLIKIN

Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno

PEMROGRAMAN BERORIENTASI OBJEK

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

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

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

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

Konsep Pemrograman Berorientasi Pada Objek Dengan. Java Netbeans

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

PERTEMUAN 13 PERANCANGAN BERORIENTASI OBJEK UNTUK MULTI KELAS

MINGGU V : PBO (PEWARISAN)

CLASS PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM JOGJAKARTA

Ismail Wibi Wicaksono

KONSEP OBJEK ORIENTASI PROGRAM

Transkripsi:

Pertemuan VI Inheritance (Pewarisan) 6.1. Tujuan Mahasiswa diharapkan dapat: 1. Memahami konsep inheritance dalam pemecahan permasalahan. 2. Mengimplementasikan konsep inheritance dalam bentuk program. 6.2. Teori Singkat Pewarisan (Inheritance) adalah salah satu ciri pemrograman berorientasi objek, yang menyatakan bahwa suatu kelas dapat diturunkan lagi menjadi kelas-kelas baru lainnya sehingga dapat membentuk sebuah hirarki. Dalam Java, semua class adalah subclasses dari superclass Object. Contoh hirarki class diperlihatkan di bawah ini. Beberapa class di atas class utama dalam hirarki class dikenal sebagai superclass. Sementara beberapa class di bawah class pokok dalam hirarki class dikenal sebagai subclass dari class tersebut. Gambar 1. Hirarki class dalam java Pewarisan adalah keuntungan besar dalam pemrograman berbasis object karena suatu sifat atau method didefinisikan dalam superclass, sifat ini secara otomatis diwariskan dari semua subclasses. Jadi, Anda dapat menuliskan kode method hanya sekali dan mereka dapat digunakan oleh semua subclass. Subclass hanya perlu mengimplementasikan perbedaannya sendiri dan induknya. STMIK AMIKOM Yogyakarta Page 1

Mendefinisikan Superclass dan Subclass Java menyediakan kata kunci extends yang digunakan untuk melakukan proses penurunan terhadap suatu kelas. Bentuk umum dari penggunaan kata kunci tersebut sebagai berikut: public class SuperClass { public class SubClass extends SuperClass { Untuk mengilustrasikan ini, kita akan membuat contoh class induk atau superclass. Dimisalkan kita mempunyai class induk yang dinamakan Person. public class Person{ protected String name; protected String address; //Default constructor public Person(){ System.out.println( Inside Person:Constructor ); name = ""; address = ""; //Constructor dengan dua parameter public Person( String name, String address ){ this.name = name; this.address = address; //Method accessor public String getname(){ return name; public String getaddress(){ return address; public void setname( String name ){ this.name = name; public void setaddress( String add ){ this.address = add; Perhatikan bahwa atribut name dan address dideklarasikan sebagai protected. Alasannya adalah agar atribut-atribut ini dapat diakses oleh subclasses dari superclassess. Jika kita mendeklarasikannya sebagai private, subclasses tidak dapat menggunakannya. Catatan bahwa STMIK AMIKOM Yogyakarta Page 2

semua properti dari superclass yang dideklarasikan sebagai public, protected dan default dapat diakses oleh subclasses-nya. Selanjutnya apabila ingin membuat class lain bernama Student. kita putuskan hanya dengan mengextends class Person karena Student juga sebagai Person, sehingga kita dapat mewariskan semua properti dan method dari setiap class Person yang ada. Contohnya adalah: public class Student extends Person{ public Student(){ System.out.println( Inside Student:Constructor ); //beberapa kode di sini Ketika object Student di-instantiate, default constructor dari superclass secara mutlak meminta untuk melakukan inisialisasi yang seharusnya. Setelah itu, pernyataan di dalam subclass dieksekusi. Untuk mengilustrasikannya, perhatikan kode berikut: public static void main( String[] args ){ Student anna = new Student(); Dalam kode ini, kita membuat sebuah object dari class Student. Keluaran dari program adalah, Inside Person:Constructor Inside Student:Constructor Alur program ditunjukkan sebagai berikut. Gambar 2. Alur Program STMIK AMIKOM Yogyakarta Page 3

Latihan 1. SuperClass dan SubClass Karyawan.java public class Karyawan { protected String nama, tgllahir; protected double gaji; public Karyawan () { nama = ; tgllahir = ; gaji = 0; public void tampildata () { System.out.println( Nama : + nama); System.out.println( Tgl Lahir : + tgllahir); System.out.println( Gaji : + gaji); Manager.java Public class Manager extends Karyawan{ private String departemen; public Manager (String nm, String tgllahir, double gaji, String dept) { //variabel nama, tgllahir, gaji mewarisi class Karyawan nama = nm; this.tgllahir=tgllahir; this.gaji=gaji; departemen=dept; public String getdepartemen () { return departemen; Demo.java Public class Demo { public static void main (String [] args) { Manager m = new Manager ( Putri, 15 Okt 2015, 1000000, HRD ) m.tampildata(); System.out.println( Departemen : + m.getdepartemen()); dan java STMIK AMIKOM Yogyakarta Page 4

Kata Kunci Super Subclass juga dapat memanggil constructor secara eksplisit dari superclass terdekat. Hal ini dilakukan dengan pemanggil construktor super. Pemanggilan constructor super dalam constructor dari subclass akan menghasilkan eksekusi dari superclass constructor yang bersangkutan, berdasar dari argumen sebelumnya. Sebagai contoh, pada contoh class sebelumnya. Person dan Student, kita tunjukkan contoh dari pemanggil constructor super. Contohnya adalah: public Student(){ super( "SomeName", "SomeAddress" ); System.out.println("Inside Student:Constructor"); Kode ini memanggil constructor kedua dari superclass terdekat (yaitu Person) dan mengeksekusinya. Contoh kode lain ditunjukkan sebagai berikut: public Student(){ super(); System.out.println("Inside Student:Constructor"); Kode ini memanggil default constructor dari superclass terdekat (yaitu Person) dan mengeksekusinya. Ada beberapa hal yang harus diingat ketika menggunakan pemanggil constuktor super: 1. Pemanggil super() HARUS DIJADIKAN PERNYATAAN PERTAMA DALAM constructor. 2. Pemanggil super() hanya dapat digunakan dalam definisi constructor. 3. Termasuk constructor this() dan pemanggil super() TIDAK BOLEH TERJADI DALAM constructor YANG SAMA. Pemakaian lain dari super adalah untuk menunjuk anggota dari superclass(seperti reference this). Sebagai contoh: public Student(){ super.name = somename ; super.address = some address ; STMIK AMIKOM Yogyakarta Page 5

Latihan 2. Kata Kunci Super Siswa.java public class Siswa{ protected String nama; protected String nim; public Siswa(){ nama = ""; nim = ""; public Siswa(String nama,string nim){ this.nama = nama; this.nim = nim; public void tampilsiswa(){ System.out.println("Nama = " + nama); System.out.println("Nim = " + nim); DataSiswa.java public class DataSiswa extends Siswa{ private int umur; public DataSiswa(String nama,string nim, int umur){ super(nama,nim);//memanggil constructor Siswa this.umur = umur; public int getumur(){ return umur; DemoSiswa.java public class DemoSiswa { public static void main(string[] args){ DataSiswa a = new DataSiswa("Zakky","14.12.1111",18); a.tampilsiswa(); System.out.println("Umur = " + zakky.getumur()); dan java STMIK AMIKOM Yogyakarta Page 6

Overriding Method Untuk beberapa pertimbangan, terkadang class asal perlu mempunyai implementasi berbeda dari method yang khusus dari superclass tersebut. Oleh karena itulah, method overriding digunakan. Subclass dapat mengesampingkan method yang didefinisikan dalam superclass dengan menyediakan implementasi baru dari method tersebut. Misalnya kita mempunyai implementasi berikut untuk method getname dalam superclass Person, public class Person{ public String getname(){ System.out.println("Parent: getname"); return name; Untuk override, method getname dalam subclass Student, public class Student extends Person{ public String getname(){ System.out.println("Student: getname"); return name; Jadi, ketika kita meminta method getname dari object class Student, method overridde akan dipanggil, keluarannya akan menjadi: Student: getname STMIK AMIKOM Yogyakarta Page 7

Latihan 3. Overriding Method Induk.java class Induk { private int a; public int geta(){ return a; public void seta(int nil){ a = nil; public void tampilnilai(){ System.out.println("Nilai a = " + geta()); Anak.java class Anak extends Induk { private int b; public int getb() { return b; public void setb(int y) { b = y; //override method tampilnilai() pada class Induk public void tampilnilai() { super.tampilnilai(); System.out.println( Nilai b = + getb()); Tampil,java public class Tampil { public static void main (String [] args) { Anak ank = new Anak(); ank.seta(80); ank.setb(90); ank.tampilnilai(); dan java STMIK AMIKOM Yogyakarta Page 8

Method final dan class final Dalam Java, memungkinkan untuk mendeklarasikan class-class yang tidak lama menjadi subclass. Class ini dinamakan class final. Untuk mendeklarasikan class untuk menjadi final kita hanya menambahkan kata kunci final dalam deklarasi class. Sebagai contoh, jika kita ingin class Person untuk dideklarasikan final, contoh kodenya adalah: public final class Person{ //area kode Beberapa class dalam Java dideklarasikan secara final untuk memastikan sifatnya tidak dapat dioverride. Contoh-contoh dari class ini adalah Integer, Double, dan String. Ini memungkinkan dalam Java membuat method yang tidak dapat di-override. Method ini dapat kita panggil method final. Untuk mendeklarasikan method untuk menjadi final, kita tambahkan kata kunci final ke dalam deklarasi method. Contohnya, jika kita ingin method getname dalam class Person untuk dideklarasikan final, public final String getname(){ return name; Method static juga secara otomatis final. Ini artinya Anda tidak dapat membuatnya override. Tugas Kelompok ( Max 3 Orang) Buatlah program untuk menghitung keliling dan luas lingkaran, buat class GeometriInheritanceXXXX sebagai superclass yang menampung variabel r (jari-jari) serta buat class LingkaranXXXX sebagai subclass yang menampung variabel phi. Pada class LingkaranXXXX buat method untuk menghitung keliling dan luas lingkaran, gunakan kata kunci super pada constructor dalam mereferensi variabel r (jari-jari). Keliling Lingkaran = 2 * phi * r Luas Lingkaran = phi * r 2 STMIK AMIKOM Yogyakarta Page 9