Penelitian Internal Universitas Muhammadiyah Jember 2013
Penerapan Teknik Document Fingerprinting
pada Sistem Pendeteksi Plagiarisme Dokumen Teks Terkelompok Menggunakan Algoritma Winnowing dengan Metode K-Gram
Mudafiq Riyan Pratama, S.Kom Fakultas Teknik Universitas Muhammadiyah Jember mudafiq.riyan@unmuhjember.ac.id
Abstract
The practice of document plagiarism is often applied by both academics in school and university level which does not reflect the attitude of a highly creative and educated as intellectuals. Sometimes the act of plagiarism was modified by replacing the words that contain synonyms, with the intention that looks different from the original article. Duplication detection system uses an winnowing algorithm which its output in the form of a set of hash values as a document fingerprinting obtained through the method of k-grams. Input from document fingerprinting process is a text file. Then its output will be a set of hash value, called a fingerprint. Fingerprint is what will be the basis of a comparison between the text files that have been entered. The documents declared as plagiarism if the percentage more than 50% similarity. The size of k-grams and a small window that can give a percentage greater similarity results and the size of k-grams and a large window, can provide similarity percentage yield smaller.
1. Pendahuluan Pemanfaatan teknologi digital telah menjadi kebutuhan dalam era modern saat ini. Komponen yang ada di dalam dunia digital salah satunya adalah dokumen teks. Dokumen dalam bentuk digital memudahkan dalam hal penyimpanan, efisien, mudah dicari, bahkan mudah dalam hal penjiplakan. Penjiplakan atau plagiarisme berarti mencontoh atau meniru atau mencuri tulisan dan karya orang lain yang kemudian diakui sebagai karangannya sendiri dengan ataupun tanpa seizin penulisnya. Penjiplakan dokumen digital bukanlah hal yang susah, cukup dengan menggunakan teknik copy-paste-modify pada sebagian isi dokumen dan bahkan keseluruhan isi dokumen sudah bisa dikatakan bahwa dokumen tersebut merupakan hasil duplikasi dari dokumen lain. Praktek penjiplakan dokumen ini seringkali diterapkan oleh akademisi baik tingkat sekolah maupun perguruan tinggi. Tindakan plagiat yang dilakukan oleh siswa maupun mahasiswa ini sangat tidak mencerminkan sikap kreatif dan terpelajar sebagai kaum intelektual. Demi menyelesaikan tugas- tugasnya dengan cepat, siswa maupun mahasiswa dapat melakukan teknik copy-paste-modify tanpa perlu mempelajari dan mengeksplorasi materi terlebih dahulu. Kadangkala tindak penjiplakan ini dimodifikasi dengan mengganti kata-kata yang mengandung sinonim, dengan maksud agar terlihat berbeda dari pekerjaan teman. Hal semacam ini dapat menimbulkan masalah terhadap evaluasi hasil belajar siswa/mahasiswa. Proses pendeteksian penjiplakan ini menggunakan algoritma Winnowing yang mana output-nya berupa sekumpulan nilai hash yang didapatkan melalui metode k-gram. Sedangkan konsep synonym recognition ini dimaksudkan untuk dapat mengenali kata-kata yang mengandung sinonim sebagai tindak penjiplakan.
2. Metode Deteksi Duplikasi Banyak cara atau metode yang dapat digunakan untuk mendeteksi penjiplakan dalam file text. Namun ada kebutuhan mendasar yang harus dipenuhi oleh algoritma deteksi penjiplakan[5], yaitu: Whitespace Insensitivity yang berarti dalam melakukan pencocokan terhadap file teks seharusnya tidak terpengaruh oleh spasi, jenis huruf (kapital atau normal), tanda baca dan sebagainya. Noise Surpression yang berarti menghindari penemuan kecocokan dengan panjang kata yang terlalu kecil atau kurang relevan, misal: the. Panjang kata yang ditengarai merupakan penjiplakan harus cukup untuk membuktikan bahwa kata-kata tersebut telah dijiplak dan bukan merupakan kata yang umum digunakan. Position Independence yang berarti penemuan kecocokan/kesamaan harus tidak bergantung pada posisi kata-kata. Meskipun posisnya tidak sama, kecocokan harus dapat ditemukan.
Sebuah karya tulis dikatakan telah menjiplak karya lain apabila memiliki tingkat kesamaan yang melebihi batas toleransi tertentu yang telah ditentukan. Penelitian Internal Universitas Muhammadiyah Jember 2013
Algoritma Winnowing Winnowing adalah algoritma yang digunakan untuk melakukan proses document fingerprinting [5]. Proses ini ditujukan agar dapat mengidentifikasi penjiplakan, termasuk bagian-bagian kecil yang mirip dalam dokumen yang berjumlah banyak.
Input dari proses document fingerprinting adalah file teks. Kemudian output-nya akan berupa sekumpulan nilai hash yang disebut fingerprint. Fingerprint inilah yang akan dijadikan dasar pembanding antara file-file teks yang telah dimasukkan [5].
Salah satu prasyarat dari algoritma deteksi penjiplakan adalah whitespace insensitivity, dan algoritma Winnowing telah memenuhi prasyarat tersebut yaitu membuang seluruh karakter-karakter yang tidak relevan seperti: tanda baca, spasi dan juga karakter lain, sehingga nantinya hanya karakter- karakter yang berupa huruf atau angka yang akan diproses lebih lanjut [5].
Secara garis besar, berikut konsep algoritma Winnowing bekerja: (1) Penghapusan karakter-karakter yang tidak relevan (whitespace insensitivity). (2) Pembentukan rangkaian gram dengan ukuran k. (3) Penghitungan nilai hash. (4) Membagi ke dalam window tertentu. (5) Pemilihan beberapa nilai hash menjadi document fingerprinting.
Berikut contoh implementasi algoritma Winnowing dalam melakukan proses document fingerprinting pada teks Komputer adalah alat yang dipakai untuk mengolah data: 1) Melakukan proses whitespace insensitivity, sehingga hal yang mengandung huruf kapital dijadikan ignore case, tanda baca, spasi, dan karakter-karakter yang tidak relevan lainnya dibuang. Sehingga dari kalimatnya diubah menjadi: komputeradalahalatyangdipakaiuntukmengolahdat a 2) Setelah kalimat tersebut dibersihkan, pembentukan rangkaian gram dengan ukuran 7-gram menjadi: kompute omputer mputera puterad uterada teradal eradala radalah adalaha dalahal alahala lahalat ahalaty halatya alatyan latyang atyangd tyangdi yangdip angdipa ngdipak gdipaka dipakai ipakaiu pakaiun akaiunt kaiuntu aiuntuk iuntukm untukme ntukmen tukmeng ukmengo kmengol mengola engolah ngolahd golahda olahdat lahdata 3) Penghitungan nilai-nilai hash dari setiap gram (sebuah hipotesis nilai hash yang muncul): 2180, 2211, 2412, 1214, 2432, 2643, 2222, 1243, 1543, 1632, 1632, 1444, 1234, 1523, 1132, 1161, 1453, 1121, 2412, 2112, 1254, 1612, 3245, 1235, 1083, 1208, 1802, 1902, 1309, 2309, 1459, 1092, 1280, 1902, 2839, 1218, 1682, 1562, 1717, 1828 4) Untuk memilih hasil yang telah di hash, dilakukan dengan membagi ke window w dengan panjang 4. Kemudian pilih nilai yang minimum. [2180, 2211, 2412, 1214] [2211, 2412, 1214, 2432] [2412, 1214, 2432, 2643] [1214, 2432, 2643, 2222] [2432, 2643, 2222, 1243] [2643, 2222, 1243, 1543] [2222, 1243, 1543, 1632] [1243, 1543, 1632, 1632] [1543, 1632, 1632, 1444] [1632, 1632, 1444, 1234] [1632, 1444, 1234, 1523] [1444, 1234, 1523, 1132] [1234, 1523, 1132, 1161] [1523, 1132, 1161, 1453] [1132, 1161, 1453, 1121] [1161, 1453, 1121, 2412] [1453, 1121, 2412, 2112] [1121, 2412, 2112, 1254] [2412, 2112, 1254, 1612] [2112, 1254, 1612, 3245] [1254, 1612, 3245, 1235] [1612, 3245, 1235, 1083] [3245, 1235, 1083, 1208] [1235, 1083, 1208, 1802] [1083, 1208, 1802, 1902] [1208, 1802, 1902, 1309] [1802, 1902, 1309, 2309] [1902, 1309, 2309, 1459] [1309, 2309, 1459, 1092] [2309, 1459, 1092, 1280] [1459, 1092, 1280, 1902] [1092, 1280, 1902, 2839] [1280, 1902, 2839, 1218] [1902, 2839, 1218, 1682] [2839, 1218, 1682, 1562] [1218, 1682, 1562, 1717] [1682, 1562, 1717, 1828]
5) Setelah itu memilih nilai hash yang paling minimum yang telah dibagi menjadi window dengan urutan nilai index array secara berkelanjutan. Berikut dengan penambahan informasi posisi fingerprint di dalam dokumen. Hasilnya adalah sebagai berikut: [1214, 3] [1243, 7] [1444, 11] [1234, 12] [1132, 14] [1121, 17] [1254, 20] [1235, 23] [1083, 24] [1208, 25] [1309, 28] [1092, 31] [1218, 35] [1562, 37]
Penelitian Internal Universitas Muhammadiyah Jember 2013
Hashing Hashing adalah suatu cara untuk mentransformasi sebuah string menjadi suatu nilai yang unik dengan panjang tertentu (fixed-length) yang berfungsi sebagai penanda string tersebut. Fungsi untuk menghasilkan nilai ini disebut fungsi hash, sedangkan nilai yang dihasilkan disebut nilai hash. Contoh sederhana hashing adalah [7]: Firdaus, Hari Munir, Rinaldi Rabin, Michael Karp, Richard Menjadi 7864 = Firdaus, Hari 9802 = Munir, Rinaldi 1990 = Rabin, Michael 8822 = Karp, Richard
Contoh di atas adalah penggunaan hashing dalam pencarian pada database. Apabila tidak di-hash, pencarian akan dilakukan karakter-per-karakter pada nama-nama yang panjangnya bervariasi dan ada 26 kemungkinan pada setiap karakter. Namun pencarian akan menjadi lebih efisien setelah di-hash karena kemungkinan setiap angka berbeda. Nilai hash pada umumnya digambarkan sebagai fingerprint yaitu string pendek yang terdiri atas huruf dan angka yang terlihat acak (data biner yang ditulis dalam heksadesimal) [7].
Rolling Hash Fungsi yang digunakan untuk menghasilkan nilai hash dari rangkaian gram dalam algoritma winnowing adalah rolling hash [5]. Fungsi hash H(c 1 ...c k ) didefinisikan sebagai berikut [2]:
Rumus 1. Formula rolling hash Keterangan: c : nilai ascii karakter b : basis (bilangan prima) k : banyak karakter
Keuntungan dari rolling hash adalah untuk nilai hash berikutnya H(c 2 ...c k+1 ) dapat dilakukan dengan cara:
Rumus 2. Formula unuk mencari nilah hash ke-2 sampai ke-n
Dengan begitu tidak perlu melakukan iterasi dari indeks pertama sampai terakhir untuk menghitung nilai hash untuk gram ke-2 sampai terakhir. Hal ini tentu dapat menghemat biaya komputasi saat menghitung nilai hash dari sebuah gram [5].
3. Hasil dan Pembahasan Pada tahap ini, perancangan perangkat lunak direalisasikan sebagai serangkaian program atau unit program dengan melakukan beberapa pengujian terhadap fungsi-fungsi yang dimiliki oleh sistem, performa dari sistem maupun dari algoritma yang digunakan. 3.1 Penyajian Data Penelitian dilakukan dengan melakukan pengujian terhadap dokumen laporan dari mata kuliah Praktikum Pemrograman Berorientasi Objek tahun 2013 dari mahasiswa Program Studi Manajemen Informatika. Dokumen ujinya berjumlah 14 file digital. Berikut data file yang diujikan pada penelitian ini: Tabel 3.1 Daftar Nama File Uji No. Nama File 1. Modul_3_Konsep_Klass_1100631003.pdf 2. modul3_konsepclass_1100631005.pdf 3. modul3_1100631028.pdf 4. modul3_1100631026.pdf 5. modul3_1100631021.pdf 6. modul3_1100631014.pdf 7. LAPORAN_TUGAS_PRAKTIKUM_PBO_ 1100631020.pdf 8. LAPORAN_TUGAS_3_PRAKTIKUM_PB O_11100631007.pdf 9. laporan_Praktikum3_1100631025.pdf 10. Laporan_Modul_3_1100631036.pdf 11. Laporan_Modul3_1100631015.pdf 12. laporan_3_1100631004.pdf 13. Laporan3_M.Ulil_Albab_Kholilulloh_11006 31051.pdf 14. LAPORAN_PRAK_III_PBO_1100631016_ Yunus_Martha_Efendy.docx
3.2 Pengujian Similarity Threshold 1) Pengujian 1 Pada pengujian pertama ini dilakukan konfigurasi sebagai berikut: Ukuran k-gram : 6 Ukuran window : 4 Nilai basis hash : 3 File pembanding : Modul_3_Konsep_Klass_1100631003.pdf Similiarity Threshold : 50%
Tabel 3.2 Hasil Pengujian 1 No. Nama File Yang Dibandingkan Nilai Similarity Threshold 1. modul3_konsepclass_1100631 005.pdf 55,25 % 2. modul3_1100631028.pdf 55,56 % 3. modul3_1100631026.pdf 86,12 % 4. modul3_1100631021.pdf 72,34 % 5. modul3_1100631014.pdf 84,14 % Penelitian Internal Universitas Muhammadiyah Jember 2013
Terdapat 8 file yang memiliki nilai similiarity threshold diatas 50%, sehingga dinyatakan sebagai dokumen yang terjiplak dengan dokumen file pembanding.
2) Pengujian 2 Pada pengujian kedua ini dilakukan konfigurasi sebagai berikut: Ukuran k-gram : 15 Ukuran window : 15 Nilai basis hash : 3 File pembanding : Modul_3_Konsep_Klass_1100631003.pdf Similiarity Threshold : 50%
Ukuran k-gram dan window diperbesar untuk mengetahui seberapa besar dampak terhadap nilai k- gram dan window yang lebih besar daripada pengujian 1. Selanjutnya pengujian dilakukan terhadap 13 dokumen file terkelompok yang serupa. Hasilnya ditampilkan pada tabel berikut.
Terdapat 2 file yang memiliki nilai similiarity threshold diatas 50%, sehingga dinyatakan sebagai dokumen yang terjiplak dengan dokumen file pembanding. Terdapat penurunan jumlah file yang teridenti- fikasi penjiplakan ketika nilai k-gram, window, dan basis hash-nya lebih besar. Dengan nilai k-gram dan nilai window yang lebih besar dapat menghasilkan nilai persentase kemiripan yang lebih kecil karena semakin panjang k-gram nya semakin sedikit karakter- karakter yang dianggap sama, begitu juga untuk window yang panjang, maka terpilihnya hash yang akan dibandingkan juga semakin sedikit.
3) Pengujian 3 Pada pengujian kedua ini dilakukan konfigurasi sebagai berikut: Ukuran k-gram : 20 Ukuran window : 4 Nilai basis hash : 7 File pembanding : Modul_3_Konsep_Klass_1100631003.pdf Similiarity Threshold : 50% Konfigurasi di atas diujikan untuk mengetahui seberapa besar ketika nilai k-gram jauh lebih besar daripada nilai window. Selanjutnya pengujian dilakukan terhadap 13 dokumen file terkelompok yang serupa. Hasilnya ditampilkan pada tabel berikut.
Terdapat 2 file yang memiliki nilai similiarity threshold diatas 50%, sehingga dinyatakan sebagai dokumen yang terjiplak dengan dokumen file pembanding. Semakin besar ukuran k-gram dapat mengakibatkan menurunnya nilai presentase kemiripan dokumen. Hal ini terjadi karena semakin panjang gram karakter, maka semakin sedikit kesamaan karakternya.
4. Simpulan dan Saran Dari hasil pengamatan mulai tahap analisis, perancangan, implementasi, dan uji coba, dapat diambil beberapa kesimpulan sebagai berikut: 1. Tindak penjiplakan dapat dilakukan dengan modify yang mana dengan mengubah beberapa bagian bahkan keseluruhan, yaitu dengan mengubah kata- kata dengan sinonim. 2. Pencarian menggunakan teknik document fingerprinting akan menjadi lebih efisien daripada pencarian karakter-per-karakter pada nama-nama yang panjangnya bervariasi. 3. Jika dengan menggunakan metode kualitatif dalam menganalisa dokumen kemudian dihasilkan sebuah simpulan bahwa dokumen tersebut merupakan hasil penjiplakan, maka begitu halnya analisa dokumen secara kuantitatif pada aplikasi akan menghasilkan simpulan yang sama seperti halnya metode kualitatif. 4. Dokumen dinyatakan terjiplak jika persentase kemiripannya diatas 50 %. 5. Ukuran k-gram dan window yang kecil dapat memberikan persentase hasil kemiripan yang lebih besar. 6. Ukuran k-gram dan window yang besar, dapat memberikan persentase hasil kemiripan yang lebih kecil.
Adapun saran yang diberikan oleh penulis untuk pengembangan aplikasi pendeteksi duplikasi ini, yaitu: 1. Aplikasi ini dapat dikembangkan dengan pendeteksi kalimat aktif dan pasif, karena tindak penjiplakan juga sering kali mengubah kalimat aktif menjadi pasif dan sebaliknya. 2. Penambahan fungsi tokenizing dan filtering untuk pembuangan kata sambung seperti kata: yang, dan, dengan, dan lain-lain agar kinerja pendeteksian penjiplakan lebih cepat.
Daftar Pustaka [1] Elbegbayan, Norzima. Winnowing, a Document Fingerprinting Algorithm. Linkoping University. [2] Schleimer, Saul, Daniel S. Wilkerson, dan Alex Aiken. Winnowing: Local Algorithms for Document Fingerprinting. Chicago. [3] Kurniawati, Ana, Wicaksana, I Wayan Simri. 2008. Perbandingan Pendekatan Deteksi Plagiarism Dokumen Dalam Bahasa Inggris. Fakultas Ilmu Komputer dan Teknologi Informasi, Universitas Gunadarma. [4] Kardhon, Roni. 2008. The Winnowing Algorithm. Department of Computer Science, Tufts University. [5] Kusmawan, Putu Yuwono, Umi Laili Yuhana, Diana Purwitasari. Aplikasi Pendeteksi Penjiplakan pada File Teks dengan Algoritma Winnowing. Jurusan Teknik Informatika, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh November Surabaya. [6] Nugroho, Eko. 2011. Perancangan Sistem Deteksi Plagiarisme Dokumen Teks Dengan Menggunakan Algoritma Rabin-Karp. Program Studi Ilmu Komputer, Jurusan Matematika, Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Brawijaya. [7] Novanta, Audi. 2009. Pendeteksian Plagiarisme Pada Dokumen Teks Dengan Menggunakan Algoritma Smith-Waterman. Program Studi Ilmu Komputer, Departemen Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Sumatera Utara.
Proses Pembangkitan Bilangan Acak Dengan Metode Linear Congruential Generator (LCG), Proses Enkripsi Dan Dekripsi Pada Algoritma Kriptografi One Time Pad (OTP) .