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 Tools
ADT
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.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 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 kelas
FormUtama.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.cari
kata 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
tablehash
pada 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