## Perancangan Aplikasi Pengacakan Pemenang Undian Berhadiah Menggunakan Metode Blum-Blum Shub Berbasis Android
Citono Harahap, Garuda Ginting, Taronisokhi Zebua
Prodi Teknik Informatika, STMIK Budi Darma, Medan, Indonesia Email: citonoharahap58@gmail.com Submitted 15-04-2020; Accepted 23-04-2020; Published 26-04-2020

## Abstrak
Undian berhadiah atau biasanya dikenal dengan lotere adalah salah satu cara untuk menghimpun dana yang dipergunakan untuk proyek kemanusiaan dan kegiatan sosial atau suatu cara untuk menentukan pemenang secara acak. Jadi, undian melakukan cara pemberian hadiah yang dilakukan secara acak dan  undian bersinonim dengan lotere terdapat untung-untungan mengadu nasib. Perancangan sebuah aplikasi pengacakan pemenang undian berhadiah merupakan salah satu cara yang lebih modern dan dapat menarik banyak peserta undian berhadiah untuk mengikuti undian tersebut dengan mengurangi biaya untuk mencetak dan membagikan kupon undian. Salah satunya adalah metode blum blum shub yang merupakan suatu metode yang berfungsi men-generate bilangan acak secara proses matematis dengan output yang dihasilkan adalah deretan angka biner.Penelitian ini menguraikan penerapan metode blum blum shub dengan mengacak angka angka kupon undian yang telah disebarkan sebelumnya sehingga didapatkan angka yang dijadikan sebagai pemenang.Aplikasi yang dirancang hanya mensimulasikan proses penginputan angka angka undian serta proses pengacakannya hingga didapatkan angka pemenang.
Kata Kunci: Pengacakan, Blum Blum Shub, Undian.

## Abstract
Lottery or commonly known as a lottery is one way to raise funds used for humanitarian projects and social activities or a way to determine the winner randomly. So, the lottery does a random gift-giving process and the lottery is synonymous with the lottery. The design of a lottery winner randomization application is one of the more modern ways and can attract many lottery participants to enter the lottery by reducing the cost of printing and distributing lottery tickets. One of them is the blum blub shub method, which is a method that functions to generate random numbers mathematically with the resulting output is a series of binary numbers. the numbers that are made as winners. The  designed  application  only  simulates  the  process  of  inputting  lottery  numbers  and  the  randomization  process  to  get  the  winning numbers.
Keywords: Randomization, Blum Blum Shub, Lottery.

## 1. PENDAHULUAN
Undian berhadiah atau biasanya dikenal dengan lotere adalah salah satu cara untuk menghimpun dana yang dipergunakan untuk  proyek  kemanusiaan  dan  kegiatan  sosial  atau  suatu  cara  untuk  menentukan  pemenang  secara  acak.  Jadi,  undian melakukan  cara  pemberian  hadiah  yang  dilakukan  secara  acak    dan  undian  bersinonim  dengan  lotere  terdapat  unsure spekualitif (untung-untungan mengadu nasib).
Penentuan  dalam  penetapan  sebuah  undian  adalah  dengan  memberikan  petunjuk  kepada  peserta  undian  untuk membeli sepotong tiket yang diberi nomor. Nomor tiket-tiket ini kemudian secara acak dan nomor yang terpilih berhak atas hadiah tertentu. Pengadaan program undian berhadiah biasanya dilakukan secara manual salah satunya dengan menggunakan kupon  berhadiah,  kemudian  diundi  secara  manual  dengan  mengambil  satu  persatu  secara  acak.  Hal  ini  membuat penyelenggara undian mengeluarkan dana yang sangat besar dalam mencetak kupon undian[1].
Perancangan sebuah aplikasi pengacakan pemenang undian berhadiah merupakan salah satu cara yang lebih modern dan  dapat  menarik  banyak  peserta  undian  berhadiah  untuk  mengikuti  undian  tersebut  dengan  mengurangi  biaya  untuk mencetak dan membagikan kupon undian. Salah satunya adalah  metode blum blum  shub yang merupakan suatu  metode yang berfungsi men-generate bilangan acak secara proses matematis dengan output yang dihasilkan adalah deretan angka biner.
Metode blum blum shub memiliki karakteristik khas yakni persamaan matematika yang melibatkan operator modulo dan juga fungsi perpangkatan di domain bilangan integer positif dan tak nol. Bagaimanapun juga generator ini mempunyai bukti keamanan yang kuat, dimana berhubungan dengan kualitas generator karena sulitnya faktorisasi integer[2].
Penelitian ini menguraikan penerapan metode blum blum shub dengan mengacak angka angka kupon undian sebanyak 100 peserta yang telah disebarkan sebelumnya dan mencari hanya satu orang pemenang saja sehingga didapatkan angka yang dijadikan sebagai pemenang.Aplikasi yang dibangun hanya mensimulasikan proses penginputan angka angka undian serta proses pengacakannya hingga didapatkan angka pemenang.

## 2. METODE PENELITIAN

## 2.1 Perancangan
Perancangan atau desain didefinisikan sebagai proses aplikasi berbagai teknik dan prinsip bagi tujuan pendefinisian suatu perangkat,  suatu  proses  atau  sistem  dalam  detail  yang  memadai  untuk  memungkinkan  realisasi  fisiknya[3].  Perancangan adalah untuk memen uhi kebutuhan kepada pemakai sistem dan untuk gambaran yang jelas kepada  pemogram komputer dan ahli-ahli teknik lainnya yang telibat[4].
Berdasarkan  pendapat  di  atas  perancangan  adalah  suatu  proses  yang  direncanakan  dan  disusun  secara  detail  untuk memberikan gambaran yang jelas kepada para perancang yang terlibat untuk membangun suatu aplikasi atau perangkat agar dapat memenuhi kebutuhan pemakai sistem dan sesuai dengan tujuan.

## 2.2 Aplikasi
Aplikasi  adalah  pemecahan  masalah  yang  menggunakan  salah  satu  teknik  pemrosesan  data  yang  biasanya  berpacu  pada sebuah komputansi  yang diinginkan atau diharapkan[5]. Aplikasi  adalah program  siap pakai yang dapat  digunakan untuk perintah-perintah dari pengguna dengan tujuan mendapatkan hasil yang lebih akurat sesuai dengan tujuan pembuatan[6]. Berdasarkan pendapat di atas aplikasi dapat diartikan sebagai penerapan dari rancangan sistem untuk mengolah data yang menggunakan aturan atau ketentuan tertentu dari bahasa pemrograman yang digunakan. Aplikasi juga dapat diartikan suatu program komputer yang dibuat untuk mengerjakan dan melaksanakan tugas khusus dari pengguna. Aplikasi merupakan suatu subkelas perangkat lunak komputer yang memanfaatkan kemampuan komputer langsung untuk melakukan suatu tugas yang diinginkan pengguna.

## 2.3 Pengacakan
Pengacakan  adalah  pengumpulan  subjek  ke  dalam  kelompok-kelompok  eksperimen  dan  kontrol  agar  menjadi  lebih objektif[7].  Tujuan  pengacakan  adalah  mengurangi  bias  yang  disebabkan  oleh  kesalahan  sistematis.  Berdasarkan  tujuan tersebut, maka pengacakan dapat diartikan sebagai hal yang mendasari setiap satuan percobaan yang memiliki peluang yang sama agar mengurangi kesalahan sistematis.
Randomisasi atau pengacakan tidak selalu menjamin bisa menghasilkan sampel yang benar- benar objektif. Jadi, randomisasi dapat mengubah kesalahan sistematis menjadi kesalahan acak yang dapat diterima. Beberapa cara untuk melakukan proses pengacakan diantaranya[7]adalah:
1.  Menggunakan tabel bilangan random.
2.  Penarikan undian.Penggunaan bilangan random di komputer.

## 2.4. Undian Berhadiah
Lotere atau undian berhadiah adalah satu cara     untuk menghimpun dana yang dipergunakan untuk proyek kemanusiaan dan kegiatan sosial[8]. Undian sendiri  dapat  diartikan sebagai  suatu  cara untuk  menentukan pemenang secara acak. Jadi, undian adalah cara pemberian hadiah yang dilakukan secara acak. Berdasarkan pengertian tersebut kata undian bersinonim dengan  lotere,  dimana  lotere  terdapat  unsure  spekulatif (untung-untungan  mengadu  nasib).  Kata  undian  pada  masyarakat pengertiannya dibedakan, sehingga hukumnya pun berbeda, kalau dalam undian tidak terdapat pihak yang merasa dirugikan, sedangkan dalam lotere terdapat pihak yang dirugikan.

## 2.5 Blum-blum shub (BBS)
Blum-blum shub (BBS) merupakan suatu pseudo random number generator yang diajukan pada tahun 1986 oleh Lenore Blum, Manue  Blum  dan Michael Shub, BBS memiliki bentuk persamaan Sebagai berikut[13]
Xn+1 = X 2 mod n (1)
dimana m merupakan hasil dari perkalian dua buah bilangan prima besar p dan q serta output - nya dalam leasr significant bit dari Xn dimana  hal yang sama sebagai parity dari Xn. Dua buah bilangan prima p dan q harus kongruen terhadap 3 mod 4 dan Greatest Common Divisor (GCD) harus kecil. Generator ini sering digunakan untuk aplikasi kriptografi karena generator ini tidak begitu cepat. Generator    ini    mempunyai  bukti  keamanan  yang  kuat,  dimana  berhubungan  dengan kualitas generator karena sulitnya faktorisasi integer .  Berikut langkah langkah metode BBS[13], yaitu:
1. Pilih dua bilangan prima p dan q, dimana p dan q keduanya kongruen terhadap 3 modulo 4. P = 3 mod 4 dan q = 3 mod 4.
2. Hasilkan bilangan bulat blum n dengan menghitung n = p x q.
3. Pilih lagi sebuah bilangan acak s sebagai umpan, bilangan yang dipilih harus memenuhi kriteria:
a. 2 ≤ s < n.
b. S dan n adalah relatif prima.
4. Hitung nilai x0 = s 2 mod n.
5. Hasilkan bilangan bit acak dengan cara. x1  = x 2 mod n (2)
Hasilkan zi = bit-bit yang diambil dari x1. Bit yang diambil bisa merupakan LSB atau hanya satu bit atau sebanyak j bit (j tidak melebihi log2 (log2 b). Bilangan bit acak dapat digunakan langsung atau di format dengan aturan tertentu hingga menjadi bilangan bulat.

## 3. HASIL DAN PEMBAHASAN
Tahap  analisa  merupakan  tahap  yang  sangat  berpengaruh  dan  menentukan  terhadap  tahap  selanjutnya.  Analisa  terhadap sistem merupakan tahap yang sangat penting untuk mengetahui proses yang terjadi di dalam aplikasi yang akan dirancang, dalam hal ini menggunakan algoritma blum blum shub pada aplikasi pengacakan pemenang undian berhadiah.
Algoritma  blum  blum  shub  merupakan  sebuah  algoritma  pembangkit  bilangan  acak  yang  termasuk  di  dalam  kategori cryptographically secure pseudo random number generator. Pengundian berhadiah merupakan salah satu cara yang dilakukan sebuah  perusahaan  penjualan  untuk  meningkatkan  penjualannya.  Biasanya  untuk  mendapatkan  pemenang,  langkah  yang dilakukan  adalah  dengan  memasukkan  kertas  yang  memiliki  nomor  undian  ke  dalam  sebuah  box  atau  kotak,  kemudian dikocok  dan  diambil  sebuah  kertas  yang  memiliki  nomor  undian  pemenangnya.  Proses  penentuan  pemenang  yang  akan dilakukan di dalam aplikasi adalah dengan menyebar nomor undian secara digital ke para peserta undian, kemudian nomor- nomor tersebut di-input-kan ke dalam database dan akan diacak di dalam aplikasi berdasarkan algoritma blum- blum shub untuk mendapatkan nomor pemenangnya.

## 3.1 Penerapan Algoritma Blum Blum Shub
Proses pengacakan dalam penentuan pemenang undian berhadiah pada algoritma blum blum shub dilakukan secara bertahap. Langkah- langkah dalam penentuan pemenang menggunakan algoritma blum-blum shub dapat dilihat dari contoh sebagai berikut:
Peserta  dalam  undian  pemenang  yang  berjumlah 100  peserta  dengan  nomor  undian  yang telah  ditetapkan  dengan  urutan nomor undian 100 sampai dengan 199 nomor undian. Berhubungan dengan nomor peserta yang telah dibagikan secara digital dapat dilihat dari tabel sebagai berikut:
Proses pengacakan dalam penentuan pemenang undian berhadiah pada algoritma blum blum shub dilakukan secara bertahap. Langkah-langkah dalam penentuan pemenang menggunakan algoritma blum-blum shub dapat dilihat dari contoh sebagai berikut:
Peserta dalam undian pemenang yang berjumlah  100  peserta  dengan nomor  undian yang telah ditetapkan dengan urutan nomor undian 100 sampai dengan 199 nomor undian. Berhubungan dengan nomor peserta yang telah dibagikan secara digital dapat dilihat dari tabel  sebagai berikut:
Tabel 1. Tabel Peserta Undian No No. Undian Nama Peserta No No. Undian Nama Peserta No No. Undian Nama Peserta 1 100 Udin 36 135 Karina 71 170 Gord 2 101 Messi 37 136 Selena 72 171 Hayabusa 3 102 Ibrahimovic 38 137 Kaja 73 172 Lolita 4 103 Ronaldo 39 138 Change 74 173 Fanny 5 104 Owen 40 139 Hanabi 75 174 Rafaela 6 105 Beckham 41 140 Uranus 76 175 Bane 7 106 Bambang 42 141 Martis 77 176 Franco 8 107 Firza 43 142 Valir 78 177 Akai 9 108 Andhika 44 143 Lesley 79 178 Alucard 10 109 Lutfi 45 144 Gusion 80 179 Alice 11 110 Siska 46 145 Angela 81 180 Claude 12 111 Fitri 47 146 Jawhead 82 181 Kante 13 112 Fitra 48 147 Pharsa 83 182 Makalele 14 113 Risky 49 148 Zhask 84 183 Lampard 15 114 Riska 50 149 Hylos 85 184 Joe Cole 16 115 Rocky 51 150 Digger 86 185 Vita 17 116 Aldous 52 151 Lancelot 87 186 Anggi 18 117 Freya 53 152 Odette 88 187 Rudi 19 118 Minotaur 54 153 Argus 89 188 Bowo 20 119 Layla 55 154 Grock 90 189 Yayah 21 120 Zilong 56 155 Irithel 91 190 Fathan 22 121 Eudora 57 156 Karrie 92 191 Opi 23 122 Clint 58 157 Roger 93 192 Roihan 24 123 Tigreal 59 158 Vexana 94 193 Budi 25 124 Nana 60 159 Aurora 95 194 Steven 26 125 Saber 61 160 Hilda 96 195 William 27 126 Balmond 62 161 Jhonson 97 196 Widya 28 127 Miya 63 162 Moskov 98 197 Suci 29 128 Cyclops 64 163 Yi Shun Shin 99 198 Rida 30 129 Helcurt 65 164 Ruby 100 199 Roy 31 130 Harley 66 165 Alpha 32 131 Gatotkaca 67 166 Sun 33 132 Lapu-lapu 68 167 Chou 34 133 Estes 69 168 Kagura 35 134 Bruno 70 169 Natalia
Langkah-langkah dalam penentuan pemenang undian berhadiah berdasarkan algoritma blum blum shub adalah sebagai berikut:
1. Pilih dua buah bilangan prima rahasia p dan q, masing-masing kongruen terhadap 3 modulo 4. p = 3 mod 4 dan q = 3 mod 4. Dimana nilai bilangan prima yang diambil p = 251, q = 307 sudah masing-masing kongruen terhadap 3 modulo 4. p = 251 mod 4 = 3,  q = 307 mod 4 = 3
2. Hasilkan bilangan bulat n dengan menghitung n = p x q n   = p x q
= 251 x 307
= 77057 3. Pilih lagi bilangan acak s sebagai umpan, bilangan yang dipilih harus memenuhi criteria maka bilangan acak s yang diambil 52116 sebagai umpan.
a. 2 ≤ s < n
b. s dan n adalah relatif prima s  = 52116 4. Hitung nilai x 0 = s 2 mod n Setelah mendapatkan hasil dari nilai x; atau sebut dengan angka desimal dari nilai x  maka langkah yang dilakukan dirubah ke bilangan biner. x 0 = 52116 2 mod 77057 = 2716077456 mod 77057 = 49377 = 1100000011100001 5. Hasilkan bilangan bit acak dengan cara hitung  x 1 = x 0 2 mod n sebagai berikut: x 1 = 49377 2 mod 77057 = 2438088129 mod 77057 = 4649 = 1001000101001 6. Bahwa bit – bit akhir yang diambil yang dimaksud adalah  ( least significant bit ) angka terakhir dari setiap nilai x; dan dari  tiap  iterasi  untuk  mendapatkan  nomor  pemenang,  karena  nomor  peserta  memiliki  3  digit  angka,  maka  iterasi dilakukan sebanyak n kali hingga hasil desimal dari keseluruhan LSB yang diambil terdiri dari 3 digit dan LSB yang digunakan 1 bit. x 0 = 49377 = 1100000011100001 = LSB  = 1 x 1 = 4649 = 1001000101001 = LSB  = 1 x 2 = 4649 2 mod 77057 = 21613201 mod 77057 = 37241 = 1001000101111001 = LSB = 1 x 3 =37241 2 mod 77057 = 1386892981 mod 77057 = 20195 = 100111011100011 = LSB = 1 x 4 = 20195 2 mod 77057 = 407838025 mod 77057 = 52381 = 1100110010011101 = LSB = 1 X 5 = 52381 2 mod 77057 = 2743769161 mod 77057 = 562 = 1000110010 = LSB = 0 X 6 = 562 2 mod 77057 = 315844 mod 77057 = 7616 = 1110111000000 = LSB = 0
Nilai LSB dari X 0 sampai X 6 adalah karena jumlah digit desimal biner hasil X 0 - X 6 berjumlah 3 digit maka proses berhenti. Least Significant Bit dari X 0 sampai X 6 adalah  1111100, dikonversi ke dalam bilangan desimal  124. Jadi pemenang undian berhadiah  yang didapatkan adalah dengan nomor undian 124 dengan nama Nana.

## 3.1 Implementasi
Pengujian aplikasi dilakukan untuk mengetahui apakah aplikasi sudah berjalan dengan baik dan benar. Pengujian aplikasi dilakukan  dengan  menggunakan  emulator  android  yang  terdapat  di  dalam  aplikasi  eclipse  juno,  adapun  hasil  pengujian aplikasi adalah sebagai berikut:
Gambar 1. Tampilan Pengujian Halaman Utama
Berdasarkan gambar 1. pengujian halaman utama dapat berjalan dengan baik dan tombol-tombol yang terdapat pada halaman ini sudah berfungsi dengan baik.
Gambar 2. Hasil Pengujian Form Input Data Peserta
Berdasarkan gambar 2.  dilakukan peng-  input-an ke dalam database dengan meng-input nomor undian 101 dengan nama Messi. Untuk melakukan penyimpanan data peserta ditekan tombol simpan , untuk membatalkan digunakan tombol  batal dan untuk kembali ke halaman utama digunakan tombol back hp.
.
Berdasarkan gambar 3. pengujian dilakukan dengan melakukan peng-input-an pada nilai p dan q, kemudian menekan tombol cari nilai n untuk mendapatkan nilai n dan kembali melakukan peng-input-an terhadap nilai s dan menggunakan tombol cari pemenang untuk mendapatkan pemenang.
Gambar 4. Pengujian Form Hasil
Berdasarkan  gambar  4.   form  hasil akan menampilkan nomor undian dan nama pemenang undian yang didapatkan dari perhitungan form sebelumnya  yaitu  pada  form  undian.

## 4. KESIMPULAN
Berdasarkan  pembahasan  dan  evaluasi  dari  bab-bab  sebelumnya,  maka  dapat  diambil  kesimpulan-kesimpulan.  Adapun kesimpulan- kesimpulan tersebut adalah sebagai berikut:
1.  Proses penentuan pemenang undian dapat dilakukan dengan mengumpulkan nomor- nomor undian yang telah dibagikan ke dalam suatu database untuk memudahkan dalam melakukan pengundian.
2.  Blum blum shub merupakan sebuah pseudo random generator, dalam penentuan pemenang undian berhadiah, algoritma melakukan perhitungan terhadap bilangan prima yang kongruen terdapat 3 modulo 4, kemudian mengambil nilai-nilai least significant bit pada tiap iterasi yang terjadi.
3.  Perancangan aplikasi penentuan pemenang undian berhadiah dapat dilakukan dengan menggunakan Unified Modelling Language sebagai alat bantu perancangannya dan Eclipse Juno sebagai tools untuk membangun aplikasi yang berbasis Android..

## REFERENCES
[1] R. Aurelius and N. Diaz, “Penerapan c4.5 dalam prediksi penipuan pemenang undian berhadiah menggunakan rapid miner,” Semin. Nas. Inform. 2015 207, pp. 207–210, 2015.
[2] M.  B.  Sanjaya,  “Perancangan  dan  Implementasi  Random  Number  Blum  Blum  Shub  pada  Dynamic  Cell  Spreading  untuk Pengamanan Berkas,” no. November 2017, pp. 167–173.
[3] N. Dengen and H. R. Hatta, “Perancangan Sistem Informasi Terpadu Pemerintah Daerah Kabupaten Paser,” J. Inform. Mulawarman, vol. 4, no. 1, pp. 47–54, 2009.
[4] I. Jurnal, C. Science, and F. T. I. Unsa, “ANALISIS DAN PERANCANGAN SISTEM INFORMASI STOK OBAT PADA APOTEK ARJOWINANGUN Hanik Mujiati, Sukadi,” vol. 9330, pp. 1–6, 1999.
[5] A. Juansyah, “PEMBANGUNAN APLIKASI CHILD TRACKER BERBASIS ASSISTED – GLOBAL POSITIONING SYSTEM (  A-GPS  )  DENGAN  PLATFORM  ANDROID  Jurnal Ilmiah  Komputer  dan  Informatika  ( KOMPUTA  ),”  J. Ilm.  Komput.  dan Inform., vol. 1, no. 1, pp. 1–8, 2015.
[6] H. Abdurahman and A. R. Riswaya, “Aplikasi Pinjaman Pembayaran Secara Kredit Pada Bank Yudha Bhakti,” J. Comput. Bisnis, vol. 8, no. 2, pp. 61–69, 2014.
[7] et. a. D.P.Andriani, N.W.Setyanto, Desain dan Analisis Eksperimen, UB Press. Malang, 2017.
[8] T.  Ilmiah  and  M.  M.  Batubara,  “PERANCANGAN  SISTEM  APLIKASI  UNDIAN  BERHADIAH  PADA  PT  .  PS  MAJU BERSAMA MENGGUNAKAN LINEAR CONGRUENT METHOD ( LCM ),” no. September, pp. 73–81, 2014.
[9] J.Umtoro, Genius Matematika, Wahyumedia. Bandung, 2017.
[10]  K.Y.Tung, Memahami Teori Bilangan dengan Mudah dan Menarik, PT.Grasind. Jakarta, 2008.
[11]  A. Handayanto, “Peranan sistem modulo dalam penentuan hari dan pasaran,” pp. 1–10,2014
[12]  E. R. Djuwitaningrum and M. Apriyani, “Teknik Steganografi Pesan Teks Menggunakan Metode Least Significant Bit dan Algoritma Linear  Congruential  Generator  (  Text  Message  Steganography  Using  Least  Significant  Bit  Method  and  Linear  Congruential Generator Algorithm ),” vol. IV, no. November, pp. 79–85, 2016.
[13]  M. B. Sanjaya and P. A. Telnoni, “Implementasi Random Number Blum-Blum-Shub Dan Chaotic Function Untuk Modifikasi Key Generating Pada Kriptografi Aes Implementasi Blum-Blum-Shub Dan Chaotic Function Untuk Modifikasi Key Generating Pada Aes Implementation of Blum-Blum-Shub and Chaotic Func,” J. Elektro Telekomun. Terap. Desember, pp. 154–165, 2015.
[14]  N.Safaat, PEMROGRAMAN APLIKASI MOBILE SMARTPHONE DAN TABLET PC BERBASIS ANDROID. Bandung.
[15]  A.Nugroho, Rekayasa Perangkat Lunak Berorientasi Objek dengan Metode USDP. Yogyakarta.
[16]  P. Sulistyorini, “Pemodelan Visual dengan Menggunakan UML dan Rational Rose,” J. Teknol. Inf. Din. Vol., vol. XIV, no. 1, pp. 23–29, 2009.
[17]  G. G. W.Gata, Sukses Membangun Aplikasi Penjualan Dengan Java, PT.Elex Me. Jakarta, 2013.