0% menganggap dokumen ini bermanfaat (0 suara)
0 tayangan

Modul 7- Polymorphism

Dokumen ini membahas konsep polymorphism dalam Pemrograman Berorientasi Objek (OOP) dengan fokus pada implementasi di Python. Polymorphism memungkinkan objek untuk memiliki banyak bentuk dan dapat diimplementasikan melalui overloading dan overriding. Contoh-contoh praktis diberikan untuk menunjukkan bagaimana polymorphism bekerja dalam berbagai konteks, termasuk kendaraan, peralatan rumah tangga, dan alat musik.

Diunggah oleh

panengaharya
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
0 tayangan

Modul 7- Polymorphism

Dokumen ini membahas konsep polymorphism dalam Pemrograman Berorientasi Objek (OOP) dengan fokus pada implementasi di Python. Polymorphism memungkinkan objek untuk memiliki banyak bentuk dan dapat diimplementasikan melalui overloading dan overriding. Contoh-contoh praktis diberikan untuk menunjukkan bagaimana polymorphism bekerja dalam berbagai konteks, termasuk kendaraan, peralatan rumah tangga, dan alat musik.

Diunggah oleh

panengaharya
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 9

BAB 7

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.

7.1.2 Polymorphism pada Python


Konsep polymorphism pada Python dapat ditemukan di dalam library bawaan
Python. Sebagai contoh, kita dapat menggunakan fungsi len() untuk mendapatkan
panjang dari objek yang berbeda-beda, seperti string, list, tuple, set, dan dictionary.
Meskipun objek-objek tersebut memiliki tipe data yang berbeda, namun kita dapat
memanggil fungsi len() pada setiap objek tersebut dengan cara yang sama, sehingga
fungsi tersebut bersifat polymorphic.
Berikut ini adalah contoh penggunaan fungsi len() pada beberapa tipe data yang
berbeda:

1. my_string = "Hello, World!"


2. my_list = [1, 2, 3, 4, 5]
3. my_tuple = (6, 7, 8, 9, 10)
4. my_set = {11, 12, 13, 14, 15}
5. my_dict = {"name": "John", "age": 30, "city": "New York"}
6.
7. print(len(my_string)) # output: 13
8. print(len(my_list)) # output: 5
9. print(len(my_tuple)) # output: 5
10. print(len(my_set)) # output: 5
11. print(len(my_dict)) # output: 3

Polymorphism dalam OOP dapat diimplementasikan melalui dua cara, yaitu:


• Overloading: mengimplementasikan fungsi atau method dengan nama yang
sama, tetapi dengan parameter yang berbeda. Dengan demikian, saat
pemanggilan fungsi atau method, program akan memilih implementasi yang
sesuai dengan parameter yang diberikan.

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.

7.1.3 Overloading Polymorphism


Pada contoh kode berikut, class Calculator memiliki dua method yang bernama sama
yaitu add. Namun, keduanya memiliki jumlah parameter yang berbeda. Saat
pemanggilan method, program akan memilih method yang sesuai dengan jumlah
parameter yang diberikan. Jika diberikan dua parameter, program akan memilih
method add dengan dua parameter, dan jika diberikan tiga parameter, program akan
memilih method add dengan tiga parameter. Dengan demikian, kita dapat
menggunakan class Calculator dengan cara yang berbeda-beda, tergantung pada
kebutuhan penggunaannya.

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. # contoh penggunaan duck typing


2. def print_all(items):
3. for item in items:
4. print(item)
5.
6. # list
7. my_list = [1, 2, 3]
8.
9. # tuple
10. my_tuple = (4, 5, 6)
11.
12. # string
13. my_string = "Hello, world!"
14.
15. # memanggil fungsi print_all dengan parameter my_list, my_tuple, da
n my_string
16. print_all(my_list) # output: 1 2 3
17. print_all(my_tuple) # output: 4 5 6
18. print_all(my_string) # output: H e l l o , w o r l d !

2. Amati hasilnya kemudian tulis analisis singkat tentang kegiatan ini

7.2.2 Kegiatan 2 : Polymorphism pada OOP

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

2. Amati hasilnya kemudian tulis analisis singkat tentang kegiatan ini

7.2.3 Kegiatan 3 : Polymorphism pada OOP


1. Buat sebuah file program baru kemudian tulis kode program berikut ini

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

2. Amati hasilnya kemudian tulis analisis singkat tentang kegiatan ini

7.2.4 Kegiatan 4 : Polymorphism pada OOP


1. Buat sebuah file program baru kemudian tulis kode program berikut ini

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()

2. Amati hasilnya kemudian tulis analisis singkat tentang kegiatan ini

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

Anda mungkin juga menyukai