Spesifikasi Perangkat Keras dan Lunak Implementasi Desain Antar Muka Impementasi Diagram Kelas Implementasi Diagram Kelas User

86

BAB IV IMPLEMENTASI DAN PENGUJIAN

Pada Tahap ini pengembangan rancangan menjadi kode program. Pada bagian awal akan dijelaskan spesifikasi perangkat keras dan lunak. Bagian utama adalah mengimplementasikan rancangan menjadi kode program yang ditulis dengan menggunakan kode program berbasis bahasa pemrograman java. Di lanjutkan dengan melakukan riset jumlah kata yang mengalami tabrakan saat penyusunan ke dalam kamus dan jumlah keseluruhan tabrakan kata. Disamping itu juga tampilan aplikasi akan diimplementasikan pada Smartphone Samsung galaxy Y Duos s6102.

4.1 Spesifikasi Perangkat Keras dan Lunak

4.1.1 Spesifikasi Perangkat Keras

Dalam menerapkan proses implementasi aplikasi ini membutuhkan beberapa perangkat keras sebagai berikut : 1. Smartphone yang menggunakan Sistem Operasi Android Smarphone ini digunakan untuk menjalakan aplikasi yang telah di kembangkan. Smartphone yang digunakan adalah Smartphone Samsung galaxy Y Duoss6102 dengan spesifikasi sebagai berikut :  Sistem Operasi : Android 2.3 Gingerbread  CPU : 832 Mhz  Memory : 290 MB  Dimensi Layar : 3.14 Inci  Konektivitas : Dual SIM, Bluetooth V 3.0, 3G Network 2. Bluetooth Fungsi dari Bluetooth adalah untuk menghubungkan antara komputer dengan Smartphone. 3. Satu unit komputer dengan spesifikasi sebagai berikut :  Prosesor : Dual Core 2.20 GHz  Memori : 1 Gb  Ruang Penyimpanan : 80 Gb

4.1.2 Spesifikasi Perangkat Lunak

Untuk membuat aplikasi dari rancangan yang telah dibuat, dibutuhkan beberapa perangkat lunak sebagai berikut : 1. Java SDK 2. Sistem Operasi 3. Dropbox 4. IDE Eclipse Juno 4.0 5. Android SDK 6. Android Development ToolsADT

4.2 Implementasi Desain Antar Muka

Berdasarkan perancangan, akan diimplementasi tampilan untuk user dan admin. Pembuatan tampilan antar muka pada sistem Android diimplementasikan dalam bentuk XML file. Implementasi desain antar muka ini akan di jelaskan pada lampiran III.

4.3 Impementasi Diagram Kelas

a. Implementasi Diagram Kelas User

