Friday, May 4, 2012

Membuat form data mahasiswa dengan Java di Eclipse

assalamualaikum wr wb.
sebenarnya ini adalah tugas kuliah tetapi sengaja saya simpan di blog sebagai pengetahuan saja, atau iseng-iseng berhadian.pertama sebenarnya sunah mau memakai package atau ga sama saja, tetapi saya memakai "package tugas". penamaan itu gimana agar agar aja eh agan agan aja.. lansung aja ke TKP, cekibroott..

package tugas;

import javax.swing.*;
import java.awt.*;
import java.sql.*;
import java.awt.event.*;
import javax.swing.text.*;

public class ValidasiPrimaryKey extends JFrame {
    JLabel jLabel1 = new JLabel();
    JLabel jLabel2 = new JLabel();
    JLabel jLabel4 = new JLabel();
    JLabel jLabel5 = new JLabel();
    JTextField textKode = new JTextField();
    JTextField textNama = new JTextField();
    JTextField textAlamat = new JTextField();
    JTextField texttgl_lahir = new JTextField();
    List daftar = new List();
    JLabel jLabel3 = new JLabel();
    Button button1 = new Button();
    Connection konek;
    /**
     * Method Main
     * @program args : Arguments
     */
    public static void main (String args[])
    {   
        ValidasiPrimaryKey ValidasiPrimaryKey = new ValidasiPrimaryKey();
        ValidasiPrimaryKey.setSize(400,400);
        Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
        int lebar = (screen.width-ValidasiPrimaryKey.getSize().width)/2;
        int tinggi = (screen.height-ValidasiPrimaryKey.getSize().height)/2;
       
        ValidasiPrimaryKey.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        ValidasiPrimaryKey.setLocation(lebar,tinggi);
        ValidasiPrimaryKey.setResizable(false);
        ValidasiPrimaryKey.setVisible(true);
    }
   
