Anda di halaman 1dari 14

POLIMORPHISM

Adharul Muttaqin

Adharul M - adharul@ub.ac.id

Kura-Kura Serba Bisa


Perhatikan code berikut (class KuraKura, Sayap, Roket, Kaki

sudah dibuat):
class KuraKuraTest{ public static void main(String[] args){ Hai saya kura kura KuraKura turtle=new KuraKura(); Saya mampu bergerak turtle.bergerak(); - Menyiapkan sayap - Menyiapkan roket Sayap sayap=new Sayap(); Roket roket=new Roket(); Kaki kaki=new Kaki(); - Menyiapkan kaki

Sekarang saya pakai Sayap@190d11

turtle.setAlatGerak(sayap); turtle.bergerak(); turtle.setAlatGerak(roket); turtle.bergerak(); turtle.setAlatGerak(kaki); Adharul M - adharul@ub.ac.id turtle.bergerak();


}

Saya bisa terbang Sekarang saya pakai Roket@a90653 Saya bisa terbang antar benua Sekarang saya pakai Kaki@de6ced Saya bisa jalan-jalan meski lambat

Outline
Pengertian Porlimorphism

Contoh Polimorphism di Java

Adharul M - adharul@ub.ac.id

Pengertian Polimorphism
Secara umum, polimorphism dimaksudkan pada

kemampuan untuk muncul dalam berbagai bentuk Polymorphism di Java:


Kemampuan suatu refference variable untuk

bertindak (melakukan method) sesuai dengan object yang dipegangnya. Memungkinkan berbagai object dari berbagai subclass diperlakukan sebagai sebuah object super class. Super class yang dimaksud akan melakukan tindakan sesuai dengan object subclass tersebut.
Adharul M - adharul@ub.ac.id

Contoh Polymorphism
Diberikan sebuah parent class Shape serta

beberapa subclass Circle, Rectangle, dan Triangle. Polymorphism memungkinkan programmer mendefinisikan method getLuas() pada setiap subclass. Apapun object yang dibuat, getLuas() akan memberikan hasil yang benar

konsep Override

Adharul M - adharul@ub.ac.id

Contoh #1: Polymorphism pada Java


Diberikan parent class Person dan child class

Student, kemudian subclass yang lain adalah Employee. Hierarki class-nya adalah sbb:

Adharul M - adharul@ub.ac.id

Contoh #1: Polymorphism pada Java


Kita perhatikan method getName pada super class Person yang dioverride pada subclass 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; } }
Adharul M - adharul@ub.ac.id

Contoh #1: Polymorphism pada Java


Di Java, kita dapat membuat sebuah refference

yang bertype super class (Person) pada sebuah object subclass (Student).
public static main( String[] args ) { Student studentObject = new Student(); Employee employeeObject = new Employee(); Person ref = studentObject; //Person merefer ke object dg type student String name = ref.getName(); //Memanggil getName() milik obeject Student }
Adharul M - adharul@ub.ac.id

Contoh #1: Polymorphism pada Java


Perhatikan main method, saat kita panggil

getName dari object ref, method getName yang dipanggil adalah milik object Student. Jika kita assign variable ref ke object Employee, maka method getName milik Employee yang dipanggil

Adharul M - adharul@ub.ac.id

Contoh #1: Polymorphism pada Java


Tambahkan di main method kode berikut

ref = employeeObject; //Person ref merefer ke object Employee String temp = ref.getName(); //getName() milik Employee yang dipanggil System.out.println( temp );

Adharul M - adharul@ub.ac.id

Contoh #2: Polymorphism pada Java


Contoh lain implementasi polymorphism adalah

dengan melakukan passing sebuah refference sebagai parameter input sebuah method. Misalkan kita tambahkan sebuah static method printInformation yang menggunakan type Person sebagai parameter.
public static printInformation( Person p ){ // It will call getName() method of the // actual object instance that is passed p.getName(); }

Adharul M - adharul@ub.ac.id

Contoh #2: Polymorphism pada Java


Kita dapat menggunakan type Employee ataupun

Student untuk dijadikan input method printInformation. Mengapa ? Karena Employee dan Student adalah Person
public static main( String[] args ){ Student studentObject = new Student(); Employee employeeObject = new Employee(); printInformation( studentObject ); printInformation( employeeObject ); }

Adharul M - adharul@ub.ac.id

Keuntungan
Simplicity Jika kita memerlukan menulis suatu code yang dapat digunakan berbagai jenis type, code hanya cukup berinteraksi dengan base class (parents) dan dapat mengabaikan detail yang lebih spesifik yang berada pada subclass. Memudahkan penulisan program dan memudahkan pihak lain Extensibility Subclass yang lain dapat dibuat sebagai type baru dan object dari class baru tersebut masih kompatible dengan kode yang sudah ada. Adharul M - adharul@ub.ac.id

Tugas Pra UTS


Suatu perusahaan System Developer mempunyai

banyak pegawai. George Harry, Adin Chandra, dan Albertina adalah programmer pada perusaahan tersebut yang digaji sebesar gaji pokok. Baikhaqi sebagai seorang sales berhak diberi gaji berupa gaji pokok ditambah bonus. Sebagai seorang manajer, Bernard mendapatkan gaji pokok plus tunjangan.
Dengan pendekatan OOP, buat program penggajian

(Payroll) sederhana yang dapat mencetak atau menampilkan seluruh gaji pegawai perusahaan tersebut! Lengkapi pertanyaan berikut:
Adharul M - adharul@ub.ac.id

Gambarkan desain class diagramnya! Implementasikan dengan Java!

Buatlah Test Unitnya!

Anda mungkin juga menyukai