Seperti yang kita ketahui, format penulisan angka di Indonesia dipisahan dengan simbol titik (.) untuk angka ribuan, jutaan, miliaran dst.
Tetapi dalam pemrograman, saat melakukan penginputran form biasanya sebuah angka belum dipisahkan dengan simbol apapun, sehingga yang terlihat adalah hanya sebuah angka saja.
Perhatikan angka berikut ini “1250“.
Dengan mudahnya angka di atas jika kita sebutkan akan menjadi “Seribu Dua Ratus Lima Puluh”.
Berikutnya perhatikan angka ini “1241231241231“.
Kalian pasti tidak bisa langsung menyebutkannya kan?. Untuk menyebutkan angka di atas kalian perlu memecahnya menjadi 3 angka dari belakang agar bisa mengetahui apakah angka tersebut sudah menjadi ribuan, jutaan, miliaran atau triliunan.
Dalam dunia akuntansi, angka yang tidak dipisahkan dengan simbol pemisahnya akan membuat pekerjaan menjadi tidak optimal karena kesulitan untuk mengetahui angka tersebut.
Sebagai programmer yang baik dan mengerti perasaan user atau pemakai program yang kita buat, kita perlu memisahkan angka tersebut dengan simbol. Pada Javascript kita bisa membuat sebuah function untuk pemisah angka saat melakukan penginputan.
Perhatikan kodingan di bawah
<input type="text" id="inputAngka">
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
<script type="text/javascript">
$('#inputAngka').on('keyup',function(){
var angka = $(this).val();
var hasilAngka = formatRibuan(angka);
$(this).val(hasilAngka);
});
function formatRibuan(angka){
var number_string = angka.replace(/[^,\d]/g, '').toString(),
split = number_string.split(','),
sisa = split[0].length % 3,
angka_hasil = split[0].substr(0, sisa),
ribuan = split[0].substr(sisa).match(/\d{3}/gi);
// tambahkan titik jika yang di input sudah menjadi angka ribuan
if(ribuan){
separator = sisa ? '.' : '';
angka_hasil += separator + ribuan.join('.');
}
angka_hasil = split[1] != undefined ? angka_hasil + ',' + split[1] : angka_hasil;
return angka_hasil;
}
</script>
Kita juga dapat mengolah kodingan di atas menjadi seperti ini
gan, klo ingin bisa input angka minus gimana ya?
Silahkan lihat di codepen saya gan https://codepen.io/cobangoding/pen/QWOoLXN
mantap mas,smg Allah membalas kebaikannya, klo ingin spratornya pakek titik koma gmana ya?
Terima kasih ka sudah mampir. Diganti titik koma seperti apa ya? apakah simbol titik (.) diganti jadi titik koma/semicolon (;) ?
maaf salah ketik, maksudnya buka pakek titik komma tapi memakai koma saja,
Yang sudah dibuat diatas itu sparatornya titik, skrg klo menggunakan koma bagaimana codingnya?, terima kasih banyak pencerahannya
Mungkin bisa dicoba dengan kode ini gan untuk function formatRibuan()
baik, terimaksih banyak pencarahannya sudah sukses, tp mash ada sedikit kendala setelah sy coba klo ditambah angka minus didepannya tidak bisa, mohon pencerahannya, terima kasih
kalo tambahkan minus, bisa dicoba menggunakan variable minus kaya berikut gan
mantap mas, terima kasih banyak ilmunya
Terima kasih juga gan sudah mampir.
halo admin. tidak bisa lebih dari 7 angka kah?
Halo gan, tidak bisa lebih dari 7 angka gimana ya maksudnya?
Bisa tapi asal type input nya jangan number harus text. Kalo input nya type number pas di angka ke 7 (jutaan) makan jquery akan mengembalikan nilai return menghasilkan undefined ke nilai awal. Kalo pake input type number jangkauan RegEx nya menghasilkan undefined. jadi angkanya akan di reset.
Sangat membantu, oh iya min kalau saya ingin menambahkan atau mengkalikan hasil inputan yang sudah mengandung titik ini bagaimana ya, saya coba 1.000*1 outputnya 1
Karena result dari formatRibuan tipe datanya adalah String, jadi perlu diubah dulu gan menjadi numeric.
Contohnya bisa coba link berikut ya https://codepen.io/cobangoding/pen/xxQaNXO