Anda di halaman 1dari 18

Pemograman berorientasi

objek
POLIMORFISME
DINNA YUNIKA HARDIYANTI, M.T.
dinna.yunika @gmail.com
Pengertian polimorfisme
• Polimorfisme (bahasa inggris: Polymorphism) berasal dari dua kata
bahasa latin yakni poly dan morph.
Poly berarti banyak,
morph berarti bentuk. Polimorfisme berarti banyak bentuk
• Di dalam pemrograman objek, polimorfisme adalah konsep dimana
terdapat banyak class yang memiliki signature method yang sama.
Implementasi dari method-method tersebut diserahkan kepada tiap
class, akan tetapi cara pemanggilan method harus sama. Agar kita
dapat ‘memaksakan’ signature method yang sama pada banyak class,
class tersebut harus diturunkan dari sebuah abstract class atau object
interface.
• Polimorfisme (bahasa inggris polymorphism) adalah sebuah prinsip
dalam biologi di mana oraganisme atau spesias dapat memiliki banyak
bentuk atau tahapan (stages).
• Prinsip ini juga diadopsi pada pemrograman berorientasikan objek.
• Sehingga kita dapat definisikan sebagai berikut:
• Polimorfisme dalam OOP adalah sebuah prinsip di mana class dapat
memiliki banyak “bentuk” method yang berbeda-beda meskipun
namanya sama.
• “Bentuk” di sini dapat kita artikan: isinya berbeda, parameternya
berbeda, dan tipe datanya berbeda.
Jenis polimorfisme
Polimorfisme pada Java ada dua macam:
1.Static Polymorphism (Polimorfisme statis);
2.Dynamic Polymorphism (Polimorfisme dinamis).

• Beda dari keduanya terletak pada cara membuat polimorfismenya.


• Polimorfisme statis menggunakan method overloading sedangkan
polimorfisme dinamis menggunakan method overriding
Perbedaan method overloading dengan
method overriding
• Method overloading terjadi pada sebuah class yang memiliki nama
method yang sama tapi memiliki parameter dan tipe data yang
berbeda.
• Kata kunci yang perlu kamu ingat:
• “Dalam satu class”
• “Nama method sama”
• “Tipe data dan parameter beda”
• Itulah method Overloading.
Polimorfisme Statis

Overriding
Polimorfisme statis
• Class Lingkaran memiliki dus method yang sama, yakni Luas ()
• Tapi parameter dan tipe datanya berbeda dan juga isi atau rumus di
dalamnya berbeda.
• Inilah yang disebut polimorfisme statis.
Polimorfisme Dinamis
• Polimorfisme dinamis biasanya terjadi saat menggunakan perwarisan
(inheritance) dan implementasi interface
• Pada pewarisan, kita bisa mewariskan atribut dan method dari class
induk ke class anak
• Class anak akan memiliki nama method yang sama dengan class induk
dan anak yang lainnya
• Pada saat inilah terjadi polimorfisme
• Class anak akan memiliki nama method yang sama, tapi nanti isi dan
parameternya bisa berbeda dari class induk.
• Karena si class anak melakukan method overriding (mendindih
method) yang diwariskannya.
• Polimofirme dinamis juga bisa terjadi saat menggunakan interface
• Interface adalah class kosong yang berisi nama-nama method yang
nanti harus diimplementasikan pada class lain. Dalam
pengimplementasiannya bisa saja tiap-tiap class akan
mengimplementasikan secara berbeda dengan nama method yang
sama.
• polimorfisme statis hanya terjadi dalam satu class saja.
• Sedangkan polimorfisme dinamis terjadi pada saat ada hubungan
dengan class lain seperti inheritance.
Contoh polimorfisme
dinamis
Pada diagram tersebut, terdapat class
bangunDatar yang memiliki tiga subclass,
yaitu: Persegi, Lingkaran, dan Segitiga.

Setiap claa memiliki method yang sama yaitu


Luas () dan keliling(). Akan tetapi metho –
metod ini memiliki isi rumus yang berbeda.
Perbedaan Kunci Antara Warisan dan
Polimorfisme

1.Inheritance adalah membuat kelas yang memperoleh fiturnya dari kelas yang sudah ada. Di sisi lain, polimorfisme adalah antarmuka yang dapat didefinisikan dalam berbagai bentuk.
2.Warisan diimplementasikan pada kelas sedangkan polimorfisme diimplementasikan pada metode / fungsi.
3.Karena pewarisan memungkinkan kelas turunan untuk menggunakan elemen dan metode yang didefinisikan dalam kelas dasar, kelas turunan tidak perlu mendefinisikan elemen-elemen atau metode itu lagi sehingga, kita
4.Warisan dapat digolongkan sebagai pewarisan tunggal, pewarisan berganda, pewarisan multilevel, pewarisan hierarkis, dan pewarisan hibrida. Di sisi lain, polimorfisme diklasifikasikan sebagai overloading dan overridin

Kesimpulan:
Warisan dan polimorfisme adalah konsep yang saling terkait, karena polimorfisme dinamis berlaku untuk kelas-kelas yang juga menerapkan konsep pewarisan.
Perbedaan Antara Warisan dan
Polimorfisme
1. Inheritance adalah membuat kelas yang memperoleh fiturnya dari kelas yang sudah ada. Di
sisi lain, polimorfisme adalah antarmuka yang dapat didefinisikan dalam berbagai bentuk.
2. Warisan diimplementasikan pada kelas sedangkan polimorfisme diimplementasikan pada
metode / fungsi.
3. Karena pewarisan memungkinkan kelas turunan untuk menggunakan elemen dan metode
yang didefinisikan dalam kelas dasar, kelas turunan tidak perlu mendefinisikan elemen-
elemen atau metode itu lagi sehingga, kita dapat mengatakan itu meningkatkan penggunaan
kembali kode dan karenanya, mengurangi panjang kode . Di sisi lain, polimorfisme
memungkinkan objek untuk memutuskan bentuk metode apa yang ingin digunakan pada
waktu kompilasi dan waktu lari.
4. Warisan dapat digolongkan sebagai pewarisan tunggal, pewarisan berganda, pewarisan
multilevel, pewarisan hierarkis, dan pewarisan hibrida. Di sisi lain, polimorfisme
diklasifikasikan sebagai overloading dan overriding.
Terima kasih
Referensi: https://www.petanikode.com/java-oop-polimorfisme/

Anda mungkin juga menyukai