1 PENGEMBANGAN SISTEM MANAJEMEN PEMBELAJARAN PEMROGRAMAN BAHASA SCHEME, JAVA, PHP, DAN PERL ALFA NUGRAHA PRADANA DEPARTEMEN ILMU KOMPUTER FAKULTAS MAT...
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
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 , 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 , mengalihkan standar input ke suatu file, -m <size>, batas ruang alamat memori dalam satuan KB, -o , mengalihkan standar output ke suatu file, -r , mengalihkan standar error ke suatu file, dan -w