Your Adsense Link 728 X 15

Tugas 2 - Modul 6 - Sistem Manajemen Basis Data dengan MySQL

Posted by Joko Muryanto Sabtu, 19 Januari 2013 0 komentar

LATIHAN MODUL 6

1.QUERY UNTUK TABLE INSTRUKTUR, MATA KULIAH DAN KULIAH

Membuat database Universitas
mysql> create database universitas;
Query OK, 1 row affected (0.00 sec)

Menggunakan database universitas
mysql> use universitas;
Database changed

Membuat tabel instruktur
mysql> create table instruktur(nip int auto_increment primary key, namains varchar(30), jurusan varchar(30), asalkota varchar(20));
Query OK, 0 rows affected (0.00 sec)

Memasukkan data ke dalam table instruktur
mysql> insert into instruktur values(1,'Steve Wozniak','Ilmu Komputer','Bantul');
Query OK, 1 row affected (0.00 sec)
mysql> insert into instruktur values('','Steve Jobs','Seni Rupa','Solo');
Query OK, 1 row affected, 1 warning (0.01 sec)
mysql> insert into instruktur values('','James Gosling','Ilmu Komputer','Klaten');
Query OK, 1 row affected, 1 warning (0.01 sec)
mysql> insert into instruktur values('','Bill Gates','Ilmu Komputer','Magelang');
Query OK, 1 row affected, 1 warning (0.02 sec)

screenshot program


(klik gambar untuk memperbesar)


Membuat tabel matakuliah
mysql> create table matakuliah(nomk varchar(7) primary key, namamk varchar(30) not null, sks char(1));
Query OK, 0 rows affected (0.01 sec)

Memasukkan data ke tabel matakuliah
mysql> insert into matakuliah values('KOM101','Algoritma dan Pemrograman','3');
Query OK, 1 row affected (0.02 sec)
mysql> insert into matakuliah values('KOM102','Basis Data','3');
Query OK, 1 row affected (0.00 sec)
mysql> insert into matakuliah values('SR101','Desain Elementer','3');
Query OK, 1 row affected (0.00 sec)
mysql> insert into matakuliah values('KOM201','Pemrograman Berorientasi Objek','3');
Query OK, 1 row affected (0.00 sec)


screenshot program Tampilan table


(klik gambar untuk memperbesar)

Membuat tabel kuliah
mysql> create table kuliah(nip int not null, nomk varchar(7) not null, ruangan int(3) not null, jmlmhs int(2) not null);
Query OK, 0 rows affected (0.00 sec)
mysql> alter table kuliah add foreign key(nip) references instruktur(nip) on update cascade on delete cascade;
Query OK, 0 rows affected (0.09 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> alter table kuliah add foreign key(nomk) references matakuliah(nomk) on update cascade on delete cascade;
Query OK, 0 rows affected (0.06 sec)
Records: 0  Duplicates: 0  Warnings: 0

Memasukkan data ke table kuliah
mysql> insert into kuliah values(1,'KOM101',101,50);
Query OK, 1 row affected (0.06 sec)
mysql> insert into kuliah values(1,'KOM102',102,35);
Query OK, 1 row affected (0.00 sec)
mysql> insert into kuliah values(2,'SR101',101,45);
Query OK, 1 row affected (0.01 sec)
mysql> insert into kuliah values(3,'KOM201',101,55);
Query OK, 1 row affected (0.00 sec)


(klik gambar untuk memperbesar)


2.QUERY UNTUK MENDAPATKAN DATA-DATA SESUAI KEBUTUHAN:
a.Instruktur-instruktur jurusan 'Ilmu Komputer'
mysql> select* from instruktur where jurusan='ilmu komputer';


(klik gambar untuk memperbesar)

b.Nomor mata kuliah yang pesertanya lebih dari 40 orang
mysql> select nomk from kuliah where jmlmhs>40;


(klik gambar untuk memperbesar)


c.Nomor dan mata kuliah yang pesertanya lebih dari 40 orang
mysql> select nomk, namamk from matakuliah join kuliah using(nomk) where jmlmhs>40;


(klik gambar untuk memperbesar)

d.nip instruktur yang mengampu mata kuliah dengan nomor 'KOM102'
mysql> select nip from kuliah where nomk='KOM102';


(klik gambar untuk memperbesar)


e.nip instruktur yang mengampu mata kuliah 'Basis Data'
mysql> select nip from kuliah join matakuliah using(nomk) where namamk='Basis Data';

(klik gambar untuk memperbesar)


 f.nip dan nama instruktur yang mengampu mata kuliah 'Basis Data'
mysql> select nip, namains from kuliah join matakuliah using(nomk) join instruktur using(nip) where namamk='Basis Data';


(klik gambar untuk memperbesar)

g.Nama mata kuliah dan ruangan yang diampu oleh 'Steve Jobs'
mysql> select namamk, ruangan from kuliah join matakuliah using(nomk) join instruktur using(nip) where namains='Steve Jobs';


(klik gambar untuk memperbesar)



h.Jumlah total mahasiswa yang diampu oleh 'Steve Wozniak'
mysql> select sum(jmlmhs) from kuliah join instruktur using(nip) where namains='Steve Wozniak';

(klik gambar untuk memperbesar)

i.Nomor dan nama instruktur yang mengampu mahasiswa terbanyak
mysql> select nip, namains from kuliah join instruktur using(nip) having max(jmlmhs);


(klik gambar untuk memperbesar)


j.Nomor dan nama instruktur yang belum mengampu mata kuliah apapun
mysql> select nip, namains from instruktur where nip not in (select nip from kuliah);

(klik gambar untuk memperbesar)

3.MEMBUAT VIEW UNTUK MENDAPATKAN DATA-DATA
a.Nomor dan nama instruktur yang belum mengampu mata kuliah apapun
mysql> create view vblmmengampu as select nip, namains from instruktur where nip not in (select nip from kuliah);


(klik gambar untuk memperbesar)


b.Jumlah mata kuliah yang diampu oleh setiap instruktur
mysql> create view vjumlahmk as select namains, count(nomk) as jumlah from instruktur join kuliah using(nip) group by namains;
Query OK, 0 rows affected (0.20 sec)

(klik gambar untuk memperbesar)


4.MEMBUAT TRIGGER UNTUK PENCATAT PERUBAHAN RUANGAN UNTUK SEBUAH MATA KULIAH.
Membuat table catatan terlebih dahulu
mysql> create table catatan(user_id varchar(15), deskripsi varchar(100));
Query OK, 0 rows affected (0.08 sec)

Membuat TRIGGER update_kuliah
mysql> delimiter /
mysql> create trigger update_kuliah after update on kuliah for each row
    -> begin
    -> insert into catatan values(user(),concat('Merubah ruangan ',old.nomk,' dari ruang ',old.ruangan,' ke ruang ',new.ruangan));
    -> end/
Query OK, 0 rows affected (1.65 sec)
mysql> delimiter ;
mysql> update kuliah set ruangan=102 where nomk='KOM101';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

(klik gambar untuk memperbesar)


5.MEMBUAT FUNGSI ATAU PROSEDURE SESUAI KASUS BERIKUT INI:
a.Fungsi untuk menampilkan jumlah kuliah yang diadakan di sebuah ruangan (nama ruangan dimasukkan sebagai input)
mysql> delimiter /
mysql> create function countRoom(in_room int(3)) returns int
    -> begin
    -> declare jml int;
    -> select count(ruangan) into jml from kuliah where ruangan like in_room;
    -> return jml;
    -> end/
Query OK, 0 rows affected (0.00 sec)


(klik gambar untuk memperbesar)



b.Fungsi untuk mendapatkan nama ruangan tempat sebuah mata kuliah diadakan (nomor mata kuliah dimasukkan sebagai input). Berikan nilai 'not found' jika sebuah mata kuliah belum diberi ruangan
mysql> delimiter /
mysql> create function getRoom(in_mk varchar(7)) returns int
    -> begin
    -> declare jml int;
    -> select ruangan into jml from kuliah where nomk like in_mk;
    -> return jml;
    -> end/
Query OK, 0 rows affected (0.00 sec)


(klik gambar untuk memperbesar)



c.Procedure   untuk menampilkan nama mata kuliah dan ruangan yang diampu oleh seorang instruktur (nama instruktur dimasukkan sebagai input)
mysql> delimiter /
mysql> create procedure showRoom(in nama varchar(30))
    -> begin
    -> select namamk, ruangan from kuliah join instruktur using(nip) join matakuliah using(nomk) where namains like nama;
    -> end/
Query OK, 0 rows affected (0.00 sec)

SCREENSHOT PROGRAM



(klik gambar untuk memperbesar)

(klik gambar untuk memperbesar)

(klik gambar untuk memperbesar)


d.Procedure   untuk menampilkan jumlah SKS yang diampu oleh seorang instruktur (nama instruktur dimasukkan sebagai input)
mysql> delimiter /
mysql> create procedure getSks(in nama varchar(30))
    -> begin
    -> select namains, sum(sks) from kuliah join instruktur using(nip) join matakuliah using(nomk) where namains like nama;
    -> end/
Query OK, 0 rows affected (0.01 sec)

(klik gambar untuk memperbesar)

(klik gambar untuk memperbesar)

(klik gambar untuk memperbesar)



Tugas 2 - Modul 5 - Sistem Manajemen Basis Data dengan MySQL

Posted by Joko Muryanto 0 komentar

LATIHAN MODUL 5

1.Membuat FUNCTION untuk menampilkan gabungan first_name dengan last_name dengan bentuk “last_name, first_name

mysql> delimiter /
mysql> create function revName(ffirst_name varchar(15), flast_name varchar(15)) returns varchar(35)
    -> begin
    -> return concat(ffirst_name,', ',flast_name);
    -> end/
Query OK, 0 rows affected (0.06 sec)
mysql> delimiter ;

Screenshot program


(klik gambar untuk memperbesar)


2.Membuat PROCEDURE untuk membuat job_description dari masukkan sebuah id employee

mysql> delimiter /
mysql> create procedure empJob(in idi int)
    -> begin
    -> select first_name, last_name, title from employee_join join job using(job_id) where id like idi;
    -> end/
Query OK, 0 rows affected (0.00 sec)
mysql> delimiter ;

Sreenshot program


(klik gambar untuk memperbesar)





Tugas 2 - Modul 4 - Sistem Manajemen Basis Data dengan MySQL

Posted by Joko Muryanto 0 komentar

TUGAS MODUL 4

Berikut Ini Adalah Isi Table Employee_Join Dan Job

(klik gambar untuk memperbesar)



1.Membuat View yang berisi gabungan nama(gabungan first_name dan last_name),salary, city, dan job description)

