Cara Membuat Login
Cara Membuat Login Java,
Cara Login dengan php menggunakan session,
cara membuat login php sederhana,
cara membuat form login dengan html,
Artikel yang akan saling berkaitan pada project ini :
ubahlah variabel - variabel diatas menjadi seperti berikut :
dikarenakan saling terkait jika anda belum pernah mengikuti artikel diatas,
silahkan dibuat terlebih dahulu, jika anda sudah membuatnya berarti struktur
project saat ini kira-kira seperti gambar berikut :
Membuat Windows Form Register
sebelum membuat login tentu saja kita harus memiliki data user yang berisi
username dan password, untuk itu kita perlu menambah sebuah tabel baru
kemudian kita akan membuat sebuah windows form registrasi user, sekarang buatlah
sebuah tabel baru dengan menjalankan script berikut pada database MySQL anda :
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)
);
langkah berikutnya kita akan membuat sebuah windows form baru pada netbeans didalam
package form dengan nama form_user, rancanglah sebuah windows form tersebut 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
untuk menampilkan data user kita akan membuat fungsi
tampil_data seperti berikut :
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 import header, pemanggilan fungsi tampilData tersebut 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 TampilData kita 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
Sebelum melakukan penyimpanan data kita perlu menekan tombol Baru untuk mengaktifkan tombol simpan, untuk itu silahkan berikan event klik pada tombol baru kemudian masukan coding berikut :
kodeOtomatis();
txtusername.requestFocus();
btnsimpan.setEnabled(true);
btnupdate.setEnabled(false);
btnhapus.setEnabled(false);
btnupdate.setEnabled(false);
Jika kita perhatikan coding diatas terdapat sebuah fungsi kodeOtomatis() kode ini digunakan untuk membuat penomoran id_user secara otomatis ketika tombol baru di tekan secara otomatis akan menampilkan id_user yang akan disimpan. berikut adalah coding pada fungsi kodeOtomatis() :
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());
}
}
Setelah memasukan coding pada tombol Baru selanjutnya kita akab membuat coding untuk melakukan penyimpanan data dengan coding berikut :
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
untuk melakukan pengubahan data kita perlu membuat sebuah event pada tabel untuk memilih data yang akan kita ubah, data yang akan kita ubah akan muncul pada tiap-tiap textfield sehingga akan memudahkan kita untuk melakukan ubah data, berikut adalah event pada mouse click pada tabel :
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
untuk melakukan hapus data user siahkan gunakan 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);
Login Form
Sampai tahap ini kita sudah selesai membuat windows form registrasi user selanjutnya adalah membuat windows form login,logika pada login ini adalah melakukan pengecekan atau filter terhadap tabel user pada kolom username,password dan level, jika data tersebut ada di tabel maka login akan berhasil kemudian akan memanggil windows form user, tetapi jika data pada tabel tersebut tidak ada maka login gagal. buatlah sebuah windows form baru pada package form dengan windows nama form_login kemudian rancanglah form tersebut seperti gambar berikut :
berikan nama varaibel pada masing-masing textfield diatas sebagai berikut :
- 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 :
Gabung dalam percakapan