Implementasi Diagram Kelas Aplikasi kamus Bahasa Dayak Ngaju Indonesia berbasis android menggunakan metode Hash

b. Implementasi Diagram Kelas

Admin No. Kelas Atribut Method Tipe 1 FormUtama.java kamusBtn : ImageButton updateBtn : ImageButton tentangBtn : ImageButton extStorageDirectory : File basepath : String onCreateBudle : void copyFileToExternalSD : void copyFileInputStream, OutputStream : void inisialisasi : void onClickView : void onCreateOptionsMenuM enu : boolean onOptionsItemSelectedM enuItem : boolean Interface 2 FormKamus.java btnCari : Button btnHslHtg : Button buttonGanti : Button d : Kata cariKata : Kata directory : File editText : EditText inJumTab : String inJumTabIn : String jKataDayakTabrakan : int jKataIndoTabrakan : int jumTabKamusDayak : int jumTabKamusIndo : int kataInput : String sdCard : File tabelHashDayak : Kamus tabelHashIndo : Kamus textViewInput : TextView textView : TextView textDayak : TextView textIndo : TextView viewJumTab : TextView viewJumTabIn : TextView token : StringTokenizer konstanta : int modulu : int konstantaKamus : String ModuluKamus : String onCreateBudle : void onClickview : void setModulu : void setInisialisasi : void membentukKamusDayak : void membentukKamusIndo :void tampilJumlahTabrakanint ,int : void Interface 3 FormUpdate.java extStorageDirectory : File basepath : String progressBar : ProgressDialog progressBarStatus : int progressBarHandler : Handler fileSize : long btnUpdate : button onCreateBundle : void Download : int BukaKoneksiString : InputStream DownloadFIleString,Stri ng : int copyFileInputStream, OutputStream : void Interface 4 Kata.java kunci : String nilai : String kataString, String Entity 5 GantiModulu.java onCreateBudle : void Interface 6 Kamus.java tableHash : Kata[] modPembagi : int Kamusint : Konstruktor fungsiHashString : int Entity jumTabrakan : String[] getIncrementString, int : int masukanKataKata, int : int HitungTabrakanKataStri ng, int : int CariString : Kata Tabel 4.2 Kelas, Atribut, Method dan Tipe Tipe Interface kelas FormUtama.java, FormKamus.java, FormUpdate.java , dan GantiModulu.java merupakan tampilan antarmuka aplikasi. Selain sebagai tampilan kelas FormUtama.java untuk melakukan proses copy file dari resource android ke dalam penyimpanan eksternal di smartphone. Kelas FormKamus.java selain sebagai tampilan akan digunakan sebagai pembentuk kamus, pencarian kata dan arti kata, proses mendapatkan jumlah tabrakan kata, proses mendapatkan jumlah kata yang mengalami tabrakan. Pada kelas FormUpdate.java selain sebagai tampilan juga akan digunakan untuk menjalankan proses update database. Kelas GantiModulu.java sebagai tampilan reference ganti modulu yang akan di gunakan pada kelas FormKamus.java . Kelas – kelas interface di gambarkan dengan table sebagai berikut : FormUtama basepath : String extStorageDirectory : File kamusBtn : ImageButton tentangBtn : ImageButton updateBtn : ImageButton copyFileInputStream, OutputStream : void copyFileToExternalSD : void inisialisasi : void onClickView : void onCreateBundle : void Untuk kelas FormUtama.java, FormKamus.java , FormUpdate.java dan GantiModulu.java akan dijabarkan sebagai berikut : 1. FormUtama.java Untuk kelas interface FormUtama.java admin fungsi, proses algortima, dan Source Code sama dengan yang di miliki oleh user . 2. FormKamus.java Dalam FormKamus.java admin fungsi tampilan menu, membentuk kamus dan pencarian kata, memiliki algoritma dan source yang sama pada FormKamus.java user . Sedikit perbedaan dengan FormKamus.java user pada FormKamus.java admin pada method membentukKamusDayak dan FormKamus btnCari : Button btnGanti : Button cariKata : Kata d : Kata directory : File editText : EditText sdCard : File tabelHashDayak : Kamus tabelHashIndo : Kamus token : StringTokenizer txtDayak : TextView txtIndo : TextView txtV : TextView txtVInput : TextView copyFileInputStream, OutputStream : void copyFileToExternalSD : void inisialisasi : void onClickView : void onCreateBundle : void FormUpdate extStorageDirectory : File basepath : String progressBar : ProgressDialog progressBarStatus : int progressBarHandler : Handler fileSize : long btnUpdate : button onCreateBundle : void Download : int BukaKoneksiString : InputStream DownloadFIleString,String : int copyFileInputStream, OutputStream : void GantiModulu onCreateBudle : void membentukKamusIndo akan dilakukan proses untuk mendapatkan jumlah tabrakan kata dan jumlah kata yang mengalami tabrakan. Untuk mendapatkan jumlah tabrakan dan jumlah kata yang mengalami tabrakan pada method membentukKamusDayak dan membentukKamusIndo akan memanfaatkan method masukanKataKata,int dan HitungTabrakanKataString,int pada kelas Kamus.java. sebelum dilakukan proses mendapatkan jumlah tabrakan kata dan jumlah kata yang mengalami tabrakan pada method membentukKamusDayak dan membentukKamusIndo akan dibentuk 1 buah obyek dari kelas K amus.java. pada method membentukKamusDayak akan dibentuk obyek tablehashDayak dan pada method membentukKamusIndo akan dibentuk obyek tablehashIndo . Pada saat pembentukan kedua obyek ini akan diberikan nilai modulu yang akan digunakan pada Kamus.java . Fungsi : - Sebagai tampilan menu pencarian kata - Membentuk kamus Dayak Ngaju – Indonesia - Membentuk kamus Indonesia – Dayak Ngaju - Melakukan Pencarian Kata - Mendapatkan jumlah tabrakan kata - Mendapatkan jumlah kata yang mengalami tabrakan - Menampilkan jumlah tabrakan kata dan jumlah kata yang mengalami tabrakan Proses Algoritma : 1 membentuk obyek tabelHash, d 2 membaca data dari database 3 if data =null 4 while data bisa dibaca membaca data perbaris membagi data menjadi kata dan arti kata data kata = kata data arti kata = arti kata d = d data kata, data arti kata TabrakanKata= TabrakanKata+ tabelHashDayak. Masukan kata d jumKataTabrakan=jumKataTabrakan. HitungTabrakanKatadata kata 5 endwhile 6 tutup koneksi 7 endif Source Code tabelHashIndo = new Kamusmodulu; try { File file = new Filedirectory, indodayak.txt ; FileInputStream fIn = new FileInputStreamfile; InputStreamReader isr = new InputStreamReaderfIn; BufferedReader bR = new BufferedReaderisr; if fIn = null { String database; String key; String value; int car; while car = bR.read = -1 { database = char car + bR.readLine; token = new StringTokenizerdatabase, = ; key = token.nextToken; value = token.nextToken; d = new Katakey, value; jumTabKataIndo += tabelHashIndo.masukanKatad,konstanta; jKataIndoTabrakan += tabelHashIndo.HitungTabrakanKatakey; } fIn.close; } Untuk menampilkan jumlah tabrakan kata dan jumlah kata yang mengalami tabrakan pada kelas interface FormKamus.java akan di tampilkan dengan memakai method tampilJumlahTabrakanint,intString. Untuk pemanggilan method tampilJumlahTabrakanint,intString akan di lakukan pada method onClickView v . Berikut adalah source code method tampilJumlahTabrakanint,intString dan pemanggilan tampilJumlahTabrakanint,intString pada onClickView v : Langkah 1 Langkah 2 Langkah 5 Langkah 3 Langkah 4 Langkah 6 Langkah 7 Source Code : publicvoid tampilJumlahTabrakan int Jumtabrakan, int jumKataTabrakan, String nama { Toast.makeTextgetBaseContext, Jumlah Tabrakan Kata +nama+ : + String.valueOfJumtabrakan + \n + Jumlah Kata yang Mengalami Tabrakan : + String.valueOfjumKataTabrakan, Toast. LENGTH_LONG .show; } Source Code pemanggilan method tampilJumlahTabrakanint,intString: if textDayak .getText.toString.equals Dayak { tampilJumlahTabrakan jumTabKataDayak , jKataDayakTabrakan , Dayak ; } else { tampilJumlahTabrakan jumTabKataIndo , jKataIndoTabrakan , Indo ; } 3. FormUpdate.java Untuk kelas interface FormUpdate.java admin fungsi, proses algortima, dan Source Code sama dengan yang di miliki oleh user . 4. GantiModulu.java Untuk kelas interface GantiModulu.java akan berfungsi untuk tampilan input modulu. Modulu yang diinputkan akan digunakan pada kelas FormKamus.java. berikut adalah source untuk melakukan pemanggilan tampilan GantiModulu.java : Source Code : publicclass GantiModulu extends PreferenceActivity{ Override protectedvoid onCreateBundle savedInstanceState { super .onCreatesavedInstanceState; addPreferencesFromResourceR.xml. gantimodulu ; } } 5. Kamus.java Kelas Entity Kamus.java admin memiliki beberapa persamaan pada kelas Entitiy Kamus.java user. Perbedaanya adalah kelas Kamus.java admin memiliki 1 method tambahan yaitu HitungTabrakanKataString,int . Untuk fungsi perhitungan nilai kata, perhitungan jarak lompatan, metode hash, dan proses pencarian indeks sudah dijelaskan memiliki kesamaan pada kelas Kamus.java user. Fungsi 1. Melakukan proses perhitungan nilai kata 2. Melakukan perhitungan jarak lompatan 3. Melakukan metode hash 4. Melakukan proses pencarian indeks 5. Melakukan melakukan proses hitung jumlah tabrakan kata Proses Algoritma : Proses Hitung Jumlah Tabrakan Kata 1 mendapatkan nilai 2 mendapatkan jarak lompatan 3 iftable[index] = null 4 while table[index] = null 5 index = index + jarak 6 index = index mod 7 tabel hash[index] = kata 8 return = 1 9 else 10 tabel hash[index] = kata 11 return 0 Source code Proses Hitung Jumlah Tabrakan Kata : int index = fungsiHashinputKata, modPembagi; int jarak = getIncrementinputKata, konstanta; if jumTabrakan [index] = null { while jumTabrakan [index] = null { index += jarak; index = modPembagi ; } jumTabrakan [index] = inputKata; return 1; } else { jumTabrakan [index] = inputKata; return 0; 6. Kata.java Fungsi kelas Kata.java pada kelas admin memiliki fungsi yang sama kelas Kata.java pada kelas user.

4.4 Pengujian