Pengembangan dan Pengujian Aplikasi Computer Based Test dengan Menggunakan Algoritme Fisher-Yates Shuffle sebagai Pengacakan Soal

## Naufal Fachry Abdullah
Universitas Amikom Purwokerto, Purwokerto, Indonesia Email: naufalfachry76@gmail.com * corresponding author
I N F O   A R T I K E L

## ABSTRACT
Sejarah Artikel: Diterima 6 Agustus 2023 Diperbaiki 26 Agustus 2023 Diterima 27 Agustus 2023 Many  studies  have  confirmed  that  the application of  information technology has helped  humans  to  be  more  efficient  in  carrying  out  their  activities.  The  daily repetition at the 5 Brebes State High School, using the conventional method, with the question of the written examination, it poses some challenges such as, teachers take quite a long time to correct the answers, since one teacher can teach up to 7 classes,  another  obstacle  when  examining  is  cheating  by  students  during  the examination. This research aims to develop and evaluate a Computer Based Test based on a Website, thus making it easier for teachers to correct students' answers, which are dual-choice, because the results of the correction will automatically exit the system and the application of the Fisher-Yates Shuffle algorithm will be able, minimizing  the  level  of  student  fraud,  because  questions  are  spotted  for  each student. System development will use the Waterfall method with phases, analysis, design,  program  code  making,  testing.  Based  on  the  random  permutation calculation of an existing question, when there are 15 questions but only show 10 questions,  it  results  in  permutations  of  360.360  models,  then  the  probability calculation that has been done yields 0,00832%, the chances of 30 students getting the same sequence of topics of 15 existing questions. Based on the results of the validation test, the comparison of the correction time for one class with the issue of double selection, which previously took 15 minutes, while using a Computer Based Test of 32 seconds. While the level of cheating is minimized, because the sequence of matters presented to each student will be different.
Keywords: Algorithm Fisher Yates Computer Based Test Quiz
Kata Kunci:
Algorithm Fisher Yates Computer Based Test
Ulangan Harian
Korespondensi: E-mail: naufalfachry76@gmail.com

## ABSTRAK
Perkembangan  teknologi  informasi  telah  banyak  menyelesaikan  berbagai permasalahan  yang  dihadapi  manusia.  Banyak  penelitian  yang  telah mengkonfirmasi  bahwa  penerapan  teknologi  informasi  telah  membantu  manusia untuk lebih efisien dalam menjalankan aktifitasnya. Kegiatan ulangan harian pada sekolah  SMP  Negeri  5  Brebes, menggunakan  metode  konvensional,  dengan  soal ujian tertulis, hal ini menimbulkan beberapa tantangan seperti, guru membutuhkan waktu  yang  cukup  lama  untuk  mengoreksi  hasil  jawaban,  dikarenakan  satu  guru bisa  mengajar  sampai  7  kelas,  kendala  lain  saat  ujian  adalah  kecurangan  yang dilakukan  siswa  saat  ujian.  Penelitian  ini  bertujuan  untuk  mengembangkan  dan mengevaluasi Computer Based Test berbasis Website , sehingga dapat memudahkan guru dalam  mengoreksi  hasil jawaban siswa,  yang bersifat pilihan ganda, karena hasil  koreksi  akan  keluar  secara  otomatis  dari  sistem  dan  penerapan  algoritme Fisher-Yates Shuffle akan dapat, meminimalisir tingkat kecurangan siswa, karena soal  diacak  untuk  setiap  siswa. Fisher-Yates  Shuffle adalah  Algoritme  untuk menghasilkan  permutasi  acak  dari  urutan  berhingga,  dalam  istilah  sederhana, algoritme  mengocok  urutan.  Pengembangan  sistem  akan  menggunakan  metode Waterfall dengan tahapan, Analisis, Desain, Pembuatan kode program, Pengujian. Berdasarkan  perhitungan  permutasi  acak  dari  soal  yang  ada,  apabila  terdapat  15 soal namun hanya menampilkan 10 soal, maka menghasilkan permutasi sebanyak 360.360  model,  selanjutnya  perhitungan  probabilitas  yang  telah  dilakukan menghasilkan  0,00832%,  peluang  30  siswa  mendapatkan  urutan  soal  yang  sama dari 15 soal yang ada. Berdasarkan hasil pengujian validasi, perbandingan waktu koreksi  untuk  satu  kelas  dengan  soal  pilihan  ganda,  yang  sebelumnya membutuhkan waktu 15 menit, sementara dengan menggunakan Computer Based Test 32 detik. Sedangkan tingkat kecurangan yaitu mencontek dapat diminimalisir, karena urutan soal yang tampil pada tiap siswa akan berbeda.

## 1. Pendahuluan
Saat ini teknologi terus berkembang pesat sehingga hal itu dapat mempermudah kegiatan manusia dalam kehidupan sehari-hari, salah satunya dalam bidang pendidikan. Pendidikan merupakan usaha membantu pelajar dalam mengembangkan seluruh potensinya (hati, pikir, rasa, dan karsa, serta raga) untuk menghadapi masa depan oleh Ramdhani dkk., [1]. Teknologi telah banyak diimplementasikan untuk  bidang  pendidikan  yaitu,  untuk  menunjang  layanan  administrasi,  proses  pembelajaran, pendaftaran ulang, perpustakaan online, akses nilai, ujian nasional, pencarian referensi secara cepat, pembayaran SPP dan proses seleksi penerimaan siswa baru menurut Maulani [2].
Meskipun  teknologi  sangat  membantu  dalam  dunia  pendidikan  namun  nyatanya  belum  semua sekolah dapat menerapkan teknologi pada proses pembelajaran, salah satunya adalah SMP Negeri 5 Brebes. SMP Negeri 5 Brebes adalah salah satu satuan pendidikan yang terletak di desa Pemaron, Kec. Brebes, Kab. Brebes, Jawa Tengah. Memiliki kelas sejumlah 27 ruangan. Jumlah keseluruhan siswa sebanyak 880 siswa terdiri dari 453 siswa laki-laki dan 427 siswa perempuan, untuk jumlah keseluruhan  pengajar  sebanyak  52  orang.  Berdasarkan  wawancara  yang  dilakukan  oleh  peneliti terkait kegiatan ulangan harian, menyatakan bahwa di SMP Negeri 5 Brebes menggunakan metode konvensional. Menurut beberapa guru mengatakan jika dengan metode tersebut memiliki beberapa kekurangan seperti pengkoreksian jawaban yang membutuhkan waktu satu sampai dua hari dengan bentuk soal pilihan ganda dan lima sampai tujuh hari dengan bentuk soal essay . Hal itu dikatakan tidak  efisien  karena  satu  guru  mengajar  tujuh  sampai  dua  belas  kelas.  Kekurangan  lainnya  yaitu adanya tingkat kecurangan siswa seperti menyontek karena mengingat metode konvensional dapat dengan mudah untuk melakukan kegiatan tersebut. Kemudian, peneliti juga menemukan data yang menyatakan bahwa guru tersebut menemui 5 sampai 10 siswa yang menyontek dalam satu kelas pada saat  kegiatan  ulangan  harian  dalam  satu  kali  ujian.  Sehingga  untuk  mempermudah  guru  dalam mengoreksi  jawaban  dan  meminimalisir  tingkat  kecurangan  siswa,  diperlukan  teknologi  ulangan berbasis komputer, atau biasa disebut dengan Computer Based Test .
Computer Based Test (CBT) merupakan salah satu penerapan teknologi dalam bidang pendidikan, yaitu  digunakan  untuk  Ujian  Nasional,  tes  CPNS  dan  lain  sebagainya. Computer  Based  Test merupakan  serangkaian  tes  atau  penilaian  yang  berbasis  komputer  baik  itu  melibatkan  komputer standalone atau  terhubung  pada  jaringan internet dan  sebagian  besar  soal  menggunakan  bentuk pilihan ganda, Agustina [3], Efendi dkk., [4]. Dengan menggunakan Computer Based Test soal dapat diacak menggunakan algoritme Fisher-Yates Shuffle . Algoritme Fisher-Yates Shuffle adalah sebuah algoritme  yang  digunakan  untuk  mengacak  suatu  himpunan  terhingga,  hasil  dari  algoritme  ini memiliki  tingkat  probabilitas  yang  sama  menurut  Irawati  dkk.,  [5].  Menurut  penelitian  yang dilakukan  oleh  Qhorifadillah  dkk.,  [6],  Febriani  dkk,  [7]  algoritme Fisher-Yates  Shuffle memiliki keunggulan,  bahwa  dalam  proses  iterasi  tidak  dihasilkan  kemungkinan  yang  terulang,  sedangkan algoritme Linear Congruent Method dapat terjadi perulangan pada periode waktu tertentu. Dengan keunggulan  yang  dimiliki  oleh  algoritme Fisher-Yates  Shuffle maka  dianggap  sesuai  untuk diterapkan  sebagai  pengacak  soal  pada Computer  Based  Test .  Soal  tersebut  ditampilkan  dan dikerjakan  siswa  melalui Website yang  dapat  diakses  menggunakan internet . Website merupakan kumpulan informasi di dalam page yang biasa diakses lewat jalur internet menurut Maulani [8].
Penelitian ini bertujuan untuk menunjang kegiatan ulangan harian menjadi lebih efisien pada proses pengoreksian  dan  mengurangi  tingkat  kecurangan  siswa,  dengan  membangun  aplikasi Computer Based Test berbasis Website dengan menerapkan algoritme Fisher-Yates Shuffle .

## 2. Metode

## 2.1 Metode Pengembangan Sistem
Dalam perancangan aplikasi terdapat tahapan pengembangan aplikasi Computer Based Test dengan metode waterfall. Metode waterfall adalah metode pengembangan sistem yang bersifat linear dari tahap awal higga tahap akhir, tahap yang dilalui harus menunggu selesainya tahap sebelumnya. Pada
metode  ini  memiliki  tahapan-tahapan  pengembangan  seperti  analisis  kebutuhan  perangkat  lunak, desain, pengkodean, pengujian, dan pemeliharaan oleh Wahid [9]. Tahapan pengembangan waterfall terdiri dari analisis, desain, pengkodean dan pengujian dengan uraian sebagai berikut:
Analisis: Pada tahapan ini peneliti menganalisis masalah yang didapat saat melakukan pengumpulan data melalui observasi, wawanacara, dokumentasi dan studi pustaka. Dengan dilakukannya analisis maka  peneliti dapat  memahami  aplikasi apa  yang  dibutuhkan  untuk  menyelesaikan  masalah  yang ada pada SMP Negeri 5 Brebes. Desain: Dalam tahapan ini peneliti berfokus pada pembangunan struktur  data,  arsitektur  sistem  secara  keseluruhan,  perancangan  interface dan  perancangan  fungsi tombol yang ada pada aplikasi yang akan dibangun. Pemodelan ini dilakukan menggunakan Unified Modelling Language (UML) [10]. Pembuatan kode program: Dalam tahapan berikutnya peneliti melakukan  implementasi  kode  program  kedalam  desain  yang  sudah  dibuat  menggunakan  bahasa pemrograman  PHP  dengan  kode  editor  Visual  Studio  Code. Pengujian: Dalam  tahap  pengujian, peneliti melakukan pengecekan apakah aplikasi yang dibangun sudah sesuai dengan desain dan dapat bekerja sesuai keinginan [11]. Tujuan dari tahapan ini adalah menghindari adanya kesalahan, bug atau error pada  aplikasi  yang  dibangun.  Pengujian  aplikasi  ini  dilakukan  menggunakan  metode blackbox  testing  untuk  uji  fungsional  sistem  dan  wawancara  untuk  uji  validitas,  Berikut penjelasannya: (i) Uji Validitas, merupakan suatu indikator yang memiliki fungsi sebagai pengukur. Pengujian  ini  dilakukan  untuk  mengetahui  apakah  setelah  penerapan  aplikasi  ulangan  berbasis Website dapat membuat waktu pengoreksian lebih efisien dan tingkat kecurangan dapat diminimalisir atau  tidak.  Pada  tahap  ini  peneliti  melakukan  uji  validitas  menggunakan  metode  wawancara  dan observasi,  dimana  peneliti  melakukan  wawancara  kepada  salah  satu  guru  dan  observasi  terkait kegiatan ulangan di SMP Negeri 5 Brebes. Pendukung atau pemeliharaan: Dalam tahap ini peneliti melakukan pengecekan ulang secara keseluruhan, mulai dari tahap analisis sampai tahap perubahan aplikasi yang ada, untuk memastikan pada saat aplikasi dikirim ke pengguna tidak ada perubahan pada aplikasi.
Gambar 1. Metode Waterfall [12]

## 2.2 Algoritme Fisher-Yates Shuffle
Pada  tahap  ini  peneliti  menggunakan  algoritme Fisher-Yates  Shuffle untuk  mengacak  soal. Pengacakan ini dilakukan agar soal memiliki urutan yang berbeda dengan sebelumnya, sehingga soal yang diterima siswa tidak sama urutannya. Berikut adalah tahapan dalam proses pengacakan, langkah pertama yaitu menentukan nilai, selanjutnya angka acak dipilih kemudian tukar posisi dengan angka terakhir sampai ke n, sehingga tidak terjadi pengulangan. Gambar diatas juga menunjukan bahwa pengacakan  selesai  apabila  seluruh array telah  diacak.  Tahapan  dalam  proses  pengacakan  dapat terlihat pada gambar 2.
Gambar 2. Algoritme Fisher-Yates Shuffle Shuffle [13]

## 3. Hasil dan Pembahasan

## 3.1. Analisis Sistem
Berdasarkan  hasil  wawancara  yang  dilakukan  bersama  guru  SMP  Negeri  5  Brebes,  yang  mana instansi  pendidikan  ini  membutuhkan  sistem  yang  dapat  mempermudah  guru  dan  menunjang keberlangsungan  ulangan.  Dikarenakan  dalam  proses  sebelumnya  ulangan  menggunakan  metode manual, yang mana pada saat mengerjakan siswa memilih jawaban pada lembar jawab dan guru akan mengoreksi satu persatu lembar jawaban tersebut.
Metode ini tidak efektif karena berdampak pada saat pengerjaan ulangan yang mana metode manual membuat siswa sangat mudah untuk mencontek, hal tersebut mengakibatkan terjadinya penurunan rasa percaya diri siswa dan membuat siswa terbiasa untuk melakukan hal yang tidak jujur. Selain itu, metode  tersebut  juga  berdampak  terhadap  guru,  karena  untuk  proses  mengoreksi  membutuhkan waktu yang lama, sehingga kegiatan tersebut dikatakan tidak efektif.
Sesuai  dengan  permasalahan  yang  dihadapi  dan  kebutuhan  dari  SMP  Negeri  5  Brebes,  peneliti mengidentifikasi  2  kebutuhan  fungsional  sistem  yaitu:  Kebutuhan  Fungsional  Guru:  (i)  Dapat menambahkan  akun  untuk  guru.  (ii)  Dapat  menginput  dan  mengedit  soal  yang  telah  dibuat.  (iii) Dapat menampilkan secara otomatis hasil tes pada sistem. Kebutuhan Fungsional Siswa: (i) Dapat membuat akun untuk siswa. (ii) Dapat mengakses dan mengerjakan soal. (iii) Dapat melihat hasil tes secara langsung. Kebutuhan Fungsional Admin: (i)  Mengelola data user.

## 3.2. Desain
3.2.1. Perancangan Alur Sistem
Dalam  perancangan  alur  sistem  ini  menggunakan  pemanfaatan  perancangan Unified  Modelling Language (UML):
a. Use Case Diagram
Pada Gambar 3. merupakan Use Case Diagram yang menjabarkan halaman yang dapat diakses oleh admin, guru dan siswa pada aplikasi. Admin dapat melakukan aktivitas login kemudian melakukan pengolahan data soal dan user seperti, menambhankan data, mengubah dan menghapus. Guru dapat melakukan login dan  mengelola  soal  sedangkan,  siswa  dapat  melakukan login kemudian melaksanakan ujian dan bisa melihat hasil ujian.
Gambar 3. Use Case Diagram

## b. Pengkodean
Penerapan  Algoritme Fisher-Yates  Shuffle ,  menggunakan  bahasa  pemograman  PHP.  Seperti  yang terlihat pada kode dibawah ini.
1. Private function _MyShuffleSoal(&$soal) 2.  {
3. for ($i = 0; $i < sizeof($soal); ++$i) {
4. $r = rand(0, $i);
5. $tmp = $soal[$i];
6. $soal[$i] = $soal[$r];
7. $soal[$r] = $tmp;
8. }
9.  }
Pada kode diatas terdapat sebuah fungsi Private bernama _MyShuffleSoal yang menerima parameter $soal yang  merupakan array .  Fungsi  ini  digunakan  untuk  mengacak  urutan  elemen  dalam array $soal. Secara umum, fungsi ini menggunakan perulangan for untuk mengacak elemen dalam array $soal dengan menggunakan fungsi rand() untuk menentukan posisi elemen yang akan ditukar dengan elemen saat ini. Variabel $tmp digunakan untuk menyimpan elemen saat ini sebelum di tukar dengan elemen  lain.  Pada  akhir  perulangan,  urutan  elemen  dalam array $soal  akan  teracak.  Fungsi  ini ditandai dengan access modifier private , yang berarti fungsi ini hanya dapat diakses dari dalam kelas yang sama dan tidak dapat diakses dari luar kelas. Dalam konteks aplikasi, fungsi ini bisa digunakan untuk  mengacak  urutan  soal  pada  sebuah  aplikasi  ujian  atau  tes.  Sehingga  setiap  kali  aplikasi dijalankan,  urutan  soal  akan  berbeda  ini  adalah  fungsi  PHP  yang  mengocok  elemen array yang diteruskan  sebagai  argumen  dengan  referensi.  Fungsi  ini  menggunakan  algoritme Fisher-Yates Shuffle , juga dikenal sebagai pengocokan algoritme Knuth. Algoritme berulang kali memilih elemen acak dari bagian array yang tidak diacak dan menukarnya dengan elemen saat ini, dilakukan untuk setiap elemen dalam larik, menghasilkan urutan elemen yang diacak.

## c. Antar Muka

## 1) Form Login
Pada  Gambar  4.  merupakan  antarmuka  form login .  Pada  form login terdapat  informasi  pengisian username  dan  password.  Selain  itu  terdapat  fungsi  seperti,  show  password, login dan  registrasi. Halaman  ini  merupakan  halaman  awal  ketika  user  mengakses  link Website Computer  Based  Test SMP Negeri 5 Brebes.

## Gambar 4. Antarmuka Form Login

## 2) Antarmuka Tambah Jenis Ujian
Pada  Gambar  5.  merupakan  antarmuka  tambah  jenis  ujian.  Pada  halaman  ini  terdapat  informasi pengisian  nama  ujian, topik,  pilihan  kategori, jumlah  soal  pilihan  ganda  mudah,  menengah,  sulit, jumlah soal essay , bobot nilai pilgan, KKM, estimasi jam, keterangan dan pilihan kelas. Selain itu terdapat fungsi seperti tambah.
Gambar 5. Antarmuka Tambah Jenis Ujian

## 3) Antarmuka Bank Soal
Pada Gambar 6. merupakan antarmuka bank soal. Pada halaman ini terdapat informasi pilihan tahun ajaran, jenis ujian dan tabel soal. Selain itu juga terdapat fungsi tombol seperti tambah soal, edit dan hapus.

## Gambar 6. Antarmuka Bank Soal

## 4) Antarmuka Mengerjakan Soal
Pada Gambar 7. merupakan antarmuka bank soal. Pada halaman ini terdapat informasi pilihan tahun ajaran, jenis ujian dan tabel soal. Selain itu juga terdapat fungsi tombol seperti tambah soal, edit dan hapus.

## Gambar 7. Antarmuka Bank Soal
d. Pengujian

## 1). Pengujian Fungsional Sistem
Pada  tahap  ini  semua  fungsional  sistem  diuji  dengan  metode  Blackbox  testing  [15],  berdasarkan pengujian  tersebut  didapat  semua  fungsional  dapat  bekerja  sesuai  yang  diharapkan,  tahap  ini dilakukan disisi pengembang, yang mana jika tahap ini semua fungsional sudah berjalan sesuai yang diharapkan, maka akan dilanjutkan ke tahap pengujian end user .
Tabel 1. merupakan pengujian form ambil ujian, pengujian yang dilakukan meliputi pengisian token. Pada  pengunjian  ini  siswa  mengisi  token  dengan  benar  lalu  klik  tombol  cari  maka  sistem  akan menampilkan  informasi  ujian.  Apabila  siswa  salah  mengisikan  token  klik  cari, maka  akan  tampil pesan  “Token  tidak  ditemukan!”.  Berdasarkan  pengujian  yang  dilakukan,  semua  fitur  pada  form generate token berfungsi dengan baik dan sesuai harapan.
Tabel 1. Pengujian Form Ambil Ujian Khusus dan hasil yang diuji (Normal) Uji Fungsi Skenario Pengujian Yang Diharapkan Pengamatan Kesimpulan Input token dan cari Siswa melakukan pengisian token dan klik cari Tampil informasi ujian, seperti jumlah soal dan waktu pengerjaan. Hasil sesuai harapan Diterima Ambil ujian Siswa klik tombol ambil ujian Masuk halaman list ujian dan tampil pesan “Token ujian berhasil diambil”. Hasil sesuai harapan Diterima Input token dan ambil ujian Siswa menginput token ujian yang sudah berakhir Tampil detail ujian dengan keterangan “Token sudah berakhir !”. Hasil sesuai harapan Diterima
Tabel 2. merupakan pengujian form mengerjakan soal, pengujian yang dilakukan meliputi pilihan jawaban,  tombol  next,  ragu-ragu,  previous  daftar  soal  dan  akhiri.  Pada  pengujian  ini  siswa mengerjakan soal dengan cara memilih atau mengisi jawaban lalu klik next maka akan tampil soal nomor selanjutnya. Kemudian pada pengujian yang lain siswa beleum selesai mengerjakan soal dan klik  akhiri  maka  akan  tampil  pesan  “Ada  soal  yang  belum  dikerjakan.  Apakah  anda  yakin  akan mengakhiri ujian?”. Berdasarkan pengujian yang dilakukan, semua fitur pada form mengerjakan soal berfungsi dengan baik dan sesuai harapan.
Tabel 2. Pengujian Form Mengerjakan Soal Khusus dan hasil yang diuji (Normal) Uji Fungsi Skenario Pengujian Yang Diharapkan Pengamatan Kesimpulan Pilih jawaban dan next Siswa memilih jawaban lalu klik next Jawaban tersimpan dan tampil soal nomor selanjutnya Hasil sesuai harapan Diterima Pilih jawaban dan ragu-ragu Siswa memilih jawaban lalu klik ragu-ragu Jawaban tersimpan dan nomor soal ditandai ragu- ragu Hasil sesuai harapan Diterima Previous Siswa klik tombol previous Sistem akan menampilkan soal nomor sebelumnya Hasil sesuai harapan Diterima Daftar soal Siswa klik tombol daftar soal Tampil menu dropdown daftar soal Hasil sesuai harapan Diterima Keluar dari form mengerjakan soal Siswa melakukan kegiatan di halaman website atau aplikasi lain Tampil pesan “Harap tetap dihalaman ini, Sekali lagi anda meninggalkan halaman ini, Anda akan keluar secara otomatis” Hasil sesuai harapan Diterima Akhiri Siswa klik tombol akhiri Masuk halaman detail ujian dan tampil nilai ujian Hasil sesuai harapan Diterima

## 2). Pengujian Algoritma Fisher Yates
Peneliti melakukan pengujian algoritma fisher yates dengan cara melakukan simulasi pada 15 soal yang  akan  diacak,  namun  pada  soal  yang  ditmpilkan  hanya  10  soal  saja.  Pengujian  ini  dilakukan
untuk  mengetahui  performa  dari  algoritma  fisher  yates.  Jika  di  implementasikan  berjalan  dengan benar maka setiap pengacakan memiliki kemungkinan tidak ada yang sama. Berikut ini adalah tabel simulasi pengacakan menggunakan algoritma fisher yates.
Tabel 3. Pengujian Algoritma Fisher Yates Range  Roll Scratch Result 1,2,3,4,5,6, 7 ,8,9,10,11,12,13,14,15 1-15 7 1, 2 ,3,4,5,6,8,9,10,11,12,13,14,15 7 1-14 2 1,3,4,5,6,8,9,10, 11 ,12,13,14,15 2,7 1-13 11 1,3,4,5,6,8, 9 ,10,12,13,14,15 11,2,7 1-12 9 1,3, 4 ,5,6,8,10,12,13,14,15 9,11,2,7 1-11 4 1,3,5,6,8,10,12,13,14, 15 4,9,11,2,7 1-10 15 1 ,3,5,6,8,10,12,13,14 15,4,9,11,2,7 1-9 1 3,5,6, 8 ,10,12,13,14 1,15,4,9,11,2,7 1-8 8 3, 5 ,6,10,12,13,14 8,1,15,4,9,11,2,7 1-7 5 3,6,10,12, 13 ,14 5,8,1,15,4,9,11,2,7 13,5,8,1,15,4,9,11,2,7
Tabel 3. adalah pengujian algoritma fisher yates. Tahap awal pengacakan yaitu dengan memasukan 15 soal kedalam scratch (daftar soal yang belum terpiliah, lalu membuat range (jumlah soal yang belum  terpilih).  Pengacakan  dilakukan  berdasarkan  range  yang  ada  lalu  soal  yang  terpilih  dari pengacakan  range  tersebut  dapat  dilihat  pada  roll  dan  hasil  soal  yang  sudah  terpilih  dimasukkan kedalam result. Berdasarkan tabel pengujian diatas peneliti melakukan perhitungan permutasi acak dari soal yang ada.
Rumus permutasi:
P ⁿᵣ = n! r! (2)
P ¹ ⁵₁₀ = 15! 10!
P ¹ ⁵₁₀ = 15.14.13.12.11.10! 10!
P ¹ ⁵₁₀ = 15.14.13.12.11
= 360.360
Berdasarkan perhitungan diatas apabila terdapat 15 soal namun hanya menampilkan 10 soal, maka  menghasilkan  permutasi  sebanyak  360.360  model.  Langkah  selanjutnya  peneliti melakukan perhitungan probabilitas 30 siswa menerima soal yang sama dari 360.360 model. Rumus probabilitas:
P (A) = n(A) n(S)
(3) P (30) = 30 360.360
P (30) = 0,0000832
= 0,00832%
Berdasarkan  perhitungan  probabilitas  yang  telah  dilakukan  menghasilkan  0,00832%  peluang  30 siswa mendapatkan urutan soal yang sama dari 15 soal yang ada.

## 3). Uji Validitas
Pada penelitian ini, peneliti menggunakan  metode wawancara dan observasi untuk  melakukan uji validitas[14]. Peneliti melakukan wawancara kepada salah satu guru SMP Negeri 05 Brebes yaitu Ibu  Nora  Triningsih  S.T.,  yang  mengajar  di  7  kelas  yang  berbeda.  Informasi  yang  didapatkan berdasarkan  wawancara  yang  dilakukan  menyatakan,  bahwa  dengan  metode  konvensional  dalam mengoreksi  jawaban  soal  pilihan  ganda  untuk  satu  kelas  memerlukan  waktu  15  menit.  Dengan menggunakan  aplikasi Computer  Based  Test pengkoreksian  jawaban  pilihan  ganda  hanya membutuhkan waktu 30 detik, seperti yang terlihat pada tabel 1. Maka dari itu dapat disimpulkan, dalam mengoreksi jawaban soal pilihan ganda untuk 7 kelas yang berbeda, memerlukan waktu 105 menit ketika menggunakan metode konvensional, sedangkan ketika menggunakan Computer Based Test hanya  memerlukan  waktu  30  detik.  Hal  ini tejadi  karena saat  kegitan  ulangan  menggunakan aplikasi Computer Based Test hanya menunggu proses memuat halaman untuk memunculkan nilai. Oleh karena itu dengan menggunakan aplikasi Computer Based Test dapat dikatakan pengkoreksian jawaban dapat lebih efisien.
Tabel 4. perbandingan Waktu Koreksi Manual CBT Waktu 15 menit 30 detik
Sementara berdasarkan wawancara dan observasi yang dilakukan peneliti, menyatakan bahwa siswa tidak lagi dapat mencontek.  Hal ini dikarenakan penggunaan algoritme Fisher-Yates Shuffle pada Computer Based Test yang dibangun, sehingga soal yang tampil pada tiap siswa akan berbeda.

## 4. Kesimpulan
Berdasarkan  hasil  pembahasan  dapat  disimpulkan  bahwa  berhasil  membangun  aplikasi Computer Based Test yang berguna memudahkan guru untuk lebih efisien dalam mengoreksi ulangan. Aplikasi yang  dikembangkan  juga  berhasil  mengurangi  tingkat  kecurangan  siswa  dalam  melaksanakan ulangan. Berdasarkan hasil pengujian menggunakan blackbox testing, dapat dijelaskan bahwa semua fungsi pada aplikasi Computer Based Test dapat berjalan sesuai fungsi dan kebutuhan. Saran untuk penelitian selanjutnya adalah mengembangkan aplikasi Computer Based Test dengan menambahkan fitur koreksi teks, menggunakan Natural Langguage Processing.

## Daftar Pustaka
[1] Ramdhani,  M.  A.,  Besar,  G.,  Sunan,  U.,  &  Djati,  G.  (2014).  Lingkungan  Pendidikan  Dalam Implementasi Pendidikan Karakter. Www.Journal.Uniga.Ac.Id
[2] Maulani, M. (2021). Rancang Bangun Aplikasi Computer Based Test Berbasis Web Pada Smpn
1 Katapang Kabupaten Bandung Selatan. In Jurnal Teknik Informatika (Vol. 13, Nomor 2).
[3] Ayu Sri Agustina, D., & Ilmu Kesehatan Sains Dan Teknologi Universitas Dhayana Pura Bali, F.  (2016).  Perancangan  Aplikasi Computer  Based  Test (Cbt)  Berbasis  Web  (Studi  Kasus  Di Smp Negeri 2 Kuta-Badung).
[4] Efendi, R., Lesmana, L. S., Putra, F., Yandani, E., & Wulandari, R. A. (2021, February). Design And  Implementation  Of Computer  Based  Test (Cbt)  In  Vocational  Education.  In  Journal  Of Physics: Conference Series (Vol. 1764, No. 1, P. 012068). Iop Publishing.
[5] Feri  Efendi,  T.  (2017).  Pengembangan Website Smk  Negeri  3  Sukoharjo.  Seminar  Nasional Sistem Informasi, September, 957–964.
[6] Qhorifadillah, U., Lestari, S., Chulkamdi, M. T., Informasi, F. T., Balitar, U. I., Shuffle, F. Y.,
& Similarity, C. (2022). Perancangan Aplikasi Bank Soal Berbasis Website Dengan Algoritme Fisher-Yates  Shuffle Dan  Cosine  Similarity  (Studi  Kasus  Di  Smk  Indraprasta  Wlingi).  6(1),
352–359.
[7] Febriani,  I.,  Ekawati,  R.,  Supriadi,  U.,  &  Abdullah,  M.  I.  (2021).  Fisher-Yates  Shuffle Algorithm for Randomization Math Exam on Computer Based-Test. In The 2nd Science and Mathematics International Conference (Smic 2020). Transforming Research and Education of Science and Mathematics in The Digital
Age. Aip Publishing.
https://doi.org/10.1063/5.0042534
[8] L. A. Riski, A. Syauqi, and M. Mukrodin, “Perancangan Aplikasi Computer Based Test (Cbt) Berbasis  Web  Pada  Universitas  Peradaban  Menggunakan  Framework  Codeigniter:  Array”,
JSITP, vol. 3, no. 2, pp. 25–28, Dec. 2022. https://doi.org/10.58436/jsitp.v3i2.1261
[9] Wahid, A. A. (2020). Analisis Metode Waterfall Untuk Pengembangan Sistem Informasi. Jurnal Ilmu-Ilmu Informatika Dan Manajemen
Stmik, November,
1–5.
https://www.researchgate.net/profile/aceng_wahid/publication/346397070_analisis_metode_w aterfall_untuk_pengembangan_sistem_informasi/links/5fbfa91092851c933f5d76b6/analisis- metode-waterfall-untuk-pengembangan-sistem-informasi.pdf
[10] Jacobson, Lvar, and James Rumbaugh Grady Booch. "The unified modeling language reference manual." (2021).
[11] Chang, Frendy Dodo. Analisis Dan Perancangan Sistem Informasi Kelas English Proficiency Test (Ept) Dengan Metode Fisher Yates Shuffle Berbasis Website (Studi Kasus: Fakultas Sosial Dan Humaniora Universitas Buddhi Dharma). Diss. KodeuniversitaS041060# UniversitasBuddhiDharma, 2022.
[12] Irnawati,  O.  (2017).  Metode  Waterfall  Pada  Sistem  Informasi  Koperasi  Simpan  Pinjam. Information System for Educators And Professionals, 2(1), 31–40.
[13] Ayu Irawati, D., Lugman Affandi,  Dan, Nur Rahmanto, A., Teknologi Inforasi, J., & Negeri Malang,  P.  (2017).  Prosiding  Sentia  2017-Politeknik  Negeri  Malang  Penerapan  Algoritme Fisher-Yates Shuffle Pada Pengacakan Soal Game Aritmatika. Prosiding Sentia, 9, 95–100.
[14] Yohanes,  Odi  Dewangga;  Ambarwati,  Awalludiyah;  Darujati,  Cahyo.  Pengembangan Antarmuka  Dan  Pengalaman  Pengguna  Aplikasi  Ujian  Online  Menggunakan  Metode  Goal- Directed  Design.  JOINTECS  (Journal  of  Information  Technology  and  Computer  Science),
2023. http://dx.doi.org/10.31328/jointecs.v6i1.2153.
[15] Widhyaestoeti,  D.,  Iqram,  S.,  Mutiyah,  S.  N.,  &  Khairunnisa,  Y.  (2021).  Black  Box  Testing Equivalence Partitions Untuk Pengujian Front-End Pada Sistem Akademik Sitoda. Jurnal Ilmiah Teknologi Infomasi Terapan, 7(3), 211–216. https://doi.org/10.33197/Jitter.Vol7.Iss3.2021.626