pemisahan angka melalui 3 digit ya... mmmhhh boleh juga konsepnya... saya akan coba, thanx kk...
--- In jug-indonesia@yahoogroups.com, Frans Lee <[EMAIL PROTECTED]> wrote: > > kebeneran ada contoh dari coding lama nih ;) > > Java > > public final class NumberUtils { > > private static String[] numbers = {"se", "dua ", "tiga ", "empat ", "lima ", "enam ", "tujuh ", "delapan ", "sembilan "}; > private static String[] levels = {"ribu ", "juta ", "milyar ", "trilyun "}; > > public static String numberWording(long number) { > StringBuffer result = new StringBuffer(); > > String str = String.valueOf(number); > int mod = str.length() % 3; > int len = str.length() / 3; > if(mod>0) len++; else mod = 3; > int begin = 0; > int end = mod; > for(int i=0; i<len; i++) { > int level = len-i; > > String val = str.substring(begin, end); > int value = Integer.parseInt(val); > int length = val.length > (); > for(int j=0; j<length; j++) { > int num = parseInt(val.charAt(j)); > switch(length-j) { > case 3: > if(num>0) result.append > (numbers[num-1]).append("ratus "); > break; > case 2: > if(num>1) result.append(numbers[num-1]).append("puluh "); > else if(num==1) > result.append(numbers[parseInt(val.charAt(++j))-1]).append("belas "); > break; > case 1: > if(num>1 || (level==2 && value==1)) result.append > (numbers[num-1]); > else if(num==1) result.append("satu "); > break; > } > } > > if(level>1 && value>0) > result.append(levels[level-2]); > begin = i*3 + mod; > end += 3; > } > > return result.toString(); > } > > public static int parseInt(char c) { > int result = c - 48; > if(result<0 || result>9) throw new NumberFormatException("For input char: '"+c+"'"); > return result; > } > } > > > > C# > public class NumberUtils > { > private static > string[] numbers = { "se", "dua ", "tiga ", "empat ", "lima ", "enam ", > "tujuh ", "delapan ", "sembilan " }; > private static string[] levels = { "ribu ", "juta ", "milyar ", "trilyun " }; > > public static string NumberWording(long number) > { > StringBuilder sb = new StringBuilder(); > > string str = number.ToString(); > int mod = str.Length % 3; > int len = str.Length / 3; > if (mod > 0) len++; else mod = 3; > for (int i = 0; i < len; i++) > { > int level = len - i; > > string val = i == 0 ? > str.Substring(0, mod) : str.Substring(i * 3 + mod - 3, 3); > int value = int.Parse > (val); > int length = val.Length; > for (int j = 0; j < length; j++) > { > int num = int.Parse(val[j].ToString()); > switch (length - j) > { > case 3: > if (num > 0) sb.Append(numbers[num - 1]).Append("ratus "); > break; > case 2: > if (num > 1) sb.Append(numbers[num - 1]).Append("puluh "); > else if (num == 1) sb.Append(numbers[int.Parse(val[++j].ToString()) - 1]).Append("belas "); > break; > case 1: > if (num > 1 || (level == 2 && value == 1)) sb.Append(numbers[num - 1]); > else if (num == 1) > sb.Append("satu "); > break; > } > } > > if (level > 1 && value > 0) sb.Append(levels[level - 2]); > } > > return sb.ToString(); > } > } > > > Regards, > F > > > > ----- Original Message ---- > From: Peter Aloysius <[EMAIL PROTECTED]> > To: atek_05 <jug-indonesia@yahoogroups.com> > Sent: Monday, July 14, 2008 9:31:35 AM > Subject: Re: [JUG-Indonesia] konversi angka menjadi huruf, created 12-12-2007, ada yang mau comment ga? > > Hello , > > Panjang amat, kelihatannya lebih mudah kalau anda membagi suatu > bilangan menjadi bagian yg terdiri dari tiga digit. > Misalnya : 1011001 dibagi menjadi : 1.011.001 > > Jadi anda cukup membuat konversi untuk tingkat ratusan saja / tiga > digit, terus tinggal ditambahkan suffix yg sesuai : ribu, juta, > milyar, trilyun, bilyun, dst > > Jadi jika bilangannya : 1011001 > dibagi menjadi 1.011.001 > > kita konvert satu per satu per-bagian : > SATU (1) > SEBELAS (011) > SATU (001) > > trus tinggal ditambah akhiran yang sesuai menjadi: > SATU juta > SEBELAS ribu > SATU > > digabung, jadi deh satu juta sebelas ribu satu > > lebih simpel kan? > > Ini kalau gak salah disebut sebagai teknik divide and conquer > > > > package Nuril; > > import java.io.*; > > import java.util.*; > > import java.text.*; > > > /*masih error, coba cek pada nilai 1011001,11100111 > > * > > * > > * > > */ > > > public class TerbilangAngka > > { > > private String angka; > > private String disebut = ""; > > private String terbilang = ""; > > private int pnjng; > > private int n=0; > > private int x; > > > > -- > Best regards, > Peter mailto:[EMAIL PROTECTED] > http://thepetir.blogspot.com > > > ------------------------------------ > > Kalau mau keluar dari mailing list ini, caranya kirim sebuah email ke [EMAIL PROTECTED] > > Jangan lupa, website JUG Indonesia adalah http://www.jug.or.id > > Yahoo! Groups Links >