Sistem bank soal dengan tipe soal code menggunakan framework yii

SISTEM BANK SOAL DENGAN TIPE SOAL CODE
MENGGUNAKAN FRAMEWORK YII

RONI RAHMON

DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2014

PERNYATAAN MENGENAI SKRIPSI DAN
SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA
Dengan ini saya menyatakan bahwa skripsi berjudul Sistem Bank Soal
dengan Tipe Soal Code Menggunakan Framework Yii 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, Juni 2014
Roni Rahmon
NIM G64080093

ABSTRAK
RONI RAHMON. Sistem Bank Soal dengan Tipe Soal Code Menggunakan
Framework Yii. Dibimbing oleh AHMAD RIDHA.
Penelitian ini bertujuan membangun sistem bank soal berbasis web yang
dapat menyimpan dan menyajikan soal dalam bentuk tes atau kuis. Sistem ini
dibangun dengan model pengembangan spiral menggunakan PHP dan framework
Yii. Selain mendukung pembuatan, penyimpanan, dan penyajian soal dengan tipe
soal sederhana, seperti tipe soal isian dan pilihan, sistem ini juga mempunyai fitur
perbanyakan soal, yang disebut tipe soal Code. Tipe soal Code akan
memperbanyak soal yang berasal dari template soal dengan mengganti kode-kode
pada template soal dengan nilai dataset yang dihasilkan oleh program eksternal.
Penggunaan program eksternal bertujuan membuat soal dengan dataset dan
jawaban yang lebih dinamis dalam waktu singkat. Satu soal dalam sistem ini
dapat dikaitkan dengan beberapa capaian pembelajaran yang ada pada suatu mata
kuliah. Student yang mengikuti suatu mata kuliah dapat dikelompokkan menjadi

beberapa grup sehingga dapat mempermudah dalam pembagian jadwal kuis.
Kata kunci: bank soal, e-learning, framework Yii.

ABSTRACT
RONI RAHMON. Question Bank System with Code Question Type Using Yii
Framework. Supervised by AHMAD RIDHA.
This research aims to develop a web-based question bank system that can
save and present questions in the form of test or quiz. This system is developed
with the spiral model development using PHP and Yii framework. Besides
supporting the making, saving, and presenting simple question types such as fillin-the blank and multiple choice, this system also features question generating,
called with the Code question type. Code question type generetes questions from a
question template by subtituting the codes in the question template with the
dataset values resulted from external programs. The use of external programs aims
at quickly generating questions with more dynamic dataset and answers. One
question in this system can be related with multiple learning outcomes. Students
who are enrolled in a course can be grouped into several groups, so as to facilitate
the arrangement of multiple quiz shifts.
Keywords: question bank, e-learning, Yii framework.

SISTEM BANK SOAL DENGAN TIPE SOAL CODE

MENGGUNAKAN FRAMEWORK YII

RONI RAHMON

Skripsi
sebagai salah satu syarat untuk memperoleh gelar
Sarjana Ilmu Komputer
pada
Departemen Ilmu Komputer

DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2014

Penguji :
1 Dr Wisnu Ananta Kusuma, ST MT
2 Firman Ardiansyah, SKom MS


Judul Skripsi : Sistem Bank Soal dengan Tipe Soal Code Menggunakan
Framework Yii
Nama
: Roni Rahmon
NIM
: G64080093

Disetujui oleh

Ahmad Ridha, SKom MS
Pembimbing

Diketahui oleh

Dr Ir Agus Buono, MSi MKom
Ketua Departemen

Tanggal Lulus:

PRAKATA

Puji dan syukur penulis panjatkan kepada Allah subhanahu wa ta’ala atas
segala karunia-Nya sehingga karya ilmiah ini berhasil diselesaikan. Tema yang
dipilih dalam penelitian yang dilaksanakan sejak bulan Februari 2014 ini ialah
sistem bank soal, dengan judul Sistem Bank Soal dengan Tipe Soal Code
Menggunakan Framework Yii.
Banyak pihak yang telah memberikan bantuan baik bersifat materi maupun
moral kepada penulis dalam menyelesaikan penelitian ini. Oleh sebab itu, penulis
ingin menyampaikan rasa terima kasih sebesar-besarnya kepada:
1 Ayahanda Drs H Syafrinal, Ibunda Nurmainis, serta kakak tercinta Novi Fitria,
Nely Rahmah, dan Elwida Rahmi yang senantiasa mendoakan, mendukung
serta memberikan motivasi dan kesabarannya dalam mengingatkan penulis
untuk menyelesaikan tugas akhir.
2 Bapak Ahmad Ridha, SKom MS selaku pembimbing yang telah banyak
memberi pengarahan, saran, dan motivasi dalam penyelesaian tugas akhir.
3 Bapak Dr Wisnu Ananta Kusuma, ST MT dan Bapak Firman Ardiansyah,
SKom MS selaku dosen penguji yang telah memberikan kritik dan saran yang
membangun.
4 Seluruh staf pengajar Ilmu Komputer IPB atas ilmu dan bimbingan selama
penulis berkuliah di almamater ini.
5 Rekan-rekan di Departemen Ilmu Komputer IPB angkatan 45 atas segala

kebersamaan, semangat, dan motivasi kepada penulis selama ini.
Dan semua pihak yang tidak dapat disebutkan satu per satu. Jazakumullahu
khairan.
Semoga karya ilmiah ini bermanfaat.

Bogor, Juli 2014
Roni Rahmon

DAFTAR ISI
DAFTAR TABEL

vi

DAFTAR GAMBAR

vi

DAFTAR LAMPIRAN

vi


