• Tidak ada hasil yang ditemukan

Integrasi Modul Pengelompokan Kode Program C Berdasarkan Struktur pada TOKI Learning Center

N/A
N/A
Protected

Academic year: 2017

Membagikan "Integrasi Modul Pengelompokan Kode Program C Berdasarkan Struktur pada TOKI Learning Center"

Copied!
38
0
0

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

(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

(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.

(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

(6)
(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

(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

(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 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

(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 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

(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

(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

Mengekspordata 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 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.

(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

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

(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');

(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 ;

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

(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

(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 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

(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 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

(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

(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 pengelompokanke client

Hasil download disimpan di

client

(28)

18

Lampiran 3 Tampilan halaman sistem pengelompokantugas 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 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

(34)

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

(35)

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

(36)

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

(37)

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

(38)

28

RIWAYAT HIDUP

Gambar

Gambar 1 Pola pengembangan System Life Cycle
Gambar 2 Use case diagram sistem pengelompokan tugas pemrograman
Gambar 3 Pemetaan database sistem pengelompokan tugas pemrograman
Gambar 5 Mockup sistem pengelompokan tugas pemrograman
+6

Referensi

Dokumen terkait

Partisipasi anggota KUD Langgeng secara keseluruhan termasuk pada kategori partisipasi sedang, disebabkan partisipasi anggota untuk menikmati manfaat termasuk

Pada Ib subkelompok konsumsi rumah tangga naik sebesar 0,11 persen sedangkan indeks sub kelompok BPPBM turun sebesar 0,03 persen pada periode September 2017..

Pemurnian Enzim Penisilin Asilase Ekstrak enzim yang diperoleh masih merupakan campuran dari berbagai macam enzim sehingga untuk mendapatkan enzim yang lebih murni

Dari landasan teori tersebut dapat di ambil kesimpulan bahwa perkembangan monitor di mulai dari perkembangan monitor komputer pertama terjadi pada tahun 1855

Selanjutnya, berdasarkan hasil uji regresi berganda menunjukkan bahwa ukuran Komite Audit, frekuensi rapat Komite Audit, keahlian Komite Audit di bidang finansial/akuntansi,

Hasil yang diperoleh dari pengajuan hipotesis menunjukkan bahwa tidak terdapat hubungan yang signifikan antara prokrastinasi dan pola asuh orang tua terhadap prestasi

Persepsi peternak terhadap proses komunikasi dalam penelitian ini digolongkan atas teknologi tersebut mudah diketahui, mudah ditiru, bisa dicoba pada skala yang

Kinerja Pengurus Koperasi dalam Meningkatkan Pendapatan Sisa Hasil Usaha (SHU); Kinerja pengurus yaitu proses melakukan sebuah kegiatan atau pekerjaan