Selamat datang di blog Mari belajar coding. Tutorial kali ini kita akan
belajar membuat sebuah kotak pencarian untuk mencari data pada tabel yang di
tampilkan pada aplikasi yang kita buat dengan menggunakan GUI java
Netbeans.
Seperti tutorial sebelumnya
membuat aplikasi CRUD sederhana menggunakan Java Netbeans, kita persiapkan databasenya terlebih dahulu. Buat database bernama
penjualan dan satu tabel bernama produk.
CREATE DATABASE `penjualan`;
USE `penjualan`;
CREATE TABLE `produk` (
`IDProduk` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
`KodeProduk` varchar(32) UNIQUE KEY,
`NamaProduk` varchar(255),
`Satuan` varchar(255),
`Harga` int(11),
`Stok` int(11) ,
`CreateDate` datetime
);
Buka aplikasi Netbeans IDE kemudian buat project java application baru
bernama Penjualan
Klik kanan pada source packages penjualan, pilih new java
class.
Buat file bernama koneksi untuk menghubungkan aplikasi dengan
database.
Tambahkan library mysql jdbc driver dengan cara klik kanan pada
libraries -> add library ->
MySQL JDBC Driver
Edit file koneksi.java seperti dibawah ini.
package penjualan;
import java.sql.*;
import javax.swing.JOptionPane;
/**
*
* @author IT3-PC
*/
public class koneksi {
private static Connection KoneksiDatabse;
public static Connection koneksiDB() throws SQLException {
try {
String DB ="jdbc:mysql://localhost/penjualan";
String user="root";
String pass="";
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
KoneksiDatabse = (Connection) DriverManager.getConnection(DB,user,pass);
} catch (Exception e) {
JOptionPane.showMessageDialog(null,"Tidak ada koneksi","Error",
JOptionPane.INFORMATION_MESSAGE);
System.err.println(e.getMessage());
System.exit(0);
}
return KoneksiDatabse;
}
}
Buat file Jframe Form dengan klik kanan pada source packages penjualan
pilih New->JFrame Form, isikan ClassName dengan nama cariProduk.
Buat tampilan GUI seperti gambar dibawah ini dengan drag and drop palette di
sisi kanan.
Ganti variabel name table dengan nama jTableProduk.
Pilih tabs source untuk mengedit kode program, tambahkan import module
setelah baris package penjualan pertama.
package penjualan;
import java.sql.*;
import java.awt.*;
import javax.swing.table.DefaultTableModel;
Buat variabel untuk mendeklarasikan tabel dibawah public class
cariProduk.
Buat private void tampildata untuk menampilkan semua data
barang.
private void tampilData(){
try{
Object[] judul_kolom = {"Kode Barang", "Nama Barang", "Satuan", "Harga", "Stok", "Create Date"};
tabModel=new DefaultTableModel(null,judul_kolom);
jTableProduk.setModel(tabModel);
Connection conn=(Connection)koneksi.koneksiDB();
Statement stt=conn.createStatement();
tabModel.getDataVector().removeAllElements();
RsProduk=stt.executeQuery("SELECT * from produk ");
while(RsProduk.next()){
Object[] data={
RsProduk.getString("KodeProduk"),
RsProduk.getString("NamaProduk"),
RsProduk.getString("Satuan"),
RsProduk.getString("Harga"),
RsProduk.getString("Stok"),
RsProduk.getString("CreateDate")
};
tabModel.addRow(data);
}
} catch (Exception ex) {
System.err.println(ex.getMessage());
}
}
Buat private void cariData untuk menampilkan data barang berdasarkan
pencarian.
private void cariData(String key){
try{
Object[] judul_kolom = {"Kode Barang", "Nama Barang", "Satuan", "Harga", "Stok", "Create Date"};
tabModel=new DefaultTableModel(null,judul_kolom);
jTableProduk.setModel(tabModel);
Connection conn=(Connection)koneksi.koneksiDB();
Statement stt=conn.createStatement();
tabModel.getDataVector().removeAllElements();
RsProduk=stt.executeQuery("SELECT * from produk WHERE KodeProduk LIKE '%"+key+"%' OR NamaProduk LIKE '%"+key+"%' OR Satuan LIKE '%"+key+"%'");
while(RsProduk.next()){
Object[] data={
RsProduk.getString("KodeProduk"),
RsProduk.getString("NamaProduk"),
RsProduk.getString("Satuan"),
RsProduk.getString("Harga"),
RsProduk.getString("Stok"),
RsProduk.getString("CreateDate")
};
tabModel.addRow(data);
}
} catch (Exception ex) {
System.err.println(ex.getMessage());
}
}
Klik kanan pada textfield cari pilih
Event->Key->KeyReleased.
String key=jTextPencarian.getText();
System.out.println(key);
if(key!=""){
cariData(key);
}else{
tampilData();
}
Untuk menampilkan semua data produk saat program dijalankan pertama kali, tambahkan tampildata() dibawah initComponents().