Selasa, 07 Desember 2010

Program Penjualan dengan Java dan MySQL (Bag.2)

Tulisan ini menyambung tulisan sebelumnya dengan judul yang sama. Kali ini adalah pembuatan form login. Ketika program pertama kali dijalankan maka form ini yang pertama kali akan tampil untuk validasi user siapa saja yang berhak mengakses program utama.

  • Buka Netbeans&project yang dulu sudah dibuat, tambahkan package dan beri nama 'gui'. Package ini untuk menampung class yang menampilkan GUI.
  • Tambahkan JDialog pada package GUI dan beri nama class tersebut dengan 'login', maka secara otomatis Netbeans akan me-generate sebuah JDialog. Rubah variabel name masing-masing komponen dan beri nama txtUser, txtPass, cmdOk, cmdCance, dan mess.

  • Buka bagian tab Source View ketik code di bawah ini:

package gui;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.sql.*;
import javax.swing.ImageIcon;
import javax.swing.UIManager;
import database.database;

/**
 * form login
 * @author Thuba
 */
public class login extends javax.swing.JDialog {
    database db=new database();
    private Statement stmt;
    private ResultSet rs;
    private String dataUser,dataPass;
    boolean pro=true;

    /** Creates new form login */
    public login(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        db.koneksiDBMS();
        initComponents();
        this.setLocationRelativeTo(this);
        AddListener();
    }

    //method AddListener pd objek
    private void AddListener(){
        txtUser.addKeyListener(new KeyAdapter(){
        public void keyPressed(KeyEvent e){
            txtUserkeyPressed(e);
        }
    });

        txtPass.addKeyListener(new KeyAdapter(){
        public void keyPressed(KeyEvent e){
            txtPasskeyPressed(e);
        }
    });
    }

    /**
     * method jika txtUser dienter
     * @param e
     */
    private void txtUserkeyPressed(KeyEvent e){
        int i=e.getKeyCode();
                if(i==10){
                    txtPass.requestFocus();
            }
     }

    /**
     * method jika txtPass dienter
     * @param e
     */
    private void txtPasskeyPressed(KeyEvent e){
        int i=e.getKeyCode();
                if(i==10){
                    cek();
            }
     }

@SuppressWarnings("static-access")
    //method cek u/validasi user,password dan ststus
    private void cek(){
        String user=txtUser.getText();
        String pass=txtPass.getText();
        String status="user";
        String status1="admin";
        try{
            String sql="select * from user";
            Statement ps=db.con.createStatement();
            rs=ps.executeQuery(sql);
            while(rs.next()){
                String u=rs.getString(1);
                //jika username=user di DB
                if(user.equals(u)){
                    String sql2="select * from user where user='"+u+"'";
                    ps=db.con.createStatement();
                    rs=ps.executeQuery(sql2);
                    while(rs.next()){
                        String pas=rs.getString(2);
                        String stat=rs.getString(3);
                        //jika password=password di DB dimana user=username yg diinput
                        if(pass.equals(pas)){
                            if(stat.equals("user")){
                            this.dispose();
                           JOptionPane.showMessageDialog(null,"Anda login sebagai user biasa");
                        } else if(stat.equals("admin")){
                            this.dispose();
                            JOptionPane.showMessageDialog(null, "Anda login sebagai Admin & berhak       mengakses semua program utama");
                            }
                   } else {
                        mess.setFont(new java.awt.Font("Courier New", 1, 11));
                        mess.setText("User or Password Invalid!");
                        mess.setForeground(new java.awt.Color(255, 51, 102));
                        txtUser.requestFocus();
                   }
                 }
              } else {
                    mess.setFont(new java.awt.Font("Courier New", 1, 11));
                    mess.setText("User or Password Invalid!");
                    mess.setForeground(new java.awt.Color(255, 51, 102));
                    txtUser.requestFocus();
                }
            }
        }catch(SQLException ex){}
    }


  • Klik kanan pada cmdOk-->event-->Action-->actionPerformed, ketikan method cek() yang sudah dibuat

private void cmdOkActionPerformed(java.awt.event.ActionEvent evt) {                                     
        // TODO add your handling code here:
        cek();
    }


  • Klik kanan pada cmdCancel-->event-->Action-->actionPerformed, ketikan method 'System.exit(0)'.

private void cmdCancelActionPerformed(java.awt.event.ActionEvent evt) {                                        
        // TODO add your handling code here:
        System.exit(0);
    }

  • Klik kanan pada project-->Clean and Build, kemudian jalankan program dan login dengan user dan password sesuai yang ada di basis data 



Bersambung.........

    Tidak ada komentar:

    Posting Komentar