😈
ReverseMe
  • Introduction
  • References
  • ReverseMe
    • Introduction
      • What is Reverse Engineering?
      • Legality of Reverse Engineering
      • Reverse Engineering Communities
  • Programming Language
    • C
      • Basic
        • Pointer
        • Casting
      • Reference
        • stdio.h
          • fclose()
          • fopen()
          • fseek()
          • ftell()
          • fgetc()
          • fgets()
          • fread()
          • fprintf()
          • fwrite()
          • printf()
          • putchar()
          • puts()
          • sprintf()
          • snprintf()
        • stdlib.h
          • malloc()
          • calloc()
          • realloc()
          • free()
          • rand()
          • srand()
        • string.h
          • strcat()
          • strncat()
          • strcmp()
          • strncmp()
          • strcpy()
          • strncpy()
        • time.h
          • time()
  • Reversing Fundamentals
    • Stripped and Unstripped
  • Tools
    • file
    • strings
    • ltrace
    • ghidra
  • CTF Writeups
    • HackTheBox Challenges
      • Baby RE
      • You Cant C Me
  • ABOUT ME
    • Mail
    • LinkedIn
    • GitHub
Powered by GitBook
On this page
  • Sintaks
  • Contoh Penggunaan
  • 1. Menginisialisasi seed dengan waktu saat ini
  • Penjelasan Tambahan
  1. Programming Language
  2. C
  3. Reference
  4. stdlib.h

srand()

Menginisialisasi seed untuk generator bilangan acak dalam C

Previousrand()Nextstring.h

Last updated 2 months ago

Fungsi srand() digunakan untuk mengatur nilai seed bagi generator bilangan acak yang dipakai oleh fungsi rand().

Dengan menginisialisasi seed, kita dapat memastikan bahwa urutan bilangan acak yang dihasilkan berbeda setiap kali program dijalankan.

Sintaks

void srand(unsigned int seed);
  • seed âžœ Nilai integer yang digunakan sebagai seed untuk generator bilangan acak. Biasanya, digunakan sebagai seed agar seed berubah setiap detik.

Contoh Penggunaan

1. Menginisialisasi seed dengan waktu saat ini

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    // Inisialisasi seed dengan waktu saat ini agar hasil acak berbeda tiap kali program dijalankan
    srand(time(NULL));

    // Menghasilkan dan menampilkan 5 bilangan acak
    for (int i = 0; i < 5; i++) {
        int nilaiAcak = rand() % 100;  // Bilangan antara 0 dan 99
        printf("Nilai acak %d: %d\n", i + 1, nilaiAcak);
    }

    return 0;
}

Hasilnya:

Nilai acak 1: 85
Nilai acak 2: 3
Nilai acak 3: 28
Nilai acak 4: 95
Nilai acak 5: 16

Penjelasan Tambahan

  • Tanpa srand(): Jika tidak memanggil srand(), generator bilangan acak akan menggunakan seed default yang biasanya sama tiap kali program dijalankan, sehingga urutan bilangan acak akan selalu sama.

  • Menggunakan time(NULL): Fungsi time(NULL) mengembalikan waktu saat ini dalam detik, yang membuat seed berubah secara otomatis tiap kali program dijalankan.

  • Seed Custom: Kamu juga bisa menggunakan nilai tetap sebagai seed jika ingin menguji urutan bilangan acak yang sama setiap kali program dijalankan (misalnya, srand(12345)).

time(NULL)