mysql> create view gabung_nama as select concat(first_name,' ',last_name) as name, salary,city, title as job_desc from employee_join join job using(job_id);
Query OK, 0 rows affected (0.05 sec) 

Screenshot program



(klik gambar untuk memperbesar)

2.View untuk menampilkan job_description dan jumlah employee untuk masing-masing job

mysql> create view vjob_desc as select distinct (title) as job_desc, count(job_id) as emp_count from employee_join join job using(job_id) group by title;
Query OK, 0 rows affected (0.00 sec)

Screenshot program


(klik gambar untuk memperbesar)

3.Membuat TRIGGER untuk menyimpan data yang dihapus dalam table employee_join ke table employee_bak

mysql> delimiter /
mysql> create trigger log_employee after delete on employee_join for each row
    -> begin
    -> insert into employee_bak values(old.id, old.first_name, old.last_name, old.start_date, old.end_date, old.salary, old.city, old.job_id);
    -> end /
Query OK, 0 rows affected (0.00 sec)
mysql> delimiter ;

Screenshot program

(klik gambar untuk memperbesar)




Tugas 2 - Modul 1 - Sistem Manajemen Basis Data dengan MySQL

Posted by Joko Muryanto 0 komentar

TUGAS MODUL 1


1.Membuat Table bernama ‘event’

Membuat database pethouse terlebih dahulu caranya:
mysql> create database pethouse;
Query OK, 1 row affected (0.00 sec)
Menggunakan database pethouse
mysql> use pethouse;
Database changed
Membuat Tabel bernama event
mysql> create table event(name varchar(20),date date,type varchar(15),remark varchar(255));
Query OK, 0 rows affected (1.00 sec)

Melihat deskripsi table event
mysql> desc event;

+--------+--------------+------+-----+---------+-------+
| Field  | Type         | Null | Key | Default | Extra |
+--------+--------------+------+-----+---------+-------+
| name   | varchar(20)  | YES  |     | NULL    |       |
| date   | date         | YES  |     | NULL    |       |
| type   | varchar(15)  | YES  |     | NULL    |       |
| remark | varchar(255) | YES  |     | NULL    |       |
+--------+--------------+------+-----+---------+-------+

4 rows in set (0.06 sec)

Screen shot :
(klik gambar untuk memperbesar)


2.Mengisikan data table dengan insert

mysql> insert into event values('Fluffy','1995-05-15','litter','4 kittens, 3 female, 1 male');
Query OK, 1 row affected (0.05 sec)
mysql> insert into event values('Buffy','1993-06-23','litter','5 puppies, 2 female, 3 male');
Query OK, 1 row affected (0.05 sec)

mysql> insert into event values('Buffy','1994-06-19','litter','3 puppies, 3 female');
Query OK, 1 row affected (0.00 sec)
mysql> insert into event values('Chirpy','1999-03-21','vet','needed beak straightened');
Query OK, 1 row affected (0.03 sec)

Screen shot :

(klik gambar untuk memperbesar)



3.Mengisikan data table dengan LOAD DATA
mysql> load data local infile 'D://IST AKPRIND/SEMESTER - 5/Sistem Manajemen Basis Data/Tugas/Tugas-2/insert1.txt' into table event;
Query OK, 6 rows affected, 6 warnings (0.00 sec)
Records: 6  Deleted: 0  Skipped: 0  Warnings: 6

4.Menampilkan data yang sudah dibuat dengan SELECT
mysql> select*from event;


(klik gambar untuk memperbesar)

Jawaban untuk Soal Review SMBD

Posted by Joko Muryanto Selasa, 15 Januari 2013 0 komentar
JAWABAN UNTUK SOAL REVIEW SMBD
1.RANCANGAN STRUKTUR TABEL DATABASE YG DIGUNAKAN (DLM BENTUK 3NF)
2.PRIMARY KEY & FOREIGN KEY

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_kembali boleh 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
3.DIAGRAM KERELASIAN ANTAR TABEL DATABASE 

4. PERINTAH SQL UNTUK:
1)      Membuat database  perpustakaan 
Create datababase dbperpustakaan;

2)      Membuat tabel database  master  & transaksi 

create table user (
user_name varchar(5) not null unique 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’));

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

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

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

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

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 delete cascade;

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



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

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;

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;

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

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;

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;

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

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

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

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

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

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  

Select sum(jumlah) from buku;


4)   MENAMPILKAN DAFTAR BUKU DAN  PENERBITNYA, URUT  ASCENDING BERDASARKAN ABJAD JUDUL BUKU 

Select judul_buku, nama_jenis_buku, nama_bidang, nama_penulis_utama, nama_penerbit from buku join jenis using(kode_jenis) join bidang using(kode_bidang) join penulis using(kode_penulis) join penerbit using(kode_penerbit) order by judul_buku asc;


5) MENAMPILKAN DAFTAR ANGGOTA SEDANG  MEMINJAM BUKU, URUT  ASCENDING BERDASARKAN TANGGAL  PINJAM  

Select kode_anggota, nama_anggota, alamat, telepon from anggota join pinjam using(kode_anggota) order by tanggal_pinjam asc;


6)  MENAMPILKAN DAFTAR SELURUH ANGGOTA YANG  PERNAH  MEMBAYAR TERLAMBAT MENGEMBALIKAN BUKU, URUT  ASCENDING BERDASARKAN ABJAD NAMA ANGGOTA

Select kode_anggota, nama_anggota, alamat, telepon from anggota join bayar_denda using(kode_anggota) order by nama_anggota asc;

7)   MENAMPILKAN DAFTAR SELURUH ANGGOTA YANG  PERNAH  MEMBAYAR DENDA  BUKU HILANG,  URUT  ASCENDING BERDASARKAN ABJAD NAMA ANGGOTA

Select kode_anggota, nama_anggota, alamat, telepon from anggota join bayar_hilang using(kode_anggota) order by nama_anggota asc;

8)   MENAMPILKAN DAFTAR SELURUH ANGGOTA YANG  PERNAH  MEMBAYAR DENDA  BUKU RUSAK, URUT  ASCENDING BERDASARKAN ABJAD NAMA ANGGOTA

Select kode_anggota, nama_anggota, alamat, telepon from anggota join bayar_rusak using(kode_anggota) order by nama_anggota asc;

Popular Posts