Langsung ke konten utama

Pemrograman Berorientasi Object - Pewarisan

     Dalam pemrograman berorientasi object, dikenal istilah pewarisan / inheritance. Inheritance merupakan konsep pemrograman yang membagi source code menjadi class yang saling terhubung satu dengan yang lain. Seperti di dunia nyata, seorang anak mewarisi / mempunyai beberapa sifat bawaan dari orang tua seperti sama sama suka bermain musik, sama sama berambut keriting dll.
    Di dalam pemrograman, kelakuan kelakuan tersebut dapat berupa method / function, sedangkan sifat dapat berupa variable / contanta. Function adalah sebuah kelakuan / fungsi untuk melakukan sesuatu.

Contoh :

class Bapak{
    
    private $warna_rambut = 'hitam';
    private $warna_kulit  = 'sawo matang';
    public function makan(){
       echo 'makan dengan tangan kanan';
    }

    public function tidur(){
       echo 'tidur dengan mendengkur';
    }

    function mainGitar(){
        echo 'main dengan tangan kanan';
    }

}

di atas merupakan contoh class bapak yang mempunyai variable warna rambut dan warna kulit serta mempunyai function makan(), tidur(), mainGitar(). Dibawah ini contoh class yang mewarisi class Bapak.

class Andi extends Bapak{
    
    public function membaca(){
       echo 'membaca novel';
    }

    function mainGitar(){
        echo 'main dengan tangan kiri';
    }

}

class Andi merupakan class turunan dari class Bapak yang ditandai dengan kata extends. dengan demikian, secara default class Andi mewarisi kelakuan / function dari class Bapak seperti function makan(), tidur(), mainGitar(). Sehingga apabila dijalankan keluar hasil sebagai berikut.


$andi = new Andi();
$andi->makan(); // output: makan dengan tangan kanan
$andi->tidur(); // output: tidur dengan mendengkur
$andi->mainGitar(); // output: main dengan tangan kiri
$andi->membaca(); // output: membaca novel

seperti terlihat pada potongan kode di atas, $andi merupakan object / instance dari class Andi. secara default class Andi memiliki function bawaan dari class Bapak dan dapat dipanggil menggunakan object dari class Andi.

Lho... itu yang function mainGitar() kok outputnya "main dengan tangan kiri", bukan "main dengan tangan kanan seperti yang di class Bapak" ?

itu karena function mainGitar() sudah di override oleh class Andi dengan isi yang berbeda. Apa itu override ? Silahkan simak di artikel saya selanjutnya.
  
    kenapa harus pakai pewarisan ? apa untungnya ?

    Bayangin aja kalau kita mau buat CRUD ke database sebanyak 100 tabel dan semuanya pakai insert, update, delete dan membaca isi tabel. Apa gak makan ati kalau buat 100 file yang sama sedangkan yang beda cuma nama tabel dan nama kolomnya aja. trus tiap file ada kode koneksi ke database. Dengan konsep pewarisan semua kode itu bisa diringkas dan tentunya dengan kemampuan yang sama. Dan masih ada banyak lagi keuntungan yang didapat dengan catatan anda mau mencobanya sendiri.
 
    Akhir kata, terima kasih telah mampir dan meluangkan waktu membaca tulisan saya kali ini.

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