BAB 4 PERANCANGAN DAN I MPLEMENTASI
4.1
Perancangan Basisdata Perancangan basisdata pembelian, persediaan dan penjualan pada CV.
M aplesonic Indonesia terdiri dari 3 tahap, yaitu: a. Perancangan basisdata konseptual b. Perancangan basisdata logikal c. Perancangan basisdata fisikal 4.1.1
Perancangan Basisdata Konseptual Tahapan ini memusatkan pada pemrosesan suatu model dari informasi yang akan
digunakan dalam suatu organisasi, yang independensinya tidak tergantung apapun. Langkah – langkah dalam perancangan basisdata konseptual yaitu: 1. M engidentifikasikan tipe entitas 2. M engidentifikaskan tipe relationship 3. M engidentifikasikan dan menghubungkan atribut dengan tipe entitas atau relationship 4. M enentukan domain atribut 5. M engidentifikasikan atribut candidate key dan primary key 6. M engecek redudansi sistem 7. M emvalidasikan model konseptual lokal dengan transaksi User 8. M e-review kembali konseptual data model dengan user
104
105
4.1.1.1 Mengidentifikasikan Tipe Entitas Tabel dibawah ini merupakan tabel yang menjelaskan entitas – entitas yang menjadi kebutuhan perusahaan setelah melalui proses analisa sistem yang sedang berjalan, yaitu: Tabel 4.1 Indentifikasi Tipe Entitas No.
Nama Entitas
Deskripsi
1
Pelanggan
Tabel
Kejadian
entitas
yang Setiap
pelanggan
berisikan data lengkap yang
pernah
dari organisasi / individu membeli barang di yang membeli barang perusahaan. dari
CV.
M aplesonic
Indonesia 2
JenisPelanggan
Tabel
entitas
yang Setiap
tipe
berisikan data mengenai pelanggan
Supplier
yang
jenis
pelanggan
yang pernah
membeli
ada
pada
CV. barang
di
M aplesonic Indonesia 3
dari
Tabel
entitas
perusahaan.
yang Setiap pemasok yang
berisikan data lengkap pernah memasukkan dari organisasi / individu barang yang mensuplai barang perusahaan. dari
CV.
Indonesia
M aplesonic
ke
106
No.
Nama Entitas
Deskripsi
4
Karyawan
Tabel
Kejadian yang Setiap
entitas
karyawan
berisikan data lengkap yang bekerja pada dari
CV. CV.
karyawan
M aplesonic Indonesia 5
Produk
T abel
entitas
M aplesonic
Indonesia
yang Setiap produk yang
berisikan data lengkap dari tersedia pada CV. barang yang dijual pada CV. Maplesonic Indonesia
6
Utang
Tabel
entitas
utang
Piutang
Tabel
utang yang
muncul akibat
kepada pembelian
supplier 7
Indonesia
yang Setiap
berisikan data mengenai besar
M aplesonic
produk
kepada supplier entitas
yang Setiap piutang yang
berisikan data mengenai muncul daftar piutang pelanggan
akibat
penjualan produk pada client
8
Penawaran
T abel
entitas
yang Setiap
berisikan data mengenai yang penawaran produk kepada
penawaran dilakukan
kepada client
pelanggan
9
Persediaan
Tabel
entitas
yang Setiap
pencatatan
berisikan data mengenai stok barang jumlah stok barang
107
No.
Nama Entitas
Deskripsi
10
Garansi
T abel
Kejadian yang Setiap
entitas
catatan
berisikan data mengenai pengembalian barang pengukuhan garansi oleh yang dilakukan oleh perusahaan
pelanggan
11
Gudang
T abel
entitas
yang Setiap gudang yang
berisikan data mengenai ada di perusahaan gudang
pada
CV.
Maplesonic Indonesia
12
Pemesananan
T abel
yang Setiap
entitas
transaksi
berisikan data mengenai pemesanan pemesanan dari pelanggan
yang
dilakukan
oleh
pelanggan
13
Penjualan
T abel
entitas
berisikan
yang Setiap
transaksi transaksi
penjualan yang terjadi
14
PembayaranPenjualan
T abel
transaksi –
entitas
dari perusahaan yang Setiap jumlah yang
berisikan
bukti dibayarkan
pembayaran
penjualan
awal
dari
oleh
pelanggan
produk oleh pelanggan
15
Pembelian
T abel
entitas
berisikan pembelian pada
CV.
Indonesia
yang Setiap transaksi transaksi
yang
transaksi
–
pembelian
terjadi dari perusahaan CV.
Maplesonic Maplesonic Indonesia
108
No.
Nama Entitas
Deskripsi
16
PembayaranPembelian
Tabel
Kejadian yang Setiap jumlah yang
entitas
berisikan
bukti dibayarkan
data
oleh
pembayaran awal dari perusahaan produk
oleh
CV.
M aplesonic Indonesia 17
TermOfDelivery
Tabel
yang Setiap
entitas
berisikan
jenis syarat
syarat pengiriman
data
barang
barang kepada pelanggan
pengiriman kepada pelanggan 18
TermOfPayment
Tabel
entitas
berisikan
data
yang Setiap
jenis syarat
syarat pembayaran
pembayaran pembelian pembelian penjualan
dan penjualan 19
DeliveryOrder
Tabel
entitas
yang Setiap data pengiriman
berisikan
dan
transaksi barang
pengiriman barang yang yang dilakukan oleh dikirimkan
kepada perusahaan
pelanggan sesuai faktur penjualan 20
User
Tabel
entitas
yang Setiap
berisikan data pengguna
yang aplikasi
karyawan memakai
109
4.1.1.2 Mengidentifikaskan Tipe Relationship Tujuan dari identifikasi tipe relasional adalah untuk menentukan hubungan – hubungan yang penting yang ada diantara jenis – jenis entitas yang sebelumnya telah diidentifikasikan. Langkah – langkah penting didalam mengidentifikaskan tipe relational yaitu: 1. M embuat E-R diagram 2. M enentukan pembatas multiplicity dari tipe relasi.
110
Gambar 4.1 Entity Relationship Diagram Konseptual Awal
111
Tabel 4.2 Identifikasi tipe relasi dan multiplicity Nama Entitas
Multiplicity Relasional
Nama Entitas
Multiplicity
Pelanggan
1...1
melakukan
Penjualan
0...*
1...1
melakukan
pembayaranPenjualan
0...*
1...1
melakukan
pemesanan
0...*
1...1
menerima
Penawaran
0...*
1...1
melakukan
Garansi
0...*
JenisPelanggan
1...1
dimiliki
Pelanggan
1...*
Supplier
1...1
menerima
Pembelian
0...*
1...1
menerima
pembayaranPembelian
0...*
1...1
melakukan
Pembelian
0...*
1...1
menerima
Penjualan
0...*
1...1
menerima
Pemesanan
0...*
1...1
melakukan
Penawaran
0...*
1...1
melakukan
pembayaranPembelian
0...*
1...1
menerima
pembayaranPenjualan
0...*
1...*
dimiliki
Pembelian
0...*
1...*
dimiliki
Penjualan
0...*
1...*
dimiliki
Penawaran
0...*
1...*
Dimiliki
DeliveryOrder
0...*
1...*
dimiliki
Pemesanan
0...*
1...*
dimiliki
pembayaranPembelian
0...*
1...*
dimiliki
pembayaranPenjualan
0...*
Karyawan
Produk
112
Nama Entitas
Multiplicity Relasional
Nama Entitas
Multiplicity
1...*
dimiliki
Garansi
0...*
0...*
dipengaruhi
Persediaan
0...*
0...*
dipengaruhi
pembelian
0...*
0...*
dipengaruhi
pembayaranPembelian
0...*
1...1
menimbulkan
penjualan
1...1
1...1
menimbulkan
deliveryOrder
1...1
Penjualan
1...1
mempunyai
Garansi
1...1
Pembayaran
0...1
mempunyai
Piutang
1...1
0...1
mempunyai
Utang
1...1
termOfDelivery
1...1
dimiliki
pemesanan
1...1
termOfPayment
1...1
dimiliki
penjualan
1...1
1...1
dimiliki
pemesanan
1...1
1...1
dimiliki
karyawan
1...1
Gudang
Pemesanan
Penjualan Pembayaran Pembelian
User
113
4.1.1.3 Mengidentifikasikan dan Menghubungkan Atribut dengan Tipe Entitas atau Relationship Tabel 4.3 Identifikasi dan Penghubungan Atribut dengan Tipe Entitas atau Relationship Nama
Atribut
Deskripsi
Entitas Pelanggan
kdPelanggan
kode
unik
Data Type dan Nulls
Multi
Length
valued
untuk Char (6)
No
No
Char (5)
No
No
mengidentifikasikan pelanggan
kdJenisPelanggan
Kode jenispelanggan
namaPelanggan
Nama pelanggan
Varchar (50)
No
No
alamatPelanggan
Alamat pelanggan
Varchar (50)
No
No
telpPelanggan
Telp Pelanggan
Varchar (50)
No
Yes
faxPelanggan
Fax Pelanggan
Varchar (50)
No
Yes
emailPelanggan
Email Pelanggan
Varchar (50)
Yes
Yes
NPWP
Nomor
Pokok Varchar (50)
No
No
No
No
No
No
Wajib Pajak
JenisPelang
kdJenisPelanggan
Kode unik untuk Char (5) mengidentifikasi-
gan
kan
jenis
pelanggan
namaJenisPelang
Nama
gan
pelanggan
jenis Varchar (50)
114
Nama
Atribut
Deskripsi
Entitas Supplier
kdSupplier
Data Type dan Nulls
Multi
Length
valued
kode unik untuk Char (5)
No
No
mengidentifikasikan Supplier
Karyawan
namaSupplier
Nama Supplier
Varchar (50)
No
No
alamatSupplier
Alamat Supplier
Varchar (50)
No
No
telpSupplier
Telp Supplier
Varchar (50)
No
Yes
faxSupplier
Fax Supplier
Varchar (50)
No
Yes
emailSupplier
Email Supplier
Varchar (50)
Yes
Yes
NIK
Kode unik untuk Char (6)
No
No
mengidentifikasikan Karyawan namaKaryawan
Nama Karyawan
Varchar (50)
No
No
Jabatan
Jabatan
Varchar (50)
No
No
alamatKaryawan
Alamat Karyawan Varchar (50)
No
No
telpKaryawan
Telp Karyawan
Varchar (50)
No
Yes
emailKaryawan
Email Karyawan
Varchar (50)
Yes
Yes
kdProduk
Kode unik untuk Char (5)
No
No
No
No
Karyawan
Produk
mengidentifikasikan produk namaProduk
Nama Produk
Varchar (50)
115
Nama
Atribut
Deskripsi
Entitas SpesifikasiProduk
Spesifikasi
Data Type dan Nulls
Multi
Length
valued
Varchar (1000)
Yes
No
Yes
Yes
No
Yes
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
Produk Stok
Stok
yang int
tersedia
Utang
Harga
Harga Produk
Decimal (10,2)
kdUtang
kode unik untuk Char (5) mengidentifikasikan utang
IdPembayaranPe
Id
Pembayaran Char (6)
mbelian
Pembelian
tglJatuhTempo
Tanggal
jatuh Datetime
tempo dari utang
Piutang
jumlahUtang
Jumlah utang
Decimal (10,2)
kdPiutang
kode unik untuk Char (5) mengidentifikasikan Piutang
IdPembayaranPen Id
Pembayaran Char (6)
jualan
Penjualan
tglJatuhTempo
T anggal
jatuh Datetime
tempo dari Piutang
jumlahPiutang
Jumlah Piutang
Decimal (10,2)
116
Nama
Atribut
Deskripsi
Entitas Penawaran
IdPenawaran
Id
unik
Data Type dan Nulls
Multi
Length
valued
yang Char (6)
No
No
Varchar (50)
No
No
Char (6)
No
No
identitas Char (6)
No
No
mengidentifikasikan quotation noPenawaran
Nomor Penawaran (quotation)
kdPelanggan
Kode Pelanggan
NIK
Nomor karyawan
Persediaan
kdProduk
Kode Produk
Char (5)
No
No
Qty
Jumlah barang
Int
No
No
Diskon
Diskon
Decimal (10,2)
Yes
No
kdPersediaan
kode unik untuk Char (6)
No
No
No
No
No
No
mengidentifikasikan Persediaan kdProduk
Kode produk
tglProdukM asuk
Tanggal
Char (5)
barang Datetime
masuk
dari
supplier ke CV. M aplesonic
117
Nama
Atribut
Deskripsi
Entitas tglProdukKeluar
Data Type dan Nulls
Multi
Length
valued
barang Datetime
Tanggal keluar
No
No
saat
pengiriman barang
ke
pelanggan
Garansi
stok
Stok yang ada
Int
Yes
No
kdGaransi
Kode garansi
Char (5)
No
No
kdProduk
Kode produk
Char (5)
No
No
kdPelanggan
Kode pelanggan
Char (6)
No
No
noPenjualan
Nomor Invoice
Varchar (50)
No
No
tglPenukaran
Tanggal sparepart Datetime
No
No
No
No
Yes
No
No
No
No
No
ditukar tglService
Tanggal
produk Datetime
diservice alasan
Alasan penukaran Varchar (100) barang
Gudang
KdGudang
Kode unik untuk Char (5) mengidentifikasikan Gudang
NamaGudang
Nama Gudang
Varchar (50)
118
Nama
Atribut
Deskripsi
Entitas
Pemesanan
Data Type dan Nulls
Multi
Length
valued
AlamatGudang
Alamat Gudang
Varchar (50)
No
No
TelpGudang
Telepon Gudang
Varchar (50)
No
Yes
FaxGudang
Fax Gudang
Varchar (50)
No
Yes
NamaKaryGdg
Karyawan gudang Varchar (50)
No
No
IdPemesanan
Id
No
No
Varchar (50)
No
No
Datetime
No
No
yang Char (7)
unik
mengidentifikasikan
pemesanan
dari pelanggan noPemesanan
Nomor pemesanan (purchase order) dari pelanggan
Tglpemesanan
Tanggal pemesanan
Kdpelanggan
Kode pelanggan
Char (6)
No
No
Kdproduk
Kode produk
Char (5)
No
No
Qty
Quantity
Int
No
No
PPN
Pajak Pertambahan Decimal (10,2)
No
No
No
No
Nilai
NIK
Nomor karyawan
induk Char (6)
119
Nama
Atribut
Deskripsi
Entitas diskon
Diskon
Kdtermpayment
Kode
Data Type dan Nulls
Multi
Length
valued
Decimal (10,2) term
Yes
No
of Char (6)
No
No
of Char (6)
No
No
No
No
No
No
No
No
payment kdtermdelivery
Kode
term
delivery status
Status kesediaan Varchar (50) barang
Penjualan
IdPenjualan
Id
unik
yang Char(7)
mengidentifikasikan penjualan NIK
Nomor
induk Char (6)
Karyawan KdPelanggan
Kode Pelanggan
Char (6)
No
No
KdProduk
Kode produk
Char (5)
No
No
PPN
Pajak
Decimal (10,2)
No
No
of Char (6)
No
No
faktur Varchar (50)
No
No
Pertambahan Nilai KdTermPayment
Kode
term
payment NoPenjualan
Nomor penjualan
120
Nama
Atribut
Deskripsi
Entitas NoPemesanan
Nomor
Data Type dan Nulls
Multi
Length
valued
surat Varchar (50)
No
No
Datetime
No
No
Int
No
No
No
No
Varhar (50)
No
No
Char (6)
No
No
Induk Char (6)
No
No
No
No
Datetime
No
No
Char (5)
No
No
pemesanan Tglpenjualan
Tanggal penjualan
Qty
Quantity
Pembayaran
IdPembayaranPen Id
Penjualan
jualan
unik
yang Char (6)
mengidentifikasikan pembayaran penjualan
NoPemesanan
Nomor pemesanan
KdPelanggan
Kode Pelanggan
NIK
Nomor karyawan
NoPembayaranPe
Nomor
njualan
pembayaran
surat Varchar (50)
penjualan tglPembayaranPe
Tanggal
njualan
pembayaran penjualan
KdProduk
Kode produk
121
Nama
Atribut
Deskripsi
Entitas
Pembelian
Qty
Quantity
Idpembelian
Id
unik
Data Type dan Nulls
Multi
Length
valued
Int
No
No
yang Char (7)
No
No
No
No
No
No
No
No
No
No
No
No
mengidentifikasikan pembelian
NIK
Nomor
induk Char (6)
karyawan Kdsupplier
Kode supplier
NoPOSupplier
Nomor
Char (5) surat Varchar (50)
pemesanan
ke
supplier
KdGudang
Kode gudang
NoPembelian
Nomor
Char (5)
faktur Varchar (50)
pembelian tglPembelian
tanggalPembelian
Datetime
No
No
KdProduk
Kode produk
Char (5)
No
No
Qty
Quantity
Int
No
No
PreviousPayment
Jumlah
Decimal (10,2)
No
No
No
No
pembayaran
yang
pernah dilakukan
PaymentDetail
Detail pembayaran Varchar (50) (missal: cek, cash atau transfer)
122
Nama
Atribut
Deskripsi
Entitas
Data Type dan Nulls
Multi
Length
valued
yang Char (6)
Pembayaran
IdPembayaranPe
Id
unik
Pembelian
mbelian
mengidentifikasi-
No
No
No
No
No
No
No
No
No
No
No
No
Datetime
No
No
kan pembayaran pembelian NIK
Nomor
induk Char (6)
karyawan Kdsupplier
Kode supplier
NoPemesanan
Nomor
Char (5)
surat Varchar (50)
pemesanan
TermOf Delivery
KdGudang
Kode gudang
NoPembayaranPe
Nomor
mbelian
pembelian
tglPembayaranPe
Tanggal
mbelian
Pembelian
KdProduk
Kode produk
Char (5)
No
No
Qty
Quantity
Int
No
No
DP
Uang M uka
Decimal (10,2)
No
No
kdTermDelivery
Kode unik untuk Char (6)
No
No
faktur Varchar (50)
mengidentifikasikan syarat batas pengiriman
Char (5)
123
Nama
Atribut
Deskripsi
Entitas TermOfDelivery
Tanggal
Data Type dan Nulls
Multi
Length
valued
Syarat Datetime
No
No
No
No
No
No
No
No
No
No
No
No
Datetime
No
No
Char (6)
No
No
batas pengiriman
TermOf
KdTermPayment
Payment
Kode unik untuk Char (6) mengidentifikasikan syarat batas pembayaran
TermOfPayment
Tanggal
Syarat Datetime
batas pembayaran Delivery
IdDelivery
Order
Id
unik
untuk Char (5)
mengidentifikasikan surat delivery order NoPemesanan
Nomor
Char (7)
pemesanan noSPB
Nomor
surat Varchar (50)
Pengiriman Barang tglKirim
Tanggal pengiriman
KdPelanggan
Kode pelanggan
124
Nama
Atribut
Deskripsi
Entitas NIK
Nomor
Data Type dan Nulls
Multi
Length
valued
induk Char (6)
No
No
karyawan
User
KdProduk
Kode produk
Char (5)
No
No
Qty
Quantity
Int
No
No
KdUser
Kode unik untuk Char (7)
No
No
No
No
No
No
mengidentifikasikan user NIK
Nomor
Induk Char (6)
Karyawan username
User
ID
dari Varchar(50)
pengguna (user) password
Password user
Varchar(50)
No
No
userType
Jenis user
Varchar(50)
No
No
4.1.1.4 Menentukan Domain Atribut domain atribut adalah kumpulan nilai yang diperbolehkan untuk satu atau lebih atribut. Domain merupakan fitur yang sangat kuat dalam model relational. Setiap atribut didalam relasi ditetapkan dalam domain. Dari hasil penentuan atribut maka didapat domain atribut sebagai berikut:
125
Tabel 4.4 Identifikasi domain atribut Nama Entitas
Atribut
Data
Type Domain Atribut
dan Length Pelanggan
kdPelanggan
Char (6)
Diisi dengan PLG[0-9][0-9][0-9]
kdJenisPelanggan
Char (5)
Diisi dengan JP[0-9][0-9][0-9]
namaPelanggan
Varchar (50)
Diisi dengan huruf, maksimal 50 huruf
alamatPelanggan
Varchar (50)
Diisi
dengan
alfanumerik,
maksimal 50 karakter telpPelanggan
Varchar (50)
Diisi dengan angka, maksimal 50 angka
faxPelanggan
Varchar (50)
Diisi dengan angka, maksimal 50 angka
emailPelanggan
Varchar (50)
Diisi
dengan
alfanumerik,
maksimal 50 karakter NPWP
Varchar (50)
Diisi dengan angka, maksimal 50 angka
JenisPelanggan
kdJenisPelanggan
Char (5)
Diisi dengan JP[0-9][0-9][0-9]
namaJenis
Varchar (50)
Diisi dengan huruf, maksimal
Pelanggan Supplier
50 huruf
kdSupplier
Char (5)
Diisi dengan SP[0-9][0-9][0-9]
namaSupplier
Varchar (50)
Diisi dengan huruf, maksimal 50 huruf
126
Nama Entitas
Atribut
Data
Type Domain Atribut
dan Length alamatSupplier
Varchar (50)
Diisi
dengan
alfanumerik,
maksimal 50 karakter telpSupplier
Varchar (50)
Diisi dengan angka, maksimal 50 angka
faxSupplier
Varchar (50)
Diisi dengan angka, maksimal 50 angka
emailSupplier
Varchar (50)
Diisi
dengan
alfanumerik,
maksimal 50 karakter Karyawan
NIK
Char (6)
Diisi dengan NIK[0-9][0-9][0-9]
namaKaryawan
Varchar (50)
Diisi dengan huruf, maksimal 50 huruf
Jabatan
Varchar (50)
Diisi dengan huruf, maksimal 50 huruf
alamatKaryawan
Varchar (50)
Diisi
dengan
alfanumerik,
maksimal 50 karakter telpKaryawan
Varchar (50)
Diisi dengan angka, maksimal 50 angka
emailKaryawan
Varchar (50)
Diisi
dengan
alfanumerik,
maksimal 50 karakter kdProduk
Char (5)
Diisi dengan KP[0-9][0-9][0-9]
127
Nama Entitas
Atribut
Data
Type Domain Atribut
dan Length Produk
namaProduk
Varchar (50)
Diisi
dengan
alfanumerik,
maksimal 50 karakter SpesifikasiProduk
Varchar (1000)
Diisi
dengan
alfanumerik,
maksimal 1000 karakter Stok
int
Diisi dengan angka
Harga
Decimal (10,2)
Diisi dengan angka, maksimal 10
angka
dan
2
angka
dibelakang koma Utang
kdUtang
Char (5)
Diisi dengan UT [0-9][0-9][0-9]
IdPembayaranPem
Char (6)
Diisi dengan PB[0-9][0-9][0-
belian tglJatuhTempo
9][0-9] Datetime
Diisi dengan format tanggal dd/mm/yy hh:mm
jumlahUtang
Decimal (10,2)
Diisi dengan angka, maksimal 10 angka dan 2 angka dibelakang koma
Piutang
kdPiutang
Char (5)
Diisi dengan PT[0-9][0-9][0-9]
IdPembayaranPenj
Char (6)
Diisi dengan PJ[0-9][0-9][0-
ualan tglJatuhTempo
9][0-9] Datetime
Diisi dengan format tanggal dd/mm/yy hh:mm
128
Nama Entitas
Atribut
Data
Type Domain Atribut
dan Length jumlahPiutang
Decimal (10,2)
Diisi dengan angka, maksimal 10
angka
dan
2
angka
dibelakang koma Penawaran
IdPenawaran
Char (6)
Diisi dengan QT[0-9][0-9][09][0-9]
noPenawaran
Varchar (50)
Diisi
dengan
alfanumerik,
maksimal 50 karakter kdPelanggan
Char (6)
Diisi dengan PLG[0-9][0-9][0-9]
NIK
Char (6)
Diisi dengan NIK[0-9][0-9][0-9]
kdProduk
Char (5)
Diisi dengan KP[0-9][0-9][0-9]
Qty
Int
Diisi dengan angka
Diskon
Decimal (10,2)
Diisi dengan angka, maksimal 10 angka dan 2 angka dibelakang koma
Persediaan
kdPersediaan
Char (6)
Diisi dengan PSD[0-9][0-9][0-9]
kdProduk
Char (5)
Diisi dengan KP[0-9][0-9][0-9]
tglProdukM asuk
Datetime
Diisi dengan format tanggal dd/mm/yy hh:mm
tglProdukKeluar
Datetime
Diisi dengan format tanggal dd/mm/yy hh:mm
stok
Int
Diisi dengan angka
129
Nama Entitas
Atribut
Data
Type Domain Atribut
dan Length Garansi
kdGaransi
Char (5)
Diisi dengan GR[0-9][0-9][0-9]
kdProduk
Char (5)
Diisi dengan KP[0-9][0-9][0-9]
kdPelanggan
Char (6)
Diisi dengan PLG[0-9][0-9][0-9]
noPenjualan
Varchar (50)
Diisi
dengan
alfanumerik,
maksimal 50 karakter
tglPenukaran
Datetime
Diisi dengan format tanggal dd/mm/yy hh:mm
tglService
Datetime
Diisi
dengan
format
tanggal
dd/mm/yy hh:mm
alasan
Varchar (100)
Diisi
dengan
alfanumerik,
maksimal 100 karakter
Gudang
KdGudang
Char (5)
Diisi dengan GD[0-9][0-9][0-9]
NamaGudang
Varchar (50)
Diisi
dengan
alfanumerik,
maksimal 50 karakter AlamatGudang
Varchar (50)
Diisi
dengan
alfanumerik,
maksimal 50 karakter TelpGudang
Varchar (50)
Diisi dengan angka, maksimal 50 angka
FaxGudang
Varchar (50)
Diisi
dengan
alfanumerik,
maksimal 50 karakter
NamaKaryGdg
Varchar (50)
Diisi
dengan
alfanumerik,
maksimal 50 karakter
130
Nama Entitas
Atribut
Data
Type Domain Atribut
dan Length Pemesanan
IdPemesanan
Char (6)
Diisi dengan PO[0-9][0-9][09][0-9]
noPemesanan
Varchar (50)
Diisi
dengan
alfanumerik,
maksimal 50 karakter
Tglpemesanan
Datetime
Diisi dengan format tanggal dd/mm/yy hh:mm
Kdpelanggan
Char (6)
Diisi dengan PLG[0-9][0-9][0-9]
Kdproduk
Char (5)
Diisi dengan KP[0-9][0-9][0-9]
Qty
Int
Diisi dengan angka
PPN
Decimal (10,2)
Diisi dengan angka, maksimal 10 angka dan 2 angka dibelakang koma
NIK
Char (6)
Diisi dengan NIK[0-9][0-9][0-9]
diskon
Decimal (10,2)
Diisi dengan angka, maksimal 10 angka dan 2 angka dibelakang koma
Kdtermpayment
Char (6)
Diisi dengan T OP[0-9][0-9][0-9]
kdtermdelivery
Char (6)
Diisi dengan T OD[0-9][0-9][0-9]
status
Varchar (50)
Diisi
dengan
alfanumerik,
maksimal 50 karakter Penjualan
IdPenjualan
Char(7)
Diisi 9][0-9]
dengan
PJL[0-9][0-9][0-
131
Nama Entitas
Atribut
Data
Type Domain Atribut
dan Length NIK
Char (6)
Diisi dengan NIK[0-9][0-9][0-9]
KdPelanggan
Char (6)
Diisi dengan PLG[0-9][0-9][0-9]
KdProduk
Char (5)
Diisi dengan KP[0-9][0-9][0-9]
PPN
Decimal (10,2)
Diisi dengan angka, maksimal 10 angka dan 2 angka dibelakang koma
KdTermPayment
Char (6)
Diisi dengan T OP[0-9][0-9][0-9]
NoPenjualan
Varchar (50)
Diisi
dengan
alfanumerik,
maksimal 50 karakter NoPemesanan
Varchar (50)
Diisi
dengan
alfanumerik,
maksimal 50 karakter Tglpenjualan
Datetime
Diisi dengan format tanggal dd/mm/yy hh:mm
Qty
Int
Diisi dengan angka
Pembayaran
IdPembayaranPenj
Char (6)
Diisi dengan PJ[0-9] [0-9][0-
Penjualan
ualan NoPemesanan
9][0-9] Varchar (50)
Diisi
dengan
alfanumerik,
maksimal 50 karakter
KdPelanggan
Char (6)
Diisi dengan PLG[0-9][0-9][0-9]
NIK
Char (6)
Diisi dengan NIK[0-9][0-9][09]
132
Nama Entitas
Atribut
Data
Type Domain Atribut
dan Length NoPembayaranPen Varchar (50)
Diisi
jualan
maksimal 50 karakter
tglPembayaranPen
Datetime
jualan
dengan
alfanumerik,
Diisi dengan format tanggal dd/mm/yy hh:mm Diisi dengan angka
Pembelian
KdProduk
Char (5)
Diisi dengan KP[0-9][0-9][0-9]
Qty
Int
Diisi dengan angka
Idpembelian
Char (7)
Diisi
dengan
PM B[0-9][0-
9][0-9][0-9] NIK
Char (6)
Diisi dengan NIK[0-9][0-9][0-9]
Kdsupplier
Char (5)
Diisi dengan SP[0-9][0-9][0-9]
NoPOSupplier
Varchar (50)
Diisi
dengan
alfanumerik,
maksimal 50 karakter KdGudang
Char (5)
Diisi dengan GD[0-9][0-9][0-9]
NoPembelian
Varchar (50)
Diisi
dengan
alfanumerik,
maksimal 50 karakter tglPembelian
Datetime
Diisi dengan format tanggal dd/mm/yy hh:mm
KdProduk
Char (5)
Diisi dengan KP[0-9][0-9][0-9]
Qty
Int
Diisi dengan angka
133
Nama Entitas
Atribut
Data
Type Domain Atribut
dan Length PreviousPayment
Decimal (10,2)
Diisi dengan angka, maksimal 10
angka
dan
2
angka
dibelakang koma PaymentDetail
Varchar (50)
Diisi dengan huruf, maksimal 50 karakter
PembayaranPem
IdPembayaranPem
belian
belian
Char (6)
Diisi dengan PB[0-9][0-9][09][0-9]
NIK
Char (6)
Diisi dengan NIK[0-9][0-9][0-9]
Kdsupplier
Char (5)
Diisi dengan SP[0-9][0-9][0-9]
NoPemesanan
Varchar (50)
Diisi
dengan
alfanumerik,
maksimal 50 karakter KdGudang
Char (5)
Diisi dengan GD[0-9][0-9][0-9]
NoPembayaranPe
Varchar (50)
Diisi
mbelian tglPembayaranPe
dengan
alfanumerik,
maksimal 50 karakter Datetime
mbelian
Diisi dengan format tanggal dd/mm/yy hh:mm
KdProduk
Char (5)
Diisi dengan KP[0-9][0-9][0-9]
Qty
Int
Diisi dengan angka
DP
Decimal (10,2)
Diisi dengan angka, maksimal 10
angka
dan
dibelakang koma
2
angka
134
Nama Entitas
Atribut
Data
Type Domain Atribut
dan Length TermOfDelivery
kdTermDelivery
Char (6)
Diisi dengan T OD[0-9][0-9][0-9]
TermOfDelivery
Datetime
Diisi dengan format tanggal dd/mm/yy hh:mm
TermOfPayment
KdTermPayment
Char (6)
Diisi dengan T OP[0-9][0-9][0-9]
TermOfPayment
Datetime
Diisi dengan format tanggal dd/mm/yy hh:mm
DeliveryOrder
IdDelivery
Char (5)
Diisi dengan DL[0-9][0-9][0-9]
NoPemesanan
Varchar (50)
Diisi
dengan
alfanumerik,
maksimal 50 karakter noSPB
Varchar (50)
Diisi
dengan
alfanumerik,
maksimal 50 karakter tglKirim
Datetime
Diisi dengan format tanggal dd/mm/yy hh:mm
User
NIK
Char (6)
Diisi dengan NIK[0-9][0-9][0-9]
KdPelanggan
Char (6)
Diisi dengan PLG[0-9][0-9][0-9]
KdProduk
Char (5)
Diisi dengan KP[0-9][0-9][0-9]
Qty
Int
Diisi dengan angka
KdUser
Char(7)
Diisi dengan User[0-9][0-9][0-9]
NIK
Char(6)
Diisi dengan NIK[0-9][0-9][0-9]
username
Varchar(50)
Diisi
dengan
alfanumerik,
maksimal 50 karakter
135
Nama Entitas
Atribut
Data
Type Domain Atribut
dan Length password
Varchar(50)
Diisi
dengan
alfanumerik,
maksimal 50 karakter userType
Varchar(50)
Diisi dengan huruf, maksimal 50 huruf
4.1.1.5 Mengidentifikasikan Atribut Candidate Key dan Primary Key Candidate
key
adalah
sekelompok
atribut
yang secara
unik
mengidentifikasikan tiap kemunculan dari tipe entitas. Primary key adalah key yang dipilih untuk mengidentifikasikan secara unik tiap kemunculan. Tabel berikut ini adalah dokumentasi mengenai atribut yang dipilih sebagai primary key untuk setiap entitas yang telah didefinisikan diatas: Tabel 4.5 identifikasi atribut Candidate Key dan Primary Key Nama Entity
Candidat Key
Primary Key
Pelanggan
KdPelanggan, NPWP
KdPelanggan
Supplier
KdSupplier
KdSupplier
Karyawan
NIK
NIK
Produk
KdProduk
KdProduk
Persediaan
KdPersediaan
KdPersediaan
JenisPelanggan
KdJenisPelanggan
KdJenisPelanggan
Utang
KdUtang
KdUtang
Piutang
KdPiutang
KdPiutang
Garansi
KdGaransi
KdGaransi
136
TermOfPayment
KdTermOfPayment
KdTermOfPayment
TermOfDelivery
KdTermOfDelivery
KdTermOfDelivery
Gudang
KdGudang
KdGudang
DeliveryOrder
IdDelivery, NoPenjualan
IdDelivery
User
kdUser, NIK
NIK
Penjualan
IdPenjualan, NoPenjualan
IdPenjualan
Pembelian
IdPembelian,NoPembelian
IdPembelian
Pemesanan
IdPemesanan,NoPemesanan
IdPemesanan
DeliveryOrder
IdDeliveryOrder
IdDeliveryOrder
PembayaranPenjual
IdPembayaranPenjualan,
IdPembayaranPenjua
an
NoPembayaranPenjualan
lan
PembayaranPembel
IdPembayaranPembelian,
IdPembayaranPembe
ian
NoPembayaranPembelian
lian
Penawaran
IdPenawaran,NoPenawaran
IdPenawaran
Berikut ini adalah gambar entity relationship diagam CV. M apleSonic Indonesia dengan penambahan primary key
137
Gambar 4.2 Entity Relationship Diagram CV.Maplesonic dengan Primary-Key
138
4.1.1.6 Menggunakan konsep pemodelan enhanced (optional step) Langkah ini untuk mempertimbangkan penggunaan konsep enhanced modeling, seperti specialization / generalization, aggregation, dan composition. Namun di dalam M odel Konseptual pada sistem pembelian ,penjualan dan persediaan ini tidak memerlukan konsep untuk pemodelan enhanced.
4.1.1.7 Mengecek Redundancy dari model Setelah diperiksa semua relasi dari masing – masing entitas, di dalam sistem basisdatanya tidak terdapat hubungan redudansi. M aka langkah ini tidak digunakan.
4.1.1.8 Memvalidasikan Model Konseptual Lokal dengan Transaksi User Langkah ini memvalidasikan model konseptual terlebih dahulu, untuk mengetahui apakah mampu menangani setiap transaksi yang akan dilakukan oleh pengguna (user). Cara pengujian dilakukan dengan menggunakan jalur transaksi pada diagram ER.
139
Gambar 4.3 ERD dengan transaksi user
140
Berikut langkah – langkah transaksi yang dilakukan user berdasarkan gambar diagram ER di atas: a) User merupakan karyawan yang melakukan akses ke sistem pembelian, persedian dan penjualan. b) M encatat dan memasukan data karyawan ke dalam database berdasarkan kode karyawan pada transaksi pembelian produk. c) M encatat dan memasukan data karyawan ke dalam database berdasarkan kode karyawan pada transaksi pembayaran pembelian produk. d) M encatat dan memasukan data karyawan ke dalam database berdasarkan kode karyawan pada transaksi penawaran. e) M encatat dan memasukan data karyawan ke dalam database berdasarkan kode karyawan pada transaksi pemesanan. f) M encatat dan memasukan data karyawan ke dalam database berdasarkan kode karyawan pada transaksi penjualan. g) M encatat dan memasukan data karyawan ke dalam database berdasarkan kode karyawan pada transaksi pembayaran penjualan. h) M encatat
informasi
perubahan
jumlah
produk
berdasarkan
persediaan. i) M encatat informasi perubahan jumlah produk berdasarkan pembelian. j) M encatat informasi perubahan jumlah produk berdasarkan penjualan. k) M encatat penawaran.
informasi
perubahan
jumlah
produk
berdasarkan
141
l) M encatat informasi perubahan jumlah produk berdasarkan delivery order. m) M encatat
informasi
perubahan
jumlah
produk
berdasarkan
informasi
perubahan
jumlah
produk
berdasarkan
perubahan
jumlah
produk
berdasarkan
pemesanan. n) M encatat
pembayaran penjualan. o) M encatat
informasi
pembayaran pembelian. p) M encatat informasi perubahan jumlah produk berdasarkan garansi. q) M encatat dan memasukan data kode jenis pelanggan ke dalam pelanggan berdasarkan jenis pelanggan. r) M encatat dan memasukkan data supplier ke dalam database berdasarkan kdsupplier dan nama supplier pada transaksi pembelian. s) M encatat dan memasukkan data supplier ke dalam database berdasarkan kdsupplier dan nama supplier pada transaksi pembayaran pembelian. t) M encatat dan memasukkan data pelanggan ke dalam database berdasarkan kdpelanggan dan nama pelanggan pada transaksi penjualan. u) M encatat dan memasukkan data pelanggan ke dalam database berdasarkan kdpelanggan dan nama pelanggan pada transaksi pembayaran penjualan.
142
v) M encatat dan memasukkan data pelanggan ke dalam database berdasarkan kdpelanggan dan nama pelanggan pada transaksi pemesanan. w) M encatat dan memasukkan data pelanggan ke dalam database berdasarkan kdpelanggan dan nama pelanggan pada transaksi penawaran. x) M encatat dan memasukkan data pelanggan ke dalam database berdasarkan kdpelanggan dan nama pelanggan pada transaksi garansi. y) M encatat dan memasukkan tanggal pembelian ke dalam database berdasarkan kdproduk pada gudang. z) M encatat dan memasukkan tanggal pembayaran pembelian ke dalam database berdasarkan kdproduk pada gudang. aa) M encatat dan memasukkan data pemesanan ke dalam database berdasarkan nopemesanan pada penjualan. bb) M encatat dan memasukkan data pemesanan ke dalam database berdasarkan nopemesanan pada delivery order. cc) M encatat dan memasukkan data penjualan ke dalam database berdasarkan nopenjualan pada garansi. dd) M encatat dan memasukkan data pembayaran penjualan ke dalam database berdasarkan idpembayaranpenjualan pada piutang. ee) M encatat dan memasukkan data pembayaran pembelian ke dalam database berdasarkan idpembayaranpembelian pada utang. ff) M encatat dan memasukkan data termofdelivery ke dalam database berdasarkan kdtermofdelivery pada pemesanan.
143
gg) M encatat dan memasukkan data termofpayment ke dalam database berdasarkan kdtermofpayment pada penjualan. hh) M encatat dan memasukkan data termofpayment ke dalam database berdasarkan kdtermofpayment pada pemesanan.
4.1.1.9 Melihat Kembali Conceptual Data Model dengan User Peninjauan data konseptual ini sudah sesuai dengan kebutuhan user. M odel data konseptual merupakan representasi dari kebutuhan transaksi user. M odel data konseptual ini termasuk ER diagram dan dokumentasi pendukung yang mendeskripsikan model data.
4.1.2
Perancangan Basisdata Logikal Perancangan ini merupakan Lanjutan dari tahap konseptual. Di dalam Perancangan Basis Data Logikal ini akan di gambarkan isi dari databse dan hubungan antar Entitas dalam basis data. Berikut ini adalah langkah – langkah membuat perancangan basis data Logikal : Langkah 2 : Membangun dan memvalidasi model data logical local untuk setiap view 4.1.2.1 Menghapus fitur yang tidak kompatibel dengan model relasi 4.1.2.1.1 Menghapus Many to many Binary Relationship
1. Relasi antara Produk dan Pembelian menghasilkan entitas baru yaitu
DetailPembelian
IdPembelian.
dengan
posting
KdProduk
dan
144
Gambar 4.4 Produk dan Pembelian
2. Relasi antata Produk dan Penjualan menghasilkan entitas baru yaitu
DetailPenjualan
dengan
posting
KdProduk
dan
IdPenjualan.
Gambar 4.5 Produk dan Penjualan
145
3. Relasi antata Produk dan Penawaran menghasilkan entitas baru yaitu
DetailPenawaran
dengan
posting
KdProduk
dan
IdPenawaran.
Gambar 4.6 Produk dan Penawaran
4. Relasi antata Produk dan DeliveryOrder menghasilkan entitas baru yaitu DetailDeliveryOrder dengan posting KdProduk dan IdDeliveryOrder.
146
Gambar 4.7 Produk dan DeliveryOrder 5. Relasi antata Produk dan HeaderPemesanan menghasilkan entitas baru yaitu DetailPemesanan dengan posting KdProduk dan IdPemesanan.
Gambar 4.8 Produk dan HeaderPemesanan
147
6. Relasi
antata
Produk
dan
HeaderPembayaranPenjualan
menghasilkan entitas baru yaitu DetailPembayaranPenjualan dengan posting KdProduk dan IdPePembayaranPenjualan.
Gambar 4.9 Produk dan HeaderPembayaranPenjualan
4.1.2.1.2 Menghapus Many to many Recursive Relationship Di dalam analisa yang telah di lakukan, tidak didapati ada nya Relasi Many to many dengan model relas i rekursif, sehingga tidak ada sesuatu yang perlu di hapus.
148
4.1.2.1.3 Menghapus tipe relasi yang kompleks Tipe relasi yang kompleks tidak terdapat di dalam relasi basis data dalam sistem ini, sehingga tidak ada fitur yang di hapus.
4.1.2.1.4 Menghapus Multivalued Attribute Di dalam perancangan basis data dalam sistem ini, terdapat Multivalue Attribute Yaitu Telp, email , dan fax yang dapat dihilangkan dan menjadi sebuah entitas tersendiri.
1. Atribut Telepon Pelanggan di pisahkan dan di jadikan entitas baru yaitu entitas TelpPelanggan yang mempunyai relasi dengan Pelanggan yaitu “M emiliki” multiplicity 1:* (one to many)
Gambar 4.10 Multivalued Attribute TelpPelanggan
149
2. Atribut Email Pelanggan di pisahkan dan di jadikan entitas baru yaitu EmailPelanggan yang mempunyai relasi dengan pelanggan yaitu “M emiliki” multiplicity 1:* (One to many)
Gambar 4.11 Multivalued Attribute EmailPelaggan 3.
Atribut Fax Pelanggan di pisahkan dan di jadikan entitas baru yaitu FaxPelanggan yang mempunyai relasi dengan pelanggan yaitu “M emiliki” multiplicity 1:* (One to many)
150
Gambar 4.12 Multivalued Attribute FaxPelanggan 4. Atribut Telepon Karyawan di pisahkan dan di jadikan entitas baru yaitu TelpKaryawan yang mempunyai relasi dengan Karyawan yaitu “M emiliki” multiplicity 1:* (One to many)
Gambar 4.13 Multivalued Attribute TelpKaryawan
151
5. Atribut Email Karyawan di pisahkan dan di jadikan entitas baru yaitu EmailKaryawan yang mempunyai relasi dengan Karyawan yaitu “M emiliki” multiplicity 1:* (One to many)
Gambar 4.14 Multivalued Attribute EmailKaryawan
6. Atribut Telepon Supplier di pisahkan dan di jadikan entitas baru yaitu TelpSupplier yang mempunyai relasi dengan Supplier yaitu “M emiliki” multiplicity 1:* (One to many)
152
Gambar 4.15 Multivalued Attribute TelpS upplier 7. Atribut Email Supplier di pisahkan dan di jadikan entitas baru yaitu EmailSupplier yang mempunyai relasi dengan Supplier yaitu “M emiliki” multiplicity 1:* (One to many)
Gambar 4.16 Multivalued Attribute EmailSupplier
153
8. Atribut Fax Supplier di pisahkan dan di jadikan entitas baru yaitu FaxSupplier yang mempunyai relasi dengan Supplier yaitu “M emiliki” multiplicity 1:* (One to many)
Gambar 4.17 Multivalued Attribute FaxS upplier
9. Atribut Telepon Gudang di pisahkan dan di jadikan entitas baru yaitu TelpGudang yang mempunyai relasi dengan Gudang yaitu “M emiliki” multiplicity 1:* (One to many)
154
Gambar 4.18 Multivalued Attribute TelpGudang 10. Atribut Fax Gudang di pisahkan dan di jadikan entitas baru yaitu FaxGudang yang mempunyai relasi dengan Gudang yaitu “M emiliki” multiplicity 1:* (One to many)
Gambar 4.19 Multivalued Attribute FaxGudang
155
4.1.2.2 Menentukan Relasi untuk Model Data Logikal Langkah ini Bertujuan untuk membuat Relasi untuk model data logikal untuk menampilkan kembali Entitas, Relationship dan atribut yang di identifikasi. 4.1.2.2.1 Strong Entity Type Tahap ini berfungsi untuk membagi entitas apa saja yang termasuk dalam himpunan strong entity type dimana di dalam himpunan ini hanya terdapat entitas – entitas yang tidak memiliki ketergantungan terhadap entitas yang lain. Berikut ini adalah himpunan Strong Entity Type. Karyawan
(NIK,
NamaKaryawan,
Jabatan,
TelpKaryawan,
AlamatKaryawan, EmailKaryawan) Primary Key NIK Pelanggan
(KdPelanggan,
KdJenisPelanggan,
NamaPelanggan,
TelpPelanggan, AlamatPelanggan, Fax, NPWP, EmailPelanggan) Primary Key KdPelanggan Supplier (KdSupplier, NamaSupplier, TelpSupplier, AlamatSupplier, FaxSupplier, EmailSupplier) Primary Key KdSupplier Produk ( KdProduk, NamaProduk, SpesifikasiProduk, Harga) Primary Key KdProduk Persediaan
(KdPersediaan,
TglProdukKeluar, Qty) Primary Key KdPersediaan
KdProduk,
TglProdukM asuk,
156
JenisPelanggan (KdJenisPelanggan, NamaJenisPelanggan) Primary Key KdJenisPelanggan Utang
(KdUtang,
IdPembayaranPembelian,
Tgl-Jatuh-Tempo,
JumlahUtang) Primary Key KdUtang Piutang
(KdPiutang,
IdPembayaranPenjualan,
Tgl-Jatuh-
Tempo,JumlahPiutang) Primary Key KdPiutang User (KdUser, NIK, Username, Password, TipeUser) Primary Key KdUser Gudang (KdGudang,
NamaGudang, AlamatGudang,
TelpGudang,
FaxGudang, NamaKaryawanGudang) Primary Key KdGudang Garansi
(KdGaransi,
KdProduk,
KdPelanggan,
NoPenjualan,
TglPenukaran,Alasan) Primary Key KdGaransi TermOfPayment (KdTermPayment, TermOfPayment) Primary Key KdTermPayment TermOfDeliery (KdTermDelivery, TermOfDelivery) Primary Key KdTermDelivery HeaderPenjualan
(IdPenjualan,
NoPenjualan,
TglPenjualan, NoPemesanan, TermOfPayment, NIK ) Primary Key IdPenjualan
KdPelanggan,
157
HeaderPembelian (IdPembelian, NIK, KdSupplier, NoPemesanan, KdGudang,
NoPoSupplier,
NoPembelian,
T glPembelian,
PreviousPayment, PaymentDetail ) Primary Key IdPembelian HeaderPenawaran
(IdPenawaran, NoPenawaran, KdPelanggan, NIK,
Diskon) Primary Key IdPenawaran HeaderPemesanan
(IdPemesanan,
NoPemesanan,
TglPemesanan,
KdPelanggan, Diskon, PPN, NIK, TermOfPayment, TermOfDelivery, IdDelivery, IdPenjualan, Status) Primary Key IdPemesanan HeaderPembayaranPenjualan
(IdPembayaranPenjualan,
NoPemesanan, NIK, NoPembayaranPenjualan, T glPembayaranPenjualan, KdPelanggan ) Primary Key IdPembayaranPenjualan HeaderPembayaranPembelian (IdPembayaranPembelian, NoPembayaranPembelian, NoPemesanan, NIK, KdGudang ,KdSupplier, TglPembayaranPembelian, DP) Primary Key IdPembayaranPembelian HeaderDeliveryOrder (IdDelivery, NoPemesanan, noSPB, TglKirim, NIK, KdPelanggan) Primary Key IdDelivery
158
4.1.2.2.2 Weak Entitas Type Tahap ini merupakan lawan dari tahap Strong entity type, di dalam Himpunan
Weak
entity
type
terdapat
entitas
–
entitas yang
kemunculannya tergantung eksistensinya dalam sebuah relasi terhadap suatu entitas lainnya. Setiap entitas yang ada di dalam Himpunan ini, tidak mempunyai atribut yang dapat berfungsi sebagai Key untuk menjamin sebuah keunikan entitas di dalamnya. Berikut ini adalah himpunanya. DetailPembelian (IdPembelian, KdProduk, Qty) Primary Key IdPembelian DetailPenjualan (IdPenjualan, KdProduk, Qty) Primary Key IdPenjualan DetailPembayaranPenjualan (IdPembayaranPenjualan, Qty,KdProduk) Primary Key IdPembayaranPenjualan DetailPenawaran (IdPenawaran, KdProduk, Qty, Diskon) Primary Key IdPenawaran DetailPembayaranPembelian
(IdPembayaranPembelian,
KdProduk ) Primary Key IdPembayaranPembelian DetailPemesanan (IdPemesanan, KdProduk, Qty) Primary Key IdPemesanan DetailDeliveryOrder (IdDelivery, KdProduk, Qty) Primary Key IdDelivery TelpKaryawan (TelpKaryawan)
Qty,
159
Primary Key None EmailKaryawan (EmailKaryawan) Primary Key None TelpPelanggan (TelpPelanggan) Primary Key None EmailPelanggan (EmailPelanggan) Pimary Key None FaxPelanggan (FaxPelanggan) Primary Key None TelpS upplier (TelpSupplier) Primary Key None FaxS upplier (FaxSupplier) Primary Key None EmailS upplier (EmailSupplier) Primary KeyNone TelpGudang (TelpGudang) Primary Key None FaxGudang (FaxGudang) Primary Key None
4.1.2.2.3
One-to-many ( 1:*)Binary Relationship
Untuk setiap 1:* Binary Relationship, Setiap entitas relasi One di gambarkan sebagai parent entitas dan entitas relasi many digambarkan sebagai child entitas.
160
Post NIK Ke Pembelian 1:* relasi M elakukan
Karyawan(NIK,NamaKaryawan, TelpKaryawan,
Jabatan,
AlamatKaryawan,
EmailKaryawan)
Pembelian (IdPembelian, NIK ,KdSupplier, NoPemesanan,
KdGudang,NoPoSupplier,
NoPembelian, TglPembelian, PreviousPayment,
Primary Key NIK
PaymentDetails)
Primary Key IdPembelian Foreign Key NIK references Karyawan (NIK)
Post NIK Ke Penjualan 1:* relasi M enerima
Karyawan(NIK,NamaKaryawan, TelpKaryawan,
Jabatan,
AlamatKaryawan,
EmailKaryawan)
Penjualan
(IdPenjualan,
KdPelanggan,
TglPenjualan,
NoPenjualan, NoPemesanan,
KdTermPayment, NIK)
Primary Key NIK
Primary Key IdPenjualan Foreign Key NIK references Karyawan (NIK)
Post NIK Ke Penawaran 1:* relasi M elakukan
Karyawan(NIK,NamaKaryawan, TelpKaryawan,
Jabatan,
AlamatKaryawan,
Penawaran
(IdPenawaran,
NoPenawaran,
KdPelanggan, NIK, Diskon)
EmailKaryawan) Primary Key IdPenawaran Primary Key NIK Foreign Key NIK references Karyawan(NIK)
161
Post NIK Ke Pemesanan 1:* relasi M enerima
Karyawan(NIK,NamaKaryawan, TelpKaryawan,
Jabatan,
AlamatKaryawan,
EmailKaryawan)
Pemesanan
(IdPemes anan,NoPemesanan,
TglPemesanan,KdPelanggan, Diskon,PPN,NIK, KdTermpayment, Kdtermofdelivery, Status)
Primary Key NIK
Primary Key IdPemesanan Foreign Key NIK references Karyawan (NIK)
Post NIK Ke PembayaranPembelian 1:* relasi M enerima
Karyawan(NIK,NamaKaryawan, TelpKaryawan,
Jabatan,
AlamatKaryawan,
EmailKaryawan) Primary Key NIK
PembayaranPembelian(IdPembayaranPembeli an, NoPembayaranPembelian, NoPemesanan, NIK, KdGudang , KdSupplier, TglPembayaranPembelian, DP) Primary Key IdPembayaranPembelian Foreign Key NIK references Karyawan (NIK)
Post NIK Ke Garansi 1:* relasi M emeriksa
Karyawan(NIK,NamaKaryawan, TelpKaryawan, EmailKaryawan)
Jabatan,
AlamatKaryawan,
Garansi (KdGaransi, KdProduk, KdPelanggan, NoPenjualan, TglPenukaran, Alasan) Primary Key KdGaransi
Primary Key NIK Foreign Key NIK references Karyawan (NIK)
162
Post KdPelanggan Ke Penjualan 1:* relasi M elakukan
Pelanggan (KdPelanggan, KdJenisPelanggan, NamaPelanggan,
TelpPelanggan,
AlamatPelanggan, Fax,NPWP, EmailPelanggan) Primary Key KdPelanggan
Penjualan
(IdPenjualan,
KdPelanggan,
TglPenjualan,
NoPenjualan, NoPemesanan,
KdTermPayment, NIK) Primary Key IdPenjualan Foreign Key KdPelanggan references Pelanggan (KdPelanggan)
Post KdPelanggan Ke PembayaranPenjualan 1:* relasi M elakukan
Pelanggan (KdPelanggan, KdJenisPelanggan,
PembayaranPenjualan( TelpPelanggan, IdPembayaranPenjualan, NoPemesanan, NIK, AlamatPelanggan, Fax,NPWP, EmailPelanggan) NoPembayaranPenjualan, TglPembayaranPenjualan, KdPelanggan) Primary Key KdPelanggan Primary Key IdPembayaranPenjualan NamaPelanggan,
Foreign Key KdPelanggan references Pelanggan (KdPelanggan)
163
Post KdPelanggan Ke Pemesanan 1:* relasi M elakukan
Pelanggan (KdPelanggan, KdJenisPelanggan,
Pemesanan (IdPemesanan, TglPemesanan, TelpPelanggan, KdPelanggan, Diskon, PPN, NIK, AlamatPelanggan, Fax,NPWP, EmailPelanggan) KdTermpayment, Kdtermofdelivery, Status ) NamaPelanggan,
Primary Key IdPemesanan
Primary Key KdPelanggan
Foreign Key KdPelanggan references Pelanggan (KdPelanggan)
Post KdPelanggan Ke Penawaran 1:* relasi M enerima
Pelanggan (KdPelanggan, KdJenisPelanggan,
Penawaran (IdPenawaran, NoPenawaran, TelpPelanggan, KdPelanggan,NIK, Diskon) AlamatPelanggan, Fax,NPWP, EmailPelanggan) Primary Key IdPenawaran NamaPelanggan,
Primary Key KdPelanggan
Foreign Key KdPelanggan references Pelanggan (KdPelanggan)
Post KdPelanggan Ke Garansi 1:* relasi M elakukan
Pelanggan (KdPelanggan, KdJenisPelanggan, NamaPelanggan,
TelpPelanggan,
Garansi (KdGaransi, KdProduk, KdPelanggan, NoPenjualan, TglPenukaran,Alasan)
AlamatPelanggan, Fax,NPWP, EmailPelanggan) Primary Key KdGaransi Primary Key KdPelanggan Foreign
Key
KdPelanggan
Pelanggan(KdPelanggan)
refer ences
164
Post KdJenisPelanggan Ke Pelanggan 1:* relasi Dimiliki
JenisPelanggan
(KdJenisPelanggan,
NamaJenisPelanggan) Primary Key KdJenisPelanggan
Pelanggan (KdPelanggan, KdJenisPelanggan, NamaPelanggan, TelpPelanggan, AlamatPelanggan, Fax, NPWP, EmailPelanggan) Primary Key KdPelanggan Foreign Key KdJenisPelanggan references JenisPelanggan(KdJ enisPelanggan)
Post KdS upplier Ke Pembelian 1:* relasi M enerima
Supplier(KdSupplier,NamaSupplier, TelpSupplier,
AlamatSupplier,
EmailSupplier ) Primary Key KdSupplier
Pembelian (IdPembelian, NIK ,KdSupplier, FaxSupplier, NoPemesanan, KdGudang,NoPoSupplier,NoPembelian, TglPembelian, PreviousPayment, PaymentDetails ) Primary Key IdPembelian Foreign Key KdSupplier References Supplier(KdSupplier)
Post KdS upplier Ke PembayaranPembelian 1:* relasi M enerima
Supplier( KdSupplier, NamaSupplier, TelpSupplier, AlamatSupplier, FaxSupplier, EmailSupplier) Primary Key KdSupplier
PembayaranPembelian (IdPembayaranPembelian, NoPembayaranPembelian, NoPemesanan, NIK, KdGudang
,KdSupplier,
TglPembayaranPembelian, DP)
Primary Foreign
Key Key
IdPembayaranPembelian KdSupplier
references
Supplier(KdSupplier)
165
Post KdProduk Ke Persediaan 1:* relasi M empengaruhi
Produk
(KdProduk,
SpesifikasiProduk, Harga) Primary Key KdProduk
NamaProduk,
Persediaan
(KdPers ediaan,
KdProduk,
TglProdukMasuk, TglProdukKeluar, Qty ) Primary Key KdPersediaan Foreign Key KdProduk References Produk (KdProduk)
4.1.2.2.4
One to one ( 1:1 ) Binary relationship M embuat relasi untuk mempresentasikan relasi 1:1 adalah sedikit lebih kompleks sebagai inti yang tidak dapat digunakan untuk mengidentifikasi parent dan child entitas dalam sebuah relasi.
166
Post IdPemesanan Ke Penjualan 1:1 relasi M enimbulkan
Pemesanan
(IdPemesanan,
KdPelanggan,
Diskon,
TglPemesanan, PPN,
NIK,
KdTermpayment, Kdtermdelivery, Status ) Primary Key IdPemesanan
(KdPelanggan) Key
NoPenjualan,
KdPelanggan,
IdPemesanan,
TglPenjualan,
KdTermPayment, NIK ) Primary Key IdPenjualan
Foreign Key KdPelanggan references Pelanggan
Foreign
Penjualan(IdPenjualan,
Foreign
Key
IdPemesanan
references
Pemesanan (IdPemes anan) KdTermPayment
refer ences
Foreign Key NIK references Karyawan (NIK)
TermOfPayment (KdTermPayment) Foreign
Key
KdTermDelivery
refer ences
TermOfDelivery (KdTermDelivery)
Post KdProduk Ke Garansi *:* relasi Dimiliki
Produk
(KdProduk,
SpesifikasiProduk, Harga) Primary Key KdProduk
NamaProduk,
Garansi(KdGaransi, KdProduk, KdPelanggan, NoPenjualan, TglPenukaran,Alasan ) Primary Key KdGaransi Foreign Key KdProduk references Produk (KdProduk) Foreign Key KdPelanggan references Pelanggan (KdPelanggan)
167
Post IdPemesanan Ke DeliveryOrder 1:1 relasi M enimbulkan
Pemesanan
(IdPemesanan,
KdPelanggan,
Diskon,
TglPemesanan, PPN,
NIK,
DeliveryOrder(IdDelivery,IdPemes anan, noSPB, TglKirim, NIK, KdPelanggan )
KdTermpayment, Kdtermdelivery, Status ) Primary Key IdDelivery Primary Key IdPemesanan Foreign Foreign Key KdPelanggan references Pelanggan (KdPelanggan)
Key
IdPemesanan
references
Pemesanan (IdPemes anan) Foreign Key NIK References Karyawan(NIK)
Foreign
Key
KdTermPayment
refer ences
TermOfPayment (KdTermPayment) Foreign
Key
KdTermDelivery
refer ences
TermOfDelivery (KdTermDelivery)
Post IdPenjualan Ke Garansi 1:1 relasi M emiliki
Penjualan(IdPenjualan, KdPelanggan,TglPenjualan,
IdPemesanan,
KdTermPayment, NIK )
Key
IdPemesanan
refer ences
KdTermPayment
Foreign Key IdPenjualan ref erences Penjualan (IdPenjualan)
Foreign Key NIK references Karyawan (NIK) Key
NoPenjualan,
Primary Key KdGaransi
Pemesanan (IdPemes anan)
Foreign
KdPelanggan, TglPenukaran,Alasan )
Primary Key IdPenjualan Foreign
Garansi (KdGaransi, IdPenjualan, KdProduk,
Refer ences
TermOfPayment (KdTermOfPaym ent)
Foreign Key KdProduk references Produk (KdProduk) Foreign
Key
KdPelanggan
Pelanggan (KdPelanggan)
refer ences
168
PostIdTermOfDelivery Ke Pemesanan 1:1 relasi Dimiliki
TermOfDeliery(KdTermDelivery, TermOfDelivery )
Pemesanan
(IdPemesanan,
KdPelanggan,
Primary Key KdTermDelivery
Diskon,
TglPemesanan, PPN,
NIK,
Kdtermpayment, Kdtermofdelivery, Status) Primary Key IdPemesanan Foreign
Key
KdtermDelivery
Refer ences
TermOfDelivery (KdtermDelivery) Foreign Key NIK References Karyawan(NIK) Foreign
Key
KdPelanggan
Refer ences
Pelanggan (KdPelanggan)
PostIdTermOfPayment Ke Penjualan 1:1 relasi Dimiliki
TermOPayment
(KdTermPayment,
TermOfPayment ) Primary Key KdTermPayment
Penjualan
(
IdPenjualan,
KdPelanggan,
TglPenjualan, IdPemesanan, KdTermPayment, NIK ) Primary Key IdPenjualan Foreign
Key
KdTermPayment
References
TermOfPayment (KdTermOfPaym ent) Foreign
Key
IdPemesanan
references
Pemesanan (IdPemes anan) Foreign Key NIK references Karyawan (NIK)
169
PostIdTermOfPayment Ke Pemesanan 1:1 relasi Dimiliki
TermOPayment
(KdTermPayment,
TermOfPayment )
Pemesanan ( IdPem esanan, TglPemesanan, KdPelanggan,
Diskon,
PPN,
NIK,
Kdtermpayment, Kdtermofdelivery, Status )
Primary Key KdTermPayment
Primary Key IdPemesanan Foreign
Key
KdtermPayment
references
TermOfPayment (KdtermPayment ) Foreign
Key
KdtermDelivery
Refer ences
TermOfDelivery(KdtermDelivery) Foreign Key NIK References Karyawan(NIK) Foreign
Key
KdPelanggan
References
Pelanggan (KdPelanggan)
Post NIK Ke User1:1 relasi Dimiliki
Karyawan ( NIK, NamaKaryawan, Jabatan, TelpKaryawan,
AlamatKaryawan,
User (KdUser, NIK, Username, Password, TipeUser )
EmailKaryawan ) Primary Key KdUser Primary Key NIK Foreign Key NIK references User (KdUser)
4.1.2.2.5
one – to – one Recursive relationship Di dalam basis data sistem ini, tidak terdapat relasi one to one recursive.
170
4.1.2.2.6
Superclass Setelah melewati tahap perancangan konseptual maka tidak ditemui relasi Superclass.
4.1.2.2.7
Many-to-many ( *:*)Binary Relationship
1. Relasi antara Produk dan Pembelian menghasilkan entitas baru yaitu
DetailPembelian
dengan
posting
KdProduk
dan
IdPembelian Produk (KdProduk, NamaProduk,
Pembelian (IdPembelian, NIK ,KdSupplier,
SpesifikasiProduk, Harga)
NoPemesanan,KdGudang,NoPoSupplier, NoPembelian,TglPembelian, PreviousPayment,PaymentDetail)
Primary Key KdProduk
Primary Key IdPembelian Foreign Key NIK References MsKaraywan (NIK) Foreign Key KdSupplier References Supplier (KdSupplier) Foreign Key KdProduk references Produk (KdProduk)
DetailPembelian (IdPembelian, KdProduk, Qty) Primary Key IdPembelian Foreign Key IdPembelian references Pembelian (IdPembelian) Foreign Key KdProduk references Produk (KdProduk)
171
2. Relasi antata Produk dan Penjualan menghasilkan entitas baru yaitu DetailPenjualan dengan posting KdProduk dan IdPenjualan. Penjualan(IdPenjualan,
Produk (KdProduk, NamaProduk,
NoPenjualan,KdPelanggan, TglPenjualan,NoPemesanan, KdTermPayment,
SpesifikasiProduk, Harga) Primary Key KdProduk
NIK ) Primary Key IdPenjualan Foreign Key NIK References Karyawan(NIK) Foreign
Key
KdPelanggan
Refer ences
Pelanggan (KdPelanggan) DetailPenjualan(IdPenjualan,KdProduk, Qty) Primary Key IdPenjualan Foreign Key IdPenjualan references Penjualan (IdPenjualan) Foreign Key KdProduk references Produk (KdProduk)
3. Relasi antata Produk dan Penawaran menghasilkan entitas baru yaitu DetailPenawaran dengan posting KdProduk dan IdPenawaran.
172 Produk (KdProduk, NamaProduk, SpesifikasiProduk, Harga)
HeaderPenawaran(IdPenawaran, NoPenawaran, KdPelanggan,NIK, Diskon) Primary Key IdPenawaran
Primary Key KdProduk Foreign Key NIK References Karyawan(NIK) Foreign
Key
KdPelanggan
References
Pelanggan(KdPelanggan) DetailPenawaran (IdPenawaran,KdProduk, Qty, Diskon ) Primary Key IdPenawaran Foreign Key IdPenawaran Refer ences Penawaran (IdPenawaran) Foreign Key KdProduk references Produk (KdProduk)
4. Relasi antara Produk dan DeliveryOrder menghasilkan entitas baru yaitu DetailDeliveryOrder dengan posting KdProduk dan IdDeliveryOrder.
173 Produk (KdProduk, NamaProduk,
HeaderPenawaran(IdPenawaran, NoPenawaran, KdPelanggan,NIK, Diskon)
SpesifikasiProduk, Harga)
Primary Key IdPenawaran
Primary Key KdProduk
Foreign Key NIK References Karyawan(NIK) Foreign
Key
KdPelanggan
References
Pelanggan(KdPelanggan) DetailDeliveryOrder (IdDelivery, KdProduk, Qty) Primary Key IdDelivery Foreign Key IdDelivery references DeliveryOrder (IdDelivery) Foreign Key KdProduk references Produk (KdProduk)
5. Relasi
antata
Produk
dan
HeaderPemesanan
menghasilkan entitas baru yaitu DetailPemesanan dengan posting KdProduk dan IdPemesanan. Produk (KdProduk, NamaProduk,
HeaderPemesanan
SpesifikasiProduk, Harga)
NIK,
(
IdPemesanan,
TglPemesanan, KdPelanggan, Diskon, PPN, Kdtermpaym ent,
Kdtermofdelivery,
Status)
Primary Key KdProduk Primary Key IdPemesanan Foreign Key NIK References Karyawan(NIK) DetailPemesanan (IdPemesanan, KdProduk, Qty)
Foreign
Key
KdPelanggan
References
Pelanggan (KdPelanggan) Primary Key IdPemesanan Foreign Key KdtermPayment references Foreign Key IdPemesanan Ref erences Pemesanan TermOfPayment (KdtermPayment)
(IdPemesanan) Foreign
Key
(KdProduk)
KdProduk
references
Produk
Foreign
Key
KdtermDelivery
TermOfDelivery (KdtermDelivery)
Refer ences
174
6. Relasi antata Produk dan HeaderPembayaranPenjualan menghasilkan
entitas
baru
yaitu
DetailPembayaranPenjualan dengan posting KdProduk dan IdPePembayaranPenjualan. Produk (KdProduk, NamaProduk,
HeaderPembayaranPenjualan(IdPembayaranP enjualan,
SpesifikasiProduk, Harga)
NoPemesanan,NIK,NoPembayaranPenjualan,
Primary Key KdProduk
TglPembayaranPenjualan, KdPelanggan) Primary Key IdPembayaranPenjualan Foreign Key NIK References Karyawan(NIK) Foreign Key KdPelanggan References Pelanggan (KdSupplier)
DetailPembayaranPenjualan(IdPembayaranPe
Foreign
njualan, Qty,KdProduk)
Pemesanan (IdPemes anan)
Primary Key IdPembayaranPenjualan
Foreign
Key
Key
IdPemesanan
refer ences
IdPembayaranPenjualan
references
PembayaranPenjualan
(IdPembayaranPenjual an ) Foreign Key KdProduk references Produk (KdProduk)
4.1.2.2.8
Complex Binary Relationship
Setelah diidetifikasi pada sub bab (4.1.2.1.3 ) maka tidak terdapat relasi yang kompleks dalam basis data sistem ini.
175
4.1.2.2.9 Multivalued Attribute Untuk setiap multivalued attributes, buatlah suatu relasi baru untuk merepresentasikan multivalued attribute dan termasuk primary key dari entitas relasi baru tersebut.
Post KdPelanggan ke TelpPelanggan
Pelanggan (KdPelanggan, KdJenisPelanggan, NamaPelanggan, AlamatPelanggan,
TelpPelanggan, Fax,
TelpPelanggan (KdPelanggan, TelpPelanggan)
NPWP, Primary Key TelpPelanggan
EmailPelanggan) Foreign Primary Key KdPelanggan
Key
KdPelanggan
refer ences
Pelanggan (KdPelanggan)
Post KdPelanggan ke EmailPelanggan
Pelanggan (KdPelanggan, KdJenisPelanggan, NamaPelanggan, AlamatPelanggan,
TelpPelanggan, Fax,
EmailPelanggan(KdPelanggan, EmailPelanggan)
NPWP,
EmailPelanggan)
Primary Key EmailPelanggan
Primary Key KdPelanggan
Foreign
Key
KdPelanggan
Pelanggan (KdPelanggan)
refer ences
176
Post KdPelanggan ke FaxPelanggan
Pelanggan (KdPelanggan, KdJenisPelanggan, NamaPelanggan, AlamatPelanggan,
TelpPelanggan, Fax,
FaxPelanggan(KdPelanggan, FaxPelanggan)
NPWP, Primary Key FaxPelanggan
EmailPelanggan)
Foreign Key KdPelanggan references Pelanggan(KdPelanggan)
Primary Key KdPelanggan
Post NIK ke TelpKaryawan
Karyawan (NIK, NamaKaryawan, Jabatan, TelpKaryawan,
TelpKaryawan ( NIK, TelpKaryawan)
AlamatKaryawan,
EmailKaryawan)
Primary Key TelpKaryawan
Primary Key NIK
Foreign Key NIK references Karyawan (NIK)
Post NIK ke EmailKaryawan
Karyawan (NIK, NamaKaryawan, Jabatan, TelpKaryawan,
EmailKaryawan (NIK, EmailKaryawan)
AlamatKaryawan,
EmailKaryawan)
Primary Key EmailKaryawan
Primary Key NIK
Foreign Key NIK references Karyawan (NIK)
Post KdS upplier ke TelpS upplier
Supplier
(KdSupplier,
TelpSupplier,
AlamatSupplier,
NamaSupplier,
TelpSupplier (KdSupplier, TelpSupplier)
FaxSupplier,
EmailSupplier)
Primary Key TelpSupplier
Primary Key KdSupplier
Foreign Key KdSupplier refer ences Supplier (KdSupplier)
177
Post KdS upplier ke EmailS upplier
Supplier
(KdSupplier,
TelpSupplier,
AlamatSupplier,
NamaSupplier, FaxSupplier,
EmailSupplier (KdSupplier, EmailSupplier)
EmailSupplier)
Primary Key EmailSupplier
Primary Key KdSupplier
Foreign Key KdSupplier refer ences Supplier (KdSupplier)
Post KdS upplier ke FaxS upplier
Supplier
(KdSupplier,
TelpSupplier,
AlamatSupplier,
NamaSupplier,
FaxSupplier (KdSupplier, FaxSupplier)
FaxSupplier,
EmailSupplier)
Primary Key FaxSupplier
Primary Key KdSupplier
Foreign Key KdSupplier refer ences Supplier (KdSupplier)
Post KdGudang ke TelpGudang
Gudang
(KdGudang,
AlamatGudang,
TelpGudang,
NamaGudang,
TelpGudang (KdGudang , TelpGudang)
FaxGudang,
NamaKaryawanGudang)
Primary Key TelpGudang
Primary Key KdGudang
Foreign Key KdGudang refer ences Gudang (KdGudang)
178
Post KdGudang ke FaxGudang
Gudang
(KdGudang,
AlamatGudang,
TelpGudang,
NamaGudang, FaxGudang,
FaxGudang (KdGudang , FaxGudang)
NamaKaryawanGudang)
Primary Key FaxGudang
Primary Key KdGudang
Foreign Key KdGudang refer ences Gudang (KdGudang)
Hasil Relasi Tabel 4.6 Tabel Hasil Relasi No
Nama Entitas
Nama Atribut
1.
Karyawan
Karyawan
(Karyawan
NamaKaryawan, TelpKaryawan,
(NIK, Jabatan,
AlamatKaryawan,
EmailKaryawan ) Primary Key NIK 2.
Pelanggan
Pelanggan KdJenisPelanggan,
(KdPelanggan, NamaPelanggan,
TelpPelanggan, AlamatPelanggan, Fax, NPWP, EmailPelanggan ) Primary Key KdPelanggan
3.
Supplier
Supplier ( KdSupplier, NamaSupplier, TelpSupplier,
AlamatSupplier,
FaxSupplier, EmailSupplier )
179
Primary Key KdSupplier
4.
Produk
Produk
(KdProduk,
NamaProduk,
SpesifikasiProduk, Harga) Primary Key KdProduk
5.
Persediaan
Persediaan (KdPersediaan, KdProduk, TglProdukM asuk,
TglProdukKeluar,
Qty ) Primary Key KdPersediaan Foreign Key KdProduk references Produk ( KdProduk)
6.
JenisPelanggan
JenisPelanggan
(KdJenisPelanggan,
NamaJenisPelanggan) Primary Key KdJenisPelanggan
7.
Utang (KdUtang, Utang
IdPembayaranPembelian, Tgl-JatuhTempo, JumlahUtang ) Primary Key KdUatng Foreign Key IdPembayaranPembelian References
180
HeaderPembayaranPembelian (IdPembayaranPembelian) 8.
Piutang
Piutang (KdPiutang, IdPembayaranPenjualan, Tgl-JatuhTempo,JumlahPiutang) Primary Key KdPiutang Foreign Key IdPembayaranPenjualan References HeaderPembayaranPenjualan (IdPembayaranPenjualan)
9.
User
User
(KdUser,
NIK,
Username,
Password, TipeUser ) Primary Key KdUser Foreign Key NIK references Karyawan (NIK)
10.
Gudang
Gudang ( KdGudang, NamaGudang, AlamatGudang,
TelpGudang,
FaxGudang, NamaKaryawanGudang) Primary Key KdGudang 11.
Garansi
Garansi
(KdGaransi,
IdPenjualan,
KdProduk, KdPelanggan, NoPenjualan, TglPenukaran,Alasan)
181
Primary Key KdGaransi Foreign Key IdPenjualan references HeaderPenjualan (IdPenjualan)
12.
TermOfPayment
TermOfPayment
(KdTermPayment,
TermOfPayment) Primary Key KdTermPayment
13.
TermOfDeliery
TermOfDeliery
(KdTermDelivery,
TermOfDelivery) Primary Key KdTermDelivery
14.
HeaderPembelian
HeaderPembelian (IdPembelian, NIK ,KdSupplier,
NoPemesanan,
KdGudang,NoPoSupplier, NoPembelian,
TglPembelian,
PreviousPayment, PaymentDetails ) Primary Key IdPembelian Foreign Key NIK References M sKaraywan(NIK) Foreign Key KdSupplier References Supplier (KdSupplier) 15.
DetailPembelian
DetailPembelian
(IdPembelian,
182
KdProduk, Qty) Primary Key IdPembelian Foreign Key IdPembelian references HeaderPembelian (IdPembelian) Foreign Key KdProduk references Produk (KdProduk)
16.
HeaderPenjualan
HeaderPenjualan (IdPenjualan, NoPenjualan, KdPelanggan, TglPenjualan, IdPemesanan, KdTermPayment, NIK ) Primary Key IdPenjualan Foreign Key IdPemesanan references HeaderPemesanan (IdPemesanan) Foreign Key NIK references Karyawan (NIK)
17.
DetailPenjualan
DetailPenjualan
(IdPenjualan,
KdProduk, Qty) Primary Key IdPenjualan Foreign Key IdPenjualan references HeaderPenjualan (IdPenjualan) Foreign Key KdProduk references Produk (KdProduk)
183
18.
HeaderPembayaranPenjualan
HeaderPembayaranPenjualan (IdPembayaranPenjualan, NoPemesanan, NIK, NoPembayaranPenjualan, TglPembayaranPenjualan, KdPelanggan) Primary Key IdPembayaranPenjualan Foreign Key NIK References Karyawan(NIK) Foreign Key KdPelanggan References Pelanggan (KdSupplier) Foreign Key IdPemesanan references HeaderPemesanan (IdPemesanan)
19.
DetailPembayaranPenjualan
DetailPembayaranPenjualan (IdPembayaranPenjualan, Qty,KdProduk) Primary Key IdPembayaranPenjualan Foreign Key IdPembayaranPenjualan references HeaderPembayaranPenjualan (IdPembayaranPenjualan )
184
Foreign Key KdProduk references Produk (KdProduk) 20.
HeaderPembayaranPembelian
HeaderPembayaranPembelian (IdPembayaranPembelian, NoPembayaranPembelian, NoPemesanan,
NIK,
KdGudang
,KdSupplier, TglPembayaranPembelian, DP) Primary Key IdPembayaranPembelian Foreign Key NIK References Karyawan(NIK)
Foreign Key KdSupplier References Supplier (KdSupplier) Foreign Key KdGudang references Gudang (KdGudang) 21.
DetailPembayaranPembelian
DetailPembayaranPembelian (IdPembayaranPembelian,
Qty,
KdProduk ) Primary Key IdPembayaranPembelian Foreign Key IdPembayaranPembelian references HeaderPembayaranPembelian
185
(IdPembayaranPembelian) Foreign Key KdProduk references Produk (KdProduk) 22.
HeaderPenawaran
HeaderPenawaran NoPenawaran,
(IdPenawaran, KdPelanggan,NIK,
Diskon) Primary Key IdPenawaran Foreign Key NIK References Karyawan(NIK) Foreign Key KdPelanggan References Pelanggan (KdPelanggan) 23.
DetailPenawaran
DetailPenawaran (IdPenawaran, KdProduk, Qty, Diskon) Primary Key IdPenawaran Foreign Key IdPenawaran references
HeaderPenawaran
(IdPenawaran) Foreign Key KdProduk references Produk (KdProduk)
24.
HeaderDeliveryOrder
HeaderDeliveryOrder (IdDelivery,IdPemesanan, TglKirim, NIK, KdPelanggan )
noSPB,
186
Primary Key IdDelivery Foreign Key IdPemesanan references HeaderPemesanan (IdPemesanan) Foreign Key NIK References Karyawan(NIK) Foreign Key KdPelanggan References Pelanggan (KdPelanggan) 25.
DetailDeliveryOrder
DetailDeliveryOrder
(IdDelivery,
KdProduk, Qty) Primary Key IdDelivery Foreign Key IdDelivery references HeaderDeliveryOrder (IdDelivery) Foreign Key KdProduk references Produk (KdProduk) 26.
HeaderPemesanan
HeaderPemesanan
(IdPemesanan,
TglPemesanan, KdPelanggan, Diskon, PPN,
NIK,
KdTermOfPayment,
KdTermOfDelivery,
IdDelivery,
IdPenjualan, Status) Primary Key IdPemesanan Foreign Key KdPelanggan references Pelanggan (KdPelanggan)
187
Foreign Key NIK references Karyawan (Karyawan) Foreign
Key
KdTermOfPayment
references
TermOfPayment
(KdTermOfPayment) Foreign
Key
KdTermOfDelivery
references
TermOfDelivery
(KdTermOfDelivery) 27.
DetailPemesanan
DetailPemesanan
(IdPemesanan,
KdProduk, Qty) Primary Key IdPemesanan Foreign Key IdPemesanan references HeaderPemesanan Foreign
Key
KdPoduk
references
Produk (KdProduk) 28.
TelpKaryawan
TelpKaryawan (TelpKaryawan,NIK) Primary Key TelpKaryawan,NIK Foreign Key NIK references Karyawan (NIK)
29.
EmailKaryawan
EmailKaryawan
(EmailKaryawan,
NIK) Primary Key EmailKaryawan,NIK Foreign Key NIK references Karyawan
188
(NIK) 30.
TelpPelanggan
TelpPelanggan (TelpPelanggan,KdPelanggan) Primary
Key
TelpPelanggan,
KdPelanggan Foreign Key KdPelanggan references Pelanggan (KdPelanggan) 31.
EmailPelanggan
EmailPelanggan (EmailPelanggan,KdPelanggan) Primary
Key
EmailPelanggan,
KdPelanggan Foreign Key KdPelanggan references Pelanggan (KdPelanggan) 32.
FaxPelanggan
FaxPelanggan
(FaxPelanggan,
KdPelanggan) Primary
Key
FaxPelanggan,
KdPelanggan Foreign Key KdPelanggan references Pelanggan (KdPelanggan) 33.
FaxS upplier
FaxS upplier (FaxSupplier, KdSupplier ) Primary Key KdSupplier, FaxSupplier Foreign Key KdSupplier references
189
Supplier (KdSupplier) 34.
EmailS upplier
EmailS upplier (EmailSupplier, KdSupplier) Primary Key KdSupplier, EmailSupplier Foreign Key KdSupplier references Supplier (KdSupplier)
35.
TelpS upplier
TelpS upplier (TelpSupplier, KdSupplier) Primary Key KdSupplier, TelpSupplier Foreign Key KdSupplier references Supplier (KdSupplier)
36.
TelpGudang
TelpGudang (TelpGudang, KdGudang ) Primary Key KdGudang, TelpGudang Foreign Key KdGudang references Gudang (KdGudang)
37.
FaxGudang
FaxGudang (FaxGudang, KdGudang ) Primary Key KdGudang, FaxGudang Foreign Key KdGudang references Gudang (KdGudang)
190
4.1.2.3 Memvalidasi Relasi dengan Menggunakan Normalisasi Pemesanan UNF Pemesanan
(IdPemesanan,
TglPemesanan,
TelpPelanggan,
FaxPelanggan, NPWPPelanggan, Status, NamaProduk, Qty, Satuan, HargaSatuan, JumlahHarga}, JumlahHargaBeli,Diskon, PPN, SubTotal, Terbilang,
TermOfDelivery,
TermOfPayment,
AlamatPelanggan,
Karyawan, NamaPelanggan) 1NF : Sudah memenuhi 1NF dan tidak ada lagi repeating group 2NF : Sudah memenuhi 2NF karena tidak terdapat partial depedency 3NF : Sudah memenuhi 3NF karena tidak terdapat transitive depedency Hasil validasi normalisasi : HeaderPemesanan ( IdPemesanan , KdPelanggan, TglPemesanan, Status, Diskon, PPN ,KdTermDelivery,KdTermPayment, NIK)
Pembelian UNF Pembelian
(IdPembelian,
NamaKaryawanSupplier, NamaProduk,
NoPembelian,
TglPembelian,
HargaSatuan,
JumlahHarga}
NamaSupplier,
NoPOSupplier, Subtotal,
{Qty,
Karyawan,
NamaGudang,TelpGudang,PreviousPeyment, PaymentDetail ) 1NF : Sudah memenuhi 1NF dan tidak ada lagi repeating group 2NF : Sudah memenuhi 2NF karena tidak terdapat partial depedency
191
3NF : Sudah memenuhi 3NF karena tidak terdapat transitive depedency Hasil validasi normalisasi : HeaderPembelian TglPembelian,
(IdPembelian,
NoPembelian,KdSupplier,
NoPurchaseOrderSupplier,
KdGudang,
NIK,
PreviousPeyment, PaymentDetail ) Supplier (KdSupplier, NamaSupplier, NamaKaryawanSupplier) Karyawan (NIK, NamaKaryawan) Gudang (KdGudang, NamaGudang,
AlamatGudang,
TelpGudang,
FaxGudang ) Penjualan UNF Penjualan
(IdPenjualan,
AlamatPelanggan, {NamaProduk,
TglPenjualan, Qty,
Harga,
NoPenjualan,
NamaPelanggan,
NoPemesanan,
TermPayment,
JumlahHarga}PPN,
SubTotal,
NamaKaryawan,) 1NF : Sudah memenuhi 1NF dan tidak ada lagi repeating group 2NF : Sudah memenuhi 2NF karena tidak terdapat partial depedency 3NF : Sudah memenuhi 3NF karena tidak terdapat transitive depedency Hasil validasi normalisasi : HeaderPenjualan
(IdPenjualan,
NoPenjualan,
NoPemesanan,
KdPelanggan, TglPenjualan, KdTermPayment, NIK, PPN) Karyawan (NIK, NamaKaryawan) Pelanggan (KdPelanggan, NamaPelanggan, AlamatPelanggan ) TermPayment (KdTermPayment, TermPayment, SisaPembayaran )
192
Penawaran UNF Penawaran
(IdPenawaran,
NoPenawaran,
NamaPelanggan,
NamaKaryawanPelanggan, T glPenawaran, Subject,{Spesifikasi, Qty, Harga, JumlahHarga, NamaProduk, HargaProduk} Diskon,
SubTotal,
NamaKaryawan, NamaPelanggan) 1NF : Sudah memenuhi 1NF dan tidak ada lagi repeating group 2NF : Sudah memenuhi 2NF karena tidak terdapat partial depedency 3NF : Sudah memenuhi 3NF karena tidak terdapat transitive depedency Hasil validasi normalisasi : HeaderPenawaran (IdPenawaran, NoPenawaran, KdPelanggan, NIK, Diskon) Pelanggan ( KdPelanggan, NamaPelanggan, NamaKaryawanPelanggan ) Karyawan ( NIK, NamaKaryawan) Pembayaran Penjualan UNF PembayaranPenjualan
(IdPembayaranPenjualan,
NoPembayaranPenjualan, {NamaProduk,Qty,JumlahPembayaran,
IdPemesanan,
T glPembayaranPenjualan Total}
NamaPelanggan,
AlamatPelanggan, NamaKaryawan) 1NF : Sudah memenuhi 1NF dan tidak ada lagi repeating group 2NF : Sudah memenuhi 2NF karena tidak terdapat partial depedency 3NF : Sudah memenuhi 3NF karena tidak terdapat transitive depedency
193
Hasil validasi normalisasi : HeaderPembayaranPenjualan (IdPembayaranPenjualan, IdPemesanan, NoPembayaranPenjualan, T glPembayaranPenjualan, KdPelanggan, NIK) Pelanggan
(KdPelanggan,
NamaPelanggan,AlamatPelanggan,
TelpPelanggan) Karayawan (NIK, Namakaryawan)
Pembayaran Pembelian UNF PembayaranPembelian NoPembayaranPembelian,
(IdPembayaranPembelian, NoPemesanan,
NamaSupplier,
AlamatSupplier, TglPembayaranPembelian, , NamaKaryawan { Qty, NamaProduk,
HargaSatuan},
NamaGudang,
AlamatGudang,
TelpGudang, FaxGudang, NamaKaryGudang, Subtotal,Total) 1NF : Sudah memenuhi 1NF dan tidak ada lagi repeating group 2NF : Sudah memenuhi 2NF karena tidak terdapat partial depedency 3NF : Sudah memenuhi 3NF karena tidak terdapat transitive depedency Hasil validasi normalisasi : HeaderPembayaranPembelian(IdPembelian, NoPembayaranPembelian, KdSupplier, NoPemesanan,TglPembayaranPembelian, NIK, KdGudang ) Supplier ( KdSupplier, NamaSupplier, AlamatSupplier ) Gudang ( KdGudang, NamaGudang, AlamatGudang, TelpGudang, FaxGudang, NamaKaryGudang ) Karyawan ( NIK, NamaKaryawan )
194
DeliveryOrder UNF DeliveryOrder
(IdDelivery,
NoSPB,
TglKirim,
NoPemesanan,
{NamaProduk, Qty, Remark } NamaKaryawan, NamaPelanggan, AlamatPelaggan, TelpPelanggan,FaxPelanggan ) 1NF : Sudah memenuhi 1NF dan tidak ada lagi repeating group 2NF : Sudah memenuhi 2NF karena tidak terdapat partial depedency 3NF : Sudah memenuhi 3NF karena tidak terdapat transitive depedency Hasil validasi normalisasi : HeaderDeliveryOrder (IdDelivery, NoSPB, TglKirim, NoPemesanan, NIK, KdPelanggan ) Pelanggan
(KdPelanggan,
NamaPelanggan,
TelpPelanggan,
AlamatPelanggan, FaxPelanggan ) Karyawan (NIK, NamaKaryawan )
4.1.2.4 Memvalidasi Relasi terhadap Transaksi User Pada Tahap Konseptual, semua Transaksi Pengguna telah di definisikan dan pada Tahap logikal ini transaksi tersebut di periksa kembali dengan tujuan untuk memastikan bahwa Relasi – relasi nya sudah benar dan dapat memenuhi Transaksi – transaksi yang dibutuhkan pengguna. Berikut ini adalah Gambar ERD (Entity Relationship Diagram) pada model data logikal yang ada dalam perancangan database dalam sistem pembelian, penjualan dan persediaan
195
Pelang gan
Supplier
Gar ansi Utan g
T erm OfPaymen t PK
KdPelan gg an
PK PK
F K1
Kd JenisPelangga n NamaPelang gan TelpPelan ggan Alam atPelangg an FaxPelan ggan NPWP Em ailPe a l nggan
KdSup plie r
PK
KdG ara nsi
KdT ermPayment NamaSupp iler TelpSupp lie r Alam atSupplier FaxSupp ile r Em ailSup plier
T ermO fPa yment
FK2 FK1
KdProdu k KdPelangg an NoPenjua a l n T glPe nukara n Alasan
PK
KdUtan g
F K1
IdPemba yaran Pem belian Tgl- Jatuh- Tem po JumlahUta ng
PK
KdPiu tan g
FK1
IdPem bayar anPenjualan T gl-Jatu h-T empo Jum lahPiutang
Ter mOfDeliver y Piuta ng PK
Kd TermDe livery
Prod uk
T erm OfDelivery PK
Je nisPe a l nggan PK
Nam aJenisPelangg an
Kd Prod uk Na maProdu k Spe sif ki a siP r oduk Ha rga
Persedia an
KdJ enis Pe lang gan PK
kdPersed iaan
F K1
Kd Pr oduk TglProd ukMasu k TglProd ukKeluar Qty
Guda ng
Hea derPen u j alan Karyawan
De tailPe njualan PK
PK
Kd Gu dan g
IdPen juala n No Pe njualan KdPelan ggan TglPenjuala n No Pe mesana n KdT erm Pa yment NI K KdG aran si
FK1 FK4 FK2 FK3
PK,FK3
IdPen juala n
F K1
KdPro duk Qty
PK
Na maGu dang Alam atGud ang TelpGu dang FaxGu dang Na maKarya wa nGuda ng
NIK NamaKarya wan Jabata n TelpKar yawan Alam atKaryawa n Em ailKar yawan
User PK
Kd User
F K1
NI K Use rnam e Passwo rd TipeUser
Head erPeme sanan PK
Id Pe mesa nan T glPem esana n KdPelangga n Diskon NIK KdTe rmPayme nt KdTe rmDeliver y Status NoPeme sanan IdPenju alan IdDeliver y
F K1 F K2 F K6 F K5
F K3 F K4
De tailPe mbaya ranPenjua a l n
Deta liPem esanan PK, FK2
I dPeme san an
FK1
KdProd uk Q ty
PK,F K2
Id Pe mb ayaranPen jual an
F K1
Qty KdProdu k
Head erPemb ayara nPe njualan PK
F K2
F K1
IdPembay aran Penju alan IdPemesa nan NIK NoPe mbaya ranPenjua lan TglPemb ayara nPe njualan Kd Pelan ggan
Header Pe mbaya ranPem belian PK
Id Pe mb ayaran Pembe lian
FK2 FK3 FK1
NoPem bayara nPembelian NoPem esanan NIK KdGud ang KdSupplier T glPe mbaya ranPem belian DP
Hea derPena wa ran PK
Deta liPem bayar anPembe ilan
Id Pen awaran NoPenawar an KdPelangga n Diskon NIK
F K1 F K2
PK,FK2
IdPembay ara nPemb elia n
F K1
Qty Kd Pr oduk
Hea derPem belian I dPemb elia n
FK2 FK1
NIK KdSupp ile r No Pem esana n KdGu dang No PoSupp lie r No Pem belian T glPembe ila n Pre viousPaymen t Paym entDeta il
FK3 Header DeliveryOr der DetailPenawar an PK PK,F K2
Id Pe nawa ran
FK1
KdProdu k Qty
TelpPelang gan PK PK,F K1
T elpPela ngg an KdPela ng gan
I dDeliv ery No Pem esana n No SPB T gKirim NIK KdPelang gan
DetailDeliveryOr der PK,FK2
Id De livery
F K1
KdPr oduk Qty
TelpSupp iler PK PK,FK1
Te lpSup plie r KdSup pli er
EmailPelangga n PK PK,F K1
Ema ilPelan gg an Kd Pel ang gan
F axSup pli er Kd Su pp lier
F axPelan gg an KdPela ng gan
EmailSupplier PK PK,F K1
EmailSup plie r Kd Su pp lier
FaxGu dang Te lpGu dan g KdGu da ng
KdProd uk Q ty
Em ailKa ryawan
T elpGud ang PK PK,FK1
I dPemb elia n
FK1
Telp Kary awan NI K
FaxPelang gan PK PK,F K1
PK,F K2
T elpKaryawan PK PK,FK1
Fa xSup plier PK PK,F K1
Det ailP em belian
PK
PK PK,F K1
F axGu dan g Kd Gud ang
Gambar 4.20 Entity Diagram Relationship Logical
PK PK,F K1
Emai lKary awan NIK
196
4.1.2.5 Menentukan Integrity Constraint 4.1.2.5.1
Required Data
Entity atau Relasi dari beberapa Entity harus memiliki nilai yang valid atau tidak boleh mengandung nilai Null. Constraint ini telah dilakukan pada Tabel data atribut (sub-bab 4.1.1.3 )
4.1.2.5.2
Attribute Domain Constraint
Atribut memiliki domain sendiri yaitu yang terdiri dari kumpulan nilai yang sah untuk suatu atribut (tipe data dan panjang ). Constraint ini telah dilakukan pada Tabel data atribut (sub-bab 4.1.1.4 )
4.1.2.5.3
Multiplicity
Setiap Entitas memiliki hubungan Multiplicity dengan entitas lainnya. Constraint ini telah dilakukan pada Tabel data atribut (sub-bab 4.1.1.2 )
4.1.2.5.4
Entitas Integrity
Langkah ini bertujuan untuk mengecek primary key dari setiap entitas agar tidak boleh mengandung nilai Null. Constraint ini telah dilakukan pada Tabel data atribut (sub-bab 4.1.1.5 )
4.1.2.5.5
Referential Integrity
Referential Integrity adalah apabila di dalam suatu tabel entitas terdapat foreign key yang mengandung suatu nilai, maka nilai tersebut
197
harus merujuk ke baris yang ada pada relasi induknya. M aka berikut ini adalah Referential Integrity di dalam model data logikal ini. Karyawan
(NIK,
NamaKaryawan,
Jabatan,
TelpKaryawan,
AlamatKaryawan, EmailKaryawan ) Primary Key NIK TelpKaryawan ( TelpKaryawan, NIK ) Primary Key NIK, TelpKaryawan Foreign Key NIK references JenisPelanggan (NIK ) ON UPDATE CASCADE ON DELETE CASCADE EmailKaryawan ( EmailKaryawan, NIK) Primary Key EmailKaryawan,NIK Foreign Key NIK references Karyawan (NIK) ON UPDATE CASCADE ON DELETE CASCADE Pelanggan
(KdPelanggan,
KdJenisPelanggan,
NamaPelanggan,
TelpPelanggan, AlamatPelanggan, Fax, NPWP, EmailPelanggan ) Primary Key KdPelanggan Foreign
Key
(KdJenisPelanggan
KdJenisPelanggan )
ON
references
UPDATE
CASCADE
JenisPelanggan ON
DELETE
CASCADE TelpPelanggan (TelpPelanggan,KdPelanggan) Primary Key TelpPelanggan, KdPelanggan Foreign Key KdPelanggan references Pelanggan (KdPelanggan) ON UPDATE CASCADE ON DELETE CASCADE EmailPelanggan (EmailPelanggan,KdPelanggan)
198
Primary Key EmailPelanggan, KdPelanggan Foreign Key KdPelanggan references Pelanggan (KdPelanggan) ON UPDATE CASCADE ON DELETE CASCADE FaxPelanggan ( FaxPelanggan, KdPelanggan ) Primary Key FaxPelanggan, KdPelanggan Foreign Key KdPelanggan references Pelanggan (KdPelanggan) ON UPDATE CASCADE ON DELETE CASCADE Supplier ( KdSupplier, NamaSupplier, TelpSupplier, AlamatSupplier, FaxSupplier, EmailSupplier ) Primary Key KdSupplier FaxS upplier (FaxSupplier, KdSupplier ) Primary Key KdSupplier, FaxSupplier Foreign Key KdSupplier references Supplier (KdSupplier) ON UPDATE CASCADE ON DELETE CASCADE EmailS upplier ( EmailSupplier, KdSupplier ) Primary Key KdSupplier, EmailSupplier Foreign Key KdSupplier references Supplier (KdSupplier) ON UPDATE CASCADE ON DELETE CASCADE Produk ( KdProduk, NamaProduk, SpesifikasiProduk, Harga) Primary Key KdProduk Persediaan
(
KdPersediaan,
TglProdukKeluar, Qty ) Primary Key KdPersediaan
KdProduk,
TglProdukM asuk,
199
Foreign Key KdProduk references Produk ( KdProduk) ON UPDATE CASCADE ON DELETE CASCADE JenisPelanggan (KdJenisPelanggan, NamaJenisPelanggan) Primary Key KdJenisPelanggan Gudang ( KdGudang, NamaGudang, AlamatGudang, TelpGudang, FaxGudang, NamaKaryawanGudang) Primary Key KdGudang TelpGudang ( TelpGudang, KdGudang ) Primary Key KdGudang, TelpGudang Foreign Key KdGudang references Gudang (KdGudang) ON UPDATE CASCADE ON DELETE CASCADE FaxGudang ( FaxGudang, KdGudang ) Primary Key KdGudang, FaxGudang Foreign Key KdGudang references Gudang (KdGudang) ON UPDATE CASCADE ON DELETE CASCADE Garansi
(
KdGaransi,
IdPenjualan,
KdProduk,
KdPelanggan,
NoPenjualan, TglPenukaran,Alasan ) Primary Key KdGaransi Foreign Key IdPenjualan references HeaderPenjualan (IdPenjualan) ON UPDATE CASCADE ON DELETE CASCADE TermOfPayment ( KdTermPayment, TermOfPayment) Primary Key KdTermPayment TermOfDeliery ( KdTermDelivery, TermOfDelivery ) Primary Key KdTermDelivery
200
User (KdUser, NIK, Username, Password, TipeUser ) Primary Key KdUser Foreign Key NIK references Karyawan (NIK) ON UPDATE CASCADE ON DELETE CASCADE HeaderPembelian (IdPembelian, NIK ,KdSupplier, NoPemesanan, KdGudang,NoPoSupplier,
NoPembelian,
T glPembelian,
PreviousPayment, PaymentDetails ) Primary Key IdPembelian Foreign Key NIK References M sKaryawan( NIK ) ON UPDATE CASCADE ON DELETE CASCADE Foreign Key KdSupplier References Supplier (KdSupplier) ON UPDATE CASCADE ON DELETE CASCADE DetailPembelian ( IdPembelian, KdProduk, Qty) Primary Key IdPembelian Foreign Key IdPembelian references HeaderPembelian (IdPembelian) ON UPDATE CASCADE ON DELETE CASCADE Foreign Key KdProduk references Produk (KdProduk) ON UPDATE CASCADE ON DELETE CASCADE HeaderPemesanan
(IdPemesanan,
TglPemesanan,
KdPelanggan,
Diskon, PPN, NIK, KdTermOfPayment, KdTermOfDelivery, IdDelivery, IdPenjualan, Status) Primary Key IdPemesanan Foreign Key KdPelanggan references Pelanggan (KdPelanggan) ON UPDATE CASCADE ON DELETE CASCADE
201
Foreign Key NIK references Karyawan (Karyawan) ON UPDATE CASCADE ON DELETE CASCADE Foreign
Key
KdTermOfPayment
(KdTermOfPayment)
ON
UPDATE
references CASCADE
TermOfPayment ON
DELETE
CASCADE Foreign
Key
KdTermOfDelivery
(KdTermOfDelivery)
ON
UPDATE
references CASCADE
TermOfDelivery ON
DELETE
CASCADE DetailPemesanan (IdPemesanan, KdProduk, Qty) Primary Key IdPemesanan Foreign Key IdPemesanan references HeaderPemesanan ON UPDATE CASCADE ON DELETE CASCADE Foreign Key KdPoduk references Produk (KdProduk) ON UPDATE CASCADE ON DELETE CASCADE HeaderPenjualan
(
IdPenjualan,
NoPenjualan,
KdPelanggan,
TglPenjualan, IdPemesanan, KdTermPayment, NIK ) Primary Key IdPenjualan Foreign Key IdPemesanan references HeaderPemesanan (IdPemesanan) ON UPDATE CASCADE ON DELETE CASCADE Foreign Key NIK references Karyawan (NIK) ON UPDATE CASCADE ON DELETE CASCADE DetailPenjualan (IdPenjualan, KdProduk, Qty) Primary Key IdPenjualan
202
Foreign Key IdPenjualan references HeaderPenjualan (IdPenjualan) ON UPDATE CASCADE ON DELETE CASCADE Foreign Key KdProduk references Produk (KdProduk) ON UPDATE CASCADE ON DELETE CASCADE HeaderPembayaranPenjualan (IdPembayaranPenjualan,NoPemesanan, NIK, NoPembayaranPenjualan, TglPembayaranPenjualan, KdPelanggan) Primary Key IdPembayaranPenjualan Foreign
Key NIK
References
Karyawan(NIK)
ON
UPDATE
CASCADE ON DELETE CASCADE Foreign Key KdPelanggan References Pelanggan (KdSupplier) ON UPDATE CASCADE ON DELETE CASCADE Foreign Key IdPemesanan references HeaderPemesanan (IdPemesanan) ON UPDATE CASCADE ON DELETE CASCADE DetailPembayaranPenjualan ( IdPembayaranPenjualan, Qty,KdProduk) Primary Key IdPembayaranPenjualan Foreign
Key
IdPembayaranPenjualan
references
HeaderPembayaranPenjualan (IdPembayaranPenjualan ) ON UPDATE CASCADE ON DELETE CASCADE Foreign Key KdProduk references Produk (KdProduk) ON UPDATE CASCADE ON DELETE CASCADE HeaderPembayaranPembelian
(IdPembayaranPembelian,
NoPembayaranPembelian, NoPemesanan, NIK, KdGudang ,KdSupplier, TglPembayaranPembelian, DP) Primary Key IdPembayaranPembelian
203
Foreign
Key NIK
References
Karyawan(NIK)
ON
UPDATE
CASCADE ON DELETE CASCADE Foreign Key KdSupplier References Supplier (KdSupplier) ON UPDATE CASCADE ON DELETE CASCADE Foreign Key KdGudang references Gudang (KdGudang) ON UPDATE CASCADE ON DELETE CASCADE DetailPembayaranPembelian
(
IdPembayaranPembelian,
Qty,
KdProduk ) Primary Key IdPembayaranPembelian Foreign
Key
IdPembayaranPembelian
references
HeaderPembayaranPembelian (IdPembayaranPembelian) ON UPDATE CASCADE ON DELETE CASCADE Foreign Key KdProduk references Produk (KdProduk) ON UPDATE CASCADE ON DELETE CASCADE HeaderPenawaran
(IdPenawaran, NoPenawaran, KdPelanggan,NIK,
Diskon) Primary Key IdPenawaran Foreign
Key NIK
References
Karyawan(NIK)
ON
UPDATE
CASCADE ON DELETE CASCADE Foreign Key KdPelanggan References Pelanggan (KdPelanggan) ON UPDATE CASCADE ON DELETE CASCADE DetailPenawaran ( IdPenawaran, KdProduk, Qty, Diskon ) Primary Key IdPenawaran
204
Foreign Key IdPenawaran references HeaderPenawaran (IdPenawaran) ON UPDATE CASCADE ON DELETE CASCADE Foreign Key KdProduk references Produk (KdProduk) ON UPDATE CASCADE ON DELETE CASCADE HeaderDeliveryOrder (IdDelivery,IdPemesanan, noSPB, TglKirim, NIK, KdPelanggan ) Primary Key IdDelivery Foreign Key IdPemesanan references HeaderPemesanan (IdPemesanan) Foreign
Key NIK
References
Karyawan(NIK)
ON
UPDATE
CASCADE ON DELETE CASCADE Foreign Key KdPelanggan References Pelanggan (KdPelanggan) ON UPDATE CASCADE ON DELETE CASCADE DetailDeliveryOrder ( IdDelivery, KdProduk, Qty) Primary Key IdDelivery Foreign Key IdDelivery references HeaderDeliveryOrder (IdDelivery) ON UPDATE CASCADE ON DELETE CASCADE Foreign Key KdProduk references Produk (KdProduk) ON UPDATE CASCADE ON DELETE CASCADE 4.1.2.6 Me-review Model Data Logikal dengan User Setelah melakukan
beberapa langkah di atas dan meninjau kembali
M odel data logikal maka dapat disimpulkan bahwa M odel data logikal sudah sesuai dengan kebutuhan User.
Langkah 3 : Membangun dan memvalidasi model logikal data global
205
4.1.2.7 Menggabungkan Model – Model Data Logikal yang Ada Menjadi Model Global Tabel 4.7 Relasi Yang Merepresentasikan Model Data Logikal Global Pada CV. Maplesonic Indonesia Karyawan
(
NIK,
NamaKaryawan,
Jabatan,
TelpKaryawan,
AlamatKaryawan, EmailKaryawan ) Primary Key NIK TelpKaryawan ( TelpKaryawan, NIK ) Primary Key NIK, TelpKaryawan Foreign Key NIK references JenisPelanggan (NIK ) Pelanggan
(
KdPelanggan,
KdJenisPelanggan,
NamaPelanggan,
TelpPelanggan, AlamatPelanggan, Fax, NPWP, EmailPelanggan ) Primary Key KdPelanggan Foreign
Key
KdJenisPelanggan
references
JenisPelanggan
(KdJenisPelanggan ) EmailKaryawan ( EmailKaryawan, NIK) Primary Key EmailKaryawan,NIK Foreign Key NIK references Karyawan (NIK) Pelanggan
(
KdPelanggan,
KdJenisPelanggan,
NamaPelanggan,
TelpPelanggan, AlamatPelanggan, Fax, NPWP, EmailPelanggan ) Primary Key KdPelanggan Foreign
Key
KdJenisPelanggan
references
JenisPelanggan
206
(KdJenisPelanggan ) TelpPelanggan (TelpPelanggan,KdPelanggan) Primary Key TelpPelanggan, KdPelanggan Foreign Key KdPelanggan references Pelanggan (KdPelanggan) EmailPelanggan (EmailPelanggan,KdPelanggan) Primary Key EmailPelanggan, KdPelanggan Foreign Key KdPelanggan references Pelanggan (KdPelanggan) FaxPelanggan ( FaxPelanggan, KdPelanggan ) Primary Key FaxPelanggan, KdPelanggan Foreign Key KdPelanggan references Pelanggan (KdPelanggan) Supplier ( KdSupplier, NamaSupplier, TelpSupplier, AlamatSupplier, FaxSupplier, EmailSupplier ) Primary Key KdSupplier FaxS upplier (FaxSupplier, KdSupplier ) Primary Key KdSupplier, FaxSupplier Foreign Key KdSupplier references Supplier (KdSupplier) EmailS upplier ( EmailSupplier, KdSupplier ) Primary Key KdSupplier, EmailSupplier Foreign Key KdSupplier references Supplier (KdSupplier) Produk ( KdProduk, NamaProduk, SpesifikasiProduk, Harga) Primary Key KdProduk Persediaan
(
KdPersediaan,
TglProdukKeluar, Qty )
KdProduk,
TglProdukM asuk,
207
Primary Key KdPersediaan Foreign Key KdProduk references Produk ( KdProduk) JenisPelanggan (KdJenisPelanggan, NamaJenisPelanggan) Primary Key KdJenisPelanggan Gudang ( KdGudang, NamaGudang, AlamatGudang, TelpGudang, FaxGudang, NamaKaryawanGudang) Primary Key KdGudang TelpGudang ( TelpGudang, KdGudang ) Primary Key KdGudang, TelpGudang Foreign Key KdGudang references Gudang (KdGudang) FaxGudang ( FaxGudang, KdGudang ) Primary Key KdGudang, FaxGudang Foreign Key KdGudang references Gudang (KdGudang) Garansi
(
KdGaransi,
IdPenjualan,
KdProduk,
KdPelanggan,
NoPenjualan, TglPenukaran,Alasan ) Primary Key KdGaransi Foreign Key IdPenjualan references HeaderPenjualan (IdPenjualan) TermOfPayment ( KdTermPayment, TermOfPayment) Primary Key KdTermPayment TermOfDeliery ( KdTermDelivery, TermOfDelivery ) Primary Key KdTermDelivery HeaderPembelian (IdPembelian, NIK ,KdSupplier, NoPemesanan, KdGudang,NoPoSupplier,
NoPembelian,
T glPembelian,
208
PreviousPayment, PaymentDetails ) Primary Key IdPembelian Foreign Key NIK References MsKaryawan( NIK ) Foreign Key KdSupplier References Supplier (KdSupplier) DetailPembelian ( IdPembelian, KdProduk, Qty) Primary Key IdPembelian Foreign Key IdPembelian references HeaderPembelian (IdPembelian) Foreign Key KdProduk references Produk (KdProduk)
HeaderPenjualan
(
IdPenjualan,
NoPenjualan,
KdPelanggan,
TglPenjualan, IdPemesanan, KdTermPayment, NIK ) Primary Key IdPenjualan Foreign Key IdPemesanan references HeaderPemesanan (IdPemesanan) Foreign Key NIK references Karyawan (NIK) DetailPenjualan (IdPenjualan, KdProduk, Qty) Primary Key IdPenjualan Foreign Key IdPenjualan references HeaderPenjualan (IdPenjualan) Foreign Key KdProduk references Produk (KdProduk) HeaderPembayaranPenjualan (IdPembayaranPenjualan,NoPemesanan, NIK, NoPembayaranPenjualan, TglPembayaranPenjualan, KdPelanggan) Primary Key IdPembayaranPenjualan Foreign Key NIK References Karyawan(NIK) Foreign Key KdPelanggan References Pelanggan (KdSupplier)
209
Foreign Key IdPemesanan references HeaderPemesanan (IdPemesanan) DetailPembayaranPenjualan ( IdPembayaranPenjualan, Qty,KdProduk) Primary Key IdPembayaranPenjualan Foreign
Key
IdPembayaranPenjualan
references
HeaderPembayaranPenjualan (IdPembayaranPenjualan ) Foreign Key KdProduk references Produk (KdProduk) HeaderPembayaranPembelian
(IdPembayaranPembelian,
NoPembayaranPembelian, NoPemesanan, NIK, KdGudang ,KdSupplier, TglPembayaranPembelian, DP) Primary Key IdPembayaranPembelian Foreign Key NIK References Karyawan(NIK) Foreign Key KdSupplier References Supplier (KdSupplier) Foreign Key KdGudang references Gudang (KdGudang) DetailPembayaranPembelian
(
IdPembayaranPembelian,
Qty,
KdProduk ) Primary Key IdPembayaranPembelian Foreign
Key
IdPembayaranPembelian
references
HeaderPembayaranPembelian (IdPembayaranPembelian) Foreign Key KdProduk references Produk (KdProduk) HeaderPemesanan
(IdPemesanan,
TglPemesanan,
KdPelanggan,
Diskon, PPN, NIK, KdTermOfPayment, KdTermOfDelivery, IdDelivery, IdPenjualan, Status) Primary Key IdPemesanan
210
Foreign Key KdPelanggan references Pelanggan (KdPelanggan) ON UPDATE CASCADE ON DELETE CASCADE Foreign Key NIK references Karyawan (Karyawan) ON UPDATE CASCADE ON DELETE CASCADE Foreign
Key
KdTermOfPayment
(KdTermOfPayment)
ON
UPDATE
references CASCADE
TermOfPayment ON
DELETE
CASCADE Foreign
Key
KdTermOfDelivery
(KdTermOfDelivery)
ON
UPDATE
references CASCADE
TermOfDelivery ON
DELETE
CASCADE DetailPemesanan (IdPemesanan, KdProduk, Qty) Primary Key IdPemesanan Foreign Key IdPemesanan references HeaderPemesanan ON UPDATE CASCADE ON DELETE CASCADE Foreign Key KdPoduk references Produk (KdProduk) ON UPDATE CASCADE ON DELETE CASCADE HeaderPenawaran
(IdPenawaran, NoPenawaran, KdPelanggan,NIK,
Diskon) Primary Key IdPenawaran Foreign Key NIK References Karyawan(NIK) Foreign Key KdPelanggan References Pelanggan (KdPelanggan) DetailPenawaran ( IdPenawaran, KdProduk, Qty, Diskon ) Primary Key IdPenawaran
211
Foreign Key IdPenawaran references HeaderPenawaran (IdPenawaran) ON UPDATE CASCADE ON DELETE CASCADE Foreign Key KdProduk references Produk (KdProduk) HeaderDeliveryOrder (IdDelivery,IdPemesanan, noSPB, TglKirim, NIK, KdPelanggan ) Primary Key IdDelivery Foreign Key IdPemesanan references HeaderPemesanan (IdPemesanan) Foreign Key NIK References Karyawan(NIK) Foreign Key KdPelanggan References Pelanggan (KdPelanggan) DetailDeliveryOrder ( IdDelivery, KdProduk, Qty) Primary Key IdDelivery Foreign Key IdDelivery references HeaderDeliveryOrder(IdDelivery) Foreign Key KdProduk references Produk (KdProduk)
4.1.2.8 Memvalidasi Model logikal data global Relasi yang telah dibuat dengan teknik
Normalisasi pada subbab
(4.1.2.3) maka dapat dipastikan bahwa seluruh relasi dapat mendukung transaksi yang diperlukan.
4.1.2.9 Memeriksa Pertumbuhan di Masa Depan Sistem database ini dapat berubah sewaktu – waktu, hal ini disebabkan oleh Perubahan teknologi, maupun perubahan kebutuhan user di masa yang akan
212
datang. Perancangan database berbasis Aplikasi desktop ini dapat mengatasi masalah dalam hal transaksi pembelian, penjualan dan persediaan dalam beberapa tahun ke depan.
4.1.2.10 Mereview Model logikal data global dengan user Setelah melakukan beberapa langkah dalam Perancangna Logikal ini, maka setiap relasi dalam basis data ini, telah memenuhi syarat untuk M endukung Transaksi yang dibutuhkan.
213
4.1.3
Perancangan Basisdata Fisikal Perancangan basisdata fisikal adalah suatu proses untuk mendeskripsikan
pengimplementasian dari suatu basisdata pada penyimpanan secondary; dengan mendeskripsikan relasi dasar, organisasi file, dan indeks yang digunakan untuk mencapai keefisienan dalam mengakses data, dan batasan integritas, serta pengukuran keamanan apapun yang berhubungan. Berikut langkah – langkah dalam perancangan basisdata fisikal: 1. M enerjemahkan model data logikal sesuai DBM S yang dituju. 1. M erancang relasi dasar 2. M erancang representasi derived data (data turunan) 3. M erancang general constraints 2. M erancang organisasi file dan indeks 1. M enganalis transaksi 2. M emilih indeks 3. M engestimasi kapasitas penyimpanan/ disk yang dibutuhkan 3. M erancang Tampilan untuk User 4. M erancang M ekanisme Keamanan
Langkah 4
Menerjemahkan Model Data Logikal sesuai DBMS yang Dituju
4.1.3.1 Merancang Relasi Dasar Dalam
memulai
merancang physical
design,
diperlukan
untuk
mengumpulkan dan memahami informasi tentang relasi yang dihasilkan dari logical database design. Informasi yang penting bisa didapatkan dari kamus data
214
dan DDL (Data Definition
Language). Berikut relasi – relasi yang
diidentifikasikan pada model data logical: 1.
Pelanggan
Domain KdPelanggan
Char, length 6 Format: PLG[0-9][0-9][0-9]
Domain KdJenisPelanggan
Char, length 5 Format: JP[0-9][0-9][0-9]
Domain Nama
Varchar, length 50
Domain Alamat
Varchar, length 50
Domain NPWP
Varchar, length 50
MsPelanggan( KdPelanggan
KdPelanggan
NOT NULL,
KdJenisPelanggan
KdJenisPelanggan
NOT NULL,
NamaPelanggan
Nama
NOT NULL,
AlamatPelanggan
Alamat
NOT NULL,
NPWPPelanggan
NPWP
NOT NULL,
Primary Key (KdPelanggan), Foreign Key KdJenisPelanggan references JenisPelanggan (KdJenisPelanggan) ON UPDATE CASCADE ON DELETE NO ACTION ); 2. TelpPelanggan Domain Telp
Varchar, length 50
Domain KdPelanggan
Char, length 6 Format: PLG[0-9][0-9][0-9]
215
TelpPelanggan( TelpPelanggan
Telp
NOT NULL,
KdPelanggan
KdPelanggan NOT NULL,
Primary Key (TelpPelanggan, KdPelanggan), Foreign Key KdPelanggan references Pelanggan (KdPelanggan) ON UPDATE CASCADE ON DELETE NO ACTION ); 3. EmailPelanggan Domain Email
Varchar, length 50
Domain KdPelanggan
Char, length 6 Format: PLG[0-9][0-9][0-9]
EmailPelanggan( EmailPelanggan
Email
NOT NULL,
KdPelanggan
KdPelanggan NOT NULL,
Primary Key (KdPelanggan, EmailPelanggan), Foreign Key KdPelanggan references Pelanggan (KdPelanggan) ON UPDATE CASCADE ON DELETE NO ACTION ); 4. FaxPelanggan Domain Fax
Varchar, length 50
Domain KdPelanggan
Char, length 6 Format: PLG[0-9][0-9][0-9]
FaxPelanggan( FaxPelanggan
Fax
NOT NULL,
216
KdPelanggan
KdPelanggan NOT NULL,
Primary Key (KdPelanggan, FaxPelanggan), Foreign Key KdPelanggan references Pelanggan (KdPelanggan) ON UPDATE CASCADE ON DELETE NO ACTION ); 5. JenisPelanggan Domain KdJenisPelanggan
Char, length 5 Format: JP[0-9][0-9][0-9]
Domain Nama
Varchar, length 50
JenisPelanggan( KdJenisPelanggan
KdJenisPelanggan
NamaJenisPelanggan Nama
NOT NULL, NOT NULL,
Primary Key (KdJenisPelanggan) ); 6. Supplier Domain KdSupplier
Char, length 5 Format: SP[0-9][0-9][0-9]
Domain Nama
Varchar, length 50
Domain Alamat
Varchar, length 50
Supplier( KdSupplier
KdSupplier
NOT NULL,
NamaSupplier
Nama
NOT NULL,
AlamatSupplier
Alamat
NOT NULL,
Primary Key (KdSupplier)
217
); 7. TelpSupplier Domain Telp
Varchar, length 50
Domain KdSupplier
Char, length 5 Format: SP[0-9][0-9][0-9]
TelpSupplier ( TelpSupplier Telp
NOT NULL,
KdSupplier
NOT NULL,
KdSupplier
Primary Key (TelpSupplier, KdSupplier), Foreign Key KdSupplier references Supplier (KdSupplier) ON UPDATE CASCADE ON DELETE NO ACTION ); 8. EmailSupplier Domain Email
Varchar, length 50
Domain KdSupplier
Char, length 5 Format: SP[0-9][0-9][0-9]
EmailSupplier( EmailSupplier
Email
NOT NULL,
KdSupplier
KdSupplier
NOT NULL,
Primary Key (KdSupplier, EmailSupplier), Foreign Key KdSupplier references Supplier (KdSupplier) ON UPDATE CASCADE ON DELETE NO ACTION );
218
9. FaxSupplier Domain Fax
Varchar, length 50
Domain KdSupplier
Char, length 5 Format: SP[0-9][0-9][0-9]
FaxSupplier( FaxSupplier
Fax
NOT NULL,
KdSupplier
KdSupplier
NOT NULL,
Primary Key (KdSupplier, FaxSupplier), Foreign Key KdSupplier references Supplier (KdSupplier) ON UPDATE CASCADE ON DELETE NO ACTION ); 10. Karyawan Domain NIK
Char, length 6 Format: NIK[0-9][0-9][0-9]
Domain Nama
Varchar, length 50
Domain Jabatan
Varchar, length 50
Domain Alamat
Varchar, length 50
Karyawan( NIK
NIK
NOT NULL,
NamaKaryawan
Nama
NOT NULL,
Jabatan
Jabatan
NOT NULL,
AlamatKaryawan
Alamat
NOT NULL,
Primary Key (NIK) );
219
11. TelpKaryawan Domain Telp
Varchar, length 50
Domain NIK
Char, length 6 Format: NIK[0-9][0-9][0-9]
TelpKaryawan ( TelpKaryawan
Telp
NOT NULL,
NIK
NIK
NOT NULL,
Primary Key (TelpKaryawan, NIK), Foreign Key NIK references Karyawan (NIK) ON UPDATE CASCADE ON DELETE NO ACTION ); 12. EmailKaryawan Domain Email
Varchar, length 50
Domain NIK
Char, length 6 Format: NIK[0-9][0-9][0-9]
EmailKaryawan( EmailKaryawan
Email NOT NULL,
NIK
NIK
NOT NULL,
Primary Key (NIK, EmailKaryawan), Foreign Key NIK references Karyawan (NIK) ON UPDATE CASCADE ON DELETE NO ACTION ); 13. Produk Domain KdProduk
Char, length 5
220
Format: KP[0-9][0-9][0-9] Domain Nama
Varchar, length 50
Domain SpesifikasiProduk
Varchar, length 1000
Stok
Integer
Domain Harga
Decimal (10,2), length 10
Produk( KdProduk
KdProduk
NOT NULL,
NamaProduk
Nama
NOT NULL,
SpesifikasiProduk
SpesifikasiProduk
NOT NULL,
Stok
Stok
NOT NULL,
Harga
Harga
NOT NULL,
Primary Key (KdProduk) ); 14. Persediaan Domain KdPersediaan
Char, length 6 Format: PSD[0-9][0-9][0-9]
Domain KdProduk
Char, length 5 Format: KP[0-9][0-9][0-9]
Domain Tgl
Datetime, length 8
Domain Qty
Integer
Persediaan( KdPersediaan
KdPersediaan
NOT NULL,
KdProduk
KdProduk
NOT NULL,
TglProdukM asuk
Tgl
NOT NULL,
221
TglProdukKeluar
Tgl
NOT NULL,
Qty
Qty
NOT NULL,
Primary Key (KdPersediaan), Foreign
Key
KdProduk references Produk (KdProduk) ON UPDATE
CASCADE ON DELETE NO ACTION ); 15. Utang Domain kdUtang
Char, length 5 Format: UT[0-9][0-9][0-9]
Domain Id
Char, length 6 Format: PB[0-9][0-9][0-9][0-9]
Domain tgl
Datetime, length 8
Domain jumlahUtang
Decimal (10,2), length 10
Utang( kdUtang
kdUtang
NOT NULL,
IdPembayaranPembelian
Id
NOT NULL,
tglJatuhTempo
tgl
NOT NULL,
jumlahUtang
jumlahUtang
NOT NULL,
Primary Key (kdUtang), Foreign Key IdPembayaranPembelian references HeaderPembayaranPembelian (IdPembayaranPembelian) ON UPDATE CASCADE ON DELETE NO ACTION );
222
16. Piutang Domain kdPiutang
Char, length 5 Format: PT[0-9][0-9][0-9]
Domain Id
Char, length 6 Format: PJ[0-9][0-9][0-9][0-9]
Domain tgl
Datetime, length 8
Domain jumlahPiutang
Decimal (10,2), length 10
Piutang( kdPiutang
kdPiutang
NOT NULL,
IdPembayaranPenjualan
Id
NOT NULL,
tglJatuhTempo
tgl
NOT NULL,
jumlahPiutang
jumlahPiutang
NOT NULL,
Primary Key (kdPiutang), Foreign Key IdPembayaranPenjualan references HeaderPembayaranPenjualan (IdPembayaranPenjualan) ON UPDATE CASCADE ON DELETE NO ACTION ); 17. HeaderPenawaran Domain Id
Char, length 6 Format: QT[0-9][0-9][0-9][0-9]
Domain no
Varchar, length 50
Domain kdPelanggan
Char, length 6 Format: PLG[0-9][0-9][0-9]
Domain NIK
Char, length 6
223
Format: NIK[0-9][0-9][0-9] Domain Diskon
Decimal (10,2), length 10
HeaderPenawaran( IdPenawaran
Id
NOT NULL,
noPenawaran
no
NOT NULL,
kdPelanggan
kdPelanggan NOT NULL,
NIK
NIK
NOT NULL,
Diskon
Diskon
NOT NULL,
Primary Key (IdPenawaran), Foreign Key kdPelanggan references Pelanggan (kdPelanggan) ON UPDATE CASCADE ON DELETE NO ACTION, Foreign Key NIK references Karyawan (NIK) ON UPDATE CASCADE ON DELETE NO ACTION ); 18. DetailPenawaran Domain Id
Char, length 6 Format: QT[0-9][0-9][0-9][0-9]
Domain kdProduk
Char, length 5 Format: KP[0-9][0-9][0-9]
Domain Qty
Integer
DetailPenawaran( IdPenawaran
Id
NOT NULL,
kdProduk
kdProduk
NOT NULL,
Qty
Qty
NOT NULL,
224
Primary Key (IdPenawaran, kdProduk), Foreign Key IdPenawaran references HeaderPenawaran (IdPenawaran) ON UPDATE CASCADE ON DELETE NO ACTION, Foreign Key kdProduk references Produk (kdProduk) ON UPDATE CASCADE ON DELETE NO ACTION ); 19. Garansi Domain kdGaransi
Char, length 5 Format: GD[0-9][0-9][0-9]
Domain kdProduk
Char, length 5 Format: KP[0-9][0-9][0-9]
Domain kdPelanggan
Char, length 6 Format: PLG[0-9][0-9][0-9]
Domain no
Varchar, length 50
Domain tgl
Datetime, length 8
Domain alasan
Varchar, length 100
Garansi( kdGaransi
kdGaransi
NOT NULL,
kdProduk
kdProduk
NOT NULL,
kdPelanggan
kdPelanggan NOT NULL,
noPenjualan
no
NOT NULL,
tglPenukaran
tgl
NOT NULL,
alasan
alasan
NOT NULL,
Primary Key (kdGaransi),
225
Foreign Key kdProduk references Produk (kdProduk) ON UPDATE CASCADE ON DELETE NO ACTION, Foreign Key kdPelanggan references Pelanggan (kdPelanggan) ON UPDATE CASCADE ON DELETE NO ACTION ); 20. Gudang Domain KdGudang
Char, length 5 Format: GD[0-9][0-9][0-9]
Domain Nama
Varchar, length 50
Domain Alamat
Varchar, length 50
Domain NamaKaryGdg
Varchar, length 50
Gudang( KdGudang
KdGudang
NOT NULL,
NamaGudang
Nama
NOT NULL,
AlamatGudang
Alamat
NOT NULL,
NamaKaryGdg
NamaKaryGdg
NOT NULL,
Primary Key (kdGudang) ); 21. TelpGudang Domain Telp
Varchar, length 50
Domain KdGudang
Char, length 5 Format: GD[0-9][0-9][0-9]
TelpGudang( TelpGudang
Telp
NOT NULL,
226
KdGudang
KdGudang
NOT NULL,
Primary Key (TelpGudang,KdGudang) Foreign Key KdGudang references Gudang (KdGudang) ON UPDATE CASCADE ON DELETE NO ACTION ); 22. FaxGudang Domain Fax
Varchar, length 50
Domain KdGudang
Char, length 5 Format: GD[0-9][0-9][0-9]
FaxGudang( FaxGudang
Fax
NOT NULL,
KdGudang
KdGudang
NOT NULL,
Primary Key (FaxGudang,KdGudang) Foreign Key KdGudang references Gudang (KdGudang) ON UPDATE CASCADE ON DELETE NO ACTION ); 23. HeaderPemesanan Domain Id
Char, length 6 Format: PO[0-9][0-9][0-9][0-9]
Domain no
Varchar, length 50
Domain Tgl
Datetime, length 8
Domain KdPelanggan
Char, length 6 Format: PLG[0-9][0-9][0-9]
Domain PPN
Decimal (10,2), length 10
227
Domain NIK
Char, length 6 Format: NIK[0-9][0-9][0-9]
Domain diskon
Decimal (10,2), length 10
Domain Kdtermpayment
Char, length 6 Format: TOP[0-9][0-9][0-9]
Domain kdtermdelivery
Char, length 6 Format: TOD[0-9][0-9][0-9]
Domain status
Varchar, length 50
HeaderPemesanan( IdPemesanan
Id
NOT NULL,
noPemesanan
no
NOT NULL,
Tglpemesanan
Tgl
NOT NULL,
KdPelanggan
KdPelanggan
NOT NULL,
PPN
PPN
NOT NULL,
NIK
NIK
NOT NULL,
diskon
diskon
NOT NULL,
Kdtermpayment
Kdtermpayment
NOT NULL,
kdtermdelivery
kdtermdelivery
NOT NULL,
status
status
NOT NULL,
Primary Key (IdPemesanan), Foreign Key KdPelanggan references Pelanggan (KdPelanggan) ON UPDATE CASCADE ON DELETE NO ACTION, Foreign Key NIK references Karyawan (NIK) ON UPDATE CASCADE ON DELETE NO ACTION,
228
Foreign Key Kdtermpayment references TermOfPayment (Kdtermpayment) ON UPDATE CASCADE ON DELETE NO ACTION, Foreign Key Kdtermdelivery references TermOfDelivery (Kdtermdelivery) ON UPDATE CASCADE ON DELETE NO ACTION ); 24. DetailPemesanan Domain Id
Char, length 6 Format: PO[0-9][0-9][0-9][0-9]
Domain Kdproduk
Char, length 5 Format: KP[0-9][0-9][0-9]
Domain Qty
Integer
DetailPemesanan ( IdPemesanan
NOT NULL,
Kdproduk
NOT NULL,
Qty
NOT NULL,
Primary Key (IdPemesanan,Kdproduk), Foreign Key IdPemesanan references HeaderPemesanan (IdPemesanan) ON UPDATE CASCADE ON DELETE NO ACTION, Foreign
Key
KdProduk references Produk (KdProduk) ON UPDATE
CASCADE ON DELETE NO ACTION ); 25. HeaderPenjualan Domain Id
Char, length 7 Format: PJL[0-9][0-9][0-9][0-9]
229
Domain NIK
Char, length 6 Format: NIK[0-9][0-9][0-9]
Domain KdPelanggan
Char, length 6 Format: PLG[0-9][0-9][0-9]
Domain PPN
Decimal (10,2), length 10
Domain KdTermPayment
Char, length 6 Format: TOP[0-9][0-9][0-9]
Domain No
Varchar, length 50
Domain No
Varchar, length 50
Domain Tgl
Datetime, length 8
HeaderPenjualan( IdPenjualan
Id
NOT NULL,
NIK
NIK
NOT NULL,
KdPelanggan
KdPelanggan
NOT NULL,
PPN
PPN
NOT NULL,
KdTermPayment
KdTermPayment
NOT NULL,
NoPenjualan
No
NOT NULL,
NoPemesanan
No
NOT NULL,
Tglpenjualan
Tgl
NOT NULL,
Primary Key (IdPenjualan), Foreign Key NIK references Karyawan (NIK) ON UPDATE CASCADE ON DELETE NO ACTION, Foreign Key KdPelanggan references Pelanggan (KdPelanggan) ON UPDATE CASCADE ON DELETE NO ACTION,
230
Foreign Key KdTermPayment references TermOfPayment (KdTermPayment) ON UPDATE CASCADE ON DELETE NO ACTION ); 26. DetailPenjualan Domain Id
Char, length 7 Format: PJL[0-9][0-9][0-9][0-9]
Domain KdProduk
Char, length 5 Format: KP[0-9][0-9][0-9]
Domain Qty
Integer
DetailPenjualan ( IdPenjualan
Id
NOT NULL,
KdProduk
KdProduk
NOT NULL,
Qty
Qty
NOT NULL,
Primary Key (IdPenjualan,KdProduk), Foreign Key
IdPenjualan references HeaderPenjualan (IdPenjualan) ON
UPDATE CASCADE ON DELETE NO ACTION, Foreign
Key
KdProduk references Produk (KdProduk) ON UPDATE
CASCADE ON DELETE NO ACTION ); 27. HeaderPembayaranPenjualan Domain Id
Char, length 6 Format: PJ[0-9][0-9][0-9][0-9]
Domain No
Char, length 6 Format: PO[0-9][0-9][0-9][0-9]
231
Domain KdPelanggan
Varchar, length 50
Domain NIK
Char, length 6 Format: NIK[0-9][0-9][0-9]
Domain NoPembayaranPenjualan
Varchar, length 50
Domain tgl
Datetime, length 8
HeaderPembayaranPenjualan ( IdPembayaranPenjualan
Id
NOT NULL,
NoPemesanan
No
NOT NULL,
KdPelanggan
KdPelanggan
NOT NULL,
NIK
NIK
NOT NULL,
NoPembayaranPenjualan
NoPembayaranPenjualan
NOT NULL,
tglPembayaranPenjualan
tgl
NOT NULL,
Primary Key (IdPembayaranPenjualan), Foreign Key NIK references Karyawan (NIK) ON UPDATE CASCADE ON DELETE NO ACTION, Foreign Key KdPelanggan references Pelanggan (KdPelanggan) ON UPDATE CASCADE ON DELETE NO ACTION, ); 28. DetailPembayaranPenjualan Domain Id
Char, length 6 Format: PJ[0-9][0-9][0-9][0-9]
Domain KdProduk
Char, length 5 Format: KP[0-9][0-9][0-9]
Domain Qty
Integer
232
DetailPembayaranPenjualan ( IdPembayaranPenjualan
Id
NOT NULL,
KdProduk
KdProduk
NOT NULL,
Qty
Qty
NOT NULL,
Primary Key (IdPembayaranPenjualan, KdProduk), Foreign Key IdPembayaranPenjualan references HeaderPembayaranPenjualan (IdPembayaranPenjualan) ON UPDATE CASCADE ON DELETE NO ACTION, Foreign
Key
KdProduk references Produk (KdProduk) ON UPDATE
CASCADE ON DELETE NO ACTION ); 29. HeaderPembelian Domain Id
Char, length 7 Format: PM B[0-9][0-9][0-9][0-9]
Domain NIK
Char, length 6 Format: NIK[0-9][0-9][0-9]
Domain Kdsupplier
Char, length 5 Format: SP[0-9][0-9][0-9]
Domain NoPOSupplier
Varchar, length 50
Domain KdGudang
Char, length 5 Format: GD[0-9][0-9][0-9]
Domain No
Varchar, length 50
Domain tgl
Datetime, length 8
Domain PreviousPayment
Decimal (10,2), length 10
233
Domain PaymentDetail
Varchar, length 50
HeaderPembelian ( Idpembelian
Id
NOT NULL,
NIK
NIK
NOT NULL,
Kdsupplier
KdSupplier
NOT NULL,
NoPOSupplier
NoPOSupplier
NOT NULL,
KdGudang
KdGudang
NOT NULL,
NoPembelian
No
NOT NULL,
tglPembelian
tgl
NOT NULL,
PreviousPayment
PreviousPayment
NOT NULL,
PaymentDetail
PaymentDetail
NOT NULL,
Primary Key (Idpembelian), Foreign Key NIK references Karyawan (NIK) ON UPDATE CASCADE ON DELETE NO ACTION, Foreign Key Kdsupplier references Supplier (Kdsupplier) ON UPDATE CASCADE ON DELETE NO ACTION, Foreign Key KdGudang references Gudang (KdGudang) ON UPDATE CASCADE ON DELETE NO ACTION ); 30. DetailPembelian Domain Id
Char, length 7 Format: PM B[0-9][0-9][0-9][0-9]
Domain KdProduk
Char, length 5 Format: KP[0-9][0-9][0-9]
234
Domain Qty
Integer
DetailPembelian ( Idpembelian
Id
NOT NULL,
KdProduk
KdProduk
NOT NULL,
Qty
Qty
NOT NULL,
Primary Key (Idpembelian,KdProduk), Foreign Key Idpembelian references Headerpembelian (Idpembelian) ON UPDATE CASCADE ON DELETE NO ACTION, Foreign
Key
KdProduk references Produk (KdProduk) ON UPDATE
CASCADE ON DELETE NO ACTION ); 31. HeaderPembayaranPembelian Domain Id
Char, length 6 Format: PB[0-9][0-9][0-9][0-9]
Domain NIK
Char, length 6 Format: NIK[0-9][0-9][0-9]
Domain Kdsupplier
Char, length 5 Format: SP[0-9][0-9][0-9]
Domain No
Varchar, length 50
Domain KdGudang
Char, length 5 Format: GD[0-9][0-9][0-9]
Domain NoPembayaranPembelian
Varchar, length 50
Domain tgl
Datetime, length 8
Domain DP
Decimal (10,2), length 10
235
HeaderPembayaranPembelian ( IdPembayaranPembelian
Id
NOT NULL,
NIK
NIK
NOT NULL,
Kdsupplier
KdSupplier
NOT NULL,
NoPemesanan
No
NOT NULL,
KdGudang
KdGudang
NOT NULL,
NoPembayaranPembelian
NoPembayaranPembelian NOT NULL,
tglPembayaranPembelian
tgl
NOT NULL,
DP
DP
NOT NULL,
Primary Key (IdPembayaranPembelian), Foreign Key NIK references Karyawan (NIK) ON UPDATE CASCADE ON DELETE NO ACTION, Foreign Key Kdsupplier references Supplier (Kdsupplier) ON UPDATE CASCADE ON DELETE NO ACTION, Foreign Key KdGudang references Gudang (KdGudang) ON UPDATE CASCADE ON DELETE NO ACTION ); 32. DetailPembayaranPembelian Domain Id
Id
Char, length 6 Format: PB[0-9][0-9][0-9][0-9]
Domain KdProduk
KdProduk
Char, length 5 Format: KP[0-9][0-9][0-9]
Domain Qty
Qty
DetailPembayaranPembelian (
Integer
236
IdPembayaranPembelian
Id
NOT NULL,
KdProduk
KdProduk
NOT NULL,
Qty
Qty
NOT NULL,
Primary Key (IdPembayaranPembelian,KdProduk), Foreign Key IdPembayaranPembelian references HeaderPembayaranPembelian (IdPembayaranPembelian) ON UPDATE CASCADE ON DELETE NO ACTION, Foreign
Key
KdProduk references Produk (KdProduk) ON UPDATE
CASCADE ON DELETE NO ACTION ); 33. TermOfDelivery Domain KdTermDelivery
Char, length 6 Format: TOD[0-9][0-9][0-9]
Domain TermOfDelivery
Datetime, length 8
TermOfDelivery ( KdTermDelivery
KdTermDelivery
NOT NULL,
TermOfDelivery
TermOfDelivery
NOT NULL,
Primary Key (KdTermDelivery) ); 34. TermOfPayment Domain KdTermPayment
Char, length 6 Format: TOP[0-9][0-9][0-9]
Domain TermOfPayment TermOfPayment (
Datetime, length 8
237
KdTermPayment
KdTermPayment
NOT NULL,
TermOfPayment
TermOfPayment
NOT NULL,
Primary Key (KdTermPayment) ); 35. HeaderDeliveryOrder Domain Id
Char, length 5 Format: DL[0-9][0-9][0-9]
Domain No
Varchar, length 50
Domain noSPB
Varchar, length 50
Domain tgl
Datetime, length 8
Domain NIK
Char, length 6 Format: NIK[0-9][0-9][0-9]
Domain KdPelanggan
Char, length 6 Format: PLG[0-9][0-9][0-9]
HeaderDelivery ( IdDelivery
Id
NOT NULL,
NoPemesanan
No
NOT NULL,
noSPB
noSPB
NOT NULL,
tglKirim
tgl
NOT NULL,
NIK
NIK
NOT NULL,
KdPelanggan
KdPelanggan NOT NULL,
Primary Key (IdDelivery), Foreign Key NIK references Karyawan (NIK) ON UPDATE CASCADE ON DELETE NO ACTION,
238
Foreign Key KdPelanggan references Pelanggan (KdPelanggan) ON UPDATE CASCADE ON DELETE NO ACTION ); 36. DetailDeliveryOrder Domain Id
Char, length 5 Format: DL[0-9][0-9][0-9]
Domain KdProduk
Char, length 5 Format: KP[0-9][0-9][0-9]
Domain Qty
Integer
HeaderDetail( IdDelivery
Id
NOT NULL,
KdProduk
KdProduk
NOT NULL,
Qty
Qty
NOT NULL,
Primary Key (IdDelivery,KdProduk), Foreign Key IdDelivery references HeaderDelivery (IdDelivery) ON UPDATE CASCADE ON DELETE NO ACTION, Foreign
Key
KdProduk references Produk (KdProduk) ON UPDATE
CASCADE ON DELETE NO ACTION ); 37. User Domain KdUser
Char, length 7 Format: User[0-9][0-9][0-9]
Domain NIK
Char, length 6 Format: NIK[0-9][0-9][0-9]
239
Domain username
Varchar, length 50
Domain password
Varchar, length 50
Domain userType
Varchar, length 50
User( NIK
NIK
NOT NULL,
username
username
NOT NULL,
password
password
NOT NULL,
userType
userType
NOT NULL,
Primary Key (KdUser), Foreign Key NIK references Karyawan (NIK) ON UPDATE CASCADE ON DELETE NO ACTION );
240
4.1.3.2 Merancang Representasi Derived Data Tujuan dari langkah ini adalah untuk memutuskan bagaimana mempresentasikan suatu data turunan yang terdapat pada model data logikal pada DBM S yang dituju. Atribut yang nilainya didapatkan dengan mengevaluasi atribut lain dikenal sebagai atribut turunan atau atribut kalkulasi. Dalam skripsi ini tidak ditemukan adanya derived data (data turunan).
4.1.3.3 Merancang General Constraint Langkah ini memiliki tujuan untuk merancang batasan - batasan umum (general constraints) DBM S. Berikut ini merupakan perancangan constraints yang terdapat dalam suatu entiti: 1. Tanggal jatuh tempo tidak boleh lebih besar dari tanggal pembayaran pembelian. CONSTRAINT [TglJatuhTempoPembelian] CHECK (NOT EXIST( SELECT a.TglJatuhTempo, b.TglPembayaranPembelian FROM Utang a, HeaderPembayaranPembelian b WHERE a.IdPembayaranPembelian = b. IdPembayaranPembelian AND TglPembayaranPembelian > TglJatuhTempo ))
2. Tanggal jatuh tempo tidak boleh lebih besar dari tanggal pembayaran penjualan. CONSTRAINT [TglJatuhTempoPenjualan] CHECK (NOT EXIST( SELECT a.TglJatuhTempo, b.TglPembayaranPenjualan
241
FROM Piutang a, HeaderPembayaranPenjualan b WHERE a.IdPembayaranPenjualan = b. IdPembayaranPenjualan AND TglPembayaranPenjualan > b.TglJatuhTempo ))
3. Tanggal produk keluar dari persedian sama dengan tanggal pengiriman barang. CONSTRAINT [ProdukKeluar] CHECK (NOT EXIST( SELECT a.TglProdukKeluar, b.T glKirim, c.kdProduk FROM Persedian a, HeaderDeliveryOrder b, Produk c WHERE a.kdProduk = c.KdProduk AND b.kdProduk = c.KdProduk AND TglKirim = TglProdukKeluar ))
4. Tanggal penukaran tidak boleh lebih dari 6 bulan setelah tanggal pembelian. CONSTRAINT [TglTukar] CHECK (NOT EXIST( SELECT a.tglPenukaran, b.TglPembelian FROM Garansi a, HeaderPembelian b WHERE a.KdGudang = b.KdGudang AND tglPenukaran = month(TglPembelian)<6 )) 5. Tanggal service tidak boleh lebih dari 1 tahun setelah tanggal pembelian. CONSTRAINT [TglService] CHECK (NOT EXIST(
242
SELECT a. tglService , b.TglPembelian FROM Garansi a, HeaderPembelian b WHERE a.KdGudang = b.KdGudang AND tglPenukaran = month(TglPembelian)<12 ))
4.1.3.4 Menganalisis Transaksi Langkah ini bertujuan untuk memahami fungsionalitas dari suatu transaksi dimana akan dijalankan pada basisdata untk menganalisis transaksi yang penting. Berikut ini table – table analisis transaksi, dengan keterangan I=Insert, R=Read, U=Update dan D=Delete: Tabel 4.8 Transaksi Relasi
1
2
3
X
HeaderPenjualan
X
DetailPenjualan
X
X
X
X
Penjualan DetailPembayaran
4
5
I R U D I R U D I R U D I R U D I R U D
Pelanggan
HeaderPembayaran
Analisis Transaksi Pelanggan untuk Penjualan
X
Penjualan HeaderPemesanan
X
DetailPemesanan
X
X
X
243
HeaderPenawaran
X
DetailPenawaran
X
Garansi
X
Keterangan: 1. Informasi tentang proses penjualan yang dilakukan pelanggan. 2. Informasi tentang proses pembayaran penjualan yang dilakukan pelanggan. 3. Informasi tentang proses pemesanan yang dilakukan pelanggan. 4. Informasi tentang proses penawaran yang dilakukan pelanggan. 5. Informasi tentang garansi yang diterima pelanggan. Tabel 4.9 Transaksi Relasi
Analisis Transaksi Pelanggan untuk Penjualan
6 I
7
8
9
R U D I R U D I
R U D I R U D
Pelanggan
X
X
HeaderDelivery
X
X
X
Order DetailDelivery
X
Order TermOfDelivery TermOfPayment Piutang
X X X
Keterangan: 6. Informasi tentang proses delivery yang diterima pelanggan. 7. Informasi tentang term of delivery yang diterima pelanggan.
244
8. Informasi tentang term of payment yang diterima pelanggan. 9. Informasi tentang piutang yang dibuat pelanggan. Tabel 4.10 Transaksi
10
Analisis Transaksi Karyawan untuk Penjualan 11
12
13
14
Relasi
I R U D I R U D I R U D I R U D I R U D
Karyawan
XX
HeaderPenjualan
XX
DetailPenjualan
XX
X X
HeaderPemesanan
X X
DetailPemesanan
X X
X X
HeaderPenawaran
X X
DetailPenawaran
X X
HeaderPembayara
X X
XX X
X X
nPenjualan DetailPembayaran
X X
Penjualan Garansi
XX X
Keterangan: 10. Informasi tentang penjualan yang dibuat oleh karyawan. 11. Informasi tentang pemesanan yang dibuat oleh karyawan. 12. Informasi tentang penawaran yang dibuat oleh karyawan. 13. Informasi tentang pembayaran yang dibuat oleh karyawan. 14. Informasi tentang garansi yang dibuat oleh karyawan.
245
Tabel 4.11 Transaksi
Analisis Transaksi Karyawan untuk Penjualan 15
Relasi
I
Karyawan
X X
16
R U D I
17
R U D I
X X X
18
R U D I
X X
R U D
X X
HeaderDeliveryOrder X X DetailDeliveryOrder
X X
Piutang
X X X
TermOfDelivery
X X
TermOfPayment
X X
Keterangan: 15. Informasi tentang delivery order yang dibuat oleh karyawan. 16. Informasi tentang piutang yang dibuat oleh karyawan. 17. Informasi tentang term of delivery yang dibuat oleh karyawan. 18. Informasi tentang term of payment yang dibuat oleh karyawan. Tabel 4.12 Transaksi Relasi
19
20
X
HeaderPembelian
X
DetailPembelian
X
X
X
Pembelian Detailpembayaran
21
I R U D I R U D I R U D
Supplier
Headerpembayaran
Analisis Transaksi Supplier untuk Pembelian
X
X
246
Pembelian Utang
X
Keterangan: 19. Informasi tentang proses pembelian yang diterima oleh supplier. 20. Informasi tentang proses pembayaran pembelian yang diterima oleh supplier. 21. Informasi tentang utang yang diterima dari supplier. Tabel 4.13
Analisis Transaksi Karyawan untuk Pembelian
Transaksi
22
Relasi
I
Karyawan
X X
HeaderPembelian
X X
DetailPembelian
X X
23
R U D I
24
R U D I
X X
HeaderpembayaranPembelian
X X
Detailpembayaran
X X
R U D
X X X
Pembelian Utang
X X X
Keterangan: 22. Informasi tentang proses pembelian yang dibuat oleh karyawan. 23. Informasi tentang proses pembelian yang dibuat oleh karyawan 24. Informasi tentang utang yang dibuat oleh karyawan
247
Tabel 4.14 Transaksi Relasi
25
Analisis Transaksi Produk untuk Penjualan 26
27
28
29
I R UD I R U D I R U D I R U D I R U D
Produk
X
HeaderPenjualan
XX
DetailPenjualan
XX
X
HeaderPenawaran
X X
DetailPenawaran
X X
HeaderDelivery
X
X
X
X
Order DetailDeliveryOrd
X
er HeaderPemesanan
X
DetailPemesanan
X
Headerpembayara
X
nPenjualan Detailpembayaran
X
Penjualan Keterangan: 25. Informasi tentang Proses Penjualan Produk 26. Informasi tentang Penawaran Produk 27. Informasi tentang DeliveryOder Produk 28. Informasi tentang PemabayaranPenjualan produk yang dilakukan
248
Tabel 4.15 Transaksi
Analisis Transaksi Produk untuk Penjualan
30
Relasi
31
32
33
34
I R U D I R U D I R U D I R U D I R U D
Produk
X
Garansi
X
X X
Persediaan
X
X X
Piutang
X
TermOfDeliv
X
ery TermOfPaym
X
ent Keterangan: 30. Informasi tentang Garansi yang diberikan untuk setiap produk 31. Informasi tentang persediaan produk 32. Informasi tentang Piutang yang ditimbulkan dari proses penjualan 33.Informasi tentang syarat pengiriman produk 34. Informasi tentang syarat pembayaran produk Tabel 4.16 Transaksi
35
Relasi
I
Produk
X
HeaderPembelian
X
DetailPembelian
Analisis Transaksi Produk untuk Pembelian 36
37
38
R U D I R U D I R U D I R U D X
X
X
X
X
249
HeaderPembayaranPembe
X
lian DetailPembayaranPembeli
X
an HeaderPersediaan
X
X
DetailPersediaan
X
X
Utang
X
Keterangan: 35. Informasi tentang proses pembelian produk ke supplier 36. Informasi tentang proses pembayaranpembelian yang dilakukan 37. Informasi tentang Persediaan produk setelak melalui proses Pembelian 38. Informasi tentang Utang yang ditimbulkan dari proses Pembelian
Langkah 5
Merancang Organisasi File dan Indeks
4.1.3.5 Memilih Indeks Langkah ini bertujuan untuk meningkatkan performa dalam suatu sistem basisdata. Pendekatan yang dilakukan untuk memilih organisasi file yang cocok untuk relasi adalah menjaga agar tuples tidak berurutan dan dibuat indeks secondary sebanyak mungkin. Berikut tabel memilih indeks:
250
Tabel 4.17 Tabel Entitas
Nama
Memilih Indeks
Indeks Kunci
Keterangan Indeks
Indeks Pelanggan
telpPelanggan
faxPelanggan
emailPelanggan
JenisPelanggan
Idxplg
kdPelanggan
Berdasarkan kdPelanggan
Idxjeplg
kdJenisPelanggan
Berdasarkan kdJenisPelanggan
Idxtelplg
telpPelanggan
Berdasarkan telpPelanggan
Idxplg
kdPelanggan
Berdasarkan kdPelanggan
Idxfaxplg
faxPelanggan
Berdasarkan faxPelanggan
Idxplg
kdPelanggan
Berdasarkan kdPelanggan
Idxemailplg
emailPelanggan
Berdasarkan emailPelanggan
Idxplg
kdPelanggan
Berdasarkan kdPelanggan
Idxjeplg
kdJenisPelanggan
Berdasarkan kdJenisPelanggan
Supplier
Idxsup
kdSupplier
Berdasarkan kdSupplier
telpSupplier
Idxtelsup
telpSupplier
Berdasarkan telpSupplier
Idxsup
kdSupplier
Berdasarkan kdSupplier
Idxfaxsup
faxSupplier
Berdasarkan faxSupplier
Idxsup
kdSupplier
Berdasarkan kdSupplier
Idxemailsup
emailSupplier
Berdasarkan emailSupplier
Idxsup
kdSupplier
Berdasarkan kdSupplier
Karyawan
Idxnik
NIK
Berdasarkan NIK
telpKaryawan
Idxtelpkary
telpKaryawan
Berdasarkan telpKaryawan
Idxnik
NIK
Berdasarkan NIK
faxSupplier
emailSupplier
251
Tabel Entitas
Nama
Indeks Kunci
Keterangan Indeks
Indeks emailKaryawan
Idxemailkary
emailKaryawan
Berdasarkan emailKaryawan
Idxnik
NIK
Berdasarkan NIK
Produk
Idxproduk
kdProduk
Berdasarkan kdProduk
Utang
Idxutg
kdUtang
Berdasarkan kdUtang
Idxbayarbeli
IdPembayaranPe
Berdasarkan
mbelian
IdPembayaranPembelian
Idxptg
kdPiutang
Berdasarkan kdPiutang
Idxbyrjual
IdPembayaranPen Berdasarkan
Piutang
jualan
IdPembayaranPenjualan
HeaderPenawar
Idxquot
IdPenawaran
Berdasarkan IdPenawaran
an
Idxplg
kdPelanggan
Berdasarkan kdPelanggan
Idxnik
NIK
Berdasarkan NIK
Idxquot
IdPenawaran
Berdasarkan IdPenawaran
Idxproduk
kdProduk
Berdasarkan kdProduk
Idxstok
kdPersediaan
Berdasarkan kdPersediaan
Idxproduk
kdProduk
Berdasarkan kdProduk
Idxgaransi
kdGaransi
Berdasarkan kdGaransi
Idxproduk
kdProduk
Berdasarkan kdProduk
Idxplg
kdPelanggan
Berdasarkan kdPelanggan
Idxgud
KdGudang
Berdasarkan KdGudang
Idxgud
KdGudang
Berdasarkan KdGudang
DetailPenawaran
Persediaan
Garansi
Gudang
252
Tabel Entitas
Nama
Indeks Kunci
Keterangan Indeks
Indeks FaxGudang
Idxfaxgud
FaxGudang
Berdasarkan FaxGudang
Idxgud
KdGudang
Berdasarkan KdGudang
Header
Idxpesan
IdPemesanan
Berdasarkan IdPemesanan
Pemesanan
Idxplg
Kdpelanggan
Berdasarkan Kdpelanggan
Idxnik
NIK
Berdasarkan NIK
Idxtop
Kdtermpayment
Berdasarkan Kdtermpayment
Idxtod
kdtermdelivery
Berdasarkan kdtermdelivery
Idxpesan
IdPemesanan
Berdasarkan IdPemesanan
Idxproduk
Kdproduk
Berdasarkan Kdproduk
Idxjual
IdPenjualan
Berdasarkan IdPenjualan
Idxnik
NIK
Berdasarkan NIK
Idxplgplg
KdPelanggan
Berdasarkan KdPelanggan
Idxtop
KdTermPayment
Berdasarkan
DetailPemesanan
HeaderPenjualan
KdTermPayment DetailPenjualan
HeaderPembayar
Idxjual
IdPenjualan
Berdasarkan IdPenjualan
Idxproduk
KdProduk
Berdasarkan KdProduk
Idxbyrjual
IdPembayaranPen Berdasarkan
anPenjualan
jualan
IdPembayaranPenjualan
Idxpesan
IdPemesanan
Berdasarkan IdPemesanan
Idxplg
KdPelanggan
Berdasarkan KdPelanggan
Idxnik
NIK
Berdasarkan NIK
253
Tabel Entitas
Nama
Indeks Kunci
Keterangan Indeks
Indeks Idxproduk
KdProduk
Berdasarkan KdProduk
Header
Idxbeli
Idpembelian
Berdasarkan Idpembelian
Pembelian
Idxnik
NIK
Berdasarkan NIK
Idxsup
Kdsupplier
Berdasarkan Kdsupplier
Idxgud
KdGudang
Berdasarkan KdGudang
Idxbeli
Idpembelian
Berdasarkan Idpembelian
Idxproduk
KdProduk
Berdasarkan KdProduk
Idxbayarbeli
IdPembayaran
Berdasarkan
Pembelian
IdPembayaranPembelian
Idxnik
NIK
Berdasarkan NIK
Idxsup
Kdsupplier
Berdasarkan Kdsupplier
Idxgud
KdGudang
Berdasarkan KdGudang
Idxbayarbeli
IdPembayaranPe
Berdasarkan
mbelian
IdPembayaranPembelian
Idxproduk
KdProduk
Berdasarkan KdProduk
TermOfDelivery
Idxtod
kdTermDelivery
Berdasarkan kdT ermDelivery
TermOfPayment
Idxtop
KdTermPayment
Berdasarkan KdT ermPayment
HeaderDeliverOr
Idxdelivery
IdDelivery
Berdasarkan IdDelivery
der
Idxnik
NIK
Berdasarkan NIK
Idxplg
KdPelanggan
Berdasarkan KdPelanggan
DetailPembelian
HeaderPembayar anPembelian
DetailPembayara nPembelian
254
Tabel Entitas
Nama
Indeks Kunci
Keterangan Indeks
Indeks DetailDelivery
Idxdelivery
IdDelivery
Berdasarkan IdDelivery
Order
Idxproduk
KdProduk
Berdasarkan KdProduk
User
Idxuser
KdUser
Berdasarkan KdUser
Idxnik
NIK
Berdasarkan NIK
4.1.3.6 Mengestimasi Kapasitas Penyimpanan yang Dibutuhkan Langkah ini bertujuan untuk mengestimasi/ memperkirakan jumlah kapasitas disk yang akan diperlukan basisdata dalam mendukung implementasi basisdata pada penyimpanan secondary. Berikut ini adalah perinciannya: 1. Pelanggan Tabel 4.18 Atribut
Tabel Pelanggan Tipe Data
Ukuran (byte)
kdPelanggan
Char (6)
6
kdJenisPelanggan
Char (5)
5
namaPelanggan
Varchar (50)
30
alamatPelanggan
Varchar (50)
50
NPWP
Varchar (50)
20
JUM LAH
111
Kapasitas dari tabel Pelanggan adalah 111 byte Data Awal sebelum operasional 20 pelanggan, sehingga 20 * 111 = 2220 byte
255
Diperkirakan dalam 1Bulan terjadi penambahan ± 5 pelanggan baru Dalam 1tahun pertumbuhan tabel ini adalah 12 * 5 * 111= 6660 byte
2. telpPelanggan Tabel 4.19
Tabel Telepon Pelanggan
Atribut
Tipe Data
Ukuran (byte)
telpPelanggan
Varchar (50)
15
kdPelanggan
Char (6)
6
JUM LAH
21
Kapasitas dari tabel telpPelanggan adalah 21 byte Data Awal sebelum operasional 40 Nomor Telepon Pelanggan , sehingga 21 * 40 = 840 Diperkirakan dalam 1Bulan terjadi penambahan ± 15 Nomor Telepon pelanggan baru Dalam 1tahun pertumbuhan tabel ini adalah 12 * 15 * 21 = 3780 byte
3. faxPelanggan Tabel 4.20 Atribut
Tabel Fax Pelanggan Tipe Data
Ukuran (byte)
faxPelanggan
Varchar (50)
15
kdPelanggan
Char (6)
6
JUM LAH
21
Kapasitas dari tabel faxPelanggan adalah 21 byte
256
Data Awal sebelum operasional 30 Nomor Fax Pelanggan,sehingga 21 * 30 = 630 byte Diperkirakan dalam 1Bulan terjadi penambahan ± 15 Nomor Fax pelanggan baru Dalam 1tahun pertumbuhan tabel ini adalah 12 * 15 * 21 = 3780 byte
4. emailPelanggan Tabel 4.21 Atribut
Tabel Email Pelanggan Tipe Data
Ukuran (byte)
emailPelanggan
Varchar (50)
30
kdPelanggan
Char (6)
6
JUM LAH
36
Kapasitas dari tabel emailPelanggan adalah 36 byte Data Awal sebelum operasional 40 Email Pelanggan,sehingga 36 * 40 = 1440 byte
Diperkirakan dalam 1Bulan terjadi penambahan ± 25 Email pelanggan baru Dalam 1tahun pertumbuhan tabel ini adalah 12 * 25 * 36 = 10800 byte
257
5. JenisPelanggan Tabel 4.22 Atribut
Tabel Jenis Pelanggan Tipe Data
Ukuran (byte)
kdJenisPelanggan
Char (5)
5
namaJenisPelanggan
Varchar (50)
10
JUM LAH
15
Kapasitas dari tabel JenisPelanggan adalah 15 byte Data Awal sebelum operasional 10 Jenis Pelanggan,sehingga 15 * 10 = 150 byte Diperkirakan dalam 1Bulan terjadi penambahan ± 6 Jenis Pelanggan baru Dalam 1tahun pertumbuhan tabel ini adalah 12 * 10 * 6 = 720 byte 6. Supplier Tabel 4.23 Atribut
Tabel S upplier Tipe Data
Ukuran (byte)
kdSupplier
Char (5)
5
namaSupplier
Varchar (50)
30
alamatSupplier
Varchar (50)
50
JUM LAH
85
Kapasitas dari tabel Supplier adalah 85 byte Data Awal sebelum operasional 1 Supplier ,sehingga 1 * 85 = 85 byte Diperkirakan dalam 1Bulan terjadi penambahan ± 0 Supplier Dalam 1tahun pertumbuhan tabel ini adalah 12 * 0 * 85 = 0 byte
258
7. telpSupplier Tabel 4.24
Tabel Telepon S upplier
Atribut
Tipe Data
Ukuran (byte)
telpSupplier
Varchar (50)
15
kdSupplier
Char (5)
5
JUM LAH
20
Kapasitas dari tabel telpSupplier adalah 20 byte Data Awal sebelum operasional 2 Telepon Supplier ,sehingga 2 * 30 = 60 byte Diperkirakan dalam 1Bulan terjadi penambahan ± 0 Telepon Supplier Dalam 1tahun pertumbuhan tabel ini adalah 12 * 0 * 20 = 0 byte
8. faxSupplier Tabel 4.25 Atribut
Tabel Fax S upplier Tipe Data
Ukuran (byte)
faxSupplier
Varchar (50)
15
kdSupplier
Char (5)
5
JUM LAH
20
Kapasitas dari tabel faxSupplier adalah 20 byte Data Awal sebelum operasional 2 Fax Supplier ,sehingga 20 * 2 = 40 byte Diperkirakan dalam 1Bulan terjadi penambahan ± 0 Fax Supplier Dalam 1tahun pertumbuhan tabel ini adalah 12 * 0 * 20 = 0 byte
259
9. emailSupplier Tabel 4.26 Atribut
Tabel Email Supplier Tipe Data
Ukuran (byte)
emailSupplier
Varchar (50)
30
kdSupplier
Char (5)
5
JUM LAH
35
Kapasitas dari tabel emailSupplier adalah 35 byte Data Awal sebelum operasional 2 Email Supplier, sehingga 35 * 2 =70 byte Diperkirakan dalam 1Bulan terjadi penambahan ± 0 Email Supplier Dalam 1tahun pertumbuhan tabel ini adalah 12 * 0 * 35 = 0 byte
10. Karyawan Tabel 4.27 Atribut
Tabel Karyawan Tipe Data
Ukuran (byte)
NIK
Char (6)
6
namaKaryawan
Varchar (50)
30
Jabatan
Varchar (50)
15
alamatKaryawan
Varchar (50)
50
JUM LAH
101
Kapasitas dari tabel Karyawan adalah 101 byte Data Awal sebelum operasional 5 karyawan , sehingga 5 * 101 = 505 byte
260
Diperkirakan dalam 1Bulan terjadi penambahan ± 2 karyawan baru Dalam 1tahun pertumbuhan tabel ini adalah 12 * 2 * 101 = 2424 byte
11. telpKaryawan Tabel 4.28
Tabel Telepon Karyawan
Atribut
Tipe Data
Ukuran (byte)
NIK
Char (6)
6
telpKaryawan
Varchar (50)
15
JUM LAH
21
Kapasitas dari tabel telpKaryawan adalah 21 byte Data Awal sebelum operasional 10 Telepon Karyawan, sehingga 10 * 21 = 210 byte Diperkirakan dalam 1Bulan terjadi penambahan ± 2 Telepon Karyawan baru Dalam 1tahun pertumbuhan tabel ini adalah 12 * 2 * 21 = 504 byte
12. emailKaryawan Tabel 4.29 Atribut
Tabel Email Karyawan Tipe Data
Ukuran (byte)
NIK
Char (6)
6
emailKaryawan
Varchar (50)
30
JUM LAH
36
Kapasitas dari tabel emailKaryawan adalah 36 byte
261
Data Awal sebelum operasional 2 Email Karyawan, sehingga 36 * 2 = 72 byte Diperkirakan dalam 1Bulan terjadi penambahan ± 2 Email Karyawan Dalam 1tahun pertumbuhan tabel ini adalah 12 * 2 * 36 = 864 byte
13. Produk Tabel 4.30 Atribut
Tabel Produk Tipe Data
Ukuran (byte)
kdProduk
Char (5)
5
namaProduk
Varchar (50)
30
SpesifikasiProduk
Varchar (1000)
1000
Stok
int
4
Harga
Decimal (10,2)
12
JUM LAH
1051
Kapasitas dari tabel Produk adalah 1051 byte Data Awal sebelum operasional 100 Produk , sehingga 1051 * 100 =105100 byte Diperkirakan dalam 1Bulan terjadi penambahan ± 30 Produk Dalam 1tahun pertumbuhan tabel ini adalah 12 * 30 * 1051 = 378360 byte
262
14. Utang Tabel 4.31 Atribut
Tabel Utang Tipe Data
Ukuran (byte)
kdUtang
Char (5)
5
IdPembayaranPembelian
Char (6)
6
tglJatuhTempo
Datetime
8
jumlahUtang
Decimal (10,2)
12
JUM LAH
31
Kapasitas dari tabel Utang adalah 31 byte Data Awal sebelum operasional 10 utang, sehingga 31 * 10 =310 byte Diperkirakan dalam 1Bulan terjadi penambahan ± 5 Utang baru Dalam 1tahun pertumbuhan tabel ini adalah 12 * 5 * 31 = 1860 byte
15. Piutang Tabel 4.32 Atribut
Tabel Piutang Tipe Data
Ukuran (byte)
kdPiutang
Char (5)
5
IdPembayaranPenjualan
Char (6)
6
tglJatuhTempo
Datetime
8
jumlahPiutang
Decimal (10,2)
12
JUM LAH
31
Kapasitas dari tabel Piutang adalah 31 byte Data Awal sebelum operasional 20 Piutang , sehingga 31 * 20 = 620
263
byte Diperkirakan dalam 1Bulan terjadi penambahan ±5 Piutang baru Dalam 1tahun pertumbuhan tabel ini adalah 12 *5 * 31= 1860 byte
16. HeaderPenawaran Tabel 4.33 Atribut
Tabel Header Penawaran Tipe Data
Ukuran (byte)
IdPenawaran
Char (6)
6
noPenawaran
Varchar (50)
15
kdPelanggan
Char (6)
6
NIK
Char (6)
6
Diskon
Decimal (10,2)
12
JUM LAH
45
Kapasitas dari tabel HeaderPenawaran adalah 45 byte Data Awal sebelum operasional 50 penawaran , sehingga 45 * 50 =2250 byte Diperkirakan dalam 1Bulan terjadi penambahan ± 30 transaksi penawaran Dalam 1tahun pertumbuhan tabel ini adalah 12 * 30 * 45 = 16200 byte
264
17. DetailPenawaran Tabel 4.34
Tabel Detail Penawaran
Atribut
Tipe Data
Ukuran (byte)
IdPenawaran
Char (6)
6
kdProduk
Char (5)
5
Qty
Int
4
JUM LAH
15
Kapasitas dari tabel Detail Penawaran adalah 15 byte Data Awal sebelum operasional 10 penawaran , sehingga 15 * 10 =150 byte Diperkirakan dalam 1Bulan terjadi penambahan ± 9 Detail Transaksi penawaran Dalam 1tahun pertumbuhan tabel ini adalah 12 * 9 * 15 = 1620 byte
18. Persediaan Tabel 4.35 Atribut
Tabel Persediaan Tipe Data
Ukuran (byte)
kdPersediaan
Char (6)
6
kdProduk
Char (5)
5
tglProdukM asuk
Datetime
8
tglProdukKeluar
Datetime
8
stok
Int
4
JUM LAH
31
265
Kapasitas dari tabel Persediaan adalah 31 byte Data Awal sebelum operasional 10 Persediaan , sehingga 31 * 10 =310 byte Diperkirakan dalam 1Bulan terjadi penambahan ± 0 Persediaan baru Dalam 1tahun pertumbuhan tabel ini adalah 12 * 0 * 31 = 0 byte
19. Garansi Tabel 4.36 Atribut
Tabel Garansi Tipe Data
Ukuran (byte)
kdGaransi
Char (5)
5
kdProduk
Char (5)
5
kdPelanggan
Char (6)
6
noPenjualan
Varchar (50)
15
tglPenukaran
Datetime
8
tglService
Datetime
8
alasan
Varchar (100)
100
JUM LAH
147
Kapasitas dari tabel Garansi adalah 147 byte Data Awal sebelum operasional 20 Garansi , sehingga 20 * 147 = 2940 byte Diperkirakan dalam 1Bulan terjadi penambahan ± 5 Garansi baru Dalam 1tahun pertumbuhan tabel ini adalah 12 *5 * 147 = 8820 byte
266
20. Gudang Tabel 4.37 Atribut
Tabel Gudang Tipe Data
Ukuran (byte)
KdGudang
Char (5)
5
NamaGudang
Varchar (50)
30
AlamatGudang
Varchar (50)
50
NamaKaryGdg
Varchar (50)
30
JUM LAH
125
Kapasitas dari tabel Gudang adalah 125 byte Data Awal sebelum operasional 10 Gudang, sehingga 10 * 125 =250 byte Diperkirakan dalam 1Bulan terjadi penambahan ± 10 Gudang Dalam 1tahun pertumbuhan tabel ini adalah 12 *10 *125 = 15000 byte
21. TelpGudang Tabel 4.38 Atribut
Tabel Telepon Gudang Tipe Data
Ukuran (byte)
TelpGudang
Varchar (50)
15
KdGudang
Char (5)
5
JUM LAH
20
Kapasitas dari tabel TelpGudang adalah 20 byte Data Awal sebelum operasional 10 telepon Gudang, sehingga 10 *
267
20 =200 byte Diperkirakan dalam 1Bulan terjadi penambahan ±10 Telepon Gudang baru Dalam 1tahun pertumbuhan tabel ini adalah 12 * 10 * 20 = 2400 byte
22. FaxGudang Tabel 4.39 Atribut
Tabel Fax Gudang Tipe Data
Ukuran (byte)
FaxGudang
Varchar (50)
15
KdGudang
Char (5)
5
JUM LAH
20
Kapasitas dari tabel FaxGudang adalah 20 byte Data Awal sebelum operasional 15 Fax Gudang, sehingga 20 *15 =300 byte Diperkirakan dalam 1Bulan terjadi penambahan ± 15 Fax Gudang baru Dalam 1tahun pertumbuhan tabel ini adalah 12 *15 * 20 = 3600 byte
23. HeaderPemesanan Tabel 4.40 Atribut
Tabel Header Pemesanan Tipe Data
Ukuran (byte)
IdPemesanan
Char (7)
7
noPemesanan
Varchar (50)
15
268
Tglpemesanan
Datetime
8
Kdpelanggan
Char (6)
6
PPN
Decimal (10,2)
12
NIK
Char (6)
6
diskon
Decimal (10,2)
12
Kdtermpayment
Char (6)
6
kdtermdelivery
Char (6)
6
status
Varchar (50)
15
JUM LAH
93
Kapasitas dari tabel HeaderPemesanan adalah 93 byte Data Awal sebelum operasional 50 Transaksi Pemesanan, sehingga 93 * 50 = 4650 byte Diperkirakan dalam 1Bulan terjadi penambahan ± 35 Transaksi Pemesanan baru Dalam 1tahun pertumbuhan tabel ini adalah 12 *35 * 93 = 39060 byte
24. DetailPemesanan Tabel 4.41
Tabel Detail Pemesanan
Atribut
Tipe Data
Ukuran (byte)
IdPemesanan
Char (7)
7
Kdproduk
Char (5)
5
Qty
Int
4
JUM LAH
16
269
Kapasitas dari tabel DetailPemesanan adalah 16 byte Data Awal sebelum operasional 25 detail Transaksi Pemesanan, sehingga 16 * 25 = 400 byte Diperkirakan dalam 1Bulan terjadi penambahan ± 20 detail Transaksi Pemesanan baru Dalam 1tahun pertumbuhan tabel ini adalah 12 *20 * 16 = 3840 byte
25. HeaderPenjualan Tabel 4.42 Atribut
Tabel Header Penjualan Tipe Data
Ukuran (byte)
IdPenjualan
Char(7)
7
NIK
Char (6)
6
KdPelanggan
Char (6)
6
PPN
Decimal (10,2)
12
KdTermPayment
Char (6)
6
NoPenjualan
Varchar (50)
15
NoPemesanan
Varchar (50)
15
Tglpenjualan
Datetime
8
JUM LAH
75
Kapasitas dari tabel HeaderPenjualan adalah 75 byte Data Awal sebelum operasional 50 Transaksi Penjualan, sehingga 75* 50 = 3750 byte Diperkirakan dalam 1Bulan terjadi penambahan ± 20 Transaksi
270
Penjualan baru Dalam 1tahun pertumbuhan tabel ini adalah 12 *20 * 75= 18000 byte
26. DetailPenjualan Tabel 4.43
Tabel Detail Penjualan
Atribut
Tipe Data
Ukuran (byte)
IdPenjualan
Char(7)
7
Kdproduk
Char (5)
5
Qty
Int
4
JUM LAH
16
Kapasitas dari tabel DetailPenjualan adalah 16 byte Data Awal sebelum operasional 30 detail Transaksi Penjualan, sehingga 16 *30 = 480 byte Diperkirakan dalam 1Bulan terjadi penambahan ± 20 detail Transaksi Penjualan baru Dalam 1tahun pertumbuhan tabel ini adalah 12 *20 * 16 = 3840 byte
27. HeaderPembayaranPenjualan Tabel 4.44 Atribut
Tabel Header Pembayaran Penjualan Tipe Data
Ukuran (byte)
IdPembayaranPenjualan
Char (6)
6
IdPemesanan
Char (7)
7
KdPelanggan
Char (6)
6
271
NIK
Char (6)
6
NoPembayaranPenjualan
Varchar (50)
15
tglPembayaranPenjualan
Datetime
8
JUM LAH
48
Kapasitas dari tabel HeaderPembayaranPenjualan adalah 48 byte Data Awal sebelum operasional 20 Transaksi PembayaranPenjualan, sehingga 48 * 20 = 960 byte Diperkirakan dalam 1Bulan terjadi penambahan ± 20 Transaksi PembayaranPenjualan baru Dalam 1tahun pertumbuhan tabel ini adalah 12 *20 * 48 = 11520 byte
28. DetailPembayaranPenjualan Tabel 4.45
Tabel Detail Pembayaran Penjualan
Atribut
Tipe Data
Ukuran (byte)
IdPembayaranPenjualan
Char (6)
6
Kdproduk
Char (5)
5
Qty
Int
4
JUM LAH
15
Kapasitas dari tabel DetailPembayaranPenjualan adalah 15 byte Data
Awal
sebelum
operasional
35
detail
Transaksi
PembayaranPenjualan, sehingga 15 * 35 = 525 byte Diperkirakan dalam 1Bulan terjadi penambahan ± 20 detail Transaksi
272
PembayaranPenjualan baru Dalam 1tahun pertumbuhan tabel ini adalah 12 *20 * 15 = 3600 byte
29. HeaderPembelian Tabel 4.46 Atribut
Tabel Header Pembelian Tipe Data
Ukuran (byte)
Idpembelian
Char (7)
7
NIK
Char (6)
6
Kdsupplier
Char (5)
5
NoPOSupplier
Varchar (50)
15
KdGudang
Char (5)
5
NoPembelian
Varchar (50)
15
tglPembelian
Datetime
8
PreviousPayment
Decimal (10,2)
12
PaymentDetail
Varchar (50)
10
JUM LAH
83
Kapasitas dari tabel HeaderPembelian adalah 83 byte Data Awal sebelum operasional 35 detail Transaksi Pembelian, sehingga 83 * 35 = 2905 byte Diperkirakan dalam 1Bulan terjadi penambahan ± 10 detail Transaksi Pembelian baru Dalam 1tahun pertumbuhan tabel ini adalah 12 *10 * 83 = 9960 byte
273
30. DetailPembelian Tabel 4.47
Tabel Detail Pembelian
Atribut
Tipe Data
Ukuran (byte)
Idpembelian
Char (7)
7
KdProduk
Char (5)
5
Qty
Int
4
JUM LAH
16
Kapasitas dari tabel DetailPembelian adalah 16 byte Data Awal sebelum operasional 35 detail Transaksi Pembelian, sehingga 16 * 35 = 560 byte Diperkirakan dalam 1Bulan terjadi penambahan ± 10 detail Transaksi Pembelian baru Dalam 1tahun pertumbuhan tabel ini adalah 12 *10 * 15 = 1800 byte
31. HeaderPembayaranPembelian Tabel 4.48
Tabel Header Pembayaran Pembelian
Atribut
Tipe Data
Ukuran (byte)
IdPembayaranPembelian
Char (6)
6
NIK
Char (6)
6
Kdsupplier
Char (5)
5
NoPemesanan
Varchar (50)
15
KdGudang
Char (5)
5
NoPembayaranPembelian
Varchar (50)
15
274
tglPembayaranPembelian
Datetime
8
DP
Decimal (10,2)
12
JUM LAH
72
Kapasitas dari tabel HeaderPembayaranPembelian adalah 72 byte Data
Awal
sebelum
operasional
25
detail
Transaksi
PembayaranPembelian, sehingga 72 * 25 = 1800 byte Diperkirakan dalam 1Bulan terjadi penambahan ± 5 detail Transaksi PembayaranPembelian baru Dalam 1tahun pertumbuhan tabel ini adalah 12 *5* 72 = 4320 byte
32. DetailPembayaranPembelian Tabel 4.49
Tabel Detail Pembayaran Pembelian
Atribut
Tipe Data
Ukuran (byte)
IdPembayaranPembelian
Char (6)
6
KdProduk
Char (5)
5
Qty
Int
4
JUM LAH
15
Kapasitas dari tabel DetailPembayaranPembelian adalah 15 byte Data
Awal
sebelum
operasional
25
detail
Transaksi
PembayaranPembelian, sehingga 15 * 25 = 375 byte Diperkirakan dalam 1Bulan terjadi penambahan ± 5 detail Transaksi PembayaranPembelian baru Dalam 1tahun pertumbuhan tabel ini adalah 12 *5 * 15 = 900 byte
275
33. TermOfDelivery Tabel 4.50 Atribut
Tabel Term Of Delivery Tipe Data
Ukuran (byte)
kdTermDelivery
Char (6)
6
TermOfDelivery
Datetime
8
JUM LAH
14
Kapasitas dari tabel TermOfDelivery adalah 14 byte Data Awal sebelum operasional 35 detail Transaksi TermOfDelivery, sehingga 14 * 35 = 490 byte Diperkirakan dalam 1Bulan terjadi penambahan ± 20 detail Transaksi TermOfDelivery baru Dalam 1tahun pertumbuhan tabel ini adalah 12 *20 * 14 = 3360 byte
34. TermOfPayment Tabel 4.51
Atribut
Tabel Term Of Payment
Tipe Data
Ukuran (byte)
KdTermPayment
Char (6)
6
TermOfPayment
Datetime
8
JUM LAH
14
Kapasitas dari tabel TermOfPayment adalah 14 byte Data Awal sebelum operasional 35 detail Transaksi TermOfPayment,
276
sehingga 14 * 35 = 490 byte Diperkirakan dalam 1Bulan terjadi penambahan ± 20 detail Transaksi TermOfPayment baru Dalam 1tahun pertumbuhan tabel ini adalah 12 *20 * 14 = 3360 byte
35. HeaderDeliveryOrder Tabel 4.52 Atribut
Tabel Header Delivery Order Tipe Data
Ukuran (byte)
IdDelivery
Char (5)
5
NoPemesanan
Char (7)
7
noSPB
Varchar (50)
15
tglKirim
Datetime
8
NIK
Char (6)
6
KdPelanggan
Char (6)
6
JUM LAH
47
Kapasitas dari tabel HeaderDeliveryOrder adalah 47 byte Data Awal sebelum operasional 35 detail Transaksi DeliveryOrder, sehingga 47 * 35 = 1645 byte Diperkirakan dalam 1Bulan terjadi penambahan ± 5 detail Transaksi DeliveryOrder baru Dalam 1tahun pertumbuhan tabel ini adalah 12 *5 * 47 = 2820 byte
277
36. DetailDeliveryOrder Tabel 4.53
Tabel Detail Delivery Order
Atribut
Tipe Data
Ukuran (byte)
IdDelivery
Char (5)
5
KdProduk
Char (5)
5
Qty
Int
4
JUM LAH
14
Kapasitas dari tabel DetailDeliveryOrder adalah 14 byte Data Awal sebelum operasional 35 detail Transaksi DeliveryOrder, sehingga 14 * 35 = 490 byte Diperkirakan dalam 1Bulan terjadi penambahan ± 5 detail Transaksi DeliveryOrder baru Dalam 1tahun pertumbuhan tabel ini adalah 12 *5 * 14 = 840 byte
37. User Tabel 4.54 Atribut
Tabel User
Tipe Data
Ukuran (byte)
KdUser
Char (7)
7
NIK
Char (6)
6
username
Varchar(50)
20
password
Varchar(50)
20
userType
Varchar(50)
10
JUM LAH
63
278
Kapasitas dari tabel User adalah 63 byte Data Awal sebelum operasional 2 detail Transaksi User, sehingga 63 * 2 = 126 byte Diperkirakan dalam 1Bulan terjadi penambahan ± 0 detail Transaksi User baru Dalam 1tahun pertumbuhan tabel ini adalah 12 *0 * 126 = 0 byte
Berikut ini adalah tabel total estimasi kapasitas penyimpanan yang dibutuhkan dari penggabungan seluruh tabel entitas di atas: Tabel 4.55 Nama Tabel
Tabel Total Estimasi Kapasitas Penyimpanan Kapasitas Awal Sebelum
Pertumbuhan Kapasitas
Operasional (byte)
Dalam 1 Tahun (byte)
Pelanggan
2220
6660
telpPelanggan
840
3780
faxPelanggan
630
3780
emailPelanggan
1260
10800
JenisPelanggan
150
8640
Supplier
347
689
telpSupplier
60
0
faxSupplier
40
0
emailSupplier
70
0
Karyawan
505
2424
telpKaryawan
210
504
279
emailKaryawan
72
864
Produk
105100
378360
Utang
500
14769
Piutang
620
10860
HeaderPenawaran
2250
16200
DetailPenawaran
150
900
Persediaan
310
0
Garansi
2940
8820
Gudang
690
15000
TelpGudang
200
2400
FaxGudang
300
3600
HeaderPemesanan
4650
39060
DetailPemesanan
400
3840
HeaderPenjualan
3750
18000
DetailPenjualan
480
3840
HeaderPembayaranPen
960
11250
DetailPembayaranPenju 525
10000
jualan
alan HeaderPembelian
5673
13548
DetailPembelian
1560
21800
HeaderPembayaranPem
6705
12546
belian
280
DetailPembayaranPem
375
907
TermOfDelivery
490
3360
TermOfPayment
1490
3360
HeaderDeliveryOrder
1645
18650
DetailDeliveryOrder
16789
25890
User
126
0
TOTAL
568270 = 554.952 Kbyte
4450689
belian
=
4346.376
Kbyte Kapasitas untuk 1 tahun 4346.376 Kbyte Kapasitas untuk 5 tahun 21731.880Kbyte
Langkah 6
Merancang User Views
4.1.3.7 Merancang User Views 1. View Pelanggan CREATE VIEW viewPelanggan AS
SELECT
AlamatPelanggan,
p.KdPelanggan, NPWP,
jp.JenisPelanggan, tp.TelpPelanggan,
NamaPelanggan, ep.EmailPelanggan,
fp.FaxPelanggan FROM Pelanggan JOIN TelpPelanggan tp ON p.KdPelanggan = tp.KdPelanggan JOIN EmailPelanggan ep ON p.KdPelanggan = ep.KdPelanggan JOIN FaxPelanggan fp ON p.KdPelanggan = fp.KdPelanggan JOIN JenisPelanggan jp ON p.KdPelanggan = jp.KdPelanggan
281
WHERE JenisPelanggan = ”customer” 2. View Karyawan CREATE VIEW viewStaff AS
SELECT
k.NIK,
NamaKaryawan,
Jabatan,
AlamatKaryawan,
tk.TelpKaryawan, ek.EmailKaryawan FROM Karyawan k JOIN TelpKaryawan tk ON k.NIK = tk.NIK JOIN EmailKaryawan ek ON k.NIK = ek.NIK 3. View Persediaan CREATE VIEW viewStock AS
SELECT
ps.KdPersedian,
np.NamaProduk,
TglProdukM asuk,
TglProdukKeluar, Qty FROM Persedian ps JOIN Produk np ON p.KdProduk = np.KdProduk 4. View Utang CREATE VIEW viewUtang AS SELECT u.KdUtang, ns.NamaSupplier, tglJatuhTempo, jumlahUtang FROM Utang u, PembayaranPembelian dp, supplier ns WHERE u.IdPembayaranPembelian = dp.IdPembayaranPembelian AND dp. KdSupplier = ns.KdSupplier 5. View Piutang CREATE VIEW viewPiutang AS SELECT p.KdPiutang, np.NamaPelanggan, t glJatuhTempo, JumlahPiutang FROM Piutang p, HeaderPembayaranPenjualan pb, Pelanggan np WHERE pb. IdPembayaranPenjualan = p.KdPiutang
282
AND up.KdPelanggan = pb.KdPelanggan 6. View Pemesanan CREATE VIEW viewPemesananPelanggan AS
SELECT
a.noPemesanan,
c.NamaProduk,
diskon,
t glPemesanan,
d.TermOfDelivery,
b.NamaPelanggan, e.TermOfPayment,
f.idPemesanan, status FROM HeaderPemesanan a, Pelanggan b, Produk c, TermOfDelivery d, TermOfPayment e, DetailPemesanan f WHERE a.kdPelanggan = b.kdPelanggan AND a.kdTermOfDelivery = d. kdTermOfDelivery AND a.kdTermPayment = e.kdTermPayment AND f.kdProduk = c.kdProduk 7. View Invoice CREATE VIEW viewInvoice AS
SELECT
a.NamaPelanggan,
b.NamaProduk,
c.TermOfpayment,
NoPenjualan, po.NoPemesanan, TglPenjualan, d.idPembelian FROM Pelanggan a, Produk, TermOfPayment c, HeaderPembelian po, DetailPembelian d WHERE a.kdPelanggan = po.kdPelanggan AND c.kdTermpayment = po. kdTermpayment AND b.kdProduk = d.kdProduk 8. View Penawaran CREATE VIEW viewPenawaran AS
SELECT
a.IdPenawaran,
b.noPenawaran,
c.NamaPelanggan,
283
d.NamaProduk, Diskon FROM HeaderPenawaran b, DetailPenawaran a, Pelanggan c, Produk d WHERE c.KdPelanggan = b.KdPelanggan AND d.KdProduk = a.KdProduk Langkah 7
Merancang Mekanisme Keamanan
4.1.3.8 Merancang Mekanisme Keamanan Dalam sebuah sistem basisdata, keamanan adalah elemen yang sangat penting, mengingat isi dari basisdata berupa informasi yang sangat penting. Adapun mekanisme keamanan yang dirancang untuk basisdata adalah sebagai berikut: 1. Keamanan sistem Kemanan sistem dilakukan dengan menggunakan authentikasi user dengan
membuat
halaman
login
yang
mengharuskan
user
memasukkan username dan password untuk mengakses sistem aplikasi serta menetapkan modul – modul tertentu yang bisa diakses berdasarkan jenis user-nya. 2. Keamanan data Keamanan data ini diterapkan dengan membatasi hak akses user terhadap tabel atau relasi yang ada.
284
Tabel 4.56 User Nama Tabel
Admin R I
Tabel Mekanisme Keamanan Accounting
U D R I
U
D
Marketing R
I
U
Direktur D R I
Pelanggan
X X
X
X
telpPelanggan
X X X
X
X
faxPelanggan
X X X
X
X
emailPelanggan
X X X
X
X
JenisPelanggan
X X X
X
X
Supplier
X X
X
telpSupplier
X X X
X
faxSupplier
X X X
X
emailSupplier
X X X
X
Karyawan
X X X X X
X
X
telpKaryawan
X X X X X
X
X
emailKaryawan
X X X X X
X
X
Produk
X X X
X
X
Utang
X X X
X
X X X
X
Piutang
X
HeaderPenawaran
X X X
X
X
DetailPenawaran
X X X
X
X
Persediaan
X X X
X
X
Garansi
X X X
X
Gudang
X X
X
U D
285
User Nama Tabel
Admin R I
Accounting
U D R I
U
D
Marketing R
I
U
Direktur D R I
TelpGudang
X X X
X
FaxGudang
X X X
X
HeaderPemesanan
X X X
X
DetailPemesanan
X X X
X
HeaderPenjualan
X
X X X
X
DetailPenjualan
X
X X X
X
HeaderPembayaran
X
X X X
X
X
X X X
X
HeaderPembelian
X X X
X
DetailPembelian
X X X
X
HeaderPembayaran
X X X
X
X X X
X
Penjualan DetailPembayaran Penjualan
Pembelian DetailPembayaran Pembelian TermOfDelivery
X
X
X
TermOfPayment
X
X
X
HeaderDeliveryOrder
X X X
X
DetailDeliveryOrder
X X X
X
User
X X X X
X
U D
286
Keterangan R = Read, I = Insert, U = Update, D = Delete Berikut ini adalah pembuatan hak akses: GRANT SELECT, INSERT ON Pelanggan TO Admin; GRANT SELECT, INSERT, UPDATE ON telpPelanggan TO Admin; GRANT SELECT, INSERT, UPDATE ON faxPelanggan TO Admin; GRANT SELECT, INSERT, UPDATE ON emailPelanggan TO Admin; GRANT SELECT, INSERT, UPDATE ON JenisPelanggan TO Admin; GRANT ALL ON Karyawan TO Admin; GRANT ALL ON telpKaryawan TO Admin; GRANT ALL ON emailKaryawan TO Admin; GRANT SELECT, INSERT, UPDATE ON Produk TO Admin; GRANT SELECT ON Piutang TO Admin; GRANT SELECT, INSERT, UPDATE ON HeaderPenawaran TO Admin; GRANT SELECT, INSERT, UPDATE ON DetailPenawaran TO Admin; GRANT SELECT, INSERT, UPDATE ON Persediaan TO Admin; GRANT SELECT, INSERT, UPDATE ON Garansi TO Admin; GRANT SELECT, INSERT ON Gudang TO Admin; GRANT SELECT, INSERT, UPDATE ON TelpGudang TO Admin; GRANT SELECT, INSERT, UPDATE ON FaxGudang TO Admin; GRANT SELECT, INSERT, UPDATE ON HeaderPemesanan TO Admin; GRANT SELECT, INSERT, UPDATE ON DetailPemesanan TO Admin; GRANT SELECT ON HeaderPenjualan TO Admin; GRANT SELECT ON DetailPenjualan TO Admin;
287
GRANT SELECT ON HeaderPembayaranPenjualan TO Admin; GRANT SELECT ON DetailPembayaranPenjualan TO Admin; GRANT SELECT ON TermOfDelivery TO Admin; GRANT SELECT ON TermOfPayment TO Admin; GRANT SELECT, INSERT, UPDATE ON HeaderDeliveryOrder TO Admin; GRANT SELECT, INSERT, UPDATE ON DetailDeliveryOrder TO Admin; GRANT ALL ON User TO Admin; GRANT SELECT ON Karyawan TO Accounting; GRANT SELECT ON telpKaryawan TO Accounting; GRANT SELECT ON emailKaryawan TO Accounting; GRANT SELECT, INSERT, UPDATE ON Utang TO Accounting; GRANT SELECT, INSERT, UPDATE ON Piutang TO Accounting; GRANT SELECT, INSERT, UPDATE ON HeaderPenjualan TO Accounting; GRANT SELECT, INSERT, UPDATE ON DetailPenjualan TO Accounting; GRANT SELECT, INSERT, UPDATE ON HeaderPembayaranPenjualan TO Accounting; GRANT SELECT, INSERT, UPDATE ON DetailPembayaranPenjualan TO Accounting; GRANT SELECT, INSERT, UPDATE ON HeaderPembelian TO Accounting; GRANT SELECT, INSERT, UPDATE ON DetailPembelian TO Accounting; GRANT SELECT, INSERT, UPDATE ON HeaderPembayaranPembelian TO Accounting; GRANT SELECT, INSERT, UPDATE ON DetailPembayaranPembelian TO Accounting;
288
GRANT SELECT ON Pelanggan TO M arketing; GRANT SELECT ON telpPelanggan TO M arketing; GRANT SELECT ON faxPelanggan TO M arketing; GRANT SELECT ON emailPelanggan TO M arketing; GRANT SELECT ON JenisPelanggan TO M arketing; GRANT SELECT ON Karyawan TO M arketing; GRANT SELECT ON telpKaryawan TO M arketing; GRANT SELECT ON emailKaryawan TO M arketing; GRANT SELECT ON Produk TO M arketing; GRANT SELECT ON HeaderPenawaran TO M arketing; GRANT SELECT ON DetailPenawaran TO M arketing; GRANT SELECT ON Persediaan TO M arketing; GRANT SELECT ON TermOfDelivery TO M arketing; GRANT SELECT ON TermOfPayment TO M arketing; GRANT SELECT ON Pelanggan TO Direktur; GRANT SELECT ON telpPelanggan TO Direktur; GRANT SELECT ON faxPelanggan TO Direktur; GRANT SELECT ON emailPelanggan TO Direktur; GRANT SELECT ON JenisPelanggan TO Direktur; GRANT SELECT, INSERT ON Supplier TO Direktur; GRANT SELECT, INSERT, UPDATE ON telpSupplier TO Direktur; GRANT SELECT, INSERT, UPDATE ON faxSupplier TO Direktur; GRANT SELECT, INSERT, UPDATE ON emailSupplier TO Direktur; GRANT SELECT ON Karyawan TO Direktur;
289
GRANT SELECT ON telpKaryawan TO Direktur; GRANT SELECT ON emailKaryawan TO Direktur; GRANT SELECT ON Produk TO Direktur; GRANT SELECT ON Utang TO Direktur; GRANT SELECT ON Piutang TO Direktur; GRANT SELECT ON HeaderPenawaran TO Direktur; GRANT SELECT ON DetailPenawaran TO Direktur; GRANT SELECT ON Persediaan TO Direktur; GRANT SELECT ON Garansi TO Direktur; GRANT SELECT ON Gudang TO Direktur; GRANT SELECT ON TelpGudang TO Direktur; GRANT SELECT ON FaxGudang TO Direktur; GRANT SELECT ON HeaderPemesanan TO Direktur; GRANT SELECT ON DetailPemesanan TO Direktur; GRANT SELECT ON HeaderPenjualan TO Direktur; GRANT SELECT ON DetailPenjualan TO Direktur; GRANT SELECT ON HeaderPembayaranPenjualan TO Direktur; GRANT SELECT ON DetailPembayaranPenjualan TO Direktur; GRANT SELECT ON HeaderPembelian TO Direktur; GRANT SELECT ON DetailPembelian TO Direktur; GRANT SELECT ON HeaderPembayaranPembelian TO Direktur; GRANT SELECT ON DetailPembayaranPembelian TO Direktur; GRANT SELECT ON TermOfDelivery TO Direktur; GRANT SELECT ON TermOfPayment TO Direktur;
290
GRANT SELECT ON HeaderDeliveryOrder TO Direktur; GRANT SELECT ON DetailDeliveryOrder TO Direktur; GRANT SELECT ON User TO Direktur;
4.2
Perancangan Aplikasi Perancangan aplikasi merupakan perancangan antarmuka pengguna dengan
program aplikasi yang menggunakan dan memproses basisdata. Subbab ini berisi tentang perancangan pembuatan aplikasi desktop seperti: menentukan struktur menu, membuat rancangan aplikasi, membuat STD. 4.2.1
S truktur Menu Struktur menu merupakan sebuah susunan struktur yang menggambarkan
isi komponen navigasi suatu aplikasi dan hubungan antar layarnya. Berikut ini merupakan gambar rancangan struktur menu dari aplikasi yang dibuat.
291
Gambar 4.21 Rancangan S truktur menu program
292
4.2.2
Perancangan Input/Output Subab ini terdiri atas rancangan input dan rancangan output dari aplikasi yang
dibuat. Rancangan ini masih berupa draft garis besar tampilan yg akan dibuat. 4.2.2.1 Perancangan Input Perancangan input merupakan rancangan tampilan yang akan menjadi layar form untuk memasukkan data ke dalam database dari program.
Gambar 4.22 Halaman Login
Gambar 4.23 Halaman Home
293
Gambar 4.24 Halaman Create PO Client
Gambar 4.25 Halaman Create PO Supplier
294
Gambar 4.26 Halaman Create Product
Gambar 4.27 Halaman Create Purchase Payment
295
Gambar 4.28 Halaman Create Invoice
Gambar 4.29 Halaman Create Payment Of sales
296
Gambar 4.30 Halaman Create Delivery Order
Gambar 4.31 Halaman Create Quotation
297
Gambar 4.32 Halaman Add S taff
Gambar 4.33 Halaman Edit Garansi
298
Gambar 4.34 Halaman View Client Detail
Gambar 4.35 Halaman Log Out
299
4.2.2.2 Perancangan Output Perancangan output merupakan rancangan tampilan yang akan menjadi layar untuk menampilkan data view dari database dan juga rancangan untuk laporan yang akan dicetak dari program.
Gambar 4.36
Halaman View Report PO Client
Gambar 4.37 Report PO Client
300
Gambar 4.38 Halaman View Report PO Supplier
Gambar 4.39 Report PO S upplier
301
Gambar 4.40 Halaman View Report S tock
Gambar 4.41 Report S tock
302
Gambar 4.41 Report S tock
Gambar 4.43 Report Purchase Payment
303
Gambar 4.44 Halaman View Debt Credit
Gambar 4.45 Report Debt-Credit
304
Gambar 4.46 Halaman View Report Payment Of S ales
Gambar 4.47 Report Payment Of S ales
305
Gambar 4.48 Halaman View Delivery Order
Gambar 4.49 Report Delivery Order
306
Gambar 4.50 Halaman View Quotation
Gambar 4.51 Report Quotation
307
Gambar 4.52 Halaman View S taff
Gambar 4.53 Report Data S taff
308
Gambar 4.54 Halaman View Client
Gambar 4.55 Report Data Client
309
Gambar 4.56 Halaman View Branch
Gambar 4.57 ReportData Branch
310
Gambar 4.58 Halaman View Garansi
Gambar 4.59 Report Data Garansi
311
Gambar 4.60 Halaman View Product
Gambar 4.61 Halaman View Detail Product
312
Gambar 4.62 Report Data Product
4.2.3
State Transition Diagram State – Transition Diagram adalah alat yang digunakan untuk menggambarkan
urutan dan variasi layar yang dapat terjadi selama sesi pengguna (Whitten, 2004, p673). Berikut ini adalah gambar state transition diagram untuk aplikasi basis data yang dirancang:
Gambar 4.63 S TD menu login
313 Masukkan username dan password klik login
Layar Login
Login sebagai direktur
Direktur Masuk ke halaman home Klik view quotation Klik view report tampilakn menu view tampilakn menu quotation view report
View report
Home
Klik logout kembali ke Klik view data tampilakn menu view data halaman login
View quotation
View data
Tampilan list quotation
PO client supplier Delivery order Stock Purchase payment Payment of sales
Logout
staff
Tampilan list staff
Tampilan list PoC
client
Tampilan list client
Tampilan list PoS
guarantee
Tampilan Delivery order
Product
Tampilan list stock
Tampilan list guarantee Tampilan list Product
Klik view debt tampilkan layar list debt
Tampilan list Purchase payment
View debt
Tampilan list Payment of sales
View credit Klik view credit tampilkan layar list credit
Gambar 4.64 S TD direktur
314 Masukkan username dan password klik login
Layar Login Login sebagai Admin
Admin Masuk ke halaman home Klik view report tampilakn menu view report
Klik view quotation tampilakn menu view quotation
View report
Home
Klik logout kembali ke Klik view data tampilakn halaman login menu view data
View quotation
View data
Tampilan list quotation
PO
Logout
staff
Insert quotation
client
Tampilan list PoC
Tampilan list staff insert s taff
client
Tampilan list client insert client
Insert PoC supplier
Tampilan list PoS
guarantee
Insert PoS Delivery order
Stock
Insert guarantee
Tampilan Delivery order Insert Delivery order Tampilan list / insert stock
Tampilan list guarantee
Product
Tampilan list Product insert product
Purchase payment
Tampilan list / insert Purchase payment
View debt
Payment of sales
Tampilan list / insert Payment of sales
View credit
Gambar 4.65 S TD admin
315 Masukkan Layar Login username dan password, klik login Login sebagai akunting
Akunting Masuk ke halaman home
Klik view report tampilakn menu view report
View report
Klik view quotation tampilakn menu view quotation
Home
View quotation
Klik logout kembali ke Klik view data tampilakn menu view data halaman login
View data
Logout
Client Payment of sales
Purchase payment Tampilan data client
Insert Payment of sales Tampilan list Payment of sales
Insert Purchase payment Tampilkan list Purchase payment
View credit View debt Insert credit Insert debt
Gambar 4.66 S TD akunting
316 Masukkan Layar Login username dan password, klik login Login sebagai marketing
Marketing Masuk ke halaman home
Klik view quotation tampilakn menu view quotation
Home
View quotation
Klik logout kembali ke Klik view data tampilakn menu view data halaman login
View data
Staff
Tampilan list quotation
Tampilan data staff
Client
Tampilan data client
Logout
Product
Tampilan data product
Gambar 4.67 S TD marketing
4.3
Implementasi Subbab ini berisi tentang implementasi program mulai dari menentukan
sepsifikasi minimal hardware dan sofware, jadwal implementasi, petunjuk pemakaian program dan evaluasi sistem. 4.3.1
S pesifikasi Perangkat Keras Spesifikasi perangkat keras/hardware minimum yang diperlukan dalam
implementasi aplikasi basis data pada CV.M aplesonic adalah sebagai berikut:
317
Tabel 4.57 Tabel S pesifikasi Perangkat Keras Perangkat Keras
Server
Client
Processor
Pentium 4 2.9 GHz
Pentium 4 2.9 GHz
M ain M emory (RAM )
M inimum 512 M B
M inimum 512 M B
Hard Disk
M inimum 40 GB
M inimum 40 GB
VGA Card
64 M b
64 M b
M onitor
-
Standard 15”
DVD-ROM Drive
-
Speed minimum 4x
Keyboard
-
Standard
M ouse
-
Standard
Printer
-
Standard A4
4.3.2
S pesifikasi Peranti Lunak Spesifikasi peranti lunak/software yang digunakan untuk implementasi aplikasi
basis data pada CV.M aplesonic adalah: Tabel 4.58 Tabel S pesifikasi Peranti Lunak Peranti Lunak
Server
Client
Sistem Operasi
Windows XP SP 3
Windows XP SP 3
Aplikasi pendukung
M icrosoft Visual studio
M icrosoft Visual studio
2008
2008
M icrosoft framework 3.5
M icrosoft framework 3.5
318
4.3.3
DBM S
Sql Server 2005
Sql Server 2005
Anti Virus
Standard anti virus
Standard anti virus
Jadwal Implementasi Jadwal perencanaan implementasi yang akan dilakukan sebagai berikut: No
Kegiatan
M inggu 1
1.
Pengadaan hardware dan software
2.
Instalasi hardware dan software
3.
Instalasi aplikasi basis data
4.
Konversi data
5.
M elakukan pelatihan bagi pengguna
2
3
4
5
6
7
319
4.3.4
Petunjuk Pemakaian Sistem Petunjuk pemakaian sistem dilampirkan dan dijelaskan sebagai berikut:
1. Layar Login
Gambar 4.68 Halaman Login Halaman ini merupakan halaman awal dari aplikasi basisdata yang dirancang. Halaman awal ini berisi halaman login untuk mengakses username dan password yang telah terdata di database, sebelum memasuki halaman home. Jika username dan password yang diinput kosong ataupun tidak sesuai dengan database, maka akan muncul pesan error. Tapi jika benar dan sesuai database maka halaman selanjutnya akan muncul.
320
2. Layar Home
Gambar 4.69 Halaman Home Pada layar halaman home ini akan muncul logo dari CV. M aplesonic Indonesia, sederet menu seperti home, view report, view quotation, view data, dan logout, yang terdapat beberapa menu lagi dalam view report dan view data serta tampilan welcome untuk user yang login dan pemberitahuan bahwa user tersebut login sebagai apa, yang sesuai jabatannya dalam CV tersebut.
321
3. Layar M enu VIEW REPORT
Gambar 4.70Tampilan Isi dari Menu View Report Layar di atas menunjukkan bahwa pada menu view report, jika didipilih akan keluar pilihan menu seperti PO (Purchase Order) yang menghubungkan PO dari Client dan PO ke Supplier, delivery order, stock, purchase payment dan payment of sales.
322
4. Layar M enu VIEW DATA
Gambar 4.71 Tampilan Isi dari Menu View Data Layar di atas menunjukkan bahwa pada menu view data, jika didipilih akan keluar banyak pilihan menu seperti staff, client, guarantee dan product.
323
5. Layar M enu Add Staff
Gambar 4.72 Form Add S taff Pada Form ini Admin dapat menambahkan Data Staff yang ingin di tambahkan atau pun di edit sesuai dengan data yang dinginkan untuk diinput.dan juga dapat menghapus data –data ingin di hapus.
324
6. Layar Create PO Supplier
Gambar 4.73 Form Create POSupplier Sesuai dengan Proses transaksi yang terjadi pada CV maplesonic ini, maka tahap awal transaksi adalah dengan pembelian produk ke supplier. Halaman ini hanya bisa diakses oleh direktur yang secara langsung memesan barang kepada supplier. Setelah user mengisi setiap kolom sesuai dengan yang diminta maka ada beberapa pilihan tombol. Tombol ‘add’ berfungsi untuk meghitung jumlah harga yang harus dibayar ke supplier.
Jika user memilih
tombol ‘Insert’ maka semua data yang diisi pada halaman ini akan otomatis terdaftar di dalam Report POSupplier, kemudian setelah menginsert, jika user ingin melihat daftar report PO supplier maka user dapat memilih tombol ‘View PO Supplier List’ .
325
7. Layar View PurchasePayment
Gambar 4.74 Form View Purchase Payment Pada halaman ini user dapat melihat Pembayaran Pembelian yang terjadi di dalam kegiatan transaksi ke supplier dalam CV ini. User dapat mencari nama produk yang dibeli pada kolom ‘Search product’. Semua tombol yang ada pada halaman ini dapat diakses jika data telah dipilih terlebih dahulu. Kemudian jika user ingin melihat detail dari data yang dipilih maka user dapat memilih tombol ’View detail’ namun jika user hanya ingin meng-create saja maka user dapat memilih tombol’Create’ kemudian akan berganti halaman ke create Purchase Payment, jika user ingin meng-edit maka user dapat memilih tombol ‘Edit’, begitu pula dengan tombol ‘Delete’ dapat dipilih jika user ingin menghapus data yang dipilih.
326
8. Layar Create – Edit PurchasePayment
Gambar 4.75 Form Create-Edit PurchasePayment Halaman ini berfungsi untuk membuat Purchase Payment, jika terjadi transaksi Ke Supplier. Ketika semua kolom telah terisi dan user memilih Tombol ‘Insert’ maka semua data yang diisi akan otomatis bertambah pada Purchase Payment List dan tentunya mempengaruhi Jumlah Stock yang ada, sehingga Stock menjadi betambah 1. Sedangkan tombol ‘Add’ Berfungsi untuk menjumlahkan harga yang harus dibayar serta DP yang di bayar ke supplier oleh CV. Tombol ‘View Debt-Credit’ dapat dipilih user
ika user ingin melihat
jumlah Debt yang terjadi ketika melakukan transaksi tersebut. Sedangkan tombol’Back to view list’ dipilih untuk kembali ke halaman View Purchase Payment.
327
9. View Stock
Gambar 4.76 Form View S tock Pada halaman ini, user dapat mengetahui jumlah stock Produk yang ada di dalam CV. User juga dapat mencari data stock berdasarkan nama produk. Data stock akan otomatis bertambah jika terjadi transaksi purchase payment ke supplier.
328
10. View Report InvoiceSupplier
Gambar 4.77 Form View In voice Supplier Pada halaman ini, user dapat melihat Report Invoice supplier yang telah dibuat. Sehingga dapat mengetahui transaksi apa saja yang telah dilakukan. User dapat mencari Invoice sesuai dengan Id dan nama produk pada kolom ‘Search’. Semua tombol yang ada pada halaman ini dapat diakses jika data telah dipilih terlebih dahulu. Kemudian jika user ingin melihat detail dari data yang dipilih maka user dapat memilih tombol ’View detail’ namun jika user hanya ingin meng-create saja maka user dapat memilih tombol’Create’ kemudian akan berganti halaman ke create Invoice Supplier, jika user ingin meng-edit maka user dapat memilih tombol ‘Edit’, begitu pula dengan tombol ‘Delete’ dapat dipilih jika user ingin menghapus data yang dipilih.
329
11. Create Invoice Supplier
Gambar 4.78 Form Create Invoice – S upplier Halaman ini berfungsi untuk M embuat Invoice kepada Supplier. Invoice ini dibuat ketika CV telah melakukan pembayaran pertama terhadap produk yang dibeli dari supplier. Sehingga di dalam halaman ini, ada terdapat tombol ’View debt-credit’ dimana berfungsi untuk melihat apakah CV memiliki Utang atau tidak. Tombol ‘Insert’ M emasukkan dan menyimpan data ke dalam Invoice Suuplier, sedangkan tombol ‘Back to view Supplier list’ untuk kembali melihat List Invoice Supplier pada layar sebelumnya. Ketika semua data invoice supplier di simpan maka secara otomatis data produk di dalam bagian gudang akan bertambah juga.
330
12. View Quotation
Gambar 4.79 Form View Quotation Pada halaman ini user dapat melihat Transaksi Penawaran yang dilakukan. User dapat mencari data surat penawaran yang dinginkan berdasarkan Quot ID dan Confirmed by pada kolom’Search’. Semua tombol yang ada pada halaman ini dapat diakses jika data telah dipilih terlebih dahulu. Kemudian jika user ingin melihat detail dari data yang dipilih maka user dapat memilih tombol ’View detail’ namun jika user hanya ingin meng-create saja maka user dapat memilih tombol’Create’ kemudian akan berganti halaman ke create Quotation , jika user ingin meng-edit maka user dapat memilih tombol ‘Edit’, begitu pula dengan tombol ‘Delete’ dapat dipilih jika user ingin menghapus data yang dipilih.
331
13. Create - Edit Quotation
Gambar 4.80 Form Create – Edit Quotation Halaman ini berfungsi untuk membuat Surat Penawaran (Quotation), jika ingin membuat penawaran ke Pelanggan. Ketika semua kolom telah terisi dan user memilih Tombol ‘Insert’
maka semua data yang diisi akan otomatis
bertambah pada Quotation List dan tentunya mempengaruhi Jumlah Produk yang ada, sehingga Produk menjadi betambah 1. Sedangkan tombol ‘Total Price’ Berfungsi untuk menjumlahkan total harga. Tombol ‘Back View Quotation List’ dapat dipilih user
jika user ingin melihat jumlah Quotation list yang ada.
Sedangkan tombol ‘Reset’ dipilih untuk M e-reset kembali isi Quoatation yang dibuat.
332
14. View Product
Gambar 4.81 Form View Product Pada halaman ini user dapat melihat data produk yang ada di dalam persediaan CV. User dapat mencari data produk berdasarkan nama produk pada kolom ‘Search’. Semua tombol yang ada pada halaman ini dapat diakses jika data telah dipilih terlebih dahulu. Kemudian jika user ingin melihat detail dari data yang dipilih maka user dapat memilih tombol ’View detail’ namun jika user hanya ingin meng-create saja maka user dapat memilih tombol’Create’ kemudian akan berganti halaman ke create Stock , jika user ingin meng-edit maka user dapat memilih tombol ‘Edit’.
333
15. View Detail Product
Gambar 4.82 Form View Detail Product Pada halaman ini, User dapat melihat detail produk dari data yang telah dipilih pada View Product di atas. Tombol ‘Back to view Product List’ berfungsi untuk kembali ke halaman View Product list.
334
16. Create- Edit Stock
Gambar 4.83 Form Create –Edit S tock Pada halaman ini, user dapat menambah dan mengedit data stock. Jika user memilih Tombol ’Insert’ maka data stock secara otomatis dapat tersimpan. Jika user memilih tombol ’Back To View Product List’ maka akan kembali ke halaman View Product. Namun jika user memilih tombol ‘Reset’, maka semua yang ada pada kolom halaman ini yang telah terisi akan ter-reset kembali menjadi kolom yang tidak terisi.
335
17. View Report PO Client
Gambar 4.84 Form View Report POClient Pada halaman ini user dapat melihat Report Purchase Order Client yang ada pada transaksi CV ini. User dapat mencari data Purchase order yang ada berdasarkan PO ID dan Client name pada kolom ‘Search’. Semua tombol yang ada pada halaman ini dapat diakses jika data telah dipilih terlebih dahulu. Kemudian jika user ingin melihat detail dari data yang dipilih maka user dapat memilih tombol ’View detail’ namun jika user hanya ingin meng-create saja maka user dapat memilih tombol’Create’ kemudian akan berganti halaman ke Create POClient, jika user ingin meng-edit maka user dapat memilih tombol ‘Edit’. Begitu pula dengan tombol ’Delete’ dapat dipilih untuk menghapus data yang ingin di hapus. Sedangkan Tombol ‘PO branch’ dipilih jika user ingin melihat Data PO branch. Dan tombol ‘PO Customer ’ dapat dipilih jika user ingin melihat data PO client.
336
18. Create – Edit POClient
Gambar 4.85 Form Create-Edit POClient Pada halaman ini, user dapat mengedit dan menambah data PO client. Setiap permintaan PO client yang dituukan ke CV ini, akan di cantumkan status sesuai dengan stock produk yang ada. Jika Ready stock maka user dapat memilih status tersebut namun jika Stock produk tidak memadai maka user dapat memilih In- hold sebagai status dari PO client tersebut. Ketika semua kolom telah terisi dan user memilih Tombol ‘Insert’ maka semua data yang diisi akan otomatis bertambah pada PO Client List dan tentunya mempengaruhi Jumlah Client yang ada, sehingga Data Client menjadi betambah. Sedangkan tombol ‘Add’ Berfungsi untuk menjumlahkan harga yang harus dibayar Client ke CV. Sedangkan tombol ’Back to view list’ dipilih untuk kembali ke halaman View PO Client.
337
19. View Data Client
Gambar 4.86 Form View Data Client Pada halaman ini user dapat melihat Data Client yang ada .User dapat mencari data Client yang ada berdasarkan Client name pada kolom ‘Search’. Semua tombol yang ada pada halaman ini dapat diakses jika data telah dipilih terlebih dahulu. Kemudian jika user ingin melihat detail dari data yang dipilih maka user dapat memilih tombol ’View detail’ namun jika user hanya ingin meng-create saja maka user dapat memilih tombol’Create’ kemudian akan berganti halaman ke View Client Detail Client , jika user ingin meng-edit maka user dapat memilih tombol ‘Edit’. Begitu pula dengan tombol ’Delete’ dapat dipilih untuk menghapus data yang ingin di hapus.
338
20. View Client Detail
Gambar 4.87 Form View Client Detail Pada halaman ini user dapat meng-edit dan meng-create data Customer dan Branch. Sebelum meng-edit dan meng- Create user dapat memilih data branch atau data customer yang ingin di ubah atau di tambahkan. Tombol ‘Insert’ dapat dipilih jika user ingin meng-insert semua data yang telah diisi. Namun jika user ingin kembali ke halaman Client list, maka user dapat memilih tombol ‘Back to view client list’.
339
21. View PaymentOfSales
Gambar 4.88 Form View PaymentOfS ales Pada halaman ini user dapat melihat Pembayaran Penjualan yang terjadi di dalam kegiatan transaksi dari client ke CV ini. User dapat mencari nama produk dan nama client pada kolom ‘Search product’. Semua tombol yang ada pada halaman ini dapat diakses jika data telah dipilih terlebih dahulu. Kemudian jika user ingin melihat detail dari data yang dipilih maka user dapat memilih tombol ’View detail’ namun jika user hanya ingin meng-create saja maka user dapat memilih tombol ’Create’ kemudian akan berganti halaman ke create Payment Of Sales , jika user ingin meng-edit maka user dapat memilih tombol ‘Edit’, begitu pula dengan tombol ‘Delete’ dapat dipilih jika user ingin menghapus data yang dipilih.
340
22. Create – Edit PaymentOfSales
Gambar 4.89 Form Create-Edit PaymentOfS ales Halaman ini berfungsi untuk membuat Payment Of Sales , jika terjadi transaksi dari Client ke CV. Ketika semua kolom telah terisi dan user memilih Tombol ‘Insert’ maka semua data yang diisi akan otomatis bertambah pada Payment Of sales List. Sedangkan tombol ‘Add’ Berfungsi untuk menjumlahkan harga yang harus dibayar oleh Client. Tombol ‘View Debt-Credit’ dapat dipilih user
ika user ingin melihat jumlah Credit yang terjadi ketika melakukan
transaksi tersebut. Sedangkan tombol’Back to view list’ dipilih untuk kembali ke halaman View Payment Of Sales.
341
23. View Debt-Credit
Gambar 4.90 Form View Debt-Credit Pada halaman ini user dapat melihat Debt dan credit yang ada dalam transaksi CV ini. User dapat mencari data debt-credit berdasarkan Nama client. Jika limit date dan credit amount yang tertera ingin di edit maka user dapat memilih tombol ’Edit’. Jangka waktu pelunasan piutang adalah 30 hari dari limit date yang ditentukan. Jika user mendapati bahwa client tersebut telah melunasi maka data dari client tersebut akan ditandai dengan warna hijau setelah user memilih tombol’Check list berwarna hijau’.
342
24. View Delivery Order
Gambar 4.91 Form View Delivery Order Pada halaman ini user dapat melihat Pengiriman produk yang dilakukan. User dapat mencari data pengiriman berdasarkan nama client pada kolom ‘Search Client’. Semua tombol yang ada pada halaman ini dapat diakses jika data telah dipilih terlebih dahulu. Kemudian jika user ingin meng-create data baru maka user dapat memilih tombol ’Create’ kemudian akan berganti halaman ke create Delivery Order , dan jika user ingin meng-edit maka user dapat memilih tombol ‘Edit’, begitu pula dengan tombol ‘Delete’ dapat dipilih jika user ingin menghapus data yang dipilih.
343
25. Create Delivery Order
Gambar 4.92 Form Create Delivery Order Halaman ini digunakan untuk membuat surat pengiriman yang diberikan kepada client dan di buat ketika setiap transaksi penjualan sudah memenuhi syarat – syarat dan kesepakatan yang ditentukan. Tombol ‘Back to view delivery order’ berfungsi untuk kembali ke halaman view delivery order, sedangkan tombol ‘Insert’ berfungsi untuk memasukkan dan menyimpan data yang dibuat ke dalam deliveryOrder.ketika user meng-insert setiap data baru maka secara otomatis data stock akan ter-update jumlahnya menjadi berkurang.
344
26. View Report InvoiceClient
Gambar 4.93 Form View Report In voice Client Pada halaman ini, user dapat melihat Report Invoice Client yang telah dibuat. Sehingga dapat mengetahui transaksi apa saja yang telah dilakukan. User dapat mencari Invoice sesuai dengan Id, nama produk dan syarat pembayaran berdasarkan tanggal pembayaran pada kolom ‘Search’. Semua tombol yang ada pada halaman ini dapat diakses jika data telah dipilih terlebih dahulu. Kemudian jika user ingin melihat detail dari data yang dipilih maka user dapat memilih tombol ’View detail’ namun jika user hanya ingin meng-create saja maka user dapat memilih tombol ’Create’ kemudian akan berganti halaman ke create Invoice Client , jika user ingin meng-edit maka user dapat memilih tombol ‘Edit’, begitu pula dengan tombol ‘Delete’ dapat dipilih jika user ingin menghapus data yang dipilih.
345
27. Create Invoice Client
Gambar 4.94 Form Create Invoice-Client Halaman ini berfungsi untuk M embuat Invoice kepada client. Invoice ini dibuat ketika Client telah melakukan pembayaran setengah terhadap produk yang dibeli. Sehingga di dalam halaman ini, ada terdapat tombol ’View debt-credit’ dimana berfungsi untuk melihat apakah Client yang dimaksud memiliki piutang atau tidak. Tombol ‘Insert’ berfungsi untuk M emasukkan dan menyimpan data ke dalam Invoice client, sedangkan tombol ‘Back to view client list’ untuk kembali melihat List Invoice client pada layar sebelumnya. Ketika data Invoice client di tambah atau di-insert maka secara otomatis data garansi menjadi bertambah.
346
28. View Garansi
Gambar 4.95 Form View data Garansi Halaman ini berguna untuk menampilkan data produk , tgl, klien, dan alasan terhadap produk yang ingin di garansi. Tombol ‘search’ berguna untuk mencari berdasarkan nama klien dan nama produk. Ketika ingin mengedit data garansi yang ada maka pilihlah tombol ’ edit’ untuk mengedit data yang ada.
347
29. View Data Staff
Gambar 4.96 Form View Data S taff Pada halaman ini user dapat melihat Data Staff yang ada di dalam CV ini. User dapat mencari data Staff berdasarkan nama staff pada kolom ‘Search Staff ’. Semua tombol yang ada pada halaman ini dapat diakses jika data telah dipilih terlebih dahulu. Kemudian jika user ingin meng-create data baru maka user dapat memilih tombol ’Create’ kemudian akan berganti halaman ke Add Staff, dan jika user ingin meng-edit maka user dapat memilih tombol ‘Edit’, begitu pula dengan tombol ‘Delete’ dapat dipilih jika user ingin menghapus data yang dipilih.
348
30. Add Staff
Gambar 4.97 Form Add S taff Halaman ini digunakan untuk menambah data staff di dalam CV ini. Layar ini dapat di akses oleh Admin dan Direktur . Jika memilih tombol ‘Back to staff list’ , maka akan berganti halaman ke form data staff. Jika memilih tombol ‘insert’ maka semua data staff yang ditambahkan akan otomatis di masukkan ke dalam list data staff.
349
31. Log Out
Gambar 4.98 Form LogOut Jika User memilih M enu LogOut maka Halaman LogOut akan menampilkan pesan di dalam kotak yang menanyakan apakah user ingin melanjutkan aplikasi atau tidak. Jika user memilih tombol ‘Yes’ maka user akan kembali ke halaman login namun jika user memilih ‘No´ maka aplikasi akan otomatis tertutup.
350
4.3.5 Evaluasi Sistem Evaluasi aplikasi sistem basisdata pada CV.M aplesonic dilakukan dengan wawancara terhadap beberapa user yang ditunjuk untuk menguji pemakaian aplikasi tersebut. Pertanyaan yang digunakan dalam wawancara sebagai berikut: a. M engenai tampilan / desain aplikasi b. M engenai menu / fasilitas yang tersedia c. M engenai kemudahan pemakaian aplikasi d. M engenai kemudahan mencari data yang dibutuhkan e. M engenai performa aplikasi Berikut hasil wawancara dengan user yang menjadi penguji: 1. User pertama – M anaging Direktur a. Tampilan sudah cukup baik dan menarik b. M enu yang tersedia cukup lengkap dan sudah meliputi hampir semua proses bisnis yang penting c. Pemakaian aplikasi cukup sulit karena aplikasi lumayan kompleks, tapi dengan pemakaian berkala akan terbiasa nantinya. d. M encari data menjadi sangat mudah, karena adanya fasilitas pencarian data. e. Performa aplikasi baik. 2. User kedua – Admin a. Tampilan sudah cukup rapi b. M enu yang tersedia cukup c. Pemakaian aplikasi cukup membingungkan. d. Pencarian data sangat mudah. e. Performa aplikasi cukup baik.
351
3. User ketiga – Akunting a. Tampilan sudah baik dan rapi b. M enu yang tersedia cukup lengkap c. Pemakaian aplikasi cukup sulit karena untuk beberapa transaksi tidka ditampilkan di menu utama. d. M encari data menjadi sangat mudah, karena adanya fasilitas pencarian data. e. Performa aplikasi baik.
4. User keempat – M arketing a. Tampilan sudah cukup baik dan menarik b. M enu yang tersedia kurang lengkap c. Pemakaian aplikasi cukup sulit karena aplikasi lumayan kompleks, tapi dengan pemakaian berkala akan terbiasa nantinya. d. M encari data menjadi sangat mudah, karena adanya fasilitas pencarian data. e. Performa aplikasi sangat baik.