• Tidak ada hasil yang ditemukan

BAB 4 PERANCANGAN DAN IMPLEMENTASI

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 4 PERANCANGAN DAN IMPLEMENTASI"

Copied!
108
0
0

Teks penuh

(1)

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

(2)

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

(3)

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

(4)

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

(5)

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

(6)

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

(7)

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

(8)

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

(9)

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

(10)

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

(11)

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

(12)

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

(13)

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

(14)

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

(15)

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

(16)

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

(17)

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

(18)

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’

(19)

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

(20)

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

(21)

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

(22)

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

(23)

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.

(24)

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)

(25)

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)

(26)

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)

(27)

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

(28)

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)

(29)

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

(30)

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)

(31)

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)

(32)

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

(33)

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)

(34)

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)

(35)

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.

(36)

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

(37)

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

(38)

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.

(39)

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,

(40)

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)

(41)

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

(42)

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

(43)

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.

(44)

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.

(45)

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) );

(46)

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

(47)

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,

(48)

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

(49)

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

(50)

);

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

(51)

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,

(52)

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

(53)

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.

(54)

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

(55)

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

(56)

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

(57)

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

(58)

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

(59)

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

(60)

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.

(61)

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.

(62)

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

(63)

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

(64)

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.

(65)

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

(66)

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

(67)

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

(68)

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,

(69)

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.

(70)

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.

(71)

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

(72)

4.2.2 Perancangan Input dan Output

Berikut ini merupakan rancangan input/output interface aplikasi yang dirancang pada tahap sebelumnya.

(73)
(74)
(75)

Gambar 4.15 Rancangan Layar Untuk Ubah Profil (staff)

(76)

Gambar 4.17 Rancangan Layar Untuk Tambah Staff (Staff)

(77)

Gambar 4.19 Rancangan Layar Untuk Pengembalian (Staff)

(78)

Gambar 4.21 Rancangan Layar Untuk Histori Peminjaman (staff)

(79)

Gambar 4.23 Rancangan Layar Untuk Penggantian Buku (klik ganti)

(80)
(81)

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.

(82)

Gambar 4.27 State Transition Diagram Login

(83)

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

(84)

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

(85)

Gambar 4.33 State Transition Diagram Lihat Buku

Gambar 4.34 State Transition Diagram View Profil Klik “kembali”

untuk kluar dari lihat buku

(86)

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’’

(87)

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

(88)

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.

(89)

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).

(90)

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.

(91)

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

(92)

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.

(93)

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.

(94)

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.

(95)

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.

(96)

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.

(97)

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.

(98)

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 :

(99)

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.

(100)

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).

(101)

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.

(102)

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.

(103)

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.

(104)

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 :

Gambar

Tabel 4.5 Tabel Candidate Key, Primary Key, dan Alternate Key  Nama Entity  Candidate key  Primary Key  Alternate key
Gambar 4.2 ERD Konseptual dengan Primary key
Gambar 4.3 ERD Konseptual dengan transaksi user  4.1.1.9 Melakukan Review Model Data Konseptual Dengan User
Gambar 4.8 ERD Logikal
+7

Referensi

Dokumen terkait

Bunga yang dijual berasal dari petani bunga potong yang berada di daerah Bandung.Pasokan bunga potong berasal dari Bogor, Cianjur dan Sukabumi.Usaha toko bunga

16 Terlihat pada gambar diatas bahwa kolom akan mengalami ketidakstabilan dengan adanya deformasi pada arah w yang terjadi akibat adanya gangguan baik dari luar maupun dari

besar untuk memasarkan produk olahan pertanian melalui media sosial, karena pengguna internet lebih tinggi pada penggunaan media sosial terlihat pada pengguna yang

• Melalui Whattsapp group, Zoom, Google Classroom, Telegram atau media daring lainnya, Peserta didik mempresentasikan hasil kerjanya kemudian ditanggapi peserta didik yang lainnya

Berdasarkan data hasil, penambahan Tinopal 0,5% pada beberapa konsentrasi NPV yang diper- lakukan pada instar 4, dan 5 dibandingkan dengan kontrol pada masing-masing instar,

Penetapan kebijakan harga yang terjangkau dari kemampuan yang dimiliki konsumen serta tingkat harga yang sesuai dengan kualitas dan manfaat barang atau jasa yang

Pada penelitian ini, desain penelitian yang digunakan oleh peneliti adalah cross-sectional dengan tujuan untuk mengetahui apakah terdapat hubungan antara tingkat

Penelitian ini bertujuan untuk (1) mendiskripsikan peningkatan keterampilan guru dalam mengelola pembelajaran IPS materi perkembangan teknologi dengan menerapkan