ABSTRAK
Tujuan dari pembangunan aplikasi ini adalah untuk membuat aplikasi berbasis android yang dapat membuat
sekaligus mengacak pertanyaan Matematika sebagai syarat menghentikan alarm pada aplikasi weker. Untuk
pengembangannya, penulis menggunakan pendekatan model Waterfall yang terdapat lima tahap yaitu: analysis,
design, coding, testing dan maintenance, dengan bahasa pemrograman Java. Algoritma Fisher Yates Shuffle
menentukan operand dan operator secara acak, sehingga pertanyaan yang disajikan merupakan kombinasi antara
operand dan operator yaitu dari angka 0 hingga angka 99 dan terdapat operasi hitung penjumlahan,
pengurangan, perkalian serta pembagian yang dibentuk secara acak. Berdasarkan metode pengujian Black Box
disimpulkan bahwa aplikasi yang dibangun dapat berjalan sesuai dengan rancangan.
Kata Kunci: algoritma Fisher Yates Shuffle, aplikasi weker, aplikasi android, algoritma acak
1
Jurnal Ilmu Teknik dan Komputer
Vol. 1 No. 1 Januari 2017
ISSN 2548-740X
kewaspadaan dan tidur. RAS ini terletak dalam sekelompok angka, teks, atau data. Proses
mesenfalon dan bagian atas pons. Selain itu RAS pengacakan saat ini banyak digunakan dalam
dapat memberi rangsangan visual, pendengaran, pengembangan perangkat lunak. Proses pengacakan
nyeri dan perabaan juga dapat menerima stimulasi yang dilakukan terhadap urutan angka, teks, atau
dari korteks serebri termasuk rangsangan emosi dan data akan menghasilkan permutasi acak.
proses pikir [6].
Fisher Yates Shuffle (diambil dari nama Ronald
Seringkali kita terbangun saat alarm jam weker Fisher dan Frank Yates) atau juga dikenal dengan
yang keras, yang sengaja kita setting di pagi hari, nama Knuth Shuffle (diambil dari nama Donald
tetapi tidak jarang, kita kembali tidur lagi setelah Knuth), adalah sebuah algoritma untuk
menekan tombol tunda (snooze) untuk beberapa menghasilkan suatu permutasi acak dari suatu
menit dan akan mengakibatkan aktivitas Reticular himpunan terhingga, dengan kata lain untuk
Activity System menurun, maka hal tersebut akan mengacak suatu himpunan tersebut. Jika
menjadi kurang efektif untuk membangunkan diimplementasikan dengan benar, maka hasil dari
seseorang yang sedang tidur. algoritma ini tidak akan berat sebelah, sehingga
setiap permutasi memiliki kemungkinan yang sama
Hadirnya teknologi komunikasi seperti telepon [7].
seluler (handphone) yang semakin pesat dan maju
tidak dapat kita hindari. Salah satu operasi sistem Proses dasar dari Fisher-Yates Shuffle mirip dengan
mobile yang digunakan oleh smartphone adalah mengambil kartu dari setumpuk kartu satu demi
Android. Android adalah sebuah sistem operasi satu sampai tidak ada yang tersisa. Algoritma
untuk smartphone berbasis linux. Salah satu Fisher-Yates dianggap oleh banyak orang sebagai
kelebihan Android dibanding sistem operasi metode yang objektif dan optimal untuk
smartphone lainnya adalah Android bersifat open- menghasilkan permutasi yang benar-benar acak dari
source code sehingga orang-orang dapat himpunan berhingga.
mengkustomasi fitur-fitur yang belum ada di sistem
operasi Android sesuai dengan keinginan mereka, Fisher-Yates Shuffle, dalam bentuk aslinya
salah satunya aplikasi Alarm Weker yang berbasis digambarkan pada tahun 1938 oleh Ronald Fisher
Android. Hal ini akan memberikan efek yang dan Frank Yates, dalam tabel buku statistik mereka
sangat baik bagi pengguna dibandingkan dengan untuk penelitian biologi, pertanian dan medis
Alarm Weker biasa pada umumnya. Aplikasi ini “Statistical tables for biological, agricultural and
akan disuguhkan dengan pertanyaan Matematika medical research”. Versi asli dilaksanakan secara
secara Acak (Random) dan jawablah pertanyaan manual, menggunakan pensil dan kertas dengan
dengan benar untuk menghentikan suara Alarm dari meja yang telah diberi nomor secara acak untuk
aplikasi Weker berbasis Android ini, sehingga ini menghasilkan kemungkinan acak.
sangat bagus untuk meningkatkan aktivitas
Reticular Activity System maka orang tersebut akan Flowchart yang menggambarkan langkah dari
dalam keadaan sadar ketika menjawab pertanyaan Fisher-Yates dalam bentuk aslinya lebih detil dapat
Matematika dengan benar dari aplikasi Alarm dilihat pada Gambar 1.
Weker berbasis Android.
2
Jurnal Ilmu Teknik dan Komputer
Vol. 1 No. 1 Januari 2017
ISSN 2548-740X
Metode dasar yang digunakan untuk menghasilkan Penelitian ini menerapkan algoritma Fisher Yates
suatu permutasi acak untuk angka 1 sampai N Shuffle untuk melakukan pengacakan terhadap 54
adalah sebagai berikut : kartu. Artinya, kemungkinan permutasi dari 54
1. Tuliskan angka dari 1 sampai N. kartu tersebut adalah 54! atau sekitar 2,3 x 10 71
2. Pilih sebuah angka acak K diantara 1 urutan yang mungkin. Namun karena game virtual
sampai dengan jumlah angka yang belum dicoret. card yang diimplementasikan adalah Whot Cards,
3. Dihitung dari bawah, coret angka K yang maka dari 54 kartu, hanya 12 urutan kartu saja yang
belum dicoret, dan tuliskan angka tersebut di lain dibutuhkan, sehingga permutasinya dapat diurutkan
tempat. dengan kemungkinan 12! urutan atau 479.001.600
4. Ulangi langkah 2 dan langkah 3 sampai urutan yang mungkin.
semua angka sudah tercoret.
5. Urutan angka yang dituliskan pada langkah Yang dimaksud dengan domain-specific data
3 adalah permutasi acak dari angka awal. structures dalam penelitian ini adalah struktur data
Pada versi modern digunakan sekarang, angka yang generic list. Peneliti menggunakan struktur data
terpilih tidak dicoret, tetapi posisinya ditukar generic list dengan IDE Visual Basic.Net. Generic
dengan angka terakhir dari angka yang belum merupakan object collection pada VB.Net yang
terpilih. sudah typed-safe yang terdiri dari object collection
Array, List, Dictionary, Sorted Dictionary, Queue,
Berikut ini adalah contoh pengerjaan dari versi dan Stack. Dalam penelitian ini object collection
modern. Range adalah jumlah angka yang belum yang digunakan adalah List.
terpilih, roll adalah angka acak yang terpilih,
scratch adalah daftar angka yang belum terpilih, 2.2 Pengertian Alarm Weker
dan result adalah hasil permutasi yang akan Alarm secara umum dapat didefinisikan sebagai
didapatkan. Contoh pengerjaan dapat dilihat pada bunyi peringatan atau pemberitahuan. Weker adalah
Tabel 1. jam dengan perangkat yang dapat dibuat terdengar
pada saat ditetapkan di muka yang digunakan untuk
membangunkan seseorang [8].
Range Roll Scratch Result
2.3 Pengertian Android
12345678 Android adalah sistem operasi untuk handphone
yang berbasis Linux. Android menyediakan
1-8 6 1234587 6 platform terbuka bagi para pengembang buat
menciptakan aplikasi mereka sendiri untuk
1-7 2 173458 26
digunakan oleh bermacam peranti bergerak.
1-6 6 17345 826 Awalnya, Google Inc. membeli Android Inc.
pendatang baru yang membuat peranti lunak untuk
1-5 1 5734 1826 handphone. Kemudian untuk mengembangkan
Android, dibentuklah Open Handset Alliance,
1-4 3 574 31826 konsorsium dari 34 perusahaan peranti keras,
peranti lunak, dan telekomunikasi [9].
1-3 3 57 431826
III. METODOLOGI
543182
1-2 1 7
6 3.1 Metologi Waterfall
Model waterfall adalah model klasik yang bersifat
Tabel 1. Contoh Pengerjaan Algoritma Fisher Yates sistematis, berurutan dalam membangun software.
Shuffle Menurut Sommerville, Waterfall model mengambil
Permutasi yang didapatkan adalah 7 5 4 3 1 8 2 6. kegiatan proses dasar spesifikasi, pengembangan,
validasi dan evolusi dan mewakili kegiatan tersebut
Penelitian tentang A Simulated Enhancement of sebagai fase proses terpisah seperti spesifikasi
Fisher-Yates Algorithm for Shuffling Virtual Card persyaratan, perancangan perangkat lunak,
Games using Domain-Specific Data Structures [7] implementasi, pengujian, dan sebagainya. Tahapan
melakukan implementasi terhadap game virtual utama dari waterfall model langsung mencerminkan
card menggunakan algoritma Fisher Yates Shuffle. aktifitas pengembangan dasar. Terdapat 5 tahapan
3
Jurnal Ilmu Teknik dan Komputer
Vol. 1 No. 1 Januari 2017
ISSN 2548-740X
pada waterfall model dapat dilihat pada Gambar 2., Use Case diagram menjelaskan apa yang akan
yaitu requirement analysis and definition, system dilakukan oleh sistem yang akan dibangun dan
and software design, implementation and unit siapa yang berinteraksi dengan sistem. Di bawah ini
testing, integration and system testing, dan adalah perancangan use case diagram dari aplikasi
operation and maintenance [10]. alarm berbasis android. Adapun Aktor yang terlibat
dalam aplikasi ini adalah user. User adalah aktor
yang menggunakan handphone berbasis android.
System
Menampilkan Jadwal
Alarm
Edit Jadwal
<<extend>>
4
Jurnal Ilmu Teknik dan Komputer
Vol. 1 No. 1 Januari 2017
ISSN 2548-740X
Alarm diaktifkan dengan tanda Ceklis Melakukan Shuffle terhadap Angka dan Operator
Menjawab pertanyaan Matematika untuk mematikan Alarm Mendapat jawaban operasi hitung
Mengatur waktu di menu Set time
Tidak Ya
Mengatur hari untuk mengulangi jadwal alarm
Tulisan warna merah Tulisan warna hitam
Menampilkan hari yang telah diatur untuk diulangi
Memilih tingkat kesulitan untuk pertanyaan Alarm terus berbunyi Alarm berhenti berbunyi
5
Jurnal Ilmu Teknik dan Komputer
Vol. 1 No. 1 Januari 2017
ISSN 2548-740X
Start
User
1. Masuk halaman list jadwal alarm
2. Add list jadwal/Tidak
Membuka Aplikasi Menampilkan list jadwal waktu alarm
[Add]
Memilih salah satu antara browser atau aplikasi twitter 5. Set Label
Finish
8. Set Difficulty
6
Jurnal Ilmu Teknik dan Komputer
Vol. 1 No. 1 Januari 2017
ISSN 2548-740X
Ya Tidak Tidak
Difficulty = Easy Difficulty = Medium Difficulty = Hard
Gambar 10. Sequence Diagram Menjawab Pertanyaan Ambil satu angka acak Ya
0 ≤ a ≤ 99 Ambil satu angka acak
Pada gambar diatas menjelaskan bagaimana user Ambil satu angka acak
0 ≤ a ≤ 99
Medium < 3 - 1
tersebut, sedangkan apabila jawaban operasi Tidak
hitung benar maka bunyi alarm akan berhenti. Tidak Menampilkan pertanyaan berupa Tidak
4. Sequence Diagram Follow Me angka dan operator yang sudah di
acak (random)
Halaman list jadwal waktu Pilih browser atau aplikasi Halaman profil twitter
twitter
End
alarm penulis
User
Gambar 12. Flowchart mengacak Angka dan
1. Masuk halaman list jadwal alarm Operator
2. Memilih Follow Me
3. Memilih Browser
Proses pengacakan Angka dan Operator adalah
sebagai berikut :
4. Menampilkan profil twitter penulis
1. Mengurutkan angka dari 0 sampai 99.
2. Mengurutkan pilihan operator dari 0
sampai 3.
Gambar 11. Sequence Diagram Follow Me
3. Menentukan pilihan Difficulty, apabila
Pada gambar diatas menjelaskan bagaimana user
pilihan Easy maka Ya/Benar.
melihat menu follow me. Saat user membuka
4. Selanjutnya sebuah angka acak a diantara
aplikasi dan masuk ke halaman list jadwal alarm.
0 sampai dengan angka 99 yang belum dicoret.
Sistem akan menampilkan halaman daftar (list)
Dihitung dari bawah, coret angka a yang belum
jadwal alarm. Kemudian user memilih menu
dicoret, dan tuliskan angka tersebut di lain tempat.
follow me. Selanjutnya, terdapat pilihan untuk
5. Ulangi langkah 4 sampai 2 angka sudah
membuka profil melalui browser atau aplikasi
tercoret.
twitter, jika sudah memilih browser maka sistem
6. Selanjutnya sebuah operator acak p
mengalihkan ke halaman twitter profil penulis.
diantara 0 sampai dengan angka 3. Dihitung dari
3.7 Flowchart Mengacak Angka dan Operator
7
Jurnal Ilmu Teknik dan Komputer
Vol. 1 No. 1 Januari 2017
ISSN 2548-740X
bawah, coret angka p, dan tuliskan angka tersebut menu tambah, menu follow me dan daftar (list)
di lain tempat. jadwal alarm.
7. Ulangi langkah 6 sampai 1 operator sudah
terpenuhi.
8. Urutkan angka dan operator yang
dituliskan pada langkah 4 dan langkah 6 adalah
pengacakan dari angka dan operator, maka
terbentuklah sebuah pertanyaan matematika
dengan Difficulty Easy.
9. Jika Tidak/Salah dan apabila pilihan
Difficulty Medium maka Ya/Benar.
10. Selanjutnya sebuah angka acak a diantara
0 sampai dengan angka 99 yang belum dicoret.
Dihitung dari bawah, coret angka a yang belum
dicoret, dan tuliskan angka tersebut di lain tempat. Gambar 13. Daftar Jadwal Alarm
11. Ulangi langkah 10 sampai 3 angka sudah Selanjutnya adalah halaman tambah jadwal alarm
tercoret. merupakan tampilan sebuah button add, setelah
12. Selanjutnya sebuah operator acak p user menekan tanda add pada daftar jadwal alarm.
diantara 0 sampai dengan angka 3. Dihitung dari Pada halaman ini terdapat gambar logo, nama
bawah, coret angka p, dan tuliskan angka tersebut aplikasi, button simpan, button hapus, dan menu
di lain tempat. follow me.
13. Ulangi langkah 12 sampai 2 operator
sudah terpenuhi.
14. Urutkan angka dan operator yang
dituliskan pada langkah 10 dan langkah 12 adalah
pengacakan dari angka dan operator, maka
terbentuklah sebuah pertanyaan matematika
dengan Difficulty Medium.
15. Jika Tidak/Salah maka pilihan Difficulty
Hard.
16. Selanjutnya sebuah angka acak a diantara
0 sampai dengan angka 99 yang belum dicoret.
Dihitung dari bawah, coret angka a yang belum Gambar 14. Tambah Jadwal Alarm
dicoret, dan tuliskan angka tersebut di lain tempat. Pada halaman jawab pertanyaan merupakan
17. Ulangi langkah 16 sampai 4 angka sudah tampilan sebuah pertanyaan Matematika yang
tercoret. diiringi bunyi alarm, setelah user menetapkan
18. Selanjutnya sebuah operator acak p waktu dan hari yang telah ditentukan sebelumnya,
diantara 0 sampai dengan angka 3. Dihitung dari maka pengguna menjawab pertanyaan
bawah, coret angka p, dan tuliskan angka tersebut Matematika dengan Angka dan Operator yang
di lain tempat. sudah diacak dengan menekan tombol button yang
19. Ulangi langkah 18 sampai 3 operator sudah tertera pada halaman jawab pertanyaan
sudah terpenuhi. tersebut, apabila pengguna salah menjawab maka
20. Urutkan angka dan operator yang akan muncul warna merah pada jawabannya lihat
dituliskan pada langkah 16 dan langkah 18 adalah pada Gambar 15. dan alarm tidak akan berhenti
pengacakan dari angka dan operator, maka lalu apabila jawaban benar maka tulisan akan
terbentuklah sebuah pertanyaan matematika warna hitam disertai berhentinya bunyi alarm dan
dengan Difficulty Hard. aplikasi keluar dengan sendirinya. Pada halaman
ini terdapat textview1 untuk pertanyaan
IV. HASIL DAN DISKUSI matematika, dan textview2 untuk menjawab
pertanyaan tersebut, terdapat button angka 0
4.1 Alur Kerja Aplikasi sampai angka 9, button tanda koma (,), button
Halaman daftar jadwal alarm merupakan tampilan tanda minus (-), dan button untuk menghapus
awal setelah user membuka aplikasi. Pada karakter dari jawaban pertanyaan.
halaman ini terdapat gambar logo, nama aplikasi,
8
Jurnal Ilmu Teknik dan Komputer
Vol. 1 No. 1 Januari 2017
ISSN 2548-740X
Mencetak
Menekan angka 0
button sampai 9,
angka 0 koma dan
6. Normal Sesuai
sampai 9, minus di
koma dan halaman
minus jawab
pertanyaan
Membersihka
n karakter
Menekan
pada jawaban
7. button Normal Sesuai
di halaman
clear
jawab
pertanyaan
Menampilkan
Gambar 15. Jawab Pertanyaan halaman
pertanyaan
Dan menu Follow Me merupakan tampilan info Menjawab
matematika
pembuat aplikasi yang menuju ke alamat profil pertanyaa
yang sudah
8. n dengan Normal Sesuai
twitter, setelah user menekan menu follow me. jawaban
diacak
4.2 Pengujian Fungsionalitas (random)
yang salah
disertai tanda
merah pada
Proses pengujian ini dilakukan dengan cara install baris jawaban
aplikasi pada device. Dalam hal ini penulis akan
menggunakan metode pengujian aplikasi black Menjawab
box. Untuk melihat apakah fungsi-fungsi pada pertanyaa Keluar
n dengan aplikasi dan
aplikasi berjalan dengan baik atau tidak dan juga 9.
jawaban
Normal
alarm berhenti
Sesuai
mengetahui dibagian mana saja terdapat kesalahan yang berbunyi
pada aplikasi ini untuk segera dapat diperbaiki benar
oleh penulis.
Menampilkan
4.3 Hasil Pengujian
info pembuat
Tabel 2. Hasil Pengujian Aplikasi 10 Memilih
Normal aplikasi ke Sesuai
Hasil . follow me
Sifat Hasil yang halaman profil
No. Nama Tes Penguji twitter
Kegiatan diharapkan
an
Masuk Kembali
Menampilkan
halaman ke Menampilkan
halaman 11
1. daftar Normal Sesuai halaman Normal halaman Sesuai
daftar jadwal .
jadwal sebelumn sebelumnya
alarm
alarm ya
Memilih Menampilkan
tambah halaman Memilih
2. Normal Sesuai 12 Keluar
jadwal tambah jadwal keluar Normal Sesuai
alarm alarm . aplikasi
aplikasi
Memilih
hapus Menghapus
3. daftar Normal daftar jadwal Sesuai
jadwal alarm 4.4 Analisis Hasil Pengujian
alarm Setelah tahap pengujian black box diatas terhadap
Menampilkan semua fungsi pada Aplikasi alarm weker dengan
halaman pertanyaan menggunakan algoritma Fisher Yates
Memilih
tambah jadwal Shuffle berbasis android yang sudah dijalankan,
edit daftar
4. Normal alarm dan Sesuai
jadwal maka dapat disimpulkan :
meng-update
alarm 1. Pada saat pembuatan aplikasi penulis
daftar jadwal
alarm menggunakan smartphone android dan AVD
Menampilkan Manager (Android Virtual Device) untuk
halaman
pertanyaan
mengetahui Error dan yang lainnya, sehingga
Alarm aplikasi dapat berjalan dengan baik pada android.
5. Normal matematika Sesuai
berbunyi 2. Fungsi-fungsi pada aplikasi berjalan
yang sudah
diacak dengan baik seperti, pengacakan angka dan
(random) operator pada pertanyaan matematika,
9
Jurnal Ilmu Teknik dan Komputer
Vol. 1 No. 1 Januari 2017
ISSN 2548-740X
10