Cara menggunakan apa itu encapsulation php?

Setelah memahami cara membuat dan mengakses objek dalam PHP, dalam tutorial kali ini kita akan membahas salah satu aspek terpenting dalam Pemrograman Berbasis Objek [OOP], yakni Enkapsulasi [bahasa inggris: Encapsulation]. Proses enkapsulasi diterapkan dengan menggunakan 3 jenis hak akses: Public, Protected dan Private.

Kita akan mempelajari Pengertian Enkapsulasi [Public, Protected dan Private] dalam PHP.

Pengertian Enkapsulasi [Encapsulation]

Enkapsulasi [encapsulation] adalah sebuah metoda untuk mengatur struktur class dengan cara menyembunyikan alur kerja dari class tersebut.

Struktur class yang dimaksud adalah property dan method. Dengan enkapsulasi, kita bisa membuat pembatasan akses kepada property dan method, sehingga hanya property dan method tertentu saja yang bisa diakses dari luar class. Enkapsulasi juga dikenal dengan istilah ‘information hiding’.

Dengan enkapsulasi, kita bisa memilih property dan method apa saja yang boleh diakses, dan mana yang tidak boleh diakses. Dengan menghalangi kode program lain untuk mengubah property tertentu, class menjadi lebih terintegrasi, dan menghindari kesalahan ketika seseorang ‘mencoba’ mengubahnya. Programmer yang merancang class bisa menyediakan property dan method khusus yang memang ditujukan untuk diakses dari luar.

Melanjutkan analogi tentang class laptop, perusahaan pembuat laptop telah menyediakan ‘method’ khusus untuk menghidupkan laptop, yakni dengan cara menekan tombol on. Di dalam laptop sendiri, banyak ‘method-method’ lain yang akan dijalankan ketika kita menyalakan laptop, contohnya: mengirim sinyal booting ke processor, mengirim data dari processor ke memory, dan mengirim sinyal listrik ke LED di monitor. Akan tetapi, proses ini adalah method internal laptop dimana kita tidak perlu memahaminya untuk menghidupkan laptop.

Enkapsulasi Objek: Public, Protected dan Private

Untuk membatasi hak akses kepada propertydan methoddi dalam sebuah class, Objek Oriented Programming menyediakan 3 kata kunci, yakni Public, Protecteddan Private. Kata kunci ini diletakkan sebelum nama property atau sebelum nama method. Berikut adalah pembahasannya:

Pengertian Hak Akses: Public

Ketika sebuah property atau method dinyatakan sebagai public, maka seluruh kode program di luar class bisa mengaksesnya, termasuk class turunan. Berikut adalah contoh penulisan public property dan public method dalam PHP:

Perhatikan penambahan kata public sebelum nama property dan nama method. Kode di atas pada dasarnya sama dengan contoh class laptopkita dalam tutorial sebelum ini.

Jika hak akses property dan method tidak ditulis, maka PHP menganggapnya sebagai public.

Dalam contoh sebelumnya, saya membuat property class laptop menggunakan kata kunci var, seperti berikut ini:

var $pemilik;

Kata kunci var sebenarnya tidak perlu ditulis, bahkan pada PHP versi 5.0 sampai dengan 5.1.3, menggunakan kata var di dalam class akan menghasilkan warning. Untuk PHP versi 5.1.3 ke atas, menggunakan kata var tidak lagi menghasilkan warning [dianggap sebagai public].

Agar sejalan dengan konsep enkapsulasi, setiap property dan method dalam class harus menggunakan kata kunci seperti public, protected, atau private. Oleh karena itu, membuat property dengan keyword var tidak disarankan lagi .

Pengertian Hak Akses: Protected

Jika sebuah property atau method dinyatakan sebagai protected, berarti property atau method tersebut tidak bisa diakses dari luar class, namun bisa diakses oleh class itu sendiri atau turunan class tersebut.

Apabila kita mencoba mengakses protected property atau protected method dari luar class, akan menghasilkan error, seperti contoh berikut ini:

Dalam contoh di atas, pemanggilan property $pemilik dan method hidupkan_laptop[] dari luar class akan menghasilkan error.

Walaupun akses level protected tidak bisa diakses dari luar class, namun bisa diakses dari dalam class itu sendiri, berikut adalah contohnya:

Hampir sama dengan contoh kita sebelumnya, property $pemilik di deklarasikan sebagai protected, sehingga pengaksesan dari luar class akan menghasilkan error. Oleh karena itu, saya membuat sebuah public method yang akan menampilkan hasil property $pemilik, yakni method akses_pemilik[].

Begitu juga dengan method hidupkan_laptop[] yang tidak bisa diakses secara langsung. Saya menambahkan method paksa_hidup[] yang secara internal akan mengakses method hidupkan_laptop[].

Kata kunci $this merujuk kepada objek saat ini, penjelasan tentang kata kunci $this akan kita bahas dalam tutorial berikutnya. Namun karena satu-satunya cara pengaksesan ‘isi’ class dari dalam class adalah dengan $this, jika anda tidak memahaminya silahkan lewatkan saja terlebih dahulu.

Selain dari dalam class itu sendiri, property dan method dengan hak akses protected juga bisa diakses dari class turunan [Kita akan membahas tentang penurunan class dalam tutorial lain]:

Pada kode di atas, walaupun method $jenis_processor di set sebagai protected pada class komputer, tetapi masih bisa diakses dari class laptop yang merupakan turunan dari class komputer.

Pengertian Hak Akses: Private

Hak akses terakhir dalam konsep enkapsulasi adalah private. Jika sebuah property atau method di-set sebagai private, maka satu-satunya yang bisa mengakses adalah class itu sendiri. Class lain tidak bisa mengaksesnya, termasuk class turunan.

Sebagai contoh, berikut adalah hasil yang di dapat jika kita mengakses property dan method dengan level private:


Dalam kode di atas, saya membuat 2 buah class, yakni class komputer, dan class laptop. Class laptop merupakan turunan dari class komputer. Di dalam class komputer terdapat property $jenis_processor dengan akses level private. Di dalam class komputer dan class laptop, saya membuat method tampilkan_processor[] yang digunakan untuk mengakses property $jenis_processor.

Pengaksesan method tampilkan_processor[] dari objek $komputer_baru sukse ditampilkan karena berada di dalam satu class dimana property $jenis_processor berada.

Akan tetapi, jika method tampilkan_processor[] diakses dari objek $laptop_baru yang merupakan turunan dari class komputer, PHP akan mengeluarkan error karena property $jenis_processor tidak dikenal.

Akses level private sering digunakan untuk menyembunyikan property dan method agar tidak bisa diakses di luar class.

Dalam tutorial kali ini, kita telah membahas tentang pengertian enkapsulasi dalam objek oriented programming [OOP], mengenal 3 hak akses: public, protected, dan private, serta melihat contoh cara penggunaannya di dalam PHP.

Dalam tutorial belajar OOP PHP berikutnya, kita akan membahas tentang pengertian dan fungsi variabel $this dalam PHP.

eBook OOP PHP Uncover Duniailkom

Duniailkom telah menerbitkan buku yang secara detail membahas pemrograman object PHP. Mulai dari materi dasar OOP seperti class, object, property, hingga trait, namespace, autoloading dan exception. Di akhir buku juga terdapat studi kasus pembuatan library dan aplikasi CRUD. Penjelasan lebih lanjut bisa ke eBook OOP PHP Uncover Duniailkom.

Apa itu Encapsulation PHP?

Enkapsulasi[encapsulation] adalah metode untuk mengatur struktur pada class. dengan tujuan untuk menentukan hak akses pada property atau method. baca tutorial sebelumnya tentang pengertian class, object, property dan method. ini bertujuan untuk menyembunyikan informasi dari method dan property dengan alasan keamanan.

Apa itu enkapsulasi dalam pemrograman?

Encapsulation adalah salah satu prinsip dari pemrograman dengan teknik Object-Oriented Programming [OOP]. OOP merupakan suatu metode pemrograman yang berfokus pada objek. Sehingga, salah satu bagian dari masalah dalam program tersebut adalah objek. Pada pemrograman dengan metode OOP, ada yang dinamakan kelas.

Apa yang dimaksud dengan konsep encapsulation?

Enkapsulasi adalah sebuah peroses pemaketan / penyatu data bersama metode – metodenya, dimana hal ini bermanfaat untuk menyembunyikan rincian – rincian implementasi dari pemakai.

Kenapa perlu enkapsulasi di OOP?

Encapsulation pada OOP adalah konsep tentang pengikatan data atau metode berbeda yang disatukan atau “dikapsulkan” menjadi satu unit data. Encapsulation dapat memudahkan dalam pembacaan kode karena informasi yang disajikan tidak perlu dibaca secara rinci dan sudah merupakan satu kesatuan.

Bài mới nhất

Chủ Đề