Halo Sobat Sederhana, pada artikel kali ini kita akan membahas bagaimana cara membuat apk sederhana untuk toko bangunan menggunakan Netbeans. Apk atau singkatan dari aplikasi adalah sebuah software yang berfungsi untuk mempermudah suatu pekerjaan atau aktivitas. Dalam konteks toko bangunan, apk ini dapat digunakan untuk mempermudah pengelolaan stok barang, penjualan, dan pembelian. Sebelum kita memulai, pastikan bahwa kamu sudah menginstall Netbeans terlebih dahulu ya.
1. Membuat Projek Baru
Langkah pertama yang harus dilakukan adalah membuat projek baru di Netbeans. Caranya cukup mudah. Kamu hanya perlu memilih menu File -> New Project, lalu pilih kategori Java dan pilih jenis projek Java Application. Setelah itu, kamu dapat memberikan nama projek seperti “TokoBangunanApp” dan menentukan letak penyimpanannya.
Setelah kamu membuat projek baru, maka Netbeans akan membuatkan beberapa file dasar yang dibutuhkan seperti file Main.java, file Manifest.mf, dan folder src.
2. Menambahkan Library JDBC
Langkah selanjutnya adalah menambahkan library JDBC. JDBC adalah sebuah library yang digunakan untuk mengakses dan memanipulasi data dari database. Dalam projek kita ini, kita akan menggunakan MySQL sebagai database. Untuk menambahkan library JDBC, kamu dapat melakukan langkah-langkah berikut:
- Buka menu Tools -> Library
- Klik tombol New Library
- Beri nama library dengan “JDBC”
- Pada tab Classpath, klik tombol Add JAR/Folder
- Pilih file mysql-connector-java-5.1.47.jar (library JDBC untuk MySQL)
- Klik OK
Jika sudah, library JDBC sudah berhasil ditambahkan dan siap digunakan dalam projek kita.
3. Membuat Database dan Tabel
Selanjutnya, kita akan membuat database dan tabel di dalam MySQL. Kamu dapat menggunakan aplikasi seperti XAMPP untuk mengaktifkan layanan MySQL di komputer kamu. Setelah itu, kamu dapat membuat database baru dengan nama “toko_bangunan”. Untuk membuat tabel, kamu dapat melakukan langkah-langkah berikut:
- Buka aplikasi phpMyAdmin melalui browser
- Pilih database “toko_bangunan”
- Klik tombol SQL
- Masukkan perintah SQL untuk membuat tabel seperti di bawah ini:
Nama Kolom |
Tipe Data |
Keterangan |
---|---|---|
id_barang |
INT |
Primary Key, Auto Increment |
nama_barang |
VARCHAR(255) |
|
harga_barang |
INT |
|
stok_barang |
INT |
- Klik tombol Go untuk menjalankan perintah SQL
- Jika berhasil, maka tabel “barang” sudah berhasil dibuat di dalam database “toko_bangunan”
4. Menambahkan Dependensi Project
Pada langkah ini, kita akan menambahkan library-library yang dibutuhkan dalam projek kita. Library tersebut adalah:
- Library JDBC untuk mengakses database MySQL
- Library GSON untuk mengonversi objek ke dalam format JSON
- Library OkHttp untuk melakukan request HTTP
Untuk menambahkan dependensi projek, kamu dapat melakukan langkah-langkah berikut:
- Buka file build.gradle di dalam projek kamu
- Tambahkan baris berikut untuk menambahkan dependensi library JDBC:
dependencies {compile 'mysql:mysql-connector-java:5.1.47'}
- Tambahkan baris berikut untuk menambahkan dependensi library GSON dan OkHttp:
dependencies {compile 'mysql:mysql-connector-java:5.1.47'compile 'com.google.code.gson:gson:2.8.5'compile 'com.squareup.okhttp3:okhttp:3.14.2'}
5. Membuat Class Model
Class model adalah sebuah class yang berfungsi untuk merepresentasikan data dalam bentuk objek. Dalam projek kita ini, kita akan membuat class model untuk merepresentasikan data barang di dalam database. Untuk membuat class model, kamu dapat melakukan langkah-langkah berikut:
- Buat file “Barang.java” di dalam folder “src”
- Masukkan kode berikut:
public class Barang {private int id_barang;private String nama_barang;private int harga_barang;private int stok_barang;public Barang() {}public Barang(int id_barang, String nama_barang, int harga_barang, int stok_barang) {this.id_barang = id_barang;this.nama_barang = nama_barang;this.harga_barang = harga_barang;this.stok_barang = stok_barang;}// getter dan setter}
Dalam kode di atas, kita membuat sebuah class Barang yang memiliki empat atribut yaitu id_barang, nama_barang, harga_barang, dan stok_barang. Kita juga membuat dua buah constructor, yaitu constructor kosong dan constructor dengan semua atribut. Selain itu, kita juga membuat getter dan setter untuk semua atribut.
6. Membuat Class DAO
Class DAO (Data Access Object) adalah sebuah class yang berfungsi untuk mengakses data dari database. Dalam projek kita ini, kita akan membuat class DAO untuk mengakses data barang di dalam database. Untuk membuat class DAO, kamu dapat melakukan langkah-langkah berikut:
- Buat file “BarangDAO.java” di dalam folder “src”
- Masukkan kode berikut:
import java.sql.*;import java.util.*;public class BarangDAO {private Connection connection;public BarangDAO() {try {connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/toko_bangunan", "root", "");} catch(SQLException e) {System.out.println("Error: " + e.getMessage());}}public ListgetAllBarang() {List listBarang = new ArrayList ();String sql = "SELECT * FROM barang";try {Statement statement = connection.createStatement();ResultSet resultSet = statement.executeQuery(sql);while(resultSet.next()) {Barang barang = new Barang(resultSet.getInt("id_barang"),resultSet.getString("nama_barang"),resultSet.getInt("harga_barang"),resultSet.getInt("stok_barang"));listBarang.add(barang);}} catch(SQLException e) {System.out.println("Error: " + e.getMessage());}return listBarang;}public Barang getBarangById(int id_barang) {Barang barang = null;String sql = "SELECT * FROM barang WHERE id_barang = ?";try {PreparedStatement statement = connection.prepareStatement(sql);statement.setInt(1, id_barang);ResultSet resultSet = statement.executeQuery();if(resultSet.next()) {barang = new Barang(resultSet.getInt("id_barang"),resultSet.getString("nama_barang"),resultSet.getInt("harga_barang"),resultSet.getInt("stok_barang"));}} catch(SQLException e) {System.out.println("Error: " + e.getMessage());}return barang;}public void addBarang(Barang barang) {String sql = "INSERT INTO barang (nama_barang, harga_barang, stok_barang) VALUES (?, ?, ?)";try {PreparedStatement statement = connection.prepareStatement(sql);statement.setString(1, barang.getNama_barang());statement.setInt(2, barang.getHarga_barang());statement.setInt(3, barang.getStok_barang());statement.executeUpdate();} catch(SQLException e) {System.out.println("Error: " + e.getMessage());}}public void updateBarang(Barang barang) {String sql = "UPDATE barang SET nama_barang = ?, harga_barang = ?, stok_barang = ? WHERE id_barang = ?";try {PreparedStatement statement = connection.prepareStatement(sql);statement.setString(1, barang.getNama_barang());statement.setInt(2, barang.getHarga_barang());statement.setInt(3, barang.getStok_barang());statement.setInt(4, barang.getId_barang());statement.executeUpdate();} catch(SQLException e) {System.out.println("Error: " + e.getMessage());}}public void deleteBarang(int id_barang) {String sql = "DELETE FROM barang WHERE id_barang = ?";try {PreparedStatement statement = connection.prepareStatement(sql);statement.setInt(1, id_barang);statement.executeUpdate();} catch(SQLException e) {System.out.println("Error: " + e.getMessage());}}}
Dalam kode di atas, kita membuat sebuah class BarangDAO yang memiliki beberapa method yaitu:
- getAllBarang() -> untuk mendapatkan semua data barang
- getBarangById(int id_barang) -> untuk mendapatkan data barang berdasarkan id_barang
- addBarang(Barang barang) -> untuk menambahkan data barang
- updateBarang(Barang barang) -> untuk mengupdate data barang
- deleteBarang(int id_barang) -> untuk menghapus data barang berdasarkan id_barang
Kita akan mengimplementasikan semua method di atas pada langkah-langkah selanjutnya.
7. Membuat Class Controller
Class controller adalah sebuah class yang berfungsi untuk mengatur alur program. Dalam projek kita ini, kita akan membuat class controller untuk mengatur tampilan aplikasi dan mengakses data dari database. Untuk membuat class controller, kamu dapat melakukan langkah-langkah berikut:
- Buat file “BarangController.java” di dalam folder “src”
- Masukkan kode berikut:
import com.google.gson.Gson;import okhttp3.*;import javax.swing.*;import javax.swing.table.DefaultTableModel;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.IOException;import java.util.List;public class BarangController {private JFrame frame;private JTextField textFieldIdBarang;private JTextField textFieldNamaBarang;private JTextField textFieldHargaBarang;private JTextField textFieldStokBarang;private JTable tableBarang;private BarangDAO barangDAO;private DefaultTableModel model;public BarangController() {barangDAO = new BarangDAO();// buat frameframe = new JFrame("Toko Bangunan");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setBounds(100, 100, 600, 400);frame.getContentPane().setLayout(null);// buat label halamanJLabel lblHalaman = new JLabel("Data Barang");lblHalaman.setBounds(10, 10, 100, 14);frame.getContentPane().add(lblHalaman);// buat label id_barangJLabel lblIdBarang = new JLabel("ID Barang");lblIdBarang.setBounds(10, 50, 100, 14);frame.getContentPane().add(lblIdBarang);// buat textfield id_barangtextFieldIdBarang = new JTextField();textFieldIdBarang.setBounds(120, 50, 100, 20);frame.getContentPane().add(textFieldIdBarang);textFieldIdBarang.setColumns(10);// buat label nama_barangJLabel lblNamaBarang = new JLabel("Nama Barang");lblNamaBarang.setBounds(10, 80, 100, 14);frame.getContentPane().add(lblNamaBarang);// buat textfield nama_barangtextFieldNamaBarang = new JTextField();textFieldNamaBarang.setBounds(120, 80, 100, 20);frame.getContentPane().add(textFieldNamaBarang);textFieldNamaBarang.setColumns(10);// buat label harga_barangJLabel lblHargaBarang = new JLabel("Harga Barang");lblHargaBarang.setBounds(10, 110, 100, 14);frame.getContentPane().add(lblHargaBarang);// buat textfield harga_barangtextFieldHargaBarang = new JTextField();textFieldHargaBarang.setBounds(120, 110, 100, 20);frame.getContentPane().add(textFieldHargaBarang);textFieldHargaBarang.setColumns(10);// buat label stok_barangJLabel lblStokBarang = new JLabel("Stok Barang");lblStokBarang.setBounds(10, 140, 100, 14);frame.getContentPane().add(lblStokBarang);// buat textfield stok_barangtextFieldStokBarang = new JTextField();textFieldStokBarang.setBounds(120, 140, 100, 20);frame.getContentPane().add(textFieldStokBarang);textFieldStokBarang.setColumns(10);// buat tombol tambahJButton btnTambah = new JButton("Tambah");btnTambah.setBounds(10, 170, 100, 23);btnTambah.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {int id_barang = Integer.parseInt(textFieldIdBarang.getText());String nama_barang = textFieldNamaBarang.getText();int harga_barang = Integer.parseInt(textFieldHargaBarang.getText());int stok_barang = Integer.parseInt(textFieldStokBarang.getText());Barang barang = new Barang(id_barang, nama_barang, harga_barang, stok_barang);barangDAO.addBarang(barang);refreshTable();}});frame.getContentPane().add(btnTambah);// buat tombol updateJButton btnUpdate = new JButton("Update");btnUpdate.setBounds(120, 170, 100, 23);btnUpdate.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {int id_barang = Integer.parseInt(textFieldIdBarang.getText());String nama_barang = textFieldNamaBarang.getText();int harga_barang = Integer.parseInt(textFieldHargaBarang.getText());int stok_barang = Integer.parseInt(textFieldStokBarang.getText());Barang barang = new Barang(id_barang, nama_barang, harga_barang, stok_barang);barangDAO.updateBarang(barang);refreshTable();}});frame.getContentPane().add(btnUpdate);// buat tombol hapusJButton btnHapus = new JButton("Hapus");btnHapus.setBounds(230, 170, 100, 23);btnHapus.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {int id_barang = Integer.parseInt(textFieldIdBarang.getText());barangDAO.deleteBarang(id_barang);refreshTable();}});frame.getContentPane().add(btnHapus);// buat tabel barangCara Membuat Apk Sederhana Toko Bangunan Menggunakan Netbeans