[TUTORIAL] Menghubungkan dan membuat Program Java di Netbeans melalui Database MySQL (XAMPP) (Program CRUD)
Assalamu‘alaikum Wr. Wb.
Halo guys! Apakah kamu ingin Ngoding tapi juga ingin membuat Databse? Apache NetBeans dan XAMP solusinya, dan di sini juga bisa menghubungkan antara Java dengan MySQL. Kali ini saya akan membahasnya satu persatu di Artikel ini.
Sumber Artikel : Malasngoding.com (Cara Menghubungkan Java Dengan Database MySQL), Codekop.com (Cara Membuat CRUD Java dan MySQL Netbeans), dan Petanikode.com (Tutorial Java dan MySQL)
Sebenarnya yang mau saya bahas di Postingan ini adalah Pembahasan tentang CRUD (Create Read Update Delete) dalam Java.
LANGKAH AWAL DENGAN XAMPP
Langkah Pertamanya adalah kita harus mengunduh (menginstal) terlebih dahulu. Yang Pertama, kita Install dulu Software XAMPP lalu kita Install Software Apache Netbeans.
Untuk menginstall XAMPP, silahkan klik di sini, atau jika ingin langsung, silahkan pilih Sistem Operasi. Jika Anda memakai Windows, silahkan klik di sini, Jika memakai Linux, silahkan klik di sini, dan juga Jika memakai MacOS, silahkan klik di sini.
Cara Membuat XAMPP Otomatis Terbuka Saat Start Up Windows
Jika sudah selesai melakukan Proses Instalasi XAMPP, biasanya harus Membuat XAMPP Otomatis Terbuka jika Start Up Windows saat habis mematikan dan menghidupkan kembali Komputer.
Sering kali malas jika tiap menghidupkan komputer untuk kerja juga harus menjalankan Service Apache dan MySQL pada XAMPP Control Panel. Dengan kemalasan itulah muncul ide untuk menjalankan Service Apache dan MySQL pada XAMPP Control Panel secara otomatis saat Start Up Windows. Mumpung belum lupa, ini saya jelaskan tentang cara membuat XAMPP otomatis berjalan saat Start Up Windows.
Adapun langkah-langkahnya adalah sebagai berikut :
1. Buka XAMPP Control Panel
Pertama-tama, buka dulu XAMPP Control Panel lalu jalankan beberapa Aplikasi seperti Apache dan MySQL seperti pada Gambar di bawah ini :
2. Menekan Tombol Config (Configuration of Control Panel)
Setelah terbuka, klik Tombol "Config" di bagian Kanan Atas. lalu akan muncul Jendela yang bernama Configuration of Control Panel". Lalu berilah Tanda Centang pada Apache, MySQL, dan Start Control Panel Minimized, Lalu klik Save.
4. Menjalankan Program
Restart Komputer dan XAMPP Control Panel beserta service Apache dan MySQL sudah berjalan secara otomatis saat Start Up Windows.
MEMBUAT DATABASE DI LOCALHOST MYSQL
Ketika membangun sebuah website, tak jarang orang memilih untuk membuat Database di Localhost / phpMyAdmin dulu. Nantinya, baru di-upload ke hosting agar bisa diakses secara Online.
Bagaimana cara membuat database di phpMyAdmin? Terutama, dengan menggunakan MySQL sebagai database yang paling umum digunakan?
Tenang, disini akan membahas panduan membuat database di localhost/phpMyAdmin dengan bantuan XAMPP. Yuk, ikuti penjelasan lengkapnya di bawah ini!
1. Apa Itu localhost/phpMyAdmin – XAMPP?
Sebelum masuk ke cara membuat database di phpMyAdmin, Anda perlu memahami dulu apa itu localhost, phpMyAdmin dan XAMPP.
Apa Itu Localhost?
Localhost adalah server lokal menggunakan komputer Anda. Localhost memungkinkan Anda untuk melakukan pengembangan dan pengujian aplikasi berbasis web secara offline.
Namun, localhost hanya dapat diakses ketika ada web server yang berjalan. Oleh karena itu, Anda memerlukan aplikasi web server seperti XAMPP untuk mengaksesnya.
Apa Itu XAMPP?
XAMPP adalah aplikasi web server open source yang dapat berjalan di berbagai sistem operasi (Windows, Linux dan MacOS). Tools ini dapat membantu Anda untuk mengembangkan website pada server lokal.
Dengan XAMPP, Anda bisa menginstall Apache, MySQL/MariaDB, PHP dan Perl cukup dengan satu aplikasi.
Nantinya, Apache digunakan sebagai Web Server, MySQL sebagai database, sedangkan PHP dan Perl sebagai Bahasa Pemrograman dari sisi server.
Apa Itu phpMyAdmin?
phpMyAdmin adalah aplikasi berbasis web untuk membantu Anda melakukan pengelolaan database MySQL.
Dengan localhost/phpMyAdmin, Anda dapat melakukan import dan export database, membuat database, mengedit, menghapus dan menjalankan query data lainnya.
Dalam pengembangan situs web, misalnya WordPress, Anda pasti memerlukan database untuk menyimpan informasi pada website Anda. Oleh karena itu, Anda membutuhkan phpMyAdmin untuk mengelola data.
Apa Itu localhost/phpMyAdmin?
Tidak hanya bisa diakses online, phpMyAdmin juga bisa diakses secara offline dengan bantuan localhost. Anda dapat mengaksesnya pada url localhost/phpMyAdmin.
Dengan localhost/phpMyAdmin, Anda dapat mengelola database pada website offline Anda. Hal ini dapat mendukung Anda dalam proses pengembangan dan pengujian aplikasi web pada komputer lokal.
Menariknya, localhost/phpMyAdmin memiliki tampilan antarmuka yang user friendly, sehingga memudahkan pengguna untuk mengelola database. Tanpa localhost/phpMyAdmin, Anda harus mengelola database melalui terminal.
2. Cara Membuat Database di phpMyAdmin
Untuk membuat Database di http localhost phpMyAdmin, Anda dapat mengikuti 7 (Tujuh) langkah berikut ini :
- Download dan Instalasi XAMPP
- Menjalankan XAMPP
- Mengakses localhost/phpMyAdmin
- Membuat Database di phpMyAdmin
- Membuat Tabel pada Database localhost/phpMyAdmin
- Menjalankan Website dengan XAMPP
- Menghubungkan Website dengan Database
Nah, berikut ini panduan lengkapnya!
1. Download dan Instalasi XAMPP
Untuk membuat database di localhost/phpmyadmin, Anda perlu menginstall XAMPP terlebih dulu. Silakan download XAMPP melalui website resminya. Pilih installer sesuai dengan sistem operasi yang Anda gunakan, lalu klik tombol Download. Cara Download XAMPP sudah saya jelaskan diatas.
2. Menjalankan XAMPP
Jika XAMPP sudah terinstall, bukalah aplikasi tersebut. Anda akan melihat 5 (Lima) Module yang terinstall, yaitu Apache, MySQL, FileZilla, Mercury dan Tomcat.
Biasanya, untuk membuat sebuah website, Anda hanya perlu menjalankan dua module saja, Apache sebagai web server dan MySQL untuk database.
Klik tombol Start pada Apache dan MySQL agar Anda dapat mengakses localhost/phpMyAdmin untuk membuat database. Jika sudah berhasil dijalankan, tampilan XAMPP akan berubah seperti gambar di bawah ini :
3. Mengakses localhost/phpMyAdmin
Anda bisa mengakses phpMyAdmin dengan dua cara. Pertama, melalui dashboard localhost. Caranya, ketik localhost pada kolom pencarian browser, lalu tekan Enter. Kemudian, pilih phpMyAdmin seperti yang ditunjukkan pada gambar berikut ini :
Kedua, langsung mengakses localhost/phpMyadmin pada kolom pencarian Web Browser. Jangan lupa tekan Enter. Maka akan muncul tampilan phpMyAdmin seperti ini :
Pada halaman inilah, Anda dapat melakukan pengelolaan database untuk Website Anda. Misalnya, membuat Database, mengedit, menghapus, bahkan melakukan Query Data.
4. Membuat Database di phpMyAdmin
Pada bagian kiri localhost/phpMyAdmin, silahkan klik New untuk membuat database baru.
Masukkan Nama Database pada kolom yang tersedia. misalnya, saya menggunakan penjualan sebagai Nama Database yang akan dibuat. Jika sudah diberi nama, klik Create.
Nantinya, database baru yang Anda buat akan tampil di bagian kiri halaman phpMyAdmin. Sekarang, Anda sudah bisa menambahkan tabel sebagai tempat penyimpanan data pada Database baru.
5. Membuat Tabel pada Database localhost/phpMyAdmin
Kali ini, mari membuat tabel dengan empat kolom untuk data pengguna dengan nama tabel barang. Kemudian, klik Tombol Go.
Di bagian ini, Anda harus memasukkan nama kolom dan tipe datanya. Untuk tabel users, kami membuat kd_brg, nm_brg, harga, dan stok.
Anda juga bisa menambahkan Null Index ke dalam Tabel Database, misalnya saya pilih "Primary" lalu akan muncul seperti pada gambar di bawah ini :
Jika sudah terisi seperti pada Gambar di bawah ini, klik tombol Save.
Dan hasilnya akan seperti ini :
Itulah Contoh Database yang telah saya buat, yaitu Penjualan Barang.
MYSQL JDBC DRIVER
Sumber Artikel : Termasmedia.com
Sebelum lanjut ke NetBeans, lebih baik kita lanjut dulu ke MySQL JDBC Driver. Disini kita akan mengunduh (Download) MySQL JDBC Driver. Selanjutnya, ikutilah Langkah-langkah berikut ini.
Ketika membuat program Aplikasi dengan Bahasa Pemrograman Java yang mengakses ke basis data (database), Anda dapat menggunakan berbagai jenis basis data. Salah satu basis data yang bisa Anda gunakan adalah MySQL. Agar program aplikasi Java dapat terkoneksi ke basis data MySQL, diperlukan JDBC Driver untuk MySQL. JDBC Driver dari MySQL disebut dengan MySQL Connector/J.
Sebelum membuat program aplikasi basis data dengan Java, MySQL Connector/J harus sudah diinstal dengan benar di sistem komputer, bila belum, Anda dapat menggunakan petunjuk instalasi MySQL Connector/J di artikel ini. Bila Anda belum memiliki MySQL JDBC Driver (MySQL Connector/J), Anda dapat mengunduh (download) MySQL JDBC Driver dari Website/Situs Resmi MySQL untuk Connertor/J.
Di laman web yang terbuka, Anda dapat menemukan file mysql-connector-java-8.0.27.msi. Untuk kemudahan instalasi, Unduh/Download mysql-connector-java-8.0.27 yang berekstensi .zip. Untuk mendapatkan, di kotak daftar tarik turun berlabel Select Platform, pilih Platform Independent. Anda akan menemukan dua ekstensi file yaitu .zip dan .gz. Unduh file mysql-connector-java-8.0.27.zip dengan mengklik tombol Download yang ada di posisi kanan.
Lalu sebelum kita mengunduh File, pasti akan muncul seperti pada Gambar di bawah ini :
Lalu, klik di bagian "No thanks, just start my download." karena Anda tidak perlu Login / Sign up untuk mengunduh File.
MEMBUAT PROGRAM SEDERHANA DI NETBEANS
Sumber Artikel : Kodingindonesia.com
A. Download Apache Netbeans
Langkah Pertamanya kita harus mengunduhnya terlebih dahulu. Anda dapa mengunduh (Download) di Laman Resmi-nya Apache Netbeans di sini.
Lalu pilihlah Apache Netbeans berdasarkan dengan Sistem Operasi seperti Windows, Linux, dan MacOS. Lalu ikuti langkah selanjutnya sesudah mengunduh (Dowload) Sofware-nya.
B. Mempersiapkan Program Netbeans
Jika sudah men-download Software Netbeans, lalu kita langsung buka Programnya.
Langkah selanjutnya adalah kita harus cari di bagian "Tools" lalu klik "Plugins". Jika sudah lalu kita klik di bagian "Installed" lalu kita beri centang di bagian Java SE. Setelah itu kita klik Tombol "Activate". Habis itu kita tunggu saja sampai prosesnya sudah berakhir.
Selanjutnya, kita klik di bagian Tombol Ikon File, lalu klik Tombol "Next" jika sudah seperti Format di bawah ini.
Selanjutnya, klik di Tombol "Finish" dan jika tidak ingin diubah nama proyeknya (Project Name). Tapi jika ingin diubah Project Name, silakhan namai Program yang ingin Anda sesuai dengan kebutuhan User.
C. Membuat Program Java GUI
Misalnya saya ingin membuat Aplikasi Formulir dengan Java GUI. Saya bisa menggunakannya dengan JPanel dan JFrame. Lalu kita klik kanan di sebelah "Source Packages" lalu kita klik di bagian "New --> JPanel Forms" jika kita ingin membuat/mendesain Formulir.
Lalu akan muncul window seperti Gambar di bawah ini. Jika sudah, lalu kita namai Formulir dengan di bagian Class Name. Jika sudah, klik di Tombol "Finish" untuk melanjutkan desain GUI.
Selanjutnya, akan muncul Program Java seperti pada Gambar berikut :
Jika kita ingin melihat Coding-an klik di bagian "Source", dan jika ingin mendesain GUI 'Drag and Drop' klik di bagian "Design", dan jika ingin melihat Riwayat (Histori) klik di bagian "History".
Selanjutnya, di Bar sebelah Kanan terdapat Palet yang dapat Anda gunakan untuk mendesain GUI. Cara kerjanya mudah sekali, tinggal menggeser (drag) dan menjatuhkan (drop). Misalnya saya ingin membuat Kolom Teks, Label, dan Tombol, maka kita akan mencari JTextField, JLabel, dan JButton. Maka hasilnya akan seperti pada Gambar di bawah ini :
Jika ingin mengubah Nama File (Rename File), silahkan Klik Kanan di bagian File yang telah kita buat. Lalu cari di bagian "Refactor --> Rename...". Lalu kita ganti nama file Java GUI yang telah kita buat.
Misalnya Nama File sebelumnya adalah "Form_Login", dan ingin merubahnya menjadi "Form_Barang". Lalu kita klik di Tombol "Refactor" untuk merubahnya.
Selanjutnya, jika ingin mengedit Nama di bagian Teks, silahkan Klik Kanan lalu klik di bagian "Edit Text". Setelah itu kita kasih namanya sesuai dengan kebutuhan Program.
Dan Selanjutnya, jika kita ingin menambahkan Tabel, silahkan carilah JTable.
Terakhir, ubahlah Variabel yang ada di masing-masing Template. Jika ingin merubah Variabel yang telah kita buat, silahkan Klik Kanan lalu pilihlah di bagian "Chane Variable Name". Lalu ubahlah Nama Variabel yang ingin Anda namai. Misalnya saya ingin merubah nama Variabel di bagian JLabel, maka kita namai sebagai "txtkode" untuk di bagian Kode Barang (jLabel1).
D. Menghubungkan Program Java Netbeans dengan MySQL phpMyAdmin
Jika langkah-langkah diatas sudah selesai, sekarang waktunya untuk menghubungkan ke Database di MySQL. Contoh Program yang telah saya buat untuk FormBarang adalah :
public class FormBarang extends javax.swing.JFrame { String user = "root"; String pwd = ""; String url = "jdbc:mysql://localhost/penjualan"; Boolean isi = true;
Dan langkah selanjutnya adalah kita harus menambahkan Dependency. Lalu cari di bagian Dependencies lalu klik "Add Dependency ....". Kemudian kita ketik "mysql" di bagian "Group ID", ketik "mysql-connector-java" di bagian "Artifact ID", dan juga tulis di bagian "Version" untuk mencantumkan Versi-nya (Misalnya Versi 8.0.27). Lalu klik di Tombol "Add".
E. Membuat Algoritma agar Tampilan GUI dapat beroperasi
Agar sebuah Program dapat beroperasi, kita memerukan Algoritma ke dalam Program yang telah kita buat. Contoh untuk Project yang telah saya buat yang Pertama, kita masukkan Kode seperti ini (Untuk Fungsi Aktif dan Nonaktif) :
public FormBarang() { initComponents(); setLocationRelativeTo(null); } void aktif(){ txtnama.setEnabled(true); txtharga.setEnabled(true); txtstok.setEnabled(true); } void nonaktif(){ txtkode.setEnabled(false); txtnama.setEnabled(false); txtharga.setEnabled(false); txtstok.setEnabled(false); btnkeluar.setEnabled(true); btntambah.setEnabled(true); btnsimpan.setEnabled(false); btnhapus.setEnabled(false); btnrubah.setEnabled(false); btntambah.setEnabled(true); }
Kemudian, Kode untuk membuat Fungsi Bersih :
void bersih(){ txtkode.setText(""); txtnama.setText(""); txtharga.setText(""); txtstok.setText(""); }
Kode untuk membuat Fungsi Otomatis :
void otomatis(){ try{ Connection conn = DriverManager.getConnection(url,user,pwd); Statement st = (Statement) conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); String sql = "Select right (kd_brg,3)+1 from barang"; ResultSet rs = st.executeQuery(sql); if(rs.next()){ rs.last(); String kode = rs.getString(1); while(kode.length()<3){ kode = "0" + kode; txtkode.setText("BR"+kode); } }else{ txtkode.setText("BR0001"); } }catch(Exception e){ } }
Kode untuk membuat Fungsi Cari :
void cari(){ try{ Connection conn = DriverManager.getConnection(url,user,pwd); Statement st = (Statement) conn.createStatement(); ResultSet rs = st.executeQuery("Select * from barang where kd_brg='"+txtcari.getText()+"'"); if (rs.next()) { txtkode.setText(rs.getString("kd_brg")); txtnama.setText(rs.getString("nm_brg")); txtharga.setText(rs.getString("harga")); txtstok.setText(rs.getString("stok")); } else JOptionPane.showMessageDialog(this,"Data tidak ditemukan","info",JOptionPane.INFORMATION_MESSAGE); txtcari.setText(""); } catch (SQLException e){ System.out.println("Koneksi gagal"+e.toString()); } }
Kode untuk membuat Fungsi Simpan :
void simpan(){ try { Connection conn = DriverManager.getConnection(url,user,pwd); Statement st = (Statement) conn.createStatement(); String sql = "insert into barang values('"+txtkode.getText()+"','"+ txtnama.getText()+"','"+txtharga.getText()+"','"+txtstok.getText()+"')"; st.executeUpdate(sql); JOptionPane.showMessageDialog(this,"Data berhasil disimpan" ,"info",JOptionPane.INFORMATION_MESSAGE); } catch(SQLException e){ System.out.println("Koneksi gagal"+e.toString()); } formWindowActivated(null); }
Kode untuk membuat Fungsi Hapus :
void hapus(){ try { Connection conn = DriverManager.getConnection(url,user,pwd); Statement st = (Statement) conn.createStatement(); String sql = "delete from barang where kd_brg ='"+txtkode.getText()+"'"; st.executeUpdate(sql); JOptionPane.showMessageDialog(this,"Data berhasil dihapus","info",JOptionPane.INFORMATION_MESSAGE); } catch(SQLException e){ System.out.println("Koneksi gagal"+e.toString()); } formWindowActivated(null); }
Kode untuk membuat Fungsi Update :
void update(){ try { Connection conn = DriverManager.getConnection(url,user,pwd); Statement st = (Statement) conn.createStatement(); String sql = "update barang set nm_brg ='"+txtnama.getText()+ "', harga='"+txtharga.getText()+"',stok='"+txtstok.getText()+"'"+"where kd_brg='"+txtkode.getText()+"'"; st.executeUpdate(sql); JOptionPane.showMessageDialog(this,"Data berhasil diupdate" ,"info",JOptionPane.INFORMATION_MESSAGE); } catch(SQLException e){ System.out.println("Koneksi gagal"+e.toString()); } formWindowActivated(null); }
Kode untuk mengambil Data (Get Data) :
private Object [][] getData() { Object [][] data = null; try { Connection conn = DriverManager.getConnection(url,user,pwd); Statement st = (Statement) conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); ResultSet rs = st.executeQuery("Select * form barang"); rs.last(); int rowCount = rs.getRow(); rs.beforeFirst(); data = new Object[rowCount] [4]; int no = -1; while (rs.next()){ no = no+1; data[no] [0] = rs.getString("kd_brg"); data[no] [1] = rs.getString("nm_brg"); data[no] [2] = rs.getString("harga"); data[no] [3] = rs.getString("stok"); } } catch(SQLException e){ System.out.println("Koneksi gagal"+e.toString()); } return data; }
Kode untuk membuat Fungsi Tampil :
void tampil() { String[] columnNames = {"Kode Barang", "Nama Barang", "Harga", "Stok"}; JTable table = new JTable (getData(), columnNames); table.setEnabled(false); jScrollPane1.setViewportView(table); jScrollPane2.setViewportView(table); }
Kemudian, kita buat lagi Algoritma-nya agar Tombol-tombol dan Bar-nya dapat beroperasi. Satu hal lagi, kita harus meng-Klik Kanan lalu cari di bagian "Events --> Window --> windowActivated" untuk mengoperasikan sebuah Form Window. Lalu akan dialikan ke bagian Coding di Source.
Untuk mengoperasikan sebuah Tombol, maka buatlah Algoritma dengan cara meng-Klik Kanan lalu cari di bagian "Events --> Action --> actionPerformed".
Dan juga agar Kolom Teks-nya juga berfungsi, maka buatlah Algoritma dengan cara meng-Klik Kanan lalu cari di bagian "Events --> Key --> keyPressed".
Lalu akan dialihkan kembali ke Kode Sumber (Source). Kemudian Ketiklah :
1. Kode untuk Bagian Jendela
Klik : Events --> Window --> windowActivated
Kode untuk Jendela Formulir (Form Window) :
private void formWindowActivated(java.awt.event.WindowEvent evt) { nonaktif(); bersih(); }
2. Kode untuk Bagian Tombol
Klik : Events --> Action --> actionPerformed
Kode untuk Tombol Tambah :
private void btntambahActionPerformed(java.awt.event.ActionEvent evt) { txtnama.setEnabled(true); txtharga.setEnabled(true); txtstok.setEnabled(true); btntambah.setEnabled(false); btnsimpan.setEnabled(true); btnhapus.setEnabled(false); btnrubah.setEnabled(false); btnbatal.setEnabled(true); otomatis(); txtkode.setText("BR001"); txtnama.grabFocus(); }
Kode untuk Tombol Hapus :
private void btnhapusActionPerformed(java.awt.event.ActionEvent evt) { int ok = JOptionPane.showConfirmDialog(this, "Yakin akan dihapus?", "konfirmasi", JOptionPane.YES_NO_OPTION); if (ok == 0); hapus(); formWindowActivated(null); }
Kode untuk Tombol Cari :
private void btncariActionPerformed(java.awt.event.ActionEvent evt) { cari(); btnsimpan.setEnabled(true); btnhapus.setEnabled(true); btntambah.setEnabled(false); btnbatal.setEnabled(true); btnkeluar.setEnabled(true); btnrubah.setEnabled(true); }
Kode untuk Tombol Keluar :
private void btnkeluarActionPerformed(java.awt.event.ActionEvent evt) { System.exit(0); }
Kode untuk Tombol Batal :
private void btnbatalActionPerformed(java.awt.event.ActionEvent evt) { formWindowActivated(null); }
Kode untuk Tombol Edit/Rubah :
private void btnrubahActionPerformed(java.awt.event.ActionEvent evt) { isi = false; aktif(); btnrubah.setEnabled(false); btntambah.setEnabled(false); btnsimpan.setEnabled(true); btnbatal.setEnabled(true); }
3. Kode untuk Bagian Teks
Klik : Events --> Key --> keyPressed
Kode untuk Teks Nama :
private void txtnamaKeyPressed(java.awt.event.KeyEvent evt) { if (evt.getKeyChar() == KeyEvent.VK_ENTER){ txtharga.requestFocusInWindow(); } }
Kode untuk Teks Harga Barang :
private void txthargaKeyPressed(java.awt.event.KeyEvent evt) { if (evt.getKeyChar() == KeyEvent.VK_ENTER){ txtstok.requestFocusInWindow(); } }
Kode untuk Teks Stok Barang :
private void txtstokKeyPressed(java.awt.event.KeyEvent evt) { if (evt.getKeyChar() == KeyEvent.VK_ENTER) { btnsimpan.requestFocusInWindow(); } }
Kode untuk Tombol Simpan :
private void btnsimpanKeyPressed(java.awt.event.KeyEvent evt) { if (evt.getKeyChar() == KeyEvent.VK_ENTER){ if (isi == true) simpan(); else update(); } }
Kode untuk Tombol Cari :
private void btncariKeyPressed(java.awt.event.KeyEvent evt) { if (evt.getKeyChar() == KeyEvent.VK_ENTER){ cari(); btnsimpan.setEnabled(true); btnhapus.setEnabled(true); btntambah.setEnabled(false); btnbatal.setEnabled(true); btnkeluar.setEnabled(true); btnrubah.setEnabled(true); } }
F. Hasil Akhir dari Pembuatan Program Aplikasi
Dan inilah Hasil Akhirnya dari Program Aplikasi yang telah saya buat (Program Penjualan Barang) :
Dan inilah Kode Lengkap (Dalam Java) dari Program Aplikasi yang telah saya buat (Program Penjualan Barang) :
/** Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license* Click nbfs://nbhost/SystemFileSystem/Templates/GUIForms/JFrame.java to edit this template*/package Penjualan;import java.awt.event.KeyEvent;import javax.swing.JOptionPane;import java.sql.*;import javax.swing.JTable;/**** @author Inzaghi Posuma*/public class FormBarang extends javax.swing.JFrame {String user = "root";String pwd = "";String url = "jdbc:mysql://localhost/penjualan";Boolean isi = true;/*** Creates new form FormBarang*/public FormBarang() {initComponents();setLocationRelativeTo(null);}void aktif(){txtnama.setEnabled(true);txtharga.setEnabled(true);txtstok.setEnabled(true);}void nonaktif(){txtkode.setEnabled(false);txtnama.setEnabled(false);txtharga.setEnabled(false);txtstok.setEnabled(false);btnkeluar.setEnabled(true);btntambah.setEnabled(true);btnsimpan.setEnabled(false);btnhapus.setEnabled(false);btnrubah.setEnabled(false);btnbatal.setEnabled(true);}void bersih(){txtkode.setText("");txtnama.setText("");txtharga.setText("");txtstok.setText("");}void otomatis(){try{Connection conn = DriverManager.getConnection(url,user,pwd);Statement st = (Statement) conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);String sql = "Select right (kd_brg,3)+1 from barang";ResultSet rs = st.executeQuery(sql);if(rs.next()){rs.last();String kode = rs.getString(1);while(kode.length()<3){kode = "0" + kode;txtkode.setText("BR"+kode);}}else{txtkode.setText("BR001");}} catch (SQLException e){System.out.println("Koneksi gagal otomatis"+e.toString());}}void cari(){try{Connection conn = DriverManager.getConnection(url,user,pwd);Statement st = (Statement) conn.createStatement();ResultSet rs = st.executeQuery("Select * from barang where kd_brg='"+txtcari.getText()+"'");if (rs.next()) {txtkode.setText(rs.getString("kd_brg"));txtnama.setText(rs.getString("nm_brg"));txtharga.setText(rs.getString("harga"));txtstok.setText(rs.getString("stok"));}elseJOptionPane.showMessageDialog(this,"Data tidak ditemukan","info",JOptionPane.INFORMATION_MESSAGE);txtcari.setText("");}catch (SQLException e){System.out.println("Koneksi gagal cari"+e.toString());}}void simpan(){try {Connection conn = DriverManager.getConnection(url,user,pwd);Statement st = (Statement) conn.createStatement();String sql = "insert into barang values('"+txtkode.getText()+"','"+txtnama.getText()+"','"+txtharga.getText()+"','"+txtstok.getText()+"')";st.executeUpdate(sql);JOptionPane.showMessageDialog(this,"Data berhasil disimpan","info",JOptionPane.INFORMATION_MESSAGE);}catch(SQLException e){System.out.println("Koneksi gagal simpan"+e.toString());}formWindowActivated(null);}void hapus(){try {Connection conn = DriverManager.getConnection(url,user,pwd);Statement st = (Statement) conn.createStatement();String sql = "delete from barang where kd_brg ='"+txtkode.getText()+"'";st.executeUpdate(sql);JOptionPane.showMessageDialog(this,"Data berhasil dihapus","info",JOptionPane.INFORMATION_MESSAGE);}catch(SQLException e){System.out.println("Koneksi gagal hapus"+e.toString());}formWindowActivated(null);}void update(){try {Connection conn = DriverManager.getConnection(url,user,pwd);Statement st = (Statement) conn.createStatement();String sql = "update barang set nm_brg ='"+txtnama.getText()+"', harga='"+txtharga.getText()+"',stok='"+txtstok.getText()+"'"+"where kd_brg='"+txtkode.getText()+"'";st.executeUpdate(sql);JOptionPane.showMessageDialog(this,"Data berhasil diupdate","info",JOptionPane.INFORMATION_MESSAGE);}catch(SQLException e){System.out.println("Koneksi gagal"+e.toString());}formWindowActivated(null);}private Object [][] getData() {Object [][] data = null;try {Connection conn = DriverManager.getConnection(url,user,pwd);Statement st = (Statement) conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);ResultSet rs = st.executeQuery("Select * from barang");rs.last();int rowCount = rs.getRow();rs.beforeFirst();data = new Object[rowCount] [4];int no = -1;while (rs.next()){no = no+1;data[no] [0] = rs.getString("kd_brg");data[no] [1] = rs.getString("nm_brg");data[no] [2] = rs.getString("harga");data[no] [3] = rs.getString("stok");}}catch(SQLException e){System.out.println("Koneksi gagal tampil"+e.toString());}return data;}void tampil() {String[] columnNames = {"Kode Barang", "Nama Barang", "Harga", "Stok"};JTable table = new JTable(getData(), columnNames);table.setEnabled(false);jScrollPane1.setViewportView(table);jScrollPane2.setViewportView(table);}/*** This method is called from within the constructor to initialize the form.* WARNING: Do NOT modify this code. The content of this method is always* regenerated by the Form Editor.*/@SuppressWarnings("unchecked")// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponentsprivate void initComponents() {jScrollPane1 = new javax.swing.JScrollPane();jTable1 = new javax.swing.JTable();jLabel1 = new javax.swing.JLabel();jLabel2 = new javax.swing.JLabel();jLabel3 = new javax.swing.JLabel();jLabel4 = new javax.swing.JLabel();jLabel5 = new javax.swing.JLabel();jLabel6 = new javax.swing.JLabel();txtnama = new javax.swing.JTextField();txtkode = new javax.swing.JTextField();txtharga = new javax.swing.JTextField();txtstok = new javax.swing.JTextField();txtcari = new javax.swing.JTextField();btnkeluar = new javax.swing.JButton();btnhapus = new javax.swing.JButton();btncari = new javax.swing.JButton();btntambah = new javax.swing.JButton();btnsimpan = new javax.swing.JButton();btnrubah = new javax.swing.JButton();btnbatal = new javax.swing.JButton();jScrollPane2 = new javax.swing.JScrollPane();tbbarang = new javax.swing.JTable();jTable1.setModel(new javax.swing.table.DefaultTableModel(new Object [][] {{null, null, null, null},{null, null, null, null},{null, null, null, null},{null, null, null, null}},new String [] {"Title 1", "Title 2", "Title 3", "Title 4"}));jScrollPane1.setViewportView(jTable1);setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);addWindowListener(new java.awt.event.WindowAdapter() {public void windowActivated(java.awt.event.WindowEvent evt) {formWindowActivated(evt);}});jLabel1.setText("Kode Barang");jLabel2.setText("Nama Barang");jLabel3.setText("Harga Barang");jLabel4.setText("Stok Barang");jLabel5.setText("Pencarian Data Barang");jLabel6.setText("Input Koda Barang Anda dari :");txtnama.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {txtnamaActionPerformed(evt);}});txtnama.addKeyListener(new java.awt.event.KeyAdapter() {public void keyPressed(java.awt.event.KeyEvent evt) {txtnamaKeyPressed(evt);}});txtkode.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {txtkodeActionPerformed(evt);}});txtharga.addKeyListener(new java.awt.event.KeyAdapter() {public void keyPressed(java.awt.event.KeyEvent evt) {txthargaKeyPressed(evt);}});txtstok.addKeyListener(new java.awt.event.KeyAdapter() {public void keyPressed(java.awt.event.KeyEvent evt) {txtstokKeyPressed(evt);}});btnkeluar.setText("Keluar");btnkeluar.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {btnkeluarActionPerformed(evt);}});btnhapus.setText("Hapus");btnhapus.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {btnhapusActionPerformed(evt);}});btncari.setText("Cari");btncari.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {btncariActionPerformed(evt);}});btncari.addKeyListener(new java.awt.event.KeyAdapter() {public void keyPressed(java.awt.event.KeyEvent evt) {btncariKeyPressed(evt);}});btntambah.setText("Tambah");btntambah.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {btntambahActionPerformed(evt);}});btnsimpan.setText("Simpan");btnsimpan.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {btnsimpanActionPerformed(evt);}});btnsimpan.addKeyListener(new java.awt.event.KeyAdapter() {public void keyPressed(java.awt.event.KeyEvent evt) {btnsimpanKeyPressed(evt);}});btnrubah.setText("Rubah");btnrubah.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {btnrubahActionPerformed(evt);}});btnbatal.setText("Batal");btnbatal.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {btnbatalActionPerformed(evt);}});tbbarang.setModel(new javax.swing.table.DefaultTableModel(new Object [][] {{null, null, null, null},{null, null, null, null},{null, null, null, null},{null, null, null, null}},new String [] {"Title 1", "Title 2", "Title 3", "Title 4"}));jScrollPane2.setViewportView(tbbarang);javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());getContentPane().setLayout(layout);layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGap(40, 40, 40).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGap(34, 34, 34).addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addGap(74, 74, 74)).addGroup(layout.createSequentialGroup().addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false).addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addComponent(jLabel1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 64, javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(jLabel2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 67, javax.swing.GroupLayout.PREFERRED_SIZE)).addGap(18, 18, 18).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false).addComponent(txtharga, javax.swing.GroupLayout.Alignment.LEADING).addComponent(txtkode, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(txtnama, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 125, javax.swing.GroupLayout.PREFERRED_SIZE)).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false).addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 133, javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(jLabel6, javax.swing.GroupLayout.DEFAULT_SIZE, 165, Short.MAX_VALUE).addComponent(txtcari)).addGap(116, 116, 116)).addGroup(layout.createSequentialGroup().addComponent(txtstok, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addComponent(btncari, javax.swing.GroupLayout.PREFERRED_SIZE, 73, javax.swing.GroupLayout.PREFERRED_SIZE).addGap(128, 128, 128)))))).addGroup(layout.createSequentialGroup().addGap(28, 28, 28).addComponent(btntambah, javax.swing.GroupLayout.PREFERRED_SIZE, 84, javax.swing.GroupLayout.PREFERRED_SIZE).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(btnsimpan, javax.swing.GroupLayout.PREFERRED_SIZE, 84, javax.swing.GroupLayout.PREFERRED_SIZE).addGap(10, 10, 10).addComponent(btnrubah, javax.swing.GroupLayout.PREFERRED_SIZE, 84, javax.swing.GroupLayout.PREFERRED_SIZE).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(btnbatal, javax.swing.GroupLayout.PREFERRED_SIZE, 84, javax.swing.GroupLayout.PREFERRED_SIZE).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(btnhapus, javax.swing.GroupLayout.PREFERRED_SIZE, 84, javax.swing.GroupLayout.PREFERRED_SIZE).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(btnkeluar, javax.swing.GroupLayout.PREFERRED_SIZE, 84, javax.swing.GroupLayout.PREFERRED_SIZE).addGap(0, 0, Short.MAX_VALUE)));layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGap(41, 41, 41).addComponent(jLabel5).addGap(18, 18, 18).addComponent(jLabel6).addGap(12, 12, 12).addComponent(txtcari, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)).addGroup(layout.createSequentialGroup().addGap(53, 53, 53).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel1).addComponent(txtkode, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jLabel2).addComponent(txtnama, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))).addGap(1, 1, 1).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel3).addComponent(txtharga, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel4).addComponent(txtstok, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(btncari)).addGap(53, 53, 53).addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 91, javax.swing.GroupLayout.PREFERRED_SIZE).addGap(41, 41, 41).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(btnbatal).addComponent(btntambah).addComponent(btnsimpan).addComponent(btnrubah).addComponent(btnhapus).addComponent(btnkeluar)).addContainerGap(58, Short.MAX_VALUE)));pack();}// </editor-fold>//GEN-END:initComponentsprivate void txtkodeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtkodeActionPerformednonaktif();}//GEN-LAST:event_txtkodeActionPerformedprivate void btntambahActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btntambahActionPerformedtxtnama.setEnabled(true);txtharga.setEnabled(true);txtstok.setEnabled(true);btntambah.setEnabled(false);btnsimpan.setEnabled(true);btnhapus.setEnabled(false);btnrubah.setEnabled(false);btnbatal.setEnabled(true);otomatis();//txtkode.setText("BR001");txtnama.grabFocus();}//GEN-LAST:event_btntambahActionPerformedprivate void formWindowActivated(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowActivatednonaktif();bersih();}//GEN-LAST:event_formWindowActivatedprivate void btnkeluarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnkeluarActionPerformedSystem.exit(0);}//GEN-LAST:event_btnkeluarActionPerformed
private void btncariActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btncariActionPerformedcari();btnsimpan.setEnabled(true);btnhapus.setEnabled(true);btntambah.setEnabled(false);btnbatal.setEnabled(true);btnkeluar.setEnabled(true);btnrubah.setEnabled(true);}//GEN-LAST:event_btncariActionPerformedprivate void btnhapusActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnhapusActionPerformedint ok = JOptionPane.showConfirmDialog(this, "Yakin akan dihapus?", "konfirmasi", JOptionPane.YES_NO_OPTION);if (ok == 0);hapus();formWindowActivated(null);}//GEN-LAST:event_btnhapusActionPerformedprivate void btnbatalActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnbatalActionPerformedformWindowActivated(null);}//GEN-LAST:event_btnbatalActionPerformedprivate void btnrubahActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnrubahActionPerformed// TODO add your handling code here:isi = false;aktif();btnrubah.setEnabled(false);btntambah.setEnabled(false);btnsimpan.setEnabled(true);btnbatal.setEnabled(true);}//GEN-LAST:event_btnrubahActionPerformedprivate void txtnamaKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtnamaKeyPressedif (evt.getKeyChar() == KeyEvent.VK_ENTER){txtharga.requestFocusInWindow();}}//GEN-LAST:event_txtnamaKeyPressedprivate void txthargaKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txthargaKeyPressed// TODO add your handling code here:if (evt.getKeyChar() == KeyEvent.VK_ENTER){txtstok.requestFocusInWindow();}}//GEN-LAST:event_txthargaKeyPressedprivate void btnsimpanActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnsimpanActionPerformed// TODO add your handling code here:}//GEN-LAST:event_btnsimpanActionPerformedprivate void btnsimpanKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_btnsimpanKeyPressedif (evt.getKeyChar() == KeyEvent.VK_ENTER){if (isi == true)simpan();elseupdate();}}//GEN-LAST:event_btnsimpanKeyPressedprivate void btncariKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_btncariKeyPressed// TODO add your handling code here:if (evt.getKeyChar() == KeyEvent.VK_ENTER){cari();btnsimpan.setEnabled(true);btnhapus.setEnabled(true);btntambah.setEnabled(false);btnbatal.setEnabled(true);btnkeluar.setEnabled(true);btnrubah.setEnabled(true);}}//GEN-LAST:event_btncariKeyPressedprivate void txtnamaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtnamaActionPerformed// TODO add your handling code here:}//GEN-LAST:event_txtnamaActionPerformedprivate void txtstokKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtstokKeyPressedif (evt.getKeyChar() == KeyEvent.VK_ENTER) {btnsimpan.requestFocusInWindow();}}//GEN-LAST:event_txtstokKeyPressed/*** @param args the command line arguments*/public static void main(String args[]) {/* Set the Nimbus look and feel *///<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html*/try {for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {if ("Nimbus".equals(info.getName())) {javax.swing.UIManager.setLookAndFeel(info.getClassName());break;}}} catch (ClassNotFoundException ex) {java.util.logging.Logger.getLogger(FormBarang.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);} catch (InstantiationException ex) {java.util.logging.Logger.getLogger(FormBarang.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);} catch (IllegalAccessException ex) {java.util.logging.Logger.getLogger(FormBarang.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);} catch (javax.swing.UnsupportedLookAndFeelException ex) {java.util.logging.Logger.getLogger(FormBarang.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);}//</editor-fold>/* Create and display the form */java.awt.EventQueue.invokeLater(new Runnable() {public void run() {new FormBarang().setVisible(true);}});}// Variables declaration - do not modify//GEN-BEGIN:variablesprivate javax.swing.JButton btnbatal;private javax.swing.JButton btncari;private javax.swing.JButton btnhapus;private javax.swing.JButton btnkeluar;private javax.swing.JButton btnrubah;private javax.swing.JButton btnsimpan;private javax.swing.JButton btntambah;private javax.swing.JLabel jLabel1;private javax.swing.JLabel jLabel2;private javax.swing.JLabel jLabel3;private javax.swing.JLabel jLabel4;private javax.swing.JLabel jLabel5;private javax.swing.JLabel jLabel6;private javax.swing.JScrollPane jScrollPane1;private javax.swing.JScrollPane jScrollPane2;private javax.swing.JTable jTable1;private javax.swing.JTable tbbarang;private javax.swing.JTextField txtcari;private javax.swing.JTextField txtharga;private javax.swing.JTextField txtkode;private javax.swing.JTextField txtnama;private javax.swing.JTextField txtstok;// End of variables declaration//GEN-END:variables}
KETERANGAN :
Program tersebut mungkin saja ada sedikit Kesalahan/Error. Apabila ada yang ingin memperbaiki Kode tersebut, silahkan hubungi saya di sini.
Itulah Aplikasi Sederhana yang telah saya buat dengan menggunakan Program Java di Software Netbeans.
Terima Kasih 😄😘👌👍 :)
Wassalamu‘alaikum wr. wb.