Tutorial PHP: Cara Memformat Tampilan Angka dalam PHP (Fungsi number_format)

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" di belakang koma jika dibutuhkan.

Fungsi number_format() memiliki 2 cara penulisan, yakni dengan 2 argumen atau 4 argumen. Untuk fungsi dengan 2 argumen, berikut 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
?>

Hasilnya, nilai 1999.99 akan dibulatkan menjadi 2,000.

Dengan menambahkan argumen kedua, kita bisa menentukan jumlah 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() dibatasi dengan 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 coba:

<?php
  $angka = 1999;
  $angka_format = number_format($angka,3);

  echo $angka_format;  // 1,999.000
?>

Hasilnya, string akhir akan ditambah angka "0" pada bagian desimal. 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 pecahan. 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 pecahan.

Bentuk penulisan lain dari fungsi number_format() butuh 4 argument. 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:

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

32 Comments

  1. kevin
    24 Aug 16
    • Andre
      24 Aug 16
  2. Hasan zahir
    03 Oct 16
    • Andre
      03 Oct 16
      • ahmad
        01 Sep 17
  3. obhie
    31 Oct 16
    • Andre
      01 Nov 16
      • obhie
        02 Nov 16
        • Andre
          03 Nov 16
  4. rizal
    04 Dec 16
    • Andre
      05 Dec 16
  5. Samuel
    19 May 17
    • Andre
      21 May 17
  6. ryuuu
    30 Nov 17
    • Andre
      02 Dec 17
  7. astra
    24 Dec 17
    • Andre
      24 Dec 17
  8. fjar
    04 Oct 19
    • Andre
      04 Oct 19
  9. Naja
    23 Oct 19
  10. banjar
    22 Nov 19
    • Andre
      24 Nov 19
  11. Aziza
    05 Dec 19
  12. dhuwi
    16 Oct 20
  13. Sugiono Official
    29 Jan 21
  14. Shakiru Daichi
    31 Aug 21
    • Andre
      01 Sep 21
  15. riki
    24 Oct 22
  16. Arrasyi
    11 Aug 23
    • Andre
      01 Sep 23

Add Comment