Cara Membuat Login
Ditulis oleh
mrjj

Artikel yang akan saling berkaitan pada project ini :
Membuat Windows Form Register
CREATE TABLE USER (
id_user VARCHAR(10) NOT NULL,
username VARCHAR(20) NOT NULL,
PASSWORD VARCHAR(20) NOT NULL,
nama_user VARCHAR(25) NOT NULL,
LEVEL VARCHAR(20) NOT NULL,
PRIMARY KEY (id_user)
);
ubahlah variabel – variabel diatas menjadi seperti berikut :
- txtiduser (JTextField)
- txtusername (JTextField)
- txtpassword (JPasswordField)
- txtnamauser (JTextField)
- cblevel (JCombobox)
- btnbaru (JButton)
- btnupdate (JButton)
- btnsimpan (JButton)
- btnhapus (JButton)
- btnedit (JButton)
- tbuser (JTable)
Menampilkan Data User
public void TampilData() {
DftTblModel_user = new DefaultTableModel();
DftTblModel_user.addColumn("ID");
DftTblModel_user.addColumn("USERNAME");
DftTblModel_user.addColumn("PASSWORD");
DftTblModel_user.addColumn("NAMA USER");
DftTblModel_user.addColumn("LEVEL");
tbuser.setModel(DftTblModel_user);
Connection conn = Koneksi.getConnection();
try {
Statement stmt = conn.createStatement();
SQL = "select * from user";
ResultSet res = stmt.executeQuery(SQL);
while (res.next()) {
DftTblModel_user.addRow(new Object[]{
res.getString("id_user"),
res.getString("username"),
res.getString("password"),
res.getString("nama_user"),
res.getString("level")
});
}
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
koding diatas digunakan untuk menampilkan data user, agar data user bisa tampil kita harus benar dalam melakukan
importheader, pemanggilan fungsi
tampilDatatersebut dan pendekalarasian variabel yang dibutuhkan. berikut ini adalah header yang dibutuhkan untuk menmpilkan data :
import Konfigurasi.Koneksi;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
kemudian untuk melakukan pendeklarasian variabel dan pemanggilan fungsi
TampilDatakita buat tepat dibawah nama class, codingnya seperti berikut :
public class form_user extends javax.swing.JFrame {
private DefaultTableModel DftTblModel_user;
private String SQL;
/**
* Creates new form form_user
*/
public form_user() {
initComponents();
TampilData();
}
....
Simpan Data User
kodeOtomatis();
txtusername.requestFocus();
btnsimpan.setEnabled(true);
btnupdate.setEnabled(false);
btnhapus.setEnabled(false);
btnupdate.setEnabled(false);
private void kodeOtomatis() {
try {
int akhir = 0;
Connection conn = Koneksi.getConnection();
String query = "SELECT MAX(RIGHT(id_user,1)) AS jml FROM USER";
PreparedStatement pst = conn.prepareStatement(query);
ResultSet rs = pst.executeQuery();
while (rs.next()) {
akhir = Integer.parseInt(rs.getObject("jml").toString());
}
if (akhir == 0) {
txtiduser.setText("U001");
} else {
String no = String.valueOf(akhir + 1);
int noLong = no.length();
for (int a = 0; a < 3 - noLong; a++) {
no = "0" + no;
}
txtiduser.setText("U" + no);
}
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
try {
Connection conn = Koneksi.getConnection();
PreparedStatement stmt = conn.prepareStatement("insert into user(id_user, username, password, nama_user, level) values(?,?,?,?,?)");
stmt.setString(1, txtiduser.getText());
stmt.setString(2, txtusername.getText());
stmt.setString(3, txtpassword.getText());
stmt.setString(4, txtnamauser.getText());
stmt.setString(5, cblevel.getSelectedItem().toString());
stmt.executeUpdate();
JOptionPane.showMessageDialog(null, "Data berhasil disimpan", "Pesan", JOptionPane.INFORMATION_MESSAGE);
tampilData();
kodeOtomatis();
} catch (SQLException e) {
System.out.println(e.getMessage());
}
btnbaru.setEnabled(true);
btnsimpan.setEnabled(true);
btnhapus.setEnabled(false);
btnupdate.setEnabled(false);
Update Data
int baris = tbuser.getSelectedRow();
txtiduser.setText(DftTblModel_user.getValueAt(baris, 0).toString());
txtusername.setText(DftTblModel_user.getValueAt(baris, 1).toString());
txtpassword.setText(DftTblModel_user.getValueAt(baris, 2).toString());
txtnamauser.setText(DftTblModel_user.getValueAt(baris, 3).toString());
cblevel.setSelectedItem(DftTblModel_user.getValueAt(baris, 4).toString());
btnbaru.setEnabled(true);
btnhapus.setEnabled(true);
btnupdate.setEnabled(true);
btnsimpan.setEnabled(false);
Setelah muncul pada masing-masing textfield kita tinggal memilih kolom apa yang akan diubah, kemudian klik tombol
Update,pada tombol update berikan coding berikut :
try {
Connection conn = Koneksi.getConnection();
PreparedStatement stmt = conn.prepareStatement("update user set username=?, password=?, nama_user=?, level=? where id_user=?");
stmt.setString(1, txtusername.getText());
stmt.setString(2, txtpassword.getText());
stmt.setString(3, txtnamauser.getText());
stmt.setString(4, cblevel.getSelectedItem().toString());
stmt.setString(5, txtiduser.getText());
stmt.executeUpdate();
JOptionPane.showMessageDialog(null, "Data berhasil diubah", "Pesan", JOptionPane.INFORMATION_MESSAGE);
tampilData();
} catch (SQLException e) {
System.out.println(e.getMessage());
}
btnupdate.setEnabled(false);
btnsimpan.setEnabled(false);
btnhapus.setEnabled(false);
btnbaru.setEnabled(true);
terakhir adalah coding hapus data, untuk melakukan hapus data caranya sama ketika akan mengupdate yaitu harus memilih data yang akan di hapus, stelah itu tekan tombol hapus, pada tombol hapus berikan coding berikut :
Connection conn = Koneksi.getConnection();
int confirm = JOptionPane.showConfirmDialog(null, "Apakah anda yakin ingin menghapus data tersebut?", "Konfirmasi", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if (confirm == 0) {
try {
java.sql.PreparedStatement stmt = conn.prepareStatement("delete from user where id_user ='" + txtiduser.getText() + "'");
stmt.executeUpdate();
JOptionPane.showMessageDialog(null, "Data berhasil dihapus", "Pesan", JOptionPane.INFORMATION_MESSAGE);
tampilData();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Data gagal di hapus" + e.getMessage(), "Pesan", JOptionPane.ERROR_MESSAGE);
}
}
btnbaru.setEnabled(true);
btnsimpan.setEnabled(false);
btnhapus.setEnabled(false);
btnupdate.setEnabled(false);
btnupdate.setEnabled(false);
Hapus Data
Connection conn = Koneksi.getConnection();
int confirm = JOptionPane.showConfirmDialog(null, "Apakah anda yakin ingin menghapus data tersebut?", "Konfirmasi", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if (confirm == 0) {
try {
java.sql.PreparedStatement stmt = conn.prepareStatement("delete from user where id_user ='" + txtiduser.getText() + "'");
stmt.executeUpdate();
JOptionPane.showMessageDialog(null, "Data berhasil dihapus", "Pesan", JOptionPane.INFORMATION_MESSAGE);
tampilData();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Data gagal di hapus" + e.getMessage(), "Pesan", JOptionPane.ERROR_MESSAGE);
}
}
btnbaru.setEnabled(true);
btnsimpan.setEnabled(false);
btnhapus.setEnabled(false);
btnupdate.setEnabled(false);
btnupdate.setEnabled(false);
Login Form
- txtuser (JTextField)
- txtpass (JPasswordField)
- cblevel (JCombobox)
- btnLogin (JButton)
- btnCancel (JButton)
try {
int juser=0;
Connection conn = Koneksi.getConnection();
String sql = "SELECT Count(*) as jml FROM user WHERE username = '" + txtuser.getText() + "' AND password = '" + txtpass.getText() + "' AND level='" + cblevel.getSelectedItem().toString() + "'";
System.out.println(sql);
Statement stmt = conn.createStatement();
ResultSet res = stmt.executeQuery(sql);
if (res.next()) {
juser=Integer.parseInt(res.getObject("jml").toString());
if(juser > 0){
JOptionPane.showMessageDialog(null, "Login Berhasil", "Pesan", JOptionPane.INFORMATION_MESSAGE);
new form_user().show();
}else{
JOptionPane.showMessageDialog(null, "Login Gagal", "Pesan", JOptionPane.INFORMATION_MESSAGE);
}
}
} catch (SQLException e) {
System.out.println(e.getMessage());
}
kemudian berikan event pada btnCancel dengan coding sebagai berikut :
dispose();
Berikut hasil akhir dari form register dan login :