90
PERANCANGAN DAN IMPLEMENTASI
4.1 Perancangan Sistem
Setelah melakukan interview dan analisis pada sistem yang sudah berjalan, maka akan dilakukan perubahan sistem yang terdahulu digunakan. Sistem yang ada sudah terkomputerisasi dan berjalan cukup baik, namun hanya ada beberapa fitur yang dilakukan perubahan. Oleh karena itu kan dirancang basis data sesuai dengan kebutuhan perpustakaan. Tahap-tahap perancangan sistem basis data pada Perpustakaan SMA Negeri 2 Jakarta, meliputi:
1. Perancangan Basis Data Konseptual (Conseptual Database Design) 2. Perancangan Basis Data Logikal (Logical Database Design)
3. Perancangan Basis Data Physical (Physical Database Design) 4.1.1 Perancangan Basisdata Konseptual
Perancangan Basisdata Konseptual meruapakan suatu proses pembuatan dari suatu entitas dengan menggunakan data yang telah diperoleh dari perpustakaan. Ada beberapa langkah penting dalam menentukan rancangan basisdata secara konseptual, diantaranya :
1. Mengidentifikasi tipe entitas 2. Mengidentifikasi tipe Relasional 3. Mengidentifikasi Atribut
4. Menentukan Domain Atribut
5. Menentukan Candidate Key, Primary Key, dan alternate key 6.Mempertimbangkan penggunaan konsep permodelan tingkat tinggi
7. Memeriksa redudansi
8. Validasi Model Konseptual dengan Transaksi User 9. Melakukan review model data konseptual dengan user 4.1.1.1 Mengidentifikasi Tipe Entity
Table 4.1 Tabel Tipe Entity
Nama entitas deskripsi Nama lain Kejadian
Staff Berisi informasi
staff yang bekerja di SMA Negeri 2 Gajah Mada
Admin Satu staff melayani satu atau banyak pengembalian
Anggota Berisi informasi mengenai anggota perpustakaan - Satu member dapat melakukan banyak peminjaman atau tidak sama sekali
Buku Berisi informasi
mengenai buku yang ada di perpustakaan
- Satu buku bisa
terdapat dalam satu atau banyak penminjaman Peminjaman Berisi informasi
mengenai transaksi
- Dalam satu
peminjaman anggota dapat
peminjaman di perpustakaan SMA Negeri 2
meminjam satu atau lebih buku
Pengembalian Berisi informasi mengenai transaksi pengembalian buku di perpustkaan - Dalam satu pengembalian anggota dapat mengembalikan satu atau lebih buku
HistoryPeminjaman Berisi informasi history peminjaman dari setiap anggota perpustakaan - Dalam satu history memiliki satu atau lebih data peminjaman
KategoriBuku Berisi informasi mengenai jenis-jenis buku yang ada di
perpustakaan
- Satu buku bisa
memiliki banyak kategori
PenggatianBuku Berisi informasi mengenai buku yang diganti
- Jika terjadi kehilangan atau kerusakan makan
anggota harus mengganti buku dengan yang sama dan baru Jabatan Berisi informasi
mengenai jabatan setiap anggota perpustakaan - Setiap anggota perpustakaan memiliki jabatan
4.1.1.2 Menentukan Multiplicity Constraints dari Tipe Relasi
Tabel 4.2 Tabel Tipe Relationship
Nama Entity Multiplicity Relationship Multiplicity Nama Entity
Staff 1..1 Melayani 1..* Pengembalian
Anggota 1..1 Memiliki 0..* HistoryPeminjaman
1..1 Melakukan 0..* Peminjaman
1..* Memiliki 1..1 Jabatan
1..1 Melakukan 0..* PenggantianBuku
Buku 1..* Memiliki 1..1 KategoriBuku
Peminjaman 1..* Mencakup 1..* Buku
1..1 Mempengaruhi 1..1 HistoryPeminjaman
1..1 Melakukan 0..1 PenggantianBuku
Gambar 4.1 ERD Konseptual awal
4.1.1.3 Mengidentifikasi Tipe dan Menggabungkan Atribut Setiap Entity
Table 4.3 Tabel Atribut Entity
Nama entitas Attribute Deskripsi Tipe data Nul l
Multi value
d
Staff NIP Berisi kode
nomer induk pegawai / staff
perpustakaan
Nama Berisi nama
staff perpustakaan
Varchar(50) No No
Alamat Berisi alamat staff perpustakaan
Varchar(10 0)
No No
NoTelp Berisi nomor telepon staff perpustakaan Varchar(12) No Yes Password Berisi password setiap staff perpustakaan Varchar(10) No No
JenisKelamin Berisi jenis kelamin staff (L untuk laki-laki dan P untuk perempuan) Boolean No No
TglLahir Berisi tanggal lahir staff perpustakaan
Date No No
Anggota NoIndukAnggota Berisi nomor induk anggota
yang dimiliki setiap anggota
perpustakaan
Int No No
Nama Berisi nama
anggota perpustakaan
Varchar(50) No No
Alamat Berisi alamat anggota perpustakaan
Varchar(10 0)
No No
NoTelp Berisi nomor telepon anggota perpustakaan Varchar(12) No Yes Password Berisi password anggota Varchar(10) No No
perpustakaan
KodeJabatan Berisi kode jabatan setiap
anggota
Varchar(10) No No
JenisKelamin Berisi jenis kelamin anggota perpustakaan (L untuk laki-laki dan P untuk perempuan) Boolean No No
TglLahir Berisi tanggal lahir anggota perpustakaan
Date No No
Peminjaman KodePeminjaman Berisi kode setiap transaksi peminjaman yang terjadi di perpustakaan Varchar(10) No No
NoIndukAnggota Berisi nomor induk anggota yang dimiliki setiap anggota perpustakaan Int No No
NoIndukBuku Berisi nomor induk yang terdapat pada
setiap buku
Varchar(10) No No
JumlahPeminjaman Berisi jumlah buku yang dipinjam dalam sebuah transaksi peminjaman Int No No
TanggalPeminjaman Berisi tanggal dilakukannya transaksi peminjaman Date No No TanggalHarusKemb ali Berisi tanggal berakhirnya masa Date No No
peminjaman
Pengembalian KodePengembalian Berisi kode setiap transaksi pengembalian yang terjadi di perpustakaan Varchar(10) No No
NoIndukBuku Berisi nomor induk yang terdapat pada
setiap buku
Varchar(10) No No
KodePeminjaman Berisi kode setiap transaksi peminjaman yang terjadi di perpustakaan Varchar(10) No No
NoIndukAnggota Berisi nomor induk anggota
yang dimiliki setiap anggota
perpustakaan TanggalPengembalia n Berisi tanggal berlangsungny a transaksi pengembalian Date No No
NIP Berisi kode
nomer induk pegawai / staff
perpustakaan
Int No No
Buku NoIndukBuku Berisi nomor induk yang terdapat pada
setiap buku
Varchar(10) No No
Judul Berisi judul buku perpustakaan
Varchar(50) No No
Pengarang Berisi nama pengarang yg terdapat pada
buku
ISBN/ISSN Berisi kode ISBN/ISSN yang terdapat pada setiap buku Varchar(20) No No
Penerbit Berisi nama penerbit buku
Varchar(40) No No
TahunTerbit Berisi tahun diterbitkannya
buku
Varchar(4) No No
KodeKategori Berisi kode dari setiap kategori buku Varchar(10) No No Sinopsis Berisi gambaran singkat tentang isi buku Varchar(10 0) Yes No
Stok Berisi jumlah stok buku yang terdapat
di perpustakaan
KategoriBuku KodeKategori Berisi kode dari setiap kategori buku
Varchar(10) No No
NamaKategori Berisi nama jenis kategori
buku
Varchar(20) No No
Jabatan KodeJabatan Berisi kode jabatan dari setiap anggota
perpustakaan
Varchar(10) No No
NamaJabatan Berisi nama jabatan setiap anggota perpustakaan Varchar(20) No No HistoryPeminjam an
KodeHistory Berisi kode history transaksi peminjaman yang pernah
dilakukan
KodePeminjaman Berisi kode setiap transaksi peminjaman yang terjadi di perpustakaan Varchar(20) No No
NoIndukAnggota Berisi nomor induk anggota
yang dimiliki setiap anggota
perpustakaan
Int No No
Status Berisi status peminjaman apakah telah dikembalikan
atau belum
Varchar(10) No No
PenggantianBuku KodePenggantian Berisi kode penggantian buku apabila
terjadi kerusakan
atau hilang
NoIndukAnggota Berisi nomor induk anggota
yang dimiliki setiap anggota
perpustakaan
Int No No
KodePeminjaman Berisi kode setiap transaksi peminjaman yang terjadi di perpustakaan Varchar(10) No No
TanggalPenggantian Berisi tanggal dilakukannya penggantian
buku
4.1.1.4 Menentukan Domain Attribute Tabel 4.4 Tabel Domain Atribut
Nama Entity Attribute Data Type and Length
Domain attribute
Staff NIP Int ’0’-‘9’
Nama Varchar(50) ‘A’-‘Z’
Alamat Varchar(50) ‘A’-‘Z’,’0’-‘9’
No Telp Varchar(12) ’0’-‘9’
Password Varchar(10) ‘A’-‘Z’,’0’-‘9’ Jenis Kelamin Char(1) ‘L’ atau ‘P’
Anggota No.IndukAnggota int ’0’-‘9’
Nama Varchar(50) ‘A’-‘Z’
Alamat Varchar(100) ‘A’-‘Z’,’0’-‘9’
NoTelp Varchar(12) ’0’-‘9’
Password Varchar(12) ‘A’-‘Z’,’0’-‘9’ KodeJabatan Varchar(10) ‘A’-‘Z’,’0’-‘9’ JenisKelamin Boolean ‘L’atau’P’ Peminjaman KodePeminjaman Varchar(10) ‘A’-‘Z’,’0’-‘9’
NoIndukAnggota Int ’0’-‘9’
NoIndukBuku Varchar(10) ‘A’-‘Z’,’0’-‘9’ TanggalPeminjaman Date dd-mm-yyyy
TanggalHarusKembali Date dd-mm-yyyy Pengembalian KodePengembalian Varchar(10) ‘A’-‘Z’,’0’-‘9’
NoIndukBuku Varchar(10) ‘A’-‘Z’,’0’-‘9’ KodePeminjaman Varchar(10) ‘A’-‘Z’,’0’-‘9’ NoIndukAnggota Varchar(10) ‘A’-‘Z’,’0’-‘9’ TanggalPengembalian Date dd-mm-yyyy KodeDenda Varchar(10) ‘A’-‘Z’,’0’-‘9’
NIP Int ’0’-‘9’
Buku NoIndukBuku Varchar(10) ‘A’-‘Z’,’0’-‘9’
Judul Varchar(50) ‘A’-‘Z’,’0’-‘9’ Pengarang Varchar(50) ‘A’-‘Z’,’0’-‘9’ ISBN/ISSN Varchar(20) ‘A’-‘Z’,’0’-‘9’ Penerbit Varchar(40) ‘A’-‘Z’,’0’-‘9’ TahunTerbit Varchar(4) ‘0’-‘9’
KodeKategori Varchar(10) ‘A’-‘Z’,’0’-‘9’ Sinopsis Varchar(100) ‘A’-‘Z’,’0’-‘9’
Stok Integer ’0’-‘9’
KategoriBuku KodeKategori Varchar(10) ‘A’-‘Z’,’0’-‘9’ NamaKategori Varchar(20) ‘A’-‘Z’,’0’-‘9’ Jabatan KodeJabatan Varchar(10) ‘A’-‘Z’,’0’-‘9’ NamaJabatan Varchar(10) ‘A’-‘Z’,’0’-‘9’ HistoriPeminjaman KodeHistori Varchar(20) ‘A’-‘Z’,’0’-‘9’ KodePeminjaman Varchar(20) ‘A’-‘Z’,’0’-‘9’
4.1.1.5 Mengidentifikasi Candidate Key dan Primary Key Pada Setiap Entity
Tabel 4.5 Tabel Candidate Key, Primary Key, dan Alternate Key Nama Entity Candidate key Primary Key Alternate key
Staff NIP No.Telp Alamat NIP No.telpon Alamat Anggota No.IndukAnggota No.Telp Alamat Kodejabatan No.IndukAnggota No.Telp Alamat KodeJabatan
Buku No.indukBuku No.indukBuku ISBN/ISSN
NoIndukAnggota Int ’0’-‘9’
Status Varchar(10) ‘A’-‘Z’
PenggantianBuku KodePenggantian Varchar(10) ‘A’-‘Z’,’0’-‘9’
NoIndukAnggota Int ’0’-‘9’
KodePeminjaman Varchar(10) ‘A’-‘Z’,’0’-‘9’ TanggalPenggantian Datetime dd-mm-yyyy
ISBN/ISSN KodeKategori KodeKategori Peminjaman KodePeminjaman No.IndukAnggota No.indukBuku KodePeminjaman No.IndukAnggota No.indukBuku Pengembalian KodePengembalian No.indukBuku KodePeminjaman No.IndukAnggota NIP KodePengembalian No.indukBuku KodePeminjaman No.IndukAnggota NIP HistoryPeminjaman KodeHistory KodePeminjaman NoIndukAnggota KodeHistory KodePeminjaman NoIndukAnggota
Jabatan KodeJabatan KodeJabatan
KategoriBuku KodeKategori KodeKategori
PenggantianBuku KodePenggantian No.IndukAnggota KodePenggantian No.IndukAnggota KodePeminjaman
KodePeminjaman
Gambar 4.2 ERD Konseptual dengan Primary key
4.1.1.6 Mempertimbangkan Penggunaan Konsep Permodelan Tingkat Tinggi (Langkah Opsional)
Pada tahap ini, ERD yang kami buat tidak menggunakan konsep spesialisasi/generalisasi, agregasi, maupun komposisi, sehingga tahap ini tidak kami lakukan
4.1.1.7 Memeriksa Redudansi
Pada tahap ini, ERD yang kami buat sudah tidak terdapat redudansi pada hubungan antar entitas, sehingga tahap ini tidak kami lakukan
4.1.1.8 Memvalidasi Model Data Konseptual Terhadap Transaksi User
Tujuan dari langkah ini adalah untuk memastikan bahwa model data konseptual dapat mendukung kebutuhan transaksi.
Transaksi user yang terjadi pada model data konseptual adalah sebagai berikut :
a) Melihat rincian data anggota perpustakaan b) Mengidentifikasi jumlah anggota
c) Melihat rincian data staff perpustakaan d) Mengidentifikasi jumlah staff
e) Melihat rincian data buku perpustakaan f) Mengidentifikasi jumlah buku
g) Melihat rincian data peminjaman buku h) Melihat rincian data pengembalian buku
i) Melihat rincian history peminjaman dari masing-masing anggota
j) Melihat rincian data denda yang pernah diberikan kepada anggota perpustakaan
k) Memasukkan data peminjaman baru l) Memasukkan data pengembalian baru m) Memasukkan data staff baru
n) Memasukkan data buku baru o) Memasukkan data anggota baru
p) Mengubah data staff q) Mengubah data anggota
r) Menghapus data anggota perpustakaan
s) Menghapus data buku yang ada di perpustakaan t) Menghapus data staff perpustakaan
u) Menghapus history peminjaman
Gambar 4.3 ERD Konseptual dengan transaksi user 4.1.1.9 Melakukan Review Model Data Konseptual Dengan User
Tujuan langkah ini adalah untuk memastikan bahwa model data konseptual yang dibuat telah memenuhi kebutuhan data perpustakaan. Setelah melakukan review dengan petugas perpustakaan SMA Negeri 2 Jakarta, model data konseptual yang dibuat telah memenuhi kebutuhan.
4.1.2 Perancangan Basisdata Logikal
Tujuan dari tahap ini adalah untuk menerjemahkan model data konseptual menjadi sebuah model data logical, lalu memvalidasikan model tersebut untuk memastikan bahwa secara structural sudah tepat dan mampu mendukung kebutuhan transaksi
Pada perancangan basisdata logical ini terdapat beberapa langkah, yaitu:
1. Penurunan relasi untuk model data logikal 2. Validasi relasi menggunakan normalisasi 3. Validasi relasi terhadap transaksi user 4. Memeriksa integrity constraints
5. Melakukan review model data logikal dengan user 6. Mempertimbangkan perkembangan di masa depan 7. Pemilihan Database Management System
4.1.2.1 Penurunan Relasi Untuk Model Data Logical
Tujuan dari langkah ini adalah membuat relasi bagi model data logical untuk merepresentasikan antitas, relasi, dan atribut yang telah diidentifikasi.
4.1.2.1.1 Strong Entity Types
Untuk setiap strong entity pada model data konseptual, dibuat relasi yang mencakup semua simple atribut dari entitas tersebut
Staff(NIP, Nama, Alamat, NoTelp, Password, JenisKelamin, TglLahir)
Primary Key NIP
KategoriBuku(KodeKategori, KategoriBuku) Primary Key KodeKategori
Jabatan(KodeJabatan, NamaJabatan) Primary Key KodeJabatan
4.1.2.1.2 Weak Entity Types
Anggota(NoIndukAnggota, Nama, Alamat, NoTelp, Password, KodeJabatan, JenisKelamin, TglLahir)
Primary Key NoIndukAnggota
Foreign Key KodeJabatan references Jabatan(KodeJabatan)
Peminjaman(KodePeminjaman, NoIndukAnggota, NoIndukBuku, JumlahPeminjaman, TanggalPeminjaman, TanggalHarusKembali)
Primary Key KodePeminjaman
Foreign Key NoIndukAnggota references Anggota(NoIndukAnggota)
Foreign Key NoIndukBuku references Buku(NoIndukBuku)
Pengembalian(KodePengembalian, NoIndukBuku, KodePeminjaman, NoIndukAnggota, NIP, TanggalPengembalian)
Primary Key KodePengembalian
Foreign Key NoIndukBuku references Buku(NoIndukBuku)
Foreign Key KodePeminjaman references Peminjaman(KodePeminjaman)
Foreign Key NoIndukAnggota references Anggota(NoIndukAnggota)
Foreign Key NIP references Staff(NIP)
Buku(NoIndukBuku, Judul, Pengarang, ISBN, Penerbit, TahunTerbit, KodeKategori, Sinopsis, Stok)
Primary Key NoIndukBuku
Foreign Key KodeKategori references Kategori(KodeKategori)
HistoryPeminjaman(KodeHistory, KodePeminjaman, KodePengembalian, NoIndukAnggota, Status)
Primary Key KodeHistory
Foreign Key KodePeminjaman references Peminjaman(KodePeminjaman)
Foreign Key KodePengembalian references Pengembalian(KodePengembalian)
Foreign Key NoIndukAnggota references Anggota(NoIndukAnggota)
PenggantianBuku(KodePenggantian, NoIndukAnggota, KodePeminjaman,TanggalPenggantian)
Primary Key KodePenggantian
Foreign Key NoIndukAnggota references Anggota(NoIndukAnggota)
Foreign Key KodePeminjaman references Peminjaman(KodePeminjaman)
4.1.2.1.3 One-to-many (1:*) Binary Relationship Types
Pada Setiap hubungan one-to-many, entitas yang berada pada one side menjadi parent dan entitas yang berada pada many side menjadi child.
Berikut ini relasi one-to-many yang ada pada basis data yang telah dibuat:
1. Hubungan 1:* antara Staff dan Pengembalian
Staff(NIP, Nama, Alamat, NoTelp, Password, JenisKelamin, TglLahir)
Primary Key NIP
Pengembalian(KodePengembalian, NoIndukBuku, KodePeminjaman, NoIndukAnggota, NIP, TanggalPengembalian)
Primary Key KodePengembalian
Foreign Key NIP references Staff(NIP)
2. Hubungan 1:* antara Anggota dan HistoryPeminjaman
Anggota(NoIndukAnggota, Nama, Alamat, NoTelp, Password, KodeJabatan, JenisKelamin, TglLahir)
Primary Key NoIndukAnggota
HistoryPeminjaman(KodeHistory, KodePeminjaman, KodePengembalian, NoIndukAnggota, Status)
Primary Key KodeHistory
Foreign Key NoIndukAnggota references Anggota(NoIndukAnggota)
3. Hubungan 1:* antara Anggota dan Peminjaman
Anggota(NoIndukAnggota, Nama, Alamat, NoTelp, Password, KodeJabatan, JenisKelamin, TglLahir)
Primary Key NoIndukAnggota
Peminjaman(KodePeminjaman, NoIndukAnggota,
NoIndukBuku, JumlahPeminjaman,
TanggalPeminjaman, TanggalHarusKembali)
Primary Key KodePeminjaman
Foreign Key NoIndukAnggota references Anggota(NoIndukAnggota)
Anggota(NoIndukAnggota, Nama, Alamat, NoTelp, Password, KodeJabatan, JenisKelamin, TglLahir)
Primary Key NoIndukAnggota
Pengembalian(KodePengembalian, NoIndukBuku, KodePeminjaman, NoIndukAnggota, NIP, TanggalPengembalian)
Primary Key KodePengembalian
Foreign Key NoIndukAnggota references Anggota(NoIndukAnggota)
5. Hubungan 1:* antara Jabatan dan Anggota
Jabatan(KodeJabatan, NamaJabatan)
Primary Key KodeJabatan
Anggota(NoIndukAnggota, Nama, Alamat, NoTelp, Password, KodeJabatan, JenisKelamin, TglLahir)
Primary Key NoIndukAnggota
Foreign key KodeJabatan references Jabatan(KodeJabatan)
6. Hubungan 1:* antara Anggota dan PenggantianBuku
Anggota(NoIndukAnggota, Nama, Alamat, NoTelp, Password, KodeJabatan, JenisKelamin, TglLahir)
Primary Key NoIndukAnggota
PenggantianBuku(KodePenggantian,
NoIndukAnggota, KodePeminjaman,
TanggalPenggantian)
Primary Key KodePenggantian
Foreign Key NoIndukAnggota references Anggota(NoIndukAnggota)
7. Hubungan 1:* antara KategoriBuku dan Buku
KategoriBuku(KodeKategori, KategoriBuku)
Primary Key KodeKategori
Buku(NoIndukBuku, Judul, Pengarang, ISBN, Penerbit, TahunTerbit, KodeKategori, Sinopsis, Stok)
Primary Key NoIndukBuku
Foreign Key KodeKategori references KategoriBuku(KodeKategori)
Penentuan parent dan child entity untuk menggambarkan hubungan 1:1 tidak dapat dilakukan dengan melihat cardinality hubungan tersebut.Penentuan parent dan child entity dilakukan dengan memperhatikan participation constraint di antara kedua entitas tersebut.Terdapat 3 jenis participation constraint yang dapat diperimbangkan:
a Mandatory participation pada kedua entitas hubungan 1:1.
b. Mandatory participation pada salah satu entitas hubungan 1:1.
c. Optional participation pada kedua entitas hubungan 1:1. Pada model konseptual, terdapat 2 hubungan 1:1, yaitu antara HistoryPeminjaman dan Peminjaman-PenggantianBuku.
1. Hubungan 1:1 antara Peminjaman dan HistoryPeminjaman
Peminjaman(KodePeminjaman, NoIndukAnggota, NoIndukBuku, JumlahPeminjaman, TanggalPeminjaman, TanggalHarusKembali)
Primary Key KodePeminjaman
HistoryPeminjaman(KodeHistory, KodePeminjaman, KodePengembalian, NoIndukAnggota, Status)
Primary Key KodeHistory
Foreign key KodePeminjaman references Peminjaman(KodePeminjaman).
2. Hubungan 1:1 antara Peminjaman dan PenggantianBuku
Peminjaman(KodePeminjaman, NoIndukAnggota, NoIndukBuku, JumlahPeminjaman, TanggalPeminjaman, TanggalHarusKembali)
Primary Key KodePeminjaman
PenggantianBuku(KodePenggantian, NoIndukAnggota, KodePeminjaman, TanggalPenggantian)
Primary Key KodePenggantian
Foreign key KodePeminjaman references Peminjaman(KodePeminjaman).
4.1.2.1.5 Many-to-Many Binary Relationship Types
Untuk setiap hubungan many-to-many pada model data konseptual dibuat relasi yang menggambarkan hubungan tersebut. Primary key dari masing-masing entitas yang berpartisipasi dalam hubungan tersebut, turut dimasukkan ke dalam relasi yang baru dibentuk sebagai foreign key. Satu atau beberapa foreign key
tersebut juga akan berperan sebagai primary key untuk relasi yang baru saja terbentuk. Relasi–relasi yang terbentuk antara lain :
1. Hubungan many-to-many antara Peminjaman dan Buku menghasilkan entitas baru bernama DetailPeminjaman
Dari
Gambar 4.4 Relasi Many-to-Many Antara Peminjaman dan Buku
Menjadi
Gambar 4.5 Menghilangkan Relasi Many-to-Many Antara Peminjaman dan Buku
DetailPeminjaman(KodePeminjaman, NoIndukBuku, JumlahPeminjaman)
Foreign key KodePeminjaman references Peminjaman(KodePeminjaman)
Foreign key NoIndukBuku references Buku(NoIndukBuku)
2. Hubungan many-to-many antara Pengembalian dan Buku menghasilkan entitas baru bernama DetailPengembalian
Dari
Gambar 4.6 Relasi Many-to-Many Antara Pengembalian dan Buku
Menjadi
Gambar 4.7 Menghilangkan Relasi Many-to-Many Antara Pengembalian dan Buku
DetailPengembalian(KodePengembalian, NoIndukBuku, Jumlah)
Foreign Key KodePengembalian references Pengembalian(KodePengembalian)
Foreign Key NoIndukBuku references Buku(NoIndukBuku)
Gambar 4.8 ERD Logikal
4.1.2.2 Validasi Relasi Menggunakan Normalisasi
Tujuan dari normalisasi ini adalah untuk memastikan bahwa setiap relasi memiliki jumlah atribut minimal untuk mendukung kebutuhan data perusahaan.
Tahap ini tidak dilakukan karena pada model data logical tidak terdapat redudansi, ketergantungan transitif, dan ketergantungan parsial. 4.1.2.3 Validasi Relasi Terhadap Transaski User
Tujuan dari langkah ini adalah untuk memastikan bahwa relasi pada model data logical mendukung kebutuhan transaksi.
Transaksi user yang terjadi pada model data konseptual adalah sebagai berikut :
a) Melihat rincian data anggota perpustakaan b) Mengidentifikasi jumlah anggota
c) Melihat rincian data staff perpustakaan d) Mengidentifikasi jumlah staff
e) Melihat rincian data buku perpustakaan f) Mengidentifikasi jumlah buku
g) Melihat rincian data peminjaman buku h) Melihat rincian data pengembalian buku
i) Melihat rincian history peminjaman dari masing-masing anggota
j) Melihat rincian data denda yang pernah diberikan kepada anggota perpustakaan
k) Memasukkan data peminjaman baru l) Memasukkan data pengembalian baru m) Memasukkan data staff baru
o) Memasukkan data anggota baru p) Mengubah data staff
q) Mengubah data anggota
r) Menghapus data anggota perpustakaan
s) Menghapus data buku yang ada di perpustakaan t) Menghapus data staff perpustakaan
u) Menghapus history peminjaman
4.1.2.4 Memeriksa Integrity Constraint
Tujuan dari langkah ini adalah untuk melindungi database menjadi tidak lengkap, tidak akurat, atau tidak konsisten. Kendala integrity terdiri dari beberapa tipe, yaitu :
a. Required data
Beberapa atribut harus mengandung nilai yang valid atau tidak boleh mengandung NULL. Constraint ini sudah diidentifikasi pada tahap basis data konseptual.
b. Batasan Domain
Setiap atribut memiliki domain, yaitu sekumpulan nilai yang sah untuk atribut constraintnya. Domain setiap atribut telah ditentukan pada tahap perancangan basis data konseptual
c. Entity integrity
Primary key tidak boleh NULL. Constraint ini telah ditetapkan pada tahap perancangan basis data konseptual
d. Referential integrity
Memastikan bahwa seluruh nilai dari foreign key cocok dengan nilai primary key yang dihubungkan.
Tabel 4.6 Tabel Relasi dengan Referential integrity
No Relations
1. Staff(NIP, Nama, Alamat, NoTelp, Password, JenisKelamin, TglLahir)
Primary Key NIP
2. Jabatan(KodeJabatan, NamaJabatan)
Primary Key KodeJabatan
3. Anggota(NoIndukAnggota, Nama, Alamat, NoTelp, Password, KodeJabatan, JenisKelamin, TglLahir)
Primary Key NoIndukAnggota
Foreign Key KodeJabatan references Jabatan(KodeJabatan) ON UPDATE CASCADE ON DELETE NO ACTION
4. KategoriBuku(KodeKategori, KategoriBuku)
Primary Key KodeKategori
5. Buku(NoIndukBuku, Judul, Pengarang, ISBN, Penerbit, TahunTerbit, KodeKategori, Sinopsis,
Stok)
Primary Key NoIndukBuku
Foreign Key KodeKategori references KategoriBuku(KodeKategori) ON UPDATE CASCADE ON DELETE NO ACTION
6. Peminjaman(KodePeminjaman, NoIndukAnggota,
NoIndukBuku, JumlahPeminjaman,
TanggalPeminjaman, TanggalHarusKembali)
Primary Key KodePeminjaman
Foreign key NoIndukAnggota references Anggota(NoIndukAnggota) ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key NoIndukBuku references Buku(NoIndukBuku) ON UPDATE CASCADE ON DELETE NO ACTION
7. Pengembalian(KodePengembalian, NoIndukBuku, KodePeminjaman, NoIndukAnggota, NIP, TanggalPengembalian)
Foreign Key NoIndukbuku references Buku(NoIndukBuku) ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key KodePeminjaman references Peminjaman(KodePeminjaman) ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key NIP references Staff(NIP) ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key KodeAnggota references Anggota(KodeAnggota) ON UPDATE CASCADE ON DELETE NO ACTION
8. HistoryPeminjaman(KodeHistory,
KodePeminjaman, KodePengembalian, NoIndukAnggota, Status)
Primary Key KodeHistory
Foreign Key KodePeminjaman references Peminjaman(KodePeminjaman) ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key KodePengembalian references Pengembalian(KodePengembalian) ON UPDATE
CASCADE ON DELETE NO ACTION
Foreign Key NoIndukAnggota references Anggota(NoIndukAnggota) ON UPDATE CASCADE ON DELETE NO ACTION
9. PenggantianBuku(KodePenggantian, NoIndukAnggota,
KodePeminjaman,TanggalPenggantian)
Primary Key KodePenggantian
Foreign Key NoIndukAnggota references Anggota(NoIndukAnggota) ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key KodePeminjaman references Peminjaman(KodePeminjaman) ON UPDATE CASCADE ON DELETE NO ACTION
10. DetailPeminjaman(KodePeminjaman, NoIndukbuku, Jumlah)
Primary Key KodePeminjaman, NoIndukBuku
Foreign Key KodePeminjaman references Peminjaman(KodePeminjaman) ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key NoIndukBuku references Buku(NoIndukBuku) ON UPDATE CASCADE ON DELETE NO ACTION
11. DetailPengembalian(KodePengembalian, NoIndukBuku, Jumlah)
Primary Key KodePengembalian, NoIndukBuku
Foreign Key KodePengembalian references Pengembalian(KodePengembalian) ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key NoIndukBuku references Buku(NoIndukBuku) ON UPDATE CASCADE ON DELETE NO ACTION
4.1.2.5 Melakukan Review Model Data Logikal Dengan User
Tujuan dari langkah ini adalah meninjau kembali model data logical dengan user untuk memastikan bahwa model data tersebut telah menjadi representasi nyata dari kebutuhan data perusahaan.
Setelah melakukan review dengan user, model data logical yang telah kami rancang telah sesuai dengan kebutuhan user.
4.1.2.6 Menggabungkan Model Data logikal ke Dalam Model Data Global (optional)
Tujuan dari langkah ini adalah untuk menggabungkan model data logical ke dalam sebuah model data logical global yang mewakili semua sudut pandang user terhadap database
Pada penelitian ini, tidak dilakukan penggabungan model data logikal ke dalam model data global
4.1.2.7 Memeriksa Pertumbuhan di Masa Depan
Tujuan dari langkah ini adalah untuk menentukan apakah ada kemungkinan perubahan yang signifikan dan untuk menilai apakah model data logical dapat mengakomodasi perubahan tersebut.
Setelah melakukan diskusi dengan petugas perpustakaan, telah disetujui bahwa model data logikal dapat mengakomodasi perubahan-perubahan yang mungkin akan terjadi di masa yang akan datang.
4.1.3 Perancangan Basisdata Fisikal
Perancangan fisikal database adalah proses menghasilkan deskripsi dari pengimplementasian database ke dalam tempat penyimpanan sekunder. Proses ini mendeskripsikan relasi dasar, organisasi file, dan index yang digunakan untuk mencapai keefisienan dalam mengakses data, dan setiap integritas data terkait, dan langkah – langkah keamanan.
4.1.3.1 Menerjemahkan Model Data Logikal Untuk DBMS yang Digunakan
Tujuan dari langkah ini adalah untuk menghasilkan skema
database relasional dari model data logical yang akan diimplementasikan ke dalam DBMS yang dituju.
• Perancangan Relasi Dasar
Tujuan dari langkah ini adalah untuk menentukan bagaimana cara untuk merepresentasikan relasi dasar yang telah teridentifikasi yang ada pada model data logical ke dalam DBMS yang dituju.
1. Staff(
NIP NOT NULL,
Nama NOT NULL,
Alamat NOT NULL,
NoTelp NOT NULL,
Password NOT NULL,
JenisKelamin NOT NULL,
TglLahir NOT NULL,
PRIMARY KEY (NIP) );
2. Jabatan(
KodeJabatan NOT NULL, NamaJabatan NOT NULL, PRIMARY KEY (KodeJabatan) );
3. Anggota(
NoIndukAnggota NOT NULL,
Nama NOT NULL,
Alamat NOT NULL,
NoTelp NOT NULL,
Password NOT NULL,
KodeJabatan NOT NULL,
JenisKelamin NOT NULL,
TglLahir NOT NULL,
PRIMARY KEY (NoIndukAnggota),
FOREIGN KEY (KodeJabatan) REFERENCES Jabatan(KodeJabatan) ON UPDATE CASCADE ON DELETE NO ACTION
4. KategoriBuku(
KodeKategori NOT NULL,
KategoriBuku NOT NULL,
PRIMARY KEY (KodeKategori) );
5. Buku(
NoIndukBuku NOT NULL,
Judul NOT NULL,
Pengarang NOT NULL,
ISBN NOT NULL,
Penerbit NOT NULL,
TahunTerbit NOT NULL,
KodeKategori NOT NULL,
Sinopsis,
Stok NOT NULL,
FOREIGN KEY (KodeKategori) REFERENCES KategoriBuku(KodeKategori) ON UPDATE CASCADE ON DELETE NO ACTION
);
6. Peminjaman(
KodePeminjaman NOT NULL,
NoIndukAnggota NOT NULL,
NoIndukBuku NOT NULL,
JumlahPeminjaman NOT NULL,
TanggalPeminjaman NOT NULL,
TanggalHarusKembali NOT NULL,
PRIMARY KEY (KodePeminjaman),
FOREIGN KEY NoIndukAnggota REFERENCES Anggota(NoIndukAnggota) ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY (NoIndukBuku) REFERENCES Buku(NoIndukBuku) ON UPDATE CASCADE ON DELETE NO ACTION
7. Pengembalian(
KodePengembalian NOT NULL,
NoIndukBuku NOT NULL,
KodePeminjaman NOT NULL,
NoIndukAnggota NOT NULL,
NIP NOT NULL,
TanggalPengembalian NOT NULL,
PRIMARY KEY (KodePengembalian),
FOREIGN KEY (NoIndukbuku) REFERENCES Buku(NoIndukBuku) ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY (KodePeminjaman) REFERENCES Peminjaman(KodePeminjaman) ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY (NIP) REFERENCES Staff(NIP) ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY (KodeAnggota) REFERENCES Anggota(KodeAnggota) ON UPDATE CASCADE ON DELETE NO ACTION
);
8. HistoryPeminjaman(
KodeHistory NOT NULL,
KodePeminjaman NOT NULL,
KodePengembalian NOT NULL,
NoIndukAnggota NOT NULL,
Status NOT NULL,
PRIMARY KEY (KodeHistory),
FOREIGN KEY (KodePeminjaman) REFERENCES Peminjaman(KodePeminjaman) ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY KodePengembalian REFERENCES Pengembalian(KodePengembalian) ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY NoIndukAnggota REFERENCES Anggota(NoIndukAnggota) ON UPDATE CASCADE ON DELETE NO ACTION
9. PenggantianBuku(
KodePenggantian NOT NULL,
NoIndukAnggota NOT NULL,
KodePeminjaman NOT NULL,
TanggalPenggantian NOT NULL,
PRIMARY KEY (KodePenggantian),
FOREIGN KEY (NoIndukAnggota) REFERENCES Anggota(NoIndukAnggota) ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY (KodePeminjaman) REFERENCES Peminjaman(KodePeminjaman) ON UPDATE CASCADE ON DELETE NO ACTION
);
10. DetailPeminjaman(
KodePeminjaman NOT NULL,
NoIndukbuku NOT NULL,
Jumlah NOT NULL,
FOREIGN KEY (KodePeminjaman) REFERENCES Peminjaman(KodePeminjaman) ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY (NoIndukBuku) REFERENCES Buku(NoIndukBuku) ON UPDATE CASCADE ON DELETE NO ACTION
);
11. DetailPengembalian(
KodePengembalian NOT NULL
NoIndukBuku NOT NULL
Jumlah NOT NULL
PRIMARY KEY (KodePengembalian, NoIndukBuku)
FOREIGN KEY (KodePengembalian) REFERENCES Pengembalian(KodePengembalian) ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY (NoIndukBuku) REFERENCES Buku(NoIndukBuku) ON UPDATE CASCADE ON DELETE NO ACTION
• Merancang Representasi Derived Data
Tujuan dari langkah ini adalah untuk mengetahui bagaimana cara merepresentasikan derived data apapun yang terdapat di model data logical ke dalam DBMS yang dituju.
Atribut LamaKeterlambatan pada relasi Pengembalian diperoleh dengan cara mengurangkan TanggalPengembalian dengan TanngalHarusKembali
Atribut denda pada relasi Pengembalian diperoleh dengan melakukan proses (LamaKeterlambatan*100)
• Merancang General Constraint
Tujuan dari langkah ini adalah merancang batasan umum untuk DBMS yang dituju. Berikut ini adalah berberapa general constraint yang terdapat dalam system:
a. Jumlah buku yang dipinjam tidak dapat melebihi stok yang ada.
b. Tanggal pengembalian tidak dapat kurang dari tanggal peminjaman
c. Tanggal lahir tidak dapat melebihi tanggal yang tertera pada desktop computer.
4.1.3.2 Merancang Organisasi File dan Index
Tujuan dari langkah ini adalah menentukan organisasi file untuk menyimpan relasi dasar dan index yang dibutuhkan untuk mencapai performa yang dapat diterima, ini merupakan cara dimana relasi dan tuples juga akan disimpan di dalam tempat penyimpanan sekunder.
• Menganalisa Transaksi
Tujuan dari menganalisa transaksi adalah untuk memahami fungsi dan transaksi yang akan diterapkan pada basis data. Untuk memudahkan menganalisa, makan akan digunakan transaction / relation cross refrences matrix (matrix refrensi silang
transaksi/relasi).
Transaksi-transaksi yang akan berjalan dalam sistem yaitu: a. Melihat rincian data anggota perpustakaan
b. Mengidentifikasi jumlah anggota c. Melihat rincian data staff perpustakaan d. Mengidentifikasi jumlah staff
e. Melihat rincian data buku perpustakaan f. Mengidentifikasi jumlah buku
g. Melihat rincian data peminjaman buku h. Melihat rincian data pengembalian buku
i. Melihat rincian history peminjaman dari masing-masing anggota j. Melihat rincian data denda yang pernah diberikan kepada anggota
k. Memasukkan data peminjaman baru l. Memasukkan data pengembalian baru m. Memasukkan data staff baru
n. Memasukkan data buku baru o. Memasukkan data anggota baru p. Mengubah data staff
q. Mengubah data anggota
r. Menghapus data anggota perpustakaan
s. Menghapus data buku yang ada di perpustakaan t. Menghapus data staff perpustakaan
u. Menghapus history peminjaman
Tabel 4.7 Analisa Transaksi
Transaksi/relasi A B C D I R U D I R U D I R U D I R U D Staff X X Anggota X X Buku KodeKategori Jabatan X
Peminjaman Pengembalian PenggantianBuku HistoryPeminjaman DetailPeminjaman DetailPengembalian
Tabel 4.7 Analisa Transaksi(lanjutan)
Transaksi/relasi E F G H I R U D I R U D I R U D I R U D Staff X Anggota X X Buku X X X X KategoriBuku X Jabatan Peminjaman X
Pengembalian X
PenggantianBuku X
HistoryPeminjaman
DetailPeminjaman X
DetailPengembalian X
Tabel 4.7 Analisa Transaksi(lanjutan)
Transaksi/relasi I J K L I R U D I R U D I R U D I R U D Staff Anggota X X X Buku X KategoriBuku Jabatan Peminjaman X X X Pengembalian X X X PenggantianBuku X
HistoryPeminjaman X X X
DetailPeminjaman X
DetailPengembalian X
Tabel 4.7 Analisa Transaksi(lanjutan)
Transaksi/relasi M N O P I R U D I R U D I R U D I R U D Staff X X Anggota X Buku X KategoriBuku X Jabatan Peminjaman Pengembalian PenggantianBuku HistoryPeminjaman DetailPeminjaman
DetailPengembalian Transaksi/relasi Q R S T I R U D I R U D I R U D I R U D Staff X Anggota X X Buku X KategoriBuku Jabatan Peminjaman X Pengembalian X PenggantianBuku HistoryPeminjaman DetailPeminjaman DetailPengembalian Transaksi/relasi U I R U D
Staff Anggota Buku KategoriBuku Jabatan Peminjaman Pengembalian PenggantianBuku HistoryPeminjaman X DetailPeminjaman DetailPengembalian
Tabel 4.7 Analisa Transaksi (lanjutan)
• Memilih Organisasi File
Tujuan dari langkah ini adalah untuk menentukan organisasi file yang efisien untuk setiap relasi dasar.
• Memilih Index
Tujuan dari langkah ini adalah untuk memastikan apakah dengan menambah index maka performasystem juga akan meningkat.
Tabel 4.8 Pemilihan Index
Nama Entity Index Nama Index
Staff NIP idxNIP
Anggota KodeAnggota idxKodeAnggota
HistoryPeminjaman KodeHistory idxKodeHistory Peminjaman KodePeminjaman idxPeminjaman PenggantianBuku KodePenggantian idxKodePenggantian Pengembalian KodePengembalian idxPengembalian
Buku NoIndukBuku idxNoIndukBuku
KategoriBuku KodeKategori idxKodeKategori
Jabatan KodeJabatan idxKodeJabatan
• Memperkirakan Kebutuhan Disk Space
Tujuan dari langkah ini adalah untuk memperkirakan jumlah ruang disk yang akan dibutuhkan oleh database.
Berikut ini adalah perhitungan estimasi kebutuhan memory selama 1 tahun ajaran dari setiap table.
1. Staff
Tabel 4.9 Staff
Field Tipe Data Ukuran
NIP Int 4 bytes
Nama Varchar(50) 50 bytes
Alamat Varchar(100) 100 bytes
NoTelp Varchar(12) 12 bytes
Password Varchar(20) 20 bytes
JenisKelamin Boolean 1 bytes
TglLahir Date 3 bytes
Kapasitas total Staff adalah sebesar 190 bytes. Jumlah data staff untuk 5 tahun diperkirakan sebanyak 4 staff. Kebutuhan memory untuk Staff sebesar 4*195 bytes =760 bytes.
2. Anggota
Tabel 4.10 Anggota
Field Tipe Data Ukuran
NoIndukAnggota Int 4 bytes
Nama Varchar(50) 50 bytes
Alamat Varchar(100) 100 bytes
Password Varchar(20) 20 bytes
NoTelp Varchar(12) 12 bytes
JenisKelamin Boolean 1 bytes
TglLahir Date 3 bytes
Kapasitas total Anggota adalah sebesar 200 bytes. Jumlah data dari data anggota diperkirakan sebanyak 1000 anggota. Kebutuhan memory untuk Anggota sebesar 1000*200 bytes = 200000 bytes.
3. HistoryPeminjaman
Tabel 4.11 HistoryPeminjaman
Field Tipe Data Ukuran
KodeHistory Varchar(20) 20 bytes
Status Varchar(10) 10 bytes
KodePeminjaman Varchar(20) 20 bytes KodePengembalian Varchar(20) 20 bytes
NoIndukAnggota Int 4 bytes
Kapasitas total HistoryPeminjaman adalah sebesar 74bytes. Jumlah history peminjaman 1 bulan diperkirakan sebanyak 500 history. Kebutuhan memory untuk HistoryPeminjaman selama 5 tahun sebesar 500*60*74 bytes = 2220000 bytes.
4. Peminjaman
Tabel 4.12 Peminjaman
Field Tipe Data Ukuran
KodePeminjaman Varchar(10) 10 bytes
NoIndukBuku Int 4 bytes
TglPeminjaman Date 3 bytes
TgglHarusKembali Date 3 bytes
Kapasitas total Peminjaman adalah sebesar 24 bytes. Jumlah peminjaman dalam 1 bulan diperkirakan sebanyak 500 transaksi peminjaman. Kebutuhan memory untuk 5 tahun sebesar 500*60*24 bytes = 720000 bytes.
5. Pengembalian
Tabel 4.13 Pengembalian
Field Tipe Data Ukuran
KodePengembalian Varchar(10) 10 bytes
NoIndukBuku Int 4 bytes
TanggalPengembalian Date 3 bytes
NoIndukAnggota Int 4 bytes
NIP Int 4 bytes
KodePeminjaman Varchar(10) 10 bytes
Kapasitas total Pengembalian adalah sebesar 35 bytes. Jumlah pengembalian dalam 1 bulan diperkirakan sebanyak 500 transaksi pengembalian. Kebutuhan memory untuk Pengembalian selama 5 tahun sebesar 500*60*35 bytes = 1050000 bytes.
6. PenggantianBuku
Tabel 4.14 PenggantianBuku
Field Tipe Data Ukuran
KodePenggantian Varchar(10) 10 bytes
NoIndukAnggota Int 4 bytes
KodePeminjaman Varchar(10) 10 bytes TanggalPenggantian Date 3 bytes
Kapasitas total PenggantianBuku adalah sebesar 27 bytes. Jumlah penggantian dalam 1 bulan diperkirakan sebanyak 1 transaksi penggantian. Kebutuhan memory untuk PenggantianBuku dalam 5 tahun sebesar 1*60*27 bytes = 1620 bytes.
7. Buku
Tabel 4.15 Buku
Field Tipe Data Ukuran
NoIndukBuku Int 4 bytes
Judul Varchar(50) 50 bytes
Pengarang Varchar(50) 50 bytes
ISBN/ISSN Varchar(20) 20 bytes
Penerbit Varchar(40) 40 bytes
TahunTerbit Varchar(4) 4 bytes
KodeKategori Varchar(10) 10 bytes
Sinopsis Varchar(100) 100 bytes
Kapasitas total Buku adalah sebesar 282 bytes. Jumlah buku diperkirakan sebanyak 2000. Kebutuhan memory untuk buku diperkirakan sebesar 2000*282 bytes = 564000 bytes.
8. KategoriBuku
Tabel 4.16 KategoriBuku
Field Tipe Data Ukuran
KodeKategori Varchar(10) 10 bytes NamaKategori Varchar(20) 20 bytes
Kapasitas total KategoriBuku adalah sebesar 30bytes. Jumlah kategori buku diperkirakan sebanyak 50 tipe. Kebutuhan memory untuk KategoriBuku diperkirakan sebesar 50*30 bytes = 1500 bytes. 9. Jabatan
Tabel 4.17 Jabatan
Field Tipe Data Ukuran
KodeJabatan Varchar(10) 10 bytes
NamaJabatan Varchar(20) 20 bytes
Kapasitas total Jabatan adalah sebesar 30bytes. Jumlah Jabatan diperkirakan sebanyak 20 jabatan. Kebutuhan memory untuk jabatan diperkirakan sebesar 20*30 bytes = 600 bytes.
10.DetailPeminjaman
11. Tabel 4.18 DetailPeminjaman
Field Tipe Data Ukuran
NoIndukBuku Int 4 bytes
Jumlah Int 4 bytes
Kapasitas total DetailPeminjaman adalah sebesar 18bytes. Jumlah DetailPeminjaman dalam 1 bulan diperkirakan sebanyak 500 transaksi peminjaman. Kebutuhan memory untuk DetailPeminjaman dalam 5 tahun diperkirakan sebesar 500*60*18 bytes = 540000 bytes. 11 DetailPengembalian
Tabel 4.19 DetailPengembalian
Field Tipe Data Ukuran
KodePengembalian Varchar(10) 10 bytes
Jumlah Int 4 bytes
NoIndukBuku Int 4 bytes
Kapasitas total DetailPengembalian adalah sebesar 18bytes. Jumlah DetailPeminjaman dalam 1 bulan diperkirakan sebanyak 500 transaksi pengembalian. Kebutuhan memory untuk DetailPengembalian dalam 5 tahun diperkirakan sebesar 500*60*18 bytes = 540000 bytes.
Kapasitas total yang dibutuhkan selama 5 tahun adalah sebagai berikut : 760 + 200000 + 2220000 + 720000 + 1050000 + 1620 + 564000 + 1500 + 600 +540000 + 540000 = 5838480 bytes = 5,6Mb
4.1.3.3 Merancang User Views
Tujuan dari langkah ini adalah untuk merancang user views yang telah diperoleh pada waktu pengumpulan kebutuhan dan tahap analisa pada siklus pengembagan system database
Berikut ini adalah beberapa contoh view pada sistem :
CREATE VIEW LapPeminjaman AS
SELECT Pengembalian.KodePengembalian, IIF(Pengembalian.NIP = '0', Peminjaman.NoIndukAnggota,
Pengembalian.NIP) AS
IDPeminjam,Pengembalian.NoIndukBuku,Buku.Judul,Peminjama n.JumlahPeminjaman, TglPengembalian
FROM Pengembalian, Peminjaman, buku
WHERE Pengembalian.KodePeminjaman =
Peminjaman.KodePeminjaman AND
Pengembalian.NoIndukBuku = Buku.NoIndukBuku
CREATE VIEW LapPengembalian AS
SELECT Pengembalian.KodePengembalian, IIF(Pengembalian.NIP = '0', Peminjaman.NoIndukAnggota,
IDPeminjam,Pengembalian.NoIndukBuku,Buku.Judul,Peminjama n.JumlahPeminjaman, TglPengembalian
FROM Pengembalian, Peminjaman, buku
WHERE Pengembalian.KodePeminjaman =
Peminjaman.KodePeminjaman AND
Pengembalian.NoIndukBuku = Buku.NoIndukBuku
CREATE VIEW LapDenda AS
SELECT denda.KodeDenda, IIF(Pengembalian.NIP = '0', Peminjaman.NoIndukAnggota, Pengembalian.NIP) AS IDPeminjam, LamaKeterlambatan * 100 AS Denda, TglPengembalian
FROM denda, Peminjaman, Pengembalian
WHERE denda.KodePeminjaman =
Peminjaman.KodePeminjaman AND
Peminjaman.KodePeminjaman = Pengembalian.KodePeminjaman AND LamaKeterlambatan > 0p.KodePeminjaman AND p.NoIndukBuku = b.NoIndukBuku.
4.1.3.4 Merancang Mekanisme Keamanan
Tujuan dari langkah ini adalah untuk merancang mekanisme keamanan untuk database seperti yang diinginkan oleh user pada tahap pengumpulan kebutuhan pada siklus pengembangan system database.
Relasi \user Staff Anggota R I U D R I U D Staff X X X X Anggota X X X X X Buku X X X X X Peminjaman X X X X X Pengembalian X X X X X HistoryPeminjaman X X X X X KategoriBuku X X X X X Jabatan X X X X X X PenggantianBuku X X X DetailPeminjaman X X X DetailPengembalian X X X
Tabel 4.21 Mekanisme Keamanan
4.2 Perancangan Aplikasi
Berikut ini merupakan aplikasi yang terdapat rancangan struktur menu. STD (State Transition Diagram) dan dilanjutkan dengan perancangan layar input dan output.
4.2.1 Struktur Menu
Bagian ini menjelaskan tentang sususan menu yang ada pada rancangan aplikasi yang akan digunakan. Berikut adalah rancangan menu pada aplikasi dari beberapa tampilan user.
Gambar 4.10 Struktur Menu Untuk Anggota
4.2.2 Perancangan Input dan Output
Berikut ini merupakan rancangan input/output interface aplikasi yang dirancang pada tahap sebelumnya.
Gambar 4.15 Rancangan Layar Untuk Ubah Profil (staff)
Gambar 4.17 Rancangan Layar Untuk Tambah Staff (Staff)
Gambar 4.19 Rancangan Layar Untuk Pengembalian (Staff)
Gambar 4.21 Rancangan Layar Untuk Histori Peminjaman (staff)
Gambar 4.23 Rancangan Layar Untuk Penggantian Buku (klik ganti)
Gambar 4.26 Rancangan Layar Untuk Lihat Laporan (staff)
4.2.3 State Transition Diagram
State Transition Diagram adalah suatu alat yang digunakan untuk menggambarkan urutan dan variasi screen yang dapat terjadi selama satu sesi pengguna. Berikut adalah STD sesuai dengan aplikasi yang dibuat.
Gambar 4.27 State Transition Diagram Login
Gambar 4.29 State Transition Diagram Ubah Profil
Gambar 4.30 State Transition Diagram Laporan Denda
Klik “kembali” untuk kluar dari laporan denda
Klik “kembali” untuk kluar dari edit profil
Gambar 4.31 State Transition Diagram Laporan Pengembalian
Gambar 4.32 State Transition Diagram Laporan Peminjaman Klik “kembali” untuk
kluar dari laporan pengembalian
Klik “kembali” untuk kluar dari laporan peminjaman
Gambar 4.33 State Transition Diagram Lihat Buku
Gambar 4.34 State Transition Diagram View Profil Klik “kembali”
untuk kluar dari lihat buku
Gambar 4.35 State Transition Diagram Pengembalian 4.3 Implementasi
4.3.1 Spesifikasi Perangkat Keras
Spesifikasi perangkat keras minimum yang diperlukan dalam implementasi apliaksi basisdata pada SMU Negeri 2 Jakarta adalah sebagai berikut:
o Server :
Processor : Intel Pentium IV 2.4Ghz
Memory : 512 MB
Harddisk : 1 GB Monitor : SVGA 15’’
o Client :
Processor : Intel Pentium IV 2.4Ghz
Memory : 512 MB
Harddisk : 1 GB Monitor : SVGA 15’’ 4.3.2 Spesifikasi Perangkat Lunak
Spesifikasi perangkat lunak minimum yang diperlukan dalam implementasi aplikasi basisdata pada Perpustakaan SMU Negeri 2 adalah :
o Server:
Microsoft Windows XP Service Pack 2 Database Microsoft SQL Server 2008
o Client :
Microsoft Windows XP Service Pack 2 4.3.3 Jadwal Implementasi
Untuk memastikan program dapat bekerja dengan baik, perlu dilakukan instalasi DBMS, penerapan program, testing, review program dan training user
Jadwal implementasi sistem adalah sebagai berikut :
Proses implementasi Hari
1 2 3 4
Instalasi DBMS X
Penerapan program X
Testing X
Training user X Tabel 4.22 Jadwal Implementasi
4.3.4 Petunjuk Pemakaian Sistem
Berikut ini adalah petunjuk pemakaian sistem dari aplikasi Perpustakaan SMU Negeri 2 Gajah Mada.
Aplikasi dimulai dengan mengklik library.exe, kemudian akan ditampilkan layar login.
Gambar 4.36 Layar Login
Pada layar ini user diminta untuk mengisi username dan password. Layar ini berfungsi untuk membatasi akses user ke basisdata sesuai dengan hak akses yang dimiliki. Jika user mengklik tombol ‘Login’, maka akan dilakukan validasi untuk mengecek apakah uername dan password sudah sesuai dengan basisdata atau tidak. Jika sesuai maka akan masuk ke layar Main Screen. Tombol ‘ ’ digunakan untuk keluar dari aplikasi perpustakaan.exe.
Gambar 4.37 Layar Main Screen
Layar Main Screen adalah layar parent dari layar-layar yang lain. Pada layar Main Screen ini terdapat menu Logout, menu Profil berisi sub menu (Lihat Profil dan Ubah Profil, menu staff berisi sub menu (Lihat Staff dan Ubah Staff), menu Anggota berisi sub menu (Lihat Anggota dan Tambah Anggota, menu Buku berisi sub menu (Lihat Buku dan Tambah Buku), menu Peminjaman, menu Pengembalian, menu Histori, dan menu Laporan dengan sub menu (Laporan Peminjaman, Laporan Pengembalian, dan Laporan Denda).
Gambar 4.38 Layar Ubah Password (Anggota)
Jika pada layar Main Screen user menekan Profil makan akan ditampilkan menu ‘Change Password’. Klik ‘Ganti Password’ dan user harus memasukkan password lama, password baru dan ketik ulang password baru untuk konfirmasi. Tekan tombol Ubah untuk melakukan perubahan password dan kembali ke layar Utama. Tekan tombol Keluar untuk kembali ke Main Screen tanpa melakukan perubahan password.
Pada layar ini user dapat menambahkan anggota baru ke dalam basisdata. Untuk menambah anggota, user bisa mengisi textbox-textbox yang disediakan dengan data anggota yang ingin di-input dan menekan tombol Anggota-Tambah Anggota. Jika data semua sudah diisi maka user bisa mengklik tombol ‘Simpan’ untuk menyimpan dalam basisdata, jika semua data sudah sesuai dengan kriteria. Dan tombol ‘Kembali’ untuk kembali ke Main Screen tanpa melakukan perubahan di registrasi anggota.
Gambar 4.40 Layar Edit Profile (Anggota)
Pada layar ini user dapat menambah,dan mengubah informasi data Anggota (No Induk Anggota, Nama, Alamat, No Telp, Gender , Jabatan, Tanggal Lahir).
Untuk menambah data Anggota, user bisa mengisi textbox-textbox yang disediakan dengan data Anggota yang ingin di-input, user terlebih dahulu login
menggunakan username dan password anggota kemudian setelah login tekan tombol Anggota kemudian Edit Profile. Untuk mengubah data seorang anggota, user harus memilih anggota yang diingkan. Setelah melakukan perubahan data anggota yang diinginkan user harus mengklik tombol “Simpan” dan textbox-textbox yang disediakan sudah diisi dengan validasi yang sesuai dengan ketentuan.
Gambar 4.41 Layar Histori (Anggota)
Halaman ini dapat dimunculkan dengan mengklik menu Histori. Layar ini berfungsi untuk menampilkan status histori peminjaman dan pengembalian Anggota.
Gambar 4.42 Layar Edit Profile (Staff)
Halaman Edit Profile dapat dimunculkan dengan cara memilih menu Profil > Edit Profil, lalu akan muncul tampilan Edit Profile seperti gambar diatas ini, didalam menu Edit Profile ini user dapat memasukkan, dan memperbaharui data-data Staff seperti No.Induk Pegawai, Nama, Alamat, Gender, No.Telp,Tanggal Lahir, Password dan me-retype kembali password yang telah diinput. Tombol Simpan untuk menyimpan data-data yang telah diinput, ,Tombol Kembali untuk kembali ke main screen.
Gambar 4.43 Layar Lihat Buku (Staff)
Halaman Lihat Buku dapat ditampilkan dengan cara memilih menu Buku > Lihat Buku, lalu akan muncul tampilan Lihat Buku seperti gambar diatas ini, didalam menu Lihat Buku ini user hanya dapat melihat daftar-daftar buku dan dapat mencari buku berdasarkan judul, nama pengarang atau nomor induk.
Gambar 4.44 Layar Lihat Buku (Anggota)
Halaman Lihat Buku dapat ditampilkan dengan cara memilih menu Buku > Lihat Buku, lalu akan muncul tampilan Lihat Buku seperti gambar diatas ini, didalam menu Lihat Buku ini user hanya dapat melihat daftar-daftar buku dan dapat mencari buku berdasarkan judul, nama pengarang atau nomor induk.
Halaman ini dapat dapat ditampilkan dengan cara login menggunakan username dan password anggota.
Jika pada layar main screen user menekan menu peminjaman maka akan ditampilkan layar paminjaman.
Gambar 4.46 Layar Peminjaman Buku (Staff)
Layar ini berfungsi saat admin ingin melakukan peminjaman buku. Kode peminjaman dan NIP akan terisi secara otomatis ketika login. Admin diharuskan untuk mengisi judul buku yang ingin dipinjam, serta Tanggal kembali akan secara otomatis terisi sesuai dengan tanggal yang tertera pada desktop komputer, dan deadline pengembalian akan otomatis dibuat dengan jangka waktu satu minggu dari tanggal peminjaman.
Gambar 4.47 Layar Peminjaman Buku (Anggota)
Layar ini berfungsi saat anggota perpustakaan ingin melakukan peminjaman buku.
Kode peminjaman dan Kode Anggota akan terisi secara otomatis ketika login. User diharuskan untuk mengisi no induk buku, judul buku, dan jumlah buku yang ingin dipinjam, serta Tanggal kembali akan secara otomatis terisi sesuai dengan tanggal yang tertera pada desktop komputer, dan deadline pengembalian akan otomatis dibuat dengan jangka waktu satu minggu dari tanggal peminjaman.
Jika pada layar Pengembalian, user menekan menu Pengembalian, maka akan ditampilkan layar Pengembalian Buku.
Gambar 4.48 Layar Pengembalian Buku
Layar ini berfungsi untuk menampilkan data buku-buku yang sudah dipinjam oleh staff. Kode pengembalian sudah terisi secara otomatis. User hanya perlu mengklik tombol “kembalikan” dan klik tombol “Ganti” apabila buku rusak/hilang.
Jika tombol Kembalikan di klik makan akan muncul layar seperti di bawah ini :
Layar ini berfungsi untuk menampilkan keterangan rinci mengenai transaksi pengembalian buku yang telah di pilih untuk di kembalikan.
Gambar 4.50 Layar Tambah Buku
Tampilan layar Tambah Buku dapat dimunculkan dengan cara memilih Buku > Tambah Buku. Dalam menu Tambah Buku ini digunakan untuk meregistrasi buku yang baru masuk ke perpustakaan. Untuk meregistrasi buku baru user harus memasukkan data-data yang dibutuhkan, yaitu No.Induk Buku, Judul, Pengarang, ISBN, Tahun Terbit, Sinopsis, Penerbit dan Stok.
Gambar 4.51 Layar Tambah Staff
Tampilan layar Tambah Staff dapat dimunculkan dengan cara login dengan username dan password staff kemudian memilih Staff > Tambah Staff. Menu Tambah Staff ini digunakan untuk meregistrasi data-data Pegawai Baru. Data yang dibutuhkan antara lain menginput No.Induk Pegawai, Nama, Alamat, Gender (terdiri dari 2 pilihan yaitu pria atau wanita), No.Telp, Tanggal Lahir, Password, dan Retype Password (menulis ulang Password yang telah kita isi).
Tampilan layar laporan peminjaman dimunculkan dengan cara memilih menu laporan dan memilih menu sub laporan, dalam menu laporan peminjaman ini kita dapat memilih jangka waktu tanggal laporan peminjaman yang akan
ditampilkan.
Gambar 4.53 Layar Laporan Peminjaman
Tampilan layar laporan peminjaman berdasarkan jangka waktu yang telah dipilih,laporan peminjaman ini juga dapat dicetak dengan cara memilih tombol print lalu akan muncul popup print preview seperti gambar diatas.
Gambar 4.54 Layar Tanggal Laporan Pengembalian
Tampilan layar laporan peminjaman dimunculkan dengan cara memilih menu laporan dan memilih menu sub laporan, dalam menu laporan pengembalian ini kita dapatmemilih jangka waktu tanggal laporan pengembalian yang akan ditampilkan.
Tampilan layar laporan pengembalian berdasarkan jangka waktu yang telah dipilih,laporan pengembalian ini juga dapat dicetak dengan cara memilih tombol print lalu akan muncul popup print preview seperti gambar diatas.
Gambar 4.56 Layar Tanggal Laporan Denda
Tampilan layar laporan denda dimunculkan dengan cara memilih menu laporan laporan dan memilih menu sub laporan, dalam menu laporan denda ini kita dapatmemilih jangka waktu tanggal laporan denda yang akan ditampilkan.
Gambar 4.55 Layar Laporan Denda
Tampilan layar laporan denda berdasarkan jangka waktu yang telah dipilih,laporan denda ini juga dapat dicetak dengan cara memilih tombol print lalu akan muncul popup print preview seperti gambar diatas.
4.3.5 Evaluasi Sistem
Untuk evaluasi sistem ini, dilakukan pengujian terhadap domain integrity, entity integrity, references integrity, dan security pada basis data yang telah dirancang.
1. Domain Integrity
Pengujian yang dilakukan adalah apakah nilai atribut yang dihasilkan telah seusai dengan domain yang telah ditetapkan sebelumnya. Contoh hal-hal yang diuji adalah sebagai berikut :