Berikut ini contoh aplikasi kamus sederhana pada J2ME/JME. Kamus ini hanya 7 kosa kata, yakni Sasak/Lombok <–> Indonesia.
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
/**
* @author Sapto Sutardi Fakultas Kedokteran Univ. Mataram
*/
public class KamusSasakIndo extends MIDlet implements CommandListener {
public Form frSasak, frIndo;
public Display display;
public Command cmTransSasak, cmTransIndo, cmExit, cmBackSasak, cmBackIndo, cmKeUtama;
public TextField tfSasak, tfIndo;
public TextBox tbSasak, tbIndo;
public List lsUtama;
public Alert alNotFound;
public String[] sasak = {"uwah", "mangan", "side", "tidoq", "ende ne", "araq", "kepeng"};
public String[] indo = {"sudah", "makan", "anda", "tidur", "tidak", "ada", "uang"};
public KamusSasakIndo(){
display = Display.getDisplay(this);
alNotFound = new Alert("Maaf", "Kata yang Anda cari ndeq ne araq.", null, AlertType.INFO);
alNotFound.setTimeout(3000);
}
public void startApp() {
get_lsUtama();
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void exitMIDlet() {
display.setCurrent(null);
destroyApp(false);
notifyDestroyed();
}
public void commandAction(Command c, Displayable d) {
if(c == cmTransSasak){
String sSasak = tfSasak.getString().toLowerCase();
for(int i =0; i<sasak.length; i++){
if(sSasak.equals(sasak[i])){
System.out.println("Posisi :"+i);
get_vSasak();
tbSasak.setString(indo[i]);
break;
} else {
display.setCurrent(alNotFound);
}
}
}
if(c == cmTransIndo){
String sSasak = tfIndo.getString().toLowerCase();
for(int i =0; i<indo.length; i++){
if(sSasak.equals(indo[i])){
System.out.println("Posisi :"+i);
get_vIndo();
tbIndo.setString(sasak[i]);
break;
} else {
display.setCurrent(alNotFound);
}
}
}
else if(c == cmExit){
destroyApp(false);
notifyDestroyed();
}
else if (c == List.SELECT_COMMAND) {
if (d == lsUtama){
switch (lsUtama.getSelectedIndex()) {
case 0: {
get_Sasak();
break;
}
case 1: {
get_Indo();
break;
}
}
}
}
else if(c == cmBackSasak){
display.setCurrent(frSasak);
}
else if(c == cmBackIndo){
display.setCurrent(frIndo);
}
else if(c == cmKeUtama){
get_Sasak();
display.setCurrent(lsUtama);
}
}
public List get_lsUtama(){
lsUtama = new List("Kamus Sasak Indo", List.IMPLICIT);
lsUtama.append("Sasak -> Indo", null);
lsUtama.append("Indo -> Sasak", null);
cmExit = new Command("Keluar", Command.EXIT, 1);
lsUtama.addCommand(cmExit);
lsUtama.setCommandListener(this);
display.setCurrent(lsUtama);
return lsUtama;
}
public Form get_Sasak(){
frSasak = new Form("Sasak -> Indo");
tfSasak = new TextField("Kata Sasak", null, 20, TextField.ANY);
cmTransSasak = new Command("Terjemah", Command.SCREEN, 1);
cmKeUtama = new Command("Kembali", Command.SCREEN, 2);
frSasak.append(tfSasak);
frSasak.addCommand(cmTransSasak);
frSasak.addCommand(cmKeUtama);
frSasak.setCommandListener(this);
display.setCurrent(frSasak);
return frSasak;
}
public Form get_Indo(){
frIndo = new Form("Indo -> Sasak");
tfIndo = new TextField("Kata Indo", null, 20, TextField.ANY);
cmTransIndo = new Command("Terjemah", Command.SCREEN, 1);
cmKeUtama = new Command("Kembali", Command.SCREEN, 2);
frIndo.append(tfIndo);
frIndo.addCommand(cmTransIndo);
frIndo.addCommand(cmKeUtama);
frIndo.setCommandListener(this);
display.setCurrent(frIndo);
return frIndo;
}
public TextBox get_vSasak(){
tbSasak = new TextBox(tfSasak.getString(), "", 100, 1);
cmBackSasak = new Command("Kembali", Command.SCREEN, 1);
tbSasak.addCommand(cmBackSasak);
tbSasak.setCommandListener(this);
display.setCurrent(tbSasak);
return tbSasak;
}
public TextBox get_vIndo(){
tbIndo= new TextBox(tfIndo.getString(), "", 100, 1);
cmBackIndo = new Command("Kembali", Command.SCREEN, 1);
tbIndo.addCommand(cmBackIndo);
tbIndo.setCommandListener(this);
display.setCurrent(tbIndo);
return tbIndo;
}
}
Bisa dikembangkan:
- Bahasa lain (misalnya Jawa –> Inggris), karena saya orang Sasak-Lombok jadi saya buat Sasak-Indonesia saja.
- Data kosa kata bisa ditaruh pada file terpisah dengan “getResourceAsStream”
- Menambah kosa kata dengan RMS.
- Pencarian dengan similiar text
- dll
-= Sapto Sutardi =-
Mataram, 19 Januari 2011
Posted by endra on Februari 8, 2011 at 11:32 pm
bisa berbagi ga gan?
saya pengen juga buat kamus sendiri
ada tutorialnya?
mohon bantuannya..
thanks
Posted by sapto on Februari 9, 2011 at 12:25 am
Endra, silakan Anda posting kasusnya. Dengan senang hati jika sy bisa bantu, akan sy bantu. Kalo sy tidak tau, akan sy cari tau.
Posted by endra krisna on Februari 10, 2011 at 9:42 pm
apa yang sy butuhkan cuma kamus sesuai dengan kebutuhan sy untuk mengajar bahsa kepada anak didik saya,nantinya berguna buat mereka
tp tidak tahu mulai dari mana buatnya,karena saya memang buta dengan pembuatan mobile application. saya sempat membaca postingan sodara Sapto dan searching di google tp tetep bingung juga.pertanyaan:
1. apa saja yang sy butuhkan?
2. apa yang sy kerjakan selanjutnya?
terima kasih
Posted by sapto on Maret 9, 2011 at 10:32 am
1. Apa y dibutuhkan?
Untuk mempermudah pembuatan aplikasi java anda membutuhkan IDE. Sy merekomendasikan Endro menggunakan Netbeans, karena toolsnya yang lengkap.
2. Apa selanjutnya?
Bertanya, latihan, googling, dan gabung ke forum (seperti “Netbeans-indonesia”)
Posted by endra on Maret 8, 2011 at 11:43 pm
terima kasih pelajarannya, saya sudah berhasil mengcompile source code anda,
saya bisa menambahkan beberapa kata saja, nah sekarang masalahnya bagaimana bisa untuk digunakan pada semua hp?apa ada pengaturannya?
Posted by sapto on Maret 9, 2011 at 10:25 am
Agar bisa dipakai disemua tipe HP yang support java langkahnya adalah Endro tinggal mengatur konfigurasi alat (alias CLDC) dan profil alat (alias MIDP) menjadi CLDC 1.0 dan MIDP 2.0.
Jk Endro melakukan kompilasi pakai Netbeans ato WTK 3.0 maka di Tab “Project” klik kanan di project kamusnya, di ‘category’ pilih ‘platform’, nah disana keliatan CLDC dan MIDP, atur masing2 1.0 dan 2.0.
Posted by endra on April 5, 2011 at 12:28 pm
ada saran untuk pengembangan tingkat selanjutnya, pencarian dengan similar text, masih belum bisa saya temukan, terimakasih
Posted by amel yuppie on Maret 18, 2011 at 10:02 am
kaa mau tanya..klo menyisipkan append pada menu gmn ya????
trus klo 1 project ada 2 midlet itu bisa kan???? makasiih tolong bantu yaa,, buat tugas akhir saya…
Posted by sapto on April 7, 2011 at 10:55 pm
Amel.
1. Cara sisipkan menu tambahan: tinggal tambahkan kode NamaList.append(“Text yang mau ditambah”, image);
- contoh: lsUtama.append(“Sasak -> Indo”, null);
null: jika tidak menambahkan image.
- Actionnya Anda atur di commandAction dengan mengambil ideks list tersebut (code: getSelectedIndex()).
2. 1 Project ada 2 midlet: bisa, cuman jelek, cz nanti di HP akan terlihat terpisah, sebaiknya 1 projec untuk 1 midlet.
3. Tugas akhir? via email sy mungkin lebih luwes, jika ada waktu insyaAllah saya jawab.
Posted by diansyah on Maret 27, 2011 at 6:15 pm
kalau bikin kamus j2me lewat neatbeans gimana caranya mas??makasih bantuannya
Posted by sapto on April 7, 2011 at 10:56 pm
Dian, coba liat balasan sy di atas. Makasih.
Posted by cifa on April 11, 2011 at 12:56 pm
assalamualaikum
mas…gmn yah
kodenya kalo saya pake buat unicode??
saya sering error….
tolong ya jwbnnya
terimaksih…
Posted by sapto on Juli 1, 2011 at 5:37 pm
Sering error atau tidak sama sekali pernah berhasil unicode-nya?
Posted by haneefachmad on April 19, 2011 at 9:31 pm
mas..minta pencerahan…kalo sistem kamusnya ada pengoreksian(pembeanaran atau pencarian kata yang mempunyai eja kata yang sama)itu gimana source kodenya?mohon bantuannya…haniefachmad@yahoo.co.id #makasi sebelumnya…:)
Posted by tri atmaja on Mei 4, 2011 at 12:00 am
saya pengen bikin kamus tentang TI gan, bisa dikirim gk tutorialnya?
kirim ke email ane gan,…
makasih sebelumnya ya gan.
Posted by sapto on Juli 1, 2011 at 5:38 pm
Kembangkan saja code di atas.
Posted by NafnganEf on Juni 30, 2011 at 10:31 am
mas, gimana caranya nyimpen data textnya di file txt? langkah-langkahnya apa aja? makasih
Posted by sapto on Juli 1, 2011 at 5:41 pm
Simpen data dalam bentuk ‘.txt’ sering error pada beberapa HP. Untuk mensiasatinya jika anda sekedar mau menambahkan library maka anda tinggal meng-otak-atik di RMS-nya. O ya, apa mas sudah bisa bermain-main di RMS?
Posted by manja on Juli 5, 2011 at 8:32 am
ommm admin bisa jelaskan bariss ini..??
public void commandAction(Command c, Displayable d) {
if(c == cmTransSasak){
String sSasak = tfSasak.getString().toLowerCase();
for(int i =0; i<sasak.length; i++){
if(sSasak.equals(sasak[i])){
System.out.println("Posisi :"+i);
get_vSasak();
tbSasak.setString(indo[i]);
break;
} else {
display.setCurrent(alNotFound);
}
}
}
maaf omm newbiee,, skalian izin kopass anee om…
Posted by sapto on Agustus 12, 2011 at 10:07 am
- commandAction: tempat pengaturan perintah, biasanya kiata mengatur 2 hal: (1) jika di layar muncul xx (Display) dan (2) jika ditekan tombol (Command)
- Kode “c == cmTransSasak”, artinya jika ditekan tombol cmTransSasak, maka lakukan peritah berikut.
- Kode sisanya adalah pencarian dengn menggunkan teknik pencocokan kata. Prisipnya sderhana, teks yg diambil pada TextField dicocokkan (equal) satu persatu dengan baris array pada library ([] sasak). Jika ketemu, tandai posisi kata tersebut. Nah slanjutnya mengambil kata y sudah disiapkan pada array[] indo.
Posted by Kamus English-Indonesia j2me on Juli 14, 2011 at 8:42 am
[...] LinkedIn [...]
Posted by husein on Juli 20, 2011 at 2:33 am
tengkyu bang Admin,
saya tunggu pengembangan selanjutnya nih, terutama RMS yg bang Admin maksud, cz klo kosa katanya pake array gitu mah ribet klo datanya banyak pan, haha. tengkyu skali lagi ^^
Posted by sapto on Agustus 12, 2011 at 10:09 am
Husein, lagi males sy buat. Ntar klo ada kesempatan & kemauan, insyA sy KABULKAN permintaannya.
Posted by hasimsyah on Juli 29, 2011 at 12:09 am
saya udah coba aplikasinya…nice. tapi sistem pencariannya exact word..bukan wildcard seperti tanda * kalo di windows. Kalo mau dibikin wildcard gimana ya. thanks
Posted by Galih Prasetyo on September 26, 2011 at 4:56 pm
saya mau coba neh belajar buat aplikasi mobile kaya gini, kalo ad kendala mohon bantuannya ya kak.. hehe
Posted by sapto on Oktober 25, 2011 at 11:34 pm
Email sy saja, FB (sapto_sutardi@yahoo.com). Maaf, tpi biasanya sy bales agak lama. Cz bnayak kgiatan di rumah sakit.
Posted by polsek on Oktober 20, 2011 at 2:59 pm
mas…bisa kirimin scripnya yang lengkap…. ke email saya………
terimakasih
Posted by yolet87 on November 9, 2011 at 2:50 pm
ass.
mas. kamus mas kn cm 2 menu (sasak-ina) dan (ina-indonesia)
klo saya mau bikin 7 menu gmn ya mas,, ada solusi g mas..
sekalian koding nya ya mas klo bisa..heee
terima kasih banyak mas..wass,