Pengembangan Sistem Manajemen Pembelajaran Pemrograman

advertisement
PENGEMBANGAN SISTEM MANAJEMEN PEMBELAJARAN
PEMROGRAMAN BAHASA SCHEME, JAVA, PHP, DAN PERL
ALFA NUGRAHA PRADANA
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2012
PENGEMBANGAN SISTEM MANAJEMEN PEMBELAJARAN
PEMROGRAMAN BAHASA SCHEME, JAVA, PHP, DAN PERL
ALFA NUGRAHA PRADANA
Skripsi
sebagai salah satu syarat untuk memperoleh gelar
Sarjana Komputer pada
Departemen Ilmu Komputer
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2012
ABSTRACT
ALFA NUGRAHA PRADANA. Development of Programming Learning Management System for
Scheme, Java, PHP, and Perl Language. Supervised by JULIO ADISANTOSO.
In conventional manner, learning process is done in the form of discussion or direct delivery of
learning materials in a class or lecture. Programming is not easily applied to a conventional learning
process. In this condition, LMS has an important role to improve the process of learning for
programming. TOKI LC has been developed to identify the programming in Pascal, C, and C++
languages. However, this system has not been equipped with a programming language that is often
used by student majoring in computer science or informatics. Therefore, this research aims to analyze
and develop four other programming languages into learning management systems in the field of
programming. LMS for programming was analyzed according to the concepts of e-learning,
storyboard, and grading model. The system was developed with the prototype model on method of
development grader, and then tested. Analysis shows that the system is adopting asynchronous
learning with several main functional components, namely portal, baseline LMS features, and LCMS.
Development of grader generates the Java programming language as a language with run time
performance and memory space usage greater than the other programming languages, namely Pascal,
C, C++, Scheme, PHP, and Perl.
Keywords: learning management system, programming, grader
Judul Skripsi
Nama
NIM
: Pengembangan Sistem Manajemen Pembelajaran Pemrograman Bahasa Scheme,
Java, PHP, dan Perl
: Alfa Nugraha Pradana
: G64080068
Menyetujui:
Pembimbing
Ir. Julio Adisantoso, M.Kom
NIP 19620714 198601 1 002
Mengetahui:
Ketua Departemen Ilmu Komputer
Dr. Ir. Agus Buono, M.Si, M.Kom
NIP 19660702 199302 1 001
Tanggal Lulus:
KATA PENGANTAR
Alhamdulillahirabbil ‘alamin, puji syukur penulis panjatkan ke hadirat Allah subhanahu wata’ala
yang telah memberikan rahmat dan karunia-Nya sehingga tugas akhir dengan judul Sistem
Manajemen Pembelajaran Pemrograman dapat diselesaikan. Shalawat dan salam penulis sampaikan
kepada Nabi Muhammad shallallahu ‘alaihi wassalam beserta keluarga, sahabat dan para pengikutnya
yang selalu berpegang teguh kepada Al-Quran dan As-Sunnah.
Penulis menyadari bahwa tugas akhir ini tidak akan terselesaikan tanpa bantuan dari berbagai
pihak. Pada kesempatan ini penulis ingin mengucapkan terima kasih kepada:
1 Ayahanda Rahimallahu Yajirwan, Ibunda Zahara Murni, serta adik-adik Riandi Kadwi Nugraha,
Lani Florian Tri Nugraha, dan Nuryadin Ricky Nugraha atas doa, nasihat, semangat, dukungan,
dan kasih sayang yang luar biasa kepada penulis.
2 Bapak Ir. Julio Adisantoso, M.Kom selaku dosen pembimbing yang telah memberi banyak ide,
saran, bantuan, serta dukungan sampai selesainya penelitian ini.
3 PT. Perusahaan Gas Negara (Persero) Tbk. sebagai salah satu donatur beasiswa Karya Salemba
Empat yang telah memberi banyak bantuan materil.
4 Arief, Abrar, Isnan, Oki, Aly, Icha, dan rekan-rekan seperjuangan di Ilmu Komputer IPB
angkatan 45 atas segala kebersamaan, bantuan, dukungan, serta kenangan bagi penulis selama
menjalani masa studi. Semoga kita berjumpa kembali kelak sebagai orang-orang sukses.
5 Rekan-rekan satu bimbingan, Rizky Utama Pramudia, Meriska Defriani, Susi Handayani, Putri
Dewi Purnama Sari, Meri Marlina, Anita, Nofel Saputra, Fania Rahmanawati Karimah, dan
khususnya Hafizhia Dhikrul Anugrah yang selalu memberi dukungan dan semangat untuk segera
menyelesaikan studi.
6 Rekan-rekan satu tim basket UKM Agric Basketball IPB, sebagai pelatih Mas Hengky, Pandu,
Anas, Alan, Adi, Hanif, Nanda, Bedil, dan serta rekan-rekan lain yang telah memberi tekad
pantang menyerah baik dalam olahraga maupun pendidikan.
7 Rekan-rekan satu tempat tinggal di Pondok AA, Uda Roni, Bang Aat, Bang Aan, Bang Bono,
Hadi, Fandi, Wido, Rilan, dan rekan-rekan lain.
8 Anggi Maniur dan Andini Sekar Pamungkas sebagai sahabat dan juga sesama penerima beasiswa
Karya Salemba Empat, Rizky, Erna, Rima, Sobich, Hendra, serta rekan-rekan lain.
9 Teman-teman di jejaring sosial yang telah bersedia menjadi responden sebagai salah satu bagian
dari penelitian.
Penulisan tugas akhir ini masih terdapat banyak kekurangan dan kelemahan dalam berbagai hal
karena keterbatasan kemampuan penulis. Penulis menerima adanya masukan berupa saran atau kritik
yang bersifat membangun. Semoga penelitian ini memberikan manfaat dalam proses perkuliahan baik
sekarang maupun di masa mendatang.
Bogor, Mei 2012
Alfa Nugraha Pradana
RIWAYAT HIDUP
Penulis dilahirkan di Jakarta pada tanggal 16 Desember 1989. Penulis merupakan anak pertama
dari pasangan Yajirwan dan Zahara Murni. Penulis merupakan lulusan dari SMA Negeri 78 Jakarta
pada tahun 2008. Pada tahun yang sama melalui jalur Undangan Seleksi Masuk IPB, penulis diterima
sebagai mahasiswa di Departemen Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam.
Selama menjadi mahasiswa, penulis aktif menekuni kegiatan di Unit Kegiatan Mahasiswa AGRIC
Basketball. Berbagai prestasi salah satunya menjadi Juara III Liga Basket Mahasiswa Divisi II Jawa
Barat dan beberapa memperoleh Juara I di pertandingan basket antar departemen dan fakultas. Penulis
juga menjadi asisten praktikum pada mata kuliah Rangkaian Digital (2010), Rekayasa Perangkat
Lunak (2011), dan Penerapan Komputer (2012). Selain itu, penulis melaksanakan kegiatan Praktik
Kerja Lapangan di PT Bakrie Toll Road pada tahun 2011.
DAFTAR ISI
Halaman
DAFTAR TABEL ................................................................................................................................viii
DAFTAR GAMBAR ...........................................................................................................................viii
DAFTAR LAMPIRAN ........................................................................................................................viii
PENDAHULUAN
Latar Belakang .................................................................................................................................. 1
Tujuan ............................................................................................................................................... 2
METODE PENELITIAN
Analisis.............................................................................................................................................. 2
Metode Pengembangan ..................................................................................................................... 3
Communication ................................................................................................................................. 3
Quick Plan and Modeling Quick Design ........................................................................................... 3
Construction of Prototype ................................................................................................................. 3
Deployment Delivery and Feedback ................................................................................................. 3
Kinerja............................................................................................................................................... 3
HASIL DAN PEMBAHASAN
Analisis.............................................................................................................................................. 4
Portal ................................................................................................................................................ 4
Fitur LMSP ....................................................................................................................................... 4
Evaluasi LCMS ................................................................................................................................. 4
Learning Objects ............................................................................................................................... 4
Storyboard ......................................................................................................................................... 5
Evaluasi Hasil Kuesioner .................................................................................................................. 5
Deskripsi Umum Sistem ................................................................................................................... 7
Analisis Kebutuhan Sistem ............................................................................................................... 7
Grading Model .................................................................................................................................. 8
Lingkungan Implementasi ................................................................................................................. 8
Pengembangan Grading Model ......................................................................................................... 8
Implementasi Grader ...................................................................................................................... 10
Pengujian Grader ............................................................................................................................ 11
Pengujian Program Komputer ......................................................................................................... 11
Perbandingan Kinerja antar Bahasa Pemrograman ......................................................................... 12
KESIMPULAN DAN SARAN
Kesimpulan ..................................................................................................................................... 12
Saran ............................................................................................................................................... 12
DAFTAR PUSTAKA............................................................................................................................ 12
LAMPIRAN ......................................................................................................................................... 14
vii
DAFTAR TABEL
Halaman
1
2
3
4
5
6
7
Hasil perbandingan fitur LMS ........................................................................................................... .4
Hasil evaluasi komponen dasar LCMS ............................................................................................... 5
Persentase penggunaan bahasa pemrograman .................................................................................... 6
Persentase pemahaman materi pemrograman ..................................................................................... 6
Persentase cara belajar pemrograman ................................................................................................. 7
Karakteristik pengguna ....................................................................................................................... 7
Hasil pengujian sistem secara black-box .......................................................................................... 11
DAFTAR GAMBAR
Halaman
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Arsitektur e-learning (Peer3 2001) ................................................................................................... 2
The Prototyping Model (Pressman 2005) ......................................................................................... 3
Portal LMSP ..................................................................................................................................... 4
Contoh modul LMSP ........................................................................................................................ 5
Contoh sub modul LMSP.................................................................................................................. 5
Deskripsi objektif pembelajaran ....................................................................................................... 6
Contoh soal LMSP ............................................................................................................................ 6
Ilustrasi model test case .................................................................................................................... 9
Struktur modul grader ...................................................................................................................... 9
Perintah instalasi compiler ................................................................................................................ 9
Path compiler.................................................................................................................................... 9
Variabel implementasi grader ........................................................................................................ 10
Implementasi grader Scheme ......................................................................................................... 11
Implementasi grader Java ............................................................................................................... 11
Implementasi grader PHP............................................................................................................... 11
Implementasi grader Perl. .............................................................................................................. 11
Skema pengujian grader ................................................................................................................ .11
DAFTAR LAMPIRAN
Halaman
1
2
3
4
5
6
7
8
Analisis pengembangan fitur ............................................................................................................ 15
Kuesioner online ............................................................................................................................... 16
Daftar soal untuk pengujian kinerja bahasa pemrograman ............................................................... 17
Hasil evaluasi LCMS ........................................................................................................................ 20
Ilustrasi learning objects LMSP ....................................................................................................... 21
Persentase kebutuhan dalam belajar pemrograman .......................................................................... 22
Kode program hasil uji ..................................................................................................................... 23
Perbandingan pengujian program komputer ..................................................................................... 29
viii
1
PENDAHULUAN
Latar Belakang
Learning Management System (LMS) atau
sistem manajemen pembelajaran adalah sistem
yang memudahkan proses administrasi,
pengelolaan, dokumentasi, penelusuran, dan
pelaporan untuk suatu program pembelajaran
seperti e-learning (Hall 2000). Secara
konvensional proses pembelajaran dilakukan
dalam bentuk diskusi ataupun penyampaian
materi di dalam suatu kelas atau perkuliahan.
Proses pembelajaran seperti ini sulit diterapkan
pada bidang pemrograman terutama untuk kelas
besar.
Penerapan
proses
pembelajaran
pemrograman tidak cukup hanya dengan
menyampaikan materi ataupun diskusi satu
arah.
Pemrograman adalah salah satu cabang ilmu
komputer yang mempelajari proses menulis,
menguji, memperbaiki dan memelihara source
code dengan menggunakan suatu bahasa
tertentu yang dimengerti oleh komputer.
Keterampilan dalam membuat suatu algoritme,
logika, bahasa pemrograman, dan pengetahuanpengetahuan lain seperti matematika juga
sangat diperlukan dalam membuat suatu
program komputer. Keterampilan tersebut perlu
diasah sesuai tingkatan materi pemrograman
yang disampaikan.
Pada kondisi ini, LMS memiliki peranan
penting dalam melengkapi dan memperbaiki
proses pembelajaran konvensional di bidang
pemrograman. Pelatihan dan pembelajaran
pemrograman secara online yang diterapkan
pada LMS diberikan untuk mendukung proses
belajar mengajar biasa dikenal dengan istilah
Learning Center (LC) (Khalife 2009).
Terdapat
banyak
aplikasi
LMS
pemrograman, antara lain Sphere Online Judge
(SPOJ), TopCoder, International Olympiad in
Informatics (IOI), dan TOKI (Tim Olimpiade
Komputer Indonesia) LC. Namun, aplikasi ini
lebih banyak digunakan untuk kontes
pemrograman. Barus (2009) mengembangkan
sistem pelatihan kompetisi pemrograman
komputer TOKI LC untuk memfasilitasi
pelatihan serta manajemen kontes pemrograman
bagi pelajar sekolah menengah di Indonesia.
Colton et al. (2005) mengembangkan
GradeBot, grader atau sistem penilai program
komputer
untuk
tugas
perkuliahan
pemrograman yang dapat mengevaluasi
beberapa bahasa, yaitu C, C++, Java, Perl,
Python, Tcl, dan MIPS assembler. Namun,
semua interaksi GradeBot hanya dilakukan
melalui e-mail. Pengembangan GradeBot lebih
lanjut, yaitu WebBot, program grader otomatis
berbasis web (Colton et al. 2006). Sistem ini
memperbaiki GradeBot dengan menambahkan
antarmuka
untuk
mengurangi
interaksi
penggunaan e-mail dan grader yang berjalan
secara otomatis. Namun, penambahan fitur
sistem tersebut tidak memberikan laporan
kepada pengajar sejauh mana kemajuan proses
belajar mahasiswa dan tidak memenuhi konsep
LMS
dimana
terdapat
fitur
yang
menghubungkan learner dengan sumber
pembelajaran (Peer3 2001).
Patil (2010) mengadopsi konsep LMS pada
sistem
grader
otomatis
untuk
tugas
pemrograman, Javabrat. Sistem ini tidak hanya
memfasilitasi pelajar dalam mengakses sumber
pembelajaran, tetapi juga memfasilitasi
pengajar
untuk
melihat
perkembangan
mahasiswa dalam menguasai suatu bahasa
pemrograman. Kelemahan Javabrat adalah
hanya mengenal bahasa pemrograman Java dan
Scala.
Pengembangan grader di universitas lain di
Indonesia dalam bidang studi ilmu komputer
atau informatika hanya mengenal beberapa
bahasa pemrograman. Berdasarkan penelusuran
di internet, Universitas Indonesia, Institut
Teknologi Bandung, dan Institut Teknologi
Sepuluh November memiliki grader untuk
bahasa pemrograman Pascal, C, dan C++. Oleh
karena itu, grader perlu ditambahkan beberapa
pengenalan bahasa lain yang dapat digunakan
sebagai pembelajaran pada materi perkuliahan
pemrograman dan diuji kinerja masing-masing
bahasa tersebut.
TOKI LC merupakan salah satu platform
grader yang telah dikembangkan dengan fitur:
antarmuka yang lebih baik dibanding WebBot,
penilaian program secara otomatis melalui
sistem, registrasi, manajemen user, pelaporan,
dan dapat mengenali bahasa pemrograman
Pascal, C, dan C++. Namun, sistem ini belum
dilengkapi dengan bahasa pemrograman yang
sering digunakan untuk mahasiswa bidang studi
ilmu komputer atau informatika, antara lain
Scheme pada aspek pemrograman fungsional,
Java pada aspek pemrograman berorientasi
objek, PHP pada aspek pemrograman
prosedural, dan Perl sebagai bahasa yang
dikembangkan dengan mencampur fitur terbaik
dari beberapa bahasa menjadi satu (Al-Qahtani
et al. 2010). Selain itu, analisis pada pengguna
tingkat mahasiswa belum pernah dilakukan
pada sistem ini.
2
Oleh karena itu, penelitian ini akan
menganalisis TOKI LC dan mengembangkan
sistem manajemen pembelajaran agar dapat
mendukung
dan
melengkapi
proses
pembelajaran di bidang pemrograman untuk
mahasiswa bidang studi ilmu komputer atau
informatika dengan menambahkan sistem
penilaian bahasa Scheme, Java, PHP, dan Perl
dan menguji kinerja masing-masing bahasa.
Tujuan
Tujuan penelitian ini adalah menganalisis
TOKI LC dan mengimplementasikan sistem
manajemen
pembelajaran
pada
bidang
pemrograman untuk mahasiswa bidang studi
ilmu komputer atau informatika dengan
menambahkan
pengenalan
bahasa
pemrograman Scheme, Java, PHP, dan Perl dan
menguji kinerja masing-masing bahasa.
METODE PENELITIAN
LMS pemrograman selanjutnya disebut
LMSP dilaksanakan dalam tiga tahap, yaitu
analisis, metode pengembangan, dan kinerja.
Sebagai pengembangan lebih lanjut, ketiga
tahap tersebut dilakukan pada sistem TOKI LC.
Analisis
E-learning merujuk kepada penggunaan
jaringan teknologi informasi secara intensional
dalam pengajaran dan pembelajaran (Naidu
2006). LMSP termasuk ke dalam asynchronous
learning, dimana proses pembelajaran tidak
memerlukan komunikasi satu sama lain.
Instruktur membuat materi pembelajaran
sedangkan learner mengakses materi tersebut
secara online. Pada tahap ini, dilakukan analisis
terhadap komponen fungsional asynchronous
learning pada sistem. Komponen fungsional
utama tersebut dalam perkembangan arsitektur
e-learning menurut Peer3 (2001), antara lain:
1 Portal, akses penghubung learner dengan
lingkungan e-learning.
2 Learning Management Systems (LMS),
penghubung antara learner dan sumber atau
isi pembelajaran yang terdiri atas fitur yang
mendukung proses belajar mengajar.
Analisis untuk fitur LMSP yang akan
dikembangkan terlampir pada Lampiran 1.
3 Learning Content Management Systems
(LCMS), lingkungan tempat pengembang
dapat membuat, menyimpan, menggunakan
kembali,
dan
mengirim
sumber
pembelajaran dari pusat penyimpanan objek,
biasanya database. LCMS umumnya
bekerja dengan isi atau sumber berdasarkan
model
2008).
learning
object
(Abazi-Bexheti
Gambaran
umum
arsitektur
tercantum pada Gambar 1.
e-learning
Analisis selanjutnya yaitu learning objects
dan storyboard. Learning objects adalah unitunit terpisah yang berisi objektif pembelajaran,
isi, penilaian objektif, fasilitas pencarian,
pengindeksan dan penggunaan kembali objek
pembelajaran (Peer3 2001). Storyboard sebagai
salah satu bagian dalam pengembangan
learning objects harus mengandung instruksi
dan deskripsi secara detail, spesifik, dan terurut
(Mustaro et al 2005). Kedua analisis tersebut
berhubungan
dan
dilakukan
dengan
mengidentifikasi ciri-ciri tersebut.
Analisis terakhir dilakukan survei melalui
kuesioner online berbasis web yang disebar di
situs jejaring sosial dengan target responden
mahasiswa tahun 2007 hingga tahun 2011 yang
masih aktif dan pernah mengikuti perkuliahan
pemrograman. Kuesioner ini terlampir pada
Lampiran 2. Tujuan survei ini adalah untuk
mengetahui dan mengevaluasi sejauh mana
mahasiswa
mengenal,
memahami
dan
menguasai pemrograman yang diberikan pada
perkuliahan. Hasil survei dari kuesioner ini
dianalisis dan digunakan sebagai bahan evaluasi
dalam tahap metode pengembangan LMSP.
Gambar 1 Arsitektur e-learning (Peer3 2001).
3
Tahap analisis yang dilakukan ini bertujuan
mengadopsi konsep e-learning pada LMSP
dengan menunjukkan dan mengoptimalkan
konsep e-learning yang telah dibangun pada
penelitian sebelumnya dan yang belum
dikembangkan.
Metode Pengembangan
Sistem penilai program bahasa Scheme,
Java, PHP, dan Perl pada LMSP dikembangkan
menggunakan model prototyping. Model ini
dibagi menjadi beberapa tahapan yang
membentuk suatu siklus, dimulai dari
communication, quick plan and modeling quick
design, construction of prototype dan
deployment delivery and feedback (Pressman
2005) (Gambar 2).
dalam suatu bahasa pemrograman yang dapat
dikenali oleh komputer.
Deployment Delivery and Feedback
Pengujian terhadap grader
bahasa
pemrograman Scheme, Java, PHP, dan Perl
dilakukan menggunakan metode black-box.
Black-box testing dikenal sebagai behavioral
testing yang fokus pada kebutuhan fungsional
perangkat lunak. Metode ini memungkinkan
pengembang perangkat lunak menurunkan
sekumpulan kondisi input yang dapat
memenuhi seluruh kebutuhan fungsional
(Pressman 2005).
Pada model pengujian ini input adalah
program bahasa Scheme, Java, PHP, dan Perl
yang dikumpulkan oleh learner. Proses yang
terjadi di dalam sistem tidak diperhatikan,
hanya mempertimbangkan hasil keluaran yaitu
status penilaian program tersebut.
Kinerja
Terdapat dua kinerja yang diuji, yaitu
kinerja program komputer, dan perbandingan
eksekusi program komputer terhadap tujuh
bahasa pemrograman pada grader LMSP.
Gambar 2 The Prototyping Model (Pressman
2005).
Communication
Pada tahap ini, dilakukan metode diskusi
dengan dosen pembimbing sebagai pihak
customer untuk mendefinisikan tujuan dan
mengidentifikasi kebutuhan yang diperlukan
pada perangkat lunak. Hasil dari tahap ini
digunakan sebagai deskripsi umum sistem dan
analisis kebutuhan sistem.
Quick Plan and Modeling Quick Design
Pada proses ini, dibangun perancangan
model grader tahap awal, dan diperbaiki sesuai
permintaan customer. Rancangan sistem penilai
program ini selanjutnya akan digunakan pada
tahap implementasi.
Construction of Prototype
Implementasi dan pengembangan model
grader dilakukan pada tahap ini sebagai
penerjemahan rancangan analisis sistem ke
Kinerja program komputer dilakukan pada
program
yang
menggunakan
bahasa
pemrograman Scheme, Java, PHP dan Perl.
Program tersebut telah dikumpulkan oleh
learner dan dinilai oleh grader. Kemudian
program dikumpulkan dan dinilai juga oleh
sistem grader online Ideone. Ideone (IDEONE
2010) disebut juga online IDE & Debugging
Tool sebagai salah satu riset yang
dikembangkan oleh Sphere yang banyak
digunakan oleh para programmer untuk
mengukur kinerja program dengan mengenal
lebih dari 40 bahasa pemrograman. Hasil
kinerja program komputer digunakan untuk
membandingkan konsumsi memori dan waktu
eksekusi program pada grader dan Ideone.
Pada pengujian, selanjutnya diberikan lima
soal, yaitu Hello World!, Menuliskan Bilangan,
Menghitung Rataan Ujian, Menghitung
Bilangan, dan Menghitung Kata yang terlampir
pada Lampiran 3. Untuk masing-masing soal,
dibuat solusi pada program yang menggunakan
bahasa pemrograman Pascal, C, C++, Scheme,
Java, PHP, dan Perl. Untuk setiap solusi, kinerja
run time dalam satuan detik dan penggunaan
memory space dalam ukuran MB untuk setiap
bahasa pemrograman diukur. Hasil pengujian
ini digunakan untuk membandingkan rata-rata
kinerja setiap bahasa pemrograman pada setiap
solusi.
4
menunjukkan bahwa fitur pelaporan dalam
bentuk statistik telah dikembangkan, dan LMSto-Content API, serta LMS sebagai alat
pembelajaran kolaboratif belum dikembangkan.
HASIL DAN PEMBAHASAN
Analisis
Hasil analisis e-learning ditunjukkan pada
portal, fitur LMSP, evaluasi LCMS, learning
objects, storyboard, dan evaluasi kuesioner.
Evaluasi LCMS
Analisis
LCMS
dilakukan
dengan
mengevaluasi komponen dasar dan beberapa
kriteria evaluasi LCMS menurut Peer3 (2001),
untuk menunjukkan sejauh mana konsep LCMS
dapat digunakan untuk mengadopsi konsep elearning pada LMSP.
Portal
Pada hasil analisis tahap awal, untuk
mengakses lingkungan e-learning sistem ini
telah dikembangkan suatu portal berupa
halaman login yang tercantum pada Gambar 3.
Learner yang telah terdaftar dalam suatu
perkuliahan pemrograman akan diberikan
username/email dan password untuk mengikuti
proses pembelajaran yang telah tersedia.
Hasil evaluasi untuk tiga komponen dasar
LCMS yang dimiliki LMSP tercantum pada
Tabel 2. Hasil evaluasi untuk kriteria LCMS
yang dipenuhi terlampir pada Lampiran 4.
Learning Objects
Evaluasi untuk konsep learning object pada
LMSP diberikan pada setiap latihan dasar
pembelajaran pemrograman. Latihan tersebut
terdiri atas unit-unit terpisah yang memiliki
peranan penting dalam proses pembelajaran
pemrograman. Di dalam latihan ini terdapat
modul atau sub-sub modul pemrograman yang
harus diselesaikan learner sebelum menuju ke
modul berikutnya. Pada modul atau sub modul
inilah terdapat informasi penting yang di
dalamnya berisi tentang deskripsi dari objektif
pembelajaran dan soal pemrograman yang
sudah tersedia sesuai materi dan tingkatannya.
Semakin tinggi tingkatan modul, semakin sulit
tingkatan pemrograman yang dikuasai learner.
Gambar 3 Portal LMSP.
Fitur LMSP
Sebelum dilakukan analisis pada komponen
LMS, fitur yang dimiliki empat sistem, yaitu
TOKI LC, WebBot, Javabrat, dan Ideone
dibandingkan dengan fitur yang disebutkan oleh
Peer3 (2001) dan Naidu (2006). Perbandingan
keempat fitur LMS pada sistem tersebut dan
LMSP yang telah dikembangkan tercantum
pada Tabel 1. Hasil analisis komponen LMSP
Tabel 1 Hasil perbandingan fitur LMS
Fitur LMS
1 Peer3 (2001):
1 Registrasi
2 Manajemen user
3 Rencana Pembelajaran
4 Pelaporan
5 LMS-to-Content API
2 Naidu (2006):
1 Pengiriman materi perkuliahan
2 Manajemen transaksi kelas online
3 Penilaian hasil pembelajaran
4 Penelusuran
dan
pelaporan
perkembangan learner
5 Pelaporan prestasi dan kemajuan
penyelesaian tugas
6 Alat pembelajaran kolaboratif
(perangkat portabel dan mobile)
7 Mengumpulkan, mengatur, dan
melaporkan seluruh aktivitas
pembelajaran learner
TOKI
LC
(2009)
WebBot
(2006)
Javabrat
(2010)
Ideone
(2010)
LMSP
(2012)
√
√
√
√
-
√
√
√
-
√
√
√
√
-
√
√
√
√
√
√
√
-
√
√
√
√
√
√
√
-
√
√
√
√
√
-
√
√
√
√
√
-
√
-
√
-
-
-
√
-
-
-
√
√
√
5
Tabel 2 Hasil evaluasi komponen dasar LCMS
Komponen dasar
Hasil Evaluasi
Pusat penyimpanan
learning object
Database yang sudah
terpasang pada
komputer server yang
tersedia di Gedung
Rektorat IPB
Alat pembuatan dan
penyusunan
learning object
Media pembelajaran
dibuat dalam format
HTML
Database pada
lingkungan
pembelajaran
berbasis web
Database sudah
dikembangkan pada
lingkungan berbasis
web dan disesuaikan
dengan materi
Konstruksi learning objects
diilustrasikan pada Lampiran 5.
pada
Gambar 4 Contoh modul LMSP.
LMSP
Terdapat empat latihan yang telah dibuat,
yaitu Latihan Dasar Pemrograman, Praktikum
Algoritme dan Pemrograman, Latihan Ujian
Praktikum Algoritme dan Pemrograman, dan
Praktikum Bahasa Pemrograman. Sebagai
contoh, pada latihan Praktikum Algoritme dan
Pemrograman telah dibuat enam modul, lima
submodul, dan 55 soal. Penerapan konsep
learning object untuk, modul tercantum pada
Gambar 4, sub modul pada Gambar 5, dan
deskripsi objektif pembelajaran tercantum pada
Gambar 6.
Storyboard
Storyboard pada LMSP diterapkan pada
setiap soal pembelajaran pemrograman. Materi
pada soal pemrograman dibuat sesuai skenario.
Skenario tersebut digambarkan ke dalam situasi
yang sering terjadi kehidupan nyata berbentuk
suatu cerita atau narasi yang memiliki konteks,
plot, karakter, dan parameter yang saling
berhubungan. Cerita ini berisi kasus atau
masalah yang memiliki suatu solusi yang dapat
diselesaikan oleh learner.
Konsep ini diterapkan pada salah satu
contoh soal Menghitung Detik pada Gambar 7
dengan konteks cerita Pak Algor sebagai
seorang karakter memiliki aktivitas sehari-hari.
Untuk memudahkan aktivitas tersebut, pada
akhir cerita, learner diminta memberikan solusi
dengan membuat suatu program dengan format
masukan, keluaran, dan bahasa pemrograman
tertentu.
Gambar 5 Contoh sub modul LMSP.
Evaluasi Hasil Kuesioner
Dari hasil kuesioner, didapatkan sebanyak
98 variasi jawaban. Persentase hasil yang
diperoleh dari beberapa pertanyaan yang
diberikan, antara lain:
1 Persentase tertinggi untuk pertanyaan
bahasa
pemrograman
yang
pernah
digunakan oleh mahasiswa adalah bahasa
pemrograman C++ sebesar 81% dan yang
paling jarang digunakan adalah bahasa
pemrograman Perl sebesar 12%. Bahasa
lainnya yaitu Visual Basic, Python, Matlab,
Clips, Prolog, ASP .NET, dan ActionScript.
Secara keseluruhan persentase penggunaan
bahasa pemrograman tercantum pada Tabel
3. Hasil ini menunjukkan bahwa diperlukan
pembelajaran lebih lanjut dalam pengenalan
beberapa bahasa pemrograman yang kurang
populer. Selain itu, diperlukan sistem penilai
program terhadap bahasa yang banyak
digunakan oleh mahasiswa.
6
Sebagai perkenalan pertama dengan program C,
ketikanlah kode-kode berikut ini dalam file bernama
'programku.c'.
#include <stdio.h>
int main()
{
writeln("Welcome World!\n");
return 0;
}
Program ini akan mencetak keluaran ke standard output,
yaitu layar monitor, sebaris teks Welcome World!
Pada bagian awal, terdapat pernyataan #include
<stdio.h> yang menandakan bahwa program ini akan
memanggil header file bernama stdio.h yang berisi
library untuk keperluan input dan output program C.
Penjelasan detil tentang program C akan diberikan pada
bab-bab berikutnya.
Setelah diketik, lakukan proses kompilasi untuk
memeriksa sintaks program yang ditulis. Selanjutnya,
jalankan program dengan mengetikkan perintah pada
command prompt:
programku
Jika program mengeluarkan keluaran yang sama dengan
yang diminta, maka program Anda sudah berjalan
dengan benar.
Selesailah program pertama Anda! Selanjutnya cobalah
berlatih dengan setiap soal pada sub bab yang berada di
bagian ini.
Tabel 3
Bahasa Pemrograman
C
C++
Java
Pascal
Perl
PHP
Lainnya
Gambar 6 Deskripsi objektif pembelajaran.
Menghitung Detik
Pak Algor memiliki kebiasaan tepat waktu dalam
menghadiri suatu acara. Sebagai contoh, jika ada acara
di hari ini pukul 19:00:00 (jam 7 malam), maka sejak
pagi hari Pak Algor sudah memasang stopwatch untuk
menghitung mundur berapa detik jarak antara pukul
19:00:00 dengan saat sekarang. Misalnya sekarang
adalah pukul 12:00:00, maka Pak Algor akan memasang
stopwatch hitung mundur dimulai dari angka 25200
karena dari pukul 12:00:00 sampai dengan pukul
19:00:00 adalah selama 25200 detik.
Untuk memudahkan, bantulah Pak Algor dengan
membuat program untuk menentukan berapa nilai awal
dari stopwatch untuk melakukan hitung mundur dari saat
sekarang sampai waktu acara yang akan dihadiri Pak
Algor.
Format Masukan
Data masukan terdiri atas dua baris dimana baris
pertama menunjukkan jam sekarang, dan baris kedua
adalah jam dimana acara yang akan dihadiri oleh Pak
Algor. Setiap baris berisi tiga bilangan bulat, masingmasing menunjukkan nilai jam, menit, dan detik yang
dipisahkan oleh satu spasi.
Format Keluaran
Output program adalah sebuah bilangan bulat yang
menunjukkan lamanya (dalam detik) dari jam sekarang
hingga jam acara yang akan dihadiri oleh Pak Algor.
Gambar 7 Contoh soal LMSP.
Persentase
67%
81%
24%
52%
12%
58%
13%
2 Persentase
pertanyaan
sejauh
mana
mahasiswa memahami materi pemrograman
yang pernah diikuti di perkuliahan dengan
ukuran “Tidak Mengerti“ dan “Mengerti”
pada rentang 1 hingga 5 tercantum pada
Tabel 4. Pemahaman materi pemrograman
rata-rata untuk jawaban keduanya diperoleh
rata-rata 42%. Hasil ini menunjukkan bahwa
proses pembelajaran konvensional tidak
memberikan
dukungan
lebih
dalam
pembelajaran
pemrograman
sehingga
diperlukan LMS pemrograman.
Tabel
Selamat berlatih.
Persentase penggunaan bahasa
pemrograman
4
Persentase pemahaman
pemrograman
Pemahaman Materi
Pemrograman
1 Tidak Mengerti
2
3
4
5 Mengerti
materi
Persentase
5%
13%
42%
32%
8%
3 Persentase tertinggi terhadap perilaku
mahasiswa untuk belajar menguasai dan
mendalami suatu bahasa pemrograman
adalah mengerjakan latihan materi dan soal
yang diberikan pada perkuliahan secara
mandiri sebesar 80%, selanjutnya membaca
buku pemrograman 71%, belajar mandiri
dengan mengikuti tutorial online 54%, dan
lainnya seperti mencari solusi di forum
diskusi, dan bertanya antar sesama
mahasiswa sebesar 26%. Proses belajar
mandiri dalam pemrograman secara tidak
langsung
kurang
membantu
untuk
pembelajaran
pemrograman.
Secara
keseluruhan persentase cara mahasiswa
untuk menguasai bahasa pemrograman
tercantum pada Tabel 5.
4 Persentase
mahasiswa
yang
pernah
mengikuti
kegiatan
pembelajaran
7
pemrograman secara online adalah 63% dan
yang tidak pernah sebesar 37%.
Tabel 5 Persentase cara belajar pemrograman
Cara Belajar
Mengerjakan latihan materi
dan soal yang diberikan
Mengikuti tutorial online
Membaca buku
pemrograman
Lainnya
Persentase
80%
54%
71%
26%
sistem ini adalah untuk memperbaiki proses
pembelajaran pemrograman. LMSP merupakan
sistem berbasis web dan implementasi grader
menggunakan framework PHP Yii.
Analisis Kebutuhan Sistem
1 Karakteristik pengguna
Pengguna sistem dibagi menjadi tiga
tingkatan, yaitu administrator, supervisor,
dan learner. Tabel 6 menjelaskan
karakteristik pengguna sistem.
Tabel 6 Karakteristik pengguna
5 Kebutuhan apa saja yang diperlukan
mahasiswa dalam belajar pemrograman.
Pertanyaan tersebut telah disediakan lima
jawaban, yaitu:
a
b
c
d
e
penjelasan konsep pemrograman,
contoh kode program,
materi pemrograman tingkat lanjut,
latihan membuat program, dan
feedback dari dosen.
Jawaban diisi responden dengan empat
ukuran, yaitu “Tidak Perlu”, “Perlu”,
“Cukup Perlu”, dan “Sangat Perlu”. Ukuran
“Perlu” menjadi persentase tertinggi dari
semua jawaban tersebut. Persentase dari
kelima jawaban terlampir pada Lampiran 6.
Dari hasil persentase jawaban secara
keseluruhan, terlihat bahwa dalam proses
pembelajaran
pemrograman
secara
konvensional, sebagian besar mahasiswa kurang
menguasai pemrograman dan lebih banyak
belajar secara mandiri dengan mengerjakan soal
dan latihan, membaca buku pemrograman
maupun mengikuti tutorial secara online. Selain
itu, penjelasan konsep, contoh-contoh, materi,
dan latihan pemrograman serta feedback
merupakan kebutuhan yang sangat diperlukan
untuk menguasai pemrograman. Oleh karena
itu, LMS pemrograman dikembangkan sebagai
solusi dengan sistem penilai bahasa yang
banyak digunakan dan fitur yang dapat
membantu mahasiswa dalam mengikuti proses
pembelajaran pemrograman.
Deskripsi Umum Sistem
Sistem ini sudah ada sebelumnya dan hingga
saat ini digunakan sebagai sistem pelatihan
kompetisi pemrograman komputer. Sistem ini
sendiri merupakan bagian dari TOKI LC versi
IPB yang memiliki grader bahasa pemrograman
Pascal, C, dan C++ dan pada penelitian ini
dikembangkan kembali dengan menambah
grader untuk bahasa pemrograman Scheme,
Java, PHP dan Perl. Tujuan pengembangan
Kategori
pengguna
Administrator
Supervisor
Learner
Aksi
Mengelola seluruh data
dalam sistem dan memiliki
akses penuh dalam LMSP
Mengelola pembelajaran
dan membuat soal serta
berperan sebagai author
dalam LMSP
Melihat soal,
mengumpulkan soal,
mengikuti materi, melihat
nilai, dan mengajukan
klarifikasi
2 Batasan-batasan Sistem
Batasan-batasan sistem yang dikembangkan
adalah sistem mengenal tiga bahasa
pemrograman bawaan TOKI LC yaitu,
Pascal, C, C++ dan empat bahasa tambahan
yang telah dikembangkan yaitu Scheme,
Java, PHP dan Perl.
3 Lingkup operasi
Sistem
yang
dikembangkan
akan
ditempatkan di server Rektorat IPB yang
berada pada jaringan intranet, sedangkan
client berada di sisi peneliti. Lingkup
operasi sistem sebagai berikut:
Server:
 komputer PC dengan prosesor Intel Core
2 Duo yang tersambung ke jaringan
LAN,
 sistem operasi: Fedora 15,
 web server: Apache HTTP Server,
 Scipting language: PHP 5, dan
 DBMS: MySQL.
Client:
 prosesor Intel® Centrino Core™2 Duo
P8600 2.4 GHz,
 sistem operasi Ubuntu versi 11.04,
8




web server Apache 2.2.17,
DBMS MySQL 5.0.7,
memori 3 GB, dan
hard disk 100 GB.
4 Compiler
Grader
LMSP
yang
dijalankan
menggunakan instalasi paket compiler
Scheme, Java, PHP dan Perl. Pada bahasa
pemrograman Scheme digunakan Guile
versi
2.0.5,
Java
digunakan
Java
Development Kit 6.24, PHP digunakan PHP
versi 5.3.10, dan Perl digunakan Perl versi
5.10.2.
Grading Model
Model grader untuk bahasa pemrograman
Scheme, Java, PHP dan Perl hampir sama
dengan model grader pada bahasa sebelumnya.
Model yang digunakan adalah model test case.
Test case adalah pertanyaan yang diberikan
dalam suatu program (Kaner 2003).
Grader menilai secara otomatis saat ada
program yang dikumpulkan. Nilai tersebut
berupa angka dan status. Terdapat enam kriteria
status nilai yang dihasilkan, yaitu:
1 Compile Error (CE). Status yang terjadi saat
program gagal dikompilasi oleh compiler
karena kesalahan syntax, operator, tanda
baca, dan kata kunci dalam masing-masing
bahasa pemrograman.
2 Run Time Error (RTE). Kesalahan dalam
logika atau aritmatika yang teridentifikasi
pada waktu proses eksekusi program.
3 Time Limit Exceeded (TLE). Program yang
dieksekusi melebihi batas waktu yang
ditentukan.
4 Memory Limit Exceeded (MLE). Program
yang dieksekusi melebihi batas memori
yang ditentukan.
5 Wrong Answer (WA). Status ini terjadi jika
satu atau lebih output eksekusi program
tidak sesuai dengan satu atau lebih output
standar yang ditentukan.
6 Accepted (AC). Status ini berlaku jika
seluruh output pada program hasil eksekusi
sesuai dengan seluruh output standar yang
ditentukan.
Untuk bahasa Java, program dikompilasi
terlebih dahulu oleh compiler, sedangkan
Scheme, PHP, dan Perl langsung menuju ke
proses eksekusi. Penggunaan syntax, operator,
tanda baca, dan kata kunci diperiksa. Jika hasil
kompilasi gagal, program diberi status CE. Jika
tidak, dilanjutkan proses berikutnya yaitu proses
eksekusi oleh interpreter. Pada proses ini,
program dijalankan dan diuji dengan
pertanyaan. Pertanyaan ini berupa serangkaian
standar input yang sudah ditentukan untuk
menghasilkan output dari program tersebut.
Selama proses eksekusi batas waktu dan
memori yang disediakan juga menjadi kriteria
penilaian program. Jika pada waktu proses
eksekusi program terdapat kesalahan logika
atau aritmatika, status nilai adalah RTE.
Selanjutnya, jika program
melebihi batas
waktu, status nilai TLE dan jika program
melebihi batas memori, status nilai adalah
MLE. Program yang telah berhasil dieksekusi
dan memenuhi kriteria sebelumnya akan
menghasilkan output. Kemudian, output ini
dibandingkan dengan standar output yang telah
ditentukan juga. Penilaian diberikan sesuai
dengan banyaknya jumlah hasil output pada
program yang cocok dengan hasil pada standar
output. Untuk hasil program dengan sedikit
output yang cocok, diberikan status nilai WA,
sebaliknya jika seluruhnya cocok, status nilai
adalah AC. Ilustrasi penerapan model test case
pada LMSP tercantum pada Gambar 8.
Lingkungan Implementasi
Lingkungan pengembangan grader bahasa
pemrograman Scheme, Java, PHP dan Perl
menggunakan bahasa pemrogaman PHP.
Spesifikasi perangkat lunak dan perangkat keras
yang digunakan pada pengembangan sebagai
berikut:








sistem operasi Ubuntu versi 11.04,
web server Apache 2.2.17,
DBMS MySQL 5.0.7,
bahasa Pemrograman PHP versi 5.3.6
dengan framework Yii,
lingkungan pengembangan NetBeans versi
7.1,
prosesor Intel® Centrino Core™2 Duo
P8600 2.4 GHz,
memori 3 GB, dan
hard disk 100 GB.
Pengembangan Grading Model
Pengembangan grading model dilakukan di
dalam struktur modul pada sistem TOKI LC.
Struktur modul grader tercantum pada Gambar
9. Prosedur pengembangan grading model
dijelaskan pada langkah-langkah berikut.
Prosedur ini harus dilakukan secara berurutan.
1 Instalasi compiler
Pengembangan model penilaian pada sistem
TOKI LC diperlukan instalasi compiler
Scheme, Java, PHP, dan Perl pada sistem
operasi Ubuntu kemudian menyertakan path
9
Gambar 8 Ilustrasi model test case.
Scheme
apt-get install guile
Java
apt-get install sun-java6-jdk
sun-java6-jre
PHP
apt-get install php5
Perl
apt-get install perl
Gambar 9 Struktur modul grader.
sebagai lokasi compiler pada file config.php
untuk mengenali dan menilai program
dengan menggunakan bahasa pemrograman
tersebut. Perintah instalasi dan path
compiler Scheme, Java, PHP, dan Perl
tercantum pada Gambar 10 dan Gambar 11.
2 Penyorotan syntax bahasa
Kode program hasil pengumpulan harus
ditampilkan dan disoroti sesuai syntax
masing-masing bahasa. Tampilan bahasa ini
diimplementasikan
pada
class
CSyntaxHighlighter pada modul components
helpers.
3 Penambahan perintah compile
Penambahan perintah compile untuk
masing-masing bahasa dilakukan pada class
Compiler
pada
modul
components
Gambar 10 Perintah instalasi compiler.
/usr/bin/guile
/usr/bin/javac
/usr/bin/php
/usr/bin/perl
=> Scheme
=> Java
=> PHP
=> Perl
Gambar 11 Path compiler.
evaluators
dengan
fungsi
untuk
mengkompilasi
program
yang
telah
dikumpulkan. Ekstensi file program
diidentifikasi untuk membedakan perintah
compile. Ektensi file untuk Scheme, Java,
PHP, dan Perl secara terurut yaitu *.ss,
*.java, *.php, *.pl.
4 Penambahan fungsi execute
Penambahan fungsi execute untuk masingmasing bahasa dilakukan pada class
Sandbox pada modul components evaluators
10
dengan fungsi untuk mengeksekusi program
yang telah dikompilasi. Fungsi yang
ditambahkan untuk Scheme, Java, PHP, dan
Perl
secara
terurut
yaitu
fungsi
schemeExecute, javaExecute, phpExecute,
dan perlExecute.
5 Penanganan error
Penanganan error pada proses compile dan
execute untuk Java sama seperti penanganan
bahasa sebelumnya yaitu Pascal, C, dan
C++. Namun, untuk penanganan error pada
Scheme, PHP, dan Perl ditambahkan
“Exited with error status 255”
pada class Sandbox di dalam fungsi
getErrors untuk mengidentifikasi status
penilaian RTE.
6 Pengubahan fungsi evaluate
Pengubahan fungsi evaluate dilakukan pada
modul extensions evaluator tipe simplebatch
pada class SimplebatchEvaluator. Class ini
memanggil class lain yang berada di modul
components
evaluators,
yaitu
class
Compiler, Sandbox, dan Comparator.
Fungsi ini sebelumnya hanya memanggil
fungsi compile dan execute untuk bahasa
Pascal, C, dan C++. Oleh karena itu, fungsi
ini diubah untuk memanggil seluruh fungsi
compile dan execute pada class Sandbox
termasuk fungsi execute pada bahasa
Scheme, Java, PHP, dan Perl. Untuk
pemanggilan class Comparator yang
berfungsi membandingkan output program
dengan standar output yang telah ditentukan,
tidak
dilakukan
pengubahan
karena
pemanggilan proses ini untuk semua bahasa
adalah sama.
Prosedur
ini
diimplementasikan
menggunakan bahasa pemrograman PHP.
Implementasi prosedur ini untuk menambahkan
sistem penilaian bahasa Scheme, Java, PHP,
dan Perl.
Implementasi Grader
Beberapa variabel diperlukan dalam
implementasi grader. Salah satu variabel
tersebut adalah variabel yang berisi path file
evaluator. File evaluator ini adalah file biner
berekstensi *.exe yang memiliki fungsi, yaitu:




mengatur batas waktu compile dan eksekusi,
mengatur batas waktu compile dan eksekusi,
mengatur batas memori,
memasukkan file input untuk menguji
program,
 menulis hasil eksekusi program ke dalam
file output, dan
 menulis hasil compile yang tidak sesuai atau
error.
Untuk menjalankan seluruh fungsi tersebut
secara lengkap, file evaluator memiliki pilihan
yang digunakan sebagai parameter, antara lain:
 -a <level>, mengatur tingkat akses file
(0=tidak
ada,
1=cwd,
2=/etc,/lib,...,
3=seluruh akses, 9=tidak diperiksa),
 -e, menurunkan seluruh lingkungan compile
bahasa pemrograman ke dalam proses,
 -i <file>, mengalihkan standar input ke
suatu file,
 -m <size>, batas ruang alamat memori
dalam satuan KB,
 -o <file>, mengalihkan standar output ke
suatu file,
 -r <file>, mengalihkan standar error ke
suatu file, dan
 -w <time>, mengatur batas waktu yang
disediakan.
Variabel lain yang diperlukan dalam proses
implementasi, yaitu variabel pengatur batas
waktu dan memori, variabel yang berisi file
temporary compile error yang berfungsi untuk
mencatat standar error ke dalam file, dan
variabel perintah compile. Seluruh variabel
untuk proses implementasi grader secara
lengkap tercantum pada Gambar 12.
$moeval_path
$parameter
$tmperr -- $command
-r
$moeval_path = file evaluator,
$parameter
= parameter batas waktu
dan memori compile,
$tmperr
= file temporary compile
error,
$command
= perintah compile.
Gambar 12 Variabel implementasi grader.
Implementasi
keseluruhan
untuk
menkompilasi dan menjalankan program
Scheme, Java, PHP, dan Perl secara terurut
tercantum pada Gambar 13, Gambar 14,
Gambar 15, dan Gambar 16.
/bin/mo-evalbox -e -f -a 2 -w
[batas waktu] -m [batas memori] –i
[file input] -o [file output] -r
[file temporary] -–
/usr/bin/guile [nama file program]
Gambar 13 Implementasi grader Scheme.
11
Perintah compile:
/bin/mo-evalbox
-e
-m
[batas
memori] -w [batas waktu] -r [file
temporary] -- /usr/bin/javac [nama
file program]
Perintah eksekusi:
/bin/mo-evalbox -e -a 2 -w [batas
waktu] -m [batas memori] –i [file
input] -o [file output] -r [file
temporary]
-–
/usr/bin/java
–
classpath
/tmp/
[file
hasil
kompilasi]
yang dikumpulkan dengan bahasa Scheme,
PHP, dan Perl karena penilaian program oleh
grader langsung dieksekusi oleh interpreter
tanpa perlu dikompilasi terlebih dahulu seperti
bahasa Java sehingga hasil uji program tersebut
menjadi RTE. Untuk hasil pengujian pada
kriteria status yang lain didapatkan bahwa
seluruh fungsi telah berjalan sesuai kebutuhan
baik pada compiler Scheme, Java, PHP maupun
Perl. Hasil output tersebut sesuai dengan input
program yang dinilai. Detail pengujian
tercantum pada Tabel 7.
/bin/mo-evalbox -e -f -a 2 -w
[batas waktu] -m [batas memori] –i
[file input] -o [file output] -r
[file temporary]
-– /usr/bin/php
[nama file program]
Pada kode program yang diuji coba, kriteria
status MLE didapatkan hanya dengan
memberikan batas memori yang rendah tanpa
harus membandingkan dengan status AC. Kode
program hasil uji coba dan perbandingannya
sesuai kriteria status terlampir pada Lampiran 7.
Gambar 15 Implementasi grader PHP.
Tabel 7 Hasil pengujian sistem secara blackbox
Gambar 14 Implementasi grader Java.
/bin/mo-evalbox -e -f -a 2 -w
[batas waktu] -m [batas memori] –i
[file input] -o [file output] -r
[file temporary] -– /usr/bin/perl
[nama file program]
Gambar 16 Implementasi grader Perl.
Pengujian Grader
Setelah
grader
diimplementasikan,
dilakukan
pengujian
untuk
mengetahui
kecocokan sistem dan fungsi compiler yang
telah dibuat. Pengujian dilakukan dengan
metode black-box dengan memberikan input
dan melihat output yang muncul. Input yang
digunakan adalah program dengan bahasa
Scheme, Java, PHP, dan Perl. Program tersebut
diuji coba untuk menghasilkan seluruh kriteria
status penilaian pada sistem yang telah
disebutkan sebelumnya yaitu Compile Error
(CE), Run Time Error (RTE), Time Limit
Exceeded (TLE), Memory Limit Exceeded
(MLE), Wrong Answer (WA), dan Accepted
(AC). Kriteria status CE, RTE, TLE, MLE, dan
WA dibandingkan dengan kriteria status AC
sebagai perbandingan terhadap program yang
berhasil dengan program yang gagal dinilai oleh
grader. Skema pengujian grader tercantum
pada Gambar 17.
Gambar 17 Skema pengujian grader.
Dari hasil pengujian didapatkan bahwa
kriteria status CE tidak berlaku untuk program
Status
CE
RTE
TLE
MLE
WA
AC
Scheme
RTE
RTE
TLE
MLE
WA
AC
Compiler
Java
PHP
CE
RTE
RTE
RTE
TLE
TLE
MLE MLE
WA
WA
AC
AC
Perl
RTE
RTE
TLE
MLE
WA
AC
Pengujian Program Komputer
Pengujian dilakukan dengan memilih 37
program komputer pada 10 soal pemrograman
yang telah dikumpulkan dan dinilai oleh grader.
Program tersebut terdiri atas 17 program
menggunakan bahasa pemrograman Java
dengan 11 program memiliki status penilaian
AC, dua program memiliki status penilaian CE,
dan masing-masing satu program dengan status
penilaian RTE, TLE, MLE, dan WA. Sebanyak
10 program menggunakan bahasa pemrograman
Perl dengan enam status penilaian seluruhnya
AC, dan masing-masing satu program dengan
status penilaian RTE, TLE, MLE, dan WA.
Lima program Scheme dan PHP dengan
masing-masing satu program dengan status
penilaian RTE, TLE, MLE, WA, dan AC.
Pemilihan program tersebut berdasarkan tingkat
kemampuan learner yang berbeda-beda dalam
menguasai pemrograman dan statistik peringkat
yang diperoleh.
Program komputer yang telah dipilih
tersebut dinilai kembali pada sistem grader
online Ideone berikut dengan seluruh test case
12
program. Hasil yang diperoleh pada Ideone
terhadap rata-rata konsumsi memori (dalam
KB) dan rata-rata waktu eksekusi program
(dalam detik) lebih kecil dibandingkan dengan
penilaian pada grader LMSP. Tabel hasil
perbandingan grader LMSP dan grader online
Ideone terlampir pada Lampiran 8.
Perbandingan
Pemrograman
Kinerja
antar
Bahasa
Dari hasil pengujian, diperoleh run time
solusi program paling lama pada bahasa
pemrograman Java dengan rata-rata waktu
selama 0.0663 detik, selanjutnya Scheme
selama 0.0208 detik, selanjutnya PHP selama
0.0120 detik, selanjutnya Perl selama 0.0018
detik, selanjutnya C++ selama 0.0015, dan
terakhir Pascal dan C selama 0 detik. Pada
penggunaan memory space, bahasa Java
menggunakan memori paling besar untuk
menjalankan setiap program dengan rata-rata
sekitar 986.399 MB, selanjutnya PHP sekitar
20.744 MB, selanjutnya Scheme sekitar 8.512
MB, selanjutnya Perl sekitar 6.224 MB,
selanjutnya C++ sekitar 3.292 MB, dan terakhir
Pascal dan C sekitar 2.132 MB.
Secara
keseluruhan,
grader
mampu
mengkompilasi dan menjalankan program
dengan bahasa pemrograman Scheme, Java,
PHP dan Perl. Untuk Java sebagai bahasa
dengan run time solusi dan penggunaan memory
space yang cukup besar, dapat ditambahkan
perangkat keras dengan spesifikasi yang lebih
tinggi agar memperoleh waktu yang lebih cepat.
KESIMPULAN DAN SARAN
Kesimpulan
Hasil penelitian ini menunjukkan bahwa:
1 Telah ditambahkan grader otomatis untuk
empat bahasa pemrograman yaitu Scheme,
Java, PHP, dan Perl.
2 LMSP
telah
memenuhi
konsep
asynchronous e-learning didukung oleh
komponen fungsional Portal, LMS, dan
LCMS.
3 Rata-rata konsumsi memori (dalam KB) dan
rata-rata waktu eksekusi program (dalam
detik) pada Ideone lebih kecil dibandingkan
dengan penilaian pada grader LMSP.
4 Kinerja run time pada bahasa pemrograman
Java menggunakan waktu yang lebih lama
sedangkan penggunaan memory space,
bahasa Java menggunakan memori yang
cukup besar untuk menjalankan setiap
program dibandingkan bahasa pemrograman
lain.
Saran
Saran untuk penelitian selanjutnya adalah:
1 Sistem penilai bahasa pemrograman dapat
ditambahkan dengan bahasa lain yang
digunakan sebagai pembelajaran pada
materi perkuliahan.
2 LMSP dapat ditambahkan fitur plagiarism
detection, yang mendeteksi dan melaporkan
adanya kecurangan dari interaksi learner
dalam pengumpulan
kode
program,
khususnya tindakan plagiat.
DAFTAR PUSTAKA
Abazi-Bexheti L. 2008. Development of a
learning content management systems.
International
Journal
of
Systems
Applications, Engineering & Development
2:1-5.
Al-Qahtani SS, Arif R, Guzman LF, Pietrzynski
P, Tevoedjre A. 2010. Comparing selected
criteria of programming languages Java,
PHP, C++, Perl, Haskell, AspectJ, Ruby,
COBOL, Bash Scripts and Scheme.
http://arxiv.org/ftp/arxiv/papers/1008/1008.3
434.pdf [6 Juli 2012].
Barus PN. 2009. TOKI Learning Center: sistem
pelatihan kompetisi pemrograman komputer
[skripsi]. Bandung: Departemen Teknik
Informatika, Institut Teknologi Bandung.
Colton D, Fife L, Winters R. 2005. Building a
computer program grader. Information
System Education Journal 3(6).
Colton D, Fife L, Thompson A. 2006. A webbased
automatic
program
grader.
Information System Education Journal
4(114):1-9.
Hall B. 2000. Learning Management Systems:
How to Choose the Right System for Your
Organization.
Sunnyvale:
Brandonhall.com.
[IDEONE]. Ideone Contributors. 2010. Online
IDE & debugging tool for programming
language. http://ideone.com/ [12 Mei 2012].
Kaner C. 2003. What is a good test case?. Di
dalam: Software Testing Analysis & Review
Conference (STAR) EAST; Orlando, FL, 1216 Mei 2003. USA: Florida Institute of
Technology.
13
Khalife JT. 2009. Novice programmers
difficulties alleviated: surpassing the
threshold of learning how to program. Di
dalam: Proceedings of the first regional
conference on Program and Learning
Assessment in Higher Education; Beirut, 6-7
November 2009. Lebanon: Lebanese
American University. hlm 20-29.
Mustaro PN, Silveira IF, Omar N, Stump SMD.
2007. Structure of storyboard for
development of interactive learning objects.
Di dalam: Proceedings of the 2005
Informing Science and IT Education Joint
Conference; Flagstaff, 16-19 Juni 2007. Sao
Paulo, Brazil: Universidade Presbiteriana
Mackenzie.
Naidu S. 2006. E-Learning: A Guidebook of
Principles, Procedures, and Practices. Ed
ke-2.
New
Delhi:
Commonwealth
Educational Media Center for Asia.
Pressman RS. 2005. Sofware Engineering: A
Practitioner’s
Approach.
Ed
ke-6.
Singapore:
McGraw-Hill
International
Edition.
Patil A. 2010. Automatic grading of
programming assignments [tesis]. San Jose:
The Faculty of the Departement of
Computer Science, San Jose State
University.
[Peer3] Peer3 Author. 2001. Evaluating
learning content management systems.
http://www.jeffcaton.com/PDF_files/Peer3_
LCMS.pdf [12 Mei 2012].
LAMPIRAN
15
Lampiran 1 Analisis pengembangan fitur
Fitur LMS
Peer3 (2001):
1 Registrasi
LMSP*
√
2 Manajemen user
√
3 Rencana Pembelajaran
√
4 Pelaporan
√
5 LMS-to-Content API
-
Naidu (2006):
1 Pengiriman materi perkuliahan
√
Deskripsi
Learner didaftarkan ke dalam perkuliahan
pemrograman dan diberikan akses untuk portal
sistem.
Pengguna baru dapat ditambahkan ke sistem,
dihapus, disimpan, dan dapat diubah
karakteristiknya pada database.
Rencana pengadaan materi, tugas, maupun kuis
diberitahukan melalui pengumuman pada sistem
agar pengguna tidak bingung untuk berinteraksi
dengan sistem pertama kali.
Laporan penilaian hasil pembelajaran
pemrograman baik latihan, materi, kuis, dan
aktivitas penggunaan sistem dapat dilihat secara
langsung pada sistem ataupun diunduh dengan
format CSV.
Memulai dan mencatat proses perkuliahan.
Materi perkuliahan pemrograman dapat
diunggah dari supervisor ke dalam sistem
dengan format ZIP.
2 Manajemen transaksi kelas
√
Dalam mengikuti kelas online, learner dapat
online
mencoba latihan pemrograman, mengikuti tugas
dan kuis yang telah tersedia.
3 Penilaian hasil pembelajaran
√
Hasil pembelajaran pemrograman dinilai dalam
bentuk angka.
4 Penelusuran dan pelaporan
√
Mencari dan menelusuri jawaban learner yang
perkembangan learner
sudah dinilai.
5 Pelaporan prestasi dan kemajuan
√
Penyelesaian tugas pemrograman ditampilkan
penyelesaian tugas
dalam bentuk tabel secara keseluruhan.
6 Alat pembelajaran kolaboratif
Pembelajaran dilakukan dengan perangkat
portable dan wireless (mobile-learning).
7 Mengumpulkan, mengatur, dan
+
Aktivitas yang dilakukan learner, misalnya
melaporkan seluruh aktivitas
berapa kali learner login, berapa banyak soal
pembelajaran learner
yang yang sudah dinilai dan bagaimana statistik
nilai learner disajikan dalam bentuk laporan
statistik.
*( √ ) = sudah dikembangkan, ( - ) = belum dikembangkan, dan ( + ) = akan dikembangkan
16
Lampiran 2 Kuesioner online
17
Lampiran 3 Daftar soal untuk pengujian kinerja bahasa pemrograman
Hello World!
Time limit
1s
Memory limit
64mb
Description
Diberikan sebuah n, keluarkan "Hello World!" sebanyak n baris.
Input Format
Sebuah bilangan n, 0 < n < 100
Output Format
"Hello World!" sebanyak n baris
Sample Input
2
Sample Output
Hello World!
Hello World!
Menuliskan Bilangan
Batas Waktu
1 detik
Batas Memori
8 MB
Deskripsi
Setelah sebelumnya belajar menuliskan teks ke layar, sekarang cobalah menuliskan dan membaca tiga bilangan bulat yang masingmasing disimpan ke variabel bernama a, b, dan c. Variabel a dan b menyimpan bilangan bulat yang kecil (+ 35000), sedangkan
variabel c menyimpan bilangan bulat yang sangat besar. bisa sampai 2 milyard.
Buatlah program C++ untuk membaca dan menuliskan ketiga bilangan tersebut sesuai dengan format keluaran yang ditentukan di
bawah ini.
Format Masukan
Tiga buah bilangan sesuai ketentuan di atas, dalam satu baris, masing-masing dipisahkan oleh satu spasi.
Format Keluaran
Baris pertama adalah nilai dari variabel a dan b yang dipisahkan oleh satu spasi, dimana nilai variabel a di sebelah kiri sedangkan
nilai variabel b di sebelah kanan. Baris kedua adalah nilai dari variabel c. Setiap baris selalu diakhiri dengannewline.
Contoh Masukan
10 15 1789123000
Contoh Keluaran
10 15
1789123000
18
Lampiran 3 Lanjutan
Menghitung Rataan Ujian
Batas Waktu
1 detik
Batas Memori
8 MB
Buat program menghitung nilai rata-rata dari dua ujian (UTS dan UAS) dan satu tugas. Ujian UTS dan UAS masing-masing diberi
bobot 40%, sedangkan tugas diberi bobot 20%.
Format Masukan
Input data berupa tiga nilai berturut-turut uts, uas, dan tugas yang semuanya bilangan bulat dengan selang -25 sampai dengan 100.
Masing-masing nilai dipisahkan oleh satu spasi.
Format Keluaran
Sebuah bilangan pecahan (dua angka di belakang koma) hasil rata-rata dari nilai uts, uas, dan tugas dengan bobot sesuai ketentuan
di atas. Output program selalu diakhiri dengan newline
Contoh Masukan
80 80 90
Contoh Keluaran
82
Menghitung Bilangan
Batas Waktu
1 detik
Batas Memori
8 MB
Buatlah program untuk membaca n buah pasangan bilangan bulat a, b, dan c, dan menghitung banyaknya pasangan bilangan yang
memenuhi syarat a≤b≤c, tetapi tidak satupun dari tiga bilangan tersebut yang bernilai 0.
Format Masukan
Baris pertama adalah bilangan bulat n, 1≤n≤5000, yang menyatakan banyaknya pasangan bilangan masukan, dan n baris
berikutnya adalah pasangan bilangan bulat berturut-turut a, b, dan c yang masing-masing dipisahkan oleh satu spasi, dimana a,b,
dan c dapat bernilai +2Milyard.
Format Keluaran
Sebuah bilangan bulat banyaknya pasangan bilangan seperti yang diminta oleh soal. Output program selalu diakhiri dengannewline
Contoh Masukan
4
2 2 4
-100 20 25
0 13 287
0 -6 0.00
Contoh Keluaran
2
19
Lampiran 3 Lanjutan
Menghitung Kata
Batas Waktu
1 detik
Batas Memori
16 MB
Author
JAS
Buatlah program untuk menghitung kata "aku" (tanpa tanda kutip) dari suatu kalimat. Kata yang dihitung tidak memperhatikan
huruf besar atau kecil, sehingga kata-kata "aku", "Aku", "AKU" dianggap sama. Tetapi kata "aku" dan "mengaku" adalah dua kata
yang berbeda (tidak sama). Sedangkan kata "aku" dengan "aku," (diikuti dengan tanda baca titik atau koma), adalah dua kata yang
sama. Yang disebut kata adalah deretan karakter yang dipisahkan oleh spasi, tanda baca titik, atau tanda baca koma.
Format Masukan
Masukan program adalah sebuah kalimat dengan panjang maksimum 250 karakter. Tanda baca yang ada dalam kalimat masukan
hanyalah titik atau koma.
Format Keluaran
Sebuah bilangan bulat yang menyatakan banyaknya kata "aku" (tanpa tanda kutip) yang terdapat di dalam kalimat masukan.
Output program diakhiri dengan newline.
Contoh Masukan
Aku mengaku salah, walaupun semua yang melakukan bukan aku.
Contoh Keluaran
2
Keterangan
Terdapat 2 (dua) kata "aku" pada kalimat masukan, yaitu "Aku" (kata pertama), dan "aku" (pada kata terakhir).
20
Lampiran 4 Hasil evaluasi LCMS
No.
1
Kriteria (Peer3 2001)
Ukuran objek
2
Format dan media
3
Fitur manajemen materi
pembelajaran
Penggunaan kembali komponen
learning object
4
5
6
Penggunaan fitur pencarian dan
temu kembali
Object design controls
7
User interface
8
Fleksibilitas model penilaian
9
Fleksibilitas import/eksport
materi pembelajaran
Fleksibilitas pengaturan
tampilan materi
Fleksibilitas runtime services
configuration
Dukungan SCORM/AICC
10
11
12
13
Peronalisasi, keputusan dan
penilaian
Hasil Evaluasi
Ukuran objek yang digunakan baik dalam program yang
dikumpulkan maupun soal yang dibuat hampir tidak lebih
dari 1 MB.
Format materi berupa HTML, laporan berupa CSV, dan
format program sesuai dengan masing-masing bahasa
yang digunakan.
Soal materi pemrograman yang diberikan dapat dibuat,
diubah, dan diberi konfigurasi evaluator.
Kriteria ini diterapkan dalam suatu pelatihan yang di
dalamnya diberikan materi yang dapat digunakan berkalikali.
Kriteria ini diterapkan pada pencarian pengguna, soal dan
jawaban.
Pada kriteria ini, modifikasi dan rancangan pada format
soal telah disediakan dan dibuat sesuai yang diinginkan si
pembuat soal.
Antarmuka soal dibuat sesuai kreasi si pembuat soal
dengan format HTML.
Penilaian program dilakukan oleh grader secara
otomatis.
Materi dapat di-import dalam format ZIP dan pelaporan
di-eksport dalam format CSV.
Soal dapat diubah dan diberi teks sesuai bahasa
pemrograman yang digunakan dan gambar.
Konfigurasi grader diatur agar berjalan otomatis
menggunakan framework Yii pada server.
Proses pembuatan pelatihan tidak didukung oleh
SCORM/AICC.
Pengguna dapat mengubah profil. Keputusan untuk
mengumpulkan, menghapus, dan menilai ulang program
dapat dilakukan pada sistem.
21
Lampiran 5 Ilustrasi learning objects LMSP
22
Lampiran 6 Persentase kebutuhan dalam belajar pemrograman
Jawaban
Penjelasan konsep pemrograman
Contoh kode program
Materi pemrograman tingkat lanjut
Latihan membuat program
Feedback dari dosen
Tidak Perlu
0%
0%
4%
0%
2%
Perlu
21%
20%
29%
17%
22%
Persentase
Cukup Perlu
15%
16%
32%
14%
30%
Sangat Perlu
63%
63%
36%
68%
46%
23
Lampiran 7 Kode program hasil uji
Soal : Hello World!
Waktu : 1s
Memori : 16 MB
Test case benar: 0 dari 5
Bahasa : Scheme
Nilai : 0
Uji Status : CE
Hasil Uji : RTE
Soal : Hello World!
Waktu : 1s
Memori : 16 MB
Test case benar: 5 dari 5
Bahasa : Scheme
Nilai : 100
Uji Status : AC
Hasil Uji : AC
(define (hello n)
(do ((i 1 (+ i 1))) (> i n)
(display "Hello World!")
(newline)
)
)
(hello (rad))
(define (hello n)
(do ((i 1 (+ i 1))) ((> i n))
(display "Hello World!")
(newline)
)
)
(hello (read))
Soal : Hello World!
Waktu : 1s
Memori : 16 MB
Test case benar: 0 dari 5
Soal : Hello World!
Waktu : 1s
Memori : 16 MB
Test case benar: 5 dari 5
Bahasa : Scheme
Nilai : 0
Uji Status : RTE
Hasil Uji : RTE
Bahasa : Scheme
Nilai : 100
Uji Status : AC
Hasil Uji : AC
(defin (hello n)
(do ((i 1 (+ i 1))) (> i n)
(display "Hello World!")
(newline)
)
)
(hello (read))
(define (hello n)
(do ((i 1 (+ i 1))) ((> i n))
(display "Hello World!")
(newline)
)
)
(hello (read))
Soal : Hello World!
Waktu : 1s
Memori : 16 MB
Test case benar: 0 dari 5
Soal : Hello World!
Waktu : 1s
Memori : 16 MB
Test case benar: 5 dari 5
Bahasa : Scheme
Nilai : 0
Uji Status : TLE
Hasil Uji : TLE
Bahasa : Scheme
Nilai : 100
Uji Status : AC
Hasil Uji : AC
(define (hello n)
(do ((i 1 (+ i 1))) (> i n)
(display "Hello World!")
(newline)
)
)
(hello (read))
(define (hello n)
(do ((i 1 (+ i 1))) ((> i n))
(display "Hello World!")
(newline)
)
)
(hello (read))
Soal : Hello World!
Waktu : 1s
Memori : 16 MB
Test case benar: 1 dari 5
Soal : Hello World!
Waktu : 1s
Memori : 16 MB
Test case benar: 5 dari 5
Bahasa : Scheme
Nilai : 20
Uji Status : WA
Hasil Uji : WA
(define (hello n)
(do ((i 1 (+ i 2))) ((< i n))
(display "Hello World!")
(newline)
)
)
(hello (read))
Soal : Hello World!
Waktu : 1s
Memori : 0.01 MB
Test case benar: 0 dari 5
Bahasa : Scheme
Nilai : 0
Uji Status : MLE
Hasil Uji : MLE
(define (hello n)
(do ((i 1 (+ i 2))) ((< i n))
(display "Hello World!")
(newline)
)
)
(hello (read))
Bahasa : Scheme
Nilai : 100
Uji Status : AC
Hasil Uji : AC
(define (hello n)
(do ((i 1 (+ i 1))) ((> i n))
(display "Hello World!")
(newline)
)
)
(hello (read))
24
Lampiran 7 Lanjutan
Soal : Hello World!
Waktu : 1s
Memori : 16 MB
Test case benar: 0 dari 5
Bahasa : Java
Nilai : 0
Uji Status : CE
Hasil Uji : CE
Soal : Hello World!
Waktu : 1s
Memori : 16 MB
Test case benar: 5 dari 5
Bahasa : Java
Nilai : 100
Uji Status : AC
Hasil Uji : AC
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public
static
void
main(String[]
args) {
String input="";
BufferedReader
dataIn
=
new
BufferedReader(new
InputStreamReader(System.));
try{
input = dataIn.readLine();
} catch(IOException e) {
System.out.println("Error!");
}
int n = Integer.parseInt(input);
for (int i = 0; i < n; i++){
System.out.println("Hello World!");
} }}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[]
args) {
String input="";
BufferedReader dataIn = new
BufferedReader(new
InputStreamReader(System.in));
try{
input= dataIn.readLine();
} catch(IOException e) {
System.out.println("Error!");
}
int n = Integer.parseInt(input);
for (int i = 0; i < n; i++){
System.out.println("Hello World!");
} } }
Soal : Hello World!
Waktu : 1s
Memori : 16 MB
Test case benar: 0 dari 5
Soal : Hello World!
Waktu : 1s
Memori : 16 MB
Test case benar: 5 dari 5
Bahasa : Java
Nilai : 0
Uji Status : TLE
Hasil Uji : TLE
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public
static
void
main(String[]
args) {
String input="";
BufferedReader
dataIn
=
new
BufferedReader(new
InputStreamReader(System.in));
try{
input = dataIn.readLine();
} catch(IOException e) {
System.out.println("Error!");
}
int n = Integer.parseInt(input);
for (int i = 0; ; i++){
System.out.println("Hello World!");
} } }
Bahasa : Java
Nilai : 100
Uji Status : AC
Hasil Uji : AC
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[]
args) {
String input="";
BufferedReader dataIn = new
BufferedReader(new
InputStreamReader(System.in));
try{
input= dataIn.readLine();
} catch(IOException e) {
System.out.println("Error!");
}
int n = Integer.parseInt(input);
for (int i = 0; i < n; i++){
System.out.println("Hello World!");
}}}
25
Lampiran 7 Lanjutan
Soal : Jumlah Elemen
Baris Matriks Segi
Waktu : 1s
Memori : 16 MB
Test case benar: 0 dari 5
Bahasa : Java
Nilai : 0
Uji Status : RTE
Hasil Uji : RTE
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[]
args) {
String inp="";
BufferedReader dataIn = new
BufferedReader(new
InputStreamReader(System.in));
Integer[][] A =new
Integer[100][100];
int n;
try{
inp = dataIn.readLine();
n = Integer.parseInt(inp);
for(int i=0;i<n;i++){
int tot=0;
for(int j=0;j<n;j++){
inp =
dataIn.readLine();
A[i][j] =
Integer.parseInt(inp);
tot+=A[i][j];
}
A[i][i]=tot;
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(i==j)
Soal : Jumlah Elemen
Baris Matriks Segi
Waktu : 1s
Memori : 16 MB
Test case benar: 5 dari 5
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[]
args) {
String inp="";
String delim="[ ]+";
String[] temp;
BufferedReader dataIn = new
BufferedReader(new
InputStreamReader(System.in));
Integer[][]
A
=new
Integer[100][100];
try {
inp = dataIn.readLine();
int
n
Integer.parseInt(inp);
System.out.print(" ");
else
System.out.println();
}
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(i==j)
System.out.format("%d",A[i][j]);
else
System.out.print("0");
if(j<(n-1))
System.out.print(" ");
else
} catch(IOException e) {
System.out.println("Error!");
}
}
=
for(int i=0;i<n;i++){
int tot=0;
inp
=
dataIn.readLine();
temp
=
inp.split(delim);
for(int j=0;j<n;j++){
A[i][j]
=
Integer.parseInt(temp[j]);
tot+=A[i][j];
}
A[i][i]=tot;
}
System.out.format("%d",A[i][j]);
else
System.out.print("0");
if(j<(n-1))
Bahasa : Java
Nilai : 100
Uji Status : AC
Hasil Uji : AC
System.out.println();
}
}
} catch(IOException e) {
}
System.out.println("Error!");
}
}
}
26
Lampiran 7 Lanjutan
Soal : Hello World!
Waktu : 1s
Memori : 16 MB
Test case benar: 1 dari 5
Bahasa : Java
Nilai : 20
Uji Status : WA
Hasil Uji : WA
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public
static
void
main(String[]
args) {
String input="";
BufferedReader
dataIn
=
new
BufferedReader(new
InputStreamReader(System.in));
try{
input = dataIn.readLine();
} catch(IOException e) {
System.out.println("Error!");
}
int n = Integer.parseInt(input);
for (int i = 0; i<n; i++){
System.out.println("Hello World!");
i++;
} } }
Soal : Hello World!
Waktu : 1s
Memori : 9 MB
Test case benar: 0 dari 5
Soal : Hello World!
Waktu : 1s
Memori : 16 MB
Test case benar: 5 dari 5
Bahasa : Java
Nilai : 100
Uji Status : AC
Hasil Uji : AC
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[]
args) {
String input="";
BufferedReader dataIn = new
BufferedReader(new
InputStreamReader(System.in));
try{
input= dataIn.readLine();
} catch(IOException e) {
System.out.println("Error!");
}
int n = Integer.parseInt(input);
for (int i = 0; i < n; i++){
System.out.println("Hello World!");
}}}
Bahasa : Java
Nilai : 0
Uji Status : MLE
Hasil Uji : MLE
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public
static
void
main(String[]
args) {
String input="";
BufferedReader
dataIn
=
new
BufferedReader(new
InputStreamReader(System.in));
try{
input = dataIn.readLine();
} catch(IOException e) {
System.out.println("Error!");
}
int n = Integer.parseInt(input);
if(n > 0 && n < 100){
for (int i = 0; i<n; i++){
System.out.println("Hello World!");
} } } }
Soal : Hello World!
Waktu : 1s
Memori : 16 MB
Test case benar: 0 dari 5
Bahasa : PHP
Nilai : 0
Uji Status : CE
Hasil Uji : RTE
<?php
$n = fgets(STIN);
for($i=1; $i <= $; $i++){
print "Hello World!\n";
}
exit();
?>
Soal : Hello World!
Waktu : 1s
Memori : 16 MB
Test case benar: 5 dari 5
Bahasa : PHP
Nilai : 100
Uji Status : AC
Hasil Uji : AC
<?php
$n = fgets(STDIN);
for($i=1; $i <= $n; $i++){
print "Hello World!\n";
}
exit(0);
?>
27
Lampiran 7 Lanjutan
Soal : Hello World!
Waktu : 1s
Memori : 16 MB
Test case benar: 0 dari 5
Bahasa : PHP
Nilai : 0
Uji Status : RTE
Hasil Uji : RTE
<?php
$n = fgets(STDIN);
for($i=1; $i <= $n; $i++){
print "Hello World!\n";
exit();
?>
Soal : Hello World!
Waktu : 1s
Memori : 16 MB
Test case benar: 0 dari 5
Bahasa : PHP
Nilai : 0
Uji Status : TLE
Hasil Uji : TLE
Soal : Hello World!
Waktu : 1s
Memori : 16 MB
Test case benar: 5 dari 5
Bahasa : PHP
Nilai : 100
Uji Status : AC
Hasil Uji : AC
<?php
$n = fgets(STDIN);
for($i=1; $i <= $n; $i++){
print "Hello World!\n";
}
exit(0);
?>
Soal : Hello World!
Waktu : 1s
Memori : 16 MB
Test case benar: 5 dari 5
Bahasa : PHP
Nilai : 100
Uji Status : AC
Hasil Uji : AC
<?php
$n = fgets(STDIN);
for($i=1; ; $i++){
print "Hello World!\n";
}
exit(0);
?>
<?php
$n = fgets(STDIN);
for($i=1; $i <= $n; $i++){
print "Hello World!\n";
}
exit(0);
?>
Soal : Hello World!
Waktu : 1s
Memori : 16 MB
Test case benar: 1 dari 5
Soal : Hello World!
Waktu : 1s
Memori : 16 MB
Test case benar: 5 dari 5
Bahasa : PHP
Nilai : 20
Uji Status : WA
Hasil Uji : WA
<?php
$n = fgets(STDIN);
for($i=1; ; $i++){
print "Hello World!\n";
$i++;
}
exit(0);
?>
Soal : Hello World!
Waktu : 1s
Memori : 0.01 MB
Test case benar: 0 dari 5
Bahasa : PHP
Nilai : 100
Uji Status : AC
Hasil Uji : AC
<?php
$n = fgets(STDIN);
for($i=1; $i <= $n; $i++){
print "Hello World!\n";
}
exit(0);
?>
Bahasa : PHP
Nilai : 0
Uji Status : MLE
Hasil Uji : MLE
<?php
$n = fgets(STDIN);
for($i=1; $i <= $n; $i++){
print "Hello World!\n";
}
exit(0);
?>
Soal : Hello World!
Waktu : 1s
Memori : 16 MB
Test case benar: 0 dari 5
Bahasa : Perl
Nilai : 0
Uji Status : CE
Hasil Uji : RTE
#!/usr/bin/perl
$n=<;
for ($i=1;$i<$n ; $i++)
{ print "Hello World!\n";}
Soal : Hello World!
Waktu : 1s
Memori : 16 MB
Test case benar: 5 dari 5
Bahasa : Perl
Nilai : 100
Uji Status : AC
Hasil Uji : AC
#!/usr/bin/perl
$n=<>;
for ($i=1;$i<$n ; $i++)
{ print "Hello World!\n"; }
28
Lampiran 7 Lanjutan
Soal : Hello World!
Waktu : 1s
Memori : 16 MB
Test case benar: 0 dari 5
Bahasa : Perl
Nilai : 0
Uji Status : RTE
Hasil Uji : RTE
Soal : Hello World!
Waktu : 1s
Memori : 16 MB
Test case benar: 5 dari 5
Bahasa : Perl
Nilai : 100
Uji Status : AC
Hasil Uji : AC
#!/usr/bin/perl
$n=<>;
for ($i=1;$i<$n ; $i++)
{ print "Hello World!\n";
#!/usr/bin/perl
$n=<>;
for ($i=1;$i<$n ; $i++)
{ print "Hello World!\n"; }
Soal : Hello World!
Waktu : 1s
Memori : 16 MB
Test case benar: 0 dari 5
Soal : Hello World!
Waktu : 1s
Memori : 16 MB
Test case benar: 5 dari 5
Bahasa : Perl
Nilai : 0
Uji Status : TLE
Hasil Uji : TLE
Bahasa : Perl
Nilai : 100
Uji Status : AC
Hasil Uji : AC
#!/usr/bin/perl
$n=<>;
for ($i=1; ; $i++)
{ print "Hello World!\n";}
#!/usr/bin/perl
$n=<>;
for ($i=1;$i<$n ; $i++)
{ print "Hello World!\n"; }
Soal : Hello World!
Waktu : 1s
Memori : 16 MB
Test case benar: 1 dari 5
Soal : Hello World!
Waktu : 1s
Memori : 16 MB
Test case benar: 5 dari 5
Bahasa : Perl
Nilai : 20
Uji Status : WA
Hasil Uji : WA
#!/usr/bin/perl
$n=<>;
for ($i=1; $i<$n ; $i++)
{ print "Hello World!\n";$i++}
Soal : Hello World!
Waktu : 1s
Memori : 0.01 MB
Test case benar: 0 dari 5
Bahasa : Perl
Nilai : 0
Uji Status : MLE
Hasil Uji : MLE
#!/usr/bin/perl
$n=<>;
for ($i=1; $i<$n ; $i++)
{ print "Hello World!\n";$i++}
Bahasa : Perl
Nilai : 100
Uji Status : AC
Hasil Uji : AC
#!/usr/bin/perl
$n=<>;
for ($i=1;$i<$n ; $i++)
{ print "Hello World!\n"; }
29
Lampiran 8 Perbandingan pengujian program komputer
Soal
Hello World! #207851
Hello World! #207489
Hello World! #207959
Hello World! #207491
Menuliskan Bilangan
#207835
Menghitung Rataan
Ujian #207836
Menghitung Bilangan
#207911
Menghitung Kata
#207840
Pengenalan Program
Java #207961
Pengenalan Program
Java #208472
Pengenalan Program
Java #209182
Pengenalan Program
Java #209167
Pengenalan Class
dalam Java #208081
Pengenalan Class
dalam Java #208718
Rata-rata Garis
#208794
Rata-rata Garis
#209463
Rata-rata Garis
#209243
Rata-rata Garis
#209240
Pewarisan #208457
Pewarisan #208994
Jumlah Elemen Baris
Matrik Segi
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Bahasa
Java
Perl
Java
Perl
Waktu (detik)
LMSP
Ideone
0.031
0.030
0.002
0
0.075
0.030
0.001
0
Memori (kB)
LMSP
Ideone
986399
245632
6224
4552
986399
245632
6224
4566.6
Status
LMSP
Ideone
AC
success
AC
success
AC
success
AC
success
Perl
0.002
0
6224
4574
AC
success
Perl
0.002
0
6224
4582.8
AC
success
Perl
0.002
0
6224
4552
AC
success
Perl
0.002
0
6224
4552
AC
success
Java
0.092
0.047
986750
246096
AC
success
Java
0.094
0.055
986750
246080
AC
success
Java
0.093
0.050
986750
237096
AC
success
CE
CE
Java
-
-
-
-
Java
0.095
0.045
986750
246080
AC
success
Java
0.095
0.050
986750
237138
AC
success
Java
0.086
0.046
986399
246016
AC
success
Java
0.088
0.046
986399
246387.2
AC
success
Java
0.087
0.044
986399
246412.8
AC
success
-
-
CE
CE
0.045
0.052
986884
-
245952
246189.5
AC
WA
success
success
Java
Java
Java
0.104
-
-
Java
-
0.030
-
245632
RTE
RTE
Java
Java
Perl
Perl
Perl
Perl
PHP
PHP
PHP
PHP
-
0.110
0.030
0
0
0
0
0.020
0.040
0.020
0.020
-
245952
245632
4552
4552
4552
4552
13616
13624
13616
13616
TLE
MLE
RTE
TLE
MLE
WA
RTE
TLE
MLE
WA
RTE
success
RTE
RTE
success
success
RTE
RTE
success
success
30
Lampiran 8 Lanjutan
Soal
Bahasa
Hello World!
Hello World!
PHP
Scheme
Hello World!
Scheme
Hello World!
Hello World!
Hello World!
Scheme
Scheme
Scheme
Waktu (detik)
LMSP
Ideone
0.017
0.020
0.030
0.014
Memori (kB)
LMSP
Ideone
20744
13616
4176
0.020
-
4176
0.020
0.020
0.020
8512
4176
4176
4176
Status
LMSP
Ideone
AC
success
RTE
RTE
success
TLE
no
ouput
MLE
success
WA
success
AC
success
Download