JURNAL DIGIT Vol. 10, No.1 Mei 2020 : 59-70

## PENERAPAN ALGORITMA FISHER YATES SHUFFLE UNTUK APLIKASI UJIAN BERBASIS ANDROID
Victor Asih 1 , Andi Saputra 2 , Ridho Taufiq Subagio 3 Universitas Catur Insan Cendekia Jl. Kesambi 202, Kota Cirebon, Jawa Barat Tlp : (0231) 220250 Email : victor.asih@cic.ac.id 1 , andsptraa18@gmail.com 2 , ridho.taufiq@cic.ac.id 3

## Abstrak
Pada  era  teknologi  seperti  saat  sekarang  ini,  komputer  memainkan  peran  yang  semakin  meningkat dalam  berbagai  bidang  sisi  kehidupan  manusia.  Penerapan  teknologi  informasi  sudah  sangat  banyak digunakan  dalam  berbagai  bidang,  salah  satunya  dalam  bidang  pendidikan.  Teknologi  informasi  sudah berkembang secara cepat dan bidang pendidikan turut mengalami peningkatan dalam hal kualitas, kecepatan, kepraktisan  dan  juga  kemudahan.  Di  beberapa  perguruan  tinggi  masih  terdapat  ujian  semester  yaitu  ujian tengah semester dan ujian akhir semester dan penerapan ujian semester masih dilakukan secara konvensional yaitu dengan menggunakan kertas dan alat tulis sebagai penunjang ujian semester. Hal tersebut menyebabkan memakan  banyak  biaya  dan  waktu.  Biaya  dalam  hal  ini  pihak  kampus  banyak  mengeluarkan  dana  untuk membuat  soal ujian dan  memfotocopy  soal ujian tersebut serta harus  mengeluarkan dana tambahan  untuk lembar  jawaban.  Dan  waktu  dalam  hal  ini  adalah  lamanya  tahap  proses  mengkoreksi  jawaban  untuk menghasilkan  sebuah  nilai  dari  setiap  mahasiswa/mahasiswi.  Dengan  dibuatnya  Aplikasi  Ujian  ini diharapkan  dapat  mempermudah  dosen  dalam  membuat  soal,  mengoreksi  jawaban,  mempermudah mahasiswa dalam melaksanakan ujian secara online.
Kata Kunci : Teknologi informasi, Ujian, Aplikasi .

## Abstract
In the technological era as it is today, computers play an increasingly increasing role in various areas of the side of human life. The application of information technology has been very widely used in various fields, one of which is in the field of education. Information technology has developed rapidly and the field of  education  has  also  increased  in  terms  of  quality,  speed,  practicality  and  also  convenience.  In  some universities there are still semester exams namely midterm and final semester exams and the application of semester exams is still carried out conventionally using paper and stationery to support the semester exams. This causes a lot of cost and time consuming. Costs in this case the campus spent a lot of money to make exam questions and photocopy the exam questions and have to spend additional funds for answer sheets. And time in this case is the length of the process of correcting the answers to produce a value from each student. The application of this exam is expected to make it easier for lecturers to make questions, correct answers, make it easier for students to carry out examinations online.
Keywords: i nformation technology, exams, applications.

## 1. PENDAHULUAN

## 1.1. Latar Belakang Masalah
Pada  era  teknologi  seperti  saat  sekarang  ini,  komputer  memainkan  peran  yang  semakin  meningkat dalam  berbagai  bidang  sisi  kehidupan  manusia.  Penerapan  teknologi  informasi  sudah  sangat  banyak digunakan  dalam  berbagai  bidang,  salah  satunya  dalam  bidang  pendidikan.  Teknologi  informasi  sudah berkembang secara cepat dan bidang pendidikan turut mengalami peningkatan dalam hal kualitas, kecepatan, kepraktisan dan juga kemudahan. Penerapan teknologi informasi dalam bidang pendidikan sangat banyak, seperti pendaftaran online , raport online , krs online dan lain sebagainya. Saat ini ujian online sudah banyak
digunakan diberbagai sekolah atau perguruan tinggi. Ada yang menggunakan ujian online untuk ujian masuk ke sekolah atau perguruan tinggi dan ada pula yang menggunakannya sebagai ujian semester. Ujian semester digunakan  sebagai  kegiatan  untuk  mengetahui  hasil  belajar  mahasiswa  dalam  semester  tersebut.  Terdapat beberapa  penelitian  sejenis  yang  dilakukan  sebelumnya,  yang  pertama  yaitu  jurnal  yang  ditulis  oleh (Saraswati  &  Putra,  2018).  Dalam  penelitian  tersebut,  sistem  ujian  yang  digunakan  masih  menggunakan komputer yang mempunyai keterbatasan tempat untuk melakukan ujian yang berbasis web. Yang kedua yaitu jurnal  yang  ditulis  oleh  (Julianti  &  Silalahi,  2015).  Dalam  penelitian  tersebut,  soal  ujian  yang  dipakai  di sistem ujian online hanya soal pilihan ganda atau multiple choice .
Penerapan  ujian  yang  masih  dilakukan  secara  konvensional  yaitu  dengan  menggunakan  kertas  dan alat tulis sebagai penunjang ujian semester. Dalam menghasilkan sebuah nilai dari sebuah ujian masih sangat lama, karena dosen harus mengoreksi satu per satu jawaban dari setiap mahasiswa/mahasiswi di setiap mata kuliahnya. Hal tersebut menyebabkan memakan banyak biaya dan waktu. Biaya dalam hal ini pihak kampus banyak  mengeluarkan  dana  untuk  membuat  soal  ujian  dan  memfotocopy  soal  ujian  tersebut  serta  harus mengeluarkan dana tambahan untuk lembar jawaban. Dan waktu dalam hal ini adalah lamanya tahap proses mengkoreksi  jawaban  untuk  menghasilkan  sebuah  nilai  dari  setiap  mahasiswa/mahasiswi.  Maka  dari  itu diperlukan  sebuah  sistem  ujian online yang  bisa  mempermudah  dosen  dalam  membuat  soal  dan jawaban, mempermudah  mahasiswa  dalam  melaksanakan  ujian  secara online .  Berdasarkan  latar  belakang  masalah tersebut maka penulis melakukan penilitian dengan judul “Penerapan Algoritma Fisher Yates Shuffle Untuk Aplikasi Ujian Berbasis Android ” yang diharapkan dapat menjadi solusi dari masalah yang ada.

## 1.2. Identifikasi Masalah
Berdasarkan  Latar  Belakang  Masalah  di  atas,  maka  penulis  dapat  menguraikan  identifikasi  masalah sebagai berikut :
1. Ujian semester yang masih konvensional atau masih menggunakan kertas sebagai soal dan jawaban tentu mengeluarkan banyak biaya.
2. Bagaimana  membuat  aplikasi  ujian online yang  dapat  mempermudah  dosen  dalam  membuat  soal, jawaban dan menampilkan hasil ujian?
3. Bagaimana membuat aplikasi ujian online yang bisa dapat mempermudah mahasiswa?

## 1.3. Batasan Masalah
Beberapa batasan masalah dilakukan dengan prosedur-prosedur sebagai berikut :
1. Aplikasi ini memiliki dua jenis soal yaitu Essay dan Pilihan Ganda.
2. Aplikasi ini mencakup Ujian Tengah Semester (UTS) dan Ujian Akhir Semester (UAS).
3. Aplikasi ini dibuat hanya untuk soal yang mempunyai jawaban berupa teks.
4. Untuk pengacakan token dalam aplikasi ini menggunakan Algoritma Fisher-Yates Shuffle .
5. Yang dapat mengakses sistem ini adalah : Web :
a. Biro Administrasi Akademik dan Kemahasiswaan (BAAK)
1) Mengelola data dosen.
2) Mengelola data mata kuliah.
3) Mengelola data mahasiswa.
4) Mengelola data jurusan.
b. Dosen
1) Membuat soal & jawaban ujian.
2) Membuat token untuk setiap mata kuliah yang akan diujikan.
3) Mengoreksi jawaban ujian.
Android : a. Mahasiswa
1) Memasukan token untuk memulai ujian.
2) Mengerjakan ujian sampai waktu yang sudah ditentukan.

## 1.4. Tujuan
Adapun yang menjadi tujuan dari aplikasi yang akan dibuat adalah :
1. Aplikasi  ini  dibuat  untuk  mengurangi  penggunaan  kertas  dan  mengurangi  biaya  dalam  kegiatan  ujian semester.
2. Aplikasi  ini  dibuat  untuk  mempermudah  dosen  dalam  membuat  soal  dan  jawaban  serta  menampilkan hasil ujian.
3. Aplikasi ini dibuat untuk mempermudah mahasiswa dalam melaksanakan ujian.

## 2. KAJIAN PUSTAKA

## 2.1. Rancang Bangun
Perancangan  merupakan  salah  satu  hal  yang  penting  dalam  membuat  program.  Adapun  tujuan  dari perancangan  ialah  untuk  memberi  gambaran  yang  jelas  lengkap  kepada  pemrogram  dan  ahli  teknik  yang terlibat. Perancangan harus berguna dan mudah dipahami sehingga mudah digunakan. Perancangan adalah sebuah  proses  untuk  mendefinisikan  sesuatu  yang  akan  dikerjakan  dengan  menggunakan  teknik  yang bervariasi  serta  di  dalamnya  melibatkan  deskripsi  mengenai  arsitektur  serta  detail  komponen  dan  juga keterbatasan  yang  akan  dialami  dalam  proses  pengerjaanya  [1]. Pembangunan  atau  bangun  sistem  adalah kegiatan  menciptakan  sistem  baru  maupun  mengganti  atau  memperbaiki  sistem  yang  telah  ada  secara keseluruhan.  Jadi  dapat  disimpulkan  bahwa  rancang  bangun  adalah  penggambaran,  perencanaan,  dan pembuatan sketsa atau pengaturan dari beberapa elemen yang terpisah kedalam suatu kesatuan yang utuh dan berfungsi. Dengan demikian pengertian rancang bangun merupakan kegiatan menerjamahkan hasil analisa ke dalam bentuk paket perangkat lunak kemudian menciptakan sistem tersebut atau memperbaiki sistem yang sudah ada [1].

## 2.2. Aplikasi
Perangkat  lunak  aplikasi  adalah  suatu  subkelas  perangkat  lunak  komputer  yang  memanfaatkan kemampuan  komputer  langsung  untuk  melakukan  suatu  tugas  yang  diinginkan  pengguna.  Biasanya dibandingkan dengan perangkat lunak sistem yang mengintegrasikan berbagai kemampuan komputer, tapi tidak secara langsung menerapkan kemampuan tersebut untuk mengerjakan suatu tugas yang menguntungkan pengguna [2].

## 2.3. Ujian
Menurut  Kamus  Besar  Bahasa  Indonesia  (KBBI), pengertian  ujian  yaitu  sesuatu  yang  dipakai  untuk menguji mutu sesuatu (kepandaian, kemampuan, hasil belajar, dan sebagainya). Terdapat dua ujian dalam bidang  pendidikan  yaitu  Ujian  Tengah  Semester  (UTS)  dan  Ujian  Akhir  Semester  (UAS).  Ujian  Tengah Semester (UTS) yaitu ujian yang diberikan di perguruan tinggi pada waktu pertengahan perkuliahan dalam setiap  semester.  Ujian  Akhir  Semester  (UAS)  yaitu  ujian  yang  diberikan  di  perguruan  tinggi  pada  waktu perkuliahan berakhir dalam setiap semester [2].

## 2.4. Algoritma
Algoritma  merupakan  fondasi  yang  harus  dipahami  atau  dikuasai  oleh  seseorang  yang  akan menyelesaikan suatu masalah dengan komputer, dalam hal ini dengan membuat program. Algoritma berasal dari kata al-kwarizmi yang terdapat di buku Abu Ja’far Muhammad Ibnu Musa Al-Kwarizmi, seorang ahli Matematika dari Persia dengan judul bukunya “Aljabar wal Muqabala”. Dalam beberapa bukunya terdapat beberapa definisi algoritma. Dalam buku ini, definisi algoritma adalah susunan langkah penyelesaian suatu masalah  secara  sistematika  dan  logis.  Terdapat  dua  kata  yang  menjadi  perhatian  dalam  definisi  ini,  yaitu sistematis dan logis [4].

## 2.5. Fisher Yates Shuffle
Algoritma Fisher-Yates (diambil dari nama Ronal Fisher  dan Frank Yates) atau dikenal juga  dengan nama  Knuth  Shuffle  (diambil  dari  nama  Donald  Knuth),  adalah  sebuah  algoritma  yang  menghasilkan permutasi acak dari suatu himpunan terhingga, dengan kata lain untuk mengacak suatu himpunan tersebut. Jika di implementasikan dengan benar maka hasil dari algoritma ini tidak akan berat sebelah sehingga setiap permutasi memiliki kemungkinan yang sama. Algoritma Fisher Yates dianggap oleh banyak orang sebagai metode  untuk  menghasilkan  permutasi  acak  dari  satu  set  terbatas.  Algoritma Fisher  Yates yang  pertama diusulkan pada tahun 1938 dan dikaji pada tahun 1948 dengan versi modern yang disajikan dalam sebuah varian.  Algoritma  diterbitkan  oleh  Wilson  pada  tahun  2004  bernama  “Algoritma  Santtolo”.  Dalam memvalidasi Fisher Yates Shuffle , sebuah analisis statistik  dari algoritma  menggunakan  analisis  frekuensi
yang disampaikan dalam sebuah kesimpulan-kesimpulan analisa yang menarik tentang kecepatan algoritma ini [5] .
3. PERANCANGAN SISTEM
3.1. Algoritma Fisher Yates Shuffle
Penerapan algoritma Fisher Yates Shuffle untuk mengacak token ujian.

## 3.1.1. Flowchart Algoritma Fisher Yates Shuffle
Gambar 1. Flowchart Algoritma Fisher Yates Shuffle
Keterangan :
1.  Hitung jumlah token yang ada.
2.  Jika jumlah token lebih dari 0, maka
3.  Ambil satu token yang tersisa secara acak.
4.  Tukar dengan token ke- m(m yaitu batas jumlah token, misalkan 20 isi token berarti tukar ke isi token nomor 20).
5.  Lalu jumlah token dikurangi 1.
6.  Pengulangan akan terus berlanjut sampai isi token yang tersisa / belum diacak sudah habis.
7.  Jika jumlah isi token dibawah 0 maka tidak akan melakukan pencacakan.
8.  Selesai.

## 3.1.2. Implementasi Algoritma Fisher Yates Shuffle
Algoritma Fisher Yates Shuffle diimplementasikan dengan alur sebagai berikut :
1.  Dosen membuat soal ujian.
2.  Dosen membuat jawaban dari setiap soal ujian.
3.  Pembuatan ujian dengan membuat jadwal ujian dan pembuatan token otomatis.
4.  Menampilkan hasil token ujian yang sudah diacak.

## 3.1.3. Contoh Perhitungan Algoritma Fisher Yates Shuffle
Didalam  Aplikasi  Ujian  Online  misalkan  terdapat  8  token  ujian  yang  akan  diacak.  Maka  didapatkan panjang array (m) = 8.
Langkah-langkah pengacakan token ujian menggunakan Fisher Yates Shuffle adalah sebagai berikut :
1.  Ambil satu isi token secara acak (i). Nilai i yang boleh diambil yaitu nilai yang masih berada di Range 1- 8.
2.  Nilai i yang diambil ditukarkan dengan token ke m(nilai m yaitu batas jumlah token). Nilai m yaitu 8. Posisi nilai i yang sudah diambil secara acak ditukar nilai m yaitu 8.
3.  Pengulangan akan dilakukan sampai nilai yang akan diacak sudah tidak ada. Berikut adalah tabel contoh pengacakan  menggunakan  Algoritma Fisher Yates Shuffle dengan jumlah array (m) = 8.

## Tabel 1. Contoh Pengacakan Algoritma Fisher Yates Shuffle
Step Range Roll Scratch Result 1 2 3 4 5 6 7 8 1 1-8 4 1 2 3 8 5 6 7 4 2 1-7 6 1 2 3 8 5 7 6 4 3 1-6 2 1 7 3 8 5 2 6 4 4 1-5 7 1 5 3 8 7 2 6 4 5 1-4 1 8 5 3 1 7 2 6 4 6 1-3 3 8 5 3 1 7 2 6 4 7 1-2 5 8 5 3 1 7 2 6 4 8 5 3 1 7 2 6 4
Keterangan :
1.  Step yaitu urutan langkah dalam proses mengacak,
2.  Range yaitu jumlah angka yang belum terpilih,
3.  Roll adalah angka acak yang terpilih,
4.  Scratch adalah daftar angka yang belum terpilih,
5.  Result adalah hasil permutasi yang akan didapatkan.

## 3.2. Use Case Diagram Aktor Dosen
Gambar 2. Use Case Diagram Aktor Dosen

