Sistem Pengukuran Tingkat Similaritas Dokumen

(1)

(2)

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana Program Strata Satu Jurusan Teknik Informatika

Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia

DENNIS AHMAD TAUFIK

10109725

PROGRAM STUDI S1

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

UNIVERSITAS KOMPUTER INDONESIA

2012


(3)

(4)

(5)

i

Oleh

DENNIS AHMAD TAUFIK 10109725

Plagiarisme adalah tindakan menjiplak karya orang lain dan dianggap sebagai bentuk kriminalitas karena mencuri hak cipta orang lain. Praktek plagiarisme ini sangat sering dilakukan terutama di kalangan akademisi baik sekolah maupun di perguruan tinggi. Tindakan Plagiarisme ini dapat berdampak pada penurunan kreatifitas siswa maupun mahasiswa. Teknik Plagiarisme yang paling sering dilakukan dengan melakukan copy paste suatu dokumen. Cukup dengan menggunakan teknik copy paste tugas milik teman, tugas-tugas sekolah atau kuliah dapat terselesaikan.

Untuk mengatasi praktek plagiarisme terbukti cara persuasif kepada mahasiswa yang bersangkutan bahwa tindakan plagiarisme tersebut tidak baik dilakukan sudah terbukti tidak efektif. Perancangan aplikasi pengukuran tingkat similaritas dokumen merupakan solusi tepat yang sebaiknya dilakukan agar tindakan curang tersebut dapat dicegah.

Salah satu pendekatannya adalah dengan melakukan penerapan algoritma Rabin-Karp. Algoritma Rabin Karp adalah algoritma pencarian string yang ditemukan oleh Michael O. Rabin dan Richard M.Karp, algoritma ini melakukan pencarian string didalam teks dengan memanfaatkan hash function. Algoritma ini akan sangat efektif jika digunakan pada pencarian multiple pattern. Skripsi ini akan mencoba menganalisis penerapan dari algoritma Rabin-Karp dalam pengukuran tingkat similaritas dokumen.

Kata kunci : Plagiarisme, String Matching, Rabin-Karp, Table, Hash-Function.


(6)

ii

By

DENNIS AHMAD TAUFIK 10109725

Plagiarism is the act of plagiarizing the work of others and is considered as a form of crime for stealing the copyrights of others. The practice of plagiarism is so often done, especially in academic circles both at school and college. Plagiarism is the action may impact on the creativity of students and the students. Plagiarism technique is most often done by doing copy and paste a document. Simply by using a friend's copy paste job, school work or college can be resolved.

To address the practice of plagiarism proved persuasive manner to the students concerned that the act of plagiarism is not done already proved ineffective. Similarity level measurement application design document is the right solution that should be done so that these fraudulent acts could be prevented.

One approach is to make the application of algorithm Rabin-Karp algorithm. Algorithm Rabin Karp string search algorithm invented by Michael O. Rabin and Richard M.Karp, these algorithms perform a search string in the text by using a hash function This algorithm is very effective if used on multiple search pattern. This thesis will attempt to analyze the implementation of the Rabin-Karp algorithm in measuring the degree of similarity of documents.

Key words: Plagiarism, String Matching, Rabin-Karp, Table,


(7)

iii

dan petunjuk-Nya, sehingga penulis dapat menyelesaikan skripsi yang berjudul “Sistem Pengukuran Tingkat Similaritas Dokumen”.

Penyusunan skripsi ini merupakan salah satu syarat untuk menyelesaikan Program Studi Strata I (SI) pada Jurusan Teknik Informatika Universitas Komputer Indonesia (UNIKOM) Bandung.

Penulis menyadari bahwa dalam penyusunan skripsi ini masih terdapat kekurangan karena keterbatasan pengetahuan, kemampuan dan pengalaman yang dimiliki. Oleh karena itu, penulis senantiasa mengharapkan kritik maupun saran yang ditujukan demi kesempurnaan skripsi ini dimasa yang akan datang.

Dengan segala ketulusan dan kerendahan hati, perkenankanlah penulis untuk menyampaikan ucapan terima kasih kepada:

1. Sujud simpuh kepada Ibunda, Ayahanda dan semua keluarga tercinta

yang setiap saat selalu memberikan dorongan do’a dan motivasi.

2. Bapak DR. Ir. Eddy Suryanto Soegoto, M.sc. selaku Rektor Universitas Komputer Indonesia.

3. Ibu Mira Kania Sabariah, S.T., M.T. selaku Ketua Jurusan Teknik Informatika.

4. Bapak Galih Hermawan, S.Kom.,M.T. Selaku Dosen Wali Angkatan 2009.


(8)

iv

6. Ibu Nelly Indriani W S.Si, M.T. Selaku reviewer yang telah memberikan masukan dan arahan kepada penulis dalam menyelesaikan skripsi ini. 7. Teman-teman IF angkatan 2009 yang tidak bisa disebutkan satu persatu.

Terima kasih kawan, kalian adalah bagian terindah dalam hidupku. Semoga kekeluargaan kita abadi sampai akhirnya waktu.

8. Semua pihak yang tidak dapat penulis sebutkan satu persatu yang telah memberikan bantuan dan dorongan dalam penyusunan skripsi ini.

Tidak ada kata yang pantas penulis ucapkan selain kata terima kasih yang sebesar-besarnya kepada semua pihak yang telah membantu pembuatan skripsi ini, semoga Allah SWT membalas kebaikan yang telah diberikan kepada penulis. Akhirnya penulis berharap semoga skripsi ini bermanfaat bagi kita semua.

Amin…

Bandung, Juli 2012


(9)

v

KATA PENGANTAR ... iii

DAFTAR ISI ... v

DAFTAR TABEL ... ix

DAFTAR GAMBAR ... xi

DAFTAR SIMBOL ... xv

DAFTAR LAMPIRAN ... xx

BAB I PENDAHULUAN ... 1

1.1 Latar Belakang Masalah ... 1

1.2 Identifikasi Masalah ... 3

1.3 Maksud dan Tujuan ... 3

1.4 Batasan Masalah ... 4

1.5 Metodologi Penelitian ... 5

1.5.1 Pengumpulan Data ... 5

1.5.2 Pembangunan Aplikasi ... 6

1.6 Sistematika Penulisan ... 8

BAB II TINJAUAN PUSTAKA ... 9

2.1 Plagiarisme ... 9

2.1.1 Pengertian Plagiarisme ... 9

2.1.2 Metode Pendeteksian Plagiarisme ... 11

2.2 Ekstraksi Dokumen ... 13


(10)

vi

2.3.2 K-grams ... 17

2.3.3 Konsep Algoritma Rabin-Karp ... 18

2.3.4 Pengukuran Nilai Similaritas ... 19

2.3.5 Persentase Nilai Similaritas ... 20

2.4 Basis Data ... 21

2.4.1 ERD (ENTITY RELATIONSHIP DATA) ... 21

2.4.2 Tipe Binary Relationship ... 23

2.4.3 Normalisasi ... 25

2.4.3.1 Bentuk Normal Pertama (1NF) ... 25

2.4.3.2 Bentuk Normal Kedua (2NF) ... 26

2.4.3.3 Bentuk Normal Ketiga (3NF) ... 28

2.5 XAMPP ... 29

2.6 JAVA ... 30

2.6.1 Sejarah Singkat Perkembangan Java ... 30

2.7 Unified Modelling Language (UML) ... 32

2.7.1 Komponen Unified Modelling Language (UML) ... 33

2.7.2 Desain Structure ... 34

2.7.3 Desain Behavior ... 40

2.7.4 Desain Interaction ... 44

2.7.5 Analisis Persyaratan Dengan UML ... 49

2.8 Software Pendukung Pemodelan UML (Rational Rose) ... 50


(11)

vii

3.1.1 Analisis Metode ... 53

3.1.2 Analisis Algoritma ... 55

3.1.3 Analisis Kebutuhan Non Fungsional ... 62

3.1.3.1 Analisis Perangkat Lunak (Software) ... 62

3.1.3.2 Analisis Perangkat Keras (Hardware) ... 62

3.1.3.3 Analisis Pengguna ... 63

3.1.4 AnalisisKebutuhan Fungsional ... 63

3.1.4.1 Use CaseDiagram ... 63

3.1.4.2 Definisi Aktor ... 64

3.1.4.3 Definisi Use Case ... 65

3.1.4.4 Definisi Skenario ... 66

3.1.4.5 Activity Diagram ... 83

3.1.4.6 Sequence Diagram ... 93

3.1.4.7 Identifikasi Kelas ... 111

3.1.4.8 Class Diagram ... 112

3.1.4.9 Package Diagram ... 114

3.2 Desain Struktur Menu ... 114

3.3 Desain Interface (User Interface) ... 115

BAB IV IMPLEMENTASI DAN PENGUJIAN ... 120

4.1 Implementasi ... 120

4.1.1 Implementasi Perangkat Lunak ... 120


(12)

viii

4.2.1 Pengujian White Box ... 127

4.2.2 Pengujian Black Box ... 130

4.2.2.1 Kasus dan Hasil Pengujian ... 132

4.2.2.2 Kesimpulan Hasil Pengujian ... 138

4.2.3 Pengujian Performance ... 138

4.2.4 Kasus dan Pengujian Beta ... 146

4.2.5 Hasil Pengujian Beta ... 147

4.2.6 Kesimpulan Hasil Pengujian Beta ... 150

BAB V KESIMPULAN DAN SARAN ... 151

5.1 Kesimpulan ... 151

5.2 Saran ... 152


(13)

1

BAB I

PENDAHULUAN

1.1 Latar Belakang Masalah

Di zaman modern yang serba instan dan cepat ini, semakin mudah pertukaran informasi dewasa ini tidak hanya membawa dampak positif bagi kemajuan teknologi, tetapi juga membawa dampak negatif yang hampir tidak dapat dihindari yaitu plagiarisme. Praktek plagiarisme ini sangat sering dilakukan terutama di kalangan akademisi baik sekolah maupun di perguruan tinggi. Tindakan plagiarisme ini dapat berdampak pada penurunan kreatifitas siswa maupun mahasiswa.

Teknik Plagiarisme yang paling sering dilakukan dengan melakukan copy paste suatu dokumen. Cukup dengan menggunakan teknik copy paste tugas milik teman, tugas-tugas sekolah atau kuliah dapat terselesaikan. Selain itu bagi mahasiswa yang sedang menyusun proposal skripsi terkadang kerap kali melakukan praktek penjiplakan untuk mengisi bagian pendahuluan, latar belakang, dll, karena ingin proposalnya segera selesai tanpa perlu bersusah payah untuk mengeksplorasi kajian terlebih dahulu.

Permasalahannya, untuk mengatasi praktek plagiarisme terbukti cara

persuasif disini maksudnya pendekatan langsung kepada mahasiswa yang bersangkutan bahwa tindakan plagiarisme tersebut tidak baik dilakukan sudah terbukti tidak efektif. Sistem pengukuran tingkat similaritas dokumen merupakan


(14)

solusi tepat yang sebaiknya dilakukan agar tindakan curang tersebut dapat diminimalisasi. Oleh karena itu untuk mencegah praktik plagiarisme tersebut diperlukan sistem pengukuran tingkat similaritas dokumen terhadap karya tulis seseorang.

Ada beberapa metode yang dapat digunakan dalam pengukuran tingkat similaritas dokumen salah satunya adalah dokumen fingerprinting. Dibandingkan dengan metode-metode yang lain metode dokumen fingerprinting memiliki keunggulan dalam mengukur tingkat similaritas antar dokumen, baik semua teks yang terdapat di dalam dokumen atau hanya sebagian teks saja. Keunggulannya adalah menelusuri karakter satu persatu pada deret karakter sehingga proses perbandingannya (penghitungan hash key nya) relatif mudah, metode ini lebih cocok digunakan pada kasus pencarian string dengan pola yang panjang. Prinsip kerja dari metode dokumen fingerprinting ini adalah dengan menggunakan teknik

hashing. Teknik hashing adalah sebuah fungsi yang mengkonversi setiap string menjadi bilangan. Salah satu algoritma yang menggunakan metode ini adalah algoritma Rabin-Karp. Maka dari itu memilih menggunakan metode

fingerprinting dengan menggunakan algoritma Rabin-Karp.

Berdasarkan permasalahan tersebut maka akan dirancang dan dibangun suatu “Sistem Pengukuran Tingkat Similaritas Dokumen”. Teknik yang digunakan dalam perancangan aplikasi yaitu dengan membandingkan kemiripan dokumen asli dengan dokumen yang ingin diuji. Sebelum adanya aplikasi pengukuran tingkat similaritas dokumen ini, memeriksa dokumen membutuhkan waktu yang cukup lama dengan harus membaca hard copy. Dengan adanya aplikasi ini,


(15)

sekumpulan file dokumen dapat diuji apakah antar dokumen dan yang lainnya memiliki kesamaan atau tidak, diharapkan dengan adanya aplikasi ini praktek plagiarisme dapat dicegah.

1.2 Identifikasi Masalah

Adapun masalah-masalah yang akan dibahas pada laporan tugas akhir ini adalah sebagai berikut :

1. Bagaimana merancang dan membangun suatu aplikasi pengukuran tingkat similaritas dokumen dengan tingkat akurasi yang baik?

2. Bagaimana caranya agar aplikasi dapat dan mampu mendeteksi suatu aksi similaritas pada suatu dokumen, meskipun memiliki perbedaan tata letak (posisi) tetapi memiliki kesamaan kata?

3. Bagaimana persentase similaritas yang dihasilkan oleh sistem terhadap dokumen yang dibandingkan?

1.3 Maksud dan Tujuan

Berdasarkan permasalahan yang diteliti, maka maksud dari penulisan tugas akhir ini adalah untuk membangun sistem pengukuran tingkat similaritas dokumen.

Sedangkan tujuan yang ingin dicapai dalam pembuatan skripsi ini adalah :

1. Untuk merancang dan membangun suatu aplikasi pengukuran tingkat similaritas dokumen dengan tingkat akurasi yang baik.


(16)

2. Aplikasi dapat mendeteksi suatu aksi similaritas pada suatu dokumen, meskipun memiliki perbedaan tata letak (posisi) tetapi memiliki kesamaan kata.

3. Mengetahui persentase similaritas yang dihasilkan oleh sistem terhadap dokumen yang dibandingkan.

1.4 Batasan Masalah atau Ruang Lingkup Kajian

Dalam pembuatan sistem pengukuran tingkat similaritas dokumen, penulis membatasi masalah sebagai berikut :

1. File yang dapat menjadi input pada aplikasi ini hanya file yang berekstensi .doc, .docx, .txt, dan .pdf.

2. Output yang akan ditampilkan pada aplikasi ini sebagai hasil akhir aplikasi, antara lain ialah:

a. Persentase derajat kemiripan.

b. Munculnya taginfo “Similaritas Terdeteksi” apabila derajat tingkat kemiripannya melebihi batas toleransi, sebaliknya akan muncul tag

info “Similaritas Tidak Terdeteksi” apabila derajat tingkat kemiripan masih dalam batas toleransi.

3. Aplikasi yang akan dibangun dapat bekerja dengan sistem one to one document process : satu dokumen acuan dan satu dokumen lainnya sebagai objek yang akan dibandingkan.


(17)

4. Pada saat proses pengukuran, aplikasi hanya mendeteksi string teks (mencakup huruf dan angka), dan tidak memperhitungkan equation

(rumus), tabel, dan gambar.

5. Aplikasi ini dipersiapkan untuk berjalan hanya di satu komputer (belum

sampai mengadopsi konsep clientserver).

6. Aplikasi pengukuran tingkat similaritas dokumen ini akan diuji coba pada

Tugas Akhir IF-UNIKOM.

7. Dokumen yang dibandingkan tidak hanya dokumen yang ditulis dalam bahasa Indonesia, bisa digunakan untuk semua bahasa.

8. Aplikasi ini tidak bisa melakukan pengukuran tingkat similaritas dengan

dokumen yang di proteksi.

9. Aplikasi ini dapat diterapkan di sekolah atau di kampus untuk mendeteksi similaritas antar dokumen.

10. Metode yang digunakan yaitu metode fingerprinting.

1.5 Metodologi Penelitian

Metodelogi yang diterapkan pada skripsi ini adalah metode Analisis Deskriptif, yaitu suatu metode yang bertujuan untuk mendapatkan gambaran yang jelas tentang hal-hal yang diperlukan, melalui tahapan sebagai berikut:

1.5.1 Pengumpulan Data

Metode yang digunakan dalam mengumpulkan data yang berkaitan dengan penyusunan laporan dan pembuatan aplikasi ini adalah sebagai berikut:


(18)

1. Studi Literatur

Pengumpulan data dengan cara mengumpulkan literatur, jurnal, paper dan bacaan-bacaan yang ada kaitannya dengan judul penelitian.

2. Observasi

Teknik pengumpulan data dengan mengadakan penelitian dan peninjauan langsung terhadap permasalahan yang diambil.

3. Kuesioner

Teknik pengumpulan data dengan mengadakan kuesioner yang ada kaitannya dengan topik yang diambil.

1.5.2 Pembangunan Aplikasi

Dalam membangun aplikasi ini menggunakan metode air terjun yang dikenal sebagai waterfall. Model ini diilustrasikan pada Gambar 1.1. Berkat penurunan dari satu fase ke fase yang lainnya, model ini dikenal sebagai „model air terjun‟ atau siklus hidup perangkat lunak. Tahap-tahap utama dari model ini memetakan kegiatan-kegiatan pengembangan dasar yaitu[8]:

1. Analisis dan definisi persyaratan. Pelayanan, batasan, dan tujuan sistem ditentukan melalui konsultasi dengan user system. Persyaratan ini kemudian didefinisikan secara rinci dan berfungsi sebagai spesifikasi system.

2. Perancangan sistem dan perangkat lunak. Proses perancangan sistem membagi persyaratan dalam sistem perangkat keras atau perangkat lunak. Kegiatan ini menentukan arsitektur sistem secara keseluruhan. Perancangan perangkat lunak


(19)

melibatkan identifikasi dan deskripsi abstraksi sistem perangkat lunak yang mendasar dan hubungan-hubungannya.

3. Implementasi dan pengujian unit. Pada tahap ini, perancangan perangkat lunak direalisasikan sebagai serangkaian program atau unit program. Pengujian unit melibatkan verifikasi bahwa setiap unit telah memenuhi spesifikasinya.

4. Intregrasi dan pengujian sistem. Unit program atau program individual diintegrasikan dan diuji sebagai sistem yang lengkap untuk menjamin bahwa persyaratan sistem telah dipenuhi. Setelah pengujian sistem, perangkat lunak dikirim kepada pelanggan.

5. Operasi dan pemeliharaan. Biasanya (walaupun tidak seharusnya), ini merupakan fase siklus hidup yang paling lama. Sistem diinstal dan dipakai. Pemeliharaan mencakup koreksi dari berbagai error yang tidak ditemukan pada tahap-tahap terdahulu, perbaikan atas implementasi unit sistem dan pengembangan pelayanan sistem, sementara persyaratan-persyaratan baru ditambahkan.


(20)

Definisi Persyaratan

Implementasi dan pengujian unit Perancangan Sistem

dan Perangkat Lunak

Integrasi dan pengujian sistem

Operasi dan pemeliharaan

Gambar 1.1 Siklus Hidup Perangkat Lunak[7]

1.6 Sistematika Penulisan

Sistematika penulisan proposal penelitian ini disusun untuk memberikan gambaran umum tentang penelitian yang dijalankan. Sistematika penulisan tugas akhir ini adalah sebagai berikut :

BAB I PENDAHULUAN

Bab ini menguraikan tentang latar belakang masalah, identifikasi masalah, maksud dan tujuan, batasan masalah, metodologi penelitian dan sistematika penulisan.

BAB II. LANDASAN TEORI

Bab ini membahas berbagai konsep dasar dan teori yang berkaitan dengan topik penelitian yang dilakukan dan hal-hal yang berguna dalam proses analisis


(21)

permasalahan serta tinjauan terhadap penelitian-penelitian serupa yang telah pernah dilakukan sebelumnya termasuk sintesisnya. Pada bab ini akan dibahas plagiarism, ekstraksi dokumen, algoritma rabin karp, basis data, xampp, java, uml.

BAB III. ANALISIS DAN PERANCANGAN SISTEM

Menganalisis masalah dari model penelitian untuk memperlihatkan keterkaitan antar variabel yang diteliti serta model matematis untuk analisisnya. Pada bab ini akan dibahas tentang analisis sistem, analisis algoritma, analisis basis data, identifikasi kelas, analisis kebutuhan non fungsional, analisis kebutuhan fungsional, desain struktur menu dan desain interface.

BAB IV. PERANCANGAN DAN IMPLEMENTASI

Merupakan tahapan yang dilakukan dalam penelitian secara garis besar sejak dari tahap persiapan sampai penarikan kesimpulan, metode dan kaidah yang diterapkan dalam penelitian. Termasuk menentukan variabel penelitian, identifikasi data yang diperlukan dan cara pengumpulannya, penentuan sampel penelitian dan teknik pengambilannya, serta metode/teknik analisis yang akan dipergunakan dan perangkat lunak yang akan dibangun jika ada.

BAB V. KESIMPULAN DAN SARAN


(22)

9 2.1 Plagiarisme

2.1.1 Pengertian Plagiarisme

Plagiarisme adalah tindakan menjiplak karya orang lain dan dianggap sebagai bentuk kriminalitas karena mencuri hak cipta orang lain. Plagiarisme atau sering disebut plagiat adalah penjiplakan atau pengambilan karangan, pendapat, dan sebagainya dari orang lain dan menjadikannya seolah karangan dan pendapat sendiri [1].

Plagiarisme adalah tindakan penyalahgunaan, pencurian / perampasan, penerbitan, pernyataan, atau menyatakan sebagai milik sendiri sebuah pikiran, ide, tulisan, atau ciptaan yang sebenarnya milik orang lain [2]. Di dunia pendidikan plagiarisme akan mendapatkan sanksi tegas seperti penguguran karya ilmiah bahkan dikeluarkan dari institusi.

Dalam buku Bahasa Indonesia: Sebuah Pengantar Penulisan Ilmiah, Felicia Utorodewo dkk. menggolongkan hal-hal berikut sebagai tindakan plagiarism [3] :

1. Mengakui tulisan orang lain sebagai tulisan sendiri, 2. Mengakui gagasan orang lain sebagai pemikiran sendiri 3. Mengakui temuan orang lain sebagai kepunyaan sendiri


(23)

5. Menyajikan tulisan yang sama dalam kesempatan yang berbeda tanpa menyebutkan asal-usulnya

6. Meringkas dan memparafrasekan (mengutip tak langsung) tanpa menyebutkan sumbernya

7. Meringkas dan memparafrasekan dengan menyebut sumbernya, tetapi rangkaian kalimat dan pilihan katanya masih terlalu sama dengan sumbernya. Yang digolongkan sebagai plagiarisme:

1. Menggunakan tulisan orang lain secara mentah, tanpa memberikan tanda jelas (misalnya dengan menggunakan tanda kutip atau blok alinea yang berbeda) bahwa teks tersebut diambil persis dari tulisan lain

2. Mengambil gagasan orang lain tanpa memberikan anotasi yang cukup tentang sumbernya

Yang tidak tergolong plagiarisme:

1. menggunakan informasi yang berupa fakta umum

2. menuliskan kembali (dengan mengubah kalimat atau parafrase) opini orang lain dengan memberikan sumber jelas

3. mengutip secukupnya tulisan orang lain dengan memberikan tanda batas jelas bagian kutipan dan menuliskan sumbernya

Beberapa tipe plagiarisme yaitu : [3] 1. Word-for-word plagiarism


(24)

2. Plagiarism of authorship

Mengakui hasil karya orang lain sebagai hasil karya sendiri dengan cara mencantumkan nama sendiri menggantikan nama pengarang yang sebenarnya. 3. Plagiarism of ideas

Mengakui hasil pemikiran atau ide orang lain. 4. Plagiarism of sources

Jika seorang penulis menggunakan kutipan dari penulis lainnya tanpa mencantumkan sumbernya.

2.1.2 Metode Pendeteksian Plagiarisme

Metode pendeteksi plagiarisme dibagi menjadi tiga bagian yaitu metode perbandingan teks lengkap, metode dokumen fingerprinting, dan metode kesamaan kata kunci. Metode pendeteksi plagiarism dapat dilihat pada gambar 2.1 [4] :

Gambar 2.1 Metode Pendeteksi Plagiarisme Metode Pendeteksi

Plagiarisme

Perbandingan Teks Lengkap

Dokumen Fingerprinting


(25)

Berikut ini penjelasan dari masing-masing metode dan algoritma pendeteksi plagiarisme :

1. Perbandingan teks lengkap. Metode ini diterapkan dengan membandingkan semua isi dokumen. Dapat diterapkan untuk dokumen yang besar. Pendekatan ini membutuhkan waktu yang lama tetapi cukup efektif, karena kumpulan dokumen yang diperbandingkan adalah dokumen yang disimpan pada penyimpanan lokal. Metode perbandingan teks lengkap tidak dapat diterapkan untuk kumpulan dokumen yang tidak terdapat pada dokumen lokal. Algoritma yang digunakan pada metode ini adalah algoritma Brute-Force, algoritma edit distance, algoritma Boyer Moore dan algoritma lavenshtein distance.

2. Dokumen Fingerprinting. Dokumen fingerprinting merupakan metode yang digunakan untuk mendeteksi keakuratan salinan antar dokumen, baik semua teks yang terdapat di dalam dokumen atau hanya sebagian teks saja. Prinsip kerja dari metode dokumen fingerprinting ini adalah dengan menggunakan teknik hashing. Teknik hashing adalah sebuah fungsi yang mengkonversi setiap string menjadi bilangan. Misalnya Rabin-Karp, Winnowing dan Manber.

3. Kesamaan Kata Kunci. Prinsip dari metode ini adalah mengekstrak kata kunci dari dokumen dan kemudian dibandingkan dengan kata kunci pada dokumen yang lain. Pendekatan yang digunakan pada metode ini adalah teknik dot.


(26)

CASE FOLDING

TOKENIZING 2.2 Ekstraksi Dokumen

Teks yang akan dilakukan proses teks mining, pada umumnya memiliki beberapa karakteristik diantaranya adalah memiliki dimensi yang tinggi, terdapat

noise pada data, dan terdapat struktur teks yang tidak baik. Cara yang digunakan dalam mempelajari suatu data teks, adalah dengan terlebih dahulu menentukan fitur-fitur yang mewakili setiap kata untuk setiap fitur-fitur yang ada pada dokumen. Sebelum menentukan fitur-fitur yang mewakili, diperlukan tahap preprocessing yang dilakukan secara umum dalam teks mining pada dokumen, yaitu case folding dan

tokenizing. Gambar 2.2 adalah tahap dari preprocessing [5] :

Gambar 2.2 Tahap Preprocessing

2.2.1 Case Folding

Case folding adalah mengubah semua huruf dalam dokumen menjadi huruf kecil. Hanya huruf „a„ sampai dengan „z„ yang diterima.

2.2.2 Tokenizing

Tahap tokenizing / parsing adalah tahap pemotongan string input berdasarkan tiap kata yang menyusunnya. Karakter selain huruf dihilangkan dan dianggap


(27)

(Teks Input)

(Teks Output) Gambar 2.3 Tokenizing

2.3 Algoritma Rabin-Karp

Algoritma Karp-Rabin diciptakan oleh Michael O. Rabin dan Richard M. Karp pada tahun 1987 yang menggunakan fungsi hashing untuk menemukan pattern

di dalam string teks.

Fungsi hashing menyediakan metode sederhana untuk menghindari perbandingan jumlah karakter yang quadratik di dalam banyak kasus atau situasi. Daripada melakukan pemeriksaan terhadap setiap posisi dari teks ketika terjadi pencocokan pola, akan lebih baik efisien untuk melakukan pemeriksaan hanya jika teks yang sedang proses memiliki kemiripan seperti pada pattern. Untuk melakukan pengecekan kemiripan antara dua kata ini digunakan fungsi hash [6].

Manajemen pengetahuan adalah sebuah konsep baru di dunia bisnis.

manajemen pengetahuan adalah sebuah konsep baru di dunia bisnis


(28)

Algoritma Rabin-Karp ini banyak digunakan dalam pendeteksian pencontekan atau kecurangan.Contohnya pada makalah atau pada paper. [6]

Kelebihan algoritma rabin-karp diantaranya sebagai berikut:

1. Rabin-Karp menelusuri karakter satu persatu pada deret karakter (kontigu), tetapi proses perbandingannya (penghitungan hash key nya) relatif mudah. 2. Kasus pencarian string dengan pola yang panjang.

Kekurangan algoritma rabin-karp diantaranya sebagai berikut:

1. Membutuhkan waktu yang lama dalam membandingkan kata. 2. Tidak bisa menentukan persamaan makna sinonim kata.

2.3.1 Hashing

Hashing adalah suatu cara untuk mentransformasi sebuah string menjadi suatu nilai yang unik dengan panjang tertentu (fixed-length) yang berfungsi sebagai penanda string tersebut. Fungsi untuk menghasilkan nilai ini disebut fungsi hash, sedangkan nilai yang dihasilkan disebut nilai hash. Contoh sederhana hashing adalah: Firdaus, Hari

Munir, Rinaldi Rabin, Michael Karp, Richard

menjadi :

7864 = Firdaus, Hari 9802 = Munir, Rinaldi


(29)

1990 = Rabin, Michael 8822 = Karp, Richard

Contoh di atas adalah pengunaan hashing dalam pencarian pada database. Apabila tidak di-hash, pencarian akan dilakukan karakter per karakter pada nama-nama yang panjangnya bervariasi dan ada 26 kemungkinan pada setiap karakter. Namun pencarian akan menjadi lebih efisien setelah di-hash karena hanya akan membandingkan empat digit angka dengan cuma 10 kemungkinan setiap angka. Nilai

hash pada umumnya digambarkan sebagai fingerprint yaitu suatu string pendek yang terdiri atas huruf dan angka yang terlihat acak (data biner yang ditulis dalam heksadesimal) [8].

Rolling hashing adalah suatu cara menyimpan dan mengambil target elemen tanpa searching, yaitu dengan cara menghitung lokasi target. Fungsi hash dengan basis disebut dengan Rolling Hash. Basis biasanya adalah bilangan prima yang cukup besar. Persamaannya adalah sebagai berikut :

H = C1 * a(k-1) + C2 * a(k-2) + C3 * a(k-3)… + Ck * a0

Keterangan :

H adalah nilai Hash

C adalah nilai ASCII suatu karakter a adalah basis (tidak boleh 1 dan 0) k adalah banyaknya karakter


(30)

Algoritma Rabin-Karp didasarkan pada fakta jika dua buah string sama maka harga hash value-nya pasti sama. Akan tetapi ada dua masalah yang timbul dari hal ini, masalah pertama yaitu ada begitu banyak string yang berbeda, permasalahan ini dapat dipecahkan dengan meng-assign beberapa string dengan hash value yang sama. Masalah yang kedua belum tentu string yang mempunyai hash value yang sama cocok untuk mengatasinya maka untuk setiap string yang di-assign dilakukan pencocokan string secara Brute-Force. Kunci agar algoritma Rabin-Karp efisien, terdapat pada pemilihan hash value-nya. Salah satu cara yang terkenal dan efektif adalah memperlakukan setiap substring sebagai suatu bilangan dengan basis tertentu [8].

2.3.2 K-grams

Kgrams adalah rangkaian terms dengan panjang K. Kebanyakan yang digunakan sebagai terms adalah kata. K-gram merupakan sebuah metode yang diaplikasikan untuk pembangkitan kata atau karakter. Metode k-grams ini digunakan untuk mengambil potongan-potongan karakter huruf sejumlah k dari sebuah kata yang secara kontinuitas dibaca dari teks sumber hingga akhir dari dokumen. Berikut ini adalah contoh k-grams dengan k=5 :

Text: A do run run run, a do run run

 Kemudian dilakukan penghilangan spasi : adorunrunrunadorunrun


(31)

 adoru dorun orunr runru unrun nrunr runru unrun nruna runad unado nador adoru dorun orunr runru unrun [9].

2.3.3 Konsep Algoritma Rabin-Karp

Algoritma Rabin-Karp adalah algoritma pencocokan string yang menggunakan fungsi hash sebagai pembanding antara string yang dicari (m) dengan

substring pada teks (n). Apabila hash value keduanya sama maka akan dilakukan perbandingan sekali lagi terhadap karakter-karakternya. Apabila hasil keduanya tidak sama, maka substring akan bergeser ke kanan. Pergeseran dilakukan sebanyak (n-m) kali. Perhitungan nilai hash yang efisien pada saat pergeseran akan mempengaruhi performa dari algoritma ini. Cara kerja dari algoritma Rabin-Karp dapat dilihat pada gambar 2.4 [8].


(32)

Gambar 2.4 Algoritma Rabin-Karp

2.3.4 Pengukuran Nilai Similaritas

Inti dari pendekatan k-grams dibagi menjadi dua tahap. Tahap pertama, membagi kata menjadi k-grams. Kedua, mengelompokkan hasil terms dari k-grams

yang sama. Kemudian untuk menghitung similarity dari kumpulan kata tersebut maka digunakan rumus pengukuran nilai similaritas untuk pasangan kata yang digunakan.

S =

function RabinKarp (input s: string[1..m], teks: string[1..n]) boolean

{ Melakukan pencarian string s pada

string teks dengan algoritma

Rabin-K} Deklarasi

i : integer ketemu = boolean

Algoritma:

ketemu ←false hs ←hash(s[1..m]) for i ← 0 to n-m do

hsub ←hash(teks[1..i+m-1]) if hsub = hs then

if teks[i..i+m-1] = s then ketemu ←true else hsub ←hash(teks[i+1..i+m]) endfor return ketemu ….(II.2)


(33)

Keterangan: S = Similaritas

Nt = Jumlah Hashing yang sama Nx = Total substring asli

Ny = Total substring uji

2.3.5 Persentase Nilai Similaritas

Untuk menentukan jenis dokumen yang diuji ada 5 jenis penilaian persentase similaritas:

1. 0% : Hasil uji 0% berarti kedua dokumen tersebut benar-benar berbeda baik dari segi isi dan kalimat secara keseluruhan

2. < 15%: Hasil uji 15% berarti kedua dokumen tersebut hanya mempunyai sedikit kesamaan

3. 15-50%: Hasil uji 15-50% berarti menandakan dokumen tersebut termasuk plagiat tingkat sedang

4. >50%: Hasil uji lebih dari 50% berarti dapat dikatakan bahwa dokumen tersebut mendekati plagiarism

5. 100%: Hasil uji 100% menandakan bahwa dokumen tersebut adalah plagiat karena dari awal sampai akhir mempunyai isi yg sama persis [11].


(34)

2.4 Basis Data

Data merupakan fakta mengenai suatu objek seperti manusia, benda, peristiwa, konsep, keadaan dan sebagainya yang dapat dicatat dan mempunyai arti secara implisit. Data dapat dinyatakan dalam bentuk angka, karakter atau simbol, sehingga bila data dikumpulkan dan saling berhubungan maka dikenal dengan istilah basis data (database) [16]. Sedangkan menurut George Tsu-der Chou basis data merupakan kumpulan informasi bermanfaat yang diorganisasikan ke dalam aturan yang khusus. Informasi ini adalah data yang telah diorganisasikan ke dalam bentuk yang sesuai dengan kebutuhan seseorang [17]. Menurut Encyclopedia of Computer Science and Engineer, para ilmuwan di bidang informasi menerima definisi standar informasi yaitu data yang digunakan dalam pengambilan keputusan.

2.4.1 ERD (ENTITY RELATIONSHIP MODEL)

Model entity-relationship pertama kali diperkenalkan oleh Peter Chen pada tahun 1976. Dalam pemodelan ini dilakukan dengan tahapan sebagai berikut [18]: 1. Memilih entitas-entitas yang akan disusun dalam basis data dan menentukan

hubungan antar entitas yang telah dipilih.

2. Melengkapi atribut-atribut yang sesuai pada entitas dan hubungan sehingga diperoleh bentuk tabel normal penuh (ternormalisasi).

Elemen-elemen dalam model ER dapat digambarkan pada gambar diagram di bawah ini:


(35)

Gambar 2.5 Elemen-elemen ER Model

Entitas merupakan sesuatu yang dapat diidentifikasikan dalam lingkungan kerja pengguna. Entitas yang diberikan tipe dikelompokkan ke kelas entitas. Perbedaan antara kelas entitas dan instansi entitas adalah sebagai berikut [18]:

1. Kelas entitas adalah kumpulan entitas dan dijelaskan oleh struktur atau format entitas di dalam kelas.

2. Instansi kelas merupakan bentuk penyajian dari fakta entitas.

Umumnya terdapat banyak instansi entitas di dalam setiap entitas kelas. Setiap entitas kelas memiliki atribut yang menjelaskan karakteristik dari entitas tersebut, sedangkan setiap instansi entitas mempunyai identifikasi yang dapat bernilai unik (mempunyai nilai yang berbeda untuk setiap identifikasinya) atau non-unik (dapat bernilai sama untuk setiap identifikasinya).

Antara entitas diasosiakan dalam suatu hubungan (relationship). Suatu relationship dapat memiliki beberapa atribut. Jumlah kelas entitas dalam suatu relationship disebut derajat relationship. Gambar di bawah ini merupakan contoh dari relationship berderajat dua dan relationship berderajat tiga.


(36)

Gambar 2.6 (a) Relationship berderajat dua (b) Relationship berderajat tiga

2.4.2 Tipe Binary Relationship

Relationship memiliki tiga tipe biner yaitu:

1. One-to-one (1:1). Hubungan terjadi bila setiap instansi entitas hanya memiliki satu hubungan dengan instansi entitas lain.


(37)

2. One-to-many (1:M). Relationship ini terjadi bila setiap instansi entitas dapat memiliki lebih dari satu hubungan terhadap instansi entitas lain tetapi tidak kebalikannya.

Gambar 2.8 Hubungan 1:M (one-to-many)

3. Many-to-many (M:N). Hubungan saling memiliki lebih dari satu dari setiap instansi entitas terhadap instansi entitas lainnya.


(38)

Gambar 2.9 Hubungan M:N (many-to-many)

2.4.3 Normalisasi

Proses normalisasi menyediakan cara sistematis untuk meminimalkan terjadinya kerangkapan data diantara relationship dalam perancangan logikal basis data.

2.4.3.1Bentuk Normal Pertama (1NF)

Bentuk normal pertama (1NF) mensyaratkan bahwa data dalam tabel menjadi dua dimensi, bahwa tidak ada kelompok yang berulang pada baris. Contoh tabel tidak dalam 1NF adalah di mana ada karyawan "record" seperti [19]:

Employee(name, address, {dependent name})

di mana {nama tergantung} menyimpulkan bahwa atribut itu diulangi. contoh data untuk catatan ini mungkin:


(39)

Smith, 123 4th St., {John, Mary, Paul, Sally} Jones, 4 Moose Lane., {Edgar, Frank, Bob}

Adams, 88 Tiger Circle., {Kaitlyn, Alicia, Allison}

Masalah dengan menempatkan data dalam tabel dengan kelompok mengulangi adalah bahwa tabel tidak dapat dengan mudah diindeks atau diatur sedemikian rupa sehingga informasi dalam mengulangi kelompok dapat ditemukan tanpa mencari setiap record secara individual. Orang relasional biasanya memanggil sekelompok mengulang "nonatomic" (memiliki lebih dari satu nilai dan dapat dipisah-pisahkan).

2.4.3.2Bentuk Normal Kedua (2NF)

Bentuk normal kedua (2NF) mensyaratkan bahwa data dalam tabel tergantung pada seluruh kunci dari meja. Dependensi parsial tidak diperbolehkan. Contoh:

Employee (name, job, salary, address)

di mana ia membawa nama + pekerjaan kombinasi (kunci concatenated) untuk mengidentifikasi gaji, tapi alamat hanya bergantung pada nama. Beberapa data sampel:


(40)

Tabel 2.1 Bentuk Normal Kedua (2NF)

Dapatkah Anda melihat masalah berkembang di sini? Alamat akan diulang untuk setiap terjadinya nama. Ini mengulangi disebut redundansi dan menyebabkan anomali. Suatu anomali berarti bahwa ada pembatasan untuk melakukan karena susunan data sesuatu. Ada penyisipan anomali, anomali penghapusan, dan anomali update. Kunci dari tabel ini adalah Nama + Job - ini jelas karena tidak satu pun adalah unik dan benar-benar mengambil keduanya nama dan pekerjaan untuk mengidentifikasi gaji. Namun, alamat tergantung hanya pada nama, bukan pekerjaan, ini adalah contoh dari ketergantungan parsial. Alamat tergantung pada hanya sebagian dari kunci. Contoh penyisipan sebuah anomali akan di mana orang akan ingin memasukkan seseorang ke dalam tabel di atas, tetapi orang yang akan dimasukkan belum ditentukan pekerjaan. Ini tidak bisa dilakukan karena nilai harus


(41)

dikenal untuk atribut kerja. Nilai null tidak dapat nilai yang valid untuk kunci dalam database relasional (ini dikenal sebagai kendala entitas-integritas). Sebuah anomali pembaruan akan di mana salah satu karyawan berubah nya atau alamatnya. Tiga baris harus menjadi diubah untuk mengakomodasi perubahan ini salah alamat. Contoh menghapus anomali adalah bahwa Adams berhenti, sehingga Adams hilang, tapi kemudian informasi bahwa analis yang dibayar $ 28,50 juga hilang. Oleh karena itu, lebih informasi terkait dari yang diantisipasi sebelumnya hilang.

2.4.3.3Bentuk Normal Ketiga (3NF)

Bentuk normal ketiga (3NF) mensyaratkan bahwa data dalam tabel tergantung pada primary key dari tabel. Sebuah contoh klasik non-3NF adalah:

Employee (name, address, project#, project-location)

Misalkan project-location berarti lokasi dari mana proyek dikendalikan, dan didefinisikan oleh project#. Beberapa data sampel akan menunjukkan masalah dengan tabel ini:


(42)

Perhatikan redundansi dalam tabel ini. Proyek 101 terletak di Memphis, tetapi setiap kali seseorang tercatat bekerja pada proyek 101, fakta bahwa mereka bekerja pada sebuah proyek yang dikendalikan dari Memphis dicatat lagi. itu sama anomali - anomali insert, anomali update, dan menghapus anomali - juga hadir dalam tabel ini.

Untuk menghapus database anomali dan redudansi, database harus normalisasi. Proses normalisasi melibatkan membelah meja menjadi dua atau lebih tabel (dekomposisi). Setelah tabel terpecah (proses yang disebut dekomposisi), mereka dapat bersatu kembali dengan sebuah operasi yang disebut "bergabung."

2.5 XAMPP

XAMPP adalah perangkat lunak bebas, yang mendukung banyak sistem operasi, merupakan kompilasi dari beberapa program. Fungsinya adalah sebagai server yang berdiri sendiri (localhost), yang terdiri atas program Apache HTTP Server, MySQL database, dan penerjemah bahasa yang ditulis dengan bahasa pemrograman PHP dan Perl. Nama XAMPP merupakan singkatan dari X (empat sistem operasi apapun), Apache, MySQL, PHP dan Perl. Program ini tersedia dalam

GNU General Public License dan bebas, merupakan web server yang mudah digunakan yang dapat melayani tampilan halaman web yang dinamis. Untuk mendapatkanya dapat mendownload langsung dari web resminya [20].


(43)

2.6 Java

Java adalah bahasa pemrograman yang dapat dijalankan di berbagai komputer termasuk telepon genggam. Bahasa ini awalnya dibuat oleh James Gosling saat masih bergabung di Sun Microsystems saat ini merupakan bagian dari Oracle dan dirilis tahun 1995. Bahasa ini banyak mengadopsi sintaksis yang terdapat pada C dan C++ namun dengan sintaksis model objek yang lebih sederhana serta dukungan rutin-rutin aras bawah yang minimal. Aplikasi-aplikasi berbasis java umumnya dikompilasi ke dalam p-code (bytecode) dan dapat dijalankan pada berbagai Mesin Virtual Java (JVM). Java merupakan bahasa pemrograman yang bersifat umum/non-spesifik (general purpose), dan secara khusus didisain untuk memanfaatkan dependensi implementasi seminimal mungkin. Karena fungsionalitasnya yang memungkinkan aplikasi java mampu berjalan di beberapa platform sistem operasi yang berbeda, java dikenal pula dengan slogannya, “Tulis sekali, jalankan di mana pun”.Saat ini java merupakan bahasa pemrograman yang paling actor digunakan, dan secara luas dimanfaatkan dalam pengembangan berbagai jenis perangkat lunak aplikasi desktop ataupun aplikasi berbasis web [12].

2.6.1 Sejarah Singkat Perkembangan Java

Bahasa pemrograman Java terlahir dari The Green Project, yang berjalan selama 18 bulan, dari awal tahun 1991 hingga musim panas 1992. Proyek tersebut belum menggunakan versi yang dinamakan Oak. Proyek ini dimotori oleh Patrick Naughton, Mike Sheridan, James Gosling dan Bill Joy, beserta actor pemrogram


(44)

lainnya dari Sun Microsystems. Salah satu hasil proyek ini adalah actor Dukey ang dibuat oleh Joe Palrang.

Pertemuan proyek berlangsung di sebuah gedung perkantoran Sand Hill Road

di Menlo Park. Sekitar musim panas 1992 proyek ini ditutup dengan menghasilkan sebuah program Java Oak pertama, yang ditujukan sebagai pengendali sebuah peralatan dengan teknologi layar sentuh (touch screen), seperti pada PDA sekarang ini. Teknologi baru ini dinamai “*7” (Star Seven).

Setelah era Star Seven selesai, sebuah anak perusahaan Tv kabel tertarik ditambah beberapa orang dari proyek The Green Project. Mereka memusatkan kegiatannya pada sebuah ruangan kantor di 100 Hamilton Avenue, Palo Alto.

Perusahaan baru ini bertambah maju: jumlah karyawan meningkat dalam waktu singkat dari 13 menjadi 70 orang. Pada rentang waktu ini juga ditetapkan pemakaian Internet sebagai medium yang menjembatani kerja dan ide di antara mereka.Pada awal tahun 1990-an, Internet masih merupakan rintisan, yang dipakai hanya di kalangan akademisi dan militer.

Mereka menjadikan perambah (browser) Mosaic sebagai landasan awal untuk membuat perambah Java pertama yang dinamai Web Runner, terinsipirasi dari film 1980-an, Blade Runner. Pada perkembangan rilis pertama, Web Runner berganti nama menjadi Hot Java.

Pada sekitar bulan Maret1995, untuk pertama kali kode sumber Java versi 1.0a2 dibuka. Kesuksesan mereka diikuti dengan untuk pemberitaan pertama kali pada surat kabar San Jose Mercury News pada tanggal 23 Mei 1995.


(45)

Sayang terjadi perpecahan di antara mereka suatu hari pada pukul 04.00 di sebuah ruangan hotel Sheraton Palace. Tiga dari pimpinan utama proyek, Eric Schmidt dan George Paolini dari Sun Microsystems bersama Marc Andreessen, membentuk Netscape.

Nama Oak, diambil dari pohon oak yang tumbuh di depan jendela ruangan kerja “Bapak Java”, James Gosling. Nama Oak ini tidak dipakai untuk versi release Java karena sebuah perangkat lunak lain sudah terdaftar dengan merek dagang tersebut, sehingga diambil nama penggantinya menjadi “Java”. Nama ini diambil dari kopi murni yang digiling langsung dari biji (kopi tubruk) kesukaan Gosling.Konon kopi ini berasal dari Pulau Jawa. Jadi nama bahasa pemrograman Java tidak lain berasal dari kata Jawa (bahasa Inggris untuk Jawa adalah Java).

2.7 Unified Modelling Language (UML)

Unified Modelling Language (UML) adalah sebuah bahasa untuk menentukan, visualisasi, kontruksi, dan mendokumentasikan artifacts dari sistem perangkat lunak, untuk memodelkan bisnis, dan sistem non-software lainnya. UML merupakan suatu kumpulan teknik terbaik yang telah terbukti sukses dalam memodelkan sistem yang besar dan kompleks [13].

UML adalah keluarga notasi grafis yang didukung oleh meta-model tunggal, yang membantu pendeskripsian dan desain sistem perangkat lunak, khususnya sistem yang dibangun menggunakan pemrograman berorientasi objek [15]. UML merupakan standar yang terbuka yang dikontrol oleh Object Management Group (OMG), yang


(46)

terdiri dari banyak perusahaan. UML lahir dari penggabungan banyak bahasa pemodelan grafis berorientasi objek antara lain metode Booch oleh Graddy Booch, metode Object Modelling Technique (OMT) oleh DR. James Rumbaugh, dan metode

Object Oriented Software Engineering (OOSE) oleh Ivar Jacobson. UML cocok digunakan untuk pemodelan perangkat lunak yang sudah berorientasi objek seperti Java, C++, PHP, C#, VB.NET dan AS3.

2.7.1 Komponen Unified Modelling Language (UML)

Komponen Diagram UML yang digunakan dalam membuat sistem pengukuran tingkat similaritas dokumen ini terdiri dari beberapa bagian, yaitu:

1. Use Case Diagram 2. Activity Diagram 3. Sequence Diagram 4. Class Diagram

UML dibagi menjadi 3 desain, yaitu: 1. Desain Structure

Desain Structure dibagi menjadi : a. Class Diagram

b. Object Diagram

c. Component Diagram

d. Composite Diagram


(47)

f. Deploymen Diagram

2. Desain Behavior

Desain Behavior dibagi menjadi : a. Use Case Diagram

b. Activity Diagram

c. State Machine Diagram

3. Desain Interaction

Desain Interaction dibagi menjadi : a. Sequence Diagram

b. Communication Diagram

c. Timing Diagram

d. Interaction Overview Diagram

2.7.2 Desain Structure

Desain Structure yaitu kumpulan diagram yang digunakan untuk menggambarkan suatu struktur statis dari sistem yang dimodelkan.

a. Class Diagram

Diagram kelas atau class diagram menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang akan dibuat untuk membangun sistem. Kelas memiliki apa yang disebut atribut dan metode atau operasi [14].

1. Atribut merupakan variabel-variabel yang dimiliki oleh suatu kelas 2. Operasi atau metode adalah fungsi-fungsi yang dimiliki oleh suatu kelas


(48)

Berikut adalah contoh class diagram:


(49)

b. Object Diagram

Diagram objek menggambarkan struktur sistem dari segi penamaan objek dan jalannya objek dalam sistem. Pada diagram objek harus dipastikan semua kelas yang sudah didefinisikan pada diagram kelas harus dipakai objeknya, karena jika tidak, pendefinisian kelas itu tidak dapat dipertanggungjawabkan. Untuk apa mendefinisikan sebuah kelas sedangkan pada jalannya sistem, objeknya tidak pernah dipakai. Hubungan link pada diagram objek merupakan hubungan memakai dan dipakai dimana dua buah objek akan dihubungkan oleh link jika ada objek yang dipakai oleh objek lainnya [14].

Berikut adalah contoh Object Diagram :


(50)

c. Component Diagram

Diagram komponen atau component diagram dibuat untuk menunjukkan organisasi dan ketergantungan diantara kumpulan komponen dalam sebuah sistem. Diagram komponen fokus pada komponen sistem yang dibutuhkan dan ada di dalam sistem [14].

Berikut adalah contoh component diagram:

Gambar 2.12 Component Diagram

d. Composite Structure Diagram

Composite Structure Diagram adalah diagram untuk menunjukkan dekomposisi secara hierarkis sebuah class ke sebuah struktur internal. Hal


(51)

ini memungkinkan untuk memecah objek yang kompleks menjadi bagian-bagian yang kecil.

Berikut adalah contoh Composite Structure Diagram :

Gambar 2.13 Composite Structure Diagram

e. Package Diagram

Package diagram adalah sebuah bentuk pengelompokan yang memungkinkan untuk mengambil setiap bentuk di UML dan mengelompokkan elemen-elemen dalam tingkatan unit yang lebih tinggi.


(52)

Berikut adalah contoh Package Diagram :

Gambar 2.14 Package Diagram

f. Deployment Diagram

Diagram deployment atau deployment diagram menunjukkan konfigurasi komponen dalam proses eksekusi aplikasi.


(53)

Gambar 2.15 Deployment Diagram

2.7.3 Desain Behavior

Desain Behavior yaitu kumpulan diagram yang digunakan untuk menggambarkan kelakuan sistem atau rangkaian perubahan yang terjadi pada sebuah sistem.

a. Use Case Diagram

Use case atau diagram use case merupakan pemodelan untuk kelakukan

(behavior) sistem informasi yang akan dibuat. Use case mendeskripsikan sebuah interaksi antara satu atau lebih actor dengan sistem informasi yang akan dibuat. Secara kasar, use case digunakan untuk mengetahui fungsi apa saja yang ada di


(54)

dalam sebuah sistem informasi dan siapa saja yang berhak menggunakan fungsi-fungsi itu [14].

Syarat penamaan pada use case adalah nama didefinisikan sesimpel mungkin dan dapat dipahami. Ada dua hal utama pada use case yaitu pendefinisian apa yang disebut actor dan use case:

1. Aktor merupakan orang, proses, atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat di luar sistem informasi yang akan dibuat itu sendiri, jadi walaupun actor dari actor adalah gambar orang, tapi actor

belum tentu merupakan orang.

2. Use case merupakan fungsionalitas yang disediakan sistem sebagai unit-unit yang saling bertukar pesan antar unit atau actor.


(55)

Gambar 2.16 Use Case Diagram

b. Activity Diagram

Diagram aktivitas atau activity diagram menggambarkan workflow (aliran kerja) atau aktivitas dari sebuah sistem atau proses bisnis. Yang perlu diperhatikan disini adalah bahwa diagram aktivitas menggambarkan aktivitas sistem bukan apa yang dilakukan aktor, jadi aktivitas yang dapat dilakukan oleh sistem [14].


(56)

Diagram aktivitas juga banyak digunakan untuk mendefinisikan hal-hal berikut: 1. Rancangan proses bisnis dimana setiap urutan aktivitas yang digambarkan

merupakan proses bisnis sistem yang didefinisikan

2. Urutan atau pengelompokan tampilan dari sistem / user interface dimana setiap aktivitas dianggap memiliki sebuah rancangan antarmuka tampilan

3. Rancangan pengujian dimana setiap aktivitas dianggap memerlukan sebuah pengujian yang perlu didefinisikan kasus ujinya

Berikut adalah contoh Activity Diagram:


(57)

c. State Machine Diagram

State Machine Diagram menelusuri individu-individu objek melalui keseluruhan daur hidupnya, menspesifikasi semua urutan yang mungkin dari pesan-pesan yang akan diterima objek tersebut bersama-sama dengan tanggapan atas pesan-pesan tersebut. Diagram State menggambarkan transisi dan perubahan keadaan suatu objek dalam sistem sebagai akibat dari stimuli yang diterima. Pada umumnya diagram ini menggambarkan class tertentu. State diagram membantu analis, perancang dan pengembang untuk memahami perilaku objek dalam sistem. Berikut adalah contoh State Machine Diagram :

Gambar 2.18 State Machine Diagram

2.7.4 Desain Interaction


(58)

menggambarkan interaksi sistem dengan sistem lain maupun interaksi antar subsistem pada suatu sistem.

a. Sequence Diagram

Diagram sekuen menggambarkan kelakuan objek pada use case dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antar objek. Oleh karena itu untuk menggambar diagram sekuen maka harus diketahui objek-objek yang terlibat dalam sebuah use case beserta metode-metode yang dimiliki kelas yang diinstansiasi menjadi objek itu.

Banyaknya diagram sekuen yang harus digambar adalah sebanyak pendefinisian use case yang memiliki proses sendiri atau yang penting semua use case yang telah didefinisikan interaksi jalannya pesan sudah dicakup pada diagram sekuen sehingga semakin banyak use case yang didefinisikan maka diagram sekuen yang harus dibuat juga semakin banyak [14].


(59)

Gambar 2.19 Sequence Diagram

b. Communication Diagram

Communication diagram sejenis dengan diagram interaksi, yang lebih menekankan pada link data diantara bermacam-macam partisipan pada interaksi tersebut.

Berikut adalah contoh Communication Diagram :

: Admin

: PlagiarismDocumentView : LoginForm : Login

1: showLogin()

2: LoginForm() 3: doLogin()

4: doLogin(username, password) 5: alert


(60)

Gambar 2.20 Communication Diagram

c. Timing Diagram

Timing Diagram adalah bentuk lain dari interaction diagram, dimana fokus utamanya lebih ke waktu. Timing diagram sangat berdaya guna dalam menunjukkan faktor pembatas waktu diantara perubahan state pada objek yang berbeda.


(61)

Gambar 2.21 Timing Diagram

d. Interaction Overview Diagram

Interaction Overview Diagram adalah pencangkokan secara bersama antara activity diagram dengan sequence diagram. Interaction Overview Diagram dapat dianggap sebagai activity diagram dimana semua aktivitas diganti dengan sedikit

sequence diagram, atau bisa juga dianggap sebagai sequence diagram yang dirincikan dengan notasi activity diagram yang digunakan untuk menunjukkan aliran pengawasan.


(62)

Gambar 2.22 Interaction Overview Diagram

2.7.5 Analisis Persyaratan Dengan UML

Analisis persyaratan meliputi usaha untuk mengetahui apa kemampuan sebuah sistem yang diinginkan pengguna dan pelanggan dari sebuah pembuat perangkat lunak [15]. Analisis ini dilakukan untuk mendapatkan informasi atau persyaratan cukup untuk mempersiapkan model yang menggambarkan apa yang diperlukan dari perspektif pengguna.

Diagram yang digunakan dalam analisis persyaratan yaitu:

1. Use case diagram yang digunakan untuk menunjukkan fungsionalitas suatu sistem dan bagaimana sistem berinterakasi dengan dunia luar.


(63)

2. Activity diagram yang menunjukkan alur kerja (work flow) sebuah proses bisnis dan urutan aktivitas dalam suatu proses.

3. Class diagram yang membantu dalam visualisasi struktur sistem yang mendeskripsikan jenis-jenis objek dalam suatu sistem dan hubungan yang terdapat diantara objek tersebut.

2.8 Software Pendukung Pemodelan UML (Rational Rose)

Rational Rose merupakan salah satu software yang paling banyak digunakan untuk melakukan design software melalui pendekatan UML (Unified Modelling Language). Rational Rose merupakan software yang menyediakan banyak fungsi - fungsi seperti : design proses, generate code, reverse engineering, serta banyak fungsi-fungsi yang lain. Rational Rose merupakan tool yang sangat mudah karena sudah menyediakan contoh-contoh design dari beberapa software [21].

2.9 Pengertian ASCII

Kode Standar Amerika untuk Pertukaran Informasi atau ASCII (American Standard Code for Information Interchange) merupakan suatu standar internasional dalam kode huruf dan simbol seperti Hex dan Unicode tetapi ASCII lebih bersifat universal, contohnya 124 adalah untuk karakter "|". Ia selalu digunakan oleh komputer dan alat komunikasi lain untuk menunjukkan teks. Kode ASCII sebenarnya memiliki komposisi bilangan biner sebanyak 8 bit. Dimulai dari 0000 0000 hingga


(64)

1111 1111. Total kombinasi yang dihasilkan sebanyak 256, dimulai dari kode 0 hingga 255 dalam sistem bilangan Desimal [10].

2.9.1 Tabel Karakter ASCII

Tabel berikut berisi karakter-karakter ASCII . Dalam sistem operasi Windows dan MS-DOS, pengguna dapat menggunakan karakter ASCII dengan menekan tombol Alt+[nomor nilai ANSI (desimal)]. Sebagai contoh, tekan kombinasi tombol Alt+87 untuk karakter huruf latin "W" kapital.


(65)

52

BAB III

ANALISIS DAN PERANCANGAN SISTEM

Bab ini memberikan penjelasan mengenai analisis dan perancangan dari aplikasi yang akan dibangun. Analisis dan perancangan merupakan dua tahap awal dalam membangun suatu perangkat lunak. Dua tahap ini merupakan landasan untuk berlanjut ke tahap implementasi.

3.1 Analisis Masalah

Di zaman modern yang serba instan dan cepat ini, semakin mudah pertukaran informasi dewasa ini tidak hanya membawa dampak positif bagi kemajuan teknologi, tetapi juga membawa dampak negatif yang hampir tidak dapat dihindari yaitu plagiarisme. Praktek plagiarisme ini sangat sering dilakukan terutama di kalangan akademisi baik sekolah maupun di perguruan tinggi. Tindakan plagiarisme ini dapat berdampak pada penurunan kreatifitas siswa maupun mahasiswa. Teknik Plagiarisme yang paling sering dilakukan dengan melakukan copy paste suatu dokumen. Cukup dengan menggunakan teknik copy paste tugas milik teman, tugas-tugas sekolah atau kuliah dapat terselesaikan.

Permasalahannya, untuk mengatasi praktek plagiarisme terbukti cara

persuasif disini maksudnya pendekatan langsung kepada mahasiswa yang bersangkutan bahwa tindakan plagiarisme tersebut tidak baik dilakukan sudah terbukti tidak efektif. Sistem pengukuran tingkat similaritas dokumen merupakan solusi tepat yang sebaiknya dilakukan agar tindakan curang tersebut dapat


(66)

diminimalisasi. Oleh karena itu untuk meminimalisasi praktik plagiarisme tersebut diperlukan sistem pengukuran tingkat similaritas dokumen terhadap karya tulis seseorang.

Berdasarkan permasalahan tersebut maka akan dirancang dan dibangun suatu “Sistem Pengukuran Tingkat Similaritas Dokumen”. Teknik yang digunakan dalam perancangan aplikasi yaitu dengan membandingkan kemiripan dokumen asli dengan dokumen yang ingin diuji. Sebelum adanya aplikasi pengukuran tingkat similaritas dokumen ini, memeriksa dokumen membutuhkan waktu yang cukup lama dengan harus membaca hard copy. Dengan adanya aplikasi ini, sekumpulan file dokumen dapat diuji apakah antar dokumen dan yang lainnya memiliki kesamaan atau tidak, diharapkan dengan adanya aplikasi ini praktek plagiarisme dapat dicegah.

3.1.1 Analisis Metode

Analisis fungsional sistem merupakan penjelasan bagaimana kerja sistem pengukuran tingkat similaritas dokumen ini, pada sub bab ini akan dijelaskan bagaimana kerja sistem yang masih manual, dan bagaimana kerja sistem dengan kemudahan yang ditawarkan setelah adanya aplikasi pengukuran tingkat similaritas dokumen.

a. Sistem Manual

Pada gambar dibawah dapat dilihat alur kerja sistem yang masih manual yang akan dilakukan oleh user, dan dapat diperkirakan akan memakan waktu yang lama untuk membandingkan dokumen yang satu dengan


(67)

yang lainnya. Selain itu hasil yang diperoleh belum tentu akurat, karena hasil perbandingan yang didapat hanya perkiraan saja dan tanpa menggunakan metode tertentu, dapat dilihat pada gambar 3.1 berikut.

Gambar 3.1 Sistem Manual

b. Aplikasi Similaritas Dokumen

Dokumen merupakan data yang diuji dalam sistem ini adalah berupa dokumen teks dengan membandingkan hasil similaritas. Dengan adanya

aplikasi ini pengguna tidak perlu membaca dan berusaha

membandingkan dokumen, karena semua itu akan dilakukan oleh aplikasi ini, pengguna cukup memasukkan dokumen yang akan dibandingkan dan langsung dapat melihat hasil perbandingan, dapat dilihat pada gambar 3.2.


(68)

Gambar 3.2 Aplikasi Similaritas Dokumen

3.1.2 Analisis Algoritma

Aplikasi yang dibuat adalah berupa aplikasi pengukuran tingkat similaritas dokumen. Inputan pada aplikasi ini berupa dokumen teks yang mempunyai ekstensi .doc, .docx, .txt, dan .pdf. User akan menginputkan 2 dokumen, yaitu dokumen asli dan dokumen yang ingin diuji. Setelah itu, sistem akan memproses kedua dokumen tersebut dan mengevaluasi berapa persen nilai similaritas antara dokumen tersebut. Proses yang pertama kali dilakukan oleh sistem adalah membaca file teks yang diinputkan oleh user. Setelah dokumen diinputkan oleh user tadi, sistem akan melakukan pengecekan terhadap dokumen tersebut sehingga akan didapatkan informasi berupa jumlah kata, jumlah kalimat, jumlah paragraf dan ukuran dokumen tersebut.

Setelah sistem mendapatkan informasi dari dokumen yang telah diinputkan, selanjutnya sistem akan masuk ke tahap string tokenizing. Pada tahap ini akan dilakukan beberapa proses, yaitu pengambilan info dokumen dan


(69)

yang kurang penting, seperti kata spasi, titik, koma, dan sebagainya dan mengubah hurup menjadi lower case semua. Contoh berikut adalah dokumen yang sebelum dilakukan string tokenizing : Di zaman modern yang serba instan dan cepat ini, Semakin mudahnya pertukaran informasi dewasa ini tidak hanya membawa dampak positif bagi kemajuan teknologi, tetapi juga membawa dampak negatif yang hampir tidak dapat dihindari yaitu plagiarisme. Setelah dilakukan

string tokenizing maka dokumennya akan berubah menjadi seperti ini : dizamanmodernyangserbainstandancepatinisemakinmudahnyapertukaraninformas idewasainitidakhanyamembawadampakpositifbagikemajuanteknologitetapijugame mbawadampaknegatifyanghampirtidakdapatdihindariyaituplagiarisme.

Setelah melakukan string tokenizing langkah selanjutnya adalah parsing k-gram, yaitu memecah kata menjadi potongan-potongan dimana setiap potongan mengandung karakter sebanyak k.

Setelah melakukan parsing k-gram langkah berikutnya adalah menghitung nilai hashing. Melakukan proses Hashing terhadap seluruh pecahan string tadi yang telah dibagi menjadi k bagian.

Setelah menghitung nilai hashing langkah berikutnya adalah melakukan pencocokan nilai hash atau hash matching.


(70)

Gambar 3.3 Activity Menghitung Nilai Similaritas

Untuk lebih jelas mengenai proses menghitung nilai similaritas maka akan diperlihatkan contoh kasus dan cara menghitungnya dengan cara manual sebagai berikut:

Ekstrak Dokumen

String Tokenizing

Parsing K-Gram Hashing

Matching

Tampilkan hasil Masukan Dokumen


(71)

Contoh kasus

Teks asli: Saya Dennis Teks uji: Saya Ahmad 1. Tokenizing

Setelah dilakukan tokenizing kalimatnya akan menjadi seperti ini. Teks asli: sayadennis

Teks uji: sayaahmad

2. Parsing K-Gram

Pembagian kalimat berdasarkan K-Gram. K-Gram = 4

Maka kalimat akan menjadi potongan seperti dibawah ini: Tabel perbandingan teks asli dan teks uji.

Teks Asli no substring

1 saya 2 ayad 3 yade 4 aden 5 denn 6 enni 7 nnis

Teks Uji no substring

1 saya 2 ayaa 3 yaah 4 aahm 5 ahma 6 hmad


(72)

3. Hashing

Merupakan proses pengubahan karakter ke bilangan hash. Untuk melakukan pengubahan tersebut menggunakan rumus (II.1) sebagai berikut.

H = C1 * a(k-1) + C2 * a(k-2) + C3 * a(k-3) … + Ck * a0

Pola : “saya”

Bill_hash dari say = s * 103 + a * 102 + y * 101 + a * 100

= 115*1000 + 97*100 + 121*10 + 97*1 = 115000 + 9700 + 1210 + 97

= 126007

Pola : “ayad”

Bill_hash dari say = a * 103 + y * 102 + a * 101 + d * 100

= 97*1000 + 121*100 + 97*10 + 100*1 = 97000+ 12100 + 970 + 100

= 110170

Pola : “yade”

Bill_hash dari say = y * 103 + a * 102 + d * 101 + e * 100

= 121*1000 + 97*100 + 100*10 + 101*1 = 121000 + 9700 + 1000 + 101


(73)

Dengan cara yang sama dilakukan pencarian nilai hash terhadap semua pola karakter satu demi satu.

Dengan melakukan perhitungan yang sama terhadap kalimat yang telah di K-Gram maka didapat nilai hasing sebagai berikut:

Tabel perbandingan teks asli dan teks uji setelah nilai hash didapatkan.

Keterangan : nilai hash yang sama.

Setelah nilai hash didapat semua, kemudian dicari nilai hash yang sama dari kedua dokumen. Seperti nilai hash yang ditandai warna hijau pada tabel di atas.

4. Pencocokan Nilai Hashing

Setelah itu dihitung ada berapa jumlah hash yang sama. Dengan cara

Teks Asli

no substring Hash

1 saya 126007

2 ayad 110170

3 yade 131801

4 aden 108120

5 denn 111310

6 enni 113205

7 nnis 122165

Teks Uji

no substring Hash

1 saya 126007

2 ayaa 110167

3 yaah 131774

4 aahm 107849

5 ahma 108587

6 hmad 115970


(74)

mencocokan satu demi satu.

Tabel pencocokan nilai hash.

126007 = 126007

126007 ≠ 110167

126007 ≠ 131774

126007 ≠ 107849

126007 ≠ 108587

126007 ≠ 115970

110170 ≠ 126007

110170 ≠ 110167

110170 ≠ 131774

110170 ≠ 107849

110170 ≠ 108587

110170 ≠ 115970

Dengan cara yang sama dilakukan pencocokan terhadap semua nilai hash satu demi satu.

5. Pengukuran Nilai Similaritas s =


(75)

=

= 0,153846

Untuk mendapatkan persentase similaritas, kalikan dengan persen, jadi tingkat kesamaan dari teks yang di uji = 15.3846 %.

3.1.3 Analisis Kebutuhan Non Fungsional

Analisis kebutuhan non-fungsional merupakan proses indentifikasi dan evaluasi mengenai kebutuhan sistem maupun pengguna, sehingga diharapkan aplikasi yang dibangun berjalan dengan baik.

3.1.3.1Analisis Perangkat Lunak (Software)

Kebutuhan software merupakan kebutuhan akan perangkat lunak yang digunakan untuk membangun program aplikasi pengukuran tingkat similaritas dokumen ini. Diantaranya kebutuhan tersebut adalah :

1. Sistem operasi berbasis windows, yang akan digunakan adalah sistem operasi

Windows 7 Ultimate.

2. Tools/bahasa pemrograman, yang akan digunakan adalah Java Programming.

3.1.3.2Analisis Perangkat Keras (Hardware)

Dalam perancangan aplikasi tingkat similaritas dokumen ini menggunakan komputer (PC) dengan spesifikasi:

1. Prosesor Core 2 Duo CPU E4500 @2.20 GHz


(76)

3. Monitor 17”, Motherboard dan keyboard.

3.1.3.3Analisis Pengguna

Terdapat 2 pengguna di dalam sistem yang akan di buat ini yaitu :

1. Visitor

2. Admin

Pengguna inilah yang akan menjadi aktor dalam analisis ataupun perancangan yang memiliki tugasnya masing-masing, Visitor merupakan pengguna yang hanya menggunakan aplikasi ini hanya sebagai user. Visitor dapat memilih jenis Scan yang akan digunakan dan kemudian memilih atau memasukkan dokumen yang akan dibandingkan dan kemudian melihat hasilnya yaitu berapa persen tingkat kesamaan dokumen yang dibandingkan. Sedangkan seorang admin berperan sebagai pengolahan berbagai kegiatan yang ada pada aplikasi seperti mengelola admin dan mengelola dokumen.

3.1.4 Analisis Kebutuhan Fungsional

Analisis kebutuhan fungsional akan membahas perancangan sistem di dalam aplikasi. Perancangan sistem adalah penggambaran, perancangan dan pembuatan sketsa. Pada tahap ini, tools/alat bantu yang digunakan untuk menganalisis sistem adalah UML (Unified Modelling Language ).

3.1.4.1Use Case Diagram


(77)

disini ada 2 yaitu admin dan visitor, dimana admin bisa mengelola admin dan mengelola dokumen sedangkan visitor bisa melakukan quick scan dan normal scan dokumen.

3.1.4.2Definisi Aktor

Kebutuhan fungsional Merupakan kebutuhan yang harus dimiliki oleh perangkat lunak yang akan dibangun. Kebutuhan fungsional dalam aplikasi di bagi menjadi 2 bagian. Yaitu bagian pengguna (visitor) dan admin. Kebutuhan fungsional tersebut akan dideskripsikan dalam bentuk Tabel, sebagai berikut:

1. Kebutuhan Fungsional Admin Admin

Kode Kebutuhan Fungsional

ADM-01 Login sebagai Admin

ADM-02 Penyajian Profil

ADM-03 Pengelolaan Admin

ADM-04 Pengelolaan Dokumen

ADM-05 Pengelolaan Subdokumen

Tabel 3.1 Kebutuhan Fungsional Admin

2. Kebutuhan Fungsional Visitor Visitor

Kode Kebutuhan Fungsional


(78)

VST-02 Normal scan similaritas dokumen

VST-03 Pengaturan parameter

VST-04 Info bantuan

Tabel 3.2 Kebutuhan Fungsional Visitor

3.1.4.3Definisi Use Case

Diagram Use Case digunakan untuk memodelkan bisnis proses

berdasarkan perspektif pengguna sistem. Use case diagram terdiri atas diagram untuk use case dan actor. Actor merepresentasikan orang yang akan mengoperasikan atau orang yang berinteraksi dengan sistem aplikasi, sesuai analisis aktor, maka use case diagramnya memiliki 2 aktor yaitu visitor dan admin.

Gambar 3.4 Use Case Diagram

Syst em Login Adm in

Adm in

Penyaj ian Profil

Pengelolaan Adm in

Pengelolaan Dokum en

Pengelolaan Subdokum en

Visit or

Pemindaian Dokumen

Pengat uran Param et er

I nfo Bant uan

Quick Scan Sim ilarit as Dokumen


(79)

3.1.4.4Definisi Skenario

Skenario merupakan penjelasan mengenai jalan cerita / alur dari masing-masing use case.

1. Admin

a. Login

Identifikasi

Nomor ADM-01

Nama Login

Tujuan Memasuki aplikasi sebagai admin.

Deskripsi Proses memasuki aplikasi sebagai admin.

Aktor Admin

Skenario Utama

Kondisi Awal

Form login telah aktif. Admin belum melakukan login.

No Aksi Aktor No. Reaksi Sistem

1. Masukkan

username dan

password, klik “Login”.

2. Sistem validasi username dan password dengan data yang ada di database.

3. Sistem menampilkan menu “Manage


(80)

Kondisi Akhir Admin telah berhasil login dan menu “Manage Document” aktif. Eksepsi Jika username dan password tidak sesuai, muncul pesan bahwa

login gagal.

Tabel 3.3 Skenario Login

b. Lihat Profil

Identifikasi

Nomor ADM-02

Nama Penyajian Profil

Tujuan Menampilkan profil admin yang login

Deskripsi Proses menampilkan profil admin yang sedang login.

Aktor Admin

Skenario Utama

Kondisi Awal Admin telah berhasil login.

No Aksi Aktor No. Reaksi Sistem

1. Klik “Home”.

2. Sistem memuat (load) profil admin dari

database, dan menyajikannya. Kondisi Akhir Profil admin tampil di halaman home admin.

Eksepsi -

Tabel 3.4 Skenario Lihat profil

c. Kelola Admin

Identifikasi


(81)

Nama Pengelolaan Admin

Tujuan Mengelola data admin.

Deskripsi Proses menampilkan list admin untuk kemudian mengelolanya.

Aktor Admin

Skenario Utama

Kondisi Awal Menu “Manage Admin” telah aktif.

No Aksi Aktor No. Reaksi Sistem

1. Klik “Manage

Admin”.

2. Sistem memuat (load) admin dari database, dan menyajikannya.

Kondisi Akhir Data admin telah tampil dalam bentuk list

Eksepsi -

Tabel 3.5 Skenario Kelola Admin

d. Input Admin

Identifikasi

Nomor ADM-03-1

Nama Input Admin

Tujuan Menambah data admin.

Deskripsi Proses menambahkan data admin yang baru ke database.

Aktor Admin

Skenario Utama


(82)

No Aksi Aktor No. Reaksi Sistem

1. Klik “Add Admin”.

2. Sistem menyajikan form input admin. 3. Input admin baru.

4. Admin yang baru telah disimpan di database. Kondisi Akhir Admin telah diinputkan di database.

Eksepsi Jika pengisian field pada form tidak sesuai aturan, muncul pesan bahwa dokumen tidak berhasil diinputkan.

Tabel 3.6 Skenario Input Admin

e. Edit Admin

Identifikasi

Nomor ADM-03-2

Nama Edit Admin

Tujuan Mengedit data admin tertentu.

Deskripsi Proses mengedit data admin tertentu.

Aktor Admin

Skenario Utama

Kondisi Awal Halaman kelola admin telah aktif. List dokumen telah ditampilkan.

No Aksi Aktor No. Reaksi Sistem

1. Klik “Edit”.

2. Sistem menyajikan form edit admin berikut data admin yang akan diedit.


(83)

3. Edit data admin sesuai kebutuhan, klik “Update”.

4. Sistem update admin di database, munculkan pesan proses edit berhasil.

Kondisi Akhir Data admin tertentu telah diupdate di database.

Eksepsi Jika pengisian field pada form tidak sesuai aturan, muncul pesan proses edit gagal.

Tabel 3.7 Skenario Edit Admin

f. Hapus Admin

Identifikasi

Nomor ADM-03-3

Nama Hapus Admin

Tujuan Menghapus data admin tertentu.

Deskripsi Proses menghapus data admin tertentu dari database.

Aktor Admin

Skenario Utama

Kondisi Awal Halaman kelola admin telah aktif. List dokumen telah ditampilkan.

No Aksi Aktor No. Reaksi Sistem

1. Klik “Hapus”.

2. Sistem menyajikan form konfirmasi hapus data admin.


(84)

3. Konfirmasi hapus data admin.

4. Sistem menghapus data admin tertentu dari

database.

Kondisi Akhir Data admin tertentu telah dihapus dari database.

Eksepsi Jika data admin sedang digunakan, muncul pesan bahwa data admin masih digunakan.

Tabel 3.8 Skenario Hapus Admin

g. Kelola Dokumen

Identifikasi

Nomor ADM-04

Nama Pengelolaan Dokumen

Tujuan Mengelola data dokumen.

Deskripsi Proses menampilkan list dokumen untuk kemudian mengelolanya.

Aktor Admin

Skenario Utama

Kondisi Awal Menu “Manage Document” telah aktif.

No Aksi Aktor No. Reaksi Sistem

1. Klik “Manage

Document”.

2. Sistem memuat (load) data dokumen dari

database, dan menyajikannya. Kondisi Akhir Data dokumen telah tampil dalam bentuk list


(85)

Eksepsi -

Tabel 3.9 Skenario Kelola Dokumen

h. Input Dokumen

Identifikasi

Nomor ADM-04-1

Nama Input Dokumen

Tujuan Menambah data dokumen.

Deskripsi Proses menambahkan data dokumen yang baru ke database.

Aktor Admin

Skenario Utama

Kondisi Awal Halaman kelola dokumen telah aktif.

No Aksi Aktor No. Reaksi Sistem

1. Klik “Add

Document”.

2. Sistem menyajikan form input dokumen.

3. Input data

dokumen baru.

4. Data dokumen yang baru telah disimpan di

database.

Kondisi Akhir Data dokumen telah diinputkan di database.

Eksepsi Jika pengisian field pada form tidak sesuai aturan, muncul pesan bahwa data dokumen tidak berhasil diinputkan.


(86)

i. Edit Dokumen

Identifikasi

Nomor ADM-04-2

Nama Edit Dokumen

Tujuan Mengedit data dokumen tertentu.

Deskripsi Proses mengedit data dokumen tertentu.

Aktor Admin

Skenario Utama

Kondisi Awal Halaman kelola dokumen telah aktif. List dokumen telah ditampilkan.

No Aksi Aktor No. Reaksi Sistem

1. Klik “Edit”.

2. Sistem menyajikan form edit dokumen berikut data dokumen yang akan diedit.

3. Edit data dokumen sesuai kebutuhan, klik “Update”.

4. Sistem update data dokumen di database, munculkan pesan proses edit berhasil.

Kondisi Akhir Data dokumen tertentu telah diupdate di database.

Eksepsi Jika pengisian field pada form tidak sesuai aturan, muncul pesan proses edit gagal.


(87)

j. Hapus Dokumen

Identifikasi

Nomor ADM-04-3

Nama Hapus Dokumen

Tujuan Menghapus data dokumen tertentu.

Deskripsi Proses menghapus data dokumen tertentu dari database.

Aktor Admin

Skenario Utama

Kondisi Awal Halaman kelola dokumen telah aktif. List dokumen telah ditampilkan.

No Aksi Aktor No. Reaksi Sistem

1. Klik “Hapus”.

2. Sistem menyajikan form konfirmasi hapus data dokumen.

3. Konfirmasi hapus

data dokumen.

4. Sistem menghapus data dokumen tertentu dari

database.

Kondisi Akhir Data dokumen tertentu telah dihapus dari database.

Eksepsi Jika data dokumen masih digunakan, muncul pesan bahwa data dokumen masih digunakan.


(1)

CLASS

 

DIAGRAM

SubDocument

db : Database conn : Connection stmt : Statement vectorSubDocument : Vector insert : Integer edit : Integer delete : Integer

getSubDocumentList(document_id) : Vector searchSubDocument(document_id, keyword) : Vector insertSubDocument(vectorSubDocument) : Integer editSubDocument(vectorSubDocument) : Integer deleteSubDocument(subdocument_id) : Integer

Admin

db : Database conn : Connection stmt : Statement vectorAdmin : Vector insert : Integer edit : Integer delete : Integer getAdminList() searchAdmin(base, keyword) insertAdmin(admin) updateAdmin(admin) deleteAdmin(admin_id)

Document

db : Database conn : Connection stmt : Statement vectorDocument : Vector insert : Integer edit : Integer delete : Integer getDocumentList() : Vector searchDocument(document_name) : Vector insertDocument(document_name) : Integer updateDocument(vectorDocument) : Integer deleteDocument(document_id) : Integer

SubDocumentContent

SubDocumentContent(content)

Login

db : Database conn : Connection stmt : Statement result : Integer doLogin(username, password) : Integer

AddSubDocumentForm

vectorDocument : Vector insert : Integer

AddSubDocumentForm(vectorDocument) submitSubDocument()

EditSubDocumentForm

vectorDocument : Vector vectorSubDocument : Vector update : Integer

EditSubDocumentForm(vectorDocument, vectorSubDocument) updateSubDocument()

SubDocumentList

vectorDocument : Vector vectorSubDocumentsData : Vector SubDocumentList(vectorDocument) showSubDocumentList(idx, subdocument_name) showSubDocumentContent(content) editSubDocument(vecsubdoc) deleteSubDocument(subdocument_id)

LoginForm

LoginForm() doLogin()

PlagiarismDocumentApp

main(args)

ProfilForm

ProfileForm() setDetailAdmin() editProfile()

PlagiarismDocumentAboutBox

PlagiarismDocumentAboutBox()

EditAdminForm

index : Integer vectorAdmin : Vector EditAdminForm() editAdmin()

AddAdminForm

insert : Integer AddAdminForm() submitAdmin()

AdminList

vectorAdmin : Vector AdminList() showAdminList(idx, base, keyword) searchAdmin() addAdmin() editAdmin(vecadmin) deleteAdmin(admin_id)

SettingParameter

KGRAM : Integer

BASISHASH : Integer

THRESHOLD : Double

SettingParameter()

updateParameter()

resetParameter()

PlagiarismDocumentView

isLogin : Boolean showHome() showLogin() showDocumentList() doLogout() quickScanDocument() normalScanDocument() settingParameter() showAboutBox()

AddDocumentForm

insert : Integer AddDocumentForm() submitDocument()

EditDocumentForm

edit : Integer EditDocumentForm(vectorDocument) editDocument()

DocumentList

vectorDocumentsData : Vector DocumentList() showDocumentList(idx, document_name) searchDocument() addDocument() showSubDocumentList(vecDoc) editDocument(vecDoc) deleteDocument(document_id)

QuickScanDocumentForm

rk1 : RabinKarp

rk2 : RabinKarp

rk3 : RabinKarp

percentage : Double

vectorResult : Vector

QuickScanDocumentForm()

scanDocument()

RabinKarp

kgram

basishash

filename

filecontent

vectorHash

extractFile()

getFileName()

stringSanitizer()

getFileContent()

hashing(filecontent)

rollingHash(text)

getHashValue()

getNGramText()

matching(vectorHash1, vectorHash2)

0..* 1 0..* 1

NormalScanDocumentForm

rk1 : RabinKarp

rk2 : RabinKarp

rk3 : RabinKarp

percentage : Double

vectorResult : Vector

NormalScanDocumentForm()

processNormalScanning()

0..* 1 0..* 1

ResultOfScanning

vectorResult : Vector

ResultOfScanning()

0..* 1 0..* 1 1 0..* 1 0..*


(2)

(3)

(4)

KESIMPULAN

 

DAN

 

SARAN

KESIMPULAN:

1.

Aplikasi Pengukuran Tingkat Similaritas Dokumen

sudah cukup mudah digunakan.

2.

Performansi dari aplikasi sudah cukup cepat untuk

memproses atau menjalankan fungsinya.

3.

Aplikasi

ini

belum

mampu

optimal

membantu

memudahkan proses mendeteksi tindakan plagiarisme

pada dokumen di Perguruan Tinggi.

4.

Dalam beberapa kondisi tertentu algoritma Rabin

Karp

belum dapat secara tepat mengukur tingkat similaritas

dokumen sehingga diperlukan algoritma lain yang lebih

baik lagi.


(5)

KESIMPULAN

 

DAN

 

SARAN

SARAN:

1.

Aplikasi ini diharapkan dapat diterapkan di sekolah

atau di kampus dalam memeriksa similaritas

dokumen.

2.

Aplikasi ini akan lebih bagus lagi jika diterapkan

tidak hanya menggunakan satu algoritma.

3.

Aplikasi ini akan lebih bagus lagi jika bisa

menentukan persamaan makna

sinonim

kata.


(6)

TERIMA

 

KASIH