Penggunaan fungsi FUINAL pada PHP

You are here: Home / PHP / Tutorial PHP OOP Part 19 : Final Class dan Final Method

Penggunaan fungsi FUINAL pada PHP

Pada PHP 5 diperkenalkan penggunaan keyword “final” pada class dan method. Final class adalah class yang tidak bisa diwarisi (inheritance) oleh class lain. Dengan kata lain class ini merupakan end-class yang tidak bisa diturunkan kepada class lain. Dan jika kita mencoba membuat class dengan inherit kepada final class akan muncul error.

Selain final class, dikenal juga final method, artinya kita tidak bisa menimpa sebuah final method yang ada pada class induk melalui class anak. Dengan begitu kita tidak bisa mendefinisikan ulang final class yang ada pada class induk di class anak. Jika hal ini dilakukan juga akan muncul error.

Jika ada final class dan final method, lalu bagaimana dengan final properti?

Jawabannya adalah sebuah properti tidak bisa dideklarasikan sebagai final, hanya class dan method saja yang bisa.

Membuat Final Class

Untuk membuat final class kita cukup menaruh keyword “final” sebelum keyword class.

final class nama_class {
//... isi class
}

Contoh Penggunaan Final Class

Sebuah final class tidak bisa diwarisi (inherit) oleh class lain. Jika ini dilakukan akan muncul Fatal error: Class … may not inherit from final class.

Untuk lebih jelas perhatikan contoh berikut ini :

 <?php  
final class Induk {
public function Test() {
return "Display Test Pada Induk";
}
}

class Anak extends Induk {
public function Test() {
return "Display Test Pada Anak";
}
}

$object = new Induk;
echo $object->Test();
?>

Jika program diatas dijalankan maka akan muncul error :

Fatal error: Class Anak may not inherit from final class (Induk) in /home/sabrina/www/php/index.php on line 12

Membuat FInal Method

Untuk membuat final method kita cukup menaruh keyword “final” sebelum keyword public function.

final public function nama_method(){
//... isi method
}

Contoh Penggunaan Final Method

Sebagaimana dengan final class, sebuah final method pada class induk juga tidak bisa ditimpa pada class anak. Jika ini dilakukan akan muncul Fatal error: Cannot override final method Induk::namaMethod().

Untuk lebih jelas perhatikan contoh berikut ini :

 <?php  
class Induk {
final public function Test() {
return "Display Test Pada Induk";
}
}
class Anak extends Induk {
public function Test() {
return "Display Test Pada Anak";
}
}
$object = new Anak;
echo $object->Test();
?>

Jika program diatas dijalankan maka akan muncul error :

Fatal error: Cannot override final method Induk::Test() in /home/sabrina/www/php/index.php on line 12

Referensi :

  • http://php.net/manual/en/language.oop5.final.php

Halo teman-teman pada tutorial kali ini saya akan membahas tentang Cara Penggunaan Fungsi Final dan Abstract pada OOP, Fungsi Final dan Abstract pada OOP  yaitu untuk membuat sebuah kerangka kerja yang lebih rapi dan terstruktur, nah yang pertama kita akan bahas terlebih dahulu yaitu fungsi dari Final.

Dalam membuat sebuah class, kita sering menurunkan sebuah class kepada class lain, atau yang biasa kita kenal dengan inheritance/pewarisan. Di dalam pemrograman object kita juga diperbolehkan untuk menimpa method milik parent class dan method milik child class, dan proses tersebut disebut sebagai overridden method.  overridden method ini dapat dilakukan dengan cara membuat sebuah nama method yang sama dengan mana method yang ada di dalam parent class.

Nah jika kita menggunakan fungsi Final, tidak dibolehkan atau melarang sebuah class untuk dapat diturunkan, dan jika kita memberikan sebuah keyword final pada sebuah class maka class tersebut akan terjadi error, untuk contoh scriptnya teman-teman bisa simpan script dibawah ini dengan nama final.php

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

<?php

// parent

finalclassMobil{

public$merk='mini bus';

protected$harga=150000000000;

private$nama='Avanza';

}

// child

classHargaextendsMobil{

publicfunctioncetak_harga(){

//akses property

return$this->harga;

}

publicfunctioncetak_nama(){

return$this->nama;

}

}

classSedanextendsMobil{}

classBusextendsMobil{}

// object

$tampil=newHarga;

echo $tampil->merk;

echo'<br>';

echo$tampil->cetak_harga();

echo'<hr>';

$cetak=new Sedan;

echo$cetak->merk;

Jika kita jalankan pada browser maka akan terlihat sebuah pesan error seperti dibawah ini, yang melarang kita untuk menurunkan class Mobil yang terdapat pada script diatas, karana telah di set sebagai final class

Berikutnya kita akan bahas tentang Abstract Class dan Abstract Method, merupakan sebuah class yang dapat di-instansiasi atau yang dapat di gunakan dan dapat dibuat menjadi sebuah object yang berperan sebagai kerangka dasar bagi class turunan, di dalam abstract class kita harus wajib memiliki class abstract method.

Abstract method yaitu merupakan sebuah method dasar yang harus di implementasikan ulang di dalam class anak (child class). Abstract class digunakan dalam inheritance/pewarisan, yang berfungsi untuk mewajibkan implementasi method yang sama dari semua method yang akan diturunkan dari abstract class, dan abstract class digunakan untuk membuat sebuah struktur logika penurunan didalam sebuah pemrograman berbasis object.

Berikut contoh dari abstract class

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

<?php

// parent

abstractclassHandpone{

public$merk='Sumsung';

protected$harga=5000000;

private$nama='S7';

abstractpublicfunctionhallo();

}

// child

classTablet extendsHandpone{

publicfunctioncetak_harga(){

//akses propertydari class parend

return$this->harga;

}

publicfunctioncetak_nama(){

return$this->nama;

}

// harus di deklarasikan ulang, jika tidak akan terjadi error

publicfunction hallo(){

}

}

classhpextendsHandpone{

// deklarasi

publicfunctionhallo(){

}

}

classSmartphoneextendsHandpone{

//deklarasi

publicfunctionhallo(){

}

}

// object tablet

$tampil= newTablet;

echo$tampil->merk;

echo'<br>';

echo$tampil->cetak_harga();

echo'<hr>';

$cetak=newhp;

echo$cetak->merk;

Pada contoh study kasus diatas terdapat sebuah abstract class Handphone maka kita wajib menurunkanya kepada class anak, jika kita telah membuat abstract method kita juga wajib membuat nama method yang sama pada anaknya (child)

Jika kita jalankan pada browser maka akan terlihat hasilnya seperti dibawah ini

Bagai mana teman cukup mudah bukan Cara Penggunaan Fungsi Final dan Abstract pada OOP nya, sekian dulu tutorial saya kali ini tentang Cara Penggunaan Fungsi Final dan Abstract pada OOP, Semoga bermanfaat.

Terimakasih.

Kapan inheritance digunakan?

Konsep inheritance digunakan untuk memanfaatkan fitur 'code reuse' untuk menghindari duplikasi kode program. Konsep inheritance membuat sebuah struktur atau 'hierarchy' class dalam kode program. Class yang akan 'diturunkan' bisa disebut sebagai class induk (parent class), super class, atau base class.

Apa itu inheritance pada PHP?

PHP – Apa itu Inheritance? Pewarisan atau Inheritance dalam OOP = Ketika kelas diturunkan dari kelas lain. Kelas anak akan mewarisi semua properti dan metode publik dan dilindungi dari kelas induk. Selain itu, ia dapat memiliki properti dan metodenya sendiri.

Apa tujuan dari inheritance?

Dalam konsep OOP, inheritance adalah suatu kemampuan membentuk class baru yang memiliki fungsi turunan dan mirip dengan fungsi yang sudah ada sebelumnya. Dengan kata lain, inheritance menurunkan atau mewariskan metode yang dimilikinya kepada class lain.

Apa itu extend di PHP?

Definisi dan Penggunaan Kata kunci extends digunakan untuk mendapatkan kelas dari kelas lain. Ini disebut warisan. Kelas turunan memiliki semua properti publik dan terlindungi dari kelas asalnya.