• Tidak ada hasil yang ditemukan

Pengembangan Sistem Manajemen Pembelajaran Pemrograman Bahasa Scheme, Java, PHP, dan Perl

N/A
N/A
Protected

Academic year: 2017

Membagikan "Pengembangan Sistem Manajemen Pembelajaran Pemrograman Bahasa Scheme, Java, PHP, dan Perl"

Copied!
71
0
0

Teks penuh

(1)

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

(2)

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

(3)

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.

(4)

Judul Skripsi : Pengembangan Sistem Manajemen Pembelajaran Pemrograman Bahasa Scheme, Java, PHP, dan Perl

Nama : Alfa Nugraha Pradana

NIM : 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

(5)

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

(6)

RIWAYAT HIDUP

(7)

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 PlanandModeling 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

(8)

viii

DAFTAR TABEL

Halaman

1 Hasil perbandingan fitur LMS ... .4

2 Hasil evaluasi komponen dasar LCMS ... 5

3 Persentase penggunaan bahasa pemrograman ... 6

4 Persentase pemahaman materi pemrograman ... 6

5 Persentase cara belajar pemrograman ... 7

6 Karakteristik pengguna ... 7

7 Hasil pengujian sistem secara black-box ... 11

DAFTAR GAMBAR

Halaman 1 Arsitektur e-learning (Peer3 2001) ... 2

2 ThePrototyping Model (Pressman 2005) ... 3

3 Portal LMSP ... 4

4 Contoh modul LMSP ... 5

5 Contoh sub modul LMSP... 5

6 Deskripsi objektif pembelajaran ... 6

7 Contoh soal LMSP ... 6

8 Ilustrasi model test case ... 9

9 Struktur modul grader ... 9

10 Perintah instalasi compiler ... 9

11 Path compiler ... 9

12 Variabel implementasi grader ... 10

13 Implementasi grader Scheme ... 11

14 Implementasi grader Java ... 11

15 Implementasi grader PHP... 11

16 Implementasi grader Perl. ... 11

17 Skema pengujian grader ... .11

DAFTAR LAMPIRAN

Halaman 1 Analisis pengembangan fitur ... 15

2 Kuesioner online ... 16

3 Daftar soal untuk pengujian kinerja bahasa pemrograman ... 17

4 Hasil evaluasi LCMS ... 20

5 Ilustrasi learning objects LMSP ... 21

6 Persentase kebutuhan dalam belajar pemrograman ... 22

7 Kode program hasil uji ... 23

(9)

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 pengetahuan-pengetahuan 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

(10)

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 learning object (Abazi-Bexheti 2008).

Gambaran umum arsitektur e-learning

tercantum pada Gambar 1.

Analisis selanjutnya yaitu learning objects

dan storyboard. Learning objects adalah unit-unit 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.

(11)

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 planand modeling quick design, construction of prototype dan

deployment delivery and feedback (Pressman 2005) (Gambar 2).

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 PlanandModeling 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

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.

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 graderonline 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

(12)

4

HASIL DAN PEMBAHASAN

Analisis

Hasil analisis e-learning ditunjukkan pada

portal, fitur LMSP, evaluasi LCMS, learning objects, storyboard, dan evaluasi kuesioner.

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.

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

menunjukkan bahwa fitur pelaporan dalam bentuk statistik telah dikembangkan, dan LMS-to-Content API, serta LMS sebagai alat pembelajaran kolaboratif belum dikembangkan. 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 e-learning pada LMSP.

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. Tabel 1 Hasil perbandingan fitur LMS

Fitur LMS

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

(13)

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

Konstruksi learning objects pada LMSP diilustrasikan pada Lampiran 5.

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 4 Contoh modul LMSP.

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:

(14)

6

Gambar 6 Deskripsi objektif pembelajaran.

Gambar 7 Contoh soal LMSP.

Tabel 3 Persentase penggunaan bahasa pemrograman

Bahasa Pemrograman Persentase

C 67%

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.

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

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. 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, masing-masing menunjukkan nilai jam, menit, dan detik yang dipisahkan oleh satu spasi.

Format Keluaran

(15)

pemrograman secara online adalah 63% dan yang tidak pernah sebesar 37%.

Tabel 5 Persentase cara belajar pemrograman

Cara Belajar Persentase

Mengerjakan latihan materi dan soal yang diberikan

80% mahasiswa dalam belajar pemrograman. Pertanyaan tersebut telah disediakan lima jawaban, yaitu:

a penjelasan konsep pemrograman, b contoh kode program,

c materi pemrograman tingkat lanjut, d latihan membuat program, dan e 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

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 Kategori

pengguna

Aksi

Administrator Mengelola seluruh data dalam sistem dan memiliki akses penuh dalam LMSP

Supervisor Mengelola pembelajaran

dan membuat soal serta berperan sebagai author

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

(16)

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 nilaiyang 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.

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

(17)

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.

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 masing-masing bahasa dilakukan pada class Sandbox pada modul components evaluators

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

(18)

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.

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.

Gambar 13 Implementasi grader Scheme.

$moeval_path $parameter -r

$tmperr -- $command

$moeval_path = file evaluator,

$parameter = parameter batas waktu

[file input] -o [file output] -r

[file temporary] -–

(19)

Gambar 14 Implementasi grader Java.

Gambar 15 Implementasi grader PHP.

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

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.

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. Tabel 7 Hasil pengujian sistem secara black-

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

Perintah compile:

/bin/mo-evalbox -e -m [batas

(20)

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 Kinerja antar Bahasa Pemrograman

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 web-based 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:

Brandon-hall.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

(21)

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.

(22)
(23)

Lampiran 1 Analisis pengembangan fitur

Fitur LMS LMSP* Deskripsi

Peer3 (2001):

1 Registrasi √ Learner didaftarkan ke dalam perkuliahan pemrograman dan diberikan akses untuk portal

sistem.

2 Manajemen user √ Pengguna baru dapat ditambahkan ke sistem, dihapus, disimpan, dan dapat diubah

karakteristiknya pada database.

3 Rencana Pembelajaran √ Rencana pengadaan materi, tugas, maupun kuis diberitahukan melalui pengumuman pada sistem agar pengguna tidak bingung untuk berinteraksi dengan sistem pertama kali.

4 Pelaporan √ Laporan penilaian hasil pembelajaran

pemrograman baik latihan, materi, kuis, dan aktivitas penggunaan sistem dapat dilihat secara langsung pada sistem ataupun diunduh dengan format CSV.

5 LMS-to-Content API - Memulai dan mencatat proses perkuliahan.

Naidu (2006):

1 Pengiriman materi perkuliahan √ Materi perkuliahan pemrograman dapat diunggah dari supervisor ke dalam sistem dengan format ZIP.

2 Manajemen transaksi kelas

online

√ Dalam mengikuti kelas online, learner dapat 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 perkembangan learner

√ Mencari dan menelusuri jawaban learner yang sudah dinilai.

5 Pelaporan prestasi dan kemajuan penyelesaian tugas

√ Penyelesaian tugas pemrograman ditampilkan dalam bentuk tabel secara keseluruhan. 6 Alat pembelajaran kolaboratif - Pembelajaran dilakukan dengan perangkat

portable dan wireless (mobile-learning). 7 Mengumpulkan, mengatur, dan

melaporkan seluruh aktivitas pembelajaran learner

+ Aktivitas yang dilakukan learner, misalnya berapa kali learner login, berapa banyak soal yang yang sudah dinilai dan bagaimana statistik nilai learner disajikan dalam bentuk laporan statistik.

(24)

16

(25)

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 masing-masing 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

(26)

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

(27)

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

(28)

20

Lampiran 4 Hasil evaluasi LCMS

No. Kriteria (Peer3 2001) Hasil Evaluasi

1 Ukuran objek Ukuran objek yang digunakan baik dalam program yang dikumpulkan maupun soal yang dibuat hampir tidak lebih dari 1 MB.

2 Format dan media Format materi berupa HTML, laporan berupa CSV, dan format program sesuai dengan masing-masing bahasa yang digunakan.

3 Fitur manajemen materi pembelajaran

Soal materi pemrograman yang diberikan dapat dibuat, diubah, dan diberi konfigurasi evaluator.

4 Penggunaan kembali komponen

learning object

Kriteria ini diterapkan dalam suatu pelatihan yang di dalamnya diberikan materi yang dapat digunakan berkali-kali.

5 Penggunaan fitur pencarian dan temu kembali

Kriteria ini diterapkan pada pencarian pengguna, soal dan jawaban.

6 Object design controls Pada kriteria ini, modifikasi dan rancangan pada format soal telah disediakan dan dibuat sesuai yang diinginkan si pembuat soal.

7 User interface Antarmuka soal dibuat sesuai kreasi si pembuat soal

dengan format HTML.

8 Fleksibilitas model penilaian Penilaian program dilakukan oleh grader secara otomatis.

9 Fleksibilitas import/eksport

materi pembelajaran

Materi dapat di-import dalam format ZIP dan pelaporan di-eksport dalam format CSV.

10 Fleksibilitas pengaturan tampilan materi

Soal dapat diubah dan diberi teks sesuai bahasa pemrograman yang digunakan dan gambar.

11 Fleksibilitas runtime services configuration

Konfigurasi grader diatur agar berjalan otomatis menggunakan framework Yii pada server.

12 Dukungan SCORM/AICC Proses pembuatan pelatihan tidak didukung oleh SCORM/AICC.

13 Peronalisasi, keputusan dan penilaian

(29)
(30)

22

Lampiran 6 Persentase kebutuhan dalam belajar pemrograman

Jawaban Persentase

Tidak Perlu Perlu Cukup Perlu Sangat Perlu

Penjelasan konsep pemrograman 0% 21% 15% 63%

Contoh kode program 0% 20% 16% 63%

Materi pemrograman tingkat lanjut 4% 29% 32% 36%

Latihan membuat program 0% 17% 14% 68%

(31)
(32)

24

Lampiran 7 Lanjutan Soal : Hello World! public class Main {

public static void main(String[] 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[] System.out.println("Error!"); }

int n = Integer.parseInt(input); for (int i = 0; i < n; i++){ System.out.println("Hello World!"); } } } public class Main {

public static void main(String[] 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[] System.out.println("Error!"); }

(33)

Lampiran 7 Lanjutan

public class Main {

public static void main(String[] public class Main {

(34)

26

Lampiran 7 Lanjutan Soal : Hello World! public class Main {

public static void main(String[] System.out.println("Hello World!"); i++;

} } }

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main {

public static void main(String[] System.out.println("Error!"); }

int n = Integer.parseInt(input); for (int i = 0; i < n; i++){ System.out.println("Hello World!"); }}} public class Main {

(35)
(36)

28

(37)

Lampiran 8 Perbandingan pengujian program komputer

Soal Bahasa Waktu (detik) Memori (kB) Status

LMSP Ideone LMSP Ideone LMSP Ideone Hello World! #207851 Java 0.031 0.030 986399 245632 AC success

Hello World! #207489 Perl 0.002 0 6224 4552 AC success

Hello World! #207959 Java 0.075 0.030 986399 245632 AC success

Hello World! #207491 Perl 0.001 0 6224 4566.6 AC success

Menuliskan Bilangan

#207835 Perl 0.002 0 6224 4574 AC success

Menghitung Rataan

Ujian #207836 Perl 0.002 0 6224 4582.8 AC success

Menghitung Bilangan

#207911 Perl 0.002 0 6224 4552 AC success

Menghitung Kata

#207840 Perl 0.002 0 6224 4552 AC success

Pengenalan Program

Java #207961 Java 0.092 0.047 986750 246096 AC success

Pengenalan Program

Java #208472 Java 0.094 0.055 986750 246080 AC success

Pengenalan Program

Java #209182 Java 0.093 0.050 986750 237096 AC success

Pengenalan Program

Java #209167 Java - - - - CE CE

Pengenalan Class

dalam Java #208081 Java 0.095 0.045 986750 246080 AC success Pengenalan Class

dalam Java #208718 Java 0.095 0.050 986750 237138 AC success Rata-rata Garis

#208794 Java 0.086 0.046 986399 246016 AC success

Rata-rata Garis

#209463 Java 0.088 0.046 986399 246387.2 AC success

Rata-rata Garis

#209243 Java 0.087 0.044 986399 246412.8 AC success

Rata-rata Garis

#209240 Java - - - - CE CE

Pewarisan #208457 Java 0.104 0.045 986884 245952 AC success

Pewarisan #208994 Java - 0.052 - 246189.5 WA success

Jumlah Elemen Baris

Matrik Segi Java - 0.030 - 245632 RTE RTE

Hello World! Java - 0.110 - 245952 TLE RTE

Hello World! Java - 0.030 - 245632 MLE success

Hello World! Perl - 0 - 4552 RTE RTE

Hello World! Perl - 0 - 4552 TLE RTE

Hello World! Perl - 0 - 4552 MLE success

Hello World! Perl - 0 - 4552 WA success

Hello World! PHP - 0.020 - 13616 RTE RTE

Hello World! PHP - 0.040 - 13624 TLE RTE

Hello World! PHP - 0.020 - 13616 MLE success

(38)

30

Lampiran 8 Lanjutan

Soal Bahasa Waktu (detik) Memori (kB) Status

LMSP Ideone LMSP Ideone LMSP Ideone

Hello World! PHP 0.017 0.020 20744 13616 AC success

Hello World! Scheme - 0.030 - 4176 RTE RTE

Hello World! Scheme - 0.020 - 4176 TLE

success no ouput

Hello World! Scheme - 0.020 - 4176 MLE success

Hello World! Scheme - 0.020 - 4176 WA success

(39)

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.

(40)

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 pengetahuan-pengetahuan 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

Gambar

Gambar 1  Arsitektur e-learning (Peer3 2001).
Gambar 2  The Prototyping Model (Pressman
Tabel 1  Hasil perbandingan fitur LMS
Tabel 2  Hasil evaluasi komponen dasar LCMS
+7

Referensi

Dokumen terkait

Secara teknis web service adalah kumpulan dari fungsi atau method yang terdapat pada sebuah server yang dapat dipanggil oleh klien dari jarak jauh dengan menggunakan XML sebagai

Menurut Hidayat (2010:2) “website atau situs dapat diartikan sebagai kumpulan halaman-halaman yang digunakan untuk menampilkan informasi teks, gambar diam atau

Berdasarkan kesimpulan hasil penelitian diatas, maka saran yang bisa diberikan untuk penelitian selanjutnya adalah metode EOQ ini dapat diterapkan untuk evaluasi item

Gramedia, Jakarta menciptakan calon pekerja yang baik yang mempengaruhi tingkat kinerja karyawan tersebut, sehingga semakin tinggi nilai dari seleksi semakin tinggi

Metode ini adalah metode yang paling sederhana untuk memeriksa korelasi antara sub kunci. Dalam metode ini setiap sub kunci di XOR dengan sub kunci lainnya dan rangkaian

Dari latar belakang yang telah dijelaskan, maka rumusan masalah penelitian ini adalah seberapa besar pengaruh pembiayaan modal kerja terhadap pendapatan Usaha Mikro,

Penelitian ini bertujuan untuk mengukur dan menganalisis pengaruh Modal, produktivitas, hari orang kerja dan pengalaman kerja terhadap pendapatan petani garam di Desa