PENDAHULUAN

1

Latar Belakang

1

Tujuan Penelitian

2

Manfaat Penelitian

3

Ruang Lingkup Penelitian

3


METODE

3

Customer Communication

4

Planning

4

Risk Analysis

4

Engineering

4


Construction and release

5

Customer evaluation

5

HASIL DAN PEMBAHASAN

5

Prototype 1

5

Prototype 2

9


Prototype 3

13

SIMPULAN DAN SARAN

15

Simpulan

15

Saran

15

DAFTAR PUSTAKA

16


LAMPIRAN

17

RIWAYAT HIDUP

31

DAFTAR TABEL
1
2
3
4
5
6
7
8

Spesifikasi perangkat keras dan perangkat lunak pengembangan sistem
Kebutuhan non-fungsional sistem
Kebutuhan fungsional sistem
Hasil pengujian prototype 1
Kebutuhan fungsional prototype 2
Hasil pengujian prototype 2
Kebutuhan fungsional prototype 3
Hasil pengujian prototype 3

4
5
6
9
10
13
14
14

DAFTAR GAMBAR
1
2
3
4
5
6
7

Model pengembangan spiral (Pressman 2001)
ERD prototype 1
Sequence diagram pembuatan tipe soal Code
Database diagram prototype 1
Use case diagram sistem bank soal
ERD prototype 2
Sequence diagram memulai dan menjawab kuis

3
6
7
8
10
11
12

DAFTAR LAMPIRAN
1
2
3
4
5
6
7
8
9
10
11
12
13

Rancangan antarmuka sistem
Halaman form pembuatan tipe soal Code
Contoh source program input
Contoh source program output
Struktur navigasi sistem bank soal
Flow chart sistem bank soal
Database diagram prototype 2
Halaman form pembuatan kuis
Halaman pengaturan soal pada kuis
Database diagram prototype 3
Keterangan atribut tabel database
Halaman form pembuatan tipe soal pilihan
Halaman form pembuatan tipe soal isian

17
17
18
19
20
21
23
24
24
25
26
29
30

PENDAHULUAN
Latar Belakang
Evaluasi pembelajaran merupakan salah satu bagian penting dalam proses
pembelajaran. Evaluasi pembelajaran dapat diartikan sebagai proses berkelanjutan
mengenai pengumpulan dan penafsiran informasi untuk menilai keputusankeputasan yang dibuat dalam proses dan perancangan sistem pembelajaran.
Evaluasi merupakan salah satu cara yang dapat dilakukan untuk mengetahui
kesuksesan suatu proses pembelajaran.
Salah satu teknik yang digunakan dalam evaluasi ini adalah teknik tes.
Teknik tes merupakan suatu cara untuk mengadakan penilaian yang menggunakan
perangkat soal yang harus dikerjakan oleh peserta didik dalam batas waktu
tertentu. Hasil tes dapat digunakan oleh pengajar, sekolah, atau institusi
kependidikan lainnya untuk mengambil keputusan atau umpan balik untuk
perbaikan proses belajar mengajar. Dalam suatu proses pengukuran sangat
diperlukan tes yang bermutu baik dengan soal-soal yang mengacu kepada tujuan
pembelajaran yang harus dicapai siswa dan pemberian skor sesuai dengan standar
yang telah ditetapkan. Untuk membuat tes terstandar yang dapat digunakan setiap
saat, dibutuhkan soal yang cukup banyak. Kebutuhan soal yang banyak tersebut
dapat diatasi apabila terdapat bank soal sebagai sarana penyimpanan.
Bank soal adalah kumpulan soal-soal dalam jumlah yang besar, dan
mengukur pengetahuan yang sama, disimpan di dalam komputer bersama dengan
karakteristik setiap soalnya. Bank soal ini perlu dibuat dan harus selalu
dikembangkan karena: (1) Dapat menyiapkan tes yang dibutuhkan secara rutin
dan lebih dari satu set; (2) Memungkinkan diterapkannya tes melalui komputer,
sehingga setiap saat peserta tes dapat mengikuti tes kapan saja; dan (3)
Menyediakan tes yang berkualitas dan dapat dipertanggungjawabkan (Puspendik
2007). Tes berbasis komputer tampak lebih memiliki keunggulan dibanding tes
menggunakan kertas dan pensil, baik bagi penyelenggara tes dan bagi siswa yang
berpartisipasi dalam tes tersebut. Tes berbasis komputer merupakan jawaban bagi
penyajian tes yang cepat dan murah. Banyak manfaat positif dari pelaksanaan tes
berbasis komputer di antaranya administrasi yang efisien, lebih disukai siswa,
dapat dikerjakan secara mandiri oleh siswa, peningkatan kinerja menulis, hasil
yang cepat, pembuatan soal yang lebih efisien, meningkatkan keabsahan, dan
berpotensi untuk mengalihkan fokus dari penilaian kepada pengajaran (Becker
2006; Salend 2009; Thompson et al. 2002; Thurlow et al. 2010).
Sistem bank soal telah banyak dikembangkan pada saat ini, dari sistem bank
soal sederhana sampai pada sistem bank soal yang lebih kompleks, dan
merupakan bagian dari learning management system (LMS). Salah satu sistem
bank soal yang banyak dipakai oleh institusi pendidikan dan juga dipakai oleh
IPB1 sendiri adalah LMS Moodle 2. LMS Moodle ini memiliki kekurangan pada
pembuatan soalnya yakni tidak adanya fitur untuk mengaitkan ke beberapa
capaian pembelajaran. Pada kenyataanya sebuah soal bisa saja terkait dengan
beberapa capaian pembelajaran yang dimiliki suatu pelajaran.
1
2

https://lms.ipb.ac.id/
https://moodle.org/

2
LMS Moodle mendukung banyak tipe soal untuk bank soalnya. Salah satu
tipe soal yang menarik pada Moodle adalah tipe soal Calculated. Tipe soal ini
dapat menghasilkan banyak soal dari sebuah template soal dengan mengganti
variabel atau kode tertentu pada teks soal dengan sebuah nilai dataset. Tipe soal
ini sangat membantu untuk menghasilkan banyak soal dengan bentuk yang sama
dan tingkat kesulitan yang sama tanpa perlu menghitung jawaban soal secara
manual. Akan tetapi, tipe soal ini tidak dapat menghasilkan dataset secara
otomatis yang nilainya mempunyai kondisi tertentu. Sistem Moodle hanya dapat
menghasilkan dataset sebanyak nilai count secara acak dari rentang nilai
dimasukkan user. Sebagai contoh, sebuah soal dengan tipe Calculated berisikan
teks soal “Tentukan hasil dari log2 {dataset_a}”, soal tersebut merupakan sebuah
soal logaritma basis 2 dengan kode {dataset_a} yang akan disubtitusikan oleh
sebuah nilai yang dihasilkan sistem secara acak dari rentang yang dimasukkan
user. Untuk dapat dihitung oleh siswa, nilai {dataset_a} merupakan nilai 2n,
dengan n >= 0. Kondisi nilai dataset tersebut tidak dapat dihasilkan secara
otomatis oleh sistem Moodle. Nilai tersebut hanya dapat dihasilkan dengan
mengubah secara manual nilai yang telah dihasilkan sistem untuk rentang yang
dimasukkan. Terdapat beberapa kekurangan lain pada tipe soal Calculated yaitu
formula untuk menghitung jawaban soal hanya terbatas pada fungsi-fungsi yang
ada pada sistem dan satu soal pada tipe Calculated hanya memiliki satu kotak
jawaban soal atau satu pertanyaan soal.
Melihat adanya permasalahan dan kelemahan dari sistem yang sudah ada
tersebut, perlu dikembangkan suatu sistem bank soal berbasis web yang dapat
menyimpan dan menyajikan beberapa tipe soal dalam bentuk kuis. Selain
mendukung tipe soal sederhana seperti tipe soal isian dan pilihan, sistem ini juga
mempunyai satu tipe soal bernama Code dengan fitur seperti halnya dengan tipe
soal Calculated pada Moodle. Tipe soal Code akan memiliki 2 jenis dataset yang
dihasilkan dari program eksternal, yaitu dataset input dan dataset output.
Penggunaan program eksternal bertujuan menghasilkan dataset yang dinamis
tidak bergantung pada sistem utama. Sistem akan mengganti kode-kode input
pada teks soal dengan suatu nilai dari dataset input secara acak, dan kode-kode
output akan diganti dengan textbox sebagai kotak jawaban yang nilainya
bergantung pada dataset input yang terpilih. Tipe soal Code dapat menampung
banyak input atau output pada satu soalnya sehingga sebuah soal tipe Code bisa
memiliki lebih dari satu kotak jawaban. Satu soal pada sistem bank soal ini dapat
dikaitkan dengan beberapa capaian pembelajaran yang dimiliki oleh suatu mata
kuliah. Capaian pembelajaran pada suatu soal akan membantu pembuat soal
dalam merancang soal yang akan dibuat dan membantu dalam memilih soal yang
akan ditambahkan ke dalam suatu kuis.

Tujuan Penelitian
Tujuan dari penelitian ini adalah mengembangkan sistem bank soal dengan
fitur perbanyakan soal yang memanfaatkan program eksternal.

3
Manfaat Penelitian
Hasil penelitian ini diharapkan dapat membantu mengurangi masalahmasalah yang dihadapi dalam proses evaluasi pembalajaran berupa tes, seperti
penyimpanan, penyajian dan penskoran soal. Penelitian ini juga diharapkan dapat
dijadikan dasar untuk pengembangan sistem bank soal selanjutnya.

Ruang Lingkup Penelitian
Penelitian ini dilakukan dengan batasan sebagai berikut:
1 Penelitian difokuskan pada pengembangan fitur dasar aplikasi bank soal, dan
pengembangan fitur penggandaan atau perbanyakan soal pada sistem bank soal.
2 Dataset input dan output pada fitur perbanyakan soal dihasilkan oleh program
eksternal yang harus dibuat oleh pembuat soal.

METODE
Sistem bank soal ini merupakan sistem berbasis web yang dikembangkan
dengan pendekatan metode spiral model. Model pengembangan spiral adalah
model software yang evolusioner yang merangkai sifat iterative dari prototype
dengan kontrol dan aspek sistematis dari linear sequential model. Model ini
memberikan potensi untuk pengembangan versi incremental software secara cepat.
Dengan menggunakan spiral model, software akan dikembangkan dengan
serangkaian rilis incremental. Selama awal iterasi, rilis incremental dapat berupa
prototype. Selama iterasi berikutnya, dihasilkan versi sistem yang bertambah
lengkap (Pressman 2001).

Gambar 1 Model pengembangan spiral (Pressman 2001)

4
Spiral model dibagi menjadi sejumlah aktivitas kerangka kerja, disebut juga
wilayah tugas. Biasanya, ada antara 3 hingga 6 wilayah tugas. Gambar 1
menggambarkan spiral model yang terdiri atas 6 wilayah tugas.

