bab 4 rancangan sistem yang diusulkanthesis.binus.ac.id/doc/bab4/2008-1-00343-if-bab 4 1.pdf ·...
TRANSCRIPT
BAB 4
RANCANGAN SISTEM YANG DIUSULKAN
4.1. Perancangan Basis Data
Perancangan basis data yang dilakukan pada perusahaan dibagi kedalam
tiga tahapan, yaitu:
1. Perancangan Basis Data Konseptual (conceptual database design)
2. Perancangan Basis Data Logikal (logical database design)
3. Perancangan Basis Data Fisikal (physical database design)
4.1.1. Perancangan Konseptual
Perancangan basis data konseptual merupakan suatu proses pembuatan
model dengan menggunakan informasi yang diperoleh dari perusahaan.
Beberapa langkah penting dalam merancang basis data secara konseptual
adalah:
1. Mengidentifikasi tipe entitas
2. Mengidentifikasi tipe relasi
3. Mengidentifikasi tipe dan menggabungkan atribut pada tiap entitas
4. Mengidentifikasi atribut domain
5. Mengidentifikasi atribut candidate dan primary key
6. Memvalidasi model konseptual lokal terhadap transaksi pengguna
114
115
4.1.1.1. Mengidentifikasi Tipe Entitas (Entity)
Tujuan dari tahapan ini adalah untuk menentukan entitas utama
yang dibutuhkan.
Nama Entitas Deskripsi Alias Kejadian
BarangATK Menggambarkan
barang ATK yang ada
BrgATK Satu atau banyak
barang ATK bisa
dipakai oleh tidak ada
satupun atau banyak
karyawan
Satu atau banyak
barang ATK bisa
terlibat dalam satu
atau banyak pengajuan
pembelian ATK.
BarangInventaris Menggambarkan
barang-barang
Inventaris yang sudah
atau belum
diregistrasi per
satuannya
BrgInv Tidak ada satupun
atau ada satubarang
Inventaris yang
memiliki satu nomor
registrasi Inventaris
KelompokBaran
gInventaris
Menggambarkan
kelompok barang
Inventaris yang ada
KlmpkBr
gInv
Satu kelompok barang
Inventaris memiliki
satu atau beberapa
116
barang Inventaris.
HsStokATK Menggambarkan
jumlah stok barang
ATK dan
perubahannya
HistorySt
okATK
Satu atau banyak
history stok ATK
dipunyai oleh satu
barang ATK.
HsStokInventaris Menggambarkan
jumlah stok barang
Inventaris dan
perubahannya
HistorySt
okInventa
ris
Satu atau banyak
history stok Inventaris
dipunyai oleh satu
kelompok barang
Inventaris.
Karyawan Menggambarkan
karyawan yang
bekerja pada
Perusahaan
Staff Hanya satu karyawan
yang boleh menangani
setiap pembelian ATK
ataupun Inventaris dan
peminjaman
Inventaris.
Lebih dari satu
karyawan ataupun
tidak ada satupun
karyawan yang
memakai ATK
ataupun Inventaris.
Jabatan Menggambarkan Posisi Hanya satu jabatan
117
jabatan yang tersedia
pada Perusahaan
yang boleh dimiliki
oleh beberapa
karyawan.
Divisi Menggambarkan
divisi yang ada
Bagian Satu divisi bisa
mencakup satu
ataupun beberapa
jabatan didalamnya.
NomorRegistrasi
Inventaris
Menggambarkan
Nomor Registrasi
terhadap barang
Inventaris yang telah
di register
NoRegIn
v
Setiap Nomor
Registrasi Inventaris
dimiliki oleh satu
ataupun tidak satupun
barang Inventaris.
SuratPengajuanP
embelianATK
Menggambarkan detil
surat pengajuan
pembelian ATK oleh
karyawan berdasarkan
kebutuhannya
SPPATK Satu atau beberapa
surat pengajuan
pembelian ATK bisa
berisi lebih dari satu
barang ATK.
Satu atau beberapa
surat pengajuan
pembelian ATK bisa
terdapat dalam satu
atau beberapa
Persetujuan SPPATK.
118
SuratPengajuanP
embelianInventar
is
Menggambarkan detil
surat pengajuan
pembelian Inventaris
oleh karyawan
berdasarkan
kebutuhannya
SPPInv Satu atau beberapa
surat pengajuan
pembelian Inventaris
bisa berisi lebih dari
satu kelompok barang
Inventaris.
Satu atau beberapa
surat pengajuan
pembelian Inventaris
bisa terdapat dalam
satu atau beberapa
Persetujuan SPP
Inventaris.
PersetujuanSPPA
TK
Menggambarkan detil
persetujuan pembelian
barang ATK oleh
atasan karyawan yang
berwenang
Pengesah
anSPPAT
K
Satu Persetujuan SPP
ATK menghasilkan
satu bon sementara.
Satu atau banyak
persetujuan SPP ATK
ditangani oleh satu
karyawan.
PersetujuanSPPI
nventaris
Menggambarkan detil
persetujuan pembelian
barang Inventaris oleh
Pengesah
anSPPInv
Satu Persetujuan SPP
Inventaris
menghasilkan satu
119
atasan karyawan dan
juga atasan dari induk
perusahaan yang
berwenang
bukti kas masuk.
Satu atau beberapa
persetujuan SPP
Inventaris disetujui
oleh satu atau lebih
karyawan.
BonSementaraPe
mbelianATK
Menggambarkan detil
bon sementara
pembelian ATK yang
berisi perkiraan harga
barang yang mau
dibeli
BSBeliA
TK
Satu atau beberapa
bon sementara
pembelian ATK
disusun oleh satu
karyawan.
BonSementaraPe
mbelianInventari
s
Menggambarkan detil
bon sementara
pembelian inventaris
yang berisi perkiraan
harga barang yang
mau dibeli
BSBeliIn
v
Satu atau beberapa
bon sementara
pembelian Inventaris
disusun oleh satu
karyawan.
PembelianATK Menggambarkan
pembelian barang
ATK yang terjadi di
Perusahaan
BeliATK Satu atau beberapa
pembelian ATK
ditangani oleh satu
karyawan.
Satu pembelian ATK
120
menghasilkan satu
atau banyak bukti kas
keluar ATK.
PembelianInvent
aris
Menggambarkan
pembelian barang
Inventaris yang terjadi
di Perusahaan
BeliInv Satu atau beberapa
pembelian Inventaris
ditangani oleh satu
karyawan.
Satu pembelian
Inventaris
menghasilkan satu
atau banyak bukti kas
keluar Inventaris.
BuktiKasMasuk Menggambarkan bukti
kas masuk yang berisi
dana untuk pembelian
atas pengajuan
pembelian Inventaris
ke atasan induk
perusahaan
BKM Satu bukti kas masuk
menghasilkan satu bon
sementara pembelian
Inventaris.
Satu atau beberapa
bukti kas masuk
dibuat oleh satu
karyawan.
BuktiKasKeluar
ATK
Menggambarkan bukti
kas keluar yang berisi
detil dana yang
BKKAT
K
Satu bukti kas keluar
ATK dihasilkan dari
satu pembelian ATK.
121
dikeluarkan untuk
pembelian ATK
Satu atau beberapa
bukti kas keluar ATK
dibuat oleh satu
karyawan.
BuktiKasKeluarI
nventaris
Menggambarkan bukti
kas keluar yang berisi
detil dana yang
dikeluarkan untuk
pembelian Inventaris
BKKInv Satu bukti kas keluar
Inventaris dihasilkan
dari satu pembelian
Inventaris.
Satu atau beberapa
bukti kas keluar
Inventaris dibuat oleh
satu karyawan.
Toko Menggambarkan toko
tempat terjadinya
transaksi pembelian
ATK ataupun
Inventaris
Store Satu toko terlibat
dalam satu pembelian
ATK ataupun
Inventaris.
PeminjamanInve
ntaris
Menggambarkan
peminjaman
Inventaris perusahaan
oleh salah satu pihak
perusahaan yang juga
berada dalam naungan
Peminjam
anInv
Satu atau beberapa
peminjaman inventaris
bisa meliputi satu atau
beberapa barang
inventaris.
Satu atau beberapa
122
satu grup peminjaman inventaris
ditangani oleh satu
karyawan.
PengembalianInv
entaris
Menggambarkan
pengembalian
Inventaris perusahaan
oleh salah satu pihak
perusahaan yang juga
berada dalam naungan
satu grup
Pengemb
alianInv
Satu atau beberapa
pengembalian
inventaris bisa
meliputi satu atau
beberapa barang
inventaris.
Satu atau beberapa
pengembalian
inventaris ditangani
oleh satu karyawan.
Tabel 4.1. Identifikasi Tipe Entitas
4.1.1.2. Mengidentifikasi Tipe Relasi (Relationship)
Identifikasi tipe relasi dimaksudkan untuk menjelaskan
hubungan antara semua entitas yang telah diidentifikasi pada tahap
identifikasi tipe entitas sebelumnya.
123
Nama Entitas Multi
plicity
Relasi Nama Entitas Multi
plicity
BarangATK 1..*
1..1
Ada dalam
Mempunyai
SuratPengajuanPem
belianATK
HsStokATK
1..*
1..*
BarangInventaris 1..*
1..*
0..1
Ada dalam
Ada dalam
Memiliki
PeminjamanInventa
ris
PengembalianInven
taris
NomorRegistrasiIn
ventaris
1..*
1..*
1..1
KelompokBarangInv
entaris
1..1
1..*
1..1
Memiliki
Ada dalam
Mempunyai
BarangInventaris
SuratPengajuanPem
belian
HsStokInventaris
1..*
1..*
1..*
Karyawan 1..1
1..1
1..1
1..1
Menangani
Membuat
Membuat
Menangani
PembelianATK
BuktiKasKeluarAT
K
BuktiKasKeluarInv
entaris
PembelianInventari
s
1..*
1..*
1..*
1..*
124
1..1
1..1
0..1
1..*
1..1
1..1
0..1
1..1
1..1
0..*
0..*
Menangani
Menangani
Mengisi
Menyetujui
Membuat
Menyusun
Mengisi
Menyusun
Menyetujui
Memakai
Memakai
PeminjamanInventa
ris
PengembalianInven
taris
SuratPengajuanPem
belianInventaris
PersetujuanSPPInv
entaris
BuktiKasMasuk
BonSementaraPem
belianInventaris
SuratPengajuanPem
belianATK
BonSementaraPem
belianATK
PersetujuanSPPAT
K
BarangATK
BarangInventaris
1..*
1..*
1..*
1..*
1..*
1..*
1..*
1..*
1..*
1..*
1.*
Jabatan 1..1 Dipunyai Karyawan 1..*
Divisi 1..1 Mencakup Jabatan 1..*
SuratPengajuanPemb
elianATK
1..* Terdapat dalam PersetujuanSPPAT
K
1..*
125
SuratPengajuanPemb
elianInventaris
1..* Terdapat dalam PersetujuanSPPInv
entaris
1..*
PersetujuanSPPATK 1..1 Menghasilkan BonSementaraPem
belianATK
1..1
PersetujuanSPPInve
ntaris
1..1 Menghasilkan BuktiKasMasuk 1..1
PembelianATK 1..1
0..*
Menghasilkan
Menambah
barang ATK
BuktiKasKeluarAT
K
BarangATK
1..1
1..*
PembelianInventaris 1..1
0..*
Menghasilkan
Menambah
barang
Inventaris
BuktiKasKeluarInv
entaris
KelompokBarangIn
ventaris
1..1
1..*
BuktiKasMasuk 1..1 Menghasilkan BonSementaraPem
belianInventaris
1..1
Toko 1..1
1..1
Terlibat dalam
Terlibat dalam
PembelianATK
PembelianInventari
s
1..*
1..*
PeminjamanInventar
is
1..1 Mencakup PengembalianInven
taris
1..*
Tabel 4.2. Identifikasi Tipe Relasi
126
Entity Relationship Diagram (ERD) menggambarkan relasi dari entitas-
entitas yang telah diidentifikasi. Hubungan antara semua entitas-entitas yang
telah diidentifikasi sebelumnya dapat dilihat pada gambar berikut:
127
Gambar 4.1. Diagram ER Hubungan Antar Entitas
128
4.1.1.3. Mengidentifikasi Tipe dan Menggabungkan Atribut
Tujuan dari tahapan ini adalah untuk mengidentifikasi dan
menggabungkan atribut yang dibutuhkan entitas atau relasi, dan
mendokumenkan setiap atribut secara detil.
Nama Entitas Atribut Deskripsi Data type
& length
Nulls Mult
i
value
d
BarangATK KodeATK
NamaATK
Satuan
JumlahStok
InsertedDatetim
e
Secara unik
mengidentifikasi
barang ATK
Nama barang ATK
Nama satuan
barang
Jumlah persediaan
yang ada
Waktu
pemasukkan atau
pengubahan data
char (6)
varchar (50)
varchar (20)
int
datetime
No
No
No
No
No
No
No
No
No
No
BarangInventaris KodeInventaris
NamaInventaris
Secara unik
mengidentifikasi
barang Inventaris
Nama barang
char (6)
varchar
No
No
No
No
129
KodeKelompok
Inventaris
NamaKelompok
Inventaris
NoRegistrasiInv
entaris
Status
Inventaris
Kode kelompok
Inventaris
Nama kelompok
inventaris
Nomor registrasi
Inventaris
Status barang
(100)
char (5)
varchar (50)
varchar (25)
varchar (20)
No
No
No
No
No
No
No
No
KelompokBarang
Inventaris
KodeKelompok
Inventaris
NamaKelompok
Inventaris
JumlahStok
InsertedDatetim
e
Kode kelompok
Inventaris
Nama kelompok
Inventaris
Jumlah persediaan
yang ada
Waktu
pemasukkan atau
pengubahan data
char (5)
varchar (50)
int
datetime
No
No
No
No
No
No
No
No
HsStokATK KodeATK
InsertedDatetim
e
JumlahStok
Kode barang ATK
Waktu
pemasukkan atau
pengubahan data
Jumlah persediaan
yang ada
char (6)
datetime
int
No
No
No
No
No
No
HsStokInventaris KodeKelompok
Inventaris
Kode kelompok
barang Inventaris
char (5)
No
No
130
InsertedDatetim
e
JumlahStok
Waktu
pemasukkan atau
pengubahan data
Jumlah persediaan
yang ada
datetime
int
No
No
No
No
Karyawan KodeKaryawan
NamaKaryawan
Lokasi
Alamat
KodePos
Daerah
Telepon
JenisKelamin
TglLahir
Username
Password
Photo
Secara unik
mengidentifikasi
karyawan
Nama karyawan
Alamat karyawan
Kode pos
Daerah
Nomor telepon
karyawan
Jenis kelamin
Tanggal lahir
Nama user
Password
Photo
char (6)
varchar (50)
varchar (50)
char (5)
varchar (50)
varchar (15)
varchar (10)
date
varchar (20)
varchar
(100)
varchar (50)
No
No
No
No
No
No
No
No
Yes
Yes
Yes
No
No
No
No
No
Yes
No
No
No
No
No
Jabatan KodeJabatan
NamaJabatan
Secara unik
mengidentifikasi
jabatan
Nama jabatan
char (5)
varchar (50)
No
No
No
No
131
Divisi KodeDivisi
NamaDivisi
Secara unik
mengidentifikasi
divisi
Nama divisi
char (5)
varchar (20)
No
No
No
No
NomorRegistrasiI
nventaris
NoRegistrasiInv
entaris
TglRegistrasi
KodeInventaris
NamaInventaris
KodeKelompok
Inventaris
NamaKelompok
Inventaris
Secara unik
mendeskripsikan
registrasi
Inventaris
Tanggal registrasi
Kode Inventaris
Nama Inventaris
Kode kelompok
Inventaris
Nama kelompok
Inventaris
varchar (25)
date
char (6)
varchar
(100)
char (5)
varchar (50)
No
No
No
No
No
No
No
No
No
No
No
No
SuratPengajuanP
embelianATK
NoSPPATK
TglPengajuanS
PPATK
Keperluan
KodeATK
Secara unik
mendeskripsikan
pengajuan
pembelian ATK
Tanggal pengajuan
SPPATK
Alasan pengajuan
Kode ATK
int
date
varchar
(100)
char (6)
No
No
No
No
No
No
No
No
132
NamaATK
KodeKaryawan
NamaKaryawan
Qty
PerkiraanHarga
StatusPersetujua
n
Nama ATK
Kode karyawan
Nama karyawan
Jumlah barang
ATK
Perkiraan harga
Status persetujuan
varchar (50)
char (6)
varchar (50)
int
big int
varchar (20)
No
No
No
No
No
No
No
No
No
No
No
No
SuratPengajuanP
embelianInventar
is
NoSPPInventari
s
TglPengajuanS
PPInventaris
Keperluan
KodeInventaris
NamaInventaris
KodeKelompok
Inventaris
NamaKelompok
Inventaris
NamaKaryawan
Secara unik
mendeskripsikan
pengajuan
pembelian
Inventaris
Tanggal pengajuan
SPPInventaris
Alasan pengajuan
Kode Inventaris
Nama Inventaris
Kode kelompok
Inventaris
Nama kelompok
Inventaris
Nama karyawan
int
date
varchar
(100)
char (6)
varchar
(100)
char (5)
varchar (50)
varchar (50)
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
133
Qty
PerkiraanHarga
StatusPersetujua
n
Jumlah barang
Inventaris
Perkiraan harga
Status persetujuan
int
big int
varchar (20)
No
No
No
No
No
No
PersetujuanSPPA
TK
NoSuratPersetuj
uanSPPATK
NoSPPATK
TglPersetujuan
ATK
KodeKaryawan
NamaKaryawan
Secara unik
mengidentifikasi
persetujuan
SPPATK
Nomor surat
pengajuan
pembelian ATK
Tanggal
Persetujuan
Kode karyawan
Nama karyawan
int
int
date
char (6)
varchar (50)
No
No
No
No
No
No
No
No
No
No
PersetujuanSPPIn
ventaris
NoSuratPersetuj
uanSPPInventar
is
NoSPPInventari
s
TglPersetujuanI
Secara unik
mengidentifikasi
persetujuan SPP
Inventaris
Nomor surat
pengajuan
pembelian
Inventaris
Tanggal
int
int
date
No
No
No
No
No
No
134
nventaris
KodeKaryawan
NamaKaryawan
Persetujuan
Kode karyawan
Nama karyawan
char (6)
varchar (50)
No
No
No
No
BonSementaraPe
mbelianATK
NoBonSementa
raPembelianAT
K
Tanggal
Keterangan
KodeKaryawan
NamaKaryawan
KodeATK
NamaATK
NoSuratPersetuj
uanSPPATK
DanaPembelian
ATK
Secara unik
mengidentifikasika
n bon sementara
pembelian ATK
Tanggal bon
sementara dibuat
Keterangan
tambahan
Kode karyawan
Nama karyawan
Kode ATK
Nama ATK
Nomor surat
persetujuan
Dana yang
diberikan dalam
pembelian ATK
int
date
varchar (50)
char (6)
varchar (50)
char (6)
varchar (50)
int
big int
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
BonSementaraPe
mbelianInventari
s
NoBonSementa
raPembelianInv
entaris
Secara unik
mengidentifikasika
n bon sementara
pembelian
Inventaris
int
No
No
135
Tanggal
Keterangan
KodeKaryawan
NamaKaryawan
KodeKelompok
Inventaris
NamaKelompok
Inventaris
NoBKM
Tanggal bon
sementara dibuat
Keterangan
tambahan
Kode karyawan
Nama karyawan
Kode kelompok
Inventaris
Nama kelompok
Inventaris
Nomor Bukti Kas
Masuk
date
varchar (50)
char (6)
varchar (50)
char (5)
varchar (50)
int
No
No
No
No
No
No
No
No
No
No
No
No
No
No
PembelianATK NoNPATK
TglPembelianA
TK
KodeKaryawan
NamaKaryawan
KodeATK
NamaATK
KodeToko
NamaToko
Qty
HargaSatuan
Nomor nota
pembelian ATK
Tanggal pembelian
ATK
Kode karyawan
Nama karyawan
Kode ATK
Nama ATK
Kode toko
Nama toko
Jumlah beli ATK
Harga satuan ATK
varchar (10)
date
char (6)
varchar (50)
char (6)
varchar (50)
char (5)
varchar (20)
int
big int
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
PembelianInvent NoNPInventaris Nomor nota varchar (10) No No
136
aris
TglPembelianIn
ventaris
KodeKaryawan
NamaKaryawan
KodeKelompok
Inventaris
NamaKelompok
Inventaris
NamaToko
Qty
HargaSatuan
pembelian
Inventaris
Tanggal pembelian
Inventaris
Kode karyawan
Nama karyawan
Kode kelompok
Inventaris
Nama kelompok
Inventaris
Nama toko
Jumlah beli ATK
Harga satuan ATK
date
char (6)
varchar (50)
char (5)
varchar (50)
varchar (20)
int
big int
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
BuktiKasMasuk NoBKM
Tanggal
NoSuratPersetuj
uanSPPInventar
is
KodeKaryawan
NamaKaryawan
DanaPembelian
Inventaris
Nomor BKM
Tanggal
Nomor surat
persetujuan
Kode karyawan
Nama karyawan
Dana yang
diberikan dalam
pembelian
Inventaris
int
date
int
char (6)
varchar (50)
big int
No
No
No
No
No
No
No
No
No
No
No
No
BuktiKasKeluar NoBKKATK Nomor BKK ATK int No No
137
ATK Tanggal
NoNPATK
KodeKaryawan
NamaKaryawan
KodeATK
JumlahPengelua
ranPembelianA
TK
Tanggal
Nomor nota
pembelian ATK
Kode karyawan
Nama karyawan
Kode ATK
Jumlah
pengeluaran
pembelian ATK
date
varchar (10)
char (6)
varchar (50)
char (5)
big int
No
No
No
No
No
No
No
No
No
No
No
No
BuktiKasKeluarI
nventaris
NoBKKInventa
ris
Tanggal
NoNPInventaris
KodeKaryawan
NamaKaryawan
KodeKelompok
Inventaris
JumlahPengelua
ranPembelianIn
ventaris
Nomor BKK
Inventaris
Tanggal
Nomor nota
pembelian
Inventaris
Kode karyawan
Nama karyawan
Kode jenis
Inventaris
Jumlah
pengeluaran
pembelian
Inventaris
int
date
varchar (10)
char (6)
varchar (50)
char (5)
big int
No
No
No
No
No
No
No
No
No
No
No
No
No
No
Toko KodeToko
Secara unik
mengidentifikasika
char (5)
No
No
138
NamaToko
Lokasi
Alamat
KodePos
Daerah
TeleponToko
n toko
Nama toko
Alamat toko
Kode pos toko
Daerah toko
Telepon toko
varchar (20)
varchar (50)
char (5)
varchar (50)
varchar (15)
No
No
No
No
No
No
No
No
No
Yes
PeminjamanInve
ntaris
NoSuratPeminja
man
TglPinjam
NoSuratPengant
arPeminjaman
Perihal
NamaPeminjam
NamaPerusahaa
nPeminjam
KodeKaryawan
NamaKaryawan
KodeInventaris
NamaInventaris
Secara unik
mengidentifikasika
n surat
peminjaman
Tanggal
peminjaman
Nomor surat
pengantar
peminjaman
Perihal
Nama peminjam
Nama perusahaan
peminjam
Kode karyawan
Nama karyawan
Kode Inventaris
Nama Inventaris
int
date
varchar (30)
varchar
(100)
varchar (20)
varchar (20)
char (6)
varchar (50)
char (6)
varchar
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
139
StatusPeminjam
an
Status pinjam
(100)
varchar (20)
No
No
PengembalianInv
entaris
KodePengembal
ian
NoSuratPeminja
man
TglKembali
NamaPengemba
li
KodeKaryawan
NamaKaryawan
KodeInventaris
NamaInventaris
Secara unik
mengidentifikasika
n pengembalian
inventaris
Nomor surat
peminjaman
inventaris
Tanggal
pengembalian
Nama pengembali
Kode karyawan Nama karyawan Kode Inventaris Nama Inventaris
int
int
date varchar (20) char (6) varchar (50) char (6) varchar (100)
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
Tabel 4.3. Identifikasi Tipe Atribut
140
4.1.1.4. Mengidentifikasi Atribut Domain
Atribut domain merupakan batasan nilai yang valid bagi atribut.
Berikut adalah tabel domain dari sejumlah atribut yang dimiliki oleh
entitas dalam basis data yang dirancang:
• BarangATK
Atribut Domain
KodeATK char, panjang 6
tiga karakter pertama huruf, karakter
berikutnya merupakan angka dalam range
000-999. Contoh: ATK008
NamaATK varchar, panjang 50
Satuan varchar, panjang 20
seluruh karakter berupa huruf, nilai harus
merupakan salah satu dari nilai
berikut:’buah’, ’unit’, ’bungkus’.
JumlahStok int, range 0-999999
InsertedDatetime datetime
Tabel 4.4. Atribut Domain dari Entitas BarangATK
• BarangInventaris
Atribut Domain
KodeInventaris char, panjang 6
tiga karakter pertama huruf, karakter
141
berikutnya merupakan angka dengan
range 000-999. Contoh: INV018
NamaInventaris varchar, panjang 100
KodeKelompokInventaris char, panjang 5
tiga karakter pertama huruf, karakter
berikutnya merupakan angka dengan
range 000-99. Contoh: KIN28
NamaKelompokInventaris varchar, panjang 20
NoRegistrasiInventaris varchar, panjang 25
Status varchar, panjang 20
Tabel 4.5. Atribut Domain dari Entitas BarangInventaris
• KelompokBarangInventaris
Atribut Domain
KodeKelompokInventaris char, panjang 5
tiga karakter pertama huruf, karakter
berikutnya merupakan angka dengan
range 000-99. Contoh: KIN28
NamaKelompokInventaris varchar, panjang 50
JumlahStok int, range 0-999999
InsertedDatetime datetime
Tabel 4.6. Atribut Domain dari Entitas KelompokBarangInventaris
142
• HsStokATK
Atribut Domain
KodeATK char, panjang 6
tiga karakter pertama huruf, karakter
berikutnya merupakan angka dalam range
000-999. Contoh: ATK008
InsertedDatetime datetime
JumlahStok int, range 0-999999
Tabel 4.7. Atribut Domain dari Entitas HsStokATK
• HsStokInventaris
Atribut Domain
KodeKelompokInventaris char, panjang 5
tiga karakter pertama huruf, karakter
berikutnya merupakan angka dengan
range 000-99. Contoh: KIN28
InsertedDatetime datetime
JumlahStok int, range 0-999999
Tabel 4.8. Atribut Domain dari Entitas HsStokInventaris
• Karyawan
Atribut Domain
KodeKaryawan char, panjang 6
143
tiga karakter pertama huruf, karakter
berikutnya merupakan angka dengan range
000-999. Contoh: KRY008
NamaKaryawan varchar, panjang 50
Alamat varchar, panjang 50
KodePos char, panjang 5
semua karakter harus berupa angka
Daerah varchar, panjang 50
Telepon varchar, panjang 15
semua karakter harus berupa angka
JenisKelamin varchar, panjang 10
nilai harus merupakan salah satu dari
nilai: ’Laki-laki’, ’Perempuan’
TglLahir date dengan format yyyy-mm-dd
Username varchar, panjang 20
Password varchar, panjang 100
Photo varchar, panjang 50
Tabel 4.9. Atribut Domain dari Entitas Karyawan
• Jabatan
Atribut Domain
KodeJabatan char, panjang 5
tiga karakter pertama huruf, karakter
144
berikutnya merupakan angka dengan range
000-99. Contoh: JBT08
NamaJabatan varchar, panjang 50
Tabel 4.10. Atribut Domain dari Entitas Jabatan • Divisi
Atribut Domain
KodeDivisi char, panjang 5
tiga karakter pertama huruf, karakter
berikutnya merupakan angka dengan range
000-99. Contoh: DVS08
NamaDivisi varchar, panjang 20
Tabel 4.11. Atribut Domain dari Entitas Divisi
• NomorRegistrasiInventaris
Atribut Domain
NoRegistrasiInventaris varchar, panjang 25, yang terdiri dari
karakter angka, karater garis miring dan
strip. Contoh: 008/Fin Roll/E-AC/II/07
TglRegistrasi date, dengan format yyyy-mm-dd
KodeInventaris char, panjang 6
tiga karakter pertama huruf, karakter
berikutnya merupakan angka dengan
145
range 000-999. Contoh: INV018
NamaInventaris varchar, panjang 100
KodeKelompokInventaris char, panjang 5
tiga karakter pertama huruf, karakter
berikutnya merupakan angka dengan
range 000-99. Contoh: KIN28
NamaKelompokInventaris varchar, panjang 50
Tabel 4.12. Atribut Domain dari Entitas NomorRegistrasiInventaris • SuratPengajuanPembelianATK
Atribut Domain
NoSPPATK int
TglPengajuanSPPATK date, dengan format yyyy-mm-dd
Keperluan varchar, panjang 100
KodeATK char, panjang 6
tiga karakter pertama huruf, karakter
berikutnya merupakan angka dalam range
000-999. Contoh: ATK008
NamaATK varchar, panjang 50
KodeKaryawan char, panjang 6
tiga karakter pertama huruf, karakter
berikutnya merupakan angka dengan range
000-999. Contoh: KRY008
146
NamaKaryawan varchar, panjang 50
Qty int, range 0-999999
PerkiraanHarga big int
StatusPersetujuan varchar, panjang 20
Tabel 4.13. Atribut Domain dari Entitas SuratPengajuanPembelianATK • SuratPengajuanPembelianInventaris
Atribut Domain
NoSPPInventaris int
TglPengajuanSPPInventaris date, dengan format yyyy-mm-dd
Keperluan varchar, panjang 100
KodeInventaris char, panjang 6
tiga karakter pertama huruf, karakter
berikutnya merupakan angka dengan
range 000-999. Contoh: INV018
NamaInventaris varchar, panjang 100
KodeKelompokInventaris char, panjang 5
tiga karakter pertama huruf, karakter
berikutnya merupakan angka dengan
range 000-99. Contoh: KIN28
NamaKelompokInventaris varchar, panjang 50
KodeKaryawan char, panjang 6
tiga karakter pertama huruf, karakter
147
berikutnya merupakan angka dengan
range 000-999. Contoh: KRY008
NamaKaryawan varchar, panjang 50
Qty int, range 0-999999
PerkiraanHarga big int
StatusPersetujuan varchar, panjang 20
Tabel 4.14. Atribut Domain dari Entitas SuratPengajuanPembelianInventaris
• PersetujuanSPPATK
Atribut Domain
NoSuratPersetujuanSPPATK int
NoSPPATK int
TglPersetujuanATK date, dengan format yyyy-mm-dd
KodeKaryawan char, panjang 6
tiga karakter pertama huruf, karakter
berikutnya merupakan angka dengan
range 000-999. Contoh: KRY008
NamaKaryawan varchar, panjang 50
Tabel 4.15. Atribut Domain dari Entitas PersetujuanSPPATK
148
• PersetujuanSPPInventaris
Atribut Domain
NoSuratPersetujuanSPPInventaris int
NoSPPInventaris int
TglPersetujuanInventaris date, dengan format yyyy-mm-dd
KodeKaryawan char, panjang 6
tiga karakter pertama huruf,
karakter berikutnya merupakan
angka dengan range 000-999.
Contoh: KRY008
NamaKaryawan varchar, panjang 50
Tabel 4.16. Atribut Domain dari Entitas PersetujuanSPPInventaris
• BonSementaraPembelianATK
Atribut Domain
NoBonSementaraPembelianATK int
Tanggal date, dengan format yyyy-mm-dd
Keterangan varchar, panjang 50
KodeKaryawan char, panjang 6
tiga karakter pertama huruf,
karakter berikutnya merupakan
angka dengan range 000-999.
Contoh: KRY008
149
NamaKaryawan varchar, panjang 50
KodeATK char, panjang 6
tiga karakter pertama huruf,
karakter berikutnya merupakan
angka dalam range 000-999.
Contoh: ATK008
NamaATK varchar, panjang 50
NoSuratPesetujuanATK int
DanaPembelianATK big int
Tabel 4.17. Atribut Domain dari Entitas BonSementaraPembelianATK
• BonSementaraPembelianInventaris
Atribut Domain
NoBonSementaraPembelianInventaris int
Tanggal date, dengan format yyyy-mm-
dd
Keterangan varchar, panjang 50
KodeKaryawan char, panjang 6
tiga karakter pertama huruf,
karakter berikutnya
merupakan angka dengan
range 000-999. Contoh:
KRY008
150
NamaKaryawan varchar, panjang 50
KodeKelompokInventaris char, panjang 5
tiga karakter pertama huruf,
karakter berikutnya
merupakan angka dengan
range 000-99. Contoh: KIN28
NamaKelompokInventaris varchar, panjang 50
NoBKM int
Tabel 4.18. Atribut Domain dari Entitas BonSementaraPembelianInventaris
• PembelianATK
Atribut Domain
NoNPATK varchar, panjang 10
dengan karakter berupa huruf dan angka.
TglPembelianATK date, dengan format yyyy-mm-dd
KodeKaryawan char, panjang 6
tiga karakter pertama huruf, karakter
berikutnya merupakan angka dengan range
000-999. Contoh: KRY008
NamaKaryawan varchar, panjang 50
KodeATK char, panjang 6
tiga karakter pertama huruf, karakter
berikutnya merupakan angka dalam range
151
000-999. Contoh: ATK008
NamaATK varchar, panjang 50
KodeToko char, panjang 5
tiga karakter pertama huruf, karakter
berikutnya merupakan angka dengan range
000-99. Contoh: TOK08
NamaToko varchar, panjang 20
Qty int, range 0-999999
HargaSatuan big int
Tabel 4.19. Atribut Domain dari Entitas PembelianATK • PembelianInventaris
Atribut Domain
NoNPInventaris varchar, panjang 10
dengan karakter berupa huruf dan angka.
TglPembelianInventaris date, dengan format yyyy-mm-dd
KodeKaryawan char, panjang 6
tiga karakter pertama huruf, karakter
berikutnya merupakan angka dengan
range 000-999. Contoh: KRY008
NamaKaryawan varchar, panjang 50
KodeKelompokInventaris char, panjang 5
tiga karakter pertama huruf, karakter
152
berikutnya merupakan angka dengan
range 000-99. Contoh: KIN28
NamaKelompokInventaris varchar, panjang 50
KodeToko char, panjang 5
tiga karakter pertama huruf, karakter
berikutnya merupakan angka dengan
range 000-99. Contoh: TOK08
NamaToko varchar, panjang 20
Qty int, range 0-999999
HargaSatuan big int
Tabel 4.20. Atribut Domain dari Entitas PembelianInventaris • BuktiKasMasuk
Atribut Domain
NoBKM int
Tanggal date, dengan format yyyy-mm-dd
NoSuratPersetujuanSPPInventaris int
KodeKaryawan char, panjang 6
tiga karakter pertama huruf,
karakter berikutnya merupakan
angka dengan range 000-999.
Contoh: KRY008
NamaKaryawan varchar, panjang 50
153
DanaPembelianInventaris big int
Tabel 4.21. Atribut Domain dari Entitas BuktiKasMasuk
• BuktiKasKeluarATK
Atribut Domain
NoBKKATK int
Tanggal date, dengan format yyyy-mm-dd
NoNPATK varchar, panjang 10
dengan karakter huruf dan angka.
KodeKaryawan char, panjang 6
tiga karakter pertama huruf,
karakter berikutnya merupakan
angka dengan range 000-999.
Contoh: KRY008
NamaKaryawan varchar, panjang 50
KodeATK char, panjang 6
tiga karakter pertama huruf,
karakter berikutnya merupakan
angka dalam range 000-999.
Contoh: ATK008
JumlahPengeluaranPembelianATK big int
Tabel 4.22. Atribut Domain dari Entitas BuktiKasKeluarATK
154
• BuktiKasKeluarInventaris
Atribut Domain
NoBKKInventaris int
Tanggal date, dengan format yyyy-
mm-dd
NoNPInventaris varchar, panjang 10
dengan karakter huruf dan
angka.
KodeKaryawan char, panjang 6
tiga karakter pertama huruf,
karakter berikutnya
merupakan angka dengan
range 000-999. Contoh:
KRY008
NamaKaryawan varchar, panjang 50
KodeKelompokInventaris char, panjang 5
tiga karakter pertama huruf,
karakter berikutnya
merupakan angka dengan
range 000-99. Contoh:
KIN28
JumlahPengeluaranPembelianInventaris big int
Tabel 4.23. Atribut Domain dari Entitas BuktiKasKeluarInventaris
155
• Toko
Atribut Domain
KodeToko char, panjang 5
tiga karakter pertama huruf, karakter
berikutnya merupakan angka dengan range
000-99. Contoh: TOK08
NamaToko varchar, panjang 20
Alamat varchar, panjang 50
KodePos char, panjang 5
semua karakter harus berupa angka
Daerah varchar, panjang 50
TeleponToko varchar, panjang 15
semua karakter harus berupa angka
Tabel 4.24. Atribut Domain dari Entitas Toko
• PeminjamanInventaris
Atribut Domain
NoSuratPeminjamanIn
ventaris
int
TglPinjam date, dengan format yyyy-mm-dd
NoSuratPengantarPemi
njaman
varchar, panjang 30
Contoh: 048/FR/ADM/Out-Ltr/IX/2007
Perihal varchar, panjang 100
156
NamaPeminjam varchar, panjang 20
NamaPerusahaanPemin
jaman
varchar, panjang 20
KodeKaryawan char, panjang 6
tiga karakter pertama huruf, karakter
berikutnya merupakan angka dengan range
000-999. Contoh: KRY008
NamaKaryawan varchar, panjang 50
KodeInventaris char, panjang 6
tiga karakter pertama huruf, karakter
berikutnya merupakan angka dengan range
000-999. Contoh: INV018
NamaInventaris varchar, panjang 100
StatusPeminjaman Varchar, panjang 20
Tabel 4.25. Atribut Domain dari Entitas PeminjamanInventaris • PengembalianInventaris
Atribut Domain
KodePengembalian int
NoSuratPeminjamanIn
ventaris
int
TglKembali date, dengan format yyyy-mm-dd
NamaPengembali varchar, panjang 20
157
KodeKaryawan char, panjang 6
tiga karakter pertama huruf, karakter
berikutnya merupakan angka dengan range
000-999. Contoh: KRY008
NamaKaryawan varchar, panjang 50
KodeInventaris char, panjang 6
tiga karakter pertama huruf, karakter
berikutnya merupakan angka dengan range
000-999. Contoh: INV018
Tabel 4.26. Atribut Domain dari Entitas PengembalianInventaris
4.1.1.5. Mengidentifikasi Atribut Candidate dan Primary Key
Tahap ini bertujuan untuk mengidentifikasi candidate dan
primary key dan field-field pada tabel.
Nama Entitas Candidate Key Primary Key
BarangATK KodeATK
NamaATK
KodeATK
BarangInventaris KodeInventaris
NamaInventaris
KodeInventaris
KelompokBarangInventari
s
KodeKelompokInventaris
NamaKelompokInventaris
KodeKelompokInventari
s
158
HsStokATK KodeATK
InsertedDatetime
KodeATK
InsertedDatetime
HsStokInventaris KodeKelompokInventaris
InsertedDatetime
KodeKelompokInventari
s
InsertedDatetime
Karyawan KodeKaryawan KodeKaryawan
Jabatan KodeJabatan
NamaJabatan
KodeJabatan
Divisi KodeDivisi
NamaDivisi
KodeDivisi
NomorRegistrasiInventaris NoRegistrasiInventaris
TglRegistrasi
NoRegistrasiInventaris
SuratPengajuanPembelian
ATK
NoSPPATK
TglPengajuanSPPATK
NoSPPATK
SuratPengajuanPembelianI
nventaris
NoSPPInventaris
TglPengajuanSPPInventari
s
NoSPPInventaris
PersetujuanSPPATK NoSuratPersetujuanSPPAT
K
TglPersetujuanATK
NoSuratPersetujuanSPP
ATK
PersetujuanSPPInventaris NoSuratPersetujuanSPPInv
entaris
TglPersetujuanInventaris
NoSuratPersetujuanSPPI
nventaris
BonSementaraPembelianA NoBonSementaraPembelia
nATK
NoBonSementaraPembe
lianATK
159
TK Tanggal
BonSementaraPembelianIn
ventaris
NoBonSementaraPembelia
nInventaris
Tanggal
NoBonSementaraPembe
lianInventaris
PembelianATK NoNPATK
TglPembelianATK
NoNPATK
PembelianInventaris NoNPInventaris
TglPembelianInventaris
NoNPInventaris
BuktiKasMasuk NoBKM
Tanggal
NoBKM
BuktiKasKeluarATK NoBKKATK
Tanggal
NoBKKATK
BuktiKasKeluarInventaris NoBKKInventaris
Tanggal
NoBKKInventaris
Toko KodeToko
NamaToko
KodeToko
PeminjamanInventaris NoSuratPeminjaman
TglPinjam
NoSuratPeminjaman
PengembalianInventaris KodePengembalian
NoSuratPeminjaman
TglKembali
KodePengembalian
Tabel 4.27. Candidate dan Primary Key dari Entitas
160
Gambar 4.2. Diagram ER dengan Penambahan Atribut Primary Key
161
4.1.1.6. Validasi Model Konseptual Lokal Terhadap Transaksi Pengguna
Untuk memastikan bahwa rancangan konseptual dari basis data
yang sedang dibangun dapat mendukung transaksi yang dibutuhkan oleh
pengguna, digunakan dua buah pendekatan:
• Mendeskripsikan transaksi
• Menggambarkan panah transaksi pada Diagram ER
Transaksi pengguna yang telah diidentifikasi adalah sebagai berikut:
(a) Memasukkan dan mengubah data karyawan.
(b) Memasukkan dan mengubah data toko.
(c) Memasukkan dan mengubah data divisi.
(d) Memasukkan dan mengubah data jabatan.
(e) Mendapatkan barang inventaris yang sudah diregistrasi dan nomor
registrasi barang inventaris berdasarkan kode inventarisnya.
(f) Mendapatkan informasi mengenai data karyawan berdasarkan
jabatannya.
(g) Mendapatkan informasi mengenai data pemakaian ATK oleh
karyawan.
(h) Mendapatkan informasi mengenai data pemakaian Inventaris oleh
karyawan.
(i) Mendapatkan informasi mengenai surat pengajuan pembelian ATK
yang telah disetujui.
162
(j) Mendapatkan informasi mengenai surat pengajuan pembelian
Inventaris yang telah disetujui.
(k) Mendapatkan informasi mengenai dana yang diterima atas
persetujuan pembelian Inventaris.
(l) Mendapatkan informasi kelompok barang Inventaris yang dibeli
berdasarkan Nota Pembelian Inventaris.
(m) Mendapatkan barang ATK yang dibeli berdasarkan Nota Pembelian
ATK.
(n) Mendapatkan barang Inventaris yang dipinjam.
(o) Mendapatkan informasi biaya pengeluaran kas kecil atas pembelian
barang ATK.
(p) Mendapatkan informasi biaya pengeluaran kas besar atas pembelian
barang Inventaris.
(q) Mendapatkan informasi toko atas pembelian Inventaris.
(r) Mendapatkan informasi toko atas pembelian ATK.
(s) Mendapatkan informasi jabatan berdasarkan divisinya.
(t) Mendapatkan informasi barang Inventaris berdasarkan kelompoknya.
(u) Mendapatkan informasi bon sementara pembelian ATK atas
persetujuan SPP ATK.
(v) Mendapatkan informasi bon sementara pembelian Inventaris atas
bukti kas masuk.
(w) Mendapatkan informasi pengajuan pembelian barang ATK atas
barang-barang yang diajukan.
163
(x) Mendapatkan informasi pengajuan pembelian barang Inventaris atas
barang-barang yang diajukan.
(y) Mendapatkan informasi peminjaman barang Inventaris dan
karyawan yang menanganinya.
(z) Mendapatkan informasi pengembalian barang Inventaris atas
peminjaman yang sebelumnya dilakukan.
164
165
Gambar 4.3. Diagram ER yang Menggambarkan Relasi Antar Entitas dengan Ditambahkannya Jalur Arah Transaksi (Pathways)
4.1.2. Perancangan Logikal
Perancangan basis data logikal merupakan suatu proses pembuatan model
dengan menggunakan informasi yang diperoleh dari perusahaan serta
berdasarkan pada model data spesifik. Tahapan dalam perancangan basis data
logikal yaitu:
1. Menghilangkan fitur yang tidak kompatibel dengan relasional model
2. Membuat relasi untuk model logikal data lokal
3. Validasi relasi menggunakan normalisasi
4. Menentukan referential integrity constraint
5. Membuat model logikal data global
6. Validasi model logikal data global
4.1.2.1. Menghilangkan Fitur yang Tidak Kompatibel dengan Relational
Model
Tujuan dari langkah ini adalah untuk memperbaiki data model
konseptual lokal dengan menghilangkan fitur yang tidak kompatibel
dengan model relasional.
Langkah-langkahnya adalah sebagai berikut:
1. Menghilangkan tipe relasi many-to-many (*..*)
2. Menghilangkan atribut multi-valued
4.1.2.1.1. Menghilangkan Tipe Relasi many-to-many(*..*)
166
Pada model konseptual, terdapat beberapa relasi biner many
to many yang tidak kompatibel dengan model relasional, sehingga
harus dihilangkan dengan cara mendekomposisi relasi many-to-
many tersebut dan membangun dua buah relasi 1..* (one-to-many)
terhadap suatu entitas baru.
Berikut ini adalah proses penghilangan relasi many-to-many
yang terdapat pada entitas:
Gambar 4.4. Menghilangkan relasi many-to-many pada entitas PembelianATK dan BarangATK
Gambar 4.5. Menghilangkan relasi many-to-many pada entitas PembelianInventaris dan KelompokBarangInventaris
167
Gambar 4.6. Menghilangkan relasi many-to-many pada entitas BarangInventaris dan PeminjamanInventaris
Gambar 4.7. Menghilangkan relasi many-to-many pada entitas BarangInventaris dan
PengembalianInventaris
168
Gambar 4.8. Menghilangkan relasi many-to-many pada entitas KelompokBarangInventaris dan SuratPengajuanPembelianInventaris
Gambar 4.9. Menghilangkan relasi many-to-many pada entitas BarangATK dan SuratPengajuanPembelianATK
169
Gambar 4.10. Menghilangkan relasi many-to-many pada entitas Karyawan dan BarangInventaris
Gambar 4.11. Menghilangkan relasi many-to-many pada entitas Karyawan dan BarangATK
170
Gambar 4.12. Menghilangkan relasi many-to-many pada entitas SuratPengajuanPembelianATK dan PersetujuanSPPATK
Gambar 4.13. Menghilangkan relasi many-to-many pada entitas Karyawan dan PersetujuanSPPInventaris
171
Gambar 4.14. Menghilangkan relasi many-to-many pada entitas SuratPengajuanPembelianInventaris dan PersetujuanSPPInventaris
4.1.2.1.2. Menghilangkan Atribut Multi-valued
Pada model konseptual, terdapat beberapa entitas yang
memiliki atribut dengan nilai banyak, yang tidak kompatibel
dengan model relasional, sehingga harus dihilangkan dengan cara
mendekomposisi atribut multi-valued menjadi sebuah entitas
tersendiri.
Berikut ini adalah gambar proses penghilangan atribut
multi-valued dalam entitas :
Gambar 4.15. Menghilangkan atribut multi-valued pada entitas Karyawan
172
Gambar 4.16. Menghilangkan atribut multi-valued pada entitas Toko
4.1.2.2. Membuat Relasi untuk Model Logikal Data Lokal
Tahap ini bertujuan membuat relasi untuk model data logikal
lokal untuk merepresentasikan entitas, relasi, dan atribut yang telah
diidentifikasi sebelumnya. Dalam tahap ini ditentukan primary key dan
foreign key dari setiap relasi, di mana seiring dengan pengidentifikasian
foreign key maka suatu relasi akan jelas primary key yang menjadi
referensinya.
4.1.2.2.1. Identifikasi Strong Entity dan Weak Entity
• Strong Entity
- BarangATK
- BarangInventaris
- KelompokBarangInventaris
- Karyawan
- TeleponKaryawan
- Jabatan
- Divisi
173
- NomorRegistrasiInventaris
- SuratPengajuanPembelianATK
- SuratPengajuanPembelianInventaris
- PersetujuanSPPATK
- PersetujuanSPPInventaris
- BonSementaraPembelianATK
- BonSementaraPembelianInventaris
- PembelianATK
- PembelianInventaris
- BuktiKasMasuk
- BuktiKasKeluarATK
- BuktiKasKeluarInventaris
- Toko
- TeleponToko
- PeminjamanInventaris
- PengembalianInventaris
• Weak Entity
- DetailPembelianATK
- DetailPembelianInventaris
- DetailPemakaianATK
- DetailPemakaianInventaris
- DetailPeminjamanInventaris
- DetailPengembalianInventaris
174
- DetailPengajuanPembelianATK
- DetailPengajuanPembelianInventaris
- DetailPersetujuanSPPATK
- DetailPersetujuanSPPInventaris
- DetailPersetujuanSPPInventarisOlehKaryawan
- HsStokATK
- HsStokInventaris
4.1.2.2.2. Tipe Relasi one-to-one (1..1)
• Mandatory Participation One Side
175
BarangInventaris (KodeInventaris, NamaInventaris, KodeKelompokInventaris, Status)
Primary key (KodeInventaris)
NomorRegistrasiInventaris (NoRegistrasiInventaris, TglRegistrasi, KodeInventaris)
Primary key (NoRegistrasiInventaris)
Foreign key (KodeInventaris) references BarangInventaris (KodeInventaris)
176
PersetujuanSPPATK (NoSuratPersetujuanSPPATK, NoSPPATK, TglPersetujuan,
KodeKaryawan)
Primary key (NoSuratPersetujuanSPPATK)
BonSementaraPembelianATK (NoBonSementaraPembelianATK, Tanggal, Keterangan,
KodeKaryawan, NoSuratPersetujuanSPPATK, DanaPembelianATK)
Primary key (NoBonSementaraPembelianATK)
Foreign key (NoSuratPersetujuanSPPATK) references PersetujuanSPPATK
(NoSuratPersetujuanSPPATK)
PersetujuanSPPInventaris (NoSuratPersetujuanSPPInventaris, NoSPPInventaris,
TglPersetujuan, KodeKaryawan)
Primary key (NoSuratPersetujuanSPPInventaris)
BuktiKasMasuk (NoBKM, Tanggal, NoSuratPersetujuanSPPInventaris, KodeKaryawan,
DanaPembelianInventaris)
Primary key (NoBKM)
Foreign key (NoSuratPersetujuanSPPInventaris) references PersetujuanSPPInventaris
(NoSuratPersetujuanSPPInventaris)
BonSementaraPembelianInventaris (NoBonSementaraPembelianInventaris, Tanggal,
Keterangan, KodeKaryawan, NoBKM)
Primary key (NoBonSementaraPembelianInventaris)
Foreign key (NoBKM) references BuktiKasMasuk (NoBKM)
PembelianATK (NoNPATK, TglPembelianATK, KodeKaryawan, KodeATK, Qty,
HargaSatuan, KodeToko)
Primary key (NoNPATK)
PembelianInventaris (NoNPInventaris, TglPembelianInventaris, KodeKaryawan,
KodeKelompokInventaris, Qty, HargaSatuan, KodeToko)
177
Primary key (NoNPInventaris)
BuktiKasKeluarATK (NoBKKATK, Tanggal, NoNPATK, KodeKaryawan,
JumlahPengeluaranPembelianATK)
Primary key (NoBKKATK)
Foreign key (NoNPATK) references PembelianATK (NoNPATK)
BuktiKasKeluarInventaris (NoBKKInventaris, Tanggal, NoNPInventaris, KodeKaryawan,
JumlahPengeluaranPembelianInventaris)
Primary key (NoBKKInventaris)
Foreign key (NoNPInventaris) references PembelianInventaris (NoNPInventaris)
Tabel 4.28. Skema Relasi Biner One to One
4.1.2.2.3. Tipe Relasi one-to-many (1..*)
178
179
180
181
Divisi (KodeDivisi, NamaDivisi)
Primary key (KodeDivisi)
Jabatan (KodeJabatan, NamaJabatan, KodeDivisi)
Primary key (KodeJabatan)
Foreign key (KodeDivisi) references Divisi (KodeDivisi)
Karyawan (KodeKaryawan, NamaKaryawan, Alamat, KodePos, Daerah, TeleponKaryawan,
JenisKelamin, TglLahir, KodeJabatan, Username, Password, Photo)
Primary key (KodeKaryawan)
Foreign key (KodeJabatan) references Jabatan (KodeJabatan)
182
KelompokBarangInventaris (KodeKelompokInventaris, NamaKelompokInventaris,
JumlahStok)
Primary key (KodeKelompokInventaris)
BarangInventaris (KodeInventaris, NamaInventaris, KodeKelompokInventaris, Status)
Primary key (KodeInventaris)
Foreign key (KodeKelompokInventaris) references KelompokBarangInventaris
(KodeKelompokInventaris)
Toko (KodeToko, NamaToko, Alamat, KodePos, Daerah, TeleponToko)
Primary key (KodeToko)
PembelianATK (NoNPATK, TglPembelianATK, KodeKaryawan, KodeATK, Qty,
HargaSatuan, KodeToko)
Primary key (NoNPATK)
Foreign key (KodeKaryawan) references Karyawan (KodeKaryawan)
Foreign key (KodeToko) references Toko (KodeToko)
PembelianInventaris (NoNPInventaris, TglPembelianInventaris, KodeKaryawan,
KodeKelompokInventaris, KodeToko, Qty, HargaSatuan)
Primary key (NoNPInventaris)
Foreign key (KodeKaryawan) references Karyawan (KodeKaryawan)
Foreign key (KodeToko) references Toko (KodeToko)
BuktiKasKeluarInventaris (NoBKKInventaris, Tanggal, NoNPInventaris, KodeKaryawan,
JumlahPengeluaranPembelianInventaris)
Primary key (NoBKKInventaris)
Foreign key (KodeKaryawan) references Karyawan (KodeKaryawan)
Foreign key (NoNPInventaris) references PembelianInventaris (NoNPInventaris)
BuktiKasKeluarATK (NoBKKATK, Tanggal, NoNPATK, KodeKaryawan,
183
JumlahPengeluaranPembelianATK)
Primary key (NoBKKATK)
Foreign key (KodeKaryawan) references Karyawan (KodeKaryawan)
Foreign key (NoNPATK) references PembelianATK (NoNPATK)
SuratPengajuanPembelianATK (NoSPPATK, TglPengajuanSPPATK, Keperluan,
KodeKaryawan, KodeATK, Qty, PerkiraanHarga, StatusPersetujuan)
Primary key (NoSPPATK)
Foreign key (KodeKaryawan) references Karyawan (KodeKaryawan)
SuratPengajuanPembelianInventaris (NoSPPInventaris, TglPengajuanSPPInventaris,
Keperluan, KodeKelompokInventaris, KodeKaryawan, Qty, PerkiraanHarga, StatusPersetujuan)
Primary key (NoSPPInventaris)
Foreign key (KodeKaryawan) references Karyawan (KodeKaryawan)
PersetujuanSPPATK (NoSuratPersetujuanSPPATK, NoSPPATK, TglPersetujuan,
KodeKaryawan)
Primary key (NoSuratPersetujuanSPPATK)
Foreign key (KodeKaryawan) references Karyawan (KodeKaryawan)
BonSementaraPembelianATK (NoBonSementaraPembelianATK, Tanggal, Keterangan,
KodeKaryawan, NoSuratPersetujuanSPPATK, DanaPembelianATK)
Primary key (NoBonSementaraPembelianATK)
Foreign key (KodeKaryawan) references Karyawan (KodeKaryawan)
Foreign key (NoSuratPersetujuanSPPATK) references PersetujuanSPPATK
(NoSuratPersetujuanSPPATK)
BonSementaraPembelianInventaris (NoBonSementaraPembelianInventaris, Tanggal,
Keterangan, KodeKaryawan, NoBKM)
Primary key (NoBonSementaraPembelianInventaris)
184
Foreign key (KodeKaryawan) references Karyawan (KodeKaryawan)
Foreign key (NoBKM) references BuktiKasMasuk (NoBKM)
BuktiKasMasuk (NoBKM, Tanggal, NoSuratPersetujuanSPPInventaris, KodeKaryawan,
DanaPembelianInventaris)
Primary key (NoBKM)
Foreign key (NoSuratPersetujuanSPPInventaris) references PersetujuanSPPInventaris
(NoSuratPersetujuanSPPInventaris)
Foreign key (KodeKaryawan) references Karyawan (KodeKaryawan)
PeminjamanInventaris (NoSuratPeminjaman, TglPinjam, NoSuratPengantarPeminjaman,
Perihal, NamaPeminjam, NamaPerusahaanPeminjam, KodeKaryawan, KodeInventaris)
Primary key (NoSuratPeminjaman)
Foreign key (KodeKaryawan) references Karyawan (KodeKaryawan)
PengembalianInventaris (KodePengembalian, NoSuratPeminjaman, TglKembali,
NamaPengembali, KodeKaryawan, KodeInventaris)
Primary key (KodePengembalian)
Foreign key (KodeKaryawan) references Karyawan (KodeKaryawan)
Foreign key (NoSuratPeminjaman) references PeminjamanInventaris (NoSuratPeminjaman)
BarangATK (KodeATK, NamaATK, Satuan, JumlahStok, InsertedDatetime)
Primary key (KodeATK)
HsStokATK (KodeATK, InsertedDatetime, JumlahStok)
Primary key (KodeATK, InsertedDatetime)
Foreign key (KodeATK) references BarangATK(KodeATK)
HsStokInventaris (KodeKelompokInventaris, InsertedDatetime, JumlahStok)
Primary key (KodeKelompokInventaris, InsertedDatetime)
Foreign key (KodeKelompokInventaris) references
185
KelompokBarangInventaris(KodeKelompokInventaris)
Tabel 4.29. Skema Relasi Biner One to Many
4.1.2.2.4. Tipe Relasi many-to-many (*..*)
186
187
188
189
BarangATK (KodeATK, NamaATK, Satuan, JumlahStok, InsertedDatetime)
Primary key (KodeATK)
PembelianATK (NoNPATK, TglPembelianATK, KodeKaryawan, KodeToko)
Primary key (NoNPATK)
Foreign key (KodeKaryawan) references Karyawan (KodeKaryawan)
Foreign key (KodeToko) references Toko (KodeToko)
DetailPembelianATK (NoNPATK, KodeATK, Qty, HargaSatuan)
Primary key (NoNPATK, KodeATK)
Foreign key (NoNPATK) references PembelianATK (NoNPATK)
Foreign key (KodeATK) references BarangATK (KodeATK)
KelompokBarangInventaris (KodeKelompokInventaris, NamaKelompokInventaris,
JumlahStok, InsertedDatetime)
Primary key (KodeKelompokInventaris)
PembelianInventaris (NoNPInventaris, TglPembelianInventaris, KodeKaryawan, KodeToko)
Primary key (NoNPInventaris)
Foreign key (KodeKaryawan) references Karyawan (KodeKaryawan)
Foreign key (KodeToko) references Toko (KodeToko)
DetailPembelianInventaris (NoNPInventaris, KodeKelompokInventaris, Qty, HargaSatuan)
Primary key (NoNPInventaris, KodeKelompokInventaris)
Foreign key (NoNPInventaris) references PembelianInventaris (NoNPInventaris)
Foreign key (KodeKelompokInventaris) references KelompokBarangInventaris
(KodeKelompokInventaris)
BarangInventaris (KodeInventaris, NamaInventaris, KodeKelompokInventaris, Status)
Primary key (KodeInventaris)
190
Foreign key (KodeKelompokInventaris) references KelompokBarangInventaris
(KodeKelompokInventaris)
PeminjamanInventaris (NoSuratPeminjaman, TglPinjam, NoSuratPengantarPeminjaman,
Perihal, NamaPeminjam, NamaPerusahaanPeminjam, KodeKaryawan)
Primary key (NoSuratPeminjaman)
Foreign key (KodeKaryawan) references Karyawan (KodeKaryawan)
DetailPeminjamanInventaris (NoSuratPeminjaman, KodeInventaris, StatusPeminjaman)
Primary key (NoSuratPeminjaman, KodeInventaris)
Foreign key (NoSuratPeminjaman) references PeminjamanInventaris (NoSuratPeminjaman)
Foreign key (KodeInventaris) references BarangInventaris (KodeInventaris)
PengembalianInventaris (KodePengembalian, NoSuratPeminjaman, TglKembali,
NamaPengembali, KodeKaryawan)
Primary key (KodePengembalian)
Foreign key (KodeKaryawan) references Karyawan (KodeKaryawan)
Foreign key (NoSuratPeminjaman) references PeminjamanInventaris (NoSuratPeminjaman)
DetailPengembalianInventaris (KodePengembalian, KodeInventaris)
Primary key (KodePengembalian, KodeInventaris)
Foreign key (KodePengembalian) references PengembalianInventaris (KodePengembalian)
Foreign key (KodeInventaris) references BarangInventaris (KodeInventaris)
SuratPengajuanPembelianInventaris (NoSPPInventaris, TglPengajuanSPPInventaris,
Keperluan, KodeKaryawan, StatusPersetujuan)
Primary key (NoSPPInventaris)
Foreign key (KodeKaryawan) references Karyawan (KodeKaryawan)
DetailPengajuanPembelianInventaris (NoSPPInventaris, KodeKelompokInventaris, Qty,
PerkiraanHarga)
191
Primary key (NoSPPInventaris, KodeKelompokInventaris)
Foreign key (NoSPPInventaris) references SuratPengajuanPembelianInventaris
(NoSPPInventaris)
Foreign key (KodeKelompokInventaris) references KelompokBarangInventaris
(KodeKelompokInventaris)
SuratPengajuanPembelianATK (NoSPPATK, TglPengajuanSPPATK, Keperluan,
KodeKaryawan, StatusPersetujuan)
Primary key (NoSPPATK)
Foreign key (KodeKaryawan) references Karyawan (KodeKaryawan)
DetailPengajuanPembelianATK (NoSPPATK, KodeATK, Qty, PerkiraanHarga)
Primary key (NoSPPATK, KodeATK)
Foreign key (NoSPPATK) references SuratPengajuanPembelianATK (NoSPPATK)
Foreign key (KodeATK) references BarangATK (KodeATK)
DetailPemakaianInventaris (KodeInventaris, KodeKaryawan, TglPemakaian, Lokasi)
Primary key (KodeInventaris, KodeKaryawan)
Foreign key (KodeInventaris) references BarangInventaris (KodeInventaris)
Foreign key (KodeKaryawan) references Karyawan (KodeKaryawan)
DetailPemakaianATK (KodeATK, KodeKaryawan, TglPemakaian, Qty)
Primary key (KodeATK, KodeKaryawan, TglPemakaian)
Foreign key (KodeATK) references BarangATK (KodeATK)
Foreign key (KodeKaryawan) references Karyawan (KodeKaryawan)
PersetujuanSPPATK (NoSuratPersetujuanSPPATK, TglPersetujuan, KodeKaryawan)
Primary key (NoSuratPersetujuanSPPATK)
Foreign key (KodeKaryawan) references Karyawan (KodeKaryawan)
DetailPersetujuanSPPATK (NoSuratPersetujuanSPPATK, NoSPPATK)
192
Primary key (NoSuratPersetujuanSPPATK, NoSPPATK)
Foreign key (NoSuratPersetujuanSPPATK) references PersetujuanSPPATK
(NoSuratPersetujuanSPPATK)
Foreign key (NoSPPATK) references SuratPengajuanPembelianATK (NoSPPATK)
PersetujuanSPPInventaris (NoSuratPersetujuanSPPInventaris, TglPersetujuan)
Primary key (NoSuratPersetujuanSPPInventaris)
DetailPersetujuanSPPInventaris (NoSuratPersetujuanSPPInventaris, NoSPPInventaris)
Primary key (NoSuratPersetujuanSPPInventaris, NoSPPInventaris)
Foreign key (NoSuratPersetujuanSPPInventaris) references PersetujuanSPPInventaris
(NoSuratPersetujuanSPPInventaris)
Foreign key (NoSPPInventaris) references SuratPengajuanPembelianInventaris
(NoSPPInventaris)
DetailPersetujuanSPPInventarisOlehKaryawan (NoSuratPersetujuanSPPInventaris,
KodeKaryawan)
Primary key (NoSuratPersetujuanSPPInventaris, KodeKaryawan)
Foreign key (NoSuratPersetujuanSPPInventaris) references PersetujuanSPPInventaris
(NoSuratPersetujuanSPPInventaris)
Foreign key (KodeKaryawan) references Karyawan (KodeKaryawan)
Tabel 4.30. Skema Relasi Biner Many to Many
4.1.2.2.5. Atribut Multi-valued
193
Karyawan (KodeKaryawan, NamaKaryawan, Alamat, KodePos, Daerah, JenisKelamin,
TglLahir, KodeJabatan, Username, Password, Photo)
Primary key (KodeKaryawan)
Foreign key (KodeJabatan) references Jabatan (KodeJabatan)
TeleponKaryawan (TeleponKaryawan, KodeKaryawan)
Primary key (TeleponKaryawan)
Foreign key (KodeKaryawan) references Karyawan (KodeKaryawan)
Toko (KodeToko, NamaToko, Alamat, KodePos, Daerah)
Primary key (KodeToko)
TeleponToko (TeleponToko, KodeToko)
Primary key (TeleponToko)
Foreign key (KodeToko) references Toko (KodeToko)
Tabel 4.31. Skema Relasi Atribut Multi-valued
4.1.2.3. Validasi Relasi Menggunakan Normalisasi
194
Pada langkah sebelumnya telah didapat skema relasi yang telah
memenuhi bentuk normal pertama (1NF) dan normal kedua (2NF).
Namun masih terdapat beberapa ketergantungan transitif (transitive
dependency) yang perlu dihilangkan sehingga diperoleh skema relasi
yang mencapai bentuk normal ketiga (3NF). Berikut adalah langkah-
langkah normalisasi untuk memperoleh bentuk 3NF. Berikut adalah
langkah-langkah normalisasi untuk memperoleh bentuk 3NF.
Gambar 4.17. Ketergantungan transitif antara kode pos dan daerah yang harus dihilangkan
Ketergantungan transitif pada Gambar 4.17 dihilangkan dengan
mendekomposisi tabel sehingga didapat tabel sebagai berikut:
195
Gambar 4.18. Ketergantungan transitif antara kode pos dan daerah yang sudah dihilangkan
4.1.2.4. Menentukan Referential Integrity Constraint
Referential Integrity Constraint adalah batasan yang akan
ditentukan dengan tujuan untuk mencegah basis data dari
ketidakkonsistenan.
• Attribute Domain Constraints
Setiap atribut memiliki domain, yaitu sekumpulan nilai yang
diperbolehkan.
o Tanggal / TglPembelianATK / TglPembelianInventaris /
TglRegistrasi / TglPinjam / TglKembali / TglLahir /
TglPemakaian / TglPersetujuan / TglPengajuanSPPInventaris /
TglPengajuanSPPATK bernilai: YYYY-MM-DD
o HargaSatuan / PerkiraanHarga bernilai: Rp. xxx.xxx.xxx.xxx
o KodePos bernilai: xxxxx
o Satuan bernilai: buah, unit, bungkus
o TeleponToko / TeleponKaryawan bernilai: xxxxxxxxxxxxxxx
196
• Entity Integrity
Sebuah primary key dari entitas tidak boleh mengandung nilai NULL.
Constraints ini seharusnya telah dipertimbangkan ketika
mengidentifikasikan primary key untuk setiap tipe entitas.
o Primary key tidak boleh NULL
o Foreign key harus memiliki pasangan primary key yang cocok
o Alamat tidak boleh NULL
o Telepon harus berupa angka
• Referential Integrity
Referential integrity artinya bila foreign key berisi sebuah nilai, nilai
itu harus menunjuk ke entitas yang ada pada relasi parent-nya.
1. BarangInventaris
BarangInventaris (KodeInventaris, NamaInventaris,
KodeKelompokInventaris, Status)
Primary Key (KodeInventaris)
Foreign Key (KodeKelompokInventaris) references
KelompokBarangInventaris (KodeKelompokInventaris) ON
UPDATE CASCADE ON DELETE NO ACTION
2. Karyawan
197
Karyawan (KodeKaryawan, NamaKaryawan, Alamat, KodePos,
JenisKelamin, TglLahir, KodeJabatan, Username, Password,
Photo)
Primary Key (KodeKaryawan)
Foreign Key (KodeJabatan) references Jabatan (KodeJabatan)
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key (KodePos) references Pos (KodePos) ON UPDATE
CASCADE ON DELETE NO ACTION
3. Jabatan
Jabatan (KodeJabatan, NamaJabatan, KodeDivisi)
Primary Key (KodeJabatan)
Foreign Key (KodeDivisi) references Divisi (KodeDivisi) ON
UPDATE CASCADE ON DELETE NO ACTION
4. TeleponToko
TeleponToko (TeleponToko, KodeToko)
Primary Key (TeleponToko)
Foreign Key (KodeToko) references Toko (KodeToko) ON
UPDATE CASCADE ON DELETE NO ACTION
5. TeleponKaryawan
Telepon Karyawan (TeleponKaryawan, KodeKaryawan)
Primary Key (TeleponKaryawan)
Foreign Key (KodeKaryawan) references Karyawan
(KodeKaryawan) ON UPDATE CASCADE ON DELETE NO
ACTION
198
6. NomorRegistrasiInventaris
NomorRegistrasiInventaris (NoRegistrasiInventaris,
TglRegistrasi, KodeInventaris)
Primary Key (NoRegistrasiInventaris)
Foreign Key (KodeInventaris) references BarangInventaris
(KodeInventaris) ON UPDATE CASCADE ON DELETE NO
ACTION
7. SuratPengajuanPembelianInventaris
SuratPengajuanPembelianInventaris (NoSPPInventaris,
TglPengajuanSPPInventaris, Keperluan, KodeKaryawan,
StatusPersetujuan)
Primary Key (NoSPPInventaris)
Foreign Key (KodeKaryawan) references Karyawan
(KodeKaryawan) ON UPDATE CASCADE ON DELETE NO
ACTION
8. DetailPengajuanPembelianInventaris
DetailPengajuanPembelianInventaris (NoSPPInventaris,
KodeKelompokInventaris, Qty, PerkiraanHarga)
Primary Key (NoSPPInventaris, KodeKelompokInventaris)
Foreign Key (NoSPPInventaris) references
SuratPengajuanPembelianInventaris (NoSPPInventaris) ON
UPDATE CASCADE ON DELETE NO ACTION
199
Foreign Key (KodeKelompokInventaris) references
KelompokBarangInventaris (KodeKelompokInventaris) ON
UPDATE CASCADE ON DELETE NO ACTION
9. DetailPersetujuanSPPInventaris
DetailPersetujuanSPPInventaris
(NoSuratPersetujuanSPPInventaris, NoSPPInventaris)
Primary Key (NoSuratPersetujuanSPPInventaris,
NoSPPInventaris)
Foreign Key (NoSuratPersetujuanSPPInventaris) references
PersetujuanSPPInventaris (NoSuratPersetujuanSPPInventaris) ON
UPDATE CASCADE ON DELETE NO ACTION
Foreign Key (NoSPPInventaris) references
SuratPengajuanPembelianInventaris (NoSPPInventaris) ON
UPDATE CASCADE ON DELETE NO ACTION
10. DetailPersetujuanSPPInventarisOlehKaryawan
DetailPersetujuanSPPInventarisOlehKaryawan
(KodeKaryawan, NoSuratPersetujuanSPPInventaris)
Primary Key (KodeKaryawan,
NoSuratPersetujuanSPPInventaris)
Foreign Key (NoSuratPersetujuanSPPInventaris) references
PersetujuanSPPInventaris (NoSuratPersetujuanSPPInventaris) ON
UPDATE CASCADE ON DELETE NO ACTION
200
Foreign Key (KodeKaryawan) references Karyawan
(KodeKaryawan) ON UPDATE CASCADE ON DELETE NO
ACTION
11. BonSementaraPembelianInventaris
BonSementaraPembelianInventaris
(NoBonSementaraPembelianInventaris, Tanggal, Keterangan,
KodeKaryawan, NoBKM)
Primary Key (NoBonSementaraPembelianInventaris)
Foreign Key (KodeKaryawan) references Karyawan
(KodeKaryawan) ON UPDATE CASCADE ON DELETE NO
ACTION
Foreign Key (NoBKM) references BuktiKasMasuk (NoBKM)
ON UPDATE CASCADE ON DELETE NO ACTION
12. PembelianInventaris
PembelianInventaris (NoNPInventaris, TglPembelianInventaris,
KodeToko, KodeKaryawan)
Primary Key (NoNPInventaris)
Foreign Key (KodeToko) references Toko (KodeToko) ON
UPDATE CASCADE ON DELETE NO ACTION
Foreign Key (KodeKaryawan) references Karyawan
(KodeKaryawan) ON UPDATE CASCADE ON DELETE NO
ACTION
13. DetailPembelianInventaris
201
DetailPembelianInventaris (NoNPInventaris,
KodeKelompokInventaris, Qty, HargaSatuan)
Primary Key (NoNPInventaris, KodeKelompokInventaris)
Foreign Key (NoNPInventaris) references PembelianInventaris
(NoNPInventaris) ON UPDATE CASCADE ON DELETE NO
ACTION
Foreign Key (KodeKelompokInventaris) references
KelompokBarangInventaris (KodeKelompokInventaris) ON
UPDATE CASCADE ON DELETE NO ACTION
14. BuktiKasKeluarInventaris
BuktiKasKeluarInventaris (NoBKKInventaris, Tanggal,
KodeKaryawan, NoNPInventaris,
JumlahPengeluaranPembelianInventaris)
Primary Key (NoBKKInventaris)
Foreign Key (NoNPInventaris) references PembelianInventaris
(NoNPInventaris) ON UPDATE CASCADE ON DELETE NO
ACTION
Foreign Key (KodeKaryawan) references Karyawan
(KodeKaryawan) ON UPDATE CASCADE ON DELETE NO
ACTION
15. DetailPemakaianInventaris
DetailPemakaianInventaris (KodeInventaris, KodeKaryawan,
TglPemakaian, Lokasi)
Primary Key (KodeInventaris, KodeKaryawan)
202
Foreign Key (KodeInventaris) references BarangInventaris
(KodeInventaris) ON UPDATE CASCADE ON DELETE NO
ACTION
Foreign Key (KodeKaryawan) references Karyawan
(KodeKaryawan) ON UPDATE CASCADE ON DELETE NO
ACTION
16. PeminjamanInventaris
PeminjamanInventaris (NoSuratPeminjaman, TglPinjam,
NoSuratPengantarPeminjaman, Perihal, NamaPeminjam,
NamaPerusahaanPeminjam, KodeKaryawan)
Primary Key (NoSuratPeminjaman)
Foreign Key (KodeKaryawan) references Karyawan
(KodeKaryawan) ON UPDATE CASCADE ON DELETE NO
ACTION
17. DetailPeminjamanInventaris
DetailPeminjamanInventaris (NoSuratPeminjaman,
KodeInventaris, StatusPeminjaman)
Primary Key (NoSuratPeminjaman, KodeInventaris)
Foreign Key (NoSuratPeminjaman) references
PeminjamanInventaris (NoSuratPeminjaman) ON UPDATE
CASCADE ON DELETE NO ACTION
Foreign Key (KodeInventaris) references BarangInventaris
(KodeInventaris) ON UPDATE CASCADE ON DELETE NO
ACTION
203
18. PengembalianInventaris
PengembalianInventaris (KodePengembalian,
NoSuratPeminjaman, TglKembali, NamaPengembali,
KodeKaryawan)
Primary Key (KodePengembalian)
Foreign Key (NoSuratPeminjaman) references
PeminjamanInventaris (NoSuratPeminjaman) ON UPDATE
CASCADE ON DELETE NO ACTION
Foreign Key (KodeKaryawan) references Karyawan
(KodeKaryawan) ON UPDATE CASCADE ON DELETE NO
ACTION
19. DetailPengembalianInventaris
DetailPengembalianInventaris (KodePengembalian,
KodeInventaris)
Primary Key (KodePengembalian, KodeInventaris)
Foreign Key (KodePengembalian) references
PengembalianInventaris (KodePengembalian) ON UPDATE
CASCADE ON DELETE NO ACTION
Foreign Key (KodeInventaris) references BarangInventaris
(KodeInventaris) ON UPDATE CASCADE ON DELETE NO
ACTION
20. BuktiKasMasuk
BuktiKasMasuk (NoBKM, Tanggal, KodeKaryawan,
NoSuratPersetujuanSPPInventaris, DanaPembelianInventaris)
204
Primary Key (NoBKM)
Foreign Key (KodeKaryawan) references Karyawan
(KodeKaryawan) ON UPDATE CASCADE ON DELETE NO
ACTION
Foreign Key (NoSuratPersetujuanSPPInventaris) references
PersetujuanSPPInventaris (NoSuratPersetujuanSPPInventaris) ON
UPDATE CASCADE ON DELETE NO ACTION
21. SuratPengajuanPembelianATK
SuratPengajuanPembelianATK (NoSPPATK,
TglPengajuanSPPATK, Keperluan, KodeKaryawan,
StatusPersetujuan)
Primary Key (NoSPPATK)
Foreign Key (KodeKaryawan) references Karyawan
(KodeKaryawan) ON UPDATE CASCADE ON DELETE NO
ACTION
22. DetailPengajuanPembelianATK
DetailPengajuanPembelianATK (NoSPPATK, KodeATK, Qty,
PerkiraanHarga)
Primary Key (NoSPPATK, KodeATK)
Foreign Key (NoSPPATK) references
SuratPengajuanPembelianATK (NoSPPATK) ON UPDATE
CASCADE ON DELETE NO ACTION
Foreign Key (KodeATK) references BarangATK (KodeATK)
ON UPDATE CASCADE ON DELETE NO ACTION
205
23. PersetujuanSPPATK
PersetujuanSPPATK (NoSuratPersetujuanSPPATK,
TglPersetujuan, KodeKaryawan)
Primary key (NoSuratPersetujuanSPPATK)
Foreign key (KodeKaryawan) references Karyawan
(KodeKaryawan) ON UPDATE CASCADE ON DELETE NO
ACTION
24. DetailPersetujuanSPPATK
DetailPersetujuanSPPATK (NoSuratPersetujuanSPPATK,
NoSPPATK)
Primary Key (NoSuratPersetujuanSPPATK, NoSPPATK)
Foreign Key (NoSuratPersetujuanSPPATK) references
PersetujuanSPPATK (NoSuratPersetujuanSPPATK) ON
UPDATE CASCADE ON DELETE NO ACTION
Foreign Key (NoSPPATK) references
SuratPengajuanPembelianATK (NoSPPATK) ON UPDATE
CASCADE ON DELETE NO ACTION
25. BonSementaraPembelianATK
BonSementaraPembelianATK
(NoBonSementaraPembelianATK, Tanggal, Keterangan,
KodeKaryawan, DanaPembelianATK,
NoSuratPersetujuanSPPATK)
Primary Key (NoBonSementaraPembelianATK)
206
Foreign Key (KodeKaryawan) references Karyawan
(KodeKaryawan) ON UPDATE CASCADE ON DELETE NO
ACTION
Foreign Key (NoSuratPersetujuanSPPATK) references
PersetujuanSPPATK (NoSuratPersetujuanSPPATK) ON
UPDATE CASCADE ON DELETE NO ACTION
26. PembelianATK
PembelianATK (NoNPATK, TglPembelianATK, KodeToko,
KodeKaryawan)
Primary Key (NoNPATK)
Foreign Key (KodeToko) references Toko (KodeToko) ON
UPDATE CASCADE ON DELETE NO ACTION
Foreign Key (KodeKaryawan) references Karyawan
(KodeKaryawan) ON UPDATE CASCADE ON DELETE NO
ACTION
27. DetailPembelianATK
DetailPembelianATK (NoNPATK, KodeATK, Qty,
HargaSatuan)
Primary Key (NoNPATK, KodeATK)
Foreign Key (NoNPATK) references PembelianATK
(NoNPATK) ON UPDATE CASCADE ON DELETE NO
ACTION
Foreign Key (KodeATK) references BarangATK (KodeATK)
ON UPDATE CASCADE ON DELETE NO ACTION
207
28. BuktiKasKeluarATK
BuktiKasKeluarATK (NoBKKATK, Tanggal, KodeKaryawan,
NoNPATK, JumlahPengeluaranPembelianATK)
Primary Key (NoBKKATK)
Foreign Key (KodeKaryawan) references Karyawan
(KodeKaryawan) ON UPDATE CASCADE ON DELETE NO
ACTION
Foreign Key (NoNPATK) references PembelianATK
(NoNPATK) ON UPDATE CASCADE ON DELETE NO
ACTION
29. DetailPemakaianATK
DetailPemakaianATK (KodeATK, KodeKaryawan,
TglPemakaian, Qty)
Primary Key (KodeATK, KodeKaryawan, TglPemakaian)
Foreign Key (KodeATK) references BarangATK (KodeATK)
ON UPDATE CASCADE ON DELETE NO ACTION
Foreign Key (KodeKaryawan) references Karyawan
(KodeKaryawan) ON UPDATE CASCADE ON DELETE NO
ACTION
30. Toko
Toko (KodeToko, NamaToko, Alamat, KodePos)
Primary Key (KodeToko)
Foreign Key (KodePos) references Pos (KodePos) ON UPDATE
CASCADE ON DELETE NO ACTION
208
31. HsStokATK
HsStokATK (KodeATK, InsertedDatetime, JumlahStok)
Primary key (KodeATK, InsertedDatetime)
Foreign key (KodeATK) references BarangATK (KodeATK)
ON UPDATE CASCADE ON DELETE NO ACTION
32. HsStokInventaris
HsStokInventaris (KodeKelompokInventaris, InsertedDatetime,
JumlahStok)
Primary key (KodeKelompokInventaris, InsertedDatetime)
Foreign key (KodeKelompokInventaris) references
KelompokBarangInventaris (KodeKelompokInventaris) ON
UPDATE CASCADE ON DELETE NO ACTION
4.1.2.5. Membuat Model Logikal Data Global
Model logikal data global didapat melalui penggabungan model
logikal data lokal. Berikut adalah gambar diagram ER Logikal.
209
Gambar 4.19. Diagram ER Logikal dengan Primary key dan Foreign key
210
Gambar 4.20. Diagram ER Logikal dengan Semua Atribut
211
4.1.2.6. Validasi Model Logikal Data Global
Untuk memastikan bahwa rancangan logikal basis data dapat
mendukung transaksi yang dibutuhkan oleh pengguna, maka dilakukan
validasi terhadap model logikal data global.
212
1..1
1..1
1..*
1..1mencakup
1..*
1..1
1..*mencakup
1..*mencakup
1..1
memilikiterlibat dalam
terlibat dalam
memakai
menyetujui
terdapat dalam
mencakup
1..1
dipunyai
1..1
1..*
1..*1..1
1..*
1..1
menyusun
mencakup
0..11..1
1..1
ada dalam
1..*
1..1
mencakup
1..11..1 0..*1..1
memiliki
1..1menghasilkan
1..*
1..1 1..*
1..1
mengisi
1..11..*
1..1
1..*
1..1
1..1
1..1
ada dalam
1..1
1..1
1..1
NoSuratPersetujuanSPPATK (PK)
KodeKaryawan (FK)
1..1
1..*
1..*terlibat dalam
menghasilkan
menangani
menghasilkan
0..1
1..*
1..1
1..*
memiliki
menyusun
membuat
1..1
1..*
1..1
1..*
mencakup
1..*
1..1menambah
barang inventaris
0..*
1..*
menyetujui
1..1
1..*
1..*
1..*
menghasilkan1..1
1..1
1..*
1..*
1..*
1..1 1..1
membuat
1..1
1..*
0..*
1..*
1..1
1..1
1..1
mengisi
memakai1..*
1..1
1..1
1..1 1..11..1
1..*
1..*
1..*
1..*
1..*
1..1
1..*
0..*
0..*
1..*
menangani
menangani
membuat
terlibat dalam
1..*1..1
1..1
1..1
Karyawan
SuratPengajuanPembelianATK
SuratPengajuanPembelianInventaris
Toko
KelompokBarangInventaris
BarangATK
BuktiKasMasuk
Jabatan
PembelianATK
PembelianInventaris
BuktiKasKeluarInventaris
PersetujuanSPPATK
PersetujuanSPPInventaris
BonSementaraPembelianATK
NomorRegistrasiInventaris
PeminjamanInventaris
1..*
Divisi
BonSementaraPembelianInventaris
BuktiKasKeluarATK
BarangInventaris
KodeATK (PK) KodeInventaris (PK)KodeKelompokInven
taris (FK)
KodeKaryawan (PK)KodeJabatan (FK)
KodePos (FK)
KodeJabatan (PK)KodeDivisi (FK)
KodeDivisi (PK)
NoRegistrasiInventaris (PK)KodeInventaris (FK)
NoSPPATK (PK)KodeKaryawan (FK)
NoSPPInventaris (PK)KodeKaryawan (FK)
NoSuratPersetujuanSPPInventaris (PK)
NoBonSementaraPembelianATK (PK)
KodeKaryawan (FK)NoSuratPersetujuanSPPA
TK (FK)
NoBonSementaraPembelianInventaris (PK)KodeKaryawan (FK)
NoBKM (FK)
NoNPATK (PK)KodeToko (FK)
KodeKaryawan (FK)
NoNPInventaris (PK)KodeToko (FK)
KodeKaryawan (FK)
NoBKM (PK)KodeKaryawan (FK)
NoSuratPersetujuanSPPInventaris (FK)
NoBKKATK (PK)KodeKaryawan (FK)
NoNPATK (FK)
NoBKKInventaris (PK)KodeKaryawan (FK)NoNPInventaris (FK)
KodeToko (PK)KodePos (FK)
NoSuratPeminjaman (PK) KodeKaryawan (FK)
KodeKelompokInventaris (PK)
1..1
TeleponToko
TeleponToko (PK)KodeToko (FK)
mempunyai
TeleponKaryawan
TeleponKaryawan (PK)
KodeKaryawan (FK)
mempunyai
DetailPeminjamanInventaris
NoSuratPeminjaman (PK, FK)
KodeInventaris (PK, FK)
DetailPembelianATK
NoNPATK (PK, FK)KodeATK (PK, FK)
DetailPembelianInventaris
NoNPInventaris (PK, FK)KodeKelompokInventaris
(PK, FK)
DetailPengajuanPembelianInventaris
NoSPPInventaris (PK, FK)KodeKelompokInventaris
(PK, FK)DetailPengajuanPembelianATK
NoSPPATK (PK, FK)KodeATK (PK, FK)
DetailPemakaianInventaris
KodeInventaris (PK, FK)KodeKaryawan (PK, FK)
DetailPemakaianATKKodeATK (PK, FK)
KodeKaryawan(PK, FK)TglPemakaian (PK)
NoSuratPersetujuanSPPATK (PK, FK)
NoSPPATK (PK, FK)
DetailPersetujuanSPPATK
DetailPersetujuanSPPInventarisOlehKaryawan
NoSuratPersetujuanSPPInventaris (PK, FK)
KodeKaryawan (PK, FK)DetailPersetujuanSPPInve
ntarisNoSuratPersetujuanSPPIn
ventaris (PK, FK)NoSPPInventaris (PK, FK)
Pos
KodePos (PK)
1..1
1..1
1..1
mencakup
mencakup
ada dalam
ada dalam
terdapat dalam
mencakup
mencakup
menambah barang ATK
memiliki
menghasilkan
DetailPengembalianInventaris
KodePengembalian (PK, FK)
KodeInventaris (PK, FK)
PengembalianInventarisKodePengembalian(PK)
NoSuratPeminjaman (FK)KodeKaryawan (FK)
1..1
1..*
menangani
1..*
a
b
c
de
f
g
h
i
j
k
l
m
n
o
p
qr
s
t
uv
w
x
y
z
1..*
HsStokInventarisKodeKelompokInvent
aris (PK, FK)InsertedDatetime
(PK)JumlahStok
mempunyai
1..*
HsStokATK
KodeATK (PK, FK)InsertedDatetime
(PK)JumlahStok
mempunyai
Gambar 4.21. Diagram ER Model Logikal Data Global dengan Jalur Arah Transaksi (Pathways)
213
Keterangan transaksi:
(a) Memasukkan dan mengubah data karyawan.
(b) Memasukkan dan mengubah data toko.
(c) Memasukkan dan mengubah data divisi.
(d) Memasukkan dan mengubah data jabatan.
(e) Mendapatkan barang inventaris yang sudah diregistrasi dan nomor registrasi
barang inventaris berdasarkan kode inventarisnya.
(f) Mendapatkan informasi mengenai data karyawan berdasarkan jabatannya.
(g) Mendapatkan informasi mengenai data pemakaian ATK oleh karyawan.
(h) Mendapatkan informasi mengenai data pemakaian Inventaris oleh karyawan.
(i) Mendapatkan informasi mengenai surat pengajuan pembelian ATK yang telah
disetujui.
(j) Mendapatkan informasi mengenai surat pengajuan pembelian Inventaris yang
telah disetujui.
(k) Mendapatkan informasi mengenai dana yang diterima atas persetujuan
pembelian Inventaris.
(l) Mendapatkan informasi kelompok barang Inventaris yang dibeli berdasarkan
Nota Pembelian Inventaris.
(m) Mendapatkan barang ATK yang dibeli berdasarkan Nota Pembelian ATK.
(n) Mendapatkan barang Inventaris yang dipinjam.
(o) Mendapatkan informasi biaya pengeluaran kas kecil atas pembelian barang
ATK.
214
(p) Mendapatkan informasi biaya pengeluaran kas besar atas pembelian barang
Inventaris.
(q) Mendapatkan informasi toko atas pembelian Inventaris.
(r) Mendapatkan informasi toko atas pembelian ATK.
(s) Mendapatkan informasi jabatan berdasarkan divisinya.
(t) Mendapatkan informasi barang Inventaris berdasarkan kelompoknya.
(u) Mendapatkan informasi bon sementara pembelian ATK atas persetujuan SPP
ATK.
(v) Mendapatkan informasi bon sementara pembelian Inventaris atas bukti kas
masuk.
(w) Mendapatkan informasi pengajuan pembelian barang ATK atas barang-
barang yang diajukan.
(x) Mendapatkan informasi pengajuan pembelian barang Inventaris atas barang-
barang yang diajukan.
(y) Mendapatkan informasi peminjaman barang Inventaris dan karyawan yang
menanganinya.
(z) Mendapatkan informasi pengembalian barang Inventaris atas peminjaman
yang sebelumnya dilakukan.
215
4.1.3. Perancangan Fisikal
Perancangan basis data fisikal merupakan proses membuat deskripsi
dari implementasi basis data pada secondary storage. Tahapan dalam
perancangan basis data fisikal meliputi:
1. Merancang relasi dasar
2. Merancang constraints
3. Analisis transaksi
4. Pemilihan index
5. Estimasi kebutuhan besar ruang penyimpanan
6. Merancang user view
7. Merancang mekanisme keamanan
4.1.3.1. Merancang Relasi Dasar
Tujuan dari tahap ini adalah untuk mengidentifikasi relasional
basis data dalam model data logikal global yang digunakan dalam
DBMS dengan menggunakan DBDL (Database Design Language).
DBD yang digunakan adalah sebagai berikut:
1. Barang_ATK
Domain KodeATK Variabel fixed length character string, length 6
Domain NamaATK Variabel length character string, length 50
Domain Satuan Variabel length character string, length 20
Domain JumlahStok Variabel Integer
Domain InsertedDatetime Variabel Datetime
216
BarangATK (
KodeATK KdATK NOT NULL,
NamaATK NmATK NOT NULL,
Satuan Sat NOT NULL,
JumlahStok JmlStok NOT NULL,
InsertedDatetime InsDate NOT NULL
PRIMARY KEY (KodeATK))
2. BarangInventaris
Domain KodeInventaris Variabel fixed length character string, length 6
Domain NamaInventaris Variabel length character string, length 100
Domain KodeKelompok Variabel fixed length character string, length 5
Inventaris
Domain Status Variabel length character stringm length 20
BarangInventaris (
KodeInventaris KdInv NOT NULL,
NamaInventaris NmInv NOT NULL,
KodeKelompok KdKelInv NOT NULL,
Inventaris
Status Status NOT NULL,
PRIMARY KEY (KodeInventaris),
FOREIGN KEY (KodeKelompokInventaris) REFERENCES
KelompokBarangInventaris (KodeKelompokInventaris) ON UPDATE CASCADE
ON DELETE NO ACTION)
217
3. KelompokBarangInventaris
Domain KodeKelompok Variabel fixed length character string, length 5
Inventaris
Domain NamaKelompok Variabel length character string, length 50
Inventaris
Domain JumlahStok Variabel Integer
Domain InsertedDatetime Variabel Datetime
KelompokBarangInventaris (
KodeKelompok KdKelInv NOT NULL,
Inventaris
NamaKelompok KelInv NOT NULL,
Inventaris
JumlahStok JmlStok NOT NULL,
InsertedDatetime InsDate NOT NULL,
PRIMARY KEY (KodeKelompokInventaris))
4. HsStokATK
Domain KodeATK Variabel fixed length character string, length 6
Domain InsertedDatetime Variabel Datetime
Domain JumlahStok Variabel Integer
HsStokATK (
KodeATK KdATK NOT NULL,
InsertedDatetime InsDate NOT NULL,
JumlahStok JmlStok NOT NULL,
PRIMARY KEY (KodeATK, InsertedDatetime),
218
FOREIGN KEY (KodeATK) REFERENCES BarangATK (KodeATK) ON
UPDATE CASCADE ON DELETE NO ACTION)
5. HsStokInventaris
Domain KodeATK Variabel fixed length character string, length 5
Domain InsertedDatetime Variabel Datetime
Domain JumlahStok Variabel Integer
HsStokInventaris (
KodeKelompokInventaris KdKelInv NOT NULL,
InsertedDatetime InsDate NOT NULL,
JumlahStok JmlStok NOT NULL,
PRIMARY KEY (KodeKelompokInventaris, InsertedDatetime),
FOREIGN KEY (KodeKelompokInventaris) REFERENCES
KelompokBarangInventaris (KodeKelompokInventaris) ON UPDATE CASCADE
ON DELETE NO ACTION)
6. Karyawan
Domain KodeKaryawan Variabel fixed length character string, length 6
Domain NamaKaryawan Variabel length character string, length 50
Domain Alamat Variabel length character string, length 50
Domain KodePos Variabel fixed length character string, length 5
Domain JenisKelamin Variabel length character string, length 10
Domain TglLahir Variabel Date
Domain KodeJabatan Variabel fixed character string, length 5
Domain Username Variabel length character string, length 20
219
Domain Password Variabel length character string, length 100
Domain Photo Variabel length character string, length 50
Karyawan (
KodeKaryawan KdKaryawan NOT NULL,
NamaKaryawan NmKaryawan NOT NULL,
Alamat Alamat NOT NULL,
KodePos KdPos NOT NULL,
JenisKelamin JnsKel NOT NULL,
TglLahir TglLhr NOT NULL,
KodeJabatan KdJab NOT NULL,
Username User NULL,
Password Pass NULL,
Photo Photo NULL,
PRIMARY KEY (KodeKaryawan),
FOREIGN KEY KodeJabatan REFERENCES Jabatan (KodeJabatan) ON UPDATE
CASCADE ON DELETE NO ACTION,
FOREIGN KEY KodePos REFERENCES Pos (KodePos) ON UPDATE
CASCADE ON DELETE NO ACTION)
7. TeleponKaryawan
Domain TeleponKaryawan Variabel length character string, length 15
Domain KodeKaryawan Variabel fixed length character string, length 6
TeleponKaryawan (
TeleponKaryawan TelpKaryawan NOT NULL,
KodeKaryawan KdKaryawan NOT NULL,
PRIMARY KEY (TeleponKaryawan),
220
FOREIGN KEY KodeKaryawan REFERENCES Karyawan (KodeKaryawan) ON
UPDATE CASCADE ON DELETE NO ACTION)
8. Jabatan
Domain KodeJabatan Variabel fixed character string, length 5
Domain NamaJabatan Variabel length character string, length 50
Domain KodeDivisi Variabel fixed character string, length 5
Jabatan (
KodeJabatan KdJab NOT NULL,
NamaJabatan Jab NOT NULL,
KodeDivisi KdDiv NOT NULL,
PRIMARY KEY (KodeJabatan),
FOREIGN KEY KodeDivisi REFERENCES Divisi (KodeDivisi) ON UPDATE
CASCADE ON DELETE NO ACTION)
9. Divisi
Domain KodeDivisi Variabel fixed character string, length 5
Domain NamaDivisi Variabel length character string, length 20
Divisi (
KodeDivisi KdDiv NOT NULL,
NamaDivisi Div NOT NULL,
PRIMARY KEY (KodeDivisi))
10. NomorRegistrasiInventaris
Domain NoRegistrasi Variabel length character string, length 25
221
Inventaris
Domain TglRegistrasi Variabel Date
Domain KodeInventaris Variabel fixed length character string, length 6
NomorRegistrasiInventaris (
NoRegistrasi NoReg NOT NULL,
Inventaris
TglRegistrasi TglReg NOT NULL,
KodeInventaris KdInv NOT NULL,
PRIMARY KEY (NoRegistrasiInventaris),
FOREIGN KEY KodeInventaris REFERENCES BarangInventaris (KodeInventaris)
ON UPDATE CASCADE ON DELETE NO ACTION)
11. SuratPengajuanPembelianATK
Domain NoSPPATK Variabel Integer
Domain TglPengajuan Variabel Date
SPPATK
Domain Keperluan Variabel length character string, length 100
Domain KodeKaryawan Variabel fixed length character string, length 6
Domain StatusPersetujuan Variabel length character string, length 20
SuratPengajuanPembelianATK (
NoSPPATK NoSPPATK NOT NULL,
TglPengajuan TglAjuSPPATK NOT NULL,
SPPATK
Keperluan Keperluan NOT NULL,
KodeKaryawan KdKaryawan NOT NULL,
StatusPersetujuan Stat NOT NULL,
222
PRIMARY KEY (NoSPPATK),
FOREIGN KEY KodeKaryawan REFERENCES Karyawan (KodeKaryawan) ON
UPDATE CASCADE ON DELETE NO ACTION)
12. DetailPengajuanPembelianATK
Domain NoSPPATK Variabel Integer
Domain KodeATK Variabel fixed length character string, length 6
Domain Qty Variabel Integer
Domain PerkiraanHarga Variabel Big Integer
DetailPengajuanPembelianATK (
NoSPPATK NoSPPATK NOT NULL,
KodeATK KdATK NOT NULL,
Qty Qty NOT NULL,
PerkiraanHarga Harga NOT NULL,
PRIMARY KEY (NoSPPATK, KodeATK),
FOREIGN KEY NoSPPATK REFERENCES SuratPengajuanPembelianATK
(NoSPPATK) ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY KodeATK REFERENCES BarangATK (KodeATK) ON UPDATE
CASCADE ON DELETE NO ACTION)
13. SuratPengajuanPembelianInventaris
Domain NoSPPInventaris Variabel Integer
Domain TglPengajuan Variabel Date
SPPInventaris
Domain Keperluan Variabel length character string, length 100
Domain KodeKaryawan Variabel fixed length character string, length 6
223
Domain StatusPersetujuan Variabel length character string, length 20
SuratPengajuanPembelianInventaris (
NoSPPInventaris NoSPPInv NOT NULL,
TglPengajuan TglAjuSPPInv NOT NULL,
SPPInventaris
Keperluan Keperluan NOT NULL,
KodeKaryawan KdKaryawan NOT NULL,
StatusPersetujuan Stat NOT NULL,
PRIMARY KEY (NoSPPInventaris),
FOREIGN KEY KodeKaryawan REFERENCES Karyawan (KodeKaryawan) ON
UPDATE CASCADE ON DELETE NO ACTION)
14. DetailPengajuanPembelianInventaris
Domain NoSPPInventaris Variabel Integer
Domain KodeKelompok Variabel fixed length character string, length 5
Inventaris
Domain Qty Variabel Integer
Domain PerkiraanHarga Variabel Big Integer
DetailPengajuanPembelianInventaris (
NoSPPInventaris NoSPPInv NOT NULL,
KodeKelompok KdKelInv NOT NULL,
Inventaris
Qty Qty NOT NULL,
PerkiraanHarga Harga NOT NULL,
PRIMARY KEY (NoSPPInventaris, KodeKelompokInventaris),
224
FOREIGN KEY NoSPPInventaris REFERENCES
SuratPengajuanPembelianInventaris (NoSPPInventaris) ON UPDATE CASCADE
ON DELETE NO ACTION,
FOREIGN KEY KodeKelompokInventaris REFERENCES
KelompokBarangInventaris (KodeKelompokInventaris) ON UPDATE CASCADE
ON DELETE NO ACTION)
15. PersetujuanSPPATK
Domain NoSuratPersetujuan Variabel Integer
SPPATK
Domain TglPersetujuan Variabel Date
Domain KodeKaryawan Variabel fixed length character string, length 6
PersetujuanSPPATK (
NoSuratPersetujuan NoSuratPersetujuan NOT NULL,
SPPATK SPPATK
TglPersetujuan TglPersetujuan NOT NULL,
KodeKaryawan KdKaryawan NOT NULL,
PRIMARY KEY (NoSuratPersetujuanSPPATK)
FOREIGN KEY KodeKaryawan REFERENCES Karyawan (KodeKaryawan) ON
UPDATE CASCADE ON DELETE NO ACTION)
16. DetailPersetujuanSPPATK
Domain NoSuratPersetujuan Variabel Integer
SPPATK
Domain NoSPPATK Variabel Integer
DetailPersetujuanSPPATK (
225
NoSuratPersetujuan NoSuratPersetujuan NOT NULL,
SPPATK SPPATK
NoSPPATK NoSPPATK NOT NULL,
PRIMARY KEY (NoSuratPersetujuanSPPATK, NoSPPATK),
FOREIGN KEY NoSPPATK REFERENCES SuratPengajuanPembelianATK
(NoSPPATK) ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY NoSuratPersetujuanSPPATK REFERENCES PersetujuanSPPATK
(NoSuratPersetujuanSPPATK) ON UPDATE CASCADE ON DELETE NO
ACTION)
17. PersetujuanSPPInventaris
Domain NoSuratPersetujuan Variabel Integer
SPPInventaris
Domain TglPersetujuan Variabel Date
PersetujuanSPPInventaris (
NoSuratPersetujuan NoSuratPersetujuan NOT NULL,
SPPInventaris SPPInventaris
TglPersetujuan TglPersetujuan NOT NULL,
PRIMARY KEY (NoSuratPersetujuanSPPInventaris))
18. DetailPersetujuanSPPInventaris
Domain NoSuratPersetujuan Variabel Integer
SPPInventaris
Domain NoSPPInventaris Variabel Integer
DetailPersetujuanSPPInventaris (
NoSuratPersetujuan NoSuratPersetujuan NOT NULL,
226
SPPInventaris SPPInventaris
NoSPPInventaris NoSPPInventaris NOT NULL,
PRIMARY KEY (NoSuratPersetujuanSPPInventaris, NoSPPInventaris),
FOREIGN KEY NoSPPInventaris REFERENCES
SuratPengajuanPembelianInventaris (NoSPPInventaris) ON UPDATE CASCADE
ON DELETE NO ACTION,
FOREIGN KEY NoSuratPersetujuanSPPInventaris REFERENCES
PersetujuanSPPInventaris (NoSuratPersetujuanSPPInventaris) ON UPDATE
CASCADE ON DELETE NO ACTION)
19. DetailPersetujuanSPPInventarisOlehKaryawan
Domain NoSuratPersetujuan Variabel Integer
SPPInventaris
Domain KodeKaryawan Variabel fixed length character string, length 6
DetailPersetujuanSPPInventarisOlehKaryawan (
NoSuratPersetujuan NoSuratPersetujuan NOT NULL,
SPPInventaris SPPInventaris
KodeKaryawan KdKaryawan NOT NULL,
PRIMARY KEY (NoSuratPersetujuanSPPInventaris, KodeKaryawan),
FOREIGN KEY NoSuratPersetujuanSPPInventaris REFERENCES
PersetujuanSPPInventaris (NoSuratPersetujuanSPPInventaris) ON UPDATE
CASCADE ON DELETE NO ACTION,
FOREIGN KEY KodeKaryawan REFERENCES Karyawan (KodeKaryawan) ON
UPDATE CASCADE ON DELETE NO ACTION)
227
20. BonSementaraPembelianATK
Domain NoBonSementara Variabel Integer
PembelianATK
Domain Tanggal Variabel Date
Domain Keterangan Variabel length character string, length 50
Domain KodeKaryawan Variabel fixed length character string, length 6
Domain DanaPembelianATK Variabel Big Integer
Domain NoSuratPersetujuan Variabel Integer
SPPATK
BonSementaraPembelianATK (
NoBonSementara NoBonSementara NOT NULL,
PembelianATK BeliATK
Tanggal Tgl NOT NULL,
Keterangan Ket NOT NULL,
KodeKaryawan KdKaryawan NOT NULL,
DanaPembelianATK DanaBeliATK NOT NULL,
NoSuratPersetujuan NoSuratPersetujuan NOT NULL,
SPPATK SPPATK
PRIMARY KEY (NoBonSementaraPembelianATK),
FOREIGN KEY KodeKaryawan REFERENCES Karyawan (KodeKaryawan) ON
UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY NoSuratPersetujuanSPPATK REFERENCES PersetujuanSPPATK
(NoSuratersetujuanSPPATK) ON UPDATE CASCADE ON DELETE NO
ACTION)
228
21. BonSementaraPembelianInventaris
Domain NoBonSementara Variabel Integer
PembelianInventaris
Domain Tanggal Variabel Date
Domain Keterangan Variabel length character string, length 50
Domain KodeKaryawan Variabel fixed length character string, length 6
Domain NoBKM Variabel Integer
BonSementaraPembelianInventaris (
NoBonSementara NoBonSementara NOT NULL,
PembelianInventaris BeliInv
Tanggal Tgl NOT NULL,
Keterangan Ket NOT NULL,
KodeKaryawan KdKaryawan NOT NULL,
NoBKM NoBKM NOT NULL,
PRIMARY KEY (NoBonSementaraPembelianInventaris),
FOREIGN KEY KodeKaryawan REFERENCES Karyawan (KodeKaryawan) ON
UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY NoBKM REFERENCES BuktiKasMasuk (NoBKM) ON
UPDATE CASCADE ON DELETE NO ACTION)
22. PembelianATK
Domain NoNPATK Variabel length character string, length 10
Domain TglPembelianATK Variabel Date
Domain KodeToko Variabel fixed length character string, length 5
Domain KodeKaryawan Variabel fixed length character string, length 6
PembelianATK (
229
NoNPATK NoNPATK NOT NULL,
TglPembelianATK TglBeliATK NOT NULL,
KodeToko KdToko NOT NULL,
KodeKaryawan KdKaryawan NOT NULL,
PRIMARY KEY (NoNPATK),
FOREIGN KEY KodeToko REFERENCES Toko (KodeToko) ON UPDATE
CASCADE ON DELETE NO ACTION,
FOREIGN KEY KodeKaryawan REFERENCES Karyawan (KodeKaryawan) ON
UPDATE CASCADE ON DELETE NO ACTION)
23. DetailPembelianATK
Domain NoNPATK Variabel length character string, length 10
Domain KodeATK Variabel fixed length character string, length 6
Domain Qty Variabel Integer
Domain HargaSatuan Variabel Big Integer
DetailPembelianATK (
NoNPATK NoNPATK NOT NULL,
KodeATK KdATK NOT NULL,
Qty Qty NOT NULL,
HargaSatuan HrgSat NOT NULL,
PRIMARY KEY (NoNPATK, KodeATK),
FOREIGN KEY NoNPATK REFERENCES PembelianATK (NoNPATK) ON
UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY KodeATK REFERENCES BarangATK (KodeATK) ON UPDATE
CASCADE ON DELETE NO ACTION)
230
24. PembelianInventaris
Domain NoNPInventaris Variabel length character string, length 10
Domain TglPembelian Variabel Date
Inventaris
Domain KodeToko Variabel fixed length character string, length 5
Domain KodeKaryawan Variabel fixed length character string, length 6
PembelianInventaris (
NoNPInventaris NoNPATK NOT NULL,
TglPembelian TglBeliInv NOT NULL,
Inventaris
KodeToko KdToko NOT NULL,
KodeKaryawan KdKaryawan NOT NULL,
PRIMARY KEY (NoNPInventaris),
FOREIGN KEY KodeToko REFERENCES Toko (KodeToko) ON UPDATE
CASCADE ON DELETE NO ACTION,
FOREIGN KEY KodeKaryawan REFERENCES Karyawan (KodeKaryawan) ON
UPDATE CASCADE ON DELETE NO ACTION)
25. DetailPembelianInventaris
Domain NoNPInventaris Variabel length character string, length 10
Domain KodeKelompok Variabel fixed length character string, length 5
Inventaris
Domain Qty Variabel Integer
Domain HargaSatuan Variabel Big Integer
DetailPembelianInventaris (
NoNPInventaris NoNPInv NOT NULL,
231
KodeKelompok KdKelInv NOT NULL,
Inventaris
Qty Qty NOT NULL,
HargaSatuan HrgSat NOT NULL,
PRIMARY KEY (NoNPInventaris, KodeKelompokInventaris),
FOREIGN KEY NoNPInventaris REFERENCES PembelianInventaris
(NoNPInventaris) ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY KodeKelompokInventaris REFERENCES
KelompokBarangInventaris (KodeKelompokInventaris) ON UPDATE CASCADE
ON DELETE NO ACTION)
26. BuktiKasMasuk
Domain NoBKM Variabel Integer
Domain Tanggal Variabel Date
Domain KodeKaryawan Variabel fixed length character string, length 6
Domain NoSuratPersetujuan Variabel Integer
SPPInventaris
Domain DanaPembelian Variabel Big Integer
Inventaris
BuktiKasMasuk (
NoBKM NoBKM NOT NULL,
Tanggal Tgl NOT NULL,
KodeKaryawan KdKaryawan NOT NULL,
NoSuratPersetujuan NoSuratPersetujuan NOT NULL,
SPPInventaris SPPInv
DanaPembelian DanaBeliInv NOT NULL,
232
Inventaris
PRIMARY KEY (NoBKM),
FOREIGN KEY KodeKaryawan REFERENCES Karyawan (KodeKaryawan) ON
UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY NoSuratPersetujuanSPPInventaris REFERENCES
PersetujuanSPPInventaris (NoSuratPersetujuanSPPInventaris) ON UPDATE
CASCADE ON DELETE NO ACTION)
27. BuktiKasKeluarATK
Domain NoBKKATK Variabel Integer
Domain Tanggal Variabel Date
Domain KodeKaryawan Variabel fixed length character string, length 6
Domain NoNPATK Variabel length character string, length 10
Domain JumlahPengeluaran Variabel Big Integer
PembelianATK
BuktiKasKeluarATK (
NoBKKATK NoBKKATK NOT NULL,
Tanggal Tgl NOT NULL,
KodeKaryawan KdKaryawan NOT NULL,
NoNPATK NoNPATK NOT NULL,
JumlahPengeluaran JmlPengeluaran NOT NULL,
PembelianATK BeliATK
PRIMARY KEY (NoBKKATK),
FOREIGN KEY KodeKaryawan REFERENCES Karyawan (KodeKaryawan) ON
UPDATE CASCADE ON DELETE NO ACTION,
233
FOREIGN KEY NoNPATK REFERENCES PembelianATK (NoNPATK) ON
UPDATE CASCADE ON DELETE NO ACTION)
28. BuktiKasKeluarInventaris
Domain NoBKKInventaris Variabel Integer
Domain Tanggal Variabel Date
Domain KodeKaryawan Variabel fixed length character string, length 6
Domain NoNPInventaris Variabel length character string, length 10
Domain JumlahPengeluaran Variabel Big Integer
PembelianInventaris
BuktiKasKeluarInventaris (
NoBKKInventaris NoBKKInv NOT NULL,
Tanggal Tgl NOT NULL,
KodeKaryawan KdKaryawan NOT NULL,
NoNPInventaris NoNPInv NOT NULL,
JumlahPengeluaran JmlPengeluaran NOT NULL,
PembelianInventaris BeliInv
PRIMARY KEY (NoBKKInventaris),
FOREIGN KEY KodeKaryawan REFERENCES Karyawan (KodeKaryawan) ON
UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY NoNPInventaris REFERENCES PembelianInventaris
(NoNPInventaris) ON UPDATE CASCADE ON DELETE NO ACTION)
29. Toko
Domain KodeToko Variabel fixed length character string, length 5
Domain NamaToko Variabel length character string, length 20
234
Domain Alamat Variabel length character string, length 50
Domain KodePos Variabel fixed length character string, length 5
Toko (
KodeToko KdToko NOT NULL,
NamaToko NmToko NOT NULL,
Alamat Alamat NOT NULL,
KodePos KdPos NOT NULL,
PRIMARY KEY (KodeToko),
FOREIGN KEY KodePos REFERENCES Pos (KodePos) ON UPDATE
CASCADE ON DELETE NO ACTION)
30. Pos
Domain KodePos Variabel fixed length character string, length 5
Domain Daerah Variabel length character string, length 50
Pos (
KodePos KdPos NOT NULL,
Daerah Daerah NOT NULL,
PRIMARY KEY (KodePos))
31. PeminjamanInventaris
Domain NoSuratPeminjaman Variabel Integer
Domain TglPinjam Variabel Date
Domain NoSuratPengantar Variabel length character string, length 30
Peminjaman
Domain Perihal Variabel length character string, length 100
Domain NamaPeminjam Variabel length character string, length 20
235
Domain NamaPerusahaan Variabel length character string, length 20
Peminjam
Domain KodeKaryawan Variabel fixed length character string, length 6
PeminjamanInventaris (
NoSuratPeminjaman NoSuratPinjam NOT NULL,
TglPinjam TglPinjam NOT NULL,
NoSuratPengantar NoSuratPengantar NOT NULL,
Peminjaman Pinjam
Perihal Perihal NOT NULL,
NamaPeminjam NmPeminjam NOT NULL,
NamaPerusahaan NmPerusahaan NOT NULL,
Peminjam Peminjam
KodeKaryawan KdKaryawan NOT NULL,
PRIMARY KEY (NoSuratPeminjaman),
FOREIGN KEY KodeKaryawan REFERENCES Karyawan (KodeKaryawan) ON
UPDATE CASCADE ON DELETE NO ACTION)
32. DetailPeminjamanInventaris
Domain NoSuratPeminjaman Variabel Integer
Domain KodeInventaris Variabel fixed length character string, length 6
Domain StatusPeminjaman Variabel length character string, length 20
DetailPeminjamanInventaris (
NoSuratPeminjaman NoSuratPinjam NOT NULL,
KodeInventaris KdInv NOT NULL,
PRIMARY KEY (NoSuratPeminjaman, KodeInventaris),
236
FOREIGN KEY NoSuratPeminjaman REFERENCES PeminjamanInventaris
(NoSuratPeminjaman) ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY KodeInventaris REFERENCES BarangInventaris (KodeInventaris)
ON UPDATE CASCADE ON DELETE NO ACTION)
33. PengembalianInventaris
Domain KodePengembalian Variabel Integer
Domain NoSuratPeminjaman Variabel Integer
Domain TglKembali Variabel Date
Domain NamaPengembali Variabel length character string, length 20
Domain KodeKaryawan Variabel fixed length character string, length 6
PengembalianInventaris (
KodePengembalian KdKembali NOT NULL,
NoSuratPeminjaman NoSuratPinjam NOT NULL,
TglKembali TglKembali NOT NULL,
NamaPengembali NmPengembali NOT NULL,
KodeKaryawan KdKaryawan NOT NULL,
PRIMARY KEY (KodePengembalian),
FOREIGN KEY NoSuratPeminjaman REFERENCES PeminjamanInventaris
(NoSuratPeminjaman) ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY KodeKaryawan REFERENCES Karyawan (KodeKaryawan) ON
UPDATE CASCADE ON DELETE NO ACTION)
34. DetailPengembalianInventaris
Domain KodePengembalian Variabel Integer
Domain KodeInventaris Variabel fixed length character string, length 6
237
DetailPengembalianInventaris (
KodePengembalian KdKembali NOT NULL,
KodeInventaris KdInv NOT NULL,
PRIMARY KEY (KodePengembalian, KodeInventaris),
FOREIGN KEY KodePengembalian REFERENCES PengembalianInventaris
(KodePengembalian) ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY KodeInventaris REFERENCES BarangInventaris (KodeInventaris)
ON UPDATE CASCADE ON DELETE NO ACTION)
35. DetailPemakaianATK
Domain KodeATK Variabel fixed length character string, length 6
Domain KodeKaryawan Variabel fixed length character string, length 6
Domain TglPemakaian Variabel Date
Domain Qty Variabel Integer
DetailPemakaianATK (
KodeATK KdATK NOT NULL,
KodeKaryawan KdKaryawan NOT NULL,
TglPemakaian TglPakai NOT NULL,
Qty Qty NOT NULL,
PRIMARY KEY (KodeATK, KodeKaryawan, TglPemakaian),
FOREIGN KEY KodeATK REFERENCES BarangATK (KodeATK) ON UPDATE
CASCADE ON DELETE NO ACTION,
FOREIGN KEY KodeKaryawan REFERENCES Karyawan (KodeKaryawan) ON
UPDATE CASCADE ON DELETE NO ACTION)
238
36. DetailPemakaianInventaris
Domain KodeInventaris Variabel fixed length character string, length 6
Domain KodeKaryawan Variabel fixed length character string, length 6
Domain TglPemakaian Variabel Date
Domain Lokasi Variabel length character string, length 50
DetailPemakaianInventaris (
KodeInventaris KdInv NOT NULL,
KodeKaryawan KdKaryawan NOT NULL,
TglPemakaian TglPakai NOT NULL,
Lokasi Lokasi NOT NULL,
PRIMARY KEY (Kodeinventaris, KodeKaryawan),
FOREIGN KEY KodeInventaris REFERENCES BarangInventaris (KodeInventaris)
ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY KodeKaryawan REFERENCES Karyawan (KodeKaryawan) ON
UPDATE CASCADE ON DELETE NO ACTION)
37. TeleponToko
Domain TeleponToko Variabel length character string, length 15
Domain KodeToko Variabel fixed length character string, length 5
TeleponToko (
TeleponToko TelpToko NOT NULL,
KodeToko KdToko NOT NULL,
PRIMARY KEY (TeleponToko),
FOREIGN KEY KodeToko REFERENCES Toko (KodeToko) ON UPDATE
CASCADE ON DELETE NO ACTION)
239
4.1.3.2. Merancang Constraints
Tujuan merancang constraint adalah untuk merancang
constraints perusahaan dalam DBMS. Beberapa constraints yang
digunakan dalam DBMS adalah sebagai berikut:
1. PembelianATK tidak dapat dilakukan jika StatusPersetujuan ditolak
atau tidak disetujui
CONSTRAINT PembelianATKInvalid
CHECK (NOT EXISTS (SELECT NoSPPATK
FROM SuratPengajuanPembelianATK
WHERE StatusPersetujuan = “Tidak disetujui”))
2. PembelianInventaris tidak dapat dilakukan jika StatusPersetujuan
ditolak atau tidak disetujui
CONSTRAINT PembelianATKInvalid
CHECK (NOT EXISTS (SELECT NoSPPInventaris
FROM SuratPengajuanPembelianInventaris
WHERE StatusPersetujuan = “Tidak disetujui”))
3. Pemakaian ATK tidak dapat dilakukan jika jumlah stok barang ATK
habis
CONSTRAINT DetailPemakaianATKInvalid
CHECK (EXISTS (SELECT KodeATK
FROM BarangATK
240
WHERE JumlahStok = 0))
4. Pemakaian Inventaris tidak dapat dilakukan jika jumlah stok barang
Inventaris habis
CONSTRAINT DetailPemakaianInventarisInvalid
CHECK (EXISTS (SELECT KodeKelompokInventaris
FROM KelompokBarangInventaris
WHERE JumlahStok = 0))
4.1.3.3. Analisis Transaksi
Tujuan dari langkah ini adalah untuk memahami fungsionalitas
dari transaksi yang akan berjalan pada basis data dan untuk menganalisis
transaksi yang penting. Transaksi pengguna yang telah diidentifikasi
adalah sebagai berikut:
(a) Memasukkan dan mengubah data karyawan.
(b) Memasukkan dan mengubah data toko.
(c) Memasukkan dan mengubah data divisi.
(d) Memasukkan dan mengubah data jabatan.
(e) Mendapatkan barang inventaris yang sudah diregistrasi dan nomor
registrasi barang inventaris berdasarkan kode inventarisnya.
(f) Mendapatkan informasi mengenai data karyawan berdasarkan
jabatannya.
(g) Mendapatkan informasi mengenai data pemakaian ATK oleh
karyawan.
241
(h) Mendapatkan informasi mengenai data pemakaian Inventaris oleh
karyawan.
(i) Mendapatkan informasi mengenai surat pengajuan pembelian ATK
yang telah disetujui.
(j) Mendapatkan informasi mengenai surat pengajuan pembelian
Inventaris yang telah disetujui.
(k) Mendapatkan informasi mengenai dana yang diterima atas
persetujuan pembelian Inventaris.
(l) Mendapatkan informasi kelompok barang Inventaris yang dibeli
berdasarkan Nota Pembelian Inventaris.
(m) Mendapatkan barang ATK yang dibeli berdasarkan Nota Pembelian
ATK.
(n) Mendapatkan barang Inventaris yang dipinjam.
(o) Mendapatkan informasi biaya pengeluaran kas kecil atas pembelian
barang ATK.
(p) Mendapatkan informasi biaya pengeluaran kas besar atas pembelian
barang Inventaris.
(q) Mendapatkan informasi toko atas pembelian Inventaris.
(r) Mendapatkan informasi toko atas pembelian ATK.
(s) Mendapatkan informasi jabatan berdasarkan divisinya.
(t) Mendapatkan informasi barang Inventaris berdasarkan kelompoknya.
(u) Mendapatkan informasi bon sementara pembelian ATK atas
persetujuan SPP ATK.
242
(v) Mendapatkan informasi bon sementara pembelian Inventaris atas
bukti kas masuk.
(w) Mendapatkan informasi pengajuan pembelian barang ATK atas
barang-barang yang diajukan.
(x) Mendapatkan informasi pengajuan pembelian barang Inventaris atas
barang-barang yang diajukan.
(y) Mendapatkan informasi peminjaman barang Inventaris dan
karyawan yang menanganinya.
(z) Mendapatkan informasi pengembalian barang Inventaris atas
peminjaman yang sebelumnya dilakukan.
243243
(a) (b) (c) (d) Transaksi/Relasi
I R U D I R U D I R U D I R U D
BarangATK
BarangInventaris
HsStokATK
HsStokInventaris
DetailPemakaianATK
KelompokBarangInventaris
DetailPemakaianInventaris
Karyawan X X X
TeleponKaryawan X X X
Pos X X X X X X
Jabatan X X X
Divisi X X X
NomorRegistrasiInventaris
SuratPengajuanPembelianATK
DetailPengajuanATK
SuratPengajuanPembelianInventaris
DetailPengajuanPembelianInventaris
244244
PersetujuanSPPATK
DetailPersetujuanSPPATK
PersetujuanSPPInventaris
DetailPersetujuanSPPInventaris
DetailPersetujuanSPPInventarisOkeh
Karyawan
BonSementaraPembelianATK
BonSementaraPembelianInventaris
PembelianATK
DetailPembelianATK
PembelianInventaris
DetailPembelianInventaris
BuktiKasMasuk
BuktiKasKeluarATK
BuktiKasKeluarInventaris
Toko X X X
TeleponToko X X X
PeminjamanInventaris
DetailPeminjamanInventaris
PengembalianInventaris
245245
DetailPengembalianInventaris
(e) (f) (g) (h) Transaksi/Relasi
I R U D I R U D I R U D I R U D
BarangATK X
BarangInventaris X X
HsStokATK
HsStokInventaris
DetailPemakaianATK X
KelompokBarangInventaris X
DetailPemakaianInventaris X
Karyawan X X X
TeleponKaryawan
Pos
Jabatan X
Divisi
NomorRegistrasiInventaris X
SuratPengajuanPembelianATK
DetailPengajuanATK
246246
SuratPengajuanPembelianInventaris
DetailPengajuanPembelianInventaris
PersetujuanSPPATK
DetailPersetujuanSPPATK
PersetujuanSPPInventaris
DetailPersetujuanSPPInventaris
DetailPersetujuanSPPInventarisOkeh
Karyawan
BonSementaraPembelianATK
BonSementaraPembelianInventaris
PembelianATK
DetailPembelianATK
PembelianInventaris
DetailPembelianInventaris
BuktiKasMasuk
BuktiKasKeluarATK
BuktiKasKeluarInventaris
Toko
TeleponToko
PeminjamanInventaris
247247
DetailPeminjamanInventaris
PengembalianInventaris
DetailPengembalianInventaris
(i) (j) (k) (l) Transaksi/Relasi
I R U D I R U D I R U D I R U D
BarangATK
BarangInventaris X
HsStokATK
HsStokInventaris
DetailPemakaianATK
KelompokBarangInventaris
DetailPemakaianInventaris
Karyawan
TeleponKaryawan
Pos
Jabatan
Divisi
NomorRegistrasiInventaris
248248
SuratPengajuanPembelianATK X
DetailPengajuanATK X
SuratPengajuanPembelianInventaris X
DetailPengajuanPembelianInventaris X
PersetujuanSPPATK X
DetailPersetujuanSPPATK X
PersetujuanSPPInventaris X X
DetailPersetujuanSPPInventaris X X
DetailPersetujuanSPPInventarisOkeh
Karyawan
X
BonSementaraPembelianATK
BonSementaraPembelianInventaris
PembelianATK
DetailPembelianATK
PembelianInventaris X
DetailPembelianInventaris X
BuktiKasMasuk X
BuktiKasKeluarATK
BuktiKasKeluarInventaris
Toko
249249
TeleponToko
PeminjamanInventaris
DetailPeminjamanInventaris
PengembalianInventaris
DetailPengembalianInventaris
(m) (n) (o) (p) Transaksi/Relasi
I R U D I R U D I R U D I R U D
BarangATK X
BarangInventaris X
HsStokATK
HsStokInventaris
DetailPemakaianATK
KelompokBarangInventaris
DetailPemakaianInventaris
Karyawan
TeleponKaryawan
Pos
Jabatan
250250
Divisi
NomorRegistrasiInventaris
SuratPengajuanPembelianATK
DetailPengajuanATK
SuratPengajuanPembelianInventaris
DetailPengajuanPembelianInventaris
PersetujuanSPPATK
DetailPersetujuanSPPATK
PersetujuanSPPInventaris
DetailPersetujuanSPPInventaris
DetailPersetujuanSPPInventarisOkeh
Karyawan
BonSementaraPembelianATK
BonSementaraPembelianInventaris
PembelianATK X X
DetailPembelianATK X
PembelianInventaris X
DetailPembelianInventaris X
BuktiKasMasuk
BuktiKasKeluarATK X
251251
BuktiKasKeluarInventaris X
Toko
TeleponToko
PeminjamanInventaris X
DetailPeminjamanInventaris X
PengembalianInventaris
DetailPengembalianInventaris
(q) (r) (s) (t) Transaksi/Relasi
I R U D I R U D I R U D I R U D
BarangATK
BarangInventaris X
HsStokATK
HsStokInventaris
DetailPemakaianATK
KelompokBarangInventaris X
DetailPemakaianInventaris
Karyawan
TeleponKaryawan
252252
Pos
Jabatan X
Divisi X
NomorRegistrasiInventaris
SuratPengajuanPembelianATK
DetailPengajuanATK
SuratPengajuanPembelianInventaris
DetailPengajuanPembelianInventaris
PersetujuanSPPATK
DetailPersetujuanSPPATK
PersetujuanSPPInventaris
DetailPersetujuanSPPInventaris
DetailPersetujuanSPPInventarisOkeh
Karyawan
BonSementaraPembelianATK
BonSementaraPembelianInventaris
PembelianATK X
DetailPembelianATK
PembelianInventaris X
DetailPembelianInventaris
253253
BuktiKasMasuk
BuktiKasKeluarATK
BuktiKasKeluarInventaris
Toko X X
TeleponToko
PeminjamanInventaris
DetailPeminjamanInventaris
PengembalianInventaris
DetailPengembalianInventaris
(u) (v) (w) (x) Transaksi/Relasi
I R U D I R U D I R U D I R U D
BarangATK X
BarangInventaris X
HsStokATK
HsStokInventaris
DetailPemakaianATK
KelompokBarangInventaris
DetailPemakaianInventaris
254254
Karyawan
TeleponKaryawan
Pos
Jabatan
Divisi
NomorRegistrasiInventaris
SuratPengajuanPembelianATK X
DetailPengajuanATK X
SuratPengajuanPembelianInventaris X
DetailPengajuanPembelianInventaris X
PersetujuanSPPATK X
DetailPersetujuanSPPATK
PersetujuanSPPInventaris
DetailPersetujuanSPPInventaris
DetailPersetujuanSPPInventarisOkeh
Karyawan
BonSementaraPembelianATK X
BonSementaraPembelianInventaris X
PembelianATK
DetailPembelianATK
255255
PembelianInventaris
DetailPembelianInventaris
BuktiKasMasuk X
BuktiKasKeluarATK
BuktiKasKeluarInventaris
Toko
TeleponToko
PeminjamanInventaris
DetailPeminjamanInventaris
PengembalianInventaris
DetailPengembalianInventaris
(y) (z) Transaksi/Relasi
I R U D I R U D I R U D I R U D
BarangATK
BarangInventaris
HsStokATK
HsStokInventaris
DetailPemakaianATK
256256
KelompokBarangInventaris
DetailPemakaianInventaris
Karyawan X
TeleponKaryawan
Pos
Jabatan
Divisi
NomorRegistrasiInventaris
SuratPengajuanPembelianATK
DetailPengajuanATK
SuratPengajuanPembelianInventaris
DetailPengajuanPembelianInventaris
PersetujuanSPPATK
DetailPersetujuanSPPATK
PersetujuanSPPInventaris
DetailPersetujuanSPPInventaris
DetailPersetujuanSPPInventarisOkeh
Karyawan
BonSementaraPembelianATK
BonSementaraPembelianInventaris
257257
PembelianATK
DetailPembelianATK
PembelianInventaris
DetailPembelianInventaris
BuktiKasMasuk
BuktiKasKeluarATK
BuktiKasKeluarInventaris
Toko
TeleponToko
PeminjamanInventaris X X
DetailPeminjamanInventaris
PengembalianInventaris X
DetailPengembalianInventaris
Tabel 4.32. Analisis Transaksi
258
4.1.3.4. Pemilihan Index
Tujuan dari langkah ini adalah untuk menentukan apakah dengan
penambahan index akan meningkatkan performa dari sistem. Ada dua
alasan untuk penambahan index yakni sebagai metode untuk
menjalankan keunikan data didalam tabel basis data dan menyediakan
akses yang lebih cepat ke data yang berada didalam tabel. Index yang
digunakan adalah sebagai berikut:
1. BarangATK
CREATE UNIQUE NONCLUSTERED INDEX IdxBrgATK ON
BarangATK (KodeATK)
2. BarangInventaris
CREATE UNIQUE NONCLUSTERED INDEX IdxBrgATK ON
BarangInventaris (KodeInventaris)
3. DetailPemakaianATK
CREATE UNIQUE NONCLUSTERED INDEX IdxDPATK ON
DetailPemakaianATK (KodeATK, KodeKaryawan, TglPemakaian)
4. KelompokBarangInventaris
CREATE UNIQUE NONCLUSTERED INDEX IdxKlmpkBrgInv
ON KelompokBarangInventaris (KodeKelompokInventaris)
5. DetailPemakaianInventaris
CREATE UNIQUE NONCLUSTERED INDEX IdxDPInv ON
DetailPemakaianInventaris (KodeInventaris, KodeKaryawan)
6. Karyawan
259
CREATE UNIQUE NONCLUSTERED INDEX IdxKary ON
Karyawan (KodeKaryawan)
7. TeleponKaryawan
CREATE UNIQUE NONCLUSTERED INDEX IdxTelpKary ON
TeleponKaryawan (TeleponKaryawan)
8. Pos
CREATE UNIQUE NONCLUSTERED INDEX IdxPos ON Pos
(KodePos)
9. Jabatan
CREATE UNIQUE NONCLUSTERED INDEX IdxJabatan ON
Jabatan (KodeJabatan)
10. Divisi
CREATE UNIQUE NONCLUSTERED INDEX IdxDivisi ON
Divisi (KodeDivisi)
11. NomorRegistrasiInventaris
CREATE UNIQUE NONCLUSTERED INDEX IdxNoRegInv ON
NomorRegistrasiInventaris (NoRegistrasiInventaris)
12. SuratPengajuanPembelianATK
CREATE UNIQUE NONCLUSTERED INDEX IdxSPPATK ON
SuratPengajuanPembelianATK (NoSPPATK)
13. DetailPengajuanPembelianATK
CREATE UNIQUE NONCLUSTERED INDEX IdxDPPATK ON
DetailPengajuanPembelianATK (NoSPPATK, KodeATK)
14. SuratPengajuanPembelianInventaris
260
CREATE UNIQUE NONCLUSTERED INDEX IdxSPPInv ON
SuratPengajuanPembelianInventaris (NoSPPInventaris)
15. DetailPengajuanPembelianInventaris
CREATE UNIQUE NONCLUSTERED INDEX IdxDPPInv ON
DetailPengajuanPembelianInventaris (NoSPPInventaris,
KodeKelompokInventaris)
16. PersetujuanSPPATK
CREATE UNIQUE NONCLUSTERED INDEX IdxPSPPATK ON
PersetujuanSPPATK (NoSuratPersetujuanSPPATK)
17. DetailPersetujuanSPPATK
CREATE UNIQUE NONCLUSTERED INDEX IdxDPSPPATK
ON DetailPersetujuanSPPATK (NoSuratPersetujuanSPPATK,
NoSPPATK)
18. PersetujuanSPPInventaris
CREATE UNIQUE NONCLUSTERED INDEX IdxPSPPInv ON
PersetujuanSPPInventaris (NoSuratPersetujuanSPPInventaris)
19. DetailPersetujuanSPPInventaris
CREATE UNIQUE NONCLUSTERED INDEX IdxDPSPPInv ON
DetailPersetujuanSPPInventaris(NoSuratPersetujuanSPPInventaris,
NoSPPInventaris)
20. DetailPersetujuanSPPInventarisOlehKaryawan
CREATE UNIQUE NONCLUSTERED INDEX
IdxDPSPPInvOKary ON
261
DetailPersetujuanSPPInventarisOlehKaryawan(NoSuratPersetujuan
SPPInventaris, KodeKaryawan)
21. BonSementaraPembelianATK
CREATE UNIQUE NONCLUSTERED INDEX IdxBSPATK ON
BonSementaraPembelianATK(NoBonSementaraPembelianATK)
22. BonSementaraPembelianInventaris
CREATE UNIQUE NONCLUSTERED INDEX IdxBSPInv ON
BonSementaraPembelianInventaris
(NoBonSementaraPembelianInventaris)
23. PembelianATK
CREATE UNIQUE NONCLUSTERED INDEX IdxPmblnATK ON
PembelianATK (NoNPATK)
24. DetailPembelianATK
CREATE UNIQUE NONCLUSTERED INDEX IdxDPmblnATK
ON DetailPembelianATK (NoNPATK, KodeATK)
25. PembelianInventaris
CREATE UNIQUE NONCLUSTERED INDEX IdxPmblnInv ON
PembelianInventaris (NoNPInventaris)
26. DetailPembelianInventaris
CREATE UNIQUE NONCLUSTERED INDEX IdxDPmblnInv ON
DetailPembelianInventaris (NoNPInventaris,
KodeKelompokInventaris)
262
27. BuktiKasMasuk
CREATE UNIQUE NONCLUSTERED INDEX IdxBKM ON
BuktiKasMasuk (NoBKM)
28. BuktiKasKeluarATK
CREATE UNIQUE NONCLUSTERED INDEX IdxBKKATK ON
BuktiKasKeluarATK (NoBKKATK)
29. BuktiKasKeluarInventaris
CREATE UNIQUE NONCLUSTERED INDEX IdxBKKInv ON
BuktiKasKeluarInventaris (NoBKKInventaris)
30. Toko
CREATE UNIQUE NONCLUSTERED INDEX IdxToko ON Toko
(KodeToko)
31. TeleponToko
CREATE UNIQUE NONCLUSTERED INDEX IdxTelpToko ON
TeleponToko(TeleponToko)
32. PeminjamanInventaris
CREATE UNIQUE NONCLUSTERED INDEX IdxPinjamInv ON
PeminjamanInventaris(NoSuratPeminjaman)
33. DetailPeminjamanInventaris
CREATE UNIQUE NONCLUSTERED INDEX IdxDPinjamInv
ON DetailPeminjamanInventaris (NoSuratPeminjaman,
KodeInventaris)
34. PengembalianInventaris
263
CREATE UNIQUE NONCLUSTERED INDEX IdxKembaliInv ON
PengembalianInventaris(KodePengembalian)
35. DetailPengembalianInventaris
CREATE UNIQUE NONCLUSTERED INDEX IdxDKembaliInv
ON DetailPengembalianInventaris (KodePengembalian,
KodeInventaris)
36. HsStokATK
CREATE UNIQUE NONCLUSTERED INDEX IdxHsStokATK
ON HsStokATK(KodeATK, InsertedDatetime)
37. HsStokInventaris
CREATE UNIQUE NONCLUSTERED INDEX IdxHsStokInv ON
HsStokInventaris(KodeKelompokInventaris, InsertedDatetime)
4.1.3.5. Estimasi Kebutuhan Besar Ruang Penyimpanan
Tujuan dari langkah ini adalah untuk menghitung kapasitas
penyimpanan yang diperlukan oleh basis data. Perkiraan kapasitas setiap
tabel adalah sebagai berikut:
Field Type Ukuran
KodeATK
NamaATK
Satuan
JumlahStok
Char
Varchar
Varchar
Int
6
50
20
11
264
InsertedDatetime Datetime -
Kapasitas dari tabel BarangATK adalah 87 Byte
Diperkirakan dalam satu hari terjadi 30 penambahan barang ATK
Dalam satu tahun pertumbuhan dari tabel ini adalah 30*30*12*87 =
939.600 Byte atau 917,578 KB
Tabel 4.33. Estimasi Disk Space Entitas BarangATK
Field Type Ukuran
KodeATK
KodeKaryawan
TglPemakaian
Qty
Char
Char
Date
Int
6
6
-
11
Kapasitas dari tabel DetailPemakainATK adalah 23 Byte
Diperkirakan dalam satu hari terjadi 100 pemakaian Barang ATK
Dalam satu tahun pertumbuhan dari tabel ini adalah 100*30*12*23 =
828.000 Byte atau 808,593 KB
Tabel 4.34. Estimasi Disk Space Entitas DetailPemakaianATK
Field Type Ukuran
KodeInventaris
NamaInventaris
KodeKelompokInventaris
Char
Varchar
Char
6
100
5
265
Status Varchar 20
Kapasitas dari tabel BarangInventaris adalah 131 Byte
Diperkirakan dalam satu bulan terjadi 20 penambahan Barang Inventaris
Dalam satu tahun pertumbuhan dari tabel ini adalah 20*12*131 = 31.440
Byte atau 30,703 KB
Tabel 4.35. Estimasi Disk Space Entitas BarangInventaris
Field Type Ukuran
KodeInventaris
KodeKaryawan
TglPemakaian
Lokasi
Char
Char
Date
Varchar
6
6
-
50
Kapasitas dari tabel DetailPemakaianInventaris adalah 62 Byte
Diperkirakan dalam satu hari terjadi 50 pemakaian Barang Inventaris
Dalam satu tahun pertumbuhan dari tabel ini adalah 50*30*12*62 =
1.160.000 Byte atau 1.089,843 KB
Tabel 4.36. Estimasi Disk Space Entitas DetailPemakaianInventaris
Field Type Ukuran
NoBonSementaraPembelianATK Int 11
266
Tanggal
Keterangan
KodeKaryawan
DanaPembelianATK
NoSuratPersetujuanATK
Date
Varchar
Char
BigInt
Varchar
-
50
6
20
10
Kapasitas dari tabel BonSementaraPembelianATK adalah 97 Byte
Diperkirakan dalam satu hari terjadi 3 transaksi
Diperkirakan dalam setiap transaksi terdapat 3 Karyawan
Dalam satu tahun pertumbuhan dari tabel ini adalah 3*3*30*12*97 =
314.280 Byte atau 306,914 KB
Tabel 4.37. Estimasi Disk Space Entitas BonSementaraPembelianATK
Field Type Ukuran
NoBonSementaraPembelianInventaris
Tanggal
Keterangan
KodeKaryawan
NoBKM
Int
Date
Varchar
Char
Int
11
-
50
6
11
Kapasitas dari tabel BonSementaraPembelianInventaris adalah 78 Byte
Diperkirakan dalam satu bulan terjadi 10 transaksi
Diperkirakan dalam setiap transaksi terdapat 2 Karyawan
Dalam satu tahun pertumbuhan dari tabel ini adalah 10*2*12*78 =
267
18.720 Byte atau 18,281 KB
Tabel 4.38. Estimasi Disk Space Entitas BonSementaraPembelianInventaris
Field Type Ukuran
NoBKKATK
Tanggal
KodeKaryawan
NoNPATK
JumlahPengeluranPembelianATK
Int
Date
Char
Varchar
BigInt
11
-
6
10
20
Kapasitas dari tabel BuktiKasKeluarATK adalah 47 Byte
Diperkirakan dalam satu hari terjadi 3 transaksi
Diperkirakan dalam setiap transaksi terdapat 3 Karyawan
Dalam satu tahun pertumbuhan dari tabel ini adalah 3*3*30*12*47 =
152.280 Byte atau 148, 710 KB
Tabel 4.39. Estimasi Disk Space Entitas BuktiKasKeluarATK
Field Type Ukuran
NoBKKInventaris
Tanggal
KodeKaryawan
NoNPInventaris
JumlahPengeluaranPembelianInventaris
Int
Date
Char
Int
BigInt
11
-
6
10
20
268
Kapasitas dari tabel BuktiKasKeluarInventaris adalah 47 Byte
Diperkirakan dalam satu bulan terjadi 10 transaksi
Diperkirakan dalam setiap transaksi terdapat 2 Karyawan
Dalam satu tahun pertumbuhan dari tabel ini adalah 10*2*12*47 =
11.280 Byte atau 11,016 KB
Tabel 4.40. Estimasi Disk Space Entitas BuktiKasKeluarInventaris
Field Type Ukuran
NoBKM
Tanggal
KodeKaryawan
NoSuratPersetujuanSPPInventaris
DanaPembelianInventaris
Int
Date
Char
Int
BigInt
11
-
6
11
20
Kapasitas dari tabel BuktiKasMasuk adalah 48 Byte
Diperkirakan dalam satu bulan terjadi 10 transaksi
Dalam satu tahun pertumbuhan dari tabel ini adalah 10*12*48 = 5.760
Byte atau 5,625 KB
Tabel 4.41. Estimasi Disk Space Entitas BuktiKasMasuk
Field Type Ukuran
NoNPATK
KodeATK
Varchar
Char
10
6
269
Qty
HargaSatuan
Int
BigInt
11
20
Kapasitas dari tabel DetailPembelianATK adalah 47 Byte
Diperkirakan dalam satu hari terjadi 3 transaksi
Diperkirakan dalam setiap transaksi terdapat 10 Barang ATK
Dalam satu tahun pertumbuhan dari tabel ini adalah 3*10*30*12*47 =
507.600 Byte atau 495,703 KB
Tabel 4.42. Estimasi Disk Space Entitas DetailPembelianATK
Field Type Ukuran
NoNPInventaris
KodeKelompokInventaris
Qty
HargaSatuan
Varchar
Char
Int
BigInt
10
5
11
20
Kapasitas dari tabel DetailPembelianInventaris adalah 46 Byte
Diperkirakan dalam satu bulan terjadi 10 transaksi
Diperkirakan dalam setiap transaksi terdapat 2 Barang Inventaris
Dalam satu tahun pertumbuhan dari tabel ini adalah 10*2*12*46 =
11.040 Byte atau 10,781 KB
Tabel 4.43. Estimasi Disk Space Entitas DetailPembelianInventaris
270
Field Type Ukuran
NoSuratPeminjaman
KodeInventaris
StatusPeminjaman
Int
Char
Varchar
11
6
20
Kapasitas dari tabel DetailPeminjamanInventaris adalah 37 Byte
Diperkirakan dalam satu bulan terjadi 10 transaksi
Diperkirakan setiap transaksi terdapat 2 barang Inventaris
Dalam satu tahun pertumbuhan dari tabel ini adalah 2*10*12*37 = 8.880
Byte atau 8,67 KB
Tabel 4.44. Estimasi Disk Space Entitas DetailPeminjamanInventaris
Field Type Ukuran
NoSPPATK
KodeATK
Qty
PerkiraanHarga
Int
Char
Int
BigInt
11
6
11
20
Kapasitas dari tabel DetailPengajuanPembelianATK adalah 48 Byte
Diperkirakan dalam satu bulan terjadi 3 transaksi
Diperkirakan dalam setiap transaksi terdapat 10 Barang ATK
Dalam satu tahun pertumbuhan dari tabel ini adalah 3*10*12*48 =
17.280 Byte atau 16,875 KB
Tabel 4.45. Estimasi Disk Space Entitas DetailPengajuanPembelianATK
271
Field Type Ukuran
NoSPPInventaris
KodeKelompokInventaris
Qty
PerkiraanHarga
Int
Char
Int
BigInt
11
5
11
20
Kapasitas dari tabel DetailPengajuanPembelianInventaris adalah 47 Byte
Diperkirakan dalam satu bulan terjadi 10 transaksi
Diperkirakan dalam setiap transaksi terdapat 2 Kelompok Barang
Inventaris
Dalam satu tahun pertumbuhan dari tabel ini adalah 10*2*12*47 =
11.280 Byte atau 11,016 KB
Tabel 4.46. Estimasi Disk Space Entitas DetailPengajuanPembelianInventaris
Field Type Ukuran
KodePengembalian
KodeInventaris
Int
Char
11
6
Kapasitas dari tabel DetailPengembalianInventaris adalah 17 Byte
Diperkirakan dalam satu bulan terjadi 10 transaksi
Diperkirakan dalam setiap transaksi terdapat 2 Barang Inventaris
Dalam satu tahun pertumbuhan dari tabel ini adalah 10*2*12*17 = 4.080
Byte atau 3,984 KB
Tabel 4.47. Estimasi Disk Space Entitas DetailPengembalianInventaris
272
Field Type Ukuran
NoSuratPersetujuanSPPATK
NoSPPATK
Int
Int
11
11
Kapasitas dari tabel DetailPersetujuanSPPATK adalah 22 Byte
Diperkirakan dalam satu bulan terjadi 3 transaksi
Diperkirakan dalam setiap transaksi terdapat 10 Barang ATK
Diperkirakan dalam setiap transaksi terdapat 3 Karyawan
Dalam satu tahun pertumbuhan dari tabel ini adalah 3*10*3*12*22 =
23.760 Byte atau 23,203 KB
Tabel 4.48. Estimasi Disk Space Entitas DetailPersetujuanSPPATK
Field Type Ukuran
NoSuratPersetujuanSPPInvetaris
NoSPPInventaris
Int
Int
11
11
Kapasitas dari tabel DetailPersetujuanSPPInventaris adalah 22 Byte
Diperkirakan dalam satu bulan terjadi 10 transaksi
Diperkirakan dalam setiap transaksi terdapat 2 Barang Inventaris
Dalam satu tahun pertumbuhan dari tabel ini adalah 10*2*12*22 = 5.280
Byte atau 5,156 KB
Tabel 4.49. Estimasi Disk Space Entitas DetailPersetujuanSPPInventaris
273
Field Type Ukuran
NoSuratPersetujuanSPPInvetaris
KodeKaryawan
Int
Char
11
6
Kapasitas dari tabel DetailPersetujuanSPPInventarisOlehKaryawan
adalah 17 Byte
Diperkirakan dalam satu bulan terjadi 10 transaksi
Diperkirakan dalam setiap transaksi terdapat 5 Karyawan
Dalam satu tahun pertumbuhan dari tabel ini adalah 5*10*12*17 =
10.200 Byte atau 9,96 KB
Tabel 4.50. Estimasi Disk Space Entitas DetailPersetujuanSPPInventaris
OlehKaryawan
Field Type Ukuran
KodeDivisi
NamaDivisi
Char
Varchar
5
20
Kapasitas dari tabel Divisi adalah 25 Byte
Diperkirakan dalam satu bulan terjadi 1 penambahan Divisi
Dalam satu tahun pertumbuhan dari tabel ini adalah 1*25 = 25 Byte atau
0.024 KB
Tabel 4.51. Estimasi Disk Space Entitas Divisi
274
Field Type Ukuran
KodeJabatan
NamaJabatan
KodeDivisi
Char
Varchar
Char
5
20
5
Kapasitas dari tabel Jabatan adalah 30 Byte
Diperkirakan dalam satu tahun terjadi 1 penambahan Jabatan
Dalam satu tahun pertumbuhan dari tabel ini adalah 1*30 = 30 Byte atau
0,029 KB
Tabel 4.52. Estimasi Disk Space Entitas Jabatan
Field Type Ukuran
KodeKaryawan
NamaKaryawan
Alamat
KodePos
JenisKelamin
TglLahir
KodeJabatan
Username
Password
Photo
Char
Varchar
Char
Char
Varchar
Date
Char
Varchar
Varchar
Varchar
6
50
50
5
10
-
5
20
100
50
Kapasitas dari tabel Karyawan adalah 296 Byte
Diperkirakan dalam satu bulan terjadi penambahan 10 Karyawan
275
Dalam satu tahun pertumbuhan dari tabel ini adalah 10*12*296 = 35.520
Byte atau 34,687 KB
Tabel 4.53. Estimasi Disk Space Entitas Karyawan
Field Type Ukuran
KodeKelompokInventaris
NamaKelompokInventaris
JumlahStok
InsertedDatetime
Char
Varchar
Int
Datetime
5
50
11
-
Kapasitas dari tabel KelompokBarangInventaris adalah 66 Byte
Diperkirakan dalam satu bulan terjadi 5 transaksi
Dalam satu tahun pertumbuhan dari tabel ini adalah 5*12*66 = 3.960
Byte atau 3,867 KB
Tabel 4.54. Estimasi Disk Space Entitas KelompokBarangInventaris
Field Type Ukuran
NoRegistrasiInventaris
TglRegistrasi
KodeInventaris
Varchar
Date
Char
25
-
6
Kapasitas dari tabel NomorRegistrasiInventaris adalah 31 Byte
Diperkirakan dalam satu bulan terjadi 20 transaksi
Dalam satu tahun pertumbuhan dari tabel ini adalah 20*12*31 = 7440
276
Byte atau 7,256 KB
Tabel 4.55. Estimasi Disk Space Entitas NomorRegistrasiInventaris
Field Type Ukuran
NoNPATK
TglPembelianATK
KodeToko
KodeKaryawan
Varchar
Date
Char
Char
10
-
5
6
Kapasitas dari tabel PembelianATK adalah 21 Byte
Diperkirakan dalam satu bulan terjadi 10 transaksi
Dalam satu tahun pertumbuhan dari tabel ini adalah 10*12*21 = 2.250
Byte atau 2,460 KB
Tabel 4.56. Estimasi Disk Space Entitas PembelianATK
Field Type Ukuran
NoNPInventaris
TglPembelianInventaris
KodeToko
KodeKaryawan
Varchar
Date
Char
Char
10
-
5
6
Kapasitas dari tabel PembelianInventaris adalah 21 Byte
Diperkirakan dalam satu bulan terjadi 10 transaksi
Dalam satu tahun pertumbuhan dari tabel ini adalah 10*12*21 = 2.250
277
Byte atau 2,460 KB
Tabel 4.57. Estimasi Disk Space Entitas PembelianInventaris
Field Type Ukuran
NoSuratPeminjaman
TglPinjam
NoSuratPengantarPeminjaman
Perihal
NamaPeminjam
NamaPerusahaanPeminjam
KodeKaryawan
Int
Date
Varchar
Varchar
Varchar
Varchar
Char
11
-
30
100
20
20
6
Kapasitas dari tabel PeminjamanInventaris adalah 187 Byte
Diperkirakan dalam satu bulan terjadi 10 transaksi
Dalam satu tahun pertumbuhan dari tabel ini adalah 10*12*187 = 22.440
Byte atau 21,914 KB
Tabel 4.58. Estimasi Disk Space Entitas PeminjamanInventaris
Field Type Ukuran
KodePengembalian
NoSuratPeminjaman
TglKembali
NamaPengembali
Int
Int
Date
Varchar
11
11
-
20
278
KodeKaryawan Char 6
Kapasitas dari tabel PengembalianInventaris adalah 48 Byte
Diperkirakan dalam satu bulan terjadi 10 transaksi
Dalam satu tahun pertumbuhan dari tabel ini adalah 10*12*48 = 5.760
Byte atau 5,625 KB
Tabel 4.59. Estimasi Disk Space Entitas PengembalianInventaris
Field Type Ukuran
NoSuratPersetujuanSPPATK
TglPersetujuan
KodeKaryawan
Int
Date
Char
11
-
6
Kapasitas dari tabel PersetujuanSPPATK adalah 17 Byte
Diperkirakan dalam satu hari terjadi 3 transaksi
Dalam satu tahun pertumbuhan dari tabel ini adalah 3*30*12*17 =
18.360 Byte atau 17,93 KB
Tabel 4.60. Estimasi Disk Space Entitas PersetujuanSPPATK
Field Type Ukuran
NoSuratPersetujuanSPPInventaris
TglPersetujuan
Int
Date
11
-
Kapasitas dari tabel PersetujuanSPPInventaris adalah 11 Byte
Diperkirakan dalam satu bulan terjadi 10 transaksi
279
Dalam satu tahun pertumbuhan dari tabel ini adalah 10*12*11 = 1.320
Byte atau 1,289 KB
Tabel 4.61. Estimasi Disk Space Entitas PersetujuanSPPInventaris
Field Type Ukuran
KodePos
Daerah
Char
Varchar
5
50
Kapasitas dari tabel Pos adalah 55 Byte
Diperkirakan dalam satu bulan terjadi penambahan 5 KodePos
Dalam satu tahun pertumbuhan dari tabel ini adalah 5*12*55 = 3.300
Byte atau 3,222 KB
Tabel 4.62. Estimasi Disk Space Entitas Pos
Field Type Ukuran
NoSPPATK
TglPengajuanSPPATK
Keperluan
KodeKaryawan
StatusPersetujuan
Int
Date
Varchar
Char
Varchar
11
-
100
6
20
Kapasitas dari tabel SuratPengajuanPembelianATK adalah 137 Byte
Diperkirakan dalam satu hari terjadi 3 transaksi
Dalam satu tahun pertumbuhan dari tabel ini adalah 3*30*12*137 =
280
147.960 Byte atau 144,49 KB
Tabel 4.63. Estimasi Disk Space Entitas SuratPengajuanPembelianATK
Field Type Ukuran
NoSPPInventaris
TglPengajuanSPPInventaris
Keperluan
KodeKaryawan
StatusPersetujuan
Int
Date
Varchar
Char
Varchar
11
-
100
6
20
Kapasitas dari tabel SuratPengajuanPembelianInventaris adalah 137
Byte
Diperkirakan dalam satu hari terjadi 3 transaksi
Dalam satu tahun pertumbuhan dari tabel ini adalah 3*30*12*137 =
147.960 Byte atau 144,49 KB
Tabel 4.64. Estimasi Disk Space Entitas SuratPengajuanPembelianInventaris
Field Type Ukuran
TeleponKaryawan
KodeKaryawan
Varchar
Char
15
6
Kapasitas dari tabel TeleponKaryawan adalah 21 Byte
Diperkirakan dalam satu bulan terjadi penambahan 10
TeleponKaryawan
281
Diperkirakan setiap penambahan terdapat 2 Telepon
Dalam satu tahun pertumbuhan dari tabel ini adalah 10*2*12*21 = 5.040
Byte atau 4,921 KB
Tabel 4.65. Estimasi Disk Space Entitas TeleponKaryawan
Field Type Ukuran
Telepontoko
KodeToko
Varchar
Char
15
5
Kapasitas dari tabel TeleponToko adalah 20 Byte
Diperkirakan dalam satu bulan terjadi penambahan 5 TeleponToko
Diperkirakan setiap penambahan terdapat 2 Telepon
Dalam satu tahun pertumbuhan dari tabel ini adalah 5*2*12*20 = 2.400
Byte atau 2,343 KB
Tabel 4.66. Estimasi Disk Space Entitas TeleponToko
Field Type Ukuran
KodeToko
NamaToko
Alamat
KodePos
Char
Varchar
Varchar
Char
5
20
50
5
Kapasitas dari tabel Toko adalah 50 Byte
Diperkirakan dalam satu bulan terjadi penambahan 5 Toko
282
Dalam satu tahun pertumbuhan dari tabel ini adalah 5*12*50 = 4.800
Byte atau 4,68 KB
Tabel 4.67. Estimasi Disk Space Entitas Toko
Field Type Ukuran
KodeATK
InsertedDatetime
JumlahStok
Char
Datetime
Int
6
-
11
Kapasitas dari tabel HsStokATK adalah 17 Byte
Diperkirakan dalam satu bulan terjadi 100 transaksi
Diperkirakan dalam setiap transaksi terdapat 2 Barang ATK
Dalam satu tahun pertumbuhan dari tabel ini adalah 100*2*12*17 =
40.800 Byte atau 39,844 KB
Tabel 4.68. Estimasi Disk Space Entitas HsStokATK
Field Type Ukuran
KodeKelompokInventaris
InsertedDatetime
JumlahStok
Char
Datetime
Int
5
-
11
Kapasitas dari tabel HsStokInventaris adalah 16 Byte
Diperkirakan dalam satu bulan terjadi 100 transaksi
Diperkirakan dalam setiap transaksi terdapat 2 Barang ATK
283
Dalam satu tahun pertumbuhan dari tabel ini adalah 100*2*12*16 =
38.400 Byte atau 37,5 KB
Tabel 4.69. Estimasi Disk Space Entitas HsStokInventaris
Nama Tabel Kapasitas Yang Dibutuhkan
Dalam Satu Tahun
BarangATK 939.600 Byte atau 917,578 KB
DetailPemakaianATK 828.000 Byte atau 808,593 KB
BarangInventaris 31.440 Byte atau 30,703 KB
DetailPemakaianInventaris 1.160.000 Byte atau 1.089,843
KB
BonSementaraPembelianATK 314.280 Byte atau 306,914 KB
BonSementaraPembelianInventaris 18.720 Byte atau 18,281 KB
BuktiKasKeluarATK 152.280 Byte atau 148,710 KB
BuktiKasKeluarInventaris 11.280 Byte atau 11,016 KB
BuktiKasMasuk 5.760 Byte atau 5,625 KB
DetailPembelianATK 507.600 Byte atau 495,703 KB
DetailPembelianInventaris 11.040 Byte atau 10,781 KB
DetailPeminjamanInventaris 8.880 Byte atau 8,67 KB
DetailPengajuanPembelianATK 17.280 Byte atau 16,875 KB
DetailPengajuanPembelianInventaris 11.280 Byte atau 11,016 KB
DetailPengembalianInventaris 4.080 Byte atau 3,984 KB
284
DetailPersetujuanSPPATK 23.760 Byte atau 23,203 KB
DetailPersetujuanSPPInventaris 5.280 Byte atau 5,156 KB
DetailPersetujuanSPPInventarisOleh
Karyawan
10.200 Byte atau 9,96 KB
Divisi 25 Byte atau 0.024 KB
Jabatan 30 Byte atau 0,029 KB
Karyawan 35.520 Byte atau 34,687 KB
KelompokBarangInventaris 3.960 Byte atau 3,867 KB
NomorRegistrasiInventaris 7.440 Byte atau 7,256 KB
PembelianATK 2.250 Byte atau 2,460 KB
PembelianInventaris 2.250 Byte atau 2,460 KB
PeminjamanInventaris 22.440 Byte atau 21,914 KB
PengembalianInventaris 5.760 Byte atau 5,625 KB
PersetujuanSPPATK 18.360 Byte atau 17,93 KB
PersetujuanSPPInventaris 1.320 Byte atau 1,289 KB
SuratPengajuanPembelianATK 147.960 Byte atau 144,49 KB
SuratPengajuanPembelianInventaris 147.960 Byte atau 144,49 KB
Pos 3.300 Byte atau 3,222 KB
TeleponKaryawan 5.040 Byte atau 4,921 KB
TeleponToko 2.400 Byte atau 2,343 KB
Toko 4.800 Byte atau 4,68 KB
HsStokATK 40.800 Byte atau 39,844 KB
HsStokInventaris 38.400 Byte atau 37,5 KB
285
Kapasitas yang dibutuhkan dalam satu tahun adalah 3.805.575 Byte atau
3.716,382 KB
Tabel 4.70. Estimasi Disk Space Semua Entitas
4.1.3.6. Merancang User View
Tujuan dari langkah ini adalah untuk merancang user view yang
diidentifikasi selama tahap pengumpulan kebutuhan dan analisa dari
pengembangan daur ulang sistem basis data.
Direktur Executive
Officer
Administration
Manager
Finance &
Accounting
Administrat
ion Officer
General
Officer
StokBarangATKv X X X - X X
StokBarangInventarrisv X X X - X X
Karyawanv X X X X X X
PemakaianATKv X X X - X X
PemakaianInventarisv X X X - X X
PembelianATKv X X X X X X
PembelianInventarisv X X X X X X
PeminjamanInventaris X X X - X X
PengembalianInventaris X X X - X X
Tabel 4.71. User View
1. StokBarangATKv
Create view StokBarangATKv
286
As
Select KodeATK, NamaATK, Satuan, JumlahStok
From BarangATK
2. StokBarangInventarisv
Create view StokBarangInventaris
As
Select KodeKelompokInventaris, NamaKelompokInventaris,
JumlahStok
From KelompokBarangInventaris
3. Karyawanv
Create view Karyawanv
As
Select a.KodeKaryawan, a.NamaKaryawan, a.Alamat, a.KodePos,
b.Daerah, a.JenisKelamin, a.TglLahir, a.KodeJabatan, d.Jabatan,
a.Username, a.Password, c.TeleponKaryawan
From Karyawan a, Pos b, TeleponKaryawan c, Jabatan d
Where a.KodePos = b.KodePos and a.KodeKaryawan =
c.KodeKaryawan and a.KodeJabatan = d.KodeJabatan
4. PemakaianATKv
Create view PemakaianATKv
As
Select b.KodeKaryawan, a.NamaKaryawan, c.NamaATK,
b.TglPemakaian, b.Qty
From Karyawan a, DetailPemakaianATK b, BarangATK c
287
Where a.KodeKaryawan = b.KodeKaryawan and b.KodeATK =
c.KodeATK
5. PemakaianInventarisv
Create view PemakaianInventarisv
As
Select a.KodeKaryawan, a.NamaKaryawan, b.NamaInventaris,
c.NomorRegistrasiInventaris , d.TglPemakaian, d.Lokasi
From Karyawan a, BarangInventaris b, NomorRegistrasiInventaris c,
DetailPemakaianInventaris d
Where a.KodeKaryawan = d.KodeKaryawan and b.KodeInventaris =
c.KodeInventaris and c.KodeInventaris = c.KodeInventaris
6. PembelianATKv
Create view PembelianATKv
As
Select a.NoNPATK, a.TglPembelianATK, a.KodeToko, b.NamaToko,
a.KodeKaryawan, c.NamaKaryawan, d.Qty, d.HargaSatuan,
e.BarangATK
From PembelianATK a, Toko b, Karyawan c, DetailPembelianATK d,
BarangATK e
Where a.KodeToko = b.KodeToko and a.KodeKaryawan =
c.KodeKaryawan and a.NoNPATK = d.NoNPATK and d.KodeATK =
e.KodeATK
7. PembelianInventarisv
Create view PembelianInventarisv
288
As
Select a.NoNPInventaris, a.TglPembelianInventaris, a.KodeToko,
b.NamaToko, a.KodeKaryawan, c.NamaKaryawan, d.Qty,
d.HargaSatuan, e.NamaKelompokInventaris
From PembelianInventaris a, Toko b, Karyawan c,
DetailPembelianInventaris d, KelompokBarangInventaris e
Where a.KodeToko = b.KodeToko and a.KodeKaryawan =
c.KodeKaryawan and a.NoNPInventaris = d.NoNPInventaris and
d.KodeKelompokInventaris = e.KodeKelompokInventaris
8. PeminjamanInventarisv
Create view PeminjamanInventarisv
As
Select a.NoSuratPeminjaman, a.TglPinjam,
a.NoSuratPengantarPeminjam, a.Perihal, a.NamaPeminjam,
a.NamaPerusahaanPeminjam, a.KodeKaryawan, b.NamaKaryawan,
d.NamaInventaris
From PeminjamanInventaris a, Karyawan, DetailPeminjamanInventaris
c, BarangInventaris d
Where a.KodeKaryawan = b.KodeKaryawan and a.NoSuratPeminjaman
= c.NoSuratPeminjaman and c.KodeInventaris = d.KodeInventaris
9. PengembalianInventarisv
Create view PengembalianInventarisv
As
289
Select a.KodePengembalian, b.TglPinjam, b.Perihal, b.NamaPeminjam,
b.NamaPerusahaanPeminjam, a.TglKembali, a.NamaPengembali,
a.KodeKaryawan, c.NamaKaryawan, e.NamaInventaris
From PengembalianInventaris a, PeminjamanInventaris b, Karyawan c,
DetailPeminjamanInventaris d, BarangInventaris e
Where a.NoSuratPeminjaman = b.NoSuratPeminjaman and
a.KodeKaryawan = c.KodeKaryawan and a.KodePengembalian =
d.KodePengembalian and d.KodeInventaris = e.KodeInventaris
4.1.3.7. Merancang Mekanisme Keamanan
Tujuan dari langkah ini adalah untuk merancang mekanisme
keamanan pada basis data yaitu dengan cara membatasi hak akses pada
pemakaiyang bertujuan untuk menjaga keamanan data dalam perusahaan.
Perancangan mekanisme keamanan adalah sebagai berikut:
(President Director)
GRANT ALL ON PersetujuanSPPInventaris TO President Director
GRANT ALL ON DetailPersetujuanSPPInventaris TO President
Director
(Executive Officer)
GRANT ALL ON PersetujuanSPPATK TO Executive Officer
GRANT ALL ON PersetujuanSPPInventaris TO Executive Officer
290
GRANT ALL ON SuratPengajuanPembelianATK TO Executive Officer
GRANT ALL ON SuratPengajuanPembelianInventaris TO Executive
Officer
GRANT ALL ON DetailPengajuanPembelianATK TO Executive
Officer
GRANT ALL ON DetailPengajuanPembelianInventaris TO Executive
Officer
GRANT ALL ON DetailPersetujuanSPPATK TO Executive Officer
GRANT ALL ON DetailPersetujuanSPPInventaris TO Executive
Officer
GRANT ALL ON DetailPersetujuanSPPInventarisOlehKaryawan TO
Executive Officer
(Administration Manager)
GRANT ALL ON Divisi TO Admin
GRANT ALL ON Jabatan TO Admin
GRANT ALL ON Karyawan TO Admin
GRANT ALL ON SuratPengajuanPembelianATK TO Admin
GRANT ALL ON SuratPengajuanPembelianInventaris TO Admin
GRANT ALL ON TeleponKaryawan TO Admin
GRANT ALL ON TeleponToko TO Admin
GRANT ALL ON Pos TO Admin
GRANT ALL ON DetailPengajuanPembelianATK TO Admin
GRANT ALL ON DetailPengajuanPembelianInventaris TO Admin
291
GRANT ALL ON Toko TO Admin
(General Affair)
GRANT ALL ON BarangATK TO General Affair
GRANT ALL ON BarangInventaris TO General Affair
GRANT ALL ON PeminjamanInventaris TO General Affair
GRANT ALL ON PengembalianInventaris TO General Affair
GRANT ALL ON SuratPengajuanPembelianATK TO General Affair
GRANT ALL ON SuratPengajuanPembelianInventaris TO General
Affair
GRANT ALL ON DetailPeminjamanInventaris TO General Affair
GRANT ALL ON DetailPengembalianInventaris TO General Affair
GRANT ALL ON DetailPengajuanPembelianATK TO General Affair
GRANT ALL ON DetailPengajuanPembelianInventaris TO General
Affair
GRANT ALL ON DetailPembelianATK TO General Affair
GRANT ALL ON DetailPembelianInventaris TO General Affair
GRANT ALL ON PembelianATK TO General Affair
GRANT ALL ON PembelianInventaris TO General Affair
(Finance)
GRANT ALL ON BonSementaraPembelianATK TO Finance
GRANT ALL ON BonSementaraPembelianInventaris TO Finance
GRANT ALL ON BuktiKasKeluarATK TO Finance
292
GRANT ALL ON BuktiKasKeluarInventaris TO Finance
GRANT ALL ON BuktiKasMasukATK TO Finance
4.2. Perancangan Aplikasi
Berikut ini adalah perancangan aplikasi yang di dalamnya terdapat
perancangan struktur menu, perancangan STD, perancangan input dan output
dari aplikasi, spesifikasi proses serta perancangan layer.
4.2.1. Rancangan Struktur Menu
Struktur menu menjelaskan tentang susunan menu yang ada di dalam
aplikasi yang akan digunakan. Struktur menu yang dibuat akan dibagi
berdasarkan setiap jabatan seperti director, executive officer, general affair,
admin, serta finance dan accounting. Berikut ini merupakan struktur menu
dari rancangan aplikasi pada Perusahaan:
293
Gambar 4.22. Struktur menu untuk administration manager dan administration officer
294
Gambar 4.23. Struktur menu untuk director
295
Gambar 4.24. Struktur menu untuk executive officer
296
Gambar 4.25. Struktur menu untuk general affair
297
Gambar 4.26. Struktur menu untuk finance dan accounting
298
4.2.2. Perancangan Input / Output
Perancangan input dan output menggambarkan tentang rancangan
input dan rancangan output dari aplikasi yang akan diterapkan dalam program
aplikasi yang digunakan.
4.2.2.1. Perancangan Input
Berikut ini adalah rancangan input yang akan diterapkan dalam
program aplikasi yang digunakan:
Gambar 4.27. Rancangan input master divisi
299
Gambar 4.28. Rancangan input master jabatan
300
Gambar 4.29. Rancangan input master karyawan
301
Gambar 4.30. Rancangan input detail karyawan
Gambar 4.31. Rancangan input master pos
302
Gambar 4.32. Rancangan input master barang ATK
Gambar 4.33. Rancangan input master barang Inventaris
303
Gambar 4.34. Rancangan input master nomor registrasi Inventaris
Gambar 4.35. Rancangan input master toko
304
Gambar 4.36. Rancangan input detail toko
305
Gambar 4.37. Rancangan input pengajuan pembelian ATK
306
Gambar 4.38. Rancangan input pengajuan pembelian Inventaris
307
Gambar 4.39. Rancangan input persetujuan pembelian ATK
308
Gambar 4.40. Rancangan input persetujuan pembelian Inventaris
309
Gambar 4.41. Rancangan input pemakaian ATK
310
Gambar 4.42. Rancangan input pemakaian Inventaris
311
Gambar 4.43. Rancangan input pembelian ATK
312
Gambar 4.44. Rancangan input pembelian Inventaris
313
Gambar 4.45. Rancangan input peminjaman Inventaris
314
Gambar 4.46. Rancangan input pengembalian inventaris
315
Gambar 4.47. Rancangan input bukti kas masuk
Gambar 4.48. Rancangan input bon sementara pembelian ATK
316
Gambar 4.49. Rancangan input bon sementara pembelian Inventaris
Gambar 4.50. Rancangan input bukti kas keluar pembelian ATK
317
Gambar 4.51. Rancangan input bukti kas keluar pembelian Inventaris
4.2.2.2. Perancangan Output
Berikut ini adalah rancangan output yang akan diterapkan dalam
program aplikasi yang digunakan:
318
Gambar 4.52. Rancangan daftar karyawan
Gambar 4.53. Rancangan laporan stok barang ATK
319
Gambar 4.54. Rancangan laporan stok barang Inventaris
Gambar 4.55. Rancangan laporan pemakaian ATK
320
Gambar 4.56. Rancangan laporan pemakaian Inventaris
321
Gambar 4.57. Rancangan laporan pembelian ATK
322
Gambar 4.58. Rancangan laporan pembelian Inventaris
323
Gambar 4.59. Rancangan laporan peminjaman Inventaris
324
Gambar 4.60. Rancangan laporan pengembalian Inventaris
325
Gambar 4.61. Rancangan formulir pengajuan pembelian ATK
326
Gambar 4.62. Rancangan formulir pengajuan pembelian Inventaris
327
Gambar 4.63. Rancangan bukti kas keluar ATK
328
Gambar 4.64. Rancangan bukit kas keluar Inventaris
329
Gambar 4.65. Rancangan bukti kas masuk
330
Gambar 4.66. Rancangan bon sementara pembelian ATK
331
Gambar 4.67. Rancangan bon sementara pembelian Inventaris
332
4.2.3. State Transition Diagram
State Transition Diagram menggambarkan respon objek terhadap suatu
kejadian. Respon tersebut akan melibatkan objek yang berada di state yang
sama. State Transition Diagram juga dibagi berdasarkan setiap jabatan.
Berikut adalah State Transition Diagram dari rancangan aplikasi pada
Perusahaan:
Gambar 4.68. STD halaman login
Gambar 4.69. STD halaman home
333
Gambar 4.71. STD halaman edit profile
334
Gambar 4.72. STD halaman workboard untuk president director
335
Gambar 4.73. STD halaman workboard untuk administration manager
336
Gambar 4.74. STD halaman workboard untuk executive officer
337
Gambar 4.75. STD halaman workboard untuk general affair
338
Gambar 4.76. STD halaman workboard untuk finance & accounting
339
Gambar 4.77. STD halaman divisi
Gambar 4.78. STD halaman jabatan
340
Gambar 4.79. STD halaman karyawan
Gambar 4.80. STD halaman detail karyawan
341
Gambar 4.81. STD halaman Pos
342
Gambar 4.82. STD halaman barang inventaris
Gambar 4.83. STD halaman barang ATK
Gambar 4.84. STD halaman registrasi inventaris
343
Gambar 4.85. STD halaman toko
344
Gambar 4.86. STD halaman bukti kas masuk
Gambar 4.87. STD halaman detail bukti kas masuk
345
Gambar 4.88. STD halaman bon sementara pembelian ATK
Gambar 4.89. STD halaman detail bon sementara pembelian ATK
346
Gambar 4.90. STD halaman bon sementara pembelian inventaris
Gambar 4.91. STD halaman detail bon sementara pembelian inventaris
347
Gambar 4.92. STD halaman bukti kas keluar ATK
Gambar 4.93. STD halaman detail bukti kas keluar ATK
348
Gambar 4.94. STD halaman bukti kas keluar inventaris
Gambar 4.95. STD halaman detail bukti kas keluar inventaris
349
Gambar 4.96. STD halaman pengajuan pembelian ATK
Gambar 4.97. STD halaman pengajuan pembelian inventaris
4.2.4. Spesifikasi Proses / Modul
350
Berikut adalah spesifikasi proses dari aplikasi sistem basis data
berbasis web pembelian, dan persediaan yang dirancang:
Spesifikasi Module Login
module login
Masukkan Username dan Password
Jika tekan tombol Sign In
Validasi Username dan Password
Jika Validasi benar
Tampilkan halaman index
Akhir Jika
Jika Validasi salah
Tampilkan pesan kesalahan
Akhir Jika
Akhir Jika
akhir module
Spesifikasi Change Password
module changepassword
Masukan Username, New Password, dan Confirm Password
Jika tekan tombol Save
Validasi Username, New Password, dan Confirm Password
Jika Validasi benar
Tampilkan halaman index
351
Akhir Jika
Jika Validasi salah
Tampilkan pesan kesalahan
Akhir Jika
Akhir Jika
Jika tekan tombol Reset
Kosongkan isian
Akhir Jika
akhir module
Spesifikasi Edit Profile
module editprofile
Masukan perubahan data
Jika tekan tombol Save
Validasi data Profile
Jika Validasi benar
Ubah data dalam database
Tampilkan halaman index
Akhir Jika
Jika Validasi salah
Tampilkan pesan kesalahan
Akhir Jika
Akhir Jika
Jika tekan tombol Reset
352
Kosongkan isian
Akhir Jika
Jika tekan tombol Upload Photo
Tampilkan halaman uploadphoto
Jika tekan tombol Browse
Tampilkan kotak dialog
Masukkan Foto
Jika tekan tombol Save
Validasi Data Foto
Jika Validasi benar
Tampilkan halaman index
Akhir Jika
Jika Validasi salah
Tampilkan pesan kesalahan
Akhir Jika
Akhir Jika
Akhir Jika
Akhir Jika
akhir module
Spesifikasi Divisi
moduleViewDivisi
Jika tekan tombol Ubah
Tampilkan halaman editdivisi
353
Masukan perubahan data
Jika tekan tombol save
Validasi data Divisi
Jika Validasi benar
Update data dalam database
Tampilkan halaman viewdivisi
Akhir Jika
Jika Validasi salah
Tampilkan pesan kesalahan
Akhir Jika
Akhir Jika
Akhir Jika
Jika tekan tombol Hapus
Tampilkan halaman deletedivisi
Jika tekan tombol Ya
Delete data dalam database
Tampilkan halaman viewdivisi
Akhir Jika
Jika tekan tombol Tidak
Tampilkan halaman viewdivisi
Akhir Jika
Jika tekan tombol Tambah Data
Tampilkan halaman adddivisi
Masukan data baru