Program Konversi bilangan

Malam semuanya, malam minggu gini sebenernya enak keluar sama pacar, tapi berhubung saya lagi males keluar jomblo :D, jadi lebih baik update blog dulu aja  lah, karena update status  di facebook sudah biasa. :D

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