## PERANCANGAN SISTEM PENILAIAN OTOMATIS  PROGRAM JAVA BERBASIS WEB PADA  PERKULIAHAN PEMROGRAMAN
Ade Sukendar 1)
1) Univeristas Pasundan Email : ade.sukendar@gmail.com

## ABSTRAK
Tugas  pemrograman  adalah  elemen  penting  di  perkuliahan  pemrograman  untuk  membantu  siswa memahami  elemen  bahasa  pemrograman  yang  sedang  dipelajari.  Tugas  yang  dikumpulkan  berupa  kode program  dalam  bahasa  pemrograman  Java.  Persoalan  muncul  dengan  tugas  tersebut  karena  penilaian  yang dilakukan oleh pengajar membutuhkan sumber lingkungan pemrograman dan waktu untuk menilai program. Program terlebih dahulu akan dikompilasi untuk menentukan kesalahan sintak program selanjutnya program akan dieksekusi dengan berbagai inputan program untuk menentukan langkah-langkah program sudah sesuai spesifikasi  tugas  yang  diberikan  oleh  pengajar.  Selain  itu  penilaian  program  dapat  memberikan  feedback kepada siswa agar tugas program yang telah dikerjakan dapat diperbaiki lagi untuk mendapatkan nilai yang maksimal serta mengetahui progress pengerjaan tugas yang dikerjakan oleh siswa. Tujuan dari penelitian ini adalah mengembangkan sistem penilaian otomatis tugas program siswa berbasis web yang dapat menangani proses kompilasi, eksekusi, feedback program serta mengetahui progres pengerjaan tugas yang dilakukan oleh siswa  secara  online.  Sistem  tersebut  akan  dikerjakan  dengan  metode  Software  Development  Life  Cycle (SDLC). Sistem yang dibangun diharapkan dapat meminimalkan usaha dan waktu pengajar dalam melakukan penilaian tugas program yang telah dikumpulkan oleh siswa.
Kata Kunci : Penilaian otomatis, Pemrograman Java, Platform Web.

## ABSTRACT
Programming  assignments  are  an  important  element  in  programming  courses  to  help  students understand the elements of the programming language being studied. The assignments collected are in the form of program code in the Java programming language. Problems arise with these assignments because the assessment carried out by the teacher  requires programming environment resources and time to assess the program. The program will first be compiled to determine program syntax errors, then the program will be executed  with  various  program  inputs  to  determine  whether  the  program  steps  meet  the  assignment specifications given by the teacher. Apart from that, program assessment can provide feedback to students so that the program assignments that have been completed can be improved again to get maximum grades and to know the progress of the assignments carried out by students. The aim of this research is to develop a web- based  automatic  assessment  system  for  student  program  assignments  that  can  handle  the  process  of compilation, execution, program feedback and determine the progress of assignments carried out by students online. The system will be carried out using the Software Development Life Cycle (SDLC) method. The system built is expected to minimize the teacher's effort and time in assessing program assignments that have been submitted by students.
Keywords: Automatic grading, Java programming, Web platform

