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 BarangATK
Deskripsi Menggambarkan
Alias BrgATK
barang ATK yang ada
Kejadian 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
BrgInv
Tidak ada satupun
barang-barang
atau ada satubarang
Inventaris yang sudah
Inventaris yang
atau belum
memiliki satu nomor
diregistrasi per
registrasi Inventaris
satuannya KelompokBaran
Menggambarkan
KlmpkBr
Satu kelompok barang
gInventaris
kelompok barang
gInv
Inventaris memiliki
Inventaris yang ada
satu atau beberapa
116 barang Inventaris. HsStokATK
HsStokInventaris
Menggambarkan
HistorySt
Satu atau banyak
jumlah stok barang
okATK
history stok ATK
ATK dan
dipunyai oleh satu
perubahannya
barang ATK.
Menggambarkan
HistorySt
Satu atau banyak
jumlah stok barang
okInventa
history stok Inventaris
Inventaris dan
ris
dipunyai oleh satu kelompok barang
perubahannya
Inventaris. Karyawan
Menggambarkan
Staff
Hanya satu karyawan
karyawan yang
yang boleh menangani
bekerja pada
setiap pembelian ATK
Perusahaan
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
yang boleh dimiliki
pada Perusahaan
oleh beberapa karyawan.
Divisi
Menggambarkan
Bagian
divisi yang ada
Satu divisi bisa mencakup satu ataupun beberapa jabatan didalamnya.
NomorRegistrasi
Menggambarkan
NoRegIn
Setiap Nomor
Inventaris
Nomor Registrasi
v
Registrasi Inventaris
terhadap barang
dimiliki oleh satu
Inventaris yang telah
ataupun tidak satupun
di register
barang Inventaris.
SuratPengajuanP
Menggambarkan detil
SPPATK
Satu atau beberapa
embelianATK
surat pengajuan
surat pengajuan
pembelian ATK oleh
pembelian ATK bisa
karyawan berdasarkan
berisi lebih dari satu
kebutuhannya
barang ATK. Satu atau beberapa surat pengajuan pembelian ATK bisa terdapat dalam satu atau beberapa Persetujuan SPPATK.
118 SuratPengajuanP
Menggambarkan detil
SPPInv
Satu atau beberapa
embelianInventar surat pengajuan
surat pengajuan
is
pembelian Inventaris
pembelian Inventaris
oleh karyawan
bisa berisi lebih dari
berdasarkan
satu kelompok barang
kebutuhannya
Inventaris. Satu atau beberapa surat pengajuan pembelian Inventaris bisa terdapat dalam satu atau beberapa Persetujuan SPP Inventaris.
PersetujuanSPPA Menggambarkan detil TK
Pengesah
Satu Persetujuan SPP
persetujuan pembelian anSPPAT
ATK menghasilkan
barang ATK oleh
satu bon sementara.
K
atasan karyawan yang
Satu atau banyak
berwenang
persetujuan SPP ATK ditangani oleh satu karyawan.
PersetujuanSPPI
Menggambarkan detil
Pengesah
Satu Persetujuan SPP
nventaris
persetujuan pembelian anSPPInv
Inventaris
barang Inventaris oleh
menghasilkan satu
119 atasan karyawan dan
bukti kas masuk.
juga atasan dari induk
Satu atau beberapa
perusahaan yang
persetujuan SPP
berwenang
Inventaris disetujui oleh satu atau lebih karyawan.
BonSementaraPe
Menggambarkan detil
BSBeliA
Satu atau beberapa
mbelianATK
bon sementara
TK
bon sementara
pembelian ATK yang
pembelian ATK
berisi perkiraan harga
disusun oleh satu
barang yang mau
karyawan.
dibeli BonSementaraPe
Menggambarkan detil
BSBeliIn
Satu atau beberapa
mbelianInventari
bon sementara
v
bon sementara
s
pembelian inventaris
pembelian Inventaris
yang berisi perkiraan
disusun oleh satu
harga barang yang
karyawan.
mau dibeli PembelianATK
Menggambarkan
BeliATK
Satu atau beberapa
pembelian barang
pembelian ATK
ATK yang terjadi di
ditangani oleh satu
Perusahaan
karyawan. Satu pembelian ATK
120 menghasilkan satu atau banyak bukti kas keluar ATK. PembelianInvent
Menggambarkan
BeliInv
Satu atau beberapa
aris
pembelian barang
pembelian Inventaris
Inventaris yang terjadi
ditangani oleh satu
di Perusahaan
karyawan. Satu pembelian Inventaris menghasilkan satu atau banyak bukti kas keluar Inventaris.
BuktiKasMasuk
Menggambarkan bukti BKM
Satu bukti kas masuk
kas masuk yang berisi
menghasilkan satu bon
dana untuk pembelian
sementara pembelian
atas pengajuan
Inventaris.
pembelian Inventaris
Satu atau beberapa
ke atasan induk
bukti kas masuk
perusahaan
dibuat oleh satu karyawan.
BuktiKasKeluar
Menggambarkan bukti BKKAT
Satu bukti kas keluar
ATK
kas keluar yang berisi
ATK dihasilkan dari
detil dana yang
K
satu pembelian ATK.
121 dikeluarkan untuk
Satu atau beberapa
pembelian ATK
bukti kas keluar ATK dibuat oleh satu karyawan.
BuktiKasKeluarI
Menggambarkan bukti BKKInv
Satu bukti kas keluar
nventaris
kas keluar yang berisi
Inventaris dihasilkan
detil dana yang
dari satu pembelian
dikeluarkan untuk
Inventaris.
pembelian Inventaris
Satu atau beberapa bukti kas keluar Inventaris dibuat oleh satu karyawan.
Toko
Menggambarkan toko
Store
Satu toko terlibat
tempat terjadinya
dalam satu pembelian
transaksi pembelian
ATK ataupun
ATK ataupun
Inventaris.
Inventaris PeminjamanInve
Menggambarkan
Peminjam Satu atau beberapa
ntaris
peminjaman
anInv
peminjaman inventaris
Inventaris perusahaan
bisa meliputi satu atau
oleh salah satu pihak
beberapa barang
perusahaan yang juga
inventaris.
berada dalam naungan
Satu atau beberapa
122 satu grup
peminjaman inventaris ditangani oleh satu karyawan.
PengembalianInv Menggambarkan
Pengemb
Satu atau beberapa
entaris
alianInv
pengembalian
pengembalian Inventaris perusahaan
inventaris bisa
oleh salah satu pihak
meliputi satu atau
perusahaan yang juga
beberapa barang
berada dalam naungan
inventaris.
satu grup
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
Relasi
Nama Entitas
plicity BarangATK
1..*
Multi plicity
Ada dalam
SuratPengajuanPem 1..* belianATK
BarangInventaris
1..1
Mempunyai
HsStokATK
1..*
1..*
Ada dalam
PeminjamanInventa 1..* ris
1..*
Ada dalam
PengembalianInven
1..*
taris 0..1
Memiliki
NomorRegistrasiIn
1..1
ventaris KelompokBarangInv
1..1
Memiliki
BarangInventaris
1..*
1..*
Ada dalam
SuratPengajuanPem 1..*
entaris
belian
Karyawan
1..1
Mempunyai
HsStokInventaris
1..*
1..1
Menangani
PembelianATK
1..*
1..1
Membuat
BuktiKasKeluarAT
1..*
K 1..1
Membuat
BuktiKasKeluarInv
1..*
entaris 1..1
Menangani
PembelianInventari s
1..*
124 1..1
Menangani
PeminjamanInventa 1..* ris
1..1
Menangani
PengembalianInven
1..*
taris 0..1
Mengisi
SuratPengajuanPem 1..* belianInventaris
1..*
Menyetujui
PersetujuanSPPInv
1..*
entaris 1..1
Membuat
BuktiKasMasuk
1..*
1..1
Menyusun
BonSementaraPem
1..*
belianInventaris 0..1
Mengisi
SuratPengajuanPem 1..* belianATK
1..1
Menyusun
BonSementaraPem
1..*
belianATK 1..1
Menyetujui
PersetujuanSPPAT
1..*
K 0..*
Memakai
BarangATK
1..*
0..*
Memakai
BarangInventaris
1.*
Jabatan
1..1
Dipunyai
Karyawan
1..*
Divisi
1..1
Mencakup
Jabatan
1..*
Terdapat dalam
PersetujuanSPPAT
1..*
SuratPengajuanPemb 1..* elianATK
K
125 SuratPengajuanPemb 1..*
Terdapat dalam
elianInventaris PersetujuanSPPATK
PersetujuanSPPInv
1..*
entaris 1..1
Menghasilkan
BonSementaraPem
1..1
belianATK PersetujuanSPPInve
1..1
Menghasilkan
BuktiKasMasuk
1..1
1..1
Menghasilkan
BuktiKasKeluarAT
1..1
ntaris PembelianATK
K 0..*
Menambah
BarangATK
1..*
BuktiKasKeluarInv
1..1
barang ATK PembelianInventaris
1..1
Menghasilkan
entaris 0..*
Menambah
KelompokBarangIn
barang
ventaris
1..*
Inventaris BuktiKasMasuk
1..1
Menghasilkan
BonSementaraPem
1..1
belianInventaris Toko
1..1
Terlibat dalam
PembelianATK
1..*
1..1
Terlibat dalam
PembelianInventari
1..*
s PeminjamanInventar
1..1
is Tabel 4.2. Identifikasi Tipe Relasi
Mencakup
PengembalianInven taris
1..*
126 Entity Relationship Diagram (ERD) menggambarkan relasi dari entitasentitas 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
Nulls
& length
Mult i value d
BarangATK
KodeATK
Secara unik
char (6)
No
No
mengidentifikasi barang ATK NamaATK
Nama barang ATK
varchar (50)
No
No
Satuan
Nama satuan
varchar (20)
No
No
int
No
No
datetime
No
No
char (6)
No
No
varchar
No
No
barang JumlahStok
Jumlah persediaan yang ada
InsertedDatetim
Waktu
e
pemasukkan atau pengubahan data
BarangInventaris
KodeInventaris
Secara unik mengidentifikasi barang Inventaris
NamaInventaris
Nama barang
129 Inventaris
(100)
KodeKelompok
Kode kelompok
char (5)
No
No
Inventaris
Inventaris
NamaKelompok
Nama kelompok
varchar (50)
No
No
Inventaris
inventaris
NoRegistrasiInv
Nomor registrasi
varchar (25)
No
No
entaris
Inventaris
Status
Status barang
varchar (20)
No
No
KelompokBarang
KodeKelompok
Kode kelompok
char (5)
No
No
Inventaris
Inventaris
Inventaris
NamaKelompok
Nama kelompok
varchar (50)
No
No
Inventaris
Inventaris
JumlahStok
Jumlah persediaan
int
No
No
datetime
No
No
yang ada InsertedDatetim
Waktu
e
pemasukkan atau pengubahan data
HsStokATK
KodeATK
Kode barang ATK
char (6)
No
No
InsertedDatetim
Waktu
datetime
No
No
e
pemasukkan atau
int
No
No
char (5)
No
No
pengubahan data JumlahStok
Jumlah persediaan yang ada
HsStokInventaris
KodeKelompok
Kode kelompok
Inventaris
barang Inventaris
130 datetime
No
No
int
No
No
char (6)
No
No
Nama karyawan
varchar (50)
No
No
Alamat
Alamat karyawan
varchar (50)
No
No
KodePos
Kode pos
char (5)
No
No
Daerah
Daerah
varchar (50)
No
No
Nomor telepon
varchar (15)
No
Yes
InsertedDatetim
Waktu
e
pemasukkan atau pengubahan data
JumlahStok
Jumlah persediaan yang ada
Karyawan
KodeKaryawan
Secara unik mengidentifikasi karyawan
NamaKaryawan Lokasi
Telepon
karyawan JenisKelamin
Jenis kelamin
varchar (10)
No
No
TglLahir
Tanggal lahir
date
No
No
Username
Nama user
varchar (20)
Yes
No
Password
Password
varchar
Yes
No
(100)
Jabatan
Photo
Photo
varchar (50)
Yes
No
KodeJabatan
Secara unik
char (5)
No
No
varchar (50)
No
No
mengidentifikasi jabatan NamaJabatan
Nama jabatan
131 Divisi
KodeDivisi
Secara unik
char (5)
No
No
mengidentifikasi divisi NamaDivisi
Nama divisi
varchar (20)
No
No
NomorRegistrasiI
NoRegistrasiInv
Secara unik
varchar (25)
No
No
nventaris
entaris
mendeskripsikan registrasi Inventaris
TglRegistrasi
Tanggal registrasi
date
No
No
KodeInventaris
Kode Inventaris
char (6)
No
No
NamaInventaris
Nama Inventaris
varchar
No
No
char (5)
No
No
varchar (50)
No
No
int
No
No
date
No
No
varchar
No
No
No
No
(100)
SuratPengajuanP
KodeKelompok
Kode kelompok
Inventaris
Inventaris
NamaKelompok
Nama kelompok
Inventaris
Inventaris
NoSPPATK
Secara unik mendeskripsikan
embelianATK
pengajuan pembelian ATK TglPengajuanS
Tanggal pengajuan
PPATK
SPPATK
Keperluan
Alasan pengajuan
(100) KodeATK
Kode ATK
char (6)
132 NamaATK
Nama ATK
varchar (50)
No
No
KodeKaryawan
Kode karyawan
char (6)
No
No
NamaKaryawan
Nama karyawan
varchar (50)
No
No
Qty
Jumlah barang
int
No
No
ATK PerkiraanHarga
Perkiraan harga
big int
No
No
StatusPersetujua
Status persetujuan
varchar (20)
No
No
int
No
No
date
No
No
varchar
No
No
n SuratPengajuanP
NoSPPInventari
Secara unik
embelianInventar
s
mendeskripsikan pengajuan
is
pembelian Inventaris TglPengajuanS
Tanggal pengajuan
PPInventaris
SPPInventaris
Keperluan
Alasan pengajuan
(100) KodeInventaris
Kode Inventaris
char (6)
No
No
NamaInventaris
Nama Inventaris
varchar
No
No
char (5)
No
No
varchar (50)
No
No
varchar (50)
No
No
(100) KodeKelompok
Kode kelompok
Inventaris
Inventaris
NamaKelompok
Nama kelompok
Inventaris
Inventaris
NamaKaryawan
Nama karyawan
133 Qty
Jumlah barang
int
No
No
Inventaris PerkiraanHarga
Perkiraan harga
big int
No
No
StatusPersetujua
Status persetujuan
varchar (20)
No
No
int
No
No
int
No
No
date
No
No
n PersetujuanSPPA
NoSuratPersetuj
Secara unik
TK
uanSPPATK
mengidentifikasi persetujuan SPPATK
NoSPPATK
Nomor surat pengajuan pembelian ATK
TglPersetujuan
Tanggal
ATK
Persetujuan
KodeKaryawan
Kode karyawan
char (6)
No
No
NamaKaryawan
Nama karyawan
varchar (50)
No
No
PersetujuanSPPIn
NoSuratPersetuj
Secara unik
int
No
No
ventaris
uanSPPInventar
mengidentifikasi
is
persetujuan SPP
int
No
No
date
No
No
Inventaris NoSPPInventari
Nomor surat
s
pengajuan pembelian Inventaris
TglPersetujuanI
Tanggal
134 nventaris
Persetujuan
KodeKaryawan
Kode karyawan
char (6)
No
No
NamaKaryawan
Nama karyawan
varchar (50)
No
No
BonSementaraPe
NoBonSementa
Secara unik
int
No
No
mbelianATK
raPembelianAT
mengidentifikasika
K
n bon sementara
date
No
No
varchar (50)
No
No
pembelian ATK Tanggal
Tanggal bon sementara dibuat
Keterangan
Keterangan tambahan
KodeKaryawan
Kode karyawan
char (6)
No
No
NamaKaryawan
Nama karyawan
varchar (50)
No
No
KodeATK
Kode ATK
char (6)
No
No
NamaATK
Nama ATK
varchar (50)
No
No
NoSuratPersetuj
Nomor surat
int
No
No
uanSPPATK
persetujuan
DanaPembelian
Dana yang
big int
No
No
ATK
diberikan dalam
int
No
No
pembelian ATK BonSementaraPe
NoBonSementa
Secara unik
mbelianInventari
raPembelianInv
mengidentifikasika
s
entaris
n bon sementara pembelian Inventaris
135 Tanggal
Tanggal bon
date
No
No
varchar (50)
No
No
sementara dibuat Keterangan
Keterangan tambahan
KodeKaryawan
Kode karyawan
char (6)
No
No
NamaKaryawan
Nama karyawan
varchar (50)
No
No
KodeKelompok
Kode kelompok
char (5)
No
No
Inventaris
Inventaris
NamaKelompok
Nama kelompok
varchar (50)
No
No
Inventaris
Inventaris
NoBKM
Nomor Bukti Kas
int
No
No
varchar (10)
No
No
date
No
No
Masuk PembelianATK
NoNPATK
Nomor nota pembelian ATK
PembelianInvent
TglPembelianA
Tanggal pembelian
TK
ATK
KodeKaryawan
Kode karyawan
char (6)
No
No
NamaKaryawan
Nama karyawan
varchar (50)
No
No
KodeATK
Kode ATK
char (6)
No
No
NamaATK
Nama ATK
varchar (50)
No
No
KodeToko
Kode toko
char (5)
No
No
NamaToko
Nama toko
varchar (20)
No
No
Qty
Jumlah beli ATK
int
No
No
HargaSatuan
Harga satuan ATK
big int
No
No
NoNPInventaris
Nomor nota
varchar (10)
No
No
136 pembelian
aris
Inventaris
BuktiKasMasuk
date
No
No
Kode karyawan
char (6)
No
No
NamaKaryawan
Nama karyawan
varchar (50)
No
No
KodeKelompok
Kode kelompok
char (5)
No
No
Inventaris
Inventaris
NamaKelompok
Nama kelompok
varchar (50)
No
No
Inventaris
Inventaris
NamaToko
Nama toko
varchar (20)
No
No
Qty
Jumlah beli ATK
int
No
No
HargaSatuan
Harga satuan ATK
big int
No
No
NoBKM
Nomor BKM
int
No
No
Tanggal
Tanggal
date
No
No
NoSuratPersetuj
Nomor surat
int
No
No
uanSPPInventar
persetujuan
TglPembelianIn
Tanggal pembelian
ventaris
Inventaris
KodeKaryawan
is KodeKaryawan
Kode karyawan
char (6)
No
No
NamaKaryawan
Nama karyawan
varchar (50)
No
No
DanaPembelian
Dana yang
big int
No
No
Inventaris
diberikan dalam
int
No
No
pembelian Inventaris BuktiKasKeluar
NoBKKATK
Nomor BKK ATK
137 ATK
Tanggal
Tanggal
date
No
No
NoNPATK
Nomor nota
varchar (10)
No
No
pembelian ATK KodeKaryawan
Kode karyawan
char (6)
No
No
NamaKaryawan
Nama karyawan
varchar (50)
No
No
KodeATK
Kode ATK
char (5)
No
No
JumlahPengelua
Jumlah
big int
No
No
ranPembelianA
pengeluaran
TK
pembelian ATK
BuktiKasKeluarI
NoBKKInventa
Nomor BKK
int
No
No
nventaris
ris
Inventaris
Tanggal
Tanggal
date
No
No
NoNPInventaris
Nomor nota
varchar (10)
No
No
pembelian Inventaris KodeKaryawan
Kode karyawan
char (6)
No
No
NamaKaryawan
Nama karyawan
varchar (50)
No
No
KodeKelompok
Kode jenis
char (5)
No
No
Inventaris
Inventaris
JumlahPengelua
Jumlah
big int
No
No
ranPembelianIn
pengeluaran
ventaris
pembelian
char (5)
No
No
Inventaris Toko
KodeToko
Secara unik mengidentifikasika
138 n toko Nama toko
varchar (20)
No
No
Alamat
Alamat toko
varchar (50)
No
No
KodePos
Kode pos toko
char (5)
No
No
Daerah
Daerah toko
varchar (50)
No
No
TeleponToko
Telepon toko
varchar (15)
No
Yes
PeminjamanInve
NoSuratPeminja
Secara unik
int
No
No
ntaris
man
mengidentifikasika
date
No
No
varchar (30)
No
No
varchar
No
No
NamaToko Lokasi
n surat peminjaman TglPinjam
Tanggal peminjaman
NoSuratPengant
Nomor surat
arPeminjaman
pengantar peminjaman
Perihal
Perihal
(100) NamaPeminjam
Nama peminjam
varchar (20)
No
No
NamaPerusahaa
Nama perusahaan
varchar (20)
No
No
nPeminjam
peminjam
KodeKaryawan
Kode karyawan
char (6)
No
No
NamaKaryawan
Nama karyawan
varchar (50)
No
No
KodeInventaris
Kode Inventaris
char (6)
No
No
NamaInventaris
Nama Inventaris
varchar
No
No
139 (100) Status pinjam
varchar (20)
No
No
int
No
No
int
No
No
date
No
No
Nama pengembali
varchar (20)
No
No
KodeKaryawan
Kode karyawan
char (6)
No
No
NamaKaryawan
Nama karyawan
varchar (50)
No
No
KodeInventaris
Kode Inventaris
char (6)
No
No
NamaInventaris
Nama Inventaris
varchar (100)
No
No
StatusPeminjam an PengembalianInv
KodePengembal
Secara unik
entaris
ian
mengidentifikasika n pengembalian inventaris
NoSuratPeminja
Nomor surat
man
peminjaman inventaris
TglKembali
Tanggal pengembalian
NamaPengemba li
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
range 000-99. Contoh: KIN28 NamaKelompokInventaris varchar, panjang 50 JumlahStok
int, range 0-999999
InsertedDatetime
datetime
Tabel 4.6. Atribut Domain dari Entitas KelompokBarangInventaris
dengan
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
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
dengan
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
karakter angka
pertama
berikutnya dengan
huruf,
merupakan
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
karakter angka
pertama
berikutnya dengan
Contoh: KRY008
range
huruf,
merupakan 000-999.
149 NamaKaryawan
varchar, panjang 50
KodeATK
char, panjang 6 tiga
karakter
karakter angka
pertama
berikutnya dalam
huruf,
merupakan
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-mmdd
Keterangan
varchar, panjang 50
KodeKaryawan
char, panjang 6 tiga karakter pertama huruf, karakter
berikutnya
merupakan range KRY008
angka
000-999.
dengan Contoh:
150 NamaKaryawan
varchar, panjang 50
KodeKelompokInventaris
char, panjang 5 tiga karakter pertama huruf, karakter merupakan
berikutnya 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
karakter angka
pertama
berikutnya dengan
range
Contoh: KRY008 NamaKaryawan
varchar, panjang 50
huruf,
merupakan 000-999.
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
Contoh: ATK008 JumlahPengeluaranPembelianATK big int Tabel 4.22. Atribut Domain dari Entitas BuktiKasKeluarATK
000-999.
154 •
BuktiKasKeluarInventaris
Atribut
Domain
NoBKKInventaris
int
Tanggal
date, dengan format yyyymm-dd
NoNPInventaris
varchar, panjang 10 dengan karakter huruf dan angka.
KodeKaryawan
char, panjang 6 tiga karakter pertama huruf, karakter
berikutnya
merupakan range
angka
000-999.
dengan Contoh:
KRY008 NamaKaryawan
varchar, panjang 50
KodeKelompokInventaris
char, panjang 5 tiga karakter pertama huruf, karakter
berikutnya
merupakan range
angka
000-99.
KIN28 JumlahPengeluaranPembelianInventaris big int Tabel 4.23. Atribut Domain dari Entitas BuktiKasKeluarInventaris
dengan Contoh:
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
int
ventaris TglPinjam
date, dengan format yyyy-mm-dd
NoSuratPengantarPemi
varchar, panjang 30
njaman
Contoh: 048/FR/ADM/Out-Ltr/IX/2007
Perihal
varchar, panjang 100
156 NamaPeminjam
varchar, panjang 20
NamaPerusahaanPemin
varchar, panjang 20
jaman 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
int
ventaris 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 BarangATK
Candidate Key KodeATK
Primary Key KodeATK
NamaATK
BarangInventaris
KodeInventaris
KodeInventaris
NamaInventaris
KelompokBarangInventari
KodeKelompokInventaris
KodeKelompokInventari
s
NamaKelompokInventaris
s
158 HsStokATK
HsStokInventaris
KodeATK
KodeATK
InsertedDatetime
InsertedDatetime
KodeKelompokInventaris
KodeKelompokInventari
InsertedDatetime
s InsertedDatetime
Karyawan
KodeKaryawan
KodeKaryawan
Jabatan
KodeJabatan
KodeJabatan
NamaJabatan
Divisi
KodeDivisi
KodeDivisi
NamaDivisi
NomorRegistrasiInventaris
NoRegistrasiInventaris
NoRegistrasiInventaris
TglRegistrasi
SuratPengajuanPembelian
NoSPPATK
ATK
TglPengajuanSPPATK
SuratPengajuanPembelianI
NoSPPInventaris
nventaris
TglPengajuanSPPInventari
NoSPPATK
NoSPPInventaris
s
PersetujuanSPPATK
NoSuratPersetujuanSPPAT
NoSuratPersetujuanSPP
K
ATK
TglPersetujuanATK
PersetujuanSPPInventaris
NoSuratPersetujuanSPPInv
NoSuratPersetujuanSPPI
entaris
nventaris
TglPersetujuanInventaris
BonSementaraPembelianA
NoBonSementaraPembelia
NoBonSementaraPembe
nATK
lianATK
159 TK
Tanggal
BonSementaraPembelianIn
NoBonSementaraPembelia
NoBonSementaraPembe
ventaris
nInventaris
lianInventaris
Tanggal
PembelianATK
NoNPATK
NoNPATK
TglPembelianATK
PembelianInventaris
NoNPInventaris
NoNPInventaris
TglPembelianInventaris
BuktiKasMasuk
NoBKM
NoBKM
Tanggal
BuktiKasKeluarATK
NoBKKATK
NoBKKATK
Tanggal
BuktiKasKeluarInventaris
NoBKKInventaris
NoBKKInventaris
Tanggal
Toko
KodeToko
KodeToko
NamaToko
PeminjamanInventaris
NoSuratPeminjaman
NoSuratPeminjaman
TglPinjam
PengembalianInventaris
KodePengembalian NoSuratPeminjaman TglKembali
Tabel 4.27. Candidate dan Primary Key dari Entitas
KodePengembalian
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-tomany 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 KelompokBarangInventaris dan SuratPengajuanPembelianInventaris
entitas
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 SuratPengajuanPembelianATK dan PersetujuanSPPATK
pada
entitas
Gambar 4.13. Menghilangkan relasi many-to-many pada entitas Karyawan dan PersetujuanSPPInventaris
171
Gambar 4.14. Menghilangkan relasi many-to-many SuratPengajuanPembelianInventaris dan PersetujuanSPPInventaris
pada
entitas
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,
KodeKelompokInventaris, Qty, HargaSatuan, KodeToko)
KodeKaryawan,
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 langkahlangkah 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)
KelompokBarangInventaris
(KodeKelompokInventaris)
UPDATE CASCADE ON DELETE NO ACTION 2. Karyawan
references ON
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 TglPengajuanSPPInventaris,
(NoSPPInventaris,
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)
SuratPengajuanPembelianInventaris
references
(NoSPPInventaris)
UPDATE CASCADE ON DELETE NO ACTION
ON
199 Foreign
Key
(KodeKelompokInventaris)
KelompokBarangInventaris
references
(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)
SuratPengajuanPembelianInventaris
references
(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)
KelompokBarangInventaris
references
(KodeKelompokInventaris)
ON
UPDATE CASCADE ON DELETE NO ACTION 14. BuktiKasKeluarInventaris BuktiKasKeluarInventaris
(NoBKKInventaris,
KodeKaryawan,
Tanggal,
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,
NoSuratPengantarPeminjaman,
Perihal,
TglPinjam,
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
PeminjamanInventaris
(NoSuratPeminjaman) (NoSuratPeminjaman)
references ON
UPDATE
CASCADE ON DELETE NO ACTION Foreign Key (KodeInventaris) references BarangInventaris (KodeInventaris) ON UPDATE CASCADE ON DELETE NO ACTION
203 18. PengembalianInventaris PengembalianInventaris NoSuratPeminjaman,
(KodePengembalian, TglKembali,
NamaPengembali,
KodeKaryawan) Primary Key (KodePengembalian) Foreign
Key
(NoSuratPeminjaman)
PeminjamanInventaris
(NoSuratPeminjaman)
references 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)
PengembalianInventaris
(KodePengembalian)
references 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 TglPengajuanSPPATK,
(NoSPPATK,
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
SuratPengajuanPembelianATK
(NoSPPATK) (NoSPPATK)
references 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)
PersetujuanSPPATK
references
(NoSuratPersetujuanSPPATK)
ON
UPDATE CASCADE ON DELETE NO ACTION Foreign
Key
(NoSPPATK)
SuratPengajuanPembelianATK
(NoSPPATK)
references ON
UPDATE
CASCADE ON DELETE NO ACTION 25. BonSementaraPembelianATK BonSementaraPembelianATK (NoBonSementaraPembelianATK, KodeKaryawan,
Tanggal,
Keterangan,
DanaPembelianATK,
NoSuratPersetujuanSPPATK) Primary Key (NoBonSementaraPembelianATK)
206 Foreign
Key
(KodeKaryawan)
references
Karyawan
(KodeKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION Foreign
Key
(NoSuratPersetujuanSPPATK)
PersetujuanSPPATK
references
(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)
KelompokBarangInventaris
references
(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 HsStokATK KodeATK (PK, FK) InsertedDatetime (PK) JumlahStok
terlibat dalam
memiliki
1..*
KodePos (PK) PembelianATK
1..*
1..1
1..* DetailPembelianATK NoNPATK (PK, FK) KodeATK (PK, FK) 0..*
m
menghasilkan NoBKKInventaris (PK) 1..1 KodeKaryawan (FK) NoNPInventaris (FK)
l
1..* Jabatan
mencakup
membuat
d KodeJabatan (PK) KodeDivisi (FK)
menangani
0..*
1..1 1..1 1..1
KodeInventaris (PK, FK) KodeKaryawan (PK, FK)
1..1 1..1
menangani mencakup
terdapat dalam
i
1..* DetailPersetujuanSPP ATK NoSuratPersetujuanSP PATK (PK, FK) NoSPPATK (PK, FK) 1..* mencakup 1..1
1..*
mencakup
n 1..1
z
NomorRegistrasiInventaris NoRegistrasiInventaris (PK) KodeInventaris (FK) 1..* DetailPengajuanPembelian Inventaris NoSPPInventaris (PK, FK) KodeKelompokInventaris (PK, FK) 1..*
ada dalam
mencakup PengembalianInventaris 1..* KodePengembalian(PK) 1..* NoSuratPeminjaman (FK) NoSuratPeminjaman (PK) KodeKaryawan (FK) KodeKaryawan (FK) 1..1 mencakup mencakup membuat 1..* 1..1 DetailPengembalianInve SuratPengajuanPembeli mengisi ntaris anInventaris KodePengembalian (PK, 1..* NoSPPInventaris (PK) FK) 1..* DetailPersetujuanSPPInv KodeKaryawan (FK) KodeInventaris (PK, FK) entarisOlehKaryawan 1..1 NoSuratPersetujuanSPPI terdapat dalam nventaris (PK, FK) menyusun j 1..* KodeKaryawan (PK, FK) DetailPersetujuanSPPInve 1..* mencakup ntaris 1..1 PersetujuanSPPInvent NoSuratPersetujuanSPPIn aris 1..1 1..* ventaris (PK, FK) mencakup NoSPPInventaris (PK, FK) NoSuratPersetujuanSP 1..1
menyusun
SuratPengajuanPem 1..* belianATK NoSPPATK (PK) KodeKaryawan (FK) 1..1
e
ada dalam
menyetujui
1..1
memiliki
a
Karyawan
mengisi
taris (FK) 1..1 0..*
x
h
1..*
1..1
1..1
DetailPemakaianInventaris
menyetujui
mencakup
BarangInventaris KodeInventaris (PK) 1..* KodeKelompokInven
t
1..* KodeKaryawan (PK) DetailPeminjamanInventa 1..1 1..1 TeleponKaryawan 1..* KodeJabatan (FK) ris mempunyai KodePos (FK) NoSuratPeminjaman (PK, TeleponKaryawan y FK) 1..1 1..1 0..1 1..1 1..1 1..1 0..11..1 (PK) KodeInventaris (PK, FK) KodeKaryawan (FK) 1..* menangani
1..* DetailPengajuanPembelian ATK NoSPPATK (PK, FK) KodeATK (PK, FK) 1..*
menambah barang inventaris
ada dalam memakai
1..*
ada dalam
mempunyai
p
memiliki
terlibat dalam 1..1 1..1 KelompokBarangI 1..1 nventaris KodeKelompokInv 1..1 entaris (PK)
membuat
1..1 DetailPemakaianATK f KodeATK (PK, FK) KodeKaryawan(PK, FK) dipunyai TglPemakaian (PK) 1..* 1..* 0..* memakai 1..1 g
NoNPInventaris (PK) KodeToko (FK) KodeKaryawan (FK) 1..* 1..1
DetailPembelianInventari 1..* s NoNPInventaris (PK, FK) KodeKelompokInventaris (PK, FK) 0..*
memiliki
1..1
PembelianInventaris
1..*
menangani
w
1..1
NoBKKATK (PK) KodeKaryawan (FK) NoNPATK (FK)
mencakup
KodeATK (PK)
1..*
1..*
TeleponToko (PK) KodeToko (FK)
BuktiKasKeluarInventa ris
1..*
s
1..1
q
TeleponToko
BuktiKasKeluarATK
1..1
BarangATK
1..1
b
KodeDivisi (PK)
terlibat dalam 1..1
KodeToko (PK) KodePos (FK)
Divisi
c
1..*
1..1
Toko
terlibat dalam 1..1
menghasilkan
mempunyai
1..1
1..1
r
NoNPATK (PK) 1..* KodeToko (FK) mempunyai KodeKaryawan (FK) 1..* 1..1 1..* menambah o barang ATK
HsStokInventaris KodeKelompokInvent aris (PK, FK) InsertedDatetime (PK) JumlahStok
1..1
Pos
PersetujuanSPPATK 1..* NoSuratPersetujuanSP PATK (PK) 1..* KodeKaryawan (FK) BonSementaraPembelian 1..1 ATK menghasilkan NoBonSementaraPembeli 1..1 anATK (PK) KodeKaryawan (FK) u NoSuratPersetujuanSPPA TK (FK)
PeminjamanInventaris
PInventaris (PK)
1..1
1..1 menghasilkan
1..*
BonSementaraPembeli anInventaris
k 1..*
menghasilkan NoBonSementaraPem 1..1 1..1 belianInventaris (PK) KodeKaryawan (FK) NoBKM (FK)
v
1..1
BuktiKasMasuk NoBKM (PK) KodeKaryawan (FK) NoSuratPersetujuanSP PInventaris (FK)
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 barangbarang yang diajukan. (x) Mendapatkan informasi pengajuan pembelian barang Inventaris atas barangbarang 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,
Status
NOT NULL,
Inventaris Status
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,
KelInv
NOT NULL,
JumlahStok
JmlStok
NOT NULL,
InsertedDatetime
InsDate
NOT NULL,
Inventaris NamaKelompok Inventaris
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,
TglRegistrasi
TglReg
NOT NULL,
KodeInventaris
KdInv
NOT NULL,
Inventaris
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,
Keperluan
Keperluan
NOT NULL,
KodeKaryawan
KdKaryawan
NOT NULL,
StatusPersetujuan
Stat
NOT NULL,
SPPATK
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,
Keperluan
Keperluan
NOT NULL,
KodeKaryawan
KdKaryawan
NOT NULL,
StatusPersetujuan
Stat
NOT NULL,
SPPInventaris
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,
Qty
Qty
NOT NULL,
PerkiraanHarga
Harga
NOT NULL,
Inventaris
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
DetailPersetujuanSPPATK (
Variabel Integer
225 NoSuratPersetujuan
NoSuratPersetujuan
SPPATK
SPPATK
NoSPPATK
NoSPPATK
NOT NULL,
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
SPPInventaris
SPPInventaris
TglPersetujuan
TglPersetujuan
NOT NULL,
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
PersetujuanSPPInventaris
NoSuratPersetujuanSPPInventaris (NoSuratPersetujuanSPPInventaris)
REFERENCES 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
SPPInventaris
SPPInventaris
KodeKaryawan
KdKaryawan
NOT NULL,
NOT NULL,
PRIMARY KEY (NoSuratPersetujuanSPPInventaris, KodeKaryawan), FOREIGN
KEY
PersetujuanSPPInventaris
NoSuratPersetujuanSPPInventaris (NoSuratPersetujuanSPPInventaris)
REFERENCES 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,
KodeToko
KdToko
NOT NULL,
KodeKaryawan
KdKaryawan
NOT NULL,
Inventaris
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,
Qty
Qty
NOT NULL,
HargaSatuan
HrgSat
NOT NULL,
Inventaris
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
PersetujuanSPPInventaris
NoSuratPersetujuanSPPInventaris (NoSuratPersetujuanSPPInventaris)
REFERENCES 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
KodeKaryawan
Variabel fixed length character string, length 6
Peminjam Domain
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.
243
(a)
(b)
(c)
(d)
Transaksi/Relasi I
R
U
Karyawan
X
X
X
TeleponKaryawan
X
X
X
Pos
X
X
X
D
I
R
U
X
X
X
D
I
R
U
X
X
X
D
I
R
U
X
X
X
D
BarangATK BarangInventaris HsStokATK HsStokInventaris DetailPemakaianATK KelompokBarangInventaris DetailPemakaianInventaris
Jabatan Divisi NomorRegistrasiInventaris SuratPengajuanPembelianATK DetailPengajuanATK SuratPengajuanPembelianInventaris DetailPengajuanPembelianInventaris
243
244
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
244
PengembalianInventaris
245
DetailPengembalianInventaris
(e)
(f)
(g)
(h)
Transaksi/Relasi I
R
U
D
I
R
BarangATK BarangInventaris
U
D
I
R
U
D
I
R
U
D
X X
X
HsStokATK HsStokInventaris DetailPemakaianATK KelompokBarangInventaris
X X
DetailPemakaianInventaris
X
Karyawan
X
X
X
TeleponKaryawan Pos Jabatan
X
Divisi NomorRegistrasiInventaris
X
SuratPengajuanPembelianATK
245
DetailPengajuanATK
246
SuratPengajuanPembelianInventaris DetailPengajuanPembelianInventaris PersetujuanSPPATK DetailPersetujuanSPPATK PersetujuanSPPInventaris DetailPersetujuanSPPInventaris DetailPersetujuanSPPInventarisOkeh Karyawan BonSementaraPembelianATK BonSementaraPembelianInventaris PembelianATK DetailPembelianATK PembelianInventaris DetailPembelianInventaris BuktiKasMasuk BuktiKasKeluarATK BuktiKasKeluarInventaris Toko TeleponToko
246
PeminjamanInventaris
247
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
247
NomorRegistrasiInventaris
248
SuratPengajuanPembelianATK
X
DetailPengajuanATK
X
SuratPengajuanPembelianInventaris
X
DetailPengajuanPembelianInventaris
X
PersetujuanSPPATK
X
DetailPersetujuanSPPATK
X
PersetujuanSPPInventaris
X
X
DetailPersetujuanSPPInventaris
X
X
DetailPersetujuanSPPInventarisOkeh
X
Karyawan BonSementaraPembelianATK BonSementaraPembelianInventaris PembelianATK DetailPembelianATK PembelianInventaris
X
DetailPembelianInventaris
X
BuktiKasMasuk
X
BuktiKasKeluarATK BuktiKasKeluarInventaris
248
Toko
249
TeleponToko PeminjamanInventaris DetailPeminjamanInventaris PengembalianInventaris DetailPengembalianInventaris
(m)
(n)
(o)
(p)
Transaksi/Relasi I BarangATK BarangInventaris
R
U
D
I
R
U
D
I
R
U
D
I
R
U
D
X X
HsStokATK HsStokInventaris DetailPemakaianATK KelompokBarangInventaris DetailPemakaianInventaris Karyawan TeleponKaryawan Pos
249
Jabatan
250
Divisi NomorRegistrasiInventaris SuratPengajuanPembelianATK DetailPengajuanATK SuratPengajuanPembelianInventaris DetailPengajuanPembelianInventaris PersetujuanSPPATK DetailPersetujuanSPPATK PersetujuanSPPInventaris DetailPersetujuanSPPInventaris DetailPersetujuanSPPInventarisOkeh Karyawan BonSementaraPembelianATK BonSementaraPembelianInventaris PembelianATK
X
X
DetailPembelianATK
X
PembelianInventaris
X
DetailPembelianInventaris
X
BuktiKasMasuk X
250
BuktiKasKeluarATK
251
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
251
TeleponKaryawan
252
Pos Jabatan
X
Divisi
X
NomorRegistrasiInventaris SuratPengajuanPembelianATK DetailPengajuanATK SuratPengajuanPembelianInventaris DetailPengajuanPembelianInventaris PersetujuanSPPATK DetailPersetujuanSPPATK PersetujuanSPPInventaris DetailPersetujuanSPPInventaris DetailPersetujuanSPPInventarisOkeh Karyawan BonSementaraPembelianATK BonSementaraPembelianInventaris PembelianATK
X
DetailPembelianATK PembelianInventaris
252
DetailPembelianInventaris
X
253
BuktiKasMasuk BuktiKasKeluarATK BuktiKasKeluarInventaris Toko
X
X
TeleponToko PeminjamanInventaris DetailPeminjamanInventaris PengembalianInventaris DetailPengembalianInventaris
(u)
(v)
(w)
(x)
Transaksi/Relasi I BarangATK BarangInventaris
R
U
D
I
R
U
D
I
R
U
D
I
R
U
D
X X
HsStokATK HsStokInventaris DetailPemakaianATK KelompokBarangInventaris
253
DetailPemakaianInventaris
254
Karyawan TeleponKaryawan Pos Jabatan Divisi NomorRegistrasiInventaris SuratPengajuanPembelianATK
X
DetailPengajuanATK
X
SuratPengajuanPembelianInventaris
X
DetailPengajuanPembelianInventaris
X
PersetujuanSPPATK
X
DetailPersetujuanSPPATK PersetujuanSPPInventaris DetailPersetujuanSPPInventaris DetailPersetujuanSPPInventarisOkeh Karyawan BonSementaraPembelianATK BonSementaraPembelianInventaris
X X
PembelianATK
254
DetailPembelianATK
255
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
255
DetailPemakaianATK
256
KelompokBarangInventaris DetailPemakaianInventaris Karyawan
X
TeleponKaryawan Pos Jabatan Divisi NomorRegistrasiInventaris SuratPengajuanPembelianATK DetailPengajuanATK SuratPengajuanPembelianInventaris DetailPengajuanPembelianInventaris PersetujuanSPPATK DetailPersetujuanSPPATK PersetujuanSPPInventaris DetailPersetujuanSPPInventaris DetailPersetujuanSPPInventarisOkeh Karyawan BonSementaraPembelianATK
256
BonSementaraPembelianInventaris
257
PembelianATK DetailPembelianATK PembelianInventaris DetailPembelianInventaris BuktiKasMasuk BuktiKasKeluarATK BuktiKasKeluarInventaris Toko TeleponToko PeminjamanInventaris
X
X
DetailPeminjamanInventaris PengembalianInventaris
X
DetailPengembalianInventaris
Tabel 4.32. Analisis Transaksi
257
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
IdxDPSPPInvOKary
NONCLUSTERED
INDEX 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 KodeKelompokInventaris)
(NoNPInventaris,
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
KodeInventaris) 34. PengembalianInventaris
(NoSuratPeminjaman,
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
Char
6
NamaATK
Varchar
50
Satuan
Varchar
20
JumlahStok
Int
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
Char
6
KodeKaryawan
Char
6
TglPemakaian
Date
-
Qty
Int
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
Char
6
NamaInventaris
Varchar
100
KodeKelompokInventaris
Char
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
Char
6
KodeKaryawan
Char
6
TglPemakaian
Date
-
Lokasi
Varchar
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 NoBonSementaraPembelianATK
Type Int
Ukuran 11
266 Tanggal
Date
-
Keterangan
Varchar
50
KodeKaryawan
Char
6
DanaPembelianATK
BigInt
20
NoSuratPersetujuanATK
Varchar
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 Int
11
Tanggal
Date
-
Keterangan
Varchar
50
KodeKaryawan
Char
6
NoBKM
Int
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
Int
11
Tanggal
Date
-
KodeKaryawan
Char
6
NoNPATK
Varchar
10
JumlahPengeluranPembelianATK
BigInt
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
Int
11
Tanggal
Date
-
KodeKaryawan
Char
6
NoNPInventaris
Int
10
JumlahPengeluaranPembelianInventaris BigInt
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
Int
11
Tanggal
Date
-
KodeKaryawan
Char
6
NoSuratPersetujuanSPPInventaris
Int
11
DanaPembelianInventaris
BigInt
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
Varchar
10
KodeATK
Char
6
269 Qty
Int
11
HargaSatuan
BigInt
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
Varchar
10
KodeKelompokInventaris
Char
5
Qty
Int
11
HargaSatuan
BigInt
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
Int
11
KodeInventaris
Char
6
StatusPeminjaman
Varchar
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
Int
11
KodeATK
Char
6
Qty
Int
11
PerkiraanHarga
BigInt
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
Int
11
KodeKelompokInventaris
Char
5
Qty
Int
11
PerkiraanHarga
BigInt
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
Int
11
KodeInventaris
Char
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
Int
11
NoSPPATK
Int
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
Int
11
NoSPPInventaris
Int
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
Int
11
KodeKaryawan
Char
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
Char
5
NamaDivisi
Varchar
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
Char
5
NamaJabatan
Varchar
20
KodeDivisi
Char
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
Char
6
NamaKaryawan
Varchar
50
Alamat
Char
50
KodePos
Char
5
JenisKelamin
Varchar
10
TglLahir
Date
-
KodeJabatan
Char
5
Username
Varchar
20
Password
Varchar
100
Photo
Varchar
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
Char
5
NamaKelompokInventaris
Varchar
50
JumlahStok
Int
11
InsertedDatetime
Datetime
-
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
Varchar
25
TglRegistrasi
Date
-
KodeInventaris
Char
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
Varchar
10
TglPembelianATK
Date
-
KodeToko
Char
5
KodeKaryawan
Char
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
Varchar
10
TglPembelianInventaris
Date
-
KodeToko
Char
5
KodeKaryawan
Char
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
Int
11
TglPinjam
Date
-
NoSuratPengantarPeminjaman
Varchar
30
Perihal
Varchar
100
NamaPeminjam
Varchar
20
NamaPerusahaanPeminjam
Varchar
20
KodeKaryawan
Char
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
Int
11
NoSuratPeminjaman
Int
11
TglKembali
Date
-
NamaPengembali
Varchar
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
Int
11
TglPersetujuan
Date
-
KodeKaryawan
Char
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
Int
11
TglPersetujuan
Date
-
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
Char
5
Daerah
Varchar
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
Int
11
TglPengajuanSPPATK
Date
-
Keperluan
Varchar
100
KodeKaryawan
Char
6
StatusPersetujuan
Varchar
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
Int
11
TglPengajuanSPPInventaris
Date
-
Keperluan
Varchar
100
KodeKaryawan
Char
6
StatusPersetujuan
Varchar
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
Varchar
15
KodeKaryawan
Char
6
Kapasitas dari tabel TeleponKaryawan adalah 21 Byte Diperkirakan
dalam
TeleponKaryawan
satu
bulan
terjadi
penambahan
10
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
Varchar
15
KodeToko
Char
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
Char
5
NamaToko
Varchar
20
Alamat
Varchar
50
KodePos
Char
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
Char
6
InsertedDatetime
Datetime
-
JumlahStok
Int
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
Char
5
InsertedDatetime
Datetime
-
JumlahStok
Int
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
10.200 Byte atau 9,96 KB
Karyawan 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
Administration
Finance &
Administrat
General
Officer
Manager
Accounting
ion Officer
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,
b.TglPemakaian, b.Qty From Karyawan a, DetailPemakaianATK b, BarangATK c
c.NamaATK,
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,
b.NamaToko,
a.TglPembelianInventaris,
a.KodeKaryawan,
a.KodeToko,
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