SlideShare a Scribd company logo
1 of 9
Download to read offline
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

What's hot

Mengakses data dari database my sql di listview dengan json
Mengakses data dari database my sql di listview dengan jsonMengakses data dari database my sql di listview dengan json
Mengakses data dari database my sql di listview dengan jsonFanfandi Syahsyahsyah
 
Android Fast Track - Database SQLite (Kamus Tiga Bahasa)
Android Fast Track - Database SQLite (Kamus Tiga Bahasa)Android Fast Track - Database SQLite (Kamus Tiga Bahasa)
Android Fast Track - Database SQLite (Kamus Tiga Bahasa)Agus Haryanto
 
contoh Program sederhana Java dan penjelasan programnya
contoh Program sederhana Java dan penjelasan programnyacontoh Program sederhana Java dan penjelasan programnya
contoh Program sederhana Java dan penjelasan programnyastephan EL'wiin Shaarawy
 
Jquery ppt
Jquery pptJquery ppt
Jquery ppt044249
 
Web Service Menggunakan Axis
Web Service Menggunakan AxisWeb Service Menggunakan Axis
Web Service Menggunakan AxisBart Simpsons
 
Ppt pengenalan jquery
Ppt pengenalan jqueryPpt pengenalan jquery
Ppt pengenalan jquerymutia902
 
Tutorial Postgre SQL
Tutorial Postgre SQLTutorial Postgre SQL
Tutorial Postgre SQLHari Setiaji
 
Pelatihan j query
Pelatihan j queryPelatihan j query
Pelatihan j queryoratmangun
 
Laporan praktikum modul 6 pemrogrman database dengan jdbc
Laporan praktikum modul 6 pemrogrman database dengan jdbcLaporan praktikum modul 6 pemrogrman database dengan jdbc
Laporan praktikum modul 6 pemrogrman database dengan jdbcDevi Apriansyah
 
Pert 4. class dan objek
Pert 4. class dan objekPert 4. class dan objek
Pert 4. class dan objekradar radius
 
Laporan praktikum modul 5 (pemrogrman database dengan odbc)
Laporan praktikum modul 5 (pemrogrman database dengan odbc)Laporan praktikum modul 5 (pemrogrman database dengan odbc)
Laporan praktikum modul 5 (pemrogrman database dengan odbc)Devi Apriansyah
 
Membuat aplikasi-sederhana-menggunakan-java
Membuat aplikasi-sederhana-menggunakan-javaMembuat aplikasi-sederhana-menggunakan-java
Membuat aplikasi-sederhana-menggunakan-javaFarichah Riha
 
Fungsi mysql di php adalah untuk mengambil data di mysql
Fungsi mysql di php adalah untuk mengambil data di mysqlFungsi mysql di php adalah untuk mengambil data di mysql
Fungsi mysql di php adalah untuk mengambil data di mysqlEfendigea
 
Menyimpan Data Ke Database Dengan Ajax Dan PHP
Menyimpan Data Ke Database Dengan Ajax Dan PHPMenyimpan Data Ke Database Dengan Ajax Dan PHP
Menyimpan Data Ke Database Dengan Ajax Dan PHPEllyx Christian
 
Cara Penggunaan dan Pengoneksian sql jdbc dan odbc
Cara Penggunaan dan Pengoneksian sql jdbc dan odbcCara Penggunaan dan Pengoneksian sql jdbc dan odbc
Cara Penggunaan dan Pengoneksian sql jdbc dan odbcDiah Roshyta Sari
 
belajar neatbean
belajar neatbeanbelajar neatbean
belajar neatbeanFarul Abdi
 
Jeni Web Programming Bab 3 Advanced Servlets
Jeni Web Programming Bab 3 Advanced ServletsJeni Web Programming Bab 3 Advanced Servlets
Jeni Web Programming Bab 3 Advanced ServletsIndividual Consultants
 
Konstruktor dan inisialisasi objek
Konstruktor dan inisialisasi objekKonstruktor dan inisialisasi objek
Konstruktor dan inisialisasi objekifani_anesa
 

What's hot (20)

Mengakses data dari database my sql di listview dengan json
Mengakses data dari database my sql di listview dengan jsonMengakses data dari database my sql di listview dengan json
Mengakses data dari database my sql di listview dengan json
 
Android Fast Track - Database SQLite (Kamus Tiga Bahasa)
Android Fast Track - Database SQLite (Kamus Tiga Bahasa)Android Fast Track - Database SQLite (Kamus Tiga Bahasa)
Android Fast Track - Database SQLite (Kamus Tiga Bahasa)
 
contoh Program sederhana Java dan penjelasan programnya
contoh Program sederhana Java dan penjelasan programnyacontoh Program sederhana Java dan penjelasan programnya
contoh Program sederhana Java dan penjelasan programnya
 
Jquery ppt
Jquery pptJquery ppt
Jquery ppt
 
Web Service Menggunakan Axis
Web Service Menggunakan AxisWeb Service Menggunakan Axis
Web Service Menggunakan Axis
 
My sql dan java database connectivity
My sql dan java database connectivityMy sql dan java database connectivity
My sql dan java database connectivity
 
Ppt pengenalan jquery
Ppt pengenalan jqueryPpt pengenalan jquery
Ppt pengenalan jquery
 
Tutorial Postgre SQL
Tutorial Postgre SQLTutorial Postgre SQL
Tutorial Postgre SQL
 
Pelatihan j query
Pelatihan j queryPelatihan j query
Pelatihan j query
 
Laporan praktikum modul 6 pemrogrman database dengan jdbc
Laporan praktikum modul 6 pemrogrman database dengan jdbcLaporan praktikum modul 6 pemrogrman database dengan jdbc
Laporan praktikum modul 6 pemrogrman database dengan jdbc
 
Pert 4. class dan objek
Pert 4. class dan objekPert 4. class dan objek
Pert 4. class dan objek
 
Laporan praktikum modul 5 (pemrogrman database dengan odbc)
Laporan praktikum modul 5 (pemrogrman database dengan odbc)Laporan praktikum modul 5 (pemrogrman database dengan odbc)
Laporan praktikum modul 5 (pemrogrman database dengan odbc)
 
Membuat aplikasi-sederhana-menggunakan-java
Membuat aplikasi-sederhana-menggunakan-javaMembuat aplikasi-sederhana-menggunakan-java
Membuat aplikasi-sederhana-menggunakan-java
 
Fungsi mysql di php adalah untuk mengambil data di mysql
Fungsi mysql di php adalah untuk mengambil data di mysqlFungsi mysql di php adalah untuk mengambil data di mysql
Fungsi mysql di php adalah untuk mengambil data di mysql
 
Menyimpan Data Ke Database Dengan Ajax Dan PHP
Menyimpan Data Ke Database Dengan Ajax Dan PHPMenyimpan Data Ke Database Dengan Ajax Dan PHP
Menyimpan Data Ke Database Dengan Ajax Dan PHP
 
Cara Penggunaan dan Pengoneksian sql jdbc dan odbc
Cara Penggunaan dan Pengoneksian sql jdbc dan odbcCara Penggunaan dan Pengoneksian sql jdbc dan odbc
Cara Penggunaan dan Pengoneksian sql jdbc dan odbc
 
belajar neatbean
belajar neatbeanbelajar neatbean
belajar neatbean
 
Jeni Web Programming Bab 3 Advanced Servlets
Jeni Web Programming Bab 3 Advanced ServletsJeni Web Programming Bab 3 Advanced Servlets
Jeni Web Programming Bab 3 Advanced Servlets
 
Jeni konsep oop
Jeni   konsep oopJeni   konsep oop
Jeni konsep oop
 
Konstruktor dan inisialisasi objek
Konstruktor dan inisialisasi objekKonstruktor dan inisialisasi objek
Konstruktor dan inisialisasi objek
 

Viewers also liked (20)

La meva feina
La meva feinaLa meva feina
La meva feina
 
Presentación Temas Consejo Histórico
Presentación Temas Consejo HistóricoPresentación Temas Consejo Histórico
Presentación Temas Consejo Histórico
 
