Sistem informasi perpustakaan merupakan solusi modern untuk mengelola data perpustakaan secara efisien. Studi kasus ini bertujuan untuk merancang, mengimplementasikan, dan mendokumentasikan pembuatan sistem informasi perpustakaan, termasuk pembuatan database dengan nama sistem_informasi_perpustakaan menggunakan Laragon sebagai platform pengembangan.
Artikel ini mencakup:
1. Rancangan Studi Kasus Sistem Informasi Perpustakaan.
2. Rancangan Entity-Relationship Diagram (ERD).
3. Rancangan Enhanced Entity-Relationship Diagram (EERD).
4. Implementasi Database di Laragon berdasarkan EERD.
5. Pembuatan Aplikasi Basis Data.
1. Rancangan Studi Kasus Sistem Informasi Perpustakaan
Sistem ini dirancang untuk mengelola data buku, anggota, peminjaman, dan pengembalian. Fungsionalitas utama mencakup:
Pendaftaran buku dan anggota
Sistem memungkinkan petugas untuk mendaftarkan buku baru dan anggota baru ke dalam sistem.
Proses peminjaman dan pengembalian
Mengelola transaksi peminjaman dan pengembalian buku, termasuk pencatatan tanggal peminjaman dan pengembalian.
Pemantauan ketersediaan buku
Menampilkan informasi terkait jumlah buku yang tersedia untuk dipinjam.
Analisis Kebutuhan
Fungsional
Input data buku, anggota, dan transaksi.
Menampilkan laporan peminjaman dan pengembalian buku.
Non-Fungsional
Sistem harus responsif dan mudah digunakan.
Skalabilitas untuk menambah data besar di masa depan.
Entitas Utama
1. Buku: Berisi informasi tentang buku seperti ID, judul, pengarang, tahun terbit, kategori, dan stok buku.
2. Anggota: Berisi data anggota perpustakaan, seperti ID anggota, nama, alamat, dan kontak.
3. Peminjaman: Mengelola data transaksi peminjaman buku, termasuk ID buku, ID anggota, tanggal pinjam, dan status peminjaman.
4. Pengembalian: Mengelola informasi pengembalian buku berdasarkan transaksi peminjaman.
2. Rancangan Entity-Relationship Diagram (ERD)
Berikut adalah gambaran umum ERD:
Entitas dan Atribut
Buku: id_buku (PK), judul, pengarang, tahun_terbit, kategori, stok.
Anggota: id_anggota (PK), nama, alamat, telepon.
Peminjaman: id_peminjaman (PK), id_buku (FK), id_anggota (FK), tanggal_pinjam, status_peminjaman.
Pengembalian: id_pengembalian (PK), id_peminjaman (FK), tanggal_kembali.
Relasi Antar Entitas
Buku berhubungan dengan Peminjaman (1:M).
Anggota berhubungan dengan Peminjaman (1:M).
Peminjaman berhubungan dengan Pengembalian (1:1).
3. Rancangan Enhanced Entity-Relationship Diagram (EERD)
Untuk memperluas ERD, kita menambahkan atribut tambahan dan relasi:
Atribut Tambahan
Buku: Menambahkan atribut stok untuk mencatat jumlah buku yang tersedia.
Peminjaman: Menambahkan atribut status_peminjaman yang menunjukkan apakah buku sedang dipinjam atau sudah dikembalikan.
Relasi Baru
Menambahkan tabel petugas untuk mengelola transaksi yang dilakukan oleh petugas perpustakaan.
Pengelompokan buku berdasarkan kategori untuk mempermudah pencarian.
Gambar EERD dapat dibuat menggunakan tools seperti MySQL Workbench atau Lucidchart.
4. Implementasi Database di Laragon Berdasarkan EERD
Langkah-Langkah
1. Persiapan Laragon
Jalankan Laragon dan buka phpMyAdmin.
Buat database dengan nama sistem_informasi_perpustakaan.
2. Membuat Tabel
Gunakan SQL berikut untuk membuat tabel:
Tabel buku
CREATE TABLE buku (
  id_buku INT AUTO_INCREMENT PRIMARY KEY,
  judul VARCHAR(255),
  pengarang VARCHAR(255),
  tahun_terbit YEAR,
  kategori VARCHAR(100),
  stok INT
);
Tabel anggota
CREATE TABLE anggota (
  id_anggota INT AUTO_INCREMENT PRIMARY KEY,
  nama VARCHAR(255),
  alamat TEXT,
  telepon VARCHAR(15)
);
Tabel peminjaman
CREATE TABLE peminjaman (
  id_peminjaman INT AUTO_INCREMENT PRIMARY KEY,
  id_buku INT,
  id_anggota INT,
  tanggal_pinjam DATE,
  status_peminjaman ENUM('Dipinjam', 'Dikembalikan'),
  FOREIGN KEY (id_buku) REFERENCES buku(id_buku),
  FOREIGN KEY (id_anggota) REFERENCES anggota(id_anggota)
);
Tabel pengembalian
CREATE TABLE pengembalian (
  id_pengembalian INT AUTO_INCREMENT PRIMARY KEY,
  id_peminjaman INT,
  tanggal_kembali DATE,
  FOREIGN KEY (id_peminjaman) REFERENCES peminjaman(id_peminjaman)
);
Tabel petugas
Tabel ini untuk mencatat data petugas yang mengelola transaksi peminjaman dan pengembalian.
CREATE TABLE petugas (
  id_petugas INT AUTO_INCREMENT PRIMARY KEY,
  nama_petugas VARCHAR(255),
  jabatan VARCHAR(100),
  username VARCHAR(50) UNIQUE,
  password VARCHAR(255) -- Menggunakan hash untuk password
);
3. Masukkan Data Awal
Gunakan fitur insert pada phpMyAdmin atau perintah SQL INSERT INTO untuk menambahkan data awal pada tabel.
5. Pembuatan Aplikasi Basis Data
Aplikasi ini akan dibangun menggunakan PHP dengan framework Laravel atau murni PHP untuk CRUD.
Fitur Aplikasi
1. Dashboard Admin: Menampilkan data buku, anggota, peminjaman, dan pengembalian.
2. Form Input: Untuk menambahkan data buku dan anggota.
3. Proses Transaksi:
Peminjaman: Pilih buku dan anggota, atur tanggal pinjam.
Pengembalian: Pilih transaksi peminjaman untuk diperbarui.
Langkah Implementasi
1. Konfigurasi Database
Buat file .env di Laravel atau konfigurasi koneksi di PHP:
$conn = new mysqli("localhost", "root", "", "sistem_informasi_perpustakaan");
2. Membuat CRUD Buku
Create: Form untuk menambah buku.
Read: Menampilkan semua data buku.
Update: Form untuk mengedit detail buku.
Delete: Menghapus buku.
Contoh kode untuk menampilkan data buku:
$result = $conn->query("SELECT * FROM buku");
while ($row = $result->fetch_assoc()) {
  echo $row['judul'];
}
3. Fitur Transaksi
Buat logika untuk proses peminjaman dan pengembalian berdasarkan relasi di database.
Contoh proses peminjaman buku:
$id_buku = $_POST['id_buku'];
$id_anggota = $_POST['id_anggota'];
$id_petugas = $_SESSION['id_petugas']; // ID petugas yang sedang login
$tanggal_pinjam = date('Y-m-d');
$query = "INSERT INTO peminjaman (id_buku, id_anggota, id_petugas, tanggal_pinjam, status_peminjaman)Â
     VALUES ('$id_buku', '$id_anggota', '$id_petugas', '$tanggal_pinjam', 'Dipinjam')";
$conn->query($query);
Ingin melihat penjelasan selengkapnya? Cek video ini!
Baca konten-konten menarik Kompasiana langsung dari smartphone kamu. Follow channel WhatsApp Kompasiana sekarang di sini: https://whatsapp.com/channel/0029VaYjYaL4Spk7WflFYJ2H