• Tidak ada hasil yang ditemukan

TUGAS AKHIR PEMANFAATAN ALGORITMA RABIN-KARP UNTUK MENGETAHUI TINGKAT KEMIRIPAN DARI SOURCE CODE PADA PEMROGRAMAN LISP

N/A
N/A
Protected

Academic year: 2022

Membagikan "TUGAS AKHIR PEMANFAATAN ALGORITMA RABIN-KARP UNTUK MENGETAHUI TINGKAT KEMIRIPAN DARI SOURCE CODE PADA PEMROGRAMAN LISP"

Copied!
104
0
0

Teks penuh

(1)

i

TUGAS AKHIR

PEMANFAATAN ALGORITMA RABIN-KARP UNTUK MENGETAHUI TINGKAT KEMIRIPAN DARI SOURCE

CODE PADA PEMROGRAMAN LISP

UTILIZATION OF RABIN-KARP ALGORITHM TO DISCOVER SIMILARITY LEVEL OF SOURCE CODE IN

LISP PROGRAMMING

Diajukan sebagai syarat untuk memperoleh gelar sarjana komputer

Disusun Oleh :

NAMA :AHMAD AULIA WIGUNA

NIM :A11.2012.07320

Program Studi :Teknik Informatika-S1

FAKULTAS ILMU KOMPUTER UNIVERSITAS DIAN NUSWANTORO

SEMARANG 2015

(2)

ii

PERSETUJUAN SKRIPSI

Nama : Ahmad Aulia Wiguna

NIM : A11.2012.07320

Fakultas : Ilmu Komputer

Program Studi : Teknik Informatika-S1

Judul Tugas Akhir : Pemanfaatan Algoritma Rabin-Karp Untuk Mengetahui Tingkat Kemiripan Dari Source Code Pada Pemrograman LISP

Tugas akhir ini telah diperiksa dan disetujui Semarang, 19 Mei 2015

Menyetujui, Pembimbing

Ifan Rizqa, M.Kom

Mengetahui,

Dekan Fakultas Ilmu Komputer

Dr. Drs. Abdul Syukur, MM

(3)

iii

iii

PENGESAHAN DEWAN PENGUJI

Nama : Ahmad Aulia Wiguna

NIM : A11.2012.07320

Fakultas : Ilmu Komputer

Program Studi : Teknik Informatika-S1

Judul Tugas Akhir : Pemanfaatan Algoritma Rabin-Karp Untuk Mengetahui Tingkat Kemiripan Dari Source Code Pada Pemrograman LISP

Tugas akhir ini telah diujikan dan dipertahankan di hadapan Dewan Penguji pada Sidang tugas akhir tanggal 19 Mei 2015. Menurut pandangan kami, tugas akhir ini

memadai dari segi kualitas maupun kuantitas untuk tujuan penganugrahan gelar Sarjana Komputer (S.Kom)

Semarang, 19 Mei 2015

Dewan Penguji

Suprayogi, M.Kom Anggota 1

Umi Rosyidah, S.Kom, M.T Anggota 2

Wijanarto, M.Kom Ketua Penguji

(4)

iv

PERNYATAAN KEASLIAN SKRIPSI

Sebagai mahasiswa Universitas Dian Nuswantoro, yang bertanda tangan di bawah ini, saya:

Nama : Ahmad Aulia Wiguna

NIM : A11.2012.07320

Menyatakan bahwa karya ilmiah saya yang berjudul:

“PEMANFAATAN ALGORITMA RABIN-KARP UNTUK MENGETAHUI TINGKAT KEMIRIPAN DARI SOURCE CODE PADA PEMROGRAMAN LISP”

merupakan karya asli saya (kecuali ringkasan dan cuplikan yang masing-masing telah saya jelaskan sumbernya dan perangkat pendukung seperti server dll).

Apabila dikemudian hari, karya saya disinyalir bukan merupakan karya asli saya, yang disertai dengan bukti-bukti yang cukup, maka saya bersedia untuk dibatalkan gelar saya beserta hak dan kewajiban yang melekat pada gelar tersebut.

Demikian surat pernyataan ini saya buat dengan sebenarnya.

Dibuat di : Semarang Pada tanggal : 11 April 2014

Yang menyatakan

(Ahmad Aulia Wiguna)

(5)

v

v

PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS

Sebagai mahasiswa Universitas Dian Nuswantoro, yang bertanda tangan di bawah ini, saya:

Nama : Ahmad Aulia Wiguna

NIM : A11.2012.07329

demi mengembangkan Ilmu Pengetahuan, menyetujui untuk memberikan kepada Universitas Dian Nuswantoro Hak Bebas Royalti Non-Ekskusif (Non-exclusive Royalty-Free Right) atas karya ilmiah saya yang berjudul:

“PEMANFAATAN ALGORITMA RABIN-KARP UNTUK MENGETAHUI TINGKAT KEMIRIPAN DARI SOURCE CODE PADA PEMROGRAMAN LISP” serta perangkat yang diperlukan (bila ada). Dengan Hak Bebas Royalti Non-Eksklusif ini Universitas Dian Nuswantoro berhak untuk menyimpan, mengcopy ulang (memperbanyak), menggunakan, mengelolanya dalam bentuk pangkalan data (database), mendistribusikannya dan menampilkan / mempublikasikannya di internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya selama tetap mencantumkan nama saya sebagai penulis / pencipta. Saya bersedia untuk menanggung secara pribadi, tanpa melibatkan pihak Universitas Dian Nuswantoro, segala bentuk tuntutan hukum yang timbul atas pelanggaran Hak Cipta dalam karya ilmiah saya ini.

Demikian surat pernyataan ini saya buat dengan sebenarnya.

Dibuat di : Semarang Pada tanggal : 11 April 2014

Yang menyatakan

(Ahmad Aulia Wiguna)

(6)

vi

UCAPAN TERIMA KASIH

Segala puji dan syukur dipanjatkan kehadirat Allah SWT atas segala berkah, rahmat, dan hidayah-Nya sehingga karya ilmiah yang berjudul

"PEMANFAATAN ALGORITMA RABIN-KARP UNTUK MENGETAHUI TINGKAT KEMIRIPAN DARI SOURCE CODE PADA PEMROGRAMAN LISP” dapat diselesaikan dengan baik dan sesuai rencana. Atas dukungan dan bantuan dalam pengerjaan karya ilmiah ini, disampaikan ucapan terima kasih kepada:

1. Bapak Dr. Ir. Edi Noersasongko, M.Kom, selaku Rektor Universitas Dian Nuswantoro

2. Bapak Dr. Drs. Abdul Syukur, M.M, selaku Dekan Fakultas Ilmu Komputer Universitas Dian Nuswantoro

3. Bapak Heru Agus Santoso, Ph.D, selaku Kepala Program Studi Teknik Informatika Universitas Dian Nuswantoro

4. Bapak Ifan Rizqa, M.Kom, selaku pembimbing tugas akhir yang memberikan bimbingan terkait dengan karya ilmiah ini.

5. Dosen – dosen pengampu Universitas Dian Nuswantoro yang telah memberikan ilmu dan pengalaman yang dalam bermanfaat dalam pengerjaan karya ilmiah ini.

6. Kedua orang tua yang telah memberikan semangat dan do’a selama studi dan pengerjaan karya ilmiah ini.

7. Rekan – rekan kerja di PT Dinustek dan Laboratorium Dasar Fasilkom yang telah membagi ilmu dan bahan penelitian.

8. Dan pihak - pihak lainnya tidak bisa disebutkan satu persatu yang telah membantu dalam pengerjaan karya ilmiah ini.

Semoga Allah SWT melimpahkan berkah dan rahmat-Nya bagi kita semua.

Semoga karya ilmiah ini dapat bermanfaat bagi perkembangan ilmu pengetahuan terutama dalam bidang ilmu komputer.

Semarang , 11 April 2014

Penulis

(7)

vii

vii

HALAMAN RINGKASAN

Mata kuliah algoritma pemrograman merupakan mata kuliah yang wajib diajarkan di Program Studi Teknik Informatika Fakultas Ilmu Komputer Udinus Semarang.

Dalam kegiatan perkuliahan mata kuliah algoritma permrograman, mahasiswa mengumpulkan tugas harian kepada asisten dosen untuk dinilai. Dalam penilaian tidak dilihat tingkat kemiripan antar satu tugas dengan tugas lain karena belum ada perangkat lunak yang dapat mendeteksi kemiripan sehingga tidak dapat diketahui persentase kemiripan antar tugas mahasiswa. Untuk itu perlu dibuat sebuah aplikasi yang dapat mendeteksi persentase kemiripan source code tugas mahasiswa. Algoritma Rabin-Karp adalah salah satu algoritma yang dapat mendeteksi tingkat kemiripan berkas kode sumber tugas mahasiswa berakhiran lisp dengan berkas lainnya. Cara kerja Algoritma Rabin-Karp adalah membaca tiap substring dalam suatu kode sumber dan menghitung hash-nya. Hash suatu kode sumber dibandingkan dengan hash kode sumber lainnya sehingga tingkat kemiripan kode sumber-kode sumber tersebut dapat diketahui. Persentase yang dihasilkan dapat digunakan sebagai pertimbangan dalam memberikan nilai kepada mahasiswa yang bersangkutan

Kata kunci : UDINUS Semarang, algoritma pemrograman, plagiasi, Rabin-karp, aplikasi.

xiii + 91 halaman; 52 gambar; 32 tabel Daftar Acuan : 14 (2001-2013)

(8)

viii

DAFTAR ISI

PERSETUJUAN SKRIPSI ... ii  

PENGESAHAN DEWAN PENGUJI ... iii  

PERNYATAAN KEASLIAN SKRIPSI ... iv  

PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS ... v  

UCAPAN TERIMA KASIH ... vi  

HALAMAN RINGKASAN ... vii  

DAFTAR ISI ... viii  

DAFTAR GAMBAR ... x  

DAFTAR TABEL ... xii  

BAB 1 ... 1  

1.1   Latar Belakang ... 1  

1.2   Rumusan Masalah ... 3  

1.3   Batasan Masalah ... 4  

1.4   Tujuan Penelitian ... 4  

1.5   Manfaat Penelitian ... 5  

BAB II ... 6  

2.1   Tinjauan Studi ... 6  

2.2   Tinjauan Pustaka ... 7  

2.2.1   Plagiarisme ... 7  

2.2.2   Algoritma ... 8  

2.2.3   LISP ... 8  

2.2.4   Algoritma Rabin-Karp ... 9  

2.2.5   Aplikasi Berbasis Web ... 13  

2.2.6   Web Engineering ... 13  

2.2.7   PHP ... 15  

BAB III ... 16  

3.1   Jenis dan Lokasi Penelitian ... 16  

3.2   Variabel dan Sampel Penelitian ... 16  

(9)

ix

ix

3.3   Sumber Data ... 16  

3.3.1   Data Primer ... 16  

3.3.2   Data Sekunder ... 17  

3.4   Metode Pengumpulan Data ... 17  

3.5   Ruang Lingkup Penelitian ... 18  

3.6   Tahap Pengembangan Sistem ... 19  

3.7   Metode Deteksi Kesamaan Kode Sumber ... 24  

BAB IV ... 26  

4.1   Formulasi ... 26  

4.2   Perencanaan ... 27  

4.3   Analisis ... 30  

4.4   Engineering ... 54  

4.5   Implementasi ... 62  

4.5.1   Implementasi basis data ... 62  

4.5.2   Implementasi sistem ... 67  

4.5.3   Implementasi Algoritma Rabin-Karp ... 73  

BAB V ... 77  

5.1   Hasil Penelitian ... 77  

5.2   Pembahasan ... 86  

BAB VI ... 88  

6.1   Kesimpulan ... 88  

6.2   Saran ... 88  

DAFTAR PUSTAKA ... 90    

(10)

x

DAFTAR GAMBAR

Gambar 2. 1 Diagram Proses WebE (sumber: [13]) ... 13  

Gambar 3. 1 Kode Sumber LISP hasil pekerjaan mahasiswa ... 16

Gambar 4 1 Proses Bisnis Mahasiswa ... 31  

Gambar 4 2 Proses Bisnis Dosen dan Asisten ... 32  

Gambar 4 3 Proses Bisnis Admin ... 33  

Gambar 4 4 Use case system ... 34  

Gambar 4 5 Diagram aktifitas admin ... 44  

Gambar 4 6 Diagram aktifitas mahasiswa ... 45  

Gambar 4 7 Diagram aktifitas dosen ... 46  

Gambar 4 8 Diagram aktifitas asisten ... 47  

Gambar 4 9 Class diagram sistem ... 48  

Gambar 4 10 Diagram sequence login ... 50  

Gambar 4 11 Diagram sequence unggah berkas ... 51  

Gambar 4 12 Diagram sequence ambil berkas ... 52  

Gambar 4 13 Diagram sequence hitung kemiripan ... 53  

Gambar 4 14 Navigasi admin ... 54  

Gambar 4 15 Navigasi dosen ... 54  

Gambar 4 16 Navigasi asisten ... 55  

Gambar 4 17 Navigasi mahasiswa ... 55  

Gambar 4 18 Relasi antar tabel ... 60  

Gambar 4 19 Antarmuka dosen ... 61  

Gambar 4 20 Antarmuka mahasiswa ... 61  

Gambar 4 21 Implementasi tabel users ... 62  

Gambar 4 22 Implementasi tabel roles ... 62  

Gambar 4 23 Implementasi tabel roles_permission ... 63  

Gambar 4 24 Implementasi tabel permissions ... 63  

Gambar 4 25 Implementasi tabel context ... 63  

Gambar 4 26 Implementasi tabel modules ... 64  

Gambar 4 27 Implementasi tabel ms_mahasiswa ... 64  

(11)

xi

xi

Gambar 4 28 Implementasi tabel ms_asisten ... 64  

Gambar 4 29 Implementasi tabel ms_dosen ... 65  

Gambar 4 30 Implementasi tabel ms_matakuliah ... 65  

Gambar 4 31 Implementasi tabel ms_kelas ... 65  

Gambar 4 32 Implmentasi tabel upload ... 66  

Gambar 4 33 Implementasi tabel configurations ... 66  

Gambar 4 34 Implementasi halaman login ... 67  

Gambar 4 35 Implementasi sistem yang diakses mahasiswa ... 68  

Gambar 4 36 Implementasi sistem yang diakses dosen atau asisten ... 69  

Gambar 4 37 Antarmuka halaman master kelas ... 70  

Gambar 4 38 Antarmuka halaman master dosen ... 70  

Gambar 4 39 Antarmuka halaman master mata kuliah ... 71  

Gambar 4 40 Antarmuka halaman master asisten ... 71  

Gambar 4 41 Antarmuka halaman master mahasiswa ... 72  

Gambar 4 42 Antarmuka halaman aktifasi pengguna ... 72  

Gambar 4 43 Contoh string ... 73  

Gambar 4 44 String yang spasinya dihilangkan ... 73  

Gambar 4 45 String yang diuji ... 74  

Gambar 4 46 String yang diuji yang sudah dihilangkan spasinya ... 75

Gambar 5. 1 Hasil Uji Coba Penerapan Algoritma Rabin-Karp ... 81  

Gambar 5. 2 Isi Berkas Pembanding ... 82  

Gambar 5. 3 Isi Berkas Yang Dibandingkan ... 82  

Gambar 5. 4 Antarmuka Saat Pengujian Berkas ... 83  

(12)

xii

DAFTAR TABEL

Tabel 4. 1 Peran Orang Terkait Sistem ... 29  

Tabel 4. 2 Tabel Fungsi dan Fasilitas Sistem ... 29  

Tabel 4. 3 Daftar Pelaku Bisnis ... 30  

Tabel 4. 4 Use case aktifasi pengguna ... 36  

Tabel 4. 5 Use case analisa dokumen ... 37  

Tabel 4. 6 Use case upload berkas ... 38  

Tabel 4. 7 Use case upload berkas ... 39  

Tabel 4. 8 Use case manajemen data dosen ... 40  

Tabel 4. 9 Use case manajemen data asisten ... 41  

Tabel 4. 10 Use case manajemen data kelas ... 42  

Tabel 4. 11 Use case manajemen mahasiswa ... 43  

Tabel 4. 12 Rancangan kelas sistem ... 49  

Tabel 4. 13 Struktur tabel configuration ... 55  

Tabel 4. 14 Struktur tabel context ... 56  

Tabel 4. 15 Struktur tabel module ... 56  

Tabel 4. 16 Struktur tabel ms_asisten ... 57  

Tabel 4. 17 Struktur tabel ms_dosen ... 57  

Tabel 4. 18 Struktur tabel ms_kelas ... 57  

Tabel 4. 19 Struktur tabel ms_mahasiswa ... 58  

Tabel 4. 20 Struktur tabel ms_matakuliah ... 58  

Tabel 4. 21 Struktur tabel permissions ... 58  

Tabel 4. 22 Struktur tabel role permission ... 59  

Tabel 4. 23 Struktur tabel roles ... 59  

Tabel 4. 24 Struktur tabel upload ... 59  

Tabel 4. 25 Struktur tabel users ... 60  

Tabel 4. 26 Tabel substring dan hash berkas pembanding ... 74  

Tabel 4. 27 Tabel substring dan hash berkas yang diuji ... 75  

Tabel 5. 1 Tabel Hasil Perhitungan Oleh Sistem ... 77  

Tabel 5. 2 Tabel Perbandingan Hasil Perbandingan ... 80  

(13)

xiii

xiii

Tabel 5. 3 Tabel Pengujian Berkas ... 83   Tabel 5. 4 Hasil Pengujian Black Box ... 84   Tabel 5. 5 Waktu Pembuatan Berkas ... 87  

(14)

1

BAB 1

PENDAHULUAN

1.1 Latar Belakang

Dalam bidang pendidikan Teknik Informatika, pemrograman merupakan salah satu mata kuliah wajib yang diajarkan. Belajar pemrograman berbeda dengan belajar bahasa pemrograman. Belajar pemrograman adalah belajar tentang strategi, metodologi, sistematika pemecahan masalah kemudian menuliskannya dalam suatu notasi.

Sedangkan belajar bahasa pemrograman adalah belajar memakai suatu bahasa, aturan sintaks, instruksi, pengoperasian compiler atau interpreter pada mesin tertentu [1]. Pembelajaran pemrograman yang terdiri dari kegiatan menyusun algoritma dan belajar memprogram selalu ada pada kurikulum program studi yang berkonsentrasi pada teknologi dan sistem informasi. Tujuan diberikannya mata kuliah Pemrograman adalah agar mahasiswa dapat membuat suatu program yang dapat melakukan perhitungan atau “pekerjaan” sesuai keinginan pemrogram. Dalam silabus dan satuan acara pengajaran Sekolah Teknik Elektro dan Informatika ITB kurikulum 2013-2018 dijelaskan bahwa mata kuliah dasar pemrograman berfungsi untuk mengenalkan konsep fundamental pemrograman:

abstraksi, dekomposisi problem, modularisasi, rekurens; skill/praktek pemrograman skala kecil (aspek koding) sedangkan mata kuliah Algoritma dan Struktur Data bermanfaat untuk menanamkan pemahaman konsep algoritma dan struktur data yang umum dipakai di bidang informatika atau ilmu komputer.

Pendekatan dalam pemrograman disebut sebagai paradigma.

Beberapa diantaranya adalah prosedural, fungsional, deklaratif, konkuren, dan OOP (Object Oriented Programming). Program fungsional harus diolah lebih banyak daripada program prosedural oleh interpreter-nya.

Bahasa pemrograman yang mendukung paradigm ini contohnya adalah LISP. Dalam pemrograman, salah satu hal yang dilakukan adalah

(15)

2

menyusun notasi algoritma. Ada 3 (tiga) cara dalam menyusun algoritma yaitu [2] 1) Merumuskan langkah-langkah pemecahan masalah melalui kalimat yang terstruktur secara logis, 2) Menggabungkan kalimat dengan penggalan statements yang ada di suatu bahasa pemrograman. Biasa disebut sebagai pseudo code, 3) Menggunakan diagram alir (flow chart).

Saat ini sudah ada metode yang dapat digunakan untuk melacak kesamaan source code atau notasi algoritma. Salah satunya [3] adalah penelitian Sevtian Agus Prasetyo pada tahun 2013 berjudul Deteksi Plagiarisme Source Code Berbasis SIM Dengan Metode Perbaikan Coding Models Algorithm, penelitian tersebut menjelaskan tentang teknik deteksi kode sumber program dalam perkuliahan dasar pemrograman. Penelitian tersebut berfokus pada pelacakan persentase kesamaan antara 2 (dua) atau lebih kode sumber program bahasa C pada kuliah dasar pemrograman dan struktur data dengan menggunakan perangkat lunak SIM yang dikombinasikan dengan metode perbaikan Coding Models Algorithm.

Fokus dari penelitian ini adalah pemrograman fungsional.

Pemrograman fungsional didasari oleh oleh konsep pemetaan dan fungsi matematika. Dalam paradigma ini, tidak lagi dipermasalahkan tentang alokasi memori, struktur data, variable. Kemudian, obyek penelitian adalah kode sumber LISP pada perkuliahan algoritma pemrograman (fungsional) di Laboratorium Dasar Fasilkom Udinus. Dalam perkuliahan, mengumpulkan tugas adalah suatu rutinitas. Dengan banyaknya mahasiswa yang mengikuti kuliah algoritma pemrograman tentunya akan banyak tugas yang dikumpulkan dimana masing-masing tugas tersebut memiliki tujuan yang sama berdasarkan penugasan. Hal ini dapat meningkatkan resiko terjadinya plagiasi tugas.

Berkas source code LISP yang dijadikan obyek penelitian diperlakukan sebagai berkas teks biasa. Ada beberapa metode dan algoritma yang dapat dipakai untuk mendeteksi plagiasi dokumen teks.

Dalam penelitian berjudul “Deteksi Plagiat Dokumen Menggunakan Algoritma Rabin-Karp” oleh Hari Bagus Firdaus pada tahun 2008,

(16)

dijelaskan tentang teknik mendeteksi plagiat dokumen menggunakan algoritma Rabin-Karp dimana algoritma tersebut bekerja dengan cara membandingkan nilai hash string masukan dan substring pada teks yang diuji [4]. Algoritma lain yang dapat dipakai untuk mendeteksi plagiasi adalah algoritma Winnowing dimana algoritma ini mengubah rangkaian N-Gram dokumen yang diuji menjadi kumpulan hash. N-Gram adalah urutan potongan kata atau karakter sejumlah n buah [5].

Dalam penelitian ini , algoritma Rabin-Karp yang dikombinasikan dengan rolling hash akan diimplementasikan dalam pembuatan aplikasi yang berguna untuk mendeteksi dan mengetahui tingkat plagiasi kode sumber LISP yang dikerjakan oleh mahasiswa saat perkuliahan di Laboratorium Dasar Fakultas Ilmu Komputer Udinus Semarang. Aplikasi yang dibuat berfungsi untuk mengetahui tingkat kemiripan dokumen yang dikumpulkan oleh para mahasiswa dengan salah satu dokumen yang dijadikan sampel. Hasil pengujian berupa persentase kemiripan antara dokumen yang diuji dengan dokumen sampel agar dijadikan pertimbangan untuk memberikan nilai pada mahasiswa.

Pengumpulan tugas dilakukan dengan cara diunggah ke server lokal di Labdas Fasilkom Udinus. Dalam aplikasi administrator di server, tidak terdapat fasilitas untuk memeriksa pekerjaan mahasiswa yang berupa LISP sehingga untuk mengetahui kemiripan sebuah berkas source code atau membuktikan dugaan bahawa source code tersebut hasil mencontek atau copy paste biasa dilakukan secara manual. Untuk itu dengan diselesaikannya penelitian ini, diharapkan penulis dapat menghasilkan sebuah karya yang dapat membantu pelaksana kuliah pemrograman di Labdas Fasilkom Udinus dalam melaksanakan tugasnya dalam mengajarkan dan memberi nilai kepada para mahasiswa.

1.2 Rumusan Masalah

Dari paparan masalah diatas, maka rumusan masalah dapat diuraikan menjadi “belum adanya aplikasi deteksi plagiasi source code LISP di

(17)

4

lingkungan Fakultas Ilmu Komputer Universitas Dian Nuswantoro Semarang”.

1.3 Batasan Masalah

Mengingat ada bermacam-macam metode deteksi plagiasi dan agar penelitian lebih terarah sesuai dengan yang diharapkan, maka ruang lingkup perancangan aplikasi deteksi dokumen pemahaman modul dibatasi pada hal berikut :

1. Algoritma yang digunakan adalah algoritma Rabin-Karp dengan rolling hash.

2. Aplikasi yang dibuat adalah aplikasi berbasis web (serverside) yang dibangun menggunakan bahasa PHP dan Javascript.

3. Berkas yang digunakan dalam implementasi adalah kode sumber LISP berekstensi LISP dalam perkuliahan algoritma pemrograman di lingkungan Laboratorium Dasar Fasilkom Universitas Dian Nuswantoro Semarang.

4. Perangkat yang difungsikan sebagai server adalah server virtual di lingkungan Universitas Dian Nuswantoro yang diletakkan di data centre Dinustek.

5. Hasil yang ditampilkan berupa presentase kemiripan antara berkas yang dijadikan contoh dan berkas yang diuji.

1.4 Tujuan Penelitian

Tujuan dari penelitian ini adalah untuk membangun sebuah aplikasi deteksi plagiat yang menggunakan algoritma Rabin-Karp dengan Rolling-Hash dan dapat diterapkan di Laboratorium Dasar Fasilkom Udinus. Aplikasi tersebut dapat digunakan dalam sistem operasi Windows dan atau Linux karena berbasis web. Hasil akhir yang diperoleh dapat digunakan untuk mengetahui tingkat plagiasi yang dilakukan mahasiswa terhadap berkas source code LISP sehingga bisa dijadikan acuan dalam memberikan nilai kepada mahasiswa yang bersangkutan.

(18)

1.5 Manfaat Penelitian

Manfaat penelitian ini adalah memberikan keluaran kepada institusi berupa manuskrip sebagai referensi pustaka untuk penulisan karya ilmiah lain dan aplikasi berbasis web untuk mendeteksi kemiripan source code LISP pada perkuliahan Algoritma Pemrograman (Fungsional) untuk memberikan pertimbangan lebih dalam memberikan nilai kepada para mahasiswa

(19)

6

BAB II

LANDASAN TEORI

2.1 Tinjauan Studi

Penelitian yang sebelumnya pernah dilakukan dan relevan dengan penelitian ini salah satunya adalah penelitian oleh Diana Purwitasari, Putu Yuwono Kusmawan, Umi Laili Yuhana yang berjudul “Deteksi Keberadaan Kalimat Sama sebagai Indikasi Penjiplakan dengan Algoritma Hashing Berbasis N-Gram”. Penelitian tersebut membahas tentang cara mendeteksi kalimat yang sama sebagai hasil copy-paste.

Menggunakan algoritma Winnowing. Dalam penelitian tersebut ada beberapa hal dasar [5] yang harus dipenuhi oluh algoritma tersebut yaitu 1) Pencarian kalimat tidak boleh terpengaruh oleh spasi atau ruang kosong, jenis huruf, tanda baca 2) Mengabaikan kata yang pandek dan jarang digunakan 3) pencarian kesamaan kata tidak boleh terpengaruh oleh posisi karakter atau string dengan kata lain bahwa suatu string harus dapat dikenali meskipun berada pada posisi yang berbeda.

Penelitian lain yang relevan adalah yang dilakukan oleh Sevtian Agus Prasetyo berjudul “Deteksi Plagiarisme Source Code berbasis SIM dengan Metode Perbaikan Coding Models Algorithm”. Penelitian ini berfokus pada deteksi plagiarism kode sumber bahasa C dengan menggunakan perangkat bantu SIM yang disempurnakan dengan perbaikan coding models algorithm. Keluaran yang dihasilkan adalah presentase kemiripan antara file kode sumber bahasa C yang diuji dengan file kode sumber bahasa C yang dijadikan contoh.

Pada penelitian yang disusun oleh penulis, obyek penelitian difokuskan pada dokumen pseudocode yang dibuat oleh mahasiswa sebelum mereka menulis kode sumber program. Dari hasil pengujian pada suatu dokumen dibandingkan dengan dokumen yang dijadikan contoh, akan diketahui persentase kemiripan satu sama lain sehingga dapat

(20)

dijadikan pertimbangan bagi dosen atau asisten dosen dalam memberikan penilain kepada mahasiswa yang bersangkutan.

2.2 Tinjauan Pustaka 2.2.1 Plagiarisme

Pengertian plagiat seperti yang dijelaskan dalam peraturan Menteri Pendidikan Nasional Republik Indonesia Nomor 17 Tahun 2010 [6] adalah tindakan mengutip sebagian atau seluruh karya pihak lain dan diakui sebagai karya ilmiahnya tanpa mencantumkan sumber yang tepat dan memadai dalam upaya memperoleh nilai suatu karya ilmiah. Menurut Dody Hartanto (2012) plagiat merupakan bagian dari menyontek yang diartikan sebagai tindakan mengambil sebagian karya atau ide orang lain.

Sedangkan menurut Sudigdo (2007) plagiat adalah tindakan menyerahkan atau menyajikan ide atau kalimat orang lain tanpa menyertakan sumbernya. [7].

Masih menurut Sudigdo (2007), tingkatan plagiarism berdasar persentase jumlah kata adalah kurang dari sama dengan 30% untuk kategori plagiarisme ringan, 30-70% . untuk kategori plagiarisme sedang, dan lebih dari 70% untuk kategori plagiarisme berat. Sebelum era web plagiasi dilakukan dengan cara mekanis, ditulis dengan tangan, namun setelah era web plagiasi dilakukan dengan cara cut paste atau copy paste pada dokumen dimana dalam kasus ini para pelajar memiliki pandangan bahwa lebih dari 80%

hal yang sudah diterbitkan dapat dicari di internet. (Ercegovac, 2010). Berdasarkan hal tersebut maka diperlukan metode yang dapat digunakan untuk mengetahui tingkat plagiarisme yang dilakukan pelajar sehingga pada persentase tertentu dinyatakan sebagai dokumen plagiat dan dapat dijadikan dasar bagi pengajar untuk menolak dokumen tersebut.

(21)

8

2.2.2 Algoritma

Algoritma adalah sebentuk langkah-langkah yang didefinisikan dengan baik untuk menyelesaikan suatu masalah [8].

Menurut Vina Sagita dalam jurnalnya yang berjudul “Studi Perbandingan Implementasi Algoritma Boyer-Moore, Turbo Boyer-Moore, dan Tuned Boyer-Moore dalam Pencarian String”

kata algoritma berasal dari nama ilmuwan Islam asal Uzbekistan Abu Ja’far Muhammad bin Musa Al-Khuwaizmi (780-846 M) [9].

Pada abad ke 18 isitilah algoritma berkembang kepada hal yang mencakup semua langkah yang jelas dan diperlukan untuk menyelesaikan suatu permasalahan. Dalam diktat algoritma pemrograman prosedural Institut Teknologi Bandung [10]

dijelaskan bahwa pengertian algoritma adalah suatu deskripsi yang terdiri dari suatu pola, dinyatakan dalam primitif, yaitu aksi-aksi yang didefinisikan dan diberi nama, serta diasumsikan bahwa pola- pola tersebut dapat dikerjakan sehingga dapat menyebabkan kejadian yang dapat diamati.

2.2.3 LISP

LISP atau List Processing adalah suatu bahasa pemrograman yang dirancang oleh John McCarthy untuk computer IBM740. LISP disusun pada tahun 1956-1958 dan baru diimplementasikan pada tahun 1959. LISP termasuk bahasa ekspresi, karena program dan datanya dinyatakan dalam bentuk ekspresi simbolik atau disebut juga dengan Ekspresi-S. Ekspresi ini ditulis dengan notasi fungsional berbentuk prefix. Dalam LISP, operator disebut juga fungsi sedangkan operannya dapat disebut sebagai parameter. Notasi di LISP dituliskan sebagai berikut (<operator> <operan> <operan>). Dari notasi tersebut dapat diambil pengertian bahwa dalam sebuah ekspresi, operator dituliskan mendahului operannya, contohnya adalah penjumlahan

(22)

angka 2 dan 3. Ekspresinya adalah (+ 2 3) dimana operator tambah mendahului operannya, yaitu angka 2 dan angka 3.

2.2.4 Algoritma Rabin-Karp

2.2.4.1 Pengertian Algoritma Rabin-Karp

Algortima Rabin-Karp adalah algoritma pencarian string yang ditemukan oleh Michael Rabin dan Richard Karp. Karakteristik dari algoritma ini adalah 1) menggunakan fungsi hashing 2) fase preprocessing menggunakan kompleksitas waktu O(m) 3) Untuk fase pencarian kompleksitasnya adalah O(mn) 4) Waktu yang diperlukan : O(m+n).

Prinsip algoritma Rabin-Karp adalah melakukan hashing untuk menghitung nilai pola dan menemukan potongan string dalam suatu teks, jika nilai hash yang didapat berbeda dari nilai hash yang diujikan, maka algoritma akan menghitung lagi hash dari teks sepanjang m.

Hash adalah sekumpulan nilai dengan panjang tetap yang berasal dari teks dengan panjang teks beragam dan biasa digunakan otentifikasi data [11]. Fungsi untuk menghasilkan nilai hash disebut fungsi hash, sedangkan nilai yang dihasilkan disebut nilai hash. Dalam mencari kesamaan string, algoritma Rabin-Karp menggunakan rolling hash dalam menghasilkan fingerprint dari tiap substring dalam suatu string sebanyak k karakter. String inputan akan dikelompokkan menjadi substring dengan panjang m karakter, kemudian substring berikutnya didapat dengan cara maju 1 karakter dari substring sebelumnya dan membuang karakter pertama dari substring sebelumnya.

Tiap substring disebut K-Gram. Untuk menghitung

(23)

10

kemiripan string inputan dengan string contoh, dapat digunakan Dice Similarity Coeficients

2.2.4.2 Preprocessing

Teks yang akan diuji biasanya memiliki beberapa noise seperti breaking space ataupun non-breaking space.

Untuk itu harus dilakukan proses preprocessing. Namun dalam penelitian ini, yang dijadikan obyek adalah file LISP dimana didalamnya mengandung bayak simbol dan huruf biasa digunakan sebagai variable. Untuk itu semua karakter akan diikutkan dalam pemeriksaan sehingga tahap preprocessing yang dilakukan adalah hanya menghilangkan breaking space ataupun non-breaking space. Contohnya adalah diberikan string inputan sebagai berikut :

(

* 2 ( + 3 4 5) )

Sehingga hasil dari preprocessing yang didapat adalah (*2(+345)) , terlihat bahwa breaking space ataupun non- breaking space dihilangkan dalam proses ini

2.2.4.3 Hashing

Hashing adalah suatu teknik untuk merubah suatu string menjadi suatu nilai dengan panjang tertentu yang bersifat unik . Fungsi hash adalah cara untuk menciptakan sidik jari dari string inputan yang dinamakan hash value.

Contoh sederhana hashing menggunakan nilai ascii karakter adalah :

udinus = 117 + 100 + 105 + 110 + 117 + 115 = 664

(24)

contoh diatas adalah hashing pada teks alfabet 26 huruf, apabila tidak di-hash maka pencocokan akan dilakukan per karakter dimana ada 266 kemungkinan di kata “udinus” (26 kemungkinan pangkat 6 karakter) . Namun setelah dilakukan hash hanya akan didapat 103 kemungkinan.

Algoritma Rabin-Karp akan menganggap 2 buah string sama jika keduanya memiliki hash value yang sama.

2.2.4.4 Rolling Hash

Algoritma Rabin-Karp menggunakan rolling hash untuk mencari string yang sama. Rolling hash melakukan perhitungan hash dengan cara mengambil substring dalam suatu string sebanyak k karakter. String inputan akan dikelompokkan menjadi substring dengan panjang m karakter kemudian dihitung hash-nya berdasar nilai ASCII dari tiap karakter, rumus menghitung hash adalah

Dimana c adalah nilai ASCII karakter , b adalah basis, dan k adalah banyak karakter. Untuk menghitung hash berikutnya adalah dengan mengurangkan nilai hash dengan perhitungan di karakter pertama kemudian menjumlahkan dengan perhitungan karakter setelah karakter terakhir pada substring yang sedang dihitung. Simulasi perhitungannya adalah misal diberikan inputan string “dian” dengan m sebanyak 3 karakter. Nilai hash substring pertama (“dia”) adalah : 100 +105 + 97 = 304 , untuk menghitung hash dari substring selanjutnya , maka dapat dilakukan dengan cara

H = (d + i + a) – d + n = 304 – 100 + 110 = 314.

(25)

12

2.2.4.5 ASCII

ASCII (American Standar Code for Information Interchange) adalah sebuah standar pengkodean yang menempatkan angka numeric pada karakter, huruf, angka, dan tanda baca lainnya.ASCII memiliki komposisi bilangan biner sebanyak 7 bit namun selalu disimpan sebanyak 8 bit dengan menambahkan 0 di bit tertinggi. ASCII menyediakan 256 kode yang dibagi ke dalam 128 karakter dari karakter 0 (heksadesimal 00H, karakter NULL) sampai karakter 127 (heksadesimal 7FH, karakter DELETE) dengan menggunakan 7 bit. Jika diperluas sampai 8 bit, akan menghasilkan karakter ke 128 (heksadesimal 0080) sampai karakter 255 (heksadesimal FFH).

2.2.4.6 Dice Similarity Coeficients

Untuk menghitung kemiripan dapat digunakan Dice Similarity Coeficients [12] dengan cara menghitung jumlah K-Gram yang digunakan pada kedua dokumen yang diuji.

Nilai kemiripan tersebut dapat dihitung dengan rumus :

dimana S adalah nilai kemiripan, C adalah jumlah K-Gram yang sama dan A serta B masing-masing adalah jumlah K- Gram dari masing-masing string yang diujikan. Hasil yang didapat adalah bilangan dari 0 sampai 100 dimana bilangan tersebut adalah persentase kemiripan 2 string yang diujikan.

(26)

2.2.5 Aplikasi Berbasis Web

Aplikasi berbasis web adalah perangkat lunak yang dibangun berdasarkan standar dari World Wide Web Consortium (W3C). Aplikasi berbasis web dibagi menjadi 2 (dua) [13] yaitu aplikasi web dinamis dan statis. Web statis adalah web dimana script halaman harus dirubah untuk merubah kontennya, sedangkan web dinamis adalah web dimana perubahan dalam halaman web dilakukan tanpa merubah script program. Arsitektur aplikasi berbasis web meliputi klien, web server, middleware, dan basis data. Contoh middleware adalah bahasa pemrograman server side seperti PHP, ASP, JSP

2.2.6 Web Engineering

Web Engineering atau WebE adalah suatu model rekayasa perangkat lunak yang digunakan untuk pengembangan aplikasi web berkualitas tinggi yang memiliki konsep berdasarkan rekayasa perangkat lunak [13]. Tahapan dari web engineering dimulai dari memformulasikan masalah yang akan diselesaikan oleh aplikasi, kemudian proyek direncanakan serta kebutuhan aplikasi dianalisa.

Kemudian dilanjutkan dengan merancang arsitektur, navigasi, serta antarmuka aplikasi. Tahapan WebE dijelaskan dalam gambar di bawah ini

Gambar 2. 1 Diagram Proses WebE (sumber: [13])

(27)

14

a. Formulation

Formulation adalah tahap mencari tahu masalah yang akan diselesaikan menggunakan aplikasi yang dibuat , siapa yang akan menggunakan aplikasi tersebut, serta bagaimana aplikasi dapat menyelesaikan masalah tersebut. Pada umumnya dalam tahap ini 2 macam sasaran yang dicapai [13] yaitu sasaran informasi dan sasaran aplikatif. Sasaran informasi menunjukkan tujuan untuk menampilkan konten kepada pengguna, sedangkan sasaran aplikatif menunjukkan kemampuan aplikasi web untuk melakukan tugas tertentu, b. Perencanaan

Perencanaan adalah tahap menggabungkan informasi dan perencanaan teknis yang dilakukan dengan cara mengidentifikasi perangkat lunak dan perangkat keras yang dibutuhkan.

c. Analisis

Analisis merupakan kelanjutan dari perencanaan. Dalam tahap ini. Ada 4 jenis analisis yang dilakukan dalam WebE yaitu :

- Analisis konten

Merumuskan konten apa saja yang akan ditampilkan oleh aplikasi. Yang termasuk konten diantaranya adalah teks, gambar, vide, dan audio.

- Analisis interaksi

Merumuskan interaksi pengguna dengan aplikasi berdasarkan hak akses pengguna.

- Analisa fungsional

Menjabarkan operasi yang akan terjadi dalam kaitannya dengan interaksi aplikasi dan pengguna.

- Analisa konfigurasi

(28)

Menjabarkan konfigurasi yang tepat agar aplikasi dapat berjalan sesuai dengan yang diharapkan baik konfigurasi perangkat lunak maupun perangkat keras.

d. Engineering

Hal-hal yang dilakukan dalam tahap ini mencakup desain konten, arsitektur, navigasi, antarmuka. Setelah semua desain selesai dikerjakan maka tahap selanjutnya adalah produksi.

e. Page Generation & Testing f. Customer Evaluation.

2.2.7 PHP

PHP merupakan akronim dari PHP : Hypertext Preprocessor. PHP merupakan bahasa scripting yang dapat dijalankan diberbagai platform sistem operasi dan biasa digunakan dalam membangun aplikasi web. PHP adalah script yang berjalan di server. Dalam penulisannya, script PHP ditulis di antara tag-tag HTML dengan diawali tanda “<?php ?>” , “<? ?>” , “<% %>”, atau “<script language=’php’></script>” dan disimpan dengan akhiran .php .

(29)

16

BAB III

METODE PENELITIAN

3.1 Jenis dan Lokasi Penelitian

Jenis penelitian adalah penelitian pembangunan sistem, yaitu membangun aplikasi pendeteksi kemiripan antar berkas kode sumber program dalam mata kuliah algoritma pemrograman pada laboratorium dasar komputer Udinus Semarang

3.2 Variabel dan Sampel Penelitian

Variabel adalah suatu informasi tertentu yang nilainya berubah- ubah. Variabel penelitian ini adalah tingkat kemiripan dokumen uji dengan dokumen yang dijadikan contoh. Contoh yang digunakan dalam penelitian ini adalah kode sumber yang dikumpulkan mahasiswa dalam proses belajar mengajar mata kuliah algoritma pemrograman di lingkungan laboratorium dasar komputer Udinus Semarang.

3.3 Sumber Data 3.3.1 Data Primer

Data primer adalah data yang diperoleh secara langsung dari sumber datanya yang berhubungan langsung dengan penelitian yang dilakukan. Data primer dalam penelitian ini adalah berkas lisp yang diunggah mahasiswa tiap perkuliahan algoritma pemrograman.

Gambar 3. 1 Kode Sumber LISP hasil pekerjaan mahasiswa

(30)

3.3.2 Data Sekunder

Data sekunder adalah data yang didapat dalam bentuk jadi atau siap pakai baik itu dari internet atau literatur, paper, jurnal penelitian yang sebelumnya pernah dibuat. Data sekunder dalam penelitian ini adalah :

a. Penelitian-penelitian mengenai metode-metode pendeteksian plagiarism seperti yang ditulis di Bab 2.

b. Jurnal yang membahas tentang algoritma rabin karp

c. Peraturan Menteri Pendidikan Nasional Republik Indonesia Nomor 17 Tahun 2010 tentang plagiarisme.

d. Sistematika penyusunan laporan ilmiah.

3.4 Metode Pengumpulan Data

Berikut ini merupakan metode pengumpulan data yang penulis gunakan dalam penelitian ini:

3.4.1 Studi Pustaka

Kepustakaan yang digunakan dalam penelitian ini adalah paper, buku elektronik, laporan penelitian. Data-data yang dikumpulkan dalam penelitian ini antara lain :

a. Beginning Algorithms [8]

b. Deteksi Plagiat Dokumen Menggunakan Algoritma Rabin- Karp. Jurnal Ilmu Komputer Dan Teknologi Informasi, Vol III No.2, Oktober 2003 [3]

c. Materi pemrograman PHP menggunakan framework Laravel beserta pemanfaatan fitur-fitur di dalamnya.

d. Teori-teori yang telah diuraiakan sebelumnya di Bab 2 Tinjauan Pustaka

3.4.2 Observasi

