SlideShare a Scribd company logo
1 of 15
OOP PHP
Konsep Overload
LUKMAN FAKIH LIDIMILAH
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS IBRAHIMY
Konsep Overloading ala PHP
PHP tidak mendukung overloading!!!
“Dalam benak programmer Java, C++, C#
dan sejenisnya”
Konsep Overloading ala PHP
Overloading adalah kemampuan untuk mendeklarasikan
beberapa method dengan nama yang sama tetapi masing-
masing memiliki jumlah dan tipe argumen yang berbeda.
PHP tidak membolehkan hal tersebut!! Lalu mengapa di
dokumentasi PHP terdapat sebuah halaman yang
menjelaskan tentang overloading di
PHP: http://php.net/manual/en/language.oop5.overloadin
g.php
Konsep Overloading ala PHP
yang disebut overloading oleh PHP adalah sesuatu yang mirip seperti methodMissing() di Groovy
yang sering dipakai untuk keperluan meta programming. PHP menyediakan magic method seperti
_ _set(), _ _get(), _ _isset(), _ _unset(), _ _call() dan _ _callStatic(). Mereka akan dipanggil bila
programmer mengakses property atau method yang belum pernah dideklarasikan sebelumnya.
Tentu saja overloading dengan cara seperti ini tentunya jauh lebih repot dibandingkan dengan
Java dan C++, terutama bila yang perlu di-overload hanya beberapa method. Sebagai contoh,
saya dapat melakukan ini di Java:
Konsep Overloading ala PHP
public class Pelanggan {
public void pesan(Item item) {}
public void pesan(List<Item> items) {}
public void pesan(Item item, Integer jumlah, BigDecimal harga) {}
}
menggunakan kode program seperti berikut
ini:
Properti Overloading
Dalam PHP ada empat properti overloading, yaitu:
◦ public void __set ( string $name , mixed $value )
◦ public mixed __get ( string $name )
◦ public bool __isset ( string $name )
◦ public void __unset ( string $name )
Keterangan :
◦ __set() dijalankan ketika menulis data pada properti yang tidak dapat diakses.
◦ __get() digunakan untuk membaca data dari properti yang tidak dapat diakses.
◦ __isset() dipicu dengan memanggil method isset() atau empty() pada properti yang tidak dapat diakses.
◦ __unset() dipanggil saat method unset() digunakan pada properti yang tidak dapat diakses.
Properti Overloading
Argumen $name adalah nama dari properti yang sedang diakses dan $value pada method
__set() merupakannilai yang diberikan pada properti dengan nama $name.
Properti overloading hanya bekerja dalam konteks objek . Magic method ini tidak akan dipicu
dalam konteks statis . Oleh karena itu method ini tidak boleh dinyatakan sebagai static . Pada
PHP 5.3.0 , peringatan akan muncul jika salah satu magic method overloading dinyatakan
sebagai static .
Method Overloading
Dalam PHP ada dua method ovrloading, yaitu :
◦ public mixed __call ( string $name , array $arguments )
◦ public static mixed __callStatic ( string $name , array $arguments )
Keterangan :
◦ __call() dipicu ketika memanggil method yang tidak dapat diakses didalam object
◦ __callStatic() dipicu ketika memanggil method yang tidak dapat diakses didalam static
Argumen $name adalah nama dari method yang dipanggil dan $arguments merupakan
enumerasi array yang berisi parameter yang dilewatkan pada method $name.
Overriding
Override merupakan cara untuk mendefinisikan ulang Method yang sudah di buat sebelumnya
dalam Class.
Override dilakukan ketika suatu Class dilakukan Inheritance, yang berbeda hanya nilai atributnya
saja.
Contoh
Final Method dan Final Class
Dalam membuat desain class, kita sering menurunkan sebuah class kepada class lain, atau yang
dikenal dengan inheritance/pewarisan. Pemrograman objek juga membolehkan kita untuk
menimpa’ method milik parent class dengan method milik child class. Proses menimpa
method atau dikenal dengan istilah overridden method ini dilakukan dengan cara membuat nama
method yang sama dengan nama method yang ada di dalam parent class.
Final Method dan Final Class
Bagaimana jika kita menginginkan sebuah mekanisme untuk melarang class anak untuk
membuat method yang akan menimpa method class induk? Atau bahkan melarang sebuah class
untuk diturunkan sama sekali? Untuk keperluan ini, pemrograman objek PHP menggunakan
keyword: final
Dengan menambahkan keyword final kepada sebuah method, maka method tersebut tidak dapat
didefenisikan ulang di dalam child class. Dan jika sebuah class ditambahkan keyword final,
maka class tersebut tidak bisa diturunkan sama sekali. Inilah pengertian dari final
method dan final class.
Final Property
PHP tidak mendukung terhadap keyword final yang digunakan untuk property / member
Contoh Final Class dan Method

More Related Content

Similar to Konsep Overloading (1).pptx

Modul pratikum pbo - Polimorphism
Modul pratikum pbo - PolimorphismModul pratikum pbo - Polimorphism
Modul pratikum pbo - Polimorphismrahmantoyuri
 
Laporan PBO Pratikum 3
Laporan PBO Pratikum 3Laporan PBO Pratikum 3
Laporan PBO Pratikum 3rahmi wahyuni
 
pbo 3 ervan
pbo 3 ervanpbo 3 ervan
pbo 3 ervanaris
 
Rekweb5 hilmi afifi-1512510213
Rekweb5 hilmi afifi-1512510213Rekweb5 hilmi afifi-1512510213
Rekweb5 hilmi afifi-1512510213helmy afifi
 
Pemograman berorientasi objek
Pemograman berorientasi objekPemograman berorientasi objek
Pemograman berorientasi objekNamira Namirah
 
PBO ( Pemograman berbasis Objek ).pptx
PBO ( Pemograman berbasis Objek ).pptxPBO ( Pemograman berbasis Objek ).pptx
PBO ( Pemograman berbasis Objek ).pptxHeriPurwanto74
 
Laporan PBO pratikum 2
Laporan PBO pratikum 2Laporan PBO pratikum 2
Laporan PBO pratikum 2rahmi wahyuni
 
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)Melina Krisnawati
 
PROGRESS - Belajar PHP #1
PROGRESS - Belajar PHP #1PROGRESS - Belajar PHP #1
PROGRESS - Belajar PHP #1UKM PROGRESS
 
Laporan pratikum iv web
Laporan pratikum iv webLaporan pratikum iv web
Laporan pratikum iv webrahmi wahyuni
 
Rizki christoper 1211510480 tugas rekweb 5
Rizki christoper 1211510480 tugas rekweb 5Rizki christoper 1211510480 tugas rekweb 5
Rizki christoper 1211510480 tugas rekweb 5Rizki Christoper
 
Seminggu Belajar Laravel Sample
Seminggu Belajar Laravel SampleSeminggu Belajar Laravel Sample
Seminggu Belajar Laravel Sampleadnanpurnaya
 
Object Oriented Programming Concept
Object Oriented Programming Concept Object Oriented Programming Concept
Object Oriented Programming Concept EsterLumba
 
Modul pratikum pbo - ENCAPSULATION
Modul pratikum pbo - ENCAPSULATIONModul pratikum pbo - ENCAPSULATION
Modul pratikum pbo - ENCAPSULATIONrahmantoyuri
 

Similar to Konsep Overloading (1).pptx (20)

Modul pratikum pbo - Polimorphism
Modul pratikum pbo - PolimorphismModul pratikum pbo - Polimorphism
Modul pratikum pbo - Polimorphism
 
Rekweb 5
Rekweb 5Rekweb 5
Rekweb 5
 
Laporan PBO Pratikum 3
Laporan PBO Pratikum 3Laporan PBO Pratikum 3
Laporan PBO Pratikum 3
 
pbo 3 ervan
pbo 3 ervanpbo 3 ervan
pbo 3 ervan
 
Rekweb5 hilmi afifi-1512510213
Rekweb5 hilmi afifi-1512510213Rekweb5 hilmi afifi-1512510213
Rekweb5 hilmi afifi-1512510213
 
Pemograman berorientasi objek
Pemograman berorientasi objekPemograman berorientasi objek
Pemograman berorientasi objek
 
PBO ( Pemograman berbasis Objek ).pptx
PBO ( Pemograman berbasis Objek ).pptxPBO ( Pemograman berbasis Objek ).pptx
PBO ( Pemograman berbasis Objek ).pptx
 
Laporan PBO pratikum 2
Laporan PBO pratikum 2Laporan PBO pratikum 2
Laporan PBO pratikum 2
 
Pbo
PboPbo
Pbo
 
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
 
PROGRESS - Belajar PHP #1
PROGRESS - Belajar PHP #1PROGRESS - Belajar PHP #1
PROGRESS - Belajar PHP #1
 
17419 6 override
17419 6 override17419 6 override
17419 6 override
 
Laporan pratikum iv web
Laporan pratikum iv webLaporan pratikum iv web
Laporan pratikum iv web
 
Rizki christoper 1211510480 tugas rekweb 5
Rizki christoper 1211510480 tugas rekweb 5Rizki christoper 1211510480 tugas rekweb 5
Rizki christoper 1211510480 tugas rekweb 5
 
Seminggu Belajar Laravel Sample
Seminggu Belajar Laravel SampleSeminggu Belajar Laravel Sample
Seminggu Belajar Laravel Sample
 
Object Oriented Programming Concept
Object Oriented Programming Concept Object Oriented Programming Concept
Object Oriented Programming Concept
 
365 4 inheritance
365 4 inheritance365 4 inheritance
365 4 inheritance
 
Overridung polymorphism
Overridung polymorphismOverridung polymorphism
Overridung polymorphism
 
Modul pratikum pbo - ENCAPSULATION
Modul pratikum pbo - ENCAPSULATIONModul pratikum pbo - ENCAPSULATION
Modul pratikum pbo - ENCAPSULATION
 
Tugas 5
Tugas 5Tugas 5
Tugas 5
 

Konsep Overloading (1).pptx

  • 1. OOP PHP Konsep Overload LUKMAN FAKIH LIDIMILAH FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS IBRAHIMY
  • 2. Konsep Overloading ala PHP PHP tidak mendukung overloading!!! “Dalam benak programmer Java, C++, C# dan sejenisnya”
  • 3. Konsep Overloading ala PHP Overloading adalah kemampuan untuk mendeklarasikan beberapa method dengan nama yang sama tetapi masing- masing memiliki jumlah dan tipe argumen yang berbeda. PHP tidak membolehkan hal tersebut!! Lalu mengapa di dokumentasi PHP terdapat sebuah halaman yang menjelaskan tentang overloading di PHP: http://php.net/manual/en/language.oop5.overloadin g.php
  • 4. Konsep Overloading ala PHP yang disebut overloading oleh PHP adalah sesuatu yang mirip seperti methodMissing() di Groovy yang sering dipakai untuk keperluan meta programming. PHP menyediakan magic method seperti _ _set(), _ _get(), _ _isset(), _ _unset(), _ _call() dan _ _callStatic(). Mereka akan dipanggil bila programmer mengakses property atau method yang belum pernah dideklarasikan sebelumnya. Tentu saja overloading dengan cara seperti ini tentunya jauh lebih repot dibandingkan dengan Java dan C++, terutama bila yang perlu di-overload hanya beberapa method. Sebagai contoh, saya dapat melakukan ini di Java:
  • 5. Konsep Overloading ala PHP public class Pelanggan { public void pesan(Item item) {} public void pesan(List<Item> items) {} public void pesan(Item item, Integer jumlah, BigDecimal harga) {} }
  • 6. menggunakan kode program seperti berikut ini:
  • 7. Properti Overloading Dalam PHP ada empat properti overloading, yaitu: ◦ public void __set ( string $name , mixed $value ) ◦ public mixed __get ( string $name ) ◦ public bool __isset ( string $name ) ◦ public void __unset ( string $name ) Keterangan : ◦ __set() dijalankan ketika menulis data pada properti yang tidak dapat diakses. ◦ __get() digunakan untuk membaca data dari properti yang tidak dapat diakses. ◦ __isset() dipicu dengan memanggil method isset() atau empty() pada properti yang tidak dapat diakses. ◦ __unset() dipanggil saat method unset() digunakan pada properti yang tidak dapat diakses.
  • 8. Properti Overloading Argumen $name adalah nama dari properti yang sedang diakses dan $value pada method __set() merupakannilai yang diberikan pada properti dengan nama $name. Properti overloading hanya bekerja dalam konteks objek . Magic method ini tidak akan dipicu dalam konteks statis . Oleh karena itu method ini tidak boleh dinyatakan sebagai static . Pada PHP 5.3.0 , peringatan akan muncul jika salah satu magic method overloading dinyatakan sebagai static .
  • 9. Method Overloading Dalam PHP ada dua method ovrloading, yaitu : ◦ public mixed __call ( string $name , array $arguments ) ◦ public static mixed __callStatic ( string $name , array $arguments ) Keterangan : ◦ __call() dipicu ketika memanggil method yang tidak dapat diakses didalam object ◦ __callStatic() dipicu ketika memanggil method yang tidak dapat diakses didalam static Argumen $name adalah nama dari method yang dipanggil dan $arguments merupakan enumerasi array yang berisi parameter yang dilewatkan pada method $name.
  • 10. Overriding Override merupakan cara untuk mendefinisikan ulang Method yang sudah di buat sebelumnya dalam Class. Override dilakukan ketika suatu Class dilakukan Inheritance, yang berbeda hanya nilai atributnya saja.
  • 12. Final Method dan Final Class Dalam membuat desain class, kita sering menurunkan sebuah class kepada class lain, atau yang dikenal dengan inheritance/pewarisan. Pemrograman objek juga membolehkan kita untuk menimpa’ method milik parent class dengan method milik child class. Proses menimpa method atau dikenal dengan istilah overridden method ini dilakukan dengan cara membuat nama method yang sama dengan nama method yang ada di dalam parent class.
  • 13. Final Method dan Final Class Bagaimana jika kita menginginkan sebuah mekanisme untuk melarang class anak untuk membuat method yang akan menimpa method class induk? Atau bahkan melarang sebuah class untuk diturunkan sama sekali? Untuk keperluan ini, pemrograman objek PHP menggunakan keyword: final Dengan menambahkan keyword final kepada sebuah method, maka method tersebut tidak dapat didefenisikan ulang di dalam child class. Dan jika sebuah class ditambahkan keyword final, maka class tersebut tidak bisa diturunkan sama sekali. Inilah pengertian dari final method dan final class.
  • 14. Final Property PHP tidak mendukung terhadap keyword final yang digunakan untuk property / member
  • 15. Contoh Final Class dan Method