Visibility Atau Access Modifier Dalam PHP

Share to

Visibility dalam Pemrogramman

Visibility Atau Access Modifier Dalam PHP dalam pemrograman merujuk pada tingkat aksesibilitas dari suatu variabel, method, atau class dalam sebuah program. Terdapat beberapa tingkat visibility dalam pemrograman, yaitu:

Public: Variabel, method, atau class dengan visibility public dapat diakses oleh semua kelas dan paket dalam program.

Private: Variabel, method, atau class dengan visibility private hanya dapat diakses oleh kelas yang mendeklarasikan variabel, method, atau class tersebut.

Protected: Variabel, method, atau class dengan visibility protected dapat diakses oleh kelas yang mendeklarasikan variabel, method, atau class tersebut, serta kelas turunan (subclass) dari kelas tersebut.

Default (package-private): Variabel, method, atau class dengan visibility default hanya dapat diakses oleh kelas yang berada dalam package yang sama dengan variabel, method, atau class tersebut.

Dengan menggunakan tingkat visibility yang tepat, programmer dapat mengontrol tingkat aksesibilitas dari variabel, method, atau class dalam program mereka, sehingga dapat meningkatkan keamanan dan kemudahan dalam pengembangan program.

Contoh Visibility Atau Access Modifier Dalam PHP

Di PHP, terdapat beberapa kata kunci (keyword) untuk menentukan tingkat visibility dari suatu properti atau method dalam sebuah class. Berikut adalah contoh penggunaan tingkat visibility pada PHP:

class Person {

    public $name; // public property

    private $age; // private property

    protected $address; // protected property




    public function __construct($name, $age, $address) {

        $this->name = $name;

        $this->age = $age;

        $this->address = $address;

    }


    public function greet() {

        echo "Hello, my name is " . $this->name;

    }

    private function getAge() {

        return $this->age;

    }

    protected function getAddress() {

        return $this->address;

    }

}

class Student extends Person {

    public function showInfo() {

        echo "Name: " . $this->name; // bisa diakses karena property name public

        echo "Age: " . $this->getAge(); // tidak bisa diakses karena method getAge() private

        echo "Address: " . $this->getAddress(); // bisa diakses karena method getAddress() protected

    }

}

$person = new Person("John", 25, "Jakarta");

$person->name = "Doe"; // bisa diakses karena property name public

$person->age = 30; // tidak bisa diakses karena property age private

$person->address = "Bandung"; // tidak bisa diakses karena property address protected

$student = new Student("Jane", 20, "Surabaya");

$student->showInfo(); // bisa mengakses method getAddress() karena inheritance dan protected

Dalam contoh di atas, terdapat class Person yang memiliki properti name, age, dan address dengan tingkat visibility masing-masing public, private, dan protected. Selain itu, terdapat method greet() dengan visibility public, serta method getAge() dan getAddress() dengan visibility private dan protected.

Kemudian, terdapat class Student yang merupakan turunan dari class Person. Class Student memiliki method showInfo() yang mencoba mengakses properti dan method dari class Person dengan berbagai tingkat visibility.

Pada bagian akhir, terdapat contoh penggunaan objek Person dan Student, di mana properti name, age, dan address dari objek Person hanya bisa diakses jika tingkat visibility-nya public. Sedangkan, pada objek Student, method showInfo() bisa mengakses method getAddress() karena inheritance, serta protected, dan method getAge() tidak bisa diakses karena tingkat visibility-nya private.

Contoh Lain Dari Visibilty Atau Access Modifier Dalam PHP?

Berikut adalah contoh lain penggunaan tingkat visibility pada PHP:

class Car {

    public $brand;

    protected $model;

    private $year;

    public function __construct($brand, $model, $year) {

        $this->brand = $brand;

        $this->model = $model;

        $this->year = $year;

    }

    public function getDetails() {

        echo "Brand: " . $this->brand . "<br>";

        echo "Model: " . $this->model . "<br>";

        echo "Year: " . $this->year . "<br>";

    }

}

class SportsCar extends Car {

    public function showDetails() {

        echo "Brand: " . $this->brand . "<br>"; // bisa diakses karena public

        echo "Model: " . $this->model . "<br>"; // bisa diakses karena protected

        echo "Year: " . $this->year . "<br>"; // tidak bisa diakses karena private

    }

}

$car = new Car("Toyota", "Camry", "2021");

$car->brand = "Honda"; // bisa diakses karena public

$car->model = "Accord"; // tidak bisa diakses karena protected

$car->year = "2022"; // tidak bisa diakses karena private

$sportsCar = new SportsCar("Ferrari", "488 GTB", "2020");

$sportsCar->showDetails(); // bisa mengakses property brand dan model karena public dan protected

Dalam contoh di atas, terdapat class Car yang memiliki properti brand, model, dan year dengan tingkat visibility masing-masing public, protected, dan private. Selain itu, terdapat method getDetails() dengan visibility public.

Kemudian, terdapat class SportsCar yang merupakan turunan dari class Car. Class SportsCar memiliki method showDetails() yang mencoba mengakses properti dari class Car dengan berbagai tingkat visibility.

Pada bagian akhir, terdapat contoh penggunaan objek Car dan SportsCar, di mana properti brand, model, dan year dari objek Car hanya bisa diakses jika tingkat visibility-nya public. Sedangkan, pada objek SportsCar, properti brand bisa diakses karena tingkat visibility-nya public, properti model bisa diakses karena tingkat visibility-nya protected, dan properti year tidak bisa diakses karena tingkat visibility-nya private.

Kelebihan Dari Visibilty Atau Access Modifier

Penggunaan tingkat visibility pada properti dan method dalam sebuah class memiliki beberapa kelebihan, di antaranya:

Meningkatkan keamanan data: Dengan menggunakan tingkat visibility yang tepat, data dan fungsi dalam class bisa diakses hanya oleh pihak yang diizinkan, sehingga menjaga keamanan dan integritas data.

Meningkatkan fleksibilitas: Tingkat visibility memungkinkan pengembang untuk mengontrol bagaimana class dan objek dapat berinteraksi, serta membatasi akses ke data dan fungsi tertentu. Hal ini membantu dalam mengembangkan dan memperbarui aplikasi dengan lebih mudah dan fleksibel.

Meningkatkan modularitas: Dengan mengatur tingkat visibility, pengembang dapat memecah class menjadi beberapa bagian yang saling terpisah dan dapat dimodifikasi secara independen. Hal ini mempermudah pengembangan dan perawatan kode, serta memungkinkan untuk mengubah atau memperbaiki bagian tertentu dari class tanpa harus mempengaruhi bagian lainnya.

Meningkatkan dokumentasi: Dengan mengikuti aturan tentang tingkat visibility, pengembang dapat meningkatkan dokumentasi dan pemahaman terhadap class dan objek yang dibuat, sehingga membantu pengguna lain dalam memahami cara kerja aplikasi yang dibuat.

Kekurangan Dari Visibility Atau Access Modifier

Meskipun penggunaan tingkat visibility pada properti dan method memiliki banyak keuntungan, namun juga memiliki beberapa kekurangan, di antaranya:

Mengurangi fleksibilitas: Penggunaan tingkat visibility dapat membatasi akses ke properti dan method tertentu dalam class. Hal ini dapat mengurangi fleksibilitas dalam merancang class dan membuatnya lebih sulit untuk diubah dan dimodifikasi di kemudian hari.

Memperumit kode: Penggunaan tingkat visibility yang salah dapat memperumit kode dan membuatnya sulit dibaca dan dipahami. Hal ini dapat menyebabkan kesulitan dalam pemeliharaan dan pengembangan aplikasi.

Menambah overhead: Pemanggilan properti dan method dengan tingkat visibility yang berbeda-beda dapat menambah overhead dalam penggunaan memori dan waktu komputasi, terutama dalam aplikasi yang kompleks.

Meningkatkan risiko keamanan: Meskipun tingkat visibility dapat membantu meningkatkan keamanan, penggunaan yang salah atau kurang hati-hati dapat meningkatkan risiko keamanan, terutama jika data atau fungsi sensitif yang seharusnya tidak bisa diakses oleh pihak yang tidak berwenang, tetapi bisa diakses karena kesalahan penggunaan tingkat visibility.

Sumber : www.w3schools.com

Related Posts

Mengenal Namespace OOP PHP

Share to

Share toNamespace Namespace di PHP adalah cara untuk mengatur kelompok kelas, antarmuka, fungsi, dan konstanta sehingga nama yang sama dapat digunakan dalam konteks berbeda tanpa konflik.  Fitur…

Konstanta PHP OOP

Share to

Share toKonstanta PHP OOP Konstanta PHP OOP adalah nilai yang tidak dapat diubah selama runtime dari sebuah program. Dalam paradigma pemrograman berorientasi objek (OOP), konstanta dapat didefinisikan…

Static Keyword PHP OOP

Cara Membuat Static Keyword PHP OOP

Share to

Share toStatic Keyword PHP OOP Static Keyword PHP – Dalam pemrograman berorientasi objek (OOP) di PHP, kata kunci static digunakan untuk menunjukkan bahwa suatu properti atau metode…

Metode Setter dan Getter dalam PHP OOP

Share to

Share toMetode Setter dan Getter dalam PHP OOP Setter dan Getter adalah metode yang digunakan dalam Object-Oriented Programming (OOP) untuk mengatur dan mengambil nilai dari properti (atau…

Cara Menggunakan Overriding di PHP

Share to

Share toPengertian Overriding Overriding OOP PHP – Overriding adalah ketika sebuah subclass mengimplementasikan kembali sebuah method yang sudah didefinisikan pada superclass. Dalam hal ini, subclass memberikan implementasi…

OOP PHP Pengertian Inheritance

Share to

Share toOOP PHP Pengertian Inheritance ( pewarisan ) Pengertian Inheritance OOP PHP Pengertian Inheritance – Inheritance adalah salah satu konsep dalam pemrograman berorientasi objek (OOP) yang memungkinkan…

Leave a Reply

Your email address will not be published. Required fields are marked *