## 1. PENDAHULUAN
Program  studi  Teknik  Informatika  salah satunya mempunyai matakuliah pemrograman yang  berisi  materi  mengenai  bagaimana  cara membuat sebuah program. Matakuliah tersebut  menekankan  pada  aspek  praktis  agar mahasiswa yang mengikuti kuliah pemrograman  dapat  memahami  dengan  baik teori  materi  pemrograman  yang  disampaikan di  kelas.  Untuk  memenuhi  aspek  praktis tersebut  pada  umumnya  selain  tatap  muka dikelas  juga  ditambah  dengan  kegiatan praktikum. Selain untuk mempercepat pemahaman  materi  pemrograman  juga  untuk membantu  dalam  pengenalan  lingkungan pemrograman dengan komputer yang terdapat di  laboratorium  tanpa  perlu  dilakukan penyetingan ulang oleh mahasiswa.
Setiap topik pemrograman pada umumnya akan  diberikan  tugas  yaitu  berupa  tugas program.  Hal  tersebut  adalah  hal  penting karena  dapat  membantu  siswa  memahami elemen  bahasa  pemrograman  yang  sedang dipelajari (Douce, 2005). Tugas program yang dikumpulkan  adalah  kode  program  dalam Bahasa pemrograman Java. Persoalan muncul dengan tugas tersebut karena harus dilakukan penilaian yang membutuhkan sumber lingkungan  pemrograman  dan  waktu  serta feedback  kepada  siswa  jika  program  yang dikerjakan tidak sesuai.
Penilaian program membutuhkan lingkungan pemrograman, waktu dan feedback tugas  kepada  siswa  (Douce,  2005).  Program tugas  yang  dikumpulkan  oleh  siswa  sebelum dieksekusi  akan  dikompilasi  terlebih  dahulu untuk  menentukan  validasi  sintak  program, jika  telah  selesai  dikompilasi  maka  dapat dieksekusi    dengan  berbagai  inputan  nilai program.  Hasil  eksekusi  tersebut  selanjutnya dianalisis  apakah  sudah  sesuai  spesifikasi tugas  yang  diberikan  atau  tidak.  Penilaian tugas program tradisional yaitu mengecek satu persatu  program  sejumlah  siswa  bahkan sampai  perbaris  program  (Ihantola,  2010). Setelah  penilaian  program  selesai  maka pengajar  memberikan  feedback  ke  siswa. Namun proses penilaian tugas program seperti itu  akan  menghabiskan  waktu  yang  lama  dan
feedback  yang  diterima  mahasiswa  pun  akan lama  pula.  Apalagi  jika  kelas  pemrograman bertambah besar maka jumlah siswa pun akan bertambah  pula  sehingga  hal  tersebut  akan menambah  waktu  penilaian  tugas  program (Ihantola, 2010).
Sehingga  perlu  dikembangkan  sistem penilaian  program  secara  online  yang  dapat meminimalkan  usaha  dan  waktu  pengajar dalam  melakukan  penilaian  tugas  program yang  telah  dikumpulkan  oleh  siswa  (Huang, 2015).  Sistem  penilaian  otomatis  program online  tersebut  sudah  dikembangkan  oleh penelitian
(Huang,
2015)(Hull, 2011)(Akahane, 2015)(Hani’ah, 2021).
Penelitian  (Singh,  2013)  menghasilkan metode  baru  untuk  feedback  otomatis penilaian pemrograman di tingkat pemrograman dasar dengan melakukan penilaian  dari  kesalahan-kesalahan  program yang  dilakukan  penilaian  (model  error).
Sementara penelitian (Aleman, 2011) mengusulkan sistem penilaian otomatis program  dengan  menambahkan  fitur  sistem pengujian  berbasis  online  ( the  online  judging system ).  Sistem  tersebut  biasanya  digunakan untuk perlombaan pemrograman.

## 2. METODE
Tahapan yang digunakan dalam penelitian ini menggunakan flowchart atau diagram alir. Metode penelitian yang dilakukan dideskripsikan  mempunyai  lima  tahapan utama, yaitu :
1. Studi Literatur
Pada  tahap  ini,  telah  dilakukan  studi literatur terkait sistem penilaian program Java berbasis  web  dari  berbagai  hasil  penelitian. Literatur yang diambil dari beberapa paper dan buku sebagai dasar teorinya.
2. Analisis dan Perancangan
Pada tahap ini, dilakukan tahapan analisis sistem  penilaian  program  berbasis  web  serta memodelkan  spesifikasi  perangkat  lunak  dari hasil  tahapan  analisis.  Selanjutnya  dilakukan rancangan sistem yang akan dibangun dengan memberikan gambaran utama dari sistem yang akan dikembangkan.

## Gambar 1. Metode Penelitian
3. Implementasi
Pada tahap ini, dilakukan tahap implementasi  pembangunan  aplikasi  sistem penilaian  program  java  berbasis  web  yang bersumber dari hasil perancangan.
4. Pengujian
Pada  tahap  ini  dilakukan  pengujian perangkat lunak yang telah diimplementasikan apakah  sudah  memenuhi  kesesuaian  fungsi yang didefinisikan.

## 3. HASIL DAN PEMBAHASAN

