0% menganggap dokumen ini bermanfaat (0 suara)
151 tayangan11 halaman

3 - Materi JDBC

Dokumen tersebut memberikan penjelasan tentang konsep dasar Java Database Connectivity (JDBC) untuk menghubungkan program Java dengan basis data. Dibahas langkah-langkah dasar seperti persiapan basis data dan driver JDBC, serta cara menghubungkan program Java ke basis data melalui enam langkah utama yaitu memanggil driver, mendefinisikan URL, membuat objek statement, melakukan query, memproses hasil query, dan menutup koneksi."

Diunggah oleh

Warehouse PT.MBA
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
151 tayangan11 halaman

3 - Materi JDBC

Dokumen tersebut memberikan penjelasan tentang konsep dasar Java Database Connectivity (JDBC) untuk menghubungkan program Java dengan basis data. Dibahas langkah-langkah dasar seperti persiapan basis data dan driver JDBC, serta cara menghubungkan program Java ke basis data melalui enam langkah utama yaitu memanggil driver, mendefinisikan URL, membuat objek statement, melakukan query, memproses hasil query, dan menutup koneksi."

Diunggah oleh

Warehouse PT.MBA
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 11

-Pemrograman Berorientasi Objek Lanjut-

JAVA DATA BASE CONNECTIVITY

Dasar Teori
Java menyediakan standard API (application programming interface) untuk pengembangan program
aplikasi basis data (database) yang disebut dengan JDBC API. JDBC adalah API Java untuk memanipulasi
basis data. Dengan JDBC API, para pengembang aplikasi dan applet Java diberi kemudahan untuk
mengakses berbagai tipe basis data dari berbagai penyedia basis data (database vendors) seperti
MySQL Server, SQL Server, Oracle, Sybase dan sebagainya. Hal-hal yang perlu dipersiapkan untuk
memulai JDBC adalah persiapan database dan install JDBC Driver.

 Persiapan Database
Install Xampp dari https://www.apachefriends.org/download.html. Jika sudah, jalankan MySQL server
dan Apache server melalui Xampp Control Panel. Masuk ke localhost/phpmyadmin melalui browser.
Jika belum ada database, create new database.

 JDBC Library
JDBC adalah suatu fitur di Java yang memungkinkan kita untuk melakukan koneksi ke hampir semua
sistem RDBMS yang ada saat ini, eksekusi perintah SQL, dan memproses hasil perintah SQL melalui
program Java. Library JDBC terdiri atas class-class yang berguna untuk setiap tasks di dalam
pemrosesan database, misalnya class untuk: (1) membuat koneksi ke database, (2) membuat
statement menggunakan SQL, (3) mengeksekusi query SQL (statement) di dalam database, (4)
menampilkan records yang dihasilkan dan (5) semua class-class JDBC adalah bagian dari java.sql
package.

Gambar 1 Alur akses database melalui JDBC

Fakultas Teknik
Prodi Teknik Informatika
UNIVERSITAS WIJAYA PUTRA
-Pemrograman Berorientasi Objek Lanjut-

 JDBC Driver
Sebelum Anda dapat menulis program Java yang mengakses database melalui JDBC, pertama-tama
Anda harus meng-instal sebuah Driver yang menghubungkan class-class di dalam Java’s database API
dengan database yang akan digunakan. Untuk setiap database yang ada di pasaran saat ini, hampir
semuanya memiliki driver JDBC-nya. Biasanya driver ini dapat didownload secara gratis melalui
website perusahaan database masing-masing. Driver ini seringkali disebut juga sebagai “connector”.
Untuk NetBeans IDE, letakkan connector ini di folder Libraries.

 Enam langkah koneksi dan akses database


(1) Memanggil driver JDBC
Sebelum kita dapat menggunakan JDBC untuk mengakses database SQL, kita harus melakukan
koneksi terlebih dahulu. Langkah pertama dalam melakukan koneksi adalah registrasi driver.
Caranya adalah dengan menggunakan method “forName” dari kelas “Class”. Misalnya untuk
meregistrasi connector MySQL, gunakan perintah berikut:

Class.forName("com.mysql.jdbc.Driver");
Perlu diingat bahwa method forName memiliki exception, sehingga kita harus memasukkan
statement ini dalam blok try-catch, seperti berikut :

try {
Class.forName("com.mysql.jdbc.Driver");
}
catch (ClassNotFoundException){
// error handling
}

(2) Mendefinisikan URL untuk koneksi Database


Buatlah sebuah method yang akan me-return sebuah objek Connection. Method ini akan
memanggil static method class

DriverManager yaitu getConnection. Static method getConnection (class DriverManager)


memiliki 3 parameter yaitu url database, user name, dan password berikut :

String url = "jdbc:mysql://localhost/firstjdbc";


String user = "root";
String pw = "";
con = DriverManager.getConnection(url, user, pw);
Statement diatas akan melemparkan sebuah SQLException jika terjadi kesalahan. Dengan
demikian, buat sebuah blok

try-catch untuk exception ini. Lihat pada percobaan 1 yang merupakan sebuah method yang me-
return objek Connection yang berfungsi sebagai penghubung ke database MySQL.

(3) Membuat objek statement


Kita memerlukan objek Statement untuk melakukan query dan objek ini dapat dibuat dari objek
Connection.

Statement st = con.createStatement();
Statement adalah interface yang memiliki method penting untuk mengirimkan perintah ke
database dan mengembalikan hasil querynya. Gunakan method executeQuery method untuk

Fakultas Teknik
Prodi Teknik Informatika
UNIVERSITAS WIJAYA PUTRA
-Pemrograman Berorientasi Objek Lanjut-

mengeksekusi perintah database dan gunakan method executeUpdate untuk melakukan


perintah insert, update, atau delete.

(4) Melakukan query atau update


Setelah kita memiliki objek Statement, kita dapat menggunakannya untuk mengirimkan query
dan mengeksekusinya dengan method executeQuery yang menghasilkan objek bertipe
ResultSet.

ResultSet : interface ResultSet merepresentasikan baris yang dihasilkan dari queri. ResultSet
menyediakan method untuk berpindah dari baris ke baris database.
String query = "SELECT * FROM books";
ResultSet rs = st.executeQuery(query);
Note: Apabila ingin melakukan insert / update / delete, gunakan st.executeUpdate(query);

(5) Memproses hasil query


Dalam memproses hasil, kita menggunakan objek resultSet karena hasil query disimpan dalam
objek ini. Method utama yang sering digunakan: next dan getString. Contoh pemrosesan hasil
query:

while (rs.next()){
System.out.println(rs.getString(1) + " " + rs.getString(2));
}
Kode di atas akan menampilkan semua baris hasil query yang masing-masing menampilkan data
kolom pertama dan kedua.

(6) Proses insert/update/delete


Setelah mengerti bagaimana menampilkan data, maka kita perlu mengerti bagaimana
menambah / menghapus / mengupdate data ke tabel. Untuk melakukan hal tersebut, kita
menggunakan method :

executeUpdate("perintah sql untuk insert / update / delete");


Method tersebut akan menghasilkan nilai integer yang merupakan jumlah baris yang
dipengaruhi oleh proses update tersebut.

int i = st.executeUpdate("delete from movie where id = ‘2' ");


Untuk proses updating tabel, kita bisa juga menggunakan objek PreparedStatement. Untuk
mengeksekusi PreparedStatement, kita gunakan method executeUpdate().

(7) Menutup koneksi


Sebelum menutup koneksi basis data, kita juga perlu melepaskan objek ResultSet yang ada
dengan kode berikut:

st.close();
Untuk menutup koneksi ke basis data, kita tuliskan sebagai berikut :

conn.close();

Fakultas Teknik
Prodi Teknik Informatika
UNIVERSITAS WIJAYA PUTRA
-Pemrograman Berorientasi Objek Lanjut-

Percobaan

Percobaan 1 : Membuat Database


Dalam pembuatan aplikasi CRUD sederhana ini diwajibkan sebelumnya kamu harus sudah
paham membuat sebuah database MySQL. Buatlah sebuah database baru pada mysql dengan
tabel karyawan dengan field berikut :
id  int (primary key)
nama  varchar (35)
nik  varchar (10)
alamat  varchar (50)
telp  varchar (12)
Isi beberapa data pada tabel tersebut, contoh sbb:

Percobaan 2 : Membuat Aplikasi Sederhana CRUD


Pada tahap ini kita akan belajar membuat aplikasi CRUD sederhana dan membuat JTable
yang fleksibel.
a) Menyiapkan JFrame Form
Buatlah sebuah project Java GUI Baru. Buat sebuah FORM KARYAWAN yang terdiri dari
label, textfield, button dan 1 JTable default seperti gambar berikut:

Beri nama JTable dengan nama tabelKaryawan.

Fakultas Teknik
Prodi Teknik Informatika
UNIVERSITAS WIJAYA PUTRA
-Pemrograman Berorientasi Objek Lanjut-

Setelah selesai membuat form tersebut, klik Source pada frame tersebut, kemudian tambahkan
kode berikut sebelum deklarasi Class Frame:
import javax.swing.table.DefaultTableModel;
import java.sql.Connection;
import java.sql.*;
import javax.swing.JOptionPane;

Kemudian tambahkan beberapa varibael berikut dlm class:

private DefaultTableModel tabel;


private Connection con;
private Statement stm;
private ResultSet rs;
private String sql="";
public boolean databaru;

Kita akan membuat JTable dengan mode DefaultTableModel. Dengan menggunakan model
default kita dapat memanaje tabel sesuai yang kita inginkan melalui kode program. Berikut ini
kita akan mengubah tampilan JTable melalui method Tabel() sebagai berikut:
Buat sebuah method Tabel() di dalam class JKaryawan sebagai berikut:
private void Tabel() {
tabel= new DefaultTableModel();
tabel.addColumn("ID");
tabel.addColumn("Nama");
tabel.addColumn("NIK");
tabel.addColumn("Alamat");
tabel.addColumn("Telepon");
tabelKaryawan.setModel(tabel);
}

Fakultas Teknik
Prodi Teknik Informatika
UNIVERSITAS WIJAYA PUTRA
-Pemrograman Berorientasi Objek Lanjut-

Method di atas berfungsi untuk mengubah tampilan JTable menjadi 5 kolom dengan nama
ID, Nama, NIK, Alamat dan Telepon. Kita tidak perlu modifikasi pada JTable nya, jadi
cukup diubah melalui kode program saja.

b) Membuat Class Koneksi Database ke MySQL

Buatlah class baru dengan nama "koneksi.java". Sebelum memulai menuliskan code untuk
koneksi java silahkan tambahkan library JDBC driver ke dalam project dengan cara Klik
kanan pada Libraries > ADD Jar / Folder dan pilih file MySQL JDBC Driver yang bisa
kamu download di situs resminya.

Atau kalau JDBC Driver sudah terinstall, maka tinggal kita Add Library di projectnya,
caranya:

- Klik kanan pada project, pilih Properties.

- Klik Libraries, kemudian Klik Add Library, pilih MySQL JDBC Driver, Klik Add

Fakultas Teknik
Prodi Teknik Informatika
UNIVERSITAS WIJAYA PUTRA
-Pemrograman Berorientasi Objek Lanjut-

- Klik Ok, selesai. JDBC siap digunakan.

Tuliskan code java untuk class koneksi.java berikut ini :

package delta; // nama package seusuai dengan nama project

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.swing.JOptionPane;

public class koneksi { // koneksi ke database


private static Connection mysqlkonek;
public static Connection koneksiDB() throws SQLException {
if(mysqlkonek==null){
try {
String DB="jdbc:mysql://localhost:3306/karyawan";//namaDB
String user="root"; // user database
String pass=""; // password database
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
mysqlkonek = (Connection)
DriverManager.getConnection(DB,user,pass);
} catch (Exception e) {
JOptionPane.showMessageDialog(null,"gagal koneksi");
}
}
return mysqlkonek;
}
}

Sesuaikan nama database kalian pada skrip :


String DB=”jdbc:mysql://localhost:3306/nama_database_kalian”

Fakultas Teknik
Prodi Teknik Informatika
UNIVERSITAS WIJAYA PUTRA
-Pemrograman Berorientasi Objek Lanjut-

Apakah class koneksi sudah berhasil dibuat tanpa ada pesan error?? Jika iya, maka kita ke
tahap selanjutnya.

c) Coding pada tiap komponen


Source Code menampilkan data ke Jtable (tabelKaryawan):
Buat fungsi load_data sebagai berikut:
private void load_data() {
//melakukan penghapusan default model dari Jtable
tabel.getDataVector().removeAllElements();
tabel.fireTableDataChanged();

try{
//panggil koneksi db
con = (Connection)latihanjdbc.koneksi.koneksiDB();
sql = "select * from data";
stm = con.createStatement();
rs = stm.executeQuery(sql);

while (rs.next()) {
Object [] o = new Object[5];
o[0]=rs.getString("id");//sesuaikan dg nama di database
o[1]=rs.getString("nama");
o[2]=rs.getString("nik");
o[3]=rs.getString("alamat");
o[4]=rs.getString("telp");
tabel.addRow(o);
}
rs.close();
stm.close();
} catch (Exception e) {
JOptionPane.showMessageDialog(this, "Koneksi gagal!" +
e.getMessage());
}
}

Source Code pada konstruktor class:


Panggil method Tabel() dan load_data() pada konstruktor class, tulis di bawah
initComponents() sebagai berikut:

Fakultas Teknik
Prodi Teknik Informatika
UNIVERSITAS WIJAYA PUTRA
-Pemrograman Berorientasi Objek Lanjut-

Source Code tombol New:


Tombol New berfungsi untuk mengosongkan semua textfield yang ada.
Variabel databaru di-set true ketika tombol New di-klik.
Ketikkan kode berikut pada Action Tombol New:
private void butNewActionPerformed(java.awt.event.ActionEvent evt)
{
databaru=true;
// mengosongkan textbox
tfID.setText("");
tfNama.setText("");
tfNIK.setText("");
tfAlamat.setText("");
tfTelepon.setText("");
}

Source Code menampilkan data JTable yang dipilih pada tiap TextField.
Setiap data yang ditampilkan pada Jtable dapat di klik, kemudian data yg di-klik akan muncul
pada tiap TextField dan bisa di-edit.
Klik kanan pada Jtable (tabelKaryawan), pilih Events, pilih Mouse, pilih MouseClicked.
Berikut adalah kodingnya:
private void tabelKaryawanMouseClicked(java.awt.event.MouseEvent evt) {
int pilih = tabelKaryawan.getSelectedRow();
databaru=false;
if (pilih == -1) {
return;
}
String id = (String) tabel.getValueAt(pilih, 0);
tfID.setText(id);
String nama = (String) tabel.getValueAt(pilih, 1);
tfNama.setText(nama);
String nik = (String) tabel.getValueAt(pilih, 2);
tfNIK.setText(nik);
String alamat = (String) tabel.getValueAt(pilih, 3);
tfAlamat.setText(alamat);
String telp = (String) tabel.getValueAt(pilih, 4);
tfTelepon.setText(telp);
}

Source Code tombol Save:


Tombol Save berfungsi untuk menyimpan data, baik data baru maupun data yang di-update.
Yang membedakan antara data baru dan bukan adalah variabel bantu dengan tipe boolean
“databaru”.
Perhatikan koding pada tombol New, ketika tombol New di klik maka variabel “databaru” di-
set menjadi True. Sedangkan jika salah satu data existing di tabel di klik, maka “databaru” di-
set False (perhatikan fungsi tabelKaryawanMouseClicked).
Source code tombol Save (klik kanan button, pilih Events, pilih Action, Action Performed):

Fakultas Teknik
Prodi Teknik Informatika
UNIVERSITAS WIJAYA PUTRA
-Pemrograman Berorientasi Objek Lanjut-

private void butSaveActionPerformed(java.awt.event.ActionEvent evt) {


if(tfID.getText().trim().equals("")){
JOptionPane.showMessageDialog(null,"Maaf, ID belum di
isi!");
tfID.requestFocus();
}
else if(tfNama.getText().trim().equals("")){
JOptionPane.showMessageDialog(null,"Maaf, Nama belum di
isi!");
tfNama.requestFocus();
}
else if(tfNIK.getText().trim().equals("")){
JOptionPane.showMessageDialog(null,"Maaf, NIK belum di
isi!");
tfNIK.requestFocus();
}
else if(tfTelepon.getText().trim().equals("")){
JOptionPane.showMessageDialog(null,"Maaf, Telepon belum di
isi!");
tfTelepon.requestFocus();
}
else if(tfAlamat.getText().trim().equals("")){
JOptionPane.showMessageDialog(null,"Maaf, Alamat belum di
isi!");
tfAlamat.requestFocus();
}
else if (databaru==true) {
try {
con = (Connection)latihanjdbc.koneksi.koneksiDB();
String id = tfID.getText();
String nama = tfNama.getText();
String nik = tfNIK.getText();
String alamat = tfAlamat.getText();
String telp = tfTelepon.getText();
sql = "insert into data
values('"+id+"','"+nama+"','"+nik+"','"+alamat+"','"+telp+"')";
stm = con.createStatement();
stm.executeUpdate(sql);
JOptionPane.showMessageDialog(null, "Data BERHASIL
tersimpan" , "Informasi", JOptionPane.INFORMATION_MESSAGE);
load_data();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, e);
}
}
else {
try {
con = (Connection)latihanjdbc.koneksi.koneksiDB();
sql = "update data SET
id='"+tfID.getText()+"',nama='"+tfNama.getText()+"',nik='"+tfNIK.getTe
xt()+"',alamat='"+tfAlamat.getText()+"',telp='"+tfTelepon.getText()+"'
where id='"+tfID.getText()+"'";
stm = con.createStatement();
stm.executeUpdate(sql);
JOptionPane.showMessageDialog(null, "berhasil
disimpan");
load_data();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, e); }
}
}

Fakultas Teknik
Prodi Teknik Informatika
UNIVERSITAS WIJAYA PUTRA
-Pemrograman Berorientasi Objek Lanjut-

Source Code tombol Delete:


Tombol Delete berfungsi untuk menghapus record data yang di-klik di tabelKaryawan.
Berikut kode programnya:
private void butDeleteActionPerformed(java.awt.event.ActionEvent evt) {
int row = tabelKaryawan.getSelectedRow();
if(row>=0){
int ok=JOptionPane.showConfirmDialog(null, "Yakin Mau
Hapus?","Konfirmasi",JOptionPane.YES_NO_OPTION);
if(ok==0){
try {
con = (Connection)latihanjdbc.koneksi.koneksiDB();
sql = "delete from data where id='"+tfID.getText()+"'";
stm = con.createStatement();
stm.executeUpdate(sql);
tabel.removeRow(row);
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, e); }
}
}
}

Catatan: Untuk meng-input data baru kilik Tombol New lebh dulu

Kesimpulan :
- Materi di atas adalah proses CRUD (create, retrieve, update , delete) menggunakan
JDBC standar.
- Proses pengoahan data melibatkan query SQL pada kode program.
- Pada tahap selanjutnya, kita akan menggunakan Hibernate dan Object Relational
Mapping (ORM) untuk memodifikasi data.
- Hal ini dilakukan agar program berjalan sesuai dengan konsep Object Oriented
Programming dan mengurangi database programming oriented.

Fakultas Teknik
Prodi Teknik Informatika
UNIVERSITAS WIJAYA PUTRA

Anda mungkin juga menyukai