Deteksi Kesamaan Dokumen Dengan Cosine Similarity

Dengan adanya kemudahan bagi orang dalam sharing ataupun melakukan pencarian dan pengambilan data di Internet, salah satunya adalah karya ilmiah, berupa makalah, prosiding, jurnal, skripsi, tesis, dan lain-lain. Maka publikasi karya ilmiah secara online dapat membantu para mahasiswa tingkat akhir dalam mencari judul maupun bahan sebagai bahan pertimbangan dalam pembuatan karya ilmiahnya. Akan tetapi selain menghasilkan manfaat, fasilitas ini juga menimbulkan dampak negatif terhadap pembuatan karya ilmiah.


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

20 comments:

  1. bisa tolong bantu saya buat programnya.. kebetulan judul skripsi saya mirip kesini .

    terima kasih

    ReplyDelete
  2. permisi saya mahasiswa informatika semester akhir di medan dan saya mau minta tolong ajari gimana manual perhitunganya dan pembuatan programnya, trims sebelumnya

    ReplyDelete
    Replies
    1. Untuk Pemesanan source code dapat di baca di kiri atas ..

      Salam

      Delete
  3. Selamat pagi ka,
    salam 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

    ReplyDelete
    Replies
    1. Untuk Pemesanan source code sekalian pengajaranya dapat di baca di kiri atas ..

      Salam

      Delete
  4. 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

    ReplyDelete
  5. pak, bisa minta bantu, skripsi saya hampir mirip dengan ini, cuman beda objek aja, skripsi saya itu pencarian hadits..
    bisa bantu saya pak !!!

    ReplyDelete
  6. terima kasih atas ilmunya, tp bisa minta tolong ka, Tabel 4 Tabel Hasil Perkalian Skalar Tiap D terhadap Q langkah ke 8 cara hitungnya gmana,

    ReplyDelete
  7. Kelebihannya apa ya kak menggunakan metode similarity ini?
    Plis bantu jawab yaa

    ReplyDelete
  8. 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 ?
    mohon pencerahannya

    ReplyDelete
  9. nomor yang tertera di atas tidak dapat di WA,

    ReplyDelete
  10. min mau nanya yang di tabel perhitungan tf dan idf, kok nilai n nya disitu 4 ya min apakah Q dihitung sebagai n juga?

    ReplyDelete
    Replies
    1. Q sebagai pembanding, dan kebetulan yg di bandingkan hanya 3 record (dinamis) makanya 4

      Delete
  11. malam kak mau tanya. nilai cosine similarity 0.23 itu di dapat dari apa ya kak? terima kasih

    ReplyDelete
  12. malam ka bisa dijelasin hitungan manual untuk tahap yang ke 9 tidak ka?

    ReplyDelete

Manual Perhitungan Algoritma Dan Aplikasinya