JavaScript: Konversi Angka ke Huruf

Bagaimana sih kita meng(k)onversi angka ke huruf, misalnya 123 menjadi seratus dua puluh tiga. Agar terlihat seperti kwitansi gitu deh. Hayo gimana hayo caranya mengkonversi angka ke huruf dengan JavaScript? Caranya agak gampang-gampang susah sih.

Number to Text

Number to Text


Etapi postingan ini terinspirasi dari Number to Text Translation.

Namun, pada postingan ini berlaku untuk form[Video] Transfer Data antar Form di Delphi. Read more ... » yang mesti kita klik dulu, baruMembuat Baris Baru pada Label di Delphi. Read more ... » deh keluar hurufnya. Lalu bagaimana dengan data[Video] Transfer Data antar Form di Delphi. Read more ... » yang statis?

Begini caranya..

Pertama-tama, taruh kodeMembuat Kode Acak dengan PHP. Read more ... » berikut di dalam tag head, atau dibuat dalam sebuah fileCara Memunculkan Ekstensi File pada Windows Explorer. Read more ... » *.js tersendiri.

// Convert numbers to words
// copyright 25th July 2006, by Stephen Chapman http://javascript.about.com
// permission to use this Javascript on your web page is granted
// provided that all of the code (including this copyright notice) is
// used exactly as shown (you can change the numbering system if you wish)

// American Numbering System
var th = ['','Thousand','Million', 'Billion','Trillion'];
// uncomment this line for English Number System
// var th = ['','thousand','million', 'milliard','billion'];
var dg = ['Zero','One','Two','Three','Four', 'Five','Six','Seven','Eight','Nine']; var tn = ['Ten','Eleven','Twelve','Thirteen', 'Fourteen','Fifteen','Sixteen', 'Seventeen','Eighteen','Nineteen']; var tw = ['Twenty','Thirty','Forty','Fifty', 'Sixty','Seventy','Eighty','Ninety']; 
function toWords(s){
	s = s.toString(); s = s.replace(/[\, ]/g,''); if (s != parseFloat(s)) return 'not a number'; var x = s.indexOf('.'); if (x == -1) x = s.length; if (x > 15) return 'too big'; var n = s.split(''); var str = ''; var sk = 0; for (var i=0; i < x; i++) {if ((x-i)%3==2) {if (n[i] == '1') {str += tn[Number(n[i+1])] + ' '; i++; sk=1;} else if (n[i]!=0) {str += tw[n[i]-2] + ' ';sk=1;}} else if (n[i]!=0) {str += dg[n[i]] +' '; if ((x-i)%3==0) str += 'hundred ';sk=1;} if ((x-i)%3==1) {if (sk) str += th[(x-i-1)/3] + ' ';sk=0;}} if (x != s.length) {var y = s.length; str += 'point '; for (var i=x+1; i<y; i++) str += dg[n[i]] +' ';} return str.replace(/\s+/g,' ');
}

Lalu, pada bagian body-nya, tinggal tempelin saja seperti ini dimana saja:

<script>document.write(toWords("123456"));</script>

atau jika datanya dinamis, maka seperti ini:

<script>document.write(toWords("<?=$grand;?>"));</script>

Mengerti kan?

Eh Aa, misalnya terjemahannya ke bahasaTips Penanggalan dalam Bahasa Indonesia dengan PHP. Read more ... » indonesiaTips Penanggalan dalam Bahasa Indonesia dengan PHP. Read more ... » gimana?
Ya ganti aja jadi begini kodenya:

// Convert numbers to words
// copyright 25th July 2006, by Stephen Chapman http://javascript.about.com
// permission to use this Javascript on your web page is granted
// provided that all of the code (including this copyright notice) is
// used exactly as shown (you can change the numbering system if you wish)

// Indonesian Numbering System
// AaEzha & GPosh
var th = ['','Ribu','Juta', 'Milyar','Triliun'];
var dg = ['Nol','Satu','Dua','Tiga','Empat', 'Lima','Enam','Tujuh','Delapan','Sembilan']; var tn = ['Sepuluh','Sebelas','Dua Belas','Tiga Belas', 'Empat Belas','Lima Belas','Enam Belas', 'Tujuh Belas','Delapan Belas','Sembilan Belas']; var tw = ['Dua Puluh','Tiga Puluh','Empat Puluh','Lima Puluh', 'Enam Puluh','Tujuh Puluh','Delapan Puluh','Sembilan Puluh']; 
function toWords(s){s = s.toString(); s = s.replace(/[\, ]/g,''); if (s != parseFloat(s)) return 'not a number'; var x = s.indexOf('.'); if (x == -1) x = s.length; if (x > 15) return 'too big'; var n = s.split(''); var str = ''; var sk = 0; for (var i=0; i < x; i++) {if ((x-i)%3==2) {if (n[i] == '1') {str += tn[Number(n[i+1])] + ' '; i++; sk=1;} else if (n[i]!=0) {str += tw[n[i]-2] + ' ';sk=1;}} else if (n[i]!=0) {str += dg[n[i]] +' '; if ((x-i)%3==0) str += 'Ratus ';sk=1;} if ((x-i)%3==1) {if (sk) str += th[(x-i-1)/3] + ' ';sk=0;}} if (x != s.length) {var y = s.length; str += 'point '; for (var i=x+1; i<y; i++) str += dg[n[i]] +' ';} return str.replace(/\s+/g,' ').replace("Satu Ratus","Seratus").replace("Satu Ribu","Seribu").replace("Satu Puluh","Sepuluh");}

Nah, begitu deh caranya merubah angka/bilangan ke huruf/abjad dengan JavaScript.
Selamat belajar.

Popular Keywords

Aa

Masih seorang pelajar yang belum bosan menuntut ilmu. Ilmu tentang pemrograman, networking, website, anime dan lain sebagainya. Yuk kenalan.

You may also like...

2 Responses

  1. G-posh says:

    Terimakasih bantuannya,sepertinya ada sedikit kesalahan gan kalo 100 ribu jadinya 1 hundred ribu,tp di ganti ratus agak aneh jg misal 100 rb jadinya Satu Ratus,mestinya kan seratus,mungkin ini bisa membantu saya ganti sedikit codingnya semoga berguna :)

    var th = [”,’Ribu’,’Juta’, ‘Milyar’,’Triliun’];
    var dg = [‘Nol’,’Satu’,’Dua’,’Tiga’,’Empat’, ‘Lima’,’Enam’,’Tujuh’,’Delapan’,’Sembilan’]; var tn = [‘Sepuluh’,’Sebelas’,’Dua Belas’,’Tiga Belas’, ‘Empat Belas’,’Lima Belas’,’Enam Belas’, ‘Tujuh Belas’,’Delapan Belas’,’Sembilan Belas’]; var tw = [‘Dua Puluh’,’Tiga Puluh’,’Empat Puluh’,’Lima Puluh’, ‘Enam Puluh’,’Tujuh Puluh’,’Delapan Puluh’,’Sembilan Puluh’];
    function toWords(s){
    s = s.toString(); s = s.replace(/[\, ]/g,”); if (s != parseFloat(s)) return ‘not a number'; var x = s.indexOf(‘.’); if (x == -1) x = s.length; if (x > 15) return ‘too big'; var n = s.split(”); var str = ”; var sk = 0; for (var i=0; i < x; i++) {if ((x-i)%3==2) {if (n[i] == '1') {str += tn[Number(n[i+1])] + ' '; i++; sk=1;} else if (n[i]!=0) {str += tw[n[i]-2] + ' ';sk=1;}} else if (n[i]!=0) {str += dg[n[i]] +' '; if ((x-i)%3==0) str += 'Ratus ';sk=1;} if ((x-i)%3==1) {if (sk) str += th[(x-i-1)/3] + ' ';sk=0;}} if (x != s.length) {var y = s.length; str += 'point '; for (var i=x+1; i<y; i++) str += dg[n[i]] +' ';} return str.replace(/\s+/g,' ').replace("Satu Ratus","Seratus");
    }

    • Aa says:

      bener juga nih.
      saya ga nyoba dengan angka yg kecil sih. hihihi.
      dan jarang ada angka satu-nya -__-”

      tapi masalah muncul klo “seratus”,”sepuluh” dan “seribu”nya ada di tengah kalimat, bukan di awal.

Silahkan tinggalkan pesan agar saya bisa membantu Anda

Baca juga artikel iniclose
%d bloggers like this: