money_format() function PHP

money_format() function berguna untuk mem-format sebuah angka dan menghasilkannya dalam format mata uang yang dikehendaki.

Format mata uang dipengaruhi oleh format locale yang sedang digunakan dan format locale bisa ditentukan oleh setlocale() function.

Syntax

string money_format(string $format, float $number)

Parameter

Parameter Penjelasan
format Parameter ini wajib ada. Format mata uang yang ingin digunakan. Terdiri dari beberapa susunan format. Lihat table setelah ini.
number Parameter ini wajib ada. Angka yang ingin di-format. Angka ini akan menggantikan conversion character % yang ada pada parameter format.

Parameter format

Format Penjelasan
flag
=f Menjadikan f sebagai character pengisi area angka yang kosong. Lihat left precision #n.
^ Jika symbol ini digunakan maka tidak akan ada pengelompokan angka (grouping). Lihat localeconv() function.
+ atau ( Menentukan format tampilan angka positif dan negatif.

Jika menggunakan symbol + maka symbol yang setara dengan + dan – yang berasal dari format locale akan digunakan.

Jika menggunakan symbol ( maka angka negatif akan ditampilkan di dalam symbol kurung ().

Jika tidak ditentukan maka nilai defaultnya adalah symbol +.

! Menghilangkan symbol mata uang.
- Jika symbol minus – digunakan maka area angka (field width) yang dihasilkan akan rapat kiri (left-justified). Sebaliknya, jika tidak digunakan maka semua area angka akan rapat kanan.
Field width
w Menentukan jumlah minimum lebar area angka yang ingin dihasilkan (Termasuk di dalamnya character decimal, pembatas grouping, pengisi area kosong flag =f, dan penanda angka negatif symbol kurung).

Area angka yang dihasilkan akan rapat kanan kecuali flag minus – digunakan. Memiliki nilai default 0.

Left precision
#n Menentukan jumlah character angka yang ingin ditampilkan di sebelah kiri symbol decimal sebanyak character n. Digunakan untuk meratakan tampilan angka.

Jika jumlah character n lebih besar dari jumlah character angka yang sebenarnya maka flag =f akan mengisi kelebihan tersebut.

Sebaliknya, jika jumlah character n lebih kecil dari jumlah character angka yang sebenarnya maka format ini akan diabaikan.

Jika flag ^ tidak digunakan maka pembatas ribuan akan ditambahkan di dalam angka yang dihasilkan.

Right precision
.p Menentukan jumlah character angka yang ingin ditampilkan di sebelah kanan symbol decimal sebanyak character p.

Jika p adalah 0 maka symbol decimal dan angka di sebelah kanannya akan dihapus.

Jika format ini tidak digunakan maka format yang dihasilkan akan mengikuti format locale yang sedang digunakan.

Conversion character
i Angka yang dihasilkan akan mengikuti format mata uang internasional dari format locale yang sedang digunakan (Contoh, untuk USA: USD 1,234.56).
n Angka yang dihasilkan akan mengikuti format mata uang nasional dari format locale yang sedang digunakan (Contoh, untuk de_DE: EU1.234,56).
% Awal dari angka yang di-format.

Catatan

Berikut ini adalah contoh cara kerja money_format() function:

String [Jumlah uang adalah %n] dimasukkan ke dalam parameter format dan angka [234] dimasukkan ke dalam parameter number. Selanjutnya, money_format() function akan menghasilkan string [Jumlah uang adalah $ 234].

Jika parameter format menggunakan lebih dari satu format maka format yang digunakan harus mengikuti urutan format di atas.

Minimal format yang harus digunakan di dalam parameter format adalah %i atau %n.

money_format() function hanya bisa digunakan pada system yang memiliki kemampuan strfmon() function yang menyebabkan OS seperti Windows tidak bisa menggunakan money_format() function.

Contoh

Berikut ini adalah contoh penggunaan money_format() function:

Code PHP 1:

<?php
$number = 1234.5672;

$a = money_format('%n', $number);

var_dump($a);
?>

Hasil running code di atas bila dilihat melalui page source browser akan tampak sebagai berikut ini:

string(7) "1234.57"

Berikut ini adalah contoh penggunaan flag ( dengan angka negatif:

Code PHP 2:

<?php
$number = -1234.5672;

$a = money_format('%(n', $number);

var_dump($a);
?>

Hasil running code di atas bila dilihat melalui page source browser akan tampak sebagai berikut ini:

string(9) "(1234.57)"

Berikut ini adalah contoh penggunaan left precision #n:

Code PHP 3:

<?php
$number = -1234.5672;

$a = money_format('%(#10n', $number);
$b = money_format('%(#5n', $number);
$c = money_format('%(#2n', $number);

var_dump($a, $b, $c);
?>

Hasil running code di atas bila dilihat melalui page source browser akan tampak sebagai berikut ini:

string(15) "(      1234.57)"
string(10) "( 1234.57)"
string(9) "(1234.57)"

Berikut ini adalah contoh penggunaan flag =f:

Code PHP 4:

<?php
$number = -1234.5672;

$a = money_format('%=*(#10n', $number);
$b = money_format('%=*(#5n', $number);
$c = money_format('%=*(#2n', $number);

var_dump($a, $b, $c);
?>

Hasil running code di atas bila dilihat melalui page source browser akan tampak sebagai berikut ini:

string(15) "(******1234.57)"
string(10) "(*1234.57)"
string(9) "(1234.57)"

Berikut ini adalah contoh penggunaan right precision .p:

Code PHP 5:

<?php
$number = -1234.5672;

$a = money_format('%=*(#10.4n', $number);
$b = money_format('%=*(#10.3n', $number);
$c = money_format('%=*(#10.2n', $number);

var_dump($a, $b, $c);
?>

Hasil running code di atas bila dilihat melalui page source browser akan tampak sebagai berikut ini:

string(17) "(******1234.5672)"
string(16) "(******1234.567)"
string(15) "(******1234.57)"

Berikut ini adalah contoh penggunaan setlocale() function dengan money_format() function:

Code PHP 6:

<?php
$number = -1234.5672;

setlocale(LC_MONETARY, 'en_US');
$a = money_format('%=*(#10n', $number);

setlocale(LC_MONETARY, 'de_DE');
$b = money_format('%=*(#10n', $number);

var_dump($a, $b);
?>

Hasil running code di atas bila dilihat melalui page source browser akan tampak sebagai berikut ini:

string(19) "($********1,234.57)"
string(22) "(********1.234,57 EUR)"

Berikut ini adalah contoh penggunaan flag ^:

Code PHP 7:

<?php
$number = -1234.5672;

setlocale(LC_MONETARY, 'en_US');

$a = money_format('%=*(#10n', $number);
$b = money_format('%=*^(#10n', $number);

var_dump($a, $b);
?>

Hasil running code di atas bila dilihat melalui page source browser akan tampak sebagai berikut ini:

string(19) "($********1,234.57)"
string(16) "($******1234.57)"

money_format() function yang tidak menggunakan flag ^ menyebabkan angka yang dihasilkan menjadi dikelompokkan (grouping) tergantung dari format locale yang digunakan.

Pada contoh di atas, format locale yang digunakan menyebabkan angka dikelompokkan setiap tiga angka sehingga money_format() function yang tidak menggunakan flag ^ menghasilkan jumlah character yang lebih banyak. Jumlah character yang lebih banyak tersebut adalah character pembatas setiap tiga angka.

Berikut ini adalah contoh penggunaan parameter format yang di dalamnya ada character selain angka:

Code PHP 8:

<?php
$number = -1234.5672;
$str = "Selamat %=*^(#10n pagi!";

setlocale(LC_MONETARY, 'en_US');

$a = money_format($str, $number);

var_dump($a);
?>

Hasil running code di atas bila dilihat melalui page source browser akan tampak sebagai berikut ini:

string(30) "Selamat ($******1234.57) pagi!"

Berikut ini adalah contoh penggunaan field width w:

Code PHP 9:

<?php
$number = -1234.5672;

$a = money_format('%(15n', $number);
$b = money_format('%(10n', $number);
$c = money_format('%(9n', $number);
$d = money_format('%(5n', $number);

var_dump($a, $b, $c, $d);
?>

Hasil running code di atas bila dilihat melalui page source browser akan tampak sebagai berikut ini:

string(15) "      (1234.57)"
string(10) " (1234.57)"
string(9) "(1234.57)"
string(9) "(1234.57)"

Berikut ini adalah contoh penggunaan flag minus -:

Code PHP 10:

<?php
$number = -1234.5672;

$a = money_format('%(-15n', $number);
$b = money_format('%(-10n', $number);
$c = money_format('%(-9n', $number);
$d = money_format('%(-5n', $number);

var_dump($a, $b, $c, $d);
?>

Hasil running code di atas bila dilihat melalui page source browser akan tampak sebagai berikut ini:

string(15) "(1234.57)      "
string(10) "(1234.57) "
string(9) "(1234.57)"
string(9) "(1234.57)"

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>