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;