Skip to content
13 November 2008 / Jeffrey Hermanto Halimsetiawan

Random(rand) dan Randomize(srand) dalam DevC++


Mungkin bagi orang yang baru belajar C dengan menggunakan IDE Dev C++ akan kesulitan menggunakan fungsi random ataupun randomize seperti jika kita menggunakan compiler TCWIN 45. Cara random dan randomize dalam DevC++ adalah :

#include <stdio.h>     //definisi printf
#include <conio.h>     //definisi getch
#include <stdlib.h>    //definisi rand, srand
#include <time.h>      //definsi time
int main(){
int x , n = 10;
/*
fungsi untuk randomize angka agar setiap kali program dijalankan, menghasilkan bilangan random yang berbeda
*/
srand((unsigned)time(NULL));
//x menampung bilangan acak antara 0 - 9
x = rand()%n;
printf("%d\n",x);
getch();    //menahan tampilan output pada layar
return 0;

}

Mengapa x menghasilkan bilangan acak antara 0-9???

x = rand() % 10;

Bilangan yang dimodulo (%) 2 akan menghasilkan bilangan 0 atau 1

Bilangan yang dimodulo (%) 3 akan menghasilkan bilangan 0 atau 1 atau 2

Jadi, bilangan yang dimodulo 10 akan menghasilkan bilangan 0,1,2,3,4,5,6,7,8,9

  1. soezack / Des 5 2008 15:22

    hanya menampilkan 1 angka saja y dan sifatnya acak ketika di run-kan?

    • Jeffrey Hermanto / Des 25 2008 23:14

      yap..
      btul sekali..
      hanya menampilkan 1 angka saja dan sifatnya acak setiap kali program di-run..

  2. Wahyu Christianto / Sep 21 2009 12:18

    Tolong buatin progam batu,gunting,kertas donk,,
    pke srand jg khn?

    • Jeffrey Hermanto / Sep 21 2009 12:25

      Untuk membuat program batu, gunting, kertas melawan komputer dimana komputernya pasti selalu menang gk pake srand lho..

      tp ada logikanya supaya komputer selalu menang lawan user..
      😀

  3. Wahyu Christianto / Sep 21 2009 17:05

    Ia, mksud saya tloNg buatin pRogamnya lgkp dng bhs C nya,
    Tp kLo progamnya pke srand, dan kompuTer g slalu menang trz jg bs khn?

  4. miracle / Okt 5 2009 21:08

    salam kenal… masa bisa minta tolong g..? buatin sebuah program lho dari c++, programnya tentang array yang dirandom, kemudian kita masukin sebuah angka mak prograam tsb kan nentuan data yang kita masukin terletak di indeks yang keberapa, udah nyoba buat mas, tapi binguuung…….

    • Jeffrey Hermanto / Okt 10 2009 16:45

      hmmm.. gampang kq😀

      
      #include &ltstdio.h&gt
      #include &ltconio.h&gt
      #include &ltstdlib.h&gt
      #include &lttime.h&gt
      
      int main(){
          int n,
               maxNum,
               searchNum;
          bool ketemu = false;
          printf("Jumlah Array : ");
          scanf("%d",&n);
          printf("Angka Maks : ");
          scanf("%d",&maxNum);
          int tabel[n];
          srand((unsigned)time(NULL));
          for (i=0;i<n;i++){
              tabel[i] = rand() % (maxNum + 1);
          }
          printf("Angka Dicari : ");
          scanf("%d",&searchNum);
          for (i=0;i<n;i++){
              if (tabel[i] == searchNum) {
                  printf("Data ditemukan pada indeks ke - %d\n",i);
                  ketemu = true;
              }
          }
          if (!ketemu){
              printf("Data tidak ditemukan\n");
          }
          getch();
          return 0;
      }
      
      
  5. Ifan / Nov 2 2009 19:21

    wahaha… masih bingung dengan rend aku mas ato mbak

    • Jeffrey Hermanto / Nov 2 2009 22:14

      rand() mudah kq dpahami..
      coba dbaca lagi penjelasannya..
      semoga berhasil😀

  6. rinal / Feb 1 2010 16:58

    salam kenal mas bisa minta tolong gimana buat permainan animeletters di c++ yang menggunakkan array dan fungsi random
    contoh nya
    A_t
    tebak kalimat tersebut:
    bila ditulis ant “benar”
    kalau salah ditulis “salah”
    bertempo waktu 5 detik

  7. joe el / Feb 1 2010 23:13

    salam knal mas ..
    bsa mnta tlong mas gmn cara buat program yg dpat mmbantu pelajar SD dlam perkaliannya. dengan menggunkan rand pastinya !!
    contoh : berapakah 6 x 7?
    plajar kmudian mngetik jawabannya, program akan mngecek jwban pelajar. jika jwbn benar maka akan muncul salah satu dri statement d bwah ini :
    very good!
    very nice !
    Exellent !!
    stelah respon tersebut d cetak, program akan brtanya soal prkalian lainnya, jka jwaban slah maka akn muncullah salah stu respon yg akan di cetak :
    no. please try again
    wrong answer
    no. keep trying !!
    stelah respon ini tercetak, kemudian program akan kmbali mmeminta jwaban yg bnar akan trus berulang sehingga pelajar berhasil menjawab dengan benaar.
    tOlong ya mass,
    mksih ya mas ….

    • Jeffrey Hermanto / Feb 7 2010 13:02

      mudah kq untuk buat program seperti itu, saya akan berikan contoh sederhananya seperti di bawah ini dan silahkan dikembangkan lebih lanjut😀
      tidak susah kq untuk mengembangkannya :p

      
                                                                               /*
      Program Tebak Angka antara 0-99
      
      */
      #include  <stdio.h> //definisi printf,scanf
      #include  <conio.h> //definisi getch
      #include  <stdlib.h>//definisi random,randomize
      #include   <time.h> //definisi randomize
      
      int main()
      {
      	 int i,         //banyaknya kesempatan menebak
      			skor,      //output : skor
      			x,         //nilai random antara 0-99
      			y;         //input : angka tebakan
      	  //inisialisasi nilai awal
      	 i=1;
      	 skor=100;
      	 //mengacak bilangan acak setiap kali program dijalankan
      	 srand((unsigned)time(NULL));
      	 x = rand()%100;	//menghasilkan bilangan acak antara 0-99
      	 //perulangan kesempatan menebak hingga 5 kali
      	 while (i<6)
      	 {
      		  //memasukkan nilai y
      		  printf("Masukkan angka antara 0-99 : ");
      		  scanf("%d",&y);
      		  //pengecekan nilai y terhadap x
      		  if (y==x)
      		  {
      				printf("You win, your score : %d\n",skor);
      				break;	//keluar dari perulangan
      		  }
      		  else if (y5)
      	 {
      		  printf("You lose, your score : %d\nThe answer : %d",skor,x);
      	  }
      	 getch();	//menahan output pada layar
      	 return(0);
      }
      
      

      silahkan dcoba untuk mengasah kemampuan..semoga bermanfaat😀

      – practice makes perfect –

  8. bruce / Feb 19 2010 12:40

    bang gimana caranya membuat program atau membuat typing tutor…tolong mas

    • Jeffrey Hermanto / Feb 21 2010 12:27

      mudah kan..
      tinggal generate sebuah soal, semisal “makan”

      kemudian cek input-an character inputan yg masuk, jika sama maka benar dan jika hingga akhir kata huruf2nya benar, maka soal itu telah terjawab

      semoga bermanfaat😀

      – practice makes perfect –

  9. iva / Nov 13 2010 21:06

    bisa dibantuin gag membuat kode verifikasi seperti mendaftar facebook.
    bila kode yg dmasukan benar maka bsa bergabung tapi kalau kode yg d masukkan salah harus mencoba kode yg baru n kode ne itu baru..bngunge buat kode baru itu secara otomatis…

    • Jeffrey Hermanto / Nov 13 2010 22:31

      Ini kode verifikasi buat di web beneran?
      Kalo di web beneran, langsung aja pake captcha..

      Kalau buat manual juga mudah kq..
      tinggal siapkan array of char
      looping sebanyak n character
      – lakukan random misal 0 -51
      – jika 0 – 25 maka ASCII A(65) + hasil random
      – jika 26-51 maka ASCII a(96) + hasil random
      – simpan di array index ke-i

      semoga bermanfaat😀

      • charles / Nov 27 2010 14:00

        kak, gm caranya bikin random dimulai tidak dari nol? maunya random dari 14-21
        thx

      • Jeffrey Hermanto / Nov 27 2010 14:03

        mudah kq tinggal :

        int x = rand() % 8 + 14;

        modulo 8 kan menghasilkan angka dari 0 – 7, kemudian ditambah 14 jadi hasil angka randomnya kan sekitar 14 – 21

        semoga bermanfaat😀

  10. charles / Nov 27 2010 14:07

    hmmm… trus kak. qlo saya mau bikn ascii yg dirandom 2 kali gm?
    tugas saya ini mau bikin kaya game geto. qlo gambarnya sama die ke buka, tapi qlo beda ke tutup lagi. geto. ud 2 minggu ga kelar ne ….

    • Jeffrey Hermanto / Nov 27 2010 16:08

      ya tinggal dari ASCII nya terserah mau pakai mulai dari 65 / 96 di tambah rand() % 26

      • charles / Nov 27 2010 17:06

        tapi saya masih ga ngerti knp harus angkanya 65 sama 96? rand()%26 bwt aplge?
        yg mw saya random t dari ascii 14 ampe 21 sebanyak 2 x.

      • Jeffrey Hermanto / Nov 28 2010 13:31

        65 itu kalo mau random huruf dari ‘A’ – ‘Z’
        96 itu kalo mau random huruf dari ‘a’ – ‘z’

        Terserah mau randomnya ky apa sesuai kebutuhan aja..

  11. naru_tio / Mar 20 2011 10:11

    mas, klo dev c menggunakan matriks gmna ya??

    • Jeffrey Hermanto Halimsetiawan / Nov 10 2011 14:01

      tinggal gunakan array untuk menyimpan matriksnya..

  12. MatMat / Mar 26 2011 14:23

    Kak, saya masih belum paham bagian

    srand((unsigned)time(NULL));

    itu logikanya gimana??

    • Jeffrey Hermanto Halimsetiawan / Nov 10 2011 14:00

      itu hanya masalah syntax saja..

  13. novi / Sep 23 2011 22:27

    trimakasih pengetahuannya..
    jadi ada inspirasi bwt tugas..

    • Jeffrey Hermanto Halimsetiawan / Nov 10 2011 13:58

      sama2,
      mantap semoga bermanfaat🙂

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: