suhe arie's pages

Programmer juga manusia

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.

Continue reading

Advertisements

August 26, 2008 Posted by | Java, Java Enterprise | , , , , , , | 15 Comments

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 ?

Continue reading

August 26, 2008 Posted by | Java, Java Enterprise | , | 12 Comments

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
Continue reading

August 21, 2008 Posted by | Database, Java | , , , , , , | 12 Comments

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.

Continue reading

August 21, 2008 Posted by | Database, Java | , , | 12 Comments

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: Continue reading

August 16, 2008 Posted by | Java | , , , , | 29 Comments

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. Continue reading

August 14, 2008 Posted by | Inside my mind | , , | 6 Comments