Days
Hours
Minutes
Seconds

Promo Grand Opening

15% OFF

Khusus Pelanggan Baru

Tutorial JavaScript: Membuat Fungsi Terbilang untuk Mengonversi Angka Menjadi Kata

Tentu, ini adalah artikel mengenai cara membuat fungsi terbilang dengan JavaScript.


 

 

Dalam pengembangan aplikasi web, terkadang kita perlu menampilkan nilai numerik dalam bentuk kata, seperti pada kwitansi, faktur, atau laporan keuangan. Fungsi yang melakukan konversi ini sering disebut “terbilang“.

Pada tutorial ini, kita akan membuat fungsi terbilang() di JavaScript yang dapat mengubah angka menjadi kata, misalnya:

  • 123 menjadi "seratus dua puluh tiga"
  • 15000 menjadi "lima belas ribu"
  • 123456789 menjadi "seratus dua puluh tiga juta empat ratus lima puluh enam ribu tujuh ratus delapan puluh sembilan"

 

1. Strategi Dasar

 

Logika utama di balik fungsi ini adalah memecah angka menjadi kelompok tiga digit (ratusan, puluhan, satuan) dari kanan ke kiri. Kita akan membuat fungsi pembantu untuk mengonversi setiap kelompok tiga digit tersebut, lalu menggabungkannya dengan satuan ribuan, jutaan, dan seterusnya.

 

2. Implementasi Kode

 

Mari kita mulai dengan membuat file JavaScript baru atau menambahkannya ke dalam tag <script> di file HTML Anda.

 

Langkah 1: Siapkan Array Kata

 

Kita akan mendefinisikan beberapa array untuk menyimpan kata-kata dasar yang diperlukan.

JavaScript

const satuan = ['', 'satu', 'dua', 'tiga', 'empat', 'lima', 'enam', 'tujuh', 'delapan', 'sembilan'];
const belasan = ['sepuluh', 'sebelas', 'dua belas', 'tiga belas', 'empat belas', 'lima belas', 'enam belas', 'tujuh belas', 'delapan belas', 'sembilan belas'];
const puluhan = ['', 'sepuluh', 'dua puluh', 'tiga puluh', 'empat puluh', 'lima puluh', 'enam puluh', 'tujuh puluh', 'delapan puluh', 'sembilan puluh'];
const ribuan = ['', 'ribu', 'juta', 'milyar', 'triliun'];

 

Langkah 2: Buat Fungsi Pembantu terbilangTigaDigit()

 

Fungsi ini akan menangani konversi angka dari 0 hingga 999. Ini adalah inti dari logika kita.

JavaScript

function terbilangTigaDigit(n) {
    let result = '';
    const nStr = String(n).padStart(3, '0');
    const ratus = parseInt(nStr[0]);
    const puluh = parseInt(nStr[1]);
    const satu = parseInt(nStr[2]);

    // Proses ratusan
    if (ratus === 1) {
        result += 'seratus ';
    } else if (ratus > 1) {
        result += satuan[ratus] + ' ratus ';
    }

    // Proses puluhan dan belasan
    if (puluh === 1) {
        if (satu === 0) {
            result += 'sepuluh ';
        } else {
            result += belasan[satu] + ' ';
        }
    } else if (puluh > 1) {
        result += satuan[puluh] + ' puluh ';
    }

    // Proses satuan
    if (puluh !== 1 && satu !== 0) {
        result += satuan[satu] + ' ';
    }

    return result.trim();
}

 

Langkah 3: Buat Fungsi Utama terbilang()

 

Fungsi utama ini akan mengambil angka yang lebih besar, membaginya menjadi kelompok tiga digit, dan menggunakan terbilangTigaDigit() untuk setiap kelompok.

JavaScript

function terbilang(n) {
    let number = Math.abs(n);
    let hasil = '';
    let i = 0;

    if (number === 0) {
        return 'nol';
    }

    // Loop selama angka masih lebih besar dari 0
    do {
        const sisa = number % 1000;
        if (sisa !== 0) {
            let temp = terbilangTigaDigit(sisa);
            
            // Tambahkan "ribu" atau "juta"
            if (i === 1 && sisa === 1) {
                temp = "seribu";
            } else {
                temp += ribuan[i];
            }
            
            hasil = temp + ' ' + hasil;
        }

        // Pindah ke kelompok tiga digit berikutnya
        number = Math.floor(number / 1000);
        i++;
    } while (number > 0);
    
    // Hapus spasi ekstra di awal atau akhir
    let finalResult = hasil.trim();
    
    // Handle kasus negatif
    if (n < 0) {
        finalResult = "minus " + finalResult;
    }
    
    return finalResult;
}

 

3. Kode Lengkap dan Contoh Penggunaan

 

Berikut adalah kode lengkap yang bisa langsung Anda coba:

JavaScript

const satuan = ['', 'satu', 'dua', 'tiga', 'empat', 'lima', 'enam', 'tujuh', 'delapan', 'sembilan'];
const belasan = ['sepuluh', 'sebelas', 'dua belas', 'tiga belas', 'empat belas', 'lima belas', 'enam belas', 'tujuh belas', 'delapan belas', 'sembilan belas'];
const puluhan = ['', 'sepuluh', 'dua puluh', 'tiga puluh', 'empat puluh', 'lima puluh', 'enam puluh', 'tujuh puluh', 'delapan puluh', 'sembilan puluh'];
const ribuan = ['', 'ribu', 'juta', 'milyar', 'triliun'];

function terbilangTigaDigit(n) {
    let result = '';
    const nStr = String(n).padStart(3, '0');
    const ratus = parseInt(nStr[0]);
    const puluh = parseInt(nStr[1]);
    const satu = parseInt(nStr[2]);

    if (ratus === 1) {
        result += 'seratus ';
    } else if (ratus > 1) {
        result += satuan[ratus] + ' ratus ';
    }

    if (puluh === 1) {
        if (satu === 0) {
            result += 'sepuluh ';
        } else {
            result += belasan[satu] + ' ';
        }
    } else if (puluh > 1) {
        result += satuan[puluh] + ' puluh ';
    }

    if (puluh !== 1 && satu !== 0) {
        result += satuan[satu] + ' ';
    }
    return result.trim();
}

function terbilang(n) {
    let number = Math.abs(n);
    let hasil = '';
    let i = 0;

    if (number === 0) {
        return 'nol';
    }

    do {
        const sisa = number % 1000;
        if (sisa !== 0) {
            let temp = terbilangTigaDigit(sisa);
            if (i === 1 && sisa === 1) {
                temp = "seribu";
            } else {
                temp += ribuan[i];
            }
            hasil = temp + ' ' + hasil;
        }

        number = Math.floor(number / 1000);
        i++;
    } while (number > 0);
    
    let finalResult = hasil.trim();
    
    if (n < 0) {
        finalResult = "minus " + finalResult;
    }
    
    return finalResult;
}

// Contoh penggunaan
console.log(terbilang(123));        
console.log(terbilang(15000));       
console.log(terbilang(100));        
console.log(terbilang(1000));       
console.log(terbilang(123456789));   
console.log(terbilang(-500));        
console.log(terbilang(0));          

 

4. Kesimpulan

 

Dengan memecah masalah besar menjadi bagian-bagian yang lebih kecil (mengubah tiga digit menjadi kata, lalu menggabungkannya), kita berhasil membuat fungsi terbilang yang efektif dan fleksibel. Ini adalah contoh yang bagus tentang bagaimana logika pemrograman dapat diterapkan untuk memecahkan masalah sehari-hari. Anda bisa mengimplementasikan fungsi ini di berbagai proyek, seperti aplikasi e-commerce, laporan keuangan, atau aplikasi administrasi.

Wawasan Terbaru

Gemini_Generated_Image_wfw5uwwfw5uwwfw5
Mengenal Dunia Grafis: Dari Piksel Hingga Vektor, Kekuatan Visual di Era Digital
Gemini_Generated_Image_b6dimfb6dimfb6di
Mengenal Foundation: Kerangka Kerja Front-End Profesional untuk Web Responsif
Gemini_Generated_Image_sx3ztpsx3ztpsx3z
CSS
Mempercantik Website dengan CSS: Seniman di Balik Tampilan Web 🎨
Gemini_Generated_Image_e013qke013qke013
Mengenal HTML: Fondasi dari Setiap Halaman Website 🌐
Gemini_Generated_Image_ldki4nldki4nldki
Menyelami Dunia Coding: Seni Berbicara dengan Komputer
Gemini_Generated_Image_dpvliydpvliydpvl
Menguasai GIT: Fondasi Penting dalam Dunia Pengembangan Perangkat Lunak
Gemini_Generated_Image_sqcib9sqcib9sqci
Tutorial Python #12: Mengenal Jenis-jenis Operator dalam Python
Gemini_Generated_Image_o1bw3do1bw3do1bw
Memahami Tipe Data Dictionary dalam Python
Gemini_Generated_Image_ko4ixfko4ixfko4i
Mengenal Tipe Data Set dalam Python
Gemini_Generated_Image_1xop7m1xop7m1xop
Tuple dalam Python: Pengenalan dan Tutorial

Wawasan Serupa

Gemini_Generated_Image_4y7hx34y7hx34y7h
Gemini_Generated_Image_8u3is88u3is88u3i
Gemini_Generated_Image_sif5j6sif5j6sif5
Gemini_Generated_Image_so6338so6338so63

Ceritakan Detail Proyekmu

Mulai dari 30K aja, solusi IT kamu langsung jalan tanpa drama.

Kata Mereka Tentang Solusi Coding

Dipercaya oleh lebih dari 200++ client untuk menyelesaikan proyeknya dengan total 250++ proyek dari berbagai jenis proyek