Rand dan Srand Bahasa C dan Fungsinya
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;
}
Output 1:
453 1276 3425 89
Output 2:
453 1276 3425 89
Output n:
453 1276 3425 89
Menggunakan rand untuk Rentang Tertentu: Seringkali, pengembang tidak hanya membutuhkan bilangan acak dalam rentang 0 hingga RAND_MAX, tetapi dalam rentang yang lebih spesifik, misalnya antara 1 dan 100. Untuk melakukan ini, pengembang bisa menggunakan operasi modulus dan penyesuaian sederhana.
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main() {
// Mengatur seed
// berdasarkan waktu saat ini
srand(time(NULL));
int min = 1;
int max = 100;
int random_number =
(rand() % (max - min + 1)) + min;
printf(
"Bilangan acak antara
%d dan %d: %d\n",
min, max, random_number);
return 0;}
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;
}
Output 1:
453 1432 325 89
Output 2:
8976 21234 45 8975
Output n:
563 9873 12321 24132
Keterkaitan Antara srand() dan rand()
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().- Kesederhanaan dan Kemudahan Penggunaan: Salah satu kelebihan utama dari rand dan srand adalah kesederhanaannya. Kedua fungsi ini sangat mudah digunakan dan dipahami, bahkan oleh pemrogram yang baru belajar C. Hanya dengan beberapa baris kode, pengembang sudah dapat menghasilkan bilangan acak.
- Portabilitas: Fungsi rand dan srand merupakan bagian dari standar bahasa C (C Standard Library), sehingga fungsi tersebut didukung oleh hampir semua kompilator C. Ini membuat kode yang menggunakan rand dan srand sangat portabel dan dapat dijalankan di berbagai platform tanpa perlu modifikasi.
- Kontrol atas Urutan Bilangan Acak: Dengan srand, pengembang dapat mengatur seed dari generator bilangan acak, yang memberi kontrol atas urutan bilangan acak yang dihasilkan. Ini sangat berguna dalam pengujian dan debugging, dimana pengembang mungkin ingin menghasilkan urutan bilangan acak yang sama setiap kali untuk mereproduksi kondisi tertentu.
- Cepat dan Efisien: Fungsi rand dan srand dirancang untuk bekerja dengan cepat dan efisien. Fungsi tersebut memiliki overhead yang sangat kecil, sehingga cocok digunakan dalam aplikasi yang membutuhkan banyak bilangan acak dengan performa tinggi.
- Fleksibilitas dalam Penggunaan Rentang: Walaupun rand menghasilkan bilangan acak dalam rentang 0 hingga RAND_MAX, pengembang dapat dengan mudah mengubah rentang ini sesuai kebutuhan dengan menggunakan operasi aritmatika sederhana. Ini memberikan fleksibilitas untuk menghasilkan bilangan acak dalam rentang yang spesifik.
- Mendukung Banyak Aplikasi: Fungsi rand dan srand digunakan dalam berbagai jenis aplikasi, termasuk permainan, simulasi, pemodelan, kriptografi, dan lain-lain. Keberagaman penggunaan ini menunjukkan betapa serbagunanya kedua fungsi ini.
Kesimpulan
- Penjelasan Singkat, Perintah Evaluasi dari Operand dalam Bahasa C
- 3 Fungsi Utama Tanda Koma pada Bahasa C dan C++
- 2 Fungsi Utama Operator Sizeof pada Bahasa C
- 2 Cara Penggunaan Operand untuk Operator Sizeof pada Bahasa C
- 2 Fungsi Utama Operator Koma dalam Bahasa C
- Hasil Operator Koma Sebagai Nilai I pada Bahasa C
- Penjelasan Singkat, Perintah Operand Untuk Operator Logika Bahasa C
7 komentar untuk "Rand dan Srand Bahasa C dan Fungsinya"
Hubungi admin melalui Wa : +62-896-2414-6106
Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.
Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.
- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -
Apakah keluaran nilai dari fungsi int rand(void) dalam bahasa C?
BalasHapusFungsi 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.
HapusSecara sederhana, apa fungsi dari srand?
BalasHapussrand() adalah fungsi yang digunakan untuk menginisialisasi bilangan acak semu yang dihasilkan oleh fungsi rand(). Fungsi tersebut tidak mengembalikan nilai apapun.
HapusApa manfaat dari program pengacakan angka dalam bahasa C?
BalasHapusBiasanya 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.
Hapusuntuk dapat menciptakan pola yang acak tersebut, dalam bahasa C salah satu alternatif yang dapat digunakan adalah menggunakan fungsi rand dan srand,
Hapus