Membuat Format Mata Uang di MySQL

Image by Jason Leung on Unsplash
{tocify} $title={Daftar Isi}

Tabel pada MySQL umumnya hanya dapat menyimpan data sesuai dengan tipe data yang digunakan, sebagai contoh, tipe data int digunakan untuk menyimpan data hanya berupa angka, date untuk tanggal dan waktu dan varchar untuk karakter, huruf, simbol, angka dan kombinasi diantara keempatnya. Data-data yang tersimpan biasanya perlu di manipulasi sehingga data menjadi lebih mudah untuk dibaca, sebagai contoh penulis memiliki tabel  gaji dan ingin menampilkan data gaji pegawai:

mysql> select gaji_pokok from gaji limit 5;
+------------+
| gaji_pokok |
+------------+
|    8100000 |
|    9900000 |
|   11100000 |
|    8100000 |
|    9500000 |
+------------+
5 rows in set (0.00 sec)

Dari contoh diatas tentu kita merasa tidak nyaman untuk membaca angka yang ditampilkan karena data gaji yang ditampilkan tidak dipisahkan dengan tanda titik untuk menegaskan jumlah nominal yang ditampilkan sesuai format mata uang yang digunakan. Kita bisa saja menyimpan data menggunakan tipe data varchar sehingga dapat menyimpan data gaji karyawan sesuai dengan format mata uang yang digunakan suatu negara, namun cara tersebut tidak efektif karena akan mempersulit kita untuk melakukan perhitungan jika diperlukan.

MySQL menyediakan berbagai fungsi yang bisa digunakan untuk memanipulasi data sehingga membuat data dapat lebih mudah dibaca yaitu dengan fungsi string salah satunya dengan fungsi format yang digunakan untuk merubah format angka sesuai yang diinginkan khususnya untuk nominal uang sesuai dengan mata uang suatu negara.

Fungsi String Format()

Dalam hal ini kita dapat menggunakan fungsi string format yang tersedia pada MySQL untuk membuat format mata uang pada tabel gaji. Adapun bentuk umum / syntax dasar dan contoh penggunaan fungsi format untuk membuat format mata uang di MySQL adalah sebagai berikut:

Bentuk umum / syntax dasar:

select format(nama_kolom, jumlah_0_diakhir_digit) [as kolom_alias]

Contoh:

mysql> select format(gaji_pokok, 0) from gaji limit 5;
+-----------------------+
| format(gaji_pokok, 0) |
+-----------------------+
| 8,100,000             |
| 9,900,000             |
| 11,100,000            |
| 8,100,000             |
| 9,500,000             |
+-----------------------+
5 rows in set (0.00 sec)

mysql> select format(gaji_pokok, 2) from gaji limit 5;
+-----------------------+
| format(gaji_pokok, 2) |
+-----------------------+
| 8,100,000.00          |
| 9,900,000.00          |
| 11,100,000.00         |
| 8,100,000.00          |
| 9,500,000.00          |
+-----------------------+
5 rows in set (0.00 sec)

Concat + Format

Contoh diatas sudah membuat kita menjadi lebih mudah dalam membaca nominal angka yang ditampilkan, namun jika kita memerlukan simbol mata uang maka kita memerlukan fungsi concat untuk dapat melakukan hal tersebut, berikut adalah bentuk umum beserta contohnya:

Bentuk umum / syntax dasar:

Select concat('simbol_matauang', format(nama_kolom, jml_0_dibelakang_koma) [as kolom_alias] from nama_tabel;

Contoh:

mysql> select concat("Rp. ", format(gaji_pokok, 0)) as "Gaji dalam Rupiah" from gaji limit 5;
+-------------------+
| Gaji dalam Rupiah |
+-------------------+
| Rp. 8,100,000     |
| Rp. 9,900,000     |
| Rp. 11,100,000    |
| Rp. 8,100,000     |
| Rp. 9,500,000     |
+-------------------+
5 rows in set (0.00 sec)

mysql> select concat("$", format(gaji_pokok, 2)) as "Currency in Dollar" from gaji limit 5;
+--------------------+
| Currency in Dollar |
+--------------------+
| $8,100,000.00      |
| $9,900,000.00      |
| $11,100,000.00     |
| $8,100,000.00      |
| $9,500,000.00      |
+--------------------+
5 rows in set (0.00 sec)

MySQL Locales code

Perhatikan contoh sebelumnya, dimana gaji dalam rupiah sebetulnya masih belum mengikuti format mata uang indonedia yang seharusnya dipisah dengan tanda titik bukan koma, untuk mengatasi hal tersebut kita dapat menggunakan locales code untuk merubah format bahasa local server sesuai dengan kode negara yang digunakan, contohnya sebagai berikut:

mysql> select concat("Rp. ", format(gaji_pokok,0, "id_ID")) as "Gaji dalam Rupiah" from gaji limit 5;
+-------------------+
| Gaji dalam Rupiah |
+-------------------+
| Rp. 8.100.000     |
| Rp. 9.900.000     |
| Rp. 11.100.000    |
| Rp. 8.100.000     |
| Rp. 9.500.000     |
+-------------------+
5 rows in set (0.00 sec)

mysql> select concat("$", format(gaji_pokok, 2, "en_US")) as "Currency in Dollar" from gaji limit 5;
+--------------------+
| Currency in Dollar |
+--------------------+
| $8,100,000.00      |
| $9,900,000.00      |
| $11,100,000.00     |
| $8,100,000.00      |
| $9,500,000.00      |
+--------------------+
5 rows in set (0.00 sec)

Secara default locales code yang digunakan MySQL adalah en_US sehingga untuk format gaji dalam dollar sudah sesuai, untuk kode daftar lengkap locales code yang didukung MySQL versi 8.0 dapat dilihat melalui link berikut [Database Guide]. Dengan demikian fungsi format akan membantu kita menyajikan data sehingga menjadi lebih mudah terbaca sebagai sebuah informasi.
Bayu Radityo

Seorang lulusan teknik informatika yang senang dalam berbagi ilmu pengetahuan, dan membuat karya digital berupa photomanipulation dan digital drawing. instagram external-link

Posting Komentar

Lebih baru Lebih lama