Saturday, October 31, 2009

Membangkitkan Bilangan Acak

Terdapat dua fungsi yang dibutuhkan untuk membangkitkan bilangan acak srand() dan rand(). Fungsi srand() dibutuhkan untuk menentukan "bibit" dari bilangan acak yang akan dibangkitkan. Sama seperti kalau kita menanam tumbuhan, bibit yang berbeda tentu akan menghasilkan tambuhan dewasa yang berbeda pula. Sedangkan fungsi rand() digunakan untuk menampilkan bilangan acak yang dihasilkan dari "bibit" yang diberikan ke fungsi srand().

Bentuk umum dari fungsi srand() adalah:

srand(bibit);


Sebagai Contoh:

srand(4);


Bentuk umum dari fungsi rand() adalah:

rand() % n;


Bilangan acak yang dihasilkan oleh fungsi rand() adalah dari 0 s/d (n-1).


Sebagai contoh:
rand() % 10;


Perintah di atas akan menghasilkan bilangan antara 0 s/d 9.

Seperti yang sudah dijelaskan sebelumnya, jika kita menggunakan "bibit" yang sama maka hasil yang diperoleh dari bibit ini pastilah sama. Untuk membuktikan, cobalah menjalankan program berikut berkali-kali dan perhatikan tampilan dilayar:

#include<iostream>
using namespace std;

int main()
{
srand(5);
int data = rand() % 10;
cout << data << endl; cin.get(); }


Agar bisa membangkitkan bilangan yang benar-benar acak, kita harus memberikan "bibit" yang berbeda-beda pula kepada fungsi srand(). Salah satu cara yang bisa dilakukan adalah memberikan "bibit" menggunakan fungsi time(), seperti berikut:


srand(time(NULL));


Sekarang, cobalah jalankan program berikut beberapa kali, dan perhatikan keluaran yang ditampilkan ke layar.


#include<iostream>
using namespace std;

int main()
{
srand(time(NULL));
int data = rand() % 10;
cout << data << endl; cin.get(); }


Fungsi rand() umumnya digunakan untuk membangkitkan bilangan acak yang bertipe bilangan bulat. Cobalah mencari solusi bagaimana membuat bilangan acak "pecahan" antara 0 dan 1 ?

6 comments:

  1. salam kenal. posting yang sangat bermanfaat.apa bisa ditampilkan juga contoh hasil dari bilangan acak yang ditmapilkan?

    ReplyDelete
  2. Dear Tigabelaskata,

    Saya sarankan untuk mencoba sendiri cuplikan program yang saya tampilkan. Petunjuk yang saya tuliskan diatas kalau rekan ikuti, saya yakin akan menjawab harapan dari rekan tigabelaskata.

    Salam,
    VnP

    ReplyDelete
  3. Bagaimana jika hasilnya ingin ditampilkan sebanyak 5 kali

    ReplyDelete