Langsung ke konten utama

Pemrograman Berorientasi Object - "Magic" method di PHP

    Pada pemrograman berorientasi object di PHP, ada beberapa function / method dengan nama khusus yang disediakan oleh PHP yang ditandai dengan dua garis bawah(__) yang akan memicu / memanggil action tertentu. Function tersebut seperti __construct(), __destruct(), __call() dll.

__construct()

Function __construct() akan dipanggil ketika suatu object di inisialisasi atau dibentuk. Contoh :

class Bapak{
    
    private $warna_rambut = 'hitam';
    private $warna_kulit  = 'sawo matang';
    public function __construct(){
       echo "object dari class Bapak dibuat";
    }

    public function makan(){
       echo 'makan dengan tangan kanan';
    }

}

ketika membuat object dari class Bapak seperti berikut,

$bapak = new Bapak();
maka secara otomatis function __construct() dikalankan dengan contoh di atas mengeluarkan pesan
 "object dari class Bapak dibuat".

__destruct()

 __destruct() merupakan kebalikan dari function __construct(). __destruct() dijalankan ketika kita menutup object / membuang object dari class yang sudah tidak digunakan. Ketika kita membuat sebuah object, kita sedang menggunakan memori untuk menyimpan object tersebut jadi ketika object sudah tidak terpakai, tidak serta merta memory menghapus object tersebut. Jadi dengan menggunakan __destruct() kita bisa melakukan sesuatu ketika object tersebut tidak terpakai seperti menulis log, menghapus file yang sudah tidak digunakan dll. Contoh penggunaan :

class Bapak{
    
    private $warna_rambut = 'hitam';
    private $warna_kulit  = 'sawo matang';
 
    public function __construct(){
       echo "object dari class Bapak dibuat";
       $this->logfile_handle = fopen('/tmp/log.txt', 'w');
    }

    public function __destruct(){
       fclose($this->logfile_handle);
    } 

    public function makan(){
       echo 'makan dengan tangan kanan';
    }

}
pada contoh di atas, ketika object dibuat maka akan menjalankan function __construct() yang melakukan operasi baca file dan ketika object dihancurkan atau tidak digunakan, maka function __destruct() dijalankan untuk menutup file tersebut.

__toString()

Function __toString() berguna ketika kita ingin memanggil sebuah object dan mengeluarkan sesuatu string lewat object tersebut. Contoh :

class Bapak{
    
    private $warna_rambut = 'hitam';
    private $warna_kulit  = 'sawo matang';

    public function __construct($name){
       $this->name = $name;
    }

    public function __toString(){
       echo $this->name." adalah object dari class Bapak";
    }

    public function makan(){
       echo 'makan dengan tangan kanan';
    }

}

dengan menggunakan function __toString() kita bisa mendapatkan output object dengan cara sebagai berikut.

$bapak = new Bapak('Ady');
echo $bapak; // Ady adalah object dari class Bapak

ada beberapa lagi function "magic" yang disediakan oleh PHP seperti __set(), __get(), __sleep(), __wakeup(), __clone() yang penggunaannya bisa sangat bermanfaat dalam efisiensi code pemrograman. Sekian tulisan saya kali ini, kita sambung dilain kesempatan.

Komentar

Postingan populer dari blog ini

Contoh Perhitungan Algoritma Perceptron

      Melanjutkan tulisan saya sebelumnya tentang algoritma perceptron,kali ini saya akan menulis tentang conto perhitungan manual algoritma perceptron. Untuk contoh kasusnya saya menggunakan data logika AND. Cekidot.... Algoritma      Data yang kita gunakan sebagai contoh adalah data logika AND sebagai berikut: x1 x2 target 0 0 0 0 1 0 1 0 0 1 1 1       tentukan bobot awal secara acak, saya pakai contoh w1 = 0,w2 =0, learning rate = 1, bias = 0,maksimal epoh = 10. Disini saya memakai fungsi aktivasi undak biner. Epoh ke 1 Data ke satu x = {0,0}, bobot w = {0,0},b=0,target = 0 y_in = (x1*w1)+(x2*w2)+b = (0*0)+(0*0)+0 = 0 y = sign(0) = 1 karena y != target maka hitung error dan update bobot  error = target - y = 0 - 1 = -1 w1_baru = w1_lama +(learning_rate*error*x1)                = 0 + (1*(-1)*0) = 0 w2_baru = w2_lama +(learning_rate*error*x2)                = 0+(1*(-1)*0) = 0

Contoh Perhitungan Algoritma Learning Vector Quantization

Melanjutkan tulisan saya tentang algoritma Learning Vector Quantization yang lalu, kali ini saya akan melanjutkan dengan contoh perhitungan manual. Berikut ini contoh data yang akan kita hitung. No X1 X2 X3 X4 target 1 0 1 1 0 0 2 0 0 1 1 1 3 1 1 1 1 0 4 1 0 0 1 1 pada contoh di atas, saya menggunakan 4 data sebagai data training beserta target yang bertujuan untuk mendapatkan bobot yang akan digunakan pada proses klasifikasi. Bobot awal adalah { 1, 1, 1, 0} dan { 1, 0, 1, 1} dengan learning rate 0,05 dengan fungsi pembelajaran = 0,1. Pelatihan Iterasi ke 1 1. Data ke 1 { 0, 1, 1, 0} dengan target 0, bobot = {{ 1, 1, 1, 0},{ 1, 0, 1, 1}}      - menghitung bobot untuk masing masing output :          kelas 0 = sqrt(((0-1)^2)+((1-1)^2)+((1-1)^2)+((0-0)^2)) = 1         kelas 1 = sqrt(((0-1)^2)+((1-0)^2)+((1-

Pemrograman Berorientasi Object - Overloading dan Overriding

       Function atau method overloading dan override adalah fitur yang sangat mendasar dan berguna dari bahasa OOP manapun. Dalam tutorial ini kita akan membahas implementasi metode overloading dan override di php. Di sini pertama kita akan membahas dasar-dasar overloading dan override. Setelah eksplorasi dasar kita akan menerapkan overloading dan override di php. Sebelum melangkah lebih jauh, saya mengasumsikan bahwa Anda memiliki pengetahuan dasar tentang class dan pewarisan di php. Anda juga memiliki pemahaman tentang magic method di php. Magic method karena overloading di php bisa di implmentasikan dengan menggunakan magic method. Overriding        Arti dasar dari overriding di OOP sama dengan arti kata sebenarnya. Dalam arti kata sebenarnya dari overriding adalah menggantikan perilaku orang tua yang sama pada anak. Ini sama dengan override method di OOP. Dalam arti OOP, override adalah mengganti method class induk di class anak. Atau dengan method kata kunci sederhana yang me