Peper - Penerapan RNG Pada Game Move Ball

download Peper - Penerapan RNG Pada Game Move Ball

of 6

description

penerapan RNG

Transcript of Peper - Penerapan RNG Pada Game Move Ball

  • Penerapan Random Pada Game Move Ball menggunakan Adobe Flash

    Min Ahyani1, Jenita Ompusunggu2, and Sayyidatul3

    1 Batam Polytechnics

    Informatics Study Program

    Parkway Street, Batam Centre, Batam 29461, Indonesia

    E-mail: [email protected] NIM : 4311201083

    2 Batam Polytechnics

    Informatics Study Program

    Parkway Street, Batam Centre, Batam 29461, Indonesia

    E-mail: [email protected] NIM : 4311201086

    3 Batam Polytechnics

    Informatics Study Program

    Parkway Street, Batam Centre, Batam 29461, Indonesia

    E-mail: [email protected] NIM : 4311201090

    Abstrak

    Random Number Generator adalah suatu algoritma yang digunakan untuk menghasilkan urutan-urutan atau sequence dari angka-angka sebagai hasil dari perhitungan dengan komputer yang diketahui distribusinya sehingga angka-angka tersebut muncul secara random dan digunakan terus menerus. Random Number Generator ini akan diterapkan dalam game Move Ball, game Move Ball merupakan game bola yang akan bergerak secara acak sesuai dengan angka random yang dihasilkan.

    Kata kunci: Random Number Generator, Algoritma, Move Ball

    Abstract

    Random Number Generator is an algorithm used to generate sequences or sequences of

    numbers as a result of computer calculations with the known distribution so that the figures

    appear randomly and used continuously. Random Number Generator will be implemented in

    the game Move Ball, Ball Move game is a game ball that will move randomly according to the

    random number generated.

    Keyword: Random Number Generator, Algoritma, Move Ball

  • 1. Pendahuluan

    Bilangan acak (random) merupakan hal yang

    sangat penting dalam kriptografi. Tanpa bilangan

    random, sebagian besar algoritma kriptografi

    akan dengan mudah dipecahkan. Dengan

    menggunakan bilangan acak dalam suatu

    algoritma kriptografi, akan mempersulit

    penyerang untuk menebak kunci maupun hasil

    enkripsi dari suatu kriptografi. Algoritma

    kriptografi dianggap paling kuat, yaitu One time

    pad, merupakan algoritma kriptografi yang

    sangat tergantung dengan bilangan acak. Kunci

    yang digunakan diharuskan merupakan bilangan

    acak murni dan sepanjang pesan yang dikirim

    juga. Hal ini akan membuat kriptanalisis tidak

    mungkin dilakukan. Akan tetapi pada

    praktiknya, One time pad tidak dapat diterapkan

    secara praktis karena tidak mungkin untuk

    membangkitkan bilangan acak secara murni.

    Selain One time pad, banyak sekali algoritma

    lain yang menggunakan bilangan random

    sebagai unsur penting dalam algoritmanya.

    Dengan memasukkan bilangan random,

    dianggap dapat menghilangkan kemungkinan

    penyerang menebak hasil dengan mengetahui

    algoritmanya. Telah banyak algoritma generator

    bilangan acak yang diusulkan dan digunakan

    hingga saat ini. Algoritma-algoritma tersebut

    menggunakan berbagai pendekatan berbeda

    untuk menghasilkan bilangan random seacak

    mungkin. Hingga saat ini kita tidak dapat

    membuat suatu generator bilangan acak yang

    dapat menghasilkan bilangan acak secara murni.

    Untuk mendapatkan bilangan acak banyak ahli

    yang mengusulkan berbagai algoritma dari yang

    sederhana hingga yang paling rumit. Dari

    penggunaan variabel waktu sebagai faktor

    pengacak hingga penggunaan teori biologi

    cellular. Algoritma-algoritma ini masing

    masing memiliki kelebihan maupun kekurangan.

    Karena tidak ada algoritma bilangan acak yang

    benar-benar sempurna, hingga saat ini kita masih

    terus mengembangkan cara-cara untuk

    mendapatkan bilangan random yang sukar

    ditebak. Kita berupaya untuk mendapatkan

    generator bilangan yang menyerupai generator

    bilangan acak. Generator bilangan ini

    membangkitkan bilangan acak semu (pseudo

    random number) yang memiliki tingkat kekuatan

    berbeda-beda menurut algoritma yang

    digunakan. Pseudo-Random Number Generator

    menggunakan suatu state awal kemudian dengan

    suatu algoritma khusus akan menghasilkan

    bilangan acak semu. State awal yang digunakan

    diambil dari berbagai sumber yang dianggap

    cukup acak. Dengan demikian, Pseudo Random

    Number Generator ini akan menghasilkan suatu

    rangkaian bilangan yang menyerupai bilangan

    acak. Pseudo Random Number Generator

    banyak sekali digunakan pada saat ini.

    Kemudahan implementasi dan kecepatannya

    merupakan faktor utama mengapa Pseudo

    Random Number Generator digunakan. Namun,

    sebagai algoritma generator bilangan acak,

    Pseudo Random Number Generator masih

    banyak memiliki kelemahan. Kelemahan utama

    adalah pada pemilihan state awal yang

    digunakan untuk proses generate bilangan acak.

    2. Teori Pendukung

    Definisi random number [MENEZES, 1996]:

    1. Angka yang dipilih dari set angka tertentu

    dengan cara sedemikian sehingga setiap angka

    yang muncul memiliki probabilitas kemunculan

    yang sama

    2. Urutan angka yang dinyatakan telah lulus tes

    statistik atau bebas dari kondisi dimana tidak

    dapat diduga atau ditebak kalkulasinya. Random

    Number Generator adalah alat atau algoritma

    yang menghasilkan urutan angka yang secara

    statistik independen dan tidak dapat ditebak.

    Kelas random number generator :

    a) Deterministic RNG

  • Dibuat menggunakan algoritma yang

    menghasilkan urutan bit berdasarkan nilai awal

    yang disebut seed.

    b) Non-deterministic RNG

    Menghasilkan keluaran yang tergantung kepada

    sumber luar yang tidak dipengaruhi oleh kontrol

    manusia. Pseudo-Random Number Generator

    adalah random number generator yang

    menghasilkan nilai berdasarkan seed dan state

    saat ini. Dengan seed yang sama, sebuah PRNG

    akan menghasilkan nilai output yang sama.

    Kekuatan pseudo-Random Number Generator

    dalam menghasilkan deret bilangan acak sangat

    tergantung kepada kekuatan algoritma, serta

    keamanan seed. Sebuah random bit generator

    membutuhkan sumber keacakan yang secara

    natural terjadi. Ada 2 macam cara memperoleh

    keacakan, yakni hardware-based dan software-

    based. Hardwarebased adalah memperoleh

    keacakan dari fenomena fisik, diantaranya :

    waktu peluruhan radioaktif,suhu diode atau

    resistor, frekuensi osilator, suara dari mikrofon

    atau input video dari kamera. Sementara

    software-based adalah memperoleh nilai dari

    proses-proses software yang sedang berjalan,

    diantaranya : system clock, waktu keystroke,

    gerakan mouse, input user, nilai-nilai pada

    operating system seperti load dan network

    statistics. Metode-metode untuk menghasilkan

    angka acak yang dilakukan terbagi menjadi

    beberapa cara, dari yang paling sederhana,

    hingga metode yang cukup rumit. Beberapa

    contohnya adalah :

    2.1 Metode Fisik

    Metode paling pertama untuk menghasilkan

    angka secara acak adalah dengan menggunakan

    dadu, koin, rolet, dan lain sebagainya. Sampai

    saat ini, metode ini masih cukup sering

    digunakan, terutama di dalam game dan

    perjudian. Karena metode ini dianggap terlalu

    lambat, pengaplikasiannya untuk statistika dan

    kriptografi kurang begitu popular saat ini. Dasar

    dari metode fisik adalah fenomena fisika atomik

    atau subatomik acak yang tidak bisa diprediksi

    dapat dilacak dengan menggunakan mekanika

    kuantum.

    2.2 Metode Distribusi Probabilitas

    Metode ini menggunakan fungsi densitas

    probabilitas. Metode ini bekerja cukup baik

    untuk menghasilkan pseudo-random dan true

    random number. Salah satu metode, yaitu

    metode inverse, mengintegralkan area lebih dari

    sama dengan bilangan acak. Metode kedua,

    acceptance-rejection, memilih antara nilai x dan

    y, lalu membandingkan apakah fungsi x lebih

    besar dari nilai y. Apabila fungsi x lebih dari

    nilai y, maka nilai x akan diterima. Jika

    sebaliknya, maka nilai x akan ditolak dan

    algoritmanya akan mencoba ulang.

    2.3 Metode Komputasi

    Metode ini menggunakan algoritma bernama

    Pseudo-random number generator yang secara

    otomatis menghasilkan serangkaian angka acak

    yang memiliki kualitas baik. Nilai yang

    dihasilkan oleh algoritma tersebut secara umum

    ditentukan dengan sebuah konstanta yang

    disebut seed. Salah satu PRNG yang umum

    adalah linear congruential generator, yang

    menggunakan rekurens dari persamaan Untuk

    menghindari sifat non-acak yang muncul dari

    linear congruential generator, beberapa random

    number generator dengan koefisin nilai pengali

    yang berbeda-beda dapat digunakan secara

    paralel. Beberapa bahasa pemrograman memiliki

    fungsi yang bersifat random number generator.

    Fungsi-fungsi ini biasanya digunkan untuk

    menghasilkan angka, kata, atau bilangan real

    yang tersebar diantara 0 dan 1. Fungsi-fungsi

    tersebut biasanya memiliki sifat statistika yang

    buruk. Biasanya fungsi-fungsi tersebut

    diinisialisasi menggunakan real time clock

    sebagai seed menyebabkan perhitungan yang

    dilakukan di dalam millisecond dan sangat jauh

    jika dibandingkan dengan presisi manusia.

  • Fungsi-fungsi tersebut memberikan hasil yang

    cukup untuk beberapa tugas (contohnya video

    game), tetapi tidak cocok digunakan saat tingkat

    acak yang dibutuhkan sangat tinggi, seperti

    aplikasi untuk kriptografi dan analisis numerik

    dalam statistik. Salah satu contoh sederhana

    pseudo-random number generator adalah metode

    Multiplywith-carry yang ditemukan oleh George

    Marsaglia. Program ini memiliki kecepatan dan

    sifat acak yang cukup baik. Contoh random

    number generator :

    m_w = ; /* must

    not be zero */

    m_z = ; /* must

    not be zero */

    uint get_random()

    {

    m_z = 36969 * (m_z & 65535) + (m_z

    >> 16);

    m_w = 18000 * (m_w & 65535) + (m_w

    >> 16);

    return (m_z

  • Gambar2.Berikut contoh algoritma dari

    pembuatan game random move ball

    3.2 Pengujian

    Pengujian dilakukan dengan membandingkan

    bilangan acak yang dihasilkan dari setiap

    percobaan. Berikut tabel perbandingan random

    number pada setiap percobaan :

    Table 1 hasil percobaan random number

    generator

    Percobaan ke -

    Hasil bilangan acak

    1 3 1 3 2 2 2 2 3 3

    1

    2 3 2 1 1 3 3 2 2 3

    1

    3 1 2 2 3 2 4 2 4 1

    3

    4 4 3 1 4 4 1 2 3 3

    2

    5 2 4 4 1 2 4 3 1 2

    2

    Dari hasil penelitian diatas, terlihat bahwa

    bilangan acak yang dihasil kan berbeda - beda

    pada setiap percobaan. Hal ini membuktikan

    bahwa dengan random number generator, user

    tidak bisa menebak atau memprediksi angka

    random yang akan dihasilkan oleh suatu mesin.

    Sehingga keuntungan yang didapat jika

    diterapkan dalam sebuah permainan

    menggunakan konsep random akan membuat

    permainan tersebut menjadi lebih menantang dan

    lebih hidup.

    Kesimpulan:

    1. Random Number Generator pada

    dasarnya merupakan sebuah mesin yang

    memproduksi bilangan secara acak.

    2. Dari segi outputnya, Random Number

    Generator terdiri dari dua jenis yakni

    Deterministic RNG dan Non-

    deterministic RNG

    3. Dalam implementasinya, ada beberapa

    metode yang bisa digunakan antara lain

    metode fisik, metode 2 Metode Distribusi

    Probabilitas, dan Metode Komputasi

    Daftar Pustaka

    [1]

    http://en.wikipedia.org/wiki/Random_number_g

    eneration. Tanggal

    akses : 21 Oktober 2014

    [2]

    Munir, Rinaldi, Slide Kuliah IF2091, Struktur

    Diskrit, bagian

    Teori Bilangan, 2014

    [3]

    http://en.wikipedia.org/wiki/Applications_of_ran

    domness. Tanggal

    akses : 21 Oktober 2014

    [4]

    http://id.wikipedia.org/wiki/Teori_bilangan.

    Tanggal akses : 14

    akses : 21 Oktober 2014