Skip to main content

Implementasi Java-SQL : Form Login

Dasar implementasi yg paling gampang buat contoh koneksi java ke database digunakan untuk login dengan data berasal dari tabel di SQL Server. Syaratnya: JDK, SQL Server 2000, driver sql server.
1. Buat tabel untuk menyimpan user
- Database: dbKuliah
- Tabel: tbUser
- Field: fUser, fNama, fPass
- isikan data
2. Pilih jenis Koneksi
- Apabila memilih odbc, Buat DataSource untuk koneksi
+ Driver: SQL Server
+ Name: koneksi
+ server: .
+ Login ID: With Winndows NT auth.
+ Language: Italian
+ Connect to
- Apabila memilih driver sqlserver, install terlebih dahulu, pastikan tahu username dan password sa
download driver dari http://www.microsoft.com/downloads/details.aspx?FamilyID=9f1874b6-f8e1-4bd6-947c-0fc5bf05bf71
3. Buat Form frmLogin:
Komponen: JTextField -> tUser, JPasswordField -> tPass, JButton -> bLogin
4. Bagian Kode:
- Bagian import
import javax.swing.*;
import java.net.*;
- Variabel Global
Connection con;
Statement stmt;
String perintah;
String sqlUser="sa"; //UserName untuk administrator SQL server
String sqlPass="sa"; //Password untuk administrator SQL server
String sqlDb="dbKuliah"; //Database yang diakses
String koneksiOdbc="koneksi"; //Nama koneksi odbc
- Fungsi Tambahan
public void testDriver(){
String dbDrv1= "sun.jdbc.odbc.JdbcOdbcDriver";
String dbDrv2 = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String dbUrl1= "jdbc:odbc:"+koneksiOdbc;
String dbUrl2 = "jdbc:microsoft:sqlserver://localhost;DatabaseName="+sqlDb;
try{
//Pilih salah satu
Class.forName(dbDrv1); //menggunakan koneksi odbc
//Class.forName(dbDrv2); //menggunakan koneksi driver mssql
//Pilih salah satu
con = DriverManager.getConnection(dbUrl1,sqlUser,sqlPass); //menggunakan koneksi odbc
//con = DriverManager.getConnection(dbUrl2,sqlUser,sqlPass); //menggunakan koneksi driver mssql
stmt=con.createStatement();
}catch(Exception ce){
System.out.println(ce.toString());
}
}
- Bagian paling bawah dari constructor
testDriver();
- Bagian event actionPerformed Tombol bLogin
try{
perintah="SELECT count(*) FROM tbUser where fUser='"+tUser.getText()+"' AND fPass='"+tPass.getText()+"' ";
ResultSet hasil=stmt.executeQuery(perintah);
hasil.next();
if(Integer.parseInt(hasil.getObject(1).toString())>=1){
JOptionPane.showMessageDialog(this,"Login Berhasil");
}else{
JOptionPane.showMessageDialog(this,"Login Gagal");
}
}catch(Exception e){System.err.println(e.getMessage());}

razz

Sorce Lengkapnya:
import javax.swing.*;
import java.sql.*;
public class frmLogin extends javax.swing.JFrame {

/** Creates new form frmLogin */
public frmLogin() {
initComponents();
testDriver();
}

/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
private void initComponents() {//GEN-BEGIN:initComponents
tUser = new javax.swing.JTextField();
tPass = new javax.swing.JPasswordField();
bLogin = new javax.swing.JButton();

getContentPane().setLayout(null);

addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
exitForm(evt);
}
});

getContentPane().add(tUser);
tUser.setBounds(110, 70, 80, 20);

getContentPane().add(tPass);
tPass.setBounds(110, 110, 80, 24);

bLogin.setText("Login");
bLogin.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bLoginActionPerformed(evt);
}
});

getContentPane().add(bLogin);
bLogin.setBounds(110, 160, 59, 23);

pack();
}//GEN-END:initComponents

private void bLoginActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bLoginActionPerformed
try{
perintah="SELECT count(*) FROM tbUser where fUser='"+tUser.getText()+"' AND fPass='"+tPass.getText()+"' ";
ResultSet hasil=stmt.executeQuery(perintah);
hasil.next();
if(Integer.parseInt(hasil.getObject(1).toString())>=1){
JOptionPane.showMessageDialog(this,"Login Berhasil");
}else{
JOptionPane.showMessageDialog(this,"Login Gagal");
}
}catch(Exception e){System.err.println(e.getMessage());}
}//GEN-LAST:event_bLoginActionPerformed

/** Exit the Application */
private void exitForm(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_exitForm
System.exit(0);
}//GEN-LAST:event_exitForm

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
new frmLogin().show();
}
public void testDriver(){
String dbDrv1 = "sun.jdbc.odbc.JdbcOdbcDriver";
String dbDrv2 = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String dbUrl1 = "jdbc:odbc:"+koneksiOdbc;
String dbUrl2 = "jdbc:microsoft:sqlserver://localhost;DatabaseName="+sqlDb;
try{
//Pilih salah satu
Class.forName(dbDrv1); //menggunakan koneksi odbc
//Class.forName(dbDrv2); //menggunakan koneksi driver mssql
//Pilih salah satu
con = DriverManager.getConnection(dbUrl1,sqlUser,sqlPass); //menggunakan koneksi odbc
//con = DriverManager.getConnection(dbUrl2,sqlUser,sqlPass); //menggunakan koneksi driver mssql
stmt=con.createStatement();
}catch(Exception ce){
System.out.println(ce.toString());
}
}

// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton bLogin;
private javax.swing.JPasswordField tPass;
private javax.swing.JTextField tUser;
// End of variables declaration//GEN-END:variables
Connection con;
Statement stmt;
String perintah;
String sqlUser="sa"; //UserName untuk administrator SQL server
String sqlPass="sa"; //Password untuk administrator SQL server
String sqlDb="dbKuliah"; //Database yang diakses
String koneksiOdbc="koneksi"; //Nama koneksi odbc
}

Comments

  1. Lah kalau Usernya banyak terus beda hak level buat nya gimana , mohon petunjuknya mas...

    ReplyDelete
  2. @ Anonim
    Hak level yang berbeda bisa dilakukan dengan pengelompokkan user. Setiap user mempunyai group, setiap group bisa diset hak aksesnya. Jadi setiap user mempunyai hak akses sesuai dengan group yang diberikan.

    ReplyDelete

Post a Comment

Popular posts from this blog

Java-MySql: Aplikasi Database dengan Data Gambar (Updated)

Untuk update metode simpan gambar lihat di appGambar 2.0 Bagaimana caranya menyimpan data yang membutuhkan penyimpanan data gambar? Misalkan data pegawai yang membutuhkan penyimpanan gambar dari setiap pegawai. Alternatifnya ada dua, dengan kelebihan dan kekurangan masing-masing. Cara yang pertama adalah dengan membuat field dengan tipe data binary, kemudian menyimpan gambar yang dibutuhkan dalam field di database tersebut. Cara ini membutuhkan manajemen program yang lebih rumit, tapi data gambar akan terjamin, karena tersimpan didalam database yang terintegrasi dengan data lainnya. Kekurangan lainnya adalah ukuran database yang akan membesar dan lambat. Bayangkan saja, sebuah field membutuhkan gambar dengan format jpeg, 200kB. Apabila ada 200 juta record, maka ukuran field yang diperuntukan khusus untuk gambar dengan perhitungan kasar adalah 0.2 MB x 200M = 40 x 10^12 = 40 TB. Belum ditambah dengan ukuran data dari field lainnya, kalau misalkan untuk menyimpan data penduduk Indonesia....

Membuat Peta Digital dengan Flash MX

Sesuai dengan permintaan tentang cara membuat peta digital dengan flash di komentar posting tentang peta surabaya , akhirnya jadilah program darurat ini. Bagi yang pernah mempelajari GIS (Geoghraphical Information System), pasti punya pandangan lain seputar "peta digital". Sedangkan program ini cuma untuk memberikan gambaran dan pencerahan betapa mudahnya membuat sebuah peta digital dengan menggunakan flash. Ngga sampe sejam kok. Tutorial ini menggunakan Macromedia Flash MX, bukan Flash 5 yang terlalu sederhana, dan juga bukan Flash 2004 keatas yang begitu rumit. Fungsi utama yang sudah ada disini berupa navigasi, zooming, dragging, dan jump to location. Tentang penjelasan langkah pembuatan, dengan begitu begitu banyaknya langkah yang harus dilakukan dan peletakkan action script, yang entah dimana saja ada, Tentu tidak bisa dijelaskan dengan cara konvensional, "klik sana dan open sini dan selanjutnya gini gitu" TM. Yang penting adalah langkah dasar yang harus dila...

Java: Pengiriman Parameter antar Frame

Sebenarnya konsep ini berlaku bukan hanya pada frame, tapi bisa dilakukan antar object dari class yang sifatnya umum, karena Java yang sifatnya sudah full OOP. Tapi, karena lebih sering diterapkan dalam pemrograman GUI desktop, khususnya dengan Netbeans, maka dicontohkan dengan class javax.swing.JFrame. Setiap bentuk code java harus dibentuk dalam bentuk class, biar sebagaimanapun sederhananya. Tidak seperti pemrograman lainnya yang menggunakan konsep OOP sebagai tambahan dan pengembangan dari yang sudah ada sebelumnya. Itulah sebabnya kita mengenal class di C++, Pascal, PHP, tapi masih diperbolehkan untuk tetap menggunakan konsep primitif. Sedangkan pada kasus java dan .NET, OOP merupakan inti utamanya yang harus selalu diikuti dan diterapkan. Awalnya akan sangat membingungkan, tapi sangat mudah untuk langkah pengembangan selanjutnya. Sudah lihat JavaDoc? itu adalah dokumen pemrograman yang paling aneh didunia, pada pandangan pertama. Coba bandingkan dengan MSDN-nya .NET, PHP Manual, ...