1493 Pengembangan Sistem Pembelajaran Pemrograman Java yang Atraktif Berbasis Website

  

Vol. 1, No. 12, Desember 2017, hlm. 1493-1499 http://j-ptiik.ub.ac.id

Pengembangan Sistem Pembelajaran Pemrograman Java yang Atraktif

Berbasis Website

1 2 3 Dhanuari Indra Bastari , Fajar Pradana , Bayu Priyambadha

  Program Studi Sistem Informasi, Fakultas Ilmu Komputer, Universitas Brawijaya

  1

  2

  3 Email: d.indrabastari@gmail.com, fajar.p@ub.ac.id, bayu_priyambadha@ub.ac.id

Abstrak

  Pemrograman dasar merupakan ilmu yang wajib dikuasai oleh setiap mahasiswa FILKOM, namun berdasarkan hasil kuesioner didapatkan bahwa 76% mahasiswa FILKOM lebih tertarik pada mata kuliah selain pemrograman dasar. Terdapat beberapa hal yang menyebabkan mahasiswa menjadi kurang tertarik pada mata kuliah pemrograman dasar, terbatasnya sumber materi yang bisa diperoleh dan teknik pembelajaran yang kurang bervariasi. Maka pada penelitian ini akan mengembangkan sebuah sistem pembelajaran pemrograman java yang atraktif berbasis website dengan mengadaptasi metode dan IOE-Behavior. Metode gamification diterapkan pada sistem pembelajaran ini melalui

  gamification

  beberapa fitur yaitu, fitur yang memungkinkan pengguna satu menantang pengguna lain (challenge), fitur penghargaan bagi pengguna yang mencapai kondisi tertentu, fitur level dan experience point. Sedangkan metode IOE-Behavior diterapkan pada fitur pemeriksaan kode java yang memungkinkan sistem untuk memeriksa kode java secara otomatis dengan membandingkan input yang dimasukan dan yang dihasilkan. Sistem ini dikembangkan dengan menggunakan metode SDLC dengan model

  output

waterfall . Pada tahap akhir sistem ini diuji dengan menggunakan metode black-box testing dan white-

box testing dengan hasil pengujian sebesar 100% valid.

  : sistem pembelajaran, gamification, ioe-behavior, waterfall, pemrograman java

  Kata kunci

Abstract

  

Basic programming is a knowledge that must be mastered by every FILKOM student, but based on the

result of the questionnaire found that 76% of FILKOM students are more interested in other subject.

There are several things that cause students to be less interested in the basic programming courses, the

limited source of material that can be obtained and learning techniques that are less varied. Therefore,

this research will develop an attractive web-based java learning system by adapting the gamification

and IOE-Behavior methods. Gamification method wass applied to this learning system through several

features, feature that allows user one challenge other user (challenge), reward feature for user reaching

certain condition, level feature and experience point. While the IOE-Behavior method was applied to

the java code check feature that allows the system to check the java code automatically by comparing

input and output results. This system was developed using SDLC method with waterfall model. In the

final stages the system was tested using black-box testing and white-box testing methods with 100%

