2. Selanjutnya adalah pembuatan table pada kontak_db dengan nama tb_kontak. Masukkan
nama tabel dan jumlah field.
5. Beri Nama Project dengan Buku Telepon Sederhana. Saya menonaktifkan pembuatan
Main Class. Setelah selesai, Klik Finish.
6. Selanjutnya Buat Form, dengan cara Klik Kanan pada Project -> New -> JFrame Form
Nilai
Buku Telepon Sederhana
false
Buku Telepon Sederhana
Titled Border (Title = Kontak)
Nama
TxtNama
Telepon
TxtTelepon
e-mail
jTextField3
jLayeredPanel2
jButton1
jButton2
jButton3
jLayeredPanel3
jTable1
jLayeredPanel4
jLabel5
jComboBox1
jTextField4
text
Variable Name
border
text
Variable Name
text
Variable Name
text
Variable Name
border
Variable Name
border
text
model
Variable Name
text
Variable Name
TxtEmail
Titled Border (Title = Tombol)
Simpan
BtnSimpan
Ubah
BtnUbah
Hapus
BtnHapus
Titled Border (Title = Daftar Kontak)
TblKontak
Titled Border (Title = Cari Kontak)
Cari berdasarkan
nama
telepon
e_mail
CmbCari
TxtCari
Jika bingung dalam memberi nilai pada Variable Name, berikut adalah caranya.
Klik Kanan pada Komponen -> Change Variable Name
9. Untuk dapat terkoneksi dengan database, pada Java telah disediakan Library MySQL
JDBC Driver. Kita tinggal meng-import-nya saja. Klik Kanan pada folder Libraries yang
ada Pada Project. Klik tombol Import. Cari Library MySQL JDBC Driver, Kemudian
Klik Import Library. Klik Add Library.
10. Selanjutnya buat Package baru dengan cara Klik Kanan pada Project -> New -> Java
Package. Beri nama Tabel. Klik Finish.
11. Buat Class baru pada Package Tabel. Klik Kanan pada Package Tabel -> New -> Java
Class. Beri nama DataKontak. Klik Finish.
package Tabel;
/**
*
* @author TheGunk
*/
public class DataKontak {
private String nama, telepon, e_mail;
public DataKontak(){
}
public String getE_mail() {
return e_mail;
}
public void setE_mail(String e_mail) {
this.e_mail = e_mail;
}
public String getNama() {
return nama;
}
public void setNama(String nama) {
this.nama = nama;
}
public String getTelepon() {
return telepon;
}
public void setTelepon(String telepon) {
this.telepon = telepon;
}
}
class TabelDataKontak:
package Tabel;
/**
*
* @author TheGunk
*/
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;
public class TabelDataKontak extends AbstractTableModel{
private List<DataKontak> list = new ArrayList<DataKontak>();
@Override
public int getRowCount() {
return list.size();
}
@Override
public int getColumnCount() {
return 3;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
switch(columnIndex){
case 0 : return list.get(rowIndex).getNama();
case 1 : return list.get(rowIndex).getTelepon();
case 2 : return list.get(rowIndex).getE_mail();
default : return null;
}
}
@Override
public String getColumnName(int kolom){
switch(kolom){
case 0 : return "Nama";
case 1 : return "HP/Telepon";
case 2 : return "e-mail";
default : return null;
}
}
public void add(DataKontak kontak){
list.add(kontak);
fireTableRowsInserted(getRowCount(), getColumnCount());
}
public void delete(int i, int baris){
list.remove(i);
fireTableRowsDeleted(i, baris);
}
public DataKontak get(int baris){
return (DataKontak) list.get(baris);
}
}
Tambahkan Script berikut pada class FrameKontak:
import Tabel.DataKontak;
import Tabel.TabelDataKontak;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class FrameKontak extends javax.swing.JFrame{
}
String sql = "select * from tb_kontak";
ResultSet rs = script.executeQuery(sql);
while (rs.next( )){
DataKontak kontak = new DataKontak( );
kontak.setNama(rs.getString(1));
kontak.setTelepon(rs.getString(2));
kontak.setE_mail(rs.getString(3));
ModelDataKontak.add(kontak);
}
}
catch(SQLException ex){
System.err.print(ex);
}
}
private void bersih( ){
TxtNama.setText(null);
TxtTelepon.setText(null);
TxtEmail.setText(null);
TxtCari.setText(null);
BtnSimpan.setEnabled(true);
BtnUbah.setEnabled(false);
BtnHapus.setEnabled(false);
}
private void tabel( ){
TblKontak.getSelectionModel( ).addListSelectionListener(new ListSelectionListener( ) {
@Override
public void valueChanged(ListSelectionEvent e) {
int baris = TblKontak.getSelectedRow( );
if(baris != -1){
DataKontak kontak = ModelDataKontak.get(baris);
TxtNama.setText(kontak.getNama( ));
TxtTelepon.setText(kontak.getTelepon( ));
TxtEmail.setText(kontak.getE_mail( ));
}
}
});
BtnSimpan.setEnabled(false);
BtnUbah.setEnabled(true);
BtnHapus.setEnabled(true);
}
try{
String sql = "delete from tb_kontak where"
+" nama = '"+TxtNama.getText()+"'";
bantu = script.executeUpdate(sql);
tampil( );
JOptionPane.showMessageDialog(null, "Kontak berhasil dihapus");
bersih( );
}
catch(SQLException ex){
System.err.print(ex);
}
}
}
private void cari( ){
int baris = TblKontak.getRowCount( );
String bantu = CmbCari.getSelectedItem( ).toString( );
for(int i=0; i<baris; i++){
ModelDataKontak.delete(i, baris);
}
try{
String sql = "select * from tb_kontak where "
+bantu+" like '%"+TxtCari.getText()+"%'";
ResultSet rs = script.executeQuery(sql);
while(rs.next( )){
DataKontak kontak = new DataKontak( );
kontak.setNama(rs.getString(1));
kontak.setTelepon(rs.getString(2));
kontak.setE_mail(rs.getString(3));
ModelDataKontak.add(kontak);
}
}
catch(SQLException ex){
System.err.print(ex);
}
}
Catatan:
Pada script di atas, terdapat script
koneksi =
DriverManager.getConnection("jdbc:mysql://localhost/kontak_db","root","");
saya memberikan nilai username=root, dan password tidak saya isi menyesuaikan konfigurasi
phpmyadmin. Silahkan Anda sesuaikan dengan konfigurasi phpmyadmin Anda.
Untuk menambahkan fungsi masing-masing pada setiap tombol (button) yang kita desain,
dengan cara.
Klik kanan Button -> Events -> Action -> actionPerformed