Show Enkapsulasi dan modifier Enkapsulasi merupakan teknik yang membuat variabel/field class menjadi bersifat private dan menyediakan akses ke variabel/field melalui public method. Jika field di deklarasikan sebagai private, maka field ini tidak bisa diakses oleh siapapun diluar class, dengan demikian field disembunyikan di dalam class. Manfaat utama teknik enkapsulasi adalah kita mampu memodifikasi kode tanpa merusak kode yang telah digunakan pada class lain. Enkapsulasi memiliki manfaat sebagai berikut: Modularitas Source code dari sebuah class dapat dikelola secara independen dari source code class yang lain. Perubahan internal pada sebuah class tidak akan berpengaruh bagi class yang menggunakannya. Information Hiding Penyembunyian informasi yang tidak perlu diketahui objek lain. Pada saat membuat, mengatur properties dan class method, kita ingin untuk mengimplementasikan beberapa macam larangan untuk mengakses data. Sebagai contoh, jika Anda ingin beberapa atribut hanya dapat diubah hanya dengan method tertentu, tentu Anda ingin menyembunyikannya dari obyek lain pada class. Di Java, implementasi tersebut disebut dengan access modifiers. Menyajikan perlindungan data dan informasi melalui mekanisme enkapsulasi Penerapan enkapsulasi dalam class Kita dapat menyembunyikan information dari suatu class sehingga anggotaanggota class tersebut tidak dapat diakses dari luar. Adapun caranya adalah cukup dengan memberikan akses control private ketika mendeklarasikan suatu atribut atau method. Contoh: private int nrp; Encapsulation (Enkapsulasi) adalah suatu cara untuk menyembunyikan implementasi detail dari suatu class. Enkapsulasi mempunyai dua hal mendasar, yaitu:
Contoh: Contructor (konstruktor) adalah suatu method yang pertama kali dijalankan pada saat pembuatan suatu obyek. Konstruktor mempunyai ciri yaitu:
Contoh: Suatu class dapat mempunyai lebih dari 1 konstruktor dengan syarat daftar parameternya tidak boleh ada yang sama. Contoh: Rangkuman Enkapsulasi merupakan teknik yang membuat variabel/field class menjadi bersifat private dan menyediakan akses ke variabel/field. Manfaat utama teknik encapsulation adalah kita mampu memodifikasi kode tanpa merusak kode yang telah digunakan pada class lain. Di Java, implementasi tersebut disebut dengan access modifiers. PBO dengan java (ENKAPSULASI) Belajar OOP (Encapsulation)
Melanjutkan tutorial Belajar Object Oriented Programming (OOP) PHP, kali ini kita akan membahas tentang Pengertian Constructor dan Destructor dalam Pemrograman Objek, khususnya OOP PHP. Pengertian Constructor dalam OOPConstructor adalah method khusus yang akan dijalankan secara otomatis pada saat sebuah objek dibuat (instansiasi), yakni ketika perintah “new” dijalankan. Constructor biasa digunakan untuk membuat proses awal dalam mempersiapkan objek, seperti memberi nilai awal kepada property, memanggil method internal dan beberapa proses lain yang digunakan untuk mempersiapkan objek. Dalam PHP, constructor dibuat menggunakan method __construct(). Pengertian Destructor dalam OOPDestructor adalah method khusus yang dijalankan secara otomatis pada saat sebuah objek dihapus. Di dalam PHP, seluruh objek sebanarnya sudah otomatis dihapus ketika halaman PHP selesai diproses. Tetapi kita juga dapat menghapus objek secara manual. Destructor biasanya dipakai untuk membersihkan beberapa variabel, atau menjalankan proses tertentu sebelum objek dihapus. Dalam PHP, destructor dibuat menggunakan method __destruct(). Cara Penggunaan Destructor dan Constructor dalam PHPBerikut adalah contoh penggunaan constructor dan destructor dalam kode program PHP: <?php // buat class laptop class laptop { private $pemilik = "Andi"; private $merk = "Lenovo"; public function __construct(){ echo "Ini berasal dari Constructor Laptop"; } public function hidupkan_laptop(){ return "Hidupkan Laptop $this->merk punya $this->pemilik"; } public function __destruct(){ echo "Ini berasal dari Destructor Laptop"; } } // buat objek dari class laptop (instansiasi) $laptop_andi= new laptop(); echo "<br />"; echo $laptop_andi->hidupkan_laptop(); echo "<br />"; ?>Dalam contoh ini saya membuat class laptop dengan 3 method:
Setelah pendefinisian class, saya membuat objek $laptop_andi, dan memanggil method hidupkan_laptop(). Berikut adalah hasil yang didapat: Ini berasal dari Constructor Laptop Hidupkan Laptop Lenovo punya Andi Ini berasal dari destructor LaptopSeperti yang terlihat, method __construct() dan __destruct() secara otomatis dipanggil saat objek dibuat dan saat objek dihapus. Untuk mencoba menghapus objek $laptop_andi secara manual, kita bisa menggunakan fungsi unset() sebagai berikut: <?php // buat class laptop class laptop { private $pemilik = "Andi"; private $merk = "Lenovo"; public function __construct(){ echo "Ini berasal dari Constructor Laptop"; } public function hidupkan_laptop(){ return "Hidupkan Laptop $this->merk punya $this->pemilik"; } public function __destruct(){ echo "Ini berasal dari Destructor Laptop"; } } // buat objek dari class laptop (instansiasi) $laptop_andi= new laptop(); echo "<br />"; echo $laptop_andi->hidupkan_laptop(); echo "<br />"; // hapus objek $laptop_andi unset($laptop_andi); echo "<br />"; echo "Objek Telah Dihancurkan"; ?>Dengan menjalankan kode diatas, berikut adalah hasil yang didapat: Ini berasal dari Constructor Laptop Hidupkan Laptop Lenovo punya Andi Ini berasal dari Destructor Laptop Objek Telah DihancurkanSetelah memanggil method $laptop_andi->hidupkan_laptop(), saya menghapus objek $laptop_andi secara manual menggunakan fungsi unset($laptop_andi). Untuk membuktikan bahwa destructor $laptop_andi sudah dijalankan, saya menambahkan perintah echo “Objek Telah Dihancurkan” diakhir kode program. Sehingga kita bisa lihat bahwa destructor objek $laptop andi di jalankan sebelum dihapus otomatis oleh PHP. Silahkan anda coba hapus perintah unset($laptop_andi), maka string “Objek Telah Dihancurkan“ akan tampil sebelum destructor objek $laptop_andi. Sebagai contoh terakhir dalam tutorial kali ini, saya akan membuat contoh constructor yang sering digunakan untuk membuat objek dengan nilai awal. Konsep ini sering digunakan dalam pemrograman objek. Berikut adalah contoh penggunaannya: <?php // buat class laptop class laptop { private $pemilik; private $merk; // constructor sebagai pembuat nilai awal public function __construct($pemilik, $merk) { $this->pemilik = $pemilik; $this->merk = $merk; } public function hidupkan_laptop() { return "Hidupkan Laptop $this->merk punya $this->pemilik"; } } // buat objek dari class laptop (instansiasi) $laptop_andi= new laptop("Andi", "Lenovo"); echo $laptop_andi->hidupkan_laptop(); echo "<br />"; $laptop_anto= new laptop("Anto", "Acer"); echo $laptop_anto->hidupkan_laptop(); ?>Pada kode diatas saya menggunakan constructor sebagai pembuat nilai awal objek. Method constructor menerima 2 buah argumen yang kemudian disimpan ke dalam property internal objek. Berikut adalah hasil yang didapat dari kode program di atas: Hidupkan Laptop Lenovo punya Andi Hidupkan Laptop Acer punya AntoSebagai tambahan, di dalam PHP constructor dan destructor harus memiliki hak akses public. Jika kita mengubah hak akses constructor atau destructor menjadi protected atau private, PHP akan mengeluarkan pesan error berikut: Fatal error: Call to private laptop::__construct() from invalid contextDalam tutorial kali ini kita telah membahas tentang pengertian constructor dan destructor dalam Pemrograman objek PHP. Kemudian juga melihat contoh pembuatan class dan objek menggunakan constructor dan destructor. Dalam tutorial belajar OOP PHP berikutnya akan dibahas konsep penting lain, yakni penurunan/pewarisan (inheritance) dalam Pemrograman objek. |