APLIKASI CONCOCTION GENERATOR PADA GAME DROP7

dokumen-dokumen yang mirip
BAB II LANDASAN TEORI

Aplikasi Teori Bilangan Bulat dalam Pembangkitan Bilangan Acak Semu

Percobaan Perancangan Fungsi Pembangkit Bilangan Acak Semu serta Analisisnya

PENGGUNAAN POLINOMIAL UNTUK STREAM KEY GENERATOR PADA ALGORITMA STREAM CIPHERS BERBASIS FEEDBACK SHIFT REGISTER

Universitas Sumatera Utara BAB 2 LANDASAN TEORI

PENGEMBANGAN ALGORITMA ENKRIPSI DEKRIPSI BERBASIS LFSR MENGGUNAKAN POLINOMIAL PRIMITIF

BAB 2 LANDASAN TEORI

BAB Kriptografi

Rancangan Aplikasi Pemilihan Soal Ujian Acak Menggunakan Algoritma Mersenne Twister Pada Bahasa Pemrograman Java

Studi Perbandingan ORYX Cipher dengan Stream Cipher Standard

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM. telah dijelaskan pada bab sebelumnya. Analisis yang dilakukan bertujuan untuk

Studi Perbandingan SEAL (Software-Optimized Encryption Algorithm) dengan Stream Cipher Biasa

RC4 Stream Cipher. Endang, Vantonny, dan Reza. Departemen Teknik Informatika Institut Teknologi Bandung Jalan Ganesha 10 Bandung 40132

Disusun oleh: Ir. Rinaldi Munir, M.T.

BAB 3 METODOLOGI PENELITIAN

BAB III METODE PENELITIAN

BAB III ANALISIS DAN PERANCANGAN. Perancangan game mencocokkan gambar ini dibuat agar dapat berjalan

Bab 2 Tinjauan Pustaka

ANALISA PROSES ENKRIPSI DAN DESKRIPSI DENGAN METODE DES

KOMBINASI ALGORITMA ONE TIME PAD CIPHER DAN ALGORITMA BLUM BLUM SHUB DALAM PENGAMANAN FILE

Blok Cipher JUMT I. PENDAHULUAN

Add your company slogan STREAM CIPHER. Kriptografi - Week 7 LOGO. Aisyatul Karima, 2012

Perancangan Sistem Media Pembelajaran Balita (Game Akez) dengan Metode Linear Congruentials Generator (LCG)

PERANCANGAN APLIKASI PENGACAKAN CITRA MENGGUNAKAN M-SEQUENCE BERDASARKAN PARAMETER


BAB III ANALISA MASALAH DAN RANCANGAN PROGRAM

Perancangan Perangkat Lunak Bantu Bantu Pemahaman Kritografi Menggunakan Metode MMB (MODULAR MULTIPLICATION-BASED BLOCK CIPHER)

ANALISA IMPLEMENTASI ALGORITMA STREAM CIPHER SOSEMANUK DAN DICING DALAM PROSES ENKRIPSI DATA

Data Encryption Standard (DES)

BAB III ANALISA DAN PERANCANGAN. 3.1 Analisa Berikut tahap-tahap awal dalam pembuatan:

Pembangkitan Nilai MAC dengan Menggunakan Algoritma Blowfish, Fortuna, dan SHA-256 (MAC-BF256)

STUDI MENGENAI JARINGAN FEISTEL TAK SEIMBANG DAN CONTOH IMPLEMENTASINYA PADA SKIPJACK CIPHER

ANALISIS UJI STATISTIK BERBASIS KORELASI PADA ALGORITMA SNOW 2.0

WINDOWS VISTA BITLOCKER DRIVE ENCRYPTION

BAB 2 LANDASAN TEORI

Perancangan Aplikasi Quiz Menggunakan Metode Pengacakan Linear Congruential Generator (LCG) Berbasis Android

Ada 4 mode operasi cipher blok: 1. Electronic Code Book (ECB) 2. Cipher Block Chaining (CBC) 3. Cipher Feedback (CFB) 4. Output Feedback (OFB)

STUDI PERBANDINGAN ALGORITMA SIMETRI BLOWFISH DAN ADVANCED ENCRYPTION STANDARD

Fast Correlation Attack pada LILI-128

STUDI PERBANDINGAN ENKRIPSI MENGGUNAKAN ALGORITMA IDEA DAN MMB

BAB III ANALISA DAN DESAIN SISTEM

PEMODELAN BILANGAN ACAK DAN PEMBANGKITANNYA. Pemodelan & Simulasi

BAB IV HASIL DAN PEMBAHASAN

PEMBANGKIT KUNCI LINEAR FEEDBACK SHIFT REGISTER PADA ALGORITMA HILL CIPHER YANG DIMODIFIKASI MENGGUNAKAN CONVERT BETWEEN BASE

STUDI PERBANDINGAN ENKRIPSI MENGGUNAKAN ALGORITMA IDEA DAN MMB

Algoritma SAFER K-64 dan Keamanannya

ANALISIS PERBANDINGAN KINERJA ALGORITMA TWOFISH DAN TEA (TINY ENCRYPTION ALGORITHM) PADA DATA SUARA

PERANCANGAN DAN ANALISIS MODIFIKASI KUNCI KRIPTOGRAFI ALGORITMA TWOFISH PADA DATA TEKS

BAB 3 PERANCANGAN SISTEM. Tujuan dari perancangan sistem adalah untuk memenuhi kebutuhan user mengenai

Message Authentication Code (MAC) Pembangkit Bilangan Acak Semu

BAB 1 PENDAHULUAN. 1.1 Latar Belakang. Seiring perkembangan teknologi, berbagai macam dokumen kini tidak lagi dalam

STUDI DAN MODIFIKASI ALGORITMA BLOCK CHIPER MODE ECB DALAM PENGAMANAN SISTEM BASIS DATA. Arief Latu Suseno NIM:

BAB 2 LANDASAN TEORI

PEMBANGKIT BILANGAN ACAK (Random Number Generator)

BAB III. ANALISIS MASALAH

Tipe dan Mode Algoritma Simetri (Bagian 2)

tanggal/waktu yang berukuran 64 bit 2. Untuk i dari 1 sampai m melakukan :

BAB III ANALISA MASALAH DAN PERANCANGAN

PERANCANGAN ALGORITMA KRIPTOGRAFI KUNCI SIMETRI DENGAN MENGGUNAKAN JARINGAN SARAF TIRUAN

Uji SAC Terhadap Algoritma Speck

Algoritma Kriptografi Kunci Publik. Dengan Menggunakan Prinsip Binary tree. Dan Implementasinya

Perancangan dan Implementasi Kriptografi Menggunakan Algoritma CryptMT Pada Data Citra Artikel Ilmiah

BAB III ANALISA MASALAH DAN PERANCANGAN PROGRAM

BAB I PENDAHULUAN. 1.1 Latar Belakang Masalah. Pada dasarnya sistem administrasi kependudukan merupakan sub sistem dari

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB IV PERANCANGAN Perancangan Proses Kriptanalisis

Algoritma Kriptografi Modern (Bagian 2)

SKRIPSI BILQIS

PEMBANGKIT BILANGAN ACAK

KEAMANAN DATA DENGAN MENGGUNAKAN ALGORITMA RIVEST CODE 4 (RC4) DAN STEGANOGRAFI PADA CITRA DIGITAL

STUDI ALGORITMA SOLITAIRE CIPHER

Pembangkitan Bilangan Acak Dengan Metode Lantai Dan Modulus Bertingkat

ANALISIS TEORITIS DAN PENERAPAN UJI AUTOKORELASI DARI FIVE BASIC TEST UNTUK MENGUJI KEACAKAN BARISAN BIT

BAB I PENDAHULUAN 1.1 Latar Belakang Masalah

APLIKASI JAVA KRIPTOGRAFI MENGGUNAKAN ALGORITMA VIGENERE. Abstract

IMPLEMENTASI UJI KORELASI UNTUK PENGUJIAN SUB KUNCI PADA ALGORITMA KRIPTOGRAFI BLOCK CIPHER PRESENT MENGGUNAKAN BAHASA PEMROGRAMAN C++

Algoritma MAC Berbasis Jaringan Syaraf Tiruan

Algoritma Rubik Cipher

(S.2) KRIPTOGRAFI METODA MODULAR MULTIPLICATON-BASED BLOCK CIPHER PADA FILE TEXT

Perancangan Perangkat Lunak untuk Penyembunyian Data Digital Menggunakan 4-Least Significant Bit Encoding dan Visual Cryptography

ALGORITMA ELGAMAL UNTUK KEAMANAN APLIKASI

Pendiskritan Pembangkit Bilangan Acak Peta Logistik Menggunakan Fungsi Trigonometri Osilasi Tinggi

BAB 2 LANDASAN TEORI

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISIS DAN DESAIN SISTEM

STUDI MENGENAI SERANGAN DIFFERENT CRYPTANALYSIS PADA ALGORITMA SUBSTITUTION PERMUATION NETWORK

BAB III ANALISIS DAN PERANCANGAN

BAB 1 PENDAHULUAN Latar Belakang

Implementasi Sistem Keamanan File Menggunakan Algoritma Blowfish pada Jaringan LAN

BAB 2 LANDASAN TEORI. Istilah komputer (computer) berasal dari bahasa latin computere yang berarti

Penggabungan Algoritma Kriptografi Simetris dan Kriptografi Asimetris untuk Pengamanan Pesan

Algoritma Kriptografi Modern (Bagian 2)

PERANCANGAN SIMULASI PENGACAKAN SOAL TRYOUT UNTUK MEMBENTUK PAKET SOAL UJIAN NASIONAL MENGGUNAKAN LINEAR CONGRUENT METHOD (LCM)

BAB III ANALISIS DAN PERANCANGAN. yang ada pada sistem dimana aplikasi dibangun, meliputi perangkat

STUDI PERBANDINGAN CIPHER BLOK ALGORITMA BLOWFISH DAN ALGORITMA CAMELLIA

APLIKASI KRIPTOGRAFI ENKRIPSI DEKRIPSI FILE TEKS MENGGUNAKAN METODE MCRYPT BLOWFISH

BAB I PENDAHULUAN. belajar untuk mengenal dirinya dan juga lingkungannya. Manusia berbeda

BAB III ANALISA DAN PERANCANGAN

KATA PENGANTAR. Maha Esa, yang telah berkenan memelihara dan membimbing penulis, sehingga

Transkripsi:

APLIKASI CONCOCTION GENERATOR PADA GAME DROP7 SKRIPSI Oleh: HENDRA NIM.1144044 PROGRAM STUDI TEKNIK INFORMATIKA SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER STMIK TIME MEDAN 2015

ABSTRAK 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. Kata kunci: permainan, Drop7 i

ABSTRACT 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. Keyword : game, Drop7 ii

KATA PENGANTAR 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 STMIK TIME Medan. iii

8. Seluruh Dosen STMIK TIME Medan, yang telah banyak memberikan ilmu pengetahuan kepada penulis selama perkuliahan. 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 (Hendra) iv

DAFTAR ISI 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 2.4.2. Serangan Terhadap LFSR... 20 v

2.5. Feedback with Carry Shift Register (FCSR)... 21 2.6. Concoction Generator... 24 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 4.2.2. Perancangan Database... 52 vi

BAB V HASIL DAN PEMBAHASAN... 54 5.1. Hasil... 54 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 LAMPIRAN vii

DAFTAR GAMBAR 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 viii

Baru... 58 Gambar 5.7. Tampilan Permainan Level Susah pada Saat Memulai Permainan... 59 Gambar 5.8. Tampilan High Score... 60 ix

DAFTAR TABEL Tabel 2.1. Tabel Kebenaran Operasi XOR... 26 Tabel 3.1. Daftar Waktu dan Kegiatan Penelitian... 30 Tabel 4.1. Tabel HighScore... 52 Tabel 4.2. Tabel UserList... 52 x

DAFTAR LAMPIRAN 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 Lampiran 6. Kartu Bimbingan xi

BAB I 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 Concoction Generator. 1

2 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 Microsoft Visual Basic.NET 2010.

3 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.

4 3. Bagi STMIK-TIME Laporan skripsi dapat dijadikan sebagai bahan referensi bagi mahasiswa lainnya yang ingin mengangkat topik mengenai permainan. 1.5. Sistematika Penulisan bab yaitu : Agar pembahasan lebih sistematika, maka tulisan ini dibuat dalam enam 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 Berisi tentang hasil, pembahasan dan algoritma.

5 BAB VI KESIMPULAN DAN SARAN Berisi tentang kesimpulan dan saran.

BAB II LANDASAN TEORI 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. 6

7 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.

8 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

9 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

10 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 : X n = (ax n-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

11 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 : F n = F n-1 + F n-2 Jadi suatu rumusan baru adalah penjumlahan dari dua term dalam deret. Ini dapat digenerasi dengan rumusan ini : S n = S n-j * S n-k mod m ; di mana 0 < j < k. LFG mempunyai periode maksimum (2 k 1) * 2 m-1 jika operasi penambahan atau XOR digunakan untuk mengkombinasikan nilai sebelumnya. Jika operasi perkalian yang digunakan, maka maksimum periode adalah (2 k 1) * 2 m-3. Untuk memperoleh nilai periode maksimum dapat digunakan persamaan polinomial berikut : y = x k + x j + 1 Inisialisasi dari LFG merupakan masalah yang sangat kompleks, setiap periode maksimum dari LFG mempunyai kemungkinan siklus yang sangat besar,

12 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 teknikteknik 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. A i = (A i-55 + A i-24 ) mod 2 32 B i = (B i-52 + A i-19 ) mod 2 32 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. C j adalah sekuens dari word yang dipakai dari A j dan D j adalah sekuens dari word yang dipakai dari B i. Word ini digunakan dalam pasangan C 2j, C 2j+1, D 2j dan D 2j+1 untuk menghasilkan 32 bit output word yaitu K 2j dan K 2j+1. E 2j = C 2j (D 2j D 2j+1 )

13 F 2j = D 2j+1 (E 2j C 2j+1 ) K 2j = E 2j F 2j K 2j+1 = C 2j+1 F 2j 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 : A i = (A i-55 + A i-24 ) mod 2 32 B i = (B i-57 + A i-7 ) mod 2 32 C i = (C i-58 + C i-19 ) mod 2 32 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

14 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 : A i = (A i-55 + A i-24 ) mod 2 32 B i = (B i-52 + A i-19 ) mod 2 32 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 : X n = X 3 n-1 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 : X n+1 = X 2 n 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

15 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.

16 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-xorkan 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.

17 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: = (S 5 S 6 ) (S 2. S 3 ) b. Hasil output : S 0 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 biasanya diturunkan selama prosedur update ini.

18 Adapun contoh sederhana dari LFSR dapat dilihat pada gambar 2.2 berikut ini : Keterangan gambar 2.2 : Gambar 2.2 Linear Feedback Shift Register (LFSR) Sumber: Munir, 2010 a. Nilai feedback dari LFSR : S 1 S 3 b. Hasil output : S 0 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

19 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 berturutturut 2 19 1, 2 22 1 dan 2 23 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 bit.

20 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.

21 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 = (b 0 + b 1 ) + 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 : 1. Carry register bukan sebuah single bit, tetapi merupakan sebuah angka.

22 2. Ukuran dari carry register minimal harus sebesar log 2 t, 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 = 2q 1 + 2 2 q 2 + 2 4 q 4 + + 2 n q n 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.

23 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

24 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.

25 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-xorkan dua buah bit yang masing masing nilai bitnya berbeda. Tabel kebenaran dari operasi XOR dapat dilihat pada Tabel 2.1 berikut ini :

26 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 : A B Y 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 : A Y B Gambar 2.6 Gerbang Logika Operasi XOR yang Dibentuk dari Penggabungan Gerbang Logika Dasar NOT, AND dan OR Sumber: Munir, 2011

27 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

28 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 rotate left :

29 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

30 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.

BAB III 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 Nopember Desember Januari Februari Maret April Waktu 2014 2014 2015 2015 2015 2015 Kegiatan 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 31

32 Skripsi 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. Identifikasi Masalah Pengumpulan data Analisa Sistem Perancangan Sistem Pembangunan Sistem Uji Coba Sistem Gambar 3.1 Metode Perancangan 3.2.1. Metode Pengumpulan Data

33 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

34 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.

35 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.

Gambar 3.2 Flowchart Sistem 36

37 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.

BAB IV ANALISA DAN PERANCANGAN 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 : 37

38 Gambar 4.1 LFSR 16 bit dengan keadaan awal 1001110010101111 dan posisii bit yang akan diproses adalah 0,1,4,7,12,15 Bit feedback dari LFSR diatas dapat dihitung dengan menggunakan rumusan berikut : Bit feedback = S0 S1 S4 S7 S12 S15 Proses kerja dari LFSR diatas adalah sebagai berikut : a. Clock-1 : Keadaan awal LFSR = 1001110010101111. Bit feedback = 1 1 0 1 1 1 = 1. Bit output = 1. Keadaan akhir LFSR = 1100111001010111. b. Clock-2 : Keadaan awal LFSR = 1100111001010111. Bit feedback = 1 1 1 0 0 1 = 0. Bit output = 1. Keadaan akhir LFSR = 0110011100101011. c. Dan seterusnya.

39 Namun, LFSR hanya akan melakukan proses apabila LFSR di-clock atau Clock LFSR = 1. Jika LFSR tidak di-clock atau Clock LFSR = 0, maka LFSR tidak akan melakukan proses. 2. Misalkan diketahui sebuah FCSR 16 bit dengan keadaan awal 1011010101011001 dan posisi bit yang akan diproses adalah 0,2,4,7,8,12,13,15. FCSR tersebut dapat digambarkan seperti berikut : Gambar 4.2 FCSR 16 bit dengan keadaan awal 1011010101011001 dan posisii bit yang akan diproses adalah 0,2,4,7,8,12,13,15 Nilai-nilai yang diperlukan oleh FCSR diatas dapat dihitung dengan menggunakan rumusan berikut : SUM = S0 + S2 + S4 + S7 + S8 + S12 + S13 + S15 + CARRY Bit feedback = SUM Mod 2. CARRY = SUM Div 2. Proses kerja dari FCSR diatas adalah sebagai berikut : a. Clock-1 : Keadaan awal FCSR = 1011010101011001.

40 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 stage, maka Concoction Generator tersebut dapat digambarkan seperti berikut :

41 Gambar 4.3 Concoction Generator dengan n = 3 dan m = 2 Secara garis besar, proses kerja dari Concoction Generator ini dapat dirincikan sebagai berikut : 1. Proses penginputan data yang mencakup : a. Jumlah stage dengan nilai antara 2 sampai 5 buah. b. Jumlah register dengan nilai antara 3 sampai 5 buah. c. Panjang bit register, dengan 3 buah alternatif yaitu 8 bit, 16 bit atau 32 bit. d. Jumlah bilangan output, dengan nilai antara 1 sampai 100 buah. e. Panjang bit bilangan output, dengan 3 buah alternatif yaitu 8 bit, 16 bit atau 32 bit. 2. Proses penentuan keadaan awal (initial state) untuk setiap register dengan proses kerja seperti berikut : a. Set jumlah digit nol = 0 dan jumlah digit 1 = 0. b. Ambil sebuah batasan maksimal bilangan yang akan di-generate dengan nilai berada di antara 100 sampai 100.000.

42 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).

43 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 a. Sistem harus dapat menyimpan dan menampilkan high score.

44 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.

45 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: Gambar 4.4 Rancangan Form Awal

46 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: Gambar 4.5 Rancangan Form Nama User

47 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: Gambar 4.6 Rancangan Form Permainan

48 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: Gambar 4.7 Rancangan Form Pengaturan

49 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 a Hapus Keluar b c Gambar 4.8 Rancangan Form Daftar Nilai Tertinggi

50 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 < > x b c d Gambar 4.9 Rancangan Form Bantuan Keterangan: a. Daerah tampilan keterangan mengenai aturan permainan.

51 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 a b OK c Gambar 4.10 Rancangan Form Mengenai Pembuat Keterangan: a. Daerah tampilan judul perangkat lunak. b. Daerah tampilan data pribadi dari pembuat perangkat lunak.

52 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 NamaUser Text 20

53 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: Gambar 4.11 Relationship Tabel Pada Database

BAB V 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. 54

55 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. Gambar 5.2 Tampilan Pilih User

56 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: Gambar 5.4 Tampilan Pengaturan