Modul 7- Polymorphism
Modul 7- Polymorphism
Polymorphism
7.1 Tujuan
1. Dapat memahami konsep polymorphism pada Pemrograman Berorientasi
Objek
2. Dapat mengimplementasikan polymorphism menggunakan Bahasa
pemrograman python
7.1 Pengantar
7.1.1 Polymorphism
Polymorphism adalah salah satu konsep dalam OOP (Object-Oriented
Programming) di mana suatu objek dapat memiliki banyak bentuk atau tipe data.
Dengan Polymorphism kita dapat menggunakan suatu objek dengan cara yang
berbeda-beda, tergantung dari konteks dan kebutuhan saat penggunaan.
Konsep polymorphism dapat dijumpai dalam berbagai aspek kehidupan sehari-
hari, terutama pada hal-hal yang berkaitan dengan interaksi manusia dengan
lingkungan sekitarnya. Berikut adalah beberapa contoh polymorphism :
• Kendaraan
Kendaraan merupakan contoh nyata dari polymorphism. Meskipun ada
banyak jenis kendaraan, seperti mobil, sepeda, motor, kereta, dan lain
sebagainya, namun mereka memiliki beberapa karakteristik yang sama,
seperti roda, mesin, dan kendali. Dengan begitu maka manusia dapat naik dan
mengendarai berbagai jenis kendaraan, meskipun setiap jenis kendaraan
memiliki cara pengoperasian yang berbeda.
• Peralatan rumah tangga
Peralatan rumah tangga seperti blender, mixer, oven, dan mesin cuci, juga
dapat menjadi contoh polymorphism. Meskipun setiap peralatan rumah
tangga memiliki fungsi yang berbeda-beda, namun mereka memiliki fitur yang
sama, seperti tombol on/off, pengaturan kecepatan, dan lain sebagainya.
• Alat musik
Alat musik juga merupakan contoh nyata dari polymorphism. Meskipun ada
banyak jenis alat musik, seperti gitar, drum, biola, piano, dan lain sebagainya,
namun alat-alat tersebut memiliki beberapa karakteristik yang sama, seperti
nada, ritme, dan tempo. Sehingga kita dapat bermain dan memainkan
2
berbagai jenis alat musik, meskipun setiap jenis alat musik memiliki teknik dan
cara bermain yang berbeda.
3
• Overriding: mengimplementasikan method yang sama di dalam class yang
berbeda, Dengan demikian, saat pemanggilan method pada objek, program
akan memilih implementasi method pada setiap classnya.
1. class Calculator:
2. def add(self, a, b):
3. return a + b
4.
5. def add(self, a, b, c):
6. return a + b + c
7.
8. # membuat objek calculator
9. my_calculator = Calculator()
10.
11. # memanggil method add dengan dua parameter
12. result1 = my_calculator.add(2, 3)
13. print(result1) # output: 5
14.
15. # memanggil method add dengan tiga parameter
16. result2 = my_calculator.add(2, 3, 4)
17. print(result2) # output: 9
4
7.1.4 Overriding Polymorphism
Pada contoh kode berikut, class Cow memiliki method sound yang menghasilkan
output "Moo". Namun, class Dog dan Cat yang memiliki method sound yang sama,
namun dengan implementasi yang berbeda di masing-masing class. Ketika method
sound dipanggil pada objek Dog, program akan memilih implementasi method pada
class Dog, yaitu "Bark Bark". Demikian juga ketika method sound dipanggil pada objek
Cat, program akan memilih implementasi method pada class Cat, yaitu "Meooow".
Dengan demikian, kita dapat menggunakan class Cow, Dog, dan Cat dengan cara yang
berbeda-beda, tergantung pada kebutuhan penggunaannya..
1. class Cow:
2. def __init__(self, name):
3. self.name = name
4.
5. def sound(self):
6. print("Moooo")
7.
8. class Dog:
9. def __init__(self, name):
10. self.name = name
11.
12. def sound(self):
13. print("Bark Bark")
14.
15. class Cat:
16. def __init__(self, name):
17. self.name = name
18.
19. def sound(self):
20. print("Meoooww")
21.
22. my_cow = Cow("Sapi")
23. my_cow.sound()
24. my_dog = Dog("Anjing")
25. my_dog.sound()
26. my_cat = Cat("Kucing")
27. my_cat.sound()
5
7.2 Kegiatan Praktikum
7.2.1 Kegiatan 1 : Konsep Polymorphism
1. Buat sebuah file program baru kemudian tulis kode program berikut ini
1. Buat sebuah file program baru kemudian tulis kode program berikut ini
1. class India():
2. def capital(self):
3. print("New Delhi is the capital of India.")
4.
5. def language(self):
6. print("Hindi is the most widely spoken language of India.")
7.
8. def type(self):
9. print("India is a developing country.")
10.
6
11. class USA():
12. def capital(self):
13. print("Washington, D.C. is the capital of USA.")
14.
15. def language(self):
16. print("English is the primary language of USA.")
17.
18. def type(self):
19. print("USA is a developed country.")
20.
21. obj_ind = India()
22. obj_usa = USA()
23. for country in (obj_ind, obj_usa):
24. country.capital()
25. country.language()
26. country
1. class Shape:
2. def area(self):
3. pass
4.
5. class Rectangle(Shape):
6. def __init__(self, length, width):
7. self.length = length
8. self.width = width
9.
10. def area(self):
11. return self.length * self.width
12.
13. class Circle(Shape):
14. def __init__(self, radius):
15. self.radius = radius
16.
17. def area(self):
18. return 3.14 * self.radius * self.radius
19.
20. # membuat objek rectangle
7
21. my_rectangle = Rectangle(5, 6)
22.
23. # memanggil method area pada objek rectangle
24. result1 = my_rectangle.area()
25. print(result1) # output: 30
26.
27. # membuat objek circle
28. my_circle = Circle(7)
29.
30. # memanggil method area pada objek circle
31. result2 = my_circle.area()
32. print(result2) # output: 153.86
1. class Dog():
2. def __init__(self, name):
3. self.name = name
4.
5. def speak(self):
6. print(self.name, 'says bark, bark, bark!')
7.
8. class Cat():
9. def __init__(self, name):
10. self.name = name
11.
12. def speak(self):
13. print(self.name, 'says meeeoooow')
14.
15. class Bird():
16. def __init__(self, name):
17. self.name = name
18.
19. def speak(self):
20. print(self.name, 'says tweet')
21.
22. oDog1 = Dog('Rover')
23. oDog2 = Dog('Fido')
24. oCat1 = Cat('Fluffy')
25. oCat2 = Cat('Spike')
8
26. oBird = Bird('Big Bird')
27.
28. petsList = [oDog1, oDog2, oCat1, oCat2, oBird]
29.
30. for oPet in petsList:
31. oPet.speak()
7.3 Tugas
1. Buatlah 3 buah class yaitu Mobil, Pesawat dan Kapal, setiap class memiliki
method yang sama bernama move(). Di dalam Method move() terdapat fungsi
print yang memiliki output berbeda tergantung dengan class dimana method
tersebut berada.
Output move() pada class Mobil = Berjalan di jalan raya
Output move() pada class Pesawat = Terbang di udara
Output move() pada class Kapal = Berlayar di laut