• Tidak ada hasil yang ditemukan

DETEKSI PLAGIARISME SOURCE CODE BERBASIS ABSTRACT SYNTAX TREE

N/A
N/A
Protected

Academic year: 2021

Membagikan "DETEKSI PLAGIARISME SOURCE CODE BERBASIS ABSTRACT SYNTAX TREE"

Copied!
13
0
0

Teks penuh

(1)

DETEKSI PLAGIARISME SOURCE CODE

BERBASIS ABSTRACT SYNTAX TREE

TUGAS AKHIR

Sebagai Persyaratan Guna Meraih Gelar Sarjana Strata 1 Teknik Informatika Universitas Muhammadiyah Malang

SETIYA PUTRA UTAMA

201210370311278

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS MUHAMMADIYAH MALANG

2016

(2)

i

LEMBAR PENGESAHAN

DETEKI PLAGIARISME SOURCE CODE BERBASIS ABSTRACT

SYNTAX TREE

TUGAS AKHIR

Sebagai Persyaratan Pengajuan Judul Tugas Akhir Teknik Informatika Universitas Muhammadiyah Malang

Disusun Oleh :

SETIYA PUTRA UTAMA 201210370311278

Tugas Akhir ini telah diuji dan dinyatakan lulus melalui sidang majelis penguji pada Tanggal 28 Juli 2016.

Menyetujui

Penguji I Penguji II

Gita Indah M., S.T, M. Kom. Eko Budi C., S.Kom, M.Kom.

NIP. 108.0611.0442 NIP. 108.9504.0330

Mengetahui

Ketua Jurusan Teknik Informatika

Yuda Munarko, S.Kom, M.Sc. NIP. 108.0611.0443

(3)

ii

LEMBAR PERSETUJUAN

DETEKI PLAGIARISME SOURCE CODE BERBASIS ABSTRACT

SYNTAX TREE

TUGAS AKHIR

Sebagai Persyaratan Pengajuan Judul Tugas Akhir Teknik Informatika Universitas Muhammadiyah Malang

Menyetujui

Pembimbing I Pembimbing II

Yufis Azhar, S.Kom, M.Kom. Yuda Munarko, S.Kom, M.Sc.

(4)

v

LEMBAR

PERNYATAAN

Yang bertanda tangan di bawah ini :

Nama : SETIYA PUTRA UTAMA NIM : 201210370311278

Fakultas/ Jurusan : TEKNIK / INFORMATIKA

Dengan ini saya menyatakan bahwa Tugas Akhir dengan judul “DETEKI

PLAGIARISME SOURCE CODE BERBASIS ABSTRACT SYNTAX TREE”

beserta seluruh isinya adalah karya saya sendiri dan bukan merupakan karya tulis orang lain, baik sebagian maupun seluruhnya, kecuali dalam bentuk kutipan yang telah disebutkan sumbernya.

Demikian surat pernyataan ini saya buat dengan sebenar-benarnya. Apabila kemudian ditemukan adanya pelanggaran terhadap etika keilmuan dalam karya saya ini maka saya siap menanggung segala bentuk resiko / sanksi yang berlaku.

Malang, 18 Juli 2016 Yang Membuat Pernyataan

Setiya Putra Utama NIM. 201210370311278

Mengetahui

Pembimbing I Pembimbing II

Yufis Azhar, S.Kom, M.Kom. Yuda Munarko, S.Kom, M.Sc.

(5)

vi

LEMBAR PERSEMBAHAN

Puji syukur kepada Allah SWT atas rahmat dan karunia-Nya sehingga penulis dapat menyelesaikan Tugas Akhir ini. Serta shalawat dan salam selalu tercurahkan kepada junjungan Nabi besar Muhammad SAW beserta sahabat, keluarga dan umatnya. Penulis menyampaikan ucapan terima kasih yang tak terhingga kepada :

1. Bapak Yuda Munarko, S.Kom, M.Sc selaku ketua jurusan Teknik Informatika Universitas Muhammadiyah Malang

