Belajar PHP OOP Part 4 - Enkapsulasi

Thumbnail Post

1. Pengertian

Enkapsulasi adalah metode yang digunakan untuk membatasi akses pada suatu Property atau Method. Sehingga hanya property dan method tertentu saja yang bisa diakses dari luar class.

2. Keyword Enkapsulasi

Terdapat tiga keyword yang dapat digunakan dalam proses pembatasan, dan tiga keyword tersebut memiliki cakupan pembatasan yang berbeda.

Public

Jika property atau method diatur sebagai public, maka keduanya bisa diakses oleh class manapun, termasuk juga class child. Untuk menggunakan enkapsulasi ini, kita bisa mengawali dengan keyword public di setiap property atau method.

Contoh :


<?php
    // Cetakan Donat
    class Donat{
        public function buatDonat(){
            return "Donat rasa ".$this->variant." telah dibuat";
        }
    }

    //  Cetakan Donat Spesial
    class DonatSpesial extends Donat{
        public $variant = "Cokelat";
    }

    class DonatBiasa extends Donat{
        public $variant;
    }

    // Bikin Donat
    $donatSpesial = new DonatSpesial();
    $donatBiasa = new DonatBiasa();

    // Donat Aku
    $donatAku = $donatSpesial->buatDonat();

    // Donat Dia
    $donatDia = $donatBiasa->variant = "Vanilla";
    $donatDia = $donatBiasa->buatDonat();

    echo "Hallo, ".$donatAku;
    echo "Hai, ".$donatDia;
?>

Output :
Hallo, Donat rasa Cokelat telah dibuat
Hai, Donat rasa Vanilla telah dibuat

Penjelasan :
  • Bisa dilihat, bahwa Method buatDonat bisa diakses oleh class DonatSpesial dan DonatBiasa.

Protected

Jika property atau method di atur ke dalam Protected maka keduanya tidak bisa diakses dari luar class, namun bisa diakses oleh class itu sendiri atau turunan class tersebut.

Contoh tidak bisa diakses di luar class :

<?php
    class Donat{
        protected $variant = "Cokelat";

        public function buatDonat(){
            return "Donat rasa ".$this->variant." telah dibuat";
        }
    }

    // Bikin Donat
    $donatSpesial = new Donat();

    // Donat Aku
    $donatAku = $donatSpesial->variant;

    // Tampilkan variant donat yang dipilih
    echo "Hallo, ".$donatAku;
?>

Output :
PHP Fatal error:  Uncaught Error: Cannot access protected property Donat::$variant

Contoh bisa diakses di class turunan :

<?php
    class Donat{
        protected $variant = "Cokelat";

        public function buatDonat(){
            return "Donat rasa ".$this->variant." telah dibuat";
        }
    }

    class DonatSpesial extends Donat{
      public function lihatVariant(){
        return $this->variant;
      }
    }

    // Bikin Donat
    $donatSpesial = new DonatSpesial();

    // Donat Aku
    $donatAku = $donatSpesial->lihatVariant();

    // Tampilkan variant donat yang dipilih
    echo "Hallo, Donat kamu memiliki Variant ".$donatAku;
?>

Output :
Hallo, Donat rasa Cokelat telah dibuat

Penjelasan :
  • Property variant dapat diakses melalui pemanggilan method lihatVariant() dalam class turunan DonatSpesial karena hanya method di dalam class turunan itu sendiri yang bisa mengakses property protected milik variant

Private

Jika property atau method di atur ke dalam Private maka keduanya tidak bisa diakses dari luar class, maupun class turunan. Dan hanya bisa diakses di dalam Class itu sendiri.

Contoh tidak bisa diakses class turunan :

<?php
    class Donat{
        private $variant = "Cokelat";

        public function buatDonat(){
            return "Donat rasa ".$this->variant." telah dibuat";
        }
    }

    class DonatSpesial extends Donat{
      public function lihatVariant(){
        return $this->variant;
      }
    }

    // Bikin Donat
    $donatSpesial = new DonatSpesial();

    // Donat Aku
    $donatAku = $donatSpesial->lihatVariant();

    // Tampilkan variant donat yang dipilih
    echo "Variant : ".$donatAku;
?>

Contoh bisa diakses di dalam class :
<?php
    class Donat{
        private $variant = "Cokelat";

        public function buatDonat(){
            return $this->variant;
        }
    }

    // Bikin Donat
    $donatSpesial = new Donat();

    // Donat Aku
    $donatAku = $donatSpesial->buatDonat();

    // Tampilkan variant donat yang dipilih
    echo "Variant : ".$donatAku;
?>

3. Penutup

Demikian akhir dari artikel tentang "PHP OOP Part 4 - Enkapsulasi". Jika ada kesalahan dalam penggunakan kata maupun kalimat, saya mohon maaf. Semoga bermanfaat dan terima kasih. 😊🙏

Andhika Tulus Pangestu

"Semakin banyak kegagalan yang datang, semakin dekat pula kamu dengan kesuksesan"

Posting Komentar

Lebih baru Lebih lama