02.26.07
Spring…Mule….Spring…Mule
Spring..Mule..Spring..Mule sudah beberapa hari pikiranku disibukkan dengan dua kata ini. Sebagai pengangguran pasca pendadaran saya dengan teman senasib berencana develop “something” untuk membantu pengembangan aplikasi menggunakan dua framework ini. Dan yang gila kita sama sekali belum pernah bersentuhan dengan yang namanya Mule dan punya sangat sedikit pengalaman dengan Spring.
Secara sederhana spring adalah framework pada Java yang memudahkan dalam pembangunan aplikasi dan penggantian teknologi yang dipake (Mohon koreksi dari pakar jika salah :) ). Sedang Mule adalah implementasi ESB (Entreprise Service Bus) yang memudahkan dalam integrasi aplikasi. Teknologi mule ini sangat hebat karena bisa berkomunikasi dengan bermacam macam protokol smtp, pop3, http, dan vm (internal virtual machine). Dengan mule komponen komponen yang dimanage nya bisa dipindah pindah dengan bebas, tinggal mengubah istilah nya “endpoint” jadi kalau misal di awal aplikasi hanya akan ditempatkan dalam satu komputer maka bisa digunakan endpoint vm:// dan jika misal dipindah pada suatu server yang menyediakan protokol http:// tinggal diubah konfigurasi nya, tanpa sedikitpun menggant kode dan servise akan tetap bisa digunakan. Maaf kalau penjelasan nya kurang tepat dan berbelat belit maklum baru belajar.
Rencananya beberapa hari ke depan insyaallah mo bikin aplikasi sederhana dengan Mule, tampak nya learning curve (waktu belajar) nya bakal lama nih, fuiiih. Tapi harus tetap sabar dan semangat, kalau kita istiqamah insyaallah hasilnya akan baik, asal dengan niat baik dan ikhlas serta dengan cara yang ma’ruf tentunya. Sesungguhnya dalam kesulitan ada kemudahan, sesungguhnya dalam kesulitan ada kemudahan. Tugas manusia kan cuma berniat dan berusaha, hasilnya serahkan pada ALLAH swt kalau toh gagal saya yakin itu lah yang terbaik.Boleh jadi engkau menyukai sesuatu padahal itu buruk bagimu dan boleh jadi engkau membenci sesuatu padahal itu baik bagimu, ALLAH yang mengetahui apa yang terbaik untuk makhluknya.
02.09.07
Upload gambar dengan JSF (Java Server Faces)
Saat ini JSF tidak menyediakan implementasi standar untuk mengupload file ke Server. Sehingga implementasi standar (JSF Reference Implentation) yang dibuat oleh Sun tidak menyediakannya. Untuk itu dibutuhkan beberapa library tambahan yaitu common-fileupload yang disediakan oleh proyek Apache Jakarta Common dan Apache MyFaces. Sebagai catatan MyFaces adalah implementasi JSF yang dibuat oleh orang orang Apache. MyFaces meyediakan beberapa komponen tambahan diluar standar salah satunya komponen untuk mengupload file.
02.06.07
foreach dan generik
Generik
Generik adalah kemampuan baru pada Java 1.5 yang digunakan dalam pembentukan Collection (List, Set, dll). Para pengguna Java tentu mengetahui salah satu kelemahan penggunaan Collection sebelumnya adalah adanya keharusan untuk mengcasting Objek saat diambil dari Collection. Proses pengcastingan ini cukup berbahaya karena pengecekan apakah Casting bisa dilakukan dengan benar dilakukan saat runtime sehingga berisiko menghasilkan RuntimeException.
Untuk mengatasi hal di atas maka saat pembentukan Collection, telah diberitahu lebih dahulu tipe apa yang akan ada di dalam Collection inilah yang disebut generik. Generik dilakukan dengan menambahkan tipe data/tipe objek saat pendeklarasian Collection.
Contoh deklarasi lama:
List l = new ArrayList();
Set s = new HashSet();
Contoh deklarasi dengan generik:
List <Integer>l = new ArrayList<Integer>();
Set<Double> s = new HashSet<Double>();
Penggunaan Generik mengakibatkan dua hal:
1. Kompiler akan mengecek apakah elemen yang ditambahkan ke dalam Collection valid atau tidak sehingga saat anda menambahkan elemen yang bertipe data berbeda dengan yang bisa diterima Collection maka akan terjadi Compile Error.
import java.util.*;
class Test{
public static void main (String [] args){
List<Integer> l = new ArrayList<Integer>();
l.add(new Integer(1));
}
}
Pada kode di atas Collection yang berupa List hanya akan menerima data yang bertipe Integer. Ketika anda mencoba menambahkan tipe data yang lain ke dalam List tersebut maka list tersebut akan error.
import java.util.*;
class Test{
public static void main (String [] args){
List<Integer> l = new ArrayList<Integer>();
l.add(new Double(1));
}
}
Sebagai contoh saya mencoba memasukkan data bertipe Double. Jika anda menggunakan Java 1.5 ke atas kode akan mengalami error saat kompilasi, tetapi tidak jika anda menggunakan versi sebelumnya.
2. Dalam pengambilan objek dari Collection anda tidak perlu lagi melakukan pengcastingan karena tipe data yang ada pada Collection telah didefinisikan lebih dahulu.
import java.util.*;
class Test{
public static void main (String [] args){
List<Integer> l = new ArrayList<Integer>();
l.add(new Integer(1));
Integer i=l.get(0);
}
}
Foreach
Foreach adalah syntax baru Java yang diperkenalkan semenjak Java 1.5. Foreach sangat berguna ketika anda ingin menjelajahi semua elemen dalam satu Collection atau array. Syntax baru ini dikeluarkan karena sebelumnya untuk melakukan penjelajahan pada Collection menggunakan metode Iterator yang cukup rumit dalam penggunaannya.
import java.util.*;
class Test{
public static void main (String [] args){
List<Integer> l = new ArrayList<Integer>();
l.add(1);
l.add(2);
Iterator iter=l.iterator();
while(iter.hasNext()){
Object i=iter.next();
System.out.println(i);
}
}
}
Dalam penggunaan iterator seperti contoh di atas untuk menjelajahi Collection satu persatu diperlukan minimal 2 baris kode, yaitu mengambil objek iterator dan mengiterasinya menggunakan while. Satu lagi kelemahan penggunaan iterator yang lain adalah keharusan mengcasting Collection walapun Collection telah menggunakan Generik.
Dengan foreach hal di atas bisa disederhanakan
import java.util.*;
class Test{
public static void main (String [] args){
List<Integer> l = new ArrayList<Integer>();
l.add(1);
l.add(2);
for(Integer i : l){
System.out.println(i);
}
}
}
Jika sebelumnya untuk menjelajahi Collection dibutuhkan minimal dua baris kode, maka dengan foreach kita hanya membutuhkan satu baris kode. Foreach juga sepenuhnya menggunakan kemampuan generik sehingga kita tidak perlu pengcastingan lebih dahulu.
Secara umum syntax foreach adalah:
for(<tipedatadalam Collection atay array> <namavariabel> : <Collection atau array yang akan dijelajahi>)
<statemen>
Dalam penggunaannya dalam array, foreach tidak terlalu banyak berguna karena dengan menggunakan perulangan for biasa penjelajahan array bisa dilakukan dengan maksimal. Salah satu kelebihan foreach dibandingkan dengan for dalam penjelajahan array adalah syntax yang sederhana dan tidak perlunya menggunakan indeks saat mengakses elemen dalam array.
import java.util.*;
class Test{
public static void main (String [] args){
int [] arr={1,4,5};
for(int i : arr)
System.out.println(i);
}
}
Tetapi dalam menjelajahi array foreach memiliki keterbatasan, bahwa di dalam foreach kita tidak bisa melakukan pemanipulasian terhadap isi array. Karena foreach tidak mereferensi langsung pada isi array tersebut.
import java.util.*;
class Test{
public static void main (String [] args){
int [] arr={1,4,5};
for(int i :arr)
i=i+1;
for(int i : arr)
System.out.println(i);
}
}
Kode di atas sama sekali tidak akan mengubah isi array array. Sehingga saat anda mencetaknya yang tampil tetap array yang asli.
Daftar Kata
Collection : Tipe umum Struktur data Java, struktur data List, Set, Map, dan lain lain diturunkan dari kelas ini. Biasanya digunakan untuk mengacu pada keseluruhan struktur data pada Java.
RuntimeException : Eksepsi yang dilempar Java ketika terjadi kesalahan saat program Java dijalankan




