suhe arie's pages

Programmer juga manusia

Concert, or Church Service?

What do you think this is?

Hillsong Church, London.. Minggu kemarin, saya berkesempatan untuk datang ke gereja yang asalnya dari Australia ini, untuk kebaktian sesi yang kedua, jam 1 siang. Uniknya, mereka tidak menggunakan gedung gereja yang permanen, tapi sebuah gedung teater/musikal yang sehari-harinya digunakan untuk konser dan pertunjukan musikal. Di London, gedung ini (Dominion Theater) cukup dikenal karena setiap harinya gedung ini dipenuhi ratusan orang yang ingin menikmati teater musikal We Will Rock You, by Queen.

I enjoyed the service, meskipun datang agak terlambat karena harus naik kereta dari apartment sekitar empat puluh lima menit (alasan doang sih). The praise & worship was magnificent, plus a blessing and touching words of God. Lain kali kesana lagi deh, dan semoga ga pake telat :)

God bless you all..

November 11, 2010 Posted by | My Days | 4 Comments

Oh Indonesia, unluckiest country?

Akhirnya, niat untuk menulis bangkit lagi, thanks to si Teppy di thefreakyteppy dot wordpress dot com!

Seperti deja’vu, pengalaman ini terulang lagi dengan 3 keywords, London, Indonesia, Bencana.

Sekali lagi tanah air kita harus berduka, kali ini malah harus menanggung dua bencana alam pada saat yang hampir bersamaan, meskipun terjadi di dua daerah yang berbeda. Gempa dan tsunami di pulau Mentawai dan meletusnya gunung Merapi di Jogja, really devastating. Turut berduka yang mendalam untuk teman-teman yang ada di sana.

Sehari setelah bencana tersebut terjadi, saya tahu tentang berita ini dari BBC news dan dari surat kabar yang cukup terkenal di sini, di London. I just can say, Oh My God…

Evening Standard

Evening Standard

 

Di kantor, beberapa orang teman bertanya, “How is Indonesia?”, “What’s happen in your country”, “Is your family OK?”, dan beberapa pertanyaan sejenis. Saya langsung teringat kejadian yang mirip seperti ini, awal tahun lalu, di moment yang sama, ketika saya sedang dalam tugas kantor untuk ‘mengunjungi’ company’s headquarter, di London, seperti saat ini.
Tahun lalu, berita cukup menggemparkan datang dari Indonesia, terjadi banjir yang menewaskan banyak orang karena tanggul di Situ Gintung jebol. Saya ingat sekali, saat itu saya membaca surat kabar Metro (bacaan orang London tiap hari), di halaman 2, hampir satu halaman penuh, memberitakan tentang jebolnya Situ Gintung yang mengakibatkan kerugian jiwa dan materi yang luar biasa.

Read more »

November 2, 2010 Posted by | Inside my mind, My Days | 1 Comment

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:

Read more »

October 5, 2008 Posted by | Java, Java Enterprise | , , , | 11 Comments

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.

Read more »

September 6, 2008 Posted by | Java | , , | 14 Comments

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.

Read more »

September 1, 2008 Posted by | Java, Java Enterprise | , , , , , , | 14 Comments

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.

Read more »

August 26, 2008 Posted by | Java, Java Enterprise | , , , , , , | 10 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 ?

Read more »

August 26, 2008 Posted by | Java, Java Enterprise | , | 7 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
Read more »

August 21, 2008 Posted by | Database, Java | , , , , , , | 7 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.

Read more »

August 21, 2008 Posted by | Database, Java | , , | 10 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: Read more »

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

Follow

Get every new post delivered to your Inbox.