## RANCANG BANGUN APLIKASI E-LEARNING DENGAN IMPLEMETASI ALGORITMA FISHER YATES SHUFFLE DALAM PENGACAKAN SOAL UJIAN
Irfansyah, Rizki Muliono*, Susilawati Program Studi Teknik Informatika S1, Fakultas Teknik Universitas Medan Area, Medan, Indonesia rizkimuliono@staff.uma.ac.id

## ABSTRAK
E-Learning  merupakan  media  pembelajaran  secara online  yang  sering  digunakan  pada  saat  ini.  Setiap  E- Learning  mempunyai  fitur  yang  beragam  sesuai  keperluanya  masing-masing  dalam  melakukan  proses pembelajaran.  Fitur  E-Learning  yang  banyak  digunakan  adalah  fitur  ujian.  Ujian  dilakukan  sebagai  tolak  ukur untuk  mengetahui  tingkat  pemahaman  siswa  selama  pembelajaran.  Penelitian  ini  fokus  pada  fitur  pengacakan soal ujian untuk  memastikan  setiap siswa  mendapatkan urutan soal  yang  berbeda dengan komposisi  soal  yang sama.  Pada  penelitian  ini  menggunakan  algoritma  Fisher  Yates  Shuffle  dalam  menghasilkan  permutasi  acak secara  berurut  untuk  menghindari  pengulangan  urutan  yang  sama.  Hasil  pengujian  yang  telah  dilakukan menunjukan  bahwa  dari  100  sampel  siswa  dan  data  soal  yang  diacak  sebanyak  30  soal  dengan  soal  yang ditampilkan kepada siswa sebanyak 15 soal menggunakan algoritma Fisher Yates Shuffle mampu menghasilkan seperti yang diharapkan sehingga tidak terjadi pengulangan urutan soal yang sama oleh setiap siswa.
Kata kunci: E-Learning, Ujian, Pengacakan Soal, Array, Fisher Yates Shuffle.

## 1. PENDAHULUAN
Perkembangan
teknologi informasi mempengaruhi  aturan dan sistem di  berbagai  bidang, dan meningkatkan kebutuhan akan informasi berkualitas  [1].  Salah  satunya  yaitu  dalam  bidang pendidikan, bagi sebuah instansi pendidikan pelayanan pembelajaran adalah hal yang paling utama diperhatikan untuk mencapai sebuah proses pembelajaran yang diinginkan.
Salah  satu  metode  pengajaran  yang  sedang berkembang  dimasa  sekarang  ialah  E-Learning.  E- learning  adalah  alat  media  pembelajaran  berbasis elektronik  yang dapat diakses  menggunakan  jaringan komputer.  Di  dunia  pendidikan  dan  pelatihan,  E- Learning merujuk pada praktik pembelajaran menggunakan  teknologi  informasi  atau  media elektronik. [2].
Salah  satu  fitur  yang  terdapat  pada  E-Learning adalah fitur ujian. Ujian digunakan sebagai tolak ukur mengevaluasi  pemahaman  siswa  terhadap  materi pembelajaran.  Proses  ujian  biasanya  dilakukan  oleh guru  dengan  memberikan  soal-soal  yang  berkaitan dengan  materi  yang  dipelajari  siswa.  Setiap  siswa harus  mendapatkan  komposisi  dengan  bobot  soal yang  sama  namun  pada  penerapannya  ketika  soal yang  diberikan  kepada  setiap  siswa  mempunyai urutan  soal  yang  sama  sering  terjadi  budaya  cotek mencontek  jawaban  yang  dilakukan  siswa  sehingga untuk  mendapatkan  nilai  pemahaman  setiap  siswa- pun  tidak  maksimal.  Salah  satu  metode  yang  baik agar setiap siswa mendapatkan soal yang berbeda dan dengan  komposisi  soal  yang  sama  yaitu  dengan  cara melakukan  pengacakan  urutan  pada  setiap  soal  yang diberikan  oleh  guru  kepada  setiap  siswa  sehingga akan  meminimalisir  terjadinya  contek  mencontek pada  setiap  siswa  [3].  Permasalahan  tersebut  dalam penelitian  ini  akan  diselesaikan  menggunakan
algoritma  Fisher  Yates  Shuffle  untuk  melakukan pengacakan  setiap  soal.  Dalam  hal  ini  soal  yang digunakan  adalah  dalam  bentuk  pilihan  ganda (multiple  choice).  Algoritma  Fisher-Yates  shuffle menghasilkan  permutasi  acak  untuk  menghindari pengulangan  urutan  yang  sama,  sehingga  tidak  ada urutan  pertanyaan  yang  muncul  kembali  dalam  sesi yang sama [4] [5].
Berdasarkan  latar  belakang  masalah  tersebut penulis melakukan penelitian dengan judul “Rancang Bangun  Aplikasi  E-Learning  Dengan  Implementasi Algoritma  Fisher  Yates  Shuffle  Dalam  Pengacakan Soal  Ujian”  yang  dapat  menjadi  solusi  dari  masalah tersebut.

## 2. TINJAUAN PUSTAKA
2.1. E-Learning
E-learning  ialah  sebuah  media  pembelajaran berbasis elektronik  yang dapat diakses  menggunakan jaringan  komputer.  E-Learning  adalah  singkatan  dari elektronik dan belajar, dan merujuk pada pembelajaran yang menggunakan perangkat elektronik,  terutama  komputer,  sebagai  layanan bantuannya [6].

## 2.2. Ujian
Ujian  dalam  proses  pembelajaran  di  sekolah digunakan untuk mengevaluasi dan mengukur tingkat keberhasilan siswa selama pembelajaran berlangsung, biasanya  proses  ujian  tersebut  dilakukan  diakhir periode  tertentu  atau  di  akhir  sebuah  materi  baik dilakukan  secara  manual  maupun  secara  online  [5]. Pengertian  ujian  juga  dapat  diartikan  sebagai  tolak ukur untuk mengetahui tingkat pemahaman seseorang dalam memahami sesuatu yang telah dipelajarinya.

## 2.3. Algoritma Fisher Yates Shuffle
Algoritma Fisher-Yates adalah sebuah algoritma yang  menghasilkan  permutasi  acak  dari  suatu himpunan  terbatas,  Algoritma  Fisher-Yates  diambil dari  nama  Ronal  Fisher  dan  Frank  Yates  [7]  [8]  [9]. Terdapat  2  metode  dalam  algoritma  Fisher  Yates yakni  metode  orisinal  dan  metode  modern.  Dalam pembuatan  aplikasi,  metode  modern  lebih  sering digunakan  karena  dapat  menghasilkan  variasi  yang lebih  banyak  dalam  pengacakan  dengan  sistem komputerisasi [10].
Terdapat beberapa tahap pengacakan menggunakan Fisher Yates Shuffle  metode  modern. Adapun tahapannya yaitu:
1.   Menetukan nilai n
2.   Atur  ulang  nilai  n,  dimana  n  =  n  –  1,  sebagai parameter dari array (0 - n)
3.   Pemilihan angka acak (x) dimana 0 ≥ x ≤  n 4.   Tukar posisi nilai (x) dengan index ke- n 5.   Pindahkan nilai (x) ke list array hasil permutasi.
6.   Jika  n  masih  memenuhi  syarat  n  >  0,  maka kembali  lakukan  proses  2  sampai  6,  jika  kondisi sudah terpenuhi maka pengacakan telah selesai

## 3. METODE PENELITIAN
Tahapan  penelitian  secara  keseluruhan  yang akan  dilakukan  pada  penelitian  ini  dapat  dijelaskan dalam bagan berikut:
Gambar 1. Rancangan Penelitian
Tahapan pada penelitian terbagi menjadi 3 tahap Tahapan  pertama  yaitu  menentukan  topik  judul penelitian, mendefinisikan rumusan masalah, menentukan  tujuan  penelitian  dan  menentukan metode  penelitian.  Tahapan  kedua  yaitu  melakukan perancangan,  pembuatan  aplikasi  dan  pengujian aplikasi.  Tahapan  ketiga  yaitu  melakukan  analisa hasil penelitian dan menuliskan temuan hasil analisa.

## 3.1. Analisis Sistem
Fokus  pada  penelitian  ini  adalah  bagaimana sekumpulan  soal  diolah  atau  diacak  urutannya menggunakan  algoritma Fisher  Yates  Shuffle sehingga  menghasilkan  susunan  urutan  soal  yang berbeda  dalam  setiap  siswa  dengan  komposisi  soal
yang  sama.  Berikut  adalah  bentuk  gambaran  umum sistem  pengacakan  soal  menggunakan  algoritma Fisher  Yates  Shuffle  yang  diimplementasi  pada  E- Learning:

## Gambar 2. Gambaran Umum Sistem
Pada  gambar  2  menjelaskan  gambaran  umum dari  aplikasi  e-learning  dimana  di  dalam  e-learning terdapat  fitur  ujian  yang  soal-soal  ujiannya  (dalam penelitian  ini  soal  yang  digunakan  dalam  bentuk pilihan  ganda)  urutan  soalnya  di  acak  menggunakan algoritma  fisher  yates  shuffle  sehingga  setiap  siswa mendapatkan  urutan  soal  yang  berbedabeda  dengan komposisi soal yang sama.

## 3.2. Analisis  Algoritma  Fisher  Yates  shuffle dalam pengacakan soal
Algoritma  Fisher  Yates  Shuffle  yaitu  algoritma yang mampu memproses permutasi seracara acak dari suatu  himpunan.  Dimana  simulasi  pengacakan  soal didalam  proses  algoritma  untuk  mengacak  soal-soal dan  membentuk  paket-paket  soal.  Soal-soal  akan diacak  secara  random.  Berikut  adalah  langkah- langkah  proses  untuk  menghasilkan  permutasi pengacakan  soal  terbatas  dengan  menggunakan algoritma  Fisher  Yates  Shuffle  adalah  sebagai berikut:
1.   Tentukan  nilai  n  atau  banyak  soal  (sebagai  array awal)
2.   Tentukan jumlah soal yang ingin ditampilkan N 3.   Atur  ulang  nilai  n,  dimana  n  =  n  –  1,  sebagai parameter dari array (0 - n)
4.   Pilih angka acak (x) dimana 0 ≥ x ≤  n
5.   Tukar posisi nilai (x) dengan index ke- n
6.   Pindahkan nilai (x) ke list array hasil permutasi.
7.  Lakukan  perulangan  (i)  proses  3  sampai  7 sebanyak  N,  jika  kondisi  sudah  terpenuhi  maka pengacakan telah selesai.
8.   Cetak nilai list Array hasil permutasi.
Berikut adalah flowchart proses untuk menghasilkan  permutasi  pengacakan  soal  terbatas dengan menggunakan algoritma Fisher Yates Shuffle:
Gambar 3 Metode algoritma Fisher Yates Shuffle dalam pengacakan soal.
Contoh  pengacakan  menggunakan  algoritma Fisher Yates Shuffle : Diketahui: Nilai n atau banyak soal = 10 (0 sampai 9) Jumlah soal yang ingin ditampilkan N=5
Tabel 1. Contoh pengacakan menggunakan algoritma Fisher Yates Shuffle
Range
[ Array awal ] N = 10 Roll N = 5
Scratch
Result [Array hasil permutasi] [0,1,2,3,4,5,6,7,8,9] 4 [0,1,2,3,9,5,6,7,8, 4 ] [ 4 ] [0,1,2,3,9,5,6,7,8, 4 ] 7 [0,1,2,3,5,6,9,8, 7,4 ] [ 4,7 ] [0,1,2,3,5,6,9,8, 7,4 ] 9 [0,1,2,3,5,6,8, 9,7,4 ] [ 4,7,9 ] [0,1,2,3,5,6,8, 9,7,4 ] 5 [0,1,2,3,6,8, 5,9,7,4 ] [ 4,7,9,5 ] [0,1,2,3,6,8, 5,9,7,4 ] 1 [0,2,3,6,8, 1,5,9,7,4 ] [ 4,7,9,5,1 ]
Range adalah jumlah angka yang belum terpilih, roll  adalah  angka  acak  terpilih,  Scratch  adalah daftar angka  yang  belum  terpilih,  dan  Result  adalah  hasil permutasi.  Hasil  dari  pengacakan  pada  tabel  1 didapatkan  urutan  array  hasil  permutasi  yaitu [4,7,9,5,1].  Jika  diketahui  soal  dengan  urutan 1,2,3,4,5,6,7,8,9,10 dengan soal yang akan ditampilkan  adalah  sebanyak  5  soal  maka  setelah dilakukan  pengacakan  berdasarkan  contoh  tabel diatas  hasil  dari  urutan  soal  yang  akan  ditampilkan adalah sebagai berikut:
Maka,  soal  yang  akan  ditampilkan  adalah dengan urutan 5,8,10,6,2

## 4. HASIL DAN PEMBAHASAN
Pada penelitian ini dengan judul rancang bangun aplikasi  e-learning  dengan  implementasi  algoritma fisher  yates  shuffle  dalam  pengacakan  soal  ujian menghasilkan  aplikasi  e-learning  yang  telah  di  uji menggunakan  black  box  testing  dan  hasil  pengujian pada  aplikasi  sesuai  dengan  yang  diharapkan. Penerapan  algoritma  fisher  yates  shuffle  dalam pengacakan  soal  ujian  pada  aplikasi  e-learning  diuji menggunakan  100  sampel  data  siswa  dan  30  sampel soal  dengan  15  soal  yang  ditampilkan  tidak ditemukan  pengulangan  urutan  soal  yang  sama  dari setiap  siswa,  ini  membuktikan  bahwa  pengacakan soal ujian pada aplikasi elearning dengan menerapkan algoritma Fisher Yates Shuffle sangat efektif
4.1. Implementasi Algoritma Fisher Yates Shuffle Pada  gambar  4  dapat  dilihat  tampilan  program implemetasi fisher yates shuffle pada pengacakan soal :
Gambar 4. Proses Algortima Fisher Yates Shuffle
Pengimplementasian  algoritma  fisher  yates shuffle  pada  elearning  ini  diterapkan  pada  bagian pengacakan  urutan  soal  pilihan  ganda  (multiple choice).  Untuk  melakukan  eksekusi  pada  fungsi  di atas  data  soal  yang  dibutuhkan  sudah  terpenuhi  pada query  sebelumnya.  Langkah  awal  hitung  jumlah elemen yang terdapat pada data soal yang ditampung di  dalam  variable  $count  menggunakan  fungsi  count bawaan  php,  lakukan  perulangan  menggunakan fungsi  while  dengan  kondisi  jml_soal  >  0  untuk melakukan  perulangan  sebanyak  jumlah  soal  yang akan ditampilkan, dapatkan jumlah data soal dikurang 1  sebagai  acuan  index  datasoal  di  simpan  ke  dalam variabel $dataacak, lakukan pengacakan angka antara 0 - $dataacak menggunakan fungsi rand bawaan php, lakukan pertukaran elemen index yang terpilih dalam pengacakan  dengan  index  terakhir  pada  array $datasoal,  simpan  elemen  index  terpilih  ke  dalam variabel  array  yang  diberi  nama  $simpansoalacak, lakukan perulangan kembali sampai kondisi terpenuhi.

## 4.2. Halaman Login
Gambar 5. Halaman Login Sistem
Pada halaman ini pengguna yang terdaftar dalam sistem  dapat  login  menggukan  username  dan password,  ada  tiga  level  yaitu  Admin,  Guru  dan Siswa.  Untuk  pengguna  siswa  yang  belum  terdaftar dapat  meggunakan  menu  ‘Daftar  Akun  Siswa?’, untuk pengguna guru dapat menggunakan akun  yang sudah di berikan kepada masing-masing guru.

