Jurnal INFOTEK, Vol 1, No 1, Februari 2016
ISSN 2502-6968 (Media Cetak)
PERANCANGAN APLIKASI PENCARIAN ISI FILE YANG SAMA PADA HARDISK DRIVE DENGAN ALGORITMA STRING MATCHING Bobby Anggara Mahasiswa Program Studi Teknik Informatika STMIK Budi Darma Medan Jl. Sisingamangaraja No. 338 Sp. Limun Medan http : // www.stmik-budidarma.ac.id // E-mail
[email protected] ABSTRAK Pendeteksian kesamaan isi file merupakan pendeteksian kesamaan beberapa file dengan membandingkan isi file sehingga menghasilkan bobot atau nilai kemiripan dari file yang dibandingkan. Salah satu kegunaan perbandingan isi file adalah untuk membantu pengguna dalam pengelompokan file dan juga memungkinkan pengguna mengetahui apakah isi file yang satu merupakan file yang pada dasarnya sama dengan file yang lain. Hal ini berguna untuk mengetahui apakah sebuah file merupakan hasil ciplakan dari file lain. Pendeteksian kemiripan file ini dapat dilakukan dengan beberapa teknik, misalnya teknik pencarian informasi, teknik penghitungan statistik, atau dengan menggunakan informasi sintaktik dari kalimat per kalimatnya. Pendekatan pendekatan tersebut tidaklah sempurna, masih terdapat beberapa kelemahan, misalnya penghitungan. Kata Kunci : Pendeteksi, file , String Matching
1. Pendahuluan Menguraikan tentang latar belakang permasalahan, mencoba merumuskan inti permasalahan yang dihadapi, menentukan manfaat dan tujuan dan kegunaan penelitian, yang kemudian diikuti dengan pembatasan masalah, asumsi ,metode penelitian serta sistematika penulisan. Hal ini berguna untuk mengetahui apakah sebuah file merupakan hasil ciplakan dari file lain. Pendeteksian kemiripan file ini dapat dilakukan dengan beberapa teknik, misalnya teknik pencarian informasi, teknik penghitungan statistik, atau dengan menggunakan informasi sintaktik dari kalimat per kalimatnya. 2. Mengenal Perancangan Aplikasi Pencarian Isi File Yang Sama Pada Hardisk Drive Dengan Algoritma String Matching Pendeteksian kemiripan file merupakan pendeteksian kesamaan beberapa file dengan membandingkan isi file sehingga menghasilkan bobot atau nilai kemiripan dari file yang dibandingkan. Salah satu kegunaan perbandingan isi file adalah untuk membantu pengguna dalam pengelompokan file dan juga memungkinkan pengguna mengetahui apakah isi file yang satu merupakan file yang pada dasarnya sama dengan file yang lain. Pendeteksian kemiripan file ini dapat dilakukan dengan beberapa teknik, misalnya teknik pencarian informasi, teknik penghitungan statistik, atau dengan menggunakan informasi sintaktik dari kalimat per kalimatnya.
Pendekatan-pendekatan tersebut tidaklah sempurna, masih terdapat beberapa kelemahan, misalnya penghitungan. Dengan memanfaatkan metode untuk pencocokan string pada file, dapat dikembangkan untuk merancang aplikasi pendeteksi kesamaan isi file. Algoritma pencocokan string sendiri ada bermacam-macam, antara lain Boyer-Moore, Brute Force,Knuth-Morris-Pratt, String Matching, Smith-Waterman dan lain-lain. Berdasarkan permasalahan di atas, sudah mulai dikembangkan aplikasi untuk mendeteksi kemiripan pada harddisk drive seperti MOSS, JPlag, CopyCatch, EVE2 dan TESSY. Pada jurnal sebelumnya (Firdaus, 2008) dilakukan penelitian secara skematis bagaimana cara kerja algoritma String Matching mendeteksi kemiripan pada suatu file, dalam makalah tersebut Firdaus menyatakan bahwa algoritma ini cocok untuk pencarian jamak (multiple pattern). Sedangkan pada penelitian yang dilakukan oleh R.Singh dan B. Kochar dengan judul RB. Matcher: String Matching Technique (SinghKochar,2006) mengemukakan bagaimana meningkatkan performa dari algoritma String Matching sehingga dapat mengurangi waktu dalam proses pencocokan string. Pada skripsi ini akan melakukan perancangan aplikasi dengan membandingkan kemiripan file asli dengan file yang ingin diuji. Dengan mengetahui persentase kemiripan kedua file tersebut dapat dijadikan bahan pertimbangan apakah file yang diuji tersebut merupakan karya seseorang atau tidak. Algoritma yang digunakan
Perancangan Aplikasi Pencarian Isi File Yang Samapada Hardisk Drive Dengan Algoritma String Matching. Oleh : Bobby Anggara
16
Jurnal Infotek STIEKOM, Volume : I, Edisi : I, Februari 2016
dalam skripsi ini adalah String Matching algorithm. Algoritma ini digunakan karena sangat efektif untuk pencarian lebih dari satu kata (multi pattern). Di dalam algoritma String Matching menggunakan fungsi hashing. Fungsi hashing menyediakan metode sederhana untuk menghindari perbandingan jumlah karakter yang quadratic di dalam banyak kasus atau situasi. Dari pada melakukan pemeriksaan terhadap setiap posisi dari teks ketika terjadi pencocokan pola, akan lebih efisien untuk melakukan pemeriksaan jika file yang sedang diproses memiliki kemiripan seperti pada pattern. Untuk melakukan pengecekan kemiripan antara dua kata ini digunakan fungsi hash.
ISSN: 2502-6980
Gambar 4.1 Halaman utama
3. Algoritma Dan Implementasi Dalam tahap implementasi sistem ada beberapa syarat yang harus disiapkan sebelumnya. Syarat-syarat tersebut meliputi perangkat keras (hardware) dan perangkat lunak (software). 3.1. Implementasi Lingkungan implementasi meliputi lingkungan perangkat keras dan perangkat lunak: 3.1.1. Lingkungan Perangkat Keras Dalam perancangan dan pengembangan sistem deteksi pencarian kemiripan file ini menggunakan laptop dengan spesifikasi: 1. Prosesor Intel(R) Core(TM)2 Duo T6600 @2.20GHz (2 CPUs) 2. Bios Revision: 1.00.17AX 3. Memory 894 MB RAM 4. Harddisk 250GB 5. Monitor 17 6. Motherboard dan keyboard
Gambar 4.2 mode pencarian file
3.1.2. Lingkungan Perangkat Lunak Perangkat lunak yang digunakan dalam pengembangan system deteksi kemiripan file ini adalah: 1. Sistem Operasi Windows XP,SP2,XP3,Windows7 2. Microsoft Visual Basic 6.0 3.1.3 Implementasi User Interface Berdasarkan perancangan user interface yang telah dilakukan pada bab 3, maka dihasilkan user interface seperti pada gambar 4.1. Pada halaman utama terdapat beberapa file yang harus diisi, yaitu 56 file algoritma untuk memilih algoritma yang hendak digunakan dalam proses pencocokan string. File stemming akan ditambahkan pada saat preporcessing jika dipilih ya. file modulo untuk memilih modulo yang akan digunakan dalam proses hashing. file dokumen asli dan dokumen uji merupakan file untuk melakukan upload file yang akan diuji seperti pada gambar 4.2.
Gambar 4.3 from 3 pencarian file dalam folder Setelah semua field diisi maka akan dilakukan proses pengecekan kesamaan file. Pada halaman hasil pengolahan sistem terdapat kalimat unik hasil dari proses pencarian yang telah dilakukan sistem, , jumlah substring yang ditemukan (string matching) dan hasil dari proses yang berupa nilai similarity dan waktu proses
Perancangan Aplikasi Pencarian Isi File Yang Samapada Hardisk Drive Dengan Algoritma String Matching. Oleh : Bobby Anggara
17
Jurnal Infotek STIEKOM, Volume : I, Edisi : I, Februari 2016
(running time). Contoh halaman pengolahan sistem dapat dilihat pada gambar 4.2. Dan 4.3 Pada gambar 4.3 memperlihatkan hasil pencarian file. Sedangkan gambar 4.4 memperlihatkan rangkuman hasil proses pengecekan kesamaan file
Gambar 4.4 from full versi 3.2. Implementasi Program 3.2.1. Kelas dan Fungsi Dalam melakukan tahap implementasi sistem, dibentuk struktur data yang terdiri dari kelas-kelas utama yang didalamnya memiliki fungsi-fungsi yang menunjang dalam pembuatan sistem. Kelas-kelas tersebut terdiri dari kelas File, kelas string matching, 1. Kelas File Kelas File ini digunakan untuk memperoleh informasi dokumen yang nantinya akan digunakan untuk mengolah file pada proses inti. Pada kelas File ini terdapat beberapa fungsi, yaitu konstruktor kelas File yang berisi deklarasi path file yang akan diuji, fungsi set File name merupakan fungsi yang digunakan untuk mengeset nama file, fungsi set path digunakan untuk menentukan path dari file yang akan diuji, set path digunakan untuk mendapatkan path dari file, getFullpath digunakan untuk mendapatkan path beserta nama filenya, yang nantinya akan digunakan untuk membaca file. Fungsi baca file digunakan untuk membaca file pada direktori. Fungsi jumlah kalimat, jumlah paragraf dan jumlah kata digunakan untuk menghitung jumlah kalimat, paragraf dan kata pada dokumen. Fungsi file info yang digunakan untuk mendapatkan informasi ukuran dari dokumen yang diuji. Serta ada beberapa fungsi lainnya yang digunakan untuk keperluan laporan uji coba dan penyimpanan hasil uji pada database, yaitu fungsi insert DB digunakan untuk menyimpan hasil pettern matching dari algoritma string matching. Fungsi insert Uji Mod merupakan fungsi yang digunakan untuk menyimpan hasil uji coba modulo terhadap similarity dan waktu proses. Fungsi laporan Uji coba digunakan untuk menampilkan hasil uji coba yang telah disimpan dalam database. Fungsi laporan Uji Mod digunakan untuk menampilkan laporan hasil uji modulo yang
ISSN: 2502-6980
telah disimpan di database dan fungsi bilangan_prima digunakan untuk menampilkan bilangan prima mulai dari 0 sampai n. 2. Kelas string matching Kelas ini adalah implementasi dari algoritma string matching tanpa dilakukan modifkasi. Fungsi-fungsi yang terdapat pada kelas ini antara lain, fungsi set var digunakan untuk mengeset variable global untuk basis, file dan modulo. Sebelum masuk ke proses inti terdapat tahap preprocessing yang terdiri dari beberapa fungsi, digunakan untuk mengubah kalimat-kalimat pada teks menjadi huruf kecil semua (casefolding) dan menghilangkan tanda baca. Setelah dilakukan tahapan preprocessing kemudian masuk ke tahap inti dari algoritma ini yang terdiri dari beberapa yang digunakan untuk memecah teks menjadi substring-substring tergantung dari file yang dipilih nantinya. Fungsi hashing digunakan untuk mengubah substring yang telah di-parsing menjadi bilangan-bilangan dengan menggunakan rumus hash yang merupakan ciri khas dari algoritma ini. Fungsi string matching digunakan untuk mencari/mencocokkan substring pada dokumen uji dan dokumen asli. Kemudian fungsi similarity digunakan untuk menghitung persentase kemiripan antara dokumen uji dan dokumen asli. 4.2.2. Tahap algoritma String Matching Setelah pembentukan nilai hash maka akan dilakukan pencocokan string. Fungsi yang digunakan untuk pencocokan string adalah string Matching dapat dilihat pada gambar 4.14. Sedangkan untuk string matching dapat dilihat pada gambar 4.15 Fungsi string Matching pada gambar 4.15 digunakan untuk menemukan string yang sama. Apabila nilai hash dari kedua dokumen yang diuji sama maka, akan dilakukan pengecekan per karakter. Jika semua karakter sama, berarti string tersebut ditemukan. Sedangkan pada string matching yang dimodifikasi, melakukan pengecekan terhadap hasil bagi dan hasil modulonya.
Perancangan Aplikasi Pencarian Isi File Yang Samapada Hardisk Drive Dengan Algoritma String Matching. Oleh : Bobby Anggara
18
Jurnal Infotek STIEKOM, Volume : I, Edisi : I, Februari 2016
function stringMatching($patternHash, $teksHash){ $tempSama = 0; for($a=0;$a
kgram;$k++){ if($patternHash[$a]['string'][$k]==$teksH ash[$b]['string'][$k]){ $tempSama=$tempSama+1; } if ($k==$this->kgram-1){ if ($tempSama==$this->kgram){ $patternHash[$a]['ketemu']='ya'; break 2;} else $patternHash[$a]['ketemu']='tidak';
ISSN: 2502-6980
yang diuji . Setelah melakukan proses pencocokan string, maka dilakukan tahap penghitungan nilai similarity. Penghitungan persentase nilai similarity tersebut terdapat pada fungsi similarity Ngram, seperti pada gambar 4.7 berikut: public function similarityNgram ($ketemu,$substringAsli,$substringUji){ $result= (2*$ketemu)/($substringAsli+$sub stringUji))*100; return $result; } Gambar 4.7 Source code fungsi similarity pencocokan file
$tempSama=0; } } } else $patternHash[$a]['ketemu']='tidak'; } $tempSama=0; } return $patternHash; } Gambar 4.5 Source code fungsi algoritma string Matching public function stringMatchImproved($pattern,$string){ for($a=0;$a
4.Kesimpulan Dan Saran 4.1 Kesimpulan Beberapa kesimpulan yang dapat diambil dari penelitian yang telah dilakukan diatas diantaranya: 1. Telah dibuat suatu sistem yang dapat digunakan untuk mendeteksi file yang sama di dalam harddisk drive dengan menggunakan String matching. 2. Sistem ini dapat mencari semua file yang sama termasuk didalamnya mp3 ,dokumen, jpg dan video. 3. Penggunaan sistem ini dapat membantu mengurangi pemakayan harddisk drive yang berlebihan karna banyak file yang sama tetapi berbeda nama file. 4. Persentase kesamaan string maching ini tidak hanya digunakan mencari file saja namun banyak orang memakai untuk mencari mencari kata-kata yang sama didalam dokumen. 4.2 Saran Agar harddisk drive anda aman dari kelebihan kapasita dalam menggunakan pemakayan antara lain : 1. Pada saat pengcopiyan ada harus periksa bahwa file yang anda akan copy sudah ada atau tidak. 2. Dapat menggunakan metode lain sebagai pendeteksi kesamaan file. 3. Memberikan banyak keringanan pada pengguna harddisk, falsdisk, dan media penyimpanan lain untuk memperhatikan file yang sudah pernah ada di dalam media penyimpanan anda .
3.2.3. Tahap Hitung Similarity Fungsi ini digunakan untuk menetukan nilai similarity atau nilai kesamaan antara dua file Perancangan Aplikasi Pencarian Isi File Yang Samapada Hardisk Drive Dengan Algoritma String Matching. Oleh : Bobby Anggara
19
Jurnal Infotek STIEKOM, Volume : I, Edisi : I, Februari 2016
ISSN: 2502-6980
Daftar Pustaka 1.
2. 3. 4.
5.
6.
7. 8.
Atmopawiro, Alsasian. 2006. Pengkajian Dan Analisis Tiga Algoritma Efisien Rabin-Karp, Knuth-Morris-Pratt, Dan Boyer-Moore Dalam Pencarian Pola Dalam Suatu Teks. Program Studi Teknik Informatika, Institut Teknologi Bandung. Even-Zohar, Y. 2002. Introduction to Text Mining, Supercomputing. Binstock & Rex. 1995. “Practical Algorithms for Programmers”. Addison Wesley. Caversham Project. http://caversham.otago.ac.nz. Diakses tanggal 7 Desember 2004 pukul 09.00 WIB. Dictionary of Algorithms and Data Structures. National Institute of Standards and Technology. http://www.nist.gov/dads/. Diakses tanggal 3 Desember 2004 pukul 15.00 WIB. Dominic John Repici. 2004. “How To : Understanding Classic Soundex Algorithms”. http://www.creativyst.com/Doc/Articles/Sound Ex 1/SoundEx1.htm. Diakses tanggal 3 Desember 2004 pukul 15.00 WIB. Donal Knuth. 1973. “The Art Of Computer Programming, vol. 3: Sorting And Searching”. Addison Wesley.
Perancangan Aplikasi Pencarian Isi File Yang Samapada Hardisk Drive Dengan Algoritma String Matching. Oleh : Bobby Anggara
20