MADRASAH IBN RUSYD

MADRASAH MEMBACA, MENGAMALKAN, DAN MENULIS

Archive for November, 2006


JAVA BASIC : Sekilas Tentang Java

Anda mungkin sering mendengar "java" dalam kehidupan sehari-hari Anda. Mungkin ada yang mengaitkankannya dengan suatu suku, pulau atau bahasa komunikasi manusia yang hidup di Republik ini. Mungkin juga bagi para pecinta kopi, kata java membawa mereka pada suatu cita rasa kopi yang sangat khas. Tapi bagi orang yang mengikuti perkembangan teknologi komputer sepertinya "java" dikepala mereka merujuk pada suatu teknologi atau tepatnya bahasa pemrogramman yang sangat baik, bagus, dan handal.

Pemaknaan java (dalam dunia orang ilmu komputer) sebagai suatu bahasa pemrogramman sebenarnya tidak salah-salah amat. Hanya saja kurang lengkap. Java lebih dari sekedar suatu bahasa pemrogramman. Java juga dapat merujuk pada suatu mesin virtual yang diciptakan oleh Sun dan Java juga bisa merujuk pada suatu platform dalam pengembangan dunia software. Jadi secara sederhana sebenarnya java merujuk kepada tiga hal, yaitu :

  • Sebagai suatu bahasa pemrogramman. Java memiliki sintak (mungkin dalam terminologi manusia adalah kosa kata, grammer dan kalimat) yang sangat mirip dengan bahasa C. Paradigma yang digunakan dalam melakukan pemrogramman java adalah object oriented programming (OOP). Di sini java hadir untuk mengatasi kendala-kendala bahasa pemrogramman berorientasi objek pendahulunya (C++). Java mengurangi kompleksitas programming C++, juga menghalangi hambatan operasional antar sistem operasi. Dalam hal ini  java memiliki jargon yang cukup dikenal, write once run everywhere. Karena kemudahan dan kebagusan konsep yang dimilikinya, java sebagai bahasa pemrogramman sangat cepat berkembang luas. Bahkan memiliki komunitas yang sangat besar bahkan mungkin terbesar jika dibandingkan dengan komunitas bahasa pemrogramman lainnya. Teknologi-teknologi pendukung untuk pengembangan dengan menggunakan java sebagai plaformnya pun bermunculan.
  • Sebagai suatu mesin virtual, Java Virtual Machine (JVM) adalah suatu mesin yang menginterpretasikan bytecode-bytecode (bahasa java yg telak dikompilasi dan menghasilkan suatu file berekstensi dot class (.class) java ke dalam bahasa mesin (biner). JVM ini dikembangkan oleh Sun Microsystem. Sebenernya ia bisa dikembangkan di level hardware tapi demi kemudahan, akhirnya JVM dikembangkan di level software (di atas sistem operasi). Sebenarnya paradigma pemrogramman dengan menginterpretasi kode (dalam java adalah bytecode) itu menurut para ahli tidak bagus dari sisi performance  (Kecepatan). Tapi JVM mencoba mengatasi masalah ini dengan menerapkan teknik just-in-time (JIT) compilation, yaitu java byte code dikonversi langsung menjadi bahasa mesin untuk kode-kode program yang dijalankan secara berulang-ulang.
  • Java Platform, ini juga tidak kalah pentingnya dibandingkan dengan java sebagai bahasa pemrogramman dan java virtual machine. Semua program yang ditulis dalam bahasa java memanfaatkan kelas-kelas yang telah disediakan (embeded) dalam java platform, yang terkumpul dalam paket-paket tertentu (java.lang, java.io, java.net, java.uti,  dll). Rasanya sangat sulit mengembangkan suatu aplikasi java tanpa bantuan java platform ini.

Sebenarnya ada dua paradigma yang digunakan dalam pembuatan suatu bahasa pemrogramman.

Pertama dengan cara menginterpretasi kode-kode program, setiap kali suatu kode akan diekseksui oleh mesin, kode-kode tersebut diterjemahkan dulu ke bahasa yang dapat dimengerti oleh mesin (bahasa biner). Dalam hal ini percis seperti posisi seorang penerjemah yang menjembatani dua orang yang saling berkomunikasi dengan menggunakan dua bahasa yang berbeda. Posisi si penerjemah sangat sibuk, mendengarkan si pembicara kemudian menyampaikannya dengan bahasa yang dapat dimengerti oleh lawan bicaranya. Si interpreter menerjemahkan kode-kode program ke suatu bahasa yang bisa dimengerti oleh mesin. Contoh bahasa pemrogramman dengan teknik interpreter adalah Phyton, PHP dan mungkin PERL.

Kedua dengan meng-compile kode-kode program tersebut langsung menjadi bahasa yang dapat dimengerti oleh mesin. Mungkin analoginya ini seperti orang yang menerjemahkan suatu surat dari bahasa yang satu kepada bahasa yang lain. Ketika surat tersebut sudah diterjemahkan, si penerima langsung mengerti isi keseluruhan surat tersebut tanpa memerlukan perantara lagi. Contoh bahasa pemrogramman dengan teknik kompilasi adalah C dan C++.

Melihat gambaran yang diberikan, biasanya suatu bahasa pemrogramman dengan menggunakan teknik kompilasi jauh lebih cepat dibandingkan bahasa pemrogramman yang menggunakan teknik interpreter (penerjemah). Tapi pemrogramman dengan teknik kompilasi biasanya memilik kelemahan yaitu OS Dependent (ketergantungan pada Operating System - Sistem Operasi), artinya hasil kompilasi program pada system operasi tertentu tidak bisa dijalankan pada sistem operasi yang berbeda. Misal anda membuat aplikasi dengan menggunakan bahasa C (C menggunakan teknik kompilasi) pada Windows XP maka program tersebut tidak bisa dijalankan pada sistem operasi linux. Sementara pada program dengan teknik interpretasi, ketergantungan OS ini dapat diatasi. Anda menulis skrip python, baik menjalankannya pada linux ataupun windows hasilnya akan sama saja.

Terus teknik apa yang digunakan oleh java? Java menggunakan kedua teknik tersebut. Pertama kode-kode bahasa java di-compile menjadi byte code, kemudian oleh JVM, byte code - byte code ini diterjemahkan ke dalam bahasa mesin.

Buku yang menemani saat nulis tulisan ini adalah JAVA IN A NUTSHELL A Desktop Quick Reference karangan David Planagan, Penerbit O’Reilly tahun 2002

JAVA : PENGANTAR

Blog ini mungkin sungguh aneh. Pemiliknya seorang yang pernah belajar di Fakultas Ilmu Komputer Universitas Indonesia tapi semua tulisan di blog ini (saat ini jumlahnya ada 62 judul, 63 dengan ini) tidak ada yang mengindikasikan bahwa pemiliknya pernah belajar ilmu komputer. Ini sebetulnya karena saya merasa lebih terbiasa menulis masalah-masalah sosial ketimbang masalah-masalah teknis. Tapi mulai malam ini saya akan mencoba menuangkan sedikit yang saya ketahui tentang Java dan segala sesuatu yang berhubungan dengannya.

Topik-topik yang ingin saya bicarakan dalam kategori Java ini adalah sebagai berikut :

  • Dasar-dasar Pemrogramman Java, meliputi konsep Object Oriented Programming (Encapsulation, Polymorphisme, Inheritence, Class, Object, Interface, Abstract Class, Static variable dan static method dll)
  • Java Web Programming dengan menggunakan salah satu Ajax Framework berbasiskan java. Saya akan memfokuskan diri pada ZK
  • Hibernate sebagai salah satu teknologi terbaik Java untuk database.
  • Spring, tidak akan dicover secara keseluruhan. Mungkin akan difokuskan pada teknologi ORM dan Transactional Management.
  • JasperReport dengan menggunakan teknolog jasperAssistant, akan dijelaskan bagaimana membuat report dari database dalam format file .pdf, .xls atau .xml
  • Sebagai pelengkap, pengembangan software biasanya dikerjakan secara team. Teknologi yang sering digunakan untuk kolaborasi ini menggunakan CVS atau Subversion. Saya lebih suka memilih Subversion (SVN) dan akan menjelaskan bagaimana melakukan settingan SVN agar bisa digunakan.

Dalam setiap bahasan saya akan menggunakan eclipse sebagai IDE, jadi mungkin akan dijelaskan juga sedikit tutorial tentang eclipse.

Berikut daftar materi yang akan dibahas dalam kategori java dalam blog ini :

Bagian I : JAVA BASIC
1. Sekilas Tentang Java
2. Instalasi
3. Pengenalan Eclipse IDE dan Pengenalan Sintak Dasar Java
4. Konsep-konsep Dasar Object Oriented Programming
    4.1. Objek
    4.2. Kelas
    4.3. Enkapsulasi
    4.4. Pewarisan
    4.5. Polimorfisme
    4.6. Interface
    4.7. Abstraksi
5. Dasar-Dasar Java
    5.1. Variabel, Tipe Data, dan Operator
    5.2. if condition  dan looping
    5.3. Modifier
6. Implementasi OOP dalam Java
7. Penanganan Kesalahan Dalam Java

Bagian II : All About ZK
Bagian III : All About Hibernate
Bagian IV : All About Spring
Bagian V : Java Reporting With Jasper and JasperAssistant
Bagian VI : All In One (Java, ZK, Hibernate, Spring, Jasper) — Studi Kasus
Bagian VII : Subversion, a tool for collaboration and team work

Semoga tulisan-tulisan ini memberikan manfaat.

Bantenku

Postingan ini iseng belaka. Pas melihat blog kok kayaknya selama bulan november saya tidak pernah posting tulisan. Ya udah daripada kosong akhirnya nulis postingan ini.

Saya ingin menanggapi prosesi pemilihan gubernur di Banten. Hari Jum’at, tiga hari setelah lebaran (saya lebaran hari selasa), Saya dan temen-temen Forkoma UI kumpul bareng di rumah Tigor. "Memenuhi undangan (kebaikan) itu wajib bagi setiap muslim" dengan keyakinan itu saya berangkat ke rumah Tigor. Hehehe…kang Uqon masih tetep rajin. Masih datang memantau. Fajar, Usep dan Fadli juga datang Ding. 2001 lumayanlah ada 3 orang dan semuanya sudah lulus. 2002 saya hanya melihat Usep sendiri. 2003 sapa ya yang datang? Oh iya saya hanya melihat Dimas (dan mungkin Anita adiknya Usep — kalo ga salah dia angkatan 2003 jg). Sisanya 2004, 2005 dan 2006, banyak wajah-wajah baru euy…Kok ngalor ngidul begini ya..katanya mo ngomongin prosesi pilkada Banten.

Iya..iya..waktu ngumpul-ngumpul itu saya pernah bicara (tepatnya memprediksi) hasil pemilihan yang akan dilaksanakan. Saya berbicara kepada adik saya, Usep.

"Atut akan menang selama Tryana dan Zul maju, kalau ingin Atut kalah, salah satu dari mereka harus mengundurkan diri", kurang lebih seperti itulah kata-kata saya kepada saudara Usep.

Saya ingin prediksi saya itu salah. Tapi dari milis yang saya ikuti, saya kecewa. Prediksi itu benar-benar terjadi. Atut sepertinya akan tetap berkuasa.

Terus apa yang akan saya tanggapi? Ah sok jadi pengamat banget si gw. Padahal ikut memilih saja tidak. Oh maaf, sebetulnya saya sungguh ingin berpartisipasi tapi rentangan tempat yang tidak mengijinkan membuat saya hanya bisa memantau dari jauh. Yups saya masih di Solo.

Begini ya, yang saya ingin tanggapi itu kondisi di milis yang masih rame mengulas pilkada di Banten. Saya merasakan nuansa kecewa luar biasa dari temen-temen PKS. Sepertinya temen-temen dari PKS merasa dicurangi. Ada posting curang#1, postingan curang#2 dan lain-lainnya. Seru, panas, dan nyebelin juga pas baca postingan-postingan itu.

PKS berangkat menuju pertunjukan PESTA (karena banyak makan biaya) pilkada di Banten dengan kepercayaan diri luar biasa. Masyarakat butuh perubahan. Masyarakat butuh figur baru. Dan berdasarkan pengalaman, walaupun PKS tidak mayoritas di Banten (masih jauh di bawah PKB dan PPP), tetapi ia berhasil menggolkan calon bupati yang didukungnya pada tahun 2005 lalu. Ya….dengan dukungan PKS dan PNI (kalau tidak salah), Taufik Nuriman yang dijagokan oleh PKS itu berhasil mengalahkan pesaing yang cukup berat yang di dukung oleh semua partai besar di Serang (terutama Golkar dan PDI-P). Benyamin harus kalah dengan perbedaan suara yang sangat tipis.

Menjelang pilkada gubernur Banten, rupanya PKS masih ingin mengulangi cerita yang sama. Dengan kepercayaan diri luar biasa, partai ini menolak pinangan Tryana Syam’un yang tubagus dan keturunan rasul itu. Alasannya sederhana "ingin mengajukan calon dari kalangan sendiri". Ajakan PPP dan PAN untuk bersatu untuk mendukung Tryana ditolak oleh PKS. Padahal dulunya betapa ketiga partai ini (PAN, PPP dan PKS) bisa saling membahu melawan status quo. Tapi setelah pemilu 2004 dimana PKS memperoleh peningkatan suara yang luar biasa signifikan, watak rendah hati partai ini agak sedikit berkurang (kalau tidak boleh dikatakan hilang).

Saya menangkap ada ego yang luar biasa dari para pendukung partai ini. "Calon dari PKS adalah yang terbaik, yang paling pintar, paling bersih, dan mungkin yang paling bertakwa dan Insya Allah kami akan menang" kurang lebih seperti itulah yang mereka yakini. Sah-sah saja kalau tidak sampai merendahkan calon lain. Tapi kenyataannya?

Dan akhirnya pestapun digelar. Minggu 26 November berjuta rakyat Banten berbondong-bondong menuju TPS. Memberikan suara mereka. Tryana, Atut, Zul dan Irsyad dan pasangan mereka deg-degan meliaht perhitungan suara di hari itu. Empat hari telah berjalan dan Atut tetep memimpin perolehan suara untuk sementara. Dan sepertinya Atut akan kembali memimpin Banten (kalau tidak ada keajaiban luar biasa). Prediksi yang tidak saya sukai ketika berbincang dengan saudara Usep itu sekali lagi sepertinya akan menjadi kenyataan.

Keserakahan sungguh mahal harganya. Semua menghendaki perubahan. Tapi ketika orang-orang yang menghendaki perubahan ini berpecah, tidak bersatu, perubahan hanyalah mimpi belaka. Ketika ajakan bersatu itu ditampik dengan alasan bahwa calon kami lebih baik, lebih bersih dll maka yang terjadi terjadilah…(kalah).

Seharusnya temen-temen dari PKS legowo menerima kekalahan ini. Bukan malah menuduh bahwa pihak yang menang telah melakukan kecurangan. Seharusnya mereka lebih berintrospeksi diri. Mereka telah menolak putra Banten asli dan mengirimkan dua makhluk asing (bagi warga banten — termasuk saya) untuk memimpin Banten.

Keserakahan memang sungguh mahal harganya. Dan terus terang saya melihat PKS telah masuk ke dalam jurang keserakahan itu.

Hmmm…Bantenku…betapa hatiku terikat kepadamu…tapi rasa takutku selalu memerintahkanku untuk menjauhimu…iringan doaku saja yang masih menyertaimu…semoga Kau membuka hati pemimpin yang terpilih untuk membawamu menuju yang lebih baik, membawamu pada kelapangan, bukan kesempitan, membawamu pada kesejahteraan bukan kegersangan, membawamu pada keadilan bukan penindasan…airmata…aliran darah yang ngilu…selalu menyertaiku saat melihat dan mengingatmu…Bantenku.