Aplikasi Pencarian File Berdasarkan Struktur Karakter Dengan Menggunakan Algoritma Apostolico Giancarlo

(1)

DAFTAR PUSTAKA

Al-Khamaiseh, K. & Al-Shagarin, S. 2014. A Survey of String Matching Algorithm. International Journal of Engineering Research and Applications, Vol. 4, No. 7, pp. 114-156.

Berry, T. & Ravindran, S. 2002. Tuning the Zhu-Takaoka String Matching Algorithm and Experimental Results. Kybernetika, Vol. 38, No. 1, pp. 67-80.

Boyer, R. S. & Moore, J. S. 1977. A Fast Searching Algorithm, Communication of the ACM, Vol. 20 No. 10, pp. 762-772.

Coppin, B. 2004. Artificial Intelligence Illuminated, Jones and Bartlett. United State of America.

Crochemore, M. & Lecroq, T. 1997. Tight Bounds on the Complexity of the Apostolico Giancarlo Algorithm. Information Processing Letters.

Crochemore, M., Hancart, C. & Lecroq, T. 2002. A Unifying Look at Apostolico Giancarlo String Matching Algorithm. Journal of Discrete Algorithm Vol. 0 No. 0, pp. 1-18.

Kusumadewi, S. & Purnomo, H. 2005. Penyelesaian Masalah Optimasi Dengan Teknik-Teknik Heuristik. Yogyakarta : Graha Ilmu.

Lecroq, T. 1992. A Variation on the Booyer Moore Algorithm. Theoritical Computer Science 92: 119-144.

Mirabella, F.M. 2012. Variasi-Variasi Algoritma Boyer-Moore dan Perbandingannya Dalam Pencarian String, Makalah IF3051 Strategi Algoritma.

Mukodim, D. 1994. Pengantar Bahasa Rakitan Edisi 1 Cetakan 4. Gunadarma: Jakarta.

Nievergelt, J. 2000. Exhaustive Search, Combinatorial Optimization and Enumeration : Exploring the Potential of Raw Computing Power. SOFSEM, pp. 18-35. Soleh, M.Y., Hartadi, D. & Adventus, W.L. 2010. Strategi Algoritma:Aplikasi

Algoritma KMP dan Boyer-Moore dalam Search Engine. Tugas Besar IF3051, Institut Teknologi Bandung.


(2)

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


(3)

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 Informatika 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.


(4)

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 0 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 kata 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 karakter 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


(5)

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


(6)

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

Setelah melakukan analisis terhadap sistem perangkat lunak yang akan dirancang, selanjutnya dilakukan perancangan terhadap perangkat lunak tersebut. Adapun tahapan perancangan yang dilakukan meliputi proses kerja sistem sistem, perancangan antarmuka program serta perancangan algoritma.

3.3.1. Proses Kerja Sistem

Berdasarkan hasil analisis terhadap penerapan algoritma apostolico giancarlo dalam masalah pencarian nama file sebelumnya, penulis merancang proses kerja sistem sebagai panduan untuk merancang aplikasi pencarian nama file menggunakan algoritma apostolico giancarlo.

Adapun proses kerja sistem pada perancangan aplikasi pencarian file menggunakan algoritma apostolico giancarlo pada penelitian ini sebagaimana terlihat pada Gambar 3.2.


(7)

Gambar 3.2 Proses Kerja Sistem

Proses kerja sistem yang dirancang dimulai dengan menginputkan kata kunci pencarian serta lokasi drive yang akan diperiksa. Untuk setiap karakter kata kunci

For each Kata in Kunci

Kc(i)← Kata Posisi Ke-I Pada Kata Kunci

Cek Posisi Node

F(j) ← Nama File Ke-j Pada Path For each Kata in F(k)

C(j,k) ← Kata Ke-k Pada F(j) Kunci ← Input Kata Kunci Path ← Input Lokasi Pencarian

Tampilkan Hasil Y

N Bentuk Pohon Solusi Dari C(j,k)

Start Pencarian Pada Seluruh Pada Pohon Solusi Dengan I

= 1

Cek Kc(i) Pada Node

Ditemukan?

Top Node? N Pindah Node Berikut Cek i

i = Total Kata Kunci? i = i + 1

Set Posisi Node Paling bawah N Stop Pencarian Y Y Start End


(8)

setiap karakter dalam nama file yang tersimpan pada array F, akan disimpan pada array C.

Selanjutnya, akan dibentuk sebuah pohon solusi dari setiap anggota dari array C. Pencarian dilakukan dengan cara membandingkan anggota array Kc dengan anggota array C dimulai dari node yang paling pertama. Kemudian dilakukan pengecekan apakah anggota array Kc sama dengan anggota array C berdasarkan panjang kata kunci yang diinputkan.

Jika anggota array Kc sama dengan anggota array C berdasarkan panjang kata kunci yang diinputkan. Pada langkah ini, pencarian akan dihentikan dan hasil pencarian akan ditampilkan pada layar.

Jika anggota array Kc tidak sama dengan anggota array C berdasarkan panjang kata kunci yang diinputkan, maka akan dilakukan pencatatan terhadap posisi node pencarian, kemudian node berpindah pada posisi berikutnya dan kembali dilakukan pencarian dengan cara membandingkan anggota array Kc dengan anggota array C berdasarkan panjang kata kunci pencarian, seperti terlihat pada Gambar 3.1.

3.3.2. Perancangan Antarmuka Program

Setelah merancang proses kerja perangkat lunak yang akan dirancang, selanjutnya dilakukan perancangan terhadap antarmuka perangkat lunak ini. Dalam perancangan ini, penulis merancang tiga form yang dapat digunakan pengguna untuk berinteraksi dengan perangkat lunak yang dirancang.

1. Rancangan Form Utama

Form Utama merupakan tampilan yang dirancang sebagai interface agar user dapat berinteraksi dengan sistem. Dalam melakukan interaksi dengan user, Form Utama menggunakan tombol-tombol yang dapat dipilih oleh user, seperti tombol Pencarian File, Info serta Tutup, seperti terlihat pada Gambar 3.3.


(9)

Gambar 3.3 Rancangan Form Utama

Pada Gambar 3.3, rancangan Form Utama memiliki beberapa tombol yang dapat digunakan oleh pengguna untuk berinteraksi dengan aplikasi. Tombol Pencarian File berfungsi untuk menampilkan form Cari, tombol Info berfungsi untuk menampilkan form Info dan tombol Tutup berfungsi untuk menutup aplikasi.

2. Rancangan Form Cari

Form Cari merupakan tampilan yang dirancang untuk menerima inputan lokasi pencarian file dan kata kunci pencarian file dari pengguna, serta menampilkan hasil pencarian file berdasarkan cara kerja algoritma apostolico giancarlo. Adapun rancangan Form Cari dapat dilihat pada Gambar 3.4.

Pencarian File – Apostolico Giancarlo X

Pencarian File Info Tutup

Pencarian File X

Hasil Pencarian Nama File Setting Pencarian Lokasi Drive

Cari

Kata Kunci

Reset


(10)

Pada Gambar 3.4, form Cari memiliki beberapa tombol yang dapat digunakan oleh pengguna untuk berinteraksi dengan aplikasi. Tombol Cari berfungsi untuk memilih memulai pencarian file pada lokasi drive yang dipilih oleh pengguna. Tombol Reset berfungsi untuk mengembalikan setting pencarian pada kondisi awal. Tombol Kembali berfungsi untuk menutup form Cari dan tampilan dikembalikan pada form Utama.

3. Rancangan Form Info

Form Info merupakan tampilan yang dirancang untuk menampilkan informasi mengenai perancang perangkat lunak pencarian file menggunakan algoritma apostolico giancarlo ini. Adapun rancangan form About dapat dilihat pada Gambar 3.5.

Gambar 3.5 Rancangan Form Info

3.3.3. Pseudo-code Program

Dalam perancangan aplikasi pencarian file menggunakan metode apostolico giancarlo ini, digunakan sebuah pseudo-code untuk membantu proses pembuatan program. Adapun pseudo-code yang digunakan dalam perancangan aplikasi ini adalah sebagai berikut:

Aplikasi Pencarian File Menggunakan Metode Apostolico Giancarlo Yasir Nasution

081402076

Aplikasi ini berfungsi untuk mencari file di dalam media penyimpanan data, berdasarkan kata kunci yang diinputkan.

Lokasi pencarian dapat dipilih berdasarkan satu Drive saja atau keseluruhan Drive yang ada pada media penyimpanan data.

Case Sensitive dapat dipilih untuk melakukan filter terhadap hasil pencarian. Pencarian dilakukan dengan menggunakan algoritma Apostolico Giancarlo dengan membandingkan kata kunci dan nama file pada Drive yang dicari.


(11)

1. Pseudo-code Input

Begin

Lokasi ← Input lokasi file Kunci ← Input kata kunci For each File in Lokasi

NamaFile() ← File pada Lokasi End

2. Pesudo-code Proses

Begin

J ← ()

While J ≤ N – M Do I ← M – 1

While I ≥ 0

Do

If Skip (I + J) = 0 Then If X(I) = Y(I+J) Then

I ← I – 1

ElseIf Skip (I + J) > Suf (I) Then

Case 1 AND 2 : I ← I – Suf (I) ElseIf Skip (I + J) < Suf (I) Then

Case 3 : I ← I – Skip (I + J) Else

Case 4 : I ← I – Suf (i)

Skip (I + J) ← M – I – 1 If I < 0 Then

Report (J)

J ← J + SMatch(0)

Else

J ← J + Max (SMatch(i), Occ(Y[I + J]) – M + I + 1 End

3. Pseudo-code Output

Begin

Hasil() ← Hasil pencocokan

For each File in Hasil If Hasil = Cocok Then

Tambahkan nama file dan lokasi file pada daftar hasil Tampilkan daftar hasil pencarian


(12)

BAB 4

IMPLEMENTASI DAN PEMBAHASAN

4.1. Implementasi

Setelah melakukan implementasi terhadap rancangan yang diperoleh sebelumnya ke dalam bahasa pemrograman, penulis memperoleh hasil berupa sebuah perangkat lunak pencarian file dengan menggunakan algoritma apostolico giancarlo.

4.1.1 Tampilan Hasil

Hasil dari implementasi perangkat lunak yang penulis rancang adalah sebagai berikut :

1. Tampilan Form Utama

Tampilan Form Utama merupakan form yang ditampilkan pertama kali pada saat sistem dijalankan. Adapun tampilan Form Utama ini seperti ditunjukkan pada Gambar 4.1.


(13)

2. Tampilan Form Info

Tampilan Form Info merupakan tampilan yang muncul jika pengguna menekan tombol Info pada form Utama. Form ini menampilkan sekilas informasi mengenai perancang perangkat lunak. Adapun tampilan Form Info seperti ditunjukkan pada Gambar 4.2.

Gambar 4.2 Form Info

4.1.2 Pengujian Sistem

Setelah mendapatkan hasil tampilan perangkat lunak, selanjutnya dilakukan pengujian terhadap sistem tersebut. Adapun metode pengujian sistem yang penulis lakukan adalah metode statis (static technique) dimana pengujian dibagi dalam beberapa tahapan, sebagai berikut :

1. Menetapkan Parameter Pengujian

Adapun paramaeter pengujian yang penulis gunakan dalam pengujian sistem ini adalah sebagai berikut :


(14)

a. Kestabilan Sistem

Parameter ini digunakan untuk menguji apakah sistem masih mengalami error pada saat dieksekusi atau pada saat melakukan proses pencarian file. b. Ketepatan Hasil

Parameter ini digunakan untuk menguji apakah sistem telah dapat menampilkan hasil seleksi file berdasarkan langkah kerja algoritma apostolico giancarlo yang digunakan, berdasarkan lokasi drive dan kata kunci pencarian yang diinputkan.

2. Menyiapkan Perangkat Pengujian

Dalam tahap ini, penulis menyiapkan 10 (sepuluh) file dengan nama file dan tipe file yang berbeda. Adapun file yang digunakan dalam pengujian sistem ini sebagaimana terlihat pada Tabel 4.1.

Tabel 4.1 File Uji

Nama File Ukuran File

Sistem Operasi.pdf 155 KB

KONSEP SISTEM INFORMASI.pdf 174 KB The History of Operating System.mp4 73.2 MB system of a dawn – toxicity.mp3 3.39 MB Opera Portable 29.0.1795.60.exe 34.1 MB HYSTORY OF THE OTHER SIDE.mp3 13.7 MB model konsep Client-Server.doc 147 KB

SQL Server 2005.msi 38.4 MB

Dasar Algoritma dan Pemrograman.docx 33.7 KB Wali Band – EmangDasar.mp3 3.82

File uji pada Tabel 4.1 di atas disimpan di dalam satu drive dengan 3 (tiga) folder yang berbeda. Folder ”Dokumen” berisi file ”Sistem Operasi.pdf”,

”KONSEP SISTEM INFORMASI.pdf”, ”model konsep Client-Server.doc” dan

”Dasar Algoritma dan Pemrograman.docx”. Folder ”Multimedia” berisi file

”The History of Operating System.mp4”, ”system of a dawn – toxicity.mp3”,


(15)

EmangDasar.mp3”. Folder ”Program” berisi file ”opera Portable

29.0.1795.60.exe” dan ”SQL Server 2005.msi”.

3. Melakukan Pengujian

Pengujian pertama dalam yang dilakukan ini adalah pencarian file dengan kata

kunci “Sistem”. Langkah pertama dalam pengujian ini adalah menjalankan

perangkat lunak sehingga form Utama muncul pada layar dan menekan tombol Pencarian File hingga tampilan layar berubah menjadi form Cari, sebagaimana terlihat pada Gambar 4.3.

Gambar 4.3 Tampilan Form Cari

Selanjutnya, dilakukan pemilihan Lokasi Drive “K”, dimana file uji tersimpan,

menginputkan “Sistem” pada text box Kata Kunci, sebagaimana terlihat pada Gambar 4.4.


(16)

Gambar 4.4 Konfigurasi Pengujian Pertama

Setelah itu, dilakukan penekanan tombol Cari. Hasil yang diperoleh adalah munculnya file “KONSEP SISTEM INFORMASI.doc” dan “Sistem


(17)

Gambar 4.5 Hasil Pengujian Pertama

Pengujian kedua adalah pencarian file dengan kata kunci “stem”. Dalam pengujian ini, dilakukan langkah-langkah seperti pada pengujian pertama,

namun dengan mengubah kata kunci “Sistem” menjadi “stem”, sebagaimana


(18)

Gambar 4.6 Konfigurasi Pengujian Kedua

Setelah itu, dilakukan penekanan tombol Cari. Hasil yang diperoleh adalah munculnya file “KONSEP SISTEM OPERASI.pdf”, “Sistem Operasi.pdf”,

“system of a dawn – toxicity.mp3” dan “The History of Operating Systems.mp4”, sebagaimana terlihat pada Gambar 4.7.


(19)

Gambar 4.7 Hasil Pengujian Kedua

Pengujian ketiga adalah pencarian file dengan kata kunci “server”. Dalam pengujian ini, dilakukan langkah-langkah seperti pada pengujian ketiga, namun

dengan mengubah kata kunci “stem” menjadi “server”, sebagaimana terlihat pada Gambar 4.8.


(20)

Gambar 4.8 Konfigurasi Pengujian Ketiga

Setelah itu, dilakukan penekanan tombol Cari. Hasil yang diperoleh adalah munculnya file “model konsep client-server.doc” dan “SQL Server 2005.msi”, sebagaimana terlihat pada Gambar 4.9.


(21)

Gambar 4.9 Hasil Pengujian Ketiga

Pengujian keempat adalah pencarian file dengan kata kunci “Dasar”. Dalam pengujian ini, dilakukan langkah-langkah seperti pada pengujian kelima, namun

dengan mengubah kata kunci “server” menjadi “Dasar”, sebagaimana terlihat pada Gambar 4.10.


(22)

Gambar 4.10 Konfigurasi Pengujian Keempat

Setelah itu, dilakukan penekanan tombol Cari. Hasil yang diperoleh adalah munculnya file “Dasar Algoritma dan Pemrograman.docx” dan “Wali Band –


(23)

Gambar 4.11 Hasil Pengujian Keempat

4.2. Pembahasan

Berdasarkan hasil implementasi sistem sebelumnya, dilakukan analisa terhadap hasil pengujian sistem untuk melihat apakah sistem yang dihasilkan telah sesuai dengan rancangan yang diinginkan. Hasil analisa ini kemudian digunakan untuk membahas apa saja kelebihan dan kelemahan dari sistem yang dihasilkan.

4.2.1 Hasil Pengujian

Dari hasil pengujian yang dilakukan, terlihat bahwa hasil pencarian file dengan menggunakan perangkat lunak yang dirancang telah dapat menyeleksi file pada lokasi media penyimpanan data yang dipilih pengguna dengan baik. Adapun rangkuman dari hasil pengujian yang dilakukan terhadap sistem yang dihasilkan sebagaimana terlihat pada Tabel 4.2.


(24)

Tabel 4.2 Hasil Pengujian

Kata Kunci Hasil Pencarian

Sistem “KONSEP SISTEM OPERASI.pdf” dan

“Sistem Operasi.pdf”.

stem “KONSEP SISTEM OPERASI.pdf”, “Sistem

Operasi.pdf”, “system of a dawn –

toxicity.mp3” dan “The History of Operating System.mp4”

server “model konsep client-server.doc” dan “SQL

Server 2005.msi”

Dasar “Dasar Algoritma dan Pemrograman.docx”

dan “Wali Band –EmangDasar.mp3”

Dari seluruh proses pengujian tidak ditemukan adanya pesan error selama tahapan pengujian dilakukan. Hasil seleksi yang sudah sesuai dengan kata kunci yang diinputkan oleh pengguna serta tidak adanya pesan error yang muncul pada saat tahapan pengujian dilakukan menandakan bahwa perangkat lunak yang dirancang telah berjalan sesuai dengan target awal pada tahap perancangan sistem.

4.2.2 Kelebihan Sistem

Adapun kelebihan dari sistem yang dihasilkan ini adalah sebagai berikut :

1. Sistem dapat menyeleksi file pada lokasi drive yang dipilih oleh pengguna berdasarkan kata kunci yang telah diinputkan sebelumnya.

2. Sistem juga dapat menyeleksi file yang memiliki tingkat kemiripan dengan kata kunci dengan tingkat akurasi yang baik.

3. Selain menampilkan daftar hasil seleksi file berdasarkan lokasi drive dan kata kunci yang diinputkan pengguna, sistem juga mampu mengeksekusi file yang ditemukan dengan melakukan double click pada list daftar file yang ditemukan.


(25)

4.2.3 Kelemahan Sistem

Adapun kelemahan dari sistem yang ditemukan adalah sebagai berikut :

1. Sistem hanya dapat melakukan pencarian pada satu lokasi drive saja atau seluruh drive sekaligus.

2. Sistem masih mengalami kelambatan jika melakukan pencarian pada lokasi drive dengan jumlah file yang banyak. Semakin banyak jumlah file pada lokasi drive tersebut akan semakin lama waktu yang dibutuhkan untuk menyelesaikan pencarian.


(26)

BAB 5

PENUTUP

5.1 Kesimpulan

Berdasarkan hasil penelitian terhadap algoritma apostolico giancarlo dalam pencarian file ini, penulis dapat menyimpulkan beberapa hal sebagai berikut :

1. Apostolico giancarlo melakukan seleksi terhadap setiap karakter dengan mengklasifikan karakter sebagai good-character dan bad-character. Dengan adanya klasifikasi ini, jika ditemukan adanya bad-character pada tiap proses perbandingan, akan dilakukan pergeseran (shift) sehingga karakter tersebut tidak perlu dibandingkan kembali pada proses berikutnya.

2. Proses pergeseran menggunakan good-suffix shift dan bad-character shift memungkinkan adanya efisiensi dalam proses pembandingan karakter antara string yang diperiksa dengan kata kunci. Bad-character shift akan secara otomatis melompati setiap karakter yang tidak ditemukan dalam kata kunci, sedangkan good-suffix shift memungkinkan tidak terjadinya pembandingan yang berulang-ulang pada karakter yang telah dinyatakan cocok.

3. Algoritma apostolico giancarlo yang diterapkan dalam perangkat lunak pencarian file dapat menyeleksi file dengan hasil seleksi yang lebih akurat, karena huruf besar atau huruf kecil pada file dapat dibandingkan secara terpisah.

4. Jika dibandingkan dengan algoritma boyer-moore, algoritma apostolico giancarlo memiliki kelebihan dalam hal efektifitas pengecekan karakter yang termasuk dalam kategori bad-character. Karakter yang termasuk dalam kategori ini akan secara otomatis dilompati, sehingga tidak perlu dilakukan pengecekan pada karakter selanjutnya. Hal ini memungkinkan adanya pemotongan waktu pencarian sehingga efektifitas pencarian file menjadi lebih baik.


(27)

5.2 Saran

Adapun saran yang ingin penulis berikan sehubungan dengan hasil penelitian ini adalah sebagai berikut :

1.

Sistem ini dapat dikembangkan lebih lanjut sehingga dapat melakukan pencarian file pada lebih dari satu lokasi drive.

2.

Untuk bahan perbandingan, sistem dapat dikembangkan dengan menggunakan metode pencarian string yang berbeda sehingga dapat dilihat perbedaan hasil yang diperoleh dibandingkan dengan algoritma apostolico giancarlo yang digunakan dalam penelitian ini


(28)

BAB 2

TINJAUAN PUSTAKA

2.1 Karakter ASCII

ASCII (American Standard Code for Information Interchange) merupakan suatu standar internasional dalam kode huruf dan simbol seperti Hex dan Unicode. Kode ASCII sebenarnya memiliki komposisi bilangan biner sebanyak 8 bit. Dimulai dari 0000 0000 hingga 1111 1111. Total kombinasi yang dihasilkan sebanyak 256, dimulai dari kode 0 hingga 255 dalam sistem bilangan desimal. Adapun kombinasi kode ASCII yang dikenali komputer seperti ditunjukkan pada Gambar 2.1 (Mukodim, 1994).

Gambar 2.1 Kombinasi Kode ASCII (Mukodim, 1994)

Dalam sistem operasi Windows dan MS-DOS, pengguna dapat menggunakan karakter ASCII dengan menekan tombol Alt+[Nilai Desimal Kode ASCII].Sebagai contoh, tekan kombinasi tombol Alt+87 untuk karakter huruf latin "W" kapital (Mukodim, 1994).


(29)

Aplikasi komputer menggunakan kode ASCII untuk mengenali dan menampilkan pola huruf, angka atau karakter khusus lainnya pada layar monitor. Untuk data yang berbentuk huruf dan angka saja, tidak termasuk karakter khusus seperti koma (,), titik (.), tanda tanya (?), data ini disebut dengan data alfanumerik (Mukodim, 1994).

2.2 Pencarian (Searching)

Pencarian (searching) merupakan suatu proses mencari solusi dari suatu permasalahan melalui sekumpulan kemungkinan ruang keadaan (state space). Ruang keadaan merupakan suatu ruang yang berisi semua keadaan yang mungkin. Teknik pencarian dapat dibagi menjadi 2 bagian, yaitu pencarian buta (blind search) dan pencarian heuristic (heuristic search). Pencarian buta merupakan pencarian yang penelusurannya dimulai dengan tidak ada informasi awal yang digunakan dalam proses pencarian, sedangkan Pencarian heuristik merupakan pencarian yang penelusurannya dimulai dengan adanya informasi awal yang digunakan dalam proses pencarian (Kusumadewi & Purnomo, 2005).

Algoritma pencarian adalah algoritma untuk mencari nilai dalam struktur data. Pencocokan string merupakan bagian penting dari sebuah proses pencarian string (string searching) dalam sebuah dokumen. Hasil dari pencarian sebuah string dalam dokumen tergantung dari teknik atau cara pencocokan string yang digunakan. Untuk mengukur performansi metode pencarian, terdapat empat kriteria yang dapat digunakan, yaitu (Coppin, 2004):

1. Completeness

Apakah metode tersebut menjamin penemuan solusi jika solusinya memang ada.

2. Time complexity

Berapa lama waktu yang diperlukan. 3. Space complexity


(30)

4. Optimality

Apakah metode tersebut menjamin menemukan solusi yang terbaik jika terdapat beberapa solusi berbeda.

2.3 Algoritma Pencarian Data

Dalam ilmu komputer, sebuah algoritma pencarian dijelaskan secara luas adalah sebuah algoritma yang menerima masukan berupa sebuah masalah dan menghasilkan sebuah solusi untuk masalah tersebut, yang biasanya didapat dari evaluasi beberapa kemungkinan solusi. Sebagian besar algoritma yang dipelajari oleh ilmuwan komputer adalah algoritma pencarian (Nievergelt, 2000).

Pencarian data (table look-up atau storage and retrieval information) adalah suatu proses untuk mengumpulkan sejumlah informasi di dalam pengingat komputer dan kemudian mencari kembali informasi yang diperlukan secepat mungkin. Metode pencarian data dapat dilakukan dengan dua cara yaitu pencarian internal (internal searching) dan pencarian eksternal (external searching). Pada pencarian internal, semua rekaman yang diketahui berada dalam pengingat komputer sedangkan pada pencarian eksternal, tidak semua rekaman yang diketahui berada dalam pengingat komputer, tetapi ada sejumlah rekaman yang tersimpan dalam penyimpan luar misalnya pita atau cakram magnetis (Nievergelt, 2000).

Selain itu metode pencarian data juga dapat dikelompokkan menjadi pencarian statis (static searching) dan pencarian dinamis (dynamic searching). Pada pencarian statis, banyaknya rekaman yang diketahui dianggap tetap, pada pencarian dinamis, banyaknya rekaman yang diketahui bisa berubah-ubah yang disebabkan oleh penambahan atau penghapusan suatu rekaman (Nievergelt, 2000).

Ada dua macam teknik pencarian yaitu pencarian sekuensial dan pencarian biner. Perbedaan dari dua teknik ini terletak pada keadaan data. Pencarian sekuensial digunakan apabila data dalam keadaan acak atau tidak terurut. Sebaliknya, pencarian biner digunakan pada data yang sudah dalam keadaan urut (Boyer & Moore, 1977).


(31)

2.3.1 Pencarian Berurutan (Sequential Searching)

Pencarian berurutan sering disebut pencarian linear merupakan metode pencarian yang paling sederhana. Pencarian berurutan menggunakan prinsip bahwa data yang ada dibandingkan satu per satu secara berurutan dengan yang dicari sampai data tersebut ditemukan atau tidak ditemukan (Boyer & Moore, 1977).

Pada dasarnya, pencarian ini hanya melakukan pengulangan dari 1 sampai dengan jumlah data. Pada setiap pengulangan, dibandingkan data ke-i dengan yang dicari. Apabila sama, berarti data telah ditemukan. Sebaliknya apabila sampai akhir pengulangan tidak ada data yang sama, berarti data tidak ada. Pada kasus yang paling buruk, untuk N elemen data harus dilakukan pencarian sebanyak N kali pula (Boyer & Moore, 1977).

Secara umum, algoritma pencarian berurutan mengikuti prosedur sebagai berikut (Boyer & Moore, 1977):

1. i ← 0

2. Ketemu ← false

3. Selama Ketemu = false dan (i <= N) kerjakan baris 4 4. Jika (Data[i] = x) maka Ketemu ← true, jika tidak i ← i + 1

5. Jika Ketemu = true maka i adalah indeks dari data yang dicari, jika tidak data tidak ditemukan.

Atau, dapat juga dituliskan sebagai berikut (Boyer & Moore, 1977):

int SequentialSearch(int x) {

int i = 0;

bool ketemu = false;

while ((!ketemu) && (i < Max)){ if(Data[i] == x)

ketemu = true; else i++; } if(ketemu) return i; else


(32)

Fungsi diatas akan mengembalikan indeks dari data yang dicari. Apabila data tidak ditemukan maka fungsi diatas akan mengembalikan nilai –1 (Boyer & Moore, 1977).

2.3.2 Pencarian Biner (Binary Search)

Salah satu syarat agar pencarian biner dapat dilakukan adalah data sudah dalam keadaan urut. Dengan kata lain, apabila data belum dalam keadaan urut, pencarian biner tidak dapat dilakukan. Dalam kehidupan sehari-hari, sebenarnya kita juga sering menggunakan pencarian biner. Misalnya saat ingin mencari suatu kata dalam kamus (Boyer & Moore, 1977).

Prinsip dari pencarian biner dapat dijelaskan sebagai berikut : mula-mula diambil posisi awal 0 dan posisi akhir = N - 1, kemudian dicari posisi data tengah dengan rumus (posisi awal + posisi akhir) / 2. Kemudian data yang dicari dibandingkan dengan data tengah. Jika lebih kecil, proses dilakukan kembali tetapi posisi akhir dianggap sama dengan posisi tengah –1. Jika lebih besar, porses dilakukan kembali tetapi posisi awal dianggap sama dengan posisi tengah + 1. Demikian seterusnya sampai data tengah sama dengan yang dicari (Boyer & Moore, 1977).

Secara umum, algoritma pencarian biner mengikuti prosedur sebagai berikut (Boyer & Moore, 1977):

1. L ← 0 2. R ← N - 1 3. Ketemu ← false

4. Selama (L <= R) dan Ketemu = false kerjakan baris 5 sampai dengan 8 5. m ← (L + R) / 2

6. Jika (Data[m] = x) maka Ketemu ← true 7. Jika (x < Data[m]) maka R ← m – 1 8. Jika (x > Data[m]) maka L ← m + 1

9. Jika Ketemu = true maka m adalah indeks dari data yang dicari, jika tidak data tidak ditemukan.


(33)

Atau, dapat juga dituliskan sebagai berikut (Boyer & Moore, 1977):

int BinarySearch(int x) {

int L = 0, R = Max-1, m; bool ketemu = false;

while((L <= R) && (!ketemu)) {

m = (L + R) / 2; if(Data[m] == x) ketemu = true;

else if (x < data[m]) R = m - 1;

else

L = m + 1; } if(ketemu) return m; else return -1; }

Fungsi diatas akan mengembalikan indeks dari data yang dicari. Apabila data tidak ditemukan maka fungsi diatas akan mengembalikan nilai –1 (Boyer & Moore, 1977).

Jumlah pembandingan minimum pada pencarian biner adalah 1 kali, yaitu apabila data yang dicari tepat berada di tengah-tengah. Jumlah pembandingan maksimum yang dilakukan dengan pencarian biner dapat dicari menggunakan rumus logaritma, yaitu (Boyer & Moore, 1977):

C = 2log(N) ... (2.1)

2.4 Algoritma Boyer-Moore

Algoritma Boyer-Moore adalah salah satu algoritma pencarian string yang dipublikasikan oleh Robert S. Boyer, dan J. Strother Moore pada tahun 1977. Algoritma ini dianggap sebagai algoritma yang paling efisien pada aplikasi umum. Tidak seperti algoritma pencarian string yang ditemukan sebelumnya, algoritma Boyer-Moore mulai mencocokkan karakter dari sebelah kanan pattern. Ide dibalik algoritma ini adalah bahwa dengan memulai pencocokkan karakter dari kanan, dan bukan dari kiri, maka akan lebih banyak informasi yang didapat (Soleh et. al, 2010).


(34)

Misalnya ada sebuah usaha pencocokan yang terjadi pada teks [i..i + n − 1], dan anggap ketidakcocokan pertama terjadi diantara teks[i + j] dan pattern[j], dengan 0 < j < n. Berarti, teks[i + j + 1..i + n − 1] = pattern[j + 1..n − 1] dan a = teks[i + j] tidak sama dengan b = pattern[j]. Jika u adalah akhiran dari pattern sebelum b dan v adalah sebuah awalan dari pattern, maka penggeseran-penggeseran yang mungkin adalah (Soleh et. al, 2010):

1. Penggeseran good-suffix yang terdiri dari mensejajarkan potongan teks [i + j + 1..i + n − 1] = pattern [j + 1..n − 1] dengan kemunculannya paling kanan di pattern yang didahului oleh karakter yang berbeda dengan pattern[j]. Jika tidak ada potongan seperti itu, maka algoritma akan mensejajarkan akhiran v dari teks [i + j + 1..i + n − 1] dengan awalan dari pattern yang sama.

2. Penggeseran bad-character yang terdiri dari mensejajarkan teks[i + j] dengan kemunculan paling kanan karakter tersebut di pattern. Bila karakter tersebut tidak ada di pattern, maka pattern akan disejajarkan dengan teks [i + n + 1].

Secara sistematis, langkah-langkah yang dilakukan algoritma Boyer-Moore pada saat mencocokkan string adalah (Soleh et. al, 2010):

1. Algoritma Boyer-Moore mulai mencocokkan pattern pada awal teks.

2. Dari kanan ke kiri, algoritma ini akan mencocokkan karakter per karakter pattern dengan karakter di teks yang bersesuaian, sampai salah satu kondisi berikut dipenuhi :

a. Karakter di pattern dan di teks yang dibandingkan tidak cocok (mismatch). b. Semua karakter di pattern cocok. Kemudian algoritma akan memberitahukan

penemuan di posisi ini.

c. Algoritma kemudian menggeser pattern dengan memaksimalkan nilai penggeseran good-suffix dan penggeseran bad-character, lalu mengulangi langkah 2 sampai pattern berada di ujung teks.


(35)

2.5 Algoritma Apostolico Giancarlo

Algoritma apostolico giancarlo merupakan algoritma pengembangan dari algoritma boyer-moore. Perbedaan algoritma apostolico giancarlo dari algoritma boyer-moore terletak pada proses pencariannya yang menggunakan sebuah variabel bantu sebagai pengingat dalam proses pencarian. Variabel bantu pada algororitma apostolico giancarlo ini berfungsi untuk menyimpan informasi pasangan yang sudah cocok pada shift sebelumnya. Hal ini yang menjadi kelebihan dari algoritma apostolico giancarlo, jika dibandingkan dengan algoritma booyer-moore (Crochemore et. al, 2004).

Pada dasarnya, Apostolico giancarlo menyimpan pattern dari hasil setiap perbandingan yang sama, agar perbandingan tersebut tidak terjadi lagi. Pertama-tama akan disamakan posisi pattern dengan 8 karakter pertama pada teks, seperti terlihat pada Tabel 2.1 (Mirabella, 2012).

Tabel 2.1 Menyamakan Posisi Pattern

Teks G C A T C G C A G A G A G T A T A C A T T A C G Pattern - - - - G

Setelah itu, akan dilakukan pergeseran dengan karakter-buruk seperti pada algoritma Boyer-Moore, dan akan ditemukan perbandingan selanjutnya sampai ditemukan perbandingan karakter buruk lagi, seperti terlihat pada Tabel 2.2.

Tabel 2.2 Pergeseran Dengan Karakter Buruk

Teks G C A T C G C A G A G A G T A T A C A T T A C G Pattern - - - - - G A G

Dalam proses pencarian string, algoritma apostolico giancarlo menggunakan sebuah tabel yang disebut Skip, untuk menyimpan hasil perbandingan karakter yang sama. Tabel ini minimal menyimpan dua karakter hasil perbandingan untuk setiap proses pencarian. Setelah melakukan peletakan karakter dengan posisi yang sama


(36)

Tabel 2.3 Perbandingan Setelah Karakter Yang Sama

Teks G C A T C G C A G A G A G T A T A C A T T A C G

Pattern G C - - A G A G

Ditemukan bahwa karakte G dan A sama seperti pada perbandingan sebelumnya, lalu ditemukan satu karakter berikutnya lagi yang sama yaitu G. Karena sampai saat ini terdapat pattern baru di tabel Skip yaitu AGAG, maka selanjutnya akan dilakukan perbandingan selanjutnya untuk karakter yang tidak sama. Ditemukan karakter G dan C yang sama dengan teks. Oleh karena itu, akan langsung dilakukan lompatan tujuh karakter seperti pada lompatan akhiran-baik pada Boyer-Moore, yang hasilnya seperti terlihat pada Tabel 2.4 (Mirabella, 2012).

Tabel 2.4 Melakukan Lompatan Karakter

Teks G C A T C G C A G A G A G T A T A C A T T A C G

Pattern - - - G

Proses ini akan dilakukan berulang kali hingga setiap karakter pada pattern memiliki karakter yang sama pada teks (Mirabella, 2012).

Berdasarkan penjelasan di atas, secara singkat, cara kerja algoritma giancarlo apostolico dapat disimpulkan sebagai berikut:

1. Input lokasi file yang akan dicari. 2. Input kata kunci pencarian.

3. Untuk setiap file yang diperiksa, urutkan nama file sesuai abjad tanpa ada karakter yang mengalami perulangan.

4. Hitung jumlah kemunculan masing-masing karakter kata kunci pada setiap file yang diperiksa. Untuk karakter kata kunci yang tidak ditemukan pada file, gunakan kode n+1, dimana n adalah jumlah index dari kata kunci. Untuk karakter kata kunci yang ditemukan pada file, gunakan index kemunculan karakter tersebut pada file sebagai kode.


(37)

5. Untuk setiap file yang diperiksa, lakukan pencocokan nama file terhadap kata kunci. Jika tidak terjadi kecocokan, lakukan shift berdasarkan kriteria karakter nama file, apakah termasuk bad-suffix shift atau good-suffix shift.

6. Good-suffix shift dilakukan jika karakter nama file bukan termasuk karakter buruk (memiliki kode lebih kecil dari n+1). Pergeseran dilakukan hingga ditemukan karakter yang cocok dengan karakter nama file pada kata kunci. 7. Bad-suffix shift dilakukan jika karakter nama file termasuk dalam karakter

buruk (memiliki kode n+1). Pergeseran dilakukan sebanyak n+1.

8. Proses pencarian dihentikan jika seluruh karakter nama file yang diperiksa telah cocok dengan karakter pada kata kunci.

9. Hitung jumlah pergerseran (shift) untuk masing-masing pencarian nama file.

2.6 Penelitian Terdahulu

Dalam masalah pencarian file menggunakan algoritma apostolico giancarlo ini, ada beberapa Penelitian terdahulu yang digunakan sebagain referensi sebagai berikut.

Lecroq T. (1992) dengan menggunakan teknik Apostolico Giancarlo dengan fungsi untuk menghitung prefix terpanjang dalam string pencarian. Apostolico giancarlo hanya membutuhkan maksimal tiga kali pencarian untuk suffix yang sama.

Pada penelitian yang diterapkan oleh Crochemore et al. (1997) Apostolico Giancarlo Apostolico giancarlo memiliki efisiensi yang baik dalam kecepatan pencarian string yang sama. Dengan menggunakan teknik Apostolico Giancarlo dengan fungsi pengingat string yang sudah pernah cocok pada pencarian sebelumnya.

Juga pada penelitian yang lakukan oleh Crochemore et al. (2002) Apostolico giancarlo mampu mengatasi masalah pencarian dengan kecepatan setengah dari kecepatan algoritma Boyer-Moore dengan menggunakan variasi fungsi shift.

Mirabella F M. (2013) dengan menerapkan metode Turbo-BM, Apostolico Giancaro dan Horspool maka hasil yang dicapai untuk Algoritma Turbo-BM dan Apostolico Giancarlo lebih cepat dalam penyelesaian solusi dibandingkan dengan Boyer-Moore.

Berry et al. (2002) algoritma baru kombinasi dari Quicksearch dan Zhu-Takaoka dan perbandingannya dengan algoritma lain. Dengan menggunakan teknik


(38)

Horspool, Raita, Quicksearch, Maximal Shift, Liu-Du-Ishi, The Smith, Zhu-Takaoka, Baeza-Yates.

Al-Khamaiseh et al. (2014) dengan Survey mengenai algoritma Exact string matching dan Approximate String Matching dalam masalah Intrusion Detection System menggunakan metode Exact String Matching dan Approximate String Matching .

Adapun penelitian terdahulu yang digunakan sebagai referensi dalam penelitian ini sebagaimana terlihat pada Tabel 2.5.

Tabel 2.5 Penelitan Terdahulu

Peneliti Tehnik Yang Digunakan Keterangan Maxim Crochemore,

Christophe Hancart, Thierry Lecroq (2002)

Apostolico Giancarlo dengan variasi fungsi shift

Apostolico giancarlo mampu mengatasi masalah pencarian dengan kecepatan setengah dari kecepatan algoritma Boyer-Moore

Thierry Lecroq (1992)

Apostolico Giancarlo dengan fungsi untuk menghitung prefix terpanjang dalam string pencarian.

Apostolico giancarlo hanya membutuhkan maksimal tiga kali pencarian untuk suffix yang sama

Maxim Crochemore, Thierry Lecroq (1997)

Apostolico Giancarlo dengan fungsi pengingat string yang sudah pernah cocok pada pencarian sebelumnya.

Apostolico giancarlo memiliki efisiensi yang baik dalam kecepatan pencarian string yang sama.

Flora Monica Mirabella (2013)

Turbo-BM, Apostolico Giancaro dan Horspool

Algoritma Turbo-BM dan Apostolico Giancarlo lebih cepat dalam penyelesaian solusi dibandingkan dengan Boyer-Moore.

Thomas Berry & Somasundaram Ravindran (2002)

Brute Force, Knuth-Morris-Pratt, Boyer-Moore, Turbo-BM, Apostolico Giancarlo, Horspool, Raita,

Quicksearch, Maximal Shift, Liu-Du-Ishi, The Smith, Zhu-Takaoka, Baeza-Yates

Algoritma baru kombinasi dari Quicksearch dan Zhu-Takaoka dan perbandingannya dengan algoritma lain.


(39)

Koloud Al-Khamaiseh & Shadi Al-Shagarin (2014)

Exact String Matching dan Approximate String

Matching

Survey mengenai algoritma Exact string matching dan Approximate String Matching dalam masalah Intrusion Detection System.


(40)

BAB 1

PENDAHULUAN

1.1. Latar Belakang

Perkembangan teknologi komputer menyebabkan semakin bertambahnya kapasitas media penyimpanan data, khususnya hard disk. Pertambahan jumlah kapasitas pada media hard disk ini memungkinkan pengguna untuk menyimpan lebih banyak file, yang menyebabkan semakin banyaknya jumlah file di dalam media hard disk tersebut. Hal ini menimbulkan suatu masalah, yaitu bagaimana menemukan satu atau lebih file pada media hard disk dengan cepat dan tepat.

Salah satu karakteristik dari sebuah file adalah file terdiri dari beberapa karakter yang berfungsi sebagai identitas dari file tersebut serta sebuah ekstensi yang menunjukkan kategori dari file tersebut. Dengan melihat karakteristik ini, sangat memungkinkan untuk melakukan pencarian file berdasarkan struktur karakter yang membentuk sebuah nama file. Dalam pencarian sebuah file, karakter dapat digunakan sebagai input untuk membandingkan setiap file di dalam media hard disk dan menentukan file mana yang memiliki tingkat kemiripan dengan struktur karakter yang diinputkan.

Untuk membandingkan struktur karakter pada file dengan input yang digunakan dalam pencarian, algoritma apostolico giancarlo dapat digunakan sebagai salah satu alternatif. apostolico Giancarlo merupakan pengembangan dari algoritma boyen moore, dimana algoritma ini dapat mengukur persentase kemunculan karakter kata kunci pada string pencarian serta melakukan pengecekan terhadap tiap-tiap karakter pada string pencarian yang sesuai dengan urutan karakter pada kata kunci. Dengan kemampuan ini, proses pencarian pada algoritma apostolico giancarlo lebih cepat dan efisien dibandingkan dengan algoritma boyer-moore. Tidak perlu dilakukan pengecekan hingga akhir karakter string pencarian, jika kata kunci sudah ditemukan di awal atau tengah string pencarian. Dengan kata lain, algoritma ini dapat melompati


(41)

sisa karakter pada string pencarian, jika sudah ditemukan urutan karakter yang cocok dengan kata kunci pada string pencarian yang diperiksa. Proses pelompatan sisa karakter pada string pencarian ini sangat berguna jika jumlah string pencarian yang akan diperiksa berjumlah besar. Semakin banyak karakter yang dilompati dalam string pencarian akan mengurangi waktu yang dibutuhkan untuk menyelesaikan proses pencarian pada keseluruhan string pencarian. Hal ini akan sangat membantu dalam menemukan file yang memiliki nama file yang mirip dalam hal komposisi karakternya namun berbeda dalam hal struktur katanya.

Berdasarkan latar belakang masalah di atas, penulis ingin merancang sebuah perangkat lunak pencarian file pada media hard disk dengan menggunakan algoritma apostolico giancarlo dan merangkum hasilnya menjadi sebuah tugas akhir yang

berjudul “Aplikasi Pencarian File Berdasarkan Struktur Karakter Dengan

Menggunakan Algoritma Apostolico Giancarlo”.

1.2. Rumusan Masalah

Dalam masalah pencarian file, diperlukan bagaimana menemukan satu atau lebih file pada media hard disk dengan cepat dan tepat. Oleh karena itu, perlu diperlukan suatu pendekatan yang dapat memilah file bukan hanya berdasarkan kata kunci yang diinputkan tapi juga berdasarkan kecocokan karakter antara nama file yang diperiksa dengan karakter kata kunci yang diinputkan.

1.3. Batasan Masalah

Batasan masalah pada tugas akhir ini adalah sebagai berikut :

1. Inputan karakter yang dapat diterima dibatasi pada karakter ASCII dengan nilai 0 sampai 255.

2. Format file yang digunakan adalah format standar yang digunakan pada sistem operasi berbasis Microsoft Windows.

3. Proses pencarian file dibatasi pada file yang berada di dalam satu drive.


(42)

1.4. Tujuan Penelitian

Tujuan dari penelitian ini untuk melakukan pencarian file pada media hard disk berdasarkan struktur karakter inputan yang digunakan dengan mengimplementasikan algoritma apostolico giancarlo.

1.5. Manfaat Penelitian

Penelitian ini diharapkan dapat memberikan manfaat bagi penulis, pembaca dan para peneliti, sebagai berikut:

1. Dapat membantu pengguna komputer dalam mencari file pada media hard disk yang dimilikinya.

2. Tugas akhir ini dapat menambah referensi dalam bidang pencarian file, khususnya yang menggunakan algoritma apostolico giancarlo.

1.6. Metodologi penelitian

Metodologi penelitian yang digunakan pada penelitian ini adalah: 1. Studi Literatur

Pada tahap ini dilakukan studi kepustakaan yaitu proses pengumpulan bahan-bahan referensi yang berkaitan dengan file, algoritma pencarian dan apostolico giancarlo dari buku, artikel, paper, jurnal, makalah dan sumber lainnya.

2. Analisis

Pada tahap ini dilakukan analisis spesifikasi perangkat lunak yang dibangun pada penelitian ini, seperti pengumpulan data, analisis data, algoritma dan struktur data.

3. Perancangan

Pada tahap ini dilakukan perancangan perangkat lunak yang dibangun, seperti perancangan proses dan antarmuka.

4. Implementasi

Pada tahap ini dilakukan pengkodean perangkat lunak sesuai dengan spesifikasi yang ditentukan.


(43)

5. Pengujian

Pada tahap ini dilakukan pengujian terhadap perangkat lunak yang dibangun, dan bagaimana keakuratan dari sistem yang dibuat.

6. Penyusunan Laporan

Pada tahap ini dilakukan penulisan dokumentasi dan laporan mengenai perangkat lunak yang dikembangkan.

1.7. Sistematika Penulisan

Sistematika penulisan dari skripsi ini terdiri dari lima bagian utama sebagai berikut:

BAB 1 PENDAHULUAN

Bab ini berisi latar belakang, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian, dan sistematika penulisan.

BAB 2: LANDASAN TEORI

Bab ini berisi teori-teori yang digunakan untuk memahami permasalahan yang dibahas pada penelitian ini.

BAB 3: ANALISIS DAN PERANCANGAN

Bab ini membahas tentang perancangan sistem dan program yang mencakup perancangan pangkalan data, perancangan sistem, dan perancangan interface. Dalam perancangan sistem dicantumkan data flow diagram untuk mempermudah penjelasan sistem.

BAB 4: IMPLEMENTASI DAN PENGUJIAN

Bab ini berisi pembahasan tentang implementasi dari analisis dan perancangan perangkat lunak yang disusun pada Bab 3 dan pengujian terhadap sistem yang dibangun.

BAB 5: KESIMPULAN DAN SARAN


(44)

saran-ABSTRAK

Banyaknya jumlah file di dalam media hard disk tersebut menimbulkan suatu masalah, yaitu bagaimana menemukan satu atau lebih file pada media hard disk dengan cepat dan tepat. Algoritma apostolico giancarlo merupakan salah satu alternatif dalam memecahkan masalah pencarian file dengan menggunakan pembandingan terhadap karakter pada nama file dengan kata kunci yang diberikan. Algoritma yang merupakan pengembangan dari algoritma boyer-moore ini mengukur persentase kemunculan karakter kata kunci pada karakter nama file serta melakukan pengecekan berdasarkan urutan karakter pada kata kunci. Dengan menggunakan prinsip ini, proses pencarian file menjadi lebih cepat dan efisien karena tidak perlu dilakukan pengecekan hingga akhir karakter nama file, jika kata kunci sudah ditemukan di awal atau tengah pencarian. Aplikasi pencarian file dengan menggunakan algoritma apostolico giancarlo ini mampu melakukan pencarian file pada folder atau drive yang ditentukan berdasarkan kata kunci yang diberikan oleh pengguna. Hasil output berupa daftar nama file yang mendekati kata kunci pencarian ditampilkan beserta dengan persentase kemiripan nama file tersebut dengan kata kunci pencarian yang digunakan.


(45)

APPLICATION OF FILE SEARCH BASED ON CHARACTER STRUCTURE USING ALGORITHM OF APOSTOLICO GIANCARLO

ABSTRACT

There are a big number of file in hard disk media will cause any problems, i.e, how to find one file or more on hard disk media quickly and accurately. Algorithm of Apostolico Giancarlo is one of alternative in problem solving of file search using comparison to the character on the name of file with keyword. The algorithm as the development of Boyer moore algorithm is measure the percentage of the appearance of keyword character. By using this principle, the process of file search is quick and efficient because it did not do the checking all of character of the file name, if the keyword had found in the early or in the middle of search. The application of file search using apostolic Giancarlo algorithm can do the search of file on the folder or drive that determined based on the keyword of the user. The output is a list of file name that approach the keywords of search that displayed with percentage of matching of the name of file with the keywords of searching.


(46)

SKRIPSI

YASIR NASUTION

081402076

PROGRAM STUDI TEKNOLOGI INFORMASI

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

2016


(47)

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh

Ijazah Sarjana Teknologi Informasi

YASIR NASUTION

081402076

PROGRAM STUDI TEKNOLOGI INFORMASI

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

2016


(48)

PERSETUJUAN

Judul : APLIKASI PENCARIAN FILE BERDASARKAN

STRUKTUR KARAKTER DENGAN

MENGGUNAKAN ALGORITMA APOSTOLICO GIANCARLO

Kategori : SKRIPSI

Nama : YASIR NASUTION

Nomor Induk Mahasiswa : 081402076

Program Studi : SARJANA (S1) TEKNOLOGI INFORMASI

Departemen : TEKNOLOGI INFORMASI

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI

INFORMASI UNIVERSITAS SUMATERA UTARA

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Sarah Purnamawati, ST,M.Sc Dr. Erna Budhiarti Nababan, M.IT NIP. 19830226 201012 2 003 NIP. ---

Diketahui/Disetujui oleh

Program Studi S1 Teknologi Informasi Ketua,

M. Anggia Muchtar, ST. MM.IT NIP. 19800110 200801 1


(49)

PERNYATAAN

APLIKASI PENCARIAN FILE BERDASARKAN STRUKTUR KARAKTER DENGAN MENGGUNAKAN ALGORITMA APOSTOLICO GIANCARLO

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.

Medan, 14 April 2016 Yasir Nasution


(50)

UCAPAN TERIMA KASIH

Puji dan syukur penulis sampaikan ke hadirat Allah SWT atas rahmat dan karunia yang diberikan sehingga penulis dapat menyelesaikan skripsi ini sebagai syarat untuk memperoleh gelar sarjana Teknologi Informasi Pada program Studi S1 Teknologi Informasi Universitas Sumatera Utara.

Ucapan terima kasih penulis ucapkan kepada Ibu Erna Budhiarti dan Ibu Sarah Purnamawati selaku dosen pembimbing yang telah meluangkan banyak waktu untuk memberikan motivasi, masukan dan saran kepada penulis. Ucapan terima kasih juga ditujukan untuk Bapak Dedy Arisandi dan Bapak Sawaluddin yang telah bersedia menjadi dosen pembanding. Ucapan terima kasih juga penulis ucapkan untuk seluruh dosen serta seluruh staf pegawai (TU) di program Studi S1 Teknologi Informasi.

Skripsi ini penulis persembahkan untuk kedua orang tua, ayahanda Asri Nasution dan Ibunda Derlan Hasibuan serta saudari penulis Mutya Sahra yang telah memberikan dukungan dan motivasi. Terima kasih penulis ucapkan untuk seluruh teman-teman yang selalu memberikan dukungan dan berbagi ilmu khususnya angkatan 2008. Semoga Allah SWT selalu membalas kebaikan kalian dengan nikmat yang berlimpah.


(51)

ABSTRAK

Banyaknya jumlah file di dalam media hard disk tersebut menimbulkan suatu masalah, yaitu bagaimana menemukan satu atau lebih file pada media hard disk dengan cepat dan tepat. Algoritma apostolico giancarlo merupakan salah satu alternatif dalam memecahkan masalah pencarian file dengan menggunakan pembandingan terhadap karakter pada nama file dengan kata kunci yang diberikan. Algoritma yang merupakan pengembangan dari algoritma boyer-moore ini mengukur persentase kemunculan karakter kata kunci pada karakter nama file serta melakukan pengecekan berdasarkan urutan karakter pada kata kunci. Dengan menggunakan prinsip ini, proses pencarian file menjadi lebih cepat dan efisien karena tidak perlu dilakukan pengecekan hingga akhir karakter nama file, jika kata kunci sudah ditemukan di awal atau tengah pencarian. Aplikasi pencarian file dengan menggunakan algoritma apostolico giancarlo ini mampu melakukan pencarian file pada folder atau drive yang ditentukan berdasarkan kata kunci yang diberikan oleh pengguna. Hasil output berupa daftar nama file yang mendekati kata kunci pencarian ditampilkan beserta dengan persentase kemiripan nama file tersebut dengan kata kunci pencarian yang digunakan.


(52)

APPLICATION OF FILE SEARCH BASED ON CHARACTER STRUCTURE USING ALGORITHM OF APOSTOLICO GIANCARLO

ABSTRACT

There are a big number of file in hard disk media will cause any problems, i.e, how to find one file or more on hard disk media quickly and accurately. Algorithm of Apostolico Giancarlo is one of alternative in problem solving of file search using comparison to the character on the name of file with keyword. The algorithm as the development of Boyer moore algorithm is measure the percentage of the appearance of keyword character. By using this principle, the process of file search is quick and efficient because it did not do the checking all of character of the file name, if the keyword had found in the early or in the middle of search. The application of file search using apostolic Giancarlo algorithm can do the search of file on the folder or drive that determined based on the keyword of the user. The output is a list of file name that approach the keywords of search that displayed with percentage of matching of the name of file with the keywords of searching.


(53)

DAFTAR ISI

Hal.

Persetujuan ... ii

Pernyataan ... iii

Ucapan Terima Kasih ... iv

Abstrak ... v

Abstract ... vi

Daftar Isi ... vii

Daftar Tabel ... ix

Daftar Gambar ... x

Bab 1 Pendahuluan ... 1

1.1 Latar Belakang ... 1

1.2 Rumusan Masalah ... 2

1.3 Batasan Masalah ... 2

1.4 Tujuan Penelitian ... 3

1.5 Manfaat Penelitian ... 3

1.6 Metode Penelitian ... 3

1.7 Sistematika Penulisan ... 4

Bab 2 Tinjauan Pustaka ... 5

2.1 Karakter ASCII ... 5

2.2 Pencarian (Searching) ... 6

2.3 Algoritma Pencarian Data ... 7

2.3.1 Pencarian Beruntun (Sequential Searching) ... 8

2.3.2 Pencarian Biner (Binary Search) ... 9

2.4 Algoritma Boyer-Moore ... 10

2.5 Algoritma Apostolico Giancarlo ... 12


(54)

Bab 3 Analisi dan Perancangan Sistem ... 17

3.1 Arsitektur Umum Sistem ... 17

3.2 Penerapan Algoritma Apostolico Giancarlo ... 17

3.3 Perancangan Sistem ... 21

3.3.1 Proses Kerja Sistem ... 21

3.3.2 Perancangan Antarmuka Program ... 23

3.3.3 Pseudo-code Program ... 25

Bab 4 Implementasi dan Pembahasan ... 27

4.1 Implementasi ... 27

4.1.1 Tampilan Hasil ... 27

4.1.2 Pengujian Sistem ... 36

4.2 Pembahasan ... 38

Bab 5 Penutup ... 41

5.1 Kesimpulan ... 41

5.2 Saran ... 42

DAFTAR PUSTAKA ... 42 LAMPIRAN


(55)

DAFTAR TABEL

Hal.

Tabel 2.1 Menyamakan Posisi Pattern ... 12

Tabel 2.2 Pergeseran Dengan Karakter Buruk ... 12

Tabel 2.3 Perbandinggan Setelah Karakter Yang Sama ... 13

Tabel 2.4 Melakukan Lompatan Karakter ... 13

Tabel 2.5 Penelitian Terdahulu ... 14

Tabel 3.1 Hasil Pre-Processing ... 18

Tabel 3.2 Pencocokan I ... 18

Tabel 3.3 Pencocokan II ... 19

Tabel 3.4 Pencocokan III ... 19

Tabel 3.5 Pencocokan IV ... 20

Tabel 4.1 File Uji ... 28


(56)

DAFTAR GAMBAR

Hal.

Gambar 2.1 Kombinasi Kode ASCII ... 5

Gambar 3.1 Arsitektur Umum Sistem ... 16

Gambar 3.2 Proses Kerja Sistem ... 21

Gambar 3.3 Rancangan Form Utama ... 23

Gambar 3.4 Rancangan Form Cari ... 23

Gambar 3.5 Rancangan Form Info ... 24

Gambar 4.1 Tampilan Form Utama ... 26

Gambar 4.2 Tampilan Form Info ... 27

Gambar 4.3 Tampilan Form Cari ... 29

Gambar 4.4 Konfigurasi Pengujian Pertama ... 30

Gambar 4.5 Hasil Pengujian Pertama ... 31

Gambar 4.6 Konfigurasi Pengujian Kedua ... 32

Gambar 4.7 Hasil Pengujian Kedua ... 33

Gambar 4.8 Konfigurasi Pengujian Ketiga ... 34

Gambar 4.9 Hasil Pengujian Ketiga ... 35

Gambar 4.10 Konfigurasi Pengujian Keempat ... 36


(1)

ABSTRAK

Banyaknya jumlah file di dalam media hard disk tersebut menimbulkan suatu masalah, yaitu bagaimana menemukan satu atau lebih file pada media hard disk dengan cepat dan tepat. Algoritma apostolico giancarlo merupakan salah satu alternatif dalam memecahkan masalah pencarian file dengan menggunakan pembandingan terhadap karakter pada nama file dengan kata kunci yang diberikan. Algoritma yang merupakan pengembangan dari algoritma boyer-moore ini mengukur persentase kemunculan karakter kata kunci pada karakter nama file serta melakukan pengecekan berdasarkan urutan karakter pada kata kunci. Dengan menggunakan prinsip ini, proses pencarian file menjadi lebih cepat dan efisien karena tidak perlu dilakukan pengecekan hingga akhir karakter nama file, jika kata kunci sudah ditemukan di awal atau tengah pencarian. Aplikasi pencarian file dengan menggunakan algoritma apostolico giancarlo ini mampu melakukan pencarian file pada folder atau drive yang ditentukan berdasarkan kata kunci yang diberikan oleh pengguna. Hasil output berupa daftar nama file yang mendekati kata kunci pencarian ditampilkan beserta dengan persentase kemiripan nama file tersebut dengan kata kunci pencarian yang digunakan.

Kata kunci : File, pencarian kata, apostolico giancarlo.


(2)

vi

APPLICATION OF FILE SEARCH BASED ON CHARACTER STRUCTURE USING ALGORITHM OF APOSTOLICO GIANCARLO

ABSTRACT

There are a big number of file in hard disk media will cause any problems, i.e, how to find one file or more on hard disk media quickly and accurately. Algorithm of Apostolico Giancarlo is one of alternative in problem solving of file search using comparison to the character on the name of file with keyword. The algorithm as the development of Boyer moore algorithm is measure the percentage of the appearance of keyword character. By using this principle, the process of file search is quick and efficient because it did not do the checking all of character of the file name, if the keyword had found in the early or in the middle of search. The application of file search using apostolic Giancarlo algorithm can do the search of file on the folder or drive that determined based on the keyword of the user. The output is a list of file name that approach the keywords of search that displayed with percentage of matching of the name of file with the keywords of searching.


(3)

DAFTAR ISI

Hal.

Persetujuan ... ii

Pernyataan ... iii

Ucapan Terima Kasih ... iv

Abstrak ... v

Abstract ... vi

Daftar Isi ... vii

Daftar Tabel ... ix

Daftar Gambar ... x

Bab 1 Pendahuluan ... 1

1.1 Latar Belakang ... 1

1.2 Rumusan Masalah ... 2

1.3 Batasan Masalah ... 2

1.4 Tujuan Penelitian ... 3

1.5 Manfaat Penelitian ... 3

1.6 Metode Penelitian ... 3

1.7 Sistematika Penulisan ... 4

Bab 2 Tinjauan Pustaka ... 5

2.1 Karakter ASCII ... 5

2.2 Pencarian (Searching) ... 6

2.3 Algoritma Pencarian Data ... 7

2.3.1 Pencarian Beruntun (Sequential Searching) ... 8

2.3.2 Pencarian Biner (Binary Search) ... 9

2.4 Algoritma Boyer-Moore ... 10

2.5 Algoritma Apostolico Giancarlo ... 12

2.6 Penelitian Teradahulu ... 14


(4)

viii

Bab 3 Analisi dan Perancangan Sistem ... 17

3.1 Arsitektur Umum Sistem ... 17

3.2 Penerapan Algoritma Apostolico Giancarlo ... 17

3.3 Perancangan Sistem ... 21

3.3.1 Proses Kerja Sistem ... 21

3.3.2 Perancangan Antarmuka Program ... 23

3.3.3 Pseudo-code Program ... 25

Bab 4 Implementasi dan Pembahasan ... 27

4.1 Implementasi ... 27

4.1.1 Tampilan Hasil ... 27

4.1.2 Pengujian Sistem ... 36

4.2 Pembahasan ... 38

Bab 5 Penutup ... 41

5.1 Kesimpulan ... 41

5.2 Saran ... 42

DAFTAR PUSTAKA ... 42 LAMPIRAN


(5)

DAFTAR TABEL

Hal.

Tabel 2.1 Menyamakan Posisi Pattern ... 12

Tabel 2.2 Pergeseran Dengan Karakter Buruk ... 12

Tabel 2.3 Perbandinggan Setelah Karakter Yang Sama ... 13

Tabel 2.4 Melakukan Lompatan Karakter ... 13

Tabel 2.5 Penelitian Terdahulu ... 14

Tabel 3.1 Hasil Pre-Processing ... 18

Tabel 3.2 Pencocokan I ... 18

Tabel 3.3 Pencocokan II ... 19

Tabel 3.4 Pencocokan III ... 19

Tabel 3.5 Pencocokan IV ... 20

Tabel 4.1 File Uji ... 28

Tabel 4.2 Hasil Pengujian ... 38


(6)

x

DAFTAR GAMBAR

Hal.

Gambar 2.1 Kombinasi Kode ASCII ... 5

Gambar 3.1 Arsitektur Umum Sistem ... 16

Gambar 3.2 Proses Kerja Sistem ... 21

Gambar 3.3 Rancangan Form Utama ... 23

Gambar 3.4 Rancangan Form Cari ... 23

Gambar 3.5 Rancangan Form Info ... 24

Gambar 4.1 Tampilan Form Utama ... 26

Gambar 4.2 Tampilan Form Info ... 27

Gambar 4.3 Tampilan Form Cari ... 29

Gambar 4.4 Konfigurasi Pengujian Pertama ... 30

Gambar 4.5 Hasil Pengujian Pertama ... 31

Gambar 4.6 Konfigurasi Pengujian Kedua ... 32

Gambar 4.7 Hasil Pengujian Kedua ... 33

Gambar 4.8 Konfigurasi Pengujian Ketiga ... 34

Gambar 4.9 Hasil Pengujian Ketiga ... 35

Gambar 4.10 Konfigurasi Pengujian Keempat ... 36