kali ini saya akan coba sharing cara membuat kamus sederhana, materi yang perlu dipelajari adalah Struktur data Map / Collection, Swing, dan Input /Output dalam membaca karakter dalam file. oke mari kita lakukan sekarang, nanti outputnya adalah sebagai berikut
terdapat textfield(form) untuk mengisi kata kunci, jika menekan [Enter] maka akan keluar artinya. jika tidak ada dalam kamus maka akan keluar gambar sebagai berikut
lalu anda ketikkan artinya dan tekan tombol [save], maka kata dan arti akan tersimpan
dalam database yang berupa file berekstensi .txt
mari kita mulai.
- membuat project di netbeanĀ beri nama LiLKamus atau apa saja
- membuat 2 kelas java yaitu KamusMap.java dan KamusApp.java, KamusMap.java digunakan untuk Logic atau proses dari program, sedangkan KamusApp.java digunakan sebagai interface (GUI).
- dalam project LiLKamus buat kelas dengan nama KamusMap.java, berikut ini adalah kodenya
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.HashMap; import java.util.Map; import java.util.StringTokenizer; import java.util.logging.Level; import java.util.logging.Logger; /** * * @author WIN-7 */ public class KamusMap { //struktur data map Map<String, String> dic = new HashMap<String, String>(); //object file untuk menyimpan dan membaca data kata - kata File f = new File("dataBase.txt"); BufferedWriter bw1; BufferedReader br; StringTokenizer token; //methode untuk menambah data kamus public boolean addData(String key, String val) { //variabel penentu sukses atau tidak operasi penyimpanannya boolean succes = false; try { bw1 = new BufferedWriter(new FileWriter(f, true)); dic.put(key, val); bw1.write(key + "="+val+"\n"); bw1.close(); succes = true; } catch (IOException ioe) { ioe.printStackTrace(); } return succes; } //method untuk membaca data kamus dari sebuah file public final void bacaData(File f) { try { if (!f.exists()) { f.createNewFile(); } br = new BufferedReader(new FileReader(f)); String dataBase; String key; String value; int car = 0; while ((car = br.read()) != -1) { dataBase = (char) car + br.readLine(); token = new StringTokenizer(dataBase, "="); key = token.nextToken(); value = token.nextToken(); dic.put(key, value); } //System.out.println(dic); br.close(); } catch (IOException e) { e.printStackTrace(); } } //konstruktor(pembuat object) public KamusMap() { String[] defaultKey = {"love", "i", "you"}; String[] defaultValue = {"cinta, cinta, cinta", "saya, aku, abdi", "kamu, dikau, kau, panjenengan"}; for (int i = 0; i < defaultKey.length; i++) { dic.put(defaultKey[i], defaultValue[i]); } bacaData(f); } //untuk mendapatkan artikata dari kata kunci yang diketikkan public String getArti(String k) { String arti = dic.get(k); if (arti == null) { arti = "maaf, kata tidak ditemukan"; } return arti; } public static void main(String[] args) { new KamusMap(); } }
- setelah kode logic / controlnya sudah selesai dibuat maka sekarang membuat interface / tampilannya nya, sederhana saja dengan menggunakan netbean,buatlah kelas baru pada project LiLKamus dengan klik menu New File -> Swing GUI Form -> Jframe From. lalu desainlah sesuai yang ada pada gambar berikut

dengan menggunakan netbean, anda bisa langsung drag n drop saja komponen yang anda perlukan dalam membuat sebuah GUI. jangan lupa untuk rubah nama variabel komponen sesuai dengan yang kita inginkan, berikut ini adalah daftar nama komponennya
JTextArea : value
JLabel : label_status
Jbutton : btn_cancel , btn_save_data, btn_add_opt
JTextField : key
JPanel : panel
setelah desain jadi, kita tambahkan kode2 dalam source codenya sehingga menjadi seperti ini
import java.awt.Color;
import java.awt.event.KeyEvent;
import java.util.Locale;
import java.util.Random;
import java.util.Timer;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author WIN-7
*/
public class KamusApp extends javax.swing.JFrame {
Random r = new Random();
KamusMap k = new KamusMap();
boolean add_option = false;
boolean add_data = false;
String[] status={"berhasil, boleh tambah lagi","oke.. berhasil lagi","guuud.. lagi ?","waaah.. banyak yg masuk","oke.. oke.. lagi ?","LiL Kamu_s by. Wero ^_^"};
int statusInt;
/** Creates new form KamusApp */
public KamusApp() {
initComponents();
btn_data_visible(add_data);
btn_opt_visible(add_option);
clear();
setVisible(true);
int loop=0;
while(loop<800){
setLocation(loop, 300);
loop++;
}
while(loop>400){
setLocation(loop, 300);
loop--;
}
}
public void btn_opt_visible(boolean val) {
btn_add_opt.setVisible(val);
}
public void btn_data_visible(boolean val) {
btn_save_data.setVisible(val);
btn_cancel.setVisible(val);
}
public void clear() {
key.setText("");
value.setText("");
label_status.setText(status[status.length-1]);
value.setEditable(false);
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new KamusApp().setVisible(true);
}
});
}
}
setelah itu tambahkan method – method untuk menangani event (klik mouse, key press) dengan cara sebagai berikut :
- klik kanan pada textField (key) -> Events->Key->KeyPressed, lalu lengkapi kodenya sehingga menjadi seperti ini
private void keyKeyPressed(java.awt.event.KeyEvent evt) {
if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
if(!add_data){
String kunci = key.getText().toLowerCase();
String arti = k.getArti(kunci);
value.setText(" " + arti);
if (arti.startsWith("maaf")) {
add_option = true;
} else {
add_option = false;
}
btn_opt_visible(add_option);
btn_add_opt.requestFocus();
}
}
}
- klik kanan pada textArea (value) ->Events->Mouse->MouseClicked dan lengkapi kodenya
private void valueMouseClicked(java.awt.event.MouseEvent evt) {
if(value.getText().endsWith("artinya disini"))
value.setText("");
value.setEditable(add_data);
}
- lalu klik kanan pada Button (cancel) -> Events->Action->ActionPerformed dan lengkapi kodenya
private void btn_cancelActionPerformed(java.awt.event.ActionEvent evt) {
add_option = false;
add_data = false;
btn_opt_visible(add_option);
btn_data_visible(add_data);
btn_cancel.setText("cancel");
clear();
}
- lakukan hal yang sama pada Button (add) dan lengkapi kodenya
private void btn_add_optActionPerformed(java.awt.event.ActionEvent evt) {
add_data = true;
add_option = false;
btn_data_visible(add_data);
btn_opt_visible(add_option);
value.setText("ketik artinya disini");
value.setEditable(add_data);
}
- lakukan hal yang sama pada Button (save) dan lengkapi kodenya
private void btn_save_dataActionPerformed(java.awt.event.ActionEvent evt) {
if(! value.getText().equals("")){
if(! key.getText().equals("")){
if(statusInt==status.length-2) statusInt=0;
String keys = key.getText().trim().toLowerCase();
String vals = value.getText().trim();
clear();
if (k.addData(keys, vals)) {
label_status.setText(status[statusInt]);
}
statusInt++;
btn_cancel.setText("back");
key.requestFocus();
}
}
}
- setelah itu jangan lupa untuk memberikan event tambahan berikut pada button (add) dengan cara klik kanan -> Events-> Key->KeyPressed dan lengkapi kodenya sebagai berikut.
private void btn_add_optKeyPressed(java.awt.event.KeyEvent evt) {
if(evt.getKeyCode()==KeyEvent.VK_ENTER){
add_data = true;
add_option = false;
btn_data_visible(add_data);
btn_opt_visible(add_option);
value.setText("ketik artinya disini");
value.setEditable(add_data);
}
}
oke sudah sejauh ini, ada pertanyaan? hehe santai dulu.. ngopi dulu gan… rehat.. ngaso..
oh iya yang terakhir sebagai tambahan saja, klik kanan pada komponen JFrame -:> Events -:> Mouse -:> MouseEntered dan lengkapi kodenya
private void formMouseEntered(java.awt.event.MouseEvent evt) {
Color[] col = {Color.MAGENTA,Color.LIGHT_GRAY,Color.CYAN,Color.GRAY,Color.GREEN,Color.PINK,Color.WHITE,Color.YELLOW};
int c = r.nextInt(col.length);
panel.setBackground(col[c]);
}
silahkan di run (shift + f6)
hehe saya rasa sudah cukup segitu aja, terimakasih sudah menyimak hehe



