Arsip untuk ‘Java’ Kategori
SVN di Netbeans
Subversion, atau SVN adalah software yang sering digunakan untuk mengatur proses pengembangan software. SVN ini biasa digunakan oleh proyek yang dikerjakan secara tim untuk memproses kerja tim agar bisa diakses bersama-sama..
Di projek terbaru gw di Universitas Sanata Dharma, gw baru nyobain yang namanya SVN, kebetulan temen-temen yang lain pake windows dan mereka pake tools Tortoize SVN. Sebelumnya gw pasangin RapidSVN di Ubuntu gw,
Sekedar share, setelah lihat-lihat di menu Netbeans ada menu versioning. Disitu juga ada submenu commit, update dan menu-menu SVN lainnya. Untuk peggunaan, menu-menu yang digunakan sama dengan tools SVN lain, hanya saja kalau projek anda menggunakan java, lebih mudah untuk pake netbeans sebagai tools SVN, karena anda bisa commit langsung dari Netbeans dan tidak perlu keluar dari software
Program Scanner Sederhana
Berdasarkan janji gw pada tulisan yang disini maka gw akan berbagi dengan teman-teman bagaimana caranya untuk membuat program scanner sederhana. Nah disini gw pake Java dengan kakas Netbeans 6.0 untuk buat program. Program ini melakukan pencarian pada 10 record, dimana setiap record disimpan dlm 1 file tersendiri. Nantinya begitu program melakukan pencarian, program dapat mencari dengan menelusuri ke seluruh record. Tapi sayangnya gw gak sempat buat mengkategorikan kata-kata tersebut terletak pada record ke berapa di suatu file. Soale tugasnya juga dibuat dalam waktu satu malam sebelum dikumpul
.
Berikut adalah potongan sourcecodenya :
- Masukkan/import library berikut:
import java.util.TreeMap; //untuk data kata dan jumlahnya import java.util.Scanner; //untuk pembacaan file import java.io.FileReader; //untuk pembacaan file import java.io.FileNotFoundException; //eksepsi file tidak ditemukan
- Tambahkan Method getJumlah (untuk mengambil nilai jumlah dari kata apabila kta ditemukan (memakai method containsKey). Tambahkan parameter : kata (String) dan frekData (TreeMap )
if (frekData.containsKey(kata)){
return frekData.get(kata);
} else {
return 0;
}
- Tambahkan method cetakJumlah (untuk mencetak jumlah kata ke dalam textArea). Tambahkan parameter : frekData (TreeMap )
;
String carinya= txtCari.getText();
txtHasil.append(""+carinya+" => "+frekData.get(carinya)+" kali\n");
- Tambahkan method bacaFile (untuk membaca file text, representasi ke dalam array). Tambahkan parameter : frekData (TreeMap )
Scanner filenya[] = new Scanner[10];
String kata[] = new String[10]; //array untuk file
Integer jumlah; // Jumlah kata yang dicari
try{
filenya[0] = new Scanner(new FileReader("file1.txt"));
filenya[1] = new Scanner(new FileReader("file2.txt"));
filenya[2] = new Scanner(new FileReader("file3.txt"));
filenya[3] = new Scanner(new FileReader("file4.txt"));
filenya[4] = new Scanner(new FileReader("file5.txt"));
filenya[5] = new Scanner(new FileReader("file6.txt"));
filenya[6] = new Scanner(new FileReader("file7.txt"));
filenya[7] = new Scanner(new FileReader("file8.txt"));
filenya[8] = new Scanner(new FileReader("file9.txt"));
filenya[9] = new Scanner(new FileReader("file10.txt"));
} catch (FileNotFoundException e) {
System.err.println(e);
return;
}
//mencari pada setiap file sampai file ke 10
for(int i=0; i<10;i++){
while (filenya[i].hasNext()){
// Baca kata berikutnya
kata[i] = filenya[i].next();
// Ambil jumlah kata terakhir dari file
jumlah = getJumlah(kata[i], frekData) + 1;
frekData.put(kata[i], jumlah);
}
}
}
Beberapa method untuk menangani String di Java
Setelah beberapa hari mengulik tugas Informasi dan Mulitimedia untuk bikin indexing file, akhirnya gw searching juga beberapa perintah String di Java. Secara gw belum pernah utak atik string di Java dan di bahasa lain juga jarang make. Ini beberapa method di Java untuk penanganan String yang gw ambil dari beberapa sumber. Diantaranya:
- charAt(int index) : mengambil karakter ke index dari string (index dimulai dari 0)
- concat(String s) : menggabungkan string s ke belakang string, sama dengan operator +
- contains(CharSequence s) : memeriksa apakah string mengandung urutan karakter s
- endsWith(String s) : memeriksa apakah string diakhiri dengan string s
- equals(Object s) : memeriksa apakah string sama dengan object s (case sensitive)
- equalsIgnoreCase(String s) memeriksa apakah string sama dengan string s (case insensitive)
- isEmpty() : digunakan untuk mengecek apakah string kosong atau tidak
- indexOf(String/char s) : memeriksa letak string/karakter s di dalam string
- lastIndexOf(String/char s) : memeriksa letak string/karakter s di dalam string (dicari dari akhir string)
- length() : banyak karakter yang membentuk string
- replace(<old>, <new>) : digunakan untuk mengganti <old> menjadi <new>
- startsWith(String s) : memeriksa apakah string diawali dengan string s
- substring(int n, int m) : mengambil string dimulai dari posisi ke n sampai m (karakter pertama dimulai dari posisi 0)
- split(String s) : memotong string berdasarkan delimiter string s. Hasil pemotongan berupa array string
- toLowerCase() : menghasilkan string dalam format huruf kecil
- toUpperCase() : menghasilkan string dalam format huruf kapital
- trim() : menghasilkan string yang telah dihapus spasi di depan dan di belakangnya
- valueOf(val) : digunakan untuk konversi nilai menjadi string
Membuat background image pada Frame/Panel di Java
Post ini gw bwt atas request dari seseorang.. Ini mbak, buat background image di Form Java.
Pada swing di Java, tidak disediakan objek khusus untuk membuat background image, biasanya orang2 banyak menggunakan JLabel, dan mengatur di property imageicon untuk bisa membuat suatu halaman bergambar. Nah, masalahnya objek di Java tidak bisa ditimpa dengan objek lainnya, jadi kita tidak bisa meletakkan button di atas label, atau yang lainnya. Background pada frame/panel bisa kita akali dengan membuat suatu kelas baru yang nantinya kita gunakan pada kelas panel yang ingin kita isi (tampilan menu utama). Langkah-langkahnya sebagai berikut:
- Buat sebuah kelas baru, dengan nama IsiPanel.java
package gui;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.MediaTracker;
import java.awt.Toolkit;
class IsiPanel extends javax.swing.JPanel {
/**
* @author : Fajar Saptono
**/
Image bgimage = null;
IsiPanel(String namaGambar){
if(namaGambar != null) {
MediaTracker mt = new MediaTracker(this);
bgimage = Toolkit.getDefaultToolkit().getImage(getClass().getResource(namaGambar));//namaGambar
mt.addImage(bgimage, 0);
try {
mt.waitForAll();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
if(bgimage != null) {
int imwidth = bgimage.getWidth(null);
int imheight = bgimage.getHeight(null);
if((imwidth > 0) && (imheight > 0)) {
for(int y = 0; y<getHeight(); y+=imheight) {
for(int x = 0; x<getWidth(); x+=imwidth) {
g.drawImage(bgimage, x, y, null);
}
}
}
}
}
- Kemudian pada konstruktor form utama, tambahkan kode berikut
setContentPane(new IsiPanel("img/bg.png"));
</span><span style="font-size:10pt;">
- Nah, kamu udah bikin kelas utama dengan background berisi gambar yang ada di path img/bg.png. Selamat mencobaJ
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);
}
}
Komentar (3)
Komentar (8)
Komentar (10)




