Visibilitas member dalam OOP dan PHP



Vasibilitas member merupakan keunggulan dari OOP berfungsi untuk mengatur aksesibilitas dari member (properti dan method) vasibilitas member di bagi mnjadi 3

    1. Pertama public yaitu aksesibilitas yang dapat di akses secara global semua dapat mengaksesnya
    2. Kedua private yaitu aksesibilitas yang dapat di akses oleh classnya sendiri
    3. Ketiga protected yaitu aksesibilitas yang dapat di akses oleh classnya sendiri dan class turunannya

1. Public

  Public berarti global atau bisa di akses semuanya dalam artian method atau properti tersebut dapat di akses didalam maupun diluar class.



<?php

class siswa{
 public $nis;
 public $nama;
    public $jurusan;
 
 function perkenalan(){
                 echo " hallo nama saya $this->nama  dan saya mengambil jurusan $this->kelas ";
                }
}

// buat instance / objeck dari class
$objsiswa =new siswa();

// manipulasi property nama dari Class siswa
$objsiswa ->nama='andy saputra';

// manipulasi property jurusan dari Class siswa
$objsiswa ->jurusan='RPL';

/*memanggil method pada objek $objsiswa, 
tanda () kurung buka setelah nama method harus ada 
karena digunakan untuk meletakkan parameter untuk method tsb. 
*/

$objsiswa->perkenalan();

?>


berikut tampilan dari program di atas


2. Private

metode private  hanya dapat diakses di dalam kelas. Anda tidak dapat mengakses variabel pribadi atau fungsi dari class tersebut. Tapi Anda bisa menggunakan private function dan properti dalam class menggunakan $this-> objek

berikut contohnya



<?php

class siswa{
 private $nis;
 private $nama;
    private $kelas;
 
  public function perkenalan(){
                 echo " hallo nama saya $this->nama  dan saya mengambil prodi $this->kelas ";
                }
}

// buat instance / objeck dari class
$objsiswa =new siswa();

// manipulasi property nama dari Class siswa
$objsiswa ->nama='andy saputra';

// manipulasi property jurusan dari Class siswa
$objsiswa ->kelas='Teknik Informatika';

/*memanggil method pada objek $objsiswa, 
tanda () kurung buka setelah nama method harus ada 
karena digunakan untuk meletakkan parameter untuk method tsb. 
*/

$objsiswa->perkenalan();

?>


berikut adalah hasil dari program diatas

 
keterangan dari gambar diatas, mengapa hasil program yang di atas salah? ada notif cannot access private properti siswa::$nama? karena properti di atas di $nama memiliki aksesibilitas private, sudah di jelaskan private hanya bisa di akses oleh classnya sendiri.

berikut adalah contoh penggunaan private yang benar


<?php

class siswa{
 private $nis;
 private $nama;
        private $kelas;
 
  function setnis($y){
   $this->nis=$y;
  }
  function setnama($y){
   $this->nama=$y;
  }
 function setkelas($y){
   $this->kelas=$y;
  }
  
  function perkenalan(){
                 echo " hallo nama saya $this->nama<br>
         nis saya adalah $this->nis<br>
           dan saya di kelas $this->kelas ";
  }
}

// buat instance / objeck dari class
$objsiswa =new siswa();

// manipulasi property nis,nama,kelas dari Class siswa
$objsiswa ->setnis('1234');
$objsiswa ->setnama('andy');
$objsiswa ->setkelas('RPL');

/*memanggil method pada objek $objmahasiswa, 
tanda () kurung buka setelah nama method harus ada 
karena digunakan untuk meletakkan parameter untuk method tsb. 
*/

$objsiswa->perkenalan();

?>


tampilan hasil dari program yang benar


3.Protected

Protected yaitu  aksesibilitas yang dapat di akses oleh classnya sendiri dan class turunannya dari class utama

Berikut adalah contoh sciptnya

<?php

class siswa{
 protected $nis;
 protected $nama;
        protected $kelas;
 
  public function perkenalan(){
                 echo " hallo nama saya $this->nama  dan saya mengambil prodi $this->kelas ";
                }

}
// buat instance / objeck dari class
$objsiswa =new siswa();

// manipulasi property nama dari Class siswa
$objsiswa ->nama='andy saputra';

// manipulasi property jurusan dari Class siswa
$objsiswa ->kelas='Teknik Informatika';

/*memanggil method pada objek $objsiswa, 
tanda () kurung buka setelah nama method harus ada 
karena digunakan untuk meletakkan parameter untuk method tsb. 
*/

$objsiswa->perkenalan();

?>


tampilan program di atas



tampilan diatas menunjukan kesalahan sama dengan yang tadi di private, kalo disini cannot access protected property siswa::$nama karena sama protected hanya bisa diakses oleh classnya sendiri dan  turunannya

berikut adalah contoh program yang benar

<?php
class guru{
 protected $nama='adam';// ini adalah properti pada class guru yang aksesnya private dan akan di tampilkan di tampilnamaguru()
 public function guruku(){
  echo"class untuk guru <br/>";
 }
}

class siswa extends guru {
 public $namasiswa;
 public function siswaku(){
  echo"class untuk siswa </br>";
  echo"nama saya adalah : $this->namasiswa <br/>";
 }
 public function tampilnamaguru(){
  echo"nama guru saya : $this->nama <br/>";
 }
}

$objsiswa= new siswa();
$objsiswa->namasiswa='andy saputra';
$objsiswa->guruku();
$objsiswa->tampilnamaguru();//disini tempat menampilkan nama guru dari class guru di atas
$objsiswa->siswaku();
?>

berikut adalah tampilan program di atas yang benar



sekian dari saya tentang tutorial visibilitas member dalam OOP PHP 

Subscribe untuk mendapatkan update artikel terbaru:

0 Response to "Visibilitas member dalam OOP dan PHP"

Post a Comment