valid test results.

  : learning management system, gamification ioe-behavior, waterfall, java programming

  Keywords

  pemrograman dasar, bahasa pemrograman yang 1. wajib untuk dikuasai adalah pemrograman java.

   PENDAHULUAN

  Namun dari hasil pengamatan yang dilakukan Pemrograman merupakan ilmu yang terdapat banyak mahasiswa yang kurang minat penting untuk dikuasai bagi setiap mahasiswa di pada mata kuliah pemrograman dasar.

  Fakultas Ilmu Komputer (FILKOM) Universitas Pemrograman merupakan ilmu yang

  Brawijaya, karena salah satu kompetensi yang penting untuk dikuasai bagi setiap mahasiswa di harus dimiliki oleh mahasiswa lulusan FILKOM

  Fakultas Ilmu Komputer (FILKOM) Universitas adalah menciptakan perangkat lunak. Saat ini Brawijaya, karena salah satu kompetensi yang terdapat beberapa mata kuliah bersifat wajib harus dimiliki oleh mahasiswa lulusan FILKOM yang mengharuskan mahasiswa menggunakan adalah menciptakan perangkat lunak. Saat ini bahasa pemrograman salah satunya adalah mata terdapat beberapa mata kuliah bersifat wajib kuliah pemrograman dasar. Pada mata kuliah yang mengharuskan mahasiswa menggunakan bahasa pemrograman salah satunya adalah mata kuliah pemrograman dasar. Pada mata kuliah pemrograman dasar, bahasa pemrograman yang wajib untuk dikuasai adalah pemrograman java. Namun dari hasil pengamatan yang dilakukan terdapat banyak mahasiswa yang kurang minat pada mata kuliah pemrograman dasar. Faktor lain yang menjadikan mata kuliah pemrograman dasar kurang diminati oleh mahasiswa ialah, banyaknya mahasiswa berlatar belakang pendidikan Sekolah Menengah Atas (SMA) yang tidak memiliki pengetahuan dasar mengenai pemrograman java.

  Dari beberapa hal yang diuraikan diatas, melalui penelitian ini penulis akan mengembangkan sistem pembelajaran pemrograman java yang disajikan dalam bentuk permainan simulasi dengan menerapkan metode

  gamification

  untuk menyediakan sistem

  gamification

  Pada penelitian ini dibangun sebuah sistem pembelajaran pemrograman java yang atraktif berbasis website. Sistem pembelajaran tersebut dikembangkan dengan tujuan dapat meningkatkan minat dan memudahkan pemahaman mahasiswa FILKOM UB terhadap materi pemrograman java. Mahasiswa dapat mempelajari materi pemrograman java berupa teks, gambar, atau video, kemudian mahasiswa dapat mengerjakan latihan soal dari setiap materi, selain itu sistem pembelajaran ini juga menyediakan sebuah fitur yang memungkinkan mahasiswa untuk menantang mahasiswa lain dalam keahlian pemrograman java. Dalam mendeteksi kebenaran dari kode yang dimasukan oleh pengguna, sistem pembelajaran ini menggunakan metode IOE-Behavior. Sistem pembelajaran ini menggunakan metode

  3.1. Analisis Kebutuhan

  3. HASIL DAN PEMBAHASAN

  yang merupakan salah satu model dari metode System Development Life Cycle (SDLC). Model Waterfall ini merupakan contoh dari sebuah proses yang bersifat plan-driven dimana semua aktivitas yang akan dilakukan harus direncanakan terlebih dahulu sebelum mengerjakannya (Sommerville, 2011). Tahapan pada model waterfall dilakukan secara berurutan yakni analisis kebutuhan, perancangan sistem, implementasi sistem, pengujian sistem dan pemeliharaan sistem.

  waterfall

  Dalam pengembangan perangkat lunak pada penelitian ini menggunakan model

  2.3. Waterfall

  penggunaan teknik desain dan mekanisme game dalam aplikasi non-game guna mengikat pengguna dalam mencapai tujuan. Pengertian lain dari gamification yaitu sebuah upaya dalam mengimplmentasikan sebuah konsep game yang tepat sehingga dapat memberikan proses yang menyenangkan serta bermanfaat bagi setiap pihak yang terlibat (Romdhoni & Wibowo, 2014). Dalam gamification terdapat beberapa mekanisme game yang akan diterapkan pada aplikasi pembelajaran pemrograman java yaitu point, level user, achievement, dan challenge.

  2.2. Gamification Gamification merupakan suatu proses

  java. Pemeriksaan source code tersebut dilakukan dengan cara membandingkan keluaran (output) yang dihasilkan oleh masing- masing source code dengan masukan (input) yang sama sebanyak lima (5) kali pemeriksaan. pembelajaran yang atraktif, yakni dengan menerapkan sistem point.

  source code

  dan collection (Elva, 2012). Metode ini digunakan sebagai dasar dalam melakukan pemeriksaan antara dua

  IOE Behavior terbagi dalam 4 proses, yaitu abstraction, filtering, testing,

  merupakan sebuah metode yang digunakan dalam mendeteksi kloning kode secara semantik.

  Input, Output and Effects Behavior

  digunakan untuk melakukan pemeriksaan terhadap kode sumber java secara semantik dengan mempertimbangkan masukan, keluaran, serta efek yang dihasilkan dari kode sumber java tersebut.

  IOE-Behavior

  yang tepat sehingga dapat memberikan proses yang menyenangkan serta bermanfaat bagi setiap pihak yang terlibat. Sedangkan metode

  game

  dan IOE-Behavior. Kemudian fakta lain yang dapat diambil pada survei dilapangan yaitu sebanyak 94% responden menyatakan bahwa dengan menggunakan metode pembelajaran permainan simulasi akan memudahkan dalam memahami serta meningkatkan minat terhadap materi pemrograman java. Metode gamification digunakan untuk menerapkan sebuah konsep

2. TEORI

2.1. IOE Behavior

  Pada tahap identifikasi aktor dilakukan pengidentifikasian aktor beserta deskripsi singkat tentang perlakuan yang dapat dilakukan oleh masing-masing aktor. Rincian identifikasi aktor sistem pembelajaran pemrograman java yang akan dibangun dapat dilihat pada Tabel 1.

  Tabel 1. Identifikasi Aktor Aktor Deskripsi

  Pengguna Dalam sistem ini pengguna harus melakukan login untuk proses autentifikasi terhadap pengguna tersebut ketika ingin menggunakan sistem. Admin Dalam sistem ini admin bertugas untuk mengelola data dari member, materi, penghargaan dan soal.

  Member Dalam sistem ini member dapat melihat materi, melihat penghargaan yang pernah diraih, mengerjakan pertanyaan latihan, serta mencari member lain, menambahkan member lain ke daftar teman dan melakukan tantangan kepada member lain.

  Diagram use case digunakan untuk memodelkan semua proses bisnis berdasarkan

  Gambar 2. Diagram Use Case Member dan

  perspektif pengguna sistem yang terdiri dari

  Pengguna

  perilaku dan aktor yang bertindak pada sistem, diagram use case ini dibuat berdasarkan pada

  3.2. Perancangan

  kebutuhan fungsional sistem yang telah dibuat Pada tahap perancangan dilakukan sebelumnya. Kemudian digambarkan diagram beberapa hal yang akan digunakan sebagai acuan berdasarkan aktor yang bertindak pada dalam proses implementasi, yakni pembuatan fungsionalitas tersebut. Berikut ini merupakan diagram-diagram perancangan perangkat lunak diagram usecase dari sistem pembelajaran yang meliputi diagram sequence, diagram class, pemrograman java beserta aktor yang dapat

  relational data model, perancangan komponen

  berinteraksi dengan perangkat lunak pada sistem dan perancangan antarmuka pengguna. Gambar 1 dan Gambar 2.

  3.2.1. Perancangan Komponen

  Perancangan komponen merupakan dekomposisi sub-sistem menjadi komponen detail. Perancangan komponen menjelaskan atribut dan algoritma method dalam sebuah class yang telah dimodelkan sebelumnya pada pemodelan class diagram. Tabel 2 merupakan algoritma dari method test_java() yang berfungsi untuk melakukan pemeriksaan terhadap kode java. DB get question by id_question as question error data as new array with exercise_id, member_id, param_case, result, SESSION get uid BEGIN test_java(id_question, id_exercise) , answer, param_count Tabel 2. Algoritma method test_java() FOREACH param as p explode question.param_case as param test_case as new array

  IF (question.param_type not random) Gambar 1. Diagram Use Case Admin IF p not null END IF END FOREACH push temp_case to array test_case data.param_case = question.param_case END IF END FOREACH user_out as string key_proc = proc_open java key_file with key_pipes as pipe randoming as new array FOR i=0 until 5 key_out as string END IF fwrite key_pipes.0 with test_case.i.j

FOR j=0 until question.param_count Gambar 3. Rancangan Antarmuka Menambah

IF question.param_type is random

  IF c not null FOREACH case as c push c to array temp_case explode p as case temp_case as new array

  IF is_resource = key_proc END FOR ELSE FOR j=0 until question.param_count Pertanyaan CALL FUNCTION random_value as randomval Rancangan antarmuka pengguna untuk fwrite key_pipes.0 with randomval push randomval to array randoming halaman mengajukan tantangan dapat dilihat END FOR melalui Gambar 4, halaman tersebut meminta END IF fclose keypipes.0 konfirmasi pengguna dalam mengajukan IF is_resource = user_proc user_proc = proc_open java user_file with user_pipes as pipe END IF fclcose key_pipes.1 delete white spaces on key_out key_out = stream_get_contents from key_pipes.1 tantangan kepada pengguna lain. FOR j=0 until question.param_count

  IF question.param_type is random END FOR ELSE FOR j=0 until question.param_count fwrite user_pipes.0 with test_case.i.j user_out = stream_get_contents from user_pipes.1 fclose user_pipes.0 user_error = stream_get_contents from user_pipes.2 END IF END FOR fwrite user_pipes.0 with randoming.j fclcose user_pipes.1 delete white spaces on user_out add user_out to data.result END IF Gambar 4. Rancangan Antarmuka Halaman PRINT user_out and key_out add user_error to data.error

  Mengajukan Tantangan IF key_out = user_out Halaman mengerjakan latihan materi yang ELSE add "True" to data.answer terdapat pada Gambar 5 menampilkan add "False" to data.answer penjelasan soal beserta form source code yang END FOR END IF

  akan dimasukkan oleh aktor yang digunakan DB insert to exercise with array data untuk menjawab dan tombol “submit answerEND test_java digunakan untuk memastikan jawaban yang dimasukkan dengan benar.

3.2.2. Perancangan Antarmuka

  Perancangan antarmuka pengguna merupakan proses pembuatan rancangan tampilan sistem yang akan dibangun agar pengguna dapat berinteraksi dengan sistem pembelajaran. Gambar 3 merupakan rancangan antarmuka pengguna untuk halaman menambah pertanyaan, pada halaman ini pengguna dapat melakukan penambahan pertanyaan baru untuk sistem pembelajaran, selain itu pengguna juga dapat melakukan proses percobaan kode java.

  }else{ for($j=0; $j<$question['param_count'];$j++){ $randoming = $this->random_value(); fwrite($key_pipes[0], $randoming."\n"); echo $randoming; $data['param_case'] .= $randoming . "!!**??CASE??**!!"; if (($j+1)==$question['param_count']) { echo "<br><hr>"; }else{ echo "<br>"; } } } $data['param_case'] .= "!!**??PARAM??**!!"; fclose($key_pipes[0]); $key_out = stream_get_contents($key_pipes[1]); $error = stream_get_contents($key_pipes[2]); echo $key_out."<br><hr>"; echo $error."<br><hr>"; $data['result'] .= $key_out . "!!**??RESULT??**!!"; $data['error'] .= $error . "!!**??ERROR??**!!"; fclose($key_pipes[2]); fclose($key_pipes[1]); } } $this->m_question->add_log($data); }

  Gambar 5. Rancangan Antarmuka Halaman Mengerjakan Latihan Materi

  3.3.2. Implementasi Antarmuka Berikut ini adalah hasil implementasi dari

3.3. Implementasi

  perancangan antarmuka yang telah dilakukan pada tahap sebelumnya. Gambar 6 merupakan

  Tahapan implementasi yang dilakukan

  implementasi antarmuka pada halaman menambah

  terdiri dari penjelasan tentang spesifikasi

  pertanyaan, Gambar 7 adalah hasil implementasi

  lingkungan pengembangan sistem, batasan-

  antarmuka pada halaman mengajukan tantangan,

  batasan implementasi, implementasi algoritma,

  sedangkan Gambar 8 adalah hasil implementasi

  implementasi basis data dan implementasi antarmuka pada halaman mengerjakan latihan materi. antarmuka pengguna.

3.3.1. Implementasi Algoritma

  Tabel 3 merupakan hasil implementasi dari algoritma method test_java() yang telah dirancang pada tahapan perancangan komponen sebelumnya.

  Tabel 3. Implementasi Algoritma test_java() public function test_java(){ $key = $_GET['key']; $param_count = $_GET['param_count']; $param_case = $_GET['param']; $question = array( 'key' => $key, 'param_count' => $param_count, 'param_case' => $param_case); if (isset($_GET['param_type'])) { $question['param_type']='random';} $test_case = $question['param_case']; $data['question_id'] = $_GET['id']; $data['param_count'] = $_GET['param_count']; $data['param_case'] = ""; $data['result'] = ""; $data['error'] = ""; $options = ["bypass_shell" => true]; $key_out = ""; $user_out = ""; $return = true; for($i=0; $i<5; $i++){ $key_proc=proc_open("java -classpath ./java/test test_compile", array( array("pipe","r"), array("pipe","w"), array("pipe","w")), $key_pipes,NULL,NULL,$options); if (is_resource($key_proc)) { if(!isset($_GET['param_type'])){

  Gambar 6. Implementasi Antarmuka Menambah for($j=0; $j<$question['param_count'];$j++){

  Pertanyaan fwrite($key_pipes[0], $test_case[$i][$j]."\n"); echo $test_case[$i][$j]; $data['param_case'] .= $test_case[$i][$j] .

  "!!**??CASE??**!!"; if (($j+1)==$question['param_count']) { echo "<br><hr>"; }else{ echo "<br>"; } }

  Tabel 4. Penjelasan Persamaan Kompleksitas Siklomatis Simbol Arti

  V(G) Jumlah kompleksitas siklomatis Sisi atau edge E Simpul atau node N P Predictate node R Region Gambar 7. Implementasi Antarmuka Mengajukan

  Tantangan

  Tabel 5 merupakan hasil dari pengujian unit yang telah dilakukan pada 3 method sistem pembelajaran ini yaitu method melakukan percobaan kode java, menjalankan compile kode java, dan mengerjakan latihan materi .

  Tabel 5. Hasil Pengujian Unit Method R N E P V(G)

  Melakukan percobaan 16 51

  65

  15

  16 kode java Menjalankan compile

  2

  7

  7

  1

  2 kode java Mengerjakan latihan

  7

  24

  29

  6

  7 materi 3.4.2 . Pengujian Validasi

  Pengujian validasi dilakukan untuk memastikan bahwa seluruh kebutuhan fungsional dari sistem berjalan sesuai dengan yang diharapkan menggunakan metode black

  Gambar 8. Implementasi Antarmuka Mengerjakan box . Tabel 6 merupakan hasil pengujian validasi

  Latihan Materi dari 3 method di dalam sistem pembelajaran ini.

3.4. Pengujian

  Tabel 6. Hasil Pengujian Validasi

  Tahapan selanjutnya ialah pengujian

  Kasus Uji Hasil Yang Diharapkan Status

  terhadap sistem yang telah diimplementasi, pada

  Sistem menampilkan

  penelitian ini dilakukan 2 pengujian yaitu dialog pesan yang berisi

  masukan secara random pengujian unit dan pengujian validasi.

  Melakukan percobaan serta keluaran yang Valid kode java dihasilkan oleh kode

3.4.1. Pengujian Unit

  sumber java sebanyak 5

  Pengujian ini dilakukan untuk menentukan kasus. jumlah cyclomatic complexity (kompleksitas

  Sistem menampilkan

  siklomatis) dan menentukan jalur independen

  informasi bahwa compile

  dari pseudocode method dalam system yang

  kode sumber telah

  telah diubah menjadi flow graph. Jumlah

  Menjalankan berhasil dan sistem compile kode Valid

  kompleksitas siklomatis diperoleh dengan

  menampilkan tombol java

  menggunakan persamaan (1), (2) dan (3),

  “Test Code” untuk

  kemudian disertai dengan penjelasan pada Tabel

  melakukan percobaan 4. kode sumber Sistem menampilkan

  V(G) = E-N+2 (1) halaman riwayat latihan Mengerjakan

  V(G) = P+1 (2) Valid latihan materi dan data latihan V(G) = R (3) bertambah.

  4. KESIMPULAN

  Kesimpulan yang dapat diambil dari seluruh proses yang telah dilakukan dalam penelitian ini adalah sebagai berikut: 1.

  Hasil perancangan dari penelitian yang dilakukan adalah sebuah website yang menerapkan metode gamification dan IOE-

  Behavior dengan hasil pengujian black-box dan white-box 100% valid.

  2. Hasil penerapan metode gamification pada sistem yaitu fitur level setiap member yang akan bertambah sesuai dengan meningkatnya exp, penghargaan yang diberikan kepada member ketika mencapai kondisi tertentu, serta fitur yang memungkinkan member untuk menantang lain di dalam sistem pembelajaran

  member pemrograman java.

  3. Hasil penerapan metode IOE-Behavior pada sistem pembelajaran pemrograman java adalah sistem dapat memeriksa kode sumber java yang dimasukan oleh member dibandingkan dengan kunci kode sumber java yang telah tersedia didalam sistem.

  5. DAFTAR PUSTAKA

  SOMMERVILE,

  IAN. 2011. Software . Ninth Edition. New York:

  Engineering

  Addison – Wesley. ELVA, ROCHELLA. 2012.

  ”Semantic Clone Detection Method

  IOE- Behavior”.

  Department of EECS , University of Central Florida.

  ROMDHONI, WIBOWO. 2014. Penerapan

  Gamification Pada Aplikasi Interaktif . Pembelajaran SQL Berbasis Web Institut Teknologi Sepuluh November .

  .

  Surabaya