Menampilkan Angka Acak / Random pada pemrograman C++
Jagat Koding - Angka Acak atau random terkadang kita perlukan untuk menangani beberapa kasus pada kehidupan sehari-hari, misalkan untuk menentukan urutan penampilan suatu ajang kompetisi agar adil dan lain sebagainya.
Kita juga bisa menggunakan bahasa pemrograman C++ untuk menampilkan suatu bilangan acak. Berikut ini adalah Script untuk menampilkan satu bilangan acak pada pemrograman c++:
#include<iostream>
#include<stdlib.h>
#include<time.h>
using namespace std;
int main(){
int angka;
srand(time (0));
angka = rand();
cout<<angka;
return 0;
}
Coba kalian ketikkan script tersebut pada compiller c++ baik dev c++ ataupun yang lainnya agar kita bisa mengetahui hasil outputnya. Setelah kalian ketikkan kode tersebut, coba compille and run sebanyak 3 kali dan amati output yang dihasilkan. Di PC saya ketika saya compille and run sebanyak 3 kali menghasilkan output berikut:
Percobaan 1
15447
--------------------------------
Process exited after 0.05333 seconds with return value 0
Press any key to continue . . .
Percobaan 2
15643
--------------------------------
Process exited after 0.07225 seconds with return value 0
Press any key to continue . . .
Percobaan 3
15735
--------------------------------
Process exited after 0.1399 seconds with return value 0
Press any key to continue . . .
Dapat kita amati bersama kalau ketiga outputan tersebut memiliki hasil angka yang berbeda, tetapi angka yang dihasilkan sangat besar. Bagaimana cara agar angka yang dihasilkan bisa lebih kecil atau istilahnya kita berikan range atau batasan?
Kita bisa memanfaatkan operator modulus atau sisa bagi untuk memberikan batasan terhadap angka yang ingin ditampilkan. Misal kita ingin menampilkan angka hingga angka 9, kita bisa memberikan operasi modulus pada fungsi rand() sehingga script nya sebagai berikut:
#include<iostream>
#include<stdlib.h>
#include<time.h>
using namespace std;
int main(){
int angka;
srand(time (0));
angka = rand() % 10;
cout<<angka;
return 0;
}
Misal program rand() menghasilkan angka tertentu, maka akan di sisa bagikan dengan angka 10 sehingga akan menghasilkan nilai maksimal 9 karena tidak mungkin suatu bilangan di operasikan sisa bagi dengan angka 10 menghasilkan sisa 10. Berikut contohnya:
1 % 10 = 1
2 % 10 = 2
3 % 10 = 3
178666 % 10 = 6 dan seterusnya ...
Untuk mengetahui hasil dari operasi sisa bagi kalian bisa menggunakan script berikut ini agar tidak menghitung secara manual.
#include<iostream>
using namespace std;
int main(){
int a = 178666;
int b = a % 10;
cout << b;
}
Penjelasan
Rand() digunakan untuk memunculkan sebuah angka acak dengan menggunakan bahasa pemrograman c++. Tetapi jika kita hanya menggunakan rand() saja, akan ada kelemahan yang akan kita temukan. Kelemahannya adalah angka yang kita jalankan nilainya akan tetap meskipun kita sudah menjalankannya beberapa kali.
Coba kita praktekkan bersama-sama dengan menjalankan script berikut:
#include<iostream>
#include<stdlib.h>
using namespace std;
int main(){
int angka;
angka = rand();
cout<<angka;
return 0;
}
Ketika kita compille berkali-kali, program akan menampilkan angka yang sama. Hal ini disebabkan karena angka acak sudah disimpan didalam sebuah variable dengan nama angka dan diletakkan disuatu tempat pada memori sehingga ketika kita jalankan ulang akan menghasilkan angka yang tetap.
Untuk mengatasi hal tersebut, kita bisa memanfaatkan srand() agar angka yang ditampilkan berubah menjadi angka yang lain. Fungsi srand() adalah menentukan titik awal untuk menghasilkan serangkaian bilangan bulat secara acak.
Intinya rand() dan srand() saling berkaitan untuk menentukan bilangan acak yang berbeda. Kalau ada pemahaman yang lain bisa cantumkan di kolom komentar ya ...
Terahir, berikut kita akan menampilkan bilangan acak dengan batas angka 99. Jadi kita akan memanfaatkan operasi modulus dengan angka 100 terhadap angka acak yang muncul. Berikut adalah scriptnya:
#include<iostream>
#include<stdlib.h>
#include<time.h>
using namespace std;
int main(){
int angka;
srand(time (0));
angka = rand() % 100;
cout<<angka;
return 0;
}
Silahkan compille and run berkali kali, dan amati hasil outputnya. Sekian pembahasan kali ini semoga bermanfaat.
Thx min informasinya
ReplyDeletesama sama kak
Delete