Sunday, March 8, 2015

Membuat Fungsi Pembulatan Sendiri pada PHP

Kita bisa membuat fungsi pembulatan angka sendiri untuk membuat membulatkan angka dengan kriteria khusus yang tidak disebutkan pada fungsi-fungsi PHP untuk pembulatan angka. Pada tulisan sebelumnya kita telah mengenal fungsi-fungsi php untuk pembulatan angka. Fungsi-fungsi tersebut sebetulnya sudah cukup lengkap dan menyediakan banyak opsi terutama fungsi round.

Namun baru-baru ini saya mengalami kasus untuk membulatkan angka dengan ke presisian 0.5 bukan lagi satu desimal, dua desimal dan seterusnya. Misalnya angka 1.25 dibulatkan menjadi 1.5 lalu 1.55 juga dibulatkan menjadi 1.5. Dengan demikian saya perlu sebuah fungsi untuk membulatkan angka dengan kriteria tertentu, misalnya desimal 0-0.2 dibulatkan jadi 0 lalu 0.21 sampai 0.65 dibulatkan jadi 0.5 dan seterusnya.

Untuk membuat pembulatan dengan kriteria sendiri, kita bisa menggunakan fungsi explode yang ada pada PHP. Prinsipnya kita ambil dulu nilai desimalnya dengan memecah angka menjadi dua bagian, yaitu bagian bilangan bulat dan desimal. Untuk membaginya kita bisa menggunakan pemecah titik pada fungsi explode.

Setelah mendapatkan nilai pecahan selanjutnya kita bisa mulai membuat kriteria pembulatan yang tentunya terserah kita sendiri. Misalnya saja saya mau buat kriteria berikut ini :
  • Nilai 0 sampai 0.20 dibulatkan menjadi 0
  • Nilai 0.21 sampai 0.7 dibulatkan menjadi 0.5
  • Nilai 0.71 sampai 1 dibulatkan menjadi 1
Setelah ditentukan kriterianya selanjutnya kita bisa mulai membuat proses pembulatan didalam fungsi sehingga nanti bisa kita panggil sewaktu-waktu. Berikut ini contoh fungsi pembulatan sendiri yang saya buat berdasarkan kriteria diatas :
 <?php  
 function bulatkan($angka)  
 {  
 $exp = explode('.',$angka);  
 if(count($exp) == 2)  
     {  
     $p = "0.".$exp[1];  
     if($p<0.21) {    $t=0;}  
     else if (($p>0.20) AND ($p<0.71)) {$t=0.5;}  
     else $t=1;  
     $r=$exp[0] + $t;  
     return $r;  
     }  
     else return $angka;  
 }  
 ?>  
Kemudian ini contoh cara menggunakan fungsi pembulatan diatas:
 <!DOCTYPE html>  
 <html>  
 <body>  
 <h1>Contoh Fungsi Pembulatan Buatan Sendiri</h1>  
 <?php  
 function bulatkan($angka)  
 {  
 $exp = explode('.',$angka);  
 if(count($exp) == 2)  
     {  
     $p = "0.".$exp[1];  
     if($p<0.22) {    $t=0;}  
     else if (($p>0.21) AND ($p<0.7)) {$t=0.5;}  
     else $t=1;  
     $r=$exp[0] + $t;  
     return $r;  
     }  
     else return $angka;  
 }  
   
 $angka = 0.19826;  
 echo "Angka asli : ".$angka."<br/>";  
 echo "Hasil Pembulatan : ".bulatkan($angka)."<br/>";  
 echo "<br/>";  
 $angka = 0.32172;  
 echo "Angka asli : ".$angka."<br/>";  
 echo "Hasil Pembulatan : ".bulatkan($angka)."<br/>";  
 $angka = 0.63425;  
 echo "<br/>";  
 echo "Angka asli : ".$angka."<br/>";  
 echo "Hasil Pembulatan : ".bulatkan($angka)."<br/>";  
 $angka = 0.76493;  
 echo "<br/>";  
 echo "Angka asli : ".$angka."<br/>";  
 echo "Hasil Pembulatan : ".bulatkan($angka)."<br/>";  
 echo "<br/>";  
 ?>  
 </body>  
 </html>  
Dan berikut ini hasil dari program diatas:
Contoh Fungsi Pembulatan Buatan Sendiri

Angka asli : 0.19826
Hasil Pembulatan : 0

Angka asli : 0.32172
Hasil Pembulatan : 0.5

Angka asli : 0.63425
Hasil Pembulatan : 0.5

Angka asli : 0.76493
Hasil Pembulatan : 1

Fungsi diatas dapat dimodifikasi dengan kriteria-kriteria yang lain misalnya untuk membulatkan bilangan desimal menjadi yang lebih besar seperti puluhan, ratusan dan ribuan dan seterusnya.

0 komentar

Post a Comment