Dalam pembuatan system, terutama yang berbasis client-server tentu nya hak akses setiap petugas berbeda, oleh karena itu dibutuhkan login yang multiuser atau multi level user. Berikut langkah-langkah pembuatannya pada pemrograman java desktop.
1. Design tampilan form utama seperti pada gambar di bawah :
#Sub menu Login akan berubah otomatis menjadi Logout ketika Login sudah berhasil.
#semua tombol/button tidak aktif (enable=false).
2. Buat sebuah database (saya menggunakan MySQL), berikut contoh struktur database untuk table admin nya :
3. Jangan lupa Add Library MySQL JDBC Driver nya, caranya tinggal klik kanan pada Libraries > Pilih Add Library sehinggan muncul tampilan berikut :
Jika MySQL JDBC Driver nya belum ada, klik tombol Import dan cari file MySQL JDBC Driver nya kemudian pilih filenya lalu tekan Ok.
Setelah berhasil ter import, pilih lagi file MySQL JDBC Driver nya kemudian klik tombol Add Library.
4. Untuk pengcodingan Login system multiuser atau multi level user pada Button Login klik Kanan > Events > Action > actionPerformed lalu ketikkan coding berikut :
try { Connection koneksi=DriverManager.getConnection("jdbc:mysql://localhost:3306/coba","root",""); Statement stat= koneksi.createStatement(); ResultSet rs=stat.executeQuery("select * from admin where username='"+jPasswordUser.getText()+"' " + "and pass='"+jPasswordPass.getText()+"' and level='"+cmbLevel.getSelectedItem()+"'" ); rs.last(); } catch (SQLException e) { System.out.println("Error" +e); }
Keterangan coding : untuk mengkoneksikan program ke database.
kemudian dibawah code rs.last(); tambahkan code berikut :
if(jPasswordUser.getText().equals("irna") && jPasswordPass.getText().equals("bismillah") && cmbLevel.getSelectedItem().equals("Admin")){ TbObat.setEnabled(true); TbTindakan.setEnabled(true); TbDokter.setEnabled(true); TbPasien.setEnabled(true); TbPetugas.setEnabled(true); TbRegistrasi.setEnabled(true); TbPemberianObt.setEnabled(true); TbRekam.setEnabled(true); Login.setText("Logout"); PanelLogin.setVisible(false); jPasswordPass.setText(""); jPasswordUser.setText(""); cmbLevel.setSelectedItem("Admin"); }else if(rs.getRow()>=1){ if(cmbLevel.getSelectedItem().equals("Admin")){ TbObat.setEnabled(true); TbTindakan.setEnabled(true); TbDokter.setEnabled(true); TbPasien.setEnabled(true); TbPetugas.setEnabled(true); TbRegistrasi.setEnabled(true); TbPemberianObt.setEnabled(true); TbRekam.setEnabled(true); Login.setText("Logout"); PanelLogin.setVisible(false); jPasswordPass.setText(""); jPasswordUser.setText(""); cmbLevel.setSelectedItem("Admin");
Keterangan coding : code logika jika login menggunakan hak akses sebagai Admin.
dibawahnya lagi tambahkan code berikut :
}else if(cmbLevel.getSelectedItem().equals("Register")){ TbPasien.setEnabled(true); TbRegistrasi.setEnabled(true); Login.setText("Logout"); PanelLogin.setVisible(false); jPasswordPass.setText(""); jPasswordUser.setText(""); cmbLevel.setSelectedItem("Admin"); }else if(cmbLevel.getSelectedItem().equals("Dokter")){ TbPemberianObt.setEnabled(true); TbRekam.setEnabled(true); Login.setText("Logout"); PanelLogin.setVisible(false); jPasswordPass.setText(""); jPasswordUser.setText(""); cmbLevel.setSelectedItem("Admin"); }else if(cmbLevel.getSelectedItem().equals("Apoteker")){ TbPemberianObt.setEnabled(true); Login.setText("Logout"); PanelLogin.setVisible(false); jPasswordPass.setText(""); jPasswordUser.setText(""); cmbLevel.setSelectedItem("Admin"); }
Keterangan coding : code logika if untuk login menggunakan hak akses sebagai Register, Dokter dan Apoteker.
kemudian tambahkan lagi code ini dibawahnya :
}else if((rs.getRow()==0)){ JOptionPane.showMessageDialog(null,"Maaf, " + "Gagal masuk ID Pengguna atau Kata Sandi " + "atau Level Pengguna tidak sesuai ...!"); TbObat.setEnabled(false); TbTindakan.setEnabled(false); TbDokter.setEnabled(false); TbPasien.setEnabled(false); TbPetugas.setEnabled(false); TbRegistrasi.setEnabled(false); TbPemberianObt.setEnabled(false); TbRekam.setEnabled(false); Login.setText("Login"); }
Keterangan coding : code logika if (jika) untuk memunculkan message error bahwa ada kesalahan dalam memasukkan data login.
Berikut keseluruhan dari code untuk tombol Login :
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { try { Connection koneksi=DriverManager.getConnection("jdbc:mysql://localhost:3306/coba","root",""); Statement stat= koneksi.createStatement(); ResultSet rs=stat.executeQuery("select * from admin where username='"+jPasswordUser.getText()+"' " + "and pass='"+jPasswordPass.getText()+"' and level='"+cmbLevel.getSelectedItem()+"'" ); rs.last(); if(jPasswordUser.getText().equals("irna") && jPasswordPass.getText().equals("bismillah") && cmbLevel.getSelectedItem().equals("Admin")){ TbObat.setEnabled(true); TbTindakan.setEnabled(true); TbDokter.setEnabled(true); TbPasien.setEnabled(true); TbPetugas.setEnabled(true); TbRegistrasi.setEnabled(true); TbPemberianObt.setEnabled(true); TbRekam.setEnabled(true); Login.setText("Logout"); PanelLogin.setVisible(false); jPasswordPass.setText(""); jPasswordUser.setText(""); cmbLevel.setSelectedItem("Admin"); }else if(rs.getRow()>=1){ if(cmbLevel.getSelectedItem().equals("Admin")){ TbObat.setEnabled(true); TbTindakan.setEnabled(true); TbDokter.setEnabled(true); TbPasien.setEnabled(true); TbPetugas.setEnabled(true); TbRegistrasi.setEnabled(true); TbPemberianObt.setEnabled(true); TbRekam.setEnabled(true); Login.setText("Logout"); PanelLogin.setVisible(false); jPasswordPass.setText(""); jPasswordUser.setText(""); cmbLevel.setSelectedItem("Admin"); }else if(cmbLevel.getSelectedItem().equals("Register")){ TbPasien.setEnabled(true); TbRegistrasi.setEnabled(true); Login.setText("Logout"); PanelLogin.setVisible(false); jPasswordPass.setText(""); jPasswordUser.setText(""); cmbLevel.setSelectedItem("Admin"); }else if(cmbLevel.getSelectedItem().equals("Dokter")){ TbPemberianObt.setEnabled(true); TbRekam.setEnabled(true); Login.setText("Logout"); PanelLogin.setVisible(false); jPasswordPass.setText(""); jPasswordUser.setText(""); cmbLevel.setSelectedItem("Admin"); }else if(cmbLevel.getSelectedItem().equals("Apoteker")){ TbPemberianObt.setEnabled(true); Login.setText("Logout"); PanelLogin.setVisible(false); jPasswordPass.setText(""); jPasswordUser.setText(""); cmbLevel.setSelectedItem("Admin"); } }else if((rs.getRow()==0)){ JOptionPane.showMessageDialog(null,"Maaf, " + "Gagal masuk ID Pengguna atau Kata Sandi " + "atau Level Pengguna tidak sesuai ...!"); TbObat.setEnabled(false); TbTindakan.setEnabled(false); TbDokter.setEnabled(false); TbPasien.setEnabled(false); TbPetugas.setEnabled(false); TbRegistrasi.setEnabled(false); TbPemberianObt.setEnabled(false); TbRekam.setEnabled(false); Login.setText("Login"); } stat.close(); } catch (SQLException e) { System.out.println("Error" +e); } }
#Keterangan : nama database, table, field, button, textfield, form Login sesuaikan dengan punya Anda masing-masing.
5. Kemudian pada Button Batal juga klik Kanan > Events > Action > actionPerformed lalu ketikkan coding berikut :
jPasswordPass.setText(""); jPasswordUser.setText(""); PanelLogin.setVisible(false);
Keterangan coding : untuk mengkosongkan lagi semua textfield dan menutup form login.
6. Coding untuk tombol Logout sebagai berikut :
MenuUnVisible(); if(Login.getText().trim().equals("Logout")){ TbObat.setEnabled(false); TbTindakan.setEnabled(false); TbPasien.setEnabled(false); TbDokter.setEnabled(false); TbPetugas.setEnabled(false); TbRegistrasi.setEnabled(false); TbRekam.setEnabled(false); TbPemberianObt.setEnabled(false); Login.setText("Login"); PanelLogin.setVisible(false); }else if(Login.getText().trim().equals("Login")){ PanelLogin.setVisible(true); jPasswordUser.requestFocus(); }
Keterangan coding : menutup semua halaman yang terbuka dan me-nonaktifkan kembali tombol/button dan mengubah submenu Logout menjadi Login
7. Finish deh.. Coba programnya di Run dan liat hasilnya!
- Tampilan awal ketika sub menu Login di klik, semua tombol/button belum aktif karena belum Login.
- Tampilan ketika klik Button Login dan Login berhasil, sub menu Login berubah menjadi Logout otomatis dan semua tombol/button aktif.
>> Login sebagai Admin
>> Login sebagai Register
>> Login sebagai Dokter
>> Login sebagai Apoteker
- Tampilan ketika Username dan Password yang dimasukkan salah, textfield akan kembali kosong. Ketika tombol Batal di klik form Login akan hilang.
Tidak ada komentar:
Posting Komentar