Selasa, 21 Mei 2019

Cara Membuat Nomor Kode Otomatis di textfiel Berdasarkan Bulan dan Tahun pada Java

Dalam Tulisan Ini Saya Ingin Berbagi Pengalaman Saya Saat Membuat Sistem Informasi, Kasus nya sebenarnya Sederhana yaitu membuat kode otomatis dan banyak artikel yang membahas tentang kasus ini.

Kode otomatis sangat membantu user dalam mengerjakan tugasnya, user tidak perlu repot lagi menginput kode karna sistem sendiri lah yang otomatis mengerjakannya berdasarkan tabel database. Cara kerjanya yaitu sistem mencari kode dalam tabel jika kode belum ada maka kode mulai dari 1 dan jika ada maka cari kode terbesar kemudian tambah 1, lebih jelasnya dapat di lihat pada script  di bawah ini

**
public void no_otomatis(){
        try {
            conn=konek.getKoneksiDatabase();
            st = conn.createStatement();
            rs= st.executeQuery("select max(right(kd_barang,3))as kd_barang from tbl_barang");
            while (rs.next()) {               
                if(rs.first()==false){
                    jTextField2.setText("A."+"001");
                }else{
                    rs.last();
                    int autoid=rs.getInt(1)+1;
                    String nomor=String.valueOf(autoid);
                    int noLong=nomor.length();
                    for(int a=0;a<3-noLong;a++){
                      nomor= "0"+nomor;
                    }
                    jTextField2.setText("A."+nomor);
                }
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e);
        }
    }



Namun Bagaimana Jika Setiap hari user menginput lebih dari 10 atau bahkan sampai 100 transaksi setiap hari kita kali 1 bulan (100x30=3000) kita kali lagi 1 tahun ??, tapi jika tidak contoh diatas sudah dapat membantu kita bukan??...

Namun Bagaiman Jika YAA.. Solusi yaitu kita tentukan kode berdasarkan bulan dan tahun yang ada dalam tabel  jika bulan berganti maka kode kembali dari 001 jika tidak maka tambah 1. Lebih jelasnya lihat gambar di bawah ini soalnya susah bagi saya menjelaskannya lebih rinci hehe..

**

public void nomorotomatis(){
        try {
        Date now = new Date();
        SimpleDateFormat date,bulan;
        date= new SimpleDateFormat("yyyyMM");
        String tgl = date.format(now);
        bulan= new SimpleDateFormat("yyyy-MM");
        String bln =bulan.format(now);
        String c=bln+"-%";
            conn=konek.getKoneksiDatabase();
            st = conn.createStatement();
            rs= st.executeQuery("SELECT max( right( kd_pakai, 3 ) ) AS kode "
                              + "FROM tbl_pakai WHERE tgl_pakai LIKE '"+c+"'");
            while (rs.next()) {               
                if(rs.first()==false){
                    jTextField1.setText("KP/"+tgl+"/"+"001");
                }else{
                    rs.last();
                    int autoid=rs.getInt(1)+1;
                    String nomor=String.valueOf(autoid);
                    int noLong=nomor.length();
                 for(int a=0;a<3-noLong;a++){
                      nomor= "0"+nomor;
                  }
                    jTextField1.setText("KP/"+tgl+"/"+nomor);
                }
            } 
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e);
        }
     }

Tidak ada komentar:

Posting Komentar