Powered By

Skin Design:
Free Blogger Skins

Powered by Blogger

Cari Blog Ini

09 Maret 2014

Object Oriented Programming (OOP) di dunia nyata

Sewaktu kuliah dulu di ITATS, sangat banyak mahasiswa yang masih bingung dengan konsep OOP. Memang di kuliah semua ilmu diajarkan sebagai bentuk teori. Kalau pun ada praktek, namun berupa praktek yang mengikuti dari acuan buku tanpa bisa mengerti apa yang sebenarnya dikerjakan.

(Sok tau mode: ON)

Konsep

Konsep OOP adalah konsep dimana saat membuat program kita berpikir seperti membuat benda nyata. Ya seperti membuat kerjinan tangan. Dulu sebelum ada OOP, programming berkonsep struktural dan procedural. Yaitu berbasis pada function-sub prosedur kecil-kecil. Tujuannya utamanya agar program dapat di trace dengan lebih mudah. Selain itu jika ada perubahan pada suatu fungsi, programmer bisa langsung mengubah pada fungsi tersebut. Kalau di dunia nyata, dapat dianggap seperti cerita novel. Dimana dalam satu buku terdapat beberapa BAB, dimana tiap BAB membahas hal tertentu namun masih bisa disatukan dalam satu buku.  

Berbeda dengan konsep OOP, dimana programmer dibuat berpikir secara object. Membuat aplikasi bisa diibaratkan merakit komputer. Dalam tampilan general, yang terlihat adalah 1 set PC. Agar PC tersebut dapat digunakan dengan sempurna, maka harus ada: Monitor, Computer, Keyboard, Mouse. Pada bagian Computer jika dilihat lebih dalam harus ada: Main board, Processor, Memory, VGA, PSU. Nah, pada konsep OOP setiap part tersebut adalah object. Untuk setiap object programmer harus membuat code-code sehingga object tersebut siap digunakan oleh component/object lain di atasnya.

Istilah-istilah di OOP

Dalam OOP ada beberapa istilah penting, yaitu: class, interface, inheritance, method, overrides.
Class adalah object. Benda  yang sedang dibuat. Jika mengambil analogi PC tadi, maka class adalah component-component pc. Sedang interface, adalah jenis dari benda. Bisa dikatakan sebagai object secara umum. Jika keyboard PS/2 disebut class, maka interface nya adalah Keyboard. Setiap PC butuh keyboard, tapi tidak dijelaskan keyboardnya itu PS/2, Serial, atau USB. Interface dibuat untuk design awal dari object/class. Pada design interface kita perlu memikirkan input/output apa yang akan timbul pada sebuah class. Tetapi tidak perlu memikirkan detail bagaimana proses input/output yang dilakukan. Yang penting butuh input A dengan output B, terserah nanti B = A*100 atau B= A/100. Interface sangat penting jika kita merencanakan sebuah aplikasi yang nantinya dapat berkembang mengikuti perkembangan teknologi. Contohnya ya keyboard itu. Dari jaman awal munculnya PC, keyboard sudah di design harus ada di tiap PC. Perkembangannya muncul dari Keyboard serial sampai keyboard wireless. Contoh penggunaan interface di program: Aplikasi yang mensuport multi database engine.

Inheritance adalah penurunan sifat atas suatu object. Contoh: terdapat object Keyboard Standart. Dibutuhkan sebuah Keyboard Multimedia dimana ada semua fungsi keyboard umum namun ditambah fungsi multimedia. Untuk membuat keyboard multimedia ini, tidak perlu membuat dari awal. Cukup menurunkan sifat keyboard standart ditambah fungsi multimedia. Keuntungan metode ini adalah programmer tidak perlu coding ulang/copy paste object keyboard standart, namun tinggal menambahi fungsi-fungsi baru. Selain itu, ketika object keyboard standart terjadi modifikasi (contoh tiba-tiba ada tombol baru), maka object-object turunannya akan ikut berubah. Jadi tidak perlu coding hal yang sama di banyak object.

Method diartikan sebagai fungsi-fungsi yang dimiliki oleh suatu object. Contoh Keyboard memiliki fungsi tombol A, B, dst. Method juga dapat diartikan jalan input/output.

Overrides adalah pengambilalihan fungsi dari object/class induk oleh class anak. Contoh pada object USB port. Fungsi standartnya tidak ada, namun akan berbeda-beda tergantung object yang menggunakannya.