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