Koneksi Java – XML via JDOM
Nah ini gw oprek pas TA kemaren, tapi baru sempet publikasi sekarang. Waktu itu cari cara gimana supaya gw bisa koneksi ke XML pake Java. Nah dapet beberapa referensi dari internet, ternyata bisa pake parser yang namanya JDOM. Parser JDOM bisa di download di sini:
Agak repot memang, habis download kita masih harus install file library, kemudian baru bikin interface buat baca file xmlnya, tapi ada baiknya dicoba duluJ
Setelah download JDOM, import file JDOM itu ke Library. Cara importnya (melalui Netbeans) begini:
- Masuk ke propertiesnya project, seperti gambar dibawah:
Setelah masuk properties, pilih Category Libraries, kemudian pada tab Compile, tekan tombol Add Library
- Pilih Manage Libraries, kemudian pada Library Manager Tab Classpath, tekan tombol Add.
- Nah, tinggal pilih lokasi tempat JDOM tadi disimpan, setelah itu JDOM sudah bisa digunakan
- Sekarang buat kelas bernama FilterFileXML, dan masukkan ke dalam project anda…
- Setelah itu, saatnya untuk membuat dialog untuk membaca file XML. Tambahkan dulu library2 berikut pada kelas yang anda pakai :
- Tambahkan atribut berikut di kelas anda.
- Lihat File xml, untuk distandarkan buat dibaca… kalo punya gw kemaren strukturnya seperti ini - Setelah itu, tambahkan method berikut di kelas anda.
import java.io.File;
import java.util.Hashtable;
import javax.swing.filechooser.FileFilter;
public class FilterFileXML extends FileFilter{
/** @author : Fajar Saptono
*
*/
private static String HIDDEN_FILE = "Hidden File";
private Hashtable saringan = null;
public SaringBerkasXML(){
this.saringan = new Hashtable();
this.saringan.put("xml",this);
}
public boolean accept(File f) {
if(f != null) {
if(f.isDirectory()) {
return true;
}
String ekstensi = getEkstensi(f);
if(ekstensi != null && this.saringan.get(getEkstensi(f)) != null) {
return true;
};
}
return false;
}
public static String getEkstensi(File f) {
String ext = null;
String s = f.getName();
int i = s.lastIndexOf('.');
if (i > 0 && i < s.length() - 1) {
ext = s.substring(i+1).toLowerCase();
}
return ext;
}
public String getDescription() {
return null;
}
}
import java.io.File;
import java.io.IOException;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
private String fileXML;
private Document dokumenInput;
<graf>
<sisi>
<sisinya>
<id>e1</id>
<bobot>90</bobot>
<koneksi>Dalu-Dalu(1)</koneksi>
<koneksi>Ujung Batu(2)</koneksi>
</sisinya>
<simpul>
<simpulnya>
<id>DaluDalu(1)</id>
<posisi-x>2</posisi-x>
<posisi-y>5</posisi-y>
</simpulnya>
</simpul>
</graf>
private void bacaFileXML () throws JDOMException, IOException {
SAXBuilder builder = new SAXBuilder();
this. dokumenInput = builder.build(new File(this.fileXML));
/*Kalo kemaren TA gw tentang Shortest Path, jadi ada sisi dan simpul..
* Nah yang ini bisa dikembangkan sendiri, tergantung dengan kasus anda
*/
this.sisi = new Hashtable<String, Sisi>();
this.simpul = new Hashtable<String, Simpul>();
Element root = this.inputDocument.getRootElement();
Element sisixml = root.getChild("sisi");
List sisixml1 = sisixml.getChildren("sisinya");
Element simpulxml = root.getChild("simpul");
List simpulxml1 = simpulxml.getChildren("simpulnya");
for(int i=0; i<simpulxml1.size();i++){
Elemen simpulSkr = (Elemen)simpulxml1.get(i);
String idSimpul = simpulSkr.getChild("id").getValue();
int x = this.delta_x + Integer.parseInt(simpulSkr.getChild("posisi-x").getValue()) * this.zoom;
int y = this.delta_y + Integer.parseInt(simpulSkr.getChild("posisi-y").getValue()) * this.zoom;
this.max_x = Math.max(x, this.max_x);
this.max_y = Math.max(y,this.max_y);
this.simpul.put(idSimpul,new Simpul(idSimpul,x,y,(int)(this.zoom*0.5),this));
}
for(int i= 0; i<sisixml1.size();i++){
Elemen sisiSkr = (Elemen)sisixml1.get(i);
String idSisi = sisiSkr.getChild("id").getValue();
int bobot = Integer.parseInt(sisiSkr.getChild("bobot").getValue());
List koneksiSisi = sisiSkr.getChildren("koneksi");
String v1 = ((Elemen)koneksiSisi.get(0)).getValue();
String v2 = ((Elemen)koneksiSisi.get(1)).getValue();
Simpul simpul1 = this.getSimpul(v1);
Simpul simpul2 = this.getSimpul(v2);
Sisi sisi = new Sisi(idSisi,bobot,simpul1,simpul2,(this.zoom/4));
simpul1.tambahSisi(sisi);
simpul2.tambahSisi(sisi);
this.sisi.put(idSisi,sisi);
}
}
5 comments so far
Leave a reply






Wahh thanx ya dah berkunjung.. ak jg bakalan sering2 maen krumah mu ini jar.. Kyk nya kita punya ketertarikan yg sama niy, JAVA tapi ak harus manggil km “suhu” heeheee mohon bimbingannya ya suhu fajar heehehee..
Oiiya, tukar2an link yok jar,, ak nge-link-in blogmu d blog ku ya jar..
Gpp deh template-nya sama, tu membuktikan kita selera yg sama hehehee..
Wah… hehe sama aja yud, kita sama orang yang ingin menuntut ilmu lebih dalam lagi…. hahaha, tapi kayaknya minggu ini aq masih sering off, soale LAN Card di Notebookq rusak
..
hahaha…mas fajar merendah mulu niyy hehehee
Dari dulu kerusakan komputer selalu menghampirimu jar, ada aja yg rusak dari motherboard sampe hardisk. Kyk nya laptopnya blum diadain sukuran tuhh sejak beli kakakaa…
Fajaaar.. ga kuat sy jar ngliat scriptnya:D
Haha..baru belajar nic… baru belajar nge blog juga