Aktifitas yang dilakukan penulis lakukan melakukan riset untuk mengamati proses pengumpulan tugas mata kuliah algoritma

(31)

18

pemrograman dan deteksi plagiarisme pada kode sumber lisp yang didapat. Hasil yang didapat dalam penelitian ini adalah seberapa besar prosentase kode sumber yang dianggap plagiat dibandingkan dengan kode sumber yang dijadikan contoh.

3.5 Ruang Lingkup Penelitian

Ruang lingkup penelitian adalah batasan-batasan yang diperlukan dalam pengumpulan data sebagai bahan analisis, perancangan sistem, mendefinisikan requirement sistem, membangun sistem serta implementasi kemada obyek penelitian. Ruang lingkup dalam penelitian ini adalah sebagai berikut :

3.5.1 Pendeteksian plagiarism menggunakan algoritma rabin-karp.

Pada penelitian ini, inti dari rancangan sistem yang dibuat adalah proses pendeteksian suatu kode sumber lisp dibandingkan dengan dokumen kode sumber yang dijadikan contoh sehingga menghasilkan persentase kemiripan antar dokumen. Proses perhitungan dilakukan oleh sistem dengan menggunakan algoritma Rabin Karp dengan rolling hash yang programnya ditulis menggunakan PHP. Persentase yang dihasilkan akan digolongkan dalam kategori ringan, sedang, berat seperti yang sudah dibahas di Bab 2 sub bab 2.2.1.

3.5.2 Penggunaan perangkat keras dan perangkat lunak

Untuk penggunaan perangkat keras, penulis menggunakan virtual private server yang dijalankan di dalam sebuah server fisik yang terletak di lingkungan Universitas Dian Nuswantoro. Penggunaan server dilakukan dengan pertimbangan performa yang lebih baik dibandingkan dengan sebuah komputer stand alone. Sedangkan perangkat lunak yang digunakan disesuaikan dengan aplikasi yang akan dibuat.

(32)

3.6 Tahap Pengembangan Sistem

Perancangan sistem dalam penelitian ini menggunakan metode WebE. Berikut ini adalah langkah-langkahnya :

3.6.1 Formulation

Dalam tahap ini didapati permasalahan yang akan diselesaikan oleh sistem adalah belum diketahuinya tingkat plagiasi antar kode sumber lisp dalam perkuliahan algoritma pemrograman, aplikasi yang dibangun akan menyelesaikan permasalahan tersebut dengan membaca kode sumber dan membandingkan kemiripan antar kode sumber, pengguna aplikasi adalah peserta kuliah algoritma pemrograman di labdas Fasilkom Udinus Semarang, asisten dosen, serta dosen mata kuliah tersebut. Kemudian goal yang ingin dicapai adalah bahan pertimbangan bagi dosen atau asisten dalam memberi nilai, keluaran aplikasi adalah persentase kemiripan antar kode sumber.

3.6.2 Perencanaan

1) Kebutuhan perangkat keras

Perangkat keras yang dibutuhkan dalam membangun sistem ini adalah

Server dengan virtual private server dengan spesifikasi prosesor Intel Xeon, RAM 6 GB, OS CentOS 6.

PC stand alone dengan spesifikasi prosesor Intel Core i5, RAM 4 GB.

• Printer untuk mencetak laporan.

2) Kebutuhan perangkat lunak

Kebutuhan perangkat lunak dalam membangun sistem ini adalah

Internet browser seperti Firefox, Chrome, Safari.

• Netbeans IDE.

• MySQL Workbench dan SQLYog

(33)

20

• Sistem operasi seperti Windows, Linux, atau Mac OS Web server Apache dan MySQL.

Paket PHP framework Laravel versi 4.1 . 3.6.3 Analisa

Setelah perencanaan selesai dilakukan, tahapan selanjutnya adalah analisa sistem, tahap yang dilakukan adalah sebagai berikut : 1) Proses bisnis

Pengguna melakukan sign in, sistem memproses permintaan dari mahasiswa, goal yang dicapai adalah halaman beranda, pengguna dapat memilih menu-menu yang disediakan. Menu untuk mahasiswa adalah menu

“mahasiswa” (data diri mahasiswa, daftar materi, unggah tugas), menu untuk dosen, asisten adalah menu “dosen”

(data diri dosen , daftar mahasiswa , daftar kelas) ,

“pelaporan” (hitung kemiripan), menu untuk admin adalah

“mahasiswa” , “dosen” , “master data” (master kelas, master dosen, master asisten, master mahasiswa, master mata kuliah) , dan “pelaporan”.

2) Use case diagram

Menggambarkan kemampuan sistem yang akan dijalankan oleh pengguna. Tahapan menyusun use case diagram dalam sistem ini adalah :

a. Menentukan Aktor

Aktor dalam sistem ini adalah admin, mahasiswa, dosen, dan asisten dosen.

b. Menentukan Use Case

Use case dalam sistem ini adalah memilih pertemuan kuliah, mengunggah kode sumber berakhiran lisp, memilih berkas yang diunggah sebagai berkas yang akan diuji, memilih berkas yang diunggah sebagai

(34)

pembanding, menghitung hitung persentase kemiripan antar berkas.

c. Menentukan Relationship antar aktor, aktor ke use case, use case ke use case.

3) Activity diagram

Tahapan menyusun activity diagram sistem ini :

a. Memisahkan bagan menjadi 4 yaitu admin, mahasiswa, dosen, dan asisten

b. Memetakan workflow admin

Alur kerja admin diawali dari menentukan tahun ajaran dan semester aktif, menentukan jumlah pertemuan dalam semester aktif, mengisi data perkuliahan di semester aktif, menentukan dosen dan asisten dosen untuk setiap mata kuliah.

c. Memetakan workflow mahasiswa

Alur kerja mahasiswa dimulai dari memilih pertemuan kuliah, kemudian mengunggah kode sumber.

d. Memetakan workflow dosen.

Alur kerja dosen dimulai dengan memilih pertemuan kuliah, memilih 1 berkas yang terunggah sebagai berkas uji, memilih berkas lain yang terunggah sebagai pembanding, memulai perhitungan kemiripan, mencetak laporan perhitungan.

e. Memetakan workflow asisten

Alur kerja asisten dimulai dengan memilih pertemuan kuliah, memilih 1 berkas yang terunggah sebagai berkas uji, memilih 1 berkas lain yang terunggah sebagai pembanding, memulai perhitungan kemiripan, mencetak laporan perhitungan.

4) Class diagram

(35)

22

Tahapan yang dilakukan dalam menyusun class diagram pada sistem ini diawali dari menentukan nama class berdasarkan use case diagram. Class yang akan dibuat dalam sistem ini adalah

a. class admin

Dalam class admin atributnya adalah id , nama_lengkap, dan default_module. Kemudian operation-nya adalah simpan_dosen() , edit_dosen() , hapus_dosen() , simpan_mahasiswa() , edit_mahasiswa() , hapus_mahasiswa() , simpan_asisten() , edit_asisten() , hapus_asisten() , simpan_matakuliah() , edit_matakuliah() , hapus_matakuliah() , simpan_kelas() , edit_kelas() , hapus_kelas() , tambah_user() , edit_user() , hapus_user() , edit_profil() .

b. class mahasiswa

Dalam class mahasiswa atributnya adalah id , nim , nama_lengkap, dan default_module. Kemudian operation-nya adalah upload() , edit_profil().

c. class dosen

Dalam class dosen atributnya adalah id , npp , nama_lengkap, dan default_module. Kemudian operation-nya adalah pilih_dokumen() , perhitungan(), edit_profil().

d. class asisten

Dalam class asisten atributnya adalah id , nickname , nama_lengkap, dan default_module. Kemudian operation-nya adalah pilih_dokumen() , perhitungan(), edit_profil().

e. class dokumen.

(36)

Dalam class dokumen atributnya adalah id , dokumen_sample() , dokumen_diuji(), status_dokumen.

Kemudian operation-nya adalah upload(), soft_delete() , set_primary(), set_secondary() , read_string(),_space(), get_gram_hash(), hitung_persentase (),

5) Sequence diagram

Tahapan yang dilakukan dalam menyusun sequence diagram dalam sistem ini dimulai dari menentukan aktor yang terlibat berdasarkan use case diagram yang sebelumnya sudah dibuat yaitu admin, dosen, asisten, dan mahasiswa. Kemudian menentukan class-class yang digunakan serta operasi-operasi didalamnya. Setelah aktor dan class ditentukan, kemudian tahap selanjutnya adalah menyusun sequence diagram.

3.6.4 Engineering

Dalam tahap ini, proses yang dilakukan adalah : 1) Desain navigasi

Navigasi dirancang berdasarkan role pengguna. Menu yang tersedia untuk masing-masing pengguna dibedakan berdasarkan hak akses

2) Desain database

Merancang Entity Relationship Diagram dan Enhanced Entity Relationship, kemudian rancangan basis data diekspor menjadi basis data menggunakan MySQL Workbench dilanjutkan dengan menyusun kamus data.

3) Desain antarmuka aplikasi

Mendesain antarmuka aplikasi antara lain antarmuka halaman utama, halaman pendeteksian, antarmuka admin, dosen, dan halaman laporan.

(37)

24

3.6.5 Page Generation and Testing

Sistem dibangun dengan bahasa pemrograman PHP dengan framework Laravel dan ditulis menggunakan aplikasi Netbeans IDE. Database menggunakan MySQL versi 5.4 . Halaman aplikasi dibuka menggunakan web browser seperti Mozilla Firefox atau Google Chrome. Keseluruhan sistem dibuat berdasarkan rancangan yang telah dibuat sebelumnya. Dalam tahap pengujian, penulis akan melakukan 2 pengujian. Yang pertama adalah pengujian aplikasi untuk memastikan tidak ada bug dalam penulisan kode dan untuk memastikan agar perilaku sistem berjalan sesuai dengan rancangan. Kemudian pada pengujian tahap kedua, penulis akan mencocokkan keluaran yang diberikan oleh sistem dengan hasil perhitungan manual.

3.6.6 Customer Evaluation

Setelah tahap pengujian selesai dan sistem dinyatakan dapat dipakai, maka tahap selanjutnya adalah meminta evaluasi pada pengguna di lingkungan laboratorium dasar FIK Udinus Semarang dengan cara menyebarkan kuisioner yang berisi pertanyaan tentang sistem yang dibuat.

3.7 Metode Deteksi Kesamaan Kode Sumber

Berikut merupakan alur pendeteksian kode sumber lisp menggunakan algoritma Rabin-Karp. Dua berkas dijadikan contoh pengujian yang hasilnya adalah persentase kemiripan. Langkah- langkahnya adalah sebagai berikut :

1. Mengunggah berkas pertama.

2. Mengambil string dari berkas pertama.

3. Semua spasi dihilangkan sehingga semua karakter saling berhimpitan.

4. Dari tiap gram, dihitung nilai hash tiap gram menggunakan rolling- hash.

(38)

5. Dari hash yang dihitung, akan didapati fingerprint dokumen pertama.

6. Mengunggah berkas kedua.

7. Mengambil string dari berkas kedua.

8. Semua spasi dihilangkan sehingga semua karakter saling berhimpitan.

9. Dari tiap gram, dihitung nilai hash tiap gram menggunakan rolling- hash.

10. Dari hash yang dihitung, akan didapati fingerprint dokumen kedua.

11. Dihitung persentase tingkat kesamaan dokumen pertama dengan dokumen kedua menggunakan Dice Similarity Coefficient.

12. Persentase kemiripan didapat.

(39)

26

BAB IV

RANCANGAN SISTEM DAN IMPLEMENTASI

4.1 Formulasi

4.1.1 Deskripsi Permasalahan

Algoritma permrograman merupakan salah satu mata kuliah yang diajarkan di Jurusan Teknik Informatika Fakultas Ilmu Komputer Semarang. Dalam mata kuliah tersebut, bahasa pemrograman yang dipakai adalah LISP yang materinya didasarkan pada buku diktat algoritma pemrograman yang dikeluarkan oleh Institut Teknologi Bandung [10].

Dalam setiap pertemuan, mahasiswa akan diberikan tugas membuat program dimana kode sumber tugas tersebut akan dikumpulkan di pertemuan berikutnya di laboratorium. Mahasiswa mengunggah kode sumber tersebut ke server lokal di laboratorium dan asisten dosen berkeliling dari satu mahasiswa ke mahasiswa lain untuk memeriksa pekerjaan dan memberikan nilai. Parameter pemberian nilai baru diukur dari kode sumber yang berhasil dieksekusi dan dikumpulkan ke server lewat aplikasi yang sudah ada sehingga asisten dosen atau dosen tidak mengetahui seberapa persis satu pekerjaan dengan pekerjaan lain. Jika tingkat kesamaan berkas dapat diketahui, maka hal tersebut dapat menjadi salah satu pertimbangan untuk asisten dosen atau dosen dalam memberikan nilai kepada mahasiswa yang bersangkutan.

4.1.2 Identifikasi Poin Masalah

Dari deskripsi permasalahan diatas, maka poin masalah yang didapat adalah belum adanya aplikasi yang mendeteksi tingkat kemiripan antar kode sumber LISP.

(40)

4.1.3 Analisis Terhadap Perangkat Lunak Yang Akan Dibangun

Dari poin permasalahan diatas, maka pemecahan masalah yang dapat dibangun adalah sebuah aplikasi berbasis web yang dapat memeriksa kemiripan antar berkas kode sumber yang keluarannya berupa persentase kemiripan yang dapat digunakan oleh dosen atau asisten sebagai dasar pemberian nilai kepada mahasiswa.

4.2 Perencanaan

4.2.1 Identifikasi Sistem

Sistem yang akan dibangun adalah sistem berbasis web yang didalamnya terkandung data kelas, dosen, asisten dosen, mahasiswa, tugas mahasiswa dalam perkuliahan algoritma pemrograman di laboratorium dasar Fasilkom Udinus. Penggunaan web sebagai basis sistem bertujuan agar mudah diakses oleh pengguna, bersifat banyak pengguna, multi platform sehingga pengguna tidak terpaku ke satu sistem operasi saja untuk mengakses sistem tersebut.

4.2.2 Identifikasi Kebutuhan Sistem 1. Kebutuhan Perangkat Keras

Kebutuhan perangkat keras utuk sistem ini dibagi dua bagian , yaitu :

a. Kebutuhan perangkat keras pembuat sistem

- Server dengan prosesor Intel Xeon E3-1270 V2 yang didalamnya terinstall sebuah virtual server dengan alokasi RAM sebesar 4GB, alokasi harddisk sebesar 75GB

- PC dengan prosessor Intel Core i5-4460, HDD 500GB

(41)

28

- Monitor dengan resolusi 1366 x 768 pixel - LAN Card untuk akses internet 2 Mbps b. Kebutuhan perangkat keras pengakses sistem

- PC dengan prosesor Intel Dual Core, RAM 2GB.

- LAN Card untuk akses internet 2 Mbps - Monitor dengan resolusi 1280 x 768 pixel - Tablet atau ponsel pintar.

2. Kebutuhan Perangkat Lunak

Kebutuhan perangkat lunak untuk sistem ini dibagi dua bagian , yaitu :

a. Kebutuhan perangkat lunak pembuat sistem - Sistem operasi Linux CentOS 6

- PHP versi 5.5.2 - MySQL versi 5.1.73

- Sistem operasi Windows 7 Ultimate - Netbeans IDE 8.0

- SQLyog 11

- Internet Browser (kompatibel dengan HTML5, CSS3, AJAX)

- PHP Framework (Laravel 4.1) - Edraw Max 6

b. Kebutuhan perangkat lunak pengakses sistem - Sistem operasi Windows XP SP3

- Internet Browser (kompatibel dengan HTML5, CSS3, AJAX)

3. Kebutuhan SDM

Menerangkan tentang orang yang terkait dengan sistem, ditunjukkan di tabel berikut :

(42)

Tabel 4. 1 Peran Orang Terkait Sistem

Orang terkait Peran

Mahasiswa Melakukan pengunggahan berkas kode sumber lisp. (mengumpulkan tugas).

Dosen Memeriksa pekerjaan mahasiswa.

Verifikasi pekerjaan mahasiswa.

Asisten dosen Memeriksa pekerjaan mahasiswa.

Verifikasi pekerjaan mahasiswa.

Manajemen data master kelas.

Manajemen data master mata kuliah.

Manajemen data master dosen.

Manajemen data master mahasiswa.

Admin Manajemen data master kelas.

Manajemen data master mata kuliah.

Manajemen data master dosen.

Manajemen data master asisten dosen.

Manajemen data master mahasiswa.

4. Kebutuhan Fungsional

Kebutuhan fungsional dari sistem ini dijabarkan dalam tabel berikut :

Tabel 4. 2 Tabel Fungsi dan Fasilitas Sistem

Kode Keterangan

Fungsi dasar

D.1 Memeriksa dan memverfikasi identitas pengguna yang akan masuk ke sistem pada fungsi login.

D.2 Verifikasi username, dan password pengguna D.3 Menyimpan data dosen, asisten, mahasiswa di

lingkungan laboratorium dasar Fasilkom Udinus.

D.4 Mengunggah dan menyimpan berkas lisp.

D.5 Menghitung persentase kesamaan berkas yang terupload

Fungsi mahasiswa

M.1 Melakukan login ke sistem

M.2 Mengunggah tugas berupa berkas lisp.

Fungsi dosen (pengajar)

P.1 Melakukan login ke sistem

(43)

30

P.2 Memeriksa kesamaan pekerjaan mahasiswa Fungsi asisten

A.1 Melakukan login ke sistem

A.2 Memeriksa kesamaan pekerjaan mahasiswa A.3 Manajemen data master kelas.

A.4 Manajemen data master mata kuliah.

A.5 Manajemen data master dosen.

A.6 Manajemen data master mahasiswa.

Fungsi super admin

S.1 Konfigurasi sistem S.2 Manajemen role

S.3 Manajemen permission.

S.4 Manajemen pengguna 4.3 Analisis

