Bagian 1
OOP adalah paradigma pemrograman yang cukup dominan saat  ini, karena mampu memberikan solusi kaidah pemrograman modern. Meskipun  demikian, bukan berarti bahwa pemrograman prosedural sudah tidak layak  lagi .
OOP diciptakan karena dirasakan masih adanya keterbatasan  pada bahasa pemrograman tradisional. Konsep dari OOP sendiri adalah,  semua pemecahan masalah dibagi ke dalam objek. Dalam OOP data dan  fungsi-fungsi yang akan mengoperasikannya digabungkan menjadi satu  kesatuan yang dapat disebut sebagai objek. Proses perancangan atau  desain dalam suatu pemrograman merupakan proses yang tidak terpisah dari  proses yang mendahului, yaitu analisis dan proses yang mengikutinya.  Pembahasan mengenai orientasi objek tidak akan terlepas dari konsep  objek seperti inheritance atau penurunan, encapsulation atau  pembungkusan,
dan polymorphism atau kebanyakrupaan. Konsep-konsep ini merupakan  fundamental dalam orientasi objek yang perlu sekali dipahami serta  digunakan dengan baik, dan menghindari penggunaannya yang tidak tepat.
Class dan Objek
Dalam lingkungan program berorientasi objek, pemrogram mendefinisikan  class secara statik. Pada saat run-time, class akan diinstantiasi  menjadi objek. Ada pun objek yang merupakan instantiasi dari suatu class  selalu dapat diacu melalui current objek, apa pun nama instant-nya.
Dapat  didefinisikan bahwa class merupakan struktur data dari suatu objek,  lebih jelasnya adalah sebuah bentuk dasar atau blueprint yang  mendefinisikan variabel method umum pada semua objek dari beberapa  macam. Objek sendiri adalah kumpulan variabel dan fungsi yang dihasilkan  dari template khusus atau disebut class. objek adalah elemen pada saat  run-time yang akan diciptakan, dimanipulasi, dan dihancurkan ketika  eksekusi. Ada pun class merupakan definisi statik dari himpunan objek  yang mungkin diciptakan sebagai instantiasi dari class. Sederhananya  adalah kumpulan objek yang mempunyai atribut sama. Dengan demikian, pada  saat run-time maka yang kita miliki adalah objek.
Class biasany dibuat seperti ini
Class nama_classnya{
//berisi sekumpulan fungsi,variabel dan
//statement-statement lainnya
}
Agar class tersebut dpt digunakan maka perlu memiliki atribut-atribut contonya dalam php/c++
//di php
class NamaClass {
var $atribut1;
var $atribut2;
function operasi(){}
}
//di c++
class NamaClass {
public:
int atribut1;
int atribut2;
int operasi(){retun nilai_int}
};
Pada  bahasa pemerograman web lain ex. Java file harus disimpan dengan nama  class berbeda dengan PHP kita dapat memberikan nama yang tidak mesti  sama dengan nama classnya
Inheritance
Inheritance atau  pewarisan adalah kalimat yang pasti ada di dalam pemerograman  berorientasi objek disebut juga dengan istilah reusable.
Ketika  kita menggunakan kembali atau mengganti method dari class yang sudah  ada, serta ketika menambahkan field instant dan method baru, maka pada  saat itulah Anda bekerja dengan inheritance. Konsep ini merupakan konsep  yang fundamental dalam orientasi objek dan harus digunakan dengan baik,  ada beberapa macam Inheritance atau pewarisan yang ada di dalam OOP  Single Inheritance dan Multple Inheritance
- Single Inheritance
- Multiple Inheritance
dalam  penggunaan inheritance class Induk akan mewariskan semua atribut yang  ia miliki sehingga class bawahnya akan memilki atribut yang sama dengan  class induk, bahkan dapat memilki kebabasan untuk memilki atribut  berbeda dengan class induknya berikut ilustrasi dalam php
catatan :
sampai sekarang PHP belum mendukung multiple inheritance seperti C++  walapun PHP dan c/c++ begitu banyak kemiripannya, dan perubahan PHP  versi 5 ditekankan pada OOP salah satunya adalah beberapa tambahan untuk  kemampuan inheritance
 /* inheritance.php */
class Bapak {
var $nama =”Bapak”;
function Bapak($n) {
$this->nama = $n;
}
function Hallo() {echo “Halo, saya $this->nama 
”;}
}
class Anak extends Bapak {}
$test = new Anak(”Anak dari Bapak”);
$test->Hallo();
?>
Hasil  tampilan dari listing program di atas adalah “Halo, saya Anak dari  Bapak” dan bukannya “Halo, saya Bapak”. Mengapa demikian? Memang di  dalam class Bapak didefinisikan variabel nama dengan nilai Bapak,  selanjutnya kita membuat objek dari class Anak yang merupakan turunan  dari class Bapak. Lihat bahwa instantiasi sekaligus mengisikan parameter  baru “Anak dari Bapak”, sehingga ketika dipanggil maka mengisikan  $this->nama dengan parameter tersebut. Ada pun di dalam implementasi  pemrograman, kebanyakan pemrogram merasakan beberapa manfaat dari  inheritance atau pewarisan, diantaranya:
Subclass mampu menyediakan perilaku khusus dari elemen dasar yang disediakan oleh superclass.
Pemrogram dapat mengimplementasikan superclass untuk memanggil class abstrak yang menyatakan perilaku umum.
Pustaka
- Resume perkuliahan OOP/C++
- Resume Om google
 
 Baca Selengkapnya.....