nice post mastah. saya perlu belajar banyak….
T_T
oke brother, hehe semoga bermanfaat. Keep Coding
kalo ada saran jangan sungkan2.. hehe biar lebih baik
Thank’s program ini cukup membantu.
LANJUTKAN
hehe terimakasih, ini program masih sangat2 sederhana, cuma mau kasih contoh aja salah satu cara utk bikin kamus itu bisa kayak gitu hehe. maap kalo gak bagus
thx gan
ane suka situs ente
cukup bermanfaat buat ane yang masi pemula soal java ^^
hehe oke gan.. thx dah mampir.. sori ya kalo krg lengap…
mantebb gan, lengkap banget tutorialnya,.
makasih yaa,..
wah berlebihan gan.. blog ane masih payah gan soalnya blm sempet nulis semua yg mau ane tulis hhe.. doain aja smg konsisten hhe thx gan dah mampir.. silahkan kasih saran gan
Gan, source nya tolong diupload juga dunk….
Saya udah mencoba tapi masih bungung.
Kalau ada source nya kan bisa dibuat perbandingan antara tutorial dan source nya.
Trims…
hehe sori gan, ane baru buka internet hhe lagi pulkam.. ini menurut saya sih udah lengkap sourcenya, kalo mau link download project nya sih dulu saya udah upload di mediaFire tapi saya lupa link nya.. saya catat di laptop saya. laptop saya lagi gak sama saya, nanti gan kalo laptop saya udah balik saya kasih link nya,, hehe maaf ya
Cara buat file .classnya gmana boz? ?
di project explorer, klik kanan file lalu java lalu pilih compile, nanti otomatis jika tidak ada eror akan membuat file.class. bisa dilihat di folder tempat project tersimpan. pokoknya setiap compile , akan membuat file.class. atau kalau bingung di run saja file nya . nanti akan membuat file . class
Ni Pakek aplikasi Apa Mas ????
editor / development tool nya pake netbeans
lha kalau cara membuat databasenya? biar bisa tersimpan kata2nya gmna gan?
aku ga pake database server. cuma pake file txt. kalo mau pake database juga bisa. dan caranya ga jauh beda cukup bikin 1 table bisa. dengan 3 kolom. yaitu id, kata, arti kata. abis itu tinggal pake query. biasa untuk insert dan update delete atau select.
thanks
welcome
hope it useful
mas alka name FB na apa?? pengen sharing..
heheh
Thanks,,, ya kak,
woke sama sama.. semangat yah..
help me..
setelah sukses tiba2 ditinggal 1 mlm g bs di run.,.,
di cek koding g ada perubahan.,.,
buat dari awal ttp g bs/././
bantuin dong bang./
bantu gimana maksudnya?
proGraM nya cKup MmbNTu…
Gmn Klau mmbuat program pnyiompanan data Mhasiswa…!!!???
terimakasih kunjungannya.. dulu sempet bikin untuk database mahasiswa kecil2an.. monggo diliat di daftar materi.
gan, kok tombol add nya ga muncul yaa pas aku run?
coba di clean project nya.. klik kanan project trus clean
udah di coba tapi tetep ga keluar terus, kenapa yaa?padahal ga ada script yang error.. hmmm
erornya apa?
ga ada yang error gan, cuma tombol add, cancel ma savenya ga muncul terus, hhee
Salut gan,, sangat membantu nih buat project UAS besok,, ehehehehe
Keep posting
alhamdulillah
.. keep learning
Mas boleh minta tolong ajarin bikin SUB menu g?
contoh misal ada 3 JButton dan saya kasih nama
1. Rumus Persegi 2. Rumus SegiTiga 3. Rumus Balok , nah kemudian saya mau dari masing” tersebuh ada isinya misal isinya LUAS dan KELILING…. dan dari masing” tersebut ketika di KLIK keluar rumusnya sesuai yg awal kita klik..
Exam. kita klik Persegi, kemudian muncul pilihan luas/ keliling, kita pilih keliling dan kemudian keluar rumus keliling tersebut gt mas? makasih..
menu? bisa pake JMenu and untuk sub menunya pake MenuItem.. kalo mau ada menu dbawah menu tinggal tambah JMenu. tinggal drag and drop di netbeans. kira2 gt.
gak bisa nyimpen kamusnya gan, setiap run pasti harus ngulang dari awal ngsave nya, ada saran gak gan???
jadi, ente coba masukin datanya kedatabase atau simpan dalambentuk file(.txt atau .properties atau. dat atau xml)kalo pengen mudah sih pake databse tapi kurang fleksible
mantab mas..
law pakek database gmn caranya masa..
tolong petunjuknya mas..
makasih..:)
secara logika gak jauh beda, cuma CRUD(create update delete) biasa, kamu
bikin aja databasenya dulu lalu tabel kata indonesia dengan kolom2 untuk kata dan artinya dalam bahasa lain.
1. sesuaikan aja, semua yang store ke file .txt kamu ubah jadi insert ke DB,
2. yg membaca file .txt jadi operasi select.
3. selebihnya tinggal sesuaikan operasi UI nya saja
mau nanya gan..
untuk mengatasi pesan erro pada koding nya tu gmn gan ?
bisa lbh jelas? error nya apa? terjadinya kapan? yang dimau kaya gimana?
gan, gmn caranya copy code netbeans java kaya gitu ?
.reply pls
? maksudnya apa ? kan tinggalcopy ajah
yang agan copy jadinya rapi,
mirip dengan IDE nya, gmn tuh ?
oh itu, jadi gini.. d wordpress ada tag xml untuk menulis kode program caranya semua kode program harus ada dalam tag ini [s0urcec0de language="java"] tulis kodenya disini.. [/s0urcec0de] tapi angka 0 diganti huruf o
gan tolong upload savean projectny dong ane udah mentok nyoba tapi banyak errorny..pls gan..
trimaksih sbelumny…
http://www.mediafire.com/download/e0h0h9khiidjzm5/LilKamus.rar ada disitu gan projectnya