Disusun Oleh :
NAMA : ANNISA SALSABILA
NIM : 185410070
JURUSAN : TEKNIK INFORMATIKA
STMIK AKAKOM
YOGYAKARTA
2019
A. TUJUAN
Mahasiswa dapat membuat aplikasi yang mengimplementasi compile-time (early binding)
polimorphisme, dapat membuat aplikasi yang mengimplementasi runtime (late binding)
polimorphisme
B. DASAR TEORI
Polimorfisme adalah kemampuan sebuah variabel reference untuk merubah behavior sesuai
dengan apa yang dipunyai object.
Polimorfisme membuat objek-objek yang berasal dari subclass yang berbeda, diperlakukan
sebagai objek-objek dari satu superclass. Hal ini terjadi ketika memilih method yang sesuai
untuk diimplementasikan ke objek tertentu berdasarkan pada subclass yang memiliki method
bersangkutan.
Polimorfisme dapat diterjemahkan pula sebagai “sebuah method yang sama namanya (homonim)
tetapi mempunyai tingkah laku yang berbeda”. Komputer membedakan method berdasarkan
signature method (saat compile) atau berdasarkan reference object (saat runtime).
Dikatakan late-binding (run time) polymorphism karena saat compile komputer tidak tahu
method mana yang harus dipanggil, dan baru akan diketahui saat run-time. Run-time
polymorphism dapat diterapkan melalui overridden method. Run time polymorphism juga
disebut dengan istilah dynamic binding.
2. Static polimorfisme, merupakan function overloading (penggunaan kembali nama fungi yang
sama tapi dgn argumen yang berbeda) / ( Penggunaan satu nama untuk beberapa method yang
berbeda (beda parameter) ).
Overloading adalah salah satu cara penerapan dalam konsep polimorfisme. Overload merupakan
pendefinisian ulang suatu metode dalam class yang sama. Syarat overload yaitu parameter harus
berbeda dalam kelass yang sama.
Aturan overload :
1. Method yang mengoverload HARUS merubah argument list
2. Method yang mengoverload BOLEH merubah return type
3. Method yang mengoverload BOLEH merubah access modifier
4. Method yang mengoverload BOLEH melempar checked exception yang lebih luas atau baru
sama sekali dari method yang dioverload.
C. PRAKTIK
PRAKTIK 1 : Compile-time (early binding) polimorphisme dengan overloading method
Pembahasan :
Pada praktik diatas merupakan program polimorfisme dengan method overloading di dalamnya.
Pada praktik di atas polymorphism ditunjukkan dengan menggunakan berbagai method tambah.
Komputer membedakan mana method yang dipanggil berdasarkan signature dari method yaitu
parameter inputnya (jumlah parameter input, type data parametr input, dan urutan type data).
Program ini mempunyai nama kelas Jumlah sebagai deklarasi awal, lalu terdapat kelas dengan
nama Penjumlahan yang digunakan untuk menjalankan program dan mengeluarkan output.
Outputnya seperti diatas. Hasilnya seperti diatas karena perintah yang diminta yaitu method
tambah sehingga angka2 yang disebutkan ditambahkan.
PRAKTIK 2 : Compile-time (early binding) polimorphisme dengan overloading Konstruktor
Pembahasan :
Pada praktik diatas yaitu program polimorfisme dengan overloading konstruktor. Program ini
memiliki kelas dengan nama Penggajian dengan tipe data double untuk variable gapok dan masa
kerja. Lalu terdapat juga kelas dengan nama OverloadingKonstruktor yang digunakan untuk
menjalankan perintah di program awal dan mengeluarkan output seperti contoh diatas.
Pembahasan :
Pada praktik diatas yaitu program dengan nama kelas Induk. Dimana pada program ini
merupakan bukan menggunakan kelas induk tetapi menggunakan konstruktor di kelas Anak.
Konstruktor dari kelas Anak merupakan turunan dari kelas Induk. Method yg dipanggil
merupakan method di kelas Anak. Seperti di praktik sebelumnya yaitu terdapat method Info().
Terdapat juga class dengan nama class Test2 yang digunakan untuk menjalankan program dan
mengeluarkan output, pada baris ke 28 merupakan method untuk mengeluarkan output, yaitu
terdapat method dengan nama tes.Info();
D. LATIHAN
1. Buat program yang menunjukan Runtime polihmorhpisme dan Tunjukan
Output:
Pada program diatas merupakan sebuah program untuk Runtime polihmorhpisme. Yang
dilakukan adalah membuat runtime polimorfisme dengan overriding method. Override
merupakan pendefinisian ulang suatu metode oleh subclass. Syarat Override yaitu metode, return
type, dan parameter harus sama. Pertama buat super class dengan nama Animal. Setelah itu buat
method move yang berisi perintah output menampilkan “Animal can move”. Dan buat class Dog
yang merupakan subclass dari class Animal. Kemudian buat overriding method dari class
Animal yaitu method move yang berisi perintah output menampilkan “Dogs can walk and run”.
Selanjutnya terdapat class TestDog, disini digunakan Main method merupakan method utama
yang di jalankan pada saat aplikasi di run. Dan buat obyek untuk class Animal yaitu dengan
nama a yang digunakan menampung isi method Animal. Setelah itu buat obyek untuk class
Animal yaitu dengan nama b yang digunakan menampung isi method Dog, dan panggil method
move pada kedua class ditampung pada variabel a dan b. Maka ketika program dijalankan akan
menampilkan informasi seperti hasil output diatas jika dijalankan
E. TUGAS
Buatlah tabel perbedaan runtime polimorfisme dengan compile time polimorfisme minimal
5!
F. KESIMPULAN
Pada pertemuan kali ini dapat disimpulkan bahwa jika membuat aplikasi yang
mengimplementasi compile-time (early binding) polimorphisme, dapat membuat aplikasi yang
mengimplementasi runtime (late binding) polimorphisme. Yang merupakan kemampuan
sebuah variabel reference untuk merubah behavior sesuai dengan apa yang dipunyai object.
Ada dua bentuk polimorfisme yaitu :
Overloading ( compile-time (early binding) polimorphisme ) Overloading adalah salah
satu cara penerapan dalam konsep polimorfisme. Overload merupakan pendefinisian ulang
suatu metode dalam class yang sama. Syarat overload yaitu metode dan tipe parameter harus
berbeda dalam kelass yang sama
Overriding ( runtime (late binding) polimorphisme ) Override merupakan pendefinisian
ulang suatu metode oleh subclass. Syarat Override yaitu metode, return type, dan parameter
harus sama. Jika tidak sama maka bukan dianggap sebagai override tetapi metode yang baru
pada subclass.
G. LISTING
Terlampir