aplikasi pendeteksi kemiripan pada dokumen teks menggunakan

advertisement
Jurnal Teknologi Informasi, Volume 10 Nomor 1, April 2014, ISSN 1414-9999
APLIKASI PENDETEKSI KEMIRIPAN PADA DOKUMEN TEKS
MENGGUNAKAN ALGORITMA NAZIEF & ADRIANI DAN
METODE COSINE SIMILARITY
Azhar Firdaus, Ernawati, dan Arie Vatresia
Program Studi Teknik Informatika, Fakultas Teknik, Universitas Bengkulu
ABSTRACT
Ease of information exchange is frequently abused by some people. The abuse happens on academic
envirotment and is commited by students. One of abuse act is plagiarism on process while completing
subject, practicum and final assignment. It is one of plagiarisme that commited by students. Lecturer’s
method to anticipate plagiarisme act is to compare students’s assignment independently. Lecturers have
difficulty on evaluation of learning outcomes because number of subject participant is many. Method for
comparing two objects is required to designing application for detecting similarity on text document.
Cosine Similarity is one of method that can be implemented to compare text documents. Cosine Similary
uses two vector parameters. The vector is based on number of similar word on both text documents so that
Cosine Similarity is not be able to recognize meaning of sentence. Nazief & Adriani algorithm is
algorithm to transform affix word into root word in Indonesia language. Comparing words are
transformed into root word firstly in order to make Cosine Similarity’s calculation more optimal. Final
assignment results similarity of detection application on text document that implementing Nazief &
Adriani algorithm and Cosine Similarity method.
Key Word: Plagiarisme, Cosine Similarity, Nazief & Adriani algorithm
1.
PENDAHULUAN
1.1. Latar Belakang
Dewasa ini, perkembangan teknologi informasi berkembang dengan pesat dan memberikan dampak
positif. Salah satu dampak positif perkembangan teknologi informasi adalah kemudahan dalam bertukar
informasi. Kemudahan tersebut sering disalahgunakan oleh seseorang atau beberapa orang dalam
penyelesaian pekerjaan. Penyalahgunaan tersebut merupakan salah satu dampak negatif dari
perkembangan teknolog informasi.
Penyalahgunaan ini sering terjadi di lingkungan akademis terutama oleh mahasiswa. Salah satu
tindakan penyalahgunaan yang terjadi adalah melakukan penjiplakan terhadap seluruh atau beberapa teks
dari satu atau beberapa berkas dokumen teks sumber ke berkas dokumen teks lain. Praktis penyalahgunaan
ini sering terjadi pada proses pembuatan tugas mata kuliah, tugas praktikum dan tugas akhir.
Plagiat adalah pengambilan karangan (pendapat) orang lain dan disiarkan sebagai karangan (pendapat)
sendiri [1]. Tindakan pengambilan karangan atau ide bukan suatu hal yang baru bagi mahasiswa. Adanya
alat bantu seperti komputer dan laptop, memberikan kemudahan untuk melakukan tindakan penjiplakan.
Hal tersebut berdampak pada perilaku yang terkesan malas dalam mengerjakan tugas mata kuliah, tugas
praktikum dan tugas akhir. Hal tersebut juga berpengaruh pada tahap evaluasi hasil pembelajaran. Peserta
mata kuliah yang tidak sedikit memberikan kesulitan bagi para pengajar untuk memberikan hasil yang
objektif. Hal tersebut menimbulkan kecurigaan terhadap tugas-tugas yang nantinya akan diakamulasikan
ke tahap nilai akhir. Sehingga para pengajar akan direpotkan untuk menganalisis satu per satu tugas
mahasiswa dikarenakan jumlah peserta mata kuliah tidak sedikit.
Beberapa pengajar masih menggunakan cara manual untuk menentukan kemiripan suatu dokumen
teks. Cara yang dimaksud adalah membandingkan dua atau lebih berkas dokumen dan menelusuri
paragraf per paragraf dan menentukan kata, kalimat atau paragraf yang memiliki kemiripan. Cara tersebut
96
http://research.pps.dinus.ac.id
Jurnal Teknologi Informasi, Volume 10 Nomor 1, April 2014, ISSN 1414-9999
merupakan cara yang kurang efektif dan efisien. Oleh sebab itu, diperlukan adanya aplikasi yang mampu
mendeteksi kemiripan pada dokumen teks.
Untuk membangun aplikas pendeteksi kemiripan pada dokumen teks, diperlukan suatu ilmu yang
mengacu pada pengolahan data teks. Text mining adalah proses menganalisis teks untuk mengekstrak
informasi yang berguna untuk tujuan tertentu [2]. Tahap-tahap pada text mining secara umum terdiri dari
case folding, tokenizing, filtering, stemming, tagging dan analyzing.
Algoritma Nazief & Adriani adalah salah satu algoritma yang digunakan dalam tahap stemming.
Algortima Nazief & Adriani merupakan algoritma untuk mengubah kata yang memiliki sufiks, prefiks
dan/atau konfiks menjadi bentuk kata dasar. Algoritma Nazief & Adriani digunakan dalam penelitian ini
sebagai algoritma pendukung dalam proses penentuan nilai kemiripan pada dokumen teks. Terdapat
beberapa metode dalam menentukan kemiripan antar dua objek. Cosine Similarity adalah salah satu
metode dalam menentukan nilai kemiripan antar dua objek. Salah satu contoh penerapan adalah penentuan
kemiripan pada sidik jari manusia. Cosine Similarity dapat diterapkan dalam menentukan nilai kemiripan
pada dua berkas dokumen teks. Parameter yang digunakan adalah jumlah kata-kata pada dua dokumen
teks yang dibandingkan. Cosine Similarity menggunakan dua vektor yang mempresentasikan dua
dokumen teks dimana nilai sudut kosinus dari kedua vektor tersebut adalah nilai kemiripan dari dua
dokumen teks tersebut. Batasan nilai yang dihasilkan mulai dari 0 sampai dengan 1. Komposisi kata pada
dokumen teks merupakan penentukan nilai yang diperoleh dari metode Cosine Similarity. Metode Cosine
Similarity tidak dapat menentukan kesamaan makna dari setiap kata. Setiap kata yang memiliki komponen
huruf yang berbeda dianggap kata yang berbeda. Algoritma Nazief & Adriani dapat mengenal kesamaan
makna dari setiap kata, dimana kata yang memiliki sufiks, prefiks dan konfiks diubah menjadi bentuk
dasar.
Aplikasi pendeteksi kemiripan pada dokumen teks diharapkan dapat mempermudah proses dalam
membandingkan berkas dokumen teks. Aplikasi ini diharapkan dapat membandingkan berkas dokumen
teks dengan jumlah yang banyak. Hal tersebut dapat mempermudah pengguna aplikasi sehingga tidak
perlu membuka berkas satu per satu. Selain itu, aplikasi juga diharapkan memberikan letak kata, kalimat
atau paragraf yang memiliki kemiripan pada berkas dokumen teks. Pengguna aplikasi akan dipermudah
menentukan bagian dari suatu dokumen teks yang memiliki kemiripan.
Berdasarkan uraian di atas, penulis tertarik untuk melakukan penelitian dengan judul “Aplikasi
Pendeteksi Kemiripan Pada Dokumen Teks Menggunakan Algoritma Nazief & Adriani dan Metode
Cosine Similarity”. Penelitian ini diharapkan dapat menghasilkan aplikasi yang dapat mendeteksi
kemiripan kemiripan pada berkas dokumen teks dan mampu memberikan letak kata, kalimat atau paragraf
yang memiliki kemiripan pada berkas dokumen teks. Selain itu, penelitian ini juga diharapkan dapat
menelusuri lebih jauh lagi informasi tentang pemanfaatan algoritma Nazief & Adriani dalam
mengoptimalkan nilai yang dihasilkan oleh Cosine Similarity.
1.2. Rumusan Masalah
Berdasarkan latar belakang dapat dirumuskan permasalah sebagai berikut:
1. Cara manual untuk menentukan kemiripan suatu dokumen teks merupakan cara yang kurang efektif
dan efisien.
2. Algoritma Nazief & Adriani belum dimanfaatkan dalam mengoptimalkan nilai yang dihasilkan oleh
Cosine Similarity.
Aplikasi pendeteksi kemiripan pada dokumen teks menggunakan algoritma Nazief & Adriani dan Cosine
Similarity dilakukan dengan batasan masalah sebagai berikut:
1. Berkas dokumen teks yang dibandingkan adalah berupa dokumen digital dengan ekstensi berkas
antara lain: *.txt, *.odt, *.doc, *.docx, *.rtf dan *.pdf.
2. Berkas dokumen teks yang dibandingkan adalah dokumen teks yang seluruhnya atau sebagian besar
menggunakan Bahasa Indonesia.
http://research.pps.dinus.ac.id
97
Jurnal Teknologi Informasi, Volume 10 Nomor 1, April 2014, ISSN 1414-9999
3. Berkas dokumen teks yang dibandingkan adalah dokumen teks yang memiliki penulisan ejaan yang
dibenarkan (EYD)
4. Penelitian tidak meneliti manfaat dan kemudahan bagi pengguna aplikasi yang telah dirancang.
1.3. Tujuan Penelitian
Tujuan yang ingin dicapai dalam penelitian ini adalah merancang dan membangun “Aplikasi Pendeteksi
Kemiripan pada Dokumen Teks Menggunakan Algoritma Nazief & Adriani dan Metode Cosine
Similarity” yang memiliki fungsi utama sebagai berikut:
1. Memberikan nilai kemiripan yang dimiliki dua atau lebih dokumen teks.
2. Mampu membandingkan dua atau lebih berkas dokumen teks
3. Memberikan informasi berupa letak kemiripan antara dua atau lebih dokumen teks yang tertuang pada
letak kata.
4. Mampu memanfaatkan algoritma Nazief & Adriani dalam mengoptimal nilai perhitungan metode
Cosine Similarity.
1.4. Manfaat Penelitian
Adapun manfaat yang ingin dicapai dari penelitian ini adalah:
Bagi pengguna perangkat lunak penelitian ini dapat memberikan kemudahan mencari kemiripan
antardokumen teks dengan praktis dan cepat. Selain itu, membantu pengguna dalam menganalisis
kemiripan pada dokumen teks berupa persentase kemiripan dokumen teks tersebut dan memberikan kata
yang memiliki kemiripan.
2.
TINJAUAN PUSTAKA
2.1 Landasan Teori
2.1.1 Text Mining
Text mining adalah proses menganalisis teks untuk mengekstrak informasi yang berguna untuk tujuan
tertentu. Text mining memiliki tugas yang lebih kompleks karena melibatkan data teks yang sifatnya tidak
terstruktur dan kabur (fuzzy). Text mining merupakan bidang multidisiplin yang melibatkan
intampilanation retrieval, analisis teks, ekstraksi informasi, clustering, kategorisasi, visualisasi, teknologi
basis data, machine learning, dan data mining. Perbedaan mendasar antara text mining dan data mining
terletak pada sumber data yang digunakan. Pada data mining, pola-pola diekstrak dari basis data yang
terstruktur, sedangkan di text mining, pola-pola diekstrak dari data tekstual (natural language). Secara
umum, basis data didesain untuk program dengan tujuan melakukan pemrosesan secara otomatis,
sedangkan teks ditulis untuk dibaca langsung oleh manusia.
1 Case Folding dan Tokenizing
Case folding adalah mengubah semua huruf dalam dokumen menjadi huruf kecil. Hanya huruf a
sampai dengan z yang diterima. Karakter selain huruf dihilangkan dan dianggap delimiter. Tahap
tokenizing/parsing adalah tahap pemotongan string input berdasarkan tiap kata yang menyusunnya.
2 Filtering
Filtering adalah tahap mengambil kata-kata penting dari hasil token. Terdapat beberapa algoritma
dalam filtering yaitu stop-list dan word-list. Algoritma stop-word merupakan algoritma yang
digunakan untuk mengeliminasi kata-kata yang tidak deskriptif. Algoritma word-list adalah algoritma
yang digunakan untuk menyimpan kata-kata memiliki nilai deskriptif.
3 Stemming
Stemming adalah proses untuk menggabungkan atau memecahkan setiap varian-varian suatu kata
menjad kata dasar. Proses stemming pada kata Bahasa Indonesia berbeda dengan stemming pada kata
Bahasa Indonesia. Proses stemming pada kata Bahasa Inggris adalah proses untuk mengeliminasi
sufiks pada kata sementara proses stemming pada Bahasa Indonesia adalah proses untuk
98
http://research.pps.dinus.ac.id
Jurnal Teknologi Informasi, Volume 10 Nomor 1, April 2014, ISSN 1414-9999
4
mengeliminasi sufiks, prefiks dan konfiks. Terdapat beberapa algoritma dalam stemming, antara lain
algoritma Porter dan algoritma Nazief & Adriani.
Analyzing
Tahap Analyzing merupakan tahap penentuan seberapa jauh kemiripan antar dokumen teks. Terdapat
beberapa metode untuk menentukan kemiripan antar dokumen teks antara lain metode Eucliden
Distance, metode Cosine Similarity, metode Jaccard Coefficient, metode Person Correlation
Coefficient dan metode Average Kullback-Leibler Divergence. Metode tersebut menggunakan
persamaan matematika dalam menentukan nilai kemiripan antar berkas dokumen teks.
2.1.2 Stop-Word
Stop-word adalah istilah untuk kata yang tidak memiliki keterkaitan makna yang kuat terhadap hubungan
kata-kata lainnya pada suatu kalimat atau paragraf [3]. Stop-word adalah istilah untuk kata yang sering
muncul pada suatu dokumen. Stop-word adalah kata yang sangat umum dan kemunculan kata tersebut
sangat kecil untuk berpengaruh pada suatu dokumen teks [3]. Stop-word bilamana dieleminasi dari suatu
dokumen teks tidak akan menghilangkan makna pada suatu kalimat atau dokumen teks. Dalam bahasa
Inggris artikel dan preposisi seperti “the”, “on” dan “with” selalu dianggap sebagai stop-word. Selain itu,
kata “it”, “and” dan “to” dapat ditemukan hampir disetiap kalimat pada dokumen berbahasa inggris.
Suatu teknik pengeliminasian stop-word yang efisien dibutuhkan pada pengaplikasian pemprosesan
bahasa seperti normalisasi ejaan, stemming ,stem weighting, intampilanation retrieval [3].
Seperti yang dijelaskan dalam pembahasan diatas, bahwa stop-word merupakan kata-kata yang sering
muncul dalam suatu kalimat. Dalam bahasa Indonesia salah satu kata yang sering muncul dalam suatu
kalimat adalah preposisi dan konjungsi. Preposisi adalah kata yang merangkai kata-kata atau bagian
kalimat dan biasanya diikut oleh nomina atau pronominal. Preposisi bisa berbentuk kata, contoh kata “di”
dan “untuk”, atau gabungan kata, contoh kata “bersama” atau “sampai dengan”.
Konjungsi adalah kata atau ungkapan yang menghubungkan dua satuan bahasa sederajat: kata dengan
kata, frasa dengan frasa, klausa dengan klausa, serta kalimat dengan kalimat. Contoh konjungsi antara lain:
“dan”, “atau”, “serta”. Selain itu terdapat konjungsi yang terdiri dari dua kata, antara lain: “tidak hanya”,
“tidak hanya”, “sedimikian rupa”.
Pengeleminasian stop-word mampu mengurangi jumlah kata pada dokumen teks. Cara umum yang
digunakan dalam menentukan kata sebagai stop-word adalah dengan menghitung frekuensi kemunculan
kata pada suatu dokumen. Kata yang memiliki frekuensi terbesar biasanya dianggap sebagai stop-word.
2.1.3 Algoritma Nazief & Adriani
Konjungsi adalah Algoritma stemming Nazief dan Adriani dikembangkan berdasarkan aturan morfologi
Bahasa Indonesia yang mengelompokkan imbuhan menjadi awalan (prefix), sisipan (infix), akhiran (suffix)
dan gabungan awalan akhiran (confixes) [4]. Algoritma ini menggunakan kamus kata dasar dan
mendukung recoding, yakni penyusunan kembali kata-kata yang mengalami proses stemming berlebih.
Aturan morfologi Bahasa Indonesia mengelompokkan imbuhan ke dalam beberapa kategori sebagai
berikut: [4]
1. Inflection suffixes yakni kelompok akhiran yang tidak merubah bentuk kata dasar. Sebagai contoh,
kata “duduk” yang diberikan akhiran “-lah” akan menjadi “duduklah”. Kelompok ini dapat dibagi
menjadi dua:
i. Particle (P) atau partikel yakni termaksud di dalamnya “-lah”, “kah”, “tah” dan “pun”.
ii. Possessive pronoun (PP) atau kata genti kepunyaan, termaksud di dalamnya “-ku”,”-mu” dan “nya”.
2. Derivation suffixes (DS) yakni kumpulan akhiran asli Bahasa Indonesia yang secara langsung
ditambahkan pada kata dasar yaitu akhiran “-i”, “-kan”, dan “-an”.
http://research.pps.dinus.ac.id
99
Jurnal Teknologi Informasi, Volume 10 Nomor 1, April 2014, ISSN 1414-9999
3. Derivation prefixes (DP) yakni kumpulan awalan yang dapat langsung diberikan pada kata dasar
murni, atau pada kata dasar yang sudah mendapatkan penambahan sampai dengan 2 awalan.
Termaksud di dalamnya adalah:
i. Awalan yang dapat bermorfologi (“me-“, “be-“, “pe-“ dan “te”).
ii. Awalan yang tidak bermorfologi (“di-“, “ke-“ dan “se-“).
Berdasarkan pengklasifikasi imbuhan-imbuhan di atas, maka bentuk kata berimbuhan dalam
Bahasa Indonesia dapat dimodelkan sebagai berikut:
Gambar 1 Model Kata Berimbuhan dalam Bahasa Indonesia
Keterangan :
DP : Derivation prefixes
DS : Derivation suffixes
PP : Possessive pronoun
Dengan model bahasa Indonesia di atas serta aturan-aturan dasar morfologi Bahasa Indonesia,
aturan yang digunakan dalam proses algoritma Nazief & Adriani sebagai berikut:
1. Tidak semua kombinasi awalan dan akhiran diperbolehkan. Kombinasi-kombinasi imbuhan yang
tidak diperbolehkan, yaitu “be-i”, “ke-i”, “ke-kan”, “me-an”, “se-i”, “se-kan” dan “te-an”.
2. Penggunaan imbuhan yang sama secara berulang tidak diperkenankan.
3. Jika suatu kata hanya terdiri dari satu atau dua huruf, maka proses tidak dilakukan.
4. Penambahan suatu awalan tertentu dapat mengubah bentuk asli kata dasar, ataupun awalan yang telah
diberikan sebelumnya pada kata dasar bersangkutan. Sebagai contoh, awalan “me-“ dapat berubah
menjadi “meng-“, “men-“, “meny-“, dan “mem-“. Oleh karena itu diperlukan suatu aturan yang
mampu mengatasi masalah morfologi ini.
Algoritma Nazief & Adriani memiliki tahap-tahap sebagai berikut: [5]
1. Cari kata dalam kamus jika ditemukan maka diasumsikan bahwa kata tersebut adalah kata dasar.
Algoritma berhenti. Jika tidak ditemukan maka lakukan langkah 2.
2. Hilangkan inflectional suffixes bila ada. Dimulai dari inflectional particle (“-lah”, “-kah”, “-tah” dan
“-pun”), kemudian possessive pronoun (“-ku”, “-mu” dan “-nya”). Cari kata pada kamus jika
ditemukan algoritma berhenti, jika kata tidak tidak ditemukan dalam kamus lakukan langkah 3.
3. Hilangkan derivation suffixes (“-an”, “-i” dan “-kan”). Jika akhiran “-an” dihapus dan ditemukan
akhiran “-k”, maka akhiran “-k” dihapus. Cari kata pada kamus jika ditemukan algoritma berhenti,
jika kata tidak tidak ditemukan maka lakukan langkah 4.
4. Pada langkah 4 terdapat tiga iterasi.
1) Iterasi berhenti jika :
a Ditemukannya kombinasi awalan yang tidak diizikan berdasarkan awalan
b
c
100
Tabel 2 Kombinasi Awalan Akhiran yang Tidak Diizinkan
Awalan
Akhiran yang tidak diijinkan
be-i
di-an
ke-i, -kan
me-an
se-i, kan
Awalan yang dideteksi saat ini sama dengan awalan yang dihilangkan sebelumnya.
Tiga awalan telah dihilangkan.
http://research.pps.dinus.ac.id
Jurnal Teknologi Informasi, Volume 10 Nomor 1, April 2014, ISSN 1414-9999
2) Identifikasikasikan tipe awalan dan hilangkan. Awalan terdiri dari dua tipe:
a Standar (“di-“, “ke-“, “se-”) yang dapat langsung dihilangkan dari kata.
b Kompleks (“me-“, “be-“, “pe-“, “te”) adalah tipe-tipe awalan yang dapat bermorfologi sesuai
kata dasar yang mengikutinya. Oleh karena itu dibutuhkan aturan pada tabel 2.4 untuk
mendapatkan hasil pemenggalan yang tepat.
Tabel 2 Aturan Pemenggalan Awalan
Aturan Format Kata
Pemenggalan
1
berV…
ber-V … | be-rV
2
berCAP…
ber-CAP… dimana C != ‘r’ & P != ‘er’
3
berCAerV
ber-CaerV… dimana C != ‘r’
4
Belajar
bel-ajar
5
berC1erC2…
be-C1erC2… dimana C1 != ‘r’ | ‘l’
6
terV…
ter-V… | te-rV…
7
terCerV…
ter-CerV dimana C != ‘r’
8
terCP…
Ter-CP… dimana C!=’r’ dan P !=’er’
9
teC1erC2…
Te-C1erC2… dimana C1 != ‘r’
10
me{l|r|w|y}V… me – {l|r|w|y} V…
11
mem{b|f|v}…
mem-{b|f|v}…
12
Mempe
mem-pe…
13
mem{rV|V}…
me-m{rV|V}… | me-p{rV|V}
14
men{c|d|j|s|z}… men-{c|d|js|z}…
15
menV…
me-nV… | me-tV
16
meng{g|h|q|k}… meng-{g|h|q|k}…
17
mengV…
meng-V… | meng-kV…| mengV-... jika V=’e’
18
menyV…
meny-sV….
19
mempA…
mem-pA… dimana A != ‘e’
20
pe{w|y}V…
pe-{w|y}V…
21
perV…
per-V… | pe-rV…
23
perCAP…
per-CAP… dimana C != ‘r’ dan P != ‘er’
24
perCAerV…
per-CAerV… dimana C != ‘r’
25
pem{b|f|V}…
pem-{b|f|V}…
26
pem{rV|V}…
pe-m{rV|V}… | pe-p{rV|V}…
27
pen{c|d|j|z}…
pen-{c|d|j|z}…
28
penV…
pe-nV… | pe-tV…
29
pengC…
peng-C…
30
pengV…
peng-V… | peng-kV… | pengV-... jika V=’e’
31
penyV…
peny-sV…
32
pelV…
pe-lV… kecuali “pelajar” yang menghasilkan “ajar”
33
peCerV…
Per-erV … dimana C!= {r|w|y|l|m|n}
34
peCP
Pe-CP… dimana C!={r|w|y|l|m|n}dan P!= ‘er’
35
terC1erC2...
ter-C1erC2... dimana C1!= ‘r’
36
peC1erC2...
pe-C1erC2... dimana C1!={r|w|y|l|m|n}
Keterangan simbol huruf
C : huruf konsonan
V : huruf vocal
A : huruf vocal atau konsonan
P : partikel atau fragmen dari setiap kata, misalnya “er”
http://research.pps.dinus.ac.id
101
Jurnal Teknologi Informasi, Volume 10 Nomor 1, April 2014, ISSN 1414-9999
3) Cari kata yang telah dihilangkan awalannya. Apabila tidak ditemukan, maka langkah 4 diulang
kembali. Apabila ditemukan, maka algoritma berhenti.
5. Apabila setelah langkah 4 kata dasar masih belum ditemukan, maka proses recording dilakukan
dengan mengacu pada aturan tabel 2.4. Recording dilakukan dengan menambahkan karakter
recording di awal kata yang dipenggal. Pada tabel 2.4, karakter recording adalah huruf kecil setelah
tanda hubung (‘-‘) dan terkadang berada sebelum tanda kurung. Sebagai contoh, kata “menangkap”
(aturan 15) pada tabel 2.4, setelah dipenggal menjadi “nangkap”. Karena tidak valid, maka recording
dilakukan dan menghasilkan kata “tangkap”.
6. Jika semua langkah gagal, maka input kata yang diuji pada algoritma ini di anggap sebagai kata dasar.
2.1.4 Cosine Similarity
Cosine Similarity merupakan metode perhitungan jarak antara vektor A dan B yang menghasilkan sudut
cosine x diantara kedua vektor tersebut. Nilai sudut kosinus antara dua vektor menentukan kesamaan dua
buah objek yang dibandingkan dimana nilai terkecil adalah 0 dan nilai terbesar adalah 1. Berikut rumus
metode perhitungan Cosine Similarity:
1
(1)
Dengan
merupakan dot product. Dot product merupakan nilai yang mengekspresikan sudut
antara dua vektor. Dot product merupakan skalar nilai hasil dari operasi dua vektor yang memiliki jumlah
komponen yang sama. Jika vektor A dan B memiliki komponen sebanyak n, maka dot product dapat
dihitung dengan rumus berikut:
Dot product dapat dihitung dengan menjumlahkan product dari masing-masing komponen pada
kedua vektor. Jika vektor A dan vektor B merupakan vektor 3 dimensi, maka perhitungan dot product
adalah sebagai berikut:
(2)
Sedangkan
berikut :
merupakan panjang vektor. Panjang vektor dapat dihitung dengan rumus sebagai
(3)
Perhitungan untuk menentukan nilai persentase kemiripan antar dokumen, maka persentase
kemiripan didapat dengan mengalikan nilai Cosine Similarity terhadap 100. Berikut rumus untuk
menentukan nilai persentase kemiripan:
(4)
2.1.5 Analisis Optimasi
Aplikasi pendeteksi kemiripan dokumen teks menggunakan algoritma Nazief & Adriani dan metode
Cosine Similarity. Algoritma Nazief & Adriani dimanfaat untuk mengubah kata menjadi bentuk kata dasar.
Metode Cosine Similarity digunakan untuk menghitung nilai kemiripan antar dokumen teks. Algoritma
Nazief & Adriani pada penelitian ini merupakan algoritma yang digunakan untuk mempengaruhi nilai
yang dihasilkan oleh metode Cosine Similarity.
102
http://research.pps.dinus.ac.id
Jurnal Teknologi Informasi, Volume 10 Nomor 1, April 2014, ISSN 1414-9999
Kita asumsikan bahwa terdapat dua kalimat yang akan dibandingkan menggunakan metode Cosine
Similarity. Kalimat no.1 yaitu, “Komputer membantu pekerjaan manusia menjadi lebih mudah”. kalimat
no.2 yaitu, “Pekerjaan manusia manjadi lebih mudah bila dibantu oleh komputer”.
Tabel 3 Potongan dan Jumlah Kata dari Kalimat no.1 dan no.2
No
Kata
Kalimat
Kalimat
Pertama
Kedua
1
Bila
0
1
2
Dibantu
0
1
3
Computer
1
1
4
Lebih
1
1
5
Manusia
1
1
6
Membantu
1
0
7
Menjadi
1
1
8
Mudah
1
1
9
Oleh
0
1
10
Pekerjaan
1
1
Tabel 3 merupakan kata-kata yang menyusun kalimat pertama dan kedua. Metode Cosine Similarity
menggunakan parameter jumlah kata yang sama dan tidak sama dari kedua kalimat untuk membentuk
vektor. Berdasarkan tabel 4.1, vektor yang dihasilkan antara lain:
Tabel 4Vektor Berdasarkan Aturan Metode Cosine Similarity
No
Kalimat
Vektor yang dihasilkan
1 Komputer membantu pekerjaan
manusia menjadi lebih mudah
2 Pekerjaan manusia manjadi
lebih mudah bila dibantu oleh
computer
Keterangan
A : vektor untuk kalimat pertama
B : vektor untuk kalimat kedua
Berdasarkan vektor yang dihasilkan dari tabel 3, maka hasil yang diperoleh dari perhitungan Cosine
Similarity adalah 0,7559 dan persentase kemiripan dokumen adalah 75,59%. Untuk mengoptimasikan
nilai dari metode Cosine Similarity, maka algortima Nazief & Adriani digunakan sebelum proses
perhitungan. Algoritma Nazief & Adriani adalah algoritma yang digunakan pada aplikasi untuk mengubah
kata menjadi bentuk kata dasar. Berdasarkan aturan dari algoritma ini maka perubahan kalimat pertama
dan kedua dapat dilihat pada tabel 4.
Tabel 5 Kalimat no.1 dan no.2 yang Diubah Berdasarkan Aturan Algoritma Nazief & Adriani
No
Kalimat
Bentuk Perubahan Kalimat
1 Komputer membantu pekerjaan Komputer dapat bantu kerja
manusia menjadi lebih mudah
manusia jadi lebih mudah
2 Pekerjaan manusia manjadi lebih Kerja manusia jadi lebih mudah
mudah bila dibantu oleh komputer bila bantu oleh komputer
http://research.pps.dinus.ac.id
103
Jurnal Teknologi Informasi, Volume 10 Nomor 1, April 2014, ISSN 1414-9999
Pada tabel 4 terdapat dua kata dari kedua kalimat yang diubah menjadi bentuk kata dasar berdasarkan
aturan algoritma Nazief & Adriani. Transformasi kata yang terjadi yaitu “membantu” menjadi “bantu”,
“perkerjaan” menjadi “kerja” dan “menjadi” menjadi “jadi”.
Tabel 6 Kata-kata Kalimat no.1 dan no.2 yang Telah Diubah Menjadi Kata Dasar Berdasarkan Aturan
Algoritma Nazief & Adriani.
No
1
2
3
4
5
6
7
8
9
Kata
Bantu
Bila
komputer
Lebih
manusia
menjadi
mudah
Oleh
kerja
Kalimat
Pertama
1
0
1
1
1
1
1
0
1
Kalimat
Kedua
1
1
1
1
1
0
1
1
1
Tabel 5 merupakan kata-kata yang menyusun kalimat pertama dan kedua yang telah diubah
berdasarkan atuan algoritma Nazief & Adriani. Berdasarkan tabel 4.4, vektor yang dihasilkan berdasarkan
aturan metode Cosine Similarity antara lain:
Tabel 7 Vektor Berdasarkan Aturan Metode Cosine Similarity
No
Kalimat
Vektor yang dibentuk
1 Komputer bantu pekerjaan manusia jadi
lebih mudah
2 Pekerjaan manusia jadi lebih mudah bila
bantu oleh komputer
Keterangan
A : vektor untuk kalimat pertama
B : vektor untuk kalimat kedua
Berdasarkan vektor yang dihasilkan dari tabel 4.4, hasil yang diperoleh dari perhitungan Cosine
Similarity adalah 0,8018 dan persentase kemiripan dokumen adalah 80,18%. Selisih dari perhitungan
pertama dan kedua adalah 0,0495 dan selisih persentase adalah 4,95%. Hipotesis yang diperoleh
berdasarkan ilustrasi di atas adalah algoritma Nazief & Adriani mampu mempengaruhi nilai kemiripan
yang dihasilkan oleh metode Cosine Similarity. Selain memanfaatkan algoritma Nazief & Adriani dan
metode Cosine Similarity sebagai penentu nilai kemiripan, penelitian ini juga akan melakukan uji coba
terhadap bagaimana pengaruh algoritma Nazief & Adriani dan metode Cosine Similarity.
3.
METODE PENELITIAN
Aplikasi yang dikembangkan dalam penelitan ini menggunakan model sekuensial linier. Model ini
mengusulkan sebuah pendekatan kepada perkembangan perangkat lunak yang sistematik dan sekuensial
yang mulai pada tingkat dan kemajuan sistem pada seluruh analisis, desain, kode, pengujian, dan
pemeliharaan [6]. Model pengembangan ini mudah diaplikasikan dan menyediakan dokumentasi untuk
tiap tahapan secara sistematika. Pengembangan aplikasi dengan metode sekuensial linier memiliki
beberapa tahap. Berikut penjelasan tahap-tahap yang akan dilakukan dalam perancangan dan pembuatan
aplikasi berdasarkan motode pengembangan sekuensial linier.
104
http://research.pps.dinus.ac.id
Jurnal Teknologi Informasi, Volume 10 Nomor 1, April 2014, ISSN 1414-9999
1. Analisis Kebutuhan
Tahap analisis kebutuhan merupakan tahap awal dari proses pengembangan sistem. Analisis yang
dihasilkan nantinya akan dialokasi ke beberapa subset dari kebutuhan aplikasi. Kebutuhan-kebutuhan
yang perlu dianalisis meliputi :
a. Identifikasi Masalah
b. Analisis data masukan, proses yang terjadi dan informasi keluaran yang diharapkan.
b Analisis kebutuhan perangkat lunak.
c Analisis kebutuhan perangkat keras.
d Analisis kebutuhan pengguna (user)
Pada tahap analisis akan kebutuhan pengguna perlu dilakukan penyeleksian kebutuhan pengguna
aplikasi dengan melihat kapasistas teknologi dan efisiensi. Analisis dan pendefinisian kebutuhan
dilakukan setelah semua kebutuhan terkumpul sehingga sistem yang dibangun dapat memenuhi
kebutuhan. Kebutuhan-kebutuhan tersebut bersifat mutlak dikarenakan aplikasi tidak akan mungkin
dibuat bila kebutuhan-kebutuhan tersebut tidak terpenuhi.
2. Desain
Desain aplikasi dapat dilakukan setelah kebutuhan selesai dikumpulkan secara lengkap dan analisis
terhadap aplikasi telah dilakukan. Pada tahap ini akan dilakukan proses mendesain untuk
menterjemahkan syarat/kebutuhan ke dalam sebuah reprsentasi perangkat lunak yang dapat
diperkirakan demi kualitas sebelum dimulai proses pengkodean. Hal-hal yang perlu didesain pada
tahapan ini antara lain:
a Desain struktur data pada basis data. Desain ini tidak diperlukan bila aplikasi tidak memanfaatkan
basis data.
b Desain Arsitektur perangkat lunak. Desain ini merancang representasi masukan, proses yang
dibutuhkan dan keluaran yang diharapkan.
c Desain representasi antar muka (interface).
d Desain detail dari suatu algoritma atau metode. Desain ini tidak diperlukan bila aplikasi tidak
menerepakan suata algoritma atau metode.
3. Pengkodean
Desain yang dihasilkan pada tahap desan diterjemahkan kembali kedalam bentuk mesin yang dapat
dibaca perangkat keras. Proses yang dilakukan dalam tahap ini antara lain:
a Penulisan kode aplikasi dengan menggunakan bahasa pemprograman.
b Pembuatan basis data.
4. Test/Pengujian
Pada tahap ini dilakukan proses pengimplemenasian yang bertujuan untuk menguji aplikasi. Hal-hal
yang perlu diuji antara lain:
a Pengujian per modul oleh programmer. Hal ini bertujuan untuk menguji sub fungsi yang terdapat
pada aplikasi. Sebagai contoh, aplikasi pada penelitian ini menggunakan metode cosine similary.
Pengujian dilakukan apakah metode cosine similary yang diterapkan aplikasi berjalan dengan
benar sesuai aturan yang dimiliki metode Cosine Similarity.
b Pengujian dengan menggunakan antar muka. Pengabungan sub fungsi yang terdapat pada aplikasi
dan diterapkan pada aplikasi utuh yang dilengkapi antar muka.
c Pengujian aplikasi dengan menggunakan sampel yang telah disiapkan. Sampel yang digunakan
masih bersifat sementara. Hal ini bertujuan untuk menguji fungsi aplikasi.
5. Pemeliharaan
Pada tahapan pengkodean, aplikasi akan diterapkan dalam lingkungan sebenarnya namun tidak
menutup kemungkinan bawah aplikasi mengalami perubahan. Perubahan terjadi akibatkan kesalahankesalahan yang mana kesalahan tersebut dihasilkan pada lingkungan eksternalnya. Hal yang dilakukan
dalam tahapan ini antara lain :
a Memperbaiki desain dan kesalahan (error) pada program.
http://research.pps.dinus.ac.id
105
Jurnal Teknologi Informasi, Volume 10 Nomor 1, April 2014, ISSN 1414-9999
b
c
Memodifikasi sistem agar dapat beradaptasi dengan perubahan lingkungan
Menjaga sistem dari kemungkinan masalah di masa yang akan datang.
4.
HASIL PENELITIAN DAN PEMBAHASAN
4.1. Pengujian White-Box
Pengujian white box dilakukan dengan menguji atribut dan metode yang ada pada kelas-kelas yang
dibangun. Pengujian dilakukan dengan menguji semua tampilan dan metode-metode pada aplikasi yang
telah dieksekusi paling tidak satu kali.
1. Splash Screen
Splash Screen adalah tampilan yang muncul pertama kali ketika aplikasi dijalankan. Splash Screen
terdiri dari gambar logo aplikasi dan progress bar. Progress bar berjalan ketika splash screen muncul.
Tampilan awal akan muncul ketika progress bar mencapai nilai 100%. Splash screen akan tertutup
jika nilai proses telah mencapai 100%. Gambar 2 adalah gambar tampilan splash screen:
Gambar 2 Tampilan Splash Screen
2. Tampilan Awal
Splash screen akan tertutup bila progress bar telah mencapai 100%. Tampilan awal aplikasi akan
muncul setelah splash screen tertutup. Tampilan awal aplikasi merupakan tempat bagi pengguna
untuk melakukan aktivitas membandingkan berkas. Pengguna dapat menambahkan berkas dengan
cara menklik tombol tambah berkas (sumber atau pembanding), tombol pada menu berkas atau mendrag langsung berkas ke dalam tabel. Gambar 3 adalah gambar tampilan awal aplikasi:
Gambar 3 Tampilan Awal Aplikasi
106
http://research.pps.dinus.ac.id
Jurnal Teknologi Informasi, Volume 10 Nomor 1, April 2014, ISSN 1414-9999
3. Tampilan Hasil Perhitungan
Setelah aplikasi membandingkan dokumen maka akan muncul hasil perhitungan yang dilakukan
aplikasi. Waktu yang dibutuhkan untuk aplikasi membandingkan bergantung pada ukuran berkas dan
jumlah berkas. Hasil perhitungan yang telah diproses oleh aplikasi dikirim ke kelas resultView. Kelas
resultView merupakan kelas tampilan hasil perhitungan aplikasi. Informasi yang disajikan berupa
nama berkas sumber, nama berkas pembanding, hasil perhitungan dan waktu proses. Gambar 4 adalah
gambar tampilan hasil perhitungan:
Gambar 4 Tampilan Hasil Perhitungan
4.2. Pengujian Black-Box
Pengujian black-box bertujuan untuk mencari pengaruh algoritma Nazief & Adriani terhadap perhitungan
metode Cosine Similarity. Algoritma ini mengubah kata yang berimbuhan menjadi kata dasar dan
selanjutnya akan dihitung menggunakan metode Cosine Similarity. Pengujian yang dilakukan adalah
membandingka dokumen D1 dan D2 tanpa menggunakan algoritma Nazief & Adriani dan menggunakan
algoritma Nazief & Adriani. Sampel yang digunakan berupa dokumen teks yang terdiri dari beberapa
kalimat. Tabel 8 adalah sampel pada percobaan ini.
No
1
Kode
D1
2
D2
Tabel 8 Sampel pengujian
Dokumen
Manusia memanfaatkan komputer untuk menyelesaikan pekerjaan. Komputer
mempermudah pekerjaan sehingga lebih efektif dan efesien. Manusia menggunakan
komputer untuk membantu pekerjaan mereka pada hampir seluruh bidang pekerjaan.
Peranan komputer dapat ditemukan pada bidang kesehatan, keamanan, perkantoran dan
pendidikan. Komputer memiliki peranan yang sangat penting bagi kehidupan manusia.
Komputer dimanfaatkan manusia dalam penyelesaian pekerjaan. Pekerjaan dipermudah
sehingga lebih efektif dan efesien. Komputer digunakan hampir disetiap bidang
pekerjaan. Kegunaan komputer dapat ditemukan pada bidang kesehatan, keamanan,
perkantoran dan pendidikan. Komputer memiliki peranan yang sangat penting bagi
kehidupan manusia.
Keterangan
D1: Dokumen teks asli
D2: Dokumen D1 yang diubah kebentuk pasif.
Dokumen D2 merupakan Dokumen D1 yang diubah kebentuk pasif. Setiap kalimat aktif yang
terdapat pada dokumen D1 dapat ditemukan pada dokumen D2 namun dalam bentuk pasif. Kalimat aktif
dan pasif memiliki makna yang hampir sama namun tata penulisan yang berbeda. Percobaan ini bertujuan
untuk mengetahui apakah mengubah suatu kata berimbuhan menjadi kata dasar pada suatu paragraf
mempengaruhi hasil perhitungan kemiripan pada aplikasi nanti. Algoritma Nazief & Adriani digunakan
untuk mengubah kata berimbuhan menjadi kata dasar. Tabel 8 merupakan hasil percobaan menggunakan
sampel pada tabel 8:
http://research.pps.dinus.ac.id
107
Jurnal Teknologi Informasi, Volume 10 Nomor 1, April 2014, ISSN 1414-9999
Dokumen
Sumber
D1
Tabel 9 Hasil pengujian
Dokumen
Hasil Perhitungan
Pembanding
tanpa menggunakan
algoritma Nazief &
Adriani (%)
D2
87,83
Hasil Perhitungan
denganmenggunakan
algoritma Nazief &
Adriani (%)
93,81
Pada tabel 9, terdapat perbedaan hasil perhitungan antara menggunakan algoritma Nazief & Adriani
dan tidak menggunakan. Selisih hasil yang diperoleh dari percobaan adalah 5,98 %. Selisih hasil tersebut
menjelaskan bahwa mengubah kata berimbuhan menjadi kata dasar menggunakan algoritma Nazief &
Adriani dapat meningkatkan hasil perhitungan kemiripan pada aplikasi. Kesimpulan dari percobaan ini
adalah algoritma Nazief & Adrini dapat mengoptimasikan hasil perhitungan pada metode Cosine
Similarity pada dokumen teks yang terdiri dari kalimat aktif dan pasif.
5.
KESIMPULAN DAN SARAN/REKOMENDASI
5.1. Kesimpulan
Berdasarkan hasil penelitian, pengujian, implementasi serta pembahasan mengenai Aplikasi Pendeteksi
Kemiripan Pada Dokumen Teks Menggunakan Algoritma Nazief & Adriani dan Metode Cosine Similarity,
maka didapatkan kesimpulan sebagai berikut:
1. Aplikasi dirancangan dengan model pengembangan sekuensial linier dan ditulis menggunakan bahasa
pemprograman Java. Aplikasi yang dihasilkan adalah aplikasi pendeteksi kemiripan pada dokumen
teks menggunakan algoritma Nazief & Adriani dan metode Cosine Similarity.
2. Aplikasi pendeteksi kemiripan pada dokumen teks menggunakan algoritma Nazief & Adriani dan
metode Cosine Similarity dapat membandingkan berkas berbeda ekstensi dan membandingkan lebih
dari dua dokumen secara bersamaan.
3. Salah satu cara yang dapat digunakan untuk mengoptimasikan nilai kemiripan yang diperoleh dari
perhitungan metode Cosine Similarity adalah dengan menerapkan algoritma Nazief & Adriani
sebelum proses pehitungan.
4. Berdasarkan hasil yang didapat dari uji kelayakan aplikasi dapat disimpulkan bahwa aplikas
pendeteksi kemiripan pada dokumen teks menggunakan algoritma Nazief & Adriani dan Metode
Cosine Similarity tergolong ke dalam.
5.2. Saran
Berdasarkan hasil penelitian, pengujian, implementasi serta pembahasan mengenai Aplikasi Pendeteksi
Kemiripan Pada Dokumen Teks Menggunakan Algoritma Nazief & Adriani dan Metode Cosine Similarity,
maka untuk pengembangan penelitian selanjutnya penulis menyarankan sebagai berikut:
1. Aplikasi membutuhkan proses yang relatif lama untuk menampilkan letak kemiripan kata jika salah
satu berkas yang dibandingkan memiliki ukuran yang relatif besar. Kedepannya diharapkan untuk
dapat mengoptimalkan waktu proses pada proses menampilkan letak kemiripan kata.
2. Terdapat beberapa kata berimbuhan yang tidak dapat diubah kebentuk kata dasarnya menggunakan
algoritma Nazief & Adriani. Salah satu kata yang dimaksud adalah kata “berilmu” yang diubah ke
bentuk kata dasar menggunakan algortitma Nazief & Adriani menjadi “beril”. Kedepannya diharapkan
untuk menggunakan algoritma stemming yang memiliki tingkat akurasi lebih tinggi.
3. Penulis tidak dapat melengkapi daftar kata sinonim pada aplikasi dikarenakan waktu yang relatif
singkat. Kedepannya diharapkan untuk dapat melengkapi kekurangan yang tidak dapat diselesaikan
oleh penulis.
108
http://research.pps.dinus.ac.id
Jurnal Teknologi Informasi, Volume 10 Nomor 1, April 2014, ISSN 1414-9999
6.
PENUTUP
Terimakasih kepada dosen pembimbing dan dosen penguji yang telah membimbing dan mengarahkan
penelitian ini.
PERNYATAAN ORIGINALITAS
”Saya menyatakan dan bertanggung jawab dengan sebenarnya bahwa Artikel ini adalah hasil karya saya
sendiri kecuali cuplikan dan ringkasan yang masing-masing telah saya jelaskan sumbernya”.
[Azhar Firdaus - NPM. G1A009053]
DAFTAR PUSTAKA
[1] Pusat Bahasa Departement Pendidikan Nasional, 2008. KBBI. Jakarta: Departemen Pendidikan
Nasional
[2] Witten, Ian H. 2001. Adaptive Text Mining: Inferring Structure from Sequences ?.[Online] Tersedia:
http://www.cs.waikato.ac.nz/~ihw/papers/01IHW-Adaptivetextmining.pdf. [16 Februari 2013]
[3] Alajmi, A. Saad, E.M and Darwish, R.R. 2012. "Toward an Arabic Stop-Words List Generation.
Helwan University, 1-6
[4] Tahitoe, Andita Dwiyoga(tanpa tahun). “Modifikasi Enhanced Confix Stripping Stemmer Untuk
Bahasa Indonesia dengan Metode Corpus Based Stemming”. Institut Teknologi Sepuluh Nopember,
1-15
[5] Agusta, Ledy. Perbandingan Algoritma Stemming Porter Dengan Algoritma Nazief & Adriani Untuk
Stemming Dokumen Teks Bahasa Indonesia ?.[Online] Tersedia:
http://yudiagusta.files.wordpress.com/2009/11/196-201-knsi09-036-perbandingan-algoritmastemming-porter-dengan-algoritma-nazief-adriani-untuk-stemming-dokumen-teks-bahasaindonesia.pdf [17 Februari 2013]
[6] Pressman, Roger S. 2002, Rekayasa Perangkat Lunak Pendekatan Praktisi (Buku Satu), Yogyakarta:
Penerbit Andi.
http://research.pps.dinus.ac.id
109
Download