Kamis, 17 Januari 2013

REVIEW MATERI SEMESTER GANJIL


Jawaban

No 1 dan 2  RANCANGAN STRUKTUR TABEL DATABASE YG DIGUNAKAN (DLM BENTUK 3NF)PRIMARY KEY & FOREIGN KEY

No
Nama Field
Tipe
Ukuran
Null
Default
Keterangan
           1            
user_name
VarChar
20
No
-
Primary Key
           2            
password
VarChar
20
No
-
-
           3            
level_user
Char
1
No
5
1 =  admin; 2 =  kepala sekolah; 3 =  kepala perpustakaan
4 =  anggota; 5 = pengunjung

2. Tabel: tanggal_libur
No
Nama Field
Tipe
Ukuran
Null
Default
Keterangan
           1            
tanggal_libur
Date

no
-
Primary Key
           2            
Keterangan_libur
Varchar
50
no
-
-

3. Tabel: tarif_denda
No
Nama Field
Tipe
Ukuran
Null
Default
Keterangan
           1            
jumlah_hari_maksimal
Num
3
No
-
Primary Key
           2            
jumlah_denda
Num
7
No
-
-

4. Tabel: tarif _hilang
No
Nama Field
Tipe
Ukuran
Null
Default
Keterangan
           1            
harga_maksimal
Num
7
No
-
Primary Key
           2            
jumlah_denda
Num
7
No
-
-

5. Tabel: tarif _rusak
No
Nama Field
Tipe
Ukuran
Null
Default
Keterangan
           1            
harga_maksimal
Num
7
No
-
Primary Key
           2            
jumlah_denda
Num
7
No
-
-

6. Tabel: anggota
No
Nama Field
Tipe
Ukuran
Null
Default
Keterangan
           1            
kode_anggota
Char
6
no
-
Primary Key
           2            
nama_anggota
VarChar
100
no
-
-
           3            
alamat
VarChar
100
no
-
-
           4            
kode_kecamatan
Char
6
no
-
Foreign Key
           5            
telepon
VarChar
12
yes
-
-
           6            
email
VarChar
20
yes
-
-
           7            
tgl_mulai_anggota
Date

no
-
-
           8            
jenis_anggota
Char
1
no
2
1 =  guru/ karyawan; 2 =  siswa
           9            
status_anggota
Char
1
no
2
1 = aktif; 2 = tidak aktif

7. Tabel: jenis
No
Nama Field
Tipe
Ukuran
Null
Default
Keterangan
           1            
kode_jenis_buku
Char
4
No
-
Primary Key
           2            
nama_jenis_buku
VarChar
20
No
-
-

8. Tabel: bidang
No
Nama Field
Tipe
Ukuran
Null
Default
Keterangan
           1            
kode_bidang
Char
4
No
-
Primary Key
           2            
nama_bidang
VarChar
20
No
-
-

9. Tabel: penerbit
No
Nama Field
Tipe
Ukuran
Null
Default
Keterangan
           1            
kode_penerbit
Char
4
No
-
Primary Key
           2            
nama_penerbit
VarChar
30
No
-
-
           3            
alamat
VarChar
100
no
-
-
           4            
kode_kecamatan
Char
6
no
-
Foreign Key
           5            
telepon
VarChar
12
yes
-
-
           6            
email
VarChar
20
yes
-
-

10. Tabel: penulis
No
Nama Field
Tipe
Ukuran
Null
Default
Keterangan
           1            
kode_penulis
Char
4
No
-
Primary Key
           2            
nama_penulis
VarChar
100
No
-
-
           3            
alamat
VarChar
100
no
-
-
           4            
kode_kecamatan
Char
6
no
-
Foreign Key
           5            
telepon
VarChar
12
yes
-
-
           6            
email
VarChar
20
yes
-
-

11. Tabel: propinsi
No
Nama Field
Tipe
Ukuran
Null
Default
Keterangan
           1            
kode_propinsi
Char
2
No
-
Primary Key
           2            
nama_propinsi
VarChar
30
No
-
-

12. Tabel: kabupaten
No
Nama Field
Tipe
Ukuran
Null
Default
Keterangan
           1            
kode_kabupaten
Char
4
No
-
Primary Key
           2            
nama_kabupaten
VarChar
30
No
-
-
           3            
kode_propinsi
Char
2
No
-
Foreign Key

13. Tabel: kecamatan
No
Nama Field
Tipe
Ukuran
Null
Default
Keterangan
           1            
kode_kecamatan
Char
6
No
-
Primary Key
           2            
nama_kecamatan
VarChar
30
No
-
-
           3            
kode_kabupaten
Char
4
No
-
Foreign Key

14. Tabel: pinjam
No
Nama Field
Tipe
Ukuran
Null
Default
Keterangan
           1            
kode_pinjam




Primary Key
           2            
kode_anggota
Char
6
No
-
Primary Key / Foreign Key
           3            
kode_buku
Char
10
No
-
Primary Key / Foreign Key
           4            
tanggal_pinjam
Date

No

Primary Key / Foreign Key
           5            
tanggal_harus_kembali
Date

N0
-
-

15. Tabel: kembali
No
Nama Field
Tipe
Ukuran
Null
Default
Keterangan
           1            
kode_pinjam




Primary Key / Foreign Key
           2            
kode_kembali




Primary Key
           3            
kode_anggota
Char
6
No
-
Primary Key / Foreign Key
           4            
kode_buku
Char
10
No
-
Primary Key / Foreign Key
           5            
tanggal_pinjam
Date

No

Primary Key / Foreign Key
           6            
tanggal_kembali
Date

No
-
-

No 3 Diagram Kerelasian Antar Tabel Databese















No: 4 PERINTAH SQL nya

·       SCHEMA DATABASE DENGAN DDL
o   DEFINISI DATABASE
create database dbperpustakaan;

o   DEFINISI TABEL DALAM DATABASE
use dbperpustakaan

Tabel user
create table user (
user_namevarchar(5) not nullunique primary key,
password varchar(20) not null,
level_user char(1) default ‘5’check(level_user=‘1’ or level_user=‘2’ or level_user=‘3’ or level_user=‘4’ or level_user=‘5’));

Tabel tanggal_libur
create table tanggal_libur (
tanggal_libur date not null unique primary key,
keterangan_libur varchar(50) not null);

      Tabel tarif_denda
create table tarif_denda (
jumlah_hari_maksimal tinyint(3) not null unique primary key,
jumlah_denda mediumint(9) not null);


Tabel tarif_hilang
create table tarif_hilang (
harga_maksimal mediumint (9) not null unique primary key,
jumlah_denda mediumint(9) not null);

Tabel tarif_rusak
create table tarif_rusak (
harga_maksimal mediumint (9) not null unique primary key,
jumlah_denda mediumint(9) not null);

Tabel anggota
create 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,
jenis_anggota char(1) not null default ‘2’ check(jenis_anggota=‘1’ or jenis_anggota=‘2’),
status_anggota char(1) not null default ‘1’ check(status_anggota=‘1’ or status_anggota=‘2’),
foreign key(kode_kecamatan) references kecamatan(kode_kecamatan)  on update cascade on deletecascade);

Tabel jenis 
create table jenis (
kode_jenis_buku char(4) not null unique primary key,
nama_jenis_buku varchar(20) not null);

Tabel bidang
create table bidang (
kode_bidang char(4) not null unique primary key,
nama_bidang varchar(20) not null);

Tabel penerbit
create 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);

Tabel Penulis
create 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);

Tabel propinsi
create table propinsi (
kode_propinsi char(2) not null unique primary key,
nama_propinsi varchar(30) not null;

Tabel kabupaten
create table 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);

Tabel kecamatan
create 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);

Tabel pinjam
create table pinjam (
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,
primary key(kode_anggota, kode_buku, tanggal_pinjam));

Tabel kembali
create table kembali (
kode_anggota char(6) not null,
kode_buku char(10) not null,
tanggal_pinjam date not null,
tanggal_kembali date not null,
foreign key(kode_anggota, kode_buku, tanggal_pinjam) references pinjam(kode_anggota, kode_buku, tanggal_pinjam)  on update cascade on delete cascade,
primary key(kode_anggota, kode_buku, tanggal_pinjam));

Tabel bayar_denda
create table bayar_denda (
kode_anggota char(6) not null,
kode_buku char(10) not null,
tanggal_pinjam date not null,
tanggal_bayar date not null,
jumlah_denda mediumint(9),
foreign key(kode_anggota, kode_buku, tanggal_pinjam) references kembali (kode_anggota, kode_buku, tanggal_pinjam)  on update cascade on delete cascade,
primary key(kode_anggota, kode_buku, tanggal_pinjam));

Tabel bayar_hilang
create table bayar_hilang (
kode_anggota char(6) not null,
kode_buku char(10) not null,
tanggal_pinjam date not null,
tanggal_bayar date not null,
jumlah_denda mediumint(9),
foreign key(kode_anggota, kode_buku, tanggal_pinjam) references pinjam(kode_anggota, kode_buku, tanggal_pinjam) on update cascade on delete cascade,
primary key(kode_anggota, kode_buku, tanggal_pinjam));

Tabel bayar_rusak
create table bayar_rusak (
kode_anggota char(6) not null,
kode_buku char(10) not null,
tanggal_pinjam date not null,
tanggal_bayar date not null,
jumlah_denda mediumint(9),
foreign key(kode_anggota, kode_buku, tanggal_pinjam) references pinjam(kode_anggota, kode_buku, tanggal_pinjam) on update cascade on delete cascade,
primary key(kode_anggota, kode_buku, tanggal_pinjam));

Tabel buku
create table buku (
kode_buku char(10) not null unique primary key,
judul_buku varchar(100) not null,
kode_jenis_buku char(4) not null,
kode_bidang char(4) not null,
kode_penulis char(4) not null,
kode_penerbit char(4) not null,
jumlah tinyint(2) not null,
bahasa char(1) not null default ‘1’ check(bahasa=‘1’ or bahasa=‘2’),
isbn char(12) not null,
tahun char(4) nor null,
jumlah_halaman mediumint(4) not null,
edisi char(1) not null,
cetakan_ke char(1) not null,
status char(1) default ‘1’ check(status=’1’ or status=’2’),
foreign key(kode_jenis_buku) references jenis(kode_jenis_buku)  on update cascade on delete cascade,
foreign key(kode_bidang) references bidang(kode_bidang)  on update cascade on delete cascade,
foreign key(kode_penulis) references penulis(kode_penulis)  on update cascade on delete cascade,
foreign key(kode_penerbit) references penerbit(kode_penerbit)  on update cascade on delete cascade);




                Menghitung jumlah total semua koleksi perpustakaan


              SELECT COUNT(*) FROM BUKU;




       




              Menampilkan daftar buku dan penerbitnya, urut   ascending berdasarkan               abjad judul   buku


SELECT buku.judul_buku, penerbit.nama_penerbit
FROM buku, penerbit
WHERE buku.kode_penerbit=pesan.kode_penerbit Order by judul_buku ASC;








               Menampilkan daftar anggota sedang meminjam buku, urutascending berdasarkan tanggal pinjam


SELECT anggota.nama_anggota, pinjam.tanggal_pinjam
FROM anggota, pinjam
WHERE angota.kode_anggota=pinjam.kode_anggota order by tanggal_pinjam ASC;








                Menampilkan daftar seluruh anggota yang pernah membayar terlambat mengembalikan buku, urut ascending berdasarkan abjad nama anggota


SELECT anggota.nama_anggota, bayar_denda.kode_anggota
FROM anggota, bayar_denda
WHERE angota.kode_anggota=bayar_denda.kode_anggota order by nama_anggota ASC;









               Menampilkan daftar seluruh anggota yang pernah membayar denda buku hilang, urut ascending berdasarkan abjad nama anggota


SELECT anggota.nama_anggota, bayar_hilang.kode_anggota
FROM anggota, bayar_hilang
WHERE angota.kode_anggota=bayar_hilang.kode_anggota order by nama_anggota ASC;









          Menampilkan daftar seluruh anggota yang pernah membayar denda buku rusak, urut ascending berdasarkan abjad nama anggota


       SELECT anggota.nama_anggota, bayar_rusak.kode_anggota 
       FROM anggota, bayar_rusak
       WHERE angota.kode_anggota=bayar_rusak.kode_anggota order by                   nama_anggota ASC;


Tidak ada komentar:

Posting Komentar