BAB 2 LANDASAN TEORI Pada bab ini akan dibahas tentang teori-teori dan konsep dasar yang mendukung pembahasan dari sistem yang akan dibuat. 2.1. Katalog Perpustakaan Katalog perpustakaan merupakan suatu media yang dibutuhkan oleh perpustakaan agar dapat memudahkan pengunjung dalam memperoleh informasi mengenai koleksi apa saja yang dimiliki oleh perpustakaan. Ada beberapa pengertian tentang katalog perpustakaan, antara lain yaitu : a. Gates (1989) menyatakan bahwa katalog perpustakaan adalah suatu daftar yang sistematis dari buku dan bahan-bahan lain dalam suatu perpustakaan, dengan informasi deskriptif mengenai pengarang, judul, penerbit, tahun terbit, bentuk fisik, subjek, dan ciri khas bahan. b. Sulistyo-Basuki (1991) menyatakan bahwa katalog perpustakaan adalah senarai dokumen yang dimiliki sebuah perpustakaan atau kelompok perpustakaan. c. Taylor (1992) menyatakan bahwa katalog perpustakaan merupakan susunan yang sistematis dari seperangkat cantuman bibliografis yang merepresentasikan kumpulan dari suatu koleksi tertentu. Koleksi tersebut terdiri dari berbagai jenis bahan, seperti buku, terbitan berkala, peta, rekaman suara, gambar, notasi musik, dan sebagainya.
7 2.2. Fitur atau Layanan Autocomplete Autocomplete merupakan pola yang pertama kali muncul dalam bantuan fungsi aplikasi dekstop, dimana pengguna mengentrikan teks ke dalam kotak kemudian saran pengetikan akan muncul secara otomatis (Morville & Callender, 2010). Autocomplete memecahkan beberapa masalah umum pada pengetikan (Morville & Callender, 2010) yaitu : a. Mengetik membutuhkan waktu. b. Pengguna tidak dapat mengeja kata dengan baik. c. Pengguna sering bingung ketika mengetikkan kata-kata, sulit mengingat istilah yang tepat. Autocomplete melibatkan program yang dapat melakukan prediksi terhadap sebuah kata atau frasa yang pengguna ingin tulis tanpa harus menulis keseluruhan kata atau frasa secara lengkap (Kusuma, 2012). Autocomplete bekerja ketika pengguna menulis huruf pertama atau beberapa huruf/karakter dari sebuah kata, program yang melakukan prediksi akan mencari satu atau lebih kemungkinan kata sebagai pilihan. Jika kata yang dimaksud ada dalam pilihan kata prediksi maka kata yang dipilih tersebut akan disisipkan pada teks (Kusuma, 2012). Saat ini autocomplete tidak hanya terdapat pada dekstop, tetapi terdapat juga pada web browser, email-programs, search engine interface, source code editors, database query tools, word processor, dan command line interpreters (Kusuma, 2012). Ilustrasi penggunaan layanan autocomplete dapat dilihat pada gambar 2.1. kecerd search Kecerdasan Buatan Gambar 2.1. Ilustrasi Penggunaan Autocomplete
8 2.3. Approximate String Matching Approximate string matching merupakan pencocokan string dengan dasar kemiripan dari segi penulisannya (jumlah karakter dan susunan karakter), tingkat kemiripan ditentukan dengan jauh tidaknya beda penulisan dua buah string yang dibandingkan tersebut (Haryanto, 2011). Operasi mengubah string ini bisa berupa mengubah satu huruf ke huruf yang lain, menghapus satu huruf dari string, atau memasukkan satu huruf ke dalam string. Operasi-operasi ini digunakan untuk menghitung jumlah perbedaan yang diperlukan untuk pertimbangan kecocokan suatu string dengan string sumber, jumlah perbedaan tersebut diperoleh dari penjumlahan semua pengubahan yang terjadi dari masingmasing operasi. Penggunaan perbedaan tersebut diaplikasikan dalam berbagai macam algoritma, seperti Hamming, Levenshtein, Damerau-Levenshtein, Jaro-Winkler, Wagner-Fischer, dan lain-lain (Husain, 2013). Operasi penghitungan tersebut meliputi tiga operasi string seperti di bawah ini (Adiwidya, 2009). 2.3.1. Operasi penghapusan Operasi penghapusan dilakukan dengan menghapus karakter pada indeks tertentu untuk menyamakan string sumber (S) dengan string target (T), misalnya S= networking dan T= network. Penghapusan dilakukan untuk karakter i pada lokasi ke- 8, penghapusan karakter n pada lokasi ke-9, penghapusan karakter g pada lokasi ke- 10. Operasi penghapusan tersebut menunjukkan tranformasi S ke T, ilustrasinya adalah sebagai berikut : 1 2 3 4 5 6 7 8 9 10 T = n e t w o r k - - - S = n e t w o r k i n g
9 2.3.2. Operasi penyisipan Operasi penyisipan dilakukan dengan menyisipkan karakter pada indeks tertentu untuk menyamakan string sumber (S) dengan string target (T), misalnya S= program dan T= pemrograman. Operasi penyisipan dapat dilakukan dengan menyisipkan e pada posisi 2, menyisipkan m pada posisi 3, menyisipkan a pada posisi 10 dan menyisipkan n pada posisi 11. Yang dapat diilustrasikan sebagai berikut: 1 2 3 4 5 6 7 8 9 10 11 T = p e m r o g r a m a n S = p - - r o g r a m - - e m a n 2.3.3. Operasi penukaran Operasi penukaran dilakukan dengan menukar karakter pada indeks tertentu untuk menyamakan string sumber (S) dengan string target (T), misalnya S= computer dan T= komputer. String S ditranformasikan menjadi T dengan melakukan penggantian (substitusi) pada posisi ke-1. Huruf C ditukar menjadi K. Prosesnya dapat diilustrasikan sebagai berikut: 1 2 3 4 5 6 7 8 T = S = k o m p u t e r c o m p u t e r k 2.4. Algoritma Hamming Distance Algoritma Hamming Distance merupakan salah satu dari algoritma approximate string matching yang ditemukan oleh Richard Hamming pada tahun 1950, algoritma
10 ini pertama sekali digunakan untuk mendeteksi kesalahan dan memperbaiki telekomunikasi sebagai estimasi error. Sehingga algoritma Hamming Distance sering disebut jarak sinyal, pada masa sekarang algoritma ini banyak digunakan untuk teori informasi, teori pengkodean, dan kriptografi. Cara kerja algoritma Hamming Distance yaitu dengan mengukur jarak antara dua string yang ukurannya sama dengan membandingkan simbol-simbol yang terdapat pada kedua string pada posisi yang sama. Hamming distance dari dua string adalah jumlah simbol dari kedua string yang berbeda (Jaya, 2013). Sebagai contoh algoritma Hamming distance dapat diilustrasikan sebagai berikut : 1 2 3 4 5 6 7 8 9 T = a l g o r i t m a S = a l g o r r m m a i t Dari ilustrasi di atas, nilai Hamming Distance yang diperoleh yaitu 2, dimana hanya diperlukan 2 operasi penukaran untuk mengubah string algorrmma menjadi string algoritma. Algoritma Hamming Distance juga digunakan untuk mengukur jarak antar dua string binary misalnya jarak antara 10011101 dengan 10001001 yaitu 2, algoritma Hamming Distance tidak dapat digunakan untuk mengukur atau membandingkan string dengan panjang yang berbeda, algoritma yang mampu membandingkan string dengan panjang yang berbeda yaitu algoritma Levenshtein Distance, algoritma ini tidak hanya melakukan operasi penukaran tetapi juga melibatkan operasi penyisipan dan penghapusan (Jaya, 2013). 2.5. Algoritma Levenshtein Distance Algoritma Levenshtein Distance ditemukan oleh Vladimir Levenshtein, seorang ilmuan asal Rusia pada tahun 1965 (Janowski, 2010), algoritma ini sering juga disebut dengan Edit Distance (Husain,2013). Yang dimaksud dengan distance adalah jumlah modifikasi yang dibutuhkan untuk mengubah suatu bentuk string ke bentuk string yang lain, sebagai contoh hasil penggunaan algoritma ini, string komputer dan computer memiliki distance 1 karena hanya perlu dilakukan satu operasi saja untuk
11 mengubah satu string ke string yang lain. Dalam kasus dua string di atas, string computer dapat menjadi komputer hanya dengan melakukan satu penukaran karakter c menjadi k (Andhika, 2010). Algoritma Levenshtein Distance digunakan secara luas dalam berbagai bidang, misalnya mesin pencari, pengecek ejaan (spell checking), pengenal pembicaraan (speech recognition), pengucapan dialek, analisis DNA, pendeteksi pemalsuan, dan lain-lain. Algoritma ini menghitung jumlah operasi string paling sedikit yang diperlukan untuk mentransformasikan suatu string menjadi string yang lain (Adiwidya, 2009). Algoritma Levenshtein Distance bekerja dengan menghitung jumlah minimum pentranformasian suatu string menjadi string lain yang meliputi penghapusan, penyisipan, dan penukaran (Husain, 2013). Selisih perbedaan antar string dapat diperoleh dengan memeriksa apakah suatu string sumber sesuai dengan string target. Nilai selisih perbedaan ini disebut juga Edit distance/ jarak Levenhstein. Jarak Levenshtein antar string s dan string t tersebut adalah fungsi D yang memetakan (s,t) ke suatu bilangan real nonnegatif, sebagai contoh diberikan dua buah string s = s(1)s(2)s(3)...s(m) dan t = t(1)t(2)t(3)...t(n) dengan s = m dan t = n sepanjang alfabet V berukuran r sehingga s dan t anggota dari V*. S(j) adalah karakter pada posisi ke-j pada string s dan t(i) adalah karakter pada posisi ke-i pada string t. Sehingga jarak Levenshtein dapat didefinisikan sebagai (Harahap, 2013). D(s, t ) = d( s 1, t 1 ) + d( s 2, t 2 ) + + d( s l, t l ) (1) l D s, t = d si, ti (2) i=1 dimana : s i, t i V untuk i = 1,2,,l d( s i, t i ) = 0 jika s i = t i dan d( s i, t i ) = 1 jika s i t i
12 D ( s, t) adalah banyaknya operasi minimum dari operasi penghapusan, penyisipan dan penukaran untuk menyamakan string s dan t. Pada implementasi pencocokan antar string, ketiga operasi tersebut dapat dilakukan sekaligus untuk menyamakan string sumber dengan string target seperti pada contoh berikut ini. Jika diberikan string sumber (S) = pemrograman dan T = algoritma merupakan string target, dengan s = 12, t = 9, maka proses pencocokan string dapat diilustrasikan sebagai berikut : 1 2 3 4 5 6 7 8 9 10 11 12 T = a l g o r i t m a - - - S = p e m r o g r a m a n a l g o i t m Pada contoh di atas terlihat bahwa proses penukaran karakter p pada indeks ke-1, e pada indeks ke-2, m pada indeks ke-4, o pada indeks ke-6, g pada indeks ke-7, r pada indeks ke-8, penyisipan karakter g pada indeks ke-3 dan proses penghapusan karakter m pada indeks ke-10, a pada indeks ke-11 dan n pada indeks ke-12. Maka jarak Levenshtein antara s dan t adalah sebagai berikut ini. D s, t = 12 i=1 d si, ti = d( s 1, t 1 ) + d( s 2, t 2 ) + d( s 3, t 3 ) + d( s 4, t 4 ) + d( s 5, t 5 ) + d( s 6, t 6 ) + d( s 7, t 7 ) + d( s 8, t 8 ) + d( s 9, t 9 ) + d( s 10, t 10 ) + d( s 11, t 11 ) + d( s 12, t 12 ) = d( a, p ) + d( l, e ) + d( g, - ) + d( o, m ) + d( r, r ) + d( i, o) + d( t, g ) + d( m, r) + d( a, a ) + d( -, m )+ d( -, a) + d(-, n) = 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 1 + 1 = 10
13 Sehingga jarak Levenshtein antara string s = pemrograman dan t = algoritma adalah D(s, t) = 10. 2.6. Penelitian Terdahulu Pada bagian ini akan dijelaskan beberapa penelitian terdahulu, layanan autocomplete telah banyak digunakan pada penelitian terdahulu. Seperti layanan autocomplete pada teks editor (Chiquita, 2011), dengan menggunakan algoritma Boyer-Moore dan Dynamic Programming. Penelitian selanjutnya yaitu layanan autocomplete diterapkan pada IDE (integrated development environment) (Kusuma, 2012), dengan menggunakan algoritma Brute Force. Kemudian layanan autocomplete juga pernah diterapkan pada Smart Phones (Pradhana, 2012), dengan menggunakan kombinasi algoritma Brute Force, Boyer-Moore dan Knuth-Morris Pratt. Untuk lebih jelasnya, pada tabel 2.1 berikut akan dijelaskan penelitian-penelitian yang telah dibuat sebelumnya. Tabel 2.1. Penelitian sebelumnya yang berkaitan dengan Autocomplete No. Judul Pengarang Tahun Kelebihan Kekurangan Penerapan 1 Algoritma Boyer-Moore- Dynamic Programming untuk Layanan Auto-Complete dan Auto- Correct Christabella Chiquita B 2011 Algoritma Boyer-Moore lebih mangkus dibandingkan dengan algoritma yang lain serta sangat tepat digunakan sebagai layanan autocomplete Tidak ada Pencocokan string untuk fitur Algoritma brute force 2 autocompletion pada text editor atau integrated Muhammad Wachid Kusuma 2012 dapat diterapkan untuk membentuk fitur autocomplete pada text Cara kerja algoritma brute force berjalan lambat development editor dengan baik environment (IDE)
14 Tabel 2.1. Penelitian sebelumnya yang berkaitan dengan Autocomplete (Lanjutan) No. Judul Pengarang Tahun Kelebihan Kekurangan Penerapan algoritma string Penerapan String matching seperti Brute Matching pada Fitur Force, Boyer-Moore dan Waktu pengecekan 3 Auto Correct dan Fandi Pradhana 2012 KMP pada fitur auto membuat sistem mejadi Fitur Auto Text di correct mampu lambat Smart Phones memberikan hasil yang benar-benar Sedangkan penelitian terdahulu yang berkaitan dengan algoritma Levenshtein Distance yaitu penggunaan algoritma Levenshtein Distance dan metode empiris untuk menampilkan saran perbaikan kesalahan pengetikan dokumen berbahasa Indonesia (Adriyani, 2012), selanjutnya algoritma Levenshtein Distance pernah digunakan untuk penerapan string suggestion dengan tambahan alternatif algoritma lain dalam aplikasi (Andhika, 2010), kemudian algoritma Levenshtein Distance juga diterapkan pada sistem pengoreksian kata kunci dengan studi kasusnya yaitu pada website Universitas Halmahera (Benisius, 2010). Untuk lebih jelasnya, pada tabel 2.2 berikut akan dijelaskan penelitian-penelitian yang telah dibuat sebelumnya. Tabel 2.2. Penelitian yang berkaitan dengan algoritma Levenshtein Distance No. Judul Pengarang Tahun Kelebihan Kekurangan 1 Penerapan Algoritma Algoritma Levenshtein Levenshtein Distance Muhammad Distance mampu menghitung untuk Mengoreksi 2006 Bahari Ilmy tingkat kemiripan string pada Kesalahan Pengejaan teks editor pada Editor Teks Tidak ada 2 Dengan adanya konsep pemrograman dinamis pada algoritma Levenshtein Dynamic Distance menjadikan Programming dalam algoritma ini memberikan Levenshtein Distance Rizka Irawan 2008 banyak kemajuan dalam untuk Mengetahui Ardiyanto bidang teknologi komputer, Keterbedaan Dua dimana dengan lahirnya String berbagai fitur seperti spellchecker dan detektor plagiarisme Tidak ada
15 Tabel 2.2. Penelitian yang berkaitan dengan algoritma Levenshtein Distance (Lanjutan) No. Judul Pengarang Tahun Kelebihan Kekurangan 3 Algoritma program Dinamis Edit Distance untuk Pengecekan Ejaan Samsu Sampena 2009 Algoritma program dinamis edit distance ini memiliki kompleksitas O(m.n) yang jauh lebih baik daripada algoritma pengecekan secara exhaustive search O(3m+n), selain itu algoritma edit distance dapat digunakan untuk banyak hal, diantaranya untuk pendeteksian plagiarisme, pencocokan bentuk, Untuk kemampuan pengecekan ejaan secara konteks dibutuhkan pengembangan lebih lanjut menjadi kajian NLP (Natural Language Processing) perbandingan DNA, dan speech recognition 4 Sistem Pengoreksian Kata Kunci Menggunakan Metode Levenshtein Distance (Studi Kasus: Website Universitas Halmahera) Benisius 2010 Metode Levenshtein Distance mendukung operasi string sampai dengan 255 karakter sehingga dapat digunakan untuk operasi string pada skala yang lebih besar lagi. Sistem yang dibangun belum mampu melakukan pencarian secara terurut (rangking) 5 Penerapan String Suggestion dengan Algoritma Levenshtein Distance dan Alternatif Algoritma Lain dalam Aplikasi Fatardhi Rizky Andhika 2010 Mampu memberikan saran atau pembenaran terhadap kumpulan masukan string pengguna Database harus selalu di update agar fungsionalitas string sugesstion meningkat Implementasi Algoritma Levenshtein 6 Distance dan Metode Empiris untuk Menampilkan Saran Perbaikan Kesalahan Pengetikan Dokumen Berbahasa Indonesia Ni Made Muni Adriyani 2012 Mampu mengatasi kesalahan pengetikan dengan mekanisme penambahan, penyisipan dan penghapusan karakter Masih sebatas pengecekan pola kalimat Berbahasa Indonesia
16 Tabel 2.2. Penelitian yang berkaitan dengan algoritma Levenshtein Distance (Lanjutan) No. Judul Pengarang Tahun Kelebihan Kekurangan Implementasi 7 Algoritma Cocke- Masih bergantung Algoritma CYK dan Younger-Kasami pada akurasi Levenshtein mampu (CYK) dan Berry Safaat prediksi jenis kata 2013 menampilkan saran Levenshtein untuk Harahap oleh opennlp. perbaikan tulisan kalimat Mengoreksi Kesalahan Bahasa Inggris Pengejaan Kalimat Bahasa Inggris