Oke malam ini saya mau membagikan sebuah program Java tentang konversi bilangan ke dalam kata yang merupakan tugas project saya semester 1 ini .
contoh :
1156785 = satu juta seratus lima puluh enam ribu tujuh ratus delapan puluh lima
1010101010 = satu milyar sepuluh juta seratus satu ribu sepuluh
Program ini menggunakan inputan dalam bentuk String, dan maksimal sepanjang 15 digit, atau ratusan Trillliun. berikut adalah kode nya :
/*
* progam ini digunakan untuk mengkonversi bilangan ke dalam bentuk kalimat,
* dengan panjang maksimal 15 digit.
*
* Penjelasan Program :
* awal nya kita inputkan bilangannya
* Contoh : 1996
*
* maka di Array
* indeks |3| |2| |1| |0|
* 1 9 9 6
* jadi indeks nya dibalik.
*
* kalo tidak di balik,
* indeks |0| |1| |2| |3|
* 1 9 9 6
* letak indeks akan selalu berubah bergantung pada jumlah data.
* Tapi jika dibalik maka letak ratusan, ribuan, puluhan, jutaan akan tetap.
* contoh letak ribuan akan tetap di indeks 5 - 3, tidak akan berubah walau jumlah data nya berubah
*/
package pembilang;
import java.util.Scanner;
/**
*
* @author moko
*/
public class Pembilang {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);//inisialisasi variabel input sebagai Scanner
String bilangan = input.nextLine(); //inputan untuk bilangan
String nol = "0";//
if(bilangan.length() % 3 == 1){//jika panjang bilangan di mod 3 = 1
bilangan = nol.concat(nol).concat(bilangan); //bilangan = 0 + 0 + bilangan
}else if(bilangan.length() % 3 == 2){//jika panjang bilangan di mod 3 = 2
bilangan = nol.concat(bilangan);//bilangan = 0 + bilangan
}
int panjangbil = bilangan.length();//panjangbil = panjang bilangan
String angka[] = new String[panjangbil];//inisialisasi array angka dalam bentuk string
int n = 0;//inisialiasasi n, n digunakan untuk membantu dalam membalik isi array
for (int i = panjangbil-1; i >=0 ; i--) {//untuk memasukkan setiap karakter ke dalam string angka, dengan membalik urutan angka
angka[i] = bilangan.substring(n, n+1);
n++;
}
//menampilkan isi array
for (int i = panjangbil - 1; i >=0; i--) {//untuk mencocokkan angka yang di Array
switch (angka[i]) {
case "1"://jika angka indeks i sama dengan 1
if(i == 1 || i == 4 || i == 7 || i == 10 || i == 13){//untuk mengecek apakah angka belas an
if(!(angka[i-1].equals("1") || angka[i-1].equals("0"))){//mengecek apakah bukan 10 atau 11
System.out.print("");
}else if(angka[i-1].equals("1")){//jika angka index ke i - 1 sama dengan 1, berati 11
System.out.print("sebelas ");
}else if(angka[i-1].equals("0")){//jika angka index ke i - 1 sama dengan 0, berarti 10
System.out.print("sepuluh ");
}
}else if(i == 2 ||(i == 3 && (angka[4].equals("0") && angka[5].equals("0") && !angka[4].equals("1"))) || i == 5 || i == 8 || i == 11 || i == 14){//untuk mengecek apakah i dalam posisi ratusan dan seribu
System.out.print("se");
}else if(i == 0 || i == 3 || i == 6 || i == 9 || i == 12){//untuk mengecek nilai i di posisi satuan
if(!angka[i+1] .equals("1")){//apakah di depan nilai i bukan 1
System.out.print("satu ");
}
}
break;
case "2"://jika angka indeks i sama dengan 2
System.out.print("dua ");
break;
case "3"://jika angka indeks i sama dengan 3
System.out.print("tiga ");
break;
case "4"://jika angka indeks i sama dengan 4
System.out.print("empat ");
break;
case "5"://jika angka indeks i sama dengan 5
System.out.print("lima ");
break;
case "6"://jika angka indeks i sama dengan 6
System.out.print("enam ");
break;
case "7"://jika angka indeks i sama dengan 7
System.out.print("tujuh ");
break;
case "8"://jika angka indeks i sama dengan 8
System.out.print("delapan ");
break;
case "9"://jika angka indeks i sama dengan 9
System.out.print("sembilan ");
break;
}
if((i == 14 || i == 11|| i == 8 || i == 5 || i == 2) && !angka[i].equals("0")){//untuk mengecek nilai ratusan dan angka nya tidak b0leh 0
System.out.print("ratus ");
}else if((i==13 || i==10 || i==7 || i == 4 || i == 1) && (!angka[i].equals("0") && !angka[i].equals("1")) ){//untuk mengecek nilai puluhan dan membedakan antara 10 dan belasan.
System.out.print("puluh ");
}else if(i==0 || i == 3 || i == 6 || i== 9 || i == 12){//untuk mengecek nilai belasan
if((!angka[i].equals("1") && !angka[i].equals("0")) && (angka[i+1].equals("1"))){//apabila bukan 10 atau 11
System.out.print("belas ");
}
}
if(i == 12){//untuk mengecek nilai trilliun
System.out.print("trilliun ");
}else if(i == 9 && !(angka[9].equals("0") && angka[10].equals("0") && angka[11].equals("0"))){//untuk mengecek nilai milyar dan digit milyar apakah 000, jika 000 maka milyar tidak dibaca
System.out.print("miliiar ");
}else if(i == 6 && !(angka[6].equals("0") && angka[7].equals("0") && angka[8].equals("0"))){//untuk mengecek nilai juta dan digit juta apakah 000, jika 000 maka juta tidak dibaca
System.out.print("juta ");
}else if(i == 3 && !(angka[3].equals("0") && angka[4].equals("0") && angka[5].equals("0"))){//untuk mengecek nilai ribu dan digit ribu apakah 000, jika 000 maka ribu tidak dibaca
System.out.print("ribu ");
}
}
}
}
itu tadi adalah program yang saya buat menggunakan java.
Semoga Bermanfaat :)
0 komentar:
Posting Komentar