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