Belakangan ini sering ditemukan kecurangan dalam pembuatan karya ilmiah seperti mengambil ide maupun karya ilmiah orang lain dan mengakuinya sebagai karya ilmiah buatannya. Hal ini biasanya dikenal dengan penjiplakan atau plagiarisme. Untuk mendeteksi kesamaan sebuah karya ilmiah dibutuhkan waktu yang cukup lama dan ketelitian yang tinggi yang sulit dilakukan secara manual. Terkadang orang yang melakukan penjiplakan hanya mengganti kata-kata dengan kata lain yang memiliki arti maupun makna yang sama.
Untuk memeriksa hal tersebut diperlukan waktu, ketelitian serta pemahaman akan bahasa yang digunakan. Jika pemeriksaan dilakukan secara manual juga akan memakan waktu yang cukup lama. Oleh karena itu diperlukan suatu sistem pendeteksi kesamaan dokumen teks yang dilakukan secara terkomputerisasi yang bisa mendeteksi kesamaan makna dari kata-kata yang ada. Melalui pembahasan dalam tulisan ini, metode Cosine Similarity digunakan untuk mencari dokumen yang memiliki kesamaan teks terhadap dokumen lain yang ada di dalam database.
Apa itu Cosine Cosine Similarity ?
Cosine similarity berfungsi untuk membandingkan kemiripan antar dokumen, dalam hal ini yang dibandingkan adalah query dengan dokumen latih . Dalam menghitung cosine similarity pertama yaitu melakukan perkalian skalar antara query dengan dokumen kemudian dijumlahkan, setelah itu melakukan perkalian antara panjang dokumen dengan panjang query yang telah dikuadratkan, setelah itu di hitung akar pangkat dua. Selanjutnya hasil perkalian skalar tersebut di bagi dengan hasil perkalian panjang dokumen dan query. Rumus dapat dilihat sebagai berikut
Berikut langkah-langkah perhitungan manual algoritma Cosine Similarity.
1. Ditentukan terlebih dahulu masing-masing query, yaitu query dari jawaban (D), query dari key jawaban (Q) dan gabungan keduanya(Queries).
2. Ketiga query tersebut dihilangkan stoplist atau simbol-simbol yang tidak mempengaruhi penilaian, seperti tanda titik, tanda koma, tanda seru, dan sebagainya.
3. Ketiga query tersebut dihilangkan stopwords atau kata-kata umum yang lazim digunakan dalam suatu query, seperti "dan", "jika", "di", "namun", "tetapi", dan sebagainya.
Tabel 1 Tabel Sampel Query
Dokumen | Term yang mewakili dokumen |
---|---|
Q | data keterangan mentah belum diolah belum bisa dijadikan acuan mengambil suatu keputusan |
D1 | data data mentah sekumpulan |
D2 | belum belum bisa data diolah fakta informasi mentah menyajikan |
D3 | acuan belum belum bisa data dijadikan diolah informasi keputusan mentah pengambilan |
4. Dihitung nilai term frequency query jawaban dan query key jawaban terhadap queries. Jadi perhitungan term di query jawaban dan query key jawaban merujuk pada term yang terdapat dalam queries.
5. Dihitung nilai document frequency (n) atau banyaknya file (N) yang memiliki suatu term untuk tiap term dalam queries.
6. Dihitung nilai inverse document frequency dengan rumus : log (N/n) +1
Tabel 2 Tabel Perhitungan TF dan IDF
No. | Term | tf | df | idf | |||
---|---|---|---|---|---|---|---|
Q | D1 | D2 | D3 | Log(n/df)+1 | |||
1. | acuan | 1 | 0 | 0 | 1 | 2 | 1.30103 |
2. | belum | 2 | 0 | 2 | 2 | 3 | 1.12493874 |
3. | bisa | 1 | 0 | 1 | 1 | 3 | 1.12493874 |
4. | data | 1 | 2 | 1 | 1 | 4 | 1 |
5. | dijadikan | 1 | 0 | 0 | 1 | 2 | 1.30103 |
6. | diolah | 1 | 0 | 1 | 1 | 3 | 1.12493874 |
7. | fakta | 0 | 0 | 1 | 0 | 1 | 1.60205999 |
8. | informasi | 0 | 0 | 1 | 1 | 2 | 1.30103 |
9. | keputusan | 1 | 0 | 0 | 1 | 2 | 1.30103 |
10. | keterangan | 1 | 0 | 0 | 0 | 1 | 1.60205999 |
11. | mengambil | 1 | 0 | 0 | 0 | 1 | 1.60205999 |
12. | mentah | 1 | 1 | 1 | 1 | 4 | 1 |
13. | menyajikan | 0 | 0 | 1 | 0 | 1 | 1.60205999 |
14. | pengambilan | 0 | 0 | 0 | 1 | 1 | 1.60205999 |
15. | sekumpulan | 0 | 1 | 0 | 0 | 1 | 1.60205999 |
16. | suatu | 1 | 0 | 0 | 0 | 1 | 1.60205999 |
7. Dikalikan nilai term frequency dengan nilai inverse document frequency tiap term dalam Q maupun D.
Tabel 3 Tabel Perhitungan TF/IDF
No. | Term | Q | D1 | D2 | D3 |
---|---|---|---|---|---|
1. | acuan | 1.30103 | 0 | 0 | 1.30103 |
2. | belum | 2.24987748 | 0 | 2.24987748 | 2.24987748 |
3. | bisa | 1.12493874 | 0 | 1.12493874 | 1.12493874 |
4. | data | 1 | 2 | 1 | 1 |
5. | dijadikan | 1.30103 | 0 | 0 | 1.30103 |
6. | diolah | 1.12493874 | 0 | 1.12493874 | 1.12493874 |
7. | fakta | 0 | 0 | 1.60205999 | 0 |
8. | informasi | 0 | 0 | 1.30103 | 1.30103 |
9. | keputusan | 1.30103 | 0 | 0 | 1.30103 |
10. | keterangan | 1.60205999 | 0 | 0 | 0 |
11. | mengambil | 1.60205999 | 0 | 0 | 0 |
12. | mentah | 1 | 1 | 1 | 1 |
13. | menyajikan | 0 | 0 | 1.60205999 | 0 |
14. | pengambilan | 0 | 0 | 0 | 1.60205999 |
15. | sekumpulan | 0 | 1.60205999 | 0 | 0 |
16. | suatu | 1.60205999 | 0 | 0 | 0 |
8. Dihitung hasil perkalian skalar masing-masing query jawaban terhadap query key jawaban. Hasil perkalian dari setiap jawaban dengan query dijumlahkan (sesuai pembilang pada rumus di atas).
Tabel 4 Tabel Hasil Perkalian Skalar Tiap D terhadap Q
No. | Term | D1 | D2 | D3 |
---|---|---|---|---|
1. | acuan | 0 | 0 | 1.6926790609 |
2. | belum | 0 | 5.0619486750112 | 5.0619486750112 |
3. | bisa | 0 | 1.2654871687528 | 1.2654871687528 |
4. | data | 2 | 1 | 1 |
5. | dijadikan | 0 | 0 | 1.6926790609 |
6. | diolah | 0 | 1.2654871687528 | 1.2654871687528 |
7. | fakta | 0 | 0 | 0 |
8. | informasi | 0 | 0 | 0 |
9. | keputusan | 0 | 0 | 1.6926790609 |
10. | keterangan | 0 | 0 | 0 |
11. | mengambil | 0 | 0 | 0 |
12. | mentah | 1 | 1 | 1 |
13. | menyajikan | 0 | 0 | 0 |
14. | pengambilan | 0 | 0 | 0 |
15. | sekumpulan | 0 | 0 | 0 |
16. | suatu | 0 | 0 | 0 |
SUM (Ji . Q) : | 3 | 9.5929230125167 | 14.670960195217 |
9. Dihitung hasil perkalian vektor tiap query key jawaban dan query jawaban.
(TF/IDF(Q,D))2 | |||||
---|---|---|---|---|---|
No. | Term | Q | D1 | D2 | D3 |
1. | acuan | 1.692679 | 0 | 0 | 1.692679 |
2. | belum | 5.061949 | 0 | 5.061949 | 5.061949 |
3. | bisa | 1.265487 | 0 | 1.265487 | 1.265487 |
4. | data | 1 | 4 | 1 | 1 |
5. | dijadikan | 1.692679 | 0 | 0 | 1.692679 |
6. | diolah | 1.265487 | 0 | 1.265487 | 1.265487 |
7. | fakta | 0 | 0 | 2.566596 | 0 |
8. | informasi | 0 | 0 | 1.692679 | 1.692679 |
9. | keputusan | 1.692679 | 0 | 0 | 1.692679 |
10. | keterangan | 2.566596 | 0 | 0 | 0 |
11. | mengambil | 2.566596 | 0 | 0 | 0 |
12. | mentah | 1 | 1 | 1 | 1 |
13. | menyajikan | 0 | 0 | 2.566596 | 0 |
14. | pengambilan | 0 | 0 | 0 | 2.566596 |
15. | sekumpulan | 0 | 2.566596 | 0 | 0 |
16. | suatu | 2.566596 | 0 | 0 | 0 |
SUM (TF/IDF(Q,D))2 : | 22.370749 | 7.566596 | 16.418794 | 18.930235 | |
SQRT(SUM(TF/IDF(Q,D))2) : | 4.729773 | 2.750745 | 4.052011 | 4.350889 |
10. Dihitung nilai Cosine similarity ( nilai vektor beda antara D terhadap Q) dengan rumus :
No. | Teks | Nilai Similitary | Nilai (Nilai Similitary * bobot) |
---|---|---|---|
1 | D1 : data data mentah sekumpulan | 0.23058480 | 23.06 % |
2 | D2 : belum belum bisa data diolah fakta informasi mentah menyajikan | 0.50054143 | 50.05 % |
3 | D3 : acuan belum belum bisa data dijadikan diolah informasi keputusan mentah pengambilan | 0.71291907 | 71.29 % |
Langkah-langkah algoritma TF/IDF dapat direpresentasikan ke dalam flowchart sebagai berikut :
Untuk implementasi programnya dapat dilihat di bawah ini, dimana contoh kasusnya mendeteksi plagiat isi bab dari skripsi
1. Form Utama
Halaman ini akan tampil pertama sekali sewaktu user masuk ke halaman aplikasi di web browser
seperti mozilla,chrome sebelum user memproses data user diharuskan login terlebih dahulu dengan memasukkan username dan password, fungsinya adalah untuk mencegah user-user yang tidak berhak masuk ke halaman aplikasi Analisis dan Perancangan Sistem Pendeteksi Kesamaan Dokumen Laporan Penelitian Mahasiswa Menggunakan Metode Cosine Similitary
2. Halaman Utama Administrator
Halaman ini akan tampil jika user berhasil login, pada halaman ini terdapat beberapa link menu yaitu, admin, data jurusan, data mahasiswa, dokumen, deteksi dan terakhir link menu keluar di Analisis dan Perancangan Sistem Pendeteksi Kesamaan Dokumen Laporan Penelitian Mahasiswa Menggunakan Metode Cosine Similitary
3. Halaman Form Jurusan
Halaman ini akan tampil jika user memilih form jurusan pada menu atas halaman administrator, pada halaman ini seorang user dapat menambah, mengedit atau menghapus data jurusan untuk Analisis dan Perancangan Sistem Pendeteksi Kesamaan Dokumen Laporan Penelitian Mahasiswa Menggunakan Metode Cosine Similitary.
4. Halaman Input Mahasiswa
Halaman ini akan tampil jika user memilih form mahasiswa pada menu atas halaman administrator, pada halaman ini seorang user dapat menambah, mengedit atau menghapus data mahasiswa untuk Analisis dan Perancangan Sistem Pendeteksi Kesamaan Dokumen Laporan Penelitian Mahasiswa Menggunakan Metode Cosine Similitary.
5. Halaman Input Dokumen
Halaman ini akan tampil jika user memilih form dokumen pada menu atas halaman administrator, pada halaman ini seorang user dapat menambah, mengedit atau menghapus data dokumen, di dalam data dokumen inilah nantinya akan dimasukkan dokumen-dokumen dari skripsi mahasiswa yang nantinya sebagai perbandingan untuk mencari data yang mau dicari untuk dideteksi pada Analisis dan Perancangan Sistem Pendeteksi Kesamaan Dokumen Laporan Penelitian Mahasiswa Menggunakan Metode Cosine Similitary.
5. Halaman Form Deteksi
Halaman ini akan tampil jika user memilih form deteksi pada menu atas halaman administrator,
pada halaman ini seorang user dapat mendeteksi string yang mau dicocokkan dengan dokumen-dokumen yang sudah terdaftar di database, cara pemakaian form deteksi ini user akan memasukkan string yang mau dideteksi ke dalam text area bisa diketikkan manual bisa juga di copy dan dipastekan ke dalam tektarea yang ada di dalam form deteksi ini, setelah string dimasukkan ke dalam textarea kemudian user dalam mengclick tombol "DETEKSI" maka untuk hasilnya persentase kesamaan dokumen akan tampil di tiap-tiap baris record perbandingan, dimana nantinya persentase yang paling tinggi dianggap system sebagai string yang paling mendekati dari string yang mau dicari kesamaannya. Untuk pencocokkan string di dalam source code akan digunakan metode Cosine Similitary, berikut adalah tampilan dari form deteksi string
BERIKUTNYA ADALAH TAHAP PENGUJIAN
6. Pengujian Kasus 1
Pada pengujian pertama ini string yang akan di cari kesamaannya dengan record yang sudah terdaftar di database adalah string "hanya bisa melihat ataupun memesan barang dengan cara datang langsung ke Toko Aneka Jalan Pandu Medan ataupun dengan cara melihat brosur yang disebarkan ke beberapa wilayah. Namun cara-cara tersebut" melalui pengujian ini maka akan didapatkan persentase kesamaan pada masing-masing record, dimana persentase yang paling tinggi merupakan string yang paling mendekati ke string yang mau dicari, berikut adalah hasil dari deteksi kesamaan string.
7. Pengujian Kasus 2
Pada pengujian ke-2 ini string yang akan di cari kesamaannya dengan record yang sudah
terdaftar di database adalah string "Perancangan Sistem Aplikasi Pegawai Honorer BKN
Kanreg VI Wilayah Binjai adalah sangat bermanfaat bagi perusahaan" melalui pengujian ini
maka akan didapatkan persentase kesamaan pada masing-masing record, dimana persentase yang
cocok akan ditampilkan 100%, berikut adalah hasil dari deteksi kesamaan string.
OK..FINISH, untuk mendapatkan nilai persentase kedekatannya dokumen tersebut bisa melihat manual perhitunganya diatas..
makasih gan share ilmunya
ReplyDeleteok gan
Deletebisa tolong bantu saya buat programnya.. kebetulan judul skripsi saya mirip kesini .
ReplyDeleteterima kasih
detailnya bisa di infokan
Deletepermisi saya mahasiswa informatika semester akhir di medan dan saya mau minta tolong ajari gimana manual perhitunganya dan pembuatan programnya, trims sebelumnya
ReplyDeleteUntuk Pemesanan source code dapat di baca di kiri atas ..
DeleteSalam
Selamat pagi ka,
ReplyDeletesalam kenal ya Saya mahasiswa di salah satu universitas di Jakarta...
ka..contoh kasus program pencarian teks ini sama seperti tugas akhirku. aku boleh minta diajarkan cara perhitungan manualnya ka? dan rumus ini dalam source code PHP? aku mentok di stemmingnya ka..
bisa by email ka di share untuk mengajaran manualnya?
terima kasih
Untuk Pemesanan source code sekalian pengajaranya dapat di baca di kiri atas ..
DeleteSalam
selamat sore, maaf ada sedikit yang saya belum faham di poin "9.Dihitung hasil perkalian vektor tiap query key jawaban dan query jawaban." itu menghitungnya seperti apa? misal untuk term fakta D2 kenapa isinya bisa 2.566596 ? e
ReplyDeletepak, bisa minta bantu, skripsi saya hampir mirip dengan ini, cuman beda objek aja, skripsi saya itu pencarian hadits..
ReplyDeletebisa bantu saya pak !!!
Ntaaaaapsss
ReplyDeleteterima kasih atas ilmunya, tp bisa minta tolong ka, Tabel 4 Tabel Hasil Perkalian Skalar Tiap D terhadap Q langkah ke 8 cara hitungnya gmana,
ReplyDeleteKelebihannya apa ya kak menggunakan metode similarity ini?
ReplyDeletePlis bantu jawab yaa
terima kasih sekali brother atas pencerahaanya, tp saya mau bertanya , apakah Nilai 0 menandakan bahwa kedua abstrak yang dibandingkan tidak mirip sama sekali dan semakin mendekati, sedangkan nilai 1 berarti tingkat kemiripannya semakin besar. Dengan didapatkannya hasil sebesar 1.692679 pada perhitungan langkah 9 baris 1 ?
ReplyDeletemohon pencerahannya
nomor yang tertera di atas tidak dapat di WA,
ReplyDeletega dapat gimana gan ?
Deletemin mau nanya yang di tabel perhitungan tf dan idf, kok nilai n nya disitu 4 ya min apakah Q dihitung sebagai n juga?
ReplyDeleteQ sebagai pembanding, dan kebetulan yg di bandingkan hanya 3 record (dinamis) makanya 4
Deletemalam kak mau tanya. nilai cosine similarity 0.23 itu di dapat dari apa ya kak? terima kasih
ReplyDeletemalam ka bisa dijelasin hitungan manual untuk tahap yang ke 9 tidak ka?
ReplyDelete