## 3.1. Deskripsi Sistem Yang Berjalan
Sistem  penilaian  tugas  yang  sedang berjalan  terdiri  dari  beberapa  aktivitas  yaitu diantaranya pembuatan soal tugas, pengerjaan soal  tugas  dan  penilaian  soal  tugas.  Aktivitas pembuatan  soal  tugas  terdiri  dari  pengajar membuat tugas pemrograman sesuai topik atau materi  pemrograman  yang  telah  dijelaskan. Tugas  pemrograman  berisi  deskripsi  soal program yang harus dikerjakan bahkan dengan penjelasan struktur program. Pengajar memberikan  informasi  mengenai  soal  tugas pemrograman  ke  siswa  untuk  dikerjakan beserta  dengan  batas  waktu  pengumpulan tugas
Pengerjaan soal tugas terdiri dari aktivitas siswa  menerima  informasi  spesifikasi  tugas pemrograman  yang  harus  dikerjakan,  siswa membuka  tools  lingkungan  pemrograman,
siswa  memahami  tugas  pemrograman  dan selanjutnya  melakukan  pengkodingan  ke lingkungan pemrograman. Selanjutnya melakukan  pengujian  program  yang  telah dikerjakan untuk memastikan bahwa program sudah sesuai spesifikasi yang diberikan; siswa mengumpulkan  jawaban  tugas  pemrograman ke pengajar baik hardcopy atau softcopy yang biasanya dikirim ke email pengajar
Penilaian Soal Tugas terdiri dari aktivitas yaitu  pengajar  membuka  tools  lingkungan pemrograman,  pengajar  memeriksa  jawaban soal  pemrograman  (algoritma,  output)  yang telah  dikumpulkan  oleh  siswa.  Jika  hardcopy maka  program  diperiksa  manual  satu-satu hardcopy tugas yang dikerjakan, Jika softcopy maka program dibuka di lingkungan pemrograman,  kemudian  dieksekusi  dan outputnya  diperiksa.  Pengajar  memberikan nilai program dan menginfokannya ke siswa

## 3.2. Deskripsi Sistem Usulan
Sistem  penilaian tugas usulan terdiri  dari beberapa aktivitas yaitu diantaranya pembuatan  soal  tugas,  pengerjaan  soal  tugas dan penilaian soal tugas. Aktivitas pembuatan soal  tugas  terdiri  dari  aktivitas  pengajar membuat tugas pemrograman sesuai topik atau materi  pemrograman  yang  telah  diberikan penjelasan. Tugas pemrograman berisi deskripsi soal program yang harus dikerjakan, penjelasan struktur program dan jika ada kasus pengujian  programnya.  Pengajar  memberikan informasi  mengenai  soal  tugas  pemrograman ke siswa untuk dikerjakan beserta dengan batas waktu  pengumpulan  tugas  di  aplikasi  web programming.  Pengajar  mengupload  elemen- lemen  soal  pemrograman  yang  dibutuhkan untuk soal tugas pemrograman
Aktivitas  pengerjaan  soal  tugas  oleh mahasiswa  terdiri  dari  siswa  menerima informasi spesifikasi tugas pemrograman yang harus  dikerjakan,  siswa  membuka  tools lingkungan  pemrograman,  siswa  memahami tugas pemrograman dan selanjutnya melakukan  pengkodingan  ke  lingkungan pemrograman. Selanjutnya melakukan pengujian  program  yang  telah  dikerjakan untuk  memastikan  bahwa  program  sudah sesuai spesifikasi yang diberikan. Siswa meng-
upload  jawaban  tugas  pemrograman  ke aplikasi  web  pemrograman  dan  sistem melakukan  penilaian  terhadap  tes  program yang  telah  dikerjakan,  siswa  mendapatkan informasi hasil penilaian.
Aktivitas  penilaian  soal  tugas  terdiri  dari pengajar membuka aplikasi web pemrograman,  pengajar  memeriksa  tugas pemrograman  (algoritma,  output)  yang  telah diupload  oleh  siswa,  pengajar  mengaktifkan penilaian  program  tugas  otomatis.  Sistem menjalankan penilaian dengan cara kompilasi dan  eksekusi  masing-masing  program  siswa yang telah diupload ke dalam sistem penilaian.

## 3.3. Fungsional Sistem
Berikut  dibawah  ini  adalah  gambar fungsional sistem aplikasi pencarian dokumen dalam bentuk diagram use-case.

## Gambar 2. Diagram Use-case Sistem
Fungsional  sistem  terdiri  dari  upload jawaban  tes,  penilaian  otomatis  jawaban  tes, konfigurasi soal tes dan penilaian jawaban tes. Upload  jawaban  tes  dilakukan  oleh  siswa sebagai  jawaban  dari  soal  tugas  yang  akan dikerjakan.  Jika  sistem  disetting  untuk melakukan  penilaian  secara  otomatis  maka akan  dilakukan  penilaian  otomatis  untuk memberikan  penilaian  terhadap  tugas  yang dikerjakan.  Namun  sebelumnya  Pengajar harus  membuat  spesifikasi  soal  yang  akan dikerjakan  oleh  siswa.  Termasuk  kasus-kasus uji  agar  terhadap  program  yang  akan dikerjakan.

## 3.4. Rumus Penilaian
Penilaian  program  diberikan  jarak  antar nilai  0  s.d  10.  Berikut  dibawah  ini  rumus penilaian programnya yaitu
Nilai = N1 + N2 + 4 * N3 + N4
Catatan:
• N1 : Submit (true: 2, false 0)
• N2 : Kompilasi (true: 2, false 0)
• N3 : Ratio Kasus uji sukses
•  N4  :  Kesesuaian  Program  (+2,  diisi oleh pengajar jika program sesuai)

## 3.5. Diagram Kelas
Berikut  ini  diagram  kelas  perancangan sistem penilaian otomatis program Java
Gambar 3. Diagram Kelas Sistem
Tabel 1. Deskripsi Diagram Kelas Kelas Procedur/ Fungsi Keterangan TopikMateri Topik  materi  tugas yang akan diberikan kepada siswa TesProgram Spesifikasi Soal pertanyaan tes yang akan diberikan kepada siswa JawabanTes Kompilasi  Melakukan kompilasi  terhadap
program yang diupload siswa
Eksekusi Melakukan pengeksekusian program dengan melakukan pengujian kasus- kasus uji yang telah ditentukan Penilaian  Melakukan penilaian  terhadap program yang telah dikumpulkan KasusUji Kasus uji program LaporanTes Export Statistik  nilai tes program yang telah dikumpulkan oleh siswa 3.6. Proses Penilaian Gambar dibawah ini menjelaskan mengenai  langkah-langkah  proses  penilaian oleh sistem.
G ambar 4. Proses Penilaian
Algoritma penilaian program terdiri dari 4 langkah  yaitu  file  yang  sudah  terupload  ke sistem,  kemudian  melakukan  kompilasi  dan eksekusi  kasus  uji  yang  telah  diseting
sebelumnya.  Selanjutnya  akan  dilakukan penilaian  berdasarkan  rumus  yang  telah ditentukan
3.7. Rancangan Antarmuka
Berikut  ini  adalah  rancangan  antarmuka siswa mengupload jawaban tugas program.

## Gambar 5. Rancangan Antarmuka
Penjelasan komponen:
• Waktu : Lama waktu pengerjaan tugas
• Status Open : Status soal pertanyaan apakah masih dibuka atau sudah ditutup
• Jam : Informasi waktu yagn sedang berjalan
• Soal : Berisi pertanyaan program yang harus
dikerjakan oleh siswa • PathFile : File program yang akan diupload • Upload : Berfungsi untuk melakukan upload jawaban tes •  Output  :  Informasi  hasil  penilaian  (error kompilasi,  error  kasus  uji  atau  kategori penilaian)

## 3.8. File Program
File-file program yang telah dibuat untuk menangani sistem penilaian otomatis program Java yaitu seperti gambar di bawah ini. Terdiri dari  kelas  utama  yaitu  kelas  Score,  Compiler dan Tester.
G ambar 6. File Program Sistem
File  Score  adalah  file  program  utama yang berisi Langkah-langkah untuk melakukan penilaian dari mulai kompilasi, pengujian serta penilaian  skor  programnya.  File  Compiler adalah  file  program  yang  bertugas  untuk melakukan  kompilas  terhadap  program.  Jika kompilasi tidak ada kesalahan maka selanjutnya masuk ke tahapan berikutnya yaitu pengeksskusian.  File  Tester  adalah  file  yang bertugas  melakukan  pengeksekusian  program untuk kasus-kasus uji yang telah dispesifikasikan.

## 3.9. Pengujian
Pengujian pada prototipe aplikasi penilaian otomatis  program  Java  sudah  dilakukan. Namun  pengujian  terhadap  prototipe  tersebut masih  mengalami  kendala.  Kendala  yang dihadapi  adalah  berkaitan  dengan  sistem input/output  pada  program  dimana  ketika dieksekusi  seolah-olah  tidak  menjalankan pengeksekusian  program  secara  utuh.  Jika program  dijalankan  normal  tidak  ada  seperti tidak  ada  respon  namun  ketika  dilakukan debugging program melakukan pengesekusian dengan  semestinya  dan  menghasilkan  nilai yang sesuai. Hal ini terjadi karena penggunaan sistem  input/output  program  pada  kasus  uji yang  menghasilkan  status  yang  tidak  dapat diprediksi  ( unpredictable )  karena  proses thread yang saling bertumpuk atau bertabrakan. Sehingga hasil eksekusinya tidak sesuai yang diharapkan.

## 4. PENUTUP

## 4.1. Kesimpulan
Kesimpulan  dari  penelitian  yang  telah dikerjakan, yaitu dihasilkannya model analisis dan  perancangan  serta  prototipe  sistem penilaian otomatis program Java berbasis web serta  mendefinsikan  rumus  penilaian  skor terhadap tes program yang telah dikumpulkan oleh  siswa.  Penilaian  diberikan  nilai  dari  nol (0)  sampai  dengan  sepuluh  (10)  yang  terdiri dari  beberapa  penilaian  seperti  upload  tugas, kompilasi,  kasus  uji  dan  kesesuaian  program yang diminta di spesifikasi soal.

## 4.2. Saran
Saran untuk penelitian yang telah dikerjakan, yaitu melakukan pengecekan ulang terhadap  komponen  program  pengeksekusian kasus  uji  program  yang telah dispesifikasikan sebelumnya  agar  dapat  berjalan  dengan semestinya. Alternatif lainnya dapat dilakukan komponen  berbasis  open-source  yang  dapat menangani thread sistem input/output dengan baik. Serta mengembangkan beberapa komponen pembangkit ( generate ) untuk kasus- kasus  uji  dalam  bentuk  file  unit  pengujian (utamanya berbasis Junit)

## 5. DAFTAR PUSTAKA
Douce,  C  2005, Automatic  Test-Based Assessment  of  Programming:  A  Review . ACM Journal of Educational Resources in Computing,  Vol.  5,  No.  2,  September. Article 4
Ihantola,  P.,  Ahoniemi,  T.,  Karavirta,  V., Seppälä,  O.  2010. Review  of  Recent Systems  for  Automatic  Assessment  of Programming Assignments . ACM
Huang,  C.,  Morreale,  P.  A.,  2015. An Integrated  Automatic  Compiling  System for  Student  Feedback  on  Java. Programs 5th IEEE Integrated STEM Conference
Hull,  M.,  Powell,  D.,  Klein,  E.,  2011.
Infadango: Automated Grading for Student Programming ItiCSE’11. Darmstadt, Germany Akahane,  Y.,  Kitaya,  H.,  Inoue,  U.,  2015.
Design  and  Evaluation  of  Automated
Scoring  Java  Programming  Assignments

## SNPD , Takamatsu, Japan IEEE
Singh,  R.,  Gulwani,  S.,  Solar-Lezama,  A., 2013. Automated  Feedback  Generation for Introductory Programming Assignments , Seattle, WA, USA. Aleman, J.L.F. 2011. Automated Assessment in a  Programming  Tools  Course .  IEEE
TRANSACTIONS  ON  EDUCATION,
VOL. 54, NO. 4
Hani’ah,  M.  ,  Kurniawan,  Y.,  Rozi,  I.,  M. 2021. LivE (onLine – java Exercise) Java Programming Language Learning System for  lab  and  online  test .  Matrix:  Jurnal Manajemen  Teknologi  dan  Informatika Volume 11 Hal. 1-10