## 4.3. Halaman Admin
Gambar 6. Tampilan Halaman Utama Admin
Setelah  pengguna  level  Admin  berhasil  login maka akan di arahkan ke  halaman Admin dashboard, dan  menampilkan  menu  navigasi  di  sebelah  kiri sesuai level admin yang dapat melakukan manajemen data master.

## 4.4. Halaman Guru
Gambar 7. Tampilan Utama Guru
Setelah  pengguna  level  Guru  berhasil  login maka  akan  di  arahkan  ke  halaman  dashboard  guru, dan  menampilkan  menu  navigasi  di  sebelah  kiri sesuai  level  guru  yang  dapat  melakukan  manajemen data soal dan tugas siswa.
Gambar 8 Tampilan Data Ujian
Pada gambar 8 menampilkan halaman data ujian yang dikelola oleh guru dapat melakukan manajemen data soal ujian berdasarkan mata pelajaran.
Gambar 9. Tampilan Pengaturan Tambah Ujian
Pada gambar 9  menampilkan  form penambahan detail  ujian  yang  dilakukan  oleh  guru  berdasarkan mata  pelajaran,  guru  dapat  melakukan  setting terhadap matakuliah yang di ujikan, mulai dari jadwal dan tanggal ujian, durasi ujian dan status aktif.
Gambar 10. Tampilan Buat Soal Ujian
Pada  gambar  10  menampilkan  form  untuk  guru melakukan  penambahan  soal  ujian  yang  di  isi  untuk setiap  nomor  item  soal  ujian.  Soal  ini  akan ditampilkan  secara  acak  nanti  nya  pada  level  siswa ketika menampilkan halaman soal ujian.
Gambar 11. Tampilan Data Nilai Siswa
Pada halaman ini  menampilkan data siswa yang mengikuti  ujian  berdasarkan  soal  ujian  yang  telah  di buat oleg guru  berdasarkan  matapelejara. Guru dapat melihat nilai dan hasil jawaban siswa.

## 4.5. Tampilan Siswa

## Gambar 12. Tampilan Utama Siswa
Halaman  ini  manampilkan  dashboard  siswa yang  berhasil  login  menggunakan  akun  masing- masing.  Siswa  dapat  malihat  matakuliah  dan  jadwal ujian yang diujikan. Siswa dapat melakukan sesi ujian dengan  menekan  tombol  mulai  pada  setiap  mata pelajaran. Sesi akan habis bergantung pada waktu sesi yang disesuaikan oleh guru.
Gambar 13. Tampilan Informasi Ujian
Halaman  ini  manmpikan  informasi  detail  ujian yang  terdapat  pada  level  siswa.  Siswa  dapat  melihat informasi  nama kelas, matapelajaran dan  jumlah soal ujian yang di ujiankan.
Gambar 14. Tampilan Soal Ujian Siswa
Pada  gambar  diatas  adalah  halaman  untuk menampilkan  sesi  ujian  dengan  jawaban  pilihan berganda.  Siswa  memilih  jawaban  yang  dianggap benar  dan  memilih  soal  berikutnya.  Soal  pada tampilan  ini  diacak  menggunakan  algoritma Fisher Yates  Shuffle sehingga  setiap  layar  siswa  akan menampilkan soal yang berbeda-beda.
Gambar 15. Tampilan Nilai Ujian Siswa
Pada  gambar  15  menampilkan  halaman score akhir  hasil  jawaban  ujian  yang  di  selesaikan  oleh siswa yang dapat dilihat secara langsung setelah ujian berakhir.

