Langsung ke konten utama

Hak akses Object di Php ( Public, Protected, Private )

     Di dalam konsep pemrograman berorientasi object (OOP), setiap attribut atau function dapat di atur penggunaannya menggunakan keyword public, protected, atau private. Hal ini berguna untuk membatasi penggunaan attribute atau function. Contoh : anda punya sebuah function untuk koneksi ke database dan function tersebut hanya boleh digunakan oleh class yang berhubungan dengan database seperti melakukan query insert, update, delete atau read.
  1. public

     keyword public digunakan untuk attribute / variabel dan function yang bisa di gunakan atau diakses dari class manapun. Sebagai contoh adalah seperti jalan raya yang bisa digunakan oleh siapapun.
    <?php
    class Makhluk_Hidup{
      var $berat;
      public $tinggi;
     
      function __construct(){
     
      }
      function bernafas($nama,$alat){
        echo $nama." bernafas dengan ".$alat;
      }
      public function makan($makanan){
        echo "makan ".$makanan;
      }
      
    }
    ?>
    
    di atas merupakan contoh class bernama Makhluk_hidup yang memiliki attribute  berat dan tinggi. Pembuatan function tanpa disertai keyword public, protected, atau private secara default akan di anggap sebagai public. Sedangkan attribute dengan keyword var dianggap sebagai public. Contoh penggunaan :

    $hidup = new Makhluk_Hidup();
    $hidup->bernafas('manusia','paru-paru');//work
    $hidup->makan('nasi');// work
    

  2. private

     keyword private digunakan untuk attribute / variabel dan function yang hanya bisa di gunakan atau diakses dari classitu sendiri. Sebagai contoh, misalnya kita punya celana dalam yang hanya kita yang bisa memakainya sedangkan orang lain tidak boleh menggunakannya. contoh penggunaan :

    <?php
    class Makhluk_Hidup{
     var $berat;
     var $tinggi;
     
     function __construct(){
      
     }
     
     public function bernafas($nama,$alat){
      echo $nama." bernafas dengan ".$alat;
     }
     
     private function makan($makanan){
      echo "makan ".$makanan;
     }
     
    }
    
    class Manusia extends Makhluk_Hidup{
     
     function __construct(){
      echo "loading bernafas <br/>";
     }
     function makan($makanan){
      $this->makan($makanan);
     }
     
    }
    $adi = new Manusia();
    $adi->bernafas('adi','paru-paru'); // work
    $adi->makan('nasi');// not work
    ?>
    
    di atas merupakan contoh penggunaan keyword private. $adi adalah object dari class Manusia yang merupakan class turunan dari class Makhluk_Hidup. kita bisa memanggil function / method bernafas dari object $adi tapi tidak bisa mengakses function makan dari object $adi karena function makan merupakan function private yang hanya bisa di akses oleh class Makhluk_Hidup.

  3. protected

     keyword protected digunakan untuk attribute / variabel dan function yang hanya bisa di gunakan atau diakses dari classitu sendiri dan class turunan. Sebagai contoh, misalnya saya merupakan anak dari bapak saya. Dan bapak saya mempunyai motor dan rumah yang saya tentu bisa menggunakan rumah dan motor kepunyaan bapak saya. Sedangkan tetangga saya tidak bisa menggunakan motor dan rumah milik bapak saya tersebut.Contoh penggunaan :

    <?php
    class Makhluk_Hidup{
     var $berat;
     var $tinggi;
     
     function __construct(){
      
     }
     
     function bernafas($nama,$alat){
      echo $nama." bernafas dengan ".$alat;
     }
     
     function makan($makanan){
      echo "makan ".$makanan;
     }
     protected function berkembang_biak($cara){
      echo "berkembang biak dengan ".$cara;
     }
    }
    
    class Manusia extends Makhluk_Hidup{
     
     function __construct(){
      echo "loading bernafas <br/>";
     }
     function bekerja($tempat){
      echo "bekerja di ".$tempat;
     }
     function biak($cara){
      $this->berkembang_biak($cara);
     }
     
    }
    class Tumbuhan{
     
     function tes($cara){
      $this->berkembang_biak($cara);
     }
    }
    $manusia = new Manusia();
    $manusia->biak('beranak');// work
    $padi = new Tumbuhan();
    $padi->tes('beranak');// not work
    
    class Tumbuhan tidak bisa menggunakan function berkembang_biak() yang berada di class Makhluk_Hidup karena function  berkembang_biak() merupakan function protected yang hanya bisa di akses class Makhluk_Hidup dan class turunan dari class Makhluk_hidup.

        Sekian tulisan saya kali ini. Mohon maaf apabila ada kesalahan penulisan saya lanjutkan di lain kesempatan. Terima kasih.

    referensi :http://php.net/manual/en/language.oop5.visibility.php

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