Employee employee=new Manager();

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

BAB 7 OVERLOADING DAN OVERRIDING

Polymorphism. Oleh : Agus Priyanto, M.Kom

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

Praktikum 8 Polymorphism

subclass class manapun private default protected public package yang sama

Overriding Overloading Polymorphism

public class B extends A {... }

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

Overriding Overloading Polymorphism

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

Inheritance (Pewarisan) Pengertian dasar inheritance

Modul Bahasa Pemrograman 1

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

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

A. TUJUAN PEMBELAJARAN 1. Memahami tentang overloading 2. Memahami tentang overriding 3. Memahami aturan tentang overridden

Inheritance. Pertemuan 8 Pemrograman Berbasis Obyek

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

Jobsheet 09. Overloading and Overriding Method

Pemrograman Berbasis Objek Inheritance

A. TUJUAN PEMBELAJARAN. 1. Menerapkan konsep enkapsulasi pada class 2. Mendeklarasikan suatu constructor

ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM

Inheritance. Topik 5/17/2013

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

Pengenalan Polimorfisme Implementasi Polimorfisme

Inheritance dan Kata Kunci static

Dasar-Dasar OOP di Java

BAB 6 INHERITANCE Tujuan:

INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM

Pemrograman Berorientasi. Polimorfisme dan Binding

Pemrograman Berorientasi. Inheritance

KONSEP OOP: POLYMORPHISM

Praktikum 4 Konsep Inheritance, Polymorphism, dan Encapsulation

BAB 1 PEMROGRAMAN BERORIENTASI OBJEK

Polymorphism. Materi ke-8 Pemrograman Berbasis Objek

KONSEP OOP: POLYMORPHISM

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

PRAKTIKUM 6 EXCEPTION

Chapter 10 Polimorphism

KONSEP OBJEK ORIENTASI PROGRAM

JOBSHEET POLIMORFISME

INTERAKSI ANTAR OBJECT

Deklarasi atribut dapat dilakukan dengan sintaks sebagai berikut:

Dasar-Dasar OOP di Java

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN 2

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

PRAKTIKUM 2 PEMROGRAMAN BERORIENTASI OBJEK

BAB 1 PENGENALAN LINGKUNGAN KERJA JAVA

Inheritance (Pewarisan Sifat) Imam Fahrur Rozi

KONSEP OOP: PEWARISAN / INHERITANCE

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

Pewarisan Sifat Objek. Nur Hasanah, M.Cs

Bahasa Pemrograman 2.

Bahasa Pemrograman :: Polimorfism and Abstraction

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

OBJECT ORIENTED PROGRAMMING (OOP)

PRAKTIKUM III & IV PEMROGRAMAN BERORIENTASI OBJEK

Bab 8. Dasar-Dasar OOP

Pertemuan 4 Halaman 1/1. Class Inheritance

LAPORAN RESMI INHERITANCE

PRAKTIKUM 5 PAKET, IMPORT DAN INTERFACE

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

Membuat dan Menggunakan Class

UJIAN TENGAH SEMESTER GENAP TA 2011/2012

Pemrograman Berorientasi Objek Danu Wira Pangestu

Bahasa Pemrograman 2.

Bahasa Pemrograman 2.

(INHERITANCE) Nurochman

CSG2H3 Object Oriented Programming. Polymorphism -RSM-

KONSEP OOP: PEWARISAN / INHERITANCE

Ismail Wibi Wicaksono

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

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

Percobaan 5 Paket dan Import, Interface

Praktikum. PBO (Kelas K) Oleh : MOHAMMAD SHOLIKIN

Gambar 1: Hirarki class

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

MODUL 3 PEWARISAN TUJUAN DASAR TEORI

2015 BAHASA PEMROGRAMAN I. Pertemuan VI Inheritance (Pewarisan)

Bahasa Pemrograman :: Inheritance

Parent dan Child di Java

Politeknik Elektronika Negeri Surabaya

Pemrograman Berorientasi Objek

Polymorohism in Java. Adharul Muttaqin Teknik Elektro Universitas Brawijaya Malang

Polymorphism (Polimorfisme)

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

Konsep Inheritance. Praktikum 8 Pemrograman Berbasis Obyek

Pemrograman Berorientasi. Class dan Obyek 2

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN JAVA 2

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

PEMROGRAMAN BERORIENTASI OBJEK

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

Pewarisan, Polimorfisme, dan Interface

UJIAN TENGAH SEMESTER GENAP TA 2011/2012

BAHASA PEMROGRAMAN JAVA

Konsep Pemrograman Berorientasi Obyek. Maria Ulfah S Nurochman

Konsep Dasar Pemrograman Berorientasi Objek

PEWARISAN SIFAT OBYEK

INHERITANCE. Pelatihan Java 2 Mei 2015 Fakultas Teknologi Informasi Program Studi Teknik Informatika

Transkripsi:

PRAKTIKUM 13 POLIMORFISME A. TUJUAN PEMBELAJARAN 1. Memahami dan menerapkan konsep polimorfisme dalam pemrograman 2. Memahami proses terjadinya Virtual Method Invocation 3. Memahami dan menerapkan polymorphic arguments dalam pemrograman 4. Memahami penggunaan instanceof dan cara melakukan casting object B. DASAR TEORI Polymorphism (polimorfisme) adalah kemampuan untuk mempunyai beberapa bentuk class yang berbeda. Polimorfisme ini terjadi pada saat suatu obyek bertipe parent class, akan tetapi pemanggilan constructornya melalui subclass. Misalnya deklarasi pernyataan berikut ini: Employee employee=new Manager(); dimana Manager() adalah kontruktor pada class Manager yang merupakan subclass dari class Employee. Virtual Method Invocation (VMI) bisa terjadi jika terjadi polimorfisme dan overriding. Pada saat obyek yang sudah dibuat tersebut memanggil overridden method pada parent class, kompiler Java akan melakukan invocation (pemanggilan) terhadap overriding method pada subclass, dimana yang seharusnya dipanggil adalah overridden method. Berikut contoh terjadinya VMI: class Parent { int x = 5; public void Info() { 105

System.out.println( Ini class Parent ); class Child extends Parent { int x = 10; public void Info() { System.out.println( Ini class Child ); public class Tes { public static void main(string args[]) { Parent tes=new Child(); System.out.println( Nilai x = + tes.x); tes.info(); Hasil dari running program diatas adalah sebagai berikut: Nilai x = 5 Ini class Child Polymorphic arguments adalah tipe suatu parameter yang menerima suatu nilai yang bertipe subclass-nya. Berikut contoh dari polymorphics arguments: class Pegawai { class Manajer extends Pegawai { public class Tes { public static void Proses(Pegawai peg) { 106

public static void main(string args[]) { Manajer man = new Manajer(); Proses(man); Pernyataan instanceof sangat berguna untuk mengetahui tipe asal dari suatu polymorphic arguments. Untuk lebih jelasnya, misalnya dari contoh program sebelumnya, kita sedikit membuat modifikasi pada class Tes dan ditambah sebuah class baru Kurir, seperti yang tampak dibawah ini: class Kurir extends Pegawai { public class Tes { public static void Proses(Pegawai peg) { if (peg instanceof Manajer) { lakukan tugas-tugas manajer else if (peg instanceof Kurir) { lakukan tugas-tugas kurir else { lakukan tugas-tugas lainnya public static void main(string args[]) { Manajer man = new Manajer(); Kurir kur = new Kurir(); Proses(man); Proses(kur); Seringkali pemakaian instanceof diikuti dengan casting object dari tipe 107

parameter ke tipe asal. Misalkan saja program kita sebelumnya. Pada saat kita sudah melakukan instanceof dari tipe Manajer, kita dapat melakukan casting object ke tipe asalnya, yaitu Manajer. Caranya adalah seperti berikut: if (peg instanceof Manajer) { Manajer man = (Manajer) peg; lakukan tugas-tugas manajer C. TUGAS PENDAHULUAN 1. Apakah yang dimaksud dengan polimorfisme? 2. Jelaskan proses terjadinya Virtual Method Invocation! 3. Apakah yang dimaksud dengan polymorphic arguments? 4. Apakah kegunaan kata kunci instanceof? D. PERCOBAAN Memahami proses terjadinya Virtual Method Invocation Tulislah listing program berikut ini dan amati yang terjadi pada saat terjadinya Virtual Method Invocation. class Parent { int x = 5; public void Info() { System.out.println( Ini class Parent ); class Child extends Parent { int x = 10; public void Info() { System.out.println( Ini class Child ); 108

public class Tes { public static void main(string args[]) { Parent tes=new Child(); System.out.println( Nilai x = + tes.x); tes.info(); Apakah output program diatas? Jelaskan! E. LATIHAN Latihan 1. Apa yang terjadi bila kode dibawah ini dikompile dan dijalankan jika sebelumnya Base.java belum dikompile? Jelaskan! // Filename; SuperclassX.java package packagex; public class SuperclassX{ int superclassvarx; protected void superclassmethodx(){ // Filename SubclassY.java package packagex.packagey; public class SubclassY extends SuperclassX{ SuperclassX objx = new SubclassY(); SubclassY objy = new SubclassY(); void subclassmethody(){ objy.superclassmethodx(); int i; i = objy.superclassvarx; 109

Latihan 2. Apa yang tampil di layar jika kode dibawah ini dijalankan? Jelaskan! class Base { int i = 99; Base(){ amethod(); public void amethod(){ System.out.println("Base.amethod()"); public class Derived extends Base{ int i = -1; public static void main(string argv[]){ Base b = new Derived(); System.out.println(b.i); b.amethod(); public void amethod(){ System.out.println("Derived.amethod()"); Latihan 3. Apa yang tampil di layar jika kode dibawah ini dijalankan? Jelaskan! class Parent{ private void method1(){ System.out.println("Parent's method1()"); public void method2(){ System.out.println("Parent's method2()"); method1(); class Child extends Parent{ public void method1() System.out.println("Child's method1()"); public static void main(string args[]){ Parent p = new Child(); p.method2(); 110

Latihan 4. Mengimplementasikan UML class diagram dalam program Suatu program terdiri dari class Pegawai sebagai parent class, class Manajer dan class Kurir sebagai subclass. Buatlah suatu program yang menerapkan konsep polymorphic argument sebagaimana yang telah disinggung dalam pembahasan sebelumnya. F. TUGAS Mengimplementasikan UML class Diagram dalam program Transformasikan class diagram diatas ke dalam bentuk program! Tulislah listing program berikut ini sebagai pengetesan. public class Bayaran{ public int hitungbayaran(pegawai peg){ int uang = peg.infogaji(); if (peg instanceof Manajer) uang += ((Manajer) peg).infotunjangan(); else if (peg instanceof Programmer) 111

uang += ((Programmer) peg).infobonus(); return uang; public static void main(string args[]){ Manajer man = new Manajer("Agus", 800, 50); Programmer prog = new Programmer("Budi", 600, 30); Bayaran hr = new Bayaran(); System.out.println("Bayaran untuk Manajer : " + hr.hitungbayaran(man)); System.out.println("Bayaran untuk Programmer : " + hr.hitungbayaran(prog)); Lakukan kompilasi pada program diatas dan jalankan. Jika tampilan di layar tampak seperti di bawah ini, maka program anda sudah benar. Jika tidak sama, benahi kembali program anda dan lakukan hal yang sama seperti diatas. Bayaran untuk Manajer : 850 Bayaran untuk Programmer : 630 G. LAPORAN RESMI Kumpulkan hasil latihan dan tugas di atas. Tambahkan analisa dalam laporan resmi. 112