SlideShare a Scribd company logo
TUTORIAL KONEKSI JAVA DENGAN DATABASE MYSQL DENGAN TOOL NETBEANS
Koneksi ke database pada Java ditangani oleh JDBC (java database connectivity).
JDBC merupakan salah satu API(Application Programming Interface) Java yang secara
khusus ditujukan untuk menangani koneksi ke database. Dengan JDBC, kita memungkinkan
untuk menghubungkan database MySQL, oracle , access dan database lain ke java.
Pada tutorial ini akan dibahas cara menghubungkan JAVA dengan MySQL. Yang
dibutuhkan :
1. Netbeans
2. J2SE(Java)
3. Apache/Lampp (yang didalamnya terdapat database MySQL)
Langkah pertama : jika kita menggunakan netbeans, buatlah project baru java standar
application, atau jika sudah ada projectnya, kita tinggal melakukan import library MySql JDBC
Driver, yaitu library yang berisi API(application programming interface) untuk koneksi java ke
MySql.
Caranya :
1. Klik kanan pada folder library pada project anda. Lihat gambar :
2. Pilih “add library”, dan kemudian akan muncul banyak pilihan library, dan cari “MySQL
JDBC Driver”. Lalu klik add Library.
Langkah kedua : buatlah sebuah kelas yang bertugas untuk membuat/ mengatur/
mengkondisikan/ mengeksekusi koneksi dari program Java anda ke MySql. Kenapa perlu
digunakan kelas baru???. Agar kita tidak perlu mengkoding ulang jika kita membutuhkan
koneksi database lebih dari 1 kali. Dengan adanya kelas koneksi, kita tinggal menginstansiasi
objek dari kelas koneksi tersebut,sehingga tidak terjadi pemborosan kode dan program pun
menjadi lebih optimal efisien dan lebih rapi.
Dalam contoh program, kelas yang bertugas untuk menangani koneksi database MySql diberi
nama dengan kelas koneksi.java
Source Code koneksi.java:
package formdbmysql;
import com.mysql.jdbc.ResultSetMetaData;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
/**
*
* @author pattimura
*/
public class koneksi {
private Statement data = null;
private Connection koneksi = null;
private String Url="jdbc:Mysql://localhost/"; //host database anda
private String DbName="tes_java"; //nama database Anda
private String DBUser="root"; //username dari database, jika menggunakan default
xampp maka username = root
private String DBPassword="root";//password db , default xampp tidak ada = "";
public koneksi(){
try {
//setting driver yang digunakan untuk terhubung ke database
Class.forName("com.mysql.jdbc.Driver");
//membuat koneksi dengan parameter url +nama database, username dan
password
koneksi = DriverManager.getConnection(Url+DbName, DBUser, DBPassword);
//membuat statement yang akan digunakan untuk mengeksekusi query dari
aplikasi
data = this.koneksi.createStatement();
} catch (Throwable ex) {
System.out.println("error : "+ex);
System.exit(1);
}
}
public Connection getConnection(){
return koneksi;
}
public Statement getStatement(){
return data;
}
}
Langkah ketiga : Buatkan 1 file utama menggunakan jFrame dengan nama Utama.java
Source Code :
package formdbmysql;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
/**
*
* @author pattimura
*/
public class Utama extends javax.swing.JFrame {
/** Creates new form Utama */
public Utama() {
initComponents();
}
/** 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.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jTextField2 = new javax.swing.JTextField();
jScrollPane1 = new javax.swing.JScrollPane();
jTextArea1 = new javax.swing.JTextArea();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
jScrollPane2 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
jButton4 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jLabel1.setText("Stambuk :");
jLabel1.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
jLabel2.setText("Nama :");
jLabel2.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
jLabel3.setText("Komentar :");
jLabel3.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
jTextArea1.setColumns(20);
jTextArea1.setRows(5);
jScrollPane1.setViewportView(jTextArea1);
jButton1.setText("Input");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jButton2.setText("Update");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
jButton3.setText("Delete");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton3ActionPerformed(evt);
}
});
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null},
{null, null, null},
{null, null, null},
{null, null, null}
},
new String [] {
"Stambuk", "Nama", "Komentar"
}
));
jScrollPane2.setViewportView(jTable1);
jButton4.setText("Show");
jButton4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton4ActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new
javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addContainerGap(13, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.LEADING)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.LEADING, false)
.addGroup(layout.createSequentialGroup()
.addGap(15, 15, 15)
.addGroup(layout.createParallelGroup(javax.swing.GroupL
ayout.Alignment.LEADING, false)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel3)
.addPreferredGap(javax.swing.LayoutStyle.Compon
entPlacement.RELATED)
.addComponent(jScrollPane1))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swin
g.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1)
.addComponent(jLabel2))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swin
g.GroupLayout.Alignment.LEADING, false)
.addComponent(jTextField2)
.addComponent(jTextField1,
javax.swing.GroupLayout.PREFERRED_SIZE, 224,
javax.swing.GroupLayout.PREFERRED_SIZE)))))
.addGroup(layout.createSequentialGroup()
.addGap(33, 33, 33)
.addComponent(jButton1,
javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jButton2,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addGap(18, 18, 18)
.addComponent(jButton3,
javax.swing.GroupLayout.PREFERRED_SIZE, 82,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addComponent(jScrollPane2,
javax.swing.GroupLayout.PREFERRED_SIZE, 373,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap())
.addGroup(layout.createSequentialGroup()
.addGap(177, 177, 177)
.addComponent(jButton4)
.addContainerGap(178, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(25, 25, 25)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.TRAILING)
.addComponent(jTextField1,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel1))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED
)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.TRAILING)
.addComponent(jLabel2)
.addComponent(jTextField2,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.LEADING)
.addComponent(jLabel3)
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.LEADING)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.BASELINE)
.addComponent(jButton1)
.addComponent(jButton2))
.addComponent(jButton3))
.addGap(18, 18, 18)
.addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE,
98, Short.MAX_VALUE)
.addGap(18, 18, 18)
.addComponent(jButton4)
.addGap(19, 19, 19))
);
pack();
}// </editor-fold>
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
this.insert(this.jTextField1.getText(), this.jTextField2.getText(),
this.jTextArea1.getText());
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
this.update(this.jTextField1.getText(), this.jTextField2.getText(),
this.jTextArea1.getText());
}
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
this.delete(this.jTextField1.getText());
}
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
this.setTableFromDB();
}
private void insert(String nim, String nama, String komentar){
// buat objek koneksi yang menangani koneksi ke database
koneksi conect = new koneksi();
// tentukan query yang akan dijalankan pada mySql/database
// kita akan memasukkan data ke dalam tabel mahasiswa
String query = "insert into mahasiswa (nim,nama,komentar) values
('"+nim+"','"+nama+"','"+komentar+"')";
//eksekusi query tersebut dengan cara :
try {
conect.getStatement().executeUpdate(query); //eksekusi
JOptionPane.showMessageDialog(this, "insert berhasil");//pemberitahuan
jika berhasil
} catch (SQLException ex) {
//jika ada kesalahan, maka akan ada pesan error dari sintaks dibawah
ini.
Logger.getLogger(Utama.class.getName()).log(Level.SEVERE, null, ex);
JOptionPane.showMessageDialog(this, "insert gagal");//pemberitahuan
jika gagal
}
}
private void update(String nim, String nama, String komentar){
// buat objek koneksi yang menangani koneksi ke database
koneksi conect = new koneksi();
// tentukan query update yang akan dijalankan pada mySql/database
// dalam queri ini kita akan mengganti nama dan komentar dari data yang
terkait dengan nim.
String query = "update mahasiswa set nama='"+nama+"', komentar=
'"+komentar+"' where nim='"+nim+"' ";
//eksekusi query tersebut dengan cara :
try {
conect.getStatement().executeUpdate(query); //eksekusi
JOptionPane.showMessageDialog(this, "update berhasil");//pemberitahuan
jika berhasil
} catch (SQLException ex) {
//jika ada kesalahan, maka akan ada pesan error dari sintaks dibawah
ini.
Logger.getLogger(Utama.class.getName()).log(Level.SEVERE, null, ex);
JOptionPane.showMessageDialog(this, "update gagal");//pemberitahuan
jika gagal
}
}
private void delete(String nim){
// buat objek koneksi yang menangani koneksi ke database
koneksi conect = new koneksi();
// tentukan query update yang akan dijalankan pada mySql/database
// dalam queri ini kita akan menghapus data yang terkait dengan nim
String query = "delete from mahasiswa where nim='"+nim+"' ";
//eksekusi query tersebut dengan cara :
try {
conect.getStatement().executeUpdate(query); //eksekusi
JOptionPane.showMessageDialog(this, "data berhasil
dihapus");//pemberitahuan jika berhasil
} catch (SQLException ex) {
//jika ada kesalahan, maka akan ada pesan error dari sintaks dibawah
ini.
Logger.getLogger(Utama.class.getName()).log(Level.SEVERE, null, ex);
JOptionPane.showMessageDialog(this, "data gagal
dihapus");//pemberitahuan jika gagal
}
}
private void setTableFromDB(){
koneksi conect = new koneksi();// objek koneksi utk koneksi ke DB
ResultSet data = null; //
int jumBaris=0; // variable untuk menentukan jumlah baris matriks
nantinya.
//query yang akan ditampilkan, misalkan kita ingin menampilkan data
mahasiswa dari DB ke table
String query="select * from mahasiswa";
try {
data = conect.getStatement().executeQuery(query); // query dijalankan
while(data.next()){
jumBaris++;
}
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null,"Error pada jumlah baris :
"+ex.getMessage());
}
//jika jumlah baris telah didapatkan maka buat array 2 dimensi untuk
menyimpan data sementara
String isi[][]= new String[jumBaris][3]; //jumbaris, dan jumlah kolom =
3{nim, nama, komentar}
// masukkan data dari ResultStatement kedalam matriks
int i=0;//just for loop
try {
data = conect.getStatement().executeQuery(query);//eksekusi kembali
query
while (data.next()) {
System.out.println("disiko");
isi[i][0] = "" + data.getString("nim"); // ini sintaks untk
mengambil isinya, "nim" adalah nama kolom dalam DB
System.out.println("nim = "+data.getString("nim"));
isi[i][1] = "" + data.getString("nama");
isi[i][2] = "" + data.getString("komentar");
i++;
}
} catch (SQLException ex) {
Logger.getLogger(Utama.class.getName()).log(Level.SEVERE, null, ex);
}
String NamaKolom[] ={"Nim","Nama","Komentar"};//nama kolom yang nantinya
akan ada pada tabel
DefaultTableModel model= new DefaultTableModel(isi,NamaKolom){};
//selanjutnya adalah mlakukan pengesetan pada tabel
jTable1.setModel(model);
//done!!!
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Utama().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JButton jButton4;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JTable jTable1;
private javax.swing.JTextArea jTextArea1;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
// End of variables declaration
}
Langkah keempat : Buat database dengan nama tes_java dan tabel mahasiswa.
Langkah kelima :
Run file Utama.java

More Related Content

PDF
17. aplikasi crud java sederhana menggunakan database my sql
DOCX
17. aplikasi crud java sederhana menggunakan database my sql
PDF
Modul Praktikum Pemrograman Berorientasi Objek (Chap.12)
PDF
Modul Praktikum Pemrograman Berorientasi Objek (Chap.11)
PDF
Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)
PDF
My sql dan-java-database-connectivity
PPTX
Database operation di C++
DOCX
Tutorial lanjutan java netbeans 8 : Create Read Update Delete
17. aplikasi crud java sederhana menggunakan database my sql
17. aplikasi crud java sederhana menggunakan database my sql
Modul Praktikum Pemrograman Berorientasi Objek (Chap.12)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.11)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)
My sql dan-java-database-connectivity
Database operation di C++
Tutorial lanjutan java netbeans 8 : Create Read Update Delete

What's hot (20)

PDF
Mengakses data dari database my sql di listview dengan json
PDF
Android Fast Track - Database SQLite (Kamus Tiga Bahasa)
DOCX
contoh Program sederhana Java dan penjelasan programnya
PPTX
Jquery ppt
PDF
Web Service Menggunakan Axis
DOCX
My sql dan java database connectivity
PPTX
Ppt pengenalan jquery
DOCX
Tutorial Postgre SQL
PDF
Pelatihan j query
DOCX
Laporan praktikum modul 6 pemrogrman database dengan jdbc
PPT
Pert 4. class dan objek
DOCX
Laporan praktikum modul 5 (pemrogrman database dengan odbc)
PDF
Membuat aplikasi-sederhana-menggunakan-java
DOCX
Fungsi mysql di php adalah untuk mengambil data di mysql
PDF
Menyimpan Data Ke Database Dengan Ajax Dan PHP
PPTX
Cara Penggunaan dan Pengoneksian sql jdbc dan odbc
DOCX
belajar neatbean
PDF
Jeni Web Programming Bab 3 Advanced Servlets
PDF
Jeni konsep oop
DOCX
Konstruktor dan inisialisasi objek
Mengakses data dari database my sql di listview dengan json
Android Fast Track - Database SQLite (Kamus Tiga Bahasa)
contoh Program sederhana Java dan penjelasan programnya
Jquery ppt
Web Service Menggunakan Axis
My sql dan java database connectivity
Ppt pengenalan jquery
Tutorial Postgre SQL
Pelatihan j query
Laporan praktikum modul 6 pemrogrman database dengan jdbc
Pert 4. class dan objek
Laporan praktikum modul 5 (pemrogrman database dengan odbc)
Membuat aplikasi-sederhana-menggunakan-java
Fungsi mysql di php adalah untuk mengambil data di mysql
Menyimpan Data Ke Database Dengan Ajax Dan PHP
Cara Penggunaan dan Pengoneksian sql jdbc dan odbc
belajar neatbean
Jeni Web Programming Bab 3 Advanced Servlets
Jeni konsep oop
Konstruktor dan inisialisasi objek
Ad

Viewers also liked (20)

PPTX
La meva feina
PPTX
Presentación Temas Consejo Histórico
PDF
Recursos educativos Web 2.0
PPS
Meridiana2.3
PPTX
Andrea ll
PPT
Valores..!!
PPTX
Plan Desarrollo
PPTX
Presentacion all
PPTX
PPTX
Knot standard
ODP
Alfresco
PPT
Aayyyy Que Me Quitan La Herencia!!!!
PDF
Anexos principios de comercio exterior y aranceles
PPTX
Presentacion1
PDF
Casa Alves - Folheto Setembro
PPTX
Enterprise Sync n Share
PPTX
Greenlee 430-500
PPS
Tp 2 computacion july
PDF
Mohd Fazril Mustaza_Resume (Rev.3)
La meva feina
Presentación Temas Consejo Histórico
Recursos educativos Web 2.0
Meridiana2.3
Andrea ll
Valores..!!
Plan Desarrollo
Presentacion all
Knot standard
Alfresco
Aayyyy Que Me Quitan La Herencia!!!!
Anexos principios de comercio exterior y aranceles
Presentacion1
Casa Alves - Folheto Setembro
Enterprise Sync n Share
Greenlee 430-500
Tp 2 computacion july
Mohd Fazril Mustaza_Resume (Rev.3)
Ad

Similar to Chapter ix.koneksi java dengan mysql (20)

PPTX
Java & my sql
PDF
Membuat aplikasi-rental-dengan-java-dan-my sql
PDF
Jav mysql-fix
PDF
Koneksi java mysql
PDF
Koneksi java mysql
PDF
Tutorial connecting access netbeans
PDF
Pocket book window builder eclipse
PDF
Tutorial text database (hsqldb)
DOCX
Membuat aplikasi sederhana menggunakan java
PDF
Jeni Web Programming Bab 5 Sql Dan Jdbc
PPT
Bab 9: Tentang Pengaturan Database MySQL Dengan Pemrograman Java.ppt
PDF
My sql dan-java-database-connectivity
PPT
Modul tigabelas Pemrograman Database Java.ppt
PDF
Tutorial membuat form dalam netbeans versi2
PDF
My sql dan-java-database-connectivity
PDF
my sql-dan-java-database-connectivity
PDF
Modul PBO Bab-11 - JDBC
PPTX
Pemrograman Dasar Dengan Database - JAVA.pptx
PDF
Menampilkan data pada Database MySQL di JSP(Java Server Page)
DOC
Koneksi database menggunakan jsp
Java & my sql
Membuat aplikasi-rental-dengan-java-dan-my sql
Jav mysql-fix
Koneksi java mysql
Koneksi java mysql
Tutorial connecting access netbeans
Pocket book window builder eclipse
Tutorial text database (hsqldb)
Membuat aplikasi sederhana menggunakan java
Jeni Web Programming Bab 5 Sql Dan Jdbc
Bab 9: Tentang Pengaturan Database MySQL Dengan Pemrograman Java.ppt
My sql dan-java-database-connectivity
Modul tigabelas Pemrograman Database Java.ppt
Tutorial membuat form dalam netbeans versi2
My sql dan-java-database-connectivity
my sql-dan-java-database-connectivity
Modul PBO Bab-11 - JDBC
Pemrograman Dasar Dengan Database - JAVA.pptx
Menampilkan data pada Database MySQL di JSP(Java Server Page)
Koneksi database menggunakan jsp

Chapter ix.koneksi java dengan mysql

  • 1. TUTORIAL KONEKSI JAVA DENGAN DATABASE MYSQL DENGAN TOOL NETBEANS Koneksi ke database pada Java ditangani oleh JDBC (java database connectivity). JDBC merupakan salah satu API(Application Programming Interface) Java yang secara khusus ditujukan untuk menangani koneksi ke database. Dengan JDBC, kita memungkinkan untuk menghubungkan database MySQL, oracle , access dan database lain ke java. Pada tutorial ini akan dibahas cara menghubungkan JAVA dengan MySQL. Yang dibutuhkan : 1. Netbeans 2. J2SE(Java) 3. Apache/Lampp (yang didalamnya terdapat database MySQL) Langkah pertama : jika kita menggunakan netbeans, buatlah project baru java standar application, atau jika sudah ada projectnya, kita tinggal melakukan import library MySql JDBC Driver, yaitu library yang berisi API(application programming interface) untuk koneksi java ke MySql. Caranya : 1. Klik kanan pada folder library pada project anda. Lihat gambar : 2. Pilih “add library”, dan kemudian akan muncul banyak pilihan library, dan cari “MySQL JDBC Driver”. Lalu klik add Library. Langkah kedua : buatlah sebuah kelas yang bertugas untuk membuat/ mengatur/ mengkondisikan/ mengeksekusi koneksi dari program Java anda ke MySql. Kenapa perlu digunakan kelas baru???. Agar kita tidak perlu mengkoding ulang jika kita membutuhkan koneksi database lebih dari 1 kali. Dengan adanya kelas koneksi, kita tinggal menginstansiasi
  • 2. objek dari kelas koneksi tersebut,sehingga tidak terjadi pemborosan kode dan program pun menjadi lebih optimal efisien dan lebih rapi. Dalam contoh program, kelas yang bertugas untuk menangani koneksi database MySql diberi nama dengan kelas koneksi.java Source Code koneksi.java: package formdbmysql; import com.mysql.jdbc.ResultSetMetaData; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; /** * * @author pattimura */ public class koneksi { private Statement data = null; private Connection koneksi = null; private String Url="jdbc:Mysql://localhost/"; //host database anda private String DbName="tes_java"; //nama database Anda private String DBUser="root"; //username dari database, jika menggunakan default xampp maka username = root private String DBPassword="root";//password db , default xampp tidak ada = ""; public koneksi(){ try { //setting driver yang digunakan untuk terhubung ke database Class.forName("com.mysql.jdbc.Driver"); //membuat koneksi dengan parameter url +nama database, username dan password koneksi = DriverManager.getConnection(Url+DbName, DBUser, DBPassword); //membuat statement yang akan digunakan untuk mengeksekusi query dari aplikasi data = this.koneksi.createStatement(); } catch (Throwable ex) { System.out.println("error : "+ex); System.exit(1); } } public Connection getConnection(){ return koneksi; } public Statement getStatement(){ return data; } }
  • 3. Langkah ketiga : Buatkan 1 file utama menggunakan jFrame dengan nama Utama.java Source Code : package formdbmysql; import java.sql.ResultSet; import java.sql.SQLException; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JOptionPane; import javax.swing.table.DefaultTableModel; /** * * @author pattimura */ public class Utama extends javax.swing.JFrame { /** Creates new form Utama */ public Utama() { initComponents(); } /** 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. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); jTextField1 = new javax.swing.JTextField(); jTextField2 = new javax.swing.JTextField(); jScrollPane1 = new javax.swing.JScrollPane(); jTextArea1 = new javax.swing.JTextArea(); jButton1 = new javax.swing.JButton(); jButton2 = new javax.swing.JButton(); jButton3 = new javax.swing.JButton(); jScrollPane2 = new javax.swing.JScrollPane(); jTable1 = new javax.swing.JTable(); jButton4 = new javax.swing.JButton(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); jLabel1.setText("Stambuk :"); jLabel1.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT); jLabel2.setText("Nama :"); jLabel2.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT); jLabel3.setText("Komentar :"); jLabel3.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT); jTextArea1.setColumns(20); jTextArea1.setRows(5); jScrollPane1.setViewportView(jTextArea1); jButton1.setText("Input"); jButton1.addActionListener(new java.awt.event.ActionListener() {
  • 4. public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); jButton2.setText("Update"); jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton2ActionPerformed(evt); } }); jButton3.setText("Delete"); jButton3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton3ActionPerformed(evt); } }); jTable1.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { {null, null, null}, {null, null, null}, {null, null, null}, {null, null, null} }, new String [] { "Stambuk", "Nama", "Komentar" } )); jScrollPane2.setViewportView(jTable1); jButton4.setText("Show"); jButton4.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton4ActionPerformed(evt); } }); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap(13, Short.MAX_VALUE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignm ent.LEADING) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Al ignment.LEADING, false) .addGroup(layout.createSequentialGroup() .addGap(15, 15, 15) .addGroup(layout.createParallelGroup(javax.swing.GroupL ayout.Alignment.LEADING, false) .addGroup(layout.createSequentialGroup() .addComponent(jLabel3) .addPreferredGap(javax.swing.LayoutStyle.Compon entPlacement.RELATED) .addComponent(jScrollPane1)) .addGroup(layout.createSequentialGroup()
  • 5. .addGroup(layout.createParallelGroup(javax.swin g.GroupLayout.Alignment.LEADING) .addComponent(jLabel1) .addComponent(jLabel2)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swin g.GroupLayout.Alignment.LEADING, false) .addComponent(jTextField2) .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 224, javax.swing.GroupLayout.PREFERRED_SIZE))))) .addGroup(layout.createSequentialGroup() .addGap(33, 33, 33) .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addComponent(jButton2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGap(18, 18, 18) .addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 82, javax.swing.GroupLayout.PREFERRED_SIZE))) .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 373, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap()) .addGroup(layout.createSequentialGroup() .addGap(177, 177, 177) .addComponent(jButton4) .addContainerGap(178, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(25, 25, 25) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignm ent.TRAILING) .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel1)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED ) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignm ent.TRAILING) .addComponent(jLabel2) .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignm ent.LEADING) .addComponent(jLabel3) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignm ent.LEADING) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Al
  • 6. ignment.BASELINE) .addComponent(jButton1) .addComponent(jButton2)) .addComponent(jButton3)) .addGap(18, 18, 18) .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 98, Short.MAX_VALUE) .addGap(18, 18, 18) .addComponent(jButton4) .addGap(19, 19, 19)) ); pack(); }// </editor-fold> private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: this.insert(this.jTextField1.getText(), this.jTextField2.getText(), this.jTextArea1.getText()); } private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: this.update(this.jTextField1.getText(), this.jTextField2.getText(), this.jTextArea1.getText()); } private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: this.delete(this.jTextField1.getText()); } private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: this.setTableFromDB(); } private void insert(String nim, String nama, String komentar){ // buat objek koneksi yang menangani koneksi ke database koneksi conect = new koneksi(); // tentukan query yang akan dijalankan pada mySql/database // kita akan memasukkan data ke dalam tabel mahasiswa String query = "insert into mahasiswa (nim,nama,komentar) values ('"+nim+"','"+nama+"','"+komentar+"')"; //eksekusi query tersebut dengan cara : try { conect.getStatement().executeUpdate(query); //eksekusi JOptionPane.showMessageDialog(this, "insert berhasil");//pemberitahuan jika berhasil } catch (SQLException ex) { //jika ada kesalahan, maka akan ada pesan error dari sintaks dibawah ini. Logger.getLogger(Utama.class.getName()).log(Level.SEVERE, null, ex); JOptionPane.showMessageDialog(this, "insert gagal");//pemberitahuan jika gagal } }
  • 7. private void update(String nim, String nama, String komentar){ // buat objek koneksi yang menangani koneksi ke database koneksi conect = new koneksi(); // tentukan query update yang akan dijalankan pada mySql/database // dalam queri ini kita akan mengganti nama dan komentar dari data yang terkait dengan nim. String query = "update mahasiswa set nama='"+nama+"', komentar= '"+komentar+"' where nim='"+nim+"' "; //eksekusi query tersebut dengan cara : try { conect.getStatement().executeUpdate(query); //eksekusi JOptionPane.showMessageDialog(this, "update berhasil");//pemberitahuan jika berhasil } catch (SQLException ex) { //jika ada kesalahan, maka akan ada pesan error dari sintaks dibawah ini. Logger.getLogger(Utama.class.getName()).log(Level.SEVERE, null, ex); JOptionPane.showMessageDialog(this, "update gagal");//pemberitahuan jika gagal } } private void delete(String nim){ // buat objek koneksi yang menangani koneksi ke database koneksi conect = new koneksi(); // tentukan query update yang akan dijalankan pada mySql/database // dalam queri ini kita akan menghapus data yang terkait dengan nim String query = "delete from mahasiswa where nim='"+nim+"' "; //eksekusi query tersebut dengan cara : try { conect.getStatement().executeUpdate(query); //eksekusi JOptionPane.showMessageDialog(this, "data berhasil dihapus");//pemberitahuan jika berhasil } catch (SQLException ex) { //jika ada kesalahan, maka akan ada pesan error dari sintaks dibawah ini. Logger.getLogger(Utama.class.getName()).log(Level.SEVERE, null, ex); JOptionPane.showMessageDialog(this, "data gagal dihapus");//pemberitahuan jika gagal } } private void setTableFromDB(){ koneksi conect = new koneksi();// objek koneksi utk koneksi ke DB ResultSet data = null; // int jumBaris=0; // variable untuk menentukan jumlah baris matriks
  • 8. nantinya. //query yang akan ditampilkan, misalkan kita ingin menampilkan data mahasiswa dari DB ke table String query="select * from mahasiswa"; try { data = conect.getStatement().executeQuery(query); // query dijalankan while(data.next()){ jumBaris++; } } catch (SQLException ex) { JOptionPane.showMessageDialog(null,"Error pada jumlah baris : "+ex.getMessage()); } //jika jumlah baris telah didapatkan maka buat array 2 dimensi untuk menyimpan data sementara String isi[][]= new String[jumBaris][3]; //jumbaris, dan jumlah kolom = 3{nim, nama, komentar} // masukkan data dari ResultStatement kedalam matriks int i=0;//just for loop try { data = conect.getStatement().executeQuery(query);//eksekusi kembali query while (data.next()) { System.out.println("disiko"); isi[i][0] = "" + data.getString("nim"); // ini sintaks untk mengambil isinya, "nim" adalah nama kolom dalam DB System.out.println("nim = "+data.getString("nim")); isi[i][1] = "" + data.getString("nama"); isi[i][2] = "" + data.getString("komentar"); i++; } } catch (SQLException ex) { Logger.getLogger(Utama.class.getName()).log(Level.SEVERE, null, ex); } String NamaKolom[] ={"Nim","Nama","Komentar"};//nama kolom yang nantinya akan ada pada tabel DefaultTableModel model= new DefaultTableModel(isi,NamaKolom){}; //selanjutnya adalah mlakukan pengesetan pada tabel jTable1.setModel(model); //done!!! } /** * @param args the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new Utama().setVisible(true); } });
  • 9. } // Variables declaration - do not modify private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JButton jButton3; private javax.swing.JButton jButton4; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JTable jTable1; private javax.swing.JTextArea jTextArea1; private javax.swing.JTextField jTextField1; private javax.swing.JTextField jTextField2; // End of variables declaration } Langkah keempat : Buat database dengan nama tes_java dan tabel mahasiswa. Langkah kelima : Run file Utama.java