Pada artikel sebelumnya saya telah membahas tutorial tentang bagaimana cara meng inputkan beberapa data dari frame netbeans ke dalam database MySQL. Dan untuk artikel kali ini saya akan mencoba membahas masalah lanjutan dari artikel sebelumnya DISINI, yaitu tentang bagaimana cara untuk menampilkan isi dari table database ke table yg ada pada frame netbeans.
Seperti pada aturannya setiap kali kita ingin membuat sebuah program yg berhubungan dengan database, kita memerlukan sebuah class koneksi agar projects yg kita jalankan dan database yg ada bisa saling terintegrasi. Langsung saja berikut akan saya sajikan beberapa tutorial bagaimana cara
untuk menampilkan isi database ke dalam jtable netbeans.
Dikarenakan ini adalah tutorial lanjutan dari postingan sebelumnya, maka saya akan menggunakan database yg sama dan pada package yg sama dengan yg saya gunakan pada tutorial sebelumnya DISINI.
Ini adalah tampilan database dengan nama table "datamahasiswa", yg mana telah terisikan 3 buah data
Ini adalah class koneksi yg saya gunakan.
package mahasiswa;
/**
*
* @author yudhaN
*/
import java.sql.Connection;
import java.sql.DriverManager;
import javax.swing.JOptionPane;
public class koneksi implements key {
Connection con;
public koneksi(){
String id, pass, driver, url;
id = "root";
pass = "";
driver = "com.mysql.jdbc.Driver";
url = "jdbc:mysql://localhost:3306/mahasiswa";
try{
Class.forName(driver).newInstance();
con = DriverManager.getConnection(url,id,pass);
if (con==null){
JOptionPane.showMessageDialog (null,"GAGAL");
}else{
JOptionPane.showMessageDialog(null,"Koneksi Berhasil");
}
}catch (Exception e){
System.out.println(""+e.getMessage());
}
}
public static void main(String[]args){
koneksi k=new koneksi();
}
}
1. Buatlah sebuah frame baru dengan nama "tabledata".(klik kanan--> new--> jframe form).
2. kemudian tarik beberapa komponen dari menu palette, 2 button dan 2 table. mengapa kita membutuhkan 2 table, disini saya akan memberikan contoh yg mana table 1 adalah menampilkan semua kolom yg ada pada database, dan pada table 1 nya hanya akan menampilkan beberapa data kolom saja, susun komponennya seperti berikut.
3. Ubah variable name pada setiap komponen (klik kanan--> change variable name)
4. Masuk ke lembar "source code", import-kan beberapa package berikut.
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
5. kemudan tepat dibawah kode "public class tabledata extends javax.swing.JFrame", ketikan kode berikut.
Statement st;
ResultSet rs;
koneksi koneksi;
Kode tersebut berfungsi untuk menginisialisasikan package resutset, statement, dan memanggil fungsi pada class koneksi yg telah kita buat sebelumnya,class koneksi disini akan terus kita gunakan jika frame yg kita buat ada hubungannya dengan database, sehingga kita perlu mengkoneksikannya terlebih dahulu.
6. tambahkan juga kode berikut tepat dibawah "public tabledata()".
koneksi = new koneksi();
7. Selanjutnya buat sebuah fungsi baru dengan nama "semuadata" (private void semua data).8. Kemudian didalam void "semuadata", pastekan kode berikut.
Object header[]={"NPM","NAMA","UMUR","FAKULTAS","PRODI"};
DefaultTableModel data = new DefaultTableModel(null, header);
tabel1.setModel(data);
String sql = "select * from datamahasiswa";
try {
st = koneksi.con.createStatement();
rs = st.executeQuery(sql);
while(rs.next()){
String kolom1 = rs.getString(1);
String kolom2 = rs.getString(2);
String kolom3 = rs.getString(3);
String kolom4 = rs.getString(4);
String kolom5 = rs.getString(5);
String kolom[] = {kolom1, kolom2, kolom3, kolom4, kolom5};
data.addRow(kolom);
}
}catch (Exception e){
JOptionPane.showMessageDialog(null,"error :"+e.getMessage());
}
Penjelasan Kode :-. Object header[]={"NPM","NAMA","UMUR","FAKULTAS","PRODI"} = kode ini berfungsi sebagai nama-nama dari kolom pada table jframe, nama-nama tersebut disimpan kedalam array.
-. DefaultTableModel data = new DefaultTableModel(null, header) = dari package DefaultTableModel kita membuat model table baru dengan nama "data"
-. tabel1.setModel(barang) = tabel1 adalah nama variable dari table pada jframe.
-. select * from datamahasiswa = ini adalah bahasa SQL yg berarti kita memilih semua kolom yg ada pada table datamahasiswa pada database.(tanda bintang artinya memilih semua kolom pada table).
-. String kolom1 = rs.getString(1) = merpakan fungsi untuk mengambil nilai pada setiap kolom yg ada pada table, mulai dari kolom 1 hingga lanjut ke kolom-kolom seterusnya. dan kolom ini disimpan kedalam array kolom[], yg kemudian array kolom yg telah berisi data-data tersebut akan tambahkan ke dalam baris model table "data".
Penting : object pada kolom header harus sama banyaknya dengan pengambilan nilai pada kode String kolom1 = rs.getString(1), yg mana pada fungsi diatas kita melakukan pengambilan hingga kolom ke-5, dan jumlah object pada array header juga ada 5, dan object-object pada array header juga harus berurutan sesuai dengan yg ada pada table database.
9. Ulangi langkah ke-7, buat sebuah sebuah fungsi baru lagi dengan nama "tidaksemuadata".
Dan pastekan kode berikut ke dalam fungsi tersebut.
Object header[]={"NPM","NAMA","UMUR"};
DefaultTableModel data = new DefaultTableModel(null, header);
tabel2.setModel(data);
String sql = "select NPM, Nama, Umur from datamahasiswa";
try {
st = koneksi.con.createStatement();
rs = st.executeQuery(sql);
while(rs.next()){
String kolom1 = rs.getString(1);
String kolom2 = rs.getString(2);
String kolom3 = rs.getString(3);
String kolom[] = {kolom1, kolom2, kolom3};
data.addRow(kolom);
}
}catch (Exception e){
JOptionPane.showMessageDialog(null,"error :"+e.getMessage());
}
Penjelasan Kode :Dari penjelasan kode di langkah ke-8, tidak terlalu banyak yg berbeda, hanya saja pada object header nya, yg mana pada object header pada langkah ke-9 ini hanya saya isi beberapa kolom saja sebagai sample.
10. Balik ke lembar "design", buat action pada button "tampilkan semua" dan pada button "tampilkan sebagian". (klik kanan pada button--> event--> action--> actionperformed).
11. Maka kita akan beralih ke lembar source code, disini pada action button "tampilkan semua", panggil fungsi "semua data();". Dan pada action button tampilkan sebagian, panggil fungsi "tidaksemuadata();".
Sekarang coba kita jalankan frame yg barusan kita buat, jika berhasil pada saat klik tombol "tampilkan semua" maka pada tabel1 akan memunculkan semua data yg ada pada database, dan jika kita klik tombol "tampilkan sebagian", maka pada table 2 akan muncul sebagian data yg telah kita pilih dari database.
Jika kalian mengikuti tutorial ini dari artikel sebelumnya maka kalian bisa menggabungkan ke-2 tutorial ini dalam 1 frame, sehingga tampilannya nanti akan seperti berikut.
Alur Program
Frame diatas adalah gabungan 2 fungsi yaitu menginputkan data dan menampilkan data. Algoritma nya adalah kita buat 2 fungsi terlebih dahulu, fungsi simpan dan fungsi tampil, dan ke dua fungsi ini di panggil pada action tombol simpan, sehingga pada saat frame dijalankan, isikan semua data terlebih dahulu, kemudian dengan meng-klik tombol simpan, maka program akan menjalankan fungsi simpan, setelah data berhasil disimpan, program akan menjalankan fungsi selanjutnya, yatu fungsi tampil, sehingga data yg telah ada dan data yg barusan disimpan akan tertampil pada table yg telah
sediakan.
kok susah sih
BalasHapussusah nya dibagian mana ya ?
HapusTerima kasih agan Arif, semoga artikel ini bisa membantu :)
BalasHapusmas gimana caranya kalo mau ngambil data dari dua tabel berbeda dalam satu database
BalasHapusmohon pencerahanya,ane masih newbie banget
sebelumnya dari ke-2 tabel database tersebut mau di tampilin dalam 1 Jtable, atau 2 Jtable ??
HapusKomentar ini telah dihapus oleh pengarang.
HapusKok pas di syntax ini tabel.setModel(data); error yah padahal udah sesuai dengan jframe yang saya buta. mohon pencerahannya kak
BalasHapuscoba di cek lagi sist kali , tabel.setModel(data), nama "tabel" disini adalah nama variabel dari jtable pada frame, dan "(data)" adalah nama dari model yg sebelumnya telah saya atur di "DefaultTableModel data = new DefaultTableModel"
HapusMas,,aq sudah ikuti tutorialnya,,sudah tidak ada yg error,,kolom yg mau aku tampilin kn ada 15,,tp kok yg muncul cuma 5 ya..?? Aq bingung.. Oh iya,,kalau mau nampilin data dari 2 tabel yang berbeda ke dalam 1 jtable.. Misal aq mau gabungin data dari tabel mahasiswa & tabel dosen biar tampil di 1jtable.. gimana ya mas caranya..?? .Trims
BalasHapusHalo. Tutorial yang sangat bermanfaat. Saya mau tanya, untuk membuat program menghapus data apakah sudah dibuat tutorialnya? Kalau belum, tolong dijelaskan sedikit cara menghapus datanya. Terima kasih.
BalasHapusUdah ane coba gan. sukses.! makasih buat ilmunya. di tutorial ini ente bikin java terkesan gampil buat dipelajari. like it. btw mau nanya nih. kenapa disaat ane ga ngisi apa2 di text field. pas di simpan seharusnya data ga masuk ke database. tpi ko ini tetap masuk y. coding mana yang harus di perbaiki gan? mohon bantuannya. makasih agan yudha..!
BalasHapusterima kasih atas komentar nya, untuk masalah agan sebenarnya itu bukan "harus diperbaiki" tetapi untuk mengatasi masalah tersebut memang ada fungsi yang harus ditambahakan lagi agar ketika ada field yang kosong maka tombol simpan akan mengeluarkan pesan yang menyatakan bahwa masih terdapat field yang kosong, dan fungsi save tidak akan benar2 berjalan jika masih ada field yang kosong. Mungkin di lain kesempatan akan saya bagikan trik dan fungsi nya.
Hapusmas gimana caranya menampilkan isi database nya satu persatu tidak langsung semua ditampilkan? mohon pencerahannya mas
BalasHapusmas minta source code sama screen shoot yang bagian ini : "Jika kalian mengikuti tutorial ini dari artikel sebelumnya maka kalian bisa menggabungkan ke-2 tutorial ini dalam 1 frame, sehingga tampilannya nanti akan seperti berikut."
BalasHapusSebenarnya pada bagian itu adalah tugas untuk akhir tutorial ini gan, jadi gak bisa ngasih, hehe itung-itung supaya agan bisa berlatih, petunjuknya juga udah saya jelasin pada alur program, insyaallah kalo agan memahami tutorial ini dari part sebelumnya pasti bisa kok, karna pada bagian itu juga hanya menggabungkan cara pada part 1 dengan part 2 dalam 1 form aja, mohon maaf sebelumnya..
Hapusterima kasih.
Terimakasih, sangat membantu :)
BalasHapusGan..kalau inputan dan tabel nya beda frame bagaimana..apakah kita buat class public dulu untuk deklarasi di (frame1) inputan..?dan untuk button simpan kita buat action untuk simpan ke db dan tampil ke tabel (frame2)..mungkin ada tutor nya..mksh
BalasHapuskalo untuk inputan dan tabel yang berbeda bisa kok gan, tutorial pada artikel sebelumnya buat saja di frame1, kemudian tutorial di artikel ini, buat di frame2, gx ada kodingan yang perlu di ganti kok, yang penting koneksi antar frame ke database nya lancar.
Hapussemoga membantu :)
tnks gan sangat membantu....ditunggu info menarik lainnya
BalasHapusTolong Bantuannya Min ( fikiefendi100@gmail.com ).
BalasHapusSaya punya database ( mahasiswa ) dan table ( siswa ("nim","namaSiswa")).
Nah disini saya mau menampilkan data sesuai dengan nim yang diinputkan pada (textField).
Programnya sudah jadi, ketika input nim pertama data muncul pada baris pertama. nah tapi masalahnya ketika input nim yang kedua ehh data bukannya nambah ke baris ke 2, tapi malah mengganti datan di baris 1 ... jadi barisnya nggak nambah-nambah hanya 1 baris.
Scripnya masih sama kayak di atas ..
============================================================================
private void semuadata() {
Object header[]={"Nim","Nama"};
DefaultTableModel data = new DefaultTableModel(null, header);
Table1.setModel(data);
String sql = "select * from siswa where nim = '"+inputNim.getText()+"'";
try {
st = koneksi.con.createStatement();
rs = st.executeQuery(sql);
while(rs.next()){
String kolom1 = rs.getString(1);
String kolom2 = rs.getString(2);
String kolom[] = {kolom1, kolom2};
data.addRow(kolom);
}
}
catch (Exception e){
JOptionPane.showMessageDialog(null,"error :"+e.getMessage());
}
}
Assalamu 'alaikum saya sudah mengikuti tutorial diatas, saat aplikasinya dijalankan, kenapa datanya tidak tampil yah?
BalasHapusmohon bantuannya, itu kan menampilkan data dari database ke dalam jTable dalam satu jFrame kan. Kalau mau di tampilkan ke dalam jFrame lain bagaimanaya kak ? jadi jFrame untuk input datanya sendiri dan jFrame untuk menampilkan datanya sendiri. mohon bantuannya kak. terimakasih
BalasHapustidak ada yang error, tapi masih ga bisa nampil data
BalasHapusString sql = "select * from datamahasiswa";
itu juga udah diganti sesuai nama tabel
koneksi berhasil dan
input berhasil masuk database
tapi buat nampilin malah muncul pesan JOptionPane yang error
agan, caranya manggil fungsi semua data gimana ya?
BalasHapusgan kalo misalnya gak pake jframe yang dari drag n drop tapi pake coding, apakah sama caranya?
BalasHapusmas yudha mau tanya nih,progam udah gk ada eror nya tp ketika saya klik tampil semua data keluar tulisan seperti ini :
BalasHapuserror:com.mysql.JDBC4Connection be cast to java.sql.Statement
mohon pencerahannya mas yudha :)
mas gimana yah kalo nginput data nya ke dua tabel di databasenya ??
BalasHapusCoba proses inputnya dibikin double gan, jadi seperti ini :
Hapusst = koneksi.con.createStatement();
String sql1 = "insert into tabel1 values('"+NPM.getText()+"','"+NamaM.getText()+"','"+UmurM.getText()+"','"+Fakult.getText()+"','"+Prodi.getText()+"')";
String sql2 = "insert into tabel2 values('"+NPM.getText()+"','"+NamaM.getText()+"','"+UmurM.getText()+"','"+Fakult.getText()+"','"+Prodi.getText()+"')";
st.executeUpdate(sql1);
st.executeUpdate(sql2);
JOptionPane.showMessageDialog(null,"Data Berhasil Disimpan");
sangat membantu min..kembangkan lagi tentang databasenya
BalasHapus