Jumat, 18 Januari 2013

tugas review nasrun

 
 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
 2.  Tentukan Primary Key & Foreign Key (jika ada) dalam setiap tabe
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
mysql> create table user(user_name varchar(20) not null unique primary key, password
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
mysql> create table 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
mysql> 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); Query OK, 0 rows affected (0.16 sec)

  • Membuat Table Kecamatan
mysql> 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);
Query OK, 0 rows affected (0.14 sec)


  • Membuat Table Anggota
mysql> 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,
    -> 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
mysql> create 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
mysql> create 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
mysql> 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);
Query OK, 0 rows affected (0.16 sec)


  • Membuat Table Penulis
mysql> 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);
Query OK, 0 rows affected (0.14 sec)


  •  Membuat Table Buku
mysql> create 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
mysql> create table pinjam (
    -> 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
mysql> create 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 
 mysql> create table bayar_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
mysql> create table bayar_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
mysql> create table 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