Langsung ke konten utama

Iklan





Rand dan Srand pada Bahasa C

Angka acak dalam bahasa C dapat diciptakan dengan menggunakan fungsi rand() dan srand(), dimana perbedaan dari kedua fungsi tersebut akan dibahas pada materi berikut ini:

satu, rand(); fungsi rand digunakan pada bahasa C untuk melakukan generate angka acak. Jika dilakukan generate angka acak secara berurutan dengan fungsi rand(), maka akan menghasilkan urutan yang sama pula lagi dan lagi setiap kali program tersebut dijalankan. Misalnya, melakukan generate lima angka acak pada bahasa C dengan bantuan dari fungsi rand() dalam sebuah looping, maka setiap kali dilakukan kompilasi program, maka output yang dihasilkan adalah sama sesuai dengan urutan angka.

Sintak:
int rand(void);

returns a pseudo-random number in the range of 0 to RAND_MAX.
RAND_MAX: is a constant whose default value may vary
between implementations but it is granted to be at least 32767.

// Program bahasa C untuk

// menghasilkan angka acak

#include <stdio.h>

#include <stdlib.h>

 

// Driver program

int main(void)

{

 

// Program berikut akan

// menciptakan urutan angka

// acak dalam setiap program

// yang dijalankan

for(int i = 0; i<5; i++)

printf(" %d ", rand());

 

return 0;

}


Catatan: Program tersebut akan menghasilkan urutan sama dari angka acak setiap kali program dijalankan.

Output 1:
453 1276 3425 89

Output 2:
453 1276 3425 89

Output n:
453 1276 3425 89

dua, srand(); fungsi srand() berfungsi untuk mengatur titik awal untuk menghasilkan sekumpulan pseudo-random integers. Jika srand() tidak dipanggil, maka rand() seed akan dipanggil ketika srand(1) telah dipanggil pada awal program. Setiap nilai seed yang disiapkan generator akan berbeda pada titik awal.

Sintak:
void srand(unsigned seed);

Seeds the pseudo-random number generator used by rand()
with the value seed.

Catatan: pseudo-random number generator hanya akan menghasilkan seed sekali, sebelum rand() lainnya dipanggil, dan pada awal mula program dijalankan. Tidak harus dilakukan seed berulang setiap kali akan melakukan generate batch baru dari preudo-random number.

Praktek standar adalah dengan menggunakan hasil dari panggilan untuk srand(time(0)) sebagai seed. Namun, time() mengembalikan nilai time_t yang bervariasi dan karenanya preudo-random number bervariasi untuk setiap panggilan program.

// Program bahasa C untuk

// menghasilkan angka secara

// acak

#include <stdio.h>

#include <stdlib.h>

#include<time.h>

 

// Driver program

int main(void)

{

// Program berikut akan

// menciptakan ukuran angka

// secara acak setiap kali

// program dijalankan

 

// Menggunakan waktu saat ini

// sebagai sumber generator

// pengacakan angka

srand(time(0));

 

for(int i = 0; i<5; i++)

 printf(" %d ", rand());

 

return 0;

}


Catatan: Program tersebut akan menghasilkan urutan berbeda dari angka acak setiap kali program dijalankan.

Output 1:
453 1432 325 89

Output 2:
8976 21234 45 8975

Output n:
563 9873 12321 24132

Bagaimana srand() dan rand() berkaitan satu sama lain?
srand() adalah sekumpulan seed yang digunakan oleh rand untuk generate angka secara acak. Jika srand tidak dipanggil sebelum pemanggilan pertama rand, maka seolah-olah dilakukan pemanggilan srand(1) untuk mengatur seed menjadi satu.

Sederhananya, srand() - Mengatur seed untuk fungsi rand().


Iklan

Komentar

  1. Apakah keluaran nilai dari fungsi int rand(void) dalam bahasa C?

    BalasHapus
    Balasan
    1. Fungsi library bahasa C untuk int rand(void) akan mengembalikan bilangan acak semu dalam rentang nilai antara 0 hingga RAND_MAX. RAND_MAX adalah konstanta yang nilai default-nya mungkin berbeda-beda pada setiap implementasi progran, namun setidaknya angka yang diberikan adalah 32767.

      Hapus
  2. Secara sederhana, apa fungsi dari srand?

    BalasHapus
    Balasan
    1. srand() adalah fungsi yang digunakan untuk menginisialisasi bilangan acak semu yang dihasilkan oleh fungsi rand(). Fungsi tersebut tidak mengembalikan nilai apapun.

      Hapus
  3. Apa manfaat dari program pengacakan angka dalam bahasa C?

    BalasHapus
    Balasan
    1. Biasanya bermanfaat untuk pembuatan program yang berkaitan dengan sistem keamanan, biasanya sebuah sistem keamanan yang baik selain memiliki nama akun pengguna yang unik beserta password, juga selalu diikuti dengan beberapa kode unik tambahan yang disertakan setiap kali user atau pengguna akan memasuki akun tersebut, dan biasanya bersifat acak.

      Hapus
    2. untuk dapat menciptakan pola yang acak tersebut, dalam bahasa C salah satu alternatif yang dapat digunakan adalah menggunakan fungsi rand dan srand,

      Hapus

Posting Komentar

Respon komentar 7 x 24 jam, so please be patient :D