Sabtu, 14 November 2015

PHP menyediakan beberapa fungsi bawaan untuk memformat tampilan angka. Dalam tutorial belajar PHP kali ini kita akan membahas salah satunya, yakni fungsi number_format(). Fungsi ini juga bisa digunakan untuk menformat angka agar sesuai dengan penulisan mata uang rupiah.

- Pengertian Fungsi number_format -

Fungsi number_format() adalah fungsi bawaan PHP yang bisa digunakan untuk memformat tampilan angka, baik itu angka integer maupun float. Dengan memformat tampilan angka, akan membuatnya lebih ‘cantik’ dan mudah dibaca. Selain itu fungsi ini juga akan membulatkan atau menambahkan angka “0” dibelakang koma jika dibutuhkan.
Fungsi number_format() memiliki 2 buah cara penulisan, yakni dengan 2 argumen atau 4 argumen. Untuk fungsi dengan 2 argumen, berikut adalah format dasar penulisannya:


string number_format ( float $number [, int $decimals = 0 ] )
  • Hasil akhir fungsi ini bertipe string.
  • Argumen pertama ($number) membutuhkan input nilai angka yang akan diformat. Argumen ini bertipe float, tapi bisa juga bisa diisi dengan nilai integer.
  • Argumen kedua ($decimals) bersifat opsional. Argumen ini menentukan berapa jumlah angka desimal (angka di belakang koma) yang dibutuhkan. Apabila tidak diisi, dianggap sebagai 0.
Langsung saja kita lihat contoh penggunaan fungsi number_format() ini:


<?php

$angka = 1999.12345;
$angka_format = number_format($angka);
echo $angka_format;
// 1,999

?>



Dapat terlihat, fungsi number_format() akan “membuang” seluruh bagian desimal dari angka diatas. Ini terjadi karena secara default, fungsi ini menggunakan 0 sebagai jumlah digit desimal (angka di belakang koma).
Sebenarnya fungsi number_format() tidak benar-benar “membuang” nilai desimal, tetapi membulatkannya, seperti contoh berikut:

<?php
$angka = 1999.99;
$angka_format = number_format($angka);
echo $angka_format;
// 2,000
?>

Dapat terlihat bahwa nilai 1999.99 akan dibulatkan menjadi 2,000.
Dengan menambahkan argumen kedua, kita bisa menentukan berapa digit desimal yang diperlukan:


<?php
$angka = 1999.888;
$angka_format = number_format($angka,2);
echo $angka_format;
// 1,999.89
?>



Kali ini fungsi number_format() akan membatasi 2 digit desimal. Selain itu dapat anda lihat bahwa fungsi ini juga membulatkan nilai desimalnya.
Bagaimana jika angka awal tidak tidak memiliki angka desimal? Mari kita lihat:

<?php
$angka = 1999;
$angka_format = number_format($angka,3);
echo $angka_format;
// 1,999.000
?>



Hasilnya, string akhir akan ditambahkan angka “0” pada bagian desimalnya. Dengan demikian kita bisa membuat format angka dengan panjang seragam.
Perhatikan juga bahwa PHP tetap menggunakan tanda koma “ , ” sebagai pemisah nilai ribuan, dan titik “ . ” sebagai pemisah nilai desimal. Ini adalah aturan penulisan di Amerika. Nantinya, dengan fungsi number_format() kita juga bisa mengubah format ini agar sesuai dengan aturan penulisan angka di Indonesia, dimana tanda titik digunakan sebagai pemisah ribuan, dan tanda koma sebagai pemisah nilai desimal.
Bentuk penulisan lain dari fungsi number_format() membutuhkan 4 argumen. Berikut format dasar penulisannya:
string number_format ( float $number , int $decimals = 0 ,
string $dec_point = "." , string $thousands_sep = "," )


Format penulisan diatas terlihat rumit, namun sebenarnya cukup sederhana. Argumen ketiga dan keempat fungsi number_format() digunakan untuk menentukan karakter apa sebagai pemisah nilai ribuan dan nilai desimal.
Sebagai contoh, karena di Indonesia kita menggunakan karakter titik sebagai pemisah angka ribuan dan karakter koma sebagai pemisah desimal, saya bisa memformat angka tersebut dengan fungsi number_format(), seperti contoh berikut:



$angka = 1999.12345;
$angka_format = number_format($angka,2,",",".");
echo $angka_format;
// 1.999,12




Dapat terlihat sekarang, angka akan ditampilkan dalam format ‘umum’ yang kita gunakan sehari-hari. Lebih jauh lagi, kita bisa menambahkan string “Rp. ” sebagai awalan agar hasilnya pas untuk nilai mata uang rupiah. Berikut contohnya:

<?php

$angka = 3050145.756;
$angka_format = number_format($angka,2,",",".");
echo "Rp. ".$angka_format;
// Rp. 3.050.145,76

?>



Dalam kode diatas saya menyambungkan awal “Rp. ” dengan string hasil fungsi number_format(). Tampilan tersebut cocok digunakan untuk hasil akhir angka mata uang untuk membuat laporan yang banyak melibatkan nilai uang.
Dalam tutorial PHP kali ini kita telah membahas salah satu fungsi praktis untuk memformat angka. Fungsi number_format() akan sering anda gunakan untuk mempercantik hasil akhir program yang melibatkan angka.