BAB 4 PERANCANGAN DAN IMPLEMENTASI
4.1
Perancangan Basisdata Pada tahap ini dilakukan perancangan proses perancangan basisdata yang dibagi
menjadi tiga tahapan yaitu perancangan konseptual, logikal dan fisikal. 4.1.1
Perancangan Basisdata Konseptual Perancangan konseptual menurut Connolly (2002, p419) adalah proses
pembuatan sebuah model dari suatu informasi yang digunakan dalam sebuah perusahaan yang bebas dari pertimbangan fisik. Pada tahap ini, terdiri dari beberapa langkah yaitu : 4.1.1.1 Identifikasi Tipe Entiti Tipe entiti adalah kumpulan objek-objek dengan properti yang sama, yang didefinisikan oleh perusahaan yang keberadaannya independen. Sebuah tipe entiti memiliki keberadaan yang bebas dan bisa menjadi objek dengan keberadaan fisik (nyata) atau menjadi objek dengan keberadaan konseptual (abstrak). No
Nama Entiti
Deskripsi
Alias
Kejadian
1.
Pemasok
Menggambarkan pemasok yang ada
Master Pemasok
Setiap Pemasok dapat memasok lebih dari satu jenis barang
2.
BahanBaku
Menggambarkan jenis dan stok bakan baku yang ada
Master Bahan Baku
Satu jenis bahan baku dapat disuplai oleh beberapa pemasok
83
84 3.
Karyawan
Menggambarkan Karyawan dan pemakai aplikasi yang ada
Master Karyawan
Setiap bagian mempunyai pemakai aplikasi dan hanya berada tepat pada bagiannya
4.
TrPemb
Menggambarkan transaksi pembelian barang yang terjadi
Transaksi Pembelian
Setiap transaksi pembelian dapat berisi lebih dari satu jenis barang dan hanya dari satu pemasok
5.
RtrPemb
Menggambarkan pengembalian barang ke pemasok atas pembelian
Retur Pembelian
Setiap retur pembelian barang kepada pemasok dapat berisi lebih dari satu jenis barang dan ditujukkan hanya kepada satu pemasok
6.
BkHutang
Menggambarkan transaksi hutang yang terjadi atas pembelian barang dari pemasok, pengeluaran kas, dan retur pembelian
Buku Hutang
Setiap transaksi hutang mencatat hutang dari transaksi pembelian, atau pengeluaran kas, atau retur pembelian
7
MintaBahanBa ku
Permintaan Bahan Baku
Setiap transaksi permintaan bahan baku dapat memiliki lebih dari satu jenis bahan baku
8
VoucherPengl uaranKas
Menggambarkan informasi tentang permintaan bahan baku dalam kaitannya dengan proses produksi Menggambarkan transaksi pengeluaran kas yang terjadi atas transaksi pembelian
Voucher Pengeluaran Kas
Setiap transaksi pengeluaran kas terdiri atas satu transaksi pembelian
9.
BuktiPenerima Menggambarkan anBrg transaksi penerimaan barang atas transaksi pembelian yang dilakukan
Bukti Penerimaan Barang
Setiap transaksi bukti penerimaan barang dapat memiliki lebih dari satu jenis bahan baku
85 10. BuktiPenerima Menggambarkan anRetur transaksi penerimaan retur barang atas transaksi retur pembelian yang dilakukan
Bukti Penerimaan Retur
Setiap transaksi bukti penerimaan retur dapat memiliki lebih dari satu jenis bahan baku
Tabel 4.1 Identifikasi Tipe Entiti
4.1.1.2 Identifikasi Tipe Relationship Tipe relationship adalah sejumlah hubungan antara satu atau banyak tipe entiti yang terlibat. Setiap tipe relationship diberi nama yang menggambarkan fungsinya. Sebuah relationship hanya dilabeli secara satu arah, yang berarti bahwa nama dari relationship hanya masuk akal untuk satu arah. Nama Entiti
Multiplicity
Relationship
Nama Entiti
Multiplicity
Karyawan
1..1
Membuat
TrPemb
0..*
Karyawan
1..1
Mengurus
RtrPemb
0..*
Karyawan
1..1
Mengurus
BkHutang
0..*
Karyawan
1..1
Mengurus
0..*
Karyawan
1..1
Membuat
VoucherPengluaran Kas MintaBahanBaku
Karyawan
1..1
Membuat
0..*
Karyawan
1..1
Membuat
Pemasok
1..1
Mempunyai
BuktiPenerimaanBr g BuktiPenerimaanRe tur TrPemb
Pemasok
1..1
Mempunyai
RtrPemb
0..*
BahanBaku
1..*
Tercantum dalam
MintaBahanBaku
1..*
0..*
0..* 1..*
86 BahanBaku
1..*
1..1
Tercantum dalam Tercantum dalam Tercantum dalam Tercantum dalam Mempunyai
TrPemb
0..*
BahanBaku
1..*
RtrPemb
0..*
BahanBaku
1..*
BuktiPenerimaanBr g BuktiPenerimaanRe tur RtrPemb
0..*
BahanBaku
1..*
TrPemb TrPemb
1..1
Mempengaruhi
BkHutang
1..1
TrPemb
1..1
Mempengaruhi
1..1
TrPemb
1..1
Mempunyai
RtrPemb
1..1
Mempengaruhi
VoucherPengluaran Kas BuktiPenerimaanBr g BkHutang
RtrPemb
1..1
Mempunyai
MintaBahanB aku BkHutang
1..1
Mempunyai
1..1
Mempengaruhi
BuktiPenerim aanBrg
1..1
BuktiPenerim aanRetur
1..1
BuktiPenerimaanRe tur TrPemb
0..* 0..1
1..1 0..1 1..1 1..*
Mempengaruhi
VoucherPengeluara nKas BkHutang
1..1
Mempengaruhi
BkHutang
1..1
Tabel 4.2 Identifikasi Tipe Relationship
1..1
87
Gambar 4.1 ERD Konseptual
4.1.1.3 Identifikasi Atribut dan Domain Atribut Atribut-atribut dari entiti yang telah diidentifikasi sebelumnya dapat dilihat pada tabel berikut : Entiti Karyawan
Atribut KaryawanID KdKaryawan
Deskripsi ID Karyawan Kode Karyawan
Tipe
Lengh t
Null s
Multi value
Bigint
8
N
N
Varchar
8
N
N
88 NmKaryawan JnsKelamin TglLahir AlmtKaryawan TelpKaryawan Jabatan TglMasuk TglKeluar
Pemasok
Password PemasokID KdPemasok NmPemasok NmKontak AlmtPemasok TelpPemasok Fax KotaPemasok KdPosPemasok
BahanBaku
BahanBakuID KdBahanBaku NmBahanBaku SatuanBrg HrgSatuan KdTrans MinStok KetBahanBaku
Nama Karyawan Jenis Kelamin Tanggal Lahir Alamat Karyawan Nomor Telepon Jabatan Tanggal Masuk Tanggal Keluar Password ID Pemasok Kode Pemasok Nama Pemasok Nama Kontak Alamat Pemasok Nomor Telepon Nomor Fax Kota Pemasok Kode Pos Pemasok ID Bahan Baku Kode Bahan Baku Nama Bahan Baku SatuanBrg Harga per Satuan Kode Transaksi Minimum Stok Keterangan
Varchar
50
N
N
Char
1
N
N
Datetime
8
N
N
Varchar
100
N
N
Varchar
15
N
Y
Varchar Datetime
30 8
N N
N N
Datetime
8
Y
N
Varchar Bigint Varchar
10 8 8
N N N
N N N
Varchar
50
N
N
Varchar
50
N
N
Varchar
100
N
N
Varchar
15
N
Y
Varchar Varchar
15 20
N N
N N
Varchar
7
N
N
Bigint
8
N
N
Varchar
8
N
N
Varchar
50
N
N
Varchar Float
15 8
N N
N N
Varchar
8
N
N
Integer
4
Y
N
Varchar
100
Y
N
89
Kuantitas
StatusBahanBa ku
TrPemb
TrPembID
KdTrPemb
TglTrPemb
DP PPNPemb TotalPemb KetPemb StatusPemb RtrPemb
RtrPembID KdRtrPemb TglRtrPemb
ReturOleh
BkHutang
StatusRetur BkHutangID KdBkHutang TglBkHutang
Bahan Baku Kuantitas Barang Masuk/Kelu ar Status Bahan Baku masuk / keluar ID Transaksi Pembelian Kode Transaksi Pembelian Tanggal Transaksi Pembelian Uang Muka Pajak Pembelian Total Pembelian Keterangan Pembelian Status Pembelian ID Retur Pembelian Kode Retur Pembelian Tanggal Retur Pembelian Di return oleh siapa Status Retur Buku Hutang ID Kode Buku Hutang Tanggal Buku Hutang
Integer
4
N
N
Varchar
15
N
N
Bigint
8
N
N
Varchar
8
N
N
Datetime
8
N
N
Float Float
8 8
Y N
N N
Float
8
N
N
Varchar
100
Y
N
Varchar
15
N
N
Bigint
8
N
N
Varchar
8
N
N
Datetime
8
N
N
Varchar
100
N
N
Varchar Bigint
15 8
N N
N N
Varchar
8
N
N
Datetime
8
N
N
90 TglJthTempo
MintaBahan Baku
BuktiPeneri maanBrg
BuktiPeneri maanRetur
Tanggal Jatuh Tempo CaraBayar Cara Bayar StatusBayar Status Pembayaran TotalBayar Total Pembayaran PermintaanBrgI Permintaan D Barang ID KdPermintaanB Kode rg Permintaan Barang TglPermintaan Tanggal Brg Permintaan Barang DimintaOleh Diminta Oleh StatusPermintaa Status nBrg Permintaan Barang KetPermintaan Keterangan Brg Permintaan Barang BPBID Bukti Penerimaan Barang ID KdBPB Kode Bukti Penerimaan Barang TglBPB Tanggal Bukti Penerimaan Barang KetBPB Keterangan Bukti Penerimaan Barang StatusBPB Status Bukti Penerimaan Barang BPBReturID Bukti Penerimaan Retur Barang ID KdBPBRetur Kode Bukti
Datetime
8
Y
N
Varchar Varchar
8 15
N N
N N
Float
8
N
N
Bigint
8
N
N
Varchar
8
N
N
Datetime
8
N
N
Varchar
50
N
N
Varchar
15
N
N
Varchar
100
Y
N
Bigint
8
N
N
Varchar
8
N
N
Datetime
8
N
N
Varchar
100
Y
N
Varchar
15
N
N
Bigint
8
N
N
Varchar
8
N
N
91 Penerimaan Retur Barang TglBPBRetur Tanggal Datetime 8 Bukti Penerimaan Retur Barang KetBPBRetur Keterangan Varchar 100 Bukti Penerimaan Retur Barang StatusBPBRetur Status Bukti Varchar 15 Penerimaan Retur Barang VoucherPen PengeluaranKas ID Bigint 8 geluaranKas ID Pengeluaran Kas KdPengluaranK Kode Varchar 8 as Pengeluaran Kas TglPengluaran Tanggal Datetime 8 Kas Pengeluaran Kas TotalPengeluara Total Float 8 nKas Pengeluaran Kas KetPengeluaran Keternanga Varchar 100 Kas n Pengeluaran Kas Tabel 4.3 Identifikasi Atribut dan Domain Atribut
N
N
Y
N
N
N
N
N
N
N
N
N
N
N
Y
N
4.1.1.4 Menentukan Candidate Key dan Primary Key Setelah atribut – atribut dari masing – masing entiti diidentifikasikan, maka diperlukan untuk menentukan atribut yang menjadi candidate dan primary key . Dalam hal ini yang dimaksudkan adalah dengan menambahkan primary key pada gambar 4.1 (Diagram ER yang menggambarkan relasi antar entiti ) sebelumnya. Diagram ER setelah ditambahkan primary key dapat dilihat sebagai berikut :
92 Entity
Candidate Key
Primary Key
Karyawan
KaryawanID
KaryawanID
KdKaryawan Pemasok
PemasokID
PemasokID
KdPemasok BahanBaku
BahanBakuID
BahanBakuID
KdBahanBaku TrPemb
TrPemID
TrPembID
KdTrPemb RtrPemb
RtrPembID
RtrPembID
KdRtrPemb MintaBahanBaku
PermintaanBrgID
PermintaanBrgID
KdPermintaanBrg VoucherPengeluaran Kas
PengeluaranKasID
PengeluaranKasID
KdPengluaranKas BkHutang
BkHutangID
BkHutangID
KdBkHutang BuktiPenerimaanBrg
BPBID
BPBID
KdBPB BuktiPenerimaanRet ur
BPBReturID
BPBReturID
KdBPBRetur
Tabel 4.4 Daftar Primary Key dan Candidate Key
93
Gambar 4.2 ERD dengan Primary Key
4.1.1.5 Cek Redundansi system Redundansi pada sistem ini tidak ditemukan karena tidak ada data yang sama pada entiti yang berbeda.
94 4.1.1.6 Validasi Model Konseptual Terhadap Transaksi
Gambar 4.3 Validasi Transaksi a) List daftar Pengeluaran Kas b) List daftar Retur Pembelian c) List daftar Buku Hutang d) List daftar Transaksi Pembelian e) List daftar Permintaan Bahan Baku f) List data Master Pemasok g) List data Master Karyawan h) List data Master Bahan Baku i) List daftar Penerimaan Barang j) List daftar Penerimaan Retur
95 4.1.2
Perancangan Basisdata Logikal Dalam perancangan basisdata logikal, terdiri dari langkah-langkah sebagai
berikut : 4.1.2.l Menghilangkan Fitur Tidak Kompatibel Tujuan dari menghilangkan fitur tidak kompatibel adalah untuk menyaring model data lokal konseptual dengan menghilangkan fitur yang tidak kompatibel dengan model relational. Beberapa objektif dari langkah ini adalah : 4.1.2.1.1
Menghilangkan many-to-many (*:*) binary relationship types
Hubungan antara TrPemb dengan BahanBaku
Gambar 4.4 Hubungan antara TrPemb dengan BahanBaku
96 Hubungan antara ReturPemb dengan BahanBaku
Gambar 4.5 Hubungan antara ReturPemb dengan BahanBaku
Hubungan antara MintaBahanBaku dengan BahanBaku
Gambar 4.6 Hubungan antara MintaBahanBaku dengan BahanBaku
97 Hubungan antara BuktiPenerimaanBrg dengan BahanBaku
Gambar 4.7 Hubungan antara BuktiPenerimaanBrg dengan BahanBaku
Hubungan antara BuktiPenerimaanRetur dengan BahanBaku
Gambar 4.8 Hubungan antara BuktiPenerimaanRetur dengan BahanBaku
4.1.2.1.2 Menghilangkan many-to-many (*:*) recursive relationship types Many-to-many recursive relationship types tidak terdapat dalam menghilangkan fitur yang tidak kompatibel.
98 4.1.2.1.3 Menghilangkan complex relationship types Complex relationship types tidak terdapat dalam menghilangkan fitur yang tidak kompatibel. 4.1.2.1.4
Menghilangkan multi-valued Atribut
Atribut yang mempunyai nilai multi-valued adalah atribut Telp yang terdapat dalam entiti Karyawan dan Pemasok. Sehingga atribut Telp dari masing-masing entiti dipisahkan menjadi entiti yang baru. Entity Karyawan dengan multi-value atribut TelpKaryawan 1.
Karyawan KaryawanID {PK} KdKaryawan NmKaryawan JnsKelamin TglLahir AlmtKaryawan TelpKaryawan Jabatan TglMasuk TglKeluar Password Mempunyai Karyawan
KaryawanID {PK} KdKaryawan NmKaryawan JnsKelamin TglLahir AlmtKaryawan Jabatan TglMasuk TglKeluar Password
1..1
1..3
TelpKaryawan TelpKaryawan {PK}
Gambar 4.9Atribut multi-value Karyawan dengan TelpKaryawan
99
100 2. Pemasok (PemasokID, KdPemasok, NmPemasok, NmKontak, AlmtPemasok, Fax, KotaPemasok, KdPosPemasok) Primary Key PemasokID 3. BahanBaku(BahanBakuID,
KdBahanBaku,
NmBahanBaku,
SatuanBrg,
HrgSatuan, KdTrans, MinStok, Kuantitas, KetBahanBaku, StatusBahanBaku) Primary Key BahanBakuID 4. TrPemb (TrPembID, KdTrPemb, TglTrPemb,
DP, PPNPemb, TotalPemb,
KetPemb, StatusPemb, TglJatuhTempo ) Primary Key TrPembID 5. RtrPemb (RtrPembID, KdRtrPemb, TglRtrPemb, ReturOleh, StatusRetur) Primary Key RtrPembID 6. BkHutang (BkHutangID, KdBkHutang, TglBkHutang, TglJthTempo, CaraBayar, StatusBayar, TotalBayar) Primary Key BkHutangID 7. MintaBahanBaku
(PermintaanBrgID,
KdPermintaanBrg,
TglPermintaanBrg,
DimintaOleh, StatusPermintaanBrg , KetPermintaanBrg) Primary Key PermintaanBrgID 8. VoucherPengluaranKas
(PengeluaranKasID,
KdPengeluaranKas,
TglPengeluaranKas, TotalPengeluaranKas, KetPengeluaranKas) Primary Key PengeluaranKasID 9. BuktiPenerimaanBrg (BPBID, KdBPB, TglBPB, KetBPB, StatusBPB) Primary Key BPBID 10.BuktiPenerimaanRetur (BPBReturID, KdBPBRetur, TglBPBRetur, KetBPBRetur, StatusBPBRetur)
101 Primary Key BPBReturID
4.1.2.2.2
Weak Entiti Types
1. TrPembDetil ( JmlhBahanBakuBeli, Status ) Primary Key None (at present) Foreign Key TrPembID 2. RtrPembDetil ( JmlhBahanBakuRtr, SatuanBahanBakuRtr, KetReturDetil ) Primary Key None (at present) Foreign key RtrPembID 3. MintaBahanBakuDetil ( JmlhBahanBaku, Satuan, HrgBeliSatuan, Status ) Primary Key None (at present) Foreign key PermintaanBrgID 4. BuktiPenerimaanBrgDetil (JmlhBrgTerima, Satuan ) Primary Key None (at present) Foreign key BPBID 5. BuktiPenerimaanReturDetil (JmlhReturBrgTerima, SatuanBrgRetur ) Primary Key None (at present) Foreign key BPBReturID 6. TelpKaryawan (TelpKaryawan) Primary Key TelpKaryawan Foreign key KaryawanID 7. TelpPemasok (TelpPemasok) Primary Key TelpPemasok Foreign key PemasokID
102
103
104
105
106
107
108
109
110
111
112 Master Karyawan Entiti ini sudah mengalami normalisasi hingga tahap 3NF (Third Normal Form). Karyawan(@KaryawanID, KdKaryawan, NmKaryawan, JnsKaryawan, TglLahir, TelpKaryawan, AlmtKaryawan, Jabatan, TglMasuk, TglKeluar, Password)
4NF Karyawan(@KaryawanID, KdKaryawan, NmKaryawan, JnsKaryawan, TglLahir, AlmtKaryawan, Jabatan, TglMasuk, TglKeluar, Password) TelpKaryawan(@KaryawanID, TelpKaryawan)
Master Pemasok Entiti ini sudah mengalami normalisasi hingga tahap 3NF (Third Normal Form). Pemasok(@PemasokID,
KdPemasok,
NmPemasok,
NmKontak,
AlmtPemasok,
TelpPemasok, Fax, #KotaID, KdPosPemasok) Kota(@KotaID, NamaKota )
4NF Pemasok(@PemasokID, KdPemasok, NmPemasok, NmKontak, AlmtPemasok, #KotaID, KdPosPemasok) TelpPemasok(@PemasokID, TelpPemasok)
Master BahanBaku Entiti ini sudah mengalami normalisasi hingga tahap 2NF (First Normal Form). 2NF
Fax,
113 BahanBaku(@BahanBakuID, KdBahanBaku, NmBahanBaku, SatuanBrg, HrgSatuan, MinStok, KetBahanBaku, StatusBahanBaku) StokBahanBaku(@BahanBakuID, KdTrans, Kuantitas)
Transaksi Permintaan Bahan Baku UNF MintaBahanBaku(PermintaanBrgID, KaryawanID, KdKaryawan,
KdPermintaanBrg,
TglPermintaanBrg
,
{ BahanBakuID, KdBahanBaku, NmBahanBaku,
SatuanBrg, HrgSatuan, KetBahanBaku, StatusBahanBaku }, JmlhBahanBaku, Status ,Satuan, HrgBeliSatuan, DimintaOleh, StatusPermintaanBrg, KetPermintaanBrg )
1NF MintaBahanBaku(@PermintaanBrgID, KaryawanID, KdKaryawan,
KdPermintaanBrg,
TglPermintaanBrg
,
@BahanBakuID, KdBahanBaku, NmBahanBaku,
SatuanBrg, HrgSatuan, KetBahanBaku, StatusBahanBaku, JmlhBahanBaku, Status, Satuan, HrgBeliSatuan, DimintaOleh, StatusPermintaanBrg, KetPermintaanBrg )
2NF MintaBahanBaku(@PermintaanBrgID,
KdPermintaanBrg,
TglPermintaanBrg
,
#KaryawanID, DimintaOleh, StatusPermintaanBrg, KetPermintaanBrg ) MintaBahanBakuDetail(@PermintaanBrgID,
@BahanBakuID,
JmlhBahanBaku,
Status ) BahanBaku(@BahanBakuID, KdBahanBaku, NmBahanBaku, SatuanBrg, HrgSatuan, KdTrans, MinStok, Kuantitas, KetBahanBaku, StatusBahanBaku)
114 3NF MintaBahanBaku(@PermintaanBrgID,
KdPermintaanBrg,
TglPermintaanBrg
,
#KaryawanID, DimintaOleh, StatusPermintaanBrg, KetPermintaanBrg ) MintaBahanBakuDetail(@PermintaanBrgID,
@BahanBakuID,
JmlhBahanBaku,
Status ) BahanBaku(@BahanBakuID, KdBahanBaku, NmBahanBaku, SatuanBrg, HrgSatuan, KdTrans, MinStok, Kuantitas, KetBahanBaku, StatusBahanBaku) Karyawan(@KaryawanID, KdKaryawan, NmKaryawan, JnsKaryawan, TglLahir, AlmtKaryawan, Jabatan, TglMasuk, TglKeluar, Password)
Transaksi Pembelian UNF TrPemb(TrPembID, KdTrPemb, TglTrPemb, TglJatuhTempo, DP, PPNPemb, Total, GrandTotal,
KetPemb,
StatusPemb
,PemasokID,
KdPemasok,
KaryawanID,
KdKaryawan, PermintaanBrgID, KdPermintaanBrg, { BahanBakuID, KdBahanBaku, NmBahanBaku,
SatuanBrg,
HrgSatuan,
KetBahanBaku,
StatusBahanBaku
},
JmlhBahanBakuBeli, JmlhHarga, Status )
1NF TrPemb(@TrPembID, KdTrPemb, TglTrPemb, TglJatuhTempo, DP, PPNPemb, KetPemb,
StatusPemb,
PemasokID,
KdPemasok,
KaryawanID,
KdKaryawan,
PermintaanBrgID, KdPermintaanBrg, @BahanBakuID, KdBahanBaku, NmBahanBaku, SatuanBrg, HrgSatuan, JmlhHarga, Status )
KetBahanBaku,
StatusBahanBaku, JmlhBahanBakuBeli,
115 2NF TrPemb(@TrPembID, KdTrPemb, TglTrPemb, TglJatuhTempo, DP, PPNPemb, KetPemb, #PemasokID,#PermintaanBrgID,#KaryawanID) TrPembDetil(@TrPembID, @BahanBakuID, JmlhBahanBakuBeli, Status ) BahanBaku(@BahanBakuID, KdBahanBaku, NmBahanBaku, SatuanBrg, HrgSatuan, KdTrans, MinStok, Kuantitas, KetBahanBaku, StatusBahanBaku)
3NF TrPemb(@TrPembID, KdTrPemb, TglTrPemb, TglJatuhTempo,
DP, PPNPemb,
KetPemb, #PemasokID,#PermintaanBrgID,#KaryawanID) TrPembDetil(@TrPembID, @BahanBakuID, JmlhBahanBakuBeli, Status ) BahanBaku(@BahanBakuID, KdBahanBaku, NmBahanBaku, SatuanBrg, HrgSatuan, MinStok, KetBahanBaku, StatusBahanBaku) Pemasok(@PemasokID, KdPemasok, NmPemasok, NmKontak, AlmtPemasok, Fax, #KotaID, KdPosPemasok) Karyawan(@KaryawanID, KdKaryawan, NmKaryawan, JnsKaryawan, TglLahir, AlmtKaryawan, Jabatan, TglMasuk, TglKeluar, Password) MintaBahanBaku(@PermintaanBrgID,
KdPermintaanBrg,
TglPermintaanBrg
,
#KaryawanID, DimintaOleh, StatusPermintaanBrg, KetPermintaanBrg )
Transaksi Retur Pembelian UNF RtrPemb(RtrPembID,
KdRtrPemb,
TglRtrPemb,
ReturOleh,
PemasokID,
KdPemasok, KaryawanID, KdKaryawan , TrPembID, KdTrPemb, JmlhBahanBakuRtr,
116 SatuanBahanBakuRtr, StatusRetur, KetReturDetil { BahanBakuID, KdBahanBaku, NmBahanBaku, SatuanBrg, HrgSatuan, KetBahanBaku, Kuantitas, StatusBahanBaku } )
1NF RtrPemb(@RtrPembID,
KdRtrPemb,
TglRtrPemb,
ReturOleh,
PemasokID,
KdPemasok, KaryawanID, KdKaryawan , TrPembID, KdTrPemb, JmlhBahanBakuRtr, SatuanBahanBakuRtr, StatusRetur, KetReturDetil,
@BahanBakuID, KdBahanBaku,
NmBahanBaku, SatuanBrg, HrgSatuan, KetBahanBaku, Kuantitas, StatusBahanBaku)
2NF RtrPemb(@RtrPembID,
KdRtrPemb,
TglRtrPemb,
ReturOleh,
StatusRetur,
#TrPembID ,#PemasokID, #KaryawanID ) RtrPembDetil(@RtrPembID,
@BahanBakuID,
JmlhBahanBakuRtr,
SatuanBahanBakuRtr, KetReturDetil ) BahanBaku(@BahanBakuID, KdBahanBaku, NmBahanBaku, SatuanBrg, HrgSatuan, KdTrans, MinStok, Kuantitas, KetBahanBaku, StatusBahanBaku)
3NF RtrPemb(@RtrPembID,
KdRtrPemb,
TglRtrPemb,
ReturOleh,
StatusRetur,
#TrPembID ,#PemasokID, #KaryawanID ) RtrPembDetil(@RtrPembID, @BahanBakuID, JmlhBahanBakuRtr, KetReturDetil) BahanBaku(@BahanBakuID, KdBahanBaku, NmBahanBaku, SatuanBrg, HrgSatuan, MinStok, KetBahanBaku, StatusBahanBaku)
117 Pemasok(@PemasokID, KdPemasok, NmPemasok, NmKontak, AlmtPemasok,
Fax,
#KotaID, KdPosPemasok) Karyawan(@KaryawanID, KdKaryawan, NmKaryawan, JnsKaryawan, TglLahir, AlmtKaryawan, Jabatan, TglMasuk, TglKeluar, Password) TrPemb(@TrPembID, KdTrPemb, TglTrPemb, TglJatuhTempo, DP, PPNPemb, KetPemb, #PemasokID,#PermintaanBrgID,#KaryawanID)
Transaksi Bukti Penerimaan Barang UNF BuktiPenerimaanBrg(BPBID,
KdBPB,
KaryawanID,
BahanBakuID,
SatuanBrg,
KdKaryawan,{ HrgSatuan,
KetBahanBaku,
TglBPB,
TrPembID,
KdBahanBaku,
StatusBahanBaku
},
KdTrPemb,
NmBahanBaku, JmlhBrgTerima,
SatuanBrg, KetBPB, StatusBPB)
1NF BuktiPenerimaanBrg(@BPBID,
KdBPB,
TglBPB,
TrPembID,
KdTrPemb,
KaryawanID, KdKaryawanID, @BahanBakuID, KdBahanBaku, NmBahanBaku, SatuanBrg, HrgSatuan, KetBahanBaku, StatusBahanBaku, JmlhBrgTerima, SatuanBrg, KetBPB, StatusBPB)
2NF BuktiPenerimaanBrg(@BPBID, KdBPB, TglBPB, #TrPembID, #KaryawanID, KetBPB, StatusBPB) BuktiPenerimaanBrgDetil(@BPBID, @BahanBakuID, JmlhBrgTerima)
118 BahanBaku(@BahanBakuID, KdBahanBaku, NmBahanBaku, SatuanBrg, HrgSatuan, KdTrans, MinStok, Kuantitas, KetBahanBaku, StatusBahanBaku)
3NF BuktiPenerimaanBrg(@BPBID, KdBPB, TglBPB, #TrPembID, #KaryawanID, KetBPB, StatusBPB) BuktiPenerimaanBrgDetil(@BPBID, @BahanBakuID, JmlhBrgTerima) BahanBaku(@BahanBakuID, KdBahanBaku, NmBahanBaku, SatuanBrg, HrgSatuan, KdTrans, MinStok, Kuantitas, KetBahanBaku, StatusBahanBaku) Karyawan(@KaryawanID, KdKaryawan, NmKaryawan, JnsKaryawan, TglLahir, AlmtKaryawan, Jabatan, TglMasuk, TglKeluar, Password) TrPemb(@TrPembID, KdTrPemb, TglTrPemb, TglJatuhTempo, DP, PPNPemb, KetPemb, #PemasokID,#PermintaanBrgID,#KaryawanID)
Transaksi Bukti Penerimaan Retur UNF BuktiPenerimaanRetur(BPBReturID, KdRtrPemb,
KaryawanID,
NmBahanBaku,
SatuanBrg,
KdBPBRetur,
KdKaryawan HrgSatuan,
,{
TglBPBRetur,
BahanBakuID,
KetBahanBaku,
RtrPembID,
KdBahanBaku,
StatusBahanBaku
},
JmlhReturBrgTerima, SatuanBrgRetur , KetBPBRetur , StatusBPBRetur ) 1NF BuktiPenerimaanRetur(@BPBReturID, KdBPBRetur, TglBPBRetur, RtrPembID, KdRtrPemb,
KaryawanID,
KdKaryawan,
@BahanBakuID,
KdBahanBaku,
119 NmBahanBaku,
SatuanBrg,
HrgSatuan,
KetBahanBaku,
StatusBahanBaku,
JmlhReturBrgTerima, SatuanBrgRetur, KetBPBRetur , StatusBPBRetur )
2NF BuktiPenerimaanRetur (@BPBReturID, KdBPBRetur , TglBPBRetur , #RtrPembID, #KaryawanID, KetBPBRetur, StatusBPBRetur) BuktiPenerimaanReturDetil(@BPBReturID, @BahanBakuID, JmlhReturBrgTerima) BahanBaku(@BahanBakuID, KdBahanBaku, NmBahanBaku, SatuanBrg, HrgSatuan, KdTrans, MinStok, Kuantitas, KetBahanBaku, StatusBahanBaku)
3NF BuktiPenerimaanRetur(@BPBReturID, KdBPBRetur, TglBPBRetur, #RtrPembID, #KaryawanID, KetBPBRetur , StatusBPBRetur) BuktiPenerimaanReturDetil(@BPBReturID, @BahanBakuID,JmlhReturBrgTerima) BahanBaku(@BahanBakuID, KdBahanBaku, NmBahanBaku, SatuanBrg, HrgSatuan, KdTrans, MinStok, Kuantitas, KetBahanBaku, StatusBahanBaku) Karyawan(@KaryawanID, KdKaryawan, NmKaryawan, JnsKaryawan, TglLahir, AlmtKaryawan, Jabatan, TglMasuk, TglKeluar, Password) RtrPemb(@RtrPembID,
KdRtrPemb,
TglRtrPemb,
ReturOleh,
StatusRetur,
#TrPembID ,#PemasokID, #KaryawanID )
Transaksi BkHutang Entiti ini sudah mengalami normalisasi hingga tahap 3NF (Third Normal Form).
120 BkHutang(@BkHutangID, KdBkHutang, TglBkHutang, TglJthTempo , CaraBayar, StatusBayar,
TotalBayar,
#TrPembID,
#RtrPembID,
#KaryawanID,
#BPBID,
#BPBReturID ) TrPemb(@TrPembID, KdTrPemb, TglTrPemb, TglJatuhTempo, DP, PPNPemb, KetPemb, #PemasokID,#PermintaanBrgID,#KaryawanID) RtrPemb(@RtrPembID,
KdRtrPemb,
TglRtrPemb,
ReturOleh,
StatusRetur,
#TrPembID ,#PemasokID, #KaryawanID ) BuktiPenerimaanBrg(@BPBID, KdBPB, TglBPB, #TrPembID, #KaryawanID, KetBPB, StatusBPB) BuktiPenerimaanRetur(@BPBReturID, KdBPBRetur, TglBPBRetur, #RtrPembID, #KaryawanID, KetBPBRetur , StatusBPBRetur) Karyawan(@KaryawanID, KdKaryawan, NmKaryawan, JnsKaryawan, TglLahir, AlmtKaryawan, Jabatan, TglMasuk, TglKeluar, Password)
Transaksi Pembayaran atas pembelian Entiti ini sudah mengalami normalisasi hingga tahap 3NF (Third Normal Form). VoucherPengeluaranKas(@PengeluaranKasID,KdPengeluaranKas, TglPengeluaranKas,
TotalPengeluaranKas,
KetPengeluaranKas,
#TrPembID,
#KaryawanID, #BkHutangID) TrPemb(@TrPembID, KdTrPemb, TglTrPemb, TglJatuhTempo, DP, PPNPemb, KetPemb, #PemasokID,#PermintaanBrgID,#KaryawanID) BkHutang(@BkHutangID, KdBkHutang, TglBkHutang, TglJthTempo , CaraBayar, StatusBayar, TotalBayar, #TrPembID, #RtrPembID, #KaryawanID, #BPBID )
121 Karyawan(@KaryawanID, KdKaryawan, NmKaryawan, JnsKaryawan, TglLahir, AlmtKaryawan, Jabatan, TglMasuk, TglKeluar, Password) TelpKaryawan(@KaryawanID, TelpKaryawan)
Kesimpulan : Karyawan(@KaryawanID, KdKaryawan, NmKaryawan, JnsKaryawan, TglLahir, AlmtKaryawan, Jabatan, TglMasuk, TglKeluar, Password) Pemasok(@PemasokID, KdPemasok, NmPemasok, NmKontak, AlmtPemasok,
Fax,
#KotaID, KdPosPemasok) BahanBaku(@BahanBakuID, KdBahanBaku, NmBahanBaku, SatuanBrg, HrgSatuan, MinStok, KetBahanBaku, StatusBahanBaku) StokBahanBaku(@BahanBakuID, KdTrans, Kuantitas) MintaBahanBaku(@PermintaanBrgID,
KdPermintaanBrg,
TglPermintaanBrg
,
#KaryawanID, DimintaOleh, StatusPermintaanBrg, KetPermintaanBrg ) MintaBahanBakuDetail(@PermintaanBrgID, @BahanBakuID, JmlhBahanBaku) TrPemb(@TrPembID, KdTrPemb, TglTrPemb, TglJatuhTempo,
DP, PPNPemb,
KetPemb, StatusPemb, #PemasokID,#PermintaanBrgID,#KaryawanID) TrPembDetil(@TrPembID, @BahanBakuID, JmlhBahanBakuBeli) RtrPemb(@RtrPembID,
KdRtrPemb,
TglRtrPemb,
ReturOleh,
StatusRetur,
#TrPembID ,#PemasokID, #KaryawanID ) RtrPembDetil(@RtrPembID, @BahanBakuID, JmlhBahanBakuRtr, KetReturDetil ) BkHutang(@BkHutangID, KdBkHutang, TglBkHutang, TglJthTempo , CaraBayar, StatusBayar, TotalBayar, #TrPembID, #RtrPembID, #KaryawanID, #BPBID ) VoucherPengeluaranKas(@PengeluaranKasID,KdPengeluaranKas,
122 TglPengeluaranKas, TotalPengeluaranKas, KetPengeluaranKas, #TrPembID, #KaryawanID , #BkHutangID) BuktiPenerimaanBrg(@BPBID, KdBPB, TglBPB, #TrPembID, #KaryawanID, KetBPB, StatusBPB) BuktiPenerimaanBrgDetil(@BPBID, @BahanBakuID, JmlhBrgTerima) BuktiPenerimaanRetur(@BPBReturID, KdBPBRetur, TglBPBRetur, #RtrPembID, #KaryawanID, KetBPBRetur , StatusBPBRetur) BuktiPenerimaanReturDetil(@BPBReturID,@BahanBakuID, JmlhReturBrgTerima) Kota(@KotaID, NamaKota) TelpPemasok(@PemasokID, TelpPemasok) TelpKaryawan(@KaryawanID, TelpKaryawan)
123 4.1.2.4 Validasi Relasi Terhadap Transaksi
Gambar 4.36 Validasi Transaksi Logikal
a) List daftar Transaksi Permintaan Barang b) List daftar Transaksi Pembelian c) List daftar Transaksi Penerimaan d) List daftar Transaksi Retur e) List daftar Transaksi Penerimaan Retur
124 f) List daftar Voucher Pengeluaran Kas g) List daftar Buku Hutang h) List daftar Permintaan Detil i) List daftar Pembelian Detil j) List daftar Penerimaan Detil k) List daftar Penerimaan Retur Detil l) List daftar Retur Detil m) List daftar Stok Bahan Baku n) List data Telp Karyawan o) List data Telp Pemmasok p) List data Karyawan q) List data Pemasok r) List data Bahan Baku
4.1.2.5 Mendefinisikan Kendala Integrity Batasan integritas merupakan batasan yang diinginkan untuk melindungi basis data dari menjadi tidak konsisten. Lima tipe batasan integritas yaitu : 4.1.2.5.1
Required Data
Beberapa atribut harus selalu mengandung sebuah nilai yang valid, jadi atributatribut tersebut tidak diperbolehkan bernilai null. Entiti Karyawan
Atribut
Deskripsi
Tipe
KaryawanID KdKaryawan
ID Karyawan Kode Karyawan Nama Karyawan Jenis Kelamin Tanggal Lahir Alamat Karyawan Jabatan Tanggal
NmKaryawan JnsKelamin TglLahir AlmtKaryawa n Jabatan TglMasuk
Nulls
Bigint Varchar
Len ght 8 8
N N
Multiv alue N N
Varchar
50
N
N
Char Datetime Varchar
1 8 100
N N N
N N N
Varchar Datetime
30 8
N N
N N
125
Pemasok
BahanBaku
TrPemb
Masuk TglKeluar Tanggal Keluar Password Password PemasokID ID Pemasok KdPemasok Kode Pemasok NmPemasok Nama Pemasok NmKontak Nama Kontak AlmtPemasok Alamat Pemasok Fax Nomor Fax KotaID ID Kota KdPosPemaso Kode Pos k Pemasok BahanBakuID ID Bahan Baku KdBahanBak Kode Bahan u Baku NmBahanBak Nama Bahan u Baku SatuanBrg SatuanBrg HrgSatuan Harga per Satuan MinStok Minimum Stok KetBahanBak Keterangan u Bahan Baku StatusBahanB Status Bahan aku Baku masuk / keluar TrPembID KdTrPemb
TglTrPemb
KaryawanID PemasokID PermintaanBr gID DP
ID Transaksi Pembelian Kode Transaksi Pembelian Tanggal Transaksi Pembelian ID Karyawan ID Pemasok ID Permintaan Barang Uang Muka
Datetime
8
Y
N
Varchar Bigint Varchar Varchar
10 8 8 50
N N N N
N N N N
Varchar Varchar
50 100
N N
N N
Varchar Bigint Varchar
15 8 8
N N N
N N N
Bigint
8
N
N
Varchar
8
N
N
Varchar
50
N
N
Varchar Float
15 8
N N
N N
Integer
4
Y
N
Varchar
100
Y
N
Varchar
20
N
N
Bigint
8
N
N
Varchar
80
N
N
Datetime
8
N
N
Bigint Bigint Bigint
8 8 8
N N N
N N N
Float
8
Y
N
126 PPNPemb KetPemb StatusPemb TrPembDeti l
TrPembID BahanBakuID
RtrPemb
JmlhBahanBa kuBeli Status RtrPembID KdRtrPemb TglRtrPemb TrPembID ReturOleh
RtrPembDet il
PemasokID KaryawanID StatusRetur RtrPembID BahanBakuID JmlhBahanBa kuRtr KetReturDetil
BkHutang
BkHutangID KdBkHutang TglBkHutang TglJthTempo TrPembID KaryawanID
Pajak Pembelian Keterangan Pembelian Status Pembelian ID Transaksi Pembelian ID Bahan Baku Jumlah Bahan Baku Beli Status Detil ID Retur Pembelian Kode Retur Pembelian Tanggal Retur Pembelian ID Transaksi Pembelian Di return oleh siapa ID Pemasok ID Karyawan Status Retur ID Retur Pembelian ID Bahan Baku Jumlah Bahan Baku Retur Keterangan Retur Detil ID Buku Hutang Kode Buku Hutang Tanggal Buku Hutang Tanggal Jatuh Tempo ID Transaksi Pembelian ID Karyawan
Float
8
N
N
Varchar
100
Y
N
Varchar
20
N
N
Bigint
8
N
N
Bigint
8
N
N
Float
8
N
N
Varchar Bigint
20 8
N N
N N
Varchar
8
N
N
Datetime
8
N
N
Bigint
8
N
N
Varchar
50
N
N
Bigint Bigint Varchar Bigint
8 8 20 8
N N N N
N N N N
Bigint
8
N
N
Float
8
N
N
Varchar
100
Y
N
Bigint
8
N
N
Varchar
8
N
N
Datetime
8
N
N
Datetime
8
Y
N
Bigint
8
N
N
Bigint
8
N
N
127 RtrPembID
MintaBahan Baku
MintaBahan BakuDetil
BuktiPeneri maanBrg
ID Retur Pembelian BPBID ID Bukti Penerimaan Barang CaraBayar Cara Bayar StatusBayar Status Pembayaran TotalBayar Total Pembayaran PermintaanBr ID Permintaan gID Barang KaryawanID ID Karyawan KdPermintaan Kode Brg Permintaan Barang TglPermintaa Tanggal nBrg Permintaan Barang DimintaOleh Diminta Oleh StatusPermint Status aanBrg Permintaan Barang KetPermintaa Keterangan nBrg Permintaan Barang PermintaanBr ID Permintaan gID Barang BahanBakuID ID Bahan Baku JmlhBahanBa Jumlah Bahan ku Baku Status Status Minta Bahan Baku Detil BPBID ID Bukti Penerimaan Barang TrPembID ID Transaksi Pembelian KaryawanID ID Karyawan KdBPB Kode Bukti Penerimaan Barang TglBPB Tanggal Bukti Penerimaan
Bigint
8
Y
N
Bigint
8
N
N
Varchar Varchar
8 20
N N
N N
Float
8
N
N
Bigint
8
N
N
Bigint Varchar
8 8
N N
N N
Datetime
8
N
N
Varchar Varchar
50 20
N N
N N
Varchar
100
Y
N
Bigint
8
N
N
Bigint
8
N
N
Float
8
N
N
Varchar
20
N
N
Bigint
8
N
N
Bigint
8
N
N
Bigint Varchar
8 8
N N
N N
Datetime
8
N
N
128 Barang KetBPB Keterangan Bukti Penerimaan Barang StatusBPB Status Bukti Penerimaan Barang BuktiPeneri BPBID ID Bukti maanBrgDe Permintaan til Barang BahanBakuID ID Bahan Baku JmlhBrgTeri Jumlah Barang ma yang diterima VoucherPen PengeluaranK ID geluaranKas asID Pengeluaran Kas TrPembID ID Transaksi Pembelian BkHutangID ID Buku Hutang KaryawanID ID Karyawan KdPengluaran Kode Kas Pengeluaran Kas TglPengluara Tanggal nKas Pengeluaran Kas TotalPengelua Total ranKas Pengeluaran Kas KetPengeluar Keternangan anKas Pengeluaran Kas BuktiPeneri BPBReturID ID Bukti maanRetur Penerimaan Retur RtrPembID ID Retur Pembelian KaryawanID ID Karyawan KdBPBRetur Kode Bukti Penerimaan Retur TglBPBRetur Tanggal Bukti Penerimaan
Varchar
100
Y
N
Varchar
20
N
N
Bigint
8
N
N
Bigint
8
N
N
Float
8
N
N
Bigint
8
N
N
Bigint
8
N
N
Bigint
8
N
N
Bigint Varchar
8 8
N N
N N
Datetime
8
N
N
Float
8
N
N
Varchar
100
Y
N
Bigint
8
N
N
Bigint
8
N
N
Bigint Varchar
8 8
N N
N N
Datetime
8
N
N
129
KetBPBRetur
StatusBPBRet ur BuktiPeneri maanRetur Detil
BPBReturID
BahanBakuID JmlhReturBrg Terima StokBahanB BahanBakuID aku KdTrans Kuantitas Kota
KotaID NamaKota TelpKaryaw TelpKaryawa an n KaryawanID TelpPemaso TelpPemasok k PemasokID
Retur Keterangan Bukti Penerimaan Retur Status Bukti Penerimaan Retur ID Bukti Permintaan Retur ID Bahan Baku Jumlah Retur Barang yang diterima ID Bahan Baku Kode Transaksi Kuantitas Barang ID Kota Nama Kota Nomor Telpon ID Karyawan Nomor Telpon ID Pemasok
Varchar
100
Y
N
Varchar
20
N
N
Bigint
8
N
N
Bigint
8
N
N
Float
8
N
N
Bigint
8
N
N
Varchar
8
N
N
Float
8
N
N
Bigint Varchar Varchar
8 20 15
N N N
N N N
Bigint Varchar Bigint
8 15 8
N N N
N N N
Tabel 4.5 Require Data 4.1.2.5.2 Attribute Domain Constraints Setiap atribut mempunyai domain yaitu sekelompok nilai yang legal. Penentuan domain dari entiti yang bernilai 1. Entiti
Atribut
Deskripsi
Karyawan JnsKelamin Jenis Kelamin
Tipe Char
Len Nulls Multi Constraints ght value 1 N N (L/P)
130 Tabel 4.6 Attribute Domain Constraints
4.1.2.5.3 Entiti Integrity .Menentukan primary key tiap entiti boleh null atau tidak. Entiti
Atribut
Deskripsi
Tipe
Karyawan Pemasok BahanBaku
KaryawanID PemasokID BahanBakuID
TrPemb
TrPembID
TrPembDetil
TrPembID
ID Karyawan ID Pemasok ID Bahan Baku ID Transaksi Pembelian ID Transaksi Pembelian ID Bahan Baku ID Retur Pembelian ID Retur Pembelian ID Bahan Baku ID Buku Hutang ID Pengeluaran Kas ID Permintaan Barang ID Permintaan Barang ID Bahan Baku ID Bukti Penerimaan Barang ID Bukti Penerimaan Barang Detil ID Bahan
BahanBakuID RtrPemb
RtrPembID
RtrPembDetil
RtrPembID BahanBakuID
BkHutang
BkHutangID
VoucherPeng uaranlKas
PengluaranKa sID
MintaBahanB aku
PermintaanBr gID
MintaBahanB akuDetil
PermintaanBr gID BahanBakuID
BuktiPenerim aanBrg
BPBID
BuktiPenerim aanBrgDetil
BPBID
BahanBakuID
Bigint Bigint Bigint
Lengh t 8 8 8
Null s N N N
Multi value N N N
Bigint
8
N
N
Bigint
8
N
N
Bigint
8
N
N
Bigint
8
N
N
Bigint
8
N
N
Bigint
8
N
N
Bigint
8
N
N
Bigint
8
N
N
Bigint
8
N
N
Bigint
8
N
N
Bigint
8
N
N
Bigint
8
N
N
Bigint
8
N
N
Bigint
8
N
N
131
BuktiPenerim aanRetur
BPBReturID
BuktiPenerim aanReturDetil
BPBReturID
BahanBakuID StokBahanBa ku
BahanBakuID KdTrans
Kota TelpKaryawa n
KotaID KaryawanID Telp
TelpPemasok
PemasokID Telp
Baku ID Bukti Penerimaan Retur ID Bukti Penerimaan Retur Detil ID Bahan Baku ID Bahan Baku Kode Transaksi ID Kota ID Karyawan Nomor Telepon ID Pemasok Nomor Telepon
Bigint
8
N
N
Bigint
8
N
N
Bigint
8
N
N
Bigint
8
N
N
Varchar
8
N
N
Bigint Bigint Varchar
8 8 15
N N N
N N N
Bigint Varchar
8 15
N N
N N
Tabel 4.7 Entiti Integrity
4.1.2.5.4
Referential Integrity
Menentukan Action (insert child, delete child, update child, insert parent, delete parent, update parent PK) dari tiap-tiap entiti dan setelah dilakukan menghilangkan fitur yang tidak kompatibel.
132
133
134
135
136
137
138
139
140 4.1.3
Perancangan Basisdata Fisikal
4.1.3.1 Menerjemahkan Model Logikal dalam DBMS 4.1.3.1.1 Pemilihan DBMS (Database Management System) Pemilihan DBMS adalah pemilihan DBMS yang sesuai untuk mendukung aplikasi database. Pemilihan dapat diselesaikan dalam setiap waktu bagi desain logika untuk menyediakan informasi yang cukup mengenai kebutuhan sistem seperti penampilan, mendorong restrukturisasi, keamanan, dan batasan integritas. Walaupun pemilihan DBMS mungkin jarang dilakukan, pada saat perusahaan perlu memperluas atau mengganti keberadaan sistem yang sudah ada, maka mungkin perlu untuk melakukan evaluasi produk DBMS yang baru. Dalam beberapa kasus tertentu tujuannya adalah memilih sistem yang dapat bertemu dengan kebutuhan mendatang dari sebuah perusahaan, memberi keseimbangan terhadap harga yang didalamnya termasuk pembelian produk DBMS, penambahan software atau hardware yang diperlukan untuk mendukung sistem basisdata, dan biaya yang diasosiasikan dengan perubahan dan pelatihan staf. Pendekatan sederhana dalam melakukan pemilihan DBMS adalah dengan mencocokkan fitur-fitur DBMS dengan kebutuhan. Berikut ini Tabel 4.8 memperlihatkan perbandingan DBMS Microsoft SQL Server 2000 Developer Edition dengan DBMS Oracle 9i. MS SQL Server 2000 Developer Edition Harga: Untuk 1 CPU sebesar $ 19,999 Kebutuhan Piranti Keras: Processor : Pentium 166 MHz (minimum) Memory : 64 MB RAM (minimum)
Oracle 9i Harga: Untuk 1 CPU sebesar $ 40,000 Kebutuhan Piranti Keras: Processor : Pentium 166 MHz (minimum) Memory : 128 MB RAM (minimum)
141 Hard disk Space: 145 MB (minimum), Hard disk Space: 140 MB pada System 380 MB (typical) Drive ditambah 4.5 GB untuk Oracle Home Drive (FAT) atau 2.8 GB untuk Oracle Home Drive (NTFS) Kebutuhan Piranti Lunak: Kebutuhan Piranti Lunak: Membutuhkan Internet Explorer 5.0 dan Oracle 9i mendukung semua platform didukung oleh sistem operasi Microsoft termasuk platform berbasis Windows, Windows 2000 Server, Windows 2000 AIX-Based Systems, Compaq Tru64 Advanced Server, Microsoft Windows UNIX, HP 9000 Series HP-UX, Linux NT version 4.0 Service Pack 5 Intel, Sun Solaris, dan sebagainya Fitur: Fitur: Mendukung T-SQL, dimana T-SQL Mendukung PL/SQL, dimana PL/SQL memiliki fitur: memiliki fitur: Indexes : B-Tree indexes Indexes : B-Tree indexes, Bitmap Tables : Relational tables, Temporary indexes, Tables Partitioned indexes, FunctionTriggers : AFTER triggers, INSTEAD based indexes, Domain OF triggers indexes Procedures : T-SQL statements Tables : Relational tables, Object Arrays : tidak mendukung tables, Temporary tables Triggers : BEFORE triggers, AFTER triggers, INSTEAD OF triggers Procedures : PL/SQL statements, Java methods, third-generation language (3GL) routines Arrays : mendukung Keterbatasan: Keterbatasan: database name length : 8 database name length : 128 column name length : 30 column name length : 128 index name length : 30 index name length : 128 table name length : 128 table name length : 30 view name length : 128 view name length : 30 stored procedure name length : 30 stored procedure name length : 128 index length : 749 index length : 900 max columns per index : 16 max columns per index : 32 max char() size : 8000 max char() size : 2000 max varchar() size : 4000 max varchar() size : 8000 max columns per table 1024 max columns per table 1000 max table row length : 255000 max table row length : 8036 max query size : 16777216 max query size : 16777216 recursive subqueries : 40 recursive subqueries : 64 constant string size in SELECT : constant string size in SELECT : 4000 constant string size in WHERE : 4000 16777207 constant string size in WHERE : 8000
142 Mendukung TPC-C Tidak mendukung TPC-C TPC (Transaction Processing Performance Council) merupakan suatu organisasi yang independent yang menentukan tipe transaksi (transaksi yang digunakan dalam sistem kontrol inventory, sistem reservasi dan sistem banking) dan beberapa aturan umum transaksi. Tabel 4.8 Tabel Perbandingan MS SQL Server 2000 dengan Oracle 9i. Adapun pertimbangan yang dipakai dalam pemilihan DBMS MS SQL Server 2000 Developer Edition adalah sebagai berikut : 1. SQL Server 2000 lebih murah dibandingkan Oracle 9i 2. SQL Server 2000 mendukung performansi TPC-C (Transaction Processing Performance Council) SQL Server 2000 umumnya lebih mudah diinstal, digunakan dan dikelola.
4.1.3.1.2 Rancangan Basis Relasi Rancangan basis relasi digunakan untuk mendapatkan hubungan dasar antara rancangan basisdata lokal maka didapat DBDL (Database Design Language) sebagai berikut: •
Karyawan Domain KaryID
: Variable length big integer, length 8
Domain KdKary
: Variabel length character string, length 8
Domain NmKary
: Variabel length character string, length 50
Domain JnsKelaminKary
: Single character, must be one of ‘L’, ‘P’
Domain TglLahirKary
: Variabel datetime, length 8
143 Domain AlmtKary
: Variabel length character string, length 100
Domain JabatanKary
: Variabel length character string, length 20
Domain TglMasukKary
: Variabel datetime, length 8
Domain TglKeluarKary
: Variabel datetime, length 8
Domain PasswordKary
: Variabel length character string, length 10
Karyawan( KaryawanID
KaryID
NOT NULL,
KdKaryawan
KdKary
NOT NULL,
NmKaryawan
NmKary
NOT NULL,
JnsKelamin
JnsKelaminKary
NOT NULL,
TglLahir
TglLahirKary
NOT NULL,
AlmtKaryawan
AlmtKary
NOT NULL,
Jabatan
JabatanKary
NOT NULL,
TglMasuk
TglMasukKary
NOT NULL,
TglKeluar
TglKeluarKary
NULL,
Password
PasswordKary
NOT NULL,
PRIMARY KEY (KaryawanID);
•
Pemasok Domain Pemasok_ID
: Variabel big integer, length 8
Domain Kd_Pemasok
: Variabel length character string, length 8
Domain Nm_Pemasok
: Variabel length character string, length 50
Domain Nm_Kontak
: Variabel length character string, length 50
144 Domain Almt_Pemasok
: Variabel length character string, length 100
Domain Fax_Pemasok
: Variabel length character string, length 15
Domain Kota_ID
: Variabel Bigint, length 8
Domain KdPos_Pemasok
: Variabel length character string, length 7
Pemasok( PemasokID
Pemasok_ID
NOT NULL,
KdPemasok
Kd_Pemasok
NOT NULL,
NmPemasok
Nm_Pemasok
NOT NULL,
NmKontak
Nm_Kontak
NOT NULL,
AlmtPemasok
Almt_Pemasok
NOT NULL,
TelpPemasok
Fax_Pemasok
NOT NULL,
Fax
Nomor Fax
NOT NULL,
KotaID
Kota_ID
NOT NULL,
KdPosPemasok
KdPos_Pemasok
NOT NULL,
PRIMARY KEY (PemasokID);
•
BahanBaku Domain BahanBaku_ID
: Variabel big integer, length 8
Domain Kd_BahanBaku
: Variabel length character string, length 8
Domain Nm_BahanBaku
: Variabel length character string, length 50
Domain Satuan_Brg
: Variabel length character string, length 15
Domain Hrg_Satuan
: Variabel float, length 8
Domain Min_Stok
: Variabel integer, length 4
145 Domain Ket_BahanBaku
: Variabel length character string, length 100
Domain Status_BahanBaku
: Variabel length character string, length 20
BahanBaku( BahanBakuID
BahanBaku_ID
NOT NULL,
KdBahanBaku
Kd_BahanBaku
NOT NULL,
NmBahanBaku
Nm_BahanBaku
NOT NULL,
SatuanBrg
Satuan_Brg
NOT NULL,
HrgSatuan
Hrg_Satuan
NOT NULL,
MinStok
Min_Stok
NULL,
KetBahanBaku
Ket_BahanBaku
NOT NULL,
StatusBahanBaku
Status_BahanBaku
NOT NULL,
PRIMARY KEY (BahanBakuID);
•
TrPemb Domain TrPemb_ID
: Variabel big integer, length 8
Domain Kd_TrPemb
: Variabel length character string, length 8
Domain Tgl_TrPemb
: Variabel datetime, length 8
Domain Karyawan_ID
: Variabel big integer, length 8
Domain Pemasok_ID
: Variabel big integer, length 8
Domain PermintaanBrg_ID
: Variabel big integer, length 8
Domain DPP_Pemb
: Variabel float, length 8
Domain PPN_Pemb
: Variabel float, length 8
Domain Ket_Pemb
: Variabel length character string, length 100
146 Domain Status_Pemb
: Variabel length character string, length 20
TrPemb( TrPembID
TrPemb_ID
NOT NULL,
KdTrPemb
Kd_TrPemb
NOT NULL,
TglTrPemb
Tgl_TrPemb
NOT NULL,
KaryawanID
Karyawan_ID
NOT NULL,
PemasokID
Pemasok_ID
NOT NULL,
PermintaanBrgID
PermintaanBrg_ID
NOT NULL,
DP
DPP_Pemb
NULL,
PPNPemb
PPN_Pemb
NOT NULL,
KetPemb
Ket_Pemb
NULL,
StatusPemb
Status_Pemb
NOT NULL,
PRIMARY KEY (TrPembID), FOREIGN KEY (KaryawanID) REFERENCES Karyawan (KaryawanID) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (PemasokID) REFERENCES Pemasok (PemasokID) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN
KEY
(PermintaanBrgID)
REFERENCES
MintaBahanBaku
(PermintaanBrgID) ON UPDATE CASCADE ON DELETE NO ACTION);
•
TrPembDetil Domain TrPemb_ID
: Variabel big integer, length 8
Domain BahanBaku_ID
: Variabel big integer, length 8
147 Domain JmlhBahanBaku
: Variabel float, length 8
Domain StatusDetil
: Variabel length character string, length 20
TrPembDetil( TrPembID
TrPemb_ID
NOT NULL,
BahanBakuID
BahanBaku_ID
NOT NULL,
JmlhBahanBakuBeli JmlhBahanBaku
NOT NULL,
Status
NOT NULL,
StatusDetil
PRIMARY KEY (TrPembID, BahanBakuID), FOREIGN KEY (TrPembID) REFERENCES TrPemb (TrPembID) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (BahanBakuID) REFERENCES BahanBaku (BahanBakuID) ON UPDATE CASCADE ON DELETE NO ACTION);
•
RtrPemb Domain RtrPemb_ID
: Variabel big integer, length 8
Domain Kd_RtrPemb
: Variabel length character string, length 8
Domain Tgl_RtrPemb
: Variabel datetime, length 8
Domain TrPemb_ID
: Variabel big integer, length 8
Domain Retur_Oleh
: Variabel length character string, length 50
Domain Pemasok_ID
: Variabel big integer, length 8
Domain Karyawan_ID
: Variabel big integer, length 8
Domain Status_Retur
: Variabel length character string, length 20
RtrPemb(
148 RtrPembID
RtrPemb_ID
NOT NULL,
KdRtrPemb
Kd_RtrPemb
NOT NULL,
TglRtrPemb
Tgl_RtrPemb
NOT NULL,
TrPembID
TrPemb_ID
NOT NULL,
ReturOleh
Retur_Oleh
NOT NULL,
PemasokID
Pemasok_ID
NOT NULL,
KaryawanID
Karyawan_ID
NOT NULL,
StatusRetur
Status_Retur
NOT NULL,
PRIMARY KEY (RtrPembID), FOREIGN KEY (TrPembID) REFERENCES TrPemb (TrPembID) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (PemasokID) REFERENCES Pemasok (PemasokID) ON UPDATE CASCADE ON DELETE NO ACTION), FOREIGN KEY (KaryawanID) REFERENCES Karyawan (KaryawanID) ON UPDATE CASCADE ON DELETE NO ACTION);
•
RtrPembDetil Domain RtrPemb_ID
: Variabel big integer, length 8
Domain BahanBaku_ID
: Variabel big integer, length 8
Domain JmlhBahanBaku
: Variabel float, length 8
Domain Ket_ReturDetil
: Variabel lengt character string, length 100
RtrPembDetil( RtrPembID
RtrPemb_ID
NOT NULL,
149 BahanBakuID
BahanBaku_ID
NOT NULL,
JmlhBahanBakuRtr
JmlhBahanBaku
NOT NULL,
KetReturDetil
Ket_ReturDetil
NOT NULL
PRIMARY KEY (RtrPembID, BahanBakuID), FOREIGN KEY (RtrPembID) REFERENCES RtrPemb (RtrPembID) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (BahanBakuID) REFERENCES BahanBaku (BahanBakuID) ON UPDATE CASCADE ON DELETE NO ACTION);
•
BkHutang Domain BkHutang_ID
: Variabel big integer, length 8
Domain Kd_BkHutang
: Variabel length character string, length 8
Domain Tgl_BkHutang
: Variabel datetime, length 8
Domain Tgl_JthTempo
: Variabel date, format short date
Domain TrPemb_ID
: Variabel big integer, length 8
Domain Karyawan_ID
: Variabel big integer, length 8
Domain RtrPemb_ID
: Variabel big integer, length 8
Domain BPB_ID
: Variabel big integer, length 8
Domain Cara_Bayar
: Variabel length character string, length 10
Domain Status_Bayar
: Variabel length character string, length 20
Domain Total_Bayar
: Variabel float, length 8
BkHutang( BkHutangID
BkHutang_ID
NOT NULL,
150 KdBkHutang
Kd_BkHutang
NOT NULL,
TglBkHutang
Tgl_BkHutang
NOT NULL,
TglJthTempo
Tgl_JthTempo
NULL,
TrPembID
TrPemb_ID
NOT NULL,
KaryawanID
Karyawan_ID
NOT NULL,
RtrPembID
RtrPemb_ID
NOT NULL,
BPBID
BPB_ID
NOT NULL,
CaraBayar
Cara_Bayar
NOT NULL,
StatusBayar
Status_Bayar
NOT NULL,
TotalBayar
Total_Bayar
NOT NULL,
PRIMARY KEY (BkHutangID), FOREIGN KEY (TrPembID) REFERENCES TrPemb (TrPembID) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (KaryawanID) REFERENCES Karyawan (KaryawanID) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (RtrPembID) REFERENCES RtrPemb (RtrPembID) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (BPBID) REFERENCES BuktiPenerimaanBrg (BPBID) ON UPDATE CASCADE ON DELETE NO ACTION);
•
VoucherPengeluaranKas Domain PengeluaranKas_ID
: Variabel big integer, length 8
Domain TrPemb_ID
: Variabel big integer, length 8
151 Domain Karyawan_ID
: Variabel big integer, length 8
Domain BkHutang_ID
: Variabel big integer, length 8
Domain Kd_PengeluaranKas
: Variabel length character string, length 8
Domain Tgl_PengeluaranKas
: Variabel date, format short date
Domain Total_PengeluaranKas
: Variabel integer, length 4
Domain Ket_PengeluaranKas
: Variabel length character string, length 100
VoucherPengeluaranKas( PengeluaranKasID
PengeluaranKas_ID
NOT NULL,
TrPembID
TrPemb_ID
NOT NULL,
KaryawanID
Karyawan_ID
NOT NULL,
BkHutangID
BkHutang_ID
NOT NULL,
KdPengeluaranKas
Kd_PengeluaranKas
NOT NULL,
TglPengeluaranKas
Tgl_PengeluaranKas
NOT NULL,
TotalPengeluaranKas Total_PengeluaranKas
NOT NULL,
KetPengeluaranKas
NULL,
Ket_PengeluaranKas
PRIMARY KEY (PengeluaranKasID), FOREIGN KEY (TrPembID) REFERENCES TrPemb (TrPembID) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (KaryawanID) REFERENCES Karyawan (KaryawanID) ON UPDATE CASCADE ON DELETE NO ACTION), FOREIGN KEY (BkHutangID) REFERENCES BkHutang (BkHutangID) ON UPDATE CASCADE ON DELETE NO ACTION);
152 •
BuktiPenerimaanBrg Domain BPB_ID
: Variabel big integer, length 8
Domain Kd_BPB
: Variabel length character string, length 8
Domain Tgl_BPB
: Variabel datetime, length 8
Domain TrPemb_ID
: Variabel big integer, length 8
Domain Karyawan_ID
: Variabel big integer, length 8
Domain Ket_BPB
: Variabel length character string, length 100
Domain Status_BPB
: Variabel length character string, length 20
BuktiPenerimaanBrg( BPBID
BPB_ID
NOT NULL,
KdBPB
Kd_BPB
NOT NULL,
TglBPB
Tgl_BPB
NOT NULL,
TrPembID
TrPemb_ID
NOT NULL,
KaryawanID
Karyawan_ID
NOT NULL,
KetBPB
Ket_BPB
NOT NULL,
StatusBPB
Status_BPB
NOT NULL,
PRIMARY KEY (BPBID), FOREIGN KEY (TrPembID) REFERENCES TrPemb (TrPembID) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (KaryawanID) REFERENCES Karyawan (KaryawanID) ON UPDATE CASCADE ON DELETE NO ACTION);
153 •
BuktiPenerimaanBrgDetil Domain BPB_ID
: Variabel big integer, length 8
Domain BahanBaku_ID
: Variabel big integer, length 8
Domain JmlhBrg_Terima
: Variabel float, length 8
BuktiPenerimaanBrgDetil( BPBID
BPB_ID
NOT NULL,
BahanBakuID
BahanBaku_ID
NOT NULL,
JmlhBrgTerima
JmlhBrg_Terima
NOT NULL,
PRIMARY KEY (BPBID, BahanBakuID), FOREIGN KEY (BPBID) REFERENCES BuktiPenerimaanBrg (BPBID) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (BahanBakuID) REFERENCES BahanBaku (BahanBakuID) ON UPDATE CASCADE ON DELETE NO ACTION);
•
MintaBahanBaku Domain PermintaanBrg_ID
: Variabel big integer, length 8
Domain Kd_PermintaanBrg
: Variabel length character string, length 8
Domain Tgl_PermintaanBrg
: Variabel date, format short date
Domain Karyawan_ID
: Variabel big integer, length 8
Domain Diminta_Oleh
: Variabel length character string, length 50
Domain Status_PermintaanBrg
: Variabel length character string, length 20
Domain Ket_PermintaanBrg
: Variabel length character string, length 100
MintaBahanBaku(
154 PermintaanBrgID
PermintaanBrg_ID
NOT NULL,
KdPermintaanBrg
Kd_PermintaanBrg
NOT NULL,
TglPermintaanBrg
Tgl_PermintaanBrg
NOT NULL,
KaryawanID
Karyawan_ID
NOT NULL,
DimintaOleh
Diminta_Oleh
NOT NULL,
StatusPermintaanBrg
Status_PermintaanBrg
NOT NULL,
KetPermintaanBrg
Ket_PermintaanBrg
NOT NULL,
PRIMARY KEY (PermintaanBrgID), FOREIGN KEY (KaryawanID) REFERENCES Karyawan (KaryawanID) ON UPDATE CASCADE ON DELETE NO ACTION;
•
MintaBahanBakuDetail Domain PermintaanBrg_ID
: Variabel big integer, length 8
Domain BahanBaku_ID
: Variabel big integer, length 8
Domain Jmlh_BahanBaku
: Variabel float, length 8
Domain StatusDetil
: Variabel length character string, length 20
MintaBahanBakuDetail( PermintaanBrgID
PermintaanBrg_ID
NOT NULL,
BahanBakuID
BahanBaku_ID
NOT NULL,
JmlhBahanBaku
Jmlh_BahanBaku
NOT NULL,
Status
StatusDetil
NOT NULL,
PRIMARY KEY (PermintaanBrgID, BahanBakuID),
155 FOREIGN
KEY
(PermintaanBrgID)
REFERENCES
MintaBahanBaku
(PermintaanBrgID) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (BahanBakuID) REFERENCES BahanBaku (BahanBakuID) ON UPDATE CASCADE ON DELETE NO ACTION;
•
BuktiPenerimaanRetur Domain BPBRetur_ID
: Variabel big integer, length 8
Domain Kd_BPBRetur
: Variabel length character string, length 8
Domain Tgl_BPBRetur
: Variabel datetime, length 8
Domain RtrPemb_ID
: Variabel big integer, length 8
Domain Karyawan_ID
: Variabel big integer, length 8
Domain Ket_BPBRetur
: Variabel length character string, length 100
Domain Status_BPBRetur
: Variabel length character string, length 20
BuktiPenerimaanRetur( BPBReturID
BPBRetur_ID
NOT NULL,
KdBPBRetur
Kd_BPBRetur
NOT NULL,
TglBPBRetur
Tgl_BPBRetur
NOT NULL,
RtrPembID
RtrPemb_ID
NOT NULL,
KaryawanID
Karyawan_ID
NOT NULL,
KetBPBRetur
Ket_BPBRetur
NOT NULL,
StatusBPBRetur
Status_BPBRetur
NOT NULL,
PRIMARY KEY (BPBReturID), FOREIGN KEY (RtrPembID) REFERENCES RtrPemb (RtrPembID)
156 ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (KaryawanID) REFERENCES Karyawan (KaryawanID) ON UPDATE CASCADE ON DELETE NO ACTION);
•
BuktiPenerimaanReturDetil Domain BPBRetur_ID
: Variabel big integer, length 8
Domain BahanBaku_ID
: Variabel big integer, length 8
Domain JmlhBrg_Terima
: Variabel float, length 8
BuktiPenerimaanBrgDetil( BPBReturID
BPBRetur_ID
NOT NULL,
BahanBakuID
BahanBaku_ID
NOT NULL,
JmlhBrgTerima
JmlhBrg_Terima
NOT NULL,
PRIMARY KEY (BPBReturID, BahanBakuID), FOREIGN
KEY
(BPBReturID)
REFERENCES
BuktiPenerimaanRetur
(BPBReturID) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (BahanBakuID) REFERENCES BahanBaku (BahanBakuID) ON UPDATE CASCADE ON DELETE NO ACTION);
•
StokBahanBaku Domain BahanBaku_ID
: Variabel big integer, length 8
Domain Kd_Trans
: Variabel length character string, length 8
Domain Qty
: Variabel float, length 8
StokBahanBaku (
157 BahanBakuID
BahanBaku_ID
NOT NULL,
KdTrans
Kd_Trans
NOL NULL,
Kuantitas
Qty
NOT NULL,
PRIMARY KEY (BahanBakuID, KdTrans), FOREIGN KEY (BahanBakuID) REFERENCES BahanBaku(BahanBakuID) ON UPDATE CASCADE ON DELETE CASCADE);
•
Kota Domain Kota_ID
: Variabel big integer, length 8
Domain Nama_Kota
: Variabel length character string, length 20
Kota( KotaID
Kota_ID
NOT NULL,
NamaKota
Nama_Kota
NOT NULL,
PRIMARY KEY (KotaID),
•
TelpKaryawan Domain Karyawan_ID
: Variabel big integer, length 8
Domain Telp_Karyawan
: Variabel length character string, length 15
TelpKaryawan( KaryawanID
Karyawan_ID
NOT NULL,
TelpKaryawan
Telp_Karyawan
NOT NULL,
PRIMARY KEY (KaryawanID, TelpKaryawan), FOREIGN KEY (KaryawanID) REFERENCES Karyawan (KaryawanID)
158 ON UPDATE CASCADE ON DELETE CASCADE);
•
TelpPemasok Domain Pemasok_ID
: Variabel big integer, length 8
Domain Telp_Pemasok
: Variabel length character string, length 15
TelpPemasok( PemasokID
Pemasok_ID
NOT NULL,
TelpPemasok
Telp_Pemasok
NOT NULL,
PRIMARY KEY (PemasokID, Telp), FOREIGN KEY (PemasokID) REFERENCES Pemasok (PemasokID) ON UPDATE CASCADE ON DELETE CASCADE);
4.1.3.1.3 Rancangan Data Turunan Data turunan adalah atribut yang nilainya diketahui dengan mengetahui nilai dari atribut lain, pada kasus ini tidak terdapat data turunan. 4.1.3.2 Representasi Fisikal 4.1.3.2.1 Analisa Transaksi Analisa transaksi bertujuan untuk mengetahui fungsionalitas dari transaksi yang akan digunakan dalam basisdata dan untuk menganalisa transaksi yang penting. Dalam analisa transaksi juga dapat mengetahui tabel apa saja yang akan di read, insert, update atau delete. Transaksi-transaksi yang terjadi adalah sebagai berikut : a)
Tambah/hapus data karyawan dan ubah atribut karyawan.
b)
Tampilkan semua data karyawan, cari data karyawan.
159 c)
Tambah/hapus data pemasok dan ubah atribut pemasok.
d)
Tampilkan semua data pemasok, cari data pemasok.
e)
Tambah/hapus data bahan baku dan ubah atribut bahan baku.
f)
Tampilkan semua data bahan baku, cari data bahan baku.
g)
Tambah atau Hapus transaksi pembelian dan ubah transaksi pembelian.
h)
Cari atau tampilkan transaksi pembelian.
i)
Tambah/hapus transaksi pembelian detil dan ubah transaksi pembelian detil.
j)
Cari atau tampilkan transaksi pembelian detil.
k)
Tambah/hapus retur pembelian dan ubah retur pembelian.
l)
Cari atau tampilkan retur pembelian.
m)
Tambah/hapus transaksi retur pembelian detil dan ubah retur pembelian detil.
n)
Cari atau tampilkan retur pembelian detil.
o)
Tambah/hapus buku hutang dan ubah buku hutang.
p)
Tampilkan semua data hutang, cari data hutang.
q)
Tambah/hapus data pengeluaran kas dan ubah data pengeluaran kas.
r)
Tampilkan semua data pengeluaran kas, cari data pengeluaran kas.
s)
Tambah atau Hapus transaksi permintaan pembelian dan ubah transaksi permintaan pembelian.
t)
Cari atau tampilkan transaksi permintaan pembelian.
u)
Tambah atau Hapus transaksi permintaan pembelian detil dan ubah transaksi pembelian detil.
v)
Cari atau tampilkan transaksi permintaan pembelian detil.
w)
Tambah atau Hapus transaksi bukti penerimaan barang dan ubah transaksi bukti penerimaan barang.
160 x)
Cari atau tampilkan transaksi bukti penerimaan barang.
y)
Tambah atau Hapus transaksi bukti penerimaan barang detil dan ubah transaksi bukti penerimaan barang.
z)
Cari atau tampilkan transaksi bukti penerimaan barang detil.
aa)
Tambah transaksi Stok Bahan Baku
bb) Cari atau tampilkan transaksi Stok Bahan Baku cc)
Tambah atau Hapus transaksi bukti penerimaan Retur dan ubah transaksi bukti penerimaan retur.
dd) Cari atau tampilkan transaksi bukti penerimaan retur. ee)
Tambah atau Hapus transaksi bukti penerimaan Retur detil dan ubah transaksi bukti penerimaan retur detil.
ff)
Cari atau tampilkan transaksi bukti penerimaan retur detil
Keterangan : I : Insert R : Read U : Update D : Delete
Tabel Karyawan Pemasok BahanBaku TrPemb TrPembDetil RtrPemb RtrPembDetil BkHutang VoucherPenglKas MintaBahanBaku MintaBahanBakuDetil BuktiPenerimaanBrg BuktiPenerimaanBrgDetil StokBahanBaku Kota TelpKaryawan TelpPemasok BuktiPenerimaanRetur BuktiPenerimaanReturDetil
I X
X
(A) U D X X
X
X
R X
X
I
(B) U D
R X
I
(C) U D
R
X
X
X
X
I
(D) U D
R
X
X
X
Tabel 4.9 Analisa Transaksi
(E) U D
R
X
X
X
I
(F) U D
R
X
X X
I
X
X
X
Tabel Karyawan Pemasok BahanBaku TrPemb TrPembDetil RtrPemb RtrPembDetil BkHutang VoucherPenglKas MintaBahanBaku MintaBahanBakuDetil BuktiPenerimaanBrg BuktiPenerimaanBrgDetil StokBahanBaku Kota TelpKaryawan TelpPemasok BuktiPenerimaaRetur BuktiPenerimaaReturDetil
I
(G) U D
X
X
X
R X X X
I
(H) U D
R
I
(I) U D
R
X
X X X
X X
X
I
(J) U D
R
I
(K) U D
R X X
X X
X
X
X
X X X
Tabel 4.10 Analisa Transaksi (lanjutan)
R
X
X
X
(L) U D
X X
X
I
X
Tabel Karyawan Pemasok BahanBaku TrPemb TrPembDetil RtrPemb RtrPembDetil BkHutang VoucherPengluaranKas MintaBahanBaku MintaBahanBakuDetil BuktiPenerimaanBrg BuktiPenerimaanBrgDetil StokBahanBaku Kota TelpKaryawan TelpPemasok BuktiPenerimaanRetur BuktiPenerimaanReturDetil
I
(M) U D
R
I
(N) U D
R
I
(O) U D
R X
I
(P) U D
R
I
(Q) U D
R X
I
(R) U D
R
X X
X
X
X
X X
X
X X X
X
X
X
X X
X
X
X X
X X X X
Tabel 4.11 Analisa Transaksi (lanjutan)
X
X
Tabel Karyawan Pemasok BahanBaku TrPemb TrPembDetil RtrPemb RtrPembDetil BkHutang VoucherPengluaranKas MintaBahanBaku MintaBahanBakuDetil BuktiPenerimaanBrg BuktiPenerimaanBrgDetil StokBahanBaku Kota TelpKaryawan TelpPemasok BuktiPenerimaanRetur BuktiPenerimaanReturDetil
I
(S) U D
R X
I
(T) U D
R
I
(U) U D
R
I
(V) U D
R
I
(W) U D
R X
I
(X) U D
R
I
(Y) U D
X
R X X
X
X
X
X
X
X X
X
X
X X
X X
X
X
X
X
X
X X X
X
X
X X
X
X
Tabel 4.12 Analisa Transaksi (lanjutan)
X
X
Tabel Karyawan Pemasok BahanBaku TrPemb TrPembDetil RtrPemb RtrPembDetil BkHutang VoucherPengluaranKas MintaBahanBaku MintaBahanBakuDetil BuktiPenerimaanBrg BuktiPenerimaanBrgDetil StokBahanBaku Kota TelpKaryawan TelpPemasok BuktiPenerimaanRetur BuktiPenerimaanReturDetil
I
(Z) U D
R
I
( AA ) U D
R
I
(BB) U D
R
I
(CC) U D
R X
I
(DD) U D
R
I
(EE) U D
R X
I
( FF ) U D
R
X X
X X
X
X
X
X
X
X
X
X
X
X X
Tabel 4.13 Analisa Transaksi (lanjutan)
X
X
X X
X
166
4.1.3.2.2 Pemilihan Organisasi File Pemilihan organisasi file bertujuan untuk menentukan organisasi file yang efisien untuk masing-masing basis relasi. Pemilihan organisasi file diambil berdasarkan organisasi file yang digunakan oleh SQL Server 2000.
4.1.3.2.3 Pemilihan Indeks Pemilihan indeks pada tabel-tabel bertujuan untuk mempermudah dan mempercepat pencarian data dan informasi. Berikut adalah tabel-tabel beserta indeks yang telah ditentukan : •
Karyawan : CREATE UNIQUE INDEX Idx_KaryawanID ON Karyawan (KaryawanID) CREATE INDEX Idx_KdKaryawan ON Karyawan (KdKaryawan)
•
Pemasok : CREATE UNIQUE INDEX Idx_PemasokID ON Pemasok (PemasokID) CREATE INDEX Idx_KdPemasok ON Pemasok (KdPemasok)
•
BahanBaku : CREATE UNIQUE INDEX Idx_BahanBakuID ON BahanBaku (BahanBakuID) CREATE INDEX Idx_KdBahanBaku ON BahanBaku (KdBahanBaku)
•
MintaBahanBaku : CREATE UNIQUE INDEX Idx_PermintaanBrgID ON MintaBahanBaku (PermintaanBrgID) CREATE
INDEX
(KdPermintaanBrg)
Idx_KdPermintaanBrg
ON
MintaBahanBaku
167
CREATE INDEX Idx_KaryawanIDMBB ON MintaBahanBaku (KaryawanID) •
MintaBahanBakuDetil : CREATE
UNIQUE
INDEX
Idx_PermintaanBrgIDDetil
ON
MintaBahanBakuDetil (PermintaanBrgID, BahanBakuID) •
TrPemb : CREATE UNIQUE INDEX Idx_TrPembID ON TrPemb (TrPembID) CREATE INDEX Idx_KdTrPemb ON TrPemb (KdTrPemb) CREATE INDEX Idx_KaryawanIDTrPemb ON TrPemb (KaryawanID) CREATE INDEX Idx_PemasokIDTrPemb ON TrPemb (PemasokID) CREATE INDEX Idx_PermintaanBrgIDTrPemb ON TrPemb (PermintaanBrgID)
•
TrPembDetil : CREATE UNIQUE INDEX Idx_TrPembIDDetil ON TrPembDetil (TrPembID, BahanBakuID)
•
RtrPemb : CREATE UNIQUE INDEX Idx_RtrPembID ON RtrPemb (RtrPembID) CREATE INDEX Idx_KdRtrPemb ON RtrPemb (KdRtrPemb) CREATE INDEX Idx_KaryawanIDRtrPemb ON RtrPemb (KaryawanID) CREATE INDEX Idx_PemasokIDRtrPemb ON RtrPemb (PemasokID) CREATE INDEX Idx_TrPembIDRtrPemb ON RtrPemb (TrPembID)
•
RtrPembDetil : CREATE
UNIQUE
INDEX
(RtrPembID, BahanBakuID)
Idx_RtrPembIDDetil
ON
RtrPembDetil
168
•
BkHutang : CREATE UNIQUE INDEX Idx_BkHutangID ON BkHutang (BkHutangID) CREATE INDEX Idx_KdBkHutang ON BkHutang (KdBkHutang) CREATE INDEX Idx_BPBIDHutang ON BkHutang (BPBID) CREATE INDEX Idx_TrPembIDHutang ON BkHutang (TrPembID) CREATE INDEX Idx_RtrPembIDHutang ON BkHutang (RtrPembID) CREATE INDEX Idx_KaryawanIDHutang ON BkHutang (KaryawanID)
•
VoucherPengeluaranKas : CREATE UNIQUE INDEX Idx_PengluaranKasID ON VoucherPengluaranKas (PengluaranKasID) CREATE
INDEX
Idx_KdPengluaranKas
ON
VoucherPengluaranKas
(KdPengluaranKas) CREATE INDEX Idx_BkHutangID ON VoucherPengluaranKas (BkHutangID) CREATE
INDEX
Idx_KaryawanIDKas
ON
VoucherPengluaranKas
(KaryawanID) CREATE INDEX Idx_TrPembIDKas ON VoucherPengluaranKas (TrPembID) •
BuktiPenerimaanBrg : CREATE UNIQUE INDEX Idx_BPBID ON BuktiPenerimaanBrg (BPBID) CREATE INDEX Idx_KdBPB ON BuktiPenerimaanBrg (KdBPB) CREATE INDEX Idx_KaryawanIDBPB ON BuktiPenerimaanBrg (KaryawanID) CREATE INDEX Idx_TrPembIDBPB ON BuktiPenerimaanBrg (TrPembID)
•
BuktiPenerimaanBrgDetil :
169
CREATE UNIQUE INDEX Idx_BPBIDDetil ON BuktiPenerimaanBrgDetil (BPBID, BahanBakuID) •
BuktiPenerimaanRetur : CREATE UNIQUE INDEX Idx_BPBReturID ON BuktiPenerimaanRetur (BPBReturID) CREATE INDEX Idx_KdBPBRetur ON BuktiPenerimaanRetur (KdBPBRetur) CREATE
INDEX
Idx_KaryawanIDBPBRtr
ON
BuktiPenerimaanRetur
Idx_RtrPembIDBPBRtr
ON
BuktiPenerimaanRetur
(KaryawanID) CREATE
INDEX
(RtrPembID) •
BuktiPenerimaanReturDetil : CREATE
UNIQUE
INDEX
Idx_BPBReturIDDetil
ON
BuktiPenerimaanReturDetil (BPBReturID, BahanBakuID) •
StokBahanBaku : CREATE
UNIQUE
INDEX
Idx_BahanBakuID
ON
StokBahanBaku
(BahanBakuID, KdTrans) •
Kota : CREATE UNIQUE INDEX Idx_KotaID ON Kota (KotaID)
•
TelpKaryawan : CREATE
UNIQUE
INDEX
(KdKaryawan, TelpKaryawan) •
TelpPemasok :
Idx_TelpKaryawan
ON
TelpKaryawan
170
CREATE UNIQUE INDEX Idx_TelpPemasok ON TelpPemasok (KdPemasok, TelpPemasok)
4.1.3.2.4
Estimasi Disk Space Tujuan dari perkiraan disk space adalah untuk menghitung kapasitas
penyimpan yang dibutuhkan untuk database. Berikut ini adalah perkiraan disk space : Tujuan dari langkah ini adalah untuk menghitung kapasitas penyimpanan yang dibutuhkan oleh basisdata. Hal yang harus diperhatikan adalah seberapa besar ruang penyimpanan yang tersedia saat ini. Penyimpanan yang tersedia saat ini akan menentukan besarnya kapasitas penyimpanan yang dibutuhkan sekarang dan lima tahun mendatang. Pada target DBMS dapat ditentukan besar data tiap tabel. Sehingga besar data untuk tiap tipe data adalah sebagai berikut: •
Varchar(n) = n + 2 byte + (2 byte untuk tiap 1 tabel)
•
Datetime (8 byte)
•
Integer(4 byte)
•
Money (8 byte)
Sedangkan kapasitas ruang penyimpanan yang digunakan dapat dihitung dengan cara menghitung besar total data yang digunakan ditambah dengan besar nilai index clustered dan non-clustered kemudian ketiga-tiganya dijumlahkan. Fill factor yang dipakai adalah 0-100 dengan besar data yang digunakan dijelaskan dalam tabel-tabel perhitungan kapasitas penyimpanan sebagai berikut:
171
Tabel
Num_Rows
Karyawan Pemasok BahanBaku StokBahanBaku MintaBahanBaku MintaBahanBakuDetil TrPemb TrPembDetil RtrPemb RtrPembDetil BkHutang VoucherPengeluaranKas BuktiPenerimaanBrg BuktiPenerimaanBrgDetil BuktiPenerimaanRetur BuktiPenerimaanReturDetil Kota TelpPemasok TelpKaryawan
20 20 20 60 20 40 20 40 10 20 30 30 20 40 10 20 100 60 60
Pertumbuhan tiap tahun ( baris ) 5 20 50 600 200 400 200 400 100 200 200 200 200 400 100 200 5 15 15
Num_Rows ( 5 tahun ) 45 120 270 3060 1020 2040 1020 2040 510 1020 1030 1030 1020 2040 510 1020 125 135 135
Keterangan: •
Num_Rows: jumlah baris
•
Pertumbuhan Data Tiap Tahun: besar pertumbuhan data tiap tahun.
• Tabel
Karyawan Pemasok BahanBaku StokBahanBaku MintaBahanBaku
Num_Rows(5 tahun): jumlah baris 5 tahun mendatang Num Rows
Row Size
Row Per Page
45 120 270 3060 1020
557 581 544 72 495
14 13 14 109 16
Free Row Per Page 4 4 4 27 4
Num Page
Tabel Size
5 14 27 38 85
40.960 114.688 221.184 311.296 696.320
172
MintaBahanBakuDetil TrPemb TrPembDetil RtrPemb RtrPembDetil BkHutang VoucherPengeluaranKas BuktiPenerimaanBrg BuktiPenerimaanBrgDetil BuktiPenerimaanRetur BuktiPenerimaanReturDeti l Kota TelpPemasok TelpKaryawan
2040 1020 2040 510 1020 1030 1030 1020 2040 510 1020
84 426 84 296 290 229 365 401 32 401 32
94 18 94 32 27 35 22 20 238 20 238
28 4 28 11 6 10 6 5 59 7 83
31 73 31 25 49 42 65 68 12 39 7
253.952 598.016 253.952 204.800 401.408 344.064 532.480 557.056 98.304 319.488 57.344
125 135 135
68 38 38
115 40 2 16.384 202 60 1 8.192 202 60 1 8.192 Data Used Space 5.038.080
Keterangan:
Row_Size = Fixed_Data_Size + Variable_Data_Size + Null_Bitmap + 4 Fixed_Data_Size adalah jumlah byte di kolom yang panjangnya sudah pasti. Variable_Data_Size = 2 + (Num_Variable_Cols x 2) + Max_Var_Size Num_Variable_Cols
adalah jumlah kolom yang memiliki panjang
variabel. Max_Var_Size adalah jumlah ukuran maksimum dari kolom yang memiliki panjang variabel tersebut. Null_Bitmap = 2 + (( Num_Cols + 7) / 8 ) Nilai 4 merepresentasikan data row header.
Rows_Per_Page = 8096 / (Row_Size + 2)
173
Hasil yang didapatkan dibulatkan ke bawah sampai jumlah baris yang terdekat.
Fill_Factor adalah faktor besarnya data terisi tiap halaman dengan nilai antara 0 – 100.
Free_Rows_Per_Page = 8096 x ((100 - Fill_Factor) / 100) / (Row_Size + 2) Hasil yang didapatkan dibulatkan ke bawah sampai jumlah baris yang terdekat.
Num_Pages = Num_Rows / (Rows_Per_Page - Free_Rows_Per_Page) Hasil yang didapatkan dibulatkan ke atas sampai jumlah halaman yang terdekat.
Table_ Size = 8192 x Num_Pages
Data_Space_Used adalah jumlah total keseluruhan Table_ Size dari semua tabel. 5.038.080 Data Space Used = 5.038.080 byte = 5.038 Kbyte = 5.1 Mbyte
Untuk menghitung besar data pada clustered index dapat dilihat dari table berikut:
174
Clustered Index Size
Num Cindex Page Num Pages Clevel 0
Cindex Rows Per Page Cindex Row Size
Cindex Null Bitmap Total Row Size
Tabel Clustered Index Karyawan Pemasok BahanBaku MintaBahanBaku TrPemb RtrPemb BkHutang
557 581 544 495 426 296 229
0 0 0 0 0 0 0
17 17 17 17 17 17 17
426 426 426 426 426 426 426
1 1 1 1 1 1 1
1 1 1 1 1 1 1
8.192 8.192 8.192 8.192 8.192 8.192 8.192
VoucherPengeluaranK as BuktiPenerimaanBrg BuktiPenerimaanRetu r Kota TelpKaryawan TelpPemasok
365
0
17
426
1
1
8.192
401 401
0 0
17 17
426 426
1 1
1 1
8.192 8.192
125 135 135
0 0 0
17 17 17
426 426 426
1 1 1
1 1 1
8.192 8.192 8.192
Keterangan: •
Total_Row_Size merupakan jumlah besar data tiap baris
•
CIndex_Row_Size
=
Fixed_CKey_Size
+
Variable_CKey_Size
+
CIndex_Null_Bitmap + 1 + 8 Fixed_CKey_Size adalah jumlah kolom indeks cluster yang memiliki panjang pasti. Variable_CKey_Size (Jumlah total dari kolom indeks cluster yang memiliki panjang
variabel)
=
2
+
(Num_Variable_CKey_Cols
Max_Var_CKey_Size CIndex_Null_Bitmap = 2 + (( Num_CKey_Cols + 7) / 8 ) •
CIndex_Rows_Per_Page = 8096 / (CIndex_Row_Size + 2)
x
2)
+
175
Hasil yang didapatkan dibulatkan ke bawah sampai jumlah yang terdekat. •
Num_Pages_CLevel_0
=
(Data_Space_Used/8192)
/
CIndex_Rows_Per_Page Hasil yang didapatkan dibulatkan ke atas sampai jumlah yang terdekat •
Num_Page_CLevel_1 = Num_Page_CLevel_0 / CIndex_Row_Per_Page Hasil yang didapatkan dibulatkan ke atas sampai jumlah yang terdekat. Lakukan hal ini sampai jumlah indeks halaman tepat 1 setelah dibulatkan ke atas.
•
Num_CIndex_Page = Num_Page_CLevel_0 + Num_Page_CLevel_1+ Num_Page_CLevel_2 +… + Num_Page_CLevel_n Pada tabel ini berhenti pada level satu maka jumlah halaman indeks: Num_CIndex_Page = Num_Page_CLevel_0 + Num_Page_CLevel_1
•
Clustered Index Size = 8192 x Num_CIndex_Page Sedangkan untuk menghitung besar data pada non-clustered index
diperlihatkan dalam tabel berikut:
PermintaanBr gID BahanBakuID KaryawanID PemasokID PermintaanBr gID TrPembID BahanBakuID
Non clustere d index size Num Index
KaryawanID
Num P Num Page
TrPembD etil
Free Index Index Row P Index Row NL Index Row NL Index Detail non clustere d index
Tabel non clustere d index
MintaBah anBaku MintaBah anBakuD etil TrPemb
17
426
26
289
93
6
1
7
57.344
25
299
34
224
71
14
1
15
122.880
33
231
42
184
57
9
1
10
81.920
25
299
34
224
71
14
1
15
122.880
176
RtrPemb
RtrPemb Detil BuktiPen erimanBr g BuktiPen erimaanB rgDetil BuktiPen erimaanR etur BuktiPen erimaanR eturDetil BkHutan g
StokBaha nBaku Pemasok
TrPembID PemasokID KaryawanID RtrPembID BahanBakuID TrPembID KaryawanID
33
231
42
184
57
5
1
6
49.152
25
299
34
224
71
7
1
8
65.536
25
299
34
224
71
7
1
8
65.536
BPBID BahanBakuID
25
299
34
224
71
14
1
15
122.880
RtrPembID KaryawanID
25
299
34
224
71
4
1
5
40.960
BPBReturID BahanBakuID
33
231
42
184
57
5
1
6
49.152
41
188
50
155
48
10
1
11
90.122
67
117
76
103
31
46
1
47
385.024
17
426
26
289
93
1
-
1
8.912
33
231
42
184
57
9
1
10
81.920
TrPembID KaryawanID RtrPembID BPBID BahanBakuID KdTrans KotaID
VoucherP TrPembID engeluran BkHutangID Kas KaryawanID
Keterangan:
NL_Index_Row_Size = Fixed_Key_Size + Variable_Key_Size + Index_Null_Bitmap + 1 + 8 Fixed_Key_Size adalah jumlah byte pada kolom yang mempunyai panjang yang pasti. Variable_Key_Size) = 2 + (Num_Variable_Key_Cols x 2) + Max_Var_Key_Size
177
Num_Variable_Key_Cols adalah jumlah kolom indeks yang mempunyai panjang variabel. Max_Var_Key_Size adalah jumlah maksimal kolom indeks yang mempunyai panjang variabel. Index_Null_Bitmap) = 2 + (( Num_Key_Cols + 7) / 8 )
NL_Index_Rows_Per_Page = 8096 / (NL_Index_Row_Size + 2) Hasilnya dibulatkan ke bawah sampai jumlah yang terdekat.
Index_Row_Size = CIndex_Row_Size + Fixed_Key_Size + Variable_Key_Size + Index_Null_Bitmap + 1 Nilai 1 menunjukkan index row header. CIndex_Row_Size adalah jumlah total index row size untuk index clustered.
Index_Rows_Per_Page = 8096 / (Index_Row_Size + 2) Hasil dibulatkan ke bawah sampai jumlah yang terdekat.
Free_Index_Rows_Per_Page = 8096 * ((100 – (Fill_Factor) / 100) / Index_Row_Size
Num_Pages_Level_0 = Num_Rows / (Index_Row_Per_Page - Free_Index_Rows_Per_Page)
Num_Pages_Level_1 = Num_Pages_Level_0 / NL_Index_Row_Size
178
Lakukan ini sampai jumlah indeks halaman tepat 1 setelah dibulatkan ke atas. Pada tabel ini berhenti di level1.
Num_Index_Pages = Num_Pages_Level_0 + … + Num_Pages_Level_n
Tabel
Data Space Used
Karyawan Pemasok BahanBaku MintaBahanBaku MintaBahanBakuDetil TrPemb TrPembDetil RtrPemb RtrPembDetil BuktiPenerimaanBrg BuktiPenerimaanBrgDetil BuktiPenerimaanRetur BuktiPenerimaanReturDetil BkHutang VoucherPengeluaranKas StokBahanBaku Kota TelpKaryawan TelpPemasok
40.960 114.688 221.184 311.296 696.320 253.952 598.016 253.952 204.800 401.408 344.064 532.480 557.056 98.304 319.488 57.344 16.384 8.192 8.192 5.038.080
Non Clustered Index Size 0 0 0 57.344 122.880 81.920 122.880 49.152 65.536 65.536 122.880 40.960 65.536 90.112 81.920 385.024 0 0 0 1.351.680
Clustured Index Size 8.192 8.192 8.192 8.192 0 8.192 0 8.192 0 8.192 0 8.192 0 8.192 8.192 0 8.192 8.192 8.192 106.496
Tabel 4.14 Estimasi disk space 5 tahun mendatang
Keterangan: •
Clustered Index Size = 8192 x Num_CIndex_Page
Besar Total Data 49.152 122.880 229.376 376.832 819.200 344.064 720.896 311.296 270.336 475.136 466.944 581.632 622.592 196.608 409.600 442.368 24.576 16.384 16.384 6.496.256
179
Num_CIndex_Page = Num_Page_CLevel_0 + Num_Page_CLevel_1+ Num_Page_CLevel_2 +… + Num_Page_CLevel_n Pada tabel ini berhenti pada level satu maka jumlah halaman indeks: Num_CIndex_Page = Num_Page_CLevel_0 + Num_Page_CLevel_1 •
Nonclustered Index Size = 8192 x Num_Index_Pages Num_Index_Pages = Num_Pages_Level_0 + Num_Pages_Level_1 + Num_Pages_Level_2 + ... + Num_Pages_Level_n Pada tabel ini berhenti pada level satu maka jumlah halaman indeks: Num_Index_Page = Num_Page_Level_0 + Num_Page_Level_1
•
Total Table Size (bytes) = Data_Space_Used + Clustered index size + Nonclustered index size + ...n Total kapasitas penyimpanan data untuk 5 tahun = 5.038.080 + 1.351.680 + 106.496 = 6.496.256 byte = 6496 Kbyte = 6,5 Mbyte
4.1.3.3
Keamanan
4.1.3.3.1 Merancang User View
180
Bagian Direksi
Sekret aris
Akuntansi dan Keuangan
KayawanView
X
X
X
X
X
PemasokView
X
X
X
X
-
BahanBakuView
X
-
-
X
X
MintaBahanBakuView
X
-
-
X
X
TrPembView
X
X
X
X
X
RtrPembView
X
X
X
X
X
BkHutangView
X
X
X
X
-
BuktiPenerimaanBrgView
X
X
X
X
X
BuktiPenerimaanReturView
X
X
X
X
X
VoucherPengeluaranKasView
X
X
X
X
-
StokBarang
X
X
X
X
X
View
Pemb Gud elian ang
1. Karyawan •
CREATE VIEW KaryawanView AS SELECT
Karyawan.KdKaryawan,Karyawan.NmKaryawan,
Karyawan.JnsKelamin, Karyawan.TglLahir, Karyawan.AlmtKaryawan, Karyawan.Jabatan, TelpKaryawan.TelpKaryawan, Karyawan.TglMasuk, Karyawan.TglKeluar, Karyawan.Password FROM Karyawan INNER JOIN TelpKaryawan ON Karyawan.KaryawanID = TelpKaryawan.KaryawanID 2. Pemasok •
CREATE VIEW PemasokView AS
181
SELECT Pemasok.KdPemasok, Pemasok.NmPemasok, Pemasok.NmKontak, Pemasok.AlmtPemasok, Kota.NamaKota, Pemasok.KdPosPemasok, TelpPemasok.TelpPemasok, Pemasok.Fax FROM Pemasok INNER JOIN TelpPemasok ON Pemasok.PemasokID = TelpPemasok.PemasokID INNER JOIN Kota ON Pemasok.KotaID = Kota.KotaID
3. BahanBaku •
CREATE VIEW BahanBakuView AS SELECT
KdBahanBaku, NmBahanBaku, SatuanBrg, HrgSatuan, MinStok,
KetBahanBaku, StatusBahanBaku FROM BahanBaku
4. MintaBahanBaku •
CREATE VIEW MintaBahanBakuView AS SELECT MintaBahanBaku.KdPermintaanBrg, MintaBahanBaku.TglPermintaanBrg, Karyawan.KdKaryawan, MintaBahanBaku.DimintaOleh, MintaBahanBaku.StatusPermintaanBrg, MintaBahanBaku.KetPermintaanBrg, BahanBaku.KdBahanBaku, MintaBahanBakuDetil.JmlhBahanBaku
182
FROM MintaBahanBaku INNER JOIN MintaBahanBakuDetil ON MintaBahanBaku.PermintaanBrgID = MintaBahanBakuDetil.PermintaanBrgID INNER JOIN Karyawan ON dbo.MintaBahanBaku.KaryawanID = Karyawan.KaryawanID INNER JOIN BahanBaku ON MintaBahanBakuDetil.BahanBakuID = BahanBaku.BahanBakuID
5. TrPemb •
CREATE VIEW TrPembView AS SELECT TrPemb.KdTrPemb, TrPemb.TglTrPemb, Karyawan.KdKaryawan, Pemasok.KdPemasok, MintaBahanBaku.KdPermintaanBrg, TrPemb.DP, TrPemb.PPNPemb, TrPemb.KetPemb, TrPemb.StatusPemb, BahanBaku.KdBahanBaku, TrPembDetil.JmlhBahanBakuBeli FROM TrPemb INNER JOIN TrPembDetil ON TrPemb.TrPembID = TrPembDetil.TrPembID INNER JOIN BahanBaku ON TrPembDetil.BahanBakuID = BahanBaku.BahanBakuID INNER JOIN Karyawan ON TrPemb.KaryawanID = Karyawan.KaryawanID INNER JOIN Pemasok ON TrPemb.PemasokID = Pemasok.PemasokID INNER JOIN MintaBahanBaku ON TrPemb.PermintaanBrgID = MintaBahanBaku.PermintaanBrgID AND Karyawan.KaryawanID = MintaBahanBaku.KaryawanID
183
6. RtrPemb •
CREATE VIEW RtrPembView AS SELECT RtrPemb.KdRtrPemb, RtrPemb.TglRtrPemb, TrPemb.KdTrPemb, RtrPemb.ReturOleh, Karyawan.KdKaryawan, Pemasok.KdPemasok, RtrPemb.StatusRetur, BahanBaku.KdBahanBaku, RtrPembDetil.JmlhBahanBakuRtr FROM
RtrPemb INNER JOIN RtrPembDetil ON RtrPemb.RtrPembID =
RtrPembDetil.RtrPembID INNER JOIN BahanBaku ON RtrPembDetil.BahanBakuID = BahanBaku.BahanBakuID INNER JOIN Karyawan ON RtrPemb.KaryawanID = Karyawan.KaryawanID INNER JOIN Pemasok ON RtrPemb.PemasokID = Pemasok.PemasokID INNER JOIN TrPemb ON RtrPemb.TrPembID = TrPemb.TrPembID AND Karyawan.KaryawanID = TrPemb.KaryawanID AND Pemasok.PemasokID = TrPemb.PemasokID
7. BkHutang •
CREATE VIEW BkHutangView AS
184
SELECT BkHutang.KdBkHutang, BkHutang.TglBkHutang, BkHutang.TglJthTempo, BuktiPenerimaanBarang.KdBPB, Karyawan.KdKaryawan, BkHutang.CaraBayar, BkHutang.StatusBayar, BkHutang.TotalBayar FROM BkHutang INNER JOIN TrPemb ON BkHutang.TrPembID = TrPemb.TrPembID INNER JOIN Karyawan ON BkHutang.KaryawanID = Karyawan.KaryawanID AND TrPemb.KaryawanID = Karyawan.KaryawanID INNER JOIN BuktiPenerimaanBarang ON BkHutang.BPBID = BuktiPenerimaanBarang.BPBID AND TrPemb.TrPembID = BuktiPenerimaanBarang.TrPembID AND Karyawan.KaryawanID = BuktiPenerimaanBarang.KaryawanID
8. BuktiPenerimaanBrg •
CREATE VIEW BuktiPenerimaanBrgView AS SELECT BuktiPenerimaanBarang.KdBPB, BuktiPenerimaanBarang.TglBPB, TrPemb.KdTrPemb, Karyawan.KdKaryawan, BuktiPenerimaanBarang.KetBPB, BuktiPenerimaanBarang.StatusBPB, BahanBaku.KdBahanBaku, BuktiPenerimaanBrgDetil.JmlhBrgTerima FROM BuktiPenerimaanBarang INNER JOIN BuktiPenerimaanBrgDetil ON BuktiPenerimaanBarang.BPBID = BuktiPenerimaanBrgDetil.BPBID INNER JOIN TrPemb ON BuktiPenerimaanBarang.TrPembID = TrPemb.TrPembID INNER JOIN
185
Karyawan ON BuktiPenerimaanBarang.KaryawanID = Karyawan.KaryawanID AND TrPemb.KaryawanID = Karyawan.KaryawanID INNER JOIN BahanBaku ON BuktiPenerimaanBrgDetil.BahanBakuID = BahanBaku.BahanBakuID
9. BuktiPenerimaanReturView •
CREATE VIEW BuktiPenerimaanReturView AS SELECT tblBuktiPenerimaanRetur.KdBPBRetur, tblBuktiPenerimaanRetur.TglBPBRetur, RtrPemb.KdRtrPemb, Karyawan.KdKaryawan, tblBuktiPenerimaanRetur.KetBPBRetur, tblBuktiPenerimaanRetur.StatusBPBRetur, BahanBaku.KdBahanBaku, tblBuktiPenerimaanReturDetil.JmlhReturBrgTerima FROM dbo.tblBuktiPenerimaanRetur INNER JOIN tblBuktiPenerimaanReturDetil ON tblBuktiPenerimaanRetur.BPBReturID = tblBuktiPenerimaanReturDetil.BPBReturID INNER JOIN RtrPemb ON tblBuktiPenerimaanRetur.RtrPembID = RtrPemb.RtrPembID INNER JOIN BahanBaku ON tblBuktiPenerimaanReturDetil.BahanBakuID = BahanBaku.BahanBakuID INNER JOIN Karyawan ON tblBuktiPenerimaanRetur.KaryawanID = Karyawan.KaryawanID
186
10. VoucherPengeluaranKas •
CREATE VIEW VoucherPengeluaranKasView AS SELECT VoucherPengeluaranKas.KdPengeluaranKas, VoucherPengeluaranKas.TglPengeluaranKas, BkHutang.KdBkHutang, Karyawan.KdKaryawan, VoucherPengeluaranKas.TotalPengeluaranKas, VoucherPengeluaranKas.KetPengeluaranKas FROM VoucherPengeluaranKas INNER JOIN BkHutang ON VoucherPengeluaranKas.BkHutangID = BkHutang.BkHutangID INNER JOIN Karyawan ON VoucherPengeluaranKas.KaryawanID = Karyawan.KaryawanID
11. StokBahanBaku •
CREATE VIEW StokBahanBakuView AS SELECT BahanBaku.KdBahanBaku, BahanBaku.NmBahanBaku, StokBahanBaku.KdTrans, StokBahanBaku.Kuantitas FROM StokBahanBaku INNER JOIN BahanBaku ON StokBahanBaku.BahanBakuID = BahanBaku.BahanBakuID
4.1.3.3.2 Merancang Mekanisme Keamanan
187
Tujuan dari langkah ini adalah untuk merancang mekanisme keamanan pada basisdata seperti yang telah dispesifikasi oleh user. Perancangan mekanisme keamanan adalah sebagai berikut : Bagian Admin
Bagian Pembelian
Bagian Gudang
Bagian Akuntansi
Kayawan
ALL
SELECT
SELECT
SELECT
Pemasok
ALL
SELECT
SELECT
SELECT
BahanBaku
ALL
SELECT
SELECT
SELECT
MintaBahanBaku
ALL
SELECT
ALL
SELECT
MintaBahanBakuDetil
ALL
SELECT
ALL
SELECT
TrPemb
ALL
ALL
SELECT
SELECT
TrPembDetil
ALL
ALL
SELECT
SELECT
RtrPemb
ALL
ALL
SELECT
SELECT
RtrPembDetil
ALL
ALL
SELECT
SELECT
BkHutang
ALL
SELECT
SELECT
ALL
BuktiPenerimaanBrg
ALL
SELECT
ALL
SELECT
BuktiPenerimaanBrgDetil
ALL
SELECT
ALL
SELECT
BuktiPenerimaanRetur
ALL
SELECT
ALL
SELECT
BuktiPenerimaanReturDetil
ALL
SELECT
ALL
SELECT
VoucherPengeluaranKas
ALL
SELECT
SELECT
ALL
StokBarang
ALL
SELECT
SELECT
SELECT
TelpKaryawan
ALL
SELECT
SELECT
SELECT
TelpPemasok
ALL
SELECT
SELECT
SELECT
Kota
ALL
SELECT
SELECT
SELECT
Grant
(Admin) Grant All ON Karyawan TO admin Grant All ON Pemasok TO admin
188
Grant All ON BahanBaku TO admin Grant All ON TelpKaryawan TO admin Grant All ON TelpPemasok TO admin Grant All ON StokBahanBaku TO admin Grant All ON MintaBahanBaku TO admin Grant All ON MintaBahanBakuDetil TO admin Grant All ON TrPemb TO admin Grant All ON TrPembDetil TO admin Grant All ON RtrPemb TO admin Grant All ON RtrPembDetil TO admin Grant All ON BuktiPenerimaanBrg TO admin Grant All ON BuktiPenerimaanBrgDetil TO admin Grant All ON BuktiPenerimaanRetur TO admin Grant All ON BuktiPenerimaanReturDetil TO admin Grant All ON VoucherPengluaranKas TO admin Grant All ON BkHutang TO admin Grant All ON Kota TO admin
(Bagian Pembelian : Melly) Grant Select ON Karyawan TO Melly Grant Select ON Pemasok TO Melly Grant Select ON BahanBaku TO Melly Grant Select ON TelpKaryawan TO Melly
189
Grant Select ON TelpPemasok TO Melly Grant Select ON StokBahanBaku TO Melly Grant Select ON MintaBahanBaku TO Melly Grant Select ON MintaBahanBakuDetil TO Melly Grant All ON TrPemb TO Melly Grant All ON TrPembDetil TO Melly Grant All ON RtrPemb TO Melly Grant All ON RtrPembDetil TO Melly Grant Select ON BuktiPenerimaanBrg TO Melly Grant Select ON BuktiPenerimaanBrgDetil TO Melly Grant Select ON VoucherPengeluaranKas TO Melly Grant Select ON BuktiPenerimaanRetur TO Melly Grant Select ON BuktiPenerimaanReturDetil TO Melly Grant Select ON BkHutang TO Melly Grant Select ON Kota TO Melly
(Bagian Gudang : Eka) Grant Select ON Karyawan TO Eka Grant Select ON BahanBaku TO Eka Grant Select ON TelpKaryawan TO Eka Grant Select ON StokBahanBaku TO Eka Grant All ON MintaBahanBaku TO Eka Grant All ON MintaBahanBakuDetil TO Eka
190
Grant Select ON TrPemb TO Eka Grant Select ON TrPembDetil TO Eka Grant Select ON RtrPemb TO Eka Grant Select ON RtrPembDetil TO Eka Grant All ON BuktiPenerimaanBrg TO Eka Grant All ON BuktiPenerimaanBrgDetil TO Eka Grant All ON BuktiPenerimaanRetur TO Eka Grant All ON BuktiPenerimaanReturDetil TO Eka
(Bagian Akuntansi : Dika) Grant Select ON Karyawan TO Dika Grant Select ON BahanBaku TO Dika Grant Select ON TelpKaryawan TO Dika Grant Select ON StokBahanBaku TO Dika Grant Select ON MintaBahanBaku TO Dika Grant Select ON MintaBahanBakuDetil TO Dika Grant Select ON TrPemb TO Dika Grant Select ON TrPembDetil TO Dika Grant Select ON RtrPemb TO Dika Grant Select ON RtrPembDetil TO Dika Grant All ON BkHutang TO Dika Grant All ON VoucherPengeluaranKas TO Dika
191
4.2 Perancangan Aplikasi Perancangan aplikasi berikut merupakan rancangan yang akan digunakan oleh perusahaan. Di dalam perancangan aplikasi terdapat rancangan struktur menu-menu untuk setiap jabatan. Kemudian dilanjutkan dengan pembuatan State Transition Diagram (STD), rancangan layar beserta spesifikasi prosesnya.
4.2.1
Perancangan Stuktur Program Stuktur program ini menggambarkan menu-menu yang terdapat pada aplikasi
yang ada. Menu-menu yang ada mencakup proses untuk input dan output. Pada bagan ini dimulai dari layar windows untuk login masuk kedalam aplikasi tersebut sampai menu untuk keluar dari aplikasi tersebut.
192
Gambar 4.37 Bagan Stuktur Program
4.2.2
State Transition Diagram Menurut Whitten (2004, p673), State Transition Diagram digunakan untuk
menggambarkan urutan dan variasi tampilan yang akan tampil pada sistem ketika user berada pada suatu tahap tertentu. Sebagai contoh untuk proses Login terlebih dahulu dengan membuka aplikasi lalu akan muncul perintah Login dilayar supaya user mengisi Login tersebut dengan username dan pin lalu komputer memeriksa hasil input dari user tersebut melalui Database yang tersedia, jika hasil Login tersebut benar maka akan muncul Layar
193
utama, tetapi jika hasil dari Login tersebut salah baik dari nama ataupun password maka muncul perintah Login dan pegawai tersebut harus mengulang Login . Berikut ini contoh STD Login : Menurut Whitten (2004, p673), State Transition Diagram digunakan untuk menggambarkan urutan dan variasi tampilan yang akan tampil pada sistem ketika user berada pada suatu tahap tertentu. Sebagai contoh untuk proses Login terlebih dahulu dengan membuka aplikasi lalu akan muncul perintah Login dilayar supaya user mengisi Login tersebut dengan username dan pin lalu komputer memeriksa hasil input dari user tersebut melalui Database yang tersedia, jika hasil Login tersebut benar maka akan muncul Layar utama, tetapi jika hasil dari Login tersebut salah baik dari nama ataupun password maka muncul perintah Login dan pegawai tersebut harus mengulang Login . Berikut ini contoh STD Login :
Gambar 4.38 STD Layar Windows Layar Login
Masukan Kode Karyawan dan Password
Tampilkan pesan kesalahan dan kembali ke Layar Login jika salah
Cek Login Tampilkan Layar Menu Utama jika benar Menu Utama
Gambar 4.39 STD Login
194
Untuk logout dari aplikasi basisdata, maka user klik menu exit untuk keluar. Terdapat konfirmasi logout bagi user, jika user tidak logout maka akan tetap pada layar utama. Jika user logout maka akan keluar dari aplikasi.
Gambar 4.40 STD Menu Utama
Gambar 4.41 STD Menu Master Data
195
Gambar 4.42 STD Menu Transaksi
Gambar 4.43 STD Menu Pembayaran
196
Gambar 4.44 STD Menu Laporan
197
Submenu Data Karyawan Klik Submenu Data Karyawan Tampilkan Master Karyawan
Klik "Tambah" Penambahan Data Karyawan Penambahan Data Karyawan
Ketik Textbox "Keyword" Pencarian Data Karyawan Pencarian Data Karyawan
Master Karyawan Penambahan Data Karyawan Error
Klik "Simpan" Kode Karyawan tidak diisi. Tampilkan pesan kesalahan
Pengubahan Data Pemasok
Keluar dari Master Karyawan
Klik "Ubah" Pengubahan Data Pemasok
Klik "Close" Keluar dari Master Karyawan
Klik "Delete" Penghapusan Data Karyawan
Penghapusan Data Karyawan
Gambar 4.45 STD Submenu Data Karyawan
198
Submenu Data Pemasok Klik Submenu Data Pemasok Tampilkan Master Pemasok
Klik "Tambah" Penambahan Data Pemasok Penambahan Data Pemasok
Ketik Textbox "Keyword" Pencarian Data Pemasok Pencarian Data Pemasok
Master Pemasok Penambahan Data Pemasok Error
Klik "Simpan" KodePemasok tidak diisi. Tampilkan pesan kesalahan
Pengubahan Data Pemasok
Keluar dari Master Pemasok
Klik "Ubah" Pengubahan Data Pemasok
Klik "Close" Keluar dari Master Pemasok
Klik "Delete" Penghapusan Data Pemasok
Penghapusan Data Pemasok
Gambar 4.46 STD Submenu Data Pemasok
199
Submenu Data Bahan Baku Klik Submenu Data Bahan Baku Tampilkan Master Bahan Baku
Klik "Tambah" Penambahan Data Bahan Baku Penambahan Data Bahan Baku
Ketik Textbox "Keyword" Pencarian Data Bahan Baku Pencarian Data Bahan Baku
Master Bahan Baku Penambahan Data Bahan Baku Error
Klik "Simpan" KodeBahan Baku tidak diisi. Tampilkan pesan kesalahan
Pengubahan Data Bahan Baku
Keluar dari Master Bahan Baku
Klik "Ubah" Pengubahan Data Bahan Baku
Klik "Close" Keluar dari Master Bahan Baku
Klik "Delete" Penghapusan Data Bahan Baku
Penghapusan Data Bahan Baku
Gambar 4.47 STD Submenu Data Bahan Baku
200
Gambar 4.48 STD Submenu Transaksi Permintaan
201
Gambar 4.49 STD Submenu Transaksi Pembelian
202
Gambar 4.50 STD Submenu Transaksi Penerimaan
203
Gambar 4.51 STD Submenu Transaksi Penerimaan Retur
204
Gambar 4.52 STD Submenu Stok Bahan Baku Submenu Pengeluaran Kas Klik Submenu Pengeluaran Kas Tampilkan Form Pengeluaran Kas
Penambahan Data Pengeluaran Kas
Klik "Tambah" Penambahan Data Pengeluaran Kas
Ketik Textbox "Keyword" Pencarian Data Pengeluaran Kas Form Pengeluaran Kas
Pencarian Data Pengeluaran Kas
Transaksi Error Klik "Simpan" Kode Pengeluaran Kas tidak ada. Tampilkan pesan kesalahan
Pengubahan Data Pengeluaran Kas
Klik "Ubah" Pengubahan Data Pengeluaran Kas
Klik "Close" Keluar dari Form Pengeluaran Kas
Klik "Delete" Penghapusan Data Pengeluaran Kas
Keluar dari Form Pengeluaran Kas
Penghapusan Data Pengeluaran Kas
Gambar 4.53 STD Submenu Transaksi Pengeluaran Kas
205
Submenu Hutang Pembelian Klik Submenu Hutang Pembelian Tampilkan Buku Hutang
Klik "Tambah" Penambahan Data Buku Hutang Penambahan Data Buku Hutang
Ketik Textbox "Keyword" Pencarian Data Buku Hutang Pencarian Data Buku Hutang
Buku Hutang Transaksi Error
Klik "Simpan" Kode Buku Hutang tidak ada. Tampilkan pesan kesalahan
Pengubahan Data Buku Hutang
Klik "Ubah" Pengubahan Data Buku Hutang
Klik "Close" Keluar dari Buku Hutang
Keluar dari Buku Hutang
Penghapusan Data Buku Hutang Klik "Delete" Penghapusan Data Buku Hutang
Gambar 4.54 STD Submenu Transaksi Buku Hutang
206
SubmenuRetur Pembelian KlikSubmenuReturPembelian TampilkanFormReturPembelian Klik"Tambah" PenambahanDataRetur Pembelian PenambahanData ReturPembelian
KetikTextbox"Keyword" PencarianDataReturPembelian FormRetur Pembelian
TransaksiError
PencarianDataRetur Pembelian
Klik"Simpan" Kode Transaksi tidak ada. Tampilkanpesan kesalahan
PenambahanData ReturPembelianDetil
Klik"TambahBarang" PenambahanDataRetur PembelianDetil
PenghapusanDataRetur Klik"Hapus" Pembelian PenghapusanDataRetur Pembelian
TransaksiError Klik"SimpanBarang" Kode Barang tidak ada. Tampilkanpesan kesalahan
Klik"Close" KeluardariForm ReturPembelian
PenghapusanData ReturPembelianDetil Klik"Hapus Barang" PenghapusanDataRetur PembelianDetil
KeluardariFormRetur Pembelian
PengubahanData Klik "UbahBarang" ReturPembelianDetil PengubahanDataRetur PembelianDetil
Gambar 4.55 STD Submenu Transaksi Retur Pembelian Submenu Laporan Permintaan Klik Submenu Laporan Permintaan Tampilkan Form Laporan Permintaan Form Laporan Permintaan Klik icon "Print" Pencetakan Laporan Permintaan Laporan Permintaan
Gambar 4.56 STD Submenu Laporan Permintaan
207
Submenu Laporan Pembelian Klik Submenu Laporan Pembelian Tampilkan Form Laporan Pembelian Form Laporan Pembelian Klik icon "Print" Pencetakan Laporan Pembelian Laporan Pembelian
Gambar 4.57 STD Submenu Laporan Pembelian
Gambar 4.58 STD Submenu Laporan Retur
208
Gambar 4.59 STD Submenu Laporan Penerimaan
Gambar 4.60 STD Submenu Laporan Buku Hutang
209
Submenu Laporan Pengeluaran Kas Klik Submenu Laporan Pengeluaran Kas Tampilkan Form Laporan Pengeluaran Kas Form Laporan Pengeluaran Kas Klik icon "Print" Pencetakan Laporan Pengeluaran Kas Laporan Pengeluaran Kas
Gambar 4.61 STD Submenu Laporan Pengeluaran Kas
4.2.3
Perancangan Input / Output Perancangan input mengambarkan user interface yang untuk melakukan
manipulasi data yang akan diinput untuk disimpan ke dalam database. Sedangkan Perancangan output merupakan hasil keluaran dari data-data yang di input pada aplikasi yang ada dan keluaran hasil dari perancangan output tersebut berupa laporanlaporan. 4.2.3.1 Perancangan Input
Gambar 4.62 Rancangan Layar Login
210
Gambar 4.63 Rancangan Layar Menu
Gambar 4.64 Rancangan Layar Daftar Karyawan
211
Gambar 4.65 Rancangan Layar Karyawan Detil
Gambar 4.66 Rancangan Layar Daftar Pemasok
212
Gambar 4.67 Rancangan Layar Pemasok Detil
Gambar 4.68 Rancangan Layar Daftar Bahan Baku
213
Gambar 4.69 Rancangan Layar Bahan Baku Detil
Gambar 4.70 Rancangan Layar Find
Gambar 4.71 Rancangan Layar Daftar Transaksi Permintaan
214
Gambar 4.72 Rancangan Layar Transaksi Permintaan Detil
Gambar 4.73 Rancangan Layar Daftar Transaksi Pembelian
215
Gambar 4.74 Rancangan Layar Transaksi Pembelian Detil
Gambar 4.75 Rancangan Layar Daftar Transaksi Retur
216
Gambar 4.76 Rancangan Layar Transaksi Retur Detil
Gambar 4.77 Rancangan Layar Daftar Transaksi Penerimaan
217
Gambar 4.78 Rancangan Layar Transaksi Penerimaan Detil
Gambar 4.79 Rancangan Layar Daftar Transaksi Buku Hutang
218
Gambar 4.80 Rancangan Layar Transaksi Buku Hutang Detil
Gambar 4.81 Rancangan Layar Daftar Transaksi Pengeluaran Kas
Gambar 4.82 Rancangan Layar Transaksi Pengeluaran Kas Detil
219
Gambar 4.83 Rancangan Layar Transaksi Bukti Penerimaan Retur
Gambar 4.84 Rancangan Layar Transaksi Bukti Penerimaan Retur Detil
220
Gambar 4.85 Rancangan Layar Transaksi Stok Bahan Baku
Gambar 4.86 Rancangan Layar Laporan Permintaan
Gambar 4.87 Rancangan Layar Laporan Pembelian
221
Gambar 4.88 Rancangan Layar Laporan Retur
Gambar 4.89 Rancangan Layar Laporan Penerimaan
Gambar 4.90 Rancangan Layar Laporan Buku Hutang
Gambar 4.91 Rancangan Layar Laporan Pengeluaran Kas
222
4.2.4
Rancangan Output
PT. INDO PRIMA FOODS Jl. Industri Selatan I Blok QQ No. 8 A JABABEKA II Kawasan Industri Cikarang Barat Bekasi 17550 , Indonesia Telp. 021-89841101 , Fax. 021-89841102
Tanggal Cetak : dd/mm/yyyy
FORMULIR MINTA BAHAN BAKU Kode Permintaan Tanggal Permintaan Kode Karyawan Diminta Oleh Keterangan
: : : : :
XXXXX dd/mm/yyyy XXXXX XXXXX XXXXX
Kode Bahan Baku
Nama Bahan Baku
Jumlah
Satuan
XXXXX XXXXX XXXXX
XXXXX XXXXX XXXXX TOTAL
999 999 999 999
XXXXX XXXXX XXXXX
Gambar 4.92 Rancangan Output Laporan Permintaan Detail
PT. INDO PRIMA FOODS Jl. Industri Selatan I Blok QQ No. 8 A JABABEKA II Kawasan Industri Cikarang Barat Bekasi 17550 , Indonesia Telp. 021-89841101 , Fax. 021-89841102
Tanggal Cetak : dd/mm/yyyy
FORMULIR PEMBELIAN Kode Pembelian Tanggal Pembelian Kode Permintaan Kode Pemasok Kode Karyawan Keterangan
: : : : : :
XXXXX dd/mm/yyyy XXXXX XXXXX XXXXX XXXXX
Kd Bahan Baku
Nm Bahan Baku
Jumlah
Satuan
Harga ( @ )
Total
XXXXX XXXXX XXXXX
XXXXX XXXXX XXXXX
999 999 999
XXXXX XXXXX XXXXX
999.999 999.999 999.999 TOTAL
999.999 999.999 999.999 999.999
Gambar 4.93 Rancangan Output Laporan Pembelian Detail
223
PT. INDO PRIMA FOODS Jl. Industri Selatan I Blok QQ No. 8 A JABABEKA II Kawasan Industri Cikarang Barat Bekasi 17550 , Indonesia Telp. 021-89841101 , Fax. 021-89841102
Tanggal Cetak : dd/mm/yyyy
FORMULIR RETUR PEMBELIAN Kode Retur Tanggal Retur Kode Pembelian Kode Pemasok Kode Karyawan Retur Oleh
: : : : : :
XXXXX dd/mm/yyyy XXXXX XXXXX XXXXX XXXXX
Kd Bahan Baku
Nm Bahan Baku
Jml Beli
Jml Retur
Harga
Total
XXXXX XXXXX XXXXX XXXXX
XXXXX XXXXX XXXXX XXXXX
999 999 999 999
999 999 999 999
999.999 999.999 999.999 999.999 TOTAL
999.999 999.999 999.999 999.999 999.999
Gambar 4.94 Rancangan Output Laporan Retur Detail
PT. INDO PRIMA FOODS Jl. Industri Selatan I Blok QQ No. 8 A JABABEKA II Kawasan Industri Cikarang Barat Bekasi 17550 , Indonesia Telp. 021-89841101 , Fax. 021-89841102
Tanggal Cetak : dd/mm/yyyy
FORMULIR PENERIMAAN Kode Penerimaan Tanggal Penerimaan Kode Pembelian Kode Karyawan Keterangan
: : : : :
XXXXX dd/mm/yyyy XXXXX XXXXX XXXXX
Kode Bahan Baku
Nama Bahan Baku
Jumlah
Satuan
XXXXX XXXXX XXXXX XXXXX
XXXXX XXXXX XXXXX XXXXX TOTAL
999 999 999 999 999
XXXXX XXXXX XXXXX XXXXX
Gambar 4.95 Rancangan Output Laporan Penerimaan Detail
224
PT. INDO PRIMA FOODS Jl. Industri Selatan I Blok QQ No. 8 A JABABEKA II Kawasan Industri Cikarang Barat Bekasi 17550 , Indonesia Telp. 021-89841101 , Fax. 021-89841102
Tanggal Cetak : dd/mm/yyyy
Page 1 of 1
LAPORAN MINTA BAHAN BAKU Kd Permintaan
Tgl Permintaan
Kd Karyawan
Diminta Oleh
Keterangan
Kd Bahan Baku
Jumlah
XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX
dd/mm/yyyy dd/mm/yyyy dd/mm/yyyy dd/mm/yyyy dd/mm/yyyy dd/mm/yyyy dd/mm/yyyy dd/mm/yyyy
XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX
XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX
XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX
XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX
999 999 999 999 999 999 999 999
Gambar 4.96 Rancangan Output Laporan Permintaan List
PT. INDO PRIMA FOODS Jl. Industri Selatan I Blok QQ No. 8 A JABABEKA II Kawasan Industri Cikarang Barat Bekasi 17550 , Indonesia Telp. 021-89841101 , Fax. 021-89841102
Tanggal Cetak : dd/mm/yyyy
Page 1 of 1
LAPORAN PEMBELIAN Kd Pemb
Tgl Pemb
Kd Pmsk
Kd Prmntan
Keterangan
XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX
dd/mm/yyyy dd/mm/yyyy dd/mm/yyyy dd/mm/yyyy dd/mm/yyyy dd/mm/yyyy dd/mm/yyyy dd/mm/yyyy
XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX
XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX
XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX
Kd Bhn Baku Nm Bhn Baku XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX
XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX
Gambar 4.97 Rancangan Output Laporan Pembelian List
Jumlah 999 999 999 999 999 999 999 999
225
PT. INDO PRIMA FOODS Jl. Industri Selatan I Blok QQ No. 8 A JABABEKA II Kawasan Industri Cikarang Barat Bekasi 17550 , Indonesia Telp. 021-89841101 , Fax. 021-89841102
Tanggal Cetak : dd/mm/yyyy
Page 1 of 1
LAPORAN RETUR PEMBELIAN Kd Retur
Tgl Retur
Kd Pemb
Kd Bhn Baku
Nm Bhn Baku
Jumlah
Keterangan
XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX
dd/mm/yyyy dd/mm/yyyy dd/mm/yyyy dd/mm/yyyy dd/mm/yyyy dd/mm/yyyy dd/mm/yyyy dd/mm/yyyy
XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX
XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX
XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX
999 999 999 999 999 999 999 999
XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX
Gambar 4.98 Rancangan Output Laporan Retur List
PT. INDO PRIMA FOODS Jl. Industri Selatan I Blok QQ No. 8 A JABABEKA II Kawasan Industri Cikarang Barat Bekasi 17550 , Indonesia Telp. 021-89841101 , Fax. 021-89841102
Tanggal Cetak : dd/mm/yyyy
Page 1 of 1
LAPORAN PENERIMAAN Kd BPB
Tgl BPB
Kd Pemb
Keterangan
Kd Bhn Baku
Nm Bhn Baku
Jumlah
XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX
dd/mm/yyyy dd/mm/yyyy dd/mm/yyyy dd/mm/yyyy dd/mm/yyyy dd/mm/yyyy dd/mm/yyyy dd/mm/yyyy
XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX
XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX
XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX
XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX
999 999 999 999 999 999 999 999
Gambar 4.99 Rancangan Output Laporan Penerimaan List
226
4.2.5
Spesifikasi Proses Berikut ini adalah spesifikasi proses dari aplikasi pembelian, dan persediaan
bahan baku : Spesifikasi Module Login module Login Masukkan username dan password Jika tekan tombol OK Validasi username dan password Jika validasi benar Tampilkan main menu Jika validasi salah Tampilkan pesan kesalahan Jika tekan tombol Cancel Keluar aplikasi akhir module
Spesifikasi Modul Karyawan module Karyawan Tampilkan layar daftar Karyawan Jika tekan tombol Add Muncul tombol Save dan Cancel Masukkan data karyawan Jika tekan tombol Save Cek KaryawanID pada database sama dengan data yang dimasukkan Tampilkan pesan bahwa KaryawanID sudah ada Validasi data karyawan
227
Jika validasi benar Masukkan kedalam database Tampilkan pesan data berhasil disimpan Jika validasi salah Tampilkan pesan data gagal disimpan Jika tekan tombol Cancel Membatalkan penambahan data Jika tekan tombol Edit Muncul tombol Save dan Cancel Tampilkan data karyawan yang akan diubah Masukkan perubahan data Jika tekan tombol Save Validasi data karyawan Jika validasi benar Masukkan kedalam database Tampilkan pesan data berhasil disimpan Jika validasi salah Tampilkan pesan data gagal disimpan Jika tekan tombol Cancel Membatalkan perubahan data Jika tekan tombol Delete Tampilkan pesan konfirmasi penghapusan data Jika tekan tombol OK Data terhapus dari database Tampilkan pesan data berhasil dihapus Jika tekan tombol Cancel Data tidak dihapus Kembali ke layar karyawan
228
Jika mengisi keyword search Jika pilih kategori search Jika tekan tombol OK Tampilkan data sesuai dengan yang dicari Jika tekan tombol Refresh Tampilkan semua data karyawan Jika tekan tombol Export Pilih tujuan file akan disimpan Jika tekan tombol OK File segera dibentuk sesuai dengan grid Kembali ke layar karyawan Jika tekan tombol Cancel Tampilkan pesan export dibatalkan Kembali ke layar karyawan Jika tekan tombol Close Tampilkan pesan konfirmasi penutupan layar karyawan Jika tekan tombol OK Kembali ke main menu Jika tekan tombol Cancel Kembali ke layar karyawan Jika klik dua kali pada baris di grid Muncul data karyawan Akhir module
Spesifikasi Modul Pemasok module Pemasok Tampilkan layar daftar Pemasok Jika tekan tombol Add Muncul tombol Save dan Cancel Masukkan data pemasok
229
Jika tekan tombol Save Cek PemasokID pada database sama dengan data yang dimasukkan Tampilkan pesan bahwa PemasokID sudah ada Validasi data pemasok Jika validasi benar Masukkan kedalam database Tampilkan pesan data berhasil disimpan Jika validasi salah Tampilkan pesan data gagal disimpan Jika tekan tombol Cancel Membatalkan penambahan data Jika tekan tombol Edit Muncul tombol Save dan Cancel Tampilkan data pemasok yang akan diubah Masukkan perubahan data Jika tekan tombol Save Validasi data pemasok Jika validasi benar Masukkan kedalam database Tampilkan pesan data berhasil disimpan Jika validasi salah Tampilkan pesan data gagal disimpan Jika tekan tombol Cancel Membatalkan perubahan data Jika tekan tombol Delete Tampilkan pesan konfirmasi penghapusan data
230
Jika tekan tombol OK Data terhapus dari database Tampilkan pesan data berhasil dihapus Jika tekan tombol Cancel Data tidak dihapus Kembali ke layar pemasok Jika mengisi keyword search Jika pilih kategori search Jika tekan tombol OK Tampilkan data sesuai dengan yang dicari Jika tekan tombol Refresh Tampilkan semua data pemasok Jika tekan tombol Export Pilih tujuan file akan disimpan Jika tekan tombol OK File segera dibentuk sesuai dengan grid Kembali ke layar pemasok Jika tekan tombol Cancel Tampilkan pesan export dibatalkan Kembali ke layar pemasok Jika tekan tombol Close Tampilkan pesan konfirmasi penutupan layar pemasok Jika tekan tombol OK Kembali ke main menu Jika tekan tombol Cancel Kembali ke layar pemasok Jika klik dua kali pada baris di grid Muncul data pemasok Akhir module
231
Spesifikasi Modul Bahan Baku module Bahan baku Tampilkan layar daftar Bahan baku Jika tekan tombol Add Muncul tombol Save dan Cancel Masukkan data bahan baku Jika tekan tombol Save Cek BahanBakuID pada database sama dengan data yang dimasukkan Tampilkan pesan bahwa BahanBakuID sudah ada Validasi data bahan baku Jika validasi benar Masukkan kedalam database Tampilkan pesan data berhasil disimpan Jika validasi salah Tampilkan pesan data gagal disimpan Jika tekan tombol Cancel Membatalkan penambahan data Jika tekan tombol Edit Muncul tombol Save dan Cancel Tampilkan data bahan baku yang akan diubah Masukkan perubahan data Jika tekan tombol Save Validasi data bahan baku Jika validasi benar Masukkan kedalam database Tampilkan pesan data berhasil disimpan
232
Jika validasi salah Tampilkan pesan data gagal disimpan Jika tekan tombol Cancel Membatalkan perubahan data Jika tekan tombol Delete Tampilkan pesan konfirmasi penghapusan data Jika tekan tombol OK Data terhapus dari database Tampilkan pesan data berhasil dihapus Jika tekan tombol Cancel Data tidak dihapus Kembali ke layar bahan baku Jika mengisi keyword search Jika pilih kategori search Jika tekan tombol OK Tampilkan data sesuai dengan yang dicari Jika tekan tombol Refresh Tampilkan semua data bahan baku Jika tekan tombol Export Pilih tujuan file akan disimpan Jika tekan tombol OK File segera dibentuk sesuai dengan grid Kembali ke layar bahan baku Jika tekan tombol Cancel Tampilkan pesan export dibatalkan Kembali ke layar bahan baku Jika tekan tombol Close Tampilkan pesan konfirmasi penutupan layar bahan baku Jika tekan tombol OK Kembali ke main menu
233
Jika tekan tombol Cancel Kembali ke layar bahan baku Jika klik dua kali pada baris di grid Muncul data bahan baku Akhir module
Spesifikasi Modul Permintaan module Permintaan Tampilkan layar daftar Permintaan Jika tekan tombol Add Muncul tombol Save dan Cancel Masukkan data Permintaan bahan baku Jika tekan tombol Save Cek MintaBahanBakuID pada database sama dengan data yang dimasukkan Tampilkan pesan bahwa MintaBahanBakuID sudah ada Validasi data Permintaan bahan baku Jika validasi benar Masukkan kedalam database Tampilkan pesan data berhasil disimpan Jika validasi salah Tampilkan pesan data gagal disimpan Jika tekan tombol Cancel Membatalkan penambahan data Jika tekan tombol Edit Muncul tombol Save dan Cancel Tampilkan data permintaan bahan baku yang akan diubah
234
Masukkan perubahan data Jika tekan tombol Save Validasi data permintaan bahan baku Jika validasi benar Masukkan kedalam database Tampilkan pesan data berhasil disimpan Jika validasi salah Tampilkan pesan data gagal disimpan Jika tekan tombol Cancel Membatalkan perubahan data Jika tekan tombol Delete Tampilkan pesan konfirmasi penghapusan data Jika tekan tombol OK Data terhapus dari database Tampilkan pesan data berhasil dihapus Jika tekan tombol Cancel Data tidak dihapus Kembali ke layar permintaan bahan baku Jika mengisi keyword search Jika pilih kategori search Jika tekan tombol OK Tampilkan data sesuai dengan yang dicari Jika tekan tombol Refresh Tampilkan semua data permintaan bahan baku Jika tekan tombol Export Pilih tujuan file akan disimpan Jika tekan tombol OK File segera dibentuk sesuai dengan grid Kembali ke layar permintaan bahan baku
235
Jika tekan tombol Cancel Tampilkan pesan export dibatalkan Kembali ke layar permintaan bahan baku Jika tekan tombol Close Tampilkan pesan konfirmasi penutupan layar permintaan bahan baku Jika tekan tombol OK Kembali ke main menu Jika tekan tombol Cancel Kembali ke layar permintaan bahan baku Jika klik dua kali pada baris di grid Muncul data permintaan bahan baku Akhir module Spesifikasi Modul Pembelian module Pembelian Tampilkan layar daftar Pembelian Jika tekan tombol Add Muncul tombol Save dan Cancel Masukkan data Pembelian bahan baku Jika tekan tombol Save Cek TrPembID pada database sama dengan data yang dimasukkan Tampilkan pesan bahwa TrPembID sudah ada Validasi data Pembelian bahan baku Jika validasi benar Masukkan kedalam database Tampilkan pesan data berhasil disimpan Jika validasi salah
236
Tampilkan pesan data gagal disimpan Jika tekan tombol Cancel Membatalkan penambahan data Jika tekan tombol Edit Muncul tombol Save dan Cancel Tampilkan data pembelian bahan baku yang akan diubah Masukkan perubahan data Jika tekan tombol Save Validasi data pembelian bahan baku Jika validasi benar Masukkan kedalam database Tampilkan pesan data berhasil disimpan Jika validasi salah Tampilkan pesan data gagal disimpan Jika tekan tombol Cancel Membatalkan perubahan data Jika tekan tombol Delete Tampilkan pesan konfirmasi penghapusan data Jika tekan tombol OK Data terhapus dari database Tampilkan pesan data berhasil dihapus Jika tekan tombol Cancel Data tidak dihapus Kembali ke layar pembelian bahan baku Jika mengisi keyword search Jika pilih kategori search Jika tekan tombol OK Tampilkan data sesuai dengan yang dicari Jika tekan tombol Refresh
237
Tampilkan semua data pembelian bahan baku Jika tekan tombol Export Pilih tujuan file akan disimpan Jika tekan tombol OK File segera dibentuk sesuai dengan grid Kembali ke layar pembelian bahan baku Jika tekan tombol Cancel Tampilkan pesan export dibatalkan Kembali ke layar pembelian bahan baku Jika tekan tombol Close Tampilkan pesan konfirmasi penutupan layar pembelian bahan baku Jika tekan tombol OK Kembali ke main menu Jika tekan tombol Cancel Kembali ke layar pembelian bahan baku Jika klik dua kali pada baris di grid Muncul data pembelian bahan baku Akhir module
Spesifikasi Modul Retur Pembelian module Retur Pembelian Tampilkan layar daftar Retur Pembelian Jika tekan tombol Add Muncul tombol Save dan Cancel Masukkan data Retur Pembelian Jika tekan tombol Save Cek RtrPembID pada database sama dengan data yang dimasukkan
238
Tampilkan pesan bahwa RtrPembID sudah ada Validasi data Retur Pembelian Jika validasi benar Masukkan kedalam database Tampilkan pesan data berhasil disimpan Jika validasi salah Tampilkan pesan data gagal disimpan Jika tekan tombol Cancel Membatalkan penambahan data Jika tekan tombol Edit Muncul tombol Save dan Cancel Tampilkan data Retur Pembelian yang akan diubah Masukkan perubahan data Jika tekan tombol Save Validasi data Retur Pembelian Jika validasi benar Masukkan kedalam database Tampilkan pesan data berhasil disimpan Jika validasi salah Tampilkan pesan data gagal disimpan Jika tekan tombol Cancel Membatalkan perubahan data Jika tekan tombol Delete Tampilkan pesan konfirmasi penghapusan data Jika tekan tombol OK Data terhapus dari database Tampilkan pesan data berhasil dihapus
239
Jika tekan tombol Cancel Data tidak dihapus Kembali ke layar Retur Pembelian Jika mengisi keyword search Jika pilih kategori search Jika tekan tombol OK Tampilkan data sesuai dengan yang dicari Jika tekan tombol Refresh Tampilkan semua data Retur Pembelian Jika tekan tombol Export Pilih tujuan file akan disimpan Jika tekan tombol OK File segera dibentuk sesuai dengan grid Kembali ke layar Retur Pembelian Jika tekan tombol Cancel Tampilkan pesan export dibatalkan Kembali ke layar Retur Pembelian Jika tekan tombol Close Tampilkan pesan konfirmasi penutupan layar Retur Pembelian Jika tekan tombol OK Kembali ke main menu Jika tekan tombol Cancel Kembali ke layar Retur Pembelian Jika klik dua kali pada baris di grid Muncul data Retur Pembelian Akhir module
240
Spesifikasi Modul Penerimaan module Penerimaan Tampilkan layar daftar Penerimaan Jika tekan tombol Add Muncul tombol Save dan Cancel Masukkan data Penerimaan Jika tekan tombol Save Cek BPBID pada database sama dengan data yang dimasukkan Tampilkan pesan bahwa BPBID sudah ada Validasi data Penerimaan Jika validasi benar Masukkan kedalam database Tampilkan pesan data berhasil disimpan Jika validasi salah Tampilkan pesan data gagal disimpan Jika tekan tombol Cancel Membatalkan penambahan data Jika tekan tombol Edit Muncul tombol Save dan Cancel Tampilkan data Penerimaan yang akan diubah Masukkan perubahan data Jika tekan tombol Save Validasi data Penerimaan Jika validasi benar Masukkan kedalam database Tampilkan pesan data berhasil disimpan
241
Jika validasi salah Tampilkan pesan data gagal disimpan Jika tekan tombol Cancel Membatalkan perubahan data Jika tekan tombol Delete Tampilkan pesan konfirmasi penghapusan data Jika tekan tombol OK Data terhapus dari database Tampilkan pesan data berhasil dihapus Jika tekan tombol Cancel Data tidak dihapus Kembali ke layar Penerimaan Jika mengisi keyword search Jika pilih kategori search Jika tekan tombol OK Tampilkan data sesuai dengan yang dicari Jika tekan tombol Refresh Tampilkan semua data Penerimaan Jika tekan tombol Export Pilih tujuan file akan disimpan Jika tekan tombol OK File segera dibentuk sesuai dengan grid Kembali ke layar Penerimaan Jika tekan tombol Cancel Tampilkan pesan export dibatalkan Kembali ke layar Penerimaan Jika tekan tombol Close Tampilkan pesan konfirmasi penutupan layar Penerimaan Jika tekan tombol OK
242
Kembali ke main menu Jika tekan tombol Cancel Kembali ke layar Penerimaan Jika klik dua kali pada baris di grid Muncul data Penerimaan Akhir module
Spesifikasi Modul Penerimaan Retur module Penerimaan Retur Tampilkan layar daftar Penerimaan Retur Jika tekan tombol Add Muncul tombol Save dan Cancel Masukkan data Penerimaan Retur Jika tekan tombol Save Cek BPBReturID pada database sama dengan data yang dimasukkan Tampilkan pesan bahwa BPBReturID sudah ada Validasi data Penerimaan Retur Jika validasi benar Masukkan kedalam database Tampilkan pesan data berhasil disimpan Jika validasi salah Tampilkan pesan data gagal disimpan Jika tekan tombol Cancel Membatalkan penambahan data Jika tekan tombol Edit Muncul tombol Save dan Cancel Tampilkan data Penerimaan Retur yang akan diubah
243
Masukkan perubahan data Jika tekan tombol Save Validasi data Penerimaan Retur Jika validasi benar Masukkan kedalam database Tampilkan pesan data berhasil disimpan Jika validasi salah Tampilkan pesan data gagal disimpan Jika tekan tombol Cancel Membatalkan perubahan data Jika tekan tombol Delete Tampilkan pesan konfirmasi penghapusan data Jika tekan tombol OK Data terhapus dari database Tampilkan pesan data berhasil dihapus Jika tekan tombol Cancel Data tidak dihapus Kembali ke layar Penerimaan Retur Jika mengisi keyword search Jika pilih kategori search Jika tekan tombol OK Tampilkan data sesuai dengan yang dicari Jika tekan tombol Refresh Tampilkan semua data Penerimaan Retur Jika tekan tombol Export Pilih tujuan file akan disimpan Jika tekan tombol OK File segera dibentuk sesuai dengan grid Kembali ke layar Penerimaan Retur
244
Jika tekan tombol Cancel Tampilkan pesan export dibatalkan Kembali ke layar Penerimaan Retur Jika tekan tombol Close Tampilkan pesan konfirmasi penutupan layar Penerimaan Retur Jika tekan tombol OK Kembali ke main menu Jika tekan tombol Cancel Kembali ke layar Penerimaan Retur Jika klik dua kali pada baris di grid Muncul data Penerimaan Retur Akhir module
Spesifikasi Modul Stok Bahan Baku module Stok Bahan Baku Tampilkan layar daftar Stok bahan baku Jika mengisi keyword search Jika pilih kategori search Jika tekan tombol OK Tampilkan data sesuai dengan yang dicari Jika tekan tombol Refresh Tampilkan semua data Penerimaan Jika tekan tombol Export Pilih tujuan file akan disimpan Jika tekan tombol OK File segera dibentuk sesuai dengan grid Kembali ke layar Stok Bahan Baku Jika tekan tombol Cancel Tampilkan pesan export dibatalkan
245
Kembali ke layar Stok Bahan Baku Jika tekan tombol Close Tampilkan pesan konfirmasi penutupan layar Stok Bahan Baku Jika tekan tombol OK Kembali ke main menu Jika tekan tombol Cancel Kembali ke layar Stok Bahan Baku Jika klik dua kali pada baris di grid Muncul data Stok Bahan Baku Akhir module
Spesifikasi Modul Buku Hutang module Buku Hutang Tampilkan layar daftar Buku Hutang Jika tekan tombol Add Muncul tombol Save dan Cancel Masukkan data Baku Hutang Jika tekan tombol Save Cek BkHutangID pada database sama dengan data yang dimasukkan Tampilkan pesan bahwa BkHutangID sudah ada Validasi data Buku Hutang Jika validasi benar Masukkan kedalam database Tampilkan pesan data berhasil disimpan Jika validasi salah Tampilkan pesan data gagal disimpan
246
Jika tekan tombol Cancel Membatalkan penambahan data Jika tekan tombol Edit Muncul tombol Save dan Cancel Tampilkan data Buku Hutang yang akan diubah Masukkan perubahan data Jika tekan tombol Save Validasi data Buku Hutang Jika validasi benar Masukkan kedalam database Tampilkan pesan data berhasil disimpan Jika validasi salah Tampilkan pesan data gagal disimpan Jika tekan tombol Cancel Membatalkan perubahan data Jika tekan tombol Delete Tampilkan pesan konfirmasi penghapusan data Jika tekan tombol OK Data terhapus dari database Tampilkan pesan data berhasil dihapus Jika tekan tombol Cancel Data tidak dihapus Kembali ke layar Buku Hutang Jika mengisi keyword search Jika pilih kategori search Jika tekan tombol OK Tampilkan data sesuai dengan yang dicari Jika tekan tombol Refresh Tampilkan semua data Buku Hutang
247
Jika tekan tombol Export Pilih tujuan file akan disimpan Jika tekan tombol OK File segera dibentuk sesuai dengan grid Kembali ke layar Buku Hutang Jika tekan tombol Cancel Tampilkan pesan export dibatalkan Kembali ke layar Buku Hutang Jika tekan tombol Close Tampilkan pesan konfirmasi penutupan layar Buku Hutang Jika tekan tombol OK Kembali ke main menu Jika tekan tombol Cancel Kembali ke layar Buku Hutang Jika klik dua kali pada baris di grid Muncul data Buku Hutang Akhir module
Spesifikasi Modul Voucher Pengeluaran Kas module Voucher Pengeluaran Kas Tampilkan layar daftar Voucher Pengeluaran Kas Jika tekan tombol Add Muncul tombol Save dan Cancel Masukkan data Voucher Pengeluaran Kas Jika tekan tombol Save Cek PengeluaranKasID pada database sama dengan data yang dimasukkan Tampilkan pesan bahwa PengeluaranKasID sudah ada
248
Validasi data Voucher Pengeluaran Kas Jika validasi benar Masukkan kedalam database Tampilkan pesan data berhasil disimpan Jika validasi salah Tampilkan pesan data gagal disimpan Jika tekan tombol Cancel Membatalkan penambahan data Jika tekan tombol Edit Muncul tombol Save dan Cancel Tampilkan data Voucher Pengeluaran Kas yang akan diubah Masukkan perubahan data Jika tekan tombol Save Validasi data Voucher Pengeluaran Kas Jika validasi benar Masukkan kedalam database Tampilkan pesan data berhasil disimpan Jika validasi salah Tampilkan pesan data gagal disimpan Jika tekan tombol Cancel Membatalkan perubahan data Jika tekan tombol Delete Tampilkan pesan konfirmasi penghapusan data Jika tekan tombol OK Data terhapus dari database Tampilkan pesan data berhasil dihapus Jika tekan tombol Cancel
249
Data tidak dihapus Kembali ke layar Voucher Pengeluaran Kas Jika mengisi keyword search Jika pilih kategori search Jika tekan tombol OK Tampilkan data sesuai dengan yang dicari Jika tekan tombol Refresh Tampilkan semua data Voucher Pengeluaran Kas Jika tekan tombol Export Pilih tujuan file akan disimpan Jika tekan tombol OK File segera dibentuk sesuai dengan grid Kembali ke layar Voucher Pengeluaran Kas Jika tekan tombol Cancel Tampilkan pesan export dibatalkan Kembali ke layar Voucher Pengeluaran Kas Jika tekan tombol Close Tampilkan pesan konfirmasi penutupan layar Voucher Pengeluaran Kas Jika tekan tombol OK Kembali ke main menu Jika tekan tombol Cancel Kembali ke layar Voucher Pengeluaran Kas Jika klik dua kali pada baris di grid Muncul data Voucher Pengeluaran Kas Akhir module
250
4.2.6
Implementasi Implementasi terdiri dari beberapa tahap diantaranya : Spesifikasi perangkat
keras yang dibutuhkan oleh sistem, Spesifikasi perankat lunak, Jadwal implementasi , Petunjuk pemakaian sistem dan Evaluasi. 4.2.6.1 Spesifikasi Perangkat Keras Spesifikasi perangkat keras minimum yang diperlukan dalam implementasi aplikasi basisdata pada PT. Indo Prima Foods adalah sebagai berikut: 1. Server Processor : Pentium III 800 MHz Memory : 128 MB Harddisk : 20 GB Monitor : SVGA 15” Printer
: Standard
2. Client Processor : Pentium III 800 MHz Memory : 128 MB Harddisk : 10 GB Monitor : SVGA 15” Printer
: Standard
4.2.6.2 Spesifikasi Perangkat Lunak Spesifikasi Perangkat lunak yang diperlukan dalam implementasi aplikasi basisdata pada PT.Indo Prima Foods adalah sebagai berikut:
251
1. Server •
Sistem operasi Microsoft Windows 2000 Server
•
Database Microsoft SQL Server 2000
•
Anti Virus (last update)
2. Client •
Sistem operasi Microsoft Windows 2000
•
Database Microsoft SQL Server 2000
•
Microsoft Visual Basic 6.0
•
Anti Virus (last update)
•
Microsoft Office 2000 or XP or 2003
4.2.6.3 Jadwal Implementasi Aplikasi sistem basisdata yang telah dirancang dijadwalkan untuk diimplementasikan ke dalam perusahaan. Jadwal implementasi sistem basisdata yang diusulkan dapat dilihat sebagai berikut : No 1 2 3 4 5 6 7 8 9
Kegiatan Pembentukan tim Pengumpulan informasi Pengadaan perangkat keras dan lunak Instalasi perangkat lunak Design basisdata Implementasi basisdata Konversi data Testing Pelatihan pengguna
1
2
3
4
Minggu 5 6 7 8
9
10
11
252
10
Evaluasi sistem baru
Tabel 4.14 Jadwal implementasi 4.2.6.4 Kebutuhan Personil (Brainware) Kebutuhan Personil yang diperlukan dalam implementasi aplikasi basisdata pada PT.Indo Prima Foods adalah sebagai berikut: 1. Personil Data Entry, yaitu orang yang bertanggungjawab untuk memanipulasi data, seperti insert, update, dan delete. 2. Technical Support, yaitu orang yang bertugas untuk membangun, merawat, dan mengembangkan jaringan, serta mampu mengatasi masalah-masalah yang berhubungan dengan perangkat keras. 3. Database Administrator, yaitu orang yang bertanggungjawab atas realisasi dari basisdata secara fisik, termasuk perancangan fisik basisdata dan implementasinya, pemeliharaan sistem operasional, dan memastikan performa aplikasi yang memuaskan bagi pengguna.
4.2.6.5 Petunjuk Pemakaian Sistem Aplikasi dimulai dengan meng-klik PT.Indo Prima Foods.exe pada layar windows, kemudian akan ditampilkan layar login.
253
Gambar 4.100a Layar Login
Pada layar ini, user diminta memasukan Kode Karyawan dan Password. Jika user meng-klik tombol Login maka SQL Server akan memeriksa apakah Kode Karyawan dan Password yang dimasukan sesuai atau valid. Jika sesuai maka akan ditampilkan layar menu utama. Jika tidak sesuai akan ditampilkan pesan kesalahan. Tombol ”Exit” digunakan untuk keluar dari aplikasi.
Gambar 4.100b Layar Utama
254
Pada layar utama terdapat beberapa menu pilihan, yaitu menu Master Data (berisi submenu Data Karyawan, Data Pemasok, Data Bahan Baku dan Keluar), menu Transaksi (berisi submenu Transaksi Permintaan, Transaksi Pembelian, Transaksi Retur Pembelian, Transaksi Penerimaan, dan Stok Bahan Baku), menu Pembayaran (berisi submenu Hutang Pembelian dan Voucher Pengeluaran Kas), dan menu Laporan (berisi submenu Laporan Permintaan, Laporan Pembelian, Laporan Retur, Laporan Penerimaan, Laporan Buku Hutang, Laporan Pengeluaran Kas dan Laporan Persediaan).
Layar Pencarian dan Daftar Karyawan Untuk masuk ke layar karyawan, pilihlah menu master lalu Karyawan. Maka sebuah layar seperti berikut akan muncul :
Gambar 4.101 Layar Daftar Karyawan
255
Pada layar ini, user dapat melihat semua data karyawan yang ada. User juga dapat melakukan pencarian berdasarkan atribut yang ada pada tabel tersebut, dan dapat pula memilih tipe pencarian kemudian memasukan kata kunci agar pencarian yang dilakukan lebih mendetail sehingga kursor akan menuju data yang dicari tersebut, Melalui halaman ini, user dapat melakukan manipulasi data dengan mengklik tombol ”Add”, ”Edit” dan ”Delete” .
Layar manipulasi data Karyawan
Gambar 4.102 Layar Manipulasi Karyawan
Untuk masuk ke layar manipulasi data maka dapat meng-klik tombol ”Add” atau ”Edit”. Pada layar ini, user dapat menambah data yang baru atau mengubah data yang telah ada. Data yang baru dimasukkan atau data yang telah diubah dapat
256
disimpan kedatabase dengan meng-klik tombol ”Save”. Jika manipulasi data tersebut tidak jadi dilakukan dapat meng-klik tombol ”Cancel”. Untuk nomor telepon, user dapat memasukan lebih dari satu nilai (multi-valued).
Layar Pencarian dan Daftar Pemasok Untuk masuk ke layar Pemasok, pilihlah menu master lalu pemasok. Maka sebuah layar seperti berikut akan muncul :
Gambar 4.103 Layar Daftar Pemasok
Pada layar ini, user dapat melihat semua data pemasok yang ada. User juga dapat melakukan pencarian berdasarkan atribut yang ada pada tabel tersebut, dan dapat pula memilih tipe pencarian kemudian memasukan kata kunci agar pencarian yang dilakukan lebih mendetail sehingga kursor akan menuju data yang dicari
257
tersebut. Melalui halaman ini, user dapat melakukan manipulasi data dengan mengklik tombol ”Add”, ”Edit” dan ”Delete” .
Layar manipulasi data Pemasok
Gambar 4.104 Layar Manipulasi Pemasok
Untuk masuk ke layar manipulasi data maka dapat meng-klik tombol ”Add” atau ”Edit”. Pada layar ini, user dapat menambah data yang baru atau mengubah data yang telah ada. Data yang baru dimasukkan atau data yang telah diubah dapat disimpan kedatabase dengan meng-klik tombol ”Save”. Jika manipulasi data tersebut tidak jadi dilakukan dapat meng-klik tombol ”Cancel”. Untuk nomor telepon, user dapat memasukan lebih dari satu nilai (multi-valued).
258
Layar Pencarian dan Daftar Bahan Baku Untuk masuk ke layar Bahan Baku, pilihlah menu master lalu Bahan Baku. Maka sebuah layar seperti berikut akan muncul :
Gambar 4.105 Layar Daftar Bahan Baku
Pada layar ini, user dapat melihat semua data bahan baku yang ada. User juga dapat melakukan pencarian berdasarkan atribut yang ada pada tabel tersebut, dan dapat pula memilih tipe pencarian kemudian memasukan kata kunci agar pencarian yang dilakukan lebih mendetail sehingga kursor akan menuju data yang dicari tersebut. Melalui halaman ini, user dapat melakukan manipulasi data dengan mengklik tombol ”Add”, ”Edit” dan ”Delete” .
259
Layar manipulasi data Bahan Baku
Gambar 4.106 Layar Manipulasi Bahan Baku
Untuk masuk ke layar manipulasi data maka dapat meng-klik tombol ”Add” atau ”Edit”. Pada layar ini, user dapat menambah data yang baru atau mengubah data yang telah ada. Data yang baru dimasukkan atau data yang telah diubah dapat disimpan kedatabase dengan meng-klik tombol ”Save”. Jika manipulasi data tersebut tidak jadi dilakukan dapat meng-klik tombol ”Cancel”. Untuk nomor telepon, user dapat memasukan lebih dari satu nilai (multi-valued).
Layar Pencarian dan Daftar Transaksi Permintaan Untuk masuk ke layar Transaksi permintaan pembelian, pilihlah menu Transaksi lalu permintaan. Maka sebuah layar seperti berikut akan muncul :
260
Gambar 4.107 Layar Daftar Transaksi Permintaan
Pada layar ini, user dapat melihat semua data transaksi permintaan yang ada. User juga dapat melakukan pencarian berdasarkan atribut yang ada pada tabel tersebut, dan dapat pula memilih tipe pencarian kemudian memasukan kata kunci agar pencarian yang dilakukan lebih mendetail sehingga kursor akan menuju data yang dicari tersebut. Melalui halaman ini, user dapat melakukan manipulasi data dengan meng-klik tombol ”Add”, ”Edit” dan ”Delete” .
Layar manipulasi Transaksi Permintaan
261
Gambar 4.108 Layar Manipulasi Transaksi Permintaan
Untuk masuk ke layar manipulasi data maka dapat meng-klik tombol ”Add” atau ”Edit”. Pada layar ini, user dapat menambah data yang baru atau mengubah data yang telah ada baik untuk transaksi permintaan header maupun detil. Untuk transaksi header dapat di input langsung pada saat layar ini muncul, namun untuk transaksi detil harus dimulai dengan meng-klik kanan pada grid yang ada lalu dapat dipilih ”Add Row” atau ”Delete Row”, sedang untuk edit data pada detil dapat dilakukan langsung seperti edit data pada header. Data yang baru dimasukkan atau data yang telah diubah dapat disimpan ke database dengan meng-klik tombol ”Save”. Jika manipulasi data tersebut tidak jadi dilakukan dapat meng-klik tombol ”Cancel”.
Layar Pencarian dan Daftar Transaksi Pembelian
262
Untuk masuk ke layar Transaksi Pembelian, pilihlah menu Transaksi lalu Pembelian. Maka sebuah layar seperti berikut akan muncul :
Gambar 4.109 Layar Daftar Transaksi Pembelian
Pada layar ini, user dapat melihat semua data transaksi pembelian yang ada. User juga dapat melakukan pencarian berdasarkan atribut yang ada pada tabel tersebut dan dapat pula memilih tipe pencarian kemudian memasukan kata kunci agar pencarian yang dilakukan lebih mendetail sehingga kursor akan menuju data yang dicari tersebut. Melalui halaman ini, user dapat melakukan manipulasi data dengan meng-klik tombol ”Add”, ”Edit” dan ”Delete” .
Layar manipulasi Transaksi Pembelian
263
Gambar 4.110 Layar Manipulasi Transaksi Pembelian
Untuk masuk ke layar manipulasi data maka dapat meng-klik tombol ”Add” atau ”Edit”. Pada layar ini, user dapat menambah data yang baru atau mengubah data yang telah ada baik untuk transaksi pembelian header maupun detil. Untuk transaksi header dapat di input langsung pada saat layar ini muncul, namun untuk transaksi detil harus dimulai dengan meng-klik kanan pada grid yang ada lalu dapat dipilih ”Add Row” atau ”Delete Row”, sedang untuk edit data pada detil dapat dilakukan langsung seperti edit data pada header. Data yang baru dimasukkan atau data yang telah diubah dapat disimpan ke database dengan meng-klik tombol ”Save”. Jika manipulasi data tersebut tidak jadi dilakukan dapat meng-klik tombol ”Cancel”.
Layar Pencarian dan Daftar Transaksi Retur Pembelian
264
Untuk masuk ke layar Transaksi Retur Pembelian, pilihlah menu Transaksi lalu Retur pembelian. Maka sebuah layar seperti berikut akan muncul :
Gambar 4.111 Layar Daftar Transaksi Retur Pembelian
Pada layar ini, user dapat melihat semua data transaksi retur pembelian yang ada. User juga dapat melakukan pencarian berdasarkan atribut yang ada pada tabel tersebut, dan dapat pula memilih tipe pencarian kemudian memasukan kata kunci agar pencarian yang dilakukan lebih mendetail sehingga kursor akan menuju data yang dicari tersebut. Melalui halaman ini, user dapat melakukan manipulasi data dengan meng-klik tombol ”Add”, ”Edit” dan ”Delete” .
Layar manipulasi Transaksi Retur Pembelian
265
Gambar 4.112 Layar Manipulasi Transaksi Retur Pembelian
Untuk masuk ke layar manipulasi data maka dapat meng-klik tombol ”Add” atau ”Edit”. Pada layar ini, user dapat menambah data yang baru atau mengubah data yang telah ada baik untuk transaksi retur pembelian header maupun detil. Untuk transaksi header dapat di input langsung pada saat layar ini muncul, namun untuk transaksi detil harus dimulai dengan meng-klik kanan pada grid yang ada lalu dapat dipilih ”Add Row” atau ”Delete Row”, sedang untuk edit data pada detil dapat dilakukan langsung seperti edit data pada header. Data yang baru dimasukkan atau data yang telah diubah dapat disimpan ke database dengan meng-klik tombol ”Save”. Jika manipulasi data tersebut tidak jadi dilakukan dapat meng-klik tombol ”Cancel”.
Layar Pencarian dan daftar Transaksi Penerimaan Untuk masuk ke layar Transaksi Penerimaan, pilihlah menu Transaksi lalu Penerimaan Maka sebuah layar seperti berikut akan muncul :
266
Gambar 4.113 Layar Daftar Transaksi Penerimaan
Pada layar ini, user dapat melihat semua data transaksi penerimaan yang ada. User juga dapat melakukan pencarian berdasarkan atribut yang ada pada tabel tersebut, dan dapat pula memilih tipe pencarian kemudian memasukan kata kunci agar pencarian yang dilakukan lebih mendetail sehingga kursor akan menuju data yang dicari tersebut. Melalui halaman ini, user dapat melakukan manipulasi data dengan meng-klik tombol ”Add”, ”Edit” dan ”Delete” .
267
Layar manipulasi Transaksi Penerimaan
Gambar 4.114 Layar Manipulasi Transaksi Penerimaan
Untuk masuk ke layar manipulasi data maka dapat meng-klik tombol ”Add” atau ”Edit”. Pada layar ini, user dapat menambah data yang baru atau mengubah data yang telah ada baik untuk transaksi penerimaan header maupun detil. Untuk transaksi header dapat di input langsung pada saat layar ini muncul, namun untuk transaksi detil harus dimulai dengan meng-klik kanan pada grid yang ada lalu dapat dipilih ”Add Row” atau ”Delete Row”, sedang untuk edit data pada detil dapat dilakukan langsung seperti edit data pada header. Data yang baru dimasukkan atau data yang telah diubah dapat disimpan ke database dengan meng-klik tombol ”Save”. Jika manipulasi data tersebut tidak jadi dilakukan dapat meng-klik tombol ”Cancel”.
268
Layar Pencarian dan daftar Transaksi Penerimaan Retur Untuk masuk ke layar Transaksi Penerimaan, pilihlah menu Transaksi lalu Penerimaan Maka sebuah layar seperti berikut akan muncul :
Gambar 4.115 Layar Daftar Transaksi Penerimaan Retur
Pada layar ini, user dapat melihat semua data transaksi penerimaan yang ada. User juga dapat melakukan pencarian berdasarkan atribut yang ada pada tabel tersebut, dan dapat pula memilih tipe pencarian kemudian memasukan kata kunci agar pencarian yang dilakukan lebih mendetail sehingga kursor akan menuju data yang dicari tersebut. Melalui halaman ini, user dapat melakukan manipulasi data dengan meng-klik tombol ”Add”, ”Edit” dan ”Delete” .
269
Layar manipulasi Transaksi Penerimaan Retur
Gambar 4.116 Layar Manipulasi Transaksi Penerimaan Retur
Untuk masuk ke layar manipulasi data maka dapat meng-klik tombol ”Add” atau ”Edit”. Pada layar ini, user dapat menambah data yang baru atau mengubah data yang telah ada baik untuk transaksi penerimaan header maupun detil. Untuk transaksi header dapat di input langsung pada saat layar ini muncul, namun untuk transaksi detil harus dimulai dengan meng-klik kanan pada grid yang ada lalu dapat dipilih ”Add Row” atau ”Delete Row”, sedang untuk edit data pada detil dapat dilakukan langsung seperti edit data pada header. Data yang baru dimasukkan atau data yang telah diubah dapat disimpan ke database dengan meng-klik tombol ”Save”. Jika manipulasi data tersebut tidak jadi dilakukan dapat meng-klik tombol ”Cancel”.
270
Layar Pencarian dan daftar Stok Bahan Baku Untuk masuk ke layar Stok Bahan Baku, pilihlah menu Transaksi lalu Stok Bahan Baku. Maka sebuah layar seperti berikut akan muncul :
Gambar 4.117 Layar Daftar Stok Bahan Baku
Pada layar ini, user dapat melihat semua data Stok Bahan baku yang ada. User juga dapat melakukan pencarian berdasarkan atribut yang ada pada tabel tersebut, dan dapat pula memilih tipe pencarian kemudian memasukan kata kunci agar pencarian yang dilakukan lebih mendetail sehingga kursor akan menuju data yang dicari tersebut. Untuk melihat daftar yang lebih detail, maka pada grid tersebut user dapat meng-klik dua kali sehingga detail yang ada dapat terlihat jelas.
271
Layar Pencarian dan daftar Transaksi Buku Hutang Untuk masuk ke layar Transaksi Buku Hutang, pilihlah menu Pembayaran lalu Buku Hutang.Maka sebuah layar seperti berikut akan muncul :
Gambar 4.118 Layar Daftar Transaksi Buku Hutang
Pada layar ini, user dapat melihat semua data transaksi buku hutang yang ada. User juga dapat melakukan pencarian berdasarkan atribut yang ada pada tabel tersebut, dan dapat pula memilih tipe pencarian kemudian memasukan kata kunci agar pencarian yang dilakukan lebih mendetail sehingga kursor akan menuju data yang dicari tersebut. Melalui halaman ini, user dapat melakukan manipulasi data dengan meng-klik tombol ”Add”, ”Edit” dan ”Delete” .
272
Layar manipulasi Transaksi Buku Hutang
Gambar 4.119 Layar Manipulasi Transaksi Buku Hutang
Untuk masuk ke layar manipulasi data maka dapat meng-klik tombol ”Add” atau ”Edit”. Pada layar ini, user dapat menambah data yang baru atau mengubah data yang telah ada. Data yang baru dimasukkan atau data yang telah diubah dapat disimpan kedatabase dengan meng-klik tombol ”Save”. Jika manipulasi data tersebut tidak jadi dilakukan dapat meng-klik tombol ”Cancel”.
Layar Pencarian dan daftar Transaksi Voucher Pengeluaran Kas Untuk masuk ke layar Transaksi Buku Hutang, pilihlah menu Pembayaran lalu Buku Hutang.Maka sebuah layar seperti berikut akan muncul :
273
Gambar 4.120 Layar Daftar Transaksi Voucher Pengeluaran Kas
Pada layar ini, user dapat melihat semua data transaksi buku hutang yang ada. User juga dapat melakukan pencarian berdasarkan atribut yang ada pada tabel tersebut, dan dapat pula memilih tipe pencarian kemudian memasukan kata kunci agar pencarian yang dilakukan lebih mendetail sehingga kursor akan menuju data yang dicari tersebut. Melalui halaman ini, user dapat melakukan manipulasi data dengan meng-klik tombol ”Add”, ”Edit” dan ”Delete” .
274
Layar manipulasi Transaksi Voucher Pengeluaran Kas
Gambar 4.121 Layar Manipulasi Transaksi Voucher Pengeluaran Kas
Untuk masuk ke layar manipulasi data maka dapat meng-klik tombol ”Add” atau ”Edit”. Pada layar ini, user dapat menambah data yang baru atau mengubah data yang telah ada. Data yang baru dimasukkan atau data yang telah diubah dapat disimpan kedatabase dengan meng-klik tombol ”Save”. Jika manipulasi data tersebut tidak jadi dilakukan dapat meng-klik tombol ”Cancel”.
Layar Exit Untuk masuk ke layar exit, pilihlah menu file lalu exit. Maka sebuah layar seperti dibawah akan muncul :
Gambar 4.122 Layar Exit
275
4.2.6.6 Evaluasi Sistem Pada evaluasi sistem, penulis melakukan pengujian terhadap Domain Integrity, Entity Integrity, References Integrity dan Security pada basisdata yang penulis rancang.
Domain Integrity Pengujian yang dilakukan adalah apakah nilai atribut yang dihasilkan sesuai dengan domain yang telah ditentukan sebelumnya. Hal-hal yang diuji sebagai contoh adalah sebagai berikut: -
Domain atribut yang ditetapkan untuk KdKaryawan pada tabel Karyawan tidak boleh lebih dari 50 character yang terdiri dari huruf dan angka.
-
Domain atribut untuk Tanggal Masuk pada tabel Karyawan ditetapkan menggunakan format datetime yaitu yyyy/mm/dd dimana format tersebut hanya berlaku bila diinput dengan angka yang menunjukan tahun (yyyy), bulan (mm) dan tanggal (dd).
Pengujian juga dilakukan pada operasi yang diperbolehkan terjadi terhadap atribut yang ada dalam hubungannya dengan atribut yang lain. Hasil dari evaluasi domain integrity menunjukan bahwa seluruh tabel yang diuji telah memiliki domain integrity yang tepat.
Entity Integrity Pengujian dilakukan pada seluruh tabel untuk diuji dan dipastikan bawah tidak ada atribut dari suatu primary key yang bernilai ‘NULL’ dan
276
tidak ada 2 record yang sama pada primary key suatu strong entity. Contoh dari evaluasi entity integrity adalah primary key pada tabel Pemasok (PemasokID) tidak boleh bernilai ‘NULL’ dan entity pemasok merupakan strong entity maka harus diuji bahwa tidak ada 2 record yang sama di dalam tabel tersebut. Hasil evaluasi entity integrity menunjukan bahwa tabel yang ada memenuhi kriteria lulus uji.
References Integrity Hal yang diuji adalah setiap tabel telah berhubungan, terdapat foreign key dalam tabel yang terhubung tersebut dan nilai foreign key harus sesuai dengan primary key pada tabel yang terhubung. Sebagai contoh, tabel Pemasok terhubung dengan tabel Kota . Karena itu, harus dilakukan pengujian bahwa terdapat foreign key pada tabel Pemasok yang sesuai dengan primary key tabel Kota (KotaID). Evaluasi referential integrity membuktikan bahwa seluruh tabel telah terhubung dengan baik dimana terdapat foreign key dan nilai foreign key tersebut sesuai dengan primary key tabel yang terhubung. Jika seluruh tabel telah terhubung dengan baik dan benar maka tidak akan ditampilkan pesan kesalahan atau error pada saat dilakukan transaksi seperti ketika melakukan insert, update, delete, view.
277
Security Evaluasi security dimaksudkan untuk menguji apakah seluruh tabel memiliki keamanan berdasarkan mekanisme keamanan yang baik sehingga tidak terjadi penyimpangan atau penyalahgunaan data yang ada. Sebagai contoh user tidak diperbolehkan untuk mengakses dan melakukan perubahan atau transaksi pada data yang ada tanpa memasukan username dan password dengan. Contoh lain adalah user tidak dapat menyelesaikan transaksi yang dilakukan apabila terjadi ketidaksesuaian data atau reaksi user yang salah ketika melakukan transaksi tersebut. Dalam hal ini, user akan menerima pesan kesalahan sehingga perbaikan dapat dilakukan dan transaksi dapat dilanjutkan. Pengujian menunjukan bahwa seluruh tabel dapat berjalan benar dengan mengikuti mekanisme keamanan yang baik.
Kuesioner : 1.Apakah Anda merasa nyaman menggunakan aplikasi ini ?
Gambar 4.123 Pie Chart hasil kuisioner pertanyaan nomor 1 2. Apakah aplikasi ini membantu Anda dalam menyelesaikan pekerjaan ?
278
Gambar 4.124 Pie Chart hasil kuisioner pertanyaan nomor 2 3. Apakah selama Anda menggunakan aplikasi ini merasa lebih efisien dan efektif dalam bekerja ?
Gambar 4.125 Pie Chart hasil kuisioner pertanyaan nomor 3 4. Apakah aplikasi ini mudah di operasikan ?
Gambar 4.126 Chart hasil kuisioner pertanyaan nomor 4 5. Bagaimana menurut Anda dengan Interface(tampilan layar) pada aplikasi ini ?
Gambar 4.127 Pie Chart hasil kuisioner pertanyaan nomor 5 6. Apakah perlu diadakan pelatihan untuk menggunakan aplikasi ini ?
279
Gambar 4.128 Pie Chart hasil kuisioner pertanyaan nomor 6
Berdasarkan gambar – gambar yang ada diatas, bisa dilihat bahwa tanggapan dari responden yang berasal dari jajaran management dan staf operasional yang mencakup 8 orang. Tanggapan yang didapat cukup positif dengan aplikasi sistem basisdata ini, karena berdasarkan data yang ada, persentase tanggapan positif dari responden secara rata – rata di atas 60 %.