Recursos educativos Web 2.0
Recursos educativos Web 2.0Recursos educativos Web 2.0
Recursos educativos Web 2.0
 
Meridiana2.3
Meridiana2.3Meridiana2.3
Meridiana2.3
 
Andrea ll
Andrea llAndrea ll
Andrea ll
 
Valores..!!
Valores..!!Valores..!!
Valores..!!
 
Plan Desarrollo
Plan DesarrolloPlan Desarrollo
Plan Desarrollo
 
Presentacion all
Presentacion allPresentacion all
Presentacion all
 
Chavetas
ChavetasChavetas
Chavetas
 
Knot standard
Knot standardKnot standard
Knot standard
 
Alfresco
AlfrescoAlfresco
Alfresco
 
Aayyyy Que Me Quitan La Herencia!!!!
Aayyyy Que Me Quitan La Herencia!!!!Aayyyy Que Me Quitan La Herencia!!!!
Aayyyy Que Me Quitan La Herencia!!!!
 
Anexos principios de comercio exterior y aranceles
Anexos principios de comercio exterior y arancelesAnexos principios de comercio exterior y aranceles
Anexos principios de comercio exterior y aranceles
 
Presentacion1
Presentacion1Presentacion1
Presentacion1
 
Casa Alves - Folheto Setembro
Casa Alves - Folheto SetembroCasa Alves - Folheto Setembro
Casa Alves - Folheto Setembro
 
Enterprise Sync n Share
Enterprise Sync n ShareEnterprise Sync n Share
Enterprise Sync n Share
 
Cambio Climatico
Cambio ClimaticoCambio Climatico
Cambio Climatico
 
Greenlee 430-500
Greenlee 430-500Greenlee 430-500
Greenlee 430-500
 
Tp 2 computacion july
Tp 2 computacion julyTp 2 computacion july
Tp 2 computacion july
 
Mohd Fazril Mustaza_Resume (Rev.3)
Mohd Fazril Mustaza_Resume (Rev.3)Mohd Fazril Mustaza_Resume (Rev.3)
Mohd Fazril Mustaza_Resume (Rev.3)
 

Similar to Chapter ix.koneksi java dengan mysql

05 pzt web programming jdbc hibernate. kelompok 7
05 pzt web programming jdbc hibernate. kelompok 705 pzt web programming jdbc hibernate. kelompok 7
05 pzt web programming jdbc hibernate. kelompok 7pinnsyl
 
Koneksi database menggunakan jsp
Koneksi database menggunakan jspKoneksi database menggunakan jsp
Koneksi database menggunakan jspYuna Argadewi
 
Koneksi database menggunakan jsp
Koneksi database menggunakan jspKoneksi database menggunakan jsp
Koneksi database menggunakan jspYuna Argadewi
 
Database Operation di VB.NET
Database Operation di VB.NETDatabase Operation di VB.NET
Database Operation di VB.NETFgroupIndonesia
 
MudafiqRiyan - MVC-DAO Java Desktop
MudafiqRiyan - MVC-DAO Java DesktopMudafiqRiyan - MVC-DAO Java Desktop
MudafiqRiyan - MVC-DAO Java DesktopMudafiq R. Pratama
 
Membuat aplikasi-rental-dengan-java-dan-my sql
Membuat aplikasi-rental-dengan-java-dan-my sqlMembuat aplikasi-rental-dengan-java-dan-my sql
Membuat aplikasi-rental-dengan-java-dan-my sqlIrwan Syah
 
Web mvc dengan java jsp seri 1
Web mvc dengan java   jsp seri 1Web mvc dengan java   jsp seri 1
Web mvc dengan java jsp seri 1Zaenal Arifin
 
Koneksi java mysql
Koneksi java mysqlKoneksi java mysql
Koneksi java mysqldjamalusman
 
Koneksi java mysql
Koneksi java mysqlKoneksi java mysql
Koneksi java mysqldaniels1jaya
 
Mengamankan Aplikasi Java EE 6
Mengamankan Aplikasi Java EE 6Mengamankan Aplikasi Java EE 6
Mengamankan Aplikasi Java EE 6Bowo Prasetyo
 
