Belajar Enkapsulasi pada PHP

contoh enkapsulasi, manfaat enkapsulasi, enkapsulasi adalah, enkapsulasi adalah java, enkapsulasi pbo adalah, fungsi enkapsulasi, contoh enkapsulasi
Belajar Enkapsulasi pada PHP

Pengertian Enkapsulasi

Enkapsulasi atau dalam bahasa asing disebut dengan encapsulation adalah pembungkusan atau pemberian hak akses terhadap sebuah property atau method yang ada pada suatu class, tujuan enkapsulasi untuk menyembunyikan informasi dari method dan property dengan alasan keamanan  dan menghindari kesalahan ketika seseorang mencoba untuk mengubahnya, ada tiga jenis enkapsulasi atau bisa disebut juga dengan modifier yang dikenal diantaranya adalah sebagai berikut :
  1. Public
  2. Private 
  3. Protected

Modifier Public

Public, digunakan untuk mengatur property dan method agar dapat diakses dari luar kelas beserta class turunannya, jika sebuah property atau method yang tidak dideklarasikan modifier nya misalnya menggunakan var maka akan secara otomatis dianggap sebagai public.
contoh :

<?php
class Mobil
{
    //ini adalah property
    public $nama;
    public $warna;
    public $merk;

    public function set_mobil($nama, $warna, $merk)
    {
        $this->nama = $nama;
        $this->warna = $warna;
        $this->merk = $merk;
    }
    //ini adalah method
    public function tampilkan_merk()
    {
        return "Merk saya Lamborghini<br/>";
    }

}
//membuat objek baru
$mobil = new Mobil();

//mengisi property
$mobil->set_mobil("Lamborghini Huracan Coupe", "Merah", "Lamborghini");

//memanggil method tampilkan_merk dari class Mobil pada object $mobil
echo "Merk : " . $mobil->tampilkan_merk() . "<br/>";

//memanggil property yang ada pada class Mobil.
echo "Nama : " . $mobil->nama . "<br/>";
echo "Warna : " . $mobil->warna . "<br/>";
echo "Merk : " . $mobil->merk . "<br/>";
?>


Modifier Private

Private, digunakan untuk mengatur property atau method agar hanya dapat diakses didalam class itu sendiri dan juga tidak akan diturunkan pada class turunan nya. sebagai contoh kita akan membuat tiga buah file diantaranya :

  1. class Komputer
  2. class Laptop
  3. index ( digunakan untuk membuat objek dari class diatas)

Class Komputer


<?php
class komputer {
   private $installed_memory = "8GB";
   public function tampilkan_memory() {
     return $this->installed_memory;
   }
}
?>

Class Laptop


<?php 
class Laptop extends Komputer{ 
   public function tampilkan_memory() {
     return $this->installed_memory;
   }
}
?>

index


<?php
include "Komputer.php";
include "Laptop.php";

$komputer_baru = new Komputer();
$laptop_baru = new Laptop();

echo $komputer_baru->tampilkan_memory();
echo $laptop_baru->tampilkan_memory();

Penjelasan :

pada class Komputer terdapat sebuah properti dengan nama $installed_memory  dengan modifier private properti tersebut diisi dengan nilai "8GB"  kemudian terdapat sebuah fungsi dengan nama tampilkan_memory() untuk menampilkan nilai dari properti tersebut.

class Laptop merupakan turunan (inheritance) dari class Komputer, pada class laptop juga terdapat sebuah fungsi dengan nama tampilkan_memory(), pada fungsi tersebut mencoba untuk mengakses properti $installed_memory yang ada pada class Komputer. apa yang akan terjadi seandainya properti tersebut diakses ? mari kita lanjutkan untuk mengakses fungsi tersebut pada index.php.

file index digunakan untuk mengakses kedua class diatas pertama kita membuat objek dari masing-masing class yaitu :

  1. $komputer_baru adalah objek dari class Komputer
  2. $laptop_baru adalah objek dari class Laptop
selanjutnya objek tersebut akan memanggil fungsi yang ada pada class masing-masing dengan perintah :
  1. $komputer_baru->tampilkan memory()
  2. $laptop_baru->tampilkan_memory()
sekarang coba anda akses index.php melalui browser maka hasilnya adalah sebagai berikut :

contoh enkapsulasi
terlihat pada contoh diatas property $installed_memory tidak bisa diakses pada class laptop karena menggunakan metode private meskipun property tersebut adalah turunan dari class Komputer.

Modifier Protected

Protected, digunakan untuk mengatur property atau method agar hanya dapat diakses didalam class itu sendiri dan akan diturunkan pada class turunan nya. penggunaan akses ini tidak dapat secara langsung dari luar kelas.