Kamis, 24 Januari 2013

Tugas Review SMBD


TUGAS REVIEW 
MATA KULIAH SMBD


Disusun oleh:

Nama        : Muhammad Rizal Saiba
                                   NIM          : 101051021



                                                     
JURUSAN TEKNIK INFORMATIKA S-1
INSTITUT SAINS &TEKNOLOGI AKPRIND
YOGYAKARTA
2012


 Soal 1 dan 2
  
1.        Buatlah rancangan struktur tabel database (dalam bentuk 3NF)
2.        Tentukan Primary Key & Foreign Key (jika ada) dalam setiap tabel database (dalam bentuk 3NF)
Jawab

   a) Rancangan Struktur Tabel Database Yang Digunakan (DLM BENTUK 3NF)

    b)  Primary Key & Foreign Key

Data master SPDP

1. Tabel: user
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
Catatan: kode_pinjam boleh tidak digunakan
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
Catatan:
·         kode_kembaliboleh tidak digunakan
·         jika tabel pinjam tidak menggunakan kode_pinjam, maka harus ada kode_anggota+kode_buku+tanggal_pinjam
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
-
-

16. Tabel: bayar_denda
Catatan: jika tabel kembali tidak menggunakan kode_kembali, maka harus ada kode_anggota+kode_buku+tanggal_pinjam+tanggal_kembali
No
Nama Field
Tipe
Ukuran
Null
Default
Keterangan
           1            
kode_kembali




Primary Key / Foreign 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_bayar
Date

No
-
-
           6            
jumlah_denda
Num
9
No
0
Dihitung otomatis

17. Tabel: bayar_hilang
Catatan: jika tabel pinjam tidak menggunakan kode_pinjam, maka harus ada kode_anggota+kode_buku+tanggal_pinjam
No
Nama Field
Tipe
Ukuran
Null
Default
Keterangan
           1            
kode_pinjam




Primary Key  / Foreign 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_bayar
Date

No
-
-
           6            
jumlah_denda
Num
9
No
0
Dihitung otomatis

18. Tabel: bayar_rusak
Catatan: jika tabel pinjam tidak menggunakan kode_pinjam, maka harus ada kode_anggota+kode_buku+tanggal_pinjam
No
Nama Field
Tipe
Ukuran
Null
Default
Keterangan
           1            
kode_pinjam




Primary Key / Foreign 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_bayar
Date

No
-
-
           6            
jumlah_denda
Num
9
No
0
Dihitung otomatis

  
19. Tabel: buku
No
Nama Field
Tipe
Ukuran
Null
Default
Keterangan
           1            
kode_buku
Char
10
No
-
Primary Key
           2            
Judul_buku
VarChar
100
No
-
-
           3            
kode_jenis
Char
4
No
-
Foreign Key
           4            
kode_bidang
Char
4
No
-
Foreign Key
           5            
kode_penulis_utama
Char
4
No
-
Foreign Key
           6            
kode_penerbit
Char
4
No
-
Foreign Key
           7            
jumlah
Num
1
No
-
-
           8            
bahasa
Char
1
No
1
1 = Indonesia; 2 = Asing
           9            
isbn
Char
12
No
-
-
         10          
tahun
Char
4
No
-
-
         11          
jumlah_halaman
Num
1
No
-
-
         12          
edisi
Char
1
No
1
-
         13          
cetakan_ke
Char
1
No
1
-
         14          
status
Char
1
No
1
1 = Baik; 2 = Rusak

  
Soal 3

ü Gambarkan diagram kerelasian antar tabel database 

Jawab


Gambar Diagram Kerelasian Antar Tabel Database



Soal 4

ü  Tuliskan perintah SQL untuk;

Jawab

Perintah SQL untuk DataBase Perpustakaan

1) Mendefinisikan DATABASE

    a. create database dbperpustakaan;



DEFINISI TABEL DALAM DATABASE


   b. use dbperpustakaan


2) Membuat Tabel Master Database & Transaksi

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


Membuat Tabel Tgl_libur 

create table tanggal_libur (tanggal_liburdate not nullunique primary key,keterangan_libur varchar(50) not null);



Membuat Tabel Tarif_denda

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

Membuat Tabel Tarif_hilang 


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


Membuat Tabel Tarif_rusak 


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


Membuat Tabel Tarif_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 on update cascade on deletecascade;


Membuat Tabel Jenis 


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


Membuat Tabel bidang 


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


Membuat Table 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 on update cascade on delete cascade;


Membuat 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 on update cascade on delete cascade;


Membuat Tabel Propinsi


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


Membuat 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 on update cascade on delete cascade;


Membuat 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 on update cascade on delete cascade;


Membuat 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 on update cascade on delete cascade, foreign key(kode_buku) references buku on update cascade on delete cascade, primary key(kode_anggota, kode_buku, tanggal_pinjam);


Membuat 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 on update cascade on delete cascade
primary key(kode_anggota, kode_buku, tanggal_pinjam);


Membuat Tabel Pembayaran_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 on update cascade on delete cascade
primary key(kode_anggota, kode_buku, tanggal_pinjam);


Membuat 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 on update cascade on delete cascade primary key(kode_anggota, kode_buku, tanggal_pinjam);


Membuat 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 on update cascade on delete cascade
primary key(kode_anggota, kode_buku, tanggal_pinjam);


Membuat Tabel Buku


create table buku (  kode_buku char(10) not null unique primary key, judul_buku varchar(100) not null, kode_jenis 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) references jenis on update cascade on delete cascade, foreign key(kode_bidang) references bidang on update cascade on delete cascade, foreign key(kode_penulis) references penulis on update cascade on delete cascade, 
foreign key(kode_penerbit) references penerbit on update cascade on delete cascade;


3). Menghitung jumlah total semua koleksi perpustakaan  

count(kode_buku)as ‘total_koleksi_buku ‘ from buku;


4). Menampilkan daftar buku dan penerbitnya, urut ascending berdasarkan abjad  judul buku  


select judul_buku,nama_penerbit from buku,penerbit where buku.kode_penerbit=penerbit.kode_penerbit order by judul_buku asc;

5). Menampilkan daftar anggota sedang meminjam buku,urut ascending berdasarkan tanggal pinjam
 

Select nama_anggota as ‘DaftarAnggota_pinjambuku’ from anggota ,pinjam where anggota.kode_anggota=pinjam.kode_anggota order by tanggal_pinjam;


6). Menampilkan daftar seluruh anggota yang pernah membayar  terlambat mengembalikan buku, urut ascending berdasarkan abjadnama anggota 


Select nama_anggota as ‘Daftar_anggota_bayar_telat’ from anggota,bayar_denda where anggota.kode_anggota=bayar_denda.kode_anggota order by nama_anggota desc;


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


Select nama_anggota as ‘Daftar_anggota_bayar_bukuhilang’ from anggota,bayar_hi
lang where anggota.kode_anggota=bayar_hilang.kode_anggota order by nama_anggota desc;

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

Select nama_anggota as ‘Daftar_anggota_bayar_bukurusak’ from anggota,bayar_rusak where anggota.kode_anggota=bayar_rusak.kode_anggota order by 
nama_anggota desc;




Tidak ada komentar:

Posting Komentar