Contoh soal smbd 2012 dari elearning smb
Halaman: 1 dari 14
PRODI TEKNIK INFORMATIKA, JURUSAN TEKNIK INFORMATIKA, FTI, IST
AKPRIND YOGYAKARTA
UJIAN TENGAH SEMESTER GANJIL TA. 2012/2013
Mata Ujian
Semester / SKS
Hari, Tanggal
Jam
Dosen
Sifat
Sendiri)
: Sistem Manajemen Basis Data (Kelas A dan B)
: III / 3
: Selasa, 20 November 2012
: 13.00-15.00 WIB (120 menit)
: Edhy Sutanta, S.T., M.Kom.
: Open Book (Hanya Boleh Membuka Buku Catatan Milik
PETUNJUK:
Bacalah dengan cermat soal di bawah ini
Kerjakan dengan JELAS, LENGKAP, dan URUT
Jawaban CURANG tidak akan dikoreksi & mendapat skor ENOL
SOAL:
Soal ini terkait dengan Sistem Pengolahan Data Perpustakaan SMA XYZ
(SPDP). SPDP adalah sebuah aplikasi web based yang melibatkan 6 (enam)
pengguna, yaitu: 1) Administrator, 2) Petugas, 3) Anggota, 4) Kepala
Perpustakaan, 5). Kepala Sekolah, serta 6) Pengunjung dengan peran sbb:
Administrator berperan mengelola data dan hak ases user, dan berwenang
mengelola seluruh data master.
Petugas berperan melayani dan mengelola data transaksi peminjaman,
pengembalian, pembayaran denda keterlambatan pengembalian,
penggantian denda buku rusak atau hilang, menyusun laporan yang terkait
dengan data master dan transaksi.
Anggota dapat melakukan pencarian katalog, mengecek ketersediaan buku,
meng-update identitas, melakukan peminjaman, dan pengembalian, dan
pembayaran denda keterlambatan, penggantian buku rusak atau hilang
Kepala Perpustakaan berhak untuk menentukan tarip denda keterlambatan
pengembalian dan tarip penggantian untuk buku rusak atau hilang. Secara
rutin Kepala Perpustakaan menerima laporan yang disusun oleh Petugas
perpustakaan, di samping itu ia juga dapat sewaktu-waktu meminta informasi
dan/atau laporan
Kepala Sekolah menerima laporan yang disusun oleh Petugas perpustakaan,
di samping itu ia juga dapat sewaktu-waktu meminta informasi dan/atau
laporan
Pengunjung hanya dapat melakukan pencarian katalog dan membaca kolksi
perpustakaan di ruang perpustakaan
user, data anggota, data
buku, data jenis buku, data bidang ilmu buku, data penerbit, data
penulis, data propinsi, data kabupaten, data kecamatan, data
tarip denda tarif_denda, denda_hilang, denda_rusak
Data master sistem perpustakaan meliputi data
Berdasarkan keterangan tersebut di atas, buatlah;
Gambarkan ER-D untuk SPDP secara lengkap
Buatlah rancangan struktur tabel database yang digunakan
(dalam bentuk 3NF)
Tentukan primary key & foreign key (jika ada) pada setiap struktur
tabel database yang digunakan (dalam bentuk 3NF)
Gambarkan diagram kerelasian antar tabel database
Halaman: 2 dari 14
Tuliskan schema dengan bahasa SQL untuk setiap tabel database
yang digunakan (dalam bentuk 3NF)
[Skor masing-masing jawaban maksimal: 20]
selamat mengerjakan, semoga berhasil…!!!
dibuat oleh: [email protected]; pada: 18 November 2012:22:22:22
Halaman: 3 dari 14
PEMBAHASAN SOAL UTS
CATATAN: Khusus untuk koleksi berupa buku, rek buku tidak dicatat, kode_anggota
berupa nomor urutan
DFD
DFD Level Context
a
Administrator
dt_user
1
b
Petugas
dt_tarip denda
laporan
dt_master
laporan
SPDP
c
Anggota
d
Kepala
Perpustakaan
e
Kepala
Sekolah
f
dt_transaksi
informasi
Pengunjung
Halaman: 4 dari 14
DFD Level 1
a
Administrator
1.1
dt_user
D19 tbl_buku
b
Petugas
rec_user
Input
Data
User
dt_tarif_denda
dt_tanggal_libur
rec_tgl_libur
rec_tarif_denda
dt_user
Input
Data
Master
tbl_user
D2
tbl_tgl_libur
D3
tbl_tarif_denda
D4
tbl_tarif_hilang
D5
tbl_tarif_rusak
D6
tbl_anggota
D7
tbl_jenis
D8
tbl_bidang
D9
tbl_penerbit
d
Kepala
Perpustakaan
rec_tarif_hilang
rec_tarif_rusak
rec_anggota
rec_bidang
rec_jenis
1.2
rec_buku
dt_master
D1
rec_penerbit
rec_penulis
rec_propinsi
rec_kabupaten
rec_kecamatan
dt_master
c
Anggota
dt_transaksi
bukti_transaksi
D14
tbl_pinjam
D15
tbl_kembali
D16
tbl_bayar_denda
D17
tbl_bayar_hilang
D18
tbl_bayar_rusak
rec_pinjam
1.3
Proses
Transaksi
rec_kembali
rec_bayar_denda
rec_bayar_hilang
D10 tbl_penulis
rec_bayar_rusak
D11 tbl_propinsi
D12 tbl_kabupaten
dt_transaksi
D13 tbl_kecamatan
dt_master
laporan
1.4
Output
Laporan
laporan
informasi
e
Kepala
Sekolah
f
Pengunjung
Halaman: 5 dari 14
HIPO (VTOC) OD; DD
0
SPDP
1
Input Data User
2
Input Data Master
3
Proses Transaksi
4
Output Laporan
2.1. Input Data
Master Tanggal
Libur
3.1. Proses
Transaksi Pinjam
2.2. Input Data
Master Tarif Denda
3.2. Proses
Transaksi Kembali
4.1.1. Laporan
Detail Data Master
2.3. Input Data
Master Tarif Hilang
3.3. Proses
Transaksi Bayar
Denda
4.1.2. Laporan
Detail Data
Transaksi
2.4. Input Data
Master Tarif Rusak
3.4. Proses
Transaksi Bayar
Hilang
2.5. Input Data
Master Anggota
3.5. Proses
Transaksi Bayar
Rusak
2.6. Input Data
Master Jenis
2.7. Input Data
Master Bidang
4.1. Laporan Detail
4.2. Laporan
Rekapitulasi
4.2.1. Laporan
Rekap Data Master
4.2.2. Laporan
Rekap Data
Transaksi
4.3. Laporan Grafis
2.8. Input Data
Master Penerbit
4.3.1. Laporan
Grafis Data Master
2.9. Input Data
Master Pengarang
4.3.2. Laporan
Grafis Data
Transaksi
2.10. Input Data
Master Propinsi
2.11. Input Data
Master Kabupaten
2.12. Input Data
Master Kecamatan
4.4. Informasi
4.4.1. Informasi
Data Master
(Tertentu)
4.4.2. Infomasi Data
Transaksi (Tertentu)
Halaman: 6 dari 14
MENU UTAMA DAN SUB MENU SISTEM APLIKASI
0
SPDP
1
Input Data User
2
Input Data Master
3
Proses Transaksi
2.1. Input Data
Master Tanggal
Libur
3.1. Proses
Transaksi Pinjam
2.2. Input Data
Master Tarif Denda
3.2. Proses
Transaksi Kembali
2.3. Input Data
Master Tarif Hilang
3.3. Proses
Transaksi Bayar
Denda
2.4. Input Data
Master Tarif Rusak
3.4. Proses
Transaksi Bayar
Hilang
2.5. Input Data
Master Anggota
3.5. Proses
Transaksi Bayar
Rusak
2.6. Input Data
Master Jenis
2.7. Input Data
Master Bidang
4
Output Laporan
4.1. Laporan Detail
6
Help
5.1. Backup
6.1. Indeks
4.1.1. Laporan Detail
Data Master
5.2. Restore
6.2. Konten
4.1.2. Laporan Detail
Data Transaksi
5.3. Seting Sistem
4.2. Laporan
Rekapitulasi
4.2.1. Laporan
Rekap Data Master
4.2.2. Laporan
Rekap Data
Transaksi
4.3. Laporan Grafis
2.8. Input Data
Master Penerbit
4.3.1. Laporan
Grafis Data Master
2.9. Input Data
Master Pengarang
4.3.2. Laporan
Grafis Data
Transaksi
2.10. Input Data
Master Propinsi
5
Utilitas
4.4. Informasi
2.11. Input Data
Master Kabupaten
4.4.1. Informasi Data
Master (Tertentu)
2.12. Input Data
Master Kecamatan
4.4.2. Infomasi Data
Transaksi (Tertentu)
7
About
Halaman: 7 dari 14
JAWABAN SOAL UTS
ERD
o Entitas, Atribut, Kerelasian, Jenis Kerelasian (Catatan: Atribut & Jenis kerelasian
tidak ditampilkan)
Anggota
meminjam
Buku
mempunyai
Jenis
mempunyai
menempati
mengembalikan
menulis
Kecamatan
Bidang
Penulis
menempati
membawahi
menerbitkan
Kabupaten
menempati
Penerbit
membawahi
Propinsi
User
Denda
Denda_hilang
Denda_rusak
Halaman: 8 dari 14
RANCANGAN STRUKTUR TABEL DATABASE YG DIGUNAKAN
(DLM BENTUK 3NF)
PRIMARY KEY & FOREIGN KEY
1. Tabel: user
No
Nama Field
1
user_name
2
password
3
level_user
Tipe
VarCha
r
VarCh
ar
Char
Ukura
n
20
Nul
l
No
Defau
lt
-
Keterangan
20
No
-
-
1
No
5
1 = admin; 2 = kepala sekolah; 3 = kepala
perpustakaan
4 = anggota; 5 = pengunjung
Ukura
n
Nul
l
no
no
Defau
lt
-
Primary Key
2. Tabel: tanggal_libur
No
Nama Field
Tipe
1
2
tanggal_libur
Keterangan_lib
ur
Date
Varcha
r
50
Keterangan
Primary Key
-
3. Tabel: tarif_denda
No
Nama Field
1
jumlah_hari_maks
imal
jumlah_denda
2
Tipe
Nul
l
No
Default
Keterangan
Num
Ukura
n
3
-
Primary Key
Num
7
No
-
-
4. Tabel: tarif _hilang
No
Nama Field
1
harga_maksim
al
jumlah_denda
2
Tipe
Nul
l
No
Default
Keterangan
Num
Ukura
n
7
-
Primary Key
Num
7
No
-
-
5. Tabel: tarif _rusak
No
Nama Field
1 harga_maksim
al
2 jumlah_denda
Tipe
Nul
l
No
Default
Keterangan
Num
Ukura
n
7
-
Primary Key
Num
7
No
-
-
6. Tabel: anggota
No
Nama Field
1
kode_anggot
a
nama_anggot
a
alamat
2
3
4
5
kode_kecama
tan
telepon
6
email
7
tgl_mulai_an
ggota
Tipe
Ukura
n
6
Nul
l
no
Defau
lt
-
VarCh
ar
VarCh
ar
Char
100
no
-
-
100
no
-
-
6
no
-
Foreign Key
VarCh
ar
VarCh
ar
Date
12
yes
-
-
20
yes
-
-
no
-
-
Char
Keterangan
Primary Key
Halaman: 9 dari 14
8
9
jenis_anggot
a
status_anggo
ta
Char
1
no
2
1 = guru/ karyawan; 2 =
siswa
1 = aktif; 2 = tidak aktif
Char
1
no
2
Ukura
n
4
Nul
l
No
Defau
lt
-
VarCha
r
20
No
-
Tipe
Ukura
n
4
20
Nul
l
No
No
Defau
lt
-
Ukura
n
4
30
Nul
l
No
No
Default
Keterangan
-
Primary Key
-
100
no
-
-
6
no
-
Foreign Key
12
yes
-
-
20
yes
-
-
7. Tabel: jenis
No
Nama Field
1
kode_jenis_buk
u
nama_jenis_bu
ku
2
Tipe
Char
Keterangan
Primary Key
-
8. Tabel: bidang
No
Nama Field
1
2
kode_bidang
nama_bidang
Char
VarCha
r
Keterangan
Primary Key
-
9. Tabel: penerbit
No
Nama Field
Tipe
1
2
kode_penerbit
nama_penerbit
3
alamat
4
5
kode_kecamat
an
telepon
Char
VarCha
r
VarCha
r
Char
6
email
VarCha
r
VarCha
r
10. Tabel: penulis
No
Nama Field
Tipe
Ukura
n
4
Nul
l
No
Default
1
kode_penulis
Char
VarCh
ar
VarCh
ar
Char
100
No
-
Primary
Key
-
2
nama_penulis
3
alamat
100
no
-
-
4
5
kode_kecamata
n
telepon
6
no
-
VarCh
ar
VarCh
ar
12
yes
-
Foreign
Key
-
6
email
20
yes
-
-
-
Keterangan
11. Tabel: propinsi
No
Nama Field
Tipe
1
2
kode_propinsi
nama_propinsi
Char
VarCha
r
Ukura
n
2
30
Nul
l
No
No
Defau
lt
-
Keterangan
Primary Key
-
Halaman: 10 dari 14
12. Tabel: kabupaten
No
Nama Field
1
kode_kabupat
en
nama_kabupat
en
kode_propinsi
2
3
Tipe
Char
Ukura
n
4
Nul
l
No
Defau
lt
-
30
No
-
-
2
No
-
Foreign Key
Ukura
n
6
Nul
l
No
Default
Keterangan
-
Primary Key
30
No
-
-
4
No
-
Foreign Key
VarCha
r
Char
Keterangan
Primary Key
13. Tabel: kecamatan
No
Nama Field
1
kode_kecamat
an
nama_kecama
tan
kode_kabupat
en
2
3
Tipe
Char
VarCha
r
Char
14. Tabel: pinjam
Catatan: kode_pinjam boleh tidak digunakan
No
Nama Field
Tipe
Ukura Nul
n
l
1
kode_pinjam
2
kode_anggota
Char
6
No
3
kode_buku
Char
10
4
tanggal_pinjam
Date
No
5
tanggal_harus_kemb
ali
Date
N0
Default
Primary Key
Primary Key /
Foreign Key
Primary Key /
Foreign Key
Primary Key /
Foreign Key
-
-
No
Keterangan
-
-
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
Tip Ukura Nul Defau
e
n
l
lt
1
kode_pinjam
2
kode_kembali
3
kode_anggota
Char
6
No
4
kode_buku
Char
10
No
5
tanggal_pinja
Date
No
m
6
tanggal_kemb
Date
No
ali
Keterangan
Primary
Primary
Primary
Primary
Primary
Key
Key
Key
Key
Key
/ Foreign Key
/ Foreign Key
/ Foreign Key
/ Foreign Key
-
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 Ukura Nul Defau
Keterangan
n
l
lt
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
Halaman: 11 dari 14
4
5
6
tanggal_pinja
m
tanggal_bayar
jumlah_denda
Date
Date
Num
Key
Primary Key / Foreign
Key
Dihitung otomatis
No
No
No
9
0
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 Ukura Nul Defau
Keterangan
n
l
lt
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_pinja
Date
No
Primary Key / Foreign Key
m
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 Ukura Nul Defau
Keterangan
n
l
lt
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_pinja
Date
No
Primary Key / Foreign Key
m
5
tanggal_bayar
Date
No
6
jumlah_denda
Num
9
No
0
Dihitung otomatis
19. Tabel: buku
No
Nama Field
1
2
kode_buku
Judul_buku
3
4
5
kode_jenis
kode_bidang
kode_penulis_u
tama
kode_penerbit
jumlah
bahasa
6
7
8
9
10
11
12
13
14
isbn
tahun
jumlah_halama
n
edisi
cetakan_ke
status
Tipe
Ukura
n
10
100
Nul
l
No
No
Defau
lt
-
Primary Key
-
4
4
4
No
No
No
-
Foreign Key
Foreign Key
Foreign Key
Char
Num
Char
4
1
1
No
No
No
1
Char
Char
Num
12
4
1
No
No
No
-
Foreign Key
1 = Indonesia; 2
= Asing
-
Char
Char
Char
1
1
1
No
No
No
1
1
1
Char
VarCh
ar
Char
Char
Char
Keterangan
1 = Baik; 2 =
Rusak
Halaman: 12 dari 14
DIAGRAM KERELASIAN ANTAR TABEL DATABASE
Halaman: 13 dari 14
SCHEMA DATABASE DENGAN DDL
o DEFINISI DATABASE
create database dbperpustakaan;
o DEFINISI TABEL DALAM DATABASE
use dbperpustakaan
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;
Halaman: 14 dari 14
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,
Halaman: 15 dari 14
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 (
Halaman: 16 dari 14
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;
PRODI TEKNIK INFORMATIKA, JURUSAN TEKNIK INFORMATIKA, FTI, IST
AKPRIND YOGYAKARTA
UJIAN TENGAH SEMESTER GANJIL TA. 2012/2013
Mata Ujian
Semester / SKS
Hari, Tanggal
Jam
Dosen
Sifat
Sendiri)
: Sistem Manajemen Basis Data (Kelas A dan B)
: III / 3
: Selasa, 20 November 2012
: 13.00-15.00 WIB (120 menit)
: Edhy Sutanta, S.T., M.Kom.
: Open Book (Hanya Boleh Membuka Buku Catatan Milik
PETUNJUK:
Bacalah dengan cermat soal di bawah ini
Kerjakan dengan JELAS, LENGKAP, dan URUT
Jawaban CURANG tidak akan dikoreksi & mendapat skor ENOL
SOAL:
Soal ini terkait dengan Sistem Pengolahan Data Perpustakaan SMA XYZ
(SPDP). SPDP adalah sebuah aplikasi web based yang melibatkan 6 (enam)
pengguna, yaitu: 1) Administrator, 2) Petugas, 3) Anggota, 4) Kepala
Perpustakaan, 5). Kepala Sekolah, serta 6) Pengunjung dengan peran sbb:
Administrator berperan mengelola data dan hak ases user, dan berwenang
mengelola seluruh data master.
Petugas berperan melayani dan mengelola data transaksi peminjaman,
pengembalian, pembayaran denda keterlambatan pengembalian,
penggantian denda buku rusak atau hilang, menyusun laporan yang terkait
dengan data master dan transaksi.
Anggota dapat melakukan pencarian katalog, mengecek ketersediaan buku,
meng-update identitas, melakukan peminjaman, dan pengembalian, dan
pembayaran denda keterlambatan, penggantian buku rusak atau hilang
Kepala Perpustakaan berhak untuk menentukan tarip denda keterlambatan
pengembalian dan tarip penggantian untuk buku rusak atau hilang. Secara
rutin Kepala Perpustakaan menerima laporan yang disusun oleh Petugas
perpustakaan, di samping itu ia juga dapat sewaktu-waktu meminta informasi
dan/atau laporan
Kepala Sekolah menerima laporan yang disusun oleh Petugas perpustakaan,
di samping itu ia juga dapat sewaktu-waktu meminta informasi dan/atau
laporan
Pengunjung hanya dapat melakukan pencarian katalog dan membaca kolksi
perpustakaan di ruang perpustakaan
user, data anggota, data
buku, data jenis buku, data bidang ilmu buku, data penerbit, data
penulis, data propinsi, data kabupaten, data kecamatan, data
tarip denda tarif_denda, denda_hilang, denda_rusak
Data master sistem perpustakaan meliputi data
Berdasarkan keterangan tersebut di atas, buatlah;
Gambarkan ER-D untuk SPDP secara lengkap
Buatlah rancangan struktur tabel database yang digunakan
(dalam bentuk 3NF)
Tentukan primary key & foreign key (jika ada) pada setiap struktur
tabel database yang digunakan (dalam bentuk 3NF)
Gambarkan diagram kerelasian antar tabel database
Halaman: 2 dari 14
Tuliskan schema dengan bahasa SQL untuk setiap tabel database
yang digunakan (dalam bentuk 3NF)
[Skor masing-masing jawaban maksimal: 20]
selamat mengerjakan, semoga berhasil…!!!
dibuat oleh: [email protected]; pada: 18 November 2012:22:22:22
Halaman: 3 dari 14
PEMBAHASAN SOAL UTS
CATATAN: Khusus untuk koleksi berupa buku, rek buku tidak dicatat, kode_anggota
berupa nomor urutan
DFD
DFD Level Context
a
Administrator
dt_user
1
b
Petugas
dt_tarip denda
laporan
dt_master
laporan
SPDP
c
Anggota
d
Kepala
Perpustakaan
e
Kepala
Sekolah
f
dt_transaksi
informasi
Pengunjung
Halaman: 4 dari 14
DFD Level 1
a
Administrator
1.1
dt_user
D19 tbl_buku
b
Petugas
rec_user
Input
Data
User
dt_tarif_denda
dt_tanggal_libur
rec_tgl_libur
rec_tarif_denda
dt_user
Input
Data
Master
tbl_user
D2
tbl_tgl_libur
D3
tbl_tarif_denda
D4
tbl_tarif_hilang
D5
tbl_tarif_rusak
D6
tbl_anggota
D7
tbl_jenis
D8
tbl_bidang
D9
tbl_penerbit
d
Kepala
Perpustakaan
rec_tarif_hilang
rec_tarif_rusak
rec_anggota
rec_bidang
rec_jenis
1.2
rec_buku
dt_master
D1
rec_penerbit
rec_penulis
rec_propinsi
rec_kabupaten
rec_kecamatan
dt_master
c
Anggota
dt_transaksi
bukti_transaksi
D14
tbl_pinjam
D15
tbl_kembali
D16
tbl_bayar_denda
D17
tbl_bayar_hilang
D18
tbl_bayar_rusak
rec_pinjam
1.3
Proses
Transaksi
rec_kembali
rec_bayar_denda
rec_bayar_hilang
D10 tbl_penulis
rec_bayar_rusak
D11 tbl_propinsi
D12 tbl_kabupaten
dt_transaksi
D13 tbl_kecamatan
dt_master
laporan
1.4
Output
Laporan
laporan
informasi
e
Kepala
Sekolah
f
Pengunjung
Halaman: 5 dari 14
HIPO (VTOC) OD; DD
0
SPDP
1
Input Data User
2
Input Data Master
3
Proses Transaksi
4
Output Laporan
2.1. Input Data
Master Tanggal
Libur
3.1. Proses
Transaksi Pinjam
2.2. Input Data
Master Tarif Denda
3.2. Proses
Transaksi Kembali
4.1.1. Laporan
Detail Data Master
2.3. Input Data
Master Tarif Hilang
3.3. Proses
Transaksi Bayar
Denda
4.1.2. Laporan
Detail Data
Transaksi
2.4. Input Data
Master Tarif Rusak
3.4. Proses
Transaksi Bayar
Hilang
2.5. Input Data
Master Anggota
3.5. Proses
Transaksi Bayar
Rusak
2.6. Input Data
Master Jenis
2.7. Input Data
Master Bidang
4.1. Laporan Detail
4.2. Laporan
Rekapitulasi
4.2.1. Laporan
Rekap Data Master
4.2.2. Laporan
Rekap Data
Transaksi
4.3. Laporan Grafis
2.8. Input Data
Master Penerbit
4.3.1. Laporan
Grafis Data Master
2.9. Input Data
Master Pengarang
4.3.2. Laporan
Grafis Data
Transaksi
2.10. Input Data
Master Propinsi
2.11. Input Data
Master Kabupaten
2.12. Input Data
Master Kecamatan
4.4. Informasi
4.4.1. Informasi
Data Master
(Tertentu)
4.4.2. Infomasi Data
Transaksi (Tertentu)
Halaman: 6 dari 14
MENU UTAMA DAN SUB MENU SISTEM APLIKASI
0
SPDP
1
Input Data User
2
Input Data Master
3
Proses Transaksi
2.1. Input Data
Master Tanggal
Libur
3.1. Proses
Transaksi Pinjam
2.2. Input Data
Master Tarif Denda
3.2. Proses
Transaksi Kembali
2.3. Input Data
Master Tarif Hilang
3.3. Proses
Transaksi Bayar
Denda
2.4. Input Data
Master Tarif Rusak
3.4. Proses
Transaksi Bayar
Hilang
2.5. Input Data
Master Anggota
3.5. Proses
Transaksi Bayar
Rusak
2.6. Input Data
Master Jenis
2.7. Input Data
Master Bidang
4
Output Laporan
4.1. Laporan Detail
6
Help
5.1. Backup
6.1. Indeks
4.1.1. Laporan Detail
Data Master
5.2. Restore
6.2. Konten
4.1.2. Laporan Detail
Data Transaksi
5.3. Seting Sistem
4.2. Laporan
Rekapitulasi
4.2.1. Laporan
Rekap Data Master
4.2.2. Laporan
Rekap Data
Transaksi
4.3. Laporan Grafis
2.8. Input Data
Master Penerbit
4.3.1. Laporan
Grafis Data Master
2.9. Input Data
Master Pengarang
4.3.2. Laporan
Grafis Data
Transaksi
2.10. Input Data
Master Propinsi
5
Utilitas
4.4. Informasi
2.11. Input Data
Master Kabupaten
4.4.1. Informasi Data
Master (Tertentu)
2.12. Input Data
Master Kecamatan
4.4.2. Infomasi Data
Transaksi (Tertentu)
7
About
Halaman: 7 dari 14
JAWABAN SOAL UTS
ERD
o Entitas, Atribut, Kerelasian, Jenis Kerelasian (Catatan: Atribut & Jenis kerelasian
tidak ditampilkan)
Anggota
meminjam
Buku
mempunyai
Jenis
mempunyai
menempati
mengembalikan
menulis
Kecamatan
Bidang
Penulis
menempati
membawahi
menerbitkan
Kabupaten
menempati
Penerbit
membawahi
Propinsi
User
Denda
Denda_hilang
Denda_rusak
Halaman: 8 dari 14
RANCANGAN STRUKTUR TABEL DATABASE YG DIGUNAKAN
(DLM BENTUK 3NF)
PRIMARY KEY & FOREIGN KEY
1. Tabel: user
No
Nama Field
1
user_name
2
password
3
level_user
Tipe
VarCha
r
VarCh
ar
Char
Ukura
n
20
Nul
l
No
Defau
lt
-
Keterangan
20
No
-
-
1
No
5
1 = admin; 2 = kepala sekolah; 3 = kepala
perpustakaan
4 = anggota; 5 = pengunjung
Ukura
n
Nul
l
no
no
Defau
lt
-
Primary Key
2. Tabel: tanggal_libur
No
Nama Field
Tipe
1
2
tanggal_libur
Keterangan_lib
ur
Date
Varcha
r
50
Keterangan
Primary Key
-
3. Tabel: tarif_denda
No
Nama Field
1
jumlah_hari_maks
imal
jumlah_denda
2
Tipe
Nul
l
No
Default
Keterangan
Num
Ukura
n
3
-
Primary Key
Num
7
No
-
-
4. Tabel: tarif _hilang
No
Nama Field
1
harga_maksim
al
jumlah_denda
2
Tipe
Nul
l
No
Default
Keterangan
Num
Ukura
n
7
-
Primary Key
Num
7
No
-
-
5. Tabel: tarif _rusak
No
Nama Field
1 harga_maksim
al
2 jumlah_denda
Tipe
Nul
l
No
Default
Keterangan
Num
Ukura
n
7
-
Primary Key
Num
7
No
-
-
6. Tabel: anggota
No
Nama Field
1
kode_anggot
a
nama_anggot
a
alamat
2
3
4
5
kode_kecama
tan
telepon
6
7
tgl_mulai_an
ggota
Tipe
Ukura
n
6
Nul
l
no
Defau
lt
-
VarCh
ar
VarCh
ar
Char
100
no
-
-
100
no
-
-
6
no
-
Foreign Key
VarCh
ar
VarCh
ar
Date
12
yes
-
-
20
yes
-
-
no
-
-
Char
Keterangan
Primary Key
Halaman: 9 dari 14
8
9
jenis_anggot
a
status_anggo
ta
Char
1
no
2
1 = guru/ karyawan; 2 =
siswa
1 = aktif; 2 = tidak aktif
Char
1
no
2
Ukura
n
4
Nul
l
No
Defau
lt
-
VarCha
r
20
No
-
Tipe
Ukura
n
4
20
Nul
l
No
No
Defau
lt
-
Ukura
n
4
30
Nul
l
No
No
Default
Keterangan
-
Primary Key
-
100
no
-
-
6
no
-
Foreign Key
12
yes
-
-
20
yes
-
-
7. Tabel: jenis
No
Nama Field
1
kode_jenis_buk
u
nama_jenis_bu
ku
2
Tipe
Char
Keterangan
Primary Key
-
8. Tabel: bidang
No
Nama Field
1
2
kode_bidang
nama_bidang
Char
VarCha
r
Keterangan
Primary Key
-
9. Tabel: penerbit
No
Nama Field
Tipe
1
2
kode_penerbit
nama_penerbit
3
alamat
4
5
kode_kecamat
an
telepon
Char
VarCha
r
VarCha
r
Char
6
VarCha
r
VarCha
r
10. Tabel: penulis
No
Nama Field
Tipe
Ukura
n
4
Nul
l
No
Default
1
kode_penulis
Char
VarCh
ar
VarCh
ar
Char
100
No
-
Primary
Key
-
2
nama_penulis
3
alamat
100
no
-
-
4
5
kode_kecamata
n
telepon
6
no
-
VarCh
ar
VarCh
ar
12
yes
-
Foreign
Key
-
6
20
yes
-
-
-
Keterangan
11. Tabel: propinsi
No
Nama Field
Tipe
1
2
kode_propinsi
nama_propinsi
Char
VarCha
r
Ukura
n
2
30
Nul
l
No
No
Defau
lt
-
Keterangan
Primary Key
-
Halaman: 10 dari 14
12. Tabel: kabupaten
No
Nama Field
1
kode_kabupat
en
nama_kabupat
en
kode_propinsi
2
3
Tipe
Char
Ukura
n
4
Nul
l
No
Defau
lt
-
30
No
-
-
2
No
-
Foreign Key
Ukura
n
6
Nul
l
No
Default
Keterangan
-
Primary Key
30
No
-
-
4
No
-
Foreign Key
VarCha
r
Char
Keterangan
Primary Key
13. Tabel: kecamatan
No
Nama Field
1
kode_kecamat
an
nama_kecama
tan
kode_kabupat
en
2
3
Tipe
Char
VarCha
r
Char
14. Tabel: pinjam
Catatan: kode_pinjam boleh tidak digunakan
No
Nama Field
Tipe
Ukura Nul
n
l
1
kode_pinjam
2
kode_anggota
Char
6
No
3
kode_buku
Char
10
4
tanggal_pinjam
Date
No
5
tanggal_harus_kemb
ali
Date
N0
Default
Primary Key
Primary Key /
Foreign Key
Primary Key /
Foreign Key
Primary Key /
Foreign Key
-
-
No
Keterangan
-
-
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
Tip Ukura Nul Defau
e
n
l
lt
1
kode_pinjam
2
kode_kembali
3
kode_anggota
Char
6
No
4
kode_buku
Char
10
No
5
tanggal_pinja
Date
No
m
6
tanggal_kemb
Date
No
ali
Keterangan
Primary
Primary
Primary
Primary
Primary
Key
Key
Key
Key
Key
/ Foreign Key
/ Foreign Key
/ Foreign Key
/ Foreign Key
-
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 Ukura Nul Defau
Keterangan
n
l
lt
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
Halaman: 11 dari 14
4
5
6
tanggal_pinja
m
tanggal_bayar
jumlah_denda
Date
Date
Num
Key
Primary Key / Foreign
Key
Dihitung otomatis
No
No
No
9
0
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 Ukura Nul Defau
Keterangan
n
l
lt
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_pinja
Date
No
Primary Key / Foreign Key
m
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 Ukura Nul Defau
Keterangan
n
l
lt
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_pinja
Date
No
Primary Key / Foreign Key
m
5
tanggal_bayar
Date
No
6
jumlah_denda
Num
9
No
0
Dihitung otomatis
19. Tabel: buku
No
Nama Field
1
2
kode_buku
Judul_buku
3
4
5
kode_jenis
kode_bidang
kode_penulis_u
tama
kode_penerbit
jumlah
bahasa
6
7
8
9
10
11
12
13
14
isbn
tahun
jumlah_halama
n
edisi
cetakan_ke
status
Tipe
Ukura
n
10
100
Nul
l
No
No
Defau
lt
-
Primary Key
-
4
4
4
No
No
No
-
Foreign Key
Foreign Key
Foreign Key
Char
Num
Char
4
1
1
No
No
No
1
Char
Char
Num
12
4
1
No
No
No
-
Foreign Key
1 = Indonesia; 2
= Asing
-
Char
Char
Char
1
1
1
No
No
No
1
1
1
Char
VarCh
ar
Char
Char
Char
Keterangan
1 = Baik; 2 =
Rusak
Halaman: 12 dari 14
DIAGRAM KERELASIAN ANTAR TABEL DATABASE
Halaman: 13 dari 14
SCHEMA DATABASE DENGAN DDL
o DEFINISI DATABASE
create database dbperpustakaan;
o DEFINISI TABEL DALAM DATABASE
use dbperpustakaan
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;
Halaman: 14 dari 14
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,
Halaman: 15 dari 14
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 (
Halaman: 16 dari 14
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;