• Tidak ada hasil yang ditemukan

Sistem Pengukuran Tingkat Similaritas Dokumen

N/A
N/A
Protected

Academic year: 2017

Membagikan "Sistem Pengukuran Tingkat Similaritas Dokumen"

Copied!
199
0
0

Teks penuh

(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

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

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

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

(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

(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

(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

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

(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 client–server).

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

(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

(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

(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

(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

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

(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

(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

(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

(32)
[image:32.612.211.437.114.405.2]

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

(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

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

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

[image:36.612.281.379.419.618.2]
(37)

2. One-to-many (1:M). Relationship ini terjadi bila setiap instansi entitas dapat

[image:37.612.258.362.198.415.2]

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

(38)
[image:38.612.292.386.112.307.2]

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})

(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

(40)
[image:40.612.144.494.118.322.2]

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

(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

(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

(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

(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

(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

(48)

Berikut adalah contoh class diagram:

[image:48.612.181.474.140.587.2]
(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 :

[image:49.612.133.468.385.678.2]
(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

(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

(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

[image:53.612.245.412.114.394.2]
(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

(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)

(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:

(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

(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

(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

(67)

yang lainnya. Selain itu hasil yang diperoleh belum tentu akurat, karena

hasil perbandingan yang didapat hanya perkiraan saja dan tanpa

[image:67.612.218.405.184.404.2]

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

(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

(70)
[image:70.612.282.367.130.505.2]

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

(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

[image:71.612.174.396.442.685.2]

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

(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

[image:73.612.157.478.262.545.2]

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

(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 qu

Gambar

Gambar 2.4 Algoritma Rabin-Karp
Gambar 2.6 (a) Relationship berderajat dua (b) Relationship berderajat tiga
Gambar 2.8 Hubungan 1:M (one-to-many)
Gambar 2.9 Hubungan M:N (many-to-many)
+7

Referensi

Dokumen terkait

SISTEM PENDETEKSI PLAGIAT PADA DOKUMEN TEKS BERBASIS DATABASE MENGGUNAKAN METODE

Dengan keterbatasan sumber daya dan kondisi aplikasi sistem otomasi yang kompleks di perpustakaan saat ini, diperlukan sebuah model untuk mengukur tingkat

Triawati, Chandra 2009, Metode Pembobotan Statistical Concept Based untuk Klastering dan Kategorisasi Dokumen Berbahasa Indonesia, Institut Teknologi Telkom

Tingkat akurasi precision , recall , dan F-Measure pada penggunaan metode K-Nearest Neighbor (K-NN) dan Chi-Square pada klasifikasi teks bahasa Indonesia pada dokumen

Analisis ini digunakan untuk mengukur tingkat keeratan hubungan antara semua variabel bebas ( aspek dokumen kontrak, aspek metode pelaksanaan, aspek sistem organisasi,

3.2.1 Tingkat efesiensi penggunaan energi Metode yang digunakan untuk mengukur tingkat efesiensi penggunaan energi adalah dengan mengukur daya listrik yang digunakan pada

Berdasarkan latar belakang diatas, maka dibuat Sistem Pakar untuk Mengukur Tingkat Stres Pada Mahasiswa Tingkat Akhir dengan Metode Forward Chaining Berbasis Web un- tuk

Penelitian ini dilakukan dengan tujuan untuk mengukur tingkat kepuasan pengguna dalam hal ini adalah para wajib pajak dalam menggunakan sistem informasi DJP