• Tidak ada hasil yang ditemukan

ANALISA DAN PERANCANGAN

4.3.2. Tampilan Menu English-Indonesia

// display

display = Display.getDisplay(this); }

Potongan listing program diatas digunakan untuk membuat tampilan pada Gambar 4-1. Pertama kali dibuat atribut lsMain bertipe List, dengan item-item menu utama dideklarasikan sebagai konstanta MENU_ITEMS bertipe string. List inilah yang akan ditampilkan sebagai layar utama program. Pada list ini ditambahkan dua command, yaitu cmExit dan cmSelect.

4.3.2. Tampilan Menu English-Indonesia

Pada menu utama aplikasi terdapat menu English-Indonesia. Menu ini berfungsi untuk menterjemahkan kata dari Bahasa Inggris ke Bahasa Indonesia. Untuk menterjemahkan kata, mula-mula pengguna memasukkan kata Inggris yang akan diterjemahkan. Pada bagian ini terdapat proses searching kata, dimana pengguna tidak perlu memasukkan kata secara keseluruhan. Artinya bahwa pengguna cukup memasukkan keyword, dalam hal ini huruf awalnya saja dari kata yang akan diterjemahkan.

Gambar 4-2. Tampilan Masukan Keyword Inggris

public FormSearch(MidletDictionary midlet, Displayable prevDisplay, String arah) { // judul form super("Cari Kata"); this.midlet = midlet; this.prevDisplay = prevDisplay;

// textbox untuk mencari kata

tbSearch = new TextField (null, null, 120, TextField.ANY); // tambahkan command ke form

addCommand(cmSearch); addCommand(cmBack); setCommandListener(this); append(tbSearch); }

Potongan listing ini digunakan untuk membuat tampilan sesuai dengan Gambar 4-2, dimana terdapat form yang di dalamnya terdapat textfield untuk memasukkan keyword. Saat tombol search dipilih maka sistem akan melakukan pencarian dan kemudian menampilkan semua kata yang sesuai dengan keyword yang dimasukkan.

Selanjutnya pengguna tinggal memilih kata yang akan diterjemahkan. Kemudian dengan menekan tombol View maka hasil dari terjemahan akan ditampilkan.

Gambar 4-3. Tampilan Hasil Gambar 4-4. Tampilan Hasil Terjemahan.

Pencarian Berdasarkan Keyword

Tampilan diatas didapatkan dari hasil koneksi aplikasi ke server database. Saat melakukan koneksi aplikasi ini selalu melakukan pemanggilan terhadap class WordFetcher beserta penggunaan method-method di dalamnya. Berikut adalah listing program saat proses pencarian dilakukan.

public class WordFetcher implements Runnable { private MidletDictionary midlet;

private Displayable prevDisplay; private String arah;

private String cari; private String URL =

"http://localhost:80/kamus/wireless/ambil_data.php";

Mula-mula dideklarasikan variabel arah untuk penentu arah terjemahan (English-Indonesia atau (English-Indonesia-English), dan variabel cari untuk menyimpan keyword pencarian. URL di-set ke alamat host yang spesifik, dimana file ambil_data.php diletakkan yaitu http://bernadus.psm-ugm.com/kamus/wireless/ambil_data.php.

public WordFetcher(MidletDictionary midlet, Displayable prevDisplay, String arah, String cari) {

this.midlet = midlet;

this.prevDisplay = prevDisplay; this.arah = arah;

Bagian diatas adalah konstruktor WordFetcher dengan 4 parameter. Variabel pada konstruktor disamakan dengan variabel dari class.

public void run() { try {

// ambil kata dari hasil pencarian getWords(); } catch (Exception e) { System.err.println("Error: " + e.toString()); networkError(e.toString()); } }

Method diatas berfungsi untuk menjalankan pengambilan data dengan mencoba memanggil method getWords(). Jika terjadi error, maka akan ditampilkan error.

/** Method untuk mengambil kata melalui koneksi HTTP */ private void getWords() throws IOException {

InputStream is = null; StringBuffer sb = null; HttpConnection http = null; try {

// bubuhkan 'arah' dan 'cari' kedalam URL URL += "?arah=" + arah + "&cari=" + cari;

// ganti karakter yang tidak diizinkan dalam URL URL = Encoder.encodeURL(URL);

// ciptakan koneksi http

http = (HttpConnection) Connector.open(URL); // set metode request sebagai GET

http.setRequestMethod(HttpConnection.GET); // if respons server OK if (http.getResponseCode() == HttpConnection.HTTP_OK) { sb = new StringBuffer(); int ch; is = http.openInputStream(); // baca stream input

while ((ch = is.read()) != -1) sb.append((char) ch);

} else {

// respons server tidak OK

System.out.println("Network error."); networkError(); } catch (Exception e) { // terjadi kesalahan System.err.println("Error: " + e.toString()); networkError(e.toString()); finally { if (is != null) is.close(); if (sb != null) cari = sb.toString();

else

networkError(); if (http != null) http.close(); }

Inisialisasi InputStream is, StringBuffer sb, dan HttpConnection http ke null. Untuk memproses pencarian kata, maka pada URL yang telah diinisialisasikan sebelumnya ditambahkan 2 parameter yaitu arah dan cari agar pencarian kata dapat dilakukan dengan tepat, sehingga bentuk URL yang dikirimkan adalah

http://bernadus.psm-ugm.com/kamus/wireless/ambil_data.php?arah=arah&cari=cari.

Variabel arah diisi “ei” sedangkan parameter cari berisi string keyword kata yang ingin dicari. Kedua variabel ini dikirim ke file ambil_data.php, dimana di dalam file ini terdapat kueri yang melakukan pencarian dan mengambil kata dari database. Listing programnya seperti berikut.

if ($arah == 'ei') {

$kueri = "SELECT kata_ing, jenis_kata, kata_ind " . "FROM inggris a, indonesia b, arti c " . "WHERE kata_ing LIKE '".$cari."%' " . "AND a.id_ing=c.id_ing " .

"AND b.id_ind=c.id_ind " . "ORDER BY kata_ing"; $res = mysql_query($kueri);

while ($row = mysql_fetch_assoc($res)) { $line[] = $row;

}

Sebelum URL dikirim, terlebih dahulu dilakukan pengecekan data pada string URL jika terdapat karakter yang tidak diizinkan dengan memanggil method encodeURL(URL). Misalnya, jika pada keyword terdapat karakter è, maka akan diubah menjadi karakter %E8 sehingga valid untuk dikirim ke HTTP. Selanjutnya dibuat koneksi HTTP untuk mengakses URL. Setelah koneksi dibuka, metode

permintaan (request method) di-set sebagai GET. Perlu diketahui bahwa method GET akan menampilkan semua parameter yang dikirimkan melalui URL, sedangkan method POST akan menyembunyikannya.

Jika kode respons yang diperoleh dari koneksi HTTP adalah HTTP_OK, berarti permintaan layanan sukses diproses. Baris sb = new StringBuffer() berarti buat StringBuffer sb yang akan digunakan untuk menyimpan data string di memori untuk sementara. Sedangkan baris is = http.openInputStream() berarti buka InputStream is dari koneksi HTTP. Kemudian selama karakter yang dibaca dari is bukan karakter terakhir, masukkan karakter yang dibaca ke sb. Jika permintaan layanan tidak berhasil, akan ditampilkan pesan kesalahan jaringan “Network error.”.

Jika terjadi kesalahan sewaktu mencoba menjalankan blok try, tampilkan pesan kesalahan tersebut. Terakhir, jika is tidak kosong, tutup is. Jika sb tidak kosong, ubah sb ke bentuk string dan masukkan ke cari, jika sb kosong, tampilkan error. Jika http tidak kosong, tutup http, yang berarti koneksi HTTP ditutup.

Dokumen terkait