Customer Communication
Pada tahapan ini dilakukan komunikasi dengan customer yang merupakan
dosen pembimbing dari penulis. Komunikasi dilakukan dengan tujuan
mengetahui kebutuhan-kebutuhan sistem yang akan dikembangkan.

Planning
Tahap perencanaan merupakan tahap untuk mendefenisikan sumber daya,
timelines, dan informasi lain yang terkait dalam pengembangan sistem bank soal.
Perancangan dimulai dengan melakukan identifikasi perangkat lunak dan
perangkat keras yang dibutuhkan dalam pengembangan sistem. Spesifikasi
perangkat lunak dan perangkat keras pengembangan sistem ini dapat dilihat pada
Tabel 1. Sistem ini dijadwalkan selesai pada Juni 2014.

Risk Analysis
Tahapan ini merupakan tahapan untuk menilai resiko teknis dan manajemen
selama pengembangan sistem. Pada pengembangan sistem bank soal ini tidak
dilakukan tahapan risk analysis karena sistem dikembangkan dengan scope yang
kecil, sistem belum dirilis, dan sistem belum digunakan.

Engineering
Representasi dari sistem bank soal akan dihasilkan pada tahapan ini.
Tahapan ini meliputi perancangan content, perancangan arsitektur, perancangan
navigasi dan perancangan antarmuka. Perancangan content merupakan
perancangan database yang isinya disesuaikan dengan kebutuhan sistem bank soal.
Perancangan arsitektur berkaitan dengan struktur kinerja sistem. Perancangan
navigasi merupakan tahap untuk menentukan jalur navigasi ke setiap halaman
sistem bank soal.
Tabel 1 Spesifikasi perangkat keras dan perangkat lunak
pengembangan sistem





Perangkat Keras
Hard disk 500GB
Processor Intel Core i5 M430
RAM DDR3 2GB
VGA Nvidia GeForce 310M






Perangkat Lunak
Sistem operasi Windows 8.1 32 bit
XAMPP 1.8.1 (Apache 2.4.3,
MySQL 5.5.27, PHP 5.4.7)
Yii Framework 1.1.14
IDE Netbeans 8.0

5
Construction and release
Tahapan ini merupakan tahap untuk mengkonstruksi, test, install, dan
memberikan user support dari sistem bank soal yang telah dikembangkan. Sistem
bank soal akan dikembangkan dengan menggunakan bahasa pemrograman PHP
dan DBMS MySQL. Hasil pengembangan sistem bank soal akan diuji dengan
beberapa kasus uji yang disesuaikan dengan kebutuhan dan fitur yang
dikembangkan.

Customer evaluation
Sistem bank soal yang telah dikembangkan akan dievaluasi oleh custuomer.
Hasil evaluasi akan menentukan apa yang akan dilakukan untuk pengmbangan
selanjutnya. Evaluasi dilakukan dengan mendemokan sistem atau fitur yang telah
dikembangkan kepada customer.

HASIL DAN PEMBAHASAN
Prototype 1
Customer Communication
Hasil komunikasi menunjukkan bahwa customer menginginkan sebuah
sistem bank soal berbasis web yang memiliki fitur perbanyakan soal untuk
mempermudah dalam pembuatan banyak soal dengan bentuk dan kesulitan yang
sama.
Engineering
Kebutuhan sistem dapat dikelompokkan menjadi kebutuhan fungsional dan
kebutuhan non-fungsional. Kebutuhan non-fungsional sistem disajikan pada Tabel
2. Kebutuhan fungsional sistem dipaparkan dalam Tabel 3.
Kebutuhan-kebutuhan sistem akan diterjemahkan ke dalam bentuk ERD dan
sequence diagram. ERD yang dihasilkan dapat dilihat pada Gambar 2. Alur
pembuatan soal bertipe Code digambarkan oleh sequence diagram yang dapat
dilihat pada Gambar 3. Hasil perancangan antarmuka sistem dapat dilihat pada
Lampiran 1.
Tabel 2 Kebutuhan non-fungsional sistem
Kode
KNF-01

Parameter
Avaibility

KNF-02

Security

Kebutuhan
Sistem dapat beroperasi dan diakses kapan saja
tanpa ada masalah, dengan asusmsi tidak terjadi
hal-hal mengganggu akses pada server
Keamanan sistem menggunakan username dan
password

6
Tabel 3 Kebutuhan fungsional sistem
Kode
KF-01
KF-02
KF-03
KF-04

Kebutuhan
Sistem yang mampu menyimpan data soal dengan berbagai tipe soal
secara dinamis dan menampilkan soal berdasarkan tipe soal
Sistem yang mampu menyimpan dan menampilkan template soal yang
bisa digunakan untuk banyak dataset soal (tipe soal Code)
Sistem yang mampu menghasilkan dataset untuk tipe soal code
Sistem yang dapat menampilkan capaian pembelajaran dan soal yang
dimiliki oleh suatu mata kuliah

Class diagram tidak dirancang pada pengembangan sistem bank soal ini,
karena sistem bank soal dikembangkan dengan PHP framework Yii. Yii
merupakan framework PHP yang menggunakan arsitektur model-view-controller
(MVC). MVC bertujuan memisahkan logika bisnis dari pertimbangan antarmuka
pengguna agar para pengembang lebih mudah mengubah setiap bagian tanpa
mempengaruhi yang lain. Dalam MVC model menggambarkan informasi data dan
aturan bisnis, view berisi elemen antarmuka pengguna sepert teks dan input form,
sementara controller mengatur komunikasi antara model dan view. Suatu model
pada Yii mewakili suatu objek data tunggal. Model ini dapat berupa suatu baris
data pada tabel dalam database atau sebuah form HTML dengan field input user.
Setiap field atau objek data diwakili oleh sebuah atribut model. Atribut memiliki
sebuah label dan dapat divalidasi terhadap sekumpulan aturan. Yii
mengimplementasikan 2 jenis model, model form dan active record. Active record
merupakan sebuah pattern yang digunakan untuk mengabstraksi akses database
dalam bentuk object-oriented. Active record pattern umumnya ditemukan pada
sistem yang menyimpan datanya pada relational database. Dengan menggunakan
active record pattern setiap tabel pada database akan dibungkus menjadi sebuah
class yang merupakan turunan dari class active record. Pada Yii setiap objek
active record adalah instance dari CActiveRecord yang mewaklili sebuah baris
tunggal dalam tabel database (Yii 2010).

Gambar 2 ERD prototype 1

7

Gambar 3 Sequence diagram pembuatan tipe soal Code
Construction and release
ERD hasil tahapan sebelumnya diubah ke dalam bentuk tabel-tabel pada
database. Hasil implementasi ERD yang digambarkan oleh database diagram
ditunjukkan pada Gambar 4. Hasil implementasi terhadap form pembuatan soal
bertipe Code dapat dilihat pada Lampiran 2. Soal bertipe Code merupakan sebuah
soal yang menyimpan teks soal berisikan kode-kode yang telah ditentukan format
penulisannya, dan ketika ditampilkan kode-kode tersebut akan digantikan oleh
suatu nilai dataset yang diambil dari database secara acak. Terdapat 2 jenis
dataset pada tipe soal Code, yaitu dataset input dan dataset output. Dataset input
berisikan nilai-nilai yang mempengaruhi nilai dataset output dan dataset output
akan diubah menjadi textbox ketika ditampilkan.
Berikut adalah format penulisan kode untuk dataset input dan output pada
soal bertipe Code.
INPUT:
{INPUT:name"";type="";para
m="";}

OUTPUT:
{OUTPUT:name="";type="";gr
ade="";}

Contoh teks soal :
Jika a = {INPUT:name="a";type="INT";param="10 20";} dan
b = {INPUT:name="b";type="INT";param="1 5 25";}
Maka: Hasil bagi dari a/b = {OUTPUT:
name="hasil";type="INT"; grade="30";} Sisa hasil bagi
dari a/b = {OUTPUT: name="sisa";type="INT";grade="70";}

8

Gambar 4 Database diagram prototype 1
Name pada dataset digunakan sebagai penciri dataset pada teks soal,
sehingga dengan adanya name dapat mempermudah dalam mengganti kode-kode
dataset dengan suatu nilai atau textbox ketika soal ditampilkan. Type pada kode
dataset input hanya dijadikan penanda tipe data yang akan dihasilkan program dan
tidak mempengaruhi nilai apa pun pada soal. Type pada kode dataset output selain
sebagai penanda tipe data output nilai yang dihasilkan, juga dijadikan sebagai cara
mengecek jawaban soal yang dikirimkan. Untuk tipe INT dan VAR jawaban akan
dicek berdasarkan kesamaan jawaban yang dikirim dengan dataset output yang
tersimpan. Pengecekan jawaban dataset tipe VAR dengan cara seperti ini tentu
saja mempunyai banyak kekurangan. Jawaban yang dikirim harus benar-benar
sama penulisannya dengan dataset output yang disimpan, ketika terdapat
perbedaan letak space dan jumlah space akan mengakibatkan pengecekan
jawaban menghasilkan nilai 0 atau salah. Untuk dataset output bertipe FLOAT,
jawaban akan dicek kebenarannya dengan menghitung nilai galat relatif, ketika
galat relatif antara dataset output dan jawaban yang dikirim lebih kecil dari 0.05
maka jawaban dianggap benar, begitu juga sebaliknya, ketika galat relatif lebih
besar dari 0.05 maka jawaban akan dianggap salah.
Grade pada dataset output merupakan bobot nilai yang diberikan untuk
setiap jawaban benar dari dataset output yang ada pada teks soal. Pemberian
bobot pada dataset output bertujuan memberikan nilai yang adil untuk setiap
kotak isian pada suatu soal Code, sehingga untuk kotak isian dengan jawaban
yang relatif lebih sulit bisa saja mempunyai bobot nilai yang lebih tinggi. Pembuat
soal dapat dengan bebas memberikan nilai bobot untuk setiap dataset output.
Pemberian nilai untuk jawaban satu soal Code dilakukan dengan cara membagi
total bobot jawaban benar oleh user dengan total seluruh grade dataset output
pada soal tersebut.

9
Tabel 4 Hasil pengujian prototype 1
No.
1
2
3
4
3

Test Case
CRUD mata kuliah
CRUD tujuan instruksional
Create dan update tipe soal Code
Cek jawaban tipe soal Code
Validation form

Status
Berhasil
Berhasil
Berhasil
Berhasil
Berhasil

Dataset pada soal bertipe Code dihasilkan oleh program eksternal yang
dipanggil oleh sistem untuk dijalankan. Program eksternal ini dibuat oleh user
yang akan membuat soal. Setiap soal akan memiliki 2 jenis program eksternal,
yaitu program input dan program output. Sistem akan memanggil program
bersangkutan dengan argument parameter masing-masing dataset input dan
dataset output. Program input akan menangani semua dataset input yang muncul
pada teks soal dan akan menghasilkan nilai masing-masing dataset input sebanyak
nilai count. Output dari program input akan dicetak berdasarkan urutan
kemunculan kode dataset input pada teks soal, dan dipisahkan oleh new line untuk
masing-masing kelompok dataset. Masing-masing kelompok output dari program
input akan digunakan oleh program output untuk menghasilkan dataset output,
jadi sistem akan menjalankan program output sebanyak nilai count. Parameter
yang dikirimkan ke program diurutkan berdasarkan urutan kemunculan pada teks
soal. Masing-masing output dari program harus dicetak berdasarkan urutan
kemunculan kode dataset output pada teks soal. Berikut ini adalah format
command-line argument pemanggilan program eksternal oleh sistem.
INPUT : nama_program.exe *
contoh : input.exe 100 10 20 15 25
OUTPUT : nama_program.exe +
contoh: output.exe 14 7
Contoh source program untuk dataset input dapat dilihat pada Lampiran 3.
Contoh source program untuk dataset output dapat dilihat pada Lampiran 4. Hasil
pengujian yang dilakukan pada tahapan ini dapat dilihat pada Tabel 4.
Customer Evaluation
Hasil tahapan sebelumnya akan dievaluasi oleh customer. Evaluasi yang
diberikan adalah perbaikan terhadap antarmuka sistem.

Prototype 2
Custummer Communication
Customer menginginkan soal yang telah dibuat akan ditampilkan dalam
bentuk kuis. Agar kuis yang dibuat terjamin kerahasiaan dan keabsahannya
diperlukan pembagian tingkatan pengguna sistem bank soal.

10
Tabel 5 Kebutuhan fungsional prototype 2
Kode
KF-05
KF-06
KF-07
KF-08
KF-09
KF-10

Kebutuhan
Sistem yang mampu menampilkan soal dalam bentuk kuis dan
memberi grade atau nilai kuis yang dikerjakan user
Sistem yang mampu menampilakan data soal berdasarkan kuis dan
mata kuliah
Sistem yang mampu menampilkan nilai atau grade hasil
pengerjaan kuis
Sistem yang mampu melakukan ekspor data nilai ke file Excel
Sistem yang mampu membedakan hak akses user berdasarkan user
level, mata kuliah yang diikuti, dan grup student
Sistem yang mampu melakukan impor file CSV untuk input data
student beserta grup pada suatu mata kuliah

Engineering
Kebutuhan fungsional dari prototype 2 ini dipaparkan pada Tabel 5. Sistem
ini memiliki 3 tingkatan pengguna, yaitu teacher, student, dan admin. Pembagian
hak akses ini berdasarkan business rule sistem. Gambaran business rule ini dibuat
dalam bentuk use case diagram yang dapat dilihat pada Gambar 5. Setiap student
dan teacher hanya dapat membuka halaman mata kuliah dan kuis yang diikutinya.
Seorang admin hanya dapat memanipulasi data user dan data mata kuliah. ERD
yang dihasilkan dapat dilihat pada Gambar 6. Selain ERD, pada tahapan ini juga
dihasilkan sequence diagram yang dapat dilihat pada Gambar 7. Sequence
diagram yang dihasilkan adalah skenario sistem diwaktu student memulai dan
menjawab suatu kuis.

Gambar 5 Use case diagram sistem bank soal

11

Gambar 6 ERD prototype 2
Pengguna sistem harus memasukkan username dan password untuk dapat
mengakses halaman sistem. Struktur navigasi sistem dapat dilihat pada Lampiran
5. Proses-proses yang terjadi untuk setiap user pada sistem digambarkan dengan
flow chart dapat dilihat pada Lampiran 6.
Construction and Release
Hasil implementasi dari ERD tahapan design berupa database diagram
dapat dilihat pada Lampiran 7. Database diagram yang dihasilkan merupakan
hasil normalisasi akhir, kecuali pada tabel user_attempt. Tabel user_attempt
merupakan tabel untuk menyimpan data jawaban kuis berdasarkan percobaan
melakukan jawaban. Tabel ini sengaja tidak dinormalkan agar dapat menyimpan
jawaban dari berbagai tipe soal dan atribut pendukung suatu soal. Tipe soal Code
dan pilihan bisa saja memiliki banyak jawaban. Atribut answer pada tabel
user_attempt akan berisikan array jawaban kuis yang telah diubah ke dalam
bentuk text dengan fungsi PHP serialize. Ketika dipanggil kembali nilai dari
atribut ini dapat dengan mudah dikembalikan lagi ke dalam bentuk array dengan
fungsi deserialize.
Halaman form untuk pembuatan suatu kuis dapat dilihat pada Lampiran 8.
Waktu buka dan waktu tutup pada kuis merupakan waktu kuis dapat mulai diakses
dan waktu batas kuis tidak bisa diakses lagi. Durasi merupakan lamanya waktu
yang disediakan untuk mengerjakan suatu kuis. Jumlah percobaan melakukan kuis
dibatasi sebanyak nilai maksimum percobaan. Penalty factor merupakan faktor
pengali untuk potongan nilai terhadap percobaan user mengirim jawaban soal.
Nilai akan dipotong berdasarkan penalty factor dan banyaknya percobaan
mengirimkan jawaban oleh student. Jika penalty factor sama dengan 0, student
dapat dengan bebas melakukan pengiriman jawaban tanpa ada potongan nilai pada
setiap percobaan pengiriman jawaban.

12

Gambar 7 Sequence diagram memulai dan menjawab kuis
Suatu kuis dapat memiliki banyak soal dengan tipe soal yang bervariasi.
Soal pada kuis juga dapat memiliki grade yang bervariasi untuk setiap butir
soalnya. Hal ini dapat digunakan untuk membedakan nilai atau grade berdasarkan
tingkat kesulitan suatu soal. Pada halaman pengaturan soal pada kuis (Lampiran
9), terdapat fitur untuk filter soal berdasarkan capaian pembelajaran. Hal ini dapat
mempermudah teacher untuk memilih soal yang akan ditambahkan pada suatu
mata kuliah.
Setelah user mengerjakan kuis, sistem akan menyimpan data kuis ke dalam
database, data yang disimpan dalam database antara lain jawaban user, attempt
menjawab suatu soal pada kuis, attempt pengerjaan kuis, nilai jawaban soal,
atribut pendukung suatu soal, dan waktu menjawab soal. Terdapat 2 halaman
untuk menampilkan data nilai user pada sistem bank soal. Pertama, halaman nilai
untuk seluruh kuis pada mata kuliah. Halaman ini akan menampilkan seluruh kuis
pada mata kuliah untuk seluruh user yang terdaftar. Nilai kuis dikelompokkan
berdasarkan nama kuis, untuk itu diharapkan kuis memiliki nama yang unik untuk
setiap mata kuliah, kecuali jika kuis dengan nama yang sama tapi diperuntukkan
untuk grup student yang berbeda. Kedua, halaman nilai masing-masing jawaban
soal pada suatu kuis. Nilai jawaban soal akan dikelompokkan berdasarkan nama
soal, untuk itu diharapkan setiap soal pada suatu kuis memiliki nama yang
berbeda.
Sistem ini belum memiliki fitur registrasi user, user hanya dapat
ditambahkan oleh admin yang telah terdaftar pada sistem. Penambahan student
dan teacher hanya bisa dilakukan setelah memilih mata kuliah yang akan diikuti
atau dikelola oleh user. Teacher yang mengelola suatu mata kuliah hanya dapat
ditambahkan oleh admin atau teacher yang telah terdaftar pada mata kuliah
tersebut. Untuk menambahkan student dilakukan dengan menggunakan file CSV,
file ini berisikan nomor induk, nama, dan grup semua student untuk mata kuliah
yang bersangkutan. Setiap item dipisahkan dengan tanda koma dan setiap baris
data mahasiswa dipisahkan oleh new line. Format penulisan isi file CSV adalah
sebagai berikut:
Format: ,,

13
Hasil pengujian untuk tahapan ini dipaparkan dalam Tabel 6. Hasil
pengujian pada impor grup student dengan total 20 row data mengalami error
max_execution_time. Hal ini disebabkan karena sistem melakukan enkripsi
password dengan fungsi hash untuk setiap student yang belum terdaftar. Masalah
ini tidak akan terjadi jika student telah terdaftar pada sistem. Untuk mengatasi hal
tersebut, diberikan password yang sama untuk setiap user yang dimasukkan dan
belum terdaftar pada sistem.
Customer Evaluation
Customer cukup puas dengan sistem yang dihasilkan pada tahapan ini,
namun customer menginginkan tambahan tipe soal lain agar adanya variasi jenis
soal pada kuis yang akan disajikan.

Prototype 3
Engineering
Kebutuhan fungsional yang ditambahkan untuk prototype ini disajikan pada
Tabel 7. Tipe soal pilihan merupakan tipe soal pilihan ganda yang memiliki
pilihan jawaban yang bervariasi dan kemungkinan jawaban yang bisa lebih dari
satu jawaban untuk setiap soal. Soal isian merupakan soal dengan isian singkat.
Tabel 6 Hasil pengujian prototype 2
No.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

Test Case
Create kuis, tambah dan delete soal pada kuis
User level akses
Filter data soal berdasarkan capaian pembelajaran
Preview kuis
Mulai mengerjakan kuis dan submit semua
jawaban
Auto submit semua jawaban ketika durasi kuis
habis
Simpan jawaban dan nilai ke database
Penalty factor jawaban kuis
View dan ekspor data nilai
Impor dari file CSV 10 row student yang belum
terdaftar
Impor dari file CSV 100 row student yang telah
terdaftar
Impor dari file CSV 20 row student yang belum
terdaftar
Tambah dan hapus teacher ke- dan dari mata
kuliah
Hapus student dari mata kuliah
Hapus user dari sistem
Ubah profil user

Status
Berhasil
Berhasil
Berhasil
Berhasil
Berhasil
Berhasil
Berhasil
Berhasil
Berhasil
Berhasil
Berhasil
Tidak Berhasil
Berhasil
Berhasil
Berhasil
Berhasil

14
Tabel 7 Kebutuhan fungsional prototype 3
Kode
KF-11
KF-12

KF-13

Kebutuhan
Sistem yang mampu menyimpan dan menyajikan berbagai tipe
soal.
Sistem yang mampu menyimpan dan menyajikan tipe soal
pilihan dengan jumlah pilihan dan jawaban benar yang
bervariasi.
Sistem yang mampu menyimpan dan menyajikan tipe soal isian
dengan kemungkinan jawaban benar lebih dari satu jawaban.

Soal isian ini bisa saja memiliki kemungkinan jawaban yang lebih dari satu
jawaban.
Tipe soal isian dan pilihan menggunakan tabel yang sama untuk menyimpan
data nya yaitu tabel answer. Tabel ini berelasi dengan tabel question dengan relasi
one-to-many, sehingga satu soal pilihan dan isian bisa saja memiliki kemungkinan
jawaban yang lebih dari satu jawaban benar.
Construction and Release
Database diagram yang dihasilkan pada tahapan ini dapat dilihat pada
Lampiran 10. Keterangan untuk masing-masing atribut pada tabel dapat dilihat
pada Lampiran 11. Hasil implementasi untuk halaman form pembuatan tipe soal
pilihan dapat dilihat pada Lampiran 12. Ketika ditampilkan pada kuis, setiap
pilihan pada tipe soal pilihan akan diubah menjadi checkbox atau radio button
tergantung jumlah pilihan jawaban benar pada soal. Jika hanya terdapat satu
pilihan jawaban benar, pilihan akan ditampilkan dengan radio button. Jika lebih
dari satu pilihan jawaban benar, pilihan akan ditampilkan dengan checkbox.
Hasil implementasi untuk halaman form pembuatan tipe soal isian dapat
dilihat pada Lampiran 13. Tipe soal isian memiliki satu kotak jawaban untuk
masing-masing soalnya. Tipe soal isian dapat memiliki beberapa kemungkinan
jawaban beserta bobot untuk masing-masing kemungkinan jawaban. Hal tersebut
dapat berguna jika suatu soal memiliki lebih dari satu kemungkinan jawaban, dan
Tabel 8 Hasil pengujian prototype 3
No.
1
2
3
4
5
6
7
8

Test Case
Create tipe soal pilihan dengan satu pilihan benar
Create tipe soal pilihan dengan pilihan benar lebih
dari 1
Create tipe soal isian dengan 1 kemungkinan jawaban
benar
Create tipe soal isian dengan kemungkinana jawaban
lebih dari 1
Update data tipe soal pilihan
Update data tipe soal isian
Menampilkan soal isian dan pilihan pada kuis
Memberi nilai jawaban soal pilihan dan isian

Status
Berhasil
Berhasil
Berhasil
Berhasil
Berhasil
Berhasil
Berhasil
Berhasil

15
masing-masing kemungkinan jawaban bisa saja memiliki tingkat kebenaran
jawaban yang berbeda.
Hasil pengujian pada tahapan ini dipaparkan dalam Tabel 8. Seluruh kasus
uji yang dilakukan tidak mengalami kegagalan, dengan demikian dapat dikatakan
bahwa sistem dapat berjalan dengan baik.
Customer Evaluation
Sistem yang dikembangkan sudah memenuhi kebutuhan-kebutuhan dasar
untuk sebuah sistem bank soal. Oleh sebab itu tahap pengembangan sistem
berakhir pada tahapan ini.

SIMPULAN DAN SARAN
Simpulan
Sistem bank soal yang dikembangkan dapat menyimpan dan menyajikan
berberapa tipe soal dalam bentuk kuis. Terdapat 3 tipe soal pada sistem yang telah
dikembangkan, yaitu tipe Code, pilihan, dan isian. Tipe soal Code dapat
memperbanyak soal dari sebuah template soal dengan mengganti kode-kode pada
teks soal dengan dataset yang telah dihasilkan oleh program eksternal.

Saran
Penelitian ini masih harus dikembangkan dan diperbaiki pada penelitian
selanjutnya. Berikut adalah saran-saran yang dapat dilakukan untuk
pengembangan sistem berikutnya:
1 Perbaikan antarmuka sistem.
2 Penambahan fitur registrasi user.
3 Penambahan tipe-tipe soal lainnya.
4 Penambahan fitur untuk ekspor soal-soal pada kuis ke dalam bentuk file
PDF atau Word.
5 Penambahan fitur autentikasi terpusat menggunakan single sign-on
seperti pada website IPB.
6 Penambahan fitur penambahan soal secara acak untuk kuis.
7 Penambahan fitur regrade untuk kuis.

16

DAFTAR PUSTAKA
Becker JD. 2006. Digital equity in education: A multilevel examination of
difference in and relationship between computer access, computer use and
state-level technology policies. Education Policy Analysis Archives. 12(3): 138.
Pressman RS. 2001. Software Engineering A Practitioner’s Approach. Ed Ke-5.
New York (US): Mc Graw-Hill.
[Puspendik] Pusat Penilaian Pendidikan. 2007. Panduan Penulisan Soal Pilihan
Ganda. Jakarta (ID): Pusat Penilaian Pendidikan BALITBANG-DEPDIKNAS.
Salend SJ. 2009. Technology-bases classroom assestments: alternative to testing.
Teaching Exceptional Children. 41(6), 48-58.
Thompson SJ, Johnstone CJ, Thurlow ML. 2004. Universal design applied to
large-scale assessments (Synthesis Report 44). Minneapolis (US): Universitty
of Minnesota, National Center on Educational Outcomes.
Thurlow M, Lazarus SS, Albus D, Hosgson J. 2010. Computer-based testing:
practices and considerations (Synthesis Report 78). Minneapolis (US):
University of Minnesota, National Center on Educational Outcomes.
[Yii] Yii Software LLC. 2010. Panduan Definitif Yii. [Internet]. [diunduh 28 Juli
2004]. Dapat diunduh dari: http://www.yiiframework.com/doc/guide/1.1/id/.

17
Lampiran 1 Rancangan antarmuka sistem
Header
Breadcumb / navigasi

Content

Sidebar menu

Footer

Lampiran 2 Halaman form pembuatan tipe soal Code

18
Lampiran 3 Contoh source program input
#include
#include
int main(int argc, char *argv[]){
int a, b,a2,b2, count, j, i;
if (argc ==6){ //cek jumlah argument+1 dikirim sama
dengan jumlah argument yg seharusnya
count = atoi(argv[1]);//count dari input form
create soal
a = atoi(argv[2]);//parameter 1 input name a
a2 = atoi(argv[3]);//parameter 2 input name a
b = atoi(argv[4]);//parameter 1 input name b
b2 = atoi(argv[5]);//parameter 2 input name b
/** algoritme untuk menghasilkan input dataset
sebanyak nilai count dari form input create soal, ubah
sesuai keinginan
*/
for(i= 0;i