## 5. KESIMPULAN DAN SARAN
Berdasarkan  hasil  implementasi  dan  pengujian yang  dilakukan  secara  keseluruhan  aplikasi  E- learning telah berjalan sesuai dengan yang diharapkan,  sehingga  dapat  ditarik  kesimpulan sebagai berikut:
Penerapan algoritma Fisher Yates Shuffle dapat digunakan  dalam  pengacakan  soal  ujian  yang diimplementasikan  pada  E-learning  dengan  tipe  soal pilihan ganda (multiple choice) sehingga menghasilkan  keluaran  urutan  soal  yang  berbeda- beda  pada  setiap  siswa  dan  tidak  ada  pengulangan urutan  soal  yang  sama  kembali.    Pada  aplikasi  E- learning berbasis web dengan sistem pengacakan soal ini, jawaban soal akan otomatis dikoreksi oleh sistem sesuai  dengan  jawaban  yang  telah  diinput  oleh  guru, dengan  begitu  nilai  hasil  ujian  siswa  dapat  diketahui secara  realtime  setelah  siswa  selesai  mengerjakan soal  ujian.  Hasil  pada  penelitian  ini  dengan melakukan  pengacakan  soal  menggunakan  algoritma Fisher  Yates  Shuffle  dihasilkan  pengacakan  soal secara  optimal.  Guru  dapat  membuat  soal  asli sebanyak  mungkin  dan  menetukan  soal  yang  ingin
dtampilkan  pada  setiap  siswa.  Sehingga  secara kompleks  dapat  ditarik  kesimpulan  bahwa  semakin banyak soal  yang dibuat oleh guru maka pengacakan soal akan semakin bervariasi.

## DAFTAR PUSTAKA
[1] Naibaho  and  R.  Sulaiman,  "Peranan  dan perencanaan teknologi informasi dalam perusahaan.," Jurnal warta, pp. 1-12, 2017.
[2] Syahputra and F. Hardinal, "Sistem informasi e- learning  di  sekolah," Jurnal  ilmu  pengetahuan dan ilmu komputer, pp. 1-6, 2017.
[3] M.  Thariq,  F.  T.  Anggreny  and  R.  Alit, "Implementasi  algoritma  fisher  yates  shuffle sebagai  pengacak  urutan  soal,"  in Seminar nasional  informatika  bela  negara  (SANTIKA) , 2020.
[4] R.  Priantama  and  Y.  Priandani,  "Implementasi algoritma fisher  yates shuffle untuk pengacakan soal  pada  aplikasi  mobile  learning  kuis  fiqih berbasis  android," Jurnal  nuansa  informatika, vol. 13, no. 2, pp. 40-46, 2019.
[5] Rustiyana and M. H. Ridwanulloh, "Implemetasi  algoritma  fisher  yates  shuffle dalam  pembuatan  ujian  online  berbasis  web,"
Jurnal informatika-Computing, vol. 8, no. 1, pp. 16-21, 2021.
[6] S.  Hikmah,  "Pemanfaatan  e-learning  madrasah dalam  pelaksanaan  pembelajaran  jarak  jauh masa  pandemi  di  MIN  1  Rembang," Jurnal pendidikan dan pelatihan, vol. 4, no. 2, pp.  73- 85, 2020.
[7] V. Asih, A. Saputra and R. Subagio, "Penerapan algoritma  fisher  yates  shuffle  untuk  aplikasi ujian  berbasis  android," Jurnal  Digit, vol.  10, no. 1, pp. 59-70, 2020.
[8] I.  D.  A.  Ekojono,  L.  Affandi  and  A.  N. Rahmanto,  "Penerapan  algoritma  fisher  yates pada  pengacakan  soal  game  aritmatika,"  in SENTIA , Malang, 2017.
[9] Fujiati  and  S.  L.  Rahayu,  "Implemetasi algoritma  fisher  yates  shuffle  pada  game edukasi  sebagai  media  pembelajaran.," Cogito smart journal, vol. 6, no. 1, pp. 1-11, 2020.
[10] A.  Santoso  and  W.  Gunawan,  "Implementasi algoritma  fisher  yates  shuffle  dan  fuzzy tsukamoto pada aplikasi pembelajaran pemrogramana  dasar  berbasis  android," Jurnal teknik dan sains, vol. 2, no. 1, pp. 63-72, 2021.