## 3.3. Use Case Diagram Aktor BAAK
Gambar 3. Use Case Diagram Aktor BAAK

## 3.4. Use Case Diagram Aktor Mahasiswa
Gambar 4. Use Case Diagram Aktor Mahasiswa

## 3.5. Activity Diagram Aktor BAAK
Gambar 5. Activity Diagram Aktor BAAK

## 3.6. Activity Diagram Aktor BAAK
Gambar 6. Activity Diagram Aktor Dosen

## 3.7. Activity Diagram Aktor Mahasiswa
Gambar 7. Activity Diagram Aktor Mahasiswa
JURNAL DIGIT Vol. 10, No.1 Mei 2020 : 59-70
3.8. Class Diagram
Gambar 8. Class Diagram
4. IMPLEMENTASI SISTEM
4.1. Tampilan Android Mahasiswa
Halaman ini menampilkan form login untuk setiap mahasiswa yang akan masuk ke dalam aplikasi.
Gambar 9. Tampilan Android Mahasiswa

## 4.2. Tampilan Halaman Home
Halaman ini menampilkan tampilan awal ketika sebuah mahasiswa berhasil masuk ke dalam aplikasi.
Gambar 10. Tampilan Menu Halaman Home

## 4.3. Tampilan Halaman Profil
Pada halaman ini menampilkan data-data profil singkat dari setiap mahasiswa.
Gambar 11. Tampilan Menu Profil

## 4.4. Tampilan Halaman Daftar Ujian
Pada halaman ini menampilkan data-data daftar ujian yang akan dilaksanakan yang terdapat nama mata kuliah dan jadwal ujian.

## Gambar 12. Tampilan Menu Daftar Ujian

## 4.5. Tampilan Halaman Form Token Ujian
Pada  halaman  ini  menampilkan  sebuah  form  token  ujian  untuk  masuk  ke  halaman  ujian.  Setiap mahasiswa akan diberikan token ujian.
Gambar 13. Tampilan Halaman Form Token Ujian

## 4.6. Tampilan Halaman Ujian
Pada halaman ini digunakan untuk menampilkan sebuah ujian yang berisikan soal-soal, jawaban dan waktu ujian.

## Gambar 14. Tampilan Halaman Ujian
5. KESIMPULAN DAN SARAN
5.1. Kesimpulan
Berdasarkan  masalah  dan  pembahasan  yang  telah  diuraikan  diatas  maka  dapat  diambil  kesimpulan yaitu:
1. Aplikasi  ini  dapat  dijadikan  sebagai  cara  baru  sebuah  ujian  yang  akan  menghemat  biaya,  waktu  dan tempat.
2. Aplikasi ini dapat digunakan oleh dosen dalam hal membuat soal dan jawaban dengan mudah dan cepat.
3. Aplikasi ini dapat digunakan oleh mahasiswa untuk melaksanakan ujian dengan mudah dan nyaman.

## 5.2. Saran
Untuk pengembangan aplikasi ini saran yang diberikan yaitu :
1. Pembuatan soal bisa dilakukan dengan cara mengupload file dari word agar soal lebih bervariasi.
2. Pembuatan token ujian dirubah menjadi untuk setiap mahasiswa agar ujian lebih baik lagi dan tidak ada kecurangan.
3. Untuk halaman ujian bisa diperbaiki agar tampilan bisa memuat lebih luas dan soal bisa ditampilkan satu halaman satu soal.
4. Untuk soal ujian sebaiknya tetap di acak, menggunakan algoritma atau pun tidak.

## DAFTAR PUSTAKA
[1] Muh.  Farhan  Syukroni,  Rancang  Bangun  Knowledge  Management  System  Berbasis  Web  pada Madrasah Mualimin Al-Islamiyah Uteran Geger Madiun. Ponorogo, 2017.
[2] Nazrudin  Safaat  H.  Pemograman  Aplikasi  Mobile  Smartphone  dan  Tablet  PC  Berbasis  Android. Bandung: Informatika, 2012.
[3] https://kbbi.web.id/uji
[4] Sitorus Lamhot. Algoritma dan Pemrograman. Yogyakarta: Penerbit ANDI, 2015.
[5] Hasan  Arief  Mhd.  Implementasi  Algoritma  Fisher-Yates  Untuk  Mengacak  Soal  Ujian  Online Penerimaan Mahasiswa Baru. Riau, 2017.