Poin 1000ku di FN

Posted by: on Apr 9, 2006 | 7 Comments



Hehehe.. nggak penting banget yak?? Hari ini akhirnya aku menembus poin 1000 di FN. Berbekal foto poket doang. . Thanks buat komunitas FN yang udah mengajari gimana motret itu. Just another kind of my hobbies… ^__^

Proteksi Variabel Field pada Objek Java (1)

Posted by: on Apr 9, 2006 | No Comments

Design Pattern, atau dikenal juga dengan Refactoring, adalah salah satu cabang ilmu komputer (Software Design) yang membuat code kita lebih mapan, mudah ditelusuri, mudah dibaca, dan reusable. Nah, kali ini aku akan nulis yang agak berat, namun tingkatannya cukup pemula bagi programmer/mahasiswa yang baru saja masuk ke dunia Objek Oriented Programming, khususnya Java.

Enkapsulasi/Pembungkusan Objek pada Java direpresentasikan dalam bentuk class-class. Sedangkan semua properti objek dinyatakan dalam method dan field (variabel dalam class). Misalnya,

public class MyClass {

   private int myField1 = 0;

   public double mySecondField = 0;

   private void thisIsPrivateMethod( int parameters ) {

      // do something here...

   }

   public int getComputation() {

   // how to get some value from outer class...

   }

}

Proteksi data dalam sebuah class dinyatakan dalam sintaks public, private, dan default. Public artinya suatu data dalam class dapat diakses dan dimodifikasi dari luar class. Private berarti data sama sekali tidak dapat terlihat dan tidak dapat diubah dari luar class. Data ini hanya terlihat oleh class itu sendiri. Default artinya, data hanya bisa dilihat oleh class-class yang memiliki package yang sama (Aduh, opo meneh package iku?).

Oke, sekarang kita bahas package. Dalam dunia coding, penamaan objek dengan nama yang sama persis seringkali terjadi. Bagaimana satu objek dengan objek yang lain yang memiliki nama yang sama tetap dapat dibedakan? Java menyelesaikannya dengan solusi yang cerdas: package. Package membungkus objek-objek (class-class) dalam bundel yang sama sehingga, objek dengan nama sama dapat dibedakan dengan memberikan nama package yang berbeda. Misalnya, java.awt, javax.swing, com.mysql.jdbc, dan nama-nama lainnya. Tentu saja, pemberian nama yang sama dalam package yang sama tidak diperkenankan.

[bersambung ke JavaBean (2)]

Java Bean (2)

Posted by: on Apr 9, 2006 | 3 Comments

JavaBean sebenarnya hanyalah sebuah class yang hanya terdiri dari beberapa field private dan dengan method setter untuk menset field dari luar class dan getter untuk mendapatkan nilai dari field. Adanya JavaBean memudahkan kita untuk melakukan refactoring karena JavaBean sebenarnya adalah representasi semua objek apapun di dunia ini. Misalnya,

public class MyJavaBean {

   private int myField1 = 0;

   private double mySecondField = 0;

   // getter

   public int getMyField1() {

      return this.myField1;

   }

   public double getMySecondField() {

      return this.mySecondField;

   }

   // setter

   public void setMyField1( int val ) {

      this.myField1 = val;

   }

   public void setMySecondField( double val ) {

      this.mySecondField = val;

   }

}

Ciri utama dari JavaBean adalah method-method-nya yang selalu diawali dengan kata get/set diikuti nama field dengan huruf pertama dari nama field adalah huruf besar. Lihat caraku menulis di contoh di atas. Ada field bernama myField1, maka setter dan getter-nya adalah setMyField1 dan getMyField1.

Nah, sampai di sini tentunya pertanyaannya menjadi begini: Jika field bertipe private, yang artinya tidak bisa diakses dari luar class, kenapa harus ada method getter dan setter yang bertipe public, yang akhirnya class luar bisa memodifikasi lewat dua method ini? Kenapa tidak field-nya saja yang diberi proteksi public? Toh sama saja kan akhirnya?

Pertanyaan dan argumen di atas memang sangat benar. Tapi di sinilah konsep design pattern itu! Dengan membuat field private dengan dua setter/getter public, kita tidak dapat sembarangan mengubah-ubah isi objek dari luar dengan statement namaClass.namaField = 2; tetapi harus melalui sebuah mekanisme yang mudah terlihat. Dengan menjadikan field tersebut public, kita benar-benar kehilangan konsep object oriented-nya (Properti suatu objek hanya dapat diubah melalui method-nya). Dengan mekanisme yang jelas, maka kode program akan lebih terbaca, lebih mudah ditelusuri, dan terkonsep dengan baik. That’s! inti dari sebuah Design Pattern. (*)

Curhat: Sori yah, ngomongnya bikin banyak orang nggak nyambung, soalnya lagi be-te banget.. program TA gw nggak jalan-jalan

Berburu Buku Lagi

Posted by: on Apr 7, 2006 | 7 Comments

Tadi malam, selepas dari kantor, aku mampir ke toko buku Manyar Jaya. Lho, kok nggak di Gramedia seperti biasanya? Aku ke sana karena memang buku yang kucari kemungkinan besar ada di sana. Toko ini memang tidak senyaman Gramedia, tidak ber-AC, dan tidak luas dan lebar. Aduh! aku nggak akan cerita soal toko ini kok (fokus dong — pinjem kata-kata nduk fit).

Sudah sejak lama aku amat merindukan untuk mengetahui secara mendetail riwayat hidup seorang idola, panutan, dan junjungan besar Nabi Muhammad SAW. Banyak teman yang merekomendasikan untuk membacanya langsung dari Al-Qur’an. Tapi wah… aku tahu kemampuan Agama-ku kayak apa: masih sangat-sangat lemah. Aku ingin mencari buku yang jika dibaca senikmat aku membaca The Da Vinci Code atau Angels and Demons. Adakah buku riwayat tentang Rasulullah yang dikemas dalam bahasa yang ringan? Akupun tanya ke ahlinya, Mas Ali S Kholimi. Dia merekomendasikan buku karangan Abu Bakar As-Siradj. Dan dengan penuh semangat aku bertekad mencarinya malam tadi.

Lantai 3 toko buku itu memang penuh dengan buku-buku Islam. Dan aku senang sekali ketika di sudut ada satu rak penuh tentang Rasulullah. Wah, sayang sekali buku yang direkomendasikan Mas Kholimi tidak ada (*hiks..*). Akhirnya sambil memiringkan kepala ke kanan, aku mulai meliliki judul-judul satu per satu.

Akhirnya aku dapat dua buku (dua aja dulu). Buku pertama adalah buku yang berat, baik secara fisik maupun isi (:D). Judulnya Riwayat Kehidupan Nabi Besar Muhammad SAW karya H.M.H Al Hamid Al Husain. Bukunya ber-hard cover dengan tebal sekitar 900 halaman. Isinya tentang riwayat Rasulullah mulai zaman sebelum beliau lahir (menceritakan ibunda Siti Aminah dan ayahanda Abdullah) hingga beliau wafat. Sangat lengkap dan mendetail lengkap dengan kutipan-kutipan dari Al-Qur’an dan Al-Hadist. Agak lain dari yang kurencanakan sebelumnya, tetapi nggak tahu, tangan ini begitu tertarik untuk memasukkannya ke keranjang belanja.

Buku yang kedua jauh lebih ringan dan ngg.. menyenangkan. Judulnya Menguak Misteri Muhammad SAW karya Prof. David Benjamin Keldani. Penulis adalah seorang mantan pendeta gereja katolik yang akhirnya memeluk Islam. Buku ini membahas tentang bukti-bukti kerasulan Muhammad yang tertulis pada Al-Kitab. Banyak sekali injil-injil yang dibahas di sini, mulai injil Barnabas, Perjanjian Lama, Perjanjian Baru, Matius, Lukas, dan sederetan kitab lain yang aku nggak hafal (aku kan bukan penginjil :p). Pembahasannya menggunakan pendekatan etimologis (bahasa) dan logis. Aku baru bisa benar-benar bersyukur Al-Qur’an masih tetap murni dengan bahasa aslinya (Arab) setelah membaca buku ini. Betapa sulitnya memahami makna lewat pendekatan etimologis ketika literatur aslinya sudah tidak ada lagi. Penafsiran yang sangat berbeda dan bertolak belakang bisa terjadi. Aku baru baca buku ini sekitar 200an halaman, dan sangat menikmatinya!

Catatan Unik Bernuansa Politik tentang JDeveloper

Posted by: on Apr 5, 2006 | 2 Comments

Selama bertahun-tahun, aku selalu bertanya-tanya, apa keuntungan sebuah free software kecuali popularitas dan promosi? Misalnya Oracle DB 10g Express Edition, paket Microsoft Visual Studio .net 2005 Express Edition, Oracle JDeveloper yang rilis 10g-nya berlisensi free. Aku tahu betul alasan dibalik gratisnya Oracle XE: Promosi produk Oracle. Koneksi maksimal yang hanya 19 koneksi konkuren membuktikannya. Visual Studio aku belum pernah punya pengalaman. Dan JDeveloper, aku paling penasaran dengan produk ini, dan aku baru saja menemukan jawabannya!

JDeveloper adalah Java IDE yang luar biasa. Fasilitasnya sangat-sangat kaya baik untuk mengembangkan Java Standard Edition (formerly known as J2SE) ataupun Java Enterprise Edition (formerly known as J2EE). Apalagi untuk kelas programmer Java kacangan kayak aku ini: JDev terlalu kaya! Aku tidak akan mereview-nya sekarang, tapi aku akan membahas tentang alasan kenapa JDev digratiskan oleh Oracle. Rasanya bull shit jika maksud Oracle adalah beramal :p. Open source IDE kayak Netbeans dan Eclipse saja bukan itu alasannya.

Jawabannya terletak di Oracle ADF! Penggunaan JDev secara tidak langsung dan sangat halus membuat kita harus menggunakan library ADF yang lisensinya mintak ampun. Aku katakan ‘halus’ karena secara eksplisit JDev tidak memaksa kita menggunakan library ADF. Para petinggi JDeveloper di Oracle selalu bilang lisensi JDev benar-benar lepas dari ADF dan JDev tidak memaksa usernya untuk menggunakan ADF. Itu memang benar!

Lha, pemaksaan halusnya dimana? Di setting-setting default Wizardnya. Misalnya begini: kita pengen membuat sebuah halaman JSF dengan JDev. Wizard JDev sangat memudahkan ini. Di situ ada dialog yang meminta kita memasukkan library yang dibutuhkan. Di pilihannya selain library standar Java, selalu ada pilihan library ADF. Pada tiga atau empat kali pemakaian Wizard pertama, library ADF secara default tidak disertakan. Tapi setiap kali, entah keberapa kali, library ADF itu dipilihkan secara default oleh JDev. Benar-benar cerdas! Psikologi programmer benar-benar dimainkan di sini. Sepertinya pembuat JDev tahu jika kita sudah tiga empat kali menggunakan Wizard dengan user interface yang sama persis, pemakaian berikutnya kita sudah tidak terlalu melihat Wizard dengan mendetail, toh kita sudah hafal. Dan akhirnya penambahan library ADF itu menjadi tidak terlihat oleh programmer!

Aku membuat web JSF-ku dengan JDev mulai versi 3 dan blog ini mulai versi 0.1. Sudah berkali-kali aku mengulang-ulang membuat aplikasi yang sama mulai dari awal dan selalu tidak menyadari kenapa library ADF tiba-tiba muncul di folder lib-ku. Dan aku tahunya baru kemarin, ketika aku mengubah halaman depan galihsatria.com menjadi asynchronous connection. Uniknya, sekali aplikasi kita ketambahan library ADF, kita tidak bisa menghapusnya lewat tombol [Delete Library]. Itu akan membuat keseluruhan aplikasi menjadi tidak jalan ketika dideploy. Anehnya, aplikasi yang tidak jalan itu hanya akan bisa dideploy dengan baik di kelurga Oracle Application Server (say, OC4J). Ah, permainan politis lagi….

Tapi meskipun demikian, aku berpendapat itu wajar. Tool sedahsyat JDev tidak akan gratis jika tidak ada udang di balik batu. Kita tetap bisa memakai JDeveloper dengan aman, asalkan benar-benar teliti untuk selalu waspada dengan muslihat-muslihat halus JDeveloper.

Transmutasi Virus Cinta Romantis

Posted by: on Apr 2, 2006 | 4 Comments

Well, rasanya blog ini akan kehilangan jiwa aslinya jika tidak bercerita soal patah hati. Baiklah, kali ini.. untuk kesekian kalinya.. Saya akan menulis mengenai patah hati lagi.

Saya pernah membaca buku psikologi, ketika kita sedang dibutakan oleh cinta, gunakan akal sehat untuk mengendalikan diri agar tidak tersesat. Tetapi Saya baru menyadari, betapa zat kimia yang meracuni otak itu membuat logika telah mati. Peran akal sehat hanyalah meredakan api, namun dia sama sekali tidak dapat memadamkannya meski akal sehat sangat ingin memadamkannya. Suatu saat, ketika jiwa sedang dalam keadaan damai, tiba-tiba api itu bergejolak lagi, mendorong zat kimia beracun yang bernama ‘cinta romantis’ ke otak dan menyebabkan peredaran darah tidak lancar, sehingga jantung berdebar-debar, nafas terasa sesak. Kondisi itu akan lebih parah jika didukung lingkungan sekitar, misalnya, lagu soundtrack yang mengingatkan masa-masa bersama dengannya.

Cinta dan daya tarik memang aneh. Mungkin akan ada banyak wanita yang bisa berbicara, tertawa, merajuk dan bersikap dengan cara yang sama namun dengan efek yang berbeda. Banyak wanita yang lebih cantik, lebih mempesona, yang bisa berkata, “Hai Galih” dengan cara yang sederhana. Namun yang bisa membawa efek menyesakkan hanya seorang saja. Dan jika dianalisis secara logis, paling tidak ada 10 alasan kenapa dia tidak layak untuk Galih dan ada 1000 alasan kenapa Galih tidak layak untuknya. Tetapi ternyata tetap saja, api cinta itu tidak bisa padam oleh logika. Jika hal ini terjadi pada Anda, setahu saya, hanya sedikit hal yang bisa menyembuhkan Anda:

  1. Dapatkan wanita itu apapun caranya
  2. Jika nomor 1 tidak mungkin, carilah figur yang benar-benar berbeda. Cobalah cintai dia, dan Anda akan mendapatkan cintanya pula. Jangan pernah mencoba mencari pengganti opsi nomor 1, karena itu hanya akan menambah lebar luka Anda

Jika dua hal itu pun sudah tidak menolong, patut dicurigai kalau virus di otak Anda telah mengalami transmutasi menjadi varian baru. Mungkin virus itu telah merusak suatu tempat di hati Anda dan berkembang biak di sana. Bukan cinta romantis lagi yang Anda rasakan. Bukan keinginan untuk mendapatkan dan memilikinya sebagai kekasih/pacar/isteri (karena memang tidak memungkinkan lagi, jika mungkin kenapa harus patah hati?). Yang Anda rasakan adalah sesuatu yang lebih mengerikan daripada cinta romantis. Virus ini bermutasi paling tidak karena dua sebab. Pertama, wanita itu terlalu baik untuk tetap berhubungan dengan ramah dengan Anda (bukan cuma sekedar TTM, lebih dari itu). Dan kedua adalah: pasca patah hati, Anda tidak memiliki ready stock untuk bisa Anda cintai.

Tidak ada yang dapat dilakukan untuk menghadapi virus ini. Jangan pernah mencoba melupakannya karena semakin Anda melupakannya, semakin Anda akan mengingatnya. Jangan pernah mencoba membencinya, karena itu akan membuat Anda semakin mencintai dan tidak pernah bisa lepas darinya. Untuk menghambat perkembangan virus ini, jangan pernah berpikiran romantis dengannya, jangan pernah mencoba mengenang hal-hal bersamanya, dan jangan pernah berharap suatu saat Anda menaiki kuda perang Anda dan memacunya ke menara tempat ia dikurung Sang Naga Jahat untuk menyelamatkannya dan melarikannya ke istana yang jauh dan hidup berbahagia bersamanya selamanya.

Namun ketika virus itu menyerang, jangan sekali-kali melawan. Angkat telepon, bicara dengannya sepuasnya. Tulis SMS sepanjang-panjangnya dan kirimkan ke nomornya. Tulis puisi seromantis mungkin untuk mengenang dan memujanya. Melamunlah tentangnya sepuas-puasnya. Kenang segala hal lucu dan menyenangkan bersamanya. Atau… tulislah blog bertemakan patah hati sepuas-puasnya, hingga hati Anda tenang kembali! ^___^

Tulungagung, 1 April 2006

Switch to our mobile site