Anda di halaman 1dari 7

Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer e-ISSN: 2548-964X

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

Pengembangan Sistem Pembelajaran Pemrograman Java yang Atraktif


Berbasis Website
Dhanuari Indra Bastari1, Fajar Pradana2, Bayu Priyambadha3

Program Studi Sistem Informasi, Fakultas Ilmu Komputer, Universitas Brawijaya


Email: 1d.indrabastari@gmail.com, 2fajar.p@ub.ac.id, 3bayu_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
gamification dan IOE-Behavior. Metode gamification diterapkan pada sistem pembelajaran ini melalui
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
output yang dihasilkan. Sistem ini dikembangkan dengan menggunakan metode SDLC dengan model
waterfall. Pada tahap akhir sistem ini diuji dengan menggunakan metode black-box testing dan white-
box testing dengan hasil pengujian sebesar 100% valid.
Kata kunci: sistem pembelajaran, gamification, ioe-behavior, waterfall, pemrograman java
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.
Keywords: learning management system, gamification ioe-behavior, waterfall, java programming

pemrograman dasar, bahasa pemrograman yang


1. PENDAHULUAN wajib untuk dikuasai adalah pemrograman java.
Pemrograman merupakan ilmu yang Namun dari hasil pengamatan yang dilakukan
penting untuk dikuasai bagi setiap mahasiswa di terdapat banyak mahasiswa yang kurang minat
Fakultas Ilmu Komputer (FILKOM) Universitas pada mata kuliah pemrograman dasar.
Brawijaya, karena salah satu kompetensi yang Pemrograman merupakan ilmu yang
harus dimiliki oleh mahasiswa lulusan FILKOM penting untuk dikuasai bagi setiap mahasiswa di
adalah menciptakan perangkat lunak. Saat ini Fakultas Ilmu Komputer (FILKOM) Universitas
terdapat beberapa mata kuliah bersifat wajib Brawijaya, karena salah satu kompetensi yang
yang mengharuskan mahasiswa menggunakan harus dimiliki oleh mahasiswa lulusan FILKOM
bahasa pemrograman salah satunya adalah mata adalah menciptakan perangkat lunak. Saat ini
kuliah pemrograman dasar. Pada mata kuliah terdapat beberapa mata kuliah bersifat wajib
1493
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 1494

yang mengharuskan mahasiswa menggunakan 2.2. Gamification


bahasa pemrograman salah satunya adalah mata
Gamification merupakan suatu proses
kuliah pemrograman dasar. Pada mata kuliah
penggunaan teknik desain dan mekanisme game
pemrograman dasar, bahasa pemrograman yang
dalam aplikasi non-game guna mengikat
wajib untuk dikuasai adalah pemrograman java.
pengguna dalam mencapai tujuan. Pengertian
Namun dari hasil pengamatan yang dilakukan
lain dari gamification yaitu sebuah upaya dalam
terdapat banyak mahasiswa yang kurang minat
mengimplmentasikan sebuah konsep game yang
pada mata kuliah pemrograman dasar. Faktor
tepat sehingga dapat memberikan proses yang
lain yang menjadikan mata kuliah pemrograman
menyenangkan serta bermanfaat bagi setiap
dasar kurang diminati oleh mahasiswa ialah,
pihak yang terlibat (Romdhoni & Wibowo,
banyaknya mahasiswa berlatar belakang
2014). Dalam gamification terdapat beberapa
pendidikan Sekolah Menengah Atas (SMA)
mekanisme game yang akan diterapkan pada
yang tidak memiliki pengetahuan dasar
aplikasi pembelajaran pemrograman java yaitu
mengenai pemrograman java.
point, level user, achievement, dan challenge.
Dari beberapa hal yang diuraikan diatas,
melalui penelitian ini penulis akan
2.3. Waterfall
mengembangkan sistem pembelajaran
pemrograman java yang disajikan dalam bentuk Dalam pengembangan perangkat lunak
permainan simulasi dengan menerapkan metode pada penelitian ini menggunakan model
gamification dan IOE-Behavior. Kemudian waterfall yang merupakan salah satu model dari
fakta lain yang dapat diambil pada survei metode System Development Life Cycle (SDLC).
dilapangan yaitu sebanyak 94% responden Model Waterfall ini merupakan contoh dari
menyatakan bahwa dengan menggunakan sebuah proses yang bersifat plan-driven dimana
metode pembelajaran permainan simulasi akan semua aktivitas yang akan dilakukan harus
memudahkan dalam memahami serta direncanakan terlebih dahulu sebelum
meningkatkan minat terhadap materi mengerjakannya (Sommerville, 2011). Tahapan
pemrograman java. Metode gamification pada model waterfall dilakukan secara berurutan
digunakan untuk menerapkan sebuah konsep yakni analisis kebutuhan, perancangan sistem,
game yang tepat sehingga dapat memberikan implementasi sistem, pengujian sistem dan
proses yang menyenangkan serta bermanfaat pemeliharaan sistem.
bagi setiap pihak yang terlibat. Sedangkan
metode IOE-Behavior digunakan untuk 3. HASIL DAN PEMBAHASAN
melakukan pemeriksaan terhadap kode sumber
java secara semantik dengan 3.1. Analisis Kebutuhan
mempertimbangkan masukan, keluaran, serta Pada penelitian ini dibangun sebuah sistem
efek yang dihasilkan dari kode sumber java pembelajaran pemrograman java yang atraktif
tersebut. berbasis website. Sistem pembelajaran tersebut
dikembangkan dengan tujuan dapat
2. TEORI meningkatkan minat dan memudahkan
pemahaman mahasiswa FILKOM UB terhadap
2.1. IOE Behavior materi pemrograman java. Mahasiswa dapat
Input, Output and Effects Behavior mempelajari materi pemrograman java berupa
merupakan sebuah metode yang digunakan teks, gambar, atau video, kemudian mahasiswa
dalam mendeteksi kloning kode secara semantik. dapat mengerjakan latihan soal dari setiap
IOE Behavior terbagi dalam 4 proses, yaitu materi, selain itu sistem pembelajaran ini juga
abstraction, filtering, testing, dan collection menyediakan sebuah fitur yang memungkinkan
(Elva, 2012). Metode ini digunakan sebagai mahasiswa untuk menantang mahasiswa lain
dasar dalam melakukan pemeriksaan antara dua dalam keahlian pemrograman java. Dalam
source code java. Pemeriksaan source code mendeteksi kebenaran dari kode yang
tersebut dilakukan dengan cara membandingkan dimasukan oleh pengguna, sistem pembelajaran
keluaran (output) yang dihasilkan oleh masing- ini menggunakan metode IOE-Behavior. Sistem
masing source code dengan masukan (input) pembelajaran ini menggunakan metode
yang sama sebanyak lima (5) kali pemeriksaan. gamification untuk menyediakan sistem

Fakultas Ilmu Komputer, Universitas Brawijaya


Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 1495

pembelajaran yang atraktif, yakni dengan


menerapkan sistem point.
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.

Tabel 2. Algoritma method test_java()


BEGIN test_java(id_question, id_exercise)
SESSION get uid
DB get question by id_question as question
data as new array with exercise_id, member_id, param_case, result,
error, answer, param_count
IF (question.param_type not random)
test_case as new array
explode question.param_case as param
FOREACH param as p
Gambar 1. Diagram Use Case Admin
Fakultas Ilmu Komputer, Universitas Brawijaya
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 1496

IF p not null
temp_case as new array
explode p as case
FOREACH case as c
IF c not null
push c to array temp_case
END IF
END FOREACH
push temp_case to array test_case
END IF
END FOREACH
data.param_case = question.param_case
END IF
key_out as string
user_out as string
FOR i=0 until 5
randoming as new array
key_proc = proc_open java key_file with key_pipes as pipe
IF is_resource = key_proc
IF question.param_type is random
FOR j=0 until question.param_count Gambar 3. Rancangan Antarmuka Menambah
fwrite key_pipes.0 with test_case.i.j Pertanyaan
END FOR
ELSE
FOR j=0 until question.param_count Rancangan antarmuka pengguna untuk
CALL FUNCTION random_value as randomval
push randomval to array randoming halaman mengajukan tantangan dapat dilihat
fwrite key_pipes.0 with randomval melalui Gambar 4, halaman tersebut meminta
END FOR
END IF konfirmasi pengguna dalam mengajukan
fclose keypipes.0 tantangan kepada pengguna lain.
key_out = stream_get_contents from key_pipes.1
delete white spaces on key_out
fclcose key_pipes.1
END IF
user_proc = proc_open java user_file with user_pipes as pipe
IF is_resource = user_proc
IF question.param_type is random
FOR j=0 until question.param_count
fwrite user_pipes.0 with test_case.i.j
END FOR
ELSE
FOR j=0 until question.param_count
fwrite user_pipes.0 with randoming.j
END FOR
END IF
fclose user_pipes.0
user_out = stream_get_contents from user_pipes.1
user_error = stream_get_contents from user_pipes.2
delete white spaces on user_out
fclcose user_pipes.1
END IF Gambar 4. Rancangan Antarmuka Halaman
add user_out to data.result Mengajukan Tantangan
add user_error to data.error
PRINT user_out and key_out Halaman mengerjakan latihan materi yang
IF key_out = user_out
add "True" to data.answer terdapat pada Gambar 5 menampilkan
ELSE penjelasan soal beserta form source code yang
add "False" to data.answer
END IF akan dimasukkan oleh aktor yang digunakan
END FOR untuk menjawab dan tombol “submit answer”
DB insert to exercise with array data
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.
Fakultas Ilmu Komputer, Universitas Brawijaya
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 1497

}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
Tahapan implementasi yang dilakukan tahap sebelumnya. Gambar 6 merupakan
terdiri dari penjelasan tentang spesifikasi implementasi antarmuka pada halaman menambah
lingkungan pengembangan sistem, batasan- pertanyaan, Gambar 7 adalah hasil implementasi
batasan implementasi, implementasi algoritma, antarmuka pada halaman mengajukan tantangan,
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++){
fwrite($key_pipes[0], $test_case[$i][$j]."\n"); Pertanyaan
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>"; } }

Fakultas Ilmu Komputer, Universitas Brawijaya


Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 1498

Tabel 4. Penjelasan Persamaan Kompleksitas


Siklomatis
Simbol Arti
V(G) Jumlah kompleksitas siklomatis
E Sisi atau edge
N Simpul atau node
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
Gambar 8. Implementasi Antarmuka Mengerjakan yang diharapkan menggunakan metode black
Latihan Materi box. Tabel 6 merupakan hasil pengujian validasi
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
pengujian unit dan pengujian validasi. Melakukan masukan secara random
percobaan serta keluaran yang Valid
3.4.1. Pengujian Unit kode java dihasilkan oleh kode
sumber java sebanyak 5
Pengujian ini dilakukan untuk menentukan kasus.
jumlah cyclomatic complexity (kompleksitas
siklomatis) dan menentukan jalur independen Sistem menampilkan
informasi bahwa compile
dari pseudocode method dalam system yang
kode sumber telah
telah diubah menjadi flow graph. Jumlah Menjalankan
berhasil dan sistem
kompleksitas siklomatis diperoleh dengan compile kode Valid
java menampilkan tombol
menggunakan persamaan (1), (2) dan (3), “Test Code” untuk
kemudian disertai dengan penjelasan pada Tabel melakukan percobaan
4. kode sumber

V(G) = E-N+2 (1) Sistem menampilkan


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

Fakultas Ilmu Komputer, Universitas Brawijaya


Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 1499

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
member lain di dalam sistem pembelajaran
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
Engineering. Ninth Edition. New York:
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.

Fakultas Ilmu Komputer, Universitas Brawijaya

Anda mungkin juga menyukai