Anda di halaman 1dari 20

Kelompok

Polimorfisme
ehehehe
Perkenalan Kelompok

Ezy Yuda Dawis

Weda Dito Yuza


Polimorfisme
01 Apa sih itu polimorfisme?
Jadi Polimorfisme adalah
Polimorfisme merupakan fitur pemograman berorientasi objek yang penting
setelah pengkapsulan dan pewarisan.Polimorfisme berasal dari kata Yunani,
poly (banyak) dan morfos (bentuk). Polimorphisme menggambarkan
kemampuan kode C++ berperilaku berbeda tergantung situasi pada saat run
(program berjalan)

Umumnya, Polimorfisme digunakan untuk mengimplementasi suatu fungsi


dari sebuah base class maupun Interface, baik fungsi yang abstract maupun
sudah terdefinisi, untuk diimplementasikan sesuai dengan relevansi suatu
class yang menggunakan Interface maupun Inheritance pada base class
tersebut.
02
Implementasi
Contoh Implementasi Polymorphism
Contoh Implementasi Polymorphism
Contoh sederhana konsep Polymorphism adalah bagaimana seekor hewan bersuara.
Kita tahu bahwa setiap hewan mengeluarkan suara baik secara jelas maupun tidak,
namun pada intinya hewan pasti bersuara. Jika kita konsepkan hewan bersuara sebagai
fungsi, tentu fungsi ini akan diimplementasikan oleh makhluk hidup yang berada dalam
kategori hewan secara berbeda-beda. Misalnya, kucing mengimplementasikan fungsi ini
dengan suara “Meong”, anjing mengimplementasikan dengan suara “Gug gug”, ular
mengimplmentasikan dengan suara “Hshshhss”, sapi mengimplementasikan dengan
suara “Mooo”, dan lain-lain. Perbedaan dalam implmentasi dari suatu fungsi yang sama
inilah yang menjadi salah satu contoh penerapan Polymorphism
03
Ada 5 tipe dari Polymorphism
Tipe-tipe Polymorphism

1 3 5
Ad Hoc Polymorphism
Subtyping Polytypism

2 4
Parametic Row
Polymorphism Polymorphism
Ad Hoc Polymorphism

Tipe Ad Hoc Polymorphism adalah type system


Polymorphism yang diperkenalkan oleh
Christopher Strachey. Tipe Polymorphism ini
adalah tipe Polymorphism dimana suatu
fungsi dapat diaplikasikan dengan berbagai
argument atau parameter yang berbeda.
Parametric Polymorphism

Tipe Polymorphism ini memungkinkan suatu fungsi atau data


dituliskan secara general/umum, sehingga dapat memproses
nilai secara seragam tanpa memperhatikan tipe yang
digunakan. Contoh dari penggunaan Polymorphism tipe ini
adalah pada Templates yang ada di bahasa pemrograman
C++, dan Generics pada bahasa pemrograman C# dan Java.
Subtyping
Tipe ini juga disebut dengan Subtype Polymorphism atau
Inclusion Polymorphism. Tipe inilah yang umumnya kita
gunakan saat kita menggunakan Inheritance dan Interface.
Tipe ini memungkinkan suatu fungsi dari base class atau
interface untuk diimplementasikan secara sama maupun
berbeda dengan base class atau interface tersebut pada suatu
children class.
// Program perangkat keras dan lunak dengan konsep polimorfisme pada Java// Interface Printerinterface
Printer { void print(String message);}// Kelas Printer Dot Matrixclass DotMatrixPrinter implements
Printer { @Override public void print(String message) { System.out.println("Dot Matrix Printer: "
+ message); }}// Kelas Printer Laserclass LaserPrinter implements Printer { @Override public void
print(String message) { System.out.println("Laser Printer: " + message); }}// Kelas Komputerclass
Computer { private Printer printer; public void setPrinter(Printer printer) { this.printer =
printer; } public void print(String message) { printer.print(message); }}// Program Utamapublic
class Main { public static void main(String[] args) { // Membuat objek komputer Computer
computer = new Computer(); // Menggunakan printer dot matrix Printer dotMatrixPrinter =
new DotMatrixPrinter(); computer.setPrinter(dotMatrixPrinter); computer.print("Hello World!");
// Menggunakan printer laser Printer laserPrinter = new LaserPrinter();
computer.setPrinter(laserPrinter); computer.print("Hello World!"); }}
Row Polymorphism

Yaitu tipe Polymorphism yang secara konsep umum mirip dengan


Subtyping, namun lebih berurusan pada structural types. Tipe
ini memungkinkan untuk melakukan operasi hanya pada suatu
bagian dari sebuah record/data. Misalnya ada suatu fungsi
transform2D : {x: Float, y : Float, p}, yang mentransformasi
titik dua dimensi dan dimana p adalah class/type yang memiliki
attribute float x dan float y
Polytypsm
Tipe ini adalah konsep yang lebih umum dari Polymorphism,
namun masih ada keterkaitan dengan Polymorphism karena
memiliki kemiripan konsep. Polytypism bertujuan untuk
menyediakan definisi general pada suatu fungsi
menggunakan induksi pada strukture dari sebuah type.
Contohnya adalah Generic Haskell yang merupakan extensi
dari bahasa Haskell
Contoh
Polimorfisme
04 Penjelasan serta codingan
Contoh Polymorphism dalam
Bahasa Pemrograman Java

Polymorphism tipe Subtyping Polymorphism dimana class


Enemy merupakan super class dari class Ninja dan class
Monster. Ada satu fungsi pada class Enemy yaitu Attack yang
akan menge-print serangan textual dimana diimplementasikan
berbeda-beda oleh child class-nya.
Contoh codingan
class Enemy }
{ }
public void attack() public class Main
{ {
System.out.println(“Enemy is attacking!”); public static void main(String []args)
} {
} Enemy e1 = new Enemy();
class Ninja extends Enemy Enemy e2 = new Ninja();
{ Enemy e3 = new Monster();
public void attack(){
e1.attack();
e2.attack();
System.out.println(“Ninja is throwing shurikens!”);
e3.attack();
}
}
}
}
class Monster extends Enemy
{
Output
public void attack()
Enemy is attacking!
{ Ninja is throwing shurikens!
System.out.println(“Monster goes berserk!”); Monster goes berserk!
5
Keuntungan
Yg mw tanya kekurangan gbs y soalnya ga
baik ngomongin kekurangan
Keuntungan menggunakan polymorphism

1. menyediakan multiobject dari subclasses yang berbeda untuk diperlakukan sebagai object dari
superclass tunggal, secara otomatis menunjuk method yang tepat untuk menggunakannya ke
particular object berdasar subclass yang termasuk di dalamnya.

2. mampu menangani diskripsi tugas yang berbeda dengan nama yang sama.
Thanks!
CREDITS: This presentation template was created by
Slidesgo, and includes icons by Flaticon, and
Ada pertanyaan kah
maniez?

infographics & images by Freepik

Anda mungkin juga menyukai