INTEGRASI MODUL PENGELOMPOKAN KODE PROGRAM C BERDASARKAN STRUKTUR PADA TOKI LEARNING CENTER MUHAMMAD FACHRUL ARLI

38 

Loading....

Loading....

Loading....

Loading....

Loading....

Teks penuh

(1)

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

BOGOR 2014

(2)
(3)

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 NIM G64100114

(4)

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.

Keywords: C programming, plagiarism detection, structure similarity, system life cycle, web application

(5)

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

BOGOR 2014

(6)

Penguji : 1 Firman Ardiansyah, SKom MSi 2 Auzi Asfarian, SKomp MKomp

(7)

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

(8)

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 Muhammad Fachrul Arli

(9)

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 RIWAYAT HIDUP 28

(10)

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 pengelompokan tugas pemrograman 6 4 Layout umum sistem pengelompokan tugas pemrograman 6 5 Mockup sistem pengelompokan tugas pemrograman 7 6 Tampilan halaman utama sistem pengelompokan tugas pemrograman 10

DAFTAR LAMPIRAN

1 Pemetaan database TOKI Learning Center 15

2 Acitivity diagram 16

3 Tampilan halaman sistem pengelompokan tugas pemrograman 19 4 Dokumen uji sistem pengelompokan tugas pemrograman 24

(11)

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 kelompok yang 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 Learning Center?

(12)

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

(13)

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

Pada tahap perencanaan dilakukan komunikasi dengan pengguna terkait sistem yang dibangun pada penelitian ini. Pengguna dari sistem ini adalah dosen Mata Kuliah Algoritme dan Pemrograman dari Departemen Ilmu

(14)

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

Menjalankan proses pengelompokan Membandingkan kode program Menandai pelaku plagiat

Mengekspor data hasil pengelompokan ke format XLS

user

(15)

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 yang dikumpulkan 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 Center terdiri atas data kontes yang tersedia, tugas berdasarkan kontes, data pengguna sistem TOKI Learning Center, dan data pengumpulan tugas pemrograman.

Perancangan

Pada penelitian ini ada beberapa rancangan yang dibuat untuk membangun sistem. Perancangan terdiri atas rancangan diagram, database, antarmuka, dan arsitektur perangkat lunak. Perancangan ini bertujuan mempermudah tahap implementasi.

Rancangan diagram menggunakan activity diagram yang berasal dari setiap use case. Activity diagram dari masing-masing use case dapat dilihat pada Lampiran 2. Activity diagram yang pertama menggambarkan aktivitas dari use case menjalankan proses pengelompokan. Proses pengelompokan dimulai dengan memilih kontes, tugas, dan proses pengelompokan yang diinginkan. Proses pengelompokan terdiri atas 3 pilihan, yaitu pengelompokan menggunakan metode pengelompokan, menggunakan test case, atau menggunakan test case dan metode pengelompokan. Activity diagram yang kedua menggambarkan aktivitas untuk membandingkan kode program.

(16)

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 USERS id … id … id username … CLUSTERS PLAGIARISM id username contest_id problem_id … id username contest_id problem_id …

database sistem pengelompokan tugas pemograman database TOKI Learning Center

Gambar 3 Pemetaan database sistem pengelompokan tugas pemrograman

header

menu

konten

footer

(17)

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, dan pengambilan 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.

(18)

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'); 14 $clusters =

(19)

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 ; 32 $b++; 33 } 34 $a++; 35 } 36 }

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 mockup yang telah dirancang. Proses implementasi tampilan disesuaikan dengan perubahan yang dibutuhkan agar tampilan terlihat lebih menarik dan sesuai dengan lingkungan penggunaan sistemnya. Tampilan halaman utama

(20)

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

Gambar 6 Tampilan halaman utama sistem pengelompokan tugas pemrograman Tabel 1 Daftar file bagian model

(21)

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 beberapa fungsi 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 pengelompokan baru. 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 vFooter Footer dari tampilan sistem

(22)

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 pengelompokan tugas 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

(23)

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

[skripsi]. Bogor (ID): Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Pertanian Bogor.

(24)

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 …

(25)

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

(26)

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

(27)

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 pengelompokan ke client

Hasil download disimpan di

client

(28)

18

Lampiran 3 Tampilan halaman sistem pengelompokan tugas pemrograman

Halaman login

(29)

19 Lanjutan

Halaman cluster

Halaman cluster

(30)

20 Lanjutan

Halaman cluster dengan tampilan pembandingan kode program

(31)

21 Lanjutan

Halaman hasil

(32)

22 Lanjutan

(33)

23 Lampiran 4 Dokumen uji sistem pengelompokan tugas pemrograman

Kode Uji

Deskripsi Uji

Kondisi

Awal Skenario Uji

Hasil Yang Diharapkan Hasil S001 Memeriksa proses autentikasi berjalan sesuai dengan username dan password Halaman login Pengguna memasukkan data login (username dan password) yang tidak valid dan klik tombol

login Pengguna tidak bisa memasuki halaman utama dan diberikan pesan “username anda tidak terdaftar” sukses Pengguna memasukkan data login (username

yang valid dan

password tidak valid) dan mengklik tombol login Pengguna tidak bisa memasuki halaman utama dan diberikan pesan “password anda salah” sukses Pengguna memasukkan data login (username dan password) yang valid dan mengklik tombol login Pengguna memasuki halaman utama sukses S002 Memeriksa keamanan aplikasi jika pengguna sudah mengetahui struktur halaman aplikasi dan bermaksud untuk langsung mengaksesnya lewat URL web browser Sudah logout dari halaman sistem Pengguna memasukkan langsung URL halaman index pada web browser

Tampil halaman

login

(34)

24 Lanjutan Kode Uji Deskripsi Uji Kondisi

Awal Skenario Uji

Hasil Yang Diharapkan Hasil S003 Memeriksa kontes dan tugas dapat dipilih pengguna Halaman utama Pengguna memilih kontes dan tugas pada halaman aplikasi web

Pengguna dapat memilih kontes dan tugas pada halaman aplikasi web sukses S004 Memeriksa checkbox pilihan clustering berjalan semestinya Halaman utama Pengguna tidak memilih satupun proses clutsering

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 dicentang sukses S005 Memeriksa hasil clustering Halaman utama Pengguna melakukan proses 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

(35)

25 Lanjutan Kode Uji Deskripsi Uji Kondisi

Awal Skenario Uji

Hasil Yang Diharapkan Hasil S006 Memeriksa informasi yang ditampilkan tabel cluster Halaman utama dengan hasil clustering Pengguna mengklik salah satu cluster pada tabel cluster

Tampil data peserta pada tabel peserta yang berisi id peserta, jumlah yang dikumpulkan dan waktu pengumpulan sukses Pengguna mengklik grade content sebelum mengklik salah satu peserta pada tabel 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

Tampil hasil test

case dari peserta

yang dipilih sukses S007 Memeriksa fungsi centang plagiat dan keterangan pada tabel peserta Halaman utama dengan hasil clustering dan data pada tabel peserta Pengguna memberikan keterangan pada kolom keterangan tanpa mengklik tombol simpan, kemudian pengguna mengklik hasil

cluster yang lain dan

kembali mengklik

cluster yang dipilih

sebelumnya Keterangan yang diberikan tadi tidak tampil sukses Pengguna meberikan keterangan pada kolom keterangan dan mengklik tombol simpan, kemudian pengguna mengklik hasil

cluster yang lain dan

kemudian kembali klik cluster yang dipilih sebelumnya

Keterangan yang diberikan tadi tetap tampil

(36)

26 Lanjutan Kode Uji Deskripsi Uji Kondisi

Awal Skenario Uji

Hasil Yang Diharapkan Hasil S007 Memeriksa fungsi centang plagiat dan keterangan pada tabel peserta Halaman utama dengan hasil clustering dan data pada tabel peserta Pengguna mengklik

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 yang telah disimpan tetap tampil seperti sebelum halaman dimuat kembali sukses Pengguna memberikan 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

(37)

27 Lanjutan Kode Uji Deskripsi Uji Kondisi

Awal Skenario Uji

Hasil Yang Diharapkan Hasil S008 Memeriksa fungsi ekspor rekapan data ke format XLS Halaman utama Pengguna mengklik

button export to excel

Terjadi proses

download data cluster dari sistem

sukses S009 Memeriksa fungsi pembandingan kode program Halaman utama Pengguna mengklik 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 Halaman utama Pengguna mengklik tab “Hasil” Tampil halaman hasil sukses 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 S012 Memeriksa fungsi logout Halaman utama Pengguna mengklik tombol logout Tampil halaman login sukses

(38)

28

RIWAYAT HIDUP

Penulis dilahirkan di Dumai pada tanggal 29 November 1991, merupakan anak kedua dari Bapak Armen Sirin dan Ibu Deswelly. Pada Tahun 2004 sampai 2007 penulis menempuh pendidikan sekolah menengah pertama di SMP Negeri Binaan Khusus Dumai. Kemudian penulis melanjutkan pendidikannya di SMA Negeri 10 Padang pada tahun 2007 sampai 2010. Lulus dari sekolah menengah atas, penulis diterima di Departemen Ilmu Komputer Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Pertanian Bogor melalui jalur Seleksi Nasional Masuk Perguruan Tinggi Negri (SNMPTN) pada tahun 2010.

Figur

Memperbarui...

Referensi

Memperbarui...

Related subjects :