Tutorial
How to make it?
(START) Membuat Project LatihanPerpus
Kita akan membuat project baru dengan nama LatihanPerpus ->Buat project baru->pilih kategori "Java with Ant" Projects "Java Application"

->Beri nama "LatihanPerpus"->Finish

1. Membuat Database & Tabel
Buatlah database baru di phpMyAdmin dengan nama db_latperpus kemudian Kita akan membuat 2 tabel, yaitu tabel admin dan data_buku dengan detail sebagai berikut:

Struktur masing-masing tabel:
Struktur tabel admin

Struktur tabel data_buku

2. Membuat Koneksi & Import Library
Sebelum membuat class baru untuk koneksi ke database, kita akan membutuhkan sebuah library yaitu JDBC Driver dan JCalendar untuk penanggalan. Berikut ini cara menambahkannya ke project kita:
Download library JDBC Driver di https://drive.google.com/file/d/1eOk-KRIh2L1tftiC2nyhJqasrPtCDXY2/view?usp=share_link dan library JCalendar di https://drive.google.com/file/d/1cksMu148f7kAEFZuxR8VaxaCNaYRXEff/view?usp=share_link
Ekstrak file yang telah didownload
Klik kanan pada bagian library yang ada di dalam project, kemudian pilih "Add JAR/Folder". Setelah itu pilih file "mysql-connector-java-8.0.30.jar" yang ada di dalam folder "MySqlJdbcDriver".


Lakukan cara yang sama untuk library JCalendar. Kemudan tambah komponen JCalendar ke palette. Caranya yaitu:
Tools->Palette->Swing/AWT Components

Pilih Add from JAR

Cari file yang tadi telah didownload dan pilih jcalendar-1.4, kemudian klik next.

Lalu pilih component JDateChooser, setelah itu klik next.

Pilih kategori Swing Windows(opsional) untuk meletakkan component tadi. Kemudian klik finish. Setelah itu component akan muncul di pallete.

Selanjutnya kita akan membuat 2 file class baru yaitu config.java dan koneksi.java. Berikut syntax untuk masing-masing file:
Setelah itu kita aka membuat 5 form:
3. Form Login
Setelah itu kita akan membuat sebuah form login untuk verifikasi admin sebelum bisa mengakses pengelolaan data perpustakaan.
Buat file JFrame Form baru ->klik kanan pada folder "latihanperpus"->New->JFrame Form-<Beri nama "FormLogin"

Ubah tampilan Form Login

Library, Class, Variabel
Login Button
Fungsi kode:
Ini adalah deklarasi sebuah method dengan nama loginbtnActionPerformed.
Method ini akan dieksekusi ketika tombol loginbtn diklik oleh pengguna.
Kode ini mencoba menjalankan query SQL untuk mengambil data dari tabel admin
dengan menggunakan nama pengguna (username) dan kata sandi (password)
yang diberikan oleh pengguna melalui teks field usnfd dan pwfd secara berturut-turut.
Jika query berhasil dieksekusi dan menghasilkan hasil (data), maka program akan menampilkan pesan "Berhasil Login!" menggunakan sebuah dialog box. Selain itu, program juga akan
membuka sebuah jendela baru FormMenu dan menutup jendela login saat ini (dispose).
Namun, jika query tidak menghasilkan data, program akan menampilkan pesan
"Username atau Password salah".
Jika terjadi exception (kesalahan) selama eksekusi kode di dalam blok try, program akan menampilkan pesan error yang menjelaskan kesalahan tersebut menggunakan sebuah dialog box.
Secara keseluruhan, kode ini terlihat seperti sebuah fungsi untuk melakukan otentikasi pengguna dengan database. Kode ini mengambil data pengguna dari tabel admin dan membandingkannya dengan data yang diinputkan oleh pengguna melalui antarmuka pengguna.
Jika data pengguna cocok, maka pengguna akan diizinkan masuk ke halaman berikutnya,
yaitu halaman FormMenu. Jika tidak, maka pengguna akan diminta untuk memasukkan ulang informasi yang benar.
4. Form Menu
Buat form baru dengan nama FormMenu. Kemudian ubah tampilannya.

Button Data Buku
Fungsi kode:
Baris kode ini membuat instance baru dari class FormDataBuku dan memanggil method setVisible(true) untuk menampilkan form tersebut pada antarmuka pengguna.
Baris kode ini menutup form sebelumnya dengan memanggil method dispose(). Method ini digunakan untuk membebaskan semua sumber daya yang terkait dengan form, seperti memori
dan objek yang digunakan oleh form.
Secara keseluruhan, kode ini terlihat seperti sebuah fungsi untuk membuka form FormDataBuku dan menutup form sebelumnya ketika tombol bukubtn diklik. Kode ini kemungkinan digunakan untuk navigasi antar halaman pada antarmuka pengguna.
Button Kembali
Fungsi kode: Sama seperti button data buku, namun kode ini membuka FormLogin.
Button Petunjuk(Opsional)
Fungsi kode: Membuka FormPetunjuk.
5. Form Data Buku
Buat form baru dengan nama FormDataBuku. Kemudian ubah tampilannya.

Daftar fungsi/method yang akan dibuat:
Library, Class, Variabel
Method Clear
Fungsi kode:
Method ini bertujuan untuk menghapus teks yang ada pada lima komponen GUI, yaitu txtidbuku, txtjudul, txtkategori, txtpenulis, dan txtpenerbit .
Method Load Table
Fungsi kode:
Baris kode ini adalah untuk membuat instance dari DefaultTableModel dan menambahkan enam kolom pada tabel yang akan ditampilkan pada antarmuka pengguna. Enam kolom tersebut adalah ID BUKU, JUDUL, KATEGORI, PENULIS, TAHUN TERBIT, dan PENERBIT .
Baris kode ini adalah untuk mengeksekusi perintah SQL yang berisi perintah SELECT untuk mengambil semua data dari tabel data_buku pada database dan menyimpan hasilnya pada ResultSet res. Kemudian, data yang ada pada res akan diiterasi menggunakan perulangan while dan ditambahkan ke dalam model tabel dengan method addRow(). Terakhir, model tabel akan ditampilkan pada antarmuka pengguna menggunakan setModel().
Secara keseluruhan, kode ini terlihat seperti sebuah fungsi untuk memuat data dari database dan menampilkan data tersebut pada tabel dalam antarmuka pengguna. Fungsi ini akan digunakan setiap kali diperlukan untuk menampilkan data buku yang tersimpan pada tabel data_buku dalam database.
Method Table Click Mouse
Klik kanan pada table kemudia pilih event->mouse->mouseClicked. Kemudia tambahkan kode ini.
Fungsi kode:
Method tersebut akan mengambil nilai dari setiap kolom pada baris yang dipilih oleh pengguna dan memasukkannya ke dalam komponen form seperti id buku, judul buku, kategori, penulis, tanggal terbit, dan penerbit.
Pertama-tama, method akan mengambil indeks baris yang dipilih oleh pengguna dengan memanggil method rowAtPoint() dari objek tablebuku dan menyimpan nilainya pada variabel baris. Kemudian, nilai dari setiap kolom pada baris yang dipilih akan diambil dengan memanggil method getValueAt() dari objek tablebuku dengan menggunakan variabel baris dan indeks kolom sebagai parameter, dan nilainya akan disimpan pada variabel bertipe String yang sesuai dengan komponen form yang ingin diisi.
Setelah itu, nilai dari variabel tglcin, yang berisi tanggal terbit buku dalam bentuk String, akan dikonversi menjadi objek Date menggunakan SimpleDateFormat, kemudian objek Date tersebut akan dikonversi menjadi objek Calendar, dan terakhir nilai dari objek Calendar tersebut akan diset ke komponen form tgl_terbit. Jika ada kesalahan saat konversi, maka akan muncul pesan error pada console.
Dengan kode tersebut, pengguna dapat dengan mudah mengubah data buku yang telah tersimpan di dalam database. Kode tersebut juga mempermudah pengguna untuk melakukan editing data buku karena pengguna hanya perlu melakukan klik pada baris yang ingin diubah, kemudian nilai dari setiap kolom pada baris tersebut akan secara otomatis terisi pada komponen form yang telah disediakan.
Save Button
Fungsi code:
Baris ini mendefinisikan sebuah blok try-catch yang digunakan untuk menangani pengecualian yang mungkin terjadi selama proses eksekusi kode. Blok try ini digunakan untuk mengubah format tanggal yang diambil dari komponen tgl_terbit menjadi string dengan format "dd-MM-yyyy".
Baris ini mendefinisikan sebuah variabel sql yang digunakan untuk menyimpan query untuk menambahkan data buku ke dalam tabel data_buku. Kemudian, variabel conn dibuat untuk mendapatkan koneksi ke database dengan memanggil method configDB() dari kelas config. Selanjutnya, variabel pst dibuat untuk menyiapkan statement SQL yang akan dieksekusi. Statement ini kemudian dieksekusi dengan memanggil method execute() dari objek pst. Jika eksekusi berhasil, maka akan muncul dialog box dengan pesan "Penyimpanan Data Berhasil".
Baris ini mendefinisikan blok catch untuk menangani pengecualian yang mungkin terjadi selama proses eksekusi kode. Jika terjadi pengecualian, maka pesan pengecualian akan ditampilkan di dalam dialog box.
Baris kode ini adalah untuk membersihkan inputan pada form dan memuat kembali data dari database ke dalam tabel pada antarmuka pengguna.
Secara keseluruhan, kode ini terlihat seperti sebuah fungsi untuk menambahkan data buku ke dalam database dan melakukan beberapa tindakan setelahnya seperti membersihkan inputan pada form dan memuat kembali data dari database ke dalam tabel pada antarmuka pengguna.
Update Button
Fungsi kode:
Baris ini mendefinisikan sebuah blok try-catch yang digunakan untuk menangani pengecualian yang mungkin terjadi selama proses eksekusi kode. Blok try ini digunakan untuk mengubah format tanggal yang diambil dari komponen tgl_terbit menjadi string dengan format "dd-MM-yyyy".
Baris ini mendefinisikan sebuah variabel sql yang digunakan untuk menyimpan query untuk mengubah data buku yang sudah ada dalam tabel data_buku. Kemudian, variabel conn dibuat untuk mendapatkan koneksi ke database dengan memanggil method configDB() dari kelas config. Selanjutnya, variabel pst dibuat untuk menyiapkan statement SQL yang akan dieksekusi. Statement ini kemudian dieksekusi dengan memanggil method execute() dari objek pst. Jika eksekusi berhasil, maka akan muncul dialog box dengan pesan "Data Berhasil Diubah".
Delete Button
Fungsi dari kode tersebut adalah untuk menghapus data buku dari database yang sudah tersimpan. Pada saat tombol "btnhapus" ditekan, maka program akan menjalankan prosedur yang melakukan aksi penghapusan data buku.
Pertama-tama, kode ini mencoba untuk melakukan penghapusan data dengan menjalankan sebuah perintah SQL yang didefinisikan di dalam variabel "sql". Perintah SQL ini akan menghapus data buku dari tabel "data_buku" berdasarkan nilai "id_buku" yang diinputkan oleh pengguna melalui komponen GUI "txtidbuku".
Setelah itu, kode ini mempersiapkan koneksi ke database dan mengeksekusi perintah SQL dengan menggunakan objek PreparedStatement. Jika penghapusan berhasil dilakukan, maka sebuah pesan dialog akan ditampilkan untuk memberitahu pengguna bahwa penghapusan berhasil dilakukan. Namun, jika terjadi kesalahan dalam penghapusan data, maka sebuah pesan dialog akan ditampilkan untuk memberitahu pengguna bahwa penghapusan gagal dilakukan beserta pesan kesalahan yang terkait.
Terakhir, setelah penghapusan berhasil dilakukan, maka tampilan tabel pada antarmuka pengguna akan diperbarui dengan memuat data buku terbaru dari database. Untuk melakukan pembaruan tampilan, dipanggillah method clear() untuk mengosongkan komponen-komponen input, dan method load_table() untuk memuat data buku terbaru dari database dan menampilkannya pada tabel pada antarmuka pengguna.
Back Button
Fungsi kode: Membuka FormMenu kemudian menutup form Data Buku. Intinya untuk kembali ke form menu.
Guide Button(Opsional)
Fungsi kode; Membuka FormPetunjuk.
6. Form Petunjuk(Opsional)
Buat form baru dengan nama FormPetunjuk. Kemudian ubah tampilannya.

Form ini hanya menampilkan keterangan setiap icon yang ada di form data buku sesuai fungsinya.
Close Button
Fungsi kode: Menutup form.
(FINISH)
Setelah semua form beserta fungsinya dibuat. Kalian bisa langsung mencoba menjalankannya.
Last updated