Modul ini berisi materi praktikum tentang pembuatan aplikasi CRUD perpustakaan. Sebenarnya ini adalah edisi revisi dari modul sebelumnya yaitu Chapter 11. hehe....
Bahasa yang digunakan masih sama yaitu menggunakan bahasa Java
Modul Praktikum Pemrograman Berorientasi Objek (Chap.12)
1. MODUL PRAKTIKUM
(edisi revisi)
PEMROGRAMAN BERORIENTASI OBJEK
Sub Topik: Membuat Aplikasi Perpustaakn
dengan Java dan MySQL
Debby Ummul Hidayah
debbyummul@gmail.com
debbyummul@amikompurwokerto.ac.id
SEKOLAH TINGGI MANAJEMEN DAN ILMU KOMPUTER
AMIKOM PURWOKERTO
2017
2. 2
1. CARA IMPORT DATABASE MYSQL
Di sini saya anggap sudah mengaktifkan XAMPP, kemudian pada
localhost/phpmyadmin kita buat new database.
Gambar 1. Membuat new database
Lalu isikan nama database baru, seperti pada Gambar 2 berikut.
Gambar 2. Mengisi nama database baru
Kemudian akan muncul tampilan seperti Gambar 3. Klik tab menu Import
Gambar 3. Tampilan tab menu Import
Klik New
ketikkan nama database baru
selanjutnya klik tombol Create
3. 3
Setelah itu klik pada tombol Choose File. Ini berfungsi untuk mengimpor file tempat
penyimapanan database yang ingin diimpor.
Gambar 5. Impor database
Jika berhasil maka akan muncul pesan tampilan seperti pada Gambar 6 berikut:
Gambar 6. Notifikasi database berhasil diimpor
Klik Choose File
Pilih databasenya
Klik tombol Open
Terakhir klik
tombol Go
4. 4
Kemudian akan muncul database yang tadi diimport seperti Gambar 7.
Gambar 7. Database yang berhasil diimpor
2. TAMBAHKAN LIBRARY MYSQL JDBC DRIVER
Sebelum mengkoneksikan dengan database, kita perlu menambahkan library mysql
JDBC driver terlebih dahulu. Perlu diketahui bahwa JDBC (Java Database Connectivity)
memiliki beberapa kegunaan, yaitu (Aji, 2016):
a. Membantu untuk mengkoneksikan dengan data source.
b. Membantu untuk mengirimkan query dan update statements ke database.
c. Menerima serta memproses hasil yang didapatkan dari database sesuai dengan query
yang diberikan.
d. Dapat pula digunakan untuk membangun koneksi ke data source, mengirim statement
ke data source, dan memproses hasil statement tersebut.
Untuk menambahkan library MySQL JDBC Driver cukup mudah yaitu:
a. Klik kanan pada Libraries
b. Lalu pilih Add Library
Gambar 8. Menambahkan library
5. 5
c. Cari MySql JDBC Driver
Gambar 9. Menambahkan library MySQL JDBC Driver
d. Kemudian klik tombol Add Library
3. MEMBUAT KONEKSI DATABASE
Setelah kita berhasil mengimpor database, langkah selanjutnya adalah kita membuat
koneksi untuk database.
a. Sebelumnya kita perlu untuk membuat projek baru terlebih dahulu. Bisa dengan
pilih menu File New Project atau bisa dengan menekan tombol Ctrl+Shift+N
pada keyboard. Pada categories pilih “java”, pada projects pilih “Java Application”.
Lalu klik tombol Next.
Gambar 10. Membuat projek baru
6. 6
Kemudian pada Project Name isi dengan nama “AppPerpustakaan”. Lalu klik
tombol Finish.
Gambar 11. Membuat projek AppPerpustakaan
b. Setelah projek AppPerpustakaan berhasil dibuat, langkah selanjutnya adalah
membuat koneksi. Kita buat package terlebih dahulu di projek kita. Kegunaan
package ini adalah untuk mengelompokkan atau mengorganisasikan kelas-kelas atau
interface yang sekelompok menjadi suatu unit tunggal. Cara menambahkan package
pada projek AppPerpustakaan yaitu: klik kanan pada Source Packages New
Java Package.
Gambar 12. Membuat projek baru
7. 7
Gambar 13. Memberi nama package dengan nama Koneksi
c. Kemudian tambahkan kelas koneksi. Di sini kita akan membuat script untuk yang
nantinya digunakan untuk mengkoneksikan dengan database. Klik kanan pada
package Koneksi pilih New pilih Java Class.
Gambar 14. Menambakan Java Class pada package
8. 8
d. Mulai menulis script untuk kelas koneksi. Pertama kita import terlebih dulu java.sql.*.
Hal ini berguna agar fungsi-fungsi SQL dapat digunakan. Lalu kita buat sebuah
method dengan nama configDB() yang di dalamnya nanti akan kita buat blok try
catch. Blok try berguna untuk mendefinisikan database yang digunakan, letak
database, pemanggilan driver mysql jdbc dan penulisan untuk membuat koneksi
antara java dan mysql. Kemudian blok catch berguna jika terjadi suatu kesalahan atau
error maka nantinya akan ditangkap oleh Exception milik sql serta Exception dari java
sendiri.
Kita definisikan terlebih dulu objek untuk kelas Connection sebagai berikut:
private static Connection kon = null;
Kemudian kita buat method configDB(). Untuk nama methodnya bisa diganti dengan
nama yang lainnya.
public Connection configDB(){
try {
//driver untuk databasenya
String url = "jdbc:mysql://localhost:3306/db_perpustakaan";
String user = "root"; //user database
String pass = ""; //password database
Class.forName("com.mysql.jdbc.Driver");
kon = DriverManager.getConnection(url, user, pass);
System.out.println("Connection Success");
} catch (SQLException e) {
//perintah menampilkan pesan error pada koneksi
System.err.println("Connection Failed! Please try again!" + e.getMessage());
} catch (ClassNotFoundException ex) {
System.out.println("MySQL JDBC Driver tidak ditemukan");
ex.printStackTrace();
}
return kon;
}
9. 9
Selain cara di atas, ada cara lain untuk melakukan register driver database. Yaitu
mengganti Class.forName dengan:
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
Sehingga menjadi sebagai berikut:
public Connection configDB(){
try {
//driver untuk databasenya
String url = "jdbc:mysql://localhost:3306/db_perpustakaan";
String user = "root"; //user database
String pass = ""; //password database
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
kon = DriverManager.getConnection(url, user, pass);
System.out.println("Connection Success");
} catch (SQLException e) {
//perintah menampilkan pesan error pada koneksi
System.err.println("Connection Failed! Please try again!" + e.getMessage());
} catch (ClassNotFoundException ex) {
System.out.println("MySQL JDBC Driver tidak ditemukan");
ex.printStackTrace();
}
return kon;
}
4. MEMBUAT KELAS FUNGSI
Kelas fungsi ini berguna untuk mengeksekusi dari perintah-perintah yang nantinya
akan dijalankan. Seperti untuk perintah insert, update, dan delete. Seperti biasa kita
buat terlebih dahulu package baru dengan nama Fungsi. Caranya sama seperti yang
dijelaskan pada Gambar 12 dan Gambar 13. Kemudian buat kelas baru dengan nama
Fungsi. Caranya seperti pada Gambar 14. Setelah package dan kelas Fungsi telah
dibuat, langkah selanjutnya adalah kita import juga java.sql.*; agar fungsi-fungsi SQL
tetap dapat digunakan. Kemudian import Koneksi.Koneksi; digunakan untuk
memanggil kelas koneksi. Di dalam Java huruf kecil dan kapital dibedakan, sehingga
perlu diperhatikan kembali penulisannya. Karena akan mempengaruhi program.
import java.sql.*;
import Koneksi.Koneksi;
10. 10
Selanjutnya kita buat method dengan nama EQuery dengan parameter String sql. Hal
ini berguna agar kita tidak repot menuliskan kembali fungsi-fungsi yang digunakan
untuk mengeksekusi perintah query. Sehingga dengan method EQuery() ini kita
cukup dengan memanggil nama methodnya dari kelas fungsi dan parameter sql
diganti dengan query sql contohnya seperti insert into, delete from.
Kita definisikan terlebih dahulu beberapa objek sebagai berikut:
static Connection con;
static Koneksi db = new Koneksi();
static Statement st;
static int i;
static ResultSet rs;
Kemudian kita buat method EQuery dengan parameter String sql seperti berikut:
//eksekusi perintah insert, update, delete
public static int EQuery(String sql) throws SQLException {
i = 0;
try {
con = db.configDB();
st = con.createStatement();
i = st.executeUpdate(sql);
rs = st.executeQuery(sql);
return i;
} catch (Exception e) {
return i;
} finally {
con.close();
}
}
Keterangan:
Connection komponen yang menyimpan koneksi ke database
Statement merupakan objek interface yang diciptakan dari method
con.CreateStatement(). Komponen ini berguna untuk menangani perintah SQL ke
database. Atau dengan kata lain untuk penerimaan SQL tanpa parameter.
ResultSet komponen yang menyimpan data hasil perintah ke database
11. 11
SQLException komponen yang menangani kesalahan-kesalahan yang mungkin
terjadi saat pengolahan database.
ExecuteUpdate() method ini digunakan untuk perintah INSERT, UPDATE,
DELETE
ExecuteQuery() method ini digunakan untuk perintah SELECT, sehingga akan
memberikan nilai kembalian dalam bentuk ResultSet.
5. MEMBUAT KELAS ENTITAS
Kemudian langkah berikutnya adalah membuat kelas entitas-entitas dari data yang
nantinya akan diinputkan ke dalam database. Seperti biasa kita buat terlebih dahulu
package baru dengan nama Entitas. Caranya sama seperti yang dijelaskan pada
Gambar 12 dan Gambar 13. Kemudian buat kelas baru caranya seperti pada Gambar
14. Dalam kasus ini, sistem informasi yang dibuat adalah appPerpustakaan, sehingga
kelas entitas yang diperlukan adalah: Anggota, Petugas, KategoriBuku, Buku,
Peminjaman, dan Pengembalian. Sebagai contoh berikut adalah entitas untuk kelas
Anggota.
package appperpustakaan.Entitas;
public class Anggota {
private String kodeAnggota, namaAnggota, tempatLahir, tglLahir,
jk, alamat, agama, pekerjaan, telp;
public String getKodeAnggota() {
return kodeAnggota;
}
public void setKodeAnggota(String kodeAnggota) {
this.kodeAnggota = kodeAnggota;
}
public String getNamaAnggota() {
return namaAnggota;
}
12. 12
public void setNamaAnggota(String namaAnggota) {
this.namaAnggota = namaAnggota;
}
public String getTempatLahir() {
return tempatLahir;
}
public void setTempatLahir(String tempatLahir) {
this.tempatLahir = tempatLahir;
}
public String getTglLahir() {
return tglLahir;
}
public void setTglLahir(String tglLahir) {
this.tglLahir = tglLahir;
}
public String getJk() {
return jk;
}
public void setJk(String jk) {
this.jk = jk;
}
public String getAlamat() {
return alamat;
}
public void setAlamat(String alamat) {
this.alamat = alamat;
}
13. 13
public String getAgama() {
return agama;
}
public void setAgama(String agama) {
this.agama = agama;
}
public String getPekerjaan() {
return pekerjaan;
}
public void setPekerjaan(String pekerjaan) {
this.pekerjaan = pekerjaan;
}
public String getTelp() {
return telp;
}
public void setTelp(String telp) {
this.telp = telp;
}
Keterangan:
Kelas entitas Anggota berisi data-data yang akan diinputkan ke dalam tabel Anggota
pada database db_perpustakaan. Sehingga entitas Anggota di sini kita perlu
menyesuaikan dengan field-field yang ada di tabel Anggota seperti: kodeAnggota,
namaAnggota, tempatLahir, tglLahir, jk, alamat, agama, pekerjaan, telp. Data-data
tersebut kemudian dibuat variabel dengan tipe data String lalu dienkapsulasi.
Enkapsulasi merupakan suatu teknik yang membuat suatu variabel class menjadi
bersifat private dan menyediakan akses ke variabel melalui public method. Jika suatu
variabel dideklarasikan sebagai private maka variabel tersebut tidak dapat diakses
oleh kelas lain di luar kelas. Atau dengan kata lain variabel tersebut disembunyikan di
dalam kelas. Istilah lainnya enkapsulasi ini sebagai tembok penghalang yang
14. 14
mencegah kode atau data diakses oleh data lain di luar kelas. Manfaat utama dari pada
enkapsulasi ini adalah kita dapat memodifikasi kode tanpa merusak kode yang
digunakan pada kelas lain. Setelah dienkapsulasi baru kemudian membuat konstruktor
dari semua data tersebut.
//membuat konstruktor anggota
public Anggota(String kode, String nama, String tempatLahir,
String tglLahir, String jk, String alamat, String agama, String
pekerjaan, String telp) {
this.kodeAnggota = kode;
this.namaAnggota = nama;
this.tempatLahir = tempatLahir;
this.tglLahir = tglLahir;
this.jk = jk;
this.alamat = alamat;
this.agama = agama;
this.pekerjaan = pekerjaan;
this.telp = telp;
}
Di atas merupakan contoh pembuatan kelas entitas untuk Anggota. Adapun untuk
entitas Petugas, KategoriBuku, Buku, Peminjaman, dan Pengembalian cara
membuatnya sama hanya diubah pada variabelnya saja yang perlu disesuaikan dengan
tabel-tabel pada tbPetugas, tbKategoriBuku, tbBuku, tbPeminjaman, dan
tbPengembalian pada database appPerpustakaan.
6. MEMBUAT KELAS ENTITAS MANAJER
Pada kelas entitas manajer ini akan berisi method-method dengan query sql di
dalamnya seperti insert, update, dan delete. Seperti biasa kita buat terlebih dahulu
package baru dengan nama EntitasManajer. Caranya sama seperti yang dijelaskan
pada Gambar 12 dan Gambar 13. Kemudian buat kelas baru caranya seperti pada
Gambar 14. Dalam contoh ini kita membuat entitas manajer untuk Anggota.
Kita import terlebih dahulu entitas.anggota dan fungsi
import appperpustakaan.Entitas.Anggota;
import Fungsi.Fungsi;
15. 15
Kemudian kita buat method INSERT yang berguna untuk menambahkan data ke
dalam database. Contohnya seperti berikut:
Kemudian untuk MENGUBAH data dapat digunakan method seperti berikut:
Kemudian untuk MENGHAPUS data dapat digunakan method seperti berikut:
16. 16
Untuk entitas manajer lainnya seperti Petugas, KategoriBuku, Buku, Peminjaman,
dan Pengembalian pada intinya sama seperti cara membuat entitas manajer untuk
Anggota. Yaitu dengan membuat method INSERT yang berfungsi untuk menambah
data, UPDATE yang berfungsi untuk mengubah data, dan DELETE yang berfungsi
untuk menghapus data. Setelah entitas dan entitas manajer berhasil dibuat, langkah
selanjutnya adalah membuat form untuk mengimplementasikan.
7. MEMBUAT FORM
Sebelum membuat form, kita buat terlebih dahulu package baru dengan nama
Interface. Caranya sama seperti yang dijelaskan pada Gambar 12 dan Gambar 13.
Kemudian buat form baru. Caranya klik kanan pada package Interface New
JFrame Form.
Gambar 15. Membuat form baru
Gambar 16. Memberi nama form baru
17. 17
Gambar 17. Contoh desain FormAnggota
Pada desain di atas terdapat beberapa button yang dibuat seperti button tambah,
simpan, hapus, ubah, keluar, dan batal. Button tambah berguna untuk menambahkan
data baru dengan kode anggota yang dibuat ototmatis. Button simpan berguna untuk
menyimpan data, button hapus berguna untuk menghapus data, button ubah berguna
untuk mengubah data, dan button batal berguna untuk mereset textbox. Selanjutnya
kita masuk untuk mengkoding. Dalam pengkodingan ini, ada beberapa method yang
perlu dibuat seperti method tampilTabel() yang berguna untuk menampilkan data
dari database ke dalam tabel yang berada pada form.
Jangan lupa terlebih dahulu kita import beberapa kebutuhan seperti berikut:
import Koneksi.Koneksi;
import appperpustakaan.Entitas.Anggota;
import appperpustakaan.EntitasManajer.ManajerAnggota;
import java.sql.*;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
18. 18
Kemudian deklarasikan beberapa objek seperti berikut:
public class FormAnggota extends javax.swing.JFrame {
public Connection con;
public Statement st;
Koneksi getConnection = new Koneksi();
Lalu buat method tampilTabel() seperti contoh pada script berikut:
Keterangan:
Terlihat pada koding di atas bahwa form dipanggil terlebih dahulu dan diberi nama
tbAnggota lalu diberi nama kolomnya dari Kode Anggota sampai Nomor Telepon.
Selanjutnya pada blok try koneksi dibuka dan query untuk sqlnya berupa
SELECT*FROM tbanggota yang artinya memanggil seluruh data dari tabel
tbanggota. Kemudian terdapat pengulangan while yang berguna untuk mengisi data
dari tabel yang ada di database ke dalam tabel yang ada di form. Jika terdapat
kesalahan maka akan ditangkap oleh blok catch dan menampilkan sebuah pesan
kesalahan.
19. 19
Kemudian buat method kosong() yang berguna untuk mereset textbox:
private void kosong(){
txtKode.setText(null);
txtNama.setText(null);
txtTmptLahir.setText(null);
txtTglLahir.setText(null);
cmbJk.setSelectedItem(null);
txtAlamat.setText(null);
cmbAgama.setSelectedItem(null);
txtPekerjaan.setText(null);
txtTelp.setText(null);
}
Kemudian buat method tampilKodeAnggota() yang berguna untuk membuat kode
anggota ditambahkan secara otomatis saat button Tambah diklik.
private void tampilKodeAnggota() {
try {
String sql = "SELECT MAX(right(kdAnggota, 1)) AS Kode FROM tbanggota";
con = getConnection.configDB();
st = con.createStatement();
ResultSet rs = st.executeQuery(sql);
if (rs.first() == false) {
txtKode.setText("A0001");
} else {;
rs.last();
int auto_id = rs.getInt(1) + 1;
String no = String.valueOf(auto_id);
int noLong = no.length();
//mengatur jumlah 00
for (int a = 0; a < 4 - noLong; a++) {
no = "0" + no;
}
txtKode.setText("A" + no);
}
rs.close();
st.close();
} catch (Exception e) {
}
}
20. 20
a. Double klik pada button keluar, dan ketikkan script seperti berikut:
private void btKeluarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
dispose();
}
b. Double klik pada button tambah, dan ketikkan script seperti berikut:
private void btTambahActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
kosong();
tampilKodeAnggota();
btSimpan.setEnabled(true);
btHapus.setEnabled(false);
btUbah.setEnabled(false);
btBatal.setEnabled(true);
}
c. Double klik pada button batal, dan ketikkan script seperti berikut:
private void btBatalActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
kosong();
btTambah.setEnabled(true);
btSimpan.setEnabled(false);
btHapus.setEnabled(false);
btUbah.setEnabled(false);
btBatal.setEnabled(false);
}
d. Double klik pada button simpan, dan ketikkan script seperti berikut:
private void btSimpanActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if (txtKode.getText().isEmpty() || txtNama.getText().isEmpty() ||
txtTmptLahir.getText().isEmpty() ||
txtTglLahir.getText().isEmpty() ||
cmbJk.getSelectedItem().equals(null) ||
txtAlamat.getText().isEmpty() ||
cmbAgama.getSelectedItem().equals(null) ||
txtPekerjaan.getText().isEmpty() ||
txtTelp.getText().isEmpty()) {
JOptionPane.showMessageDialog(null, "Field Tidak Boleh Kosong");
txtNama.requestFocus();
} else {
Anggota a = new Anggota(txtKode.getText(),txtNama.getText(),
21. 21
txtTmptLahir.getText(),txtTglLahir.getText(),
cmbJk.getSelectedItem().toString(), txtAlamat.getText(),
cmbAgama.getSelectedItem().toString(),
txtPekerjaan.getText(), txtTelp.getText());
ManajerAnggota ma = new ManajerAnggota();
int i = ma.INSERT(a);
if (i == 1) {
JOptionPane.showMessageDialog(null, "Simpan Data Berhasil");
tampilTabel();
kosong();
txtNama.requestFocus();
btTambah.setEnabled(true);
btSimpan.setEnabled(false);
btUbah.setEnabled(false);
btHapus.setEnabled(false);
} else {
JOptionPane.showMessageDialog(null, "Data gagal Disimpan");
kosong();
txtNama.requestFocus();
btTambah.setEnabled(true);
btSimpan.setEnabled(false);
btUbah.setEnabled(false);
btHapus.setEnabled(false);
}
}
}
e. Double klik pada button ubah, dan ketikkan script seperti berikut:
private void btUbahActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if (txtKode.getText().isEmpty() || txtNama.getText().isEmpty() ||
txtTmptLahir.getText().isEmpty() ||
txtTglLahir.getText().isEmpty() ||
cmbJk.getSelectedItem().equals(null) ||
txtAlamat.getText().isEmpty() ||
cmbAgama.getSelectedItem().equals(null) ||
txtPekerjaan.getText().isEmpty() ||
txtTelp.getText().isEmpty()) {
JOptionPane.showMessageDialog(null, "Field Tidak Boleh Kosong");
txtNama.requestFocus();
} else {
Anggota a = new Anggota(txtKode.getText(),txtNama.getText(),
txtTmptLahir.getText(),txtTglLahir.getText(),
cmbJk.getSelectedItem().toString(), txtAlamat.getText(),
22. 22
cmbAgama.getSelectedItem().toString(),
txtPekerjaan.getText(), txtTelp.getText());
ManajerAnggota ma = new ManajerAnggota();
int i = ma.UPDATE(a);
if (i == 1) {
JOptionPane.showMessageDialog(null, "Ubah Data Berhasil");
tampilTabel();
kosong();
txtNama.requestFocus();
btTambah.setEnabled(true);
btSimpan.setEnabled(false);
btUbah.setEnabled(false);
btHapus.setEnabled(false);
} else {
JOptionPane.showMessageDialog(null, "Data Gagal Diubah");
kosong();
txtNama.requestFocus();
btTambah.setEnabled(true);
btSimpan.setEnabled(false);
btUbah.setEnabled(false);
btHapus.setEnabled(false);
}
}
}
f. Double klik pada button hapus, dan ketikkan script seperti berikut:
private void btHapusActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if (txtKode.getText().isEmpty() || txtNama.getText().isEmpty() ||
txtTmptLahir.getText().isEmpty() ||
txtTglLahir.getText().isEmpty() ||
cmbJk.getSelectedItem().equals(null) ||
txtAlamat.getText().isEmpty() ||
cmbAgama.getSelectedItem().equals(null) ||
txtPekerjaan.getText().isEmpty() ||
txtTelp.getText().isEmpty()) {
JOptionPane.showMessageDialog(null, "Pilih Data Yang Akan
Dihapus!");
txtNama.requestFocus();
} else {
if (JOptionPane.showConfirmDialog(null, "Apakah Anda Yakin?",
"Peringatan", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
ManajerAnggota ma = new ManajerAnggota();
ma.DELETE(txtKode.getText());
JOptionPane.showMessageDialog(null, "Hapus Data Berhasil");
23. 23
tampilTabel();
kosong();
txtKode.requestFocus();
btSimpan.setEnabled(false);
btHapus.setEnabled(false);
btUbah.setEnabled(false);
btBatal.setEnabled(false);
btTambah.setEnabled(true);
} else {
JOptionPane.showMessageDialog(null, "Hapus Data Gagal");
kosong();
btSimpan.setEnabled(false);
btHapus.setEnabled(false);
btUbah.setEnabled(false);
btBatal.setEnabled(false);
btTambah.setEnabled(true);
}
}
}
g. Klik pada tabel di form, lalu pada tab Events pilih mouseClicked pilih
tblAnggotaMouseClicked.
Gambar 18. Tabel event mouseClicked
Selanjutnya ketikkan script seperti berikut:
private void tblAnggotaMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
int baris = tblAnggota.getSelectedRow();
txtKode.setText(tblAnggota.getModel().getValueAt(baris, 0).toString());
txtNama.setText(tblAnggota.getModel().getValueAt(baris, 1).toString());
txtTmptLahir.setText(tblAnggota.getModel().getValueAt(baris, 2).toString());
txtTglLahir.setText(tblAnggota.getModel().getValueAt(baris, 3).toString());
cmbJk.setSelectedItem(tblAnggota.getModel().getValueAt(baris, 4).toString());
txtPekerjaan.setText(tblAnggota.getModel().getValueAt(baris, 7).toString());
25. 25
DAFTAR PUSTAKA
Aji. (2016). “JDBC (Java Database Connectivity)”. Diakses dari
http://ismuhaji.blog.pcr.ac.id/2016/05/06/jdbc/ pada 6 Juli 2017.
Anonim. (2012). “Kelas Database pada Java (JDBC)”. Diakses dari
http://dkakunsi.blogspot.co.id/2012/05/kelas-database-pada-java-jdbc.html pada 7
Juli 2017.
Pripanggalin, Muhammad W. (2013). “Sistem Informasi Kependudukan dengan Java dan
MySQL”. Diakses dari https://mwpripanggalih.blogspot.co.id/2013/07/sistem-
informasi-kependudukan-dengan.html?showComment=1499393054772#c61408921
12394094485 pada 7 Juli 2017.