• Beranda»
  • artikel»
  • perbedaan antara fungsi rand() dan mt_rand() pada php

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

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. ?>

Hasil Script :

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

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

   0   1.080

Kategori : PHP

facebooktwittergoogle pluswhatapplinkedinpinterest

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.