1 4 Analisis HASIL DAN PEMBAHASAN Hasil analisis elearning ditunjukkan pada portal, fitur LMSP, evaluasi LCMS, learning objects, storyboard, dan evalu...
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