2. Bapak Yufis Ashar, S.Kom, M.Kom dan Bapak Yuda Munarko, S.Kom, M.Sc selaku pembimbing Tugas Akhir

3. Semua Dosen pengajar serta Staf di jurusan Teknik Informatika yang membantu dan memberikan bekal ilmu pengetahuan

4. Ibunda Rantiyani, Amd. Keb dan Ayahanda Djoko Pitono yang telah memberikan dukungan, semangat, motivasi, kasih sayang, materi dan doa yang tiada hentinya, serta saudara dan adik saya Dhinisya Dwi Putri Lestari yang selalu bertanya “Kapan Lulus?”

5. Keluarga Besar UKM Radio UMMfm yang selalu memberi dukungan, doa, motivasi serta dedikasi yang saya dapatkan

6. Serta teman – teman yang telah membantu proses penyelesaian Tugas Akhir ini

(6)

vii

KATA PENGANTAR

Alhamdulillah, segala Puji bagi Allah SWT yang telah memberikan rahmat dan petunjuk serta kelancaran jalan sehingga penulis dapat menyelesaikan penelitian Tugas Akhir yang berjudul “DETEKSI PLAGIARISME SOURCE

CODE BERBASIS ABSTRACT SYNTAX TREE”.

Pada penelitian ini, dibuat suatu sistem Deteksi Plagiarisme Source Code berbasis Abstract Syntax Tree dengan menggunakan Algoritma Leveinshtein

Distance dan Cosine Similarity. Penulis berharap dengan dibuatnya sistem ini

dapat membantu mengurangi dan menekan tindakan plagiarisme atau penjiplakan yang terjadi pada dunia programming khususnya bahasa pemrograman Java.

Penulis menyadari bahwa penelitian ini masih jauh dari kesempurnaan. Oleh karena itu, penulis mengharapkan kritik dan saran yang membangun untuk pengembangan kedepannya. Semoga Tugas Akhir ini dapat memberikan manfaat bagi semua pihak, khususnya bagi jurusan Teknik Informatika.

Akhir kata penulis mengucapkan terima kasih kepada semua pihak yang telah membantu hingga Tugas Akhir ini terselesaikan.

Malang, 18 Juli 2016

(7)

viii

DAFTAR ISI

LEMBAR PENGESAHAN ... i

LEMBAR PERSETUJUAN ... ii

LEMBAR PERNYATAAN ... iii

ABSTRACT ... iv

LEMBAR PERSEMBAHAN ... vi

KATA PENGANTAR ... vii

DAFTAR ISI ... viii

DAFTAR GAMBAR ... xi

DAFTAR TABEL ... xii

BAB I PENDAHULUAN ... 1 1.1 Latar Belakang ... 1 1.2 Rumusan Masalah ... 3 1.3 Tujuan ... 3 1.4 Batasan Masalah ... 4 1.5 Metodologi Penelitian ... 4 1.5.1 Studi Pustaka ... 4 1.5.2 Preprocessing ... 4

1.5.2.1 File menggunakan format .java (dot java) ... 4

1.5.2.2 Mengubah file .java (dot java) kedalam bentuk AST ... 4

1.5.2.3 Case – Folding (Comment) ... 4

1.5.2.4 Tokenizing ... 5

1.5.2.5 Formalization ... 5

1.5.3 Processing ... 5

1.5.3.1 Perbandingan AST dari file java ... 5

(8)

ix

1.5.3.3 Cosine Similarity (Comment) ... 5

1.5.3.4 Threshold ... 5

1.5.4 Desain System ... 6

1.5.5 Pengujian dan Evaluasi ... 7

1.6 Sistematika Penulisan ... 8

1.6.1 BAB I (Pendahuluan) ... 8

1.6.2 BAB II (Tinjauan Pustaka) ... 8

1.6.3 BAB III (Analisa Masalah dan Penyelesaian Masalah) ... 8

