Pengertian OOP (Object Oriented Programming) adalah suatu metode pemrograman yang berorientasi kepada objek. Tujuan dari OOP diciptakan adalah untuk mempermudah pengembangan program dengan cara mengikuti model yang telah ada di kehidupan sehari-hari. Jadi setiap bagian dari suatu permasalahan adalah objek, nah objek itu sendiri merupakan gabungan dari beberapa objek yang lebih kecil lagi.

Untuk mempermudah ilustrasi dalam belajar konsep OOP, saya akan ambil contoh Pesawat, Pesawat adalah sebuah objek. Pesawat itu sendiri terbentuk dari beberapa objek yang lebih kecil lagi seperti mesin, roda, baling-baling, kursi, dll. Pesawat sebagai objek yang terbentuk dari objek-objek yang lebih kecil saling berhubungan, berinteraksi, berkomunikasi dan saling mengirim pesan kepada objek-objek yang lainnya. Begitu juga dengan program, sebuah objek yang besar dibentuk dari beberapa objek yang lebih kecil, objek-objek itu saling berkomunikasi, dan saling berkirim pesan kepada objek yang lain.

Belajar OOP PHP : Membuat Class

Class adalah sebuah konsep OOP yang digunakan untuk mengencapsulasi /membungkus data dan abstraksi prosedural yang diperlukan dalam menggambarkan isi dan tingkah laku berbagai entitas . Kelas juga merupakan deskripsi tergeneralisir (misal templet, pola, cetak biru) yang menggambarkan kumpulan objek yang sama, untuk membuat class dalam pemograman PHP bisa digunakan dengan nenambahkan keyword class lalu di ikuti oleh nama class yang akan dibuat seperti contoh berikut ini :

<?php 
   class person {
 
   }
?>

Belajar OOP PHP : Property Pada Sebuah Class

Property Dapat disebut juga variable dari Class sedangkan Method biasa dalam bentuk fungsi. Pada Class person kita akan menambahkan sebuah properti baru dengan nama name, pada konsep OOP dalam bahasa pemograman PHP untuk menyatakan sebuah properti bisa dengan menggunakan keyword var lalu di ikuti dengan nama propertinya seperti dibawah ini :

<?php 
	class person {
		var $name;
	}
?>

Belajar OOP PHP : Method Dalam Konsep OOP PHP

Method adalah suatu operasi berupa fungsi-fungsi yang dapat dikerjakan oleh suatu object. Method didefinisikan pada class akan tetapi dipanggil melalui object. untuk membuat method bisa dengan dimulai dengan keyword function lalu di ikuti oleh nama function nya. berikut ini adalah contoh method Setter dan Getter untuk memberikan value kepada properti dan mengakses properti tersebut :

<?php 
	class person {
		var $name; 
		function set_name($new_name) { 
			$this->name = $new_name;  
 		}
 
   		function get_name() {
			return $this->name;
		}
	} 
?>

Belajar OOP PHP : Instance Object / Membuat Object

Object atau Objek adalah hasil cetak dari class, atau hasil ‘konkrit’ dari class. Jika menggunakan analogi class person di atas maka object dari person bisa berupa anton, sari dan lain nya. sekarang kita akan membuat sebuah file baru dengan nama index.php yang akan kita gunakan sebagai file utama. setelah itu kita juga akan memanggil file class_lib.php tadi agar bisa menggunakan class yang sudah kita buat sebelumnya :

<?php include("class_lib.php"); ?>
<?php 
	$stefan = new person();
	$jimmy = new person;
 
	$stefan->set_name("Stefan Mischook");
	$jimmy->set_name("Nick Waddles");
 
	echo "Stefan's full name: " . $stefan->get_name();
	echo "Nick's full name: " . $jimmy->get_name(); 
?>

untuk mengakses sebuah properti sebenarnya tidak selalu harus melalui method, bisa saja anda memanggil properti itu langsung dari luar class dengan syarat bahwa properti itu bersifat public (akan kita bahas lebih lengkap pada pembahasan visibility setelah ini) seperti dibawah ini :

<?php include("class_lib.php"); ?>		
<?php 
	$stefan = new person();		
	$jimmy = new person;
 
	$stefan->set_name("Stefan Mischook");
	$jimmy->set_name("Nick Waddles");	
 
	// directly accessing properties in a class is a no-no.
	echo "Stefan's full name: ".$stefan->name;
?>

Belajar OOP PHP : Method Constructor Dan Destructor

Constructor adalah fungsi khusus / fungsi unik yang akan di panggil secara otomatis pada saat object dibuat. Secara umum, pada saat pembuatan object, class harus meng-inisialisasikan variablenya untuk menghindari error yang tidak diinginkan sedangkan adalah method khusus yang dijalankan secara otomatis pada saat sebuah objek dihapus. Di dalam PHP, seluruh objek secara otomatis dihapus ketika halaman PHP dimana objek itu berada selesai diproses. berikut ini adalah contoh nya :

<?php 		
	class person {
		var $name;
		function __construct($persons_name) {		
			echo "<p>initialize class</p>";		
		}		
 
		function set_name($new_name) {
		 	 $this->name = $new_name;
		}	
 
		function get_name() {		
		 	 return $this->name;		
		 }
                function __destructor(){
                         echo "<p>end class</p>";
                }		
 
	}	 	
?>

Melindungi Method Dan Property Dengan Enkapsulasi (Encapsulation)

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’. ada 3 jenis enkapsulasi yang bisa anda manfaatkan yaitu Public, Private Protected.

Belajar OOP PHP : Jenis Enkapsulasi Public

jika anda menggunakan jenis enkapsulasi public pada properti atau method dalam sebuah class, itu artinya method dan propertinya bisa di akses secara bebas baik dari dalam class, dari luar class bahkan dari class turunan nya sekalipun. berikut ini adalah contoh nya :

<?php 
	class person {
		public $name; 
		function set_name($new_name) { 
			$this->name = $new_name;  
 		}
 
   		function get_name() {
			return $this->name;
		}
	} 
?>

<?php
$person1 = new Person();
// properti bisa di akses secara langsung
echo "Hai ".$person1->name='Nuris Akbar';
echo "<hr>";
// method bisa di akses secara langsung
echo $person1->get_name();
?>

seperti yang anda lihat pada script di atas bahwa kita bisa mengakses method atau properti secara langsung jika menggunakan keyword public.

php-oop-public

Belajar OOP PHP : Jenis Enkapsulasi Private

lain halnya jika anda menggunakan jenis enkapsulasi private, itu artinya method dan propertinya hanya bisa di akses dari dalam class itu sendiri dan dari class turunan nya, berikut ini adalah contoh nya :

<?php 
	class person {
		private $name; 
		function set_name($new_name) { 
			$this->name = $new_name;  
 		}
 
   		function get_name() {
			return $this->name;
		}
	} 
?>

<?php
$person1 = new Person();
// properti bisa di akses secara langsung
echo "Hai ".$person1->name='Nuris Akbar';
echo "<hr>";
// methob tidak bisa di akses secara langsung
echo $person1->get_name();
?>

Jika anda mengganti jenis enkapsulasinya menjadi private maka akan muncul error seperti ini jika anda melakukan akses properti dari luar class.

php-oop-private

Belajar OOP PHP : Jenis Enkapsulasi Protected

Lalu yang terakhir adalah jenis enkapsulasi protected, jenis enkapsulasi ini biasanya digunakan untuk melindungsi informasi yang bersifat rahasia, dimana jika anda menggunakan protected pada method atau properti maka anda hanya bisa mengakses properti tersebut hanya dari dalam class tersebut, berikut contoh script nya :

<?php 
	class person {
		protected $name; 
		function set_name($new_name) { 
			$this->name = $new_name;  
 		}
 
   		function get_name() {
			return $this->name;
		}
	} 
?>

<?php
$person1 = new Person();
// set value dari properti name
$person1->set_name('Muhammad Hafidz Muzaki');
// akses value dari properti name
echo $person1->get_name();
// properti tidak bisa di akses secara langsung, kana muncul error
echo "Hai ".$person1->name='Nuris Akbar';
echo "<hr>";

?>

seperti yang saya jelaskan di atas bahwa perbedaan utama antara private dan protected hanyalah jika protected tidak bisa diakses kecuali dari dalam class itu sendiri. jika anda mengakses nya dari luar class maka akan muncul error seperti ini :

php-oop-protected

sekian postingan tentang Konsep OOP pada bahasa pemograman PHP.

sumber: belajarphp.net