Pengertian Polimorfisme dalam Pemrograman Objek PHP

 


Abstract Class dan Object Interfaces yang kita pelajari dalam 2 tutorial sebelum ini merupakan implementasi dari konsep pemrograman berbasis objek yang dinamakan Polimorfisme. Dalam tutorial OOP PHP kali ini, kita akan membahas pengertian polimorfisme dalam pemrograman objek PHP, disertai contoh penggunaannya.


Pengertian Polimorfisme

Dari segi bahasa, Polimorfisme (bahasa inggris: Polymorphism) berasal dari dua kata bahasa latin yakni poly dan morphPoly berarti banyak, dan morph berarti bentuk. Polimorfisme berarti banyak bentuk (wikipedia).

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.

Sebagai contoh, berikut adalah kode PHP yang mengimplementasikan konsep polimorfisme:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
// buat abstract class
abstract class komputer{
   // buat abstract method
   abstract public function booting_os();
}
  
class laptop extends komputer{
   public function booting_os(){
     return "Proses Booting Sistem Operasi Laptop";
   }
}
  
class pc extends komputer{
   public function booting_os(){
     return "Proses Booting Sistem Operasi PC";
   }
}
  
class chromebook extends komputer{
public function booting_os(){
     return "Proses Booting Sistem Operasi Chromebook";
   }
}
  
  
// buat objek dari class diatas
$laptop_baru = new laptop();
$pc_baru = new pc();
$chromebook_baru = new chromebook();
  
// buat fungsi untuk memproses objek
function booting_os_komputer($objek_komputer){
   return $objek_komputer->booting_os();
}
  
// jalankan fungsi
echo booting_os_komputer($laptop_baru);
echo "<br />";
echo booting_os_komputer($pc_baru);
echo "<br />";
echo booting_os_komputer($chromebook_baru);
?>

Contoh kode diatas cukup panjang, namun jika anda mengikuti tutorial OOP PHP sebelumnya (tentang abstract class), maka kode diatas akan bisa dipahami dengan baik.

Pada awal program, saya membuat abstract class komputer yang kemudian diturunkan kedalam 3 class lain, yakni: class laptop, class pc dan class chromebookAbstract class komputer memiliki abstract method booting_os(), yang harus diimplementasikan ulang pada tiap class yang diturunkan dari class komputer. Setelah pendefenisian class, saya membuat 3 objek dari masing-masing class.

Perhatikan bahwa setelah pembuatan objek dari masing-masing class, saya membuat fungsi booting_os_komputer(). Fungsi ini berperan untuk memanggil method-method dari setiap class.

Konsep polimorfisme dari contoh diatas adalah, fungsi booting_os_komputer() akan selalu berhasil dijalankan, selama argumen yang diberikan berasal dari class yang diturunkan dari class abstract komputer.


Peran Abstract Class dan Interface dalam Polimorfisme

Baik abstract class maupun interface bisa digunakan untuk membuat banyak class dengan method yang sama. Bahkan keduanya sering digunakan secara bersama-sama.

Berikut adalah revisi kode program kita sebelumnya dengan menggunakan abstract class dan interface:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<?php
// buat abstract class
abstract class komputer{
   // buat abstract method
   abstract public function booting_os();
}
  
interface mouse{
   public function double_klik();
}
  
class laptop extends komputer implements mouse{
   public function booting_os(){
     return "Proses Booting Sistem Operasi Laptop";
   }
   public function double_klik(){
     return "Double Klik Mouse Laptop";
   }
}
  
class pc extends komputer implements mouse{
   public function booting_os(){
     return "Proses Booting Sistem Operasi PC";
   }
   public function double_klik(){
     return "Double Klik Mouse PC";
   }
}
  
class chromebook extends komputer implements mouse{
   public function booting_os(){
     return "Proses Booting Sistem Operasi Chromebook";
   }
   public function double_klik(){
     return "Double Klik Mouse Chromebook";
   }
}
  
// buat objek dari class diatas
$laptop_baru = new laptop();
$pc_baru = new pc();
$chromebook_baru = new chromebook();
  
// buat fungsi untuk memproses objek
function booting_os_komputer($objek_komputer){
   return $objek_komputer->booting_os();
}
  
function double_klik_komputer($objek_komputer){
   return $objek_komputer->double_klik();
}
  
// jalankan fungsi
echo booting_os_komputer($laptop_baru);
echo "<br />";
echo double_klik_komputer($laptop_baru);
echo "<br />";
echo "<br />";
  
echo booting_os_komputer($pc_baru);
echo "<br />";
echo double_klik_komputer($pc_baru);
echo "<br />";
echo "<br />";
  
echo booting_os_komputer($chromebook_baru);
echo "<br />";
echo double_klik_komputer($chromebook_baru);
?>

Pada kode program diatas, saya membuat 1 abstract classkomputer, dan 1 interfacemouse. Keduanya kemudian di turunkan kepada 3 class: class laptop, class pc, dan class chromebook.

Selama sebuah class diturunkan dari abstract class komputer, dan menggunakan interface mouse, fungsi booting_os_komputer() dan fungsi double_klik_komputer() akan selalu berhasil di jalankan, terlepas dari apapun nama objek dan implementasi method yang digunakan.

Konsep polimorfisme yang kita bahas dalam tutorial ini bertujuan untuk membuat struktur pola dari class dan turunannya. Lebih jauh lagi, polimorfisme menekankan alur kode program yang terorganisir untuk mengurangi adanya perulangan kode program.


sumber: https://www.duniailkom.com/tutorial-belajar-oop-php-pengertian-polimorfisme-dalam-pemrograman-objek-php/

Tidak ada komentar:

Posting Komentar

Blogger Tricks

Blogger Themes