• Beranda
  • »
  • Artikel
  • »
  • Perbedaan Antara fungsi rand() dan mt_rand() Pada PHP

Perbedaan Antara fungsi rand() dan mt_rand() Pada PHP

previous Previous Page

Fungsi rand() dan fungsi mt_rand() pada dasarnya mempunyai kegunaan untuk membuat suatu angka acak. Angka acak ini dapat digunakan untuk berbagai keperluan seperti pada enkripsi untuk mengacak huruf sesuai dengan kode asciinya atau memberikan ucapan selamat kepada pengguna setiap kali mereka mengunjungi suatu website sesuai dengan angka acak yang sudah diciptakan.

Fungsi rand() merupakan fungsi dasar dari proses pengacakan yang akan menghasilkan angka yang lebih pendek jika dibandingkan dengan fungsi mt_rand(). Jika fungsi rand() dieksekusi tanpa parameter nilai min dan nilai max, rentang angka yang dihasilkan di mulai dari 1 sampai dengan 32767. Fungsi rand() karena masih dasar hasilnya akan lebih mudah ditebak jika dibandingkan dengan mt_rand().

Fungsi mt_rand() merupakan fungsi yang jauh lebih kompleks dari pada fungsi rand() yang akan menghasilkan angka yang lebih panjang jika dibandingkan dengan fungsi rand(). Singkatan "mt" pada mt_random() di sini adalah "Marsene Twister" yang merupakan nama dari algoritma yang digunakan pada proses pengacakan. Jika fungsi mt_rand() dieksekusi tanpa parameter nilai min dan nilai max, rentang angka yang dihasilkan di mulai dari 1 sampai dengan 2147483647.

Penulisan fungsi :

1.  <?php
2.  $acak=rand(min, max);
3.  $acak=mt_rand(min, max);
4.  
5.  $nilai_max=getrandmax();
6.  $nilai_max=mt_getrandmax();
7.  ?>

Kedua fungsi tersebut mempunyai kesamaan dalam bentuk parameter yang diberikan yaitu nilai min dan nilai max. Walaupun fungsi rand() mempunyai nilai max 32767 pada nilai rentannya, jika parameternya diisikan melebihi rentang tersebut maka nilai yang dihasilkan akan mengikuti parameter max yang sudah diberikan. Hal yang sama juga berlaku pada mt_rand() jika nilai max ditetapkan didalam parameter max, maka angka acak yang dihasilkan akan mengikuti parameter tersebut.

Kode Script :

1.  <?php
2.     echo "Hasil normal : <br />";
3.     echo rand()."<br />";
4.     echo rand()."<br />";
5.     echo mt_rand()."<br />";
6.     echo mt_rand()."<br /><br />";
7.     
8.     echo "Hasil dengan nilai min 1 dan max 100 : <br />";
9.     echo rand(1,100)."<br />";
10.    echo rand(1,100)."<br />";
11.    echo mt_rand(1,100)."<br />";
12.    echo mt_rand(1,100)."<br /><br />";
13.    
14.    echo "Hasil dengan nilai min 1 dan max 1000000 : <br />";
15.    echo rand(1,1000000)."<br />";
16.    echo rand(1,1000000)."<br />";
17.    echo mt_rand(1,1000000)."<br />";
18.    echo mt_rand(1,1000000)."<br /><br />";
19. ?>
20. 

Hasil Script :

Hasil normal :
18250
5819
360173076
431980139

Hasil dengan nilai min 1 dan max 100 :
69
81
51
22

Hasil dengan nilai min 1 dan max 1000000 :
110047
778046
171478
660002

Hal lain yang membedakan antara kedua fungsi tersebut adalah kecepatan eksekusi dari keduanya. Fungsi rand() karena lebih sederhana jika dibandingkan dengan mt_rand(), maka akan menghasilkan waktu eksekusi yang lebih singkat jika dibandingkan dengan mt_rand(). Hal ini tentunya dapat dijadikan pertimbangan dalam menentukan fungsi mana yang lebih cocok untuk diterapkan sesuai dengan keperluan pada program yang Anda digunakan.

Kode Script :

1.  <?php
2.    $awal=time();
3.    for($i=1;$i<1000000;$i++){ //eksekusi selama 1000000 kali
4.       $acak=rand(1,1000000);
5.    }
6.    $akhir=time();
7.    $wkt_eksekusi=$akhir-$awal;
8.    echo "Waktu awal : ".$awal."<br>";
9.    echo "Waktu akhir : ".$akhir."<br>";
10.   echo "Waktu eksekusi : ".$wkt_eksekusi." detik<br><br>";
11.   
12.   $awal=time();
13.   for($i=1;$i<1000000;$i++){ //eksekusi selama 1000000 kali
14.      $acak=mt_rand(1,1000000);
15.   }
16.   $akhir=time();
17.   $wkt_eksekusi=$akhir-$awal;
18.   echo "Waktu awal : ".$awal."<br>";
19.   echo "Waktu akhir : ".$akhir."<br>";
20.   echo "Waktu eksekusi : ".$wkt_eksekusi." detik<br><br>";
21. ?>

Kode Script :

Hasil Script :

Waktu awal : 1511021502
Waktu akhir : 1511021505
Waktu eksekusi : 3 detik

Waktu awal : 1511021505
Waktu akhir : 1511021509
Waktu eksekusi : 4 detik

   0   1.790

Kategori : tag iconphp

facebooktwittergoogle pluswhatapplinkedinpinterest

previous Previous Page

Tinggalkan Balasan

Nama Pengguna* :

Email* :

 

Formulir ini hanya bagi member yang sudah terdaftar. disini.

Belum terdaftar? silahkan Daftar disini.

Mengirim Komentar

Setiap pengunjung situs ini dapat memposting komentar disini, namun tidak semua komentar dapat ditampilkan. Gunakan kalimat baku bahasa Indonesia yang mudah dimengerti. Dilarang memposting kalimat yang berisi ujaran kebencian, SARA, pornografi, perjudian dan spam. Komentar harus sesuai dengan topik. Untuk bahasan lainnya yang lebih mendalam dapat menggunakan sarana forum. Anda dapat mengirimkan suatu pertanyaan dan member lainnya akan menjawab pertanyaan Anda.

News Letters

Silahkan masukkan email Anda untuk berlangganan informasi kami

Polling

1. Apakah website ini menambah pengetahuan Anda?
 Ya
 Tidak
 Tidak Tahu
2. Seberapa sering Anda mengunjungi website ini?
 Sering
 Jarang
 Tidak Pernah
3. Apakah penilaian Anda terhadap website ini, jika melihat dari segi konten/isi?
 Sangat Bagus
 Bagus
 Cukup Bagus
 Kurang Bagus
4. Apakah penilaian Anda terhadap website ini, jika melihat dari segi tampilan?
 Sangat Bagus
 Bagus
 Cukup Bagus
 Kurang Bagus
5. Untuk meningkatkan kualitas website ini, Apakah saran Anda?

 

Silahkan login terlebih dahulu untuk mengirimkan polling. disini.

Belum terdaftar? silahkan Daftar disini.