Kamus HP J2ME/JME Bahasa Sasak/Lombok Indonesia

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:

  1. Bahasa lain (misalnya Jawa –> Inggris), karena saya orang Sasak-Lombok jadi saya buat Sasak-Indonesia saja.
  2. Data kosa kata bisa ditaruh pada file terpisah dengan “getResourceAsStream”
  3. Menambah kosa kata dengan RMS.
  4. Pencarian dengan similiar text
  5. dll

-= Sapto Sutardi =-

Mataram, 19 Januari 2011

28 tanggapan untuk posting ini.

  1. 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

    Balas

  2. 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.

    Balas

    • 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

      Balas

      • 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”)

  3. 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?

    Balas

    • 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.

      Balas

      • 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

  4. 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…

    Balas

    • 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.

      Balas

  5. Posted by diansyah on Maret 27, 2011 at 6:15 pm

    kalau bikin kamus j2me lewat neatbeans gimana caranya mas??makasih bantuannya

    Balas

  6. 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…

    Balas

  7. 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…:)

    Balas

  8. 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.

    Balas

  9. mas, gimana caranya nyimpen data textnya di file txt? langkah-langkahnya apa aja? makasih

    Balas

    • 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?

      Balas

  10. 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…

    Balas

    • 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.

      Balas

  11. [...] LinkedIn [...]

    Balas

  12. 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 ^^

    Balas

  13. saya udah coba aplikasinya…nice. tapi sistem pencariannya exact word..bukan wildcard seperti tanda * kalo di windows. Kalo mau dibikin wildcard gimana ya. thanks

    Balas

  14. saya mau coba neh belajar buat aplikasi mobile kaya gini, kalo ad kendala mohon bantuannya ya kak.. hehe

    Balas

    • 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.

      Balas

  15. Posted by polsek on Oktober 20, 2011 at 2:59 pm

    mas…bisa kirimin scripnya yang lengkap…. ke email saya………
    terimakasih

    Balas

  16. 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,

    Balas

Tinggalkan Balasan

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Ubah )

Twitter picture

You are commenting using your Twitter account. Log Out / Ubah )

Facebook photo

You are commenting using your Facebook account. Log Out / Ubah )

Connecting to %s

Ikuti

Get every new post delivered to your Inbox.