Custom Function NUMBER/ANGKA/MATA UANG pada Javascript yang Sering Digunakan

Hai ketemu lagi dengan saya dan pada kali ini saya akan membuat postingan yang ringan-ringan saja yaitu tentang custom function di javascript yang sering saya gunakan. Jadi sebenarnya saya membuat postingan ini juga untuk saya karena saya suka malas kalo harus berkali-kali membuat function setiap saya membuat project, jadi kalo ada postingan ini saya tidak perlu membuatnya lagi karena cukup copas aja hehe… karena saya berprinsip “ngapain juga repot-repot nulis koding 100% orang tinggal copas juga lebih cepet buang-buang waktu aja harus nulis-nulis terus..” gitu jadinya ini adalah custom function yang berfungsi sebagai master bisa dimasukkan di custom.js. Copas itu boleh saja asalkan paham apa yang dicopas ya bukan asal copas aja. Maka dari itu sobat juga bisa BOOKMARK postingan ini jadi siapa tau kapan-kapan sobat membutuhkannya tinggal cari di bookmark browser.

Karena ini ada di javascript tentu bisa digunakan di bahasa pemrograman apapun dan framework apapun ya selama itu pemrograman web yang menggunakan javascript. Jadi ini biasa saya gunakan di PHP Native, Laravel, Code Igniter, Java Spring/Spring boot, dll dan saya gunakan full copas tanpa edit-edit lagi.

Pertama saya ingin bilang bahwa cari ini bukan cara convert/fungsi satu-satunya ya gan karena bisa juga dengan cara yang lain yang lebih singkat tapi saya lebih suka cara ini karena lebih mudah dimengerti. Oke langsung saja saya berikan function satu per satu dan karena banyak sekali jadi saya bagi menjadi beberapa kategori.

Baca juga :

Custom Function DATE pada Javascript yang Sering Digunakan

Custom Function DATETIME pada Javascript yang Sering Digunakan

Custom Function NUMBER/ANGKA/MATA UANG pada Javascript yang Sering Digunakan

Custom Function String pada Javascript yang Sering Digunakan

Custom Function Tambahan Plugin pada Javascript yang Sering Digunakan

 

CONVERT NUMBER/ANGKA/MATA UANG

Selanjutnya kita akan membahas tentang convert format number/angka yang berarti bisa mata uang, rupiah terbilang dll

1. Convert angka ke Ribuan atau Mata Uang

Ini berfungsi untuk mengubah angka menjadi format ribuan. Sobat bisa memberikan prefix dan bisa juga tidak. Cara penggunaannya ada 2 cara yaitu

  • Jika hanya ingin mengubah angka ke ribuan saja tulis formatRupiah(‘1000000’)
  • Jika ingin mengubah angka menjadi format mata uang dimana ada prefixnya maka tambah jadi seperti formatRupiah(‘1000000’, ‘Rp. ‘)
//formatRupiah('1000000') = 1.000.000
//formatRupiah('1000000', 'Rp. ') = Rp. 1.000.000 
function formatRupiah(angka, prefix) {
	if(angka=="" || angka=="null" || angka==null || angka==undefined){
		return "";
	} else {
	    var number_string = angka.replace(/[^,\d]/g, '').toString(),
	        split	= number_string.split(','),
	        sisa 	= split[0].length % 3,
	        rupiah 	= split[0].substr(0, sisa),
	        ribuan 	= split[0].substr(sisa).match(/\d{3}/gi);

	    if (ribuan) {
	        separator = sisa ? '.' : '';
	        rupiah += separator + ribuan.join('.');
	    }

	    rupiah = split[1] != undefined ? rupiah + ',' + split[1] : rupiah;
	    return prefix == undefined ? rupiah : prefix + rupiah;
	}
}

REVERSE/KEBALIKANNYA

Ini adalah fungsi kebalikan dari fungsi diatas ya jadi ini fungsi yang berguna sebelum memasukkan data ke database supaya tidak error jadi kita ubah lagi ke number. Cara penggunaannya formatRupiahEsc(‘Rp. 235.235.235’)

//Rp. 235.235.235 jadi 235235235
function formatRupiahEsc(angka){
	let al = "";
	if(angka=="" || angka==null || angka=="null" || angka==undefined){
		al = "";
	} else {
		al = Math.abs(angka.replace(/[^,\d]/g, '').toString());
	}
    return al;
}

 

2. Membuat Terbilang dari angka

Berikut adalah fungsi untuk membuat terbilang seperti pada kwitansi. Sobat bisa memberikan sufixdan bisa juga tidak. Cara penggunaannya ada 2 cara yaitu

  • Jika hanya ingin mengubah angka ke ribuan saja tulis terbilang(‘1000000’)
  • Jika ingin mengubah angka menjadi format mata uang dimana ada prefixnya maka tambah jadi seperti terbilang(‘1000000’, ‘Rupiah ‘)
function terbilang(bilangan, sufix){
	if(bilangan=="" || bilangan==null || bilangan=="null" || bilangan==undefined){
		return "";
	} else {
		bilangan = bilangan.replace(/[^,\d]/g, '');
	    var kalimat="";
	    var angka   = new Array('0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0');
	    var kata    = new Array('','Satu','Dua','Tiga','Empat','Lima','Enam','Tujuh','Delapan','Sembilan');
	    var tingkat = new Array('','Ribu','Juta','Milyar','Triliun');
	    var panjang_bilangan = bilangan.length;

	    /* pengujian panjang bilangan */
	    if(panjang_bilangan > 15){
	        kalimat = "Diluar Batas";
	    }else{
	        /* mengambil angka-angka yang ada dalam bilangan, dimasukkan ke dalam array */
	        for(i = 1; i <= panjang_bilangan; i++) {
	            angka[i] = bilangan.substr(-(i),1);
	        }

	        var i = 1;
	        var j = 0;

	        /* mulai proses iterasi terhadap array angka */
	        while(i <= panjang_bilangan){
	            subkalimat = "";
	            kata1 = "";
	            kata2 = "";
	            kata3 = "";

	            /* untuk Ratusan */
	            if(angka[i+2] != "0"){
	                if(angka[i+2] == "1"){
	                    kata1 = "Seratus";
	                }else{
	                    kata1 = kata[angka[i+2]] + " Ratus";
	                }
	            }

	            /* untuk Puluhan atau Belasan */
	            if(angka[i+1] != "0"){
	                if(angka[i+1] == "1"){
	                    if(angka[i] == "0"){
	                        kata2 = "Sepuluh";
	                    }else if(angka[i] == "1"){
	                        kata2 = "Sebelas";
	                    }else{
	                        kata2 = kata[angka[i]] + " Belas";
	                    }
	                }else{
	                    kata2 = kata[angka[i+1]] + " Puluh";
	                }
	            }

	            /* untuk Satuan */
	            if (angka[i] != "0"){
	                if (angka[i+1] != "1"){
	                    kata3 = kata[angka[i]];
	                }
	            }

	            /* pengujian angka apakah tidak nol semua, lalu ditambahkan tingkat */
	            if ((angka[i] != "0") || (angka[i+1] != "0") || (angka[i+2] != "0")){
	                subkalimat = kata1+" "+kata2+" "+kata3+" "+tingkat[j]+" ";
	            }

	            /* gabungkan variabe sub kalimat (untuk Satu blok 3 angka) ke variabel kalimat */
	            kalimat = subkalimat + kalimat;
	            i = i + 3;
	            j = j + 1;
	        }

	        /* mengganti Satu Ribu jadi Seribu jika diperlukan */
	        if ((angka[5] == "0") && (angka[6] == "0")){
	            kalimat = kalimat.replace("Satu Ribu","Seribu");
	        }
	    }
	    return sufix == undefined ? kalimat : kalimat + sufix;
	}
}

 

Pada setiap fungsi kebanyakan terdapat pengecekan seperti ‘if(string==”” || string==null || string==”null” || string==undefined)’ itu fungsinya untuk apa? Bagi beberapa orang mungkin akan risih juga karena ada beberapa orang yang jika menuliskan sesuatu penginnya pendek aja mungkin bisa 1 baris saja dalam menuliskan fungsi. Namun saya tidak pasti selalu ada pengecekan itu karena jika null/undefined atau kosong itu dapat menyebabkan error pada suatu kasus, seperti seingat saya ya itu null/undefined kita replace maka akan membuat error atau masih banyak lagi yang saya tidak ingat. Jadi supaya aman selalu saya tambahkan pengecekan itu.

Sekian dulu custom function javascript karena ternyata banyak sekali dan saya sendiri jadi bingung scroll dan mencarinya jadi yang sebelumnya satu postingan saya pisah menjadi beberapa postingan berdasarkan kategori seperti custom function yang berhubungan dengan date, datetime, number, string dan masih banyak lagi. Dan ini saja masih belum semua jadi mungkin saya akan update lagi jika adaa kesempatan dan jika ada function baru yang saya gunakan.

4 thoughts on “Custom Function NUMBER/ANGKA/MATA UANG pada Javascript yang Sering Digunakan

Leave a Reply

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

20 − eleven =