Share

Minggu, 09 September 2012

[JAVA] Konverter Bilangan full Scanner

Assaalamu'alaikum :D kalo teman-teman padda posting konverter yang full JOptionPane. Kali ini saya mencoba posting untuk konverter Bilangan di JAVA yang seluruh inputannya menggunakan Scanner. Sebenarnya saya sudah pernah posting JAVA : Koverter Bilangan Desimal dengan Menu Pilihan [Lengkap]  tapi disini adalah penyempurnaannya, diposting sebelumnya inputan perpaduan JOptionPane dan Scanner, disini semua pakai scanner.
Berikut adalah codingnya

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Praktik1;

import java.util.Scanner;

/**
 *
 * @author SYARIF-FIRAYZ
 */
public class Konversi_Bilangan_Scanner_Full {
    static String name; 
    static String jk; 
    static String lp; 
    static int bilDes;
    static int asli;
//START method konversi
    public static void Biner(int n){ //function utk konv ke biner
        if(n>1){
            Biner(n/2);
        }
        System.out.print(n%2);
    }
    public static void tampilBiner(){ //function utk tampilkan biner
        inputDes();
        System.out.print("Binernya adalah :");
                Biner(bilDes);
    }
    public static void Oktal(int n){ //function utk konv ke octal
        if(n>1){
            Oktal(n/8);
        }
        System.out.print(n%8);
    }
    public static void tampilOktal(){ //function utk tampilkan octal
        inputDes();
        System.out.print("Oktalnya adalah :");
                Oktal(bilDes);
    }
    
    public static void Heksa(int n){ //function utk konv ke heksa
        asli = n;
        if(n>1){
            Heksa(n/16);
        }
        if(!((n%16==0)&(n==asli))){ //jika heksa awal 0 tidak ditulis (misal 04 ditulis 4)
        switch(n%16){
            case 10 : System.out.print("A"); break;
            case 11 : System.out.print("B"); break;
            case 12 : System.out.print("C"); break;
            case 13 : System.out.print("D"); break;
            case 14 : System.out.print("E"); break;
            case 15 : System.out.print("F"); break;
            default : System.out.print(n%16);//System.out.print(
        }
        }
    }
    public static void tampilHeksa(){ //function utk tampilkan heksa
        inputDes();
        System.out.print("Heksanya adalah :");
                Heksa(bilDes);
    }
//END method konversi
    
//START function input menu
    public static int inpMenu(){ //fungsi untuk input pemilihan menu
        System.out.println("=================================="+
                "\n\nSelamat datang "+jk+" "+name);
        System.out.println("Silakan memilih Menu Konversi Bilangan"+
                "\n1. Biner \n2. Hexa \n3. Oktal \n4. Terbilang \n5. Pecahan  \n6. Exit ");
        System.out.print("Masukkan angka Menu = ");
        Scanner inputan = new Scanner(System.in);
        int pilmenu = inputan.nextInt();
        return pilmenu;
    }
//END function input menu
    
//START method for input desimal
    public static void inputDes() { //fungsi untuk input bil desimal
        System.out.print("Masukkan Bilangan desimal = ");
        Scanner inputan=new Scanner(System.in);
        bilDes=inputan.nextInt();
    }
//END method for input desimal
    
//START eksekusi menu
    public static void menU(int pil){ //fungsi menu pemilihan 
        System.out.println("\033");//clear screen /saya sendiri ga' paham :D
        switch(pil){
            case 1: tampilBiner(); break;
            case 2: tampilHeksa();break;
            case 3: tampilOktal();break;
            case 4: tampilTerbilang();break;
            case 5: tampilPecahan();break;
            case 6: System.out.println("GOOD BYE ya!!");
                System.exit(0); break;
            default:System.out.println("(Maaf. Pilih angka 1-6");
        }
        System.out.println("\033");//clear screen
    }
//END eksekusi menu
    
//START Terbilang
    static String[] angka = {"", "Satu", "Dua", "Tiga", "Empat", "Lima", "Enam", "Tujuh", "Delapan", "Sembilan", "Sepuluh", "Sebelas"};
    private static String sebut(int x) {
        String bilang = "";
        int y = x / 100;
        if (y > 0) {
            bilang = angka[y] + " Ratus ";
            if (y == 1) {
                bilang = "Seratus ";
            }
            x %= 100;
        }
        if (x < 12) {
            bilang += angka[x];
        } else {
            y = x / 10;
            x %= 10;
            if (y == 1) {
                bilang += angka[x] + " Belas";
            } else {
                bilang += angka[y] + " Puluh " + angka[x];
            }
        }
        return bilang;
    }

    private static String terbilang(long x) {
        int y;
        String bilang = "";
        String[] satuan = {"", " Ribu ", " Juta ", " Milyar ", " Trilyun ", " Quadrilyun ", " Quintilyun "};
        if (x > Math.pow(10, 20)) {
            return "Bilangan terlalu besar";
        }
        for (int i = 6; i > 0; i--) {
            y = (int) (x / Math.pow(10, i * 3));
            if (y > 0) {
                if (y == 1 && i == 1) {
                    bilang += " Seribu ";
                } else {
                    bilang += sebut(y) + satuan[i];
                }
            }
            x %= Math.pow(10, i * 3);
        }
        bilang += sebut((int) x);
        return bilang;
    }

    public static void tampilTerbilang() {
        inputDes();
        System.out.print("Bacanya yaitu : "+terbilang(bilDes));
    }
//END terbilang
    
//START PECAHAN
public static void tampilPecahan() {
    inputDes();
        int desimal;

                desimal = bilDes;

                int satu, dua, tiga, empat, lima, enam, tujuh, delapan, sembilan, sepuluh, sebelas, duabelas, tigabelas;
                satu = desimal / 100000;
                desimal %= 100000;

                dua = desimal / 50000;
                desimal %= 50000;

                tiga = desimal / 20000;
                desimal %= 20000;

                empat = desimal / 10000;
                desimal %= 10000;

                lima = desimal / 5000;
                desimal %= 5000;

                enam = desimal / 2000;
                desimal %= 2000;

                tujuh = desimal / 1000;
                desimal %= 1000;

                delapan = desimal / 500;
                desimal %= 500;

                sembilan = desimal / 200;
                desimal %= 200;

                sepuluh = desimal / 100;
                desimal %= 100;

                sebelas = desimal / 50;
                desimal %= 50;

                duabelas = desimal / 10;
                desimal %= 10;

                tigabelas = desimal / 1;
                desimal %= 1;
             System.out.println("Jumlah seratus ribuan = " + satu
                        + "\nJumlah lima puluh ribuan = " + dua
                        + "\nJumlah dua puluh ribuan = " + tiga
                        + "\nJumlah sepuluh ribuan = " + empat
                        + "\nJumlah lima ribuan = " + lima
                        + "\nJumlah dua ribuan = " + enam
                        + "\nJumlah seribuan = " + tujuh
                        + "\nJumlah lima ratusan = " + delapan
                        + "\nJumlah dua ratusan = " + sembilan
                        + "\nJumlah seratusan = " + sepuluh
                        + "\nJumlah lima puluhan = " + sebelas
                        + "\nJumlah lima satuan = " + duabelas
                        + "\nJumlah satuan = " + tigabelas);

            }
//END PECAHAN
    
//START method input nama
public static void inpNama(){
        System.out.print("Inputkan nama anda : ");
        Scanner inputNama = new Scanner(System.in);
        name = inputNama.nextLine();
        if(name.equals(""))
        {
            System.out.println("Ma'af anda belum mengisi nama, isi lagi ya :D\n");
            inpNama();
        }
        else{
            inpJK();
        }
}
//END method input nama

//START method for input jenis kelamin
public static void inpJK(){
        System.out.print("Masukkan jenis kelamin : \n1.Laki-laki \n2.Perempuan\n menu no : ");
        Scanner inputjk = new Scanner(System.in);
        String pil = inputjk.nextLine();
        int pilmenu = Integer.parseInt(pil);
        switch(pilmenu){
            case 1 : jk = "agan"   ;break;
            case 2 : jk = "sist" ; break;
            default : 
                System.out.println("Lho anda salah input ya ??? apa anda waria :P\n input lagi ya...\n");
                inpJK();
        }
}
//END method for input jenis kelamin

//START Main METHOD UTAMA UNTUK MENJALANKAN PROGRAM
    public static void main(String FIRAYZ[]){
        inpNama();
        do{
            //pemanggilan method/fungsi menu
            menU(inpMenu());
        }
        while(true);
    }
//END Main METHOD UTAMA UNTUK MENJALANKAN PROGRAM
}
Simpan di class Konversi_Bilangan_Scanner_Full.java.

Screenshot hasil nya :
  • Ini tampilan awal saat program di-run

  • Saat ada kesalahan dalam pengisian nama

  • Jika pengisian nama benar

  • Jika pengisian menu jenis kelamin salah diminta mengulang

  • Jika pengisian jenis kelamin benar, akan dibawa ke menu konversi

  • Contoh penggunaan

0 komentar:

Posting Komentar

Share lewat :
Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Bluehost Coupons | Modified by Syarif Moklet