1.6.4 BAB IV (Implementasi dan Pengujian) ... 9

1.6.5 BAB V (Penutup) ... 9

BAB II TINJAUAN PUSTAKA ... 10

2.1 Plagiarisme ... 10

2.2 Data Mining ... 12

2.2.1 Pengertian Data Mining ... 12

2.2.2 Fungsi Data Mining ... 13

2.3 Abstract Syntax Tree ... 14

2.4 Algoritma Cosine Similarity ... 15

2.5 Algoritma Leveinshtein Distance ... 17

2.5.1 Pengertian Algoritma Leveinshtein Distance ... 17

2.5.2 Langkah – langkah Algoritma Leveinshtein Distance ... 18

2.5.3 Contoh Kasus Algoritma Leveinshtein Distance ... 20

2.5.4 Penggunaan Algoritma Leveinshtein Distance ... 22

2.6 Perhitungan Akhir ... 22

BAB III ANALISA DAN PERANCANGAN SYSTEM ... 23

3.1 Analisa Masalah ... 23

3.2 Analisa System ... 23

3.3 Analisa Data Masukan ... 26

(9)

x

3.5 Analisa Algoritma dan Perhitungan ... 30

3.5.1 Analisa Algoritma Cosine Similarity ... 30

3.5.2 Analisa Algoritma Leveinshtein Distance ... 31

3.5.3 Perhitungan Total ... 32

BAB IV IMPLEMENTASI DAN PENGUJIAN SYSTEM ... 34

4.1 Implementasi System ... 34

4.1.1 Implementasi Perangkat Keras ... 34

4.1.2 Implementasi Perangkat Lunak ... 34

4.1.3 Implementasi Pemanggilan Source dan Abstract Syntax Tree ... 35

4.1.4 Implementasi Algoritma Cosine Similarity ... 37

4.1.5 Implementasi Algoritma Leveinshtein Distance ... 38

4.2 Pengujian System ... 39

4.2.1 Pengujian Algoritma Cosine Similarity ... 40

4.2.1.1 Hasil Pengujian Algoritma Cosine Similarity ... 40

4.2.1.2 Skenario Algoritma Cosine Similarity ... 42

4.2.2 Pengujian Algoritma Leveinshtein Distance ... 43

4.2.2.1 Hasil Pengujian Algoritma Leveinshtein Distance ... 43

4.2.2.2 Skenario Algoritma Leveinshtein Distance ... 45

4.2.3 Penentuan Alpha dan Beta ... 45

4.2.4 Pengujian Penarikan Kesimpulan dan Ringkasan ... 46

4.2.4.1 Hasil Pengujian Penarikan Kesimpulan dan Ringkasan ... 46

4.2.4.2 Skenario Penarikan Kesimpulan dan Ringkasan ... 47

BAB V PENUTUP ... 49

5.1 Kesimpulan ... 49

5.2 Saran ... 50

DAFTAR PUSTAKA LAMPIRAN

(10)

xi

DAFTAR GAMBAR

Gambar 1.1 Alur System ... 6

Gambar 2.1 Contoh Source Code ... 14

Gambar 2.2 Contoh AST Program ... 15

Gambar 2.3 Algoritma Leveinshtein Distance ... 19

Gambar 3.1 Gambaran System ... 24

Gambar 3.2 Gambaran System Plagiarisme ... 25

Gambar 3.3 Contoh Source Code 1 ... 28

Gambar 3.4 Contoh Source Code 2 ... 28

Gambar 3.5 Hasil Pengambilan Comment ... 28

Gambar 3.6 Hasil Case-Folding ... 29

Gambar 3.7 Urutan Hasil Token Unik ... 30

Gambar 4.1 Pemanggilan Directory ... 35

Gambar 4.2 Parsing Directory ... 36

Gambar 4.3 Pemanggilan AST Comment ... 36

Gambar 4.4 Pemanggilan dan Formalization ... 37

Gambar 4.5 Pseudocode Algoritma Cosine Similarity ... 38

Gambar 4.6 Pseudocode Algoritma Leveinshtein Distance ... 38

Gambar 4.7 Pengujian Source code 1 ... 39

(11)

xii

DAFTAR TABEL

Tabel 2.1 Contoh kasus Cosine Similarity ... 16

Tabel 2.2 Sebelum Transformasi ... 20

Tabel 2.3 Setelah Transformasi ... 20

Tabel 2.4 Matriks Leveinshtein Distance ... 21

Tabel 3.1 Library yang digunakan ... 26

Tabel 3.2 Daftar isis Library ... 26

Tabel 3.3 Hasil Tokenizing Comment ... 29

Tabel 3.4 Inisialisasi Token ... 29

Tabel 3.5 Perhitungan Cosine Similarity ... 30

Tabel 3.6 Perhitungan Leveinshtein Distance ... 31

Tabel 3.7 Contoh Threshold ... 33

Tabel 4.1 Pengambilan Comment ... 41

Tabel 4.2 Proses Case-Folding ... 41

Tabel 4.3 Perhitungan Cosine Similarity ... 42

Tabel 4.4 Urutan Token Unik ... 43

Tabel 4.5 Struktur dan Inisialisasi token unik source code 1 ... 44

Tabel 4.6 Struktur dan Inisialisasi token unik source code 2 ... 44

Tabel 4.7 Perhitungan Gabungan Akhir ... 47

(12)

DAFTAR PUSTAKA

Andhika, Fatardhi R. 2010. Penerapan String Sugestion dengan Algoritma

Leveinshtein Distance dan Alternatif Algoritma lain dalam Aplikasi.

Bandung, Institut Teknologi Bandung.

Efraim, Turban. Reiner, Kelly R dan Potter, Rizhard. 2005. Introduction to

Information Technology. 3rd Edition. USA : John Willey & Sons, Inc.

Ilmy, Muhammad Bahari & Rahmi, Nitia. 2006. Penerapan Algoritma

Leveinshtein Distance untuk Mengoreksi Kesalahan Pengejaan pada Editor Teks. Institut Teknologi Bandung.

Jalal, A. F. D. & Presetya, Eka Budhy. 2014. Deteksi Similarity Source Code

Menggunakan Metode Deteksi Abstract Syntax Tree. Universitas

Muhammadiyah Jakarta.

Kurniawan, A. & Wicaksana, I Wayan S. 2008. Perbandingan Pendekatan

Deteksi Plagiarisme Dokumen dalam Bahasa Inggris. Universitas

Gunadarma.

Lilian. Budhi, Gregorius. Wibisono, A. & Tanojo, Ricky. 2012. Pengecekan

Plagiarisme pada Code Dalam Bahasa C++. Universitas Kristen Petra

Surabaya.

Makhfiyana, I. & Mudzakkir, M. 2014. Rasionalitas Plagiarisme di Kalangan

Mahasiswa Fakultas Ilmu Sosial Unesa, 3. Universitas Negri Surabaya.

Mutiara, Andika Benny & Agustina, Sinta. 2010. Anti Plagiarisme Application

With Algorithm Karp – Rabin at Thesis in Gunadarma University.

Gunadarma University.

Septian, Widi Tia. 2012. Diteksi Plagiat pada Dokument Text Menggunakan

(13)

Soelistyo, Hendry. 2011. Plagiarisme, Pelanggaran Hak Cipta dan Etika. Kanisius Jakarta.

Telnoni, Patrick Adolf. 2015. Perancangan Tools Pencegahan Serangan Drive By

Download dengan Kombinasi Plugin DeFusinator dan Abstract Syntax Tree.

Referensi

Dokumen terkait

Oleh karena itu dalam penulisan ini yang dibahas adalah mengenai aplikasi Museum Sangiran yang dilengkapi dengan deteksi QR Code yang dibuat agar informasi yang