Mengenal Polimorfisme dalam Pemrograman Berbasis Objek PHP

Mengenal Polimorfisme dalam Pemrograman Berbasis Objek PHP

Polimorfisme dalam Pemrograman Berbasis Objek PHP

Polimorfisme dalam Pemrograman Berbasis Objek PHP

Pada tutorial PHP kali ini, kami akan membahas tentang pengertian polimorfisme dalam pemrograman berbasis objek PHP.

Polimorfisme berasal dari bahasa Inggris: polymorphism, yang juga berasal dari dua kata bahasa Latin yakni poly dan morph. Menurut Wikipedia, poly berarti banyak dan morph berarti bentuk. Polimorfisme berarti banyak bentuk.

Di dalam pemrograman berbasis objek, polimorfisme adalah konsep di mana 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 di atas

$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);

?>

Pada awal program, kami membuat abstract class komputer yang kemudian diturunkan ke dalam tiga class lain, yakni: class laptop, class pc dan class chromebook. Abstract class komputer memiliki abstract method booting_os(), yang harus diimplementasikan ulang pada tiap class yang diturunkan dari class komputer. Setelah pendefenisian class, kami membuat tiga objek dari masing-masing class.

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

Konsep polimorfisme dari contoh di atas 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 di atas, kami membuat satu abstract class: komputer dan satu interface: mouse. Keduanya kemudian diturunkan kepada tiga class: class laptop, class pc, dan class chromebook.

Selama sebuah class diturunkan dari abstract class computer dan menggunakan interface mouse, fungsi booting_os_komputer() dan fungsi double_klik_komputer() akan selalu berhasil dijalankan, 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. Demikianlah pembahasan singkat mengenai polimorfisme dalam pemrograman berbasis objek PHP. Semoga bermanfaat.

You may also like...