## Game Puzzle “Numbers in English” Berbasis Android Dengan Metode Fisher Yates Shuffle Sebagai Pengacak Potongan Gambar
Abdi Suhazli 1 , Atthariq 2 , Anwar 3*
1,3 Jurusan Tekniknologi Informasi dan Komputer Politeknik Negeri Lhokseumawe Jln. B.Aceh Medan Km.280 Buketrata 24301 INDONESIA
2 abdisuhazli@gmail.com
Abstrak — Metode pengacakan merupakan metode yang sangat penting diterapkan pada aplikasi tidak terkecuali pada game hal ini akan  menambah  tantangan  dan  mengurangi  kejenuhan  dalam  bermain  game . Perkembangan game saat  ini  memang  sangat dibutuhkan  agar  menjadikan game bukan  hanya  sabagai  media  hiburan  akan  tetapi  dapat  dijadikan  sebagai  media  pembelajaran. Belajar dapat dilakukan melalui banyak cara dan media. Salah satunya adalah dengan media game . Game Numbers in English dibuat dalam bentuk tampilan 2D yang dimainkan dengan cara memcocokkan potongan gambar berbasis android. Metode penelitian yang digunakan adalah metode Fisher Yates Shuffle yaitu metode pengacakan yang digunakan untuk mengacak susunan potongan gambar. Perangkat  lunak  yang  digunakan  dalam  perancangan  dan  pembuatan  aplikasi  ini  yaitu  android  studio.  Tujuan  dari  perancangan game ini adalah untuk mempermudah anak-anak dalam belajar numbers in english. Hasil dari pembuatan game numbers in english ini  telah  sesuai  dengan  perancangan,  hal  itu  dibuktikan  dengan game dapat  berjalan  dengan  baik  dan  susunan  potongan  gambar dapat teracak sesuai metode.
Kata kunci — game, numbers in english, fisher yates shuffle .
Abstract — The randomization method is a very important method applied to the application is no exception in the game this will add to the challenge and reduce the saturation in playing the game. The development of the game is indeed necessary in order to create not only as an entertainment program but also as a learning program. A learning process can be performed trough many ways. One of them is trough a game. This android-base game is created in 2D form which is performed by matching the pieces of pictures. The method used in this reseach is Fisher Yates Shuffle where randomized method is used to randomize the arrangement of the pictures. The software used in designing the application is android studio. The aim of designing the game is to facilitate children in learning the numbers in english. The result of creating this game has been compatible with the design. It is proved that the game is well performed and the pieces of pictures arrangement can be randomized in accordance with the method.
Keywords — innovation, game, numbers in english, fisher yates shuffle

## I. P ENDAHULUAN
Pengacakan  merupakan  hal  yang  sangat  penting  dalam membangun  aplikasi  baik  apliksi  kriptografi,  edukasi  dan game. Dengan adanya metode pengacakan pada aplikasi dapat meminimalisir  kecurangan  pada  aplikasi  ujian  online, meminimalisir  kebocoran  kunci  aplikasi  kriptografi  dan kejenuhan dalam bermain game.[1]
Game  puzzle  adalah  game  yang  dapat  memotivasi  diri secara nyata dan memiliki daya tarik yang kuat. Game puzzle merupakan  media  yang  sangat  efektif  dalam  meningkatkan keterampilan kognitif, motorik, sosial, melatih kordinasi mata dan  tangan,  logika,  kesabaran  dan  memperluas  pengetahuan. Game  puzzle  adalah  satu  permainan  komputer  yang  populer dan sudah berkembang cukup lama. Secara teknis permainan, game  ini  dibagi  atas  2  jenis  yakni  slide  puzzle  dan  jigsaw puzzle.[2]  Tantangan  dalam  permainan  ini  akan  selalu memberikan  efek  ketagihan  untuk  selalu  mencoba,  mencoba dan  terus  mencoba  hingga  berhasil.  Puzzle  merupakan  salah satu game yang sangat baik dalam memacu keterampilan otak [3]
Oleh  karena  itu,  penulis  membuat  sebuah  aplikasi  game edukasi  dan  interaktif  sebagai  media  pembelajaran.  Game edukasi  adalah  permainan  yang  dirancang  atau  dibuat  untuk merangsang  daya  pikir  termasuk  meningkatkan  konsentrasi dan  memecahkan  masalah.[4].  Game  interaktif  adalah  suatu multimedia  yang  dilengkapi  dengan  alat  pengontrol  yang dapat  dioperasikan  oleh  pengguna,  sehingga  pengguna  dapat
memilih  apa  yang  dikehendaki  untuk  proses  selanjutnya, game  akan  disertai  gambar,  suara  dan  fitur-fitur  menarik sehingga  game  ini  akan  diminati  para  pemainnya.  Adapun metode  yang  digunakan  untuk  menyelesaikan  aplikasi  game ini  adalah Fisher  Yates  Shuffle. Fisher  Yates  Shuffle merupakan  salah  satu  metode  pengacakan  berdasarkan  data input yang diberikan.

## II. M ETODOLOGI P ENELITIAN
A. Pengertian Game
Game  adalah  kegiatan  terstruktur,  biasanya  dilakukan untuk  kesenangan  dan  kadang-kadang  digunakan  sebagai media  pendidikan.  Game  berbeda  dari  pekerjaan  yang biasanya dilakukan untuk mendapatkan imbalan, dan dari seni yang  lebih  sering  merupakan  ekspresi  dari  unsur  ideologis. Permainan menuntut kita untuk berkreatifitas dalam mencapai suatu tujuan dari permainan  tersebut. Untuk mencapai tujuan tersebut,  pemain  harus  mencapainya  dengan  strategi  dan keputusan  yang  akurat.  Permainan  puzzle  sudah  bukan permainan  asing  bagi  anak-anak.  Biasanya  anak-anak  sangat senang  menyusun  dan  mencocokkan  “bentuk”  dan “tempatnya”. Anak-anak akan suka memainkan puzzle dengan berbagai macam gambar yang menarik. Puzzle bisa dimainkan anak  mulai  dari  usia  6  tahun.  Puzzle  bisa  memberikan kesempatan  belajar  yang  banyak  kepada  anak.  Memainkan puzzle  bersama-sama  pun  dapat  merekatkan  hubungan  antara orang tua dan anak.[5]

## B. Puzzle
Puzzle  adalah  salah  satu  bentuk  permainan  yang nmembutuhkan  ketelitian,  melatih  kita  untuk  memusatkan pikiran,  karena  harus  berkonstrasi  dalam  meyusun  kepingan- kepingan  gambar  puzzle  tersebut  hingga  menjadi  sebuah gambar  yang  utuh  dan  lengkap.  Puzzle  termasuk  permainan yang  memiliki  nilai  edukatif.  Dengan  puzzle  dapat  belajar memahami konsep bentuk, warna, ukuran dan jumlah. Bentuk gambar  puzzle  yang  digunakan  lebih  sederhana  dan mempunyai  warna  yang  lebih  mencolok  agar  menarik  untuk dimainkan.  Menyusun  kepingan  puzzle  berarti  mengingat gambar  secara  utuh,  kemudian  menyusun  komponennya  agar menjadi  sebuah  gambar  yang  utuh  dan  sempurna.  Bermain puzzle  gambar  dapat  melatih  kecerdasan  otak,  karena  dalam bermain  harus  berkonsentrasi  memusatkan  pikiran  dalam mencocokkan  kepingan-kepingan  gambar  puzzle.  Selain  itu permainan  ini  dapat  meningkatkan  keterampilan  dalam menyelesaikan masalah sederhana.[6]
C. Algoritma Fisher Yates Shuffle
Fisher-Yates  Shuffle  (diambil  dari  nama  Ronald  Fisher dan  Frank  Yates),  juga  dikenal  sebagai  Knuth  Shuffle (diambil  dari  nama  Donald  Knuth),  adalah  sebuah  algoritma untuk  menghasilkan  permutasi  acak  dari  suatu  himpunan terhingga,  dengan  kata  lain  untuk  mengacak  suatu  himpunan tersebut.  Sebuah  varian  dari  shuffle  Fisher-Yates,  yang dikenal  sebagai  algoritma  Sattolo  itu,  dapat  digunakan  untuk menghasilkan  siklus  acak  panjang  n  sebagai  gantinya.  Proses dasar  dari  Fisher-Yates  menyeret  mirip  dengan  memilih secara  acak  tiket  bernomor  keluar  dari  cab,  atau  kartu  dari setumpuk. [7]
Pemakaian  Fisher-Yates  Shuffle  bisa  melalui  dua  cara yaitu  original  mthode  dan  modern  methode.  [10]  Original method  dipublikasikan  pada  tahun  1983,  pada  metode  ini dilakukan  dengan  cara    penarikan  secara  berulang  dari  unsur daftar  masukan  kemudian  menuliskannya  ke  daftar  keluaran kedua. Pendekatan ini dilakukan oleh manusia dengan secarik kertas dan sebuah pensil.
Pada  modern  method  dijabarkan  untuk  penggunaan komputerisasi  yang  dikenalkan  oleh  Richard  Durstenfield pada  tahun  1964.  Modern  method  dikenalkan  karena  lebih optimal  dibandingkan  dengan  original  method.  Algoritma yang  modern  berbeda  dari  yang  sebelumnya,  sangat komputasi  dan  matematis.  Prosesnya  angka  terakhir  akan dipindahkan  ke  angka  yang  ditarik  keluar  dan  mengubah angka  yang  ditarik  keluar  menjadi  angka  akhir  yang  tidak ditarik  lagi  untuk  setiap  kali  penarikan  dan  berlanjut  untuk iterasi  berikutnya.  Hal  ini  dilakukan  dalam  O  (1)  waktu  dan ruang.  Dengan  demikian,  waktu  dan  ruang  kompleksitas algoritmanya O (n), yang optimal.[8]
D. Perancangan Fisher Yates Shuffle Algoritma Fisher  Yates  Shuffle akan  diimplementasikan menggunakan  software  android  studio  yang  menggunakan bahasa pemrograman java.
Penerapan algoritma terdapat  pada potongan angka dalam bahasa  inggris. Fisher  Yates  Shuffle diterapkan  untuk mengacak  posisi  potongan  gambar  yang  akan  ditampilkan pada layar.
Gambar 1. Blok Diagram Implementasi Fisher Yates Shuffle
Dalam game “Numbers  in  English”  terdapat  6 item yang akan diacak. Maka didapatkan panjang array (N) = 5 1. Ambil  satu  elemen  secara  acak  ( k ).  Nilai k yang  boleh diambil  adalah  nilai  N  (panjang  array)  yang  tersisa dikurangi 1 (N-1).
2. Tukarkan array (k) yang di ambil dari indeks ke-k dengan array t/ array ke-N yang diambil dari elemen saat ini (N).
3. Ulangi selama masih ada elemen yang tersisa.
Gambar 2. Flowchart Algotitma Fisher Yates Shuffle Pada Game
Algoritma Fisher Yates Shuffle diimplementasikan dengan alur sebagai berikut :
1. Melakukan permainan.
2. Inisialisasi konten-konten yang ada dalam game.
3. Mengacak  posisi  potongan  gambar  menggunakan Fisher Yates Shuffle.
4. Menampilkan potongan gambar.
E. Use Case Diagram
Use  case  diagram merupakan  pemodelan  untuk  kelakuan ( behavior )  sistem  informasi  yang  akan  dibuat. Use  case mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan informasi yang akan dibuat.[9]
Use  case  diagram  berfungsi  mendeskripsikan  sebuah interaksi antara satu atau lebih aktor dengan sistem yang akan dibuat. Diagram use case digunakan untuk mengetahui fungsi apa saja yang ada di dalam sebuah sistem dan siapa saja yang berhak menggunakan fungsi-fungsi tersebut.
Gambar 2. Use Case Aplikasi
a. Use Case Menu Use case menu menjelaskan tentang aplikasi dari luar dan memperlihatkan  aktifitas  yang  dapat  dilakukan  oleh user. Pada  aplikasi  ini user dapat  melakukan  pemilihan  menu seperti  menu play  game ,  menu about ,  menu help dan  menu exit .
b. Use Case Menu Play Game
Use  case pada  menu play  game menjelaskan  tentang aktifitas  yang  dapat  dilakukan user pada  menu play  game . Pada  saat user memilih  menu play  game maka user akan masuk ke arena permainan.
c. Use Case Menu About
Use  case pada  menu about menjelaskan  tentang  aktifitas yang  dapat  dilakukan user pada  menu about .  Pada  saat user memilih about maka user akan masuk ke tampilan about .
d. Use Case Menu Help Use  case pada  menu help menjelaskan  tentang  aktifitas yang  dapat  dilakukan user pada  menu help .  Pada  saat user memilih help maka user akan masuk ke tampilan help .
e. Use Case Menu Exit
Use  case pada  menu exit menjelaskan  tentang  aktifitas yang  dapat  dilakukan user pada  menu exit .  Pada  saat  user memilih exit maka user akan keluar dari aplikasi.

## IV. H ASIL DAN P EMBAHASAN
Hasil  perancangan  dan  implementasi  dilakukan  pada pernagkat  mobile  dengan operating  sistem Android  6.0  atau Marshmallow. Untuk menjalankan aplikasi dibutuhkan sistem minimum OS Android 4.0  atau  ice  cream  sandwich  dengan RAM  minimal  512.    Aplikasi  akan  berjalan  maksimal  pada
Android  dengan  layar  4  –  5 inch .  Berikut  adalah  tampilan aplikasi.
Gambar 3. Tampilan Splashscreen Game
Gambar 4. Tampilan Menu Utama Game
A. Hasil Pengujian Pengujian  dilakukan  untuk  membuktikan  apakah  aplikasi dapat  berjalan  pada  perangkat  mobile  dan  algoritma  berjalan sesuai dengan yang diharapkan.
a. Pengujian Keakuratan Sistem
Pengujian  keakuratan  sistem  dilakukan  untuk  mengetahui apakah aplikasi numbers in english dapat berjalan dengan baik pada perangkat mobile. Semua tampilan pada aplikasi ini  dirancang  menggunakan  layar  bentuk  landscape. Adapun  hasil  pengujian  keakuratan  sistem  dapat  dilihat pada tabel I berikut ini.
Tabel I

## Hasil Pengujian Keakuratan Sistem
No Tampilan Gagal Berhasil 1 Splash Screen √ 2 Menu Utama √ 3 About √ 4 Help √ 5 Game Play Lv.1 √ 6 Game Play Lv.2 √ 7 Game Play Lv.3 √
8 Game Play Lv.4
√
b. Pengujian metode Fisher Yates Shuffle
Hasil pengujian metode fisher yates shuffle dilakukan pada aplikasi  ketika  user  menekan play. Pengujian  dilakukan lansung pada aplikasi dengan cara menekan play beberapa kali  sesuai  dengan  pengujian  yang  dibutuhkan.  Pada pengujian ini dilakukan pengujian sebanyak 6 kali. Berikut ini  hasil  pengujian  metode fisher  yates  shuffle untuk mengacak posisi angka pada aplikasi.
Berikut  ini  tampilan  hasil  pengujian  langsung  pada aplikasi.

## Tabel II
Database Urutan Potongan Gambar Level 1
Urutan potongan gambar pada database Gambar
1 2 3 4 5 6
Tabel  diatas  merupakan  urutan  potongan  gambar  yang disimpan  pada  database  aplikasi,  dapat  dilihat  bahwa  urutan potongan  gambar  dideklarasikan  sebagai  array  yang  akan  di acak dengan algoritma Fisher Yates Shuffle .
Tabel III
Hasil Pengujian Langsung Dengan Aplikasi Pengujian Pembuktian pada aplikasi Keterangan
Pertama Berhasil Kedua Berhasil Ketiga Berhasil Keempat Berhasil Kelima Berhasil
Kenam Berhasil
Tabel IV
Hasil Pengujian Fisher Yates Shuffle
Pengujian Angka yang diacak Hasil Pengacakan 1 1,2,3,4,5,6 3,5,1,2,4,6 2 1,2,3,4,5,6 2,4,1,3,6,5 3 1,2,3,4,5,6 5,4,1,3,6,2 4 1,2,3,4,5,6 5,4,2,1,3,6 5 1,2,3,4,5,6 3,2,6,5,4,1 6 1,2,3,4,5,6 1,4,6,3,2,5
Dari hasil pengujian pada tabel IV di atas maka dapat dibuat  sebuah  grafik  bilangan  acak  yang  dibangkitkan  pada aplikasi  dengan  metode fisher  yates  shuffle seperti  pada gambar berikut ini.
0 1 2 3 4 5 6 7 A n gka yan g m u n cu l

## Gambar 4 Grafik Hasil Pengujian Fisher Yates Shuffle
Pada  gambar  4  dapat  dilihat  bahawa  metode  fisher  yates shuffle  berjalan  sesuai  dengan  algoritma,  dimana  setelah dilakukan  pengujian  pada  aplikasi  sebanyak  enam  kali  pada level  1  dengan  waktu  yang  berbeda  didapatkan  hasil pengacakan  yang  berbeda-beda.  Bilangan  acak  yang  muncul
pada pengujian yang dilakukan sebanyak enam kali adalah 3 5 1 2 4 6, 2 4 1 3 6 5, 5 4 2 1 3 6, 3 2 6 5 4 1, 1 4 6 3 2 5. Untuk nilai N=6 maka kemungkinan kemunculan bilangan yang akan menempati posisi yang sama sama yaitu 6! = 6x5x4x3x2x1 = 720,  dengan  demikian  metode  fisher  yates  shuffle  dapat dikatakan  sangat  tepat  untuk  diterapkan  pada  game  numbers in english.

## V. KESIMPULAN
Berdasarkan  hasil  penelitian  dan  pembahasan  terhadap aplikasi  numbers  in  english  dengan  metode  fisher  yates shuffle, maka dapat disimpulkan sebagai berikut : 1. Metode  fisher  yates  shuffle  sangat  berpengaruh  terhadap posisi  potongan  gambar,  dengan  adanya  metode  ini  pada aplikasi  numbers  in  english  akan  meminimalisir  pemain dalam menghafal urutan potongan gambar.
2. Algoritma  fisher  yates  shuffle  telah  diterapkan  dengan baik  pada  aplikasi  sehingga  potongan  gambar  dapat teracak sesuai dengan yang diharapkan.
3. Dengan  nilai  N=6  maka  kemungkinan  bilangan  akan menempati  posisi  yang  sama  adalah  6!  :  6x5x4x3x2x1  = 720.
4. Algoritma  Fisher  Yates  Shuffle  diimplementasikan  untuk mengacak  array  berisi  potongan  gambar.  Dimana  pada permainan  ini  array  berisi  gambar  diacak  untuk mendapatkan posisi potongan gambar yang tidak berulang sesuai  panjang  array  potongan  gambar.  Potongan  gambar dengan panjang array 6 (N=6) atau [0..5]). Posisi potongan gambar diinisialisasikan dengan nilai koordinat float x dan float y dari deklarasi pada layar android 5 inci.
5. Dari hasil pengujian pengacakan yang dilakukan pada aplikasi akan menghasilkan permutasi acak yang berbeda setiap kali aplikasi dijalankan.

## REFERENSI
[1] Hadi, Ahmaddul. 2014. Pengembangan Sistem Informasi Ujian Online Berbasis  Web  Dengan  Pengacakan  Soal  Menggunakan  Algoritma Fisher-Yates Shuffle, Jurnal Teknologi Informasi & Pendidika, Padang
[2] Hakim,  Lukman.  2005.    Pembangunan Game  dengan  Visual  Basic ,
Elex Media Komputindo, Jakarta
[3] Ashari. 2014. Perancangan aplikasi puzzle tokoh pejuang kemerdekaan  menggunakan  linear  congruent  method ,  Jurnal  Pelita Informatika  Budi Darma, Medan
[4] Handriyantini,  Eva.  2009,  Permainan  Edukatif  (Educational  Games) Berbasis  Komputer  untuk  Siswa  Sekolah  Dasar,  Sekolah  Tinggi Informasi & Komputer Indonesia, Malang.
[5] Yulianti  I,  Rani.  2012.  Permainan  yang  Meningkatkan  Kecerdasan Anak.    Jakarta : Laskar Askara
[6] Syukron.  2011.  Penggunaan  Media  Games  Puzzle.  Jakarta    :  Media Pratama
[7] Ade-Ibijola,  AbejideOlu.  2012.  A  Simulated  Enhancement  of  Fisher- Yates  Algorithm  for  Shuffling  in  Virtual  Card  Games  using  Domain- Specific  Data  Structures,  International  Journal  of  Computer Applications.[Online]. http://www.academia.edu.
[8] O’Connor,  Derek.  2014.  A  Historical  Note  on  Shuffle  Algorithms. [Online]. https://www.academia.edu.
[9] Rosa  A.S  dan  M.  Shalahuddin,  2013, Rekayasa  Perangkat  Lunak
Terstruktur dan Berorientasi Objek , Informatika, Bandung.
[10]  Pavel,  Micka.  Fisher-Yates-Shuffle  Algorithm  :  Founder  and administrator of web encyclopedia Algoritmy.net.[Online].. http://en.algoritmy.net/article/43676/Fisher-Yates-Shuffle.