    public ValidasiPrimaryKey()
    {
        jLabel1.setHorizontalAlignment(SwingConstants.RIGHT);
        jLabel1.setText("NIM :");
        jLabel1.setBounds(new Rectangle(10, 13, 86, 15));
        this.getContentPane().setLayout(null);
       
        jLabel2.setBounds(new Rectangle(10, 43, 86, 15));
        jLabel2.setHorizontalAlignment(SwingConstants.RIGHT);
        jLabel2.setText("Nama  :");
       
        jLabel4.setBounds(new Rectangle(10, 73, 86, 15));
        jLabel4.setHorizontalAlignment(SwingConstants.RIGHT);
        jLabel4.setText("Alamat  :");
       
        jLabel5.setBounds(new Rectangle(10, 100, 86, 15));
        jLabel5.setHorizontalAlignment(SwingConstants.RIGHT);
        jLabel5.setText("Tanggal Lahir  :");
       
        textKode.setText(null);
        textKode.setBounds(new Rectangle(100, 13, 187,21));
        textKode.setDocument(new batasiInput((byte)12).getFilter());
       
        textNama.setText(null);
        textNama.setBounds(new Rectangle(100,43,187,21));
        daftar.setBounds(new Rectangle(29, 160, 288, 182));
       
        textAlamat.setText(null);
        textAlamat.setBounds(new Rectangle(100,73,187,21));
       
        texttgl_lahir.setText(null);
        texttgl_lahir.setBounds(new Rectangle(100,100,187,21));
       
        jLabel3.setText("daftar kode-kode siswa yang telah tersimpan sebelumnya");
        jLabel3.setBounds(new Rectangle(29,140,321,15));
        button1.setLabel("CEK dan SIMPAN");
        button1.setBounds(new Rectangle(97, 120, 128, 24));
        // Menambahkan Action Listener
        button1.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                // Method yang dipanggil saat tombil ditekan
                cekAndSaveData(e);
            }
           
        });
        this.getContentPane().add(jLabel1, null);
        this.getContentPane().add(jLabel2, null);
        this.getContentPane().add(jLabel4, null);
        this.getContentPane().add(jLabel5, null);
        this.getContentPane().add(textKode, null);
        this.getContentPane().add(textNama, null);
        this.getContentPane().add(textAlamat, null);
        this.getContentPane().add(texttgl_lahir, null);
        this.getContentPane().add(daftar, null);
        this.getContentPane().add(jLabel3, null);
        this.getContentPane().add(button1, null);
        // memanggil method untuk koneksi database dan daftar kode yang telah tersimpan
        koneksiDatabase();
        daftarKode();
       
       
    }
    //method koneksiDatabase
    //untuk melakukan koneksi dengan database server
   
    public void koneksiDatabase()
    {
        try
        {
            Class.forName("com.mysql.jdbc.Driver");
            System.out.print("suksess Driver JDBC ditemukan....");
            try
            {
                String db = "mahasiswa";
                String url = "jdbc:mysql://localhost/"+db;
                String usr = "root";
                String pwd = "";
                konek = DriverManager.getConnection(url, usr, pwd);
                System.out.print("sukses koneksi...");
            }
            catch (SQLException se)
            {
                System.out.print("koneksi Gagal....");
            }
        }
        catch(ClassNotFoundException cnfe)
        {
            System.out.print("Class tidak ditemukan... Error : "+cnfe);
        }
    }
    // method daftarkode
    // untuk memanggil daftar kode dan nama siswa yang telah tersimpan di database
   
    public void daftarKode()
    {
        daftar.removeAll();
        //mencoba mengirim statement SQL
        try
        {
            Statement stat = konek.createStatement();
            ResultSet rSet = stat.executeQuery("Select * from data");
            // mengambil hasil SQL
            while (rSet.next())
            {
                daftar.add(rSet.getString("nim")  +  "  "  +  rSet.getString("nama"));
            }
            stat.close();
        }
        //kesalahan pengiriman Statement SQL
        catch (SQLException se)
        {
            System.out.print("SQL salah = " + se);
        }
        catch(Exception e)
        {
            System.out.print("pesan error = " + e);
        }
    }// akhir method daftarKode()
    /**
     * method cekAndSaveData(actionevent e)
     * untuk melakukan pemeriksaan apakah data yang dimasukkan valid atau tidak
     * jika valid, data tersebut disimpan
     * tetapi jika tidak valid maka menampilak kesalahan
     * @param e : action Event
     */
    void cekAndSaveData(ActionEvent e)
    {
        // mencoba mengirim statement SQL
        try
        {
            PreparedStatement stat = konek.prepareStatement("insert Into data values(?,?,?,?)");
           
        try
        {
            stat.setString(1, textKode.getText());
            stat.setString(2, textNama.getText());
            stat.setString(3, textAlamat.getText());
            stat.setString(4, texttgl_lahir.getText());
            stat.executeUpdate();
        }
        // gagal mengirim statement SQL (data tidak valid)
        catch (SQLException se)
        {
            System.out.print("gagal menyimpan.. pesan error = " + se);
            JOptionPane.showMessageDialog(null, "kode yang anda masukkan telah ada sebelumnya \ngagal disimpan.. coba lagi\npesan error :\n"+"<html><font color=#FF0000>" +se+"</font></html>");
            textKode.setFocusable(true);
        }
        daftarKode();
        stat.close();
    }
        catch(Exception er)
        {
            System.out.println("pesan error = " +er);
           
        }
}//akhir method cekAndSaveData(ActionEvent e)
/**
 * membuat kelas untuk membatasi input yang masuk
 */
    class batasiInput
    {
        byte length;
        PlainDocument filter;
        public batasiInput(byte length)
        {
            this.length = length;
        }
        public PlainDocument getFilter()
        {
            filter = new javax.swing.text.PlainDocument()
            {
                public void insertString(int offs, String str, AttributeSet a) throws BadLocationException
                {
                    int ab = textKode.getText().length();
                    if(ab<length)
                    {
                        super.insertString(offs, str, a);
                    }
                }
            };
            return filter;
        }
    }
}// akhir kelas ValidasiPrimaryKey

seperti inilah tampilan saat di eksekusi :


kedua. dari source code diatas saya menggunakan Database "mahasiswa" dan nama Tabelnya "data" jadi penamaan itu sesuai agan agan saja. ya hanya itu yg saya sampaikan. atas perhatian saya mengucapkan terimakasih. wasalamualaikum wr wb.
ya kita ketemu lagi di lain kesempatan jika Allah mengizinkan. Share

4 comments:

  1. very good,
    thanks for your information. . . :D

    ReplyDelete
  2. upload lengkap dong mau download. please

    ReplyDelete
  3. min kenapa pas di running ga jadi kenapa yah?

    ReplyDelete
    Replies
    1. maksudnya ga ada hasilnya javanya muncul tapi pas di simpan ga jadi sama sekali min

      Delete