INTEGRASI MODUL PENGELOMPOKAN KODE PROGRAM
C BERDASARKAN STRUKTUR PADA TOKI
LEARNING
CENTER
MUHAMMAD FACHRUL ARLI
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR
PERNYATAAN MENGENAI SKRIPSI DAN
SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA
Dengan ini saya menyatakan bahwa skripsi berjudul Integrasi Modul Pengelompokan Kode Program C Berdasarkan Struktur pada TOKI Learning Center adalah benar karya saya dengan arahan dari komisi pembimbing dan belum diajukan dalam bentuk apa pun kepada perguruan tinggi mana pun. Sumber informasi yang berasal atau dikutip dari karya yang diterbitkan maupun tidak diterbitkan dari penulis lain telah disebutkan dalam teks dan dicantumkan dalam Daftar Pustaka di bagian akhir skripsi ini.
Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut Pertanian Bogor.
Bogor, September 2014
Muhammad Fachrul Arli
ABSTRAK
MUHAMMAD FACHRUL ARLI. Integrasi Modul Pengelompokan Kode Program C Berdasarkan Struktur pada TOKI Learning Center. Dibimbing oleh AHMAD RIDHA.
Pendeteksian plagiarisme kode program secara manual memerlukan banyak waktu dan tenaga. Oleh sebab itu, sebuah sistem yang dapat membantu pendeteksian plagiat tugas pemrograman dibutuhkan. Tujuan penelitian ini adalah membangun aplikasi web yang mengimplementasikan modul pengelompokan kode program C berdasarkan struktur. Metode yang digunakan dalam membangun sistem pada penelitian ini adalah System Life Cycle. Hasil penelitian ini berupa aplikasi web yang membantu pendeteksian plagiat tugas pemrograman pada TOKI
Learning Center. Aplikasi web memiliki 3 pilihan proses pengelompokan, yaitu menggunakan metode pengelompokan, menggunakan hasil test case, dan menggunakan gabungan hasil test case dengan metode pengelompokan. Metode pengelompokan yang digunakan ada 5, yaitu K-means, bisecting K-means, single linkage, average linkage, dan complete linkage. Untuk membantu pengajar menentukan plagiat, ada beberapa kondisi yang menjadi bahan pertimbangan yang ditampilkan oleh aplikasi web, yaitu hasil pengelompokan, waktu pengumpulan, jumlah yang dikumpulkan, dan kode program.
Kata kunci: aplikasi web, kesamaan struktur, pemrograman C, pendeteksi plagiat,
system life cycle
ABSTRACT
MUHAMMAD FACHRUL ARLI. Integration of Structured-based C Code Clustering Module in TOKI Learning Center. Supervised by AHMAD RIDHA.
Manual detection of source code plagiarism requires a lot of time and effort. Therefore, a system that could help to detect plagiarism of programming assignment is required. The purpose of this research is to build a web application that implements clustering module of C program code based on the structure. The method used to build the system in this research is System Life Cycle. The result of this research is a web application that helps to detect plagiarism of programming assignment in TOKI Learning Center. The application has 3 clustering options, i.e., using clustering method, using the result of test case, and using the combined result of the test case with the clustering method. There are 5 methods of clustering used in the web application, i.e., means, bisecting K-means, single linkage, average linkage, and complete linkage. To help instructor determine a plagiarism, there are several conditions for consideration provided by the web application, i.e., clustering result, submission time, number of submissions, and the source codes.
Skripsi
sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer
pada
Departemen Ilmu Komputer
INTEGRASI MODUL PENGELOMPOKAN KODE PROGRAM
C BERDASARKAN STRUKTUR PADA TOKI
LEARNING
CENTER
MUHAMMAD FACHRUL ARLI
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR
Judul Skripsi : Integrasi Modul Pengelompokan Kode Program C Berdasarkan Struktur pada TOKI Learning Center
Nama : Muhammad Fachrul Arli NIM : G64100114
Disetujui oleh
Ahmad Ridha, SKom MS Pembimbing
Diketahui oleh
Dr Ir Agus Buono, MSi MKom Ketua Departemen
PRAKATA
Puji dan syukur penulis panjatkan ke hadirat Allah subhanahu wa-ta’ala
atas rahmat dan hidayah-Nya sehingga penulis dapat menyelesaikan tugas akhir ini. Shalawat serta salam juga penulis sampaikan pada junjungan Nabi besar Muhammad shallallahu ‘alaihi wa sallam beserta keluarga dan sahabatnya.
Banyak pihak yang telah membantu penulis hingga terselesaikannya tugas akhir ini. Oleh sebab itu, penulis ingin mengucapkan rasa terima kasih kepada: 1 Ayahanda Armen Sirin dan Ibunda Deswelly yang senantiasa mendoakan,
memotivasi, dan memberikan nasihat kepada penulis.
2 Bapak Ahmad Ridha, SKom MS selaku dosen pembimbing yang telah membimbing dan mengarahkan penulis selama penelitian tugas akhir ini. 3 Seluruh teman-teman Ilmu Komputer 47 atas dukungan dan kebersamaannya.
Akhir kata, penulis berharap semoga tulisan ini dapat bermanfaat bagi para pembaca.
Bogor, September 2014
DAFTAR ISI
DAFTAR TABEL v
DAFTAR GAMBAR v
DAFTAR LAMPIRAN v
PENDAHULUAN 1
Latar Belakang 1
Perumusan Masalah 1
Tujuan Penelitian 2
Manfaat Penelitian 2
Ruang Lingkup Penelitian 2
METODE 2
Data Penelitian 2
Tahapan Penelitian 2
Perencanaan 3
Analisis 3
Perancangan 3
Implementasi 3
Penggunaan 3
HASIL DAN PEMBAHASAN 3
Perencanaan 3
Analisis 4
Perancangan 5
Implementasi 8
Model 8
View 10
Controller 11
Penggunaan 12
SIMPULAN 13
DAFTAR PUSTAKA 13
DAFTAR TABEL
1 Daftar file bagian model 10
2 Daftar file bagian view 11
3 Daftar fungsi file cmain pada bagian controller 12
DAFTAR GAMBAR
1 Pola pengembangan System Life Cycle 2
2 Use case diagram sistem pengelompokan tugas pemrograman 4 3 Pemetaan database sistem pengelompokantugas pemrograman 6 4 Layout umum sistem pengelompokantugas pemrograman 6 5 Mockup sistem pengelompokantugas pemrograman 7 6 Tampilan halaman utama sistem pengelompokantugas pemrograman 10
DAFTAR LAMPIRAN
1 Pemetaan database TOKI Learning Center 15
2 Acitivity diagram 16
PENDAHULUAN
Latar Belakang
Plagiat tugas pemrograman merupakan tindakan yang menjadi masalah dalam bidang akademik. Pendeteksian kasus plagiat tugas pemrograman dapat dilakukan dengan memeriksa kode program secara manual. Akan tetapi, pemeriksaan secara manual untuk sebuah institusi akedemik memerlukan banyak waktu dan tenaga. Oleh sebab itu, sistem yang secara otomatis mengelompokkan tugas pemrograman berdasarkan kemiripan strukturnya diperlukan untuk mengatasi masalah ini.
Penelitian yang berkaitan dengan pengelompokan kode program berdasarkan kemiripan strukturnya telah dilakukan oleh Gumilang (2013), Notyasa (2013), dan Triatmojo (2014). Mereka menggunakan kesamaan struktur kode program yang dikembangkan Burrows (2004). Penelitian Gumilang (2013) berhasil membangun modul pengelompokan kode program C dengan menggunakan algoritme K-means, Notyasa (2013) menggunakan algoritme bisecting K-means, dan Triatmojo (2014) menggunakan hierarchical agglomerative clustering yaitu single linkage, average linkage, dan complete linkage. Penelitian oleh Gumilang (2013), Notyasa (2013), dan Triatmojo (2014) tersebut menggunakan korpus kode program yang berasal dari lab Temu Kembali Informasi, Departemen Ilmu Komputer, Institut Pertanian Bogor. Kode program yang dipilih berasal dari tugas pemrograman yang memiliki banyak variasi penyelesaian. Berdasarkan hasil ketiga penelitian tersebut, terlihat adanya indikasi tindakan plagiat tugas pemrograman. Hal ini disimpulkan dari hasil pengelompokan yang didapat. Hasil penelitian tersebut mendapatkan jumlah kelompokyang terlalu sedikit dibanding jumlah data kode program yang digunakan.
Departemen Ilmu Komputer, Institut Pertanian Bogor, menyelenggarakan tugas pemrograman secara online yang diberikan dan dikumpulkan pada aplikasi web TOKI Learning Center. Akan tetapi, aplikasi web TOKI Learning Center belum memiliki sistem yang dapat mengelompokkan tugas pemrograman berdasarkan kemiripan strukturnya. Oleh sebab itu, penelitian ini bertujuan membangun sebuah aplikasi web yang mengintegrasikan modul pengelompokan dari penelitian sebelumnya oleh Gumilang (2013), Notyasa (2013), dan Triatmojo (2014) pada TOKI Learning Center.
Perumusan Masalah
Perumusan masalah dalam penelitian ini adalah:
1 Bagaimana membangun sistem yang membantu pendeteksian kasus plagiat tugas pemrograman?
2 Bagaimana mengintegrasikan modul pengelompokan kode program C, yang dibangun pada penelitian sebelumnya oleh Gumilang (2013), Notyasa (2013), dan Triatmojo (2014), dengan database TOKI
2
Tujuan Penelitian
Tujuan penelitian ini adalah membangun sistem yang mengimplementasikan modul pengelompokan kode program C berdasarkan struktur, sebagai sistem yang membantu pendeteksian kasus plagiat tugas pemrograman pada TOKI Learning Center.
Manfaat Penelitian
Manfaat yang diharapkan dari hasil penelitian ini adalah mempercepat dan mempermudah pemeriksaan kasus plagiat tugas pemrograman pada TOKI
Learning Center.
Ruang Lingkup Penelitian
Lingkup dari penelitian ini adalah sistem menyediakan tampilan dari hasil pengelompokan, bukan menentukan pelaku plagiat. Selanjutnya, modul pengelompokan yang digunakan sebanyak 5, yaitu means, bisecting K-means, single linkage, average linkage, dan complete linkage. Korpus berasal dari database TOKI Learning Center.
METODE
Data Penelitian
Data yang digunakan pada penelitian ini berasal dari database TOKI
Learning Center. Struktur database TOKI Learning Center dianalisis untuk keperluan penelitian. Hasil dari analisis tersebut berguna untuk menentukan bagian data yang diperlukan oleh sistem yang dibangun pada penelitian ini.
Tahapan Penelitian
Perencanaan
Analisis
Perancangan Implementasi
Penggunaan
3 Tahapan pada penelitian ini mengikuti tahapan pada model System Life Cycle (SLC) yang dikemukakan oleh McLeod dan Schell (2007). SLC memiliki beberapa tahapan seperti yang terlihat pada Gambar 1. Tahapan dimulai dari perencanaan, analisis, perancangan, implementasi, dan penggunaan.
Perencanaan
Tahap perencanaan yang dilakukan pada penelitian ini meliputi pendefinisian masalah, pendefinisian umum sistem yang dibangun, dan pengidentifikasian batasan penelitian. Tahap perencanaan ini berguna untuk menjelaskan sistem yang dibangun dan mempersiapkan kebutuhan yang diperlukan pada proses pembangunan sistem.
Analisis
Aktivitas yang dilakukan pada tahapan ini adalah pemahaman terhadap masalah yang ada, pendefinisian kebutuhan dari sistem yang dibangun, serta pendefinisian terhadap perilaku pelaku plagiat tugas pemrograman. Hasil analisis yang diperoleh dapat digunakan untuk menentukan solusi yang digunakan pada tahap perancangan.
Perancangan
Rancangan terhadap fungsi-fungsi yang terdapat dalam sistem dilakukan pada tahap ini. Pendefinisian kebutuhan sistem yang telah dilakukan pada tahap analisis, dirancang menjadi sebuah solusi yang siap untuk diimplementasikan ke dalam sistem. Perancangan yang dibuat pada penelitian ini meliputi perancangan diagram, database, antarmuka, dan arsitektur aplikasi.
Implementasi
Pada tahap ini, hasil perancangan diimplementasikan menjadi sebuah sistem yang siap digunakan. Selanjutnya, dilakukan pengujian terhadap sistem yang telah diinstalasi. Pengujian ini bertujuan memeriksa bahwa sistem telah memenuhi kebutuhan yang diperlukan oleh sistem.
Penggunaan
Pada tahap ini, pengguna telah dapat menggunakan sistem yang telah selesai dibangun. Penggunaan sistem dapat menghasilkan feedback untuk proses pengembangan sistem selanjutnya. Di samping itu, penjelasan penggunaan sistem dijelaskan pada tahap ini.
HASIL DAN PEMBAHASAN
Perencanaan
4
Komputer, Institut Pertanian Bogor. Komunikasi pada tahap perencanaan berhubungan dengan masalah yang dihadapi dan deskripsi umum sistem yang dibangun. Di samping itu, perencanaan juga memperhatikan batasan-batasan penelitian dan bahasa pemrograman yang digunakan.
Sistem yang dibangun berupa web yang mengintegrasikan modul pengelompokan kode program C dengan database TOKI Learning Center. Modul pengelompokan kode program C berdasarkan kemiripan struktur telah dibagun pada penelitian sebelumnya oleh Gumilang (2013), Notyasa (2013), dan Triatmojo (2014). Modul pengelompokan tersebut belum terintegrasi dengan database TOKI Learning Center. Oleh sebab itu, modul tersebut menjadi metode pengelompokan yang digunakan pada sistem ini.
Sistem yang dibangun mengelompokkan kode program C yang mirip berdasarkan struktur tapi tidak otomatis menentukan pelaku plagiat. Penentuan pelaku plagiat tetap dilakukan oleh pengguna sistem. Hal tersebut dikarenakan adanya kebijakan dari masing-masing pengguna sistem dalam menentukan pelaku plagiat.
Sistem berbasis web yang dibangun diimplementasikan ke dalam bahasa pemrograman PHP dengan menggunakan framework CodeIgniter. Konsep
Model, View, dan Controller (MVC) yang terdapat dalam framework
CodeIgniter diterapkan pada pembangunan sistem. Sistem ini dimasukkan ke dalam server yang sama dengan aplikasi web TOKI Learning Center.
Analisis
Analisis yang dilakukan pada penelitian ini meliputi analisis terhadap masalah yang ada, kebutuhan pengguna, dan pendefinisian terhadap perilaku pelaku plagiat tugas pemrograman. Proses komunikasi dengan pengguna tetap berlangsung pada tahap ini. Melalui komunikasi didapatkan definisi kebutuhan pengguna terhadap sistem.
Terdapat 4 kebutuhan pengguna terhadap sistem yang digambarkan melalui use case diagram seperti yang ditunjukkan pada Gambar 2. Use case
Mengekspordata hasil pengelompokan ke format XLS user
5 pertama berkaitan dengan pengelompokan kode program C yang mirip berdasarkan strukturnya. Pengguna dapat memberikan masukan untuk menjalankan proses pengelompokan. Proses pengelompokan merupakan kebutuhan utama yang harus dimiliki. Use case kedua adalah membandingkan kode program. Kebutuhan ini dilakukan untuk mempermudah membandingkan 2 buah kode program untuk diperiksa kemiripannya. Use case ketiga adalah menandai pelaku plagiat. Menandai pelaku plagiat merupakan kebutuhan yang dapat membantu pemeriksa dalam menandai dengan mudah pelaku plagiat setelah melakukan pemeriksaan. Use case keempat adalah mengekspor data hasil pengelompokan ke format XLS. Kebutuhan ini bertujuan memudahkan pengguna dalam mengolah data yang terdapat pada sistem pengelompokan tugas pemrograman.
Penelitian pada tahap ini juga memperhatikan perilaku dari pelaku plagiat tugas pemrograman pada Mata Kuliah Algoritme dan Pemrograman. Analisis tindakan plagiat dilakukan dengan melihat kebiasaan dari pelaku plagiat dalam mengumpulkan tugas pemrograman. Informasi perilaku plagiat didapatkan dari komunikasi dengan dosen Mata Kuliah. Pelaku plagiat memiliki waktu pengumpulan yang lebih lama dibandingkan dengan sumber yang pertama kali menemukan jawaban dari tugas pemrograman. Di samping itu, sebagian besar pelaku plagiat hanya melakukan sedikit percobaan untuk menemukan jawaban yang benar. Karena itu, selain berdasarkan kemiripan struktur dari kode program yang dikumpulkan, dapat pula dilihat dari waktu pengumpulan dan jumlah yangdikumpulkan untuk melihat pelaku plagait.
Sistem pada penelitian ini terintegrasi dengan database TOKI Learning Center. Oleh sebab itu, diperlukan sebuah analisis terhadap struktur dari
database TOKI Learning Center untuk mengetahui data yang diperlukan pada penelitian ini. Pemetaan database TOKI Learning Center dapat dilihat pada Lampiran 1. Pemetaan database TOKI Learning Center terdiri atas tabel-tabel yang diperlukan sistem. Data yang berasal dari database TOKI Learning membangun sistem. Perancangan terdiri atas rancangan diagram, database,
antarmuka, dan arsitektur perangkat lunak. Perancangan ini bertujuan mempermudah tahap implementasi.
6
Pengguna memilih 2 peserta pada cluster untuk membandingkan kode program dari kedua peserta tersebut. Activity diagram ketiga menggambarkan aktivitas menandai pelaku plagiat. Proses ini dimulai ketika pengguna menandai peserta yang dianggap plagiat. Username dari peserta yang ditandai dan nama pemeriksa disimpan ke dalam database sistem. Selanjutnya, sistem menampilkan nama pemeriksa dan tanda plagiat pada data peserta. Activity diagram yang terakhir menggambarkan aktivitas untuk mengekspor data hasil pengelompokan ke format XLS. Proses ini dilakukan dengan menjalankan fungsi ekspor data untuk mengunduh hasil pengelompokan beserta datanya ke dalam format XLS.
Rancangan database pada sistem dapat dilihat pada Gambar 3.
Database yang dibangun pada sistem berguna sebagai tempat penyimpanan hasil pengelompokan yang dilakukan oleh sistem. Database sistem digambarkan terhubung dengan database TOKI Learning Center karena tabel pada database sistem menyimpan primary key dari tabel pada database TOKI
Learning Center sebagai penciri dari tiap data yang tersimpan.
CONTEST PROBLEMS
database sistem pengelompokan tugas pemograman
database TOKI Learning Center
Gambar 3 Pemetaan database sistem pengelompokan tugas pemrograman
header
menu
konten
footer
7 Rancangan antarmuka didahului dengan menentukan layout umum sistem seperti yang terlihat pada Gambar 4. Layout yang dirancang terdiri atas bagian header, menu, konten, dan footer. Selanjutnya, dibuat tampilan mockup
untuk memberikan gambaran antarmuka yang digunakan pada sistem. Mockup
untuk halaman utama dapat dilihat pada Gambar 5. Mockup tersebut memperlihatkan gambaran antarmuka halaman utama yang memiliki pilihan proses pengelompokan pada bagian menu. Pada bagian konten berisi tabel-tabel untuk menyajikan hasil pengelompokan dan data dari peserta yang mengumpulkan tugas. Bagian konten juga sebagai tempat dilakukannya pemeriksaan plagiat dan menandai pelaku plagiat tugas pemrograman.
Perancangan arsitektur perangkat lunak pada penelitian ini didasari oleh konsep MVC. Model terdiri atas logika bisnis yang dibutuhkan sistem, yaitu praproses data, menyimpan hasil parsing ke XML, pengelompokan kode program, danpengambilan data dari database.
Praproses data pada penelitian ini menggunakan kode program yang telah dibangun oleh Notyasa (2013). Praproses data terdiri atas pembuangan
preprocessor directives, tokenisasi, penyederhanaan, dan N-gram. Pada tahap praproses, hasil parsing disimpan dalam dokumen XML untuk digunakan kembali pada tahap selanjutnya.
Metode pengelompokan yang digunakan terdiri atas 5 yaitu K-means,
bisecting K-means, single linkage, average linkage, dan complete linkage. Kelima metode pengelompokan tersebut telah dibangun pada penelitian sebelumnya oleh Gumilang (2013), Notyasa (2013), dan Triatmojo (2013). Gumilang (2013) membangun kode program untuk metode pengelompokan K-means. Notyasa (2013) membangun kode program untuk metode pengelompokan bisecting K-means. Triatmojo (2014) membangun kode program metode hierarchical agglomerative clustering yaitu single linkage, average linkage, dan complete linkage.
8
Pengambilan data dari database dibagi menjadi 3 bagian yaitu database
dari sistem, database dari TOKI Learning Center, dan database untuk login.
Database dari sistem berhubungan dengan pengambilan data dari proses pengelompokan yang pernah dilakukan sistem, data pengerjaan tugas peserta, dan informasi pelaku plagiat. Database TOKI Learning Center berhubungan dengan kontes yang tersedia, tugas berdasarkan kontes yang ada, data peserta, dan data pengumpulan tugas pemrograman beserta kode programnya.
View merupakan bagian yang menampilkan tampilan sistem kepada pengguna. View pada penelitian ini terdiri atas layout, header, form, menu,
konten, halaman pesan kesalahan, dan footer. Layout, menu, dan konten memiliki 2 bentuk yaitu untuk halaman utama dan halaman hasil. Bagian form
berguna untuk menampilkan form sistem login. Bagian halaman pesan kesalahan berguna untuk menampilkan pesan kesalahan data yang diproses.
Controller merupakan bagian untuk mengatur alur masukan, proses logika, dan keluaran berupa tampilan kepada pengguna. Controller pada penelitian ini dibagi menjadi 2 file yaitu untuk fungsi login dan untuk fungsi pengelompokan. Pada bagian fungsi pengelompokan terdapat beberapa fungsi yang berperan dalam mengatur aliran data dan proses yang dimiliki sistem. Pada penelitian ini, beberapa fungsi yang harus ada dalam controller tersebut adalah fungsi utama, pengelompokan kode program, pemberian keterangan dan penandaan plagiat, ekspor data, pengambilan tugas berdasarkan kontes yang dipilih, dan laporan hasil kontes.
Implementasi
Implementasi kode program pada penelitian ini disesuaikan dengan konsep MVC berdasarkan hasil pada tahap perancangan. Berikut hasil implementasi kode program untuk membangun sistem pada penelitian ini:
Model
Implementasi pada bagian model terdiri atas praproses data, penyimpanan hasil parsing ke XML, pengelompokan kode program, dan pengambilan data dari database. Praproses data, proses penyimpanan hasil
parsing ke XML, dan pengelompokan kode program telah dibangun pada penelitian sebelumnya, sehingga pada penelitian ini hanya menggunakan dan mengubah beberapa baris kode program yang disesuaikan dengan sistem yang dibangun. Di samping itu, file mclustering pada bagian model yang telah dibangun menjadi bagian yang perlu diperhatikan untuk pengembangan sistem dalam menambahkan metode pengelompokan yang baru. Berikut adalah potogan kode program dalam file mclustering yang diperhatikan untuk melakukan penambahan metode pengelompokan:
9 public function clustering($termFreqTable=array(), $method='', $i=1, $k='', $path='') {
10
11 if($method=='bisecting_kmeans') { 12 $this->load->
13 model('clustering/bisectKMeans/mBisectKMe ans');
9 15
$this->mBisectKMeans->bisectKMeans($termFreqTable,$i); 16 }
17 else if($method=='kmeans') { 18
$this->load->model('clustering/kMeans/mKMeans'); 19 $mode = "manual";
20 list($result,$cent,$prev) =
21 $this->mKMeans->kMeans($path,$k,$mode); 22 }else{
23 $mode = "auto"; 24 $result =
25 $this->mKMeans->
autoClustering($path,$mode); 26 $a=0;
27 foreach($result as $key1=>$key2){
28 }
29 $b=0;
30 foreach($key2 as $key3 => $val){ 31 $clusters[$a][$b] = $key3 ;
37 //tambahkan metode baru disini
Pada fungsi clustering terlihat ada variabel termFreqTable, method, i, k, dan path. Variabel termFreqtable adalah variabel yang mengandung hasil praproses. Method adalah variabel yang mengandung nama metode yang dipilih oleh pengguna sistem, variabel ini yang berperan mengarahkan proses pengelompokan. Variabel i adalah parameter yang digunakan oleh metode pengelompokan yang dibatasi oleh ukuran jarak intrakelompok, misalnya algoritme bisecting K-means. Variabel k adalah parameter untuk metode pengelompokan yang dibatasi oleh jumlah kelompok, misalnya algoritme K-means. Variabel i dan k tidak dipakai secara bersamaan. Variabel i dan k dipilih sesuai dengan kebutuhan metode pengelompokan yang digunakan. Variabel
path adalah variabel yang mengandung direktori dari hasil parsing. Variabel
path khusus dibuat agar sistem dapat menjalankan modul yang dibangun oleh Gumilang (2013). Akan tetapi, untuk penambahan metode pengelompokan yang baru, variabel path dapat diabaikan dan pengembang cukup menggunakan hasil parsing yang telah disimpan dalam variabel termFreqtable.
Implementasi pada bagian model menghasilkan beberapa file yang digunakan oleh sistem. File-file tersebut dimasukkan ke dalam folder yang sesuai dengan bagiannya. Daftar file utama pada bagian model beserta kegunaannya dapat dilihat pada Tabel 1.
View
Semua bagian tampilan halaman dari sistem penelitian ini dibangun pada bagian view. Implementasi tampilan dilakukan dengan melihat rancangan
10
sistem ini dapat dilihat pada Gambar 6. Implementasi view terdiri atas beberapa
file yang dapat dilihat pada Tabel 2. Keseluruhan tampilan halaman yang ada pada sistem ini dapat dilihat pada Lampiran 3.
Pada bagian view terdapat bagian yang harus diperhatikan untuk melakukan penambahan metode pengelompokan baru. Bagian tersebut terletak pada file vMenuClutster dan vLayoutClutster. Pada kedua file tersebut terdapat baris script yang perlu ditambahkan untuk membuat sistem menampilkan nama metode pengelompokan baru. Berikut adalah bagian kode program pada
vMenuClutster:
3 $select['bisecting_kmeans'] = 'i'; 4 $select['kmeans'] = 'k';
5 //tambah metode baru disini
Nama File Kegunaan
mprosescluster Memulai tahapan pengelompokan kode program
mclustering Melakukan pengelompokan kode progam berdasarkan metode pengelompokan yang dipilih
msistem Mengambil data yang diperlukan dari
database sistem penelitian
mtugas Mengambil data yang diperlukan dari
database TOKI Learning Center muser Mengambil data untuk sistem login mpraproses Melakukan praproses data
mxmlparsing Menyimpan hasil parsing ke XML
11 6
7 $options=array(
8 //tambah nama metode baru disini
9 'bisecting_kmeans' => 'Bisecting K-means', 10 'kmeans' => 'K-Means',
11 );
Berikut adalah bagian kode program pada vLayoutClutster: 40 script type="text/javascript">
41 pilih = new Array();
42 pilih['bisecting_kmeans'] = 'i'; 43 pilih['kmeans'] = 'k';
44 //add new method here select['new_method'] = 'k'
or ‘i’;
Controller
Pada penelitian ini implementasi controller terdiri atas 2 file yaitu clogin
dan cmain. File clogin merupakan file yang mengatur fungsi login, sedangkan
file cmain merupakan file pengelola utama sistem pengelompokan.
Pada file cmain semua proses utama diatur dengan menghubungkan antara bagian model dan view. Di samping itu, terdapat beberapafungsi seperti yang dapat dilihat pada Tabel 3. Fungsi utama untuk mengarahkan proses pengelompokan yang dijalankan oleh sistem terdapat pada bagian fungsi
cluster.
Pada bagian controller terdapat bagian yang harus diperhatikan untuk melakukan penambahan metode pengelompokanbaru. Bagian terserbut terletak pada file cmain. File cmain perlu ditambahkan beberapa baris kode program untuk dapat menjalankan metode pengelompokan baru oleh sistem. Berikut adalah bagian kode program pada cmain yang perlu penambahan:
41 public function cluster(){
42 if($this->input->post('run')==''){ 43 redirect('cMain');
44 } 45 else {
Nama File Kegunaan
vLayoutCluster Layout dari halaman cluster vLayoutResult Layout dari halaman hasil
vMenuCluster Menu pada halaman cluster vMenuResult Menu pada halaman hasil
vContentCluster Konten dari halaman cluster
vContentResult Konten dari halaman hasil
vErrordata Halaman pesan kesalahan
vForm Halaman form pada sistem login vHead Header dari tampilan sistem
12
46 $select['bisecting_kmeans'] = 'i'; 47 $select['kmeans'] = 'k';
48 //tambah method baru disini
Setelah sistem selesai dibangun, sistem diimplementasikan ke server yang sama dengan sistem TOKI Learning Center. Selanjutnya, tahap pengujian dilakukan terhadap sistem yang telah berhasil diimplementasikan ke server. Pengujian dilakukan secara black box berdasarkan skenario yang telah dibuat pada penelitian ini. Hasil pengujian yang pertama masih terdapat fungsi yang belum bekerja dengan semestinya. Fungsi yang masih gagal adalah fungsi pengelompokan berdasarkan kesamaan test case yang memberikan pesan error.
Selanjutnya, dilakukan perbaikan sehingga tidak terdapat lagi error pada sistem. Dokumen pengujian dari penelitian ini dapat dilihat pada Lampiran 4.
Penggunaan
Sistem yang telah diimplentasikan dapat digunakan oleh pengguna. Penggunaan pada sistem ini dapat menghasilkan feedback untuk pengembangan sistem selanjutnya agar sistem menjadi lebih baik.
Sistem memiliki 3 pilihan proses dalam melakukan pengelompokan, yaitu menggunakan metode pengelompokan, menggunakan kesamaan hasil test case, dan menggunakan gabungan kesamaan hasil test case dengan metode pengelompokan. Metode pengelompokan yang dimiliki oleh sistem ada 5, yaitu
K-means dan bisecting K-means, single linkage, average linkage, dan complete linkage. Secara default sistem menggunakan gabungan kesamaan hasil test case dengan metode pengelompokan.
Sistem pengelompokantugas pemrograman memiliki beberapa kondisi yang membantu pendeteksian kasus plagiat. Kondisi yang digunakan, yaitu
Nama Fungsi Kegunaan
index() Fungsi utama untuk halaman awal
cluster() Fungsi untuk menjalankan proses pengelompokan
get_problem() Fungsi untuk menerima perubahan kontes pada dropdown list kontes dan mengirmkan data berupa daftar tugas yang sesuai dengan kontes
result_page() Mengarahkan untuk menjalankan halaman hasil
update_plagiat() Mengarahkan data masukan untuk pelaku plagiat ke bagian model yang mengurus bagian plagiat
update_note() Mengarahkan data masukan untuk keterangan ke bagian model yang mengurus bagian keterangan
cetak() Mengekspor data pada sistem ke format XML
13 hasil pengelompokan, jumlah yang dikumpulkan, waktu pengumpulan, dan kode program. Hasil pengelompokan berupa kelompok peserta yang memiliki kemiripan berdasarkan struktur kode program, hal ini membantu pengguna sistem untuk membandingkan kode program. Fakta bahwa peserta yang melakukan plagiat memiliki waktu pengumpulan lebih lambat dari sumbernya, menjadikan waktu pengumpulan sabagai bahan pertimbangan. Selanjutnya, jumlah tugas yang dikumpulkan dapat memperlihatkan pola pengumpulan tugas pemrograman oleh peserta. Peserta yang berada di kelompok yang sama dengan peserta lain yang memiliki waktu pengumpulan lebih lambat dan jumlah yang dikumpulan lebih sedikit dapat dicurigai melakukan tindakan plagiat. Untuk meyakinkan penentuan plagiat, pengguna sistem dapat melihat kode program dari peserta yang dicurigai melakukan plagiat. Sistem pengelompokan tugas pemrograman memiliki fungsi untuk membandingkan 2 kode program yang berguna melihat tingkat kemiripan. Sistem juga memiliki fungsi ekspor data hasil pemeriksaan ke format XLS yang berguna untuk mempermudah penilaian setelah dilakukan pemeriksaan kasus plagiat.
SIMPULAN
Penelitian ini telah berhasil mengintegrasikan modul pengelompokan kode program C, yang dibangun pada penelitian sebelumnya oleh Gumilang (2013), Notyasa (2013), dan Triatmojo (2014), pada database TOKI Learning Center. Penelitian ini juga menghasilkan aplikasi web dinamis yang memiliki antarmuka yang dapat digunakan dengan baik oleh pengguna sistem, untuk membantu pengecekan kasus plagiat pada tugas pemrograman yang tersimpan dalam database TOKI Learning Center.
DAFTAR PUSTAKA
Burrows S. 2004. Effecient and effective plagiarism detection for large code
repositories [tesis]. Melbourne(AU): RMIT University.
Gumilang AP. 2013. Pendeteksian penjiplakan kode program C dengan
K-means [skripsi]. Bogor (ID): Fakultas Matematika dan Ilmu Pengetahuan
Alam, Institut Pertanian Bogor.
McLeod R Jr, Schell GP. 2007. Management Information System. Ed ke-10.
New Jersey (US) : Pearson.
Notyasa A. 2013. Pendeteksian penjiplakan kode program C dengan bisecting K-means [skripsi]. Bogor (ID): Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Pertanian Bogor.
Triatmojo R. 2014. Pengelompokan kode program C berdasarkan kemiripan struktur menggunakan metode hierarchical agglomerative clustering
14
Lampiran 1 Pemetaan database TOKI Learning Center
CONTEST PROBLEMS
USERS
id
…
id
… id …
CONTESTS_USERS
CONTESTS_PROBLEMS contest_id
user_id
… contest_id problem_id
…
SUBMISSIONS id
problem_id submitter_id contest_id
15 Lampiran 2 Activity diagram
Menjalankan proses pengelompokan
memilih kontes
Menampilkan daftar tugas sesuai dengan kontes
Memilih tugas
Memilih proses pengelompokan
Memilih metode pengelompokan
metode pengelompokan/ metode pengelompokan &
test case
Memilih i atau memasukkan nilai k
Proses pengelompokan
test case
Hasil pengelompokan
16 Lanjutan
Membandingkan kode program
Memilih fitur pembandingan kode
program
mengaktifkan fungsi pembandingan kode program
Memilih cluster
Memilih id peserta
Menampilkan kode program pada tabel pertama
Memilih id peserta yang lainnya
Menampilkan kode program pada tabel kedua
Membandingkan kode program
17 Lanjutan
Menandai pelaku plagiat
Mengekspor data ke format XLS memeriksa tindakan
plagiat
Menandai pelaku plagiat
Menyimpan data plagiat peserta yang ditandai
Menyimpan username dari pengguna yang menandai
Tampilan tanda plagiat dan nama pemeriksa
user sistem
Menjalankan proses pengelompokan
Menjalankan pilihan ekspor data
Menjalankan proses download data pengelompokanke client
Hasil download disimpan di
client
18
Lampiran 3 Tampilan halaman sistem pengelompokantugas pemrograman
Halaman login
19 Lanjutan
Halaman cluster
Halaman cluster
20 Lanjutan
Halaman cluster dengan tampilan pembandingan kode program
21 Lanjutan
Halaman hasil
22 Lanjutan
23 Lampiran 4 Dokumen uji sistem pengelompokantugas pemrograman
Kode Uji
Deskripsi Uji
Kondisi
Awal Skenario Uji
Hasil Yang
Diharapkan Hasil
S001 login (username dan password) yang tidak valid dan klik tombol login login (username yang valid dan password tidak valid) dan login (username dan password) yang valid dan mengklik tombol halaman index pada web browser
Tampil halaman login
24
Awal Skenario Uji
Hasil Yang
Diharapkan Hasil
S003 kontes dan tugas pada halaman aplikasi web
Pengguna dapat memilih kontes dan tugas pada halaman aplikasi web
Tombol proses dan pilihan metode clustering yang digunakan tidak tampil
sukses
Pengguna memilih salah satu atau semua proses clustering
Tombol proses tetap muncul dan metode clustering muncul apabila checkbox metode clustering dicentang dan hilang apabila tidak clustering dengan metode clustering dan test case
Tampil hasil clustering pada tabel cluster di halaman utama
sukses
Pengguna melakukan proses clustering hanya dengan metode clustering
Tampil hasil clustering pada tabel cluster di halaman utama
sukses
Pengguna melakukan proses clustering hanya dengan test case
Tampil hasil clustering pada tabel cluster di halaman utama
sukses
Pengguna melakukan proses clustering yang belum memiliki data kode program dari peserta
Tampil halaman error yang memberitahukan bahwa belum ada data yang dapat diproses
25
Awal Skenario Uji
Hasil Yang
Diharapkan Hasil
S006
Memeriksa informasi yang ditampilkan salah satu cluster pada tabel cluster
Tampil data peserta pada tabel peserta yang berisi id peserta, jumlah yang salah satu peserta padatabel ID Peserta
Tidak tampil
apapun sukses
Pengguna mengklik salah satu peserta pada tabel ID Peserta
Tampil kode program peserta pada tabel kode program
sukses
Pengguna mengklik grade content setelah mengklik salah satu peserta pada ID Peserta
26
Awal Skenario Uji
Hasil Yang
Diharapkan Hasil
S007
checkbox yang belum
ada tanda centang pada tabel peserta, kemudian pengguna mengklik hasil cluster yang lain dan kembali mengklik cluster yang dipilih sebelumnya
Kondisi checkbox yang diklik tetap ada tanda centang
sukses
Pengguna mengklik checkbox yang sudah ada tanda centang pada tabel peserta, kemudian pengguna mengklik hasil cluster yang lain dan kembali mengklik cluster yang dipilih sebelumnya
Kondisi checkbox yang diklik tetap tanpa ada tanda centang
sukses
Pengguna mengklik beberapa checkbox pada tabel peserta, kemudian pengguna memuat kembali halaman dan kembali mengklik cluster yang sama dengan sebelumnya
Kondisi checkbox sama seperti saat halaman belum dimuat kembali
sukses
Pengguna memberikan keterangan pada kolom keterangan dan mengklik tombol simpan, kemudian pengguna memuat kembali halaman dan kembali mengklik cluster yang sama dengan sebelumnya keterangan pada kolom keterangan tanpa mengklik tombol simpan, kemudian pengguna memuat kembali halaman dan kembali mengklik cluster yang sama dengan sebelumnya
Keterangan yang diberikan tadi tidak tampil
27
Awal Skenario Uji
Hasil Yang
Diharapkan Hasil
S008 button export to excel
Terjadi proses download data cluster dari sistem
sukses checkbox fitur pembandingan kode program
Tampil 2 tabel untuk
membandingkan kode program
sukses
Pengguna mengklik 2 id peserta yang berbeda
Tampil kode program yang mewakili masing-masing id peserta yang diklik
sukses
S010 Memeriksa halaman hasil
S011 Memeriksa hasil kontes
Halaman hasil
Pengguna memilih kontes yang belum memiliki data hasil cluster dan mengklik tombol proses
Tampil tulisan
keterangan error sukses
Pengguna memilih kontes yang sudah memiliki data hasil cluster dan mengklik tombol proses
Tampil data laporan kontes pada tabel
sukses
28