Categories: Javascript

Format angka dengan javascript

Bismillaahirrohmaanirrohiim…

Berikut ini cara format angka menggunakan javascript, misalkan 1000 menjadi 1.000 atau 1500000 menjadi 1.500.000

– Cara Standar

function formatAngka(angka) {
    return angka.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".");
}

// Contoh penggunaan
console.log(formatAngka(1000));      // Output: 1.000
console.log(formatAngka(12000000));  // Output: 12.000.000

– format standar yang dapat menangani desimal

function formatAngka(angka) {
    // Handle angka desimal
    if (typeof angka !== 'number') {
        angka = parseFloat(angka);
    }
    
    // Handle NaN
    if (isNaN(angka)) {
        return '0';
    }
    
    // Pisahkan bagian desimal jika ada
    var parts = angka.toString().split('.');
    var bilanganBulat = parts[0];
    var bilanganDesimal = parts.length > 1 ? ',' + parts[1] : '';
    
    // Format bilangan bulat dengan titik
    var formatted = bilanganBulat.replace(/\B(?=(\d{3})+(?!\d))/g, ".");
    
    return formatted + bilanganDesimal;
}

// Contoh penggunaan
console.log(formatAngka(1000));          // 1.000
console.log(formatAngka(12000000));      // 12.000.000
console.log(formatAngka(1234567.89));    // 1.234.567,89
console.log(formatAngka('500000'));      // 500.000

– dengan parameter pemisah ribuan dan desimal

function formatAngka(angka, pemisahRibuan = '.', pemisahDesimal = ',') {
    // Konversi ke number
    angka = parseFloat(angka);
    
    if (isNaN(angka)) {
        return '0';
    }
    
    // Format angka dengan 2 digit desimal
    var parts = angka.toFixed(2).split('.');
    var bilanganBulat = parts[0];
    var bilanganDesimal = parts[1] ? pemisahDesimal + parts[1] : '';
    
    // Format ribuan
    var formatted = bilanganBulat.replace(/\B(?=(\d{3})+(?!\d))/g, pemisahRibuan);
    
    return formatted + bilanganDesimal;
}

// Contoh penggunaan
console.log(formatAngka(1000));          // 1.000,00
console.log(formatAngka(12000000));      // 12.000.000,00
console.log(formatAngka(1234567.89));    // 1.234.567,89

– untuk format saat input secara realtime

// Format input angka secara real-time
function formatInputAngka(inputElement) {
    inputElement.addEventListener('input', function(e) {
        // Hapus semua karakter non-digit kecuali koma
        var value = this.value.replace(/[^\d,]/g, '');
        
        // Pisahkan bagian desimal
        var parts = value.split(',');
        var bilanganBulat = parts[0];
        var bilanganDesimal = parts.length > 1 ? ',' + parts[1] : '';
        
        // Format bilangan bulat
        var formatted = bilanganBulat.replace(/\B(?=(\d{3})+(?!\d))/g, ".");
        
        this.value = formatted + bilanganDesimal;
    });
}

// Contoh penggunaan
// formatInputAngka(document.getElementById('inputHarga'));

– fungsi reverse, dari format menjadi angka kembali

function unformatAngka(formattedString) {
    // Hapus semua titik dan ganti koma dengan titik untuk desimal
    var unformatted = formattedString.replace(/\./g, '').replace(/,/g, '.');
    return parseFloat(unformatted);
}

// Contoh penggunaan
console.log(unformatAngka('1.000'));         // 1000
console.log(unformatAngka('12.000.000'));    // 12000000
console.log(unformatAngka('1.234.567,89'));  // 1234567.89

– contoh penggunaan dalam HTML

<input type="text" id="inputHarga" onblur="formatInput(this)">
<span id="displayHarga"></span>

<script>
function formatInput(input) {
    var value = input.value.replace(/\./g, '');
    if (!isNaN(value)) {
        input.value = formatAngka(parseFloat(value));
        document.getElementById('displayHarga').textContent = formatAngka(parseFloat(value));
    }
}
</script>

Demikian semoga bermanfaat

Bagikan
rasupe

Recent Posts

CPU 100% ternyata dipakai miner orang

Bismilaahirrohmaanirrohiim... jika server anda dipakai orang untuk mining, maka cpu usage akan habis dipakai dia,…

2 weeks ago

Cara Mematikan Mode SSL Virtualmin Webmin

Bismillaahirrohmaanirrohiim... masalah muncul saat akses https://ipaddress:10000 muncul seperti ini Error – Document follows This web…

2 months ago

eBook: menjadi kaya dimasa kini dan masa depan

Bismillahirrohmaanirrohiim... Ebook ini menghadirkan wawasan mendalam mengenai pergeseran kekayaan dari uang, aset, tanah, dan bahan…

3 months ago

Tombol back tutup modal bootstrap tanpa kembali ke halaman sebelumnya

Bismillaahirrohmaanirrohiim... Jika kita membuat aplikasi web base menggunakan bootstrap, saat user membuka modal, kadangkala mereka…

3 months ago

Kode css yang berguna

Bismillaahirrohmaanirrohiim... Berikut ini kumpulan css yang berguna, untuk mengingat saja. Input atau button delay saat…

3 months ago

Grouping warna pada tabel dengan PHP

Bismillaahirrohmaanirrohiim... Berikut ini cara grouping warna baris pada tabel dengan PHP, dimana jika ada kode…

3 months ago