Friday, May 27, 2005

Oh Milan .... Oh Liverpool

Akhirnya setelah sekian lama Liverpool juara juga :D, Bravo Liverpool !!! . Pada dasarnya sih aku fans berat kedua-duanya, tapi masih menomorsatukan si Rossonerri Milan. Ya no problemo dah jika yang juara tetep club kesukaanku. Why I like them ? karena pas waktu kecil pertama kali nonton ama bokap yang ditonton adalah Milan ama Liverpool. Pas itu Milan jamannya Hans van Bruckellen dan Virdis (generasi sebelum trio belanda lho :p) trus si Liverpool masih diperkuat ama John Barness, Ian Rush n Bruce Gooblear. Yah karena Liverpool kurang berprestasi jadi nya aku ngelupain si Dia.

Hmmm .... pada nonton final tadi malem ga ? seru , dramatis, menyenangkan, menyedihkan pokoknya keren dah. Gimana ndak, pada babak I , Milan yang unggul 3-0 dibalikan pada babak II menjadi 3-3 hanya dalam tempo 10 menit, dan akhirnya menang lewat drama adu penalti, Gilee bener Liverpool yah. Sebenernya Milan sangat menguasai pertandingan, tapi karena kurang beruntung ya begitulah, dimana-mana yang enak jadi yang beruntung :D, betul ga ?. Sampe2 si komentarnya bilang "If Kaka got the ball, Liverpool got a trouble" , bahkan di si Maradona sampe kegirangan ketika Kaka melepas umpan yang sangat brilian untuk gol ke-2 Crespo (kata komentatornya juga), emang keren si Kaka :D. But ada yang lebih keren dari Liverpool ... yak sapa lagi klo bukan "The Anfield Skipper" captain Steven Gerrad. Luar biasa melihat penampilan Gerrad tadi malam, penuh determinasi, mental kuat dan skill individu yang ciamik. Ya memang begitulah keadaanya, dengan tanpa memperhatikan penampilan pemain lainnya.

Petaka bagi Milan datang ketika adu pinalti diadakan, sang master2 algojo penalty Milan : Andrea Pirlo, Serginho bahkan Sheva gagal total n menjadi malam kelabu bagi mereka. Sedang Liverpool cuman John Arne Riise aja yang gagal. Menurutku penampilan kiper Jersy Dudek biasa aja, tapi mungkin mental pemain Milan yang memang lagi down ato malah kurang beruntung.

Liverpool bener2 menunjukkan jati dirinya tadi malam dengan penuh kengototan dan akhirnya mendapatkan hasil yang memuaskan. Menurut mitos sih Liverpool memang punya peluang menang yang cukup besar seperti halnya pada tahun 1978, dimana pada saat itu Wales juara rugby dan Pangeran Charles married dengan Lady Diana Spence. Dan memang tanda2 itu ada pada tahun ini dimana Wales juara rugby dan Pangeran Charles married dengan Camilia Parker Bowle. Ya memang terkesan mengada-ada tapi memang kenyataannya terbukti , Sakti bener :).
Untuk Milan , aku udah sekian kali melihat apa yang menjadi kelemahan Milan adalah ketika unggul besar maka seakan-akan bingung akan melakukan apa. Yah karena mereka terbentur masalah stamina jadi lebih mengendurkan penyerangan, dan itu malah menjadi bumerang karena pemain Milan memiliki aware yang jelek untuk bertahan, contoh : dibantai Super Depor dan PSV. Mr Ancelloti ini PR untuk tahun depan, klo gagal lagi kmu pasti akan disack ama Mr Berllusconi. Ohhh God....Semoga itu tidak terjadi :(.

Ayo Milan n Liverpool rencanakan tranfers pemain yang tepat n latihan yang bener supaya bagus mainnya :D. Buat suporter Indonesia jangan tawuran aja, pake otak dikit donk !!! contoh tuh supporter Milan n Liverpool.
Bravo Sepakbola !!!

Thursday, May 26, 2005

One day at Dufan :)

Pada kemana yah kemarin weekend ? yang pastinya weekend kemarin aku ke dufan ama temen2 (kira2 14 orang-an lah). Emm... aku , kang sofyar + istri, amal, caca, acenk, alfin, benny, yenny, rina, ode, thomas, shirly ama evy. He4x... begitu masuk langsung deh yang di tuju adalah "halilintar" :D dan weleh2 antrinya bukan main. Tapi emang bener si halilintar keren banget, pas jalur yang menurun hingga bikin kmu fly n pasrah :D.. n jalur yang twist bikin pusing kepala. Tapi klo menurutku kurang lama puter2nya n jalur kurang banyak variasi ditambah antrinya rame, so aku kasih nilai nilai 8 deh (terbaik 10). Makanya karena ketagihan, so pas sepi (sore hari) kita coba lagi tuh halilintar sampe bosen :P.

Trus pada journey kedua anak2 pada mau "ontang-anting" padahal teater simulator udah pada buka (tau sendiri khan antrinya). Nah klo yang disini garing banget n ga seru2 amat but lumayanlah buat rame2 :D. Ditambah lagi operatornya garing banget..."Lagi...lagi...lagi...suaranya" he4x. Hmm aku ga bisa kasih nilai deh untuk yang ini, so coba aja sendiri :p. Pokoknya garing deh.

Nah ini neh yang antrinya lama banget hampir 1 jam-an (padahal ditulis cuman 30 menit) di "teater simulator". Keren sih tapi kurang lama lagi.. ditambah aku dapet duduk di atas belakang, jadinya kurang seru aja. Tapi sebenernya keren abis, sepertinya nilai 8 pantes untuk yang ini. Buat yang suka perang2an, disini tempatnya di "perang bintang", kita main ini setelah makan siang di m'c donald (kang sofyar tumben kok ga bawa pisang... padahal kemarin mo nanyain tapi ga enak ada teh rina :)). Intro nya sih keren , kita disuruh tembak2 monster dengan tanda hijau, eh ternyata cuman nembak lampu2 ijo :(. Bagi anak2 kecil sepertinya seru tapi buat yang gede2 kayak kita sih buat memory aja pas waktu kecil. Aku rasa point 7 cukuplah :).

Butuh adrenalin super ?, sepertinya ini yang paling cocok, "kicir kicir". Namanya sih simple tapi bener2 adrenalin bisa memuncak, gimana ngga ? kita diputer2 kayak mainan ke segala arah. Bener gila menurut aku, bahkan kita sempet2in coba lagi pas sorenya. Ember lho aku ga bohong :<, aku kasih nilai perfect aja ah (10 point). Trus lanjut ke "rumah kaca" (rumah jahil). Parah n ndak seru, udah pada rusak sepertinya. Mungkin ini unrated aja yah. Tapi yang bikin seger setelah keluar ada chix yang pake bikini trus nungging lagi :)))). Yah namanya rejeki :O.

Pengalaman yang tak terlupakan di "niagara". Why ? niagaranya sih biasa aja tapi lumayan juga sih bikin basah2, tapi aku melihat sesuatu dari chi* :D. Di sensor aja deh, sapa suruh kasih liat ke aku :). 10.5* deh pokoknya. Hmmm "arung jeram", seru juga tapi bikin basah2. Tapi diantara kita sih aku lumayan kering , yang paling parah si rina ama thomas, sori yah :( pemilihan tempat duduk mempengaruhi keberuntungan :). Nilai = 8 aja.

Mainan anak2 yang asik lagi adalah "bumper car" (bom bom car). Rame , asik, seru , ga butuh skil, cuman butuh nyali aja.. mobil kenceng ditabrak2in. Keren juga yang bikin neh mobil, he4x...yang paling jadi korban adalah si shirly ama si ode soalnya mereka masih dalam tahap pembelajaran :P. Asiknya bener rame2... nilai 8.5 pantes dah buat neh permainan. "Kora - kora", permainan ini bikin aku trauma, karena suka bikin mual perut . Tapi demi adu adrenalin n gengsi ma temen2 , sapa takut !!!. Tapi ternyata pas diatas bener ga terasa mual but setelah turun baru terasa men. Kenapa yah ? apa karena banyak hot chix didepan kita2 :D, yang pasti kita disitu kompak banget pake suara n nari2 segala. Hhhh... kasih berapa yah ? 9 sepertinya ok deh.

Beneran deh, perut mual, tapi gila anak2 pada ngajakin ke "piring oleng" padahal aku paling benci dengan pola2 yang monoton naik turun n puter2. Tapi lagi2 demi gengsi aku ikutan padahal makanan udah di ujung tenggorokan :(. Eh...baru beberapa kali puter ... crat...crot udah deh lemes tapi rasanya lega, sialan jadi diketawai anak2 :((. sialan banget nilainya -1* !!. Abis itu aku dah ga bisa menikmati lagi, perut masih mual n masuk angin :(. Masih aja diajakin di "bianglala". Sebenernya asik bisa liat jakarta dari atas tapi karena dah lemes n phobia ketinggian so jadinya diem aja deh. Ditambah lagi dikerjain pake puter2 :( bikin kepala tambah pusing. Gile bener tuh anak2. Udah deh aku lupa kasih nilai :).

Hari menjelang malam, anak2 masih aja ngulang2 lagi, tapi aku dah ga kuat so tidur di bangku sambil nunggu mereka. Hmmm dasar temen2 freak semua :D. But weekend yang keren banget, thank again to my friends , thank so much ... muah...muah :D

Tuesday, May 24, 2005

JDBC in a Nutshell

Apa sih program yang biasa temen2 bikin ? pastilah ada hubungannya dengan tarik-menarik dari yang namanya Database. Nah pada session ini aku mo share tentang technology di Java yaitu JDBC (Java Database Connectivity). Perlu kamu pada ketahui, technology JDBC ini included didalam J2SE maupun J2EE, so jangan khawatir klo mo bikin program yang berhubungan dengan database. Yang aku tau, kerennya nih JDBC tidak hanya bisa tarik n simpan dari/ke database tapi juga bisa dari tabular data source seperti dari spreadsheet( Excell) ato bahkan dari file biasa.

So pasti dengan begitu kita akan butuh yang namanya JDBC driver API, dan untuk mengaksesnya kita perlu yang namanya JDBC API yang pada saat ini JDBC API yang terbaru adalah versi 3.0. Nah di Java ada 4 type JDBC driver API, dan kamu2 semua bisa baca perbandingannya di article published in Computerworld. Pada intinya yaitu : JDBC-ODBC Bridge Driver, Native API Driver, Middleware Driver dan Direct Java Driver. Yang paling banyak di gunakan adalah ke 3 dan ke 4, karena lebih baik dari segi performansi dan efisiennya :D (katanya sih!). Dengan begitu temen ga usah khawatir karena hampir semua bentuk driver telah tersedia bahkan untuk koneksi ke ODBC juga, tapi yang ini tidak disarankan (juga katanya lagi :p). Coba deh baca artikel ini aja :p JDBC Overview klo pengen tahu konsep dari JDBC.

Perlu diketahui bahwa core JDBC API di Java terdapat dalam 2 package, yaitu : java.sql package dan javax.sql package dimana yang aku sebutkan terakhir untuk level enterprise atau server-side. Trus gimana sih cara pakenya ? hmmm... klo diterangin sih banyak n mungkin temen2 mendingan langsung aja baca di JDBC Basic Tutorial, tapi tenang aku akan coba jelasin sedikit konsep step by step paling utama dalam pemakaian JDBC ini. Yang pertama yang mesti ada adalah JDBC drivernya :D, kmu bisa cari di driver database. Maka langkah pertama adalah load JDBC driver dengan cara memanggil Class.forName(drivername).
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // contoh untuk JDBC-ODBC Bridge
Class.forName("postgresql.Driver"); // postgresql
Class.forName("oracle.jdbc.driver.OracleDriver"); // oracle


Harusnya klo nama Class dari drivername-nya bener maka ga ada masalah. Langkah ke dua adalah melakukan koneksi ke database dengan mengirimkan URLs (Uniform Resource Locators). Disini semua tergantung dari type driver yang dipake dan type database yang dipake serta beberapa parameter tambahan. Kmu bisa melakukan koneksi dengan memanggil method
DriverManager.getConnection(url).
String url = "jdbc:odbc:ejbdemo"; // contoh url untuk JDBC-ODBC
Connection con = DriverManager.getConnection(url);
String url = "jdbc:mysql://localhost/ejbdemo?user=user;password=pass"; // untuk mySQL
Connection con = DriverManager.getConnection(url, "user", "password");

Selesai langkah ini maka kamu udah siap bisa untuk tarik-menarik data dari database :D, n coba deh kmu baca2 mengenai Connection Pooling untuk meningkatkan performansi dalam koneksi ke DB (sepertinya buat tingkat expert ya bro ;o).

Hhhhh :(.... langkah berikutnya adalah melakukan command sesuai dengan query yang diinginkan dan diistilah java dikenal dengan Statement. Ada beberapa jenis Statement yang ada di java, antara lain : CallableStatement, Statement dan PreparedStatement. Aku coba jelasin satu2 yah :D, CallableStatement digunakan untuk eksekusi StoredProcedure yang ada di DB.
CallableStatement cs = con.prepareCall("{call accountlogin(?,?,?)}");
cs.setString(1,theuser);
cs.executeQuery();

Jenis yang lain adalah Statement dan PreparedStatement, duo ini hampir sama gunanya untuk eksekusi perintah2 SQL, bedanya cuman klo Statement untuk SQL yang ga pake parameter (istilah kerennya Simple Query), sedang PreparedStatement buat yang ada parameternya. Dua jenis ini bisa dipake untuk Query ataupun Update (Insert, Delete dan Update), n bedanya cuman sintax yang dipake :o
Statement stmt = con.createStatement();
ResultSet results = stmt.executeQuery("SELECT TEXT FROM dba ");
PreparedStatement pstmt = con.prepareStatement(
select theuser from
registration where
emailaddress like ?");
//Initialize first parameter with email address
pstmt.setString(1, emailAddress);
ResultSet results = ps.executeQuery();

Dan akhirnya ... ini yang terakhir aja yah :D. ResultSet dipake untuk menampung hasil query yang nantinya mo ditampilin.
Statement stmt = con.createStatement();
ResultSet results = stmt.executeQuery("SELECT TEXT FROM dba ");
while(results.next()){
String s = results.getString("TEXT");
displayText.append(s + "\n");
}
stmt.close();

Sebenernya masih banyak lagi mengenai JDBC tapi kepanjangan euy ;p. Ntar baca2 aja sendiri tentang navigasi dan scrolling ResultSet, Batch Job, menyimpan BLOB, mengontrol transaksi dan masih banyak lagi. Klo masih penasaran ya datangi aja neh situs JDBC Technology, disitu lengkap banget di bahas JDBC.
But jangan senang dulu ;), soalnya sekarang sih banyak orang yang lebih suka memakai technology seperti JDO (Java Data Object) ato ORM (Object-Relational Mapping) seperti Toplink, Hibernate, Ibatis) karena lebih simple dan efisien dalam coding. Bahkan technology2 tersebut biasanya udah included dan disupport oleh application server yang sekarang beredar seperti oc4j-nya oracle, weblogic, websphere ;D.. Tapi klo menurutku akan lebih baik klo kita belajar dari sejarahnya dahulu, bukankah memang seharusnya begitu :o dan lagian dalam application server kita juga tetep bisa koneksi dengan JDBC dengan menggunakan JCA (J2EE Connector Architecture) yang dikenal dengan JDBC Connector. Oke sekian dulu yah tentang JDBC-nya ...capek :p, but semoga bermanfaat.
Mari budayakan Java !!

Wednesday, May 18, 2005

Java 5.0 , What's up ?

Java versi berapa yang sekarang temen2 pake ? sepertinya kebanyakan masih JDK/JSDK 1.4.2, aku pun juga pake versi ini di projectku sekarang. Tapi taukah bahwa versi terbaru adalah JDK 5.0, harusnya sih klo menurut aturan version namanya JDK 1.5.0 (setelah JDK 1.4.2) :D. Tapi setelah aku baca J2SE Naming and Versioning maka hal ini dilandasi oleh kemampuan terbaru dari JDK 5.0 (dikenal dengan nama code "Tiger") yang katanya lebih mature, stable, scalable dan tentunya lebih secure.

Oke sekarang kita coba liat sebenernya apa aja kemampuan dari JDK 5.0 ini. Mungkin temen2 bisa liat di Release Notes Guide yang menjelaskan semua fitur terbarunya. Tapi aku akan coba jelaskan sedikit fitur terbaru tersebut :p.

Pada intinya adalah Ease of development (kemudahan dalam development) yaitu generics, typesafe enumerated types, enhanced for loop dan masih banyakfitur lain yang mempermudah proses development. Contoh dalam fitur generics kita bisa secara explisit memberikan tipe parameter dari suatutipe variabel ato istilah kerennya parameterized types. Hal ini akan membantu untuk mendeteksi error yang disebabkan salah casting pada saat compile time (dimana pada JDK 1.4 hanya terdeksi pada saat runtime).
List datas = new ArrayList(); // model conventional
List = new ArrayList(); // model baru

Trus kita biasanya untuk melakukan looping suatu array/Collection harus memakai index, dengan adanya "enhanced for loop" maka kita bisa melakukannyatanpa menggunakan index. Wah asik banget tuh jadi kayak foreach-nya PHP :D, he4x biar joki "sang master PHP" pindah ke Java.
for (FormalParameter : Expression) Statement

Nah yang ini lebih ok lagi :p, klo temen2 biasanya dibikin repot untuk transform dari primitive ke Wrapper ato sebaliknya maka dengan adanyaautoboxing/unboxing kita bisa langsung transform keduanya seperti kayak primitive ke primitive. Intinya neh fitur bertujuan untuk mempermudahinteroperability antara tipe primitive dengan tipe reference.
// model conventional
list.add(0, new Integer(59));
int n = ((Integer)(list.get(0))).intValue();
// model baru
list.add(0, 59);
int total = list.get(0);

N yang terakhir, di JDK 5.0 ini juga support keyword enum , mungkin temen2 masih inget pas pake C++ dan cara kerjanya hampir sama.

Sebenernya masih banyak fitur2 baru di JDK 5.0 seperti static import, metadata dll, yang membikin Java semakin mudah n keren :o. Btw jangan khawatir,temen2 bisa baca2 neh artikel bagus buat nambah referensi, J2SE 5.0 in a Nutshell dan Programming with the New Language Features in J2SE 5.0. Semoga temen2 jadi kepincut dan pindah ke Java :D.
Mari budayakan Java !!

Monday, May 16, 2005

Java Intro

Java, hmmmm.....yang aku omongin bukan suku bangsa melainkan technology Java yang akhir2 ini mulai booming di Indonesia. Padahal yang aku tau sih di luar sono udah 4 tahun yang lalu udah heboh, hmm jadi dipikir Indonesia telat juga sih untuk implementasi this technology.

Pertama kali denger Java pas jaman baru2 masuk kuliah, temenku si faisal selalu gembar gembor pake Java biar keren. Padahal sih setelah aku selidiki faisal juga masih bingung tentang Java :D. Oke deh memang untuk pemula masih bingung Java itu yang mana yah ? coz karena banyaknya fitur yang diimplementasikan oleh technology Java. Setelah baca2 buku, ternyata yang digembar-gemborin si faisal adalah Applet ,yang merupakan fitur Java untuk menampilkan ato lebih kerennya embedded aplikasi Java di Web, n pada saat udah ketinggalan jaman soalnya pake flash aja udah bisa n keren.

Pertama yang harus kita tau adalah Java Platform, apa itu ? ya itulah core dari Java dimana Java Platform adalah suatu Machine yang menjalankan aplikasi Java. Nah disinilah kunci multi-platform punya Java, sebenernya sih menurut aku sih Java multi-platform rada ngibulin :D soalnya tanpa ada Java Platform di client maka aplikasi Java kamu ga bakalan jalan n tiap OS punya versi Java Platform yang beda2. Yang pasti klo orang ngomongin Java Platform maka itu artinya JRE ( Java Runtime Environment) yang sekarang udah versi 5.0

Yang kedua klo ngomongin Java Language berarti ya bahasa coding yang dipake, soalnya di Java Platform yang bisa dipake cuman bahasa Java. Klo mau yang lebih banyak bahasa pake aja .NET :D. Nah klo mo coding kamu harus siap2 J2SDK(Java 2 Software Development Kit). Kira2 begitulah sekilas tentang Java-nya, nah sekarang aku jelasin dikit tentang fitur2nya.
Secara umum Java dibagi2 dalam 3 category, jadi tergantung temen2 ntar maunya dimana yaitu J2SE(Java 2 Standard Edition), J2ME (Java 2 Micro Edition) , dan J2EE( Java 2 Enterprise Edition ). Aslinya sih dulu cuman ada J2SE, untuk J2SE ya seperti hal nya kita bikin aplikasi2 biasa pake delphi ato VB. Nah yang beda dengan J2ME dan J2EE secara umum adalah librarynya , klo J2ME dikurangi n J2EE ditambahin :p. Tapi untuk tahu dasarnya sih saranku belajar dari J2SE dulu karena basicnya dari situ.

He4x.. akhirnya teringat pas bikin TA pake Java di Linux. Gini, karena kebiasaan pake deplhi n kurangnya basic dari J2SE, jadinya bikinnya ngasal. Yang pendekatan Objeknya kacau, patternnya juga ngasal :D, jadinya setelah beberapa bulan kerja di consultant aku cek2 lagi code2nya jadinya keliatan lucu :O. Saranku sih baca2 dulu konsepnya Java baru coba2 bikin aplikasi. Ada buku yang cukup bagus "Thinking in Java" by Bruce Eckel.. ini gratis lho ada pdfnya. Dengan konsep yang bagus maka design n coding kita jadi bagus. Btw yang penting designnya dulu yang bagus :D he4x jadinya ngejek Consultant di project yang designnya ngasal
Oke deh sepertinya dah kebanyakan untuk sebuah intro. So , mulai sekarang mari budayakan Java :D