1. Buatlah rancangan struktur tabel database (dalam bentuk 3NF)
- Table anggota
- Table kembali
- Table denda terlambat
- Table bidang
- Table buku
- Table pinjam
- Table jenis
- Table kabupaten
- Table kecamatan
- Table propinsi
- Table kembali
- Tabel penerbit
- Table penulis
- Table pinjam
- Table User
database (dalam bentuk 3NF)
3. Gambarkan diagram kerelasian antar tabel database
4. Tuliskan perintah SQL untuk
1). Membuat Database Perpustakaan
mysql> create database perpustakaan;
Query OK, 1 row affected (0.16 sec)
mysql> use perpustakaan;
Database changed
2). Membuat tabel database master & transaksi
- Membuat Tabel user
varchar(20) not null,level_user char(1) default '5' check(level_u
ser='1' or level_user='2' or level_user='4' or level_user='5'));
Query OK, 0 rows affected (0.59 sec)
- Membuat Tabel propinsi
-> kode_propinsi char(2) not null unique primary key,
-> nama_propinsi varchar(30) not null);
Query OK, 0 rows affected (0.16 sec)
- Membuat Tabel Kabupaten
-> kode_kabupaten char(4) not null unique primary key,
-> nama_kabupaten varchar(30) not null,
-> kode_propinsi char(2) not null,
-> foreign key(kode_propinsi) references propinsi(kode_propinsi) on update cascade on delete
cascade); Query OK, 0 rows affected (0.16 sec)
- Membuat Table Kecamatan
-> kode_kecamatan char(6) not null unique primary key,
-> nama_kecamatan varchar(30) not null,
-> kode_kabupaten char(4) not null,
-> foreign key(kode_kabupaten) references kabupaten(kode_kabupaten) on update cascade on
delete cascade);
Query OK, 0 rows affected (0.14 sec)
- Membuat Table Anggota
-> kode_anggota char(6) not null unique primary key,
-> nama_anggota varchar(100) not null,
-> alamat varchar(100) not null,
-> kode_kecamatan char(6) not null,
-> telepon varchar(12),
-> email varchar(20),
-> tgl_mulai_anggota date not null,
-> foreign key(kode_kecamatan) references kecamatan(kode_kecamatan) on update cascade
on delete cascade);
Query OK, 0 rows affected (0.17 sec)
- Membuat Table Jenis
-> kode_jenis_buku char(4) not null unique primary key,
-> nama_jenis_buku varchar(20) not null);
Query OK, 0 rows affected (0.14 sec)
- Membuat Table Bidang
-> kode_bidang char(4) not null unique primary key,
-> nama_bidang varchar(20) not null);
Query OK, 0 rows affected (0.16 sec)
- Membuat Table Penerbit
-> kode_penerbit char(4) not null unique primary key,
-> nama_penerbit varchar(30) not null,
-> alamat varchar(100) not null,
-> kode_kecamatan char(6) not null,
-> telepon varchar(12),
-> email varchar(20),
-> foreign key(kode_kecamatan) references kecamatan(kode_kecamatan) on update cascade
on delete cascade);
Query OK, 0 rows affected (0.16 sec)
- Membuat Table Penulis
-> kode_penulis char(4) not null unique primary key,
-> nama_penulis_utama varchar(100) not null,
-> alamat varchar(100) not null,
-> kode_kecamatan char(6) not null,
-> telepon varchar(12),
-> email varchar(20),
-> foreign key(kode_kecamatan) references kecamatan(kode_kecamatan) on update cascade
on delete cascade);
Query OK, 0 rows affected (0.14 sec)
- Membuat Table Buku
-> kode_buku char(10) unique primary key,
-> judul_buku varchar(100) not null,
-> kode_jenis_buku char(4),
-> kode_bidang char(4),
-> kode_penulis char(4),
-> kode_penerbit char(4),
-> jumlah tinyint(2) not null,
-> isbn char(12) not null,
-> tahun char(4) not null,
-> jumlah_halaman int(4) not null,
-> edisi char(1) not null,
-> cetakan_ke char(3) not null,
-> foreign key(kode_jenis_buku) references jenis(kode_jenis_buku) ,
-> foreign key(kode_bidang) references bidang(kode_bidang),
-> foreign key(kode_penulis) references penulis(kode_penulis) ,
-> foreign key(kode_penerbit) references penerbit(kode_penerbit) );
Query OK, 0 rows affected (0.38 sec)
- Membuat Table Peminjaman
-> kode_anggota char(6) not null primary key,
-> kode_anggota char(6) not null,
-> kode_buku char(10) not null,
-> tanggal_pinjam date not null,
-> tanggal_harus_kembali date not null,
-> foreign key(kode_anggota) references anggota(kode_anggota) on update cascade on delete
cascade,
-> foreign key(kode_buku) references buku(kode_buku) on update cascade on delete cascade);
Query OK, 0 rows affected (0.14 sec)
- Membuat Table Kembali
-> kode_kembali char(6)primary key,
-> kode_pinjam char(6) not null,
-> kode_anggota char(6) not null,
-> kode_buku char(10) not null,
-> tanggal_pinjam date not null,
-> tanggal_harus_kembali date not null,
-> foreign key(kode_anggota) references anggota(kode_anggota) on update cascade on delete
cascade,
-> foreign key(kode_buku) references buku(kode_buku) on update cascade on delete cascade,
-> foreign key(kode_pinjam) references pinjam(kode_pinjam) on update cascade on delete
cascade);
Query OK, 0 rows affected (0.38 sec)
- Membayar Denda Terlambat
-> kode_kembali char(6)not null,
-> jml_denda int,
-> foreign key(kode_kembali) references kembali(kode_kembali) on update cascade on delete
cascade);
Query OK, 0 rows affected (0.15 sec)
- Membayar Denda Rusak
-> kode_kembali char(6)not null,
-> jml_denda int,
-> foreign key(kode_kembali) references kembali(kode_kembali) on update cascade on delete
cascade);
Query OK, 0 rows affected (0.16 sec)
- Membayar Denda Hilang
-> kode_pinjam char(6) not null,
-> kode_anggota char(6) not null,
-> kode_buku char(10) not null,
-> harga_buku int,
-> foreign key(kode_anggota) references anggota(kode_anggota) on update cascade on delete
cascade,
-> foreign key(kode_buku) references buku(kode_buku) on update cascade on delete cascade,
-> foreign key(kode_pinjam) references pinjam(kode_pinjam) on update cascade on delete
cascade);
Query OK, 0 rows affected (0.20 sec)
3). Menghitung jumlah total semua koleksi perpustakaan
mysql> select count(buku.kode_buku)from buku;
4). Menampilkan daftar buku dan penerbitnya, urut ascending
berdasarkan abjad judul buku
mysql> select buku.judul_buku,penerbit.nama_penerbit from buku join penerbit on
buku.kode_penerbit=penerbit.kode_penerbit order by judul_buku asc;
5). Menampilkan daftar anggota meminjam buku, urut ascending berdasarkan tanggal
pinjam
mysql> select anggota.nama_anggota,tanggal_pinjam from anggota join pinjam on
anggota.kode_anggota=pinjam.kode_anggota order by tanggal_pinjam;
6). Menampilkan daftar seluruh anggota yang pernah membayar terlambat
mengembalikan buku, urut ascending berdasarkan abjad nama anggota
mysql> select anggota.nama_anggota from kembali join anggota join bayar_denda_terlambat on
bayar_denda_terlambat.kode_kembali=kembali.kode_kembali and anggota.kode_anggota=
kembali.kode_anggota order
by nama_anggota;
7). Menampilkan daftar seluruh anggota yang pernah membayar denda buku hilang, urut
ascending berdasarkan abjad nama anggota
mysql> select anggota.nama_anggota from pinjam join hilang join anggota on
pinjam.kode_pinjam=hilang.kode_pinjam and anggota.kode_anggota = pinjam.kode_anggota
order by nama_anggota;
8). Menampilkan daftar seluruh anggota yang pernah membayar denda buku rusak,
urut ascending berdasarkan abjad nama anggota
mysql> select anggota.nama_anggota from kembali join anggota join bayar_denda_rusak on
bayar_denda_rusak.kode_kembali=kembali.kode_kembali and anggota.kode_anggota=
kembali.kode_anggota order by nama_anggota;
Tidak ada komentar:
Posting Komentar