Kamis, 23 Oktober 2008

Source Code Java untuk terbilang (Bahasa Indonesia)

Source code-nya sih masih kepanjangan
contoh input : 1000000
output : satu juta

Source code-nya ada di bawah ini

======================================================================================
mport javax.swing.*;

public class terbilang
{
static String Kalimat = new String("");
//String Kalimat = new String("1250000");

public static String huruf(char a)
{String ahuruf;
switch (a)
{
case '0' : ahuruf = "nol";
break;
case '1' : ahuruf = "satu";
break;
case '2' : ahuruf = "dua";
break;
case '3' : ahuruf = "tiga";
break;
case '4' : ahuruf = "empat";
break;
case '5' : ahuruf = "lima";
break;
case '6' : ahuruf = "enam";
break;
case '7' : ahuruf = "tujuh";
break;
case '8' : ahuruf = "delapan";
break;
case '9' : ahuruf = "sembilan";
break;
default : ahuruf = "Bukan Karakter Digit";
break;
}
return ahuruf;
}


public static void main(String[] args)
{
Kalimat = JOptionPane.showInputDialog("Masukkan sebuah angka : ");
System.out.println("Masukkan sebuah angka: "+Kalimat);

int i;
String temp = new String("");
i = 0;

boolean b = false;

while (i <= Kalimat.length())
{

//angka puluhan milyar
if(Kalimat.length()-i == 11)
{
if(i-1 > -1)
{
if(Kalimat.charAt(i-1) != '0')
{
temp = temp.concat("ratus ");
b = true;
}
}
//inti puluhan ========================
if ((Kalimat.charAt(i) != '1') && (Kalimat.charAt(i) != '0'))
{
temp = temp.concat(huruf(Kalimat.charAt(i))+" ");
}
else
if((Kalimat.charAt(i) == '1')&&((Kalimat.charAt(i+1) == '0') || (Kalimat.charAt(i+1) == '1')))
{
temp = temp.concat("se");
}
//====================
}
else


//angka milyar

if(Kalimat.length()-i == 10)
{
if(i == 0)
{
if(Kalimat.charAt(i) != '0')
temp = temp.concat(huruf(Kalimat.charAt(i))+" ");
}
if(i-1 > -1)
{
//inti angka satuan======================
if((Kalimat.charAt(i-1) == '1')&&(Kalimat.charAt(i) == '1'))
{
temp = temp.concat("belas ");
b = true;
}
else
if((Kalimat.charAt(i-1) == '1')&&(Kalimat.charAt(i) != '1')&&(Kalimat.charAt(i) != '0'))
{
temp = temp.concat(huruf(Kalimat.charAt(i))+" belas ");
b = true;
}

if(((Kalimat.charAt(i-1) != '1')&&(Kalimat.charAt(i-1) != '0'))||(Kalimat.charAt(i) == '0'))
{
if(Kalimat.charAt(i-1) != '0')
{
temp = temp.concat("puluh ");
b = true;
}
}

if((Kalimat.charAt(i-1) != '1')&&(Kalimat.charAt(i) != '0'))
{
temp = temp.concat(huruf(Kalimat.charAt(i))+" ");
b = true;
}
//======================================================
}
}
else


//angka ratusan juta
if(Kalimat.length()-i == 9)
{
if(i-1 > -1)
{
if((Kalimat.charAt(i-1) != '0')||(b))
{
temp = temp.concat("milyar ");
b = false;
}
}
//inti angka ratusan=================
if(Kalimat.charAt(i) == '1')
{
temp = temp.concat("se");
}
else
if(Kalimat.charAt(i) != '0')
temp = temp.concat(huruf(Kalimat.charAt(i))+" ");
//==================================================================

}
else
//angka puluhan juta
if(Kalimat.length()-i == 8)
{
if(i-1 > -1)
{
if(Kalimat.charAt(i-1) != '0')
{
temp = temp.concat("ratus ");
b = true;
}
}
//inti puluhan ========================
if ((Kalimat.charAt(i) != '1') && (Kalimat.charAt(i) != '0'))
{
temp = temp.concat(huruf(Kalimat.charAt(i))+" ");
}
else
if((Kalimat.charAt(i) == '1')&&((Kalimat.charAt(i+1) == '0') || (Kalimat.charAt(i+1) == '1')))
{
temp = temp.concat("se");
}
//====================
}

//angka juta
if(Kalimat.length()-i == 7)
{
if(i == 0)
{
if(Kalimat.charAt(i) != '0')
temp = temp.concat(huruf(Kalimat.charAt(i))+" ");
}
if(i-1 > -1)
{
//inti angka satuan======================
if((Kalimat.charAt(i-1) == '1')&&(Kalimat.charAt(i) == '1'))
{
temp = temp.concat("belas ");
b = true;
}
else
if((Kalimat.charAt(i-1) == '1')&&(Kalimat.charAt(i) != '1')&&(Kalimat.charAt(i) != '0'))
{
temp = temp.concat(huruf(Kalimat.charAt(i))+" belas ");
b = true;
}

if(((Kalimat.charAt(i-1) != '1')&&(Kalimat.charAt(i-1) != '0'))||(Kalimat.charAt(i) == '0'))
{
if(Kalimat.charAt(i-1) != '0')
{
temp = temp.concat("puluh ");
b = true;
}
}

if((Kalimat.charAt(i-1) != '1')&&(Kalimat.charAt(i) != '0'))
{
temp = temp.concat(huruf(Kalimat.charAt(i))+" ");
b = true;
}
//======================================================
}

}
else
//angka ratusan ribu
if(Kalimat.length()-i == 6)
{
if(i-1 > -1)
{
if((Kalimat.charAt(i-1) != '0')||(b))
{
temp = temp.concat("juta ");
b = false;
}
}
//inti angka ratusan=================
if(Kalimat.charAt(i) == '1')
{
temp = temp.concat("se");
}
else
if(Kalimat.charAt(i) != '0')
temp = temp.concat(huruf(Kalimat.charAt(i))+" ");
//==================================================================
}
else
//angka puluhan ribu
if(Kalimat.length()-i == 5)
{
if(i-1 > -1)
{
if(Kalimat.charAt(i-1) != '0')
{
temp = temp.concat("ratus ");
b = true;
}
}
//inti puluhan ========================
if ((Kalimat.charAt(i) != '1') && (Kalimat.charAt(i) != '0'))
{
temp = temp.concat(huruf(Kalimat.charAt(i))+" ");
}
else
if((Kalimat.charAt(i) == '1')&&((Kalimat.charAt(i+1) == '0') || (Kalimat.charAt(i+1) == '1')))
{
temp = temp.concat("se");
}
//====================

}
else
//angka ribuan
if(Kalimat.length()-i == 4)
{
if(i == 0)
{
if(Kalimat.charAt(i) == '1')
{
temp = temp.concat("se");
}
else
if(Kalimat.charAt(i) != '0')
temp = temp.concat(huruf(Kalimat.charAt(i))+" ");
}
if(i-1 > -1)
{

//inti angka satuan======================
if((Kalimat.charAt(i-1) == '1')&&(Kalimat.charAt(i) == '1'))
{
temp = temp.concat("belas ");
b = true;
}
else
if((Kalimat.charAt(i-1) == '1')&&(Kalimat.charAt(i) != '1')&&(Kalimat.charAt(i) != '0'))
{
temp = temp.concat(huruf(Kalimat.charAt(i))+" belas ");
b = true;
}

if(((Kalimat.charAt(i-1) != '1')&&(Kalimat.charAt(i-1) != '0'))||(Kalimat.charAt(i) == '0'))
{
if(Kalimat.charAt(i-1) != '0')
{
temp = temp.concat("puluh ");
b = true;
}
}

if((Kalimat.charAt(i-1) != '1')&&(Kalimat.charAt(i) != '0'))
{
temp = temp.concat(huruf(Kalimat.charAt(i))+" ");
b = true;
}
//======================================================
}
}
else
//angka ratusan
if(Kalimat.length()-i == 3)
{
if(i-1 > -1)
{
if((Kalimat.charAt(i-1) != '0')||(b))
{
temp = temp.concat("ribu ");
b = false;
}
}
//inti angka ratusan=================
if(Kalimat.charAt(i) == '1')
{
temp = temp.concat("se");
}
else
if(Kalimat.charAt(i) != '0')
temp = temp.concat(huruf(Kalimat.charAt(i))+" ");
//==================================================================
}
else
//angka puluhan
if(Kalimat.length()-i == 2)
{
if(i-1 > -1)
{
if(Kalimat.charAt(i-1) != '0')
temp = temp.concat("ratus ");
}
//inti puluhan ========================
if ((Kalimat.charAt(i) != '1') && (Kalimat.charAt(i) != '0'))
{
temp = temp.concat(huruf(Kalimat.charAt(i))+" ");
}
else
if((Kalimat.charAt(i) == '1')&&((Kalimat.charAt(i+1) == '0') || (Kalimat.charAt(i+1) == '1')))
{
temp = temp.concat("se");
}
//====================
}
else
//angka satuan
if(Kalimat.length()-i == 1)
{
if(i == 0)
temp = temp.concat(huruf(Kalimat.charAt(i)));

if(i-1 > -1)
{
//inti angka satuan======================
if((Kalimat.charAt(i-1) == '1')&&(Kalimat.charAt(i) == '1'))
{
temp = temp.concat("belas ");

}
else
if((Kalimat.charAt(i-1) == '1')&&(Kalimat.charAt(i) != '1')&&(Kalimat.charAt(i) != '0'))
{
temp = temp.concat(huruf(Kalimat.charAt(i))+" belas ");
}

if(((Kalimat.charAt(i-1) != '1')&&(Kalimat.charAt(i-1) != '0'))||(Kalimat.charAt(i) == '0'))
{
if(Kalimat.charAt(i-1) != '0')
{
temp = temp.concat("puluh ");
}
}

if((Kalimat.charAt(i-1) != '1')&&(Kalimat.charAt(i) != '0'))
{
temp = temp.concat(huruf(Kalimat.charAt(i)));
}
//======================================================
} //if(i-1>-1)
}
i=i+1;
}
System.out.println(temp);
}


}

Tidak ada komentar: