Chapter 10 Polimorphism

dokumen-dokumen yang mirip
Polymorphism (Polimorfisme)

Inheritance (Pewarisan) Pengertian dasar inheritance

INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM

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

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN JAVA 2

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

Bahasa Pemrograman :: Polimorfism and Abstraction

KONSEP OOP: POLYMORPHISM

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

KONSEP OOP: POLYMORPHISM

Gambar 1: Hirarki class

Pewarisan, Polimorfisme, dan Interface

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

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

Pemrograman Berorientasi Objek 2

POLIMORPHISM PEMROGRAMAN LANJUT. Dr. Eng. Herman Tolle. Sistem Informasi FILKOM UB Semester Genap 2016/2017

Praktikum 4 Konsep Inheritance, Polymorphism, dan Encapsulation

BAB 1 PEMROGRAMAN BERORIENTASI OBJEK

9/26/2011. Tujuan. Bekerja dengan Java Class Library. Pengenalan OOP. Pengenalan OOP. Class dan Object. Enkapsulasi

ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM

2015 BAHASA PEMROGRAMAN I. Pertemuan VI Inheritance (Pewarisan)

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

Modul Bahasa Pemrograman 1

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

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

Pewarisan Sifat Objek. Nur Hasanah, M.Cs

Inheritance dan Kata Kunci static

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

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

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Overriding Overloading Polymorphism

Polymorphism. Materi ke-8 Pemrograman Berbasis Objek

Membuat dan Menggunakan Class

Polymorphism. Oleh : Agus Priyanto, M.Kom

Bahasa Pemrograman 2.

Bahasa Pemrograman :: Inheritance

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

BAB 7 OVERLOADING DAN OVERRIDING

BEKERJA DENGAN JAVA CLASS LIBRARY

Mengenal Object Oriented Programming (OOP)

Praktikum 3 Konsep Class, Attribute dan Method

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

Employee employee=new Manager();

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

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

Konsep Dasar Pemrograman Berorientasi Objek

Konsep Pemrograman Berbasis Obyek

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

PRAKTIKUM III & IV PEMROGRAMAN BERORIENTASI OBJEK

KONSEP OBJEK ORIENTASI PROGRAM

JOBSHEET POLIMORFISME

Pengenalan OOP. Object-Oriented programming (OOP) Menitikberatkan pada konsep object sebagai elemen dasar dari program.

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

Pertemuan 4 Halaman 1/1. Class Inheritance

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

Pemrograman Berbasis Objek (Polimorfisme)

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

Pemrograman Berorientasi. Abstract & Interface

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

Abstract Class dan Interface. Viska Mutiawani, M.Sc

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

Pemrograman Berorientasi. Inheritance

PEMROGRAMAN JAVA. Yoannita, S.Kom. Class & Method sederhana Konsep Pemrograman Berorientasi Objek. Company LOGO

Pemrograman Berorientasi. Polimorfisme dan Binding

[Lanjutan] Nurochman

Polymorohism in Java. Adharul Muttaqin Teknik Elektro Universitas Brawijaya Malang

Chapter 9 Pewarisan Pe

Pemrograman Berorientasi Objek INHERITANCE

Pengenalan pemrograman berorientasi obyek

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

PERTEMUAN 5 OOP. Objektif : Praktikan mengetahui konsep OOP. Praktikan dapat membuat program sederhana dengan konsep OOP.

Konsep Objek Oriented

Tiga Metode Sangat Penting dalam Pemrograman Java Bagi Pemula

Pemrograman Lanjut Review Class dan Object PTIIK

PEMROGRAMAN BERORIENTASI OBJEK

Pemrograman Berorientasi Objek

(INHERITANCE) Nurochman

MEMBUAT KELAS SENDIRI. Dewi Sartika, M.Kom

KONSEP OOP: PEWARISAN / INHERITANCE

PRAKTIKUM I Class dan Obyek

Pemrograman Berorientasi Objek Danu Wira Pangestu

BAB 12 ENKAPSULASI, INHERITANCE DAN POLIMORPISME

Konstruktor dan Polimorfisme

Class dan Object. PBO/Java/Ayuliana/Revisi

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

KONSEP OOP: PEWARISAN / INHERITANCE

Bahasa Pemrograman 2.

Pemrograman Berorientasi. Class dan Obyek 2

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

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

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

:: abstract class + interface. :: abstract class

INHERITANCE. Gambar 1. Kelas Hierarki Java

MODUL 3 PEWARISAN TUJUAN DASAR TEORI

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

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

PRAKTIKUM OBJECT ORIENTED PROGRAMING

LAPORAN RESMI PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK MODUL 3 ABSTRAKSI

BAB 5 Mendapatkan Input dari Keyboard

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

Transkripsi:

Chapter 10 Polimorphism

A. Deskripsi Polimorphism Polimorphism berarti mempunyai banyak bentuk. Dua objek dikatakan sebagai polymorphic bila objek-objek itu mempunyai antarmuka-antarmuka uang identik namun mempunyai perilaku-perilaku berbeda. Polymorphism beripa satu nama tunggal (seperti deklarasi fungsi) dan menyatakan objek-objek kelaskelas berbeda yang terhubung dengan suatu superkelas yang common di antara kelas-kelas itu. Dengan Polimorphism dapat dikenali dan dieksploitasi keserupaan-keserupaan diantara kelas-kelas berbeda

B. Prinsip Substitusi Liskov Jenis-jenis polymorphism : Total polymorphism objek A adalah polimorphism secara total ke objek B juka segala sesuatu yang dapat dilakukan terhadap B dapat juga dilakukan terhadap A. dengan demikian A menggantikan B dalam sembarang konteksnya. Partial polymorphism Pada jenis ini hanya pada beberapa konteks (tidak semuanya) yang mengizinkan A mengganti B, tapi tidak untuk konteks-konteks yang lain. Typed polymorphism Polymorphism jenis ini didasarkan pada type yang dideklarasikan dari kelas-kelas objek. Untyped polymorphism Pada jenis ini polymorphism antara A dan B terhubung karena antarmuka yang serupa, contoh menggunakan template

C. Polimorphism sebagai teknik pengelolaan kompliksitas Contoh program Polymortohism pada java Pada contoh sebelumnya, kita diberikan parent class yaitu Person dan subclassnya adalah Student, sekarang kita tambahkan subclass lainnya dari Person yaitu Employee Berikut adalah hirarki class nya.

Polimorphism Dalam Java, kita dapat membuat referensi dari suatu superclass ke object dari subclassnya. Sebagai contoh, public static main( String[] args ) { Person ref; Student studentobject = new Student(); Employee employeeobject = new Employee(); ref = studentobject; //titik referensi Person kepada // sebuah object Student

Polimorphism misalnya, kita memiliki sebuah method getname dalam superclass Person. Dan kita meng-override method ini di kedua subclass yaitu Student dan Employee public class Student { public String getname(){ System.out.println( Student Name: + name); return name; public class Employee { public String getname(){ System.out.println( Employee Name: + name); return name;

Polimorphism Kembali ke method utama kita, ketika kita mencoba memanggil method getname dari referensi Person ref, method getname dari object Student akan dipanggil. Sekarang, jika kita memberi ref kepada object Employee, maka method getname juga akan dipanggil

Polimorphism public static main( String[] args ) { Person ref; Student studentobject = new Student(); Employee employeeobject = new Employee(); ref = studentobject; //titik referensi Person kepada object Student //getname dari class Student dipanggil String temp=ref.getname(); System.out.println( temp ); ref = employeeobject; //titik referensi Person kepada object Employee //getname dari class Employee dipanggil String temp = ref.getname(); System.out.println( temp );

Polimorphism Contoh lain yang menggambarkan polymorphism adalah ketika kita mencoba untuk passing reference kepada method jika kita memiliki sebuah method static printinformation yang menerima referensi Person sebagai parameter public static printinformation( Person p ){....

Polimorphism Sebenarnya kita dapat passing reference dari Employee dan Student kepada method printinformation selama kedua class tersebut merupakan subclass dari Person public static main( String[] args ) { Student studentobject = new Student(); Employee employeeobject = new Employee(); printinformation( studentobject ); printinformation( employeeobject );

D. Objek dalam Java Objek merupakan moyang seluruh kelas Objek merupakan superkelas semua kelas lain Variabel atau reference ke tipe objek dapat mengacu objek kelas manapun

Casting Object Sebenarnya kita dapat passing reference dari Employee dan Student kepada method printinformation selama kedua class tersebut merupakan subclass dari Person public static main( String[] args ) { Student studentobject = new Student(); Employee employeeobject = new Employee(); printinformation( studentobject ); printinformation( employeeobject );

Casting Object Gunakan sintaks berikut untuk casting object, (classname)object classname object - nama class tujuan - reference untuk object asal

Contoh Casting Object Berikut ini merupakan contoh proses casting sebuah instance dari class VicePresident ke instance dari class Employee. VicePresident merupakan subclass dari class Employee dengan beberapa informasi tambahan. Employee emp = new Employee(); VicePresident veep = new VicePresident(); emp = veep; // casting explisit veep = (VicePresident)emp;

E. Contoh-contoh Contoh Polymorphism untuk gambar, mari kita buat program untuk menggambar suatu bentuk geometri pada layar. Misalnya bentuk geometri tersebut terdiri dari persegi panjang, oval, dan kotak bersudut lingkar dengan berbagai warna.

contoh Kelas yang akan kita buat adalah PersegiPanjang, Oval, dan KotakLingkar. Ketiga kelas tersebut memiliki kelas super yang sama yang disebut BentukGeometris. Kelas BentukGeometris memiliki variabel instansi warna, lokasi, dan ukuran. Untuk mengganti warna kita bisa mengganti variabel instansi warna pada kelas ini, kemudian menjalankan metode instansi gambar() untuk menggambar bentuk tersebut dengan warna baru: class BentukGeometris { Color warna; // Warna suatu bentuk geometri //(Kelas Color diimport dari paket java.awt) void setwarna(color warnabaru) { // Metode untuk mengganti warna warna = warnabaru; // ganti nilai variabel instansi gambar(); // gambar ulang bentuk geometris ini, dengan warna baru void gambar() { // metode untuk menggambar??? // perintaha apa yang harus diletakkan di sini?... // variabel dan metode instansi lain // akhir kelas BentukGeometris

contoh Sekarang metode gambar() mungkin menjadi serba salah. Masalahnya, setiap bentuk digambar dengan cara berbeda. Metode setwarna() dapat digunakan oleh semua bentuk. Lalu bagaimana komputer tahu bagaimana menggambar bentuk tersebut jika metode gambar() dipanggil? Mudahnya, kita bisa jawab dengan : Komputer akan menjalankan perintah gambar() dengan meminta bentuk tersebut untuk menggambar sendiri. Setiap objek bentuk tahu apa yang harus dilakukan untuk menggambar dirinya.

contoh Dalam prakteknya, ini berarti setiap kelas turunan dari kelas BentukGeometris memiliki metode gambar() sendiri-sendiri, yaitu : class PersegiPanjang extends BentukGeometris { void gambar() {... // perintah untuk menggambar persegi panjang... // metode atau variabel lain class Oval extends BentukGeometris { void gambar() {... // perintah untuk menggambar oval... // metode atau variabel lain class KotakLingkar extends BentukGeometris { void gambar() {... // perintah untuk menggambar kotak bersudut lingkar... // metode atau variabel lain

Penjelasan contoh Jika gambarku adalah variabel bertipe BentukGeometri, variabel ini bisa merujuk pada objek dengan bertipe PersegiPanjang, Oval, atau KotakLingkar. Ketika program dijalankan, isi variabel gambarku akan berubah-ubah, tergantung pada objek yang dirujuknya. Suatu saat di tengah program, jika perintah gambarku.gambar() dijalankan, maka metode gambar() akan dijalankan tergantung pada isi variabel gambarku saat itu. Kita tidak akan bisa menebak metode apa yang akan dipanggil pada suatu saat hanya dengan membaca program tersebut, karena kita tidak pernah tahu isi variabel gambarku pada suatu saat tertentu. Misalnya perintah gambar() berada dalam suatu perulangan yang dijalankan berkali-kali. Maka akan sangat mungkin perintah gambarku.gambar() dipanggil berulang-ulang tetapi dengan objek yang berbeda-beda. Kita sebut metode gambar() bersifat polimorfis. Suatu metode disebut polimorfis jika aksi yang dilakukan oleh suatu metode berbeda-beda tergantung pada objek aktual pada saat metode itu dijalankan. Polimorfisme adalah fitur utama dalam pemrograman berorientasi objek