Pengenalan Web Framework: Apache Struts
Karena ini adalah artikel pertama saya tentang framework, ada baiknya kita tahu dulu apakah yang disebut framework, dan mengapa kita memerlukannya. Ok, secara singkat dapat dikatakan bahwa framework biasanya terdiri atas:
1. Library, adalah kumpulan kode siap pakai.
2. Pattern, pola kerjanya.
3. Rule. Misalnya file xxx harus diletakkan di direktori abc, buat file xml dengan nama blablabla.xml, letakkan di folder xyz.
Tujuan framework adalah untuk memudahkan programmer untuk melakukan pekerjaan yang umum dan dilakukan secara berulang-ulang. Dengan adanya framework, hal-hal tersebut menjadi lebih mudah karena framework sudah menyediakan fitur-fitur tersebut, sehingga waktu pengerjaan diharapkan bisa menjadi lebih cepat dan memperoleh hasil yang lebih baik. Keuntungan lain dari penggunaan framework adalah programming style dari tim developer bisa lebih seragam (konsisten), karena framework sudah menyediakan pattern yang sudah terbukti efektif untuk mendevelop aplikasi.
Kelemahan penggunaan framework adalah perlunya waktu untuk mempelajari cara penggunaan framework itu sendiri. Jika waktu tersebut masih jauh lebih pendek daripada waktu pengerjaan proyeknya, maka menggunakan framework akan memberikan manfaat yang signifikan.
Pernah merasa melakukan sesuatu yang sama, berulang2 pada setiap project ? Misalnya, untuk bikin aplikasi web, kita sering bekerja untuk:
1. Validasi input dari html form.
2. Mengambil semua parameter yang disertakan dalam http request, kemudian mengubahnya menjadi java object.
3. Membuat servlet untuk melakukan complex processing.
4. Melakukan manipulasi database.
5. Setelah processing selesai, forward control ke halaman JSP.
Jika jawabannya adalah YA, maka Anda bisa menggunakan web framework untuk mengerjakan hal-hal tersebut dengan lebih mudah.
Struts, mungkin Anda sering dengar, sering baca di forum, artikel atau lowongan pekerjaan. Bagi yang belum tahu, Struts adalah web development framework yang berada di bawah payung Apache Software Foundation. Struts menggunakan pattern Model-View-Controller (MVC) dengan memanfaatkan Java Bean (Model), Servlet (Controller) dan JSP (View). Sekilas pengenalan tentang Servlet dan JSP bisa dibaca di sini.
Berikut adalah gambar yang mendeskripsikan bagaimana struts framework bekerja dalam aplikasi web:
Membuat grafik dengan JFreeChart
Dengan JFreeChart, membuat grafik di java menjadi mudah. Kita tidak perlu lagi berurusan dengan low level Java 2D API. Ada banyak jenis chart yang disupport olleh JFreeChart, namun di contoh kali ini saya hanya akan membuat grafik sederhana (garis dan batang) dengan menggunakan static (dummy) data.
Ada dua library yang kita butuhkan yaitu jfreechart.jar dan jcommon.jar. Class utama dari JFreeChart adalah ChartFactory, yang merupakan factory class untuk membuat berbagai macam chart. Pseudo codenya:
1. Buat dataset dengan meng-create object DefaultCategoryDataset.
2. Tambahkan data dengan memanggil method addValue().
3. Definisikan title, label untuk sumbu X dan sumbu Y.
4. Create chart dengan memanggil method ChartFactory.createLineChart() yang akan menghasilkan object chart.
5. Buat object ChartPanel dengan memberikan object chart tadi sebagai argumen.
6. Tampilkan panel ini pada aplikasi swing anda.
Java Enterprise, mulai dari mana ? (part 3 – Eclipse & JBoss)
Ini sebenarnya hanya perbandingan saja, saya ingin mencoba membuat aplikasi yang persis sama dengan yang ada di artikel sebelumnya. Bedanya, di part 2, saya membuatnya dengan IDE Netbeans dan mendeploynya di Glassfish, sedangkan kali ini saya akan menggunakan IDE Eclipse 3.4 for Java EE developer dan mendeploynya di JBoss versi 4.2.2.
Karena di Java kita punya banyak pilihan, semoga artikel ini bisa memberi gambaran tentang alternatif-alternatif yang bisa kita gunakan, sekaligus menunjukkan bahwa aplikasi yang sama bisa dideploy di atas 2 application server yang berbeda tanpa harus melakukan banyak perubahan.
Di artikel ini saya tidak akan mengulang penjelasan tentang apa itu Java EE dan modul-modul yang terdapat di dalamnya. Silahkan lihat artikel ini untuk overview Java EE, dan artikel itu untuk penjelasan komponen Java EE yang digunakan di dalam contoh aplikasi ini.
1. Download dan install
Eclipse 3.4 for Java EE developer bisa didownload dari http://www.eclipse.org/downloads/. JBoss bisa didownload di http://www.jboss.org/jbossas/downloads/, saya menggunakan versi 4.2.2 GA. Ekstrak file-file zip tersebut ke komputer Anda, selanjutnya saya akan menyebut direktori instalasi eclipse sebagai ECLIPSE_HOME dan direktori instalasi JBoss sebagai JBOSS_HOME.
2. Register JBoss ke Eclipse
Klik menu Windows -> Preferences. Pilih item Server -> Runtime Environments di tree. Kemudian klik tombol Add untuk meregister application server baru ke dalam eclipse.
Di wizard New Server Environment, pilih JBoss -> JBoss v4.2, klik next, browse JBOSS_HOME anda, kemudian klik finish. Hasilnya, kita bisa melihat server JBoss kita teregister di eclipse, dan kita bisa mengontrol server ini seperti halnya Netbeans mengontrol Glassfish.
Java Enterprise, mulai dari mana ? (part 2 – Netbeans & Glassfish)
Artikel ini merupakan tutorial yang berisi aplikasi kalkulator sederhana dengan menggunakan arsitektur Java EE. Jika Anda belum tahu tentang apa itu Java EE, silahkan baca artikel ini terlebih dahulu. Kali ini kita akan menggunakan Netbeans 6.1 sebagai IDE dan Glasshfish v2 sebagai application servernya.
1. Download & install
Kedua software tersebut bisa didownload sekaligus di http://download.netbeans.org/netbeans/6.1/final/. Install netbeans dan glassfish di komputer Anda dengan mengikuti wizard.
2. Setup Project
Start Netbeans, pilih menu File -> New Project.
Pada dialog New Project, pilih categori Enterprise -> Enterprise Application, klik Next.
Masukkan nama project TestEnterpriseProject.
Pilih Server Glassfish V2, Java EE Version 5, dan pastikan Anda mengaktifkan pilihan Create EJB Module dan Create Web Application Module, kemudian klik Finish.
Maka Netbeans akan mengcreate project TestEnterpriseProject sebagai project utama, project TestEnterpriseProject-ejb sebagai sub-project untuk modul EJB, dan TestEnterpriseProject-war sebagai sub-project untuk modul web.
Java Enterprise, mulai dari mana ?
Java Enterprise, J2EE, Java EE adalah istilah-istilah yang mungkin sulit dimengerti oleh sebagian orang, bahkan programer Java (yang baru) sekalipun. Di artikel kali ini, saya akan berusaha memberikan gambaran, apa itu Java Enterprise, dan bagaimana kita bisa memanfaatkannya dalam membangun sebuah aplikasi.
J2EE adalah singkatan dari Java 2 Enterprise Edition, dan sejak versi 5 berubah menjadi Java EE atau cukup Java Enterprise Edition. Java EE adalah sebuah spesifikasi, bukan berupa product berwujud nyata. Ada banyak vendor software atau komunitas opensource membuat software berupa application server yang mengikuti standard Java EE sehingga disebut Java EE compliant application server.
Application server ini memungkinkan kita untuk membuat aplikasi berskala enterprise dengan lebih mudah karena application server sudah menyediakan berbagai fasilitas yang siap untuk digunakan sebagai pendukung aplikasi kita.
Full Java EE compliant application server menyediakan berbagai service seperti web container, messaging, web service, mail, directory service, database connectivity, distributed transaction, remoting, persistence, dan lain lain.
Contoh application server adalah Glassfish, Oracle AS, JBoss, IBM Websphere, JRun, JOnAS, dll. Apache Tomcat adalah salah satu webserver/webcontainer untuk aplikasi web Java yang cukup terkenal, tapi bukan termasuk Java EE application server karena tidak menyediakan semua service yang ada di spesifikasi Java EE. Jika kita membuka website sun.java.com, dan menuju halaman tentang Java EE, maka kita bisa mendownload salah satu produk implementasi Java EE yang dibuat di bawah kendali Sun Microsystem, yaitu Sun Java System Application Server, yang sebenarnya adalah nama lain dari Glassfish application server.
Mengapa perlu ada Java EE ?
Statement vs PreparedStatement vs Batch, Security and Performance
Jika kita membuat aplikasi yang memanipulasi database dengan plain JDBC, Statement dan PreparedStatement object mempunyai peranan yang penting. Keduanya sama-sama dapat digunakan untuk mengirim perintah query ke database. Sekarang, kita akan coba melihat apa yang membuat mereka berbeda.
Note: Source code untuk class DBManager bisa didapat disini.
1. Security attack: SQL Injection
Yang pertama, dilihat dari sudut pandang keamanan, khususnya terhadap serangan yang disebut SQL injection. Penyerang biasanya mencoba untuk menembus sistem dengan cara merusak SQL query yang kita buat. Triknya adalah dengan menggunakan susunan karakter, yang bila digabungkan dengan query sebenarnya akan menghasilkan nilai yang berbeda.
Berikut adalah tabel yang akan kita gunakan untuk percobaan.
CREATE TABLE `myblog`.`user_security` ( `username` VARCHAR(50) NOT NULL DEFAULT '', `pswd` VARCHAR(255) NOT NULL DEFAULT '', PRIMARY KEY(`username`) ) ENGINE = InnoDB;
Isi dengan sample data:
Dengan kode berikut, kita akan mencoba untuk menjalankan test menggunakan Statement dan PreparedStatement dengan input yang sama, yaitu:
username: aaa
pswd: bbb’ OR ‘1′=’1
Read more »
Pengolahan database dengan Java ? No problem
Aplikasi dan database adalah dua hal yang sangat berkaitan. Hampir mustahil rasanya jika kita membuat sebuah aplikasi yang cukup besar, tanpa adanya database. Sebaliknya, dengan database yang besar, tapi tidak ada aplikasi, user akan mengalami kesulitan saat akan melakukan pengolahan data. Untuk ini semua, kita membutuhkan bahasa pemrograman yang menyediakan fasilitas untuk melakukan pengolahan database dengan mudah.
Java menyediakan fitur pengolahan database ini dengan cukup baik melalui teknologi yang dinamakan Java Database Connectivity (JDBC). JDBC ini sebenarnya adalah sebuah spesifikasi yang mengatur bagaimana sebuah database server dapat diolah dari aplikasi Java. Implementasi dari JDBC ini dibuat oleh masing-masing vendor database berupa sebuah library yang berisi kumpulan class yang mengikuti standar/spesifikasi JDBC, biasanya disebut juga sebagai JDBC driver. Oleh karena itu, masing-masing database mempunyai driver JDBC sendiri seperti Oracle menamainya SQLJ/JDBC, MySQL menamainya MySQL Connector/J.
Lho ? Jadi cara akses databasenya beda-beda, sesuai dengan database yang digunakan ?
Untungnya tidak demikian, jangan khawatir. Idealnya, kita bisa menggunakan konsep yang sama, cara pengolahan yang sama, source code yang sama, class yang sama untuk mengolah berbagai macam database yang sudah memiliki implementasi JDBC driver. Jadi jika kita ingin menghubungkan aplikasi Java kita dengan database lain, kita cukup mengubah JDBC driver dan connection propertiesnya saja.
Pada contoh kali ini kita akan melakukan pengolahan data sederhana menggunakan database MySQL. Untuk ini, kita membutuhkan MySQL versi 5 dan MySQL JDBC Driver versi 5.0. Silahkan install MySQL servernya, jika belum terinstall. Ada baiknya anda menginstall MySQL GUI Tools juga untuk memudahkan administrasi database. Untuk Java nya, Anda dapat menggunakan IDE apa saja, saya menggunakan Eclipse IDE.
Eclipse – Java IDE, untuk apa ?
Kenapa kita butuh yang namanya IDE ?
Kita bisa membuat sebuah aplikasi Java, hanya dengan bermodalkan notepad, textpad, editplus, vi, vim, dan berbagai macam editor teks lainnya untuk mengetik source code kemudian meng-compile nya dengan menggunakan shell/command prompt. Tidak ada yang salah dengan metode ini, malah saya sangat menganjurkan pada setiap teman-teman yang baru belajar untuk memulai pembelajarannya dengan metode seperti ini. Tujuannya, agar kita bisa paham tentang semua yang kita kerjakan sampai ke low level, sebelum kita menggunakan perangkat lain yang serba otomatis dan canggih. Sehingga, jika suatu saat kita menghadapi masalah dengan perangkat otomatis tersebut, kita bisa mencari penyebabnya dan menyelesaikannya sendiri.
Jika kita hanya membuat aplikasi yang berskala kecil, mungkin kurang dari 10 file source code, dengan 100 baris per file nya, metode di atas masih bisa dilakukan. Tapi, jika project yang akan dikerjakan adalah project besar, terdiri dari ratusan file source code, total ratusan ribu baris kode, dengan puluhan library, maka kita membutuhkan perlengkapan perang yang bisa mengatur semua itu dengan baik dan menyediakan berbagai fasilitas untuk mempermudah kita dalam membangun aplikasi. Perangkat itulah yang disebut sebagai Integrated Development Environment (IDE).
Di Java, kita mempunyai banyak pilihan IDE, di antaranya Eclipse, Netbeans, IntelliJ IDEA, Borland JBuilder, Oracle JDeveloper, dan lain lain. Eclipse dan Netbeans adalah IDE yang banyak digunakan karena gratis dan open source.
Kali ini, kita akan mencoba membuat sebuah aplikasi sederhana dengan menggunakan Eclipse sebagai IDEnya. Langkah-langkahnya sebagai berikut: Read more »
Blank waktu TA, salah siapa ?
Saya baru saja baca posting seseorang di salah satu forum programmer. Sebenarnya, bukan sebuah posting yang luar biasa tapi tulisan tersebut mengingatkan saya pada beberapa posting senada yang saya pernah baca sebelumnya. I don’t want to offense or attack someone in this blog. I just want to share, and hope less people will do this embarrassing thing.
Topiknya adalah seorang mahasiswa yang akan memulai project tugas akhir / skripsinya. Permasalahannya ada pada kenyataan bahwa sang mahasiswa yang akan mengerjakan tugas akhir (TA) ini ternyata tidak memahami sama sekali alias nge-blank tentang apa yang harus dikerjakannya sebagai project TA.
Ada beberapa posting yang menarik perhatian saya.
1. Brainstorming.
Ini yang paling saya suka. Kalau ada mahasiswa akan memulai TA nya, tapi masih bingung dengan topik yang diambil, kemudian meminta masukan dari para forumer. Banyak kepala banyak ide, meskipun belum tentu masukannya diterima, tapi paling tidak bisa menambah wawasan si mahasiswa dan menjadi bahan pertimbangan untuk mengambil topik untuk TA nya.
2. Posting lowongan.
Posting berisi lowongan parttime programmer untuk project kecil. Ternyata ini adalah lowongan untuk programmer yang bersedia untuk menjadi mentor untuk TA si mahasiswa. Yang lebih parah, ada yang minta dibuatkan aplikasi dari nol sampai jadi. Read more »
Lebih dari sekedar HelloWord
Artikel ini merupakan lanjutan dari artikel sebelumnya, yang berhenti sampai membuat dan manjalankan aplikasi yang terkenal, HelloWorld. Sekarang kita akan belajar apa itu classpath, imports, file java, file class, file jar, swing, dan hal-hal yang berkaitan erat dengan pemrograman Java lebih dalam daripada sekedar HelloWorld.
Saya akan tetap menggunakan editor sederhana seperti notepad dan melakukan semuanya secara manual. Mengapa tidak langsung pakai editor seperti Eclipse, Netbeans atau IDE canggih yang lain ?
Alasan pertama, karena ini akan membuat kita memahami “behind the scene things”, yang merupakan fundamental dari Java, sehingga ketika kita menggunakan IDE yang canggih, kita sudah mengetahui, apa yang sebenarnya terjadi.
Alasan kedua, supaya saya bisa berbagi tentang eclipse atau netbeans di artikel berikutnya… Hehe, it’s not a real reason friend
Tipe Data
Java mengenal 2 macam tipe data. Yang pertama adalah tipe data primitif, yaitu byte, short, char, int, long, float, dan double. Yang kedua adalah tipe data object. Ini adalah tipe yang dibuat dari definisi class. Root class di Java adalah class Object, semua class yang ada di library java maupun yang kita buat sendiri adalah turunan dari class Object.
Ok, mari kita mulai dengan membuat aplikasi Kalkulator. Direktori kerja saya saat ini adalah C:\Java. Buka notepad, kemudian ketik kode berikut (saya tetap berpendapat bahwa mengetik lebih baik daripada copy and paste).
package suhearie.blog.morehelloworld;
public class Kalkulator {
public static void main(String[] args) {
if (args.length < 2) {
System.out.println("Penggunaan: java Kalkulator operand1 operand2");
}
else {
System.out.println("Hasil: 5");
}
}
}