4.3.1 Mengidentifikasi Pelaku Bisnis

Pelaku bisnis dapat dilihat pada tabel berikut : Tabel 4. 3 Daftar Pelaku Bisnis

Istilah Deskripsi

Mahasiswa Aktor yang akan mengunggah berkas LISP.

Dosen Aktor yang akan memeriksa kesamaan pekerjaan mahasiswa.

Asisten Dosen

Aktor yang akan memeriksa kesamaan pekerjaan mahasiswa dan mengatur master data.

Super Admin

Aktor yang nantinya akan mengkonfigurasi sistem

(44)

4.3.2 Menyusun Proses Bisnis

1. Proses bisnis mahasiswa

Gambar 4 1 Proses Bisnis Mahasiswa

Proses bisnis mahasiswa diawali dengan login, username dan kata kunci diperiksa. Jika pengguna berhasil login maka mahasiswa bisa memilih menu profil atau mengunggah tugas di dalam menu mahasiswa. Goal dari proses unggah adalah tugas terunggah ke server.

(45)

32

2. Proses bisnis dosen dan asisten dosen

Gambar 4 2 Proses Bisnis Dosen dan Asisten Proses diawali dengan asisten atau dosen login ke system, username dan kata kunci diperiksa. Jika username dan kata kuncu valid, maka dosen dapat mengakses menu dosen , menu profil, dan menu dokumen. Jika login sebagai asisten maka pengguna dapat mengakses menu asisten, menu master data , menu profil, dan menu dokumen. Pengguna memilih sebuah dokumen sebagai pembanding, dan dokumen-dokumen lain untuk dibandingkan. Sistem kemudian akan menganalisa kesamaan dokumen pembanding dengan dokumen yang dibandingkan.

Keluaran dari proses ini adalah persentase kesamaan sedangkan goal yang diharapkan adalah bahan pertimbangan tambahan untuk memberi nilai ke mahasiswa.

(46)

3. Proses bisnis admin

Gambar 4 3 Proses Bisnis Admin

Proses diawali dengan admin login ke system, username dan kata kunci diperiksa. Jika username dan kata kunci valid maka admin dapat menggunakan system dan memilih menu-menu yang disediakan. Hak akses admin adalah mengatur master mata kuliah, kelas, dosen, asisten, mahasiswa dan aktivasi akun pengguna lain dibawahnya .

(47)

34

4.3.3 Menyusun Use Case

Pada proses ini, proses bisnis yang dibentuk kemudian dipetakan kedalam diagram use case, use case yang terbentuk adalah sebagai berikut :

Gambar 4 4 Use case system

Langkah selanjutnya adalah menyusun use case naratif, use case yang dibuat adalah sebagai berikut :

1. Use case aktivasi login

Menjelaskan narasi proses aktivasi login untuk setiap aktor yang terlibat di sistem.

2. Use case upload berkas

(48)

Menjelaskan proses aktor mahasiswa melakukan unggah berkas dan respon dari sistem.

3. Use case analisa dokumen

Menjelaskan proses aktor dosen dan atau asisten melakukan eksekusi fungsi analisa berkas dan respon dari sistem.

4. Use case manajemen mata kuliah

Menjelaskan proses aktor admin dan atau asisten melakukan manajemen mata kuliah dan respon dari sistem.

5. Use case manajemen dosen

Menjelaskan proses aktor admin dan atau asisten melakukan manajemen dosen dan respon dari sistem.

6. Use case manajemen asisten

Menjelaskan proses aktor admin melakukan manajemen mata asisten dan respon dari sistem.

7. Use case manajemen mahasiswa

Menjelaskan proses aktor admin dan atau asisten melakukan manajemen mahasiswa dan respon dari sistem.

8. Use case manajemen kelas

Menjelaskan proses aktor admin dan atau asisten melakukan manajemen kelas aktif dan respon dari sistem.

(49)

36

Detail dari masing-masing use-case naratif di atas adalah sebagai berikut :

Aplikasi Deteksi Plagiarisme LISP

Pembuat: Ahmad Aulia Wiguna Tanggal: 10/2/2015 Versi : 1.00

Tabel 4. 4 Use case aktifasi pengguna

Nama use case Aktifasi login Tipe Use Case

Persyaratan bisnis £

Analisa sistem R

ID Use Case rK-U-1 Prioritas Tinggi

Sumber -

Pelaku bisnis utama

Admin Pelaku sistem

utama

Admin Pelaku

partisipasi lain - Stakeholder -

Deskripsi Use case ini adalah sebuah proses yang dilakukan oleh admin agar pengguna mahasiswa, asisten, dan dosen dapat login ke dalam sistem. Admin akan memberi flag aktifkan login di tiap user yang terdaftar di dalam sistem.

Pra kondisi Mahasiswa, dosen, dan asisten sudah diinputkan ke dalam sistem

Pemicu Use case ini dipersiapkan saat ada user mahasiswa, dosen, atau asisten akan login untuk pertama kali.

Bidang khas suatu event

Kegiatan Pelaku Respon Sistem Langkah 1 : admin membuka

daftar mahasiswa, dosen, atau asisten

Langkah 2 : sistem menampilkan daftar yang diinginkan

Langkah 3 : admin melakukan klik di tombol aktifasi.

Langkah 4 : sistem memberikan notifikasi apabila proses aktifasi sukses atau gagal.

Bidang alternatif

Bila user yang akan diaktifasi belum terdaftar, maka dapat diinputkan dulu lewat menu master data

Kesimpulan Aktifasi baru dapat dilakukan jika pengguna yang bersangkutan sudah dimasukkan ke master data

Post Kondisi Pengguna yang sudah diaktifasi dapat login ke sistem

Aturan Bisnis Pengguna mahasiswa dan asisten harus punya NIM, pengguna dosen harus punya NPP

Batasan dan Spesifikasi

-

Asumsi -

Masalah- masalah terbuka

-

(50)

Aplikasi Deteksi Plagiarisme LISP

Pembuat: Ahmad Aulia Wiguna Tanggal: 10/2/2015 Versi : 1.00

Tabel 4. 5 Use case analisa dokumen

Nama use case Upload berkas Tipe Use Case

Persyaratan bisnis £

Analisa sistem R

ID Use Case rK-U-2 Prioritas Tinggi

Sumber -

Pelaku bisnis utama

Dosen

Pelaku sistem utama

Dosen

Pelaku partisipasi lain

Asisten

Stakeholder -

Deskripsi Use case ini adalah sebuah proses yang dilakukan oleh mahasiswa untuk memilih berkas yang akan dikumpulkan dan diunggah ke server.. Ekstensi berkas akan diperiksa, jika ekstensinya bukan LISP maka berkas akan tolak untuk diunggah.

Pra kondisi Mahasiswa dapat login ke sistem

Pemicu Use case ini dipersiapkan saat mahasiswa akan mengumpulkan berkas LISP.

Bidang khas suatu event

Kegiatan Pelaku Respon Sistem Langkah 1 : mahasiswa memilih

berkas yang ada di komputer lokal

Langkah 2 : sistem menampilkan nama file yang akan diunggah

Langkah 3 : mahasiswa menulis urutan pertemuan kemudian meng-klik tombol upload.

Langkah 4 : sistem memberikan notifikasi apabila berkas sukses atau gagal diunggah..

Bidang alternatif

-

Kesimpulan Berkas hanya bisa diunggah oleh mahasiswa, berkas harus berakhiran LISP

Post Kondisi Berkas terunggah ke server, mahasiswa masih dapat menghapus dan mengganti berkas selama berkas belum diverifikasi

Aturan Bisnis Berkas harus berakhiran LISP Batasan dan

Spesifikasi -

Asumsi -

Masalah- masalah terbuka

-

Referensi

Dokumen terkait

Bila peraturan ini disahkan menjadi PBI, maka hal ini akan mampu mendorong pertumbuhan konsumsi melalui kredit, yang tercatat sempat mengalami penurunan pada 1Q16

Lembaga Swadaya Masyarakat (LSM) Indonesia yang paling sering meneriakkan dampak buruk industri pertambangan adalah WALHI (Wahana Lingkungan Hidup Indonesia) dan JATAM

Dalam menetukan sikap terhadap pelaksanaan system pemerintahan yang berlaku di Indonesia, kita seharusnya mengembalikan pada landasan kehidupan bernegara yaitu pancasila

Hal inilah yang menjadikan tari Sema sebagai jalan untuk bertarekat dalam Tarekat Maulawiyah (Kartanegara dalam Susanti, 2005 : 5). Di Indonesia kini sudah mulai

Hal ini dapat diketahui dari hasil analisis yang menunjukkan bahwa ketuntasan belajar siswa kelas eksperimen memperoleh nilai rata-rata sebesar 78,23, sedangkan

Pada fase ini konsep yang sudah dipilih di visualisasikan dalam bentuk pemodelan 3D menggunakan software Catia V5R19 dengan mempertimbangkan daftar tuntutan yang

4.3.4 Dimana operasi telah dibangun dalam kawasan yang dulunya dimiliki oleh pengguna lain dan/atau tunduk pada hak adat masyarakat lokal dan masyarakat adat, lembaga