ALAT BANTU MENDETEKSI PLAGIARISME SOURCE CODE (STUDI KASUS : TUGAS PRAKTIKUM LABORATORIUM COMMON STT TELKOM) ANALISYS AND
IMPLEMENTATION OF NEEDLEMAN-WUNSCH ALGORITHM AS HELPING TOOL FOR DETECT
Aswin Swastika¹, Z.k. Abdurahman Baizal², Rimba Widhiana Ciptasari³
¹Teknik Informatika, Fakultas Teknik Informatika, Universitas Telkom
Abstrak
Salah satu bidang yang rawan akan tindakan plagiarisme source code adalah di dunia pendidikan, khususnya kegiatan praktikum Jurusan Teknik Informatika, karena sangat erat kaitannya dengan algoritma dan pemrograman, dan diimplementasikan dalam bentuk source code. Pengoreksi / asisten praktikum sering kesusahan untuk mendeteksi ada tidaknya indikasi plagiarisme yang terjadi pada tugas mahasiswa yang dikumpulkan. Algoritma Needleman-Wunsch diharapkan dapat menentukan tingkat kemiripan dua source sode sebagai alat bantu untuk mendeteksi adanya tindak plagiarisme.
Dalam dunia bioinformatika, algoritma Needleman-Wunsch adalah metode pertama yang ditemukan untuk menemukan kesamaan antara dua rangkaian DNA (Deoxyribo Nucleic Acid). Algoritma ini merupakan perluasan dari String Matching yang merupakan salah satu teknik pemrograman dinamis. Konsep kerja algoritma ini adalah gugus-gugus karbon (A,T,G,C) yang menyusun kedua DNA disejajarkan dengan cara mencocokkan serta menggeser, sehingga didapatkan tingkat kesamaan maksimal yang menyeluruh (Global Alignment). Pada implementasinya untuk pensejajaran source code, setiap token atau baris dari source code dianalogikan sebagai gugus-gugus karbon dalam pensejajaran DNA. Dari hasil penelitian
diperoleh suatu kesimpulan bahwa algoritma Needleman- Wunsch ini dapat menentukan tingkat kesamaan secara akurat, serta dapat diketahui jenis kecurangan / plagiarisme yang ada dengan proses lebih lanjut.
Kata Kunci : Needleman-Wunsch, source code, plagiarisme, pensejajaran
Abstract
One of more wide which to worry about source code plagiarism is academic wide, spesially practicum activity of informatics because it related with algorithm and programming and it is implemented with source code. Assistent as corrector has found misery to detect plagiarism indicator which happen on student's tasks which is collected. Needleman-Wunsch algorithm as tools to detect source code plagiarism should be can ascertain equality level between two source code or more.
In bioinformatics, Needleman-Wunsch algorithm is first method which is discovered to find equally between two junction of DNA (Deoxyribo Nucleic Acid). This Algorithm is extension from string matching which is included one of more dynamic programming technics. Concept of this algorithm is junctions of carbon (A,T,G,C) which construct both DNA is made parallel with way to pin up and move them, so we can find maximal of equally level globally (Global Alignment). In implementation, to make source code is parallel, every line or token from source code will be analogy as junctions carbon in DNA parallelism. The result of observation is got conclusion that Needleman-Wunsch algorithm can ascertain equally level accuratly and know plagiarism source code with process continued.
Keywords : Needleman-Wunsch, source code, plagiarism, parallelism
Powered by TCPDF (www.tcpdf.org)
1
1. Pendahuluan
1.1
Latar Belakang
Sebagian besar tugas yang diberikan kepada mahasiswa teknik Informatika saat praktikum di laboratorium bersifat pemrograman yang pastinya diimplementasikan sebagai source code. Saat di laboratorium setiap mahasiswa dibantu langsung oleh asisten praktikum, namun untuk pengerjaan tugas di luar laboratorium tidak ada pantauan langsung dari asisten praktikum yang bersangkutan. Untuk tugas yang bersifat individu diharapakan praktikan mengerjakan tugas itu secara individu juga dengan harapan selain untuk persiapan dan pemantapan saat pengerjaan jurnal di laboratorium, asisten praktikum dapat mengetahui siapa yang berhak mendapat nilai tinggi, sedang, atau rendah. Tetapi kondisi semacam itu menimbulkan kerawanan akan tindak plagiarisme dari mahasiswa.
Pengoreksi / asisten praktikum kesusahan untuk mendeteksi ada tidaknya tindakan plagiarisme secara manual. Untuk itu Algoritma Needleman-Wunsch diharapkan dapat diimplementasikan untuk membantu dalam nenetukan tingkat kesamaan dalam upaya mendeteksi tindakan plagiarisnme source code.
Algoritma Needleman-Wunsch merupakan salah satu algoritma untuk pensejajaran string ( Aligntment Algorithm ) dan merupakan perluasan dari string
matching. Algoritma ini awalnya diciptakan oleh Saul Needleman dan Christian
Wunsch pada tahun 1970 untuk mencari kemiripan dari dua DNA[2]. Cara kerja
algoritma ini adalah gugus-gugus karbon (A,T,G,C) yang menyusun kedua DNA tersebut disejajarkan dengan cara mencocokkan serta menggeser, sehingga didapatkan tingkat kesamaan maksimum secara global atau menyeluruh ( Global
Alignment ) dari kedua DNA tersebut.
Dengan melihat hasil serta proses algoritma Needleman-Wunsch dalam pensejajaran DNA, maka dimungkinkan juga algoritma ini dapat digunakan untuk mensejajarkan source code. Sebenarnya algoritma ini bisa digunakan untuk mensejajarkan teks selain source code, seperti makalah, papper, dll. Tetapi dari analisis awal menunjukkan bahwa algoritma ini memiliki kompleksitas waktu yang besar yaitu O(nm), sehingga lebih cocok diterapkan pada source code tugas praktikum yang relatif pendek dan di sini kasus plagiarisme source code memang sangat sering terjadi.
Pada implementasinya, setiap token atau baris di dalam source code dapat dianalogikan sebagai gugus-gugus karbon dalam kasus pensejajaran DNA. Setiap kode di salah satu source code dicocokan dengan setiap kode di source code yang lain. Dengan melakukan penggeseran, kedua source code disejajarkan hingga diperoleh tingkat kesamaan yang maksimal secara menyeluruh. Dari proses pensejajaran ini akan dihasilkan berapa jumlah kode yang sama, serta memungkinkan juga ditemukan jenis kecurangan di antara kedua source code tersebut.
2
1.2
Perumusan Masalah
Permasalahan yang muncul dalam penulisan tugas akhir ini antara lain:
1. Bagaimana menyaring token atau baris dari source code awal untuk kemudian diproses sehingga dapat meningkatkan efisiensi sistem.
2. Berapa kombinasi skor match, misMatc, dan gap agar mendapatkan hasil yang benar, penjelasan tentang skor adap pada bab selanjutnya.
3. Bagaimana mengolah dan menampilkan hasil pensejajaran sehingga dapat digunakan oleh asisten praktikum sebagai alat bantu untuk mendeteksi plagiarisme source code.
4. Bagaimana analisis terhadap performansi yaitu kebenaran hasil dari algoritma Needleman-Wunsch yang digunakan untuk mensejajarkan dua
source code.
Berikut ini gambaran ruang lingkup kajian dari permasalahan yang ada :
Gambar 1-1 : Ruang lingkup kajian
Adapun yang menjadi batasan masalah pada penulisan tugas akhir ini antara lain: 1. Pensejajaran hanya dilakukan untuk dua file Source Code secara
bersamaan
2. Masukan berupa dua file teks.
3. Komentar dalam sorce code yang dapat diabaikan adalah dalam lingkungan pemrograman C, Java, PHP, pascal, shell, dan matlab
1.3
Tujuan
Tujuan yang ingin dicapai dalam tugas akhir ini adalah:
1. Menganalisis performansi algoritma Needleman-Wunsch untuk menentukan tingkat kemiripan dua source code tugas praktikum mahasiswa. Performansi yang dimaksud adalah kebenaran / akurasi hasil pensejajaran.
2. Menentukan kombinasi skor match, misMatch dan gap yang selalu selalu menghasilkan pensejajaran yang benar.
3. Menganalisis akurasi pesan kecurangan yang mungkin muncul dari hasil pensejajaran, seperti : sama persis, hanya dibolak-balik, ganti variabel, tambah kurang, dll.
3 4. Menganalisis kondisi best case dan worst case dari algoritma
Needleman-Wunsch.
5. Membangun suatu perangkat lunak sebagai implementasi dari algoritma
Needleman-Wunsch untuk menentukan tingkat kemiripan source code
tugas praktikum mahasiswa. Tugas praktikum yang dimaksud adalah tugas – tugas untuk praktikan yang terkait dengan text coding, selain tugas besar.
1.4
Metodologi Penyelesaian Masalah
Metodelogi penyelesaian masalah dalam penulisan tugas akhir ini yaitu: 1. Studi Literatur
Mencari, mengumpulkan, dan mempelajari teori – teori yang mendukung dalam pembuatan tugas akhir ini, antara lain : plagarisme, mesin karakter, algoritma Needleman-Wunsch, source code program tugas praktikum 2. Analisis Kebutuhan Sistem
Melakukan analisis terhadap apa saja yang diperlukan dan harus disiapkan untuk perancangan dan pembuatan perangkat lunak sebagai alat bantu mendeteksi plagiarisme source code dengan menggunakan algoritma
Needleman-Wunsch. Analisis ini didasarkan pada studi literatur yang sudah
dilakukan sebelumnya.
3. Perancangan dan Implementasi
Merancang dan Membuat perangkat sebagai implementasi dari algoritma
Needleman-Wunsch untuk menentukan tingkat kemiripan source code
sebagai alat bantu pendeteksi plagiarisme. Meliputi antar muka, arsitektur program, funsionalitas yang diperlukan, masukan dan keluaran, dll. Dalam tugas akhir ini perangkat lunak dibuat dengan menggunakan Matlab v 7.0.1. 4. Pengujian dan Analisis
Pengujian terhadap perangkat lunak ini akan dilakukan secara manual oleh
user langsung, dengan inputan adalah beberapa source code yang pernah
dikerjakan praktikan / mahasiswa saat praktikum di laboratorium Common Teknik Informatika STT Telkom. Kemudian dilakukan analisis hasil implementasi algoritma Needleman-Wunsch untuk menentukan tingkat kemiripan kedua source code tersebut, sehingga dapat ditarik kesimpulan apakah algoritma ini terbukti dapat mendeteksi plagiarisme source code dengan baik apa tidak.
5. Penyusunan Laporan
Laporan yang dihasilkan merupakan buku tugas akhir. Penyusunan laporan menggunakan kaidah penulisan laporan yang berlaku yang berisi mengenai semua dasar teori dan penelitian tugas akhir.
Powered by TCPDF (www.tcpdf.org)
48
5. Kesimpulan dan Saran
5.1
Kesimpulan
Kesimpulan yang dapat ditarik dari tugas akhir ini yaitu:
1. Pensejajaran dengan algoritma Needleman-Wunsch selalu mendapatkan hasil yang maksimal / akurat, bila dibandingkan dengan proses manual.
2. Skor macth = 1, misMatch = 0, dan gap = 0 merupakan kombinasi skor yang selalu menghasilkan pensejajaran yang paling benar.
3. Pensejajaran per baris memerlukan waktu lebih cepat daripada per token, tetapi prosentase kesamaan pada pensejajaran per token lebih tinggi daripada per baris.
4. Pesan kecurangan ganti variabel tidak akurat, karena kemungkinan ada dua
source code yang panjangnya sama dan jumlah token yang berbeda juga sama,
sehingga memenuhi kondisi untuk kecurangan ganti variabel, tetapi yang berbeda bukan variabel.
5. Kondisi best case algoritma terjadi saat hanya ada penyisipan di salah satu
alignment saja, dan kondisi worst case algoritma terjadi saat hanya terdapat
satu pasang token atau baris yang sama dari kedua source code, dimana letak token atau baris tersebut pada source code pertama di awal dan pada source
code kedua di akhir atau sebaliknya.
5.2
Saran
Untuk memperbaiki kekurangan perangkat lunak ini, maka saran yang dapat diberikan adalah sebagai berikut :
1. Diinginkan agar pesan kecurangan yang muncul lebih akurat, bisa dengan menambahkan parameter baru untuk mendeteksinya tidak hanya prosentase kesamaan serta jumlah proses saja.
2. Untuk penggunaan aplikasi ini sebaiknya dilakukan per token supaya mendapatkan hasil yang lebih optimal.
3. Sebaiknya ditambahakan kombinasi source code yang akan diujikan, agar hasil pengujian lebih benar.
Powered by TCPDF (www.tcpdf.org)
49
Daftar Pustaka
[1] Wikipedia, Needleman-Wunsch Algorithm,
http://en.wikipedia.org/wiki/Needleman-Wunsch_algorithm,
Diakses tanggal 22 Juni 2007.
[2] S Needleman, C Wunsch, A general method applicable to the search for
similarities in the amino acid sequence of two proteins, J Mol Biol.
48(3):443-53,1970
[3] Wikipedia, Plagiarisme, http://id.wikipedia.org/wiki/Plagiarisme
Diakses tanggal 2 Juli 2007.
[4] Joe, Mike, Detecting Source Code Plagiarism, Department of Computer Science, University of Warwick, 2003
[5] Fintan Culwin, Anna MacLeod & Thomas Lancaster, Source Code
Plagiarism in UK HE Computing Schools,Issues, Attitudes and Tools,
Centre for Interactive Systems Engineering (CISE), School of Computing Information Systems & Mathematics (SCISM),South Bank University (SBU), 2001
[6] Alignments Algorithm, http://helix.mcmaster.ca/721/outline2/node39.html,
Diakses tanggal 19 Juni 2007
[7] Ariels,needleman wunsch Algorithm,
http://everything2.com/index.pl?node_id=544652,
Diakses tanggal 22 Juni 2007
[8] Ir. Balza Achmad, M.Sc.E.,Plagiarisme, Kenali Untuk Menghindari,
http://balzach.staff.ugm.ac.id/TugasAkhir/SSS-Plagiarisme.html,
Diakses tanggal 2 Juli 2007
[9] Wicaksono, Arief, Aplikasi Pemrograman Dinamis dalam Bioinformatika, Kuliah Umum IlmuKomputer.com, 2003.
[10] Pressman, Roger S., Software Engineering: A Practitioner’s Approach, Forth Edition, McGraw-Hill, 1997.
Powered by TCPDF (www.tcpdf.org)