BAB 3 ANALISIS DAN PERANCANGAN SISTEM
Pada bab ini, akan dibahas beberapa hal mengenai penerapan algoritma dan analisa perancangan sistem dalam mengimplementasikan algoritma apostolico giancarlo
untuk melakukan pencarian file.
3.1. Arsitektur Umum Sistem
Pada bagian ini, penulis merancang arsiterktur umum dari sistem yang dirancang. Arsitektur umum ini mencakup input, proses serta ouput dari sistem, sebagaimana
terlihat pada Gambar 3.1.
Gambar 3.1 Arsitektur Umum Sistem
Pada Gambar 3.1, arsitektur umum sistem dirancang untuk menerima daftar file yang akan dicari. Inputan daftar file ini kemudian diproses bersama dengan kata
kunci pencarian yang diinginkan menggunakan algoritma Apostolico Giancarlo. Hasil pencocokan sistem berdasarkan output dari algoritma Apostolico Giancarlo kemudian
di tampilkan berdasarkan tingkat kecocokan yang paling tinggi sebagai hasil pencarian file.
3.2. Penerapan Algoritma Apostolico Giancarlo
Pada perancangan perangkat lunak pencarian file dengan menggunakan algoritma apostolic giancarlo ini, yang menjadi permasalahan adalah bagaimana proses
penyeleksian file pada media penyimpanan data sehingga menghasilkan sebuah daftar seleksi file berdasarkan kata kunci pencarian yang diinputkan.
Daftar File Apostolico Giancarlo
Hasil Pencocokan
Kata Kunci Hasil Pencarian
Universitas Sumatera Utara
Apostolico Giancarlo bekerja dengan cara membandingkan setiap index karakter kata kunci dengan karakter string yang diperiksa. Langkah pencarian string
pada algoritma apostolico giancarlo dimulai dengan melakukan pre-processing pada kata kunci. Proses pre-processing ini dilakukan untuk melihat pada index keberapa
dari string yang diperiksa munculnya setiap karakter kata kunci. Sebagai contoh, akan dilakukan pencarian pada string
“Program Studi Teknik Informatika Fakultas Ilmu Komputer dan Teknologi Informasi” dengan kata kunci “Teknik”.
Langkah pertama dalam proses pre-processing pada algoritma apostolico giancarlo adalah mengurutkan setiap karakter string yang diperiksa tanpa terjadinya
perulangan karakter yang sama. Dari contoh string “Program Studi Teknik
Informat ika Fakultas Ilmu Komputer dan Teknologi Informasi” yang digunakan, hasil
pengurutan karakter string ini adalah “adefgiklmnoprstu”.
Selanjutnya, dilakukan pengecekan kemunculan setiap karakter string yang diperiksa pada kata kunci pencarian yang diperiksa, dimulai dari index karakter paling
kanan. Dari contoh pengurutan string “adefgiklmnoprstu” yang digunakan, terlihat
bahwa karakter “a” dari string yang diperiksa tidak ditemukan pada kata kunci. Karakter yang tidak ditemukan pada kata kunci seperti ini disebut dengan karakter
buruk, dan akan diberi pengkodean sejumlah n+1, dimana n adalah nilai maksimum dari index
kata kunci. Karena panjang kata kunci “Teknik” berjumlah 6 enam karakter, maka index yang digunakan untuk kata kunci ini adalah 0 sampai 5. Dengan
jumlah maksimum index kata kunci sebesar 5 lima, maka pengkodean yang digunakan untuk karakter buruk pada contoh kasus ini adalah 6 enam. Untuk
karakter kedua dari string yang diperiksa, yaitu karakter “d”, terlihat bahwa karakter
ini juga tidak ditemukan pada kata kunci, sehingga kembali diberikan nilai pengkodean sebesar 6 enam. Karakter berikutnya adalah “e”, karakter ini ditemukan
pada kata kunci, yaitu pada index ke 1 satu, maka karakter ini akan diberi nilai pengkodean sebesar 1 satu. Demikian seterusnya dilakukan pengecekan untuk setiap
karakter pada string yang diperiksa, sehingga diperoleh hasil sebagaimana terlihat pada Tabel 3.1.
Universitas Sumatera Utara
Tabel 3.1 Hasil Pre-Processing
Karakter a d
e f
g i
k l
m n o
p r
s t
u Spasi
Kode 6
6 1
6 6
4 5
6 6
3 6
6 6
6 6
6
Setelah proses pre-processing dilakukan, selanjutnya adalah proses pencocokan karakter pada kata kunci dengan string yang diperiksa. Proses
pencocokan dimulai dari karakter pertama dari string yang diperiksa sepanjang jumlah karakter kata kunci. Karena panjang kata kunci pada contoh kasus ini adalah 6
enam karakter, maka pencocokan pertama yang dilakukan adalah antara karakter string
“progra” dan kata kunci “teknik”. Sebagaimana terlihat pada Tabel 3.2, karakter paling akhir dari kat
a kunci, yaitu “k” tidak memiliki kesamaan dengan karakter paling akhir dari string
, yaitu “a”. Oleh karena tidak ditemukannya kesamaan pada masing-masing akhir karakter dari string dan kata kunci, maka akan dilakukan shift.
Proses shift dilakukan dengan terlebih dahulu melihat apakah karakter yang dibandingkan merupakan karakter buruk atau tidak. Pada contoh ini, karakter “a”
merupakan karakter buruk dengan nilai pengkodean 6 enam sehingga proses shift yang dilakukan adalah bad-character shift. Bad-character shift adalah pergeseran
karakter sebanyak nilai kode dari karakter yang dibandingkan, yang mana pada contoh kasus ini adalah 6 enam. Maka, proses shift yang dilakukan adalah menggeser posisi
index pencarian string sebanyak 6 enam karakter ke kanan sehingga terjadi perubahan karakter yang akan dicocokkan dari karakter “progra” menjadi “m stud”.
Tabel 3.2 Pencocokan I
String p r o g r a
Kata Kunci t e k n i k Cocok
X
Kembali dilakukan pencocokan antara karakter string “m stud” dengan
karakt er kata kunci “teknik”. Sebagaimana terlihat pada Tabel 3.3, karakter paling
akhir dari kata kunci, yaitu “k” tidak memiliki kesamaan dengan karakter paling akhir dari string
, yaitu “d”. Dari Tabel 3.1 terlihat bahwa karakter “d” termasuk ke dalam kategori karakter buruk, sehingga proses shift yang dilakukan pada langkah ini adalah
Universitas Sumatera Utara
bad-character shift, dimana terjadi perubahan karakter yang akan dicocokkan dari karakter “m stud” menjadi “i tekn”.
Tabel 3.3. Pencocokan II
String m Spasi s t u d
Kata Kunci t
e k n i k
Cocok X
Kembali dilakukan pencocokan antara karakter string “i tekn” dengan karakter
kata kunci “teknik”. Sebagaimana terlihat pada Tabel 3.4, karakter paling akhir dari kata kunci, yaitu “k” tidak memiliki kesamaan dengan karakter paling akhir dari
string , yaitu “n”. Dari Tabel 3.1 terlihat bahwa karakter “n” tidak termasuk ke dalam
kategori karakter buruk, sehingga proses shift yang dilakukan pada langkah ini adalah good-suffix shift. Good-suffix shift adalah proses pergeseran dimana karakter kata
kunci digeser hingga ditemukan karakter yang sama pada kata kunci dengan karakter pada posisi paling akhir dari string. Dari contoh kasus ini, dibutuhkan pergeseran
sebanyak 2 dua karakter ke kanan sehingga karakter “n” pada kata kunci memiliki kesamaan posisi dengan karakter “n” pada posisi paling akhir dari karakter string.
Pergeseran ini menimbulkan terjadinya perubahan karakter yang akan dicocokkan dari karakter “i tekn” menjadi “teknik”.
Tabel 3.4 Pencocokan III
String i Spasi t e k n
Kata Kunci t e
k n i k Cocok
X
Kembali dilakukan pencocokan antara karakter string “teknik” dengan karakter
kata kunci “teknik”. Sebagaimana terlihat pada Tabel 3.5, karakter paling akhir dari kata kunci, yaitu “k” memiliki kesamaan dengan karakter paling akhir dari string,
yaitu “k”. Demikian pula dengan karakter “i pada kata kunci memiliki kesamaan posisi dengan karakter “i pada string yang diperiksa dan seterusnya untuk seluruh
karakter pada kata kunci sudah memiliki kesamaan posisi dengan karakter pada string yang diperiksa.
Universitas Sumatera Utara
Tabel 3.5 Pencocokan IV
String t
e k n i
k Kata Kunci t
e k n i
k Cocok
V V V V V V
Pada langkah ini, proses pencocokan dihentikan, karena telah ditemukan kata yang cocok pada string
“Program Studi Teknik Informatika Fakultas Ilmu Komputer dan Teknologi Informasi” dengan kata kunci “Teknik”. Proses pencocokan berhenti
setelah melakukan 4 empat kali proses pencocokan dengan 9 sembilan karakter yang dibandingkan.
3.3. Perancangan Sistem