Pengertian Dan Macam Macam Class Dan Method Dalam OOP

                



                  " Pengertian Dan Macam Macam Clas Dan Method Dalam OOP PHP"


1. Trait (re-use).

     Trait Adalah fitur baru di php 5.4,  Dengan trait memunkinkan kita untuk  menggunakan ulang sebuah kode (re-use). Dalam bahasa indonesia trait berarti sifat. Pengertian Trait adalah Sebuah mekanisme pernggunaan ulang kode dalam sebuah class. Trait bereda dengan Pewarisan class (abstract calss dan  object interface ). Sebuah trait lebih mirip sebagai penggunaan kode bersama daripada penurun class, Kerangka class abstract  ataupun implementasi sebauh interface. pondokcode.blogspot.com

Cara Pemakaian Trait. 

 Dalam Membuat Trait Kita Menggunakan keyword "Trait".  Didalam Trait kita bisa memasukan satu set Method dengan lengkap dan isinya, Juga bisa kerangka Method seperti Classabstrac,  Selain itu kita juga bisa menaruh Static dan Property dalam trait. Untuk Lebih jelas lihat contoh di bawah sini.

Contoh Penulisan Trait :


Cara Pemakaian Trait.

Untuk membuat trait kita menggunakan keyword "use"  didalam class. Kita bisa menggunakan trait dengan bebas disemua class.
Contoh Script :


2. Overloading.


        
Overloading di php menyediakan sarana untuk secara dinamis "menciptakan" property dan method. Entitas dinamis ini diproses melalui "magic method" yang dapat menciptakan berbagai tindakan didalam class.


Metode overloading dipanggil saat berinteraksi dengan properti atau method yang belum dinyatakan atau tidak terlihat dalam ruang lingkup saat ini. Sisa bagian ini akan menggunakan istilah " properti tidak dapat diakses " dan " method tidak dapat diakses " untuk merujuk pada kombinasi deklarasi dan visibilitas .

NOTE : Semua Method Overloading Harus Didefinisikan Sebagai Public . 

Interpretasi PHP dari " overloading " berbeda dari kebanyakan pemrograman berorientasi objek lainnya seperti java. Overloading pada umumnya memberikan kemampuan untuk memiliki beberapa method dengan nama yang sama tetapi jumlah dan tipe argumen yang berbeda.
Properti Overloading :
Dalam PHP ada empat properti Overloading Yaitu :
  1. public void__set (string $name, mixed $value).
  2. public mixed__get (string $name).
  3. public bool__isset (string $name).
  4. 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.

Argumen $name adalah nama dari properti yang sedang di akses dan $value pada method __set() merupakan nilai yang diberikan pada properti dengan nama $name.
pondokcode.blogspot.com

Properti overloading hanya bekerja dalam konteks objek . Magic method ini tidak akan dipicu dalam konteks statis . Oleh karena itu methog ini tidak boleh dinyatakan sebagai static . Pada PHP 5.3.0 , peringatan akan muncul jika salah satu magic method overloading dinyatakan sebagai static .

Contoh penggunaan properti overloading dari situs php.net :

Jika Progaram Dijalankan Maka Akan Keluar Output :


 

Method Overloading :
Dalam PHP Ada 2 Method Overloading, Yaitu :
  1. public mixed __call()  ( string $name. array $arguments).
  2. public static mixed __callStatic (string $name, array $arguments).
Keterngan :
  1. __call :  dipicu ketika memanggil method yang tidak dapat diakses didalam object.
  2. __callStatic  :  dipicu ketika memanggil method yang tidak dapat diakses didalam static.
Argumen  $name  adalah nama dari method yang dipanggil dan $argument merupakan enumerasi array yang berisi parameter yang dilewatkan pada method $name.
contoh penggunaan method overloading :


3. Anonymous .
  • Anonymous Function.
Anonymous function atau dikenal juga dengan closure adalah sebuah function yang tidak memiliki nama secara spesifik. Dia hanya memiliki body saja seperti callback function pada javascript. Untuk lebih jelas, perhatikan contoh dibawah ini:
Contoh :

Kita juga bisa menggunakan anonymous function sebagai callback seperti pada javascript.
Berikut Contohnya :

Pada contoh diatas, kita menggunakan array_map³ untuk memangkatkan value yang dari $arr.
Kita juga dapat memasukkan variabel dari luar kedalam anonymous function agar dapat dipanggil didalam anonymous function sebagai berikut:
  • Anonymous Class.
Anonymous Class Pertama kali diperkenalkan di PHP versi -- 7.0. (Untuk Melihat Versi Berapakah PHP Kamu Bisa lihat Lewat Terminal(Untuk Linux) Dan CMD (Untuk Windows) Dengan Menulis php -- version) Fitur ini adalah fitur terbaru sehingga belum diimplementasikan. Tujuan dari anonymous class adalah untuk mempermudah dalam pembuatan object yang simpel. Perhatikan Contoh Dibawah Ini :
Contoh :

Pada code diatas, kita membuat class Logger yang nantinya akan dimasukkan kedalam class Util. Pada percobaan pertama, kita mencoba memasukkan object Logger kedalam object Util. Sedangkan pada percobaan kedua, kita menggunakan anonymous class untuk menggantikan object Logger pada percobaan pertama.

Tidak hanya itu saja, kita juga bisa memasukkan constructor parameter serta membuat property pada anonymous class. Perhatikan contoh berikut:
Contoh :


𛲡𛲣


4. Object Iteration.

PHP 5 menyediakan cara untuk objek yang akan didefinisikan sehingga memungkinkan untuk iterate melalui daftar item, dengan, misalnya pernyataan foreach. Secara default, semua properti yang terlihat akan digunakan untuk iterasi.

Contoh :


5. Magic Method.

 Magic Method pada PHP adalah fungsi-fungsi khusus yang dimiliki PHP secara build in (dari sononya udah ada), dan magic method ini berkaitan dengan PBO (Pemrograman Berbasis Object) atau OOP (Oriented Object Programming), ada beberapa jenis magic method yang dimiliki oleh PHP, sudah pasti fungsinya juga beragam, misalnya Seperti :


 __construct() , __destruct() , __call() , __callStatic() ,__get() , __set() , __isset() , __unset() , __sleep() , __wakeup(),__toString(), __invoke(), __set_state(), __colne()  dan__debugInfo() ,.


             Lebih Jelasnya Lagi Magic method adalah reserves method yang akan dipanggil secara otomatis pada kondisi tertentu. Magic method di PHP menggunakan prefix __ (double underscore) di ikuti nama methodnya. sebenarnya banyak sekali magic method dalam php contohnya jika anda pernah mendengar __consturct dan __destruct , constructor dan destructor adalah salah satu dari magic method. setelah kita tau apa itu magic method sekarang kita akan mencobanya dengan menggunakan magic method __set dan __get.


 Method __set akan dipanggil otomatis ketika kita melakukan assignment terhadap suatu property yang tidak dapat diakses. Semisal kita akan memasukkan nilai ke private property atau protected property.
Sedangkan method __get akan dipanggil ketika kita memanggil suatu property yang tidak dapat diakses (kebalikan dari __set).
Contoh:

biasanya saat kita mengisi sebuah property yang mempunyai visibilitas private langsung kita akan menemukan sebuah error, tetapi kalu kita sudah menggunakan magic method __set maka tidak akan terjadi error dan akan tetap jalan .

6. Final Keyword.

Final Keyword Hanya digunakan di class Dan method, tidak berguna untuk property. Sebuah Class yang tidak memeliki subclass disebut final class.  Sebuah Method yang tidak bisa diganti disebut Final Method. Dan Tujuan utama dari final keyword adalah untuk melindungi class dan method untuk memperluas karena untuk beberapa alasan keamanan.


NOTE : Jika Kita Menggunakan Setiap class Sebagai Abstrack, Maka Itu Bukan Sebuah Final Keyword.


7. Comparing Object.


Bila menggunakan  Comparing Object (==), variabel objek dibandingkan dengan cara yang sederhana, yaitu: Dua contoh objek yang sama jika mereka memiliki atribut dan nilai-nilai yang sama (nilai dibandingkan dengan ==), dan contoh dari kelas yang sama .

Bila menggunakan identity operator  (===), variabel objek identik jika dan hanya jika mereka mengacu pada contoh yang sama dari kelas yang sama.

contoh :




8. Type Hinting.

   Type Hinting Adalah sebuah cara untuk membatasi penggunaan parameter dalam sebuah method didalam classDengan type hinting kita dapat menentukan secara spesifik tipe data yang diterima oleh sebuah method. Type hinting hanya digunakan untuk mambatasi parameter berupa object, array dan interface. Type hinting tidak bisa dipakai untuk membatasi parameter dengan tipe integer, string, resource dan trait

Cara Penggunaan Type Hinting :

Jika Programnya Dijalankan Maka Akan Menghasilkan Output :

 Penjalasan Program :
      Pada Contoh Diatas Terdapat Penggunaan Type Hint, Yaitu :
  1. Type hint dengan tipe Object pada method makanRumput() menggunakan object Rumput.
  2. Type hint  dengan tipe Array pada method beliEnergi() yang mengambil nilai dari array yang didefinisikan oleh variabel $arrayName.
  3. Type hint dengan tipe Interface pada method bonusEnergi() yang mengambil konstanta bonus dari interface bonusEnergi.

Kesimpulanya Adalah Dengan menggunakan type hinting, kita bisa membatasi nilai-nilai yang bisa masuk ke method yang kita buat. Kita juga memberikan akses sementara untuk penggunaan kelas di dalam kelas-kelas yang lain.


9. Object And References.

Salah satu kunci-poin dari PHP 5 OOP yang sering disebutkan adalah bahwa "objek tersebut diteruskan oleh referensi secara default". Hal ini tidak sepenuhnya benar. Bagian ini rectifies bahwa pemikiran umum menggunakan beberapa contoh.


Sebuah referensi PHP adalah alias, yang memungkinkan dua variabel yang berbeda untuk menulis dengan nilai yang sama. Pada PHP 5, variabel objek tidak mengandung obyek itu sendiri sebagai nilai lagi. Ini hanya berisi sebuah identifier objek yang memungkinkan accesor objek untuk menemukan objek yang sebenarnya. Ketika suatu objek yang dikirim oleh argumen, dikembalikan atau ditugaskan ke variabel lain, variabel yang berbeda tidak alias: mereka memegang salinan identifier, yang menunjuk ke objek yang sama.

contoh :


Sumber : php manual.


10. Object Serialize. 

Serializing objects - objects in sessions 

serialize () mengembalikan sebuah string yang berisi representasi byte-stream dari setiap nilai yang dapat disimpan dalam PHP. unserialize () dapat menggunakan kata ini untuk menciptakan nilai-nilai variabel asli. Menggunakan serialize untuk menyimpan sebuah objek akan menyimpan semua variabel dalam suatu objek. Metode dalam objek tidak akan disimpan, hanya nama kelas.


Agar dapat unserialize () objek, kelas objek yang perlu didefinisikan. Artinya, jika Anda memiliki sebuah objek dari kelas A dan serialize ini, Anda akan mendapatkan sebuah string yang mengacu pada kelas A dan berisi semua nilai-nilai variabel yang terkandung di dalamnya. Jika Anda ingin dapat unserialize ini di file lain, sebuah objek dari kelas A, definisi kelas A harus hadir dalam file yang pertama. Hal ini dapat dilakukan misalnya dengan menyimpan definisi kelas kelas A di include file dan termasuk file ini atau memanfaatkan fungsi spl_autoload_register ().

contoh :



11. Late Static Binding.

Pada PHP 5.3.0, PHP mengimplementasikan fitur yang disebut binding akhir statis yang dapat digunakan untuk referensi yang disebut kelas dalam konteks warisan statis.

Lebih tepatnya, akhir binding statis bekerja dengan menyimpan kelas bernama dalam terakhir "non-call forwarding". Dalam kasus metode statis panggilan, ini adalah kelas eksplisit bernama (biasanya satu di kiri :: operator); dalam kasus metode statis panggilan non, itu adalah kelas objek. Sebuah "call forwarding" adalah salah satu statis yang diperkenalkan oleh self ::, parent ::, static ::, atau, jika naik dalam hirarki class, forward_static_call (). Fungsi get_called_class () dapat digunakan untuk mengambil string dengan nama yang disebut kelas dan static :: memperkenalkan ruang lingkup.


Fitur ini bernama "Late Static Binding" dengan perspektif internal dalam pikiran. "Late Binding" berasal dari fakta bahwa static :: tidak akan diselesaikan menggunakan kelas mana metode ini didefinisikan tetapi akan lebih dihitung dengan menggunakan informasi runtime. Itu juga disebut "statis mengikat" karena dapat digunakan untuk (tapi tidak terbatas pada) metode statis panggilan.

Contoh :



Late static binding memperkenalkan cara baru dalam penggunaan keyword static sekaligus mengatasi keterbatasan dari penggunaan sebuah nilai static. Misalnya saat kita menggunakan static, kita harus merepresentasikan nama class dimana static itu pertama kali dibuat. Dengan ini maka nilai static akan terikat (bind) pada runtime class.

12. Object Cloning.

Object Cloning adalah membuat object baru yang sama dengan object lama. Sekilas ini mirip dengan proses copy namun berbeda dalam penerapannya. Seperti kita ketahui bahwa sebuah object bukanlan sebuah variabel dengan value tetapi hanya sebuah reference yang mengacu pada properti dan method di dalam class.

Membuat Cloning Object.
Dengan meng-kloning sebuah object kita akan mempunyai object baru yang sama dengan object lama namun mempunyai ruang serdiri dalam memori. Jadi ketika properti pada object lama diganti tidak akan mempengaruhi properti pada object baru hasil kloningan.


Untuk membuat object kita menggunakan keyword "clone".

Contoh :



Jika Script Diatas Dijalankan, Maka Akan Menghasilkan Output :

Cara Pengunaan __clone() pada proses cloning

PHP memberikan sebuah magic method bernama __clone untuk menangani hal-hal yang berkaitan dengan proses cloning. Method ini akan otomatis diakses setelah proses cloning object selesai.

Contoh penggunaan method __clone dengan memodifikasi contoh program diatas :


Tampak hasil perhitungan method luas() pada rumus1 dan rumus2 berbeda. Method luas() pada rumus1 menghasilkan 42 sedangkan method luas() pada rumus2 menghasilkan 49.

Hal ini karena setelah proses cloning rumus1 menjadi rumus2 program otomatis menjalankan method __clone yang berisi perintah menambah 1 pada properti panjang, yaitu : $this->panjang++.





 Editor : 👳 Farhan Mustaqiem


SHARE

Farhan Mustaqiem

Hi. I’m Developer of Blog Magic. I’m Creative PHP, Web Developer, UI/UX Developer, Interaction Developer, Industrial Developer, Web Developer, Business Enthusiast, StartUp Enthusiast, Speaker, Writer and Photographer. Inspired to make things looks better.

  • Image
  • Image
  • Image
  • Image
  • Image
    Blogger Comment
    Facebook Comment

0 komentar: