Postingan Terbaru

Program Java Netbeans Membuat Text Terbilang Pada Angka - JAVA GUI













Contoh Program Java Cara Menampilkan Terbilang, Contoh Program Terbilang dengan JAVA, Program Java untuk menampilkan Text Bilangan  Angka.

Sobat Uniqo mungkin pernah melihat validasi sebuah angka dengan menggunakan Huruf atau tulisan, misalnya berupa Angka "2.500.000" dapat kita tampilkan dalam bentuk tulisan terbilang "Dua Juta Lima Ratus Ribu". disini akan kita buat dengan menggunakan program Java, contoh hasil sebagai berikut .


Berikut Langkah-langkah yang dilalui :

Tahap 1 : Buat Project dan Package untuk mengelompokan file
Lihat Cara Pembuatan Project Disini !!! 
 
Tahap 2 : Tambahkan Class Pada Package Project Menggunakan JavaClass dengan nama "Terbilang"


Tahap 3 : Tambahkan Coding Berikut Pada Class "Terbilang"
 
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Terbilang;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
/**
 *
 * @author SUT@N
 */
public class Terbilang {
Map digits = new HashMap();
    Map orders = new HashMap();
    private String num = null;
    private String result = null;
    Class clazz = null;

    public Terbilang() {
        digits.put("0", "nol");
        digits.put("1", "satu");
        digits.put("2", "dua");
        digits.put("3", "tiga");
        digits.put("4", "empat");
        digits.put("5", "lima");
        digits.put("6", "enam");
        digits.put("7", "tujuh");
        digits.put("8", "delapan");
        digits.put("9", "sembilan");
        orders.put("0", "");
        orders.put("1", "puluh");
        orders.put("2", "ratus");
        orders.put("3", "ribu");
        orders.put("6", "juta");
        orders.put("9", "miliar");
        orders.put("12", "triliun");
        orders.put("15", "kuadriliun");
    }

    public Terbilang(Object num) {
        this();
        this.num = convertNumToString(num);
    }

    private void init() {
        boolean is_neg = false;
        if (clazz.equals(Double.class) || clazz.equals(Float.class)) {
            Double chk = Double.parseDouble(num);
            is_neg = chk < 0;
        } else {
            is_neg = num.startsWith("-") ? true : false;
        }
        String ints = "";
        try {
            Pattern regex = Pattern.compile("^[+-]?(\\d+)");
            Matcher regexMatcher = regex.matcher(num);
            if (regexMatcher.find()) {
                ints = regexMatcher.group(1);
            }
        } catch (PatternSyntaxException ex) {
        }
        int mult = 0;
        String wint = "";
        while (!ints.isEmpty()) {
            try {
                Pattern regex = Pattern.compile("(\\d{1,3})$");
                Matcher regexMatcher = regex.matcher(ints);
                while (regexMatcher.find()) {
                    // ambil satuan, puluhan, dan ratusan
                    int m = Integer.parseInt(regexMatcher.group());
                    int s = (m % 10);
                    int p = ((m % 100 - s) / 10);
                    int r = ((m - p * 10 - s) / 100);
                    // konversi ratusan
                    String g = "";
                    if (r == 0) {
                        g = "";
                    } else if (r == 1) {
                        g = "se" + orders.get("2");
                    } else {
                        g = digits.get("" + r + "") + " " + orders.get("2");
                    }

                    // konversi puluhan dan satuan
                    if (p == 0) {
                        if (s == 0) {
                        } else if (s == 1) {
                            g = (!g.isEmpty() ? (g + " " + digits.get("" + s + "").toString()) : (mult == 0 ? digits.get("1").toString() : "se"));
                        } else {
                            g = (!g.isEmpty() ? g + " " : "") + digits.get("" + s + "").toString();
                        }
                    } else if (p == 1) {
                        if (s == 0) {
                            g = (!g.isEmpty() ? g + " " : "") + "se" + orders.get("1");
                        } else if (s == 1) {
                            g = (!g.isEmpty() ? g + " " : "") + "sebelas";
                        } else {
                            g = (!g.isEmpty() ? g + " " : "") + digits.get("" + s + "") + " belas";
                        }
                    } else {
                        g = (!g.isEmpty() ? g + " " : "") + digits.get("" + p + "") + " puluh" + (s > 0 ? " " + digits.get("" + s + "") : "");
                    }

                    // gabungkan dengan hasil sebelumnya
                    wint = (!g.isEmpty() ? (g + (g.equals("se") ? "" : " ") + orders.get("" + mult + "")) : "") + (!wint.isEmpty() ? " " + wint : "");

                    // pangkas ribuan/jutaan/dsb yang sudah dikonversi
                    String resultString = "";
                    try {
                        Pattern tsRegex = Pattern.compile("\\d{1,3}$");
                        Matcher regexMatchers = tsRegex.matcher(ints);
                        try {
                            resultString = regexMatchers.replaceAll("");
                            ints = resultString;
                        } catch (IllegalArgumentException ex1) {
                        } catch (IndexOutOfBoundsException ex2) {
                        }
                    } catch (PatternSyntaxException ex3) {
                    }
                    mult += 3;
                }
            } catch (PatternSyntaxException ex) {
            }
        }
        if (wint.isEmpty()) {
            wint = digits.get("0").toString();
        }
        //// angka di kanan desimal
        String frac = "";
        try {
            Pattern regexf = Pattern.compile("\\.(\\d+)");
            Matcher regexMatcherf = regexf.matcher(num);
            if (regexMatcherf.find()) {
                frac = regexMatcherf.group();
            }
        } catch (PatternSyntaxException ex) {
        }
        String wfrac = "";
        for (int i = 0; i < frac.length(); i++) {
            String indexf = frac.substring(i, i + 1);
            if (digits.containsKey(indexf)) {
                wfrac += (!wfrac.isEmpty() ? " " : "") + digits.get(indexf);
            }
        }
        result = ((is_neg ? "minus " : "") + wint + ((!wfrac.isEmpty()) ? " koma " + wfrac : ""));
        result = result.replaceAll("\\s{2,}", " ");
        result = result.replaceAll("(null )|(\\s{1,}$)", "");
    }
    public String getNum() {
        return num;
    }

    public void setNum(Object num) {
        this.num = this.convertNumToString(num);
    }
       public String getResult() {
        return result;
    }

    @Override
    public String toString() {
        init();
        return getResult();
    }

    private String convertNumToString(Object value) {
        if (null == clazz) {
            clazz = value.getClass();
        }
        String reval = null;
        if (Character.class.equals(clazz) || char.class.equals(clazz) || Double.class.equals(clazz) || Float.class.equals(clazz) || Integer.class.equals(clazz) || Long.class.equals(clazz) || Short.class.equals(clazz)) {
            reval = value.toString();
        } else {
            reval = value.toString();
            //throw new NumberFormatException("Your Input has failed! Numeric or decimal only can be process");
        }
        return (reval);
    }
}


Tahap 4 : Tambahkan Class Baru / Form pada Package Project menggunakan JFrameForm dengan nama "FormTerbilang"


Tahap 5 : Buat Event Pada Button "Lihat Terbilang" dan Tambahkan Coding Berikut
 
       String angka =  jTextField1.getText();
        jLabel3.setText(new Terbilang(angka)+"".toString());

Tahap 6: Silahkan Jalankan Form dari Class "FormTerbilang"


Silahkan sobat uniqo isi nilai berupa Angka pada textfield Besar Nilai Kemudian Klik Button "Lihat Terbilang", Maka Akan Muncul Terbilang berupa text sesuai dengan nilai angka yang diinputkan.


Sekian Cara Membuat Validasi nilai angka dengan huruf atau membuat terbilang dengan menggunakan java netbeans, semoga bermanfaat bagi sobat uniqo semua, Selamat Mencoba...Jangan Pernah Berhenti Untuk Belajar..Good Luck For All
BACA JUGA
BACA JUGA

Android Portal Indonesia