Saya mengenal Object Oriented Programming sekitar 1,5 tahun yang lalu, ketika saya mulai coba-coba coding OOP untuk salah satu project sistem informasi berbasis web di salah satu departemen pemerintahan (menggunakan PHP 4). Pada awalnya saya menggunakan OOP hanya untuk mencari cara bagaimana agar kode-kode yang saya buat bisa digunakan kembali dengan cepat tanpa harus cape-cape menulis prosedural yang rumit, ternyata semakin hari semakin terasa kenyamanan coding dengan style OOP.



Menurut pengalaman saya, beberapa kenyamanan yang saya dapat melalui coding OOP ini adalah :

  1. Kode menjadi lebih bersih

  2. Alur pemrograman menjadi lebih terstruktur

  3. Reusability (penggunaan ulang) yang tinggi

  4. Berkurangnya ketergantungan antar program karena setiap objek bekerja
    sendiri-sendiri, tetapi saling bekerja sama satu sama lain

  5. Adanya inherintance antar kelas yang memungkinkan kita memperpanjang
    fungsi dan manfaat dari kelas yang sudah ada, tanpa harus menulis ulang kelas
    sebelumnya

  6. Kelas memungkinkan kita mengelompokan/mengklasifikasikan properti dan
    metode-metode yang serupa fungsinya

  7. Dalam lingkungan yang Open Source diperlukan kode-kode pemrograman
    yang juga readable oleh pemrograman lainnya. OOP bisa menjadi solusi untuk
    hal ini

  8. Mempelajari OOP di PHP 5, membuat saya lebih mudah untuk mencoba OOP di Java
    karena modelnya hampir serupa



Tetapi OOP juga mempunyai kekurangan yaitu dalam hal eksekusi skrip. OOP seperti saya pernah baca pada buku Core PHP Programming, karangan Leon Atkinson, eksekusi skrip yang menggunakan OOP bisa berkurang kecepatannya hingga 20%, dibandingkan dengan menggunakan style prosedural biasa.



IHMO OOP merupakan sebuah pilihan bagi programmer. Mereka yang mementingkan kecepatan performa aplikasi akan cenderung memilih style prosedural, sedangkan mereka yang lebih mementingkan modularitas dan keterbacaan kode aplikasi akan cenderung memilih OOP. Saya sendiri tidak strict ke satu style, seperti yang pernah Rasmus Lerdorf (PHP Founding Father) katakan,



"Gunakan OOP di saat yang betul-betul diperlukan, dan gunakan prosedural di sisi yang lain".