SKRIPSI
Oleh:
HENDRA NIM.1144044
PROGRAM STUDI TEKNIK INFORMATIKA
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER STMIK TIME
MEDAN 2015
i
Game Drop7 adalah salah satu jenis permainan yang dimainkan pada kotak berukuran 7 x 7. Permainan ini memerlukan bilangan acak yang akan digunakan sebagai angka pada piring yang muncul.
Permainan ini akan menggunakan Concoction Generator untuk menghasilkan bilangan acak yang akan digunakan sebagai nilai piring. Perangkat lunak yang dirancang ini melakukan beberapa tahapan proses yaitu dimulai dari proses pengacakan piring, proses memeriksa struktur piring dan proses pengecekan susunan piring.
Perangkat lunak ini menampilkan nilai yang diperoleh pemain. Perangkat lunak juga menampilkan high score yang diperoleh pemain.
ii
Game Drop7 is a kind of games that is played in a box with size 7 x 7. This game needs random number which is used while generating new plate.
This game uses Concoction Generator to generate random number as the plate value. The software consists of several process, i.e. starting from randomize the plate process, checking the structure of plate and checking plate structure process.
The software will show the score that is achieved by player. The software also shows the high score that is achieved by player.
iii
Puji syukur kepada Tuhan Yang Maha Esa yang telah memberikan kesehatan kepada saya penulis dan berkat kebajikan yang telah diperbuat selama ini sehingga saya dapat menjelaskan skripsi yang merupakan salah satu pemenuhan kurikulum program studi Teknik Informatika pada STMIK TIME Medan. Adapun judul dari skripsi ini adalah “Aplikasi Concoction Generator
pada Game Drop7”.
Dalam penyusunan skripsi ini, penulis banyak menerima bantuan baik bimbingan maupun petunjuk serta saran nasehat dari berbagai pihak.
Melalui kesempatan ini penulis ingin menyampaikan rasa terima kasih yang sebesar – besarnya kepada :
1. Bapak Fadlin, M.Kom, selaku Dosen Pembimbing I yang telah membantu dan membimbing penulis dalam menyelesaikan skripsi ini.
2. Bapak Tony Ria, S.Pd, M.Kom, selaku Dosen Pembimbing II yang telah membantu dan membimbing penulis dalam menyelesaikan skripsi ini.
3. Bapak Simon Kanggali, selaku Ketua Yayasan STMIK TIME Medan. 4. Bapak Prof. Chainur Arrasyid, selaku Ketua BPH STMIK TIME Medan. 5. Bapak Prof. Harlem Marpaung, Ph.D, selaku Ketua STMIK TIME Medan. 6. Bapak Jackri Hendrik, ST, M.Kom, selaku Puket I STMIK TIME Medan. 7. Bapak Hendri, M.Kom, selaku Ketua Program Studi Teknik Informatika
iv
9. Kedua orang tua tercinta dan teman-teman yang telah membantu baik dari segi moril maupun material hingga selesainya penyusunan skripsi ini.
Meskipun telah disusun, penulis menyadari bahwa isi dan teknik penulisan skripsi ini masih memerlukan perbaikan untuk menyempurnakannya baik dari segi tata bahasa manapun materi yang terkandung didalamnya. Oleh karena itu setiap kritik dan saran akan diterima dengan senang hati agar dapat dijadikan bahan perbaikan untuk penulisan selanjutnya. Akhir puji dan syukur daya ucapkan kepada Tuhan Yang Maha Esa, semoga kita selalu dalam lindungan dan karuniaNya.
Medan, Mei 2015 Penulis
v
ABSTRAK ... i
ABSTRACT... ii
KATA PENGANTAR ... iii
DAFTAR ISI ... v
DAFTAR GAMBAR ... viii
DAFTAR TABEL ... x
DAFTAR LAMPIRAN ... xi
BAB I PENDAHULUAN ... 01 1.1. Latar Belakang Masalah ... 01 1.2. Identifikasi Masalah ... 02 1.3. Batasan Masalah ... 03 1.4. Tujuan dan Manfaat Penelitian ... 03 1.5. Sistematika Penulisan ... 04 BAB II LANDASAN TEORI ... 06 2.1. Randomness (Pengacakan) ... 06 2.1.1. Randomness dalam Filosofi ... 6
2.1.2. Randomness dalam Ilmu Alam ... 7
2.1.3. Randomness dalam Matematika ... 7
2.1.4. Randomness dalam Kriptografi ... 7
2.1.5. Randomness dalam Permainan ... 8
2.2. Bilangan Acak ... 9
2.2.1. Pembangkit Bilangan Acak ... 9
2.2.2. Pembangkit Bilangan Acak Semu ... 9
2.2.3. Algoritma Pembangkit Bilangan Acak Semu ... 10
2.3. Non-Linear Feedback Shift Register (NLFSR) ... 16
2.4. Linear Feedback Shift Register (LFSR) ... 17
2.4.1. Implementasi LFSR ... 19
vi
2.7. Landasan Matematis Kriptografi ... 25
2.7.1. Operasi XOR ... 25
2.7.2. Penjumlahan dengan Carry ... 27
2.7.3. Pergeseran Bit (Shift) ... 28
2.7.4. Rotasi Bit (Rotate) ... 28
2.8. Game Drop7 ... 29
BAB III METODE PENELITIAN ... 31
3.1. Tempat dan Jadwal Penelitian ... 31
3.2. Kerangka Kerja ... 32
3.2.1. Metode Pengumpulan Data ... 32
3.2.2. Analisa Sistem ... 33
3.2.3. Perancangan Sistem ... 34
3.2.4. Pembangunan Sistem ... 36
3.2.5. Uji Coba Sistem ... 36
BAB IV ANALISA DAN PERANCANGAN ... 37
4.1. Analisa ... 37
4.1.1. Analisa Proses Concoction Generator ... 37
4.1.2. Analisa Persyaratan ... 43
4.2. Perancangan ... 44
4.2.1. Perancangan Tampilan ... 45
vii
5.1.1. Spesifikasi Perangkat Keras dan Perangkat Lunak ... 54
5.1.2. Hasil ... 55
5.2. Pembahasan ... 60
5.2.1. Algoritma Proses LFSR ... 60
5.2.2. Algoritma Proses FCSR ... 62
5.2.3. Algoritma Proses Concoction Generator ... 63
BAB V1 KESIMPULAN DAN SARAN ... 69
6.1. Kesimpulan ... 69
6.2. Saran ... 69 DAFTAR PUSTAKA
viii
Gambar 2.1. Non-Linear Feedback Shift Register ... 17
Gambar 2.2. Linear Feedback Shift Register (LFSR) ... 18
Gambar 2.3. Feedback with Carry Shift Register ... 21
Gambar 2.4. Sketsa Gambar Concoction Generator ... 25
Gambar 2.5. Gerbang Logika Operasi XOR ... 26
Gambar 2.6. Gerbang Logika Operasi XOR yang Dibentuk dari Penggabungan Gerbang Logika Dasar NOT, AND dan OR ... 26
Gambar 3.1. Metode Perancangan ... 32
Gambar 3.2. Flowchart Sistem ... 35
Gambar 4.1. LFSR 16 bit dengan Keadaan Awal 1001110010101111 dan Posisi Bit yang akan Diproses Adalah 0,1,4,7,12,15 ... 38
Gambar 4.2. FCSR 16 bit dengan Keadaan Awal 1011010101011001 dan Posisi Bit yang akan Diproses Adalah 0,2,4,7,8,12,13,15 ... 39
Gambar 4.3. Concoction Generator dengan n = 3 dan m = 2 ... 41
Gambar 4.4. Rancangan Form ‘Awal’ ... 45
Gambar 4.5. Rancangan Form ‘Nama User’ ... 46
Gambar 4.6. Rancangan Form ‘Drop7’ ... 47
Gambar 4.7. Rancangan Form ‘Pengaturan’ ... 48
Gambar 4.8. Rancangan Form ‘Daftar Nilai Tertinggi’ ... 49
Gambar 4.9. Rancangan Form ‘Bantuan’ ... 50
Gambar 4.10. Rancangan Form ‘Mengenai Pembuat’ ... 51
Gambar 4.11. Relationship Tabel Pada Database ... 53
Gambar 5.1. Tampilan Awal ... 55
Gambar 5.2. Tampilan Pilih User ... 55
Gambar 5.3. Tampilan Tambah User ... 56
Gambar 5.4. Tampilan Pengaturan ... 56
Gambar 5.5. Tampilan Permainan Level Mudah pada Saat Memulai Permainan .. 57 Gambar 5.6. Tampilan Permainan Level Mudah pada Saat Peletakkan Piring
ix
x
Tabel 2.1. Tabel Kebenaran Operasi XOR ... 26
Tabel 3.1. Daftar Waktu dan Kegiatan Penelitian ... 30
Tabel 4.1. Tabel HighScore ... 52
xi Lampiran 1. Listing Program CD
Lampiran 2. Surat Keputusan Dosen Pembimbing Skripsi Lampiran 3. Daftar Riwayat Hidup Mahasiswa
Lampiran 4. Lampiran Proses Perhitungan Lampiran 5. Listing Program
1
PENDAHULUAN
1.1.Latar Belakang Masalah
Game Drop7 adalah salah satu jenis permainan yang dimainkan pada kotak berukuran 7 x 7. Pada setiap putaran, pemain meletakkan sebuah piring yang akan jatuh dari atas ke bawah grid. Setiap piring memiliki sebuah angka antara 1 sampai 7 ataupun kosong. Ketika angka dari sembarang piring cocok dengan angka pada piring secara baris ataupun kolom, maka semua piring tersebut akan hilang dan juga akan memukul sembarang piring kosong yang disentuhnya. Apabila sebuah piring kosong dipukul dua kali, maka piring tersebut akan berubah menjadi piring berisi angka. Setelah sejumlah putaran tertentu, maka baris bawah dari kotak akan terisi dengan semua piring kosong. Permainan akan berakhir jika tidak ada tempat lagi untuk piring berangka ataupun piring kosong. Sasaran dari permainan adalah mengumpulkan angka sebanyak mungkin.
Bilangan acak sering diterapkan dalam berbagai permainan. Salah satu pembangkit acak semu atau Pseudo Random Number Generator (PRNG) adalah
Linier Congruential Generator (LCG). Metode LCG dapat digunakan untuk membangkitkan bilangan acak akan tetapi bilangan acak yang dihasilkan kurang teracak dan bilangan acak yang dihasilkan mudah diprediksi. Oleh karena itu, dapat diterapkan metode lain yang dapat menghasilkan bilangan acak yaitu
Proses pembangkitan bilangan acak selain menggunakan LFSR, juga dapat digunakan FCSR. FCSR hampir sama dengan LFSR, yaitu sama-sama memiliki sebuah register geser dan sebuah fungsi feedback. Perbedaannya adalah FCSR memiliki sebuah carry register. Salah satu generator yang menggabungkan penerapan LFSR dan FCSR sekaligus adalah LFSR/FCSR Summation/Parity Cascade yang disebut juga Concoction Generator.
Berdasarkan uraian di atas, penulis bermaksud untuk merancang suatu perangkat lunak yang mampu untuk menerapkan concoction generator pada permainan dengan mengambil skripsi yang berjudul “Aplikasi Concoction
Generator pada Game Drop7”.
1.2. Identifikasi Masalah
Berdasarkan latar belakang pemilihan judul, maka yang menjadi permasalahan adalah bahwa aplikasi permainan yang telah ada belum menerapkan generator untuk membangkitkan bilangan acak yang akan digunakan dalam permainan dan juga belum tersedia aplikasi permainan yang bersifat gratis yang dapat digunakan untuk bermain Drop7.
Berdasarkan permasalahan di atas, maka rumusan masalah dari penelitian ini adalah:
1. Bagaimana merancang interface untuk bermain Drop7.
2. Bagaimana menerapkan concoction generator untuk menghasilkan angka acak yang akan digunakan dalam permainan Drop7.
3. Bagaimana membuat suatu perangkat lunak permainan Drop7 dengan menggunakan bahasa pemrograman MicrosoftVisual Basic.NET 2010.
1.3. Batasan Masalah
Karena keterbatasan waktu dan pengetahuan penulis, maka ruang lingkup permasalahan dalam merancang perangkat lunak ini antara lain :
1. Permainan menyediakan dua tingkat kesulitan, yaitu mudah dan susah.
2. Perangkat lunak akan dibuat dengan menggunakan bahasa pemrograman
Microsoft Visual Basic.NET 2010.
3. Perangkat lunak akan menyediakan daftar 10 nilai tertinggi.
4. Database yang digunakan untuk menyimpan data adalah Microsoft Access 2007.
5. Permainan tidak dapat dimainkan pada jaringan komputer ataupun internet. 6. Permainan belum menyediakan fasilitas Chatting.
1.4. Tujuan dan Manfaat Penelitian
Tujuan penyusunan skripsi ini adalah untuk merancang suatu perangkat lunak game Drop7 yang menerapkan concoction generator untuk menghasilkan angka acak yang akan digunakan.
Manfaat dari penyusunan skripsi “Aplikasi Concoction Generator pada Game Drop7” yaitu :
1. Bagi pembaca
Sebagai sarana hiburan yang cukup menarik. 2. Bagi penulis
Meningkatkan kemampuan penulis dalam membuat aplikasi permainan dengan menggunakan bahasa pemrograman Microsoft Visual Basic.NET 2010.
3. Bagi STMIK-TIME
Laporan skripsi dapat dijadikan sebagai bahan referensi bagi mahasiswa lainnya yang ingin mengangkat topik mengenai permainan.
1.5. Sistematika Penulisan
Agar pembahasan lebih sistematika, maka tulisan ini dibuat dalam enam bab yaitu :
BAB I PENDAHULUAN
Berisi tentang latar belakang masalah, identifikasi masalah, batasan masalah, tujuan dan manfaat penulisan, dan sistematika penulisan. BAB II LANDASAN TEORI
Berisi tentang Randomness (Pengacakan), bilangan acak, Non-Linear Feedback Shift Register (NLFSR), Linear Feedback Shift Register (LFSR), Feedback with Carry Shift Register (FCSR),
Concoction Generator, dan landasan matematis kriptografi. BAB III METODE PENELITIAN
Berisi tentang tempat dan jadwal penelitian, kerangka kerja, metode pengumpulan data, analisa sistem, perancangan sistem, pembangunan sistem dan uji coba sistem.
BAB IV ANALISA DAN PERANCANGAN
Berisi tentang pembahasan mengenai analisa sistem dan perancangan sistem.
BAB V HASIL DAN PEMBAHASAN
BAB VI KESIMPULAN DAN SARAN Berisi tentang kesimpulan dan saran.
6 2.1. Randomness (Pengacakan)
Menurut (http://www.en.wikipedia.org/wiki/Randomness) Kata ‘random’ digunakan untuk menyatakan sejumlah ukuran penglihatan yang serba kurang tujuan dan sebab. Sebagai contoh, lokasi tempat jatuhnya setetes air dari suatu air terjun akan bersifat acak pada kejadian umum dan sangatlah tidak mungkin untuk memeriksa gaya apa yang menyebabkan tetesan air tersebut akan jatuh di mana.
Keadaan acak merupakan suatu keadaan dimana segala sesuatu yang terjadi tidak teratur, sehingga yang terjadi hampir tidak dapat diprediksi sebelumnya. Kemungkinan hasil prediksi benar sangat kecil dan hanya berupa faktor keberuntungan saja, karena tidak dapat dihitung dengan rumus ataupun fungsi matematika yang sistematis.
2.1.1. Randomness dalam Filosofi
Manusia selalu mencari pola dalam pengalaman mereka, dan kebanyakan pola dasar kelihatannya merupakan sebab akibat. Ini muncul dan secara mendalam ditanamkan dalam otak manusia, dan mungkin juga hewan yang lain. Sebagai contoh, dari suatu laporan bahwa seekor anjing setelah suatu kunjungan pada seorang dokter hewan yang kliniknya mempunyai lantai keramik dengan jenis tertentu, anjing tersebut menolak pergi ke tempat yang mempunyai lantai keramik, meskipun tempat tersebut bukan klinik dokter hewan.
2.1.2. Randomness dalam Ilmu Alam
Secara mendasar, randomness mempunyai suatu arti operasional dalam ilmu alam yaitu sesuatu yang disebut random tidak dapat diketahui penyebabnya dan diperiksa atau dikontrol. Ketika suatu eksperimen dilakukan dan semua variabel kontrol ditetapkan, variasi sisa akan mengalami hal yang tidak dapat dikontrol. Sekalipun jika kemungkinan ini dapat dikontrol secara sempurna, hasil pengujian juga akan menunjukkan hal yang sama. Oleh karena itu, pada kebanyakan sejarah dari ilmu alam, randomness telah diinterpretasi dalam satu cara atau diabaikan pada bagian yang diamati.
2.1.3. Randomness dalam Matematika
Teori probabilitas matematika yang muncul dengan maksud menjelaskan formula matematika dari perubahan peluang, aslinya dipakai dalam konteks perjudian tetapi juga berhubungan dengan situasi dalam area fisika. Statistik dipakai untuk menduga distribusi probabilitas dari suatu kumpulan dari observasi empiris. Nilai random juga memegang peranan penting dalam simulasi karena pada dasarnya keadaan yang disimulasikan memang bersifat tidak pasti.
2.1.4. Randomness dalam Kriptografi
Keberhasilan komunikasi dalam dunia nyata tergantung pada batasan dan pemahaman serta keberhasilan memperkecil efek deleterious dari sumber-sumber gangguan yang beraneka ragam, kebanyakan dari ini merupakan apparent random.
Akses pada suatu sumber randomness dengan kualitas tinggi secara absolut bersifat kritikal dalam banyak aplikasi kriptografi. Sebagai contoh, suatu pilihan non-random mungkin menghasilkan suatu penyusupan dalam kanal komunikasi yang dipercayai telah diamankan. Misalnya pada mesin Enigma dan artikel mengenai one-time pad merupakan konsekuensi dari perhitungan yang gagal. Kunci yang digunakan pada Enigma tidak secara acak dalam banyak kasus di mana memungkinkan kriptanalis sekutu untuk memecahkan lalu lintas komunikasi tersebut.
Terdapat suatu teknik untuk mengkombinasikan data bias random untuk menghasilkan kualitas randomness yang baik. Randomness diturunkan oleh beberapa komponen input output (seperti contoh disk drive) mempunyai cukup
entropy untuk diekstraksi untuk tujuan kriptografi. Suatu perhatian lebih untuk memastikan praktek terbaik yang diikuti oleh sistem aktual dan suatu generasi nilai acak untuk dipecahkan oleh penyerang.
2.1.5. Randomness dalam Permainan
Randomness merupakan pusat dari games of chance dan penting dalam industri perjudian. Penggambaran random sering digunakan untuk membuat keputusan dimana tidak ada rasional atau basis yang adil untuk membuat suatu pilihan deterministik.
2.2. Bilangan Acak
“Bilangan acak murni atau true random number adalah bilangan dimana secara keseluruhan acak dan tidak dapat diprediksi” (Schneier, 2011: 369). Untuk
menghasilkan true random number merupakan hal yang sulit. Kebanyakan bilangan acak yang digunakan merupakan hasil yang dibangkitkan dari sebuah pembangkit bilangan acak yang mempunyai sejumlah bagian yang dapat diprediksi dan berhubungan. Pembangkit bilangan acak ini sering disebut dengan pembangkit bilangan acak semu (pseudo random number generator / PRNG).
2.2.1. Pembangkit Bilangan Acak
Menurut Schneier (2011: 369), suatu pembangkit bilangan acak (random number generator) dapat didefinisikan sebagai berikut:
Suatu pembangkit bilangan acak (random number generator / RNG) adalah suatu peralatan komputasional yang dirancang untuk menghasilkan suatu urutan nilai dimana polanya tidak mudah ditebak, jadi urutan tersebut dapat dianggap sebagai suatu keadaan acak.
2.2.2. Pembangkit Bilangan Acak Semu
“Suatu pembangkit bilangan acak semu menghasilkan suatu urutan nilai dimana elemen-elemennya bergantung pada setiap nilai yang dihasilkan” (Schneier, 2011: 369).
Banyak PRNG mengulang string yang sama setelah melakukan n iterasi. Yang lain menghasilkan nilai acak dengan kecenderungan berfokus pada suatu area tertentu selain mendistribusikannya secara seragam. Juga, ketika menggunakan nilai acak, harus ditentukan suatu nilai include atau exclude dari
upper dan lower bounds.
Output dari pembangkit bilangan acak semu (pseudo random number generator / PRNG) tidak betul-betul acak, tetapi hanya mirip dengan sifat-sifat dari bilangan acak. PRNG ini mengulang string yang sama setelah melakukan n
putaran proses. Kebanyakan algoritma dari PRNG ditujukan untuk menghasilkan suatu sampel yang terdistribusi secara seragam.
2.2.3. Algoritma Pembangkit Bilangan Acak Semu
Perlu diingat, semua deretan bilangan acak yang dibangkitkan dari rumus matematika, serumit apapun, dianggap sebagai deret acak semu, karena dapat diulang pembangkitannya. Sementara itu, banyak produk software yang dinyatakan aman karena menggunakan pseudo random number. Namun karena bilangan acak yang dibangkitkan bersifat semu, maka keamanan yang diperoleh juga tidak terjamin.
Beberapa algoritma yang dapat digunakan untuk membangkitkan deretan bilangan acak semu adalah sebagai berikut :
1. Linear Congruential Generator (LCG).
“LCG mewakili salah satu algoritma pseudo random number yang tertua dan paling popular” (Kamau, et. al., 2012: 4). Teori dari algoritma ini mudah dipahami dan dapat diimplementasikan secara cepat. Keuntungan dari LCG adalah operasinya yang sangat cepat. LCG dapat didefinisikan dengan rumusan berikut :
Xn = (aXn-1 + b) mod m
Periode dari LCG umumnya adalah sebesar nilai m.
Masalah pada LCG adalah lower-order bit yang digenerasi mempunyai periode yang lebih pendek dari deretan secara keseluruhan jika m di-set menjadi pangkat 2. Tanpa desain yang benar, dengan m yang sangat besar, bisa jadi periode bilangan acak yang dihasilkan tidak akan maksimal, bahkan mungkin
jauh lebih pendek daripada periode maksimalnya. Menurut para ahli kriptografi, LCG tidak dapat digunakan pada kriptografi karena urutan keluarannya dapat diprediksi. Bahkan mereka juga dapat membongkar urutan bilangan acak yang dibangkitkan oleh pembangkit kuadratik. Walaupun LCG tidak bermanfaat untuk kriptografi, namun LCG bermanfaat untuk keperluan lainnya seperti simulasi.
2. Lagged Fibonacci Generator (LFG).
LFG merupakan suatu contoh pseudo random number generator. LFG sering disebut juga sebagai Additive Generators. Jenis ini ditujukan pada peningkatan “standar” dari LCG. Algoritma ini berdasarkan pada generasi urutan atau deret Fibonacci.
Deret Fibonacci dapat didefinisikan sebagai berikut : Fn = Fn-1 + Fn-2
Jadi suatu rumusan baru adalah penjumlahan dari dua term dalam deret. Ini dapat digenerasi dengan rumusan ini :
Sn = Sn-j * Sn-k mod m ; di mana 0 < j < k.
LFG mempunyai periode maksimum (2k – 1) * 2m-1 jika operasi penambahan atau XOR digunakan untuk mengkombinasikan nilai sebelumnya. Jika operasi perkalian yang digunakan, maka maksimum periode adalah (2k – 1) * 2m-3. Untuk memperoleh nilai periode maksimum dapat digunakan persamaan polinomial berikut :
y = xk + xj + 1
Inisialisasi dari LFG merupakan masalah yang sangat kompleks, setiap periode maksimum dari LFG mempunyai kemungkinan siklus yang sangat besar,
semuanya berbeda. Memilih suatu siklus adalah mungkin, tetapi metode untuk melakukan ini mungkin membahayakan output subsekuen randomness. Selain itu, output dari LFG sangat sensitif pada kondisi awal, dan efek statistikal mungkin muncul secara inisial ataupun secara periodikal dalam urutan ouput
kecuali jika tindakan ekstra hati-hati diambil.
Beberapa jenis generator yang menggunakan konsep LFG (Lagged Fibonacci Generator) adalah :
a. Fish.
Fish adalah sebuah additive generator yang berdasarkan pada teknik-teknik yang digunakan pada shrinking generator. Fish menghasilkan sebuah stream dengan panjang 32 bit di mana dapat di-XOR dengan sebuah plaintext stream untk menghasilkan ciphertext. Fish sebenarnya merupakan singkatan dari Fibonacci shrinking generator.
Pertama-tama, gunakan dua additive generator di bawah ini. Kunci merupakan nilai awal (initial value) dari generator ini.
Ai = (Ai-55 + Ai-24) mod 232 Bi = (Bi-52 + Ai-19) mod 232
Langkah-langkah ini akan disusutkan menjadi sepasang, tergantung pada
least significant bit dari B. Jika berupa bit ‘1’ maka gabungkan keduanya, jika berupa bit ‘0’ maka abaikan B. Cj adalah sekuens dari word yang dipakai dari Aj dan Dj adalah sekuens dari word yang dipakai dari Bi. Word ini digunakan dalam pasangan C2j, C2j+1, D2j dan D2j+1 untuk menghasilkan 32 bitoutput word yaitu K2j dan K2j+1.
F2j = D2j+1∧ (E2j∧ C2j+1) K2j = E2j⊕ F2j
K2j+1 = C2j+1⊕ F2j
Algoritma ini cepat namun tidak aman. b. Pike.
Pike adalah sebuah versi yang lebih hebat dari Fish, yang diperkenalkan oleh Ross Anderson, orang yang memecahkan Fish. Algoritma ini menggunakan tiga additive generator. Sebagai contoh :
Ai = (Ai-55 + Ai-24) mod 232 Bi = (Bi-57 + Ai-7) mod 232 Ci = (Ci-58 + Ci-19) mod 232
Untuk menghasilkan keystream word, lihat pada carry bit
penjumlahannya. Jika semua ketiganya ‘setuju’ (semua bernilai ‘0’ atau bernilai ‘1’), maka clock semua ketiga generator. Jika tidak, maka hanya clock dua generator yang ‘setuju’. Simpan carry bit untuk langkah selanjutnya. Output terakhir adalah hasil XOR dari ketiga generator. Pike lebih cepat daripada Fish, namun terlalu baru untuk dipercaya, tetapi sejauh ini kelihatan bagus.
c. Mush.
Mush merupakan singkatan dari mutual shrinking generator. Algoritmanya mudah untuk dijelaskan. Ambil dua buah additive generator A dan B. Jika carry bit dari A di-set, maka clock B. Jika carry bit dari B di-set, maka clock A. Clock A dan set carry bit jika ada carry. Clock B dan
set carry bit jika ada carry. Output terakhir adalah hasil XOR dari output A dan B.
Generator termudah untuk digunakan adalah dengan menggunakan generator dari Fish :
Ai = (Ai-55 + Ai-24) mod 232 Bi = (Bi-52 + Ai-19) mod 232
3. Fortuna merupakan salah satu jenis crytographically secure pseudo random number generator yang didesain oleh Niels Ferguson dan Bruce Schenier. Bentuk persamaan algoritma ini adalah :
Xn = Xn-13 mod c
4. Blum-Blum Shub (BBS) merupakan suatu pseudo random number generator
yang diajukan pada tahun 1986 oleh Lenore Blum, Manuel Blum dan Michael Shub. BBS mempunyai bentuk :
Xn+1 = Xn2 mod m
5. ISAAC merupakan pseudo random number generator yang didesain oleh Bob Jenkins pada tahun 1996 untuk tujuan keamanan kriptografi. Nama ISAAC merupakan singkatan dari Indirection, Shift, Accumulate, Add and Count. Algoritma ini diinspirasi oleh RC4. ISAAC menggunakan sebuah array dari 256 yang berisi nilai 4 byte integer sebagai internal state, menulis hasilnya ke 256 integer array yang lain, di mana array tersebut hanya dibaca sekali pada suatu waktu hingga menjadi kosong, pada point di mana mereka dikomputasi ulang lagi.
6. Mersenne Twister merupakan suatu pseudo random number generator yang dikembangkan pada tahun 1997 oleh Makoto Matsumoto dan Takuji
Nishimura. Algoritma ini menawarkan generasi yang cepat dari bilangan acak kualitas tinggi, telah dirancang secara khusus untuk mengatasi setiap cacat yang ditemukan pada algoritma terdahulu.
Terdapat dua varian dari algoritma, yang paling baru dan lebih umum dipakai adalah Mersenne Twister MT 19937. Algoritma ini mempunyai properti sebagai berikut :
a. Dirancang untuk mempunyai suatu periode kolosal 129937–1. Periode ini menjelaskan sesuai dengan namanya, suatu Mersenne prime, dan beberapa jaminan atas algoritma bergantung pada penggunaan internal dari
Mersenne prime.
b. Mersenne Twister mempunyai suatu equidistribution dimensional high order. Ini berarti secara default, terdapat korelasi serial yang dapat diabaikan antara nilai suksesif dalam deret output.
c. Algroritma lebih cepat daripada algoritma yang ada tetapi menggunakan generator yang lebih statistikal. Algoritma ini bersifat statistikal secara acak dalam semua bit outputnya. Algoritma ini sendiri merupakan suatu
twisted generalised shift feedback register atau TGSFR. Kata ‘twist’ merupakan suatu transformasi di mana menjamin equidistribution dari nilai yang digenerasi dalam 623 dimensi.
Tidak seperti Blum-Blum Shub, algoritma ini mempunyai bentuk bersifat
native dan tidak cocok untuk kriptografi. Pada banyak aplikasi, bagaimana pun juga algoritma ini cepat dan telah menjadi algoritma pseudo random generator pilihan.
7. Feedback Shift Register, terdiri dari beberapa jenis, yaitu Linear Feedback Shift Register (LFSR), Non Linear Feedback Shift Register (NLFSR) dan
Feedback with Carry Shift Register (FCSR). Setiap algoritma ini akan dibahas secara terperinci pada pembahasan berikutnya.
2.3. Non-Linear Feedback Shift Register (NLFSR)
Mudah untuk membayangkan suatu rangkaian umpan balik (feedback) yang lebih rumit daripada yang digunakan LFSR atau FCSR. Masalahnya adalah tidak terdapat suatu teori matematika untuk menganalisanya. Secara khusus, beberapa masalah dengan rangkaian umpan balik shift register nonlinear adalah : a. Mungkin terdapat prasangka (bias), seperti terdapat lebih banyak 1 daripada 0
atau lebih sedikit langkah daripada yang diharapkan pada keluaran.
b. Periode maksimum dari rangkaian mungkin jauh lebih rendah daripada yang diharapkan.
c. Periode rangkaian dapat berbeda untuk nilai awal yang berbeda.
d. Rangkaian dapat muncul secara acak untuk sesaat, tetapi kemudian terjadi “dead end” pada suatu nilai tunggal. Ini dapat diselesaikan dengan meng-XOR-kan fungsi nonlinear dengan bit paling kanan.
Karena tidak ada teori untuk menganalisis sisi keamanan umpan balik
nonlinear shift register, maka terdapat sedikit perangkat (tool) kriptanalis stream cipher yang didasarkan padanya. Oleh karena itu, dapat digunakan umpan balik
nonlinear shift register pada rancangan stream cipher, tetapi harus berhati-hati dalam menggunakannya.
Dalam sebuah umpan balik nonlinear shift register, fungsi umpan balik dapat berupa apa saja yang diinginkan seperti terlihat pada contoh sederhana dalam Gambar 2.1 berikut ini.
Gambar 2.1 Non-Linear Feedback Shift Register Sumber: Munir, 2010
Keterangan gambar 2.1 :
a. Nilai feedback dari NLFSR diatas dapat dihasilkan dari perhitungan berikut ini:
= (S5⊕ S6) ∨ (S2 . S3) b. Hasil output : S0
2.4. Linear Feedback Shift Register (LFSR)
“Suatu Linear Feedback Shift Register (LFSR) adalah suatu mekanisme untuk menghasilkan bit” (Kurniawan, 2011: 71). Register memiliki sebarisan sel yang ditentukan oleh vektor inisialisasi yang biasanya menjadi kunci rahasia. Tingkah laku register diatur oleh sebuah counter (clock). Pada setiap saat isi sel dari register digeser (shift) ke kanan sejauh satu posisi, dan hasil operasi XOR terhadap subset dari isi sel ditempatkan pada sel paling kiri. Satu bit dari output
Adapun contoh sederhana dari LFSR dapat dilihat pada gambar 2.2 berikut ini :
Gambar 2.2 Linear Feedback Shift Register (LFSR) Sumber: Munir, 2010
Keterangan gambar 2.2 :
a. Nilai feedback dari LFSR : S1⊕ S3 b. Hasil output : S0
LFSR cepat dan mudah untuk diimplementasikan baik secara hardware
maupun secara software. Akan tetapi, ukuran bilangan yang dihasilkan oleh LFSR tunggal tidak cukup aman karena memungkinkan analisis yang mudah terhadap hasil tersebut. Namun demikian, LFSR sangat berguna sebagai blok bangunan dalam sistem yang lebih aman.
Suatu shift register cascade merupakan sebuah set dari LFSR-LFSR yang dihubungkan bersama-sama dengan cara tertentu sedemikian hingga keadaan dari LFSR sebelumnya dalam bentuk aliran. Sifat dan tingkah laku yang saling tergantung ini biasanya ditempuh dengan menggunakan satu LFSR untuk mengontrol LFSR berikutnya.
2.4.1. Implementasi LFSR
LFSR dapat digunakan sebagai pengaman pada komunikasi CDMA dan GSM. Mayoritas sistem enkripsi militer menggunakan sistem LFSR dengan
desain yang dirahasiakan, karena mudah diimplementasikan pada perangkat keras namun sangat tidak efisien untuk diimplementasikan pada perangkat lunak. Bayangkan untuk mengenkrip 8 karakter (64 bit) diperlukan waktu 64 langkah untuk menghasilkan 64 bit kunci sebelum enkripsi XOR dapat dilakukan. Tentu ini perbandingan relatif antara implementasi pada perangkat keras dan perangkat lunak. Sebab, dengan kecepatan prosesor yang ada sekarang ini, LFSR tentu akan sangat cepat dijalankan.
Di antara implementasi LFSR, yang menarik untuk dipelajari adalah Algoritma A5. A5 merupakan stream cipher yang digunakan untuk mengamankan percakapan telepon selular GSM. A5 merupakan cipher buatan Perancis, demikian pula GSM merupakan telepon selular standar Eropa.
A5 merupakan stream cipher yang terdiri dari 3 buah LFSR yang dikontrol oleh klok dengan derajat 19, 22 dan 23. Atau dengan kata lain, memiliki LFSR 19 bit, 22 bit dan 23 bit. Masing-masing LFSR memiliki periode berturut-turut 219 – 1, 222 – 1 dan 223 – 1.
Stream cipher A5 memiliki beberapa sifat yang dapat dirincikan sebagai berikut:
1. Pengontrol klok merupakan fungsi dari bit tengah dari setiap register geser. 2. Jumlah derajat dari ketiga register geser adalah 64 (19 + 22 + 23). Kunci sesi
64 bit digunakan untuk melakukan inisialisasi isi register geser.
3. Dua aliran bit (114 bit) dihasilkan untuk setiap frame yang di-XORkan dengan kanal trafik uplink (dari HP ke sentral) dan downlink (dari sentral ke HP). 4. Dirumorkan bahwa algoritma A5 hanya mempunyai panjang kunci efektif 40
2.4.2. Serangan Terhadap LFSR
Analisis stream cipher lebih mudah daripada analisis block cipher. Sebagai contoh, parameter untuk melakukan analisis generator berbasis LFSR adalah linear complexity (kompleksitas linier). Parameter ini didefinisikan sebagai panjang n yang merupakan panjang register LFSR terpendek, yang dapat menirukan keluaran generator aslinya. Semua deretan selalu dibangkitkan oleh mesin keadaan terbatas dengan kompleksitas linier yang terbatas pula. Kompleksitas linier ini digunakan untuk membangkitkan LFSR tiruan setelah memeriksa 2n bit keluaran LFSR aslinya. Bila dapat membangkitkan LFSR ini, maka berarti telah dapat memecahkan sandi rahasia stream cipher.
Tentu saja sebelum dapat menerka isi generatornya, terlebih dahulu harus mendapatkan urutan keluaran generator tersebut. Dan untuk mengetahui urutan keluaran generator tersebut dapat digunakan analisis kode rahasia yang telah diuraikan sebelumnya.
Untuk meningkatkan keamanan LFSR dilakukan peningkatan kompleksitas linier, yang dapat dilakukan dengan beberapa variasi. Diantaranya dengan menggunakan beberapa LFSR dan mengkombinasikan keluarannya, atau memberi klok tidak pada saat yang bersamaan di antara LFSR tersebut. Sejumlah besar LFSR yang sangat kompleks telah dapat dipecahkan susunan register dan umpan baliknya, sehingga tidak aman untuk kriptografi. Tentu saja institusi militer semacam NSA (National Security Agency) dapat memecahkan lebih banyak lagi.
2.5. Feedback with Carry Shift Register (FCSR)
FCSR hampir sama dengan LFSR, yaitu sama-sama memiliki sebuah register geser dan sebuah fungsi feedback. Perbedaannya adalah FCSR memiliki sebuah carry register. FCSR menjumlahkan beberapa bit bersama-sama dan hasilnya disimpan dalam carry register. Bit baru dihasilkan dari hasil modulo 2 dari bit dalam carry register. Hasil penjumlahan dalam carry register dibagi 2 merupakan nilai bit baru dari carry register.
Agar lebih jelas, simaklah contoh sederhana dari FCSR pada gambar 2.3 berikut ini :
Gambar 2.3 Feedback with Carry Shift Register Sumber: Schneier, 2011
Keterangan gambar 2.3:
1. Sum = (b0 + b1) + nilai carry register. 2. Nilai feedback dari FCSR : Sum mod 2. 3. Nilai carry register : Sum div 2.
Beberapa hal yang perlu diperhatikan dalam FCSR(Feedback with Carry Shift Register), antara lain :
2. Ukuran dari carry register minimal harus sebesar log2t, di mana t adalah banyak bit yang dilakukan operasi penjumlahan.
3. Dalam FCSR, terdapat sebuah transisi awal sebelum FCSR tersebut memasuki sebuah periode perulangan.
4. Periode maksimum dari FCSR adalah q – 1, dimana q adalah connection integer. Nilai ini dapat didefinisikan sebagai berikut :
q = 2q1 + 22q2 + 24q4 + … + 2nqn – 1
Namun, tidak semua keadaan awal dapat menghasilkan periode maksimum. Sebuah keadaan awal akan menghasilkan satu dari empat hal berikut ini :
1. Keadaan tersebut merupakan bagian dari periode maksimum.
2. Setelah sebuah transisi awal, akan menghasilkan periode maksimum. 3. Setelah sebuah transisi awal, akan menghasilkan sebuah sekuens dari 0. 4. Setelah sebuah transisi awal, akan menghasilkan sebuah sekuens dari 1.
Sampai saat ini, belum banyak ditemukan FCSR stream cipher dalam literatur, teori ini masih terlalu baru. Namun, karena ketertarikannya dan untuk menjaga agar perkembangan terus berlanjut, Bruce Schneier mengemukakan beberapa generator di dalam bukunya yang berjudul “Applied Cryptography”.
Bruce Schneier membagi FCSR stream cipher ke dalam 2 bagian besar, yaitu :
1. FCSR stream cipher yang menggunakan struktur generator yang sama dengan generator LFSR. Teori mengenai generator LFSR ini telah dibahas dalam sub bagian LFSR sebelumnya.
2. Stream cipher yang menggunakan FCSR dan LFSR. Generator ini memiliki beberapa jenis kombinasi, antara lain :
a. LFSR/FCSR Parity Generator. Registernya merupakan sebuah campuran dari LFSR dan FCSR dan fungsi kombinasinya adalah XOR.
b. LFSR/FCSR Threshold Generator. Registernya merupakan sebuah campuran dari LFSR dan FCSR dan fungsi kombinasinya adalah fungsi mayoritas.
c. LFSR/FCSR Summation Generator. Registernya merupakan sebuah campuran dari LFSR dan FCSR dan fungsi kombinasinya adalah penjumlahan dengan carry.
d. FCSR/LFSR Stop-and-Go Generator. Register-1 adalah sebuah FCSR, dan
Register-2 dan -3 adalah LFSR. Operasi kombinasinya adalah penjumlahan dengan carry.
e. LFSR/FCSR Stop-and-Go Generator. Register-1 adalah sebuah LFSR, dan
Register-2 dan -3 adalah FCSR. Operasi kombinasinya adalah penjumlahan dengan carry.
f. FCSR/LFSR Shrinking Generator. Sebuah shrinking generator dengan sebuah LFSR menyusutkan (shrinking) sebuah FCSR.
g. LFSR/FCSR Shrinking Generator. Sebuah shrinking generator dengan sebuah FCSR menyusutkan (shrinking) sebuah LFSR.
h. LFSR/FCSR Summation/Parity Cascade atau disebut juga Concoction Generator. Generator ini merupakan hasil kombinasi antara LFSR/FCSR Summation Generator dan LFSR/FCSR Parity Generator dengan
menggunakan Gollmann Cascade. Teori mengenai generator ini akan dibahas pada pembahasan berikutnya.
2.6. Concoction Generator
Teori yang menyatakan bahwa penambahan dengan carry
menghancurkan properti aljabar dari LFSR dan XOR menghancurkan properti aljabar dari FCSR diterapkan oleh generator ini. Generator ini menggabungkan
LFSR/FCSR Summation Generator dan LFSR/FCSR Parity Generator dengan menggunakan Gollmann Cascade. Generator ini merupakan sebuah gabungan dari
array register, dengan clock dari setiap array dikontrol oleh output dari array
sebelumnya. Array pertama dari LFSR di-clock dan hasilnya dikombinasikan dengan menggunakan penambahan dengan carry. Jika output dari hasil fungsi kombinasi ini adalah 1, maka array selanjutnya dari FCSR di-clock dan output dari FCSR tersebut dikombinasikan dengan output dari hasil fungsi kombinasi sebelumnya dengan menggunakan XOR.
Jika output dari fungsi kombinasi pertama adalah 0, maka array
dari FCSR tidak di-clock dan outputnya adalah hasil penambahan dari proses sebelumnya. Demikian proses tersebut akan berlanjut hingga selesai. Generator ini menggunakan sejumlah register yaitu sebanyak n * m, dimana n adalah jumlah
stage dan m adalah jumlah register per stage. Bruce Schneier merekomendasikan n = 10 dan m = 5.
Sketsa satu stage dari generator ini dapat dilihat pada gambar 2.4 berikut ini:
Gambar 2.4 Sketsa Gambar Concoction Generator Sumber: Schneier, 2011
2.7. Landasan Matematis Kriptografi
Landasan matematis kriptografi yang digunakan adalah Operasi XOR, Penjumlahan dengan carry, Pergeseran bit (shift), dan Rotasi bit (Rotate).
2.7.1. Operasi XOR
XOR adalah operasi Exclusive-OR yang dilambangkan dengan tanda “⊕”. Operasi XOR akan menghasilkan nilai bit ‘0’ (nol) jika meng-XOR-kan dua buah
bit yang sama nilainya dan akan menghasilkan nilai bit ‘1’ (satu) jika meng-XOR-kan dua buah bit yang masing – masing nilai bitnya berbeda. Tabel kebenaran dari operasi XOR dapat dilihat pada Tabel 2.1 berikut ini :
Tabel 2.1 Tabel Kebenaran Operasi XOR A B A ⊕⊕⊕⊕ B 0 0 0 0 1 1 1 0 1 1 1 0
Gambar gerbang logika dari operasi XOR adalah seperti gambar 2.5 berikut :
Gambar 2.5 Gerbang Logika Operasi XOR Sumber: Munir, 2011
Operasi XOR merupakan penggabungan dari NOT, AND dan OR dengan menggunakan rumusan berikut:
A ⊕ B = AB + AB
Sehingga gambar gerbang logika dari operasi XOR dapat digambarkan dalam gerbang logika dasar NOT, AND dan OR seperti gambar 2.6 berikut :
Gambar 2.6 Gerbang Logika Operasi XOR yang Dibentuk dari Penggabungan Gerbang Logika Dasar NOT, AND dan OR Sumber: Munir, 2011 B A B Y Y A
Berikut diberikan sebuah contoh sederhana dari operasi XOR, dengan jumlah input sebanyak 16 bit:
1101 0110 0001 0100 1000 0001 1110 0000 ⊕
0101 0111 1111 0100
2.7.2. Penjumlahan dengan Carry
Dalam operasi penjumlahan dengan carry (Addition with Carry) terdapat sebuah carry tambahan sehingga operand yang terdapat dalam operasi penjumlahan dengan carry ada 3 buah yaitu 2 buah bilangan yang akan dijumlahkan ditambah dengan carry.
Pada keadaan awal, carry bernilai 0. Carry merupakan tempat penyimpanan sementara nilai bit yang berlebihan pada operasi penjumlahan antara 2 buah bilangan. Cara kerja dari operasi penjumlahan dengan carry dapat dilihat pada contoh berikut ini :
10100101 + 10010101 + 01100011 10100101 10010101 + 100111010 Carry = 1 00111010 01100011 1 + Carry 10011110
2.7.3. Pergeseran Bit (Shift)
Pergeseran bit (Shift) adalah operasi pergeseran terhadap suatu barisan bit
sebanyak yang diinginkan. Bit kosong yang telah tergeser akan diberikan nilai bit
“0” (nol). Operasi pergeseran terbagi menjadi dua macam yaitu :
1. Operasi Geser Kiri (Shift Left) yaitu operasi yang menggeser (shift) sejumlah
bit ke kiri (left) dengan nilai bit “0” (nol). Operasi shift left dilambangkan dengan “<<”. Contoh operasi shift left :
11000110 << 1 : 10001100 11000110 << 2 : 00011000
2. Operasi Geser Kanan (Shift Right) yaitu operasi yang menggeser (shift) sejumlah bit ke kanan (right) dengan nilai bit “0” (nol). Operasi shift right
dilambangkan dengan “>>”. Contoh operasi shift right :
11000110 >> 1 : 01100011 11000110 >> 2 : 00110001
2.7.4. Rotasi Bit (Rotate)
“Rotasi bit (Rotate) adalah operasi perputaran terhadap suatu barisan bit
sebanyak yang diinginkan” (Munir, 2010: 187). Bit yang tergeser akan dipindahkan ke sisi barisan bit yang berlawanan dengan arah putaran bit. Operasi rotasi terbagi atas dua macam yaitu :
1. Operasi Rotasi Kiri (Rotate Left) yaitu operasi memutar barisan bit ke kiri sebanyak nilai yang diberikan secara per bit, bit kosong yang telah tergeser di sebelah kanan akan digantikan dengan bit yang telah tergeser di sebelah kirinya. Operasi rotate left dilambangkan dengan “<<<”. Contoh operasi
11000110 <<< 1 : 10001101 11000110 <<< 2 : 00011011
2. Operasi Rotasi Kanan (Rotate Right) yaitu operasi memutar barisan bit ke kanan sebanyak nilai yang diberikan secara per bit, bit kosong yang telah tergeser di sebelah kiri akan digantikan dengan bit yang telah tergeser di sebelah kanannya. Operasi rotate right dilambangkan dengan “>>>”.Contoh operasi rotate right :
11000110 >>> 1 : 01100011 11000110 >>> 2 : 10110001
2.8. Game Drop7
Menurut (http://www.en.wikipedia.org/wiki/Game) Game adalah aktifitas yang melibatkan satu atau lebih pemain. Game dapat pula diartikan sebagai tujuan yang ingin dicapai pemain atau sekumpulan aturan yang menandakan apa yang dilakukan pemain dan yang tidak dapat dilakukan. Game dimainkan terutama untuk hiburan, kesenangan, tetapi dapat juga berfungsi sebagai sarana latihan, pendidikan dan simulasi.
Game Drop7 adalah salah satu jenis permainan yang dimainkan pada kotak berukuran 7 x 7. Pada setiap putaran, pemain meletakkan sebuah piring yang akan jatuh dari atas ke bawah grid. Setiap piring memiliki sebuah angka antara 1 sampai 7 ataupun kosong. Ketika angka dari sembarang piring cocok dengan angka pada piring secara baris ataupun kolom, maka semua piring tersebut akan hilang dan juga akan memukul sembarang piring kosong yang disentuhnya. Apabila sebuah piring kosong dipukul dua kali, maka piring tersebut akan berubah menjadi piring berisi angka. Setelah sejumlah putaran tertentu, maka baris bawah
dari kotak akan terisi dengan semua piring kosong. Permainan akan berakhir jika tidak akan piring kosong yang dapat ditempatkan lagi. Sasaran dari permainan adalah mengumpulkan angka sebanyak mungkin.
31
METODE PENELITIAN
3.1.Tempat dan Jadwal Penelitian
Penelitian ini dimulai dari Nopember 2014 yang akan berlangsung sekitar 6 bulan dan berakhir pada bulan April 2015. Penelitian ini dilakukan di Jl. Merbabu No.32 AA – BB. Penelitian ditujukan untuk mengumpulkan data yang diperlukan dalam proses perancangan dan pembuatan sistem. Berikut ini dijabarkan jadwal penelitian yang dapat dilihat pada Tabel 3.1.
Tabel 3.1 Daftar Waktu dan Kegiatan Penelitian Waktu Kegiatan Nopember 2014 Desember 2014 Januari 2015 Februari 2015 Maret 2015 April 2015 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 Identifikasi Masalah Pengumpulan Data Analisis Sistem Perancangan Sistem Pembangunan Sistem Uji Coba Sistem Penulisan
3.2.Kerangka Kerja
Adapun tahapan dan langkah-langkah pengembangan perangkat lunak ini dapat digambarkan dalam bentuk diagram alir seperti diperlihatkan pada gambar 3.1.
Pengumpulan data
Analisa Sistem
Perancangan Sistem
Pembangunan Sistem
Uji Coba Sistem Identifikasi Masalah
Gambar 3.1 Metode Perancangan
3.2.1. Metode Pengumpulan Data Skripsi
Di tahap pertama, akan dikumpulkan bahan-bahan yang diperlukan dalam penyusunan skripsi. Bahan tersebut dikumpulkan dari buku dan sumber-sumber lainnya di internet.
3.2.2. Analisa Sistem
Tahap berikutnya ialah menganalisis kebutuhan-kebutuhan sistem. Sekali lagi, perangkat dan teknik-teknik tertentu akan membantu penganalisis menentukan kebutuhan. Perangkat yang dimaksud ialah penggunaan diagram alir data untuk menyusun daftar input, proses, dan output fungsi bisnis dalam bentuk grafik terstruktur.
Saat ini, belum tersedia aplikasi permainan Drop7 yang dapat digunakan untuk bermain Drop7, sehingga perlu dirancang sebuah aplikasi permainan. Aplikasi permainan Drop7 yang dirancang ini memiliki fasilitas pemilihan dan pengaturan nama pemakai yang digunakan dalam permainan. Pemakai harus melakukan pemilihan nama pemain terlebih dahulu sebelum dapat bermain Drop7. Hal ini dikarenakan data nama pemain ini akan diperlukan pada saat penyimpanan nilai yang diperoleh pemain. Permainan Drop7 ini dapat dimainkan dengan dua jenis tingkat kesulitan, yaitu Mudah dan Susah. Pada tingkat ‘Mudah’, permainan Drop7 ini dapat dimainkan dengan tanpa adanya batasan waktu. Pada tingkat ‘Susah’, permainan Drop7 ini akan dimainkan dengan adanya batasan waktu untuk setiap peletakan piring baru, dimana pemain akan diberikan waktu 5 detik meletakkan piring baru. Apabila pemain belum meletakkan piring dalam waktu 5 detik, maka piring akan terjatuh setelah otomatis pada posisi terakhir dari
kursor. Selain itu, juga terdapat fasilitas high score yang mampu menampilkan daftar 10 nilai tertinggi yang diperoleh pemain.
3.2.3. Perancangan Sistem
Dalam tahap desain dari siklus hidup pengembangan sistem, penganalisis sistem menggunakan informasi-informasi yang terkumpul sebelumnya untuk mencapai desain sistem informasi yang logic. Penganalisis merancang prosedur
data-entry sedemikian rupa sehingga data yang dimasukkan ke dalam sistem informasi benar-benar akurat. Selain itu, penganalisis menggunakan teknik-teknik bentuk dan perancangan layar tertentu untuk menjamin keefektifan input sistem informasi.
Setelah itu, penganalisis bekerja bersama-sama dengan pemrogram untuk mengembangkan suatu perangkat lunak awal yang diperlukan. Teknik terstruktur yang digunakan untuk merancang dan mendokumentasikan perangkat lunak adalah flowchart diagram.
Flowchart adalah penggambaran secara grafik dari langkah-langkah dan urut-urutan prosedur dari suatu program. Flowchart menolong analis dan
programmer untuk memecahkan masalah ke dalam segmen-segmen yang lebih kecil dan menolong dalam menganalisis alternatif-alternatif lain dalam pengoperasian. Flowchart biasanya mempermudah penyelesaian suatu masalah khususnya masalah yang perlu dipelajari dan dievaluasi lebih lanjut.
Untuk bermain game Drop7 ini, maka pertama kali harus melakukan pengaturan tingkat kesulitan dan pemilihan user yang akan digunakan untuk menyimpan daftar nilai tertinggi yang diperoleh pemain. Setelah itu, pemakai dapat bermain game Drop7 sesuai dengan hasil pengaturan yang dilakukannya.
Rancangan prosedur kerja dari sistem yang akan dirancang dapat digambarkan seperti terlihat pada gambar 3.2 berikut.
3.2.4. Pembangunan Sistem
Perangkat lunak permainan ini dirancang dengan menggunakan bahasa pemrograman Microsoft Visual Basic 2010. Komponen- komponen yang digunakan dalam pembuatan perangkat lunak ini mencakup Form, Label, Text Box, Button, Check Box dan Combo Box.
3.2.5. Uji Coba Sistem
Sebelum sistem dapat digunakan, maka harus dilakukan pengujian terlebih dulu. Untuk dapat menghemat biaya maka perlu untuk menangkap adanya masalah sebelum sistem tersebut ditetapkan. Sebagian pengujian dilakukan oleh pemrogram sendiri, dan lainnya dilakukan oleh penganalisis sistem.
Setiap aplikasi perangkat lunak yang telah dibangun harus dilakukan uji coba terlebih dahulu sebelum digunakan, yaitu dengan melakukan beta testing
untuk mengetahui apakah aplikasi perangkat lunak yang dibangun sudah sesuai dengan yang diharapkan dan bekerja dengan baik atau masih terdapat kesalahan (error). Setiap kesalahan (error) yang terjadi akan diperbaiki kembali. Setelah itu, aplikasi akan diuji dengan metode white box yaitu dengan menggunakan beberapa data contoh yang telah disediakan sebelumnya.
37 4.1. Analisa
Sebelum memulai perancangan sistem, terlebih dahulu dilakukan analisa terhadap sistem yang akan dikembangkan. Pembahasan mengenai analisa sistem mencakup analisa proses dan analisa persyaratan.
4.1.1. Analisa Proses Concoction Generator
Concoction Generator merupakan sebuah generator pembangkit bilangan acak (pseudo random number generator / PRNG) yang menggunakan kombinasi antara LFSR dan FCSR sebagai register-nya. Oleh karena itu, agar dapat lebih memahami proses kerja dari Concoction Generator, maka pertama-tama harus dipahami terlebih dahulu proses kerja dari LFSR dan FCSR.
LFSR dan FCSR merupakan register yang dapat bekerja sendiri tanpa memerlukan input dari luar. LFSR akan memproses keadaan awal (initial state) dengan melakukan operasi logika XOR, sedangkan FCSR akan melakukan operasi penjumlahan (SUM).
Agar dapat membantu pemahaman mengenai proses kerja dari LFSR dan FCSR, diberikan contoh berikut ini :
1. Misalkan diketahui sebuah LFSR 16 bit dengan keadaan awal 1001110010101111 dan posisi bit yang akan diproses adalah 0,1,4,7,12,15. LFSR tersebut dapat digambarkan seperti berikut :
Gambar 4.1 LFSR posisi b
Bit feedback dari LFS berikut :
Bit feedback = S0 ⊕ Proses kerja dari LFSR
a. Clock-1 : Keadaan awal Bit feedback Bit output = 1. Keadaan akhir b. Clock-2 : Keadaan awal Bit feedback Bit output = 1. Keadaan akhir c. Dan seterusnya
FSR 16 bit dengan keadaan awal 10011100101011 osisi bit yang akan diproses adalah 0,1,4,7,12,15
ri LFSR diatas dapat dihitung dengan menggunakan
S1 ⊕ S4 ⊕ S7 ⊕ S12 ⊕ S15 i LFSR diatas adalah sebagai berikut :
awal LFSR = 1001110010101111. = 1 ⊕ 1 ⊕ 0 ⊕ 1 ⊕ 1 ⊕ 1 = 1. ut = 1. akhir LFSR = 1100111001010111. awal LFSR = 1100111001010111. = 1 ⊕ 1 ⊕ 1 ⊕ 0 ⊕ 0 ⊕ 1 = 0. ut = 1. akhir LFSR = 0110011100101011. rusnya. 0101111 dan nakan rumusan
Namun, LFSR han Clock LFSR = 1. LFSR tidak akan m 2. Misalkan diketahui 1011010101011001 0,2,4,7,8,12,13,15. FC Gambar 4.2 FCSR posisi b
Nilai-nilai yang dip menggunakan rumusa SUM = S0 + S2 + S4 Bit feedback = SUM M CARRY = SUM Div 2 Proses kerja dari FCSR
a. Clock-1 : Keadaan awal
R hanya akan melakukan proses apabila LFSR = 1. Jika LFSR tidak di-clock atau Clock LFSR = akan melakukan proses.
tahui sebuah FCSR 16 bit dengan keadaa dan posisi bit yang akan diproses . FCSR tersebut dapat digambarkan seperti berikut :
CSR 16 bit dengan keadaan awal 10110101010110 osisi bit yang akan diproses adalah 0,2,4,7,8,12,13,
g diperlukan oleh FCSR diatas dapat dihitung musan berikut :
+ S4 + S7 + S8 + S12 + S13 + S15 + CARRY UM Mod 2.
Div 2.
i FCSR diatas adalah sebagai berikut :
awal FCSR = 1011010101011001. -clock atau SR = 0, maka keadaan awal roses adalah rikut : 1011001 dan 12,13,15 tung dengan
SUM = 1 + 0 + 1 + 0 + 1 + 1 + 1 + 1 = 6 Bit feedback = SUM Mod 2 = 6 Mod 2 = 0. CARRY = SUM Div 2 = 6 Div 2 = 3. Bit output = 1.
Keadaan akhir FCSR = 0101101010101100. b. Clock-2 :
Keadaan awal FCSR = 0101101010101100.
Bit feedback = 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 3 = 6. Bit feedback = SUM Mod 2 = 6 Mod 2 = 0.
CARRY = SUM Div 2 = 6 Div 2 = 3. Bit output = 0.
Keadaan akhir FCSR = 0010110101010110. c. Dan seterusnya.
Sama seperti LFSR, FCSR hanya akan melakukan proses apabila FCSR di-clock atau Clock FCSR = 1. Jika FCSR tidak di-clock atau Clock FCSR = 0, maka FCSR tidak akan melakukan proses.
Concoction Generator memerlukan n * m buah LFSR/FCSR dalam proses pembangkit bilangan acaknya dimana n adalah jumlah LFSR/FCSR dalam sebuah
stage dan m adalah jumlah stage. Misalkan, ditentukan n = 3 buah dan m = 2
Gambar 4.3 Co Secara garis besa dirincikan sebagai berikut 1. Proses penginputanda a. Jumlah stage
b. Jumlah registe
c. Panjang bit reg
bit.
d. Jumlah bilanga e. Panjang bit bil
atau 32 bit. 2. Proses penentuan kea
proses kerja seperti be a. Set jumlah dig b. Ambil sebuah dengan nilai be
4.3 Concoction Generator dengan n = 3 dan m = 2 s besar, proses kerja dari Concoction Generator
ikut :
data yang mencakup :
ge dengan nilai antara 2 sampai 5 buah.
ister dengan nilai antara 3 sampai 5 buah.
register, dengan 3 buah alternatif yaitu 8 bit, 16 bi
ilangan output, dengan nilai antara 1 sampai 100 buah bit bilangan output, dengan 3 buah alternatif yaitu 8 b
an keadaan awal (initial state) untuk setiap registe
erti berikut :
ah digit nol = 0 dan jumlah digit 1 = 0.
ebuah batasan maksimal bilangan yang akan di ilai berada di antara 100 sampai 100.000.
= 2
ini dapat
, 16 bit atau 32
0 buah.
itu 8 bit, 16 bit
ister dengan
c. Ambil sebuah bilangan bulat positif yang berada di dalam batasan maksimal tersebut.
d. Bilangan bulat positif tersebut dilakukan operasi modulo 2 dan hasilnya merupakan bit biner dari keadaan awal register.
e. Jika bit biner yang dihasilkan berupa bit 0 maka inkremen jumlah digit nol. Jika tidak, maka inkremen jumlah digit 1.
f. Ulangi langkah (b) sampai (e) di atas hingga semua bit biner dari keadaan awal register dihasilkan.
g. Jika keadaan awal register bernilai 0 atau jumlah digit 0 lebih besar atau sama dengan jumlah digit 1 maka kembali ke langkah (a).
3. Proses penentuan posisi bit yang digunakan untuk memproses nilai feedback
dengan proses kerja seperti berikut : a. Set posisi bit biner = 0.
b. Ambil sebuah bilangan bulat positif yang berada di antara 1 sampai 100.
c. Lakukan operasi modulo terhadap bilangan bulat positif tersebut. d. Jika hasil operasi bernilai 0 maka posisi bit biner tersebut merupakan
posisi bit yang akan diproses untuk menghasilkan bit feedback dan inkremen jumlah bit yang akan diproses untuk menghasilkan bit
feedback.
e. Inkremen posisi bit biner.
f. Jika posisi bit biner lebih kecil daripada panjang bit register maka kembali ke langkah (b).
g. Jika jumlah bit yang akan diproses untuk menghasilkan bit feedback
lebih kecil daripada 3 maka kembali ke langkah (a).
4. Proses pembangkit bilangan acak yang merupakan proses inti dari perangkat lunak.
4.1.2. Analisa Persyaratan
Analisa persyaratan yang dilakukan terhadap permainan Drop7 ini dibagi menjadi 2 bagian, yaitu analisa persyaratan fungsional dan analisa persyaratan non-fungsional.
Adapun beberapa persyaratan fungsional yang harus dipenuhi adalah sebagai berikut:
1. User dapat memilih tingkat kesulitan dari permainan yang dimainkan. 2. User dapat menampilkan sepuluh nilai tertinggi dari permainan.
3. User dapat melakukan pengaturan kondisi apakah permainan ingin dimainkan dengan menggunakan batasan waktu atau tidak. Proses setting kondisi ini dapat dilakukan oleh user pada awal (sebelum) permainan dimainkan.
4. Pada tingkat kesulitan ‘Susah’, pemain harus menentukan letak piring dalam waktu 5 detik. Jika tidak, maka komputer akan meletakkan piring pada posisi kursor terakhir.
Kerangka PIECES berikut digunakan untuk mengidentifikasikan berbagai persyaratan nonfungsional yang terkait dengan kualitas sistem.
1. Performance
b. Permainan harus didukung oleh gambar animasi yang interaktif dan menarik sehingga permainan tidak terkesan monoton dan membosankan. 2. Information
Semua data dan informasi yang ditampilkan harus tepat dan akurat. 3. Economics
User dapat meng-install perangkat lunak dengan hanya menggunakan package software yang telah disediakan dan tidak memerlukan perangkat bantu tambahan lainnya.
4. Control
a. Sistem dapat mengecek apakah input yang diberikan oleh user adalah benar atau salah.
b. Sistem dapat menghitung total nilai yang diperoleh user. 5. Efficiency
Sistem harus mampu memberikan informasi secara langsung kepada user
setelah adanya permintaan atau respons dari user. 6. Service
Sistem harus menyediakan animasi gambar yang menarik agar perangkat lunak mampu menarik perhatian pemakai.
4.2. Perancangan
Pembahasan mengenai proses perancangan perangkat lunak terdiri dari perancangan tampilan dan perancangan database yang mencakup perancangan tabel dan hubungan antartabel.
Proses perancangan sistem akan dimulai dari perancangan gambar yang akan digunakan dalam perangkat lunak. Gambar yang diperlukan tersebut akan diubah dan disimpan dengan menggunakan aplikasi Adobe Photoshop CS. Kemudian, proses dilanjutkan dengan merancang tampilan antarmuka yang terdapat pada perangkat lunak. Setelah itu, proses akan dilanjutkan dengan merancang database yang akan digunakan untuk menyimpan data user dan nilai yang diperoleh pemain. Terakhir, proses dilanjutkan dengan merancang hubungan antar tabel yang terdapat pada database.
4.2.1. Perancangan Tampilan
Rancangan tampilan (form) input yang terdapat dalam program dapat dirincikan sebagai berikut:
1. Form ‘Awal’, yang berfungsi sebagai tempat pemilihan menu / link yang ingin dimainkan. Form ini merupakan form awal (pertama) yang akan ditampilkan pada saat perangkat lunak dijalankan. Rancangan tampilan dari form ‘Awal’ ini dapat dilihat pada gambar 4.4 berikut ini:
Keterangan:
a. Link ‘Nama User’, berfungsi untuk menampilkan daftar user yang akan dipilih.
b. Link ‘x’, berfungsi untuk menutup aplikasi.
c. Link ‘Bermain Drop7’, berfungsi untuk bermain Drop7.
d. Link ‘Pengaturan’, berfungsi untuk melakukan pengaturan permainan.
e. Link ‘Daftar 10 Nilai Tertinggi’, berfungsi untuk menampilkan daftar 10 nilai tertinggi.
f. Link ‘Mengenai Pembuat’, berfungsi untuk menampilkan pembuat perangkat lunak.
g. Link ‘Bantuan’, berfungsi untuk menampilkan cara bermain Drop7.
2. Form ‘Nama User’, yang berfungsi sebagai tempat untuk melakukan penambahan dan pemilihan user yang akan digunakan dalam permainan. Rancangan tampilan dari form ‘Nama User’ ini dapat dilihat pada gambar 4.5 berikut ini:
Keterangan :
a. listbox ‘Nama Pemain’ berfungsi untuk menampilkan daftar nama pemain yang tersimpan dalam database.
b. tombol ‘Tambah’ yang berfungsi untuk menambah nama pemain baru.
c. tombol ‘Pilih’ yang berfungsi untuk menyimpan nama pemain yang dipilih ke dalam memori sementara, sehingga dapat digunakan pada form ‘Kuis’.
d. tombol ‘Hapus’ yang berfungsi untuk menghapus nama pemain yang dipilih. e. tombol ‘Batal’ yang berfungsi untuk menutup form dan kembali ke form
Main.
3. Form ‘Permainan’, yang berfungsi sebagai tempat untuk menampilkan permainan Drop7. Form ‘Permainan’ ini dapat ditampilkan dengan cara mengakses link ‘Bermain Drop7’. Rancangan tampilan dari form ‘Permainan’ ini dapat dilihat pada gambar 4.6 berikut ini:
Keterangan:
a. Daerah tampilan piring yang akan diletakkan.
b. Tombol ‘x’ yang berfungsi untuk menutup form dan kembali ke form ‘Main’. c. Daerah tampilan nilai yang diperoleh pemain.
d. Daerah tampilan level permainan yang dimainkan sekarang. e. Daerah tampilan kesulitan permainan.
f. Daerah permainan.
4. Form ‘Pengaturan’, yang berfungsi sebagai tempat untuk melakukan pengaturan permainan. Form ‘Pengaturan’ ini dapat ditampilkan dengan cara mengakses menu ‘Pengaturan’. Rancangan tampilan dari form ‘Pengaturan’ ini dapat dilihat pada gambar 4.7 berikut ini:
Keterangan :
a. radiobutton ‘Mudah’ diklik apabila ingin memainkan permainan Drop7 dengan tingkat kesulitan Mudah.
b. radiobutton ‘Susah’ diklik apabila ingin memainkan permainan Drop7 dengan tingkat kesulitan Susah.
c. tombol ‘Set’ yang berfungsi untuk menyimpan data pengaturan yang dilakukan oleh pemakai dan menutup form serta kembali ke form ‘Awal’. d. tombol ‘Batal’ yang berfungsi untuk menutup form dan kembali ke form
‘Awal’. Data pengaturan yang dilakukan pemakai tidak akan disimpan.
5. Form ‘Daftar Nilai Tertinggi’, yang berfungsi untuk menampilkan sepuluh nilai tertinggi yang diperoleh pemain. Rancangan tampilan dari form ‘Daftar Nilai Tertinggi’ ini dapat dilihat pada gambar 4.8 berikut ini:
Nama Score
Hapus Keluar a
b c
Keterangan:
a. Listbox yang berfungsi untuk menampilkan daftar sepuluh nilai tertinggi yang diperoleh pemain.
b. Tombol ‘Hapus’ yang berfungsi untuk menghapus daftar nilai tertinggi. c. Tombol ‘Keluar’ yang berfungsi untuk menutup form dan kembali ke form
‘Awal’.
6. Form ‘Bantuan’, yang berfungsi untuk menampilkan cara bermain game drop 7. Rancangan tampilan dari form ‘Bantuan’ ini dapat dilihat pada gambar 4.9 berikut ini : a d > < c b x
Gambar 4.9 Rancangan Form ‘ Bantuan’ Keterangan:
b. Link label Prev Page, berfungsi untuk menampilkan informasi keterangan
Game Rules sebelumnya.
c. Link label Next Page, berfungsi untuk menampilkan informasi keterangan
Game Rules berikutnya.
d. Link label Exit, berfungsi untuk menutup form dan kembali ke form ‘Awal’.
7. Form ‘Mengenai Pembuat’, yang berfungsi untuk menampilkan data pribadi dari pembuat perangkat lunak. Rancangan tampilan dari form ‘Mengenai Pembuat’ ini dapat dilihat pada gambar 4.10 berikut ini:
Mengenai Pembuat
OK a
c b
Gambar 4.10 Rancangan Form ‘Mengenai Pembuat’ Keterangan:
a. Daerah tampilan judul perangkat lunak.
c. Tombol ‘OK’ yang berfungsi untuk menutup form dan kembali ke form
‘Awal’.
4.2.2. Perancangan Database
Perancangan database dilakukan dengan menggunakan Microsoft Access 2007. Desain database dimaksudkan untuk mendefinisikan isi atau struktur tabel. Adapun entitas yang digunakan dalam perancangan database adalah sebagai berikut.
a. HighScore, berisi tentang daftar sepuluh nilai tertinggi. Rancangan tabel HighScore dapat dilihat pada tabel 4.1 berikut:
Tabel 4.1 Tabel HighScore
Nama Input Tipe Data Panjang Maksimum
NamaUser Text 30
Nilai Number Integer
Level Number Integer
Kesulitan Text String
b. UserList, berisi tentang daftar nama user. Rancangan tabel UserList dapat dilihat pada tabel 4.2 berikut:
Tabel 4.2 Tabel UserList
Nama Input Tipe Data Panjang Maksimum
Berdasarkan entitas yang diperoleh di atas, maka dapat dibuat hubungan antar entitas yang terdapat dalam database yang digunakan. Entitas UserList ini memiliki hubungan entitas HighScore yaitu hubungan satu ke banyak antara field
NamaUser pada UserList dengan field NamaUser pada HighScore. Gambaran hubungan antar tabel seperti ditunjukkan pada gambar 4.11 berikut ini:
54
HASIL DAN PEMBAHASAN
5.1. Hasil
Berikut dijabarkan spesifikasi perangkat keras dan perangkat lunak yang digunakan untuk menjalankan aplikasi dan tampilan output dari sistem.
5.1.1. Spesifikasi Perangkat Keras dan Perangkat Lunak
Perangkat keras dan perangkat lunak yang digunakan untuk menjalankan aplikasi Concoction Generator pada game Drop7 ini memiliki spesifikasi sebagai berikut :
1. Prosesor Intel(R) Core(TM) i3. 2. Memory 2048 MB.
3. Monitor dengan resolusi 1366 × 768 pixel. 4. Keyboard dan Mouse.
5. Harddisk 256GB 6. Speaker
Perangkat lunak ini direkomendasikan untuk dijalankan di sistem operasi
Microsoft Windows 7. Software pendukung yang digunakan yaitu Microsoft.NET Framework 3.5.
5.1.2. Hasil
Untuk menjalankan aplikasi Concoction Generator pada game Drop7, maka dapat mengklik file ‘Drop7.exe’ sehingga sistem akan menampilkan tampilan awal berikut:
Gambar 5.1 Tampilan Awal
Untuk bermain game Drop7, maka pertama kali harus memilih nama user
terlebih dahulu dengan mengklik link ‘Nama User’, sehingga sistem akan menampilkan form Nama User berikut.
Untuk menambah user baru, maka pemakai dapat mengklik tombol ‘Tambah’ sehingga sistem akan menampilkan input box Tambah User seperti terlihat pada gambar berikut.
Gambar 5.3 Tampilan Tambah User
Pemakai dapat mengisi nama user baru dan mengklik tombol ‘OK’ untuk menyimpan data nama user ke dalam database. Untuk memilih nama user, maka pemakai dapat memilih pada daftar nama dan mengklik tombol ‘Pilih’ sehingga sistem akan menyimpan nama user yang dipilih ke dalam memori sementara dan menutup form Pilih User serta kembali ke tampilan awal. Setelah itu, pemain dapat memilih tingkat kesulitan dari permainan, yaitu dengan mengklik link
‘Pengaturan’, sehingga sistem akan menampilkan form Pengaturan berikut: