79
BAB 4
PERANCANGAN DAN I MPLEMENTASI
4.1 Perancangan Sistem
Setelah melakukan survey dan analisis pada sistem yang berjalan pada perpustakaan SM PN 1 Pondok Aren serta melakukan wawancara dengan Kepala Sekolah dan Petugas perpustakaan maka akan dilakukan perubahan sistem pada sistem terdahulu. M aka akan dirancang basis data sesuai dengan kebutuhan perpustakaan. Perancangan basis data yang dilakukan akan dibagi menjadi 3 tahapan, yaitu :
1. Perancangan Basis Data Konseptual (Conceptual Database Design)
2. Perancangan Basis Data Logikal (Logical Database Design)
3. Perancangan Basis Data Fsikal (Physical Database Design)
4.1.1 Perancangan Basis Data Konseptual
Perancangan Basis Data Konseptual merupakan suatu proses pembuatan entitas atau model dengan menggunakan data yang diperoleh dari perpustakaan. Ada beberapa langkah penting dalam menentukan rancangan basis data secara konseptual yang diantaranya :
2. M engidentifikasi Tipe-tipe Relationship 3. M engidentifikasi Atribut
4. M enentukan Domain Atribut
5. M enentukan Candidate keys dan Primary key 6. Pertimbangkan penggunaan EERD
7. Cek M odel Terhadap Redudansi
8. Validasi M odel Konseptual Dengan Transaksi User
4.1.1.1 Mengidentifikasi Tipe-tipe Entity
Pada tahapan ini dilakukan identifikasi entity utama apa saja yang diperlukan. M enentukan entitas dapat dilakukan dengan cara memeriksa spesifikasi sesuai kebutuhan pengguna. Entity yang dihasilkan adalah sebagai berikut :
Nama Entity Deskripsi Nama Lain Occurrence
Ms_anggota Entity yang berisi data mengenai nama anggota serta nomor anggota
M aster anggota Tempat
menyimpan data anggota
keseluruhan
Ms_buku Entity yang berisikan informasi mengenai buku
M aster buku Tempat menyimpan informasi buku
Ms_user Entity yang berisi mengenai data user
M aster user Tempat menyimpan informasi mengenai user
Feedback Entity yang berisi
informasi mengenai daftar saran dan kritik dari anggota
Feedback Tempat penyimpanan
meneganai saran dan kritik dari anggota untuk perpustakaan
SM PN 1 Pondok Aren
Pengadaan Entity yang berisi
mengenai informasi pengadaan koleksi Pengadaan Tempat menyimpan transaksi pengadaan
Buku_hilang Entity yang berisi mengenai data buku
hilang
Buku hilang Tempat
menyimpan data mengenai buku hilang
Penggantian Entity yang berisi
mengenai data penggantian buku
Penggantian Tempat
menyimpan data penggantian buku
hilang hilang
Peminjaman Entity yang berisi
mengenai informasi data peminjaman
Peminjaman Tempat
menyimpan data peminjaman
Tabel 4.1 Tabel Entity
4.1.1.2 Mengidentifikasi Tipe-tipe Relationship
Setelah menentukan entity-entity pada Database Perpustakaan SM PN 1, berikut akan dilakukan menentukan relasi antar entity tersebut. Berikut ini merupakan table yang menggambarkan relasi antar entity pada Database Perpustakaan SM PN 1 :
Nama Entity Multiplicity Relationship Multiplicity Nama Entity
Ms_anggota 1..* M emberikan 0..* Feedback
1..1 M elakukan 1..* Peminjaman
0..1 M elakukan 0..1 Buku_hilang
0..1 M elakukan 0..1 Penggantian
Ms_user 1..1 M emproses 1..* Pengadaan
1..1 M emproses 1..* Peminjaman
1..1 M emproses 1..* Penggantian
1..1 M emproses 1..* Ms_anggota
Pengadaan 1..* M enambah 1..* Ms_buku
Peminjaman 1..* M endasari 1..1 Buku_hilang
1..* M empengaruhi 1..* Ms_buku
Buku_hilang 1..* M empengaruhi 1..1 Ms_buku
1..* M endasari 1..1 Penggantian
Penggantian 1..* M endasari 1..1 Pengadaan
Table 4.2 Tabel Entity Relationship
Berdasarkan hubungan entity di atas dapat dibuatkan Entity Relationship Diagram (ERD) sebagai berikut :
4.1.1.3 Mengidentifikasi Atribut Tiap Entity
Setelah menentukan relasi antar entity beserta multiplicity constraint antar entity, maka sekarang akan ditentukan attribut dari setiap entity, tipe data, dan panjangnya. Berikut ini merupakan table yang menggambarkan atribut dari entity yang telah diidentifikasi sebelumnya :
Nama Entity Attribute Description Data Types
and Length
Null Multi
Valued
Ms_anggota Id_anggota Id anggota Varchar(17) No No
Tanggal_daftar Tanggal bergabung menjadi anggota
Datetime No No
Id_jenis_anggota Jenis dari anggota perpus
Int(11) No No
Nama Nama jenis
anggota
Varchar(33) No No
Ket Keterangan Varchar(50) No No
Nis Nomor Induk
Siswa
Varchar(17) No No
Nama_kelas Nama kelas Varchar(6) No No
Nama_angkatan Nama angkatan varchar(10) Yes No
Nip Nomor induk
pegawai
Varchar(17) No No
Nama Nama anggota Varchar(50) No No
Periode_awal Periode awal kerja
Year No No
Periode_akhir Peride akhir bekerja
Year Yes No
Status Status aktif Int(11) No No
Nama_jabatan Nama jabatan Varchar(50) No No
Id_umum Id umum Varchar(17) No No
Nama Nama anggota Varchar(50) No No
Jenis_kelamin Jenis kelamin int(11) No No
Alamat Alamat rumah
anggota
Varchar(100) No No
Telepon Telepon rumah
anggota
Varchar(15) No No
anggota
Email Email Varchar(50) Yes No
Ms_buku Id_buku Id buku Varchar(17) No No
Id_penerbit Id penerbit Int(11) No No
Id_jenis_buku Id jenis buku Int(11) No No
Id_bahasa Id bahasa Int(11) No No
Id_jenis_koleksi Id jenis koleksi Varchar(5) No No
Nama Penerbit Varchar(30) No No
Alamat Alamaat penerbit Varchar(100) No No Telepon Telepon penerbit Varchar(15) No No
kd_rak Nomor rak Varchar(5) No No
Jenis_buku Jenis buku Varchar(50) No No
Bahasa Bahasa Varchar(17) No No
Jenis_koleksi Jenis koleksi Varchar(5) No No
Judul_buku Judul Buku Varchar(55) No No
Edisi Edisi Int(11) Yes No
Editor Editor Varchar(50) Yes No
Tebal_hal Tebal halaman Int(11) No No
Tahun_terbit Tahun terbit Year No No
Isbn Isbn Varchar(20) Yes No
Asal_buku Asal buku Int(11) Yes No
Status Status Int(11) Yes No
Ms_user Id_login Id login Varchar(21) No No
Jenis_user Jenis user Int(11) No No
Password Password user Varchar(10) No No
Tanggal Tanggal Datetime No No
Feedback Id_feedback Id feddback Int(11) No No
Feedback Feedback / saran Varchar(255) No No
Tanggal Tanggal feedback
Datetime No No
Pengadaan Id_pengadaan Id pengadaan Int(11) No No
Id_supplier Id supplier Int(11) No No
Nama Nama supplier Varchar(40) No No
Alamat Alamat supplier Varchar(100) No No
Telepon Telepon supplier Varchar(15) No No
Cp Contact person Varchar(30) Yes No
Cp_telepon CP telp Varchar(15) Yes No
Ket Keterangan Varcahr(100) No No
Judul_buku Judul buku Varchar(100) No No
Isbn Isbn Varchar(20) No No
Jumlah Jumlah pengadaan
Int(11) No No
Harga Harga per unit Bigint(20) No No
Tanggal Tanggal pengadaan
Datetime No No
Peminjaman Id_peminjaman Id peminjaman Int(11) No No
Kd_jenis Kode jenis Int(11) No No
Nama_jenis Nama jenis
pinjaman
Varchar(10) No No
Tgl_pinjam Tangal peminjaman
Tgl_harus_kemba li
Tanggal harus kembali
Datetime No No
Tgl_kembali Tanggal kembali Datetime No No
Denda Denda keterlambatan
Bigint(20) No No
Ket Keterangan Varchar(100) No No
Status Status peminjaman
Int(11) No No
Buku_hilang Id_buku_hilang Id buku hilang Int(11) No No
Tanggal Tanggal buku
hilang
Datetime No No
Status Status pelaporan
buku hilang
Varchar(20) No No
Ket Keterangan Varchar(20) No No
Penggantian Id_penggantian Id penggantian Int(11) No No
Tanggal Tanggal penggantian Datetime No No Status Status penggatian Varchar(20) No No
4.1.1.4 Menentukan Domain Atribut
Pada tahap ini ditentukan nilai-nilai yang legal dari tiap-tiap atribut. Nilai tersebut dapat dilihat dari table berikut ini :
Nama Entity Attribute Data Types and
Length
Domain Attribute
Ms_anggota Id_anggota Varchar(17) XXX= ‘001’ – ‘003’
jenis anggota
YYYY= ‘0001’ – ‘9999’
nomor urut anggota
Tanggal_daftar Datetime dd-mm-yyyy
Id_jenis_anggota Int(11) XXX = ‘001’ – ‘003’
Nama Varchar(33) ‘A’-‘Z’
Ket Varchar(50) ‘A’-’Z’, ‘0’-‘9’
Nis Varchar(17) ‘0’-‘9’
Nama Varchar(50) ‘A’-‘Z’
Nama_angkatan varchar(10) ‘A’-‘Z’
Nip Varchar(17) ‘0’-‘9’
Nama Varchar(50) ‘A’-’Z’
Periode_awal Year yyyy
Periode_akhir Year yyyy
Status Int(11) ‘0’-‘9’
Nama_jabatan Varchar(50) ‘A’-’Z’
Id_umum Varchar(17) ‘0’-’9’
Nama Varchar(50) ‘A’-’Z’
Jenis_kelamin int(11) ‘0’-’9’
Alamat Varchar(100) ‘A’-’Z’, ‘0’-‘9’
Telepon Varchar(15) ‘0’-’9’
HP Varchar(15) ‘0’-’9’
Email Varchar(50) ‘A’-’Z’, ‘0’-‘9’
Ms_buku Id_buku Varchar(17) AAA=’001’-‘999’
Id jenis koleksi
Kd rak
CCCCC= ‘00001’-’99999’
Nomor urut buku
Id_penerbit Int(11) ’0’-‘9’
Id_jenis_buku Int(11) ’0’-‘9’
Id_bahasa Int(11) ’0’-‘9’
Id_jenis_koleksi Varchar(5) ’0’-‘9’
Nama Varchar(30) ‘A’-‘Z’, ’0’-‘9’
Alamat Varchar(100) ‘A’-’Z’, ’0’-‘9’
Telepon Varchar(15) ’0’-‘9’
kd_rak Varchar(5) ’0’-‘9’
Jenis_buku Varchar(50) ‘A’-’Z’
Bahasa Varchar(17) ‘A’-’Z’
Jenis_koleksi Varchar(5) ‘A’-’Z’
Judul_buku Varchar(55) ‘A’-’Z’
Pengarang Varchar(50) ‘A’-’Z’
Editor Varchar(50) ‘A’-’Z’
Tebal_hal Int(11) ’0’-‘9’
Tahun_terbit Year Yyyy
Isbn Varchar(20) ’0’-‘9’
Asal_buku Int(11) ’0’-‘9’
Status Int(11) ’0’-‘9’
Ms_user Id_login Varchar(21) ‘A’-‘Z’ , ‘0’-’9’
Jenis_user Int(11) ‘0’-’9’
Password Varchar(10) ‘A’-‘Z’ , ‘0’-’9’
Tanggal Datetime dd-mm-yyyy
Feedback Id_feedback Int(11) ‘0’-’9’
Feedback Varchar(255) ‘A’-‘Z’ , ‘0’-’9’
Tanggal Datetime dd-mm-yyyy
Pengadaan Id_pengadaan Int(11) ‘0’-’9’
Id_supplier Int(11) ‘0’-’9’
Jenis_supplier Varchar(30) ‘A’-‘Z’ , ‘0’-’9’
Alamat Varchar(100) ‘A’-‘Z’ , ‘0’-’9’
Telepon Varchar(15) ‘0’-’9’
Cp Varchar(30) ‘A’-‘Z’ , ‘0’-’9’
Cp_telepon Varchar(15) ‘0’-’9’
Ket Varcahr(100) ‘A’-‘Z’ , ‘0’-’9’
Judul_buku Varchar(100) ‘A’-‘Z’ , ‘0’-’9’
Isbn Varchar(20) ‘A’-‘Z’ , ‘0’-’9’
Jumlah Int(11) ‘0’-’9’
Harga Bigint(20) ‘0’-’9’
Tanggal Datetime dd-mm-yyyy
Peminjaman Id_peminjaman Int(11) ‘0’-’9’
Kd_jenis Int(11) ‘0’-’9’
Nama_jenis Varchar(10) ‘A’-‘Z’ , ‘0’-’9’
Tgl_pinjam Datetime dd-mm-yyyy
Tgl_harus_kembali Datetime dd-mm-yyyy
Tgl_kembali Datetime dd-mm-yyyy
Ket Varchar(100) ‘A’-‘Z’ , ‘0’-’9’
Status Int(11) ‘0’-’9’
Buku_hilang Id_buku_hilang Int(11) ‘0’-’9’
Tanggal Datetime dd-mm-yyyy
Status Varchar(20) ‘0’-’9’
Ket Varchar(20) ‘A’-‘Z’ , ‘0’-’9’
Penggantian Id_penggantian Int(11) ‘0’-’9’
Tanggal Datetime dd-mm-yyyy
Status Varchar(20) ‘0’-’9’
Table 4.4 Tabel Domain Atribut
4.1.1.5 Mengidentifikasi Candidate Key dan Primary Key tiap emtity
Setelah menentukan domain pada langkah sebelumnya, sekarang akan menentukan atribut yang akan menjadi candidate key dan primary key dari tiap entity. Berikut ini adalah table yang menggambarkan candidate key dan primary key dari setiap masing-masing entity pada Database Perpustakaan :
Nama Entity Candidate key Primary Key Ms_anggota Id_anggota Nis Nip Id_umum Id_anggota
Ms_buku Id_buku Id_buku
Ms_user Id_login Id_login
Feedback Id_feedback Id_feedback
Buku_hilang Id_buku_hilang Id_buku_hilang
Pengadaan Id_pengadaan
Id_supplier
Id_pengadaan
Peminjaman Id_peminjaman Id_peminjaman
Penggantian Id_penggantian Id_penggantian
4.1.1.6 Mempertimbangkan Penggunaan EERD
Pada tahap ini merupakan untuk mempertimbangkan penggunaan Enhanced Relationship Diagram yang dimana dalam model ini memiliki tiga konsep utama, yakni : specialization-generalitation, aggregration, dan composition. Pada ERD yang saya buat tidak terdapat ketiga hal utama yg terdapat pada EERD, sehingga tahap ini tidak saya lakukan.
4.1.1.7 Mengecek Model Terhadap Redudansi
Tahap ini bertujuan untuk melakukan pengecekan ERD apakah terdapat hubungan antar entity yang bersifat redundansi. Pada tahap ini ERD yang saya buat tidak terdapat ERD yang bersifat redudansi, sehingga pada tahap ini tidak saya lakukan.
4.1.1.8 Memvalidasi Model Konseptual Dengan Transaksi Terhadap User
Tahapan ini bertujuan untuk memastikan model konseptual untuk mendukung transaksi yang dibutuhkan oleh user. Berikut ini adalah gambar yang merepresentasikan jalan dari setiap transaksi secara langsung :
Gambar 4.3 Pengecekan Model Konseptual yang Mendukung
Di bawah ini adalah transaksi terhadap user yang terjadi :
a. Daftar rincian data Anggota di perpustakaan
b. M engidentifikasi jumlah anggota di perpustakaan
c. Daftar rincian Pengadaan Buku
d. Daftar rincian data Peminjaman dan Pengembalian
e. Daftar nomor anggota, tanggal pinjam tanggal harus kembali, tanggal kembali, status pinjaman, days late, hutang/ denda data Peminjaman dan Pengembalian Buku disusun menurut tanggal peminjaman
f. Daftar data Feedback yang diawasi oleh manajemen perpustakaan
g. Daftar rincian data Buku Hilang
h. Identifikasi jumlah buku yang hilang
i. Daftar rincian Penggantian Buku
j. M engidentifikasikan jumlah buku pengganti
4.1.2 Perancangan Basis Data Logikal
Perancangan database logical adalah proses membuat model dari informasi yang digunakan dalam sebuah perusahaan maupun organisas i berdasarkan data model yang spesifik, namun tidak tergantung DBM S tertentu dan pertimbangan fisikal. Kemudian model data akan divalidas i dengan teknik normalisasi untuk meyakinkan bahwa strukturnya sudah benar dan juga model data ini benar-benar mendukung transaksi yang dibutuhkan
4.1.2.1 Menghilangkan fitur yang tidak kompatibel dengan model relasi
1. Menghilangkan tipe relasi many to many biner :
M enjadi
Gambar 4.4 Gambar ERD menghilangkan many to many pada Pengadaan
M enjadi
Gambar 4.5 Gambar ERD menghilangkan many to many pada Peminjaman
4.1.2.2 Membuat Relasi untuk Model Data Logical
Pada tahap ini dibuat hubungan logikal model yang mewakili entity, relationship dan atribut yang telah didefinisi.
Ms_anggota (Id_anggota, Tanggal_daftar, Id_jenis_anggota, Nama, ket, Id_login Nis, Nama, Nama_kelas, Nama_angkatan, Nip, Nama, Periode_awal, Periode_akhir, Status, Nama_jabatan, Id_umum, Nama, Jenis_kelamin, Alamat, telepon, Hp, Email)
Primary Key Id_anggota, Id_jenis_anggota, Nis, Nip, Id_umum
Foreign Key Id_login References M s_user
Jenis_koleksi, Id_jenis_buku, Jenis_buku, Kd_rak, Id_bahasa, Bahasa, Judul_buku, Pengarang, Edisi, Editor, Tahun_terbit, Tebal_hal, Isbn, Asal_buku, Status)
Primary Key Id_buku, Id_penerbit, Id_jenis_koleksi, Id_jenis_buku, kd_rak, Id_bahasa
Ms_user (Id_login, Jenis_user, Password, Tanggal)
Primary Key id_login
Feedback (Id_feedback, Id_anggota, Feedback, Tanggal)
Primary Key Id_feedback
Foreign Key Id_anggota References Ms_anggota
Pengadaan (Id_pengadaan, Id_supplier, Jenis_supplier, Nama, Alamat, Telepon, Cp, Cp_telepon, Ket, Id_penggantian, Id_login, Tanggal)
Primary Key Id_pengadaan, Id_supplier
Foreign Key Id_penggantian References Penggantian
Foreign Key Id_login References M s_user
Tr_pengadaan_detail (Id_pengadaan, Id_buku, Jenis_pengadaan, Judul_buku, Isbn, Jumlah, Harga)
Primary Key Id_pengadaan
Foreign Key Id_buku References Ms_buku
Peminjaman (Id_peminjaman, Id_anggota, Id_login, Tgl_pinjam, Tgl_harus_kembali, T gl_kembali, Ket)
Primary Key Id_peminjaman
Foreign Key Id_anggota References Ms_anggota
Foreign Key Id_login References M s_user
Tr_peminjaman_detail (Id_peminjaman, Id_buku, Kd_jenis, Nama_jenis Denda, Status)
Primary Key Id_peminjaman, Kd_jenis
Foreign Key Id_peminjaman References Peminjaman
Foreign Key Id_buku References Ms_buku
Buku_hilang (Id_buku_hilang, Id_buku, Id_anggota, Id_login, Tanggal, Status, Id_peminjaman, Ket)
Primary Key Id_buku_hilang
Foreign Key Id_peminjaman References Peminjaman
Foreign Key Id_anggota References Ms_anggota
Foreign Key Id_login References M s_user
Foreign Key Id_buku References Ms_buku
Tanggal, Status)
Primary Key Id_penggantian
Foreign Key Id_buku_hilang References Buku_hilang
Foreign Key Id_buku References Ms_buku
Foreign Key Id_anggota References Ms_anggota
Foreign Key Id_login References M s_user
Tabel 4.6 Tabel Model Data Logikal dengan relasi antara Primary Key dan Foreign Key
4.1.2.3 Normalisasi
1. Ms_anggota
Id_anggota (Primary Key)
Id_jenis_anggota (Partial Dependency)
Nama Ket Nis Nama Nama_kelas Nama_angkatan Nip Nama Periode_awal Periode_akhir Status Jabatan Id_umum Nama
Id_login Jenis_kelamin Alamat Telepon Hp Email Tanggal_daftar 1NF
Dari data di atas merupakan bentuk 1NF tetapi terdapat partial dependency yang dimana harus di normalisasikan dalam bentuk 2NF.
2NF
Tabel Ms_anggota
@Id_anggota, #Nis, #Nip, #Id_umum, #Id_jenis_anggota, Jenis_kelamin, Alamat, Telepon, Hp, Email, Tanggal_daftar
Tabel Ms_user
Tabel Ms_siswa
@Nis, Nama, Nama_kelas, Nama_angkatan
Tabel Jenis_anggota
@Id_jenis_anggota, Nama, Ket
Tabel Ms_pegawai
@Nip, Periode_awal, Periode_akhir, Nama, Jabatan, Status
Tabel Ms_umum
@Id_umum, Nama
3NF
Di dalam 2NF yang telah dilakukan terdapat transitive dependency sehingga diperlukan normalisasi 3NF
Tabel Jabatan @Id_jabatan, Nama_jabatan Tabel Ms_siswa_kelas @Id_kelas, Nama_kelas Tabel Ms_siswa_angkatan @Id_angkatan, Nama_angkatan
2. Ms_buku
Id_buku (Primary Key)
Id_penerbit (Partial Dependency)
Nama Alamat Telepon Id_jenis_koleksi Jenis_koleksi Id_jenis_buku Jenis_buku Id_bahasa Bahasa Kd_rak Judul_buku Pengarang Edisi Editor
Tahun_terbit Tebal_hal Isbn Asal_buku Status 1NF
Pada data di atas telah memenuhi 1NF tetapi terdapat Partial Dependency yang dimana harus dilakukan normalisasi 2NF.
2NF
Tabel Ms_penerbit
@Id_penerbit, Nama, Alamat, Telepon
Tabel Ms_bahasa @Id_bahasa, Bahasa Tabel Jenis_koleksi @Id_jenis_koleksi, Nama_koleksi Tabel Jenis_buku @Id_jenis_buku, Nama_buku
Tabel Ms_rak
@Kd_rak
Tabel Ms_buku
@Id_buku, #Id_penerbit, #Id_jenis_koleksi, #Id_jenis_buku, #Id_bahasa, #Kd_rak, Judul_buku, Pengarang, Edisi, Editor, Tahun_terbit, Tebal_hal, Isbn, Asal_buku
3NF
Setelah di normalisasi 2NF tidak terdapat atribut yang transitive dependency, sehingga tidak diperlukan normalisasi 3NF.
3. Ms_user
Id_login (Primary Key)
Jenis_user (Transitive Dependency)
Password
Tanggal
1NF
Pada tahap UNF tidak terdapat repeating group ini diartikan entity termasuk normalisasi 1NF
2NF
Pada tahap normalisasi 1NF tidak terdapat atribut yang memiliki partial dependency, sehingga tidak diperlukan normalisasi 2NF.
Tabel Ms_user
@Id_login, jenis_user, password, tanggal
3NF
Setelah di normalisasi 2NF terdapat atribut yang transitive dependency, sehingga diperlukan normalisasi 3NF.
Tabel Ms_jenis_user
@Id_jenis_user, Jenis_user
4. Feedback
Id_feedback (Primary Key)
Id_anggota
Feedback
1NF
Pada Tahap ini tidak terdapat repeating group sehingga tidak diperlukan normalisasi 2NF dan 3NF
Tabel Feedback
@Id_feedback, #Id_anggota, Feedback, Tanggal
Tabel Ms_anggota
@Id_anggota
5. Pengadaan
Id_pengadaan (Primary Key)
Id_penggantian
Id_login
Id_supplier (Partial Dependency)
Jenis_supplier
Nama
Alamat
Telepon
Cp_telepon
Ket
Tanggal
1NF
Pada tahap normalisasi ini tidak terdapat repeating group maka hal ini telah memnuhi 1NF.
2NF
Pada tahapan ini terdapat partial dependency sehingga diperlukannya normalisasi 2NF.
Tabel Ms_supplier
@Id_supplier, Jenis_supplier, Nama, Alamat, Telepon, Cp, Cp_telepon, Ket
Tabel Pengadaan
@Id_pengadaan, #Id_penggantian, #Id_supplier, #Id_login, Tanggal
Tabel Penggantian
Tabel Ms_user
@Id_login
3NF
Setelah di normalisasi 2NF terdapat atribut yang transitive dependency, sehingga diperlukan normalisasi 3NF.
Tabel Jenis_supplier
@Id_jenis_supplier, Jenis_supplier
6. Tr_pengadaan_detail
Id_pengadaan (Primary Key)
Id_buku Jenis_pengadaan Judul_buku Isbn Jumlah Harga
1NF
Pada tahap ini sudah ternormalisasi kan pada 1NF karena tidak terdapat repeating group sehingga tidak diperlukan normalisasi berikutnya.
Tabel tr_pengadaan_detail
@Id_pengadaan, #Id_buku, Jenis_pengadaan, Judul_buku, Isbn, Jumlah, Harga
Tabel Ms_buku
@Id_buku
2NF
Pada tahapan ini tidak terdapat partial dependency sehingga tidak diperlukannya normalisasi 2NF.
3NF
Pada tahapan ini tidak terdapat transitive dependency sehingga diperlukannya normalisasi 3NF.
7. Peminjaman
Id_peminjaman (Primary Key)
Id_anggota Id_login Tgl_pinjam Tgl_harus_kembali Tgl_kembali Ket 1NF
Pada tahap ini tidak terdapat repeating group, dan telah memenuhi normalisasi 1NF
2NF
Pada tahap ini tidak terdapat partial dependency, dan telah memenuhi normalisasi 2NF
Tabel Peminjaman
@Id_peminjaman, #Id_anggota, #Id_login, Tgl_pinjam, Tgl_harus_kembali, T gl_kembali, Ket
Tabel Ms_anggota
@Id_anggota
Tabel Ms_user
@Id_login
3NF
Pada tahapan ini tidak terdapat transitive dependency sehingga diperlukannya normalisasi 3NF.
8. Tr_peminjaman_detail
Id_peminjaman (Primary Key)
Id_buku
Kd_jenis (Partial Dependency)
Nama_jenis
Denda
2NF
Pada tahap ini telah memasuki tahap normalisasi 2NF, sebab terdapat partial dependency.
Tabel Jenis_pinjaman
@Kd_jenis, Nama_jenis
Tabel Tr_peminjaman_detail
@Id_peminjaman, #Kd_jenis, #id_buku, Denda, Status
Tabel Ms_buku
@Id_buku
3NF
Setelah dilakukan normalisasi tahap 2NF tidak terdapat atribut yang memiliki transitive dependency, sehingga tahap normalisasi 3NF tidak diperlukan.
9. Buku_hilang
Id_buku_hilang (Primary Key)
Id_buku
Id_peminjaman Id_login Tanggal Status Ket 1NF
Pada tahap ini tidak terdapat repeating group, dan telah memenuhi normalisasi 1NF
2NF
Pada tahap ini tidak terdapat partial dependency, dan telah memenuhi normalisasi 2NF
Table Buku_hilang
@Id_buku_hilang, #Id_peminjaman, #Id_buku, #Id_anggota, #Id_login, Tanggal, Status, Ket
Tabel Peminjaman
@Id_peminjaman
@Id_buku Tabel Ms_anggota @Id_anggota Tabel Ms_user @Id_login 3NF
Pada tahap ini tidak terdapat transitive dependency, sehingga tidak diperlukan normalisasi 3NF
10. Penggantian
Id_penggantian (Primary Key)
Id_buku_hilang Id_anggota Id_login Id_buku Tanggal Status
2NF
Normalisasi pada tahap ini telah memenuhi normalisasi 2NF sehingga tidak diperlukan normalisasi 3NF dikarenakan tidak teradapat transitive dependency.
Table Penggantian
@Id_penggantian, #Id_buku_hilang, #Id_anggota, #Id_login, #Id_buku, Tanggal, Status
Tabel Buku_hilang @Id_buku_hilang Tabel Ms_anggota @Id_anggota Tabel Ms_user @Id_login Tabel Ms_buku @Id_buku
4.1.2.4 Validasi Relasi Dengan Transaksi User
Pada tahapan ini semua transaksi pengguna telah didefinisikan pada tahap konseptual diperiksa kembali dan sesuai kebutuhan pengguna.
4.1.2.5 Mendefinisikan Kendala Integritas
Integritas adalah langkah yang bertujuan untuk menghindari ketidakpastian data dalam basis data. Integritas ini dibagi atas beberapa tipe diantaranya yaitu :
1. Data Required adalah atribut harus mengandung nilai yang valid atau tidak boleh ada yang mengandung nilai NULL.
Contoh nya : primary key dalam sebuah entity memiliki nilai pasti dan unik.
2. Attribute Domain Constraints adalah atribut yang memiliki domain yaitu sekumpulan nilai yang sah untuk atribut+ constrainnya telah ditentukan saat kita menentukan domain atribut.
3. Integritas entity adalah primary key tidak boleh bernilai NULL. Aturan seperti ini telah dipertimbangkan pada saat mengidentifikasi primary key untuk semua entity.
4. Referential Intergrity merupakan tahap identifikasi nilai dari foreign key jika terjadi perubahan dan penghapusan key pada parent-nya.
Ms_pegawai (@Nip, #Id_jabatan, Periode_awal, Periode_akhir)
Primary Key Nip
Foreign Key Id_jabtan References Jabatan
ON UPDATE CASCADE ON DELETE NO ACTION
Ms_siswa (@Nis, Nama, #Id_kelas, #Id_angkatan)
Primary Key Nis
Foreign Key Id_kelas References M s_siswa_kelas
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key Id_angkatan References Ms_siswa_angkatan
ON UPDATE CASCADE ON DELETE NO ACTION
Ms_anggota (@Id_anggota, #Nis, #Nip, #Id_umum,
#Id_jenis_anggota, Jenis_kelamin, Alamat, Telepon, Hp, Email, Tanggal_daftar)
Primary Key Id_anggota
Foreign Key Id_jenis_anggota References Jenis_anggota
ON UPDATE CASCADE ON DELETE NO ACTION
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key Nip References Ms_pegawai
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key Id_umum References M s_umum
ON UPDATE CASCADE ON DELETE NO ACTION
Ms_buku (@Id_buku, #Id_penerbit, #Id_jenis_koleksi, #Id_jenis_buku, #Id_bahasa, #Kd_rak, judul_buku, pengarang, edisi, editor, tahun_terbit, tebal_hal, isbn, Asal_buku)
Primary Key Id_buku
Foreign Key Id_penerbit References Ms_penerbit
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key Id_jenis_koleksi References Jenis_koleksi
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key Id_jenis_buku References Jenis_buku
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key Id_bahasa References Ms_bahasa
ON UPDATE CASCADE ON DELETE NO ACTION
ON UPDATE CASCADE ON DELETE NO ACTION
Ms_supplier (@Id_supplier, #Id_jenis_supplier, Nama, Alamat, Telepon, Cp, Cp_telepon, Tanggal, Ket)
Primary Key Id_suuplier
Foreign Key Id_jenis_supplier References Jenis_supplier
ON UPDATE CASCADE ON DELETE NO ACTION
Ms_user (@Id_login, #Id_jenis_user, Password, Tanggal)
Primary Key Id_login
Foreign Key Id_jenis_user References M s_jenis_user
ON UPDATE CASCADE ON DELETE NO ACTION
Feedback (@Id_feedback, #Id_anggota, Feedback, Tanggal)
Primary Key Id_feedback
Foreign Key Id_anggota References M s_anggota
Pengadaan (@Id_pengadaan, #Id_supplier, #Id_penggantian, #Id_login, Tanggal)
Primary Key Id_pengadaan
Foreign Key Id_supplier References M s_supplier
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key Id_penggantian References Penggantian
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key Id_login References Ms_user
ON UPDATE CASCADE ON DELETE NO ACTION
Tr_pengadaan_detail (@Id_pengadaan, @#Id_buku, Jenis_pengadaan, Judul_buku, Isbn, Jumlah, Harga)
Primary Key Id_pengadaan, Id_buku
Foreign Key Id_pengadaan References Pengadaan
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key Id_buku References Ms_buku
Tr_peminjaman (@Id_peminjaman, #Id_anggota, #Id_login, Tgl_pinjam, Tgl_harus_kembali, T gl_kembali, Ket)
Primary Key Id_peminjaman
Foreign Key Id_anggota References Ms_anggota
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key Id_login References M s_user
ON UPDATE CASCADE ON DELETE NO ACTION
Tr_peminjaman_detail (@Id_peminjaman, @#Id_buku, #Kd_jenis, Denda, Status)
Primary Key Id_peminjaman, Id_buku
Foreign Key Id_peminjaman References Tr_peminjaman
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key Id_buku References Ms_buku
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key Kd_jenis References Jenis_pinjaman
Buku_hilang (@Id_buku_hilang, #Id_peminjaman, #Id_buku, #Id_anggota, #Id_login, Tanggal, Status, Ket)
Primary Key Id_buku_hilang
Foreign Key Id_peminjaman References Peminjaman
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key Id_anggota References Ms_anggota
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key Id_login References M s_user
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key Id_buku References Ms_buku
ON UPDATE CASCADE ON DELETE NO ACTION
Penggantian (@Id_penggantian, #Id_buku_hilang, #Id_anggota, #Id_login, #Id_buku, Tanggal, Status)
Primary Key Id_penggantian
Foreign Key Id_buku_hilang References Buku_hilang
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key Id_buku References Ms_buku
Foreign Key Id_anggota References Ms_anggota
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key Id_login References M s_user
ON UPDATE CASCADE ON DELETE NO ACTION
4.1.2.6 Diagram ER Logical
Diagram ER logical menyertakan seluruh entity serta atribut-key nya (Primary Key dan Foreign Key). Di bawah ini adalah diagram ER logical :
4.1.3 Perancangan Basis Data Fisikal
Pada tahapan ini merupakan suatu proses untuk menghasilkan gambaran dari implementasi basis data pada tempat penyimpanan, menjelaskan dasar relasi, digunakan untuk mengefisienkan data dan menghubungkan bebrapa integrity constraint dan keamanan pada (Connolly, 2002, p478). Adapun langkah-langkah yang dalam perancangan basis data fisikal adalah sebagai berikut :
4.1.3.1 Merancang Base Relasi
Tahap ini bertujuan untuk memutuskan relasi dasar yang diidentifikasi dalam model logical global dalam DBM S yang diinginkan.
Tabel Identifikasi Relasional Model Data Logikal Global
Table 4.7 Tabel Relasi Ms_siswa
Nama Entity Attribute Description Data Types
and Length
Null
Ms_siswa Nis Nomor Induk
Siswa
Varchar(17) No
Id_kelas Id_kelas Int(11) No
Nama Nama anggota Varchar(50) No
Primary Key Nis
Foreign Key Id_angkatan References Ms_siswa_angkatan
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key Id_kelas References M s_siswa_kelas
ON UPDATE CASCADE ON DELETE NO ACTION
Table 4.8 Tabel Relasi Ms_siswa_angkatan
Nama Entity Attribute Description Data Types
and Length
Null
Ms_siswa_angk atan
Id_angkatan Id_angkatan Int(11) No
Id_kelas Id_kelas Int(11) No
Nama_angkatan Nama angkatan Varchar(10) No
Primary Key Id_angkatan
Foreign Key Id_kelas References M s_siswa_kelas
Table 4.9 Table Relasi Ms_siswa_kelas
Nama Entity Attribute Description Data Types
and Length
Null
Ms_siswa_kelas Id_kelas Id_kelas Int(11) No
Nama_kelas Nama kelas Varchar(6) No
Primary Key Id_kelas
Table 4.10 Tabel Relasi Ms_umum
Nama Entity Attribute Description Data Types
and Length
Null
Ms_umum Id_umum Nomor id anggota
umum
Varchar(17) No
Nama Nama anggota
umum
Varchar(50) No
Table 4.11 Tabel Relasi Ms_pegawai
Nama Entity Attribute Description Data Types
and Length
Null
Ms_pegawai NIP Nomor induk
pegawai
Varchar(17) No
Id_Jabatan Idjabatan Int(11) No
Nama Nama pegawai Varchar(50) No
Periode_awal Periode awal kerja Year No
Periode_akhir Peride akhir
bekerja
Year Yes
Status Status aktif Int(11) No
Primary Key NIP
Foreign Key Id_jabatan References Jabatan
Table 4.12 Table Relasi Jabatan
Nama Entity Attribute Description Data Types
and Length
Null
Jabatan Id_jabatan Id jabatan Int(11) No
Nama_jabatan Nama jabatan Varchar(50) No
Primary Key Id_jabatan
Table 4.13 Table Relasi Ms_anggota
Nama Entity Attribute Description Data Types
and Length
Null
Ms_anggota Id_anggota Id anggota Varchar(17) No
Nis Nomor induk
Siswa
Varchar(17) No
Nip Nomor induk
pegawai
Varchar(17) No
Id_umum Id umum Varchar(17) No
Id_login Id_login Varchar(21) No
Jenis_kelamin Jenis kelamin int(11) No
anggota pegawai
Telepon Telepon pegawai Varchar(15) No
Hp Hp pegawai Varchar(15) No
Email Email pegawai Varchar(50) No
Id_jenis_anggota Id jenis anggota Int(11) No
Tanggal_daftar Tanggal bergabung menjadi anggota
DATETIM E No
Primary Key Id_anggota
Foreign Key Id_jenis_anggota References jenis_anggota
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key Nis References M s_siswa
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key Nip References Ms_pegawai
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key Id_umum References M s_umum
Table 4.14 Tabel Relasi Jenis_anggota
Nama Entity Attribute Description Data Types
and Length
Null
Jenis_anggota Id_jenis_anggota Id jenis anggota Int(11) No
Nama Nama jenis
anggota
Varchar(33) No
Ket Keterangan Varchar(50) Yes
Primary Key Id_jenis_anggota
Table 4.15 Tabel Relasi Ms_buku
Nama Entity Attribute Description Data Types
and Length
Null
Ms_buku Id_buku Id buku Varchar(17) No
Id_penerbit Id penerbit Int(11) No
Id_jenis_buku Id jenis buku Int(11) No
Id_bahasa Id bahasa Int(11) No
Id_jenis_koleksi Id jenis koleksi Varchar(5) No
Judul_buku Judul Buku Varchar(55) No
Pengarang Pengarang Varchar(50) No
Edisi Edisi Int(11) Yes
Editor Editor Varchar(50) Yes
Tebal_hal Tebal halaman Int(11) No
Tahun_terbit Tahun terbit Year No
ISBN ISBN Varchar(20) Yes
Asal_buku Asal buku Int(11) Yes
Status Status Int(11) Yes
Primary Key Id_buku
Foreign Key Id_penerbit References Ms_penerbit
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key Id_jenis_buku References Jenis_buku
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key Id_bahasa References M s_bahasa
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key Id_jenis_koleksi References Jenis_koleksi
Foreign Key kd_rak References Ms_rak
ON UPDATE CASCADE ON DELETE NO ACTION
Table 4.16 Tabel Relasi Jenis_buku
Nama Entity Attribute Description Data Types
and Length
Null
Jenis_buku Id_jenis_buku Id jenis buku Int(11) No
Nama Nama buku Varchar(50) No
Primary Key Id_jenis_buku
Table 4.17 Tabel Relasi Jenis_koleksi
Nama Entity Attribute Description Data Types
and Length
Null
Jenis_koleksi Id_jenis_koleksi Id_jenis_koleksi Varchar(5) No
Nama_koleksi Nama koleksi Varchar(55) No
Table 4.18 Tabel Relasi Ms_ supplier
Nama Entity Attribute Description Data Types
and Length
Null
Ms_supplier Id_supplier Id supplier Int(11) No
Id_jenis_supplier Id jenis supplier Int(11) No
Nama Nama supplier Varchar(40) No
Alamat Alamat supplier Varchar(100) No
Telepon Telepon supplier Varchar(15) No
Cp Contact person Varchar(30) Yes
Cp_telepon CP telp Varchar(15) Yes
Tanggal Tanggal supplier Datetime No
Ket Keterangan Varcahr(100) No
Primary Key Id_ supplier
Foreign Key Id_jenis_supplier References Jenis_supplier
Table 4.19 Tabel Relasi Jenis_supplier
Nama Entity Attribute Description Data Types
and Length
Null
Jenis_supplier Id_jenis_supplier Id jenis supplier Int(11) No
Jenis_supplier Nama jenis supplier
Varchar(30) No
Primary Key Id_jenis_supplier
Table 4.20 Tabel Relasi Ms_penerbit
Nama Entity Attribute Description Data Types
and Length
Null
Ms_penerbit Id_penerbit Id penerbit Int(11) No
Nama Nama penerbit Varchar(30) No
Alamat Alamat penerbit Varchar(100) No
Telepon Telepon penerbit Varchar(15) Yes
Table 4.21 Tabel Relasi Ms_bahasa
Nama Entity Attribute Description Data Types
and Length
Null
Ms_bahasa Id_bahasa Id bahasa Int(11) No
Bahasa Bahasa Varchar(17) No
Primary Key Id_bahasa
Table 4.22 Tabel Relasi Ms_rak
Nama Entity Attribute Description Data Types
and Length
Null
Ms_rak kd_rak kd rak Varchar(5) No
Primary Key Kd_rak
Table 4.23 Tabel Relasi Ms_user
Nama Entity Attribute Description Data Types
and Length
Null
Ms_user Id_login Id login Varchar(21) No
Password Password user Varchar(10) No
Tanggal Tanggal DATETIM E No
Primary Key Id_login
Foreign Key Id_jenis_user References M s_jenis_user
ON UPDATE CASCADE ON DELETE NO ACTION
Table 4.24 Tabel Relasi Ms_jenis_user
Nama Entity Attribute Description Data Types
and Length
Null
Ms_jenis_user Id_jenis_user Id jenis user Int(11) No
Nama Nama jenis user Varchar(10) No
Primary Key Id_jenis_user
Table 4.25 Tabel Relasi Feedback
Nama Entity Attribute Description Data Types
and Length
Null
Feedback Id_feedback Id feddback Int(11) No
Feedback Feedback / saran Varchar(255) No
Tanggal Tanggal feedback Datetime No
Primary Key Id_feedback
Foreign Key Id_anggota References Ms_anggota
ON UPDATE CASCADE ON DELETE NO ACTION
Table 4.26 Tabel Relasi Pengadaan
Nama Entity Attribute Description Data Types
and Length
Null
Pengadaan Id_pengadaan Id pengadaan Int(11) No
Id_supplier Id supplier Int(11) No
Id_penggantian Id penggantian Int(11) No
Id_login Id login Varchar(21) No
Tanggal Tanggal pengadaan
Datetime No
Primary Key Id_pengadaan
Foreign Key Id_supplier References M s_supplier
ON UPDATE CASCADE ON DELETE NO ACTION
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key Id_supplier References Ms_supplier
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key Id_login References M s_user
ON UPDATE CASCADE ON DELETE NO ACTION
Table 4.27 Tabel Relasi Pengadaan_detail
Nama Entity Attribute Description Data Types
and Length
Null
Tr_pengadaan_ detail
Id_pengadaan Id pengadaan Int(11) No
Id_buku Id buku Varchar(17) No
Jenis_pengadaan Jenis pengadaan Varchar(20) No
Judul_buku Judul buku Varchar(100) No
Isbn Isbn Varchar(20) No
Jumlah Jumlah pengadaan Int(11) No
Harga Harga per unit Bigint(20) No
Primary Key Id_pengadaan
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key Id_buku References Ms_buku
ON UPDATE CASCADE ON DELETE NO ACTION
Table 4.28 Table Relasi Peminjaman
Nama Entity Attribute Description Data Types
and Length
Null
Peminjaman Id_peminjaman Id peminjaman Int(11) No
Id_anggota Id anggota Varchar(17) No
Id_login Id login Varchar(21) No
Tgl_pinjam Tangal peminjaman
Datetime No
Tgl_harus_kembali Tanggal harus kembali
Datetime No
Tgl_kembali Tanggal kembali Datetime No
Ket Keterangan Varchar(100) No
Status Status peminjaman Int(11) No
Primary Key Id_peminjaman
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key Id_login References M s_user
ON UPDATE CASCADE ON DELETE NO ACTION
Table 4.29 Table Relasi Peminjaman Detail
Nama Entity Attribute Description Data Types
and Length
Null
Tr_peminjaman _detail
Id_peminjaman Id peminjaman Int(11) No
Id_buku Id buku Varchar(17) No
Kd_jenis Kode jenis Int(11) No
Denda Denda keterlambatan
Bigint(20) No
Primary Key Id_peminjaman, id_buku
Foreign Key Id_peminjaman References Peminjaman
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key Id_buku References Ms_buku
ON UPDATE CASCADE ON DELETE NO ACTION
ON UPDATE CASCADE ON DELETE NO ACTION
Table 4.30 Table Relasi Jenis_pinjaman
Nama Entity Attribute Description Data Types
and Length
Null
Jenis_pinjaman Kd_jenis Kode jenis
pinjaman
Int(11) No
Nama_jenis Nama jenis pinjaman
Varchar(10) No
Primary Key Kd_jenis
Table 4.31 Table Relasi Buku_hilang
Nama Entity Attribute Description Data Types
and Length
Null
Buku_hilang Id_buku_hilang Id buku hilang Int(11) No
Id_buku Id buku Varchar(17) No
Id_peminjaman Id peminjaman Int(11) No
Id_login Id login Varchhar(21) No
Tanggal Tanggal buku hilang
Datetime No
Status Status pelaporan
buku hilang
Varchar(20) No
Ket Keterangan Varchar(20) No
Primary Key Id_buku_hilang
Foreign Key Id_peminjaman References Peminjaman
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key Id_anggota References Ms_anggota
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key Id_login References M s_user
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key Id_buku References Ms_buku
Table 4.32 Table Relasi Penggantian
Nama Entity Attribute Description Data Types
and Length
Null
Penggantian Id_penggantian Id penggantian Int(11) No
Id_buku_hilang Id buku hilang Int(11) No
Id_login Id login Varchar(21) No
Id_anggota Id anggota Varchar(17) No
Tanggal Tanggal penggantian
Datetime No
Status Status penggatian Varchar(20) No
Primary Key Id_penggantian
Foreign Key Id_buku_hilang References Buku_hilang
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key Id_buku References Ms_buku
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key Id_anggota References Ms_anggota
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key Id_login References M s_user
4.1.3.2 Merancang Enterprise Constraint
Dalam hal ini tidak terdapat enterprise constraint sesuai dengan yang berlaku di Sekolah.
4.1.3.3 Merancang Representatif Fisikal
Tahapan ini bertujuan untuk menentukan data secara optimal untuk menyimpan relasi yang dibutuhkan agar dapat di terima dengan baik
4.1.3.3.1 Analisa Transaksi
Analisa transaksi ini untuk memahami fungsional dari transaksi terhadap relasi yang ada. Untuk memudahkan menganalisa maka di gunakan transaction / relation cross-reference matrix (matriks referential silang transaksi / relasi).
Berikut ini adalah transaksi yang dilakukan :
a) M emasukkan data Anggota
b) M emasukkan data Pendataan Buku
c) M emasukkan data Peminjaman dan Pengembalian Buku
d) M emasukkan data Feedback
f) M emasukkan data Penggantian Buku
g) M emasukkan data Sirkulasi Peminjaman
h) M engubah dan menghapus data Anggota
i) M engubah dan menghapus data Pendataan Buku
j) M engubah data Peminjaman dan Pengembalian Buku
k) M engubah dan menghapus data Feedback
l) M engubah dan menghapus data Buku Hilang
m) M engubah data Penggantian Buku
n) M engubah data Sirkulasi Peminjaman
Tabel 4.33 Tabel Analisis Transaksi ( 1 )
A B C D Transaksi Relasi I R U D I R U D I R U D I R U D Ms_siswa X X Ms_siswa_angkatan X Ms_siswa_kelas X
Ms_pegawai X X Jabatan X Ms_umum X X Ms_anggota X X Jenis_anggota X Ms_user Ms_jenis_user Feedback X Ms_buku X X Ms_rak X X Ms_penerbit X X Ms_bahasa X X Jenis_buku X X Ms_rak X X Jenis_koleksi X X Ms_supplier X Jenis_supplier X
Pengadaan X Tr_pengadaan_detail X Penggantian Buku_hilang Peminjaman X Tr_peminjaman_deta il X Jenis_pinjaman X Keterangan :
a) M emasukkan data Anggota
b) M emasukkan data Pendataan Buku
c) M emasukkan data Peminjaman dan Pengembalian Buku
d) M emasukkan data Feedback
Tabel 4.34 Tabel Analisis Transaksi ( 2 )
E F G H
Transaksi
I R U D I R U D I R U D I R U D Ms_siswa X X X X Ms_siswa_angkatan X X Ms_siswa_kelas X X Ms_pegawai X X X X Jabatan X X Ms_umum X X X X Ms_anggota X X X X Jenis_anggota X X X X Ms_user X X X Ms_jenis_user Feedback Ms_buku X X X Ms_rak X Ms_penerbit X Ms_bahasa X Jenis_buku X
Ms_rak X Jenis_koleksi X Ms_supplier Jenis_supplier Pengadaan X Tr_pengadaan_detail X Penggantian X X Buku_hilang X X Peminjaman X X X Tr_peminjaman_deta il X X Jenis_pinjaman X X Keterangan :
e) M emasukkan data Buku Hilang
f) M emasukkan data Penggantian Buku
g) M emasukkan data Sirkulasi Peminjaman
Tabel 4.35 Tabel Analisis Transaksi ( 3 ) I J K L Transaksi Relasi I R U D I R U D I R U D I R U D Ms_siswa Ms_siswa_angkatan Ms_siswa_kelas Ms_pegawai Jabatan Ms_umum Ms_anggota X X Jenis_anggota Ms_user X X X X Ms_jenis_user Feedback X X Ms_buku X X X
Ms_rak X X Ms_penerbit X X Ms_bahasa X X Jenis_buku X X Ms_rak X X Jenis_koleksi X X Ms_supplier X X Jenis_supplier X X Pengadaan X X Tr_pengadaan_detail X X Penggantian Buku_hilang X X Peminjaman X Tr_peminjaman_deta il X Jenis_pinjaman X Keterangan :
j) M engubah data Peminjaman dan Pengembalian Buku
k) M engubah dan menghapus data Feedback
l) M engubah dan menghapus data Buku Hilang
Tabel 4.36 Tabel Analisis Transaksi ( 4 )
M N Transaksi Relasi I R U D I R U D Ms_siswa Ms_siswa_angkatan Ms_siswa_kelas Ms_pegawai Jabatan Ms_umum Ms_anggota X X Jenis_anggota Ms_user X X
Ms_jenis_user Feedback Ms_buku X X Ms_rak Ms_penerbit Ms_bahasa Jenis_buku Ms_rak Jenis_koleksi Ms_supplier Jenis_supplier Pengadaan X Tr_pengadaan_detail X Penggantian X Buku_hilang Peminjaman X Tr_peminjaman_deta il X
Jenis_pinjaman X
Keterangan :
m) M engubah data Penggantian Buku
n) M engubah data Sirkulasi Peminjaman
4.1.3.3.2 Pemilihan DBMS
Sebelum memilih DBM S yang akan dibuat, terlebih dahulu akan dijelaskan mengenai perbandingan 3 DBM S yang menjadi pilihan yaitu M icrosoft acces, M icrosoft SQL server 2000, dan mysql. Berikut ini adalah table yang menunjukan perbandingan ketiga DBM S :
M icrosoft Access M icrosoft SQL server 2000
MySQL
Hanya dapat berjalan di OS windows
Hanya dapat berjalan di OS windows
Dapat berjalan pada berbagai O S Hardware minimum Intel Pentium 166 MHz atau AM D k6-II, 32 M B Ram, 40GB Hardisk Hardware minimum Intel Pentium 166 MHz atau AM D k6-II, 32 M B Ram, 60GB Hardisk Hardware minimum Intel Pentium 166 MHz atau AM D k6-II, 32 M B Ram, 40GB Hardisk
Security kurang Security baik Security baik
Performance kurang Performance tinggi Performance sedang
Table 4.37 Tabel Perbandingan DBMS
Berdasarkan hasil yang diperoleh dari table perbandingan di atas, dapat disimpulkan pemilihan DBM S yang sesuai Perpustakaan BPPT adalah M ySQL dikernakan DBM S tersebut dari segi penggunaan OS dan hardware memungkinkan berjalan melalui OS LINUX, walau dari segi performance setidaknya MySQL dapat memenuhi kebutuhan yang akan dibuat.
4.1.3.3.3 Pemilihan Indeks
Pemilihan indeks ini dibuat agar memudahkan proses pencarian. Berikut ini adalah daftar indeks untuk masing-masing table yang ada :
Nama Tabel Indeks Nama Indeks
Ms_siswa Nis (Primary Index)
Nama (Secondary Index)
Idx_Nis
Idx_Nama
Ms_siswa_angkatan Id_angkatan(Primary Index) Idx_ Id_angkatan
Ms_siswa_kelas Id_kelas(Primary Index) Idx_ Id_kelas
Nama(Secondary Index) Idx_Nama
Jabatan Id_jabatan(Primary Index)
Nama(Secondary Index)
Idx_Id_jabatan
Idx_Nama
Ms_umum Id_umum(Primary Index)
Nama(Secondary Index)
Idx_Id_umum
Idx_Nama
Ms_anggota Id_anggota(Primary Index) Idx_Id_anggota
Jenis_anggota Id_jenis_anggota(Primary Index)
Idx_Id_jenis_anggota
Ms_user Id_login(Primary Index) Idx_Id_login
Ms_jenis_user Id_jenis_user(Primary Index) Idx_Id_jenis_user
Feedback Id_feedback(Primary Index) Idx_Id_feedback
Ms_buku Judul_buku(Primary Index)
Id_buku(Secondary Index)
Idx_Judul_buku
Idx_Id_buku
Ms_penerbit Nama(Primary Index)
Id_penerbit(Secondary Index)
Idx_Nama
Idx_Id_penerbit
Ms_bahasa Bahasa(Primary Index)
Id_bahasa(Secondary Index)
Idx_Bahasa
Idx_Id_bahasa
Ms_rak Kd_rak(Primary Index) Idx_Kd_rak
Jenis_koleksi Id_jenis_koleksi(Primary Index)
Idx_Id_jenis_koleksi
Ms_supplier Nama(Primary Index)
Id_supplier(Secondary Index)
Idx_Nama
Jenis_supplier Id_jenis_supplier(Primary Index)
Idx_Id_jenis_supplier
Pengadaan Id_pengadaan(Primary Index) Idx_Id_pengadaan
Tr_pengadaan_detail Id_pengadaan(Primary Index) Idx_Id_pengadaan
Penggantian Id_penggantian(Primary Index) Idx_Id_penggantian Buku_hilang Id_buku_hilang(Primary Index) Idx_Id_buku_hilang Peminjaman Id_peminjaman(Primary Index) Idx_Id_peminjaman Tr_peminjaman_detail Id_peminjaman(Primary Index) Idx_Id_peminjaman
Jenis_pinjaman Kd_jenis(Primary Index)
Nama_jenis(Secondary Index)
Idx_Kd_jenis
Idx_Nama_jenis
4.1.3.3.4 Estimasi Kebutuhan Memory
Pada tahap ini dilakukan penghitungan estimasi kebtuhan data penyimpanan selama setahun
Nama Entity Attribute Data Types
and Length
Ukuran
Ms_siswa Nis Varchar(17) 18 bytes
Id_angkatan int(11) 44 bytes
Id_kelas int(11) 44 bytes
Nama Varchar(50) 51 bytes
Tabel 4.39 Tabel Perhitungan Ms_siswa
Total kebutuhan memory maksimal untuk table M s_siswa adalah sebesar 157 bytes. Jumlah data pada tabel M s_siswa diperkirakan sebanyak 1200, kebutuhan memory maksimal untuk M s_siswa sebesar 1200 anggota x 157 = 183.98 Kbytes. asumsi Total kebutuhan memory maksimal selama 1 tahun sebesar 183.98 Kbytes.
Nama Entity Attribute Data Types and Length
Ukuran
Ms_siswa_angk atan
Id_angkatan Int(11) 44 bytes
Id_kelas Int(11) 44 bytes
Nama_angkatan Varchar(10) 11 byte
Table 4.40 Table Perhitungan Ms_siswa_angkatan
Total kebutuhan memory maksimal untuk table Ms_siswa_angkatan adalah sebesar 99 bytes. Jumlah data pada tabel Ms_siswa_anggota diperkirakan sebanyak 1 angkatan per tahun, kebutuhan memory maksimal untuk M s_siswa_angkatan sebesar 1200 anggota x 99= 116.02 Kbytes. Total kebutuhan memory maksimal selama 1 tahun sebesar 116.02 Kbytes.
Nama Entity Attribute Data Types
and Length
Ukuran
Ms_siswa_kelas Id_kelas Int(11) 44 bytes
Nama_kelas Varchar(6) 7 bytes
Table 4.41 Tabel Perhitungan Ms_siswa_kelas
Total kebutuhan memory maksimal untuk table Ms_siswa_kelas adalah sebesar 51 bytes. Jumlah data pada tabel M s_siswa_kelas
diperkirakan sebanyak 1 angkatan per tahun per 9 kelas, kebutuhan memory maksimal untuk M s_siswa_kelas sebesar 1200 anggota x 51 = 59.77 Kbytes. Total kebutuhan memory maksimal selama 1 tahun sebesar 59.77 Kbytes.
Nama Entity Attribute Data Types
and Length
Ukuran
Ms_umum Id_umum Varchar(17) 18 bytes
Nama Varchar(50) 51 bytes
Table 4.42 Tabel Perhitungan Ms_umum
Total kebutuhan memory maksimal untuk table M s_umum adalah sebesar 69 bytes. Jumlah data pada tabel M s_umum diperkirakan sebanyak 200, kebutuhan memory maksimal untuk M s_umum sebesar 200 anggota x 69 = 13.48 Kbytes. Di asumsikan perbulan mendapatkan 2 orang. Total kebutuhan memory maksimal selama 1 tahun sebesar 13.48 + (2 x 0.067 x 12) = 15.088 Kbytes.
Nama Entity Attribute Data Types and Length
Ukuran
Ms_pegawai NIP Varchar(17) 18 bytes
Nama Varchar(50) 51 bytes
Id_jabatan Int(11) 44 bytes
Periode_awal Year 8 bytes
Periode_akhir Year 8 bytes
Status Int(11) 44 bytes
Table 4.43 Tabel Ms_pegawai
Total kebutuhan memory maksimal untuk table M s_pegawai adalah sebesar 173 bytes. Jumlah data pada tabel Ms_pegawai diperkirakan sebanyak 200, kebutuhan memory maksimal untuk Ms_pegawai sebesar 200 anggota x 173 = 33.79 Kbytes. Total kebutuhan memory maksimal selama 1 tahun sebesar 33.79 Kbytes.
Nama Entity Attribute Data Types
and Length
Ukuran
Jabatan Id_jabatan Int(11) 44 bytes
Nama_jabatan Varchar(50) 51 bytes
Total kebutuhan memory maksimal untuk table Jabatan adalah sebesar 95 bytes. Jumlah data pada tabel Jabatan diperkirakan sebanyak 200, kebutuhan memory maksimal untuk Jabatan sebesar 200 anggota x 95= 18.55 Kbytes. Total kebutuhan memory maksimal selama 1 tahun sebesar 18.55 Kbytes.
Nama Entity Attribute Data Types
and Length
Ukuran
Ms_anggota Id_anggota Varchar(17) 18 bytes
Nip Varchar(17) 18 bytes
Id_umum Varchar(17) 18 bytes
Nis Varchar(17) 18 bytes
Id_login Varchar(21) 22 bytes
Id_jenis_anggota Int(11) 44 bytes
Jenis_kelamin int(11) 44 bytes
Alamat Varchar(100) 101 bytes
Telepon Varchar(15) 16 bytes
Hp Varchar(15) 16 bytes
Tanggal_daftar DATETIM E 8 bytes
Tabel 4.45 Tabel Perhitungan Ms_anggota
Total kebutuhan memory maksimal untuk table M s_anggota adalah sebesar 374 bytes. Jumlah data pada tabel M s_anggota diperkirakan sebanyak 1200 anggota, kebutuhan memory maksimal untuk Ms_anggota sebesar 1200 anggota x 374 = 438.28 Kbytes. Total kebutuhan memory maksimal selama 1 tahun sebesar 438.28 Kbytes.
Nama Entity Attribute Data Types
and Length
Ukuran
Jenis_anggota Id_jenis_anggota Int(11) 44 bytes
Nama Varchar(33) 34 bytes
Ket Varchar(50) 51 bytes
Tabel 4.46 Tabel Perhitungan Jenis_anggota
Total kebutuhan memory maksimal untuk table Jenis_anggota adalah sebesar 129 bytes. Jumlah data pada tabel Jenis_anggota diperkirakan sebanyak 1200 anggota, kebutuhan memory maksimal untuk Ms_anggota sebesar 1200 anggota x 129 = 151.17 Kbytes. Total kebutuhan memory maksimal selama 1 tahun sebesar 151.17 Kbytes.
Nama Entity Attribute Data Types and Length
Ukuran
Ms_buku Id_buku Varchar(17) 18 bytes
Id_penerbit Int(11) 44 bytes
Id_jenis_buku Int(11) 44 bytes
Id_bahasa Int(11) 44 bytes
Kd_rak Varchar(5) 6 bytes
Id_jenis_koleksi Varchar(5) 6 bytes
Judul_buku Varchar(55) 56 bytes
Pengarang Varchar(50) 51 bytes
Edisi Int(11) 44 bytes
Editor Varchar(50) 51 bytes
Tebal_hal Int(11) 44 bytes
Tahun_terbit Year 4 bytes
ISBN Varchar(20) 21 bytes
Asal_buku Int(11) 44 bytes
Status Int(11) 44 bytes
Total kebutuhan memory maksimal untuk table M s_buku adalah sebesar 521 bytes. Jumlah data pada tabel M s_buku diperkirakan sebanyak 1000 buku, kebutuhan memory maksimal untuk M s_buku sebesar 1000 buku x 521= 508.79 Kbytes. Asumsi perkiraan perkembangan ms_buku sebanyak 100 buku per tahun. Total kebutuhan memory maksimal selama 1 tahun sebesar 508.79 Kbytes x 100 = 50879 Kbytes.
Nama Entity Attribute Data Types
and Length
Ukuran
Jenis_buku Id_jenis_buku Int(11) 44 bytes
Nama Varchar(50) 51 bytes
Tabel 4.48 Tabel Perhitungan Jenis_buku
Total kebutuhan memory maksimal untuk table Jenis_buku adalah sebesar 95 bytes. Jumlah data pada tabel Jenis_buku diperkirakan sebanyak 50 buku, kebutuhan memory maksimal untuk Jenis_buku sebesar 50 jenis x 95= 4.64 Kbytes. Asumsi perkiraan perkembangan Jenis_buku sebanyak 5 buku per 2 bulan. Total kebutuhan memory maksimal selama 1 tahun sebesar 4.64 Kbytes x 5 x 6 = 139.16 Kbytes.
Nama Entity Attribute Data Types and Length
Ukuran
Jenis_koleksi Id_jenis_koleksi Varchar(5) 6 bytes
Nama_koleksi Varchar(55) 56 bytes
Tabel 4.49 Tabel Perhitungan Jenis_koleksi
Total kebutuhan memory maksimal untuk table Jenis_koleksi adalah sebesar 62 bytes. Jumlah data pada tabel Jenis_koleksi diperkirakan sebanyak 10 koleksi, kebutuhan memory maksimal untuk Jenis_koleksi sebesar 10 jenis x 62 = 0.605 Kbytes. Asumsi perkiraan perkembangan Jenis_koleksi sebanyak 5 buku per bulan. Total kebutuhan memory maksimal selama 1 tahun sebesar 0.605 Kbytes x 5 x 12 = 36.3 Kbytes.
Nama Entity Attribute Data Types
and Length
Ukuran
Ms_supplier Id_supplier Int(11) 44 bytes
Id_jenis_supplier Int(11) 44 bytes
Nama Varchar(40) 41 bytes
Alamat Varchar(100) 101 bytes
Cp Varchar(30) 31 bytes
Cp_telepon Varchar(15) 16 bytes
Tanggal Datetime 8 bytes
Ket Varcahr(100) 101 bytes
Tabel 4.50 Tabel Perhitungan Ms_supplier
Total kebutuhan memory maksimal untuk table M s_supplier adalah sebesar 402 bytes. Jumlah data pada tabel M s_supplier diperkirakan sebanyak 100 supplier , kebutuhan memory maksimal untuk Ms_supplier sebesar 100 supplier x 402 = 39.26 Kbytes. Asumsi perkiraan perkembangan M s_supplier sebanyak 1 orang per bulan. Total kebutuhan memory maksimal selama 1 tahun sebesar 39.26 Kbytes x 1 x 12 = 471 Kbytes.
Nama Entity Attribute Data Types
and Length
Ukuran
Jenis_supplier Id_jenis_supplier Int(11) 44 bytes
Nama Varchar(30) 31 bytes
Tabel 4.51 Tabel Perhitungan Jenis_supplier
Total kebutuhan memory maksimal untuk table Jenis_supplier adalah sebesar 75 bytes. Jumlah data pada tabel Jenis_supplier diperkirakan sebanyak 3 jenis supplier , kebutuhan memory maksimal