Menampilkan Isi Database ke JTable Netbeans

by Unknown  |  in Tutorial at  Selasa, Januari 20, 2015

 
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
mysql netbeans, java database, database, java, sistem informasi, input 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();
    }           
}

mysql netbeans, java database, database, java, sistem informasi, input data
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.
mysql netbeans, java database, database, java, sistem informasi, input data
3. Ubah variable name pada setiap komponen (klik kanan--> change variable name)
mysql netbeans, java database, database, java, sistem informasi, input data
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(); 
mysql netbeans, java database, database, java, sistem informasi, input data
7. Selanjutnya buat sebuah fungsi baru dengan nama "semuadata" (private void semua data).
mysql netbeans, java database, database, java, sistem informasi, input 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());
        } 
mysql netbeans, java database, database, java, sistem informasi, input data
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".
mysql netbeans, java database, database, java, sistem informasi, input data
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());
        } 
mysql netbeans, java database, database, java, sistem informasi, input data
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).
mysql netbeans, java database, database, java, sistem informasi, input data
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();".
mysql netbeans, java database, database, java, sistem informasi, input data
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.
mysql netbeans, java database, database, java, sistem informasi, input data
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.
mysql netbeans, java database, database, java, sistem informasi, input data
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. 

G+

Jika Anda menyukai Artikel di blog ini, Silahkan klik disini untuk berlangganan gratis via email, dengan begitu Anda akan mendapat kiriman artikel setiap ada artikel yang terbit di compi gaul
feedcount

29 komentar:

  1. Terima kasih agan Arif, semoga artikel ini bisa membantu :)

    BalasHapus
  2. mas gimana caranya kalo mau ngambil data dari dua tabel berbeda dalam satu database

    mohon pencerahanya,ane masih newbie banget

    BalasHapus
    Balasan
    1. sebelumnya dari ke-2 tabel database tersebut mau di tampilin dalam 1 Jtable, atau 2 Jtable ??

      Hapus
    2. Komentar ini telah dihapus oleh pengarang.

      Hapus
  3. Kok pas di syntax ini tabel.setModel(data); error yah padahal udah sesuai dengan jframe yang saya buta. mohon pencerahannya kak

    BalasHapus
    Balasan
    1. coba 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"

      Hapus
  4. Mas,,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

    BalasHapus
  5. Halo. 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.

    BalasHapus
  6. Udah 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..!

    BalasHapus
    Balasan
    1. terima 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.

      Hapus
  7. mas gimana caranya menampilkan isi database nya satu persatu tidak langsung semua ditampilkan? mohon pencerahannya mas

    BalasHapus
  8. mas 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."

    BalasHapus
    Balasan
    1. Sebenarnya 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..
      terima kasih.

      Hapus
  9. Terimakasih, sangat membantu :)

    BalasHapus
  10. Gan..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

    BalasHapus
    Balasan
    1. kalo 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.
      semoga membantu :)

      Hapus
  11. tnks gan sangat membantu....ditunggu info menarik lainnya

    BalasHapus
  12. Tolong Bantuannya Min ( fikiefendi100@gmail.com ).

    Saya 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());
    }
    }

    BalasHapus
  13. Assalamu 'alaikum saya sudah mengikuti tutorial diatas, saat aplikasinya dijalankan, kenapa datanya tidak tampil yah?

    BalasHapus
  14. mohon 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

    BalasHapus
  15. tidak ada yang error, tapi masih ga bisa nampil data
    String 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

    BalasHapus
  16. agan, caranya manggil fungsi semua data gimana ya?

    BalasHapus
  17. gan kalo misalnya gak pake jframe yang dari drag n drop tapi pake coding, apakah sama caranya?

    BalasHapus
  18. mas yudha mau tanya nih,progam udah gk ada eror nya tp ketika saya klik tampil semua data keluar tulisan seperti ini :

    error:com.mysql.JDBC4Connection be cast to java.sql.Statement

    mohon pencerahannya mas yudha :)

    BalasHapus
  19. mas gimana yah kalo nginput data nya ke dua tabel di databasenya ??

    BalasHapus
    Balasan
    1. Coba proses inputnya dibikin double gan, jadi seperti ini :

      st = 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");

      Hapus
  20. sangat membantu min..kembangkan lagi tentang databasenya

    BalasHapus

Proudly Powered by Blogger.