Visibility

 *Visibility*

Property, Method dan Konstanta (khusus konstanta mulai PHP 7.1.0) dapat dikontrol aksesnya

menggunakan visibility keyword. Terdapat tiga keyword yaitu public, protected dan private.

Dalam literatur lain ini umum juga disebut dengan istilah enkapsulasi atau encapsulation. Cara

menggunakannya yaitu dengan memberikan prefix berupa salah satu dari tiga visibility keyword

pada property, method dan konstanta.

Berikut penjelasan untuk masing-masing dari ketiga visibility keyword:

1. Public

Artinya property, method atau Konstanta dapat diakses dari dalam maupun luar class.

2. Protected

Artinya property, method atau konstanta hanya dapat diakses dari dalam class dan

extended/inherited class (akan dijelaskan pada episode tentang pewarisan).

3. Private

Artinya property, method atau konstanta hanya dapat diakses dari dalam class itu sendiri.

Mari kita praktekkan penggunaan visibility keyword

1. Property Visibility

Property harus didefinisikan sebagai public, protected atau private, jika dideklarasikan

menggunakan var maka otomatis didefinisikan sebagai public.

<?php

class User {

 var $name = 'Khoerodin';

 public $username = 'khoerodin';

 protected $brithdate = '01 Januari 2017';

 private $address = 'Ciamis, Indonesia';

 function showBio()

 {

 echo $this->name;

 echo $this->username;

 echo $this->brithdate;

 echo $this->address;

[17/3 07.17] Ridwan: // buat object $UserGanteng :D dari class User

$UserGanteng = new User();

// Menampilkan name

echo $UserGanteng->name;

Jika kode di atas dijalankan maka akan keluar Khoerodin, coba sekarang ganti dengan echo

$UserGanteng->brithdate;, apa yang terjadi? maka akan Fatal Error, karena property

$brithdate itu protected.

Begitu juga jika diganti dengan echo $UserGanteng->address akan Fatal Error, karena

property $address itu private.

Sekarang ganti lagi dengan $UserGanteng->showBio();, ini tidak akan error karena memanggil

public method walaupun berisi protected dan private property.

2. Method Visibility

Method bisa didefinisikan sebagai public, protected atau private, jika dideklarasikan tanpa

menggunakan salah satu dari tiga visibility keyword tersebut maka otomatis didefinisikan sebagai

public.

<?php

class User {

 // mendeklarasikan public method

 public function publicMethod(){

 echo 'Ini Public Method';

 }

 // mendeklarasikan protected method

 protected function protectedMethod(){

 echo 'Ini Protected Method';

 }

 // mendeklarasikan private method

 private function privateMethod(){

 echo 'Ini Private Method';

 }

 // tanpa visibility keyword

 // otomatis public

 function showAll()

 {

 echo $this->publicMethod() . '<br/>';

 echo $this->protectedMethod() . '<br/>';

 echo $this->privateMethod();

 }

}

// buat object $Khoerodin dari class User

[17/3 07.17] Ridwan: $Khoerodin::PROTECTED_CONSTANT;

// Fatal Error, karena private

$Khoerodin::PRIVATE_CONSTANT;

// tampil semua karena berada dalam

// public method

$Khoerodin->showAll();

[17/3 07.17] Ridwan: $Khoerodin = new User();

// kode di bawah jalankan satu per satu ya

// output 'Ini Public Method'

$Khoerodin->publicMethod();

// Fatal Error, karena protected

$Khoerodin->protectedMethod();

// Fatal Error, karena private

$Khoerodin->privateMethod();

// Sedangkan ini tidak error karena memanggil method

// yang dideklarasikan tidak menggunakan visibility keyword

// otomatis public

$Khoerodin->showAll();

3. Constant Visibility

Mulai PHP 7.1.0 konstanta atau lebih tepatnya konstanta class dapat didefinisikan sebagai

public, protected atau private. Jika konstanta dideklarasikan tanpa menggunakan salah satu

dari tiga visibility keyword tersebut maka otomatis didefinisikan sebagai public.

<?php

class User {

 // mendeklarasikan public konstanta

 public const PUBLIC_CONSTANT = 'Ini Public Constant';

 // mendeklarasikan protected konstanta

 protected const PROTECTED_CONSTANT = 'Ini Protected Constant';

 // mendeklarasikan private konstanta

 private const PRIVATE_CONSTANT = 'Ini Private Constant';

 function showAll()

 {

 echo self::PUBLIC_CONSTANT . '<br/>';

 echo self::PROTECTED_CONSTANT . '<br/>';

 echo self::PRIVATE_CONSTANT;

 }

}

// buat object $Khoerodin dari class User

$Khoerodin = new User();

// kode di bawah jalankan satu per satu ya

// agar lebih gampang jika ada errornya ;)

// output 'Ini Public Constant'

$Khoerodin::PUBLIC_CONSTANT;

// Fatal Error, karena protected

Komentar

Postingan populer dari blog ini

8 Contoh Kelas Maya – Pengertian, Fungsi, Tujuan, Manfaat, Jenis, Fitur, Komponen, Kelebihan & Kekurangan