Skip To: Content | Sidebar | Footer
Sitemap   

Sudah object orientedkah anda hari ini ?

Apakah anda secara ektensif memakai global variable ?
Terutama dengan objek koneksi ke database ?
Well, I was.

Saya sering pakai nama seperti g_OraCon92 (Oracle 9.2), g_Con (Jet Engine, Access), g_SQLCon(SQL Server 7/2000), g_mSQL(MySQL 3.x/4.x). Dan ya, saya gunakan ini waktu masih menggunakan VB5/VB6 sebagai primary weapon. Mulai dari lingkungan DAO/RDO sampai ADO.

Biasanya variable ini jadi satu, numpuk, tumpang tindih di satu module bernama Global.bas atau semacamnya.

Saya sadar sepenuhnya dengan penuh tanggung jawab, bahwa ini adalah malpraktik di dunia OOP. Lousy Refactoring. Bad smell. Spaghetti code. Weak and dirty. Tuduhlah aku sepuas hatimu.

Sampai akhirnya muncul PLBK. Proyek Lama Bersemi Kembali. Dan kali ini saya harus merajut benang kasih dengan JAVA. Anda bisa bayangkan saya segera berjibaku dengan Syndroma 2 Class Besar. Penyakit akut programmer bahasa modular yang berpindah ke OOP. Satu class untuk mengerjakan pekerjaan utamanya, class yang lain saya kasih private constructor (jadi tidak bisa diinstankan dari manapun) dan memiliki puluhan members dengan access modifier berupa… ehm.. public static.
Lagi-lagi pakai nama Global.java. Seperti mungkin anda sudah tebak.

Lagi-lagi modular, meski ngakunya sudah OOP.
Kalau anda masih 100% manusia (tidak seperti saya yang menjelma menjadi setengah cyborg saat jam 2 malem tidak peduli bulan purnama atau bulan sabit), coba bayangkan berbahasa inggris pakai grammar indonesia. Tidak apa-apa menjadi no what-what. Jalan-jalan menjadi walking-walking.
Seperti itulah “common sense” berparadigma modular di dunia OOP.

Saya selalu berkelit dengan mengutip Donald E. Knuth : “Premature optimization is the root of all evil.”. Asal program jalan, itu sudah cukup. Bos senang. Klien senang. Saya senang. Yang kurang begitu bahagia mungkin implementator. Tapi, what the hell. Yang penting pekerjaan selesai. Finish. Katam. The End. Fin.

Global variabel bukan masalah bagi saya. Easy come easy go. Sampai akhirnya, ada task untuk bikin progi yang berjalan tanpa manusia. Unattended Application istilah cyborgnya. Chaotic harmonic between excessive global variabel dengan model error handling VB6, secara instant bikin saya mampus.
Buat anda non-cyborg : Unattended Application adalah aplikasi cerdas sehingga bisa memilih sendiri aksi yang diperlukan saat terjadi error. Tidak ada dialog Abort, Retry, Cancel. Tidak ada Dialog “Are you sure want to shutdown Oracle Instance at 10.5.5.122:1521?”. Yang ada adalah aplikasi harus berjalan terus, mengambil langkah-langkah yang mungkin dilakukan oleh manusia. Dan menulis corrective actions ini di database, atau text, atau Event Log.

On Error Goto Hell

Menjelang demo, semua kata-kata ini direplace dengan On Error Resume Next. Dengan harapan, saat terjadi error didepan client tidak keluar MessageBox bernada menghina seperti “ErrNum : ORA-#### Inadequate user’s intelligence detected. Please increase SGA or just extends the deadline”. Atau horror MessageBox “Kernel Panic. Memory dumped. Blame the M$. It runs on Penguin before”
Ok, tuduhlah aku sekali lagi. Im a such ignorant cyborg.

Tapi, nature selalu punya cara untuk membalas. Assignment berikutnya adalah memaintenance code saya sendiri. Good Lord. What have I done ? Is it something I debug in my past life before?
Segera, saya melakukan dekonstruksi pemikiran. Rewrite code. Mulai mengunakan class pada tempatnya. Memahami hakikat dari Messages, Services, dan Entities. Mencari workaround buat koleksi global variabel saya yang kelewatan, dan akhirnya, kenalan sama si Singleton.
Non cyborg : singleton itu sebuah obyek yang cuma ada satu dan hanya satu itu. Persis seperti pacar atau kekasih konvensional. Hanya boleh ada satu di satu waktu. Kalau sampai ada lebih dari satu itu artinya anda tidak OOP. Hueuee… :p

VB memang tidak sepenuhnya bisa mendukung OOP. Terserah anda mau ikut thread yang setuju bahwa VB6 bukan OOP, atau percaya mentah-mentah bahwa VB6 sudah OOP. Bagi saya bukan, OOP-nya maksa. Nah, meskipun maksa, tapi ada material bagus untuk mulai belajar. Sekali.. dua kali.. 100 kali.. endless loop saya baca Stamatakis’ Visual Basic DesignPattern. Belum ngerti-ngerti juga sampai sekarang. Tapi lumayan beri aufklarung kira-kira seperti apa itu “Coding yang baik dan benar menurut aturan dan norma-norma yang berlaku.”

Tapi setelah itu, percayalah, isi dari Global.bas saya berkurang drastis. Apalagi setelah mendalami ilmu kanuragan Factory Method dan State. Ow.. ternyata kita bisa bikin puisi pakai code (Code is Poetry beibeh, nyikat quote dari footernya WordPress).

Itu dulu. Hampir setahun yang lalu. Coding masih belepotan. Maklumlah, banyak coding banyak error. Sekarang saya sudah lupa VB. Im a VBless now. Kemarin saya coba nyoba VB6 lagi, eh lupa kalo deklarasi variabel itu harus pakai Dim. Lupa kalau VB6 nggak ada try-catch-akhirnya. Sekarang paling-paling ya reuse. Copy ini, Paste itu. Subscribe ke blognya selebritis untuk cari resource. Cari libray bagus-bagus di sourceforge atau freshmeat. Males ah coding dari awal. Katanya udah OOP ? I see much further ‘cause I’m standing in the shoulder of a giant ? tuh katanya orang yang jadi terkenal karena kejatuhan apel dan ngomong gravitasi.

Buat non-cyborg, cyborg, dan psychotron : sekarang saya pakai C#. Yep. C Sharp. Read it Loud. Masih addictive ke .NET seh, saya harap bisa mengurangi ke-junkies-an saya dengan instalasi baru super-duper-heavy-metal framework diatas Fedora Core (thanks to rachmad for the cds, and to ultimate duck for assistnce on samba and gnome) , Dan sebagai transisi, hari ini eksport semua VS.NET solution ke SharpDevelop combine. Pelan-pelan, asal kelakon uueeennnakkk. Amien.

Checkpoint :
Apakah di kompi saya masih ada VB6 ? Jawabnya : Ada!!. Lho.. katanya OOP ? Lha, modular programming ya masih butuh kok, untuk kebutuhan yang enteng-enteng saja. Masa mau nampilin isi tabel (view doank, tanpa edit) susah-susah pake DataViewManager, DataSet, vector, ResultSet, JTable, JFC, Jambu, Jaelangkung, Jan…. JBodo ah. Mau beli JKorek di JWarungDepan ndak usah naek JMobil. Pakai JalanKaki kan sudah JCukup. Iya nggak .. :wink:

Leave a comment

Keep it polite and on topic.
Your email address is required, but won't be displayed.

Remember
Textile Help
_emphasis_
*strong*
-deleted text-
@[email protected]
"link text":http://link.url
!http://image.url!
ABC(Always Be Closing)
  this is not Spam.
preview

:

Feb 15, 04:42 PM