Pada saat mengolah data tabel, kadang kita ingin memformat tampilan angka agar menampilkan pemisah ribuan. Misalnya angka 1500000 tampil sebagai 1.500.000. MySQL menyediakan fungsi FORMAT() untuk keperluan ini.
Fungsi FORMAT() MySQL
Fungsi FORMAT() berguna untuk memformat tampilan angka dengan tambahan karakter pemisah ribuan, yakni tanda koma atau titik di setiap 3 digit.
Fungsi ini sebenarnya termasuk ke dalam numeric function karena nilai input fungsi FORMAT() berupa tipe data numeric (seperti INT, FLOAT, DECIMAL, dsb). Hasil akhir dari fungsi FORMAT() ini adalah tipe data string.
Fungsi FORMAT() butuh 2 atau 3 argumen dimana argumen ketiga bersifat opsional. Argumen pertama diisi dengan angka yang akan di format, sedangkan argumen kedua berupa jumlah digit desimal. Digit desimal ini akan dibulatkan jika terdapat pemotongan angka. Berikut contoh penggunaan dari fungsi FORMAT():
SELECT FORMAT(1553000.156123, 2); -- 1,553,000.16 SELECT FORMAT(1553000.156123, 4); -- 1,553,000.1561
Pada contoh pertama, terjadi pembulatan ke atas karena digit pecahan ketiga berupa angka 6. Sedangkan pada contoh kedua akan dibulatkan ke bawah karena digit kelima berupa angka 2.
Secara default MySQL menggunakan format penulisan angka di Amerika, yakni tanda koma sebagai pemisah ribuan dan tanda titik sebagai pemisah pecahan. Bagaimana cara untuk menukar tanda ini? Karena di Indonesia kita menggunakan tanda titik sebagai pemisah ribuan
dan tanda koma sebagai pemisah pecahan.
Fungsi FORMAT() memiliki argumen ketiga yang bersifat opsional. Argumen ketiga ini bisa diisi dengan format kode bahasa ISO (ISO Language Code). Secara bawaan, kode bahasa yang dipakai adalah 'en_US' yang berarti 'bahasa inggris di amerika serikat' atau 'english_united states'. Kedua query berikut akan menghasilkan nilai yang sama:
SELECT FORMAT(1553000.156123, 2); -- 1,553,000.16 SELECT FORMAT(1553000.156123, 2,'en_US'); -- 1,553,000.16
Kode ISO untuk Bahasa Indonesia adalah 'id_ID', mari kita coba:
SELECT FORMAT(1553000.156123, 2,'id_ID'); -- 1.553.000,16
Sekarang, angka akan di format sesuai dengan kaedah penulisan Bahasa Indonesia, dimana tanda titik dipakai sebagai pemisah ribuan dan tanda koma sebagai pemisah pecahan.
Contoh Kode Untuk Format Angka MySQL
Untuk praktek yang lebih real, kita akan coba ke tabel. Pertama, buat dan isi tabel barang dengan kode berikut:
CREATE TABLE barang ( nama_barang VARCHAR(20), harga_barang DECIMAL(10,3) ); -- Query OK, 0 rows affected (0.268 sec) INSERT INTO barang VALUES ('Laptop',7500000), ('TV',1999999.99), ('Speaker',500500.256); -- Query OK, 3 rows affected (0.068 sec) -- Records: 3 Duplicates: 0 Warnings: 0 SELECT * FROM barang; +-------------+--------------+ | nama_barang | harga_barang | +-------------+--------------+ | Laptop | 7500000.000 | | TV | 1999999.990 | | Speaker | 500500.256 | +-------------+--------------+ 3 rows in set (0.001 sec)
Kolom harga_barang diset dengan tipe DECIMAL. Ketika ditampilkan, angkanya sedikit sudah dibaca. Sekarang kita bisa format sebagai berikut:
SELECT nama_barang, FORMAT(harga_barang,2,'id_ID') FROM barang; +-------------+--------------------------------+ | nama_barang | FORMAT(harga_barang,2,'id_ID') | +-------------+--------------------------------+ | Laptop | 7.500.000,00 | | TV | 1.999.999,99 | | Speaker | 500.500,26 | +-------------+--------------------------------+ 3 rows in set (0.001 sec)
Sekarang tampilan angka untuk kolom harga_barang sudah dikelompokkan dengan tanda titik di setiap 3 karakter.
Agar judul kolom tidak terlalu panjang, bisa pakai perintah AS untuk membuat alias:
SELECT nama_barang, FORMAT(harga_barang,2,'id_ID') AS harga_barang FROM barang; +-------------+--------------+ | nama_barang | harga_barang | +-------------+--------------+ | Laptop | 7.500.000,00 | | TV | 1.999.999,99 | | Speaker | 500.500,26 | +-------------+--------------+ 3 rows in set (0.001 sec)
Lebih lanjut tentang arti perintah AS bisa ke Menggunakan Alias MySQL (AS).
Masih kurang? bagaimana jika kita gabung dengan awalan "Rp. ". Ini bisa dilakukan dengan bantuan fungsi CONCAT():
SELECT nama_barang, CONCAT('Rp. ', FORMAT(harga_barang,2,'id_ID')) AS harga_barang FROM barang; +-------------+------------------+ | nama_barang | harga_barang | +-------------+------------------+ | Laptop | Rp. 7.500.000,00 | | TV | Rp. 1.999.999,99 | | Speaker | Rp. 500.500,26 | +-------------+------------------+ 3 rows in set (0.001 sec)
Sekarang kolom harga_barang sudah tampil dengan awalan "Rp. ". Lebih jauh tentang penggunaan fungsi CONCAT() bisa lanjut ke Cara Menyambung String di dalam Query MySQL (CONCAT)
Itulah bahasan singkat tentang cara memformat tampilan angka menggunakan fungsi FORMAT() MySQL. Semoga bisa bermanfaat.