Diagram Kelas User : No. Kelas Atribut Method Tipe 1 FormUtama.java basepath : String extStorageDirectory : File kamusBtn : ImageButton tentangBtn : ImageButton updateBtn : ImageButton copyFileInputStream, OutputStream : void copyFileToExternalSD : void inisialisasi : void onClickView : void onCreateBundle : void Interface 2 FormKamus.java 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 Inisialisasi : void membentukKamusDayakint , int : void membentukKamusIndoint, int : void onClickView : void onCreateBudle : 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,String : int copyFileInputStream, OutputStream : void Interface 4 FormAbout.java onCreateBudle : void Interface 5 Kata.java kunci : String nilai : String kataString, String Entity 6 Kamus.java tableHash : Kata[] modPembagi : int Kamusint,int : Konstruktor fungsiHashString : int getIncrementString : int masukanKataKata : void CariString : Kata Entity Tabel 4.1 Kelas, Atribut, Method dan Tipe Tipe Interface kelas FormUtama.java, FormKamus.java, FormUpdate.java , dan FormAbout.java merupakan tampilan antarmuka aplikasi untuk user. Selain sebagai tampilan kelas FormUtama.javauntuk melakukan proses copy file dari resource android ke dalam penyimpanan eksternal di smartphone. KelasFormKamus.java selain sebagai tampilan akan digunakan sebagai pembentuk kamus dan pencarian kata dan arti kata. Pada kelas FormUpdate.java selain sebagai tampilan juga akan digunakan untuk menjalankan proses update database. 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 kelasFormUtama.java, FormKamus.java dan FormUpdate.java akan dijabarkan sebagai berikut : 1. FormUtama.java Selain sebagai tampilan FormUtama.java akan melakukan copy file database dari aplikasi recourse ke dalam penyimpanan eksternal di smartphone . Fungsi : - Sebagai tampilan menu utama menu - Melakukan copy file database dari resourse ke penyimpanan ekternal. Proses Algoritma : 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 Inisialisasi : void membentukKamusDayakint,int : void membentukKamusIndoint,int : void onClickView : void onCreateBudle : 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 FormAbout onCreateBudle : void Langkah 1 1 membuat tempat penyimapan file 2 mendapatkan file dari resource 3 for 3.1 melakukan proses copy file 3.2 menutup proses copy file Source Code Copy File File extStorageDirectory = Environment.getExternalStorageDirectory; String basepath = extStorageDirectory + DatabaseKamus ; AssetManager assetManager = getResources.getAssets; String[] files = null ; try { files = assetManager.list databasekamus ; } catch Exception e { Log.e read Data ERROR 1 , e.toString; e.printStackTrace; Toast.makeTextgetBaseContext, Proses Membaca Data Error , Toast. LENGTH_SHORT .show; } for int i = 0; i files. length ; i++ { InputStream in = null ; OutputStream out = null ; try { in = assetManager.open databasekamus + files[i]; out = new FileOutputStream basepath + files[i]; copyFilein, out; in.close; in = null ; out.flush; out.close; out = null ; } 2. FormKamus.java Dalam pembentukan kamus FormKamus.java memerlukan kelas entity Kamus.java dan Kata.java. Kelas Kamus.java digunakan sebagai pembentuk objek tabelHashDayak dan tableHashIndo yang akan Langkah 2 Langkah 3 Langkah 3.1 Langkah 3.2 digunakan pada pembentukan kamus dan pencarian kata. Kelas Kata.java akan digunakan sebagai pembentuk objek d dan carikata. Dan obyek d digunakan untuk pembentukan kamus danobyek carikata akan digunakan pada pencarian kata. Fungsi : - Sebagai tampilan menu pencarian kata - Membentuk kamus Dayak Ngaju – Indonesia - Membentuk kamus Indonesia – Dayak Ngaju - Melakukan Pencarian Kata Proses Algoritma : - Algoritma Membentuk Kamus 1 membentuk obyek tabelHash, d 2 membaca data dari database 3 if data =null 3.1 selama 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 tabelHashDayak. Masukan kata d 4 tutup koneksi Proses pembentukan kamus terbagi menjadi 2 bagian yaitu Membentuk kamus Dayak Ngaju – Indonesia dan kamus Indonesia – Dayak Ngaju. 2 proses pembentukan kamus diatas menggunakan algoritma yang sama tetapi yang membedakan adalah obyek yang di bentuk dari kelas Kamus.java dan bersar modulu yang digunakan. - Algoritma Pencarian Kata 1 mendapatkan kata input 2 carikata = tabelHashDayak.carikata input 3 if carikata= = null 3.1 pesan “kata yang dicari tidak ada” 4 else 1.1 pesan carikata.kata 1.2 pesan carikata.artiKata Pencarian kata pada kelas FormKamus.java akan menggunakan method cariString yang terdapat pada kelas Kamus.java. method cariString pada kelas kamus.java akan melakukan perhitungan dan memberikan nilai balik berupa data indeks, sehingga dapat di ketahui dimana kata dan arti kata yang dicari ditempatkan. Langkah4.1 dan 4.2 Source Code Membentuk Obyek Kata d ; Kamus tabelHashDayak ; Kamus tabelHashIndo ; Source Code Membentuk Kamus tabelHashDayak = new Kamus1000,1291; File file = new File directory , dayakindo.txt ; FileInputStream fIn = new FileInputStreamfile; if fIn = null { InputStreamReader isr = new InputStreamReaderfIn; BufferedReader bR = new BufferedReaderisr; 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; tabelHashDayak .masukanKata d ; } bR.close; } Source Code Pencarian Kata kataInput = editText .getText.toString.trim; cariKata = tabelHashDayak .Cari kataInput ; if cariKata == null { Toast.makeText this , Kata yang dicari tidak ada , Toast. LENGTH_SHORT .show; } else { txtVInput .setText kataInput + ; txtV .setText cariKata . nilai ; } Langkah 1 Langkah 2 Langkah 3 Langkah 3.1 Langkah 4 Langkah 1 dan 2 Langkah 3 Langkah 4 Langkah 3.1 3. FormUpdate.java Dalam melakukan update database kamus pada FormUpdate.java akan menggunakan thread. Fungsi : - Sebagai tampilan menu download file database - Mengupdate database kamus Proses Algoritma : - Algoritma Koneksi Internet 1 membentuk koneksi internet 2 if koneksi internet bukan koneksi http 3.1 pesan “bukan koneksi http” 3 else 3.1 melakukan koneksi ke internet 3.1.1 Jika koneksi berhasil 3.1.1.1 data diterima Proses update database menggunakan kelas InputStream agar nilai balik dari data yang di kirimkan dari jaringan internet dapat dimasukan ke dalam stream. Untuk koneksi ke jaringan internet menggunakan kelas URL, URLConnection dan HttpURLConnection yang telah disediakan oleh androidsdk sendiri. - Algoritma Menganti File 1 membuat tempat penyimapan file 2 membuat nama file 3 menerima file dari internet 4 melakukan proses ganti file 5 menutup proses ganti file Pada algoritma menganti file akan menggunakan kelas InputStream dan OutputStream. Untuk lokasi file akan menggunakan kelas File untuk dimana lokasi file akan di tempatkan Source Code Koneksi Internet URL url = new URLurlString; URLConnection conn = url.openConnection; if conn instanceof HttpURLConnection { thrownew IOException Not an HTTP connection ; } else { try { HttpURLConnection httpConn = HttpURLConnection conn; httpConn.setAllowUserInteraction false ; httpConn.setInstanceFollowRedirects true ; httpConn.setRequestMethod GET ; httpConn.connect; response = httpConn.getResponseCode; if response == HttpURLConnection. HTTP_OK { in = httpConn.getInputStream; } } catch Exception ex { Log.d Networking , ex.getLocalizedMessage; thrownew IOException Error connecting ; } } Langkah 1 Langkah 2 Langkah 3 Langkah 3.1 Langkah 3.1.1 Langkah 3.1.1.1 Langkah 1 Source Code Ganti File File extStorageDirectory = Environment.getExternalStorageDirectory; String basepath = extStorageDirectory + DatabaseKamus ; String nama = namaFile; try { in = BukaKoneksiURL; out = new FileOutputStream basepath + nama; copyFilein, out; in.close; in = null ; out.flush; out.close; out = null ; } Kelas tipe entitiy Kata.java akan digunakan sebagai tipe data berbentuk Arraylarik untuk membentuk obyek tablehashpada kelas entity Kamus.java . obyek tablehash tersebut akan digunakan untuk menyimpan data kata dan arti kata didalam memory. Pada kelas kamus.java akan terdapat beberapa method antara lain fungsiHashString, getIncrementString, masukanKataKata, dan cariString. Untuk fungsiHashString akan dilakukan proses perhitungan nilai kata dan perhitungan index table hash metode pembagian sisa. Method getIncrementString akan melakukan perhitungan jalan lompatan pencarian indeks table hash jika terjadi kolisi antar kata. Pada method masukanKataKata akan dilakukan double hashing jika terjadinya kolisi antar kata. Untuk method cariString akan dilakukan proses perhitungan indeks kata untuk mendapatkan indeks table hash yang dicari. Langkah 2 Langkah 3 Langkah 4 Langkah 5 4. Kamus.java Fungsi - Melakukan proses perhitungan nilai kata - Melakukan perhitungan jarak lompatan - Melakukan metode hash - Melakukan proses pencarian indeks Proses Algoritma - Algoritma Hitung nilai kata 1 kata[] data = kata.toCharArray 2 jumAscii = 0 3 for i = 0 to panjang array nilaiKata do 3.1 NilaiKata = NilaiKata 128 + kata[i] mod panjang array 4end for 5 return jumAscii Untuk kata akan dilakukan konversi menjadi karakter char berdasarkan kode ASCII. Proses konversi dibantu dengan kelas yang sudah di sediakan oleh java yaitu toCharArray. - Agortima perhitungan jarak lompatan 1 kata[] data = kata.toCharArray 2 nilai = 0 3 for i = 0 to panjang array nilaiKata do 3.1 NilaiKata = NilaiKata 128 + kata[i] mod panjang array 4end for 5 n = 7 6 return nilai = n – nilai n Untuk kata akan perhitungan dengan melakukan konversi menjadi karakter char berdasarkan kode ASCII. Untuk nilai n di pilih sembarang dengan syarat n harus bilangan prima dan nilainya harus lebih kecil dari nilai panjang arraytable hash. - Algortima metode hash 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 return tabel hash[index] = kata 8 else 9 return tabel hash[index] = kata - Agortima pencarian indeks 1 mendapatkan kata input 2 mendapatkan index 3 mendapatkan jarak lompatan 4 while table[index] = null 5 iftable[index].data=katainput 6 return tabel hash[index] 7 index = index + jarak 8 index = index mod 9 return null Source Code Hitung Kata char [] charIndex = Kunci.toCharArray; int nilaiAscii = 0; for int i = 0; i charIndex. length ; i++ { nilaiAscii = nilaiAscii 128 + charIndex[i] UkuranTabel; } return nilaiAscii modPembagi ; Source Code Perhitungan Jarak Lompatan char [] charIndex = Kunci.toCharArray; int hasil = 0; for int i = 0; i charIndex. length ; i++ { nilaiAscii = nilaiAscii 128 + charIndex[i] UkuranTabel;} return konstanta –hasil konstanta; Source Code Metode Hash String kunci = inputKunci. kunci ; int index = fungsiHashkunci, modPembagi; String doubleHash = inputKunci. kunci ; int jarakLompatan = getIncrementdoubleHash; if tabelHash [index] = null { while tabelHash [index] = null { index += jarakLompatan; index = modPembagi ; } tabelHash [index]=inputKunci; } else { tabelHash [index] = inputKunci; } Langkah 1 dan 2 Langkah 3 dan 4 Langkah 3.1 Langkah 5 Langkah 1 dan 2 Langkah 3 dan 4 Langkah 3.1 Langkah 1 Langkah 2 Langkah 3 sampai 8 Langkah 9 Langkah 6 Source Code Pencarian Indeks int index = fungsiHashkataInput, modPembagi; int jarakLompatan = getIncrementkataInput; while tabelHash [index] = null { if tabelHash [index]. kunci .equalskataInput { return tabelHash [index]; } index += jarakLompatan; index = modPembagi ; } returnnull ; 5. Kata.java Fungsi : - Digunakan untuk membentuk array obyek pada kelas kamus.java. - Digunakan untuk membentuk obyek untuk membentuk kamus pada kelas FormKamus.java - Digunakan untuk membentuk obyek pada pencarian kata dan arti kata pada kelas FormKamus.java Langkah 1 sampai 3 Langkah 4 Langkah 5 Langkah 6 Langkah 7 dan 8 Langkah 9

b. Implementasi Diagram Kelas Admin