Belajar CRUD Java Desktop Netbeans

Belajar CRUD Java Desktop Netbeans

Artikel yang akan saling berkaitan pada project ini :
  1. CRUD Java Desktop
  2. Pencarian Data Menggunakan Java Desktop
  3. Mencetak Laporan dengan Java Desktop
  4. Membuat Login dengan Java Desktop
CRUD atau Create, Read,Update,Delete merupakan sebuah dasar yang harus dikuasai terlebih dahulu sebelum anda membuat pemrograman basis data dalam skala yang lebih besar, karena apapun aplikasi yang dibuat pasti akan memuat CRUD tersebut.

Saat ini kita akan belajar membuat CRUD Java Desktop menggunakan Netbeans, database yang akan digunakan adalah mysql pada artikel berikut terdapat beberapa tahap yang akan kita lakukan diantaranya adalah :

  1. Membuat Database
  2. Membuat Project
  3. Membuat Koneksi Database
  4. Membuat Design Windows Form
  5. Membuat Proses Tampil Data (Read)
  6. Membuat Proses Simpan Data (Create)
  7. Membuat Proses Ubah Data (Update)
  8. Membuat Proses Hapus Data (Delete)

Membuat Database

Pemilihan Database atau RDBMS (Relationship Database Management System) sangatlah penting karena akan berpengaruh terhadap efektifitas dan kecepatan dala menjalankan setiap perintah. Banyak database yang dapat kita gunakan seperti Microsoft Access, MySQL,MariaDB, Postgres SQL, SQL Server, Oracle Database.

DBMS diatas teridiri dari yang berbayar dan juga gratis,salah satu yang berbayar misalnya Oracle Database, merupakan DBMS yang sangat powerfull tetapi juga mahal serta DBMS Oracle Database ini lebih cocok untuk aplikasi yang sangat besar seperti aplikasi e-commerce yang traffic nya sehari bisa mencapai ribuan. Dalam hal ini Oracle Database mempunyai kemampuan untuk menangani hal tersebut.

Selain Oracle database yang berbayar ada juga DBMS yang gratis yaitu MariaDB mempunyai kemampuan seperti MySQL dan perintah2 nya juga sangat mirip, cocok untuk aplikasi besar maupun aplikasi kecil.

Perlu diketahui bahwa RDBMS MySQL saat ini tidak open source lagi /  tidak gratis pemilik RDBMS tersebut semenjak 2010 sampai saat ini adalah Oracle Corporation yang merupakan pemilik yang sama dari DBMS Oracle Database. Sehingga sebenarnya DBMS yang include dari XAMPP adalah MariaDB bukan lagi MySQL. Namun perintah perintah nya sama persis karena pengembang baik MySQL ataupun MariaDB orang nya masih sama.

Pada proje ini buatlah database menggunakan mariaDB (bawaan XAMPP) berikan nama database dengan nama pos kemudian tambahkan sebuah table dengan nama barang, berikut adalah source SQL pembuatan database dan table :

CREATE DATABASE pos;
use pos;

CREATE TABLE barang (
  kode_barang varchar(20) PRIMARY KEY,
  nama_barang varchar(200) DEFAULT NULL,
  harga double NOT NULL,
  satuan varchar(20) DEFAULT NULL,
  stok double NOT NULL
);

Membuat Project

Buatlah project menggunakan netbeans caranya buka netbeans anda kemudian pilih menu File - New Project - Java Application

Belajar CRUD Java Netbeans


Selanjutnya pilih Next kemudian berikan nama projectnya pos kemudian buang checkbox Create Main Class karena kita tidak menggunakan nya. setelah itu klik Finish

Membuat Koneksi Database

untuk membuat koneksi tambahkan terlebih dahulu sebuah package dengan nama Konfigurasi setelah itu buatlah sebuah class baru dengan nama Koneksi.java masukan code berikut agar aplikasi yang kita buat dapat terkoneksi ke database :

package Konfigurasi;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

/**
 *
 * @author Jajang Nurjaman
 */
public class Koneksi {

    public static Connection getConnection() {
        Connection conn = null;
        String url = "jdbc:mysql://localhost:3306/pos";
        String user = "root";
        String password = "";
        try {
            conn = DriverManager.getConnection(url, user, password);
        } catch (SQLException e) {
            System.out.println(e);
        }
        return conn;
    }

    public static void main(String[] args) {
        try {
            Connection c = Koneksi.getConnection();
            System.out.println(String.format("Connected to database %s " + "successfully.", c.getCatalog()));
        } catch (SQLException e) {
            System.out.println(e);
        }
    }
}


Jika sudah sekarang coba tes koneksi yang telah dibuat dengan menekan tombol Shift+F6 atau bisa melalui menu Run - Run File hasilnya harus seperti berikut :
koneksi berhasil

Membuat Design Windows Form

Buatlah sebuah Package baru dengan nama Form untuk meletakkan Windows form yang akan kita design, tambahkan sebuah Windows dengan nama JFrame Form  pada package tadi kemudian berikan nama form_barang tambahkan beberapa komponen sehingga menjadi seperti berikut :

form data barang
Berikan penamaan variabel kepada komponen yang telah dimasukan, agar mudah diingat kita berikan penamaan sesuai dengan kegunaan nya masing-masing, seperti berikut :

  1. jTextField_kode_barang
  2. jTextField_nama_barang
  3. jTextField_harga
  4. jTextField_satuan
  5. jTextField_stok
  6. jTable_barang
  7. jButton_baru
  8. jButton_simpan
  9. jButton_edit
  10. jButton_hapus

Membuat Proses Tampil Data (Read)

untuk menampilkan data kita akan membuat fungsi agar dapat dipanggil secara berulang - ulang dan namun sebelum membuatnya kita perlu menambahkan/menyesuaikan header untuk pemanggilan library yang digunakan, berikut adalah header yang akan kita buat :
package Form;

import Konfigurasi.Koneksi;
import java.sql.Connection;
import java.sql.SQLException;
import javax.swing.table.DefaultTableModel;

Selanjutnya tambahkan  deklarasi variabel dan fungsi Tampil_data seperti berikut :
private DefaultTableModel DftTblModel_barang;
private String SQL; 
public void TampilData() {
        DftTblModel_barang = new DefaultTableModel();
        DftTblModel_barang.addColumn("KODE BARANG");
        DftTblModel_barang.addColumn("NAMA BARANG");
        DftTblModel_barang.addColumn("HARGA");
        DftTblModel_barang.addColumn("SATUAN");
        DftTblModel_barang.addColumn("STOK");
        jTable_barang.setModel(DftTblModel_barang);
        Connection conn = Koneksi.getConnection();
        try {
            java.sql.Statement stmt = conn.createStatement();
            SQL = "select * from barang";
            java.sql.ResultSet res = stmt.executeQuery(SQL);
            while (res.next()) {
                DftTblModel_barang.addRow(new Object[]{
                    res.getString("kode_barang"),
                    res.getString("nama_barang"),
                    res.getString("harga"),
                    res.getString("satuan"),
                    res.getString("stok")
                });
            }
        } catch (SQLException e) {
            System.out.println(e.getMessage());
        }
    }

jangan lupa tambahkan library MySQL JDBC Driver agar project yang kita buat dapat terkoneksi kedatabase dengan cara klik kanan Libraries->Add Library->MySQL JDBC Driver
Belajar CRUD Java Desktop Netbeans
Kemudian pilih MySQL JDBC Driver

Belajar CRUD Java Desktop Netbeans

Selanjutnya panggl fungsi yang telah dibuat di Konstruktor seperti berikut :
 public form_barang() {
        initComponents();
        this.TampilData();
    }

Sebelum dilakukan pengetesan tambahkan beberapa baris record kedalam tabel barang, agar ketika dijalankan jika berhasil maka data akan tampil. hasil setelah dijalankan seperti berikut :

Membuat Simpan Data


Untuk melakukan penyimpanan data tambahkan coding berikut pada event tombol simpan dengan cara klik kanan tombol simpan – Events – Action – ActionPerformed kemudian masukan coding berikut :
try {
            Connection conn = Koneksi.getConnection();
            PreparedStatement stmt = conn.prepareStatement("insert into barang(kode_barang, nama_barang, harga, satuan, stok) values(?,?,?,?,?)");
            stmt.setString(1, jTextField_kode_barang.getText());
            stmt.setString(2, jTextField_nama_barang.getText());
            stmt.setString(3, jTextField_harga.getText());
            stmt.setString(4, jTextField_satuan.getText());
            stmt.setString(5, jTextField_stok.getText());
            stmt.executeUpdate();
            JOptionPane.showMessageDialog(null, "Data berhasil disimpan", "Pesan", JOptionPane.INFORMATION_MESSAGE);
            TampilData();
        } catch (SQLException e) {
            System.out.println(e.getMessage());
        }

Membuat Edit Data

Sebelum melakukan edit data kita perlu memilih data mana yang akan diedit, untuk itu kita perlu menambahkan coding pada event table saat diklik agar muncul pada textfield berikut cara memberikan event pada saat table diklik : klik kanan table – Mouse – mouse click kemudian masukan coding berikut :

int baris = jTable_barang.getSelectedRow();
jTextField_kode_barang.setText(DftTblModel_barang.getValueAt(baris, 0).toString());
jTextField_nama_barang.setText(DftTblModel_barang.getValueAt(baris, 1).toString());
jTextField_harga.setText(DftTblModel_barang.getValueAt(baris, 2).toString());
jTextField_satuan.setText(DftTblModel_barang.getValueAt(baris, 3).toString());
jTextField_stok.setText(DftTblModel_barang.getValueAt(baris, 4).toString());
selanjutnya Untuk melakukan edit data tambahkan coding berikut pada event tombol edit dengan cara klik kanan tombol Edit – Events – Action – ActionPerformed kemudian masukan coding berikut :

try {
            Connection conn = Koneksi.getConnection();
            PreparedStatement stmt = conn.prepareStatement("update barang set nama_barang=?, harga=?, satuan=?, stok=? where kode_barang=?");
            stmt.setString(1, jTextField_nama_barang.getText());
            stmt.setString(2, jTextField_harga.getText());
            stmt.setString(3, jTextField_satuan.getText());
            stmt.setString(4, jTextField_stok.getText());
            stmt.setString(5, jTextField_kode_barang.getText());
            stmt.executeUpdate();
            JOptionPane.showMessageDialog(null, "Data berhasil diubah", "Pesan", JOptionPane.INFORMATION_MESSAGE);
            TampilData();
        } catch (SQLException e) {
            System.out.println(e.getMessage());
        }


Membuat Hapus Data

Sama halnya seperti edit data kita perlu melakukan pemilihan data mana yang akan dihapus, tapi karena sebelumnya kita telah menambahkan coding pilih data maka kita tidak perlu menambahkan coding lagi, langsung saja untuk melakukan penyimpanan data tambahkan coding berikut pada event tombol hapus dengan cara klik kanan tombol Hapus – Events – Action – ActionPerformed kemudian masukan coding berikut :

Connection conn = Koneksi.getConnection();
        int confirm = JOptionPane.showConfirmDialog(null, "Apakah anda yakin ingin menghapus data tersebut?", "Konfirmasi", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
        if (confirm == 0) {
            try {
                java.sql.PreparedStatement stmt = conn.prepareStatement("delete from barang where kode_barang ='" + jTextField_kode_barang.getText() + "'");
                stmt.executeUpdate();
                JOptionPane.showMessageDialog(null, "Data berhasil dihapus", "Pesan", JOptionPane.INFORMATION_MESSAGE);
                TampilData();
                jTextField_kode_barang.setText("");
                jTextField_nama_barang.setText("");
                jTextField_harga.setText("");
                jTextField_satuan.setText("");
                jTextField_stok.setText("");
                jTextField_kode_barang.requestFocus();
            } catch (SQLException e) {
                JOptionPane.showMessageDialog(null, "Data gagal di hapus" + e.getMessage(), "Pesan", JOptionPane.ERROR_MESSAGE);
            }
        }

untuk melakukan pencarian data silahkan buka artikel berikut : Pencarian data Java Desktop

5 komentar untuk "Belajar CRUD Java Desktop Netbeans"

Comment Author Avatar
Sebelumnya terima kasih atas atrikel nya ka, saya sedang belajar pemograman java, pada saat saya membuat koneksi.java, kemudain saya running programnya, muncul keterangan seperti ini ka, kira2 apanya yg kurang ya :

java.sql.SQLException: No suitable driver found for jdbc:mysql//localhost:3306/pos
Exception in thread "main" java.lang.NullPointerException
at konfigurasi.koneksi.main(koneksi.java:36)
C:\Users\Administrator\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 0 seconds)
Comment Author Avatar
Mungkin driver MySQL nya belum dimasukan
Comment Author Avatar
untuk peletakan code
tampil data dimana ya terimakasih



Comment Author Avatar
Bisa diletakkan dibawah konstruktor, atau codingan paling atas dibawah nama class