Pengantar Object Oriented + Event Driven Programming

March 8, 2006 at 7:15 am | Posted in Software Engineering | 2 Comments

by: Jaimy Azle

Artikel ini merupakan kutipan dari: Object Oriented Programming dalam Analoginya dengan Kehidupan Sehari-hari, dan Event dalam Kehidupan Sehari-hari.

Pemrograman aplikasi dengan menggunakan RAD Tool (Rapid Application Development) seperti Borland Delphi sebenarnya sudah bukan lagi hal yang baru dalam dunia pemrograman saat ini. Namun banyak pemula yang masih juga mengalami kesulitan dalam memahami konsep kerja yang sesungguhnya. Kebanyakan dari mereka terutama adalah pemula yang sebelumnya pernah menguasai bahasa lain yang menggunakan konsep procedural programming seperti Foxpro, Clipper, dsb. Untuk pemula seperti mereka lah artikel ini ditujukan, namun tidak menutupi kemungkinan juga bisa digunakan oleh mereka yang belum memiliki landasan pemrograman sebelumnya.

Pemrograman Menggunakan RAD-Tool adalah Bermain Lego

Konsep procedural programming pada foxpro ataupun clipper cenderung lebih memandang sebuah proses pengembangan aplikasi adalah proses untuk membuat sesuatu yang tidak ada menjadi ada. Programmer menulis hampir segala aspek dalam pemrograman tersebut, dimulai dari user interface, reporting, manajemen data, dan sebagainya.

Buang jauh-jauh pemahaman yang didapat saat menggunakan procedural programming seperti FoxPro ataupun Clipper tersebut. Konsep RAD yang dibawa oleh Delphi sangat berbeda, dibandingkan dengan procedural programming tersebut, konsep pengembangan aplikasi yang digunakan pada Borland Delphi bisa dikatakan seperti bermain LEGO.

RAD-Tool seperti Delphi menggunakan Component Based Programming. Sebuah komponen merupakan modul-modul (library) yang memiliki fungsi spesifik dan bisa dengan mudah disertakan, atau bahkan dilepas dari aplikasi. Penggunaan komponen ini misalnya untuk kebutuhan Reporting, User interface yang lebih menarik, manejemen basis data, dan sebagainya. Sehingga seperti halnya saat bermain lego, programmer membuat aplikasi adalah dengan menyusun komponen-komponen ini dan mengaturnya untuk saling bekerja secara sinergi sehingga membentuk sebuah aplikasi.

Semudah itu? Betul, aplikasi basis data yang paling sederhana dapat dibuat hanya dengan meletakkan komponen-komponen yang sesuai, kemudian menentukan keterkaitan antar komponen-komponen tersebut tanpa menulis satu baris pun. Contoh atas implementasi ini bisa dilihat pada DEMO FISHFACT yang menyertai instalasi Borland Delphi yang terpasang.

Mudah sekali!!! Hmmm…. tidak juga, saat akan membuat satu aplikasi yang sesungguhnya, sudah barang tentu implementasinya tidak hanya cukup dengan memainkan mouse. Kendalanya akan mulai dari titik ini, dari mana memulainya?

Titik mulai awal ini sebenarnya bukan hal yang perlu menjadi masalah yang membingungkan asalkan memahami konsep dasar pemrograman yang digunakan pada RAD yang dibawa Delphi. Perlu diketahui ada dua konsep mendasar yang digunakan Delphi, konsep tersebut adalah OOP (Object Oriented Programming) dan Event Driven Programming.

Object dalam Kehidupan Sehari-hari

Jantung dari component based programming yang dibawa Delphi adalah Object Oriented Programming (selanjutnya disingkat OOP) sebagai cara pandang programmer dalam menyelesaikan suatu permasalahan dengan memanfaatkan object seperti halnya dalam kehidupan sehari-hari.

Lengan adalah object, jari adalah object, begitu pula diri kita pun adalah object. Sebuah object bisa jadi merupakan kesatuan/gabungan dari object-object lain yang menyertainya. Manusia terdiri atas tangan, kaki, kepala, dan bagian-bagian lainnya.

Lengan sebagai sebuah object memiliki tulang rangka yang membentuknya sehingga menjadi demikian. Sebuah tulang rangka lengan tidak bisa melakukan apa-apa, ia hanya memiliki bentuk dan tujuan penggunaan namun tidak bisa melakukannya. Kita tahu jari-jari pada rangka lengan nantinya bisa digunakan untuk menggenggam, memungut, memegang, memutar dll, yang merupakan fungsi dasar dari sebuah lengan. Namun tujuan tersebut baru berfungsi sesungguhnya ketika rangka lengan tersebut telah menjadi sebuah lengan yang utuh.

Sebuah lengan dalam penggunaannya secara umum selain digunakan untuk memegang, menggenggam, dan memungut yang merupakan fungsi dasar sebuah tangan, kombinasi atas fungsi-fungsi tersebut membuatnya dapat pula digunakan untuk menulis, mengenakan pakaian, dll.

Dalam pemanfaatannya secara lebih jauh, sebuah lengan bisa dilatih sehingga memiliki nilai guna yang lebih dari pada fungsi sebuah lengan pada umumnya. Semua lengan memiliki fungsi yang sama, namun lengan seorang samurai dan lengan seorang koboi (jago tembak) memiliki fungsi spesifik yang berbeda dari lengan-lengan yang lain kendati masih sama-sama berbentuk object lengan.

Dengan demikian secara garis besar bisa digambarkan sebagai berikut:

tlengan2.jpg

Seorang samurai, selain bisa menggunakan lengannya untuk mengayunkan pedang, tetap pula bisa memerintahkan lengannya untuk melakukan fungsi-fungsi umum seperti menulis, dan dapat pula memerintahkan lengan itu untuk melakukan fungsi–fungsi dasar seperti memungut sesuatu dari lantai.

Dalam representasi yang sesungguhnya, tentunya lengan samurai tidak dapat bekerja sendiri untuk menjadi samurai, namun harus digabungkan dengan object-object lainnya sehingga bisa disebut sebagai seorang pendekar samurai.

Dengan kata lain, seorang pendekar samurai terdiri atas kepala yang terlatih sebagai samurai, lengan yang terlatih sebagai samurai, kaki yang terlatih sebagai samurai dan object-object lainnya sehingga menjadi satu kesatuan yang utuh.

samurai.jpg

Dari gambaran tersebut, implementasi dalam pemrograman dengan menggunakan RAD hanya tinggal membayangkan seorang samurai tersebut sebagai sebuah aplikasi yang sedang dibangun, sekali lagi masih tetap dengan dengan konsep bermain LEGO.

Event driven programming merupakan konsep penting lainnya yang dikenal dalam pemrograman Delphi dan implementasi atas konsep event ini pun sama halnya seperti event dalam kehidupan sehari-hari.

Event dalam Kehidupan Sehari-hari

Bertarung adalah sebuah event, ia merupakan salah satu proses yang dilakukan oleh seorang samurai. Namun proses ini pun bisa saja melibatkan event-event lain yang terkait atas proses tersebut, misalnya saja pre-proses dan post-proses, atau bahkan prosesnya itu sendiri. Pre-proses yang dilakukan seorang samurai adalah mengeluarkan pedang dari sarungnya, dan post-prosesnya adalah menyarungkan kembali pedang tersebut.

masing-masing event dalam sebuah proses yang terjadi tersebut bisa jadi saling mempengaruhi antara satu dengan lainnya. Jika saat mengeluarkan pedang ternyata didapati pedang tersebut patah, maka mungkin akan mempengaruhi proses bertarung tersebut, atau bahkan bisa jadi membatalkannya. Begitu pula jika dalam pertarungan tersebut pedang yang digunakan sang samurai patah, maka mungkin saja sang samurai tidak lagi perlu menyarungkan kembali pedang patah tersebut.

tarung.jpg

Begitu pula halnya dalam pemrograman Delphi, event merupakan proses yang terkait atas sebuah object/komponen yang digunakan untuk melakukan adjustment, evaluasi, proses yang sesungguhnya atas kejadian yang berlaku saat aplikasi dijalankan agar aplikasi berjalan seperti yang dikehendaki.

Dalam kasus yang sesungguhnya ketika user menekan sebuah tombol pada form aplikasi maka yang sebenarnya dilakukan oleh aplikasi adalah:

  • Gambar bentuk tombol yang sedang ditekan
  • Lakukan proses yang terkait atas penekanan tombol tersebut
  • Gambar bentuk tombol kembali dalam posisi normal.

Sehingga dalam hal ini dapat digambarkan sebagai berikut:

tombol.jpg

Developer dalam hal ini hanya tinggal menentukan task-task apa saja yang harus dilakukan ketika sebuah tombol ditekan.

Tentu saja dalam implementasinya event tidak hanya berlaku pada prosesnya saja, namun juga bisa berlaku pada pre-proses ataupun post-prosesnya sekalipun, bergantung pada tipikal dan kebutuhan yang terkait atas sebuah aktifitas yang dilakukan oleh sebuah object.

2 Comments »

RSS feed for comments on this post. TrackBack URI

  1. jika dalam artikel yang anda muat tentang oop dan programming itu mengatakan bahwa hal itu bisa di pakai untuk pemula atau bahkan yang belum mengenal betul tentamg komputer,itu sangat bener sekali. cuman saya masih bingung jika ngga’ ada contoh sintak yang mendukung akan hal itu! kalo bisa saya minta contoh sintaknya. terima kasih…

  2. event driven nya lbih spesifik dong. Makasih..


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Create a free website or blog at WordPress.com.
Entries and comments feeds.

%d bloggers like this: