Monday, April 28, 2008

FAQ : Framework Java

Sering sekali seorang pemula atau newbie di Java menanyakan tentang framework terutama di milis JUG. Mulai dari definisi, kenapa diperlukan framework, apa saja produknya, dan sebagainya.

Hal ini tentunya sangat normal. Tetapi sayangnya, menurut saya pribadi karena kata "framework" ini sudah sedemikian sering digunakan dan dikaitkan ke berbagai konteks bisa telah kehilangan kesederhanaan definisnya dan menjadi ambigu serta klise.

Berikut saya coba mencoba memberikan definisi dilihat dari ciri framework. Definisi ini akan saya update terus untuk menjaga ketepatan dan kesederhanaan pengertiannya.

Layering

Secara sederhana, sebenarnya framework Java itu adalah lapisan yang berdiri di atas low level API (Application Programming Interface) lainnya yang umumnya adalah JSP dan Servlet.

Untuk menjelaskan, saya mengambil contoh level dari bahasa pemrograman yang umum dan terkenal (Assembly, C/C++ dan Visual Basic).

Assembly adalah bahasa programming yang dapat mengakses secara langsung ke registry-registry mikroprosesor. Tetapi untuk melakukan suatu hal yang sangat sederhana seperti membersihkan layar, instruksi codingnya akan sangat panjang.

Kemudian dikembangkan C/C++ yang mengandung perintah yang lebih 'manusiawi' atau di level yang lebih tinggi dari Assembly. Panjang codingnya biasanya jauh lebih kecil dari assembly.

Dan sampai akhirnya dikembangkan lagi bahasa atau fasilitas programming seperti Visual Basic, Delphi, dan sebagainya yang lebih 'manusiawi' lagi.


Dengan tingkat level yang makin tinggi, maka produktivitas akan meningkat tapi pada beberapa sisi fleksibilitas dan tingkat performansi akan dikorbankan.

Hal tersebut berlaku sama untuk framework Java. Lihat diagram berikut ini.


Bisa dilihat bahwa untuk web programming di Java, servlet ada di posisi paling bawah dan JSP (Java Server Pages) merupakan wrapper-nya atau di tingkat yang lebih tinggi. Di atasnya kemudian ada JSF (Java Server Faces), Spring, Struts, Webwork, dan sebagainya.

Semakin tinggi levelnya, maka produktivitas harusnya semakin tinggi tetapi fleksibilitas akan semakin rendah sehingga kadang diperlukan usaha lebih untuk mempelajari frawework ini (learning curve tinggi).


Sumber Lain

Untuk mencoba membantu menguatkan pengetahuan tentang framework ini maka saya coba kompilasi jawaban dan tulisan dari berbagai situs web baik yang berbahasa Indonesia maupun Inggris dari hasil googling. Kalau sempat ada yang mungkin bisa saya coba terjemahkan ke dalam bahasa Indonesia jika artikelnya di dalam bahasa Inggris.

Jadi jawaban untuk apa itu framework mungkin ada di situs-situs berikut ini :
  1. http://www.codeproject.com/KB/architecture/WhatIsAFramework.aspx
    • Artikel yang bagus karena tidak mendefinisikan framework dengan kering tapi lebih kepada aspek-aspek yang melingkupi definisi dari framework. Apakah itu sebagai suatu wrapper, arsitektur, dan suatu metodologi. Dan bagusnya lagi penjelasannya disertai dengan gambar-gambar konsep yang jelas.
    • Artikel ini tidak menjelaskan spesifik framework di Java tapi lebih ke framework secara umum dan saya pikir sudah bagus dan mewakili banget.
    • Sayangnya artikel ini masih dalam bahasa Inggris. Ada yang tertarik menerjemahkannya ?
  2. http://kaqfa.blogspot.com/2008/03/programmer-produktif-dengan-framework.html
    • Ini adalah blog Pak Fahri, "Harian Firdaus" yang kebetulan saya dapatkan dari hasil melakukan googling.
    • Walaupun masih agak kabur tentang definisi framework tapi saya suka dengan konteks penjelasan serta perumpaannya sehingga kita bisa paham di sisi mana framework dapat membantu kita.


Eclipse: Hello World

Membuat Project


Project adalah tempat dimana Anda menempatkan dan mengorganisasikan semua file Java dan file lain yang berkaitan.
 
Mulailah  membuat project Java dengan memilih dari menu toolbar File -> New -> Java Project.

Pada saat muncul dialog New Java Project, namakan project tersebut dengan "Pintar Java" dan klik tombol Finish.
 
Anda sudah membuat project pertama Anda dan siap memasukkan class-class Java ataupun resource lain di dalam project ini.



Hello World Class

Perhatikan pada jendela Package Explorer sudah terdapat project "Pintar Java".

 

 

Folder src adalah tempat kita meletakkan source code Java kita. Sedangkan JRE System Library [jre1.5.0_15] adalah keterangan bahwa project ini menggunakan pustaka Java versi 5.

  • Dari menu toolbar pilih File > New > Class.
  • Pada dialog New Java Class yang muncul, masukkan HelloWorld pada kotak teks Name | klik Finish.
  • Ketik source code untuk HelloWorld ini seperti pada artikel blog sebelumnya.
  • Jika semua benar maka jendela editor Eclipse akan tampak seperti pada gambar di bawah.

 

(Klik Pada Gambar untuk Memperbesar)

Perhatikan bahwa semua code highlight dan pengaturan indentasinya sangat rapi.

Pada bagian tab editor terdapat info nama file class kita yaitu HelloWorld.java. Editor ini juga telah dilengkapi intellisense sehingga jika terdapat kesalahan eja dapat diperbaiki dengan cepat dan juga fasilitas auto complete yang bisa diaktifkan dengan menekan CTRL+SPASI.

Menjalankan Aplikasi

 
Karena class HelloWorld ini memiliki method entry point, yakni method main maka class ini bisa dijalankan langsung.
  • Cari icon (run) dan klik pada tanda panah kecil di samping kanan
  • Klik pilihan Run As > 1 Java Application Alt+Shift+X, J

(Pilihan Run As -> Java Application)
  • Hasil eksekusi dapat dilihat di panel Console

(Hasil eksekusi dapat dilihat di jendela Console)

Penutup

 
Workbench Eclipse sudah menyediakan menu, toolbar, editor dan jendela yang intuitif sehingga kita dapat dengan mudah menyelesaikan satu project dan mengeksekusi satu program Java kecil.

Langkah-langkah untuk melakukan hal itu adalah :
  1. Membuat project dari menu File -> New -> Java Project.
  2. Membuat class dan mengetik source code pada editor yang sudah memiliki fasilitas auto complete dan intellisense.
  3. Melakukan eksekusi class dari menu run.
  4. Melihat hasil dari eksekusi pada jendela console jika terdapat output.

Sunday, April 27, 2008

Eclipse : Instalasi dan Pengenalan (Windows)

Pengenalan

 
Walau memungkinkan tapi saya sangat yakin Anda tidak ingin coding Java dengan hanya bermodalkan editor sederhana seperti Notepad bukan ?

Apalagi kalau kita memang profesinya adalah programmer Java profesional dan dituntut untuk berproduktivitas tinggi.
Coding dengan text editor seperti notepad ini tentunya tidak salah, malah bisa membuat kita lebih menguasai cara kerja Java secara lebih baik. Tapi lama kelamaan bisa menyebabkan kita malas karena bosan, apalagi kalau program yang akan kita bangun sudah menjadi sangat kompleks. Sesuatu yang asyik seperti coding ini malah akhirnya menjadi momok bagi kita :)
 
Tuntutan untuk berproduktivitas tinggi sudah tidak terhindarkan di jaman super cepat ini, artinya kita dituntut untuk lebih cepat menghasilkan code, mendeteksi masalah, melakukan uji coba/testing, memaketkan program kita dan berbagai hal penting lainnya.

Hal-hal ini sangat sulit dicapai jika tidak didukung sebuah tool yang baik, yaitu sebuah IDE (Integrated Development Enviroment) yang bagus. IDE yang saya maksud adalah editor yang khusus dirancang untuk coding dan mencakup fungsi yang dapat mencakup semua hal yang telah saya sebutkan sebelumnya di atas.
 
Dan di dalam barisan produk IDE ini ada salah satu yang sangat pantas disebut dan memiliki pasar / komunitas yang sangat besar: Eclipse.
 

Apa itu Eclipse ?

 
Eclipse adalah IDE yang ditulis sepenuhnya menggunakan Java dan berbasiskan produk IBM yang bernama VisualAge. Code basenya kemudian diadopsi ke versi open source dan akhirnya berubah namanya menjadi Eclipse di bawah naungan yayasan Eclipse (Eclipse foundation).

Versi-versi Eclipse

Sejak tahun 2006 Eclipse Foundation secara rutin merilis versi-versi Eclipse setiap tahun. Setiap rilis kemudian diberi kode sesuai dengan nama-nama bulan dari planet Jupiter. Diantaranya adalah sebagai berikut :
  • Callisto (30 Juni 2006)
  • Europa (29 Juni 2007)
  • Ganymede (25 Juni 2008)

Distribusi Eclipse

Di samping itu Eclipse juga didistribusikan dalam beberapa project sesuai kebutuhan spesifik :
  • Sebagai Java IDE (fungsi utama)
  • C++ IDE
  • Java mobile / embedded device IDE
  • Web development
  • dsbnya

Instalasi Eclipse


Untuk instalasi Eclipse, sebelumnya sistem kita sudah harus terinstalasi runtime Java. Setelah itu kita dapat mengambil paket instalasi Eclipse di website http://www.eclipse.org. Klik link download.


 

Akan terlihat beberapa pilihan paket untuk Eclipse ini. Paket/distro tersebut dibagi berdasarkan kelengkapan fungsionalitasnya :

  • Eclipse IDE for Java Developers untuk pemrograman Java dengan fitur standar.
  • Eclipse IDE for Java EE Developers, diperuntukkan khusus untuk pembuatan aplikasi web dan hal-hal yang berhubungan dengan Java Enterprise Edition lainnya.
  • Eclipse IDE for C/C++ Developers, seperti namanya diperuntukkan untuk programmer C/C++
  • Eclipse IDE for RCP/Plugin-Developers, diperuntukkan untuk Anda yang ingin mengembangkan ekstensi atau plugin Eclipse. Sebelumnya paket ini dibungkus dengan nama Eclipse SDK.
  • Eclipse Classic, paket ini adalah "bungkus" lama dari Eclipse yang menyertakan pustaka untuk mengembangkan plugin.


Untuk pilihan ini kita mengambil Eclipse IDE for Java Developers sebagai langkah awal kita. Download paket dalam bentuk file zip dari server mirror yang paling dekat dengan kita.

Setelah selesai download file zip tersebut tinggal kita ekstrak misalkan ke c:\eclipse dan kita telah selesai melakukan 'instalasi' Eclipse.

 

Menjalankan Eclipse

Setelah instalasi Eclipse dapat dijalankan dengan cara :

  • Masuk ke folder c:\eclipse dan Anda akan menemukan file eclipse.exe, jalankan file tersebut.
  • Buat Anda yang lebih hardcore tentunya Anda juga dapat menjalankan Eclipse dari command line. Sebagai contoh saya menggunakan perintah "eclipse -vmargs -XstartOnFirstThread". Disini Anda dapat memodifikasi argumen tersebut, argumen ini juga dapat dimasukkan ke dalam file eclipse.ini jika Anda ingin menjalankan Eclipse dengan cara pada point no 1 di atas.


Workspace

Setelah dijalankan, pada awal dialog Eclipse akan menanyakan dimana konfigurasi Eclipse dan lokasi project Java akan disimpan (gambar).

 

 

Lokasi yang dimasukkan ini adalah lokasi workspace.

Secara default, pada Windows lokasi ini terdapat di C:\Documents and Settings\User\workspace. Klik tombol OK untuk menerima lokasi default ini.

Welcome screen

Pada saat pertama kali menjalankan Eclipse akan muncul welcome screen dengan beberapa link untuk membantu kita dalam bekerja dengan Eclipse.



Eclipse Workbench


Jika Anda telah keluar dari welcome screen atau Anda melakukan klik pada icon Go to workbench maka selanjutnya Anda akan memasuki bagian utama dari Eclipse, yaitu Workbench.

Workbench adalah lingkungan kerja kita di Eclipse. Workbench ini terdiri dari beberapa jendela/window yang memiliki fungsionalitas tersendiri seperti console, progress, dsbnya.

Dan setiap jendela kemudian bisa dipadukan menjadi bagian dari beberapa perspective - yaitu suatu gabungan/group beberapa view window yang dapat mendukung suatu jenis project. Misalkan ada perspective debug dengan kumpulan window seperti breakpoint, console, variable, dsbnya.

 

Hubungan antara perspective dan view ini dapat dilihat pada gambar diagram berikut.





Pada saat pertama kali memasuki workbench ini maka perspective standarnya adalah Java. Anda bisa lihat informasi tersebut pada sudut kanan atas workbench ini.

Untuk melihat perspective lain,  klik icon di samping perspective aktif. Pilih other apabila tidak ada daftar perspective yang diinginkan.

Sebagai contoh pada gambar di samping ini saya memiliki perspective aktif Java dan daftar perspektif untuk Debug, Java, Java Browsing serta Other yang dapat kita pilih dan aktifkan setiap saat.



Kesimpulan


  • IDE seperti Eclipse dapat menunjang peningkatan produktivitas kita dalam menghasilkan aplikasi.
  • Syarat instalasi Eclipse sangat sederhana, cukup ada instalasi Java runtime.
  • Eclipse didistribusikan dalam berbagai paket sesuai dengan kebutuhan dari penggunanya seperti Eclipse Java IDE yang diperuntukkan untuk pemrograman Java standar, Eclipse C/C++ untuk programmer C/C++, Plugin/RCP developer untuk developer plugin, dsbnya.
  • Eclipse dapat dijalankan dengan modifikasi argumen baik di command line maupun di file eclipse.ini.
  • Workspace adalah tempat kita menyimpan konfigurasi dan hasil kerja dari proyek kita di Eclipse.
  • Workbench adalah lingkungan kerja yang sebenarnya dari Eclipse dimana workbench ini dapat berbeda-beda tergantung perpective yang kita pilih.
  • Setiap perspective memiliki kombinasi dari beberapa window/view. Dengan demikian setiap window/view bisa menjadi bagian dari beberapa perspective.