modul-praktikum-pemrogramanjavadgnnetbeans-171005005920.pdf
modul-praktikum-pemrogramanjavadgnnetbeans-171005005920.pdfmodul-praktikum-pemrogramanjavadgnnetbeans-171005005920.pdf
modul-praktikum-pemrogramanjavadgnnetbeans-171005005920.pdfHerikusnawijaya3
 
Tutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSON
Tutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSONTutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSON
Tutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSONDimas Prawira
 
Netbeans jasper-tutorial
Netbeans jasper-tutorialNetbeans jasper-tutorial
Netbeans jasper-tutorialyunus pramono
 
Jdbc
JdbcJdbc
JdbcJogal
 

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

05 pzt web programming jdbc hibernate. kelompok 7
05 pzt web programming jdbc hibernate. kelompok 705 pzt web programming jdbc hibernate. kelompok 7
05 pzt web programming jdbc hibernate. kelompok 7
 
Koneksi database menggunakan jsp
Koneksi database menggunakan jspKoneksi database menggunakan jsp
Koneksi database menggunakan jsp
 
Koneksi database menggunakan jsp
Koneksi database menggunakan jspKoneksi database menggunakan jsp
Koneksi database menggunakan jsp
 
P webfb
P webfbP webfb
P webfb
 
Database Operation di VB.NET
Database Operation di VB.NETDatabase Operation di VB.NET
Database Operation di VB.NET
 
MudafiqRiyan - MVC-DAO Java Desktop
MudafiqRiyan - MVC-DAO Java DesktopMudafiqRiyan - MVC-DAO Java Desktop
MudafiqRiyan - MVC-DAO Java Desktop
 
Modul PBO Bab-11 - JDBC
Modul PBO Bab-11 - JDBCModul PBO Bab-11 - JDBC
Modul PBO Bab-11 - JDBC
 
Membuat aplikasi-rental-dengan-java-dan-my sql
Membuat aplikasi-rental-dengan-java-dan-my sqlMembuat aplikasi-rental-dengan-java-dan-my sql
Membuat aplikasi-rental-dengan-java-dan-my sql
 
Web mvc dengan java jsp seri 1
Web mvc dengan java   jsp seri 1Web mvc dengan java   jsp seri 1
Web mvc dengan java jsp seri 1
 
Fungsi php mysql
Fungsi php mysqlFungsi php mysql
Fungsi php mysql
 
Koneksi java mysql
Koneksi java mysqlKoneksi java mysql
Koneksi java mysql
 
Koneksi java mysql
Koneksi java mysqlKoneksi java mysql
Koneksi java mysql
 
Mengamankan Aplikasi Java EE 6
Mengamankan Aplikasi Java EE 6Mengamankan Aplikasi Java EE 6
Mengamankan Aplikasi Java EE 6
 
Jeni Web Programming Bab 4 Dasar Jsp
Jeni Web Programming Bab 4 Dasar JspJeni Web Programming Bab 4 Dasar Jsp
Jeni Web Programming Bab 4 Dasar Jsp
 
Modul praktikum-pemrograman java dgn netbeans
Modul praktikum-pemrograman java dgn netbeansModul praktikum-pemrograman java dgn netbeans
Modul praktikum-pemrograman java dgn netbeans
 
modul-praktikum-pemrogramanjavadgnnetbeans-171005005920.pdf
modul-praktikum-pemrogramanjavadgnnetbeans-171005005920.pdfmodul-praktikum-pemrogramanjavadgnnetbeans-171005005920.pdf
modul-praktikum-pemrogramanjavadgnnetbeans-171005005920.pdf
 
Tutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSON
Tutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSONTutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSON
Tutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSON
 
Netbeans jasper-tutorial
Netbeans jasper-tutorialNetbeans jasper-tutorial
Netbeans jasper-tutorial
 
Modul mvc part 1
Modul mvc part 1Modul mvc part 1
Modul mvc part 1
 
Jdbc
JdbcJdbc
Jdbc
 

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