Sunday, March 8, 2015

Fungsi-fungsi Pembulatan Angka pada PHP

Pada saat pemrograman php yang berkaitan dengan angka kadang kita memerlukan sebuah pembulatan angka. Pembulatan angka ini dibutuhkan ketika kita tidak memerlukan ketelitian yang terlalu tinggi, misalnya saja kita tidak memerlukan angka desimal. Seperti misalnya saat kita akan mengirim sebuah barang, dimana dibawah 1kg sampai dibawah 1.5kg dibulatkan menjadi 1kg kemudian diatas 1.5kg sampai dibawah 2.5kg dibulatkan menjadi 2kg dan seterusnya.

Untuk melalukan pembulatan tersebut, PHP menyediakan beberapa fungsi pembulatan seperti Ceil, Floor dan Round. Ceil merupakan pembulatan ke atas, Floor merupakan pembulatan kebawah sedangkan Round merupakan pembulatan ke bilangan terdekat sesuai jumlah desimal yang diinginkan. Fungsi-fungsi pembulatan ini berlaku untuk bilangan desimal.

Berikut ini beberapa fungsi PHP untuk menangani pembulatan angka desimal:

Fungsi Ceil

Adalah fungsi pembulatan angka keatas. Artinya bilangan desimal akan dibulatkan ke bilangan bulat terdekat diatasnya. Seperti misalnya bilangan 0.5 , 0.312 , 0.2 , 0.9 jika dibulatkan dengan fungsi Ceil akan menghasilkan angka 1.

Cara penulisan fungsi Ceil :
ceil(angka)
atau
ceil(variabel_angka_tipe_float)

Contoh penggunaan fungsi Ceil pada PHP :
 <?php  
 echo ceil(0.3)."<br/>"; //menghasilkan 1

 $panjang = 0.2345;    
 echo "Angka asli : ".$panjang."<br/>"; //angka asli  
 echo "Angka pembulatan : ".ceil($panjang); //angka hasil pembulatan  
 ?>  
Fungsi diatas akan menampilkan :
1
Angka asli : 0.2345
Angka pembulatan : 1

Fungsi Floor

Adalah fungsi pembulatan angka kebawah. Artinya bilangan desimal akan dibulatkan ke bilangan bulat terdekat dibawahnya. Seperti misalnya bilangan 0.5 , 0.312 , 0.2 , 0.9 jika dibulatkan dengan fungsi Floor akan menghasilkan angka 0.

Cara penulisan fungsi Floor :
floor(angka)
atau
floor(variabel_angka_tipe_float)

Contoh penggunaan fungsi Floor pada PHP :
 <?php  
 echo floor(0.3)."<br/>"; //menghasilkan 0

 $panjang = 0.2345;     
 echo "Angka asli : ".$panjang."<br/>"; //angka asli  
 echo "Angka pembulatan : ".floor($panjang); //angka hasil pembulatan  
 ?>  
Fungsi diatas akan menampilkan :
0
Angka asli : 0.2345
Angka pembulatan : 0

Fungsi Round

Adalah fungsi pembulatan umum dengan beberapa opsi yang bisa disetting. Pembulatan umum ini seperti misalnya 0.5 keatas akan dibulatkan ke atas dan 0.49 akan dibulatkan ke bawah. Bilangan hasil fungsi round ini berbeda dengan fungsi ceil dan floor, yaitu jika pada fungsi ceil dan floor kita menghasilkan bilangan bulat, namun pada fungsi round kita masih bisa menghasilkan bilangan desimal.

Dengan fungsi round, jumlah bilangan desimal pada hasil bisa kita tentukan jumlahnya. Selain angka, pada fungsi round disediakan opsi parameter tambahan yaitu presisi dan mode. kedua opsi ini bisa dikosongi dan bisa juga diisi, jika dikosongi maka parameter tersebut secara otomatis diset default.

Cara penulisan fungsi Round :
round(angka,presisi,mode);

Penjelasan format diatas:
  • angka, wajib diisi, merupakan angka yang akan dibulatkan
  • presisi, opsional, merupakan jumlah desimal bilangan hasil. Jika dikosongi maka dianggap nilai default yaitu 0.
  • mode, opsional, merupakan nilai konstan spesifik untuk mode round. Ada beberapa nilai mode yang diterapkan.
Berikut ini mode yang bisa diterapkan pada fungsi round :
  • PHP_ROUND_HALF_UP, merupakan nilai default. Membulatkan bilangan ke atas sesuai dengan ke presisian desimal, misalnya bilangan 0.5 dibulatkan menjadi 1.
  • PHP_ROUND_HALF_DOWN, membulatkan bilangan ke bawah sesuai dengan ke presisian desimal, misalnya bilangan 0.5 dibulatkan menjadi 0.
  • PHP_ROUND_HALF_EVEN, membulatkan angka ke angka genap terdekatnya, misalnya 1.5 dan 2.5 akan dibulatkan menjadi 2 serta 3.5 dan 4.5 akan dibulatkan menjadi 4.
  • PHP_ROUND_HALF_ODD, membulatkan angka ke angka ganjil terdekatnya, misalnya 0.5 dan 1.5 akan dibulatkan menjadi 1 serta 2.5 dan 3.5 akan dibulatkan menjadi 3.
Contoh penggunaan fungsi Round pada PHP:
 <!DOCTYPE html>  
 <html>  
 <body>  
 <?php  
 echo "Tanpa opsi:<br/>";  
 echo "0.49 => ".round(0.49)."<br/>"; // => 0  
 echo "0.5 => ".round(0.5)."<br/>"; // =>1  
 echo "<br/>";  
   
 echo "Dengan opsi presisi:<br/>";  
 echo "0.4325 (1)=> ".round(0.4325,1)."<br/>"; // => 0.4  
 echo "0.4325 (2)=> ".round(0.4325,2)."<br/>"; // => 0.43  
 echo "0.4325 (3)=> ".round(0.4325,3)."<br/>"; // => 0.433  
 echo "<br/>";  
   
 echo "Dengan opsi mode PHP_ROUND_HALF_UP:<br/>";  
 echo("1.5 => ".round(1.5,0,PHP_ROUND_HALF_UP) . "<br>"); //=>2  
 echo("2.5 => ".round(2.5,0,PHP_ROUND_HALF_UP) . "<br>"); //=>3  
 echo "<br/>";  
   
 echo "Dengan opsi mode PHP_ROUND_HALF_DOWN:<br/>";  
 echo("1.5 => ".round(1.5,0,PHP_ROUND_HALF_DOWN) . "<br>"); //=>1  
 echo("2.5 => ".round(2.5,0,PHP_ROUND_HALF_DOWN) . "<br>"); //=>2  
 echo "<br/>";  
   
 echo "Dengan opsi mode PHP_ROUND_HALF_EVEN:<br/>";  
 echo("1.5 => ".round(1.5,0,PHP_ROUND_HALF_EVEN) . "<br>"); //=>2  
 echo("2.5 => ".round(2.5,0,PHP_ROUND_HALF_EVEN) . "<br>"); //=>2  
 echo("3.5 => ".round(3.5,0,PHP_ROUND_HALF_EVEN) . "<br>"); //=>4  
 echo("4.5 => ".round(4.5,0,PHP_ROUND_HALF_EVEN) . "<br>"); //=>4  
 echo "<br/>";  
   
 echo "Dengan opsi mode PHP_ROUND_HALF_ODD:<br/>";  
 echo("1.5 => ".round(1.5,0,PHP_ROUND_HALF_ODD) . "<br>"); //=>1  
 echo("2.5 => ".round(2.5,0,PHP_ROUND_HALF_ODD) . "<br>"); //=>3  
 echo("3.5 => ".round(3.5,0,PHP_ROUND_HALF_ODD) . "<br>"); //=>3  
 echo("4.5 => ".round(4.5,0,PHP_ROUND_HALF_ODD) . "<br>"); //=>5  
 ?>  
 </body>  
 </html>  
Contoh diatas akan menghasilkan :
Contoh Fungsi Round PHP

Tanpa opsi:
0.49 => 0
0.5 => 1

Dengan opsi presisi:
0.4325 (1)=> 0.4
0.4325 (2)=> 0.43
0.4325 (3)=> 0.433

Dengan opsi mode PHP_ROUND_HALF_UP:
1.5 => 2
2.5 => 3

Dengan opsi mode PHP_ROUND_HALF_DOWN:
1.5 => 1
2.5 => 2

Dengan opsi mode PHP_ROUND_HALF_EVEN:
1.5 => 2
2.5 => 2
3.5 => 4
4.5 => 4

Dengan opsi mode PHP_ROUND_HALF_ODD:
1.5 => 1
2.5 => 3
3.5 => 3
4.5 => 5

Itulah penjelasan mengenai fungsi-fungsi PHP untuk pembulatan angka. Bagaimana jika kita mau membulatkan angka dengan kriteria sendiri atau mau membulatkan angka bukan desimal? Tentu fungsi-fungsi diatas tidak bisa digunakan secara langsung. Sebagai gantinya kita harus membuat fungsi pembulatan sendiri yang bisa diatur kriterianya. Dan pada artikel selanjutnya insyaAllah akan dijelaskan cara membuat fungsi pembulatan yang bisa diatur sendiri kriteria pembulatannya..

4 komentar: