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 PriyambadhaProgram 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 randomIF 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 answer” END 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