• Tidak ada hasil yang ditemukan

BAB 4 PERANCANGAN DAN IMPLEMENTASI. menjadi tiga tahapan yaitu perancangan konseptual, logikal dan fisikal.

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 4 PERANCANGAN DAN IMPLEMENTASI. menjadi tiga tahapan yaitu perancangan konseptual, logikal dan fisikal."

Copied!
197
0
0

Teks penuh

(1)

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.1Identifikasi 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

(2)

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 Menggambarkan informasi tentang permintaan bahan baku dalam kaitannya dengan proses produksi Permintaan Bahan Baku Setiap transaksi permintaan bahan baku

dapat memiliki lebih dari satu jenis bahan

baku 8 VoucherPengl uaranKas Menggambarkan transaksi pengeluaran kas yang terjadi atas transaksi pembelian

Voucher Pengeluaran

Kas

Setiap transaksi pengeluaran kas terdiri

atas satu transaksi pembelian 9. BuktiPenerima Menggambarkan Bukti Setiap transaksi bukti

(3)

10. BuktiPenerima anRetur

Menggambarkan 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.2Identifikasi 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 VoucherPengluaran

Kas

0..*

Karyawan 1..1 Membuat MintaBahanBaku 0..* Karyawan 1..1 Membuat BuktiPenerimaanBr

g

0..* Karyawan 1..1 Membuat BuktiPenerimaanRe

tur

0..*

Pemasok 1..1 Mempunyai TrPemb 1..*

Pemasok 1..1 Mempunyai RtrPemb 0..*

(4)

86 BahanBaku 1..* Tercantum dalam TrPemb 0..* BahanBaku 1..* Tercantum dalam RtrPemb 0..* BahanBaku 1..* Tercantum dalam BuktiPenerimaanBr g 0..* BahanBaku 1..* Tercantum dalam BuktiPenerimaanRe tur 0..*

TrPemb 1..1 Mempunyai RtrPemb 0..1

TrPemb 1..1 Mempengaruhi BkHutang 1..1 TrPemb 1..1 Mempengaruhi VoucherPengluaran

Kas

1..1 TrPemb 1..1 Mempunyai BuktiPenerimaanBr

g

1..1 RtrPemb 1..1 Mempengaruhi BkHutang 0..1 RtrPemb 1..1 Mempunyai BuktiPenerimaanRe

tur

1..1 MintaBahanB

aku

1..1 Mempunyai TrPemb 1..*

BkHutang 1..1 Mempengaruhi VoucherPengeluara nKas 1..1 BuktiPenerim aanBrg 1..1 Mempengaruhi BkHutang 1..1 BuktiPenerim aanRetur 1..1 Mempengaruhi BkHutang 1..1

(5)

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 Atribut Deskripsi Tipe Lengh t Null s Multi value Karyawan KaryawanID ID Karyawan Bigint 8 N N

(6)

88 NmKaryawan Nama Karyawan Varchar 50 N N JnsKelamin Jenis Kelamin Char 1 N N TglLahir Tanggal Lahir Datetime 8 N N AlmtKaryawan Alamat Karyawan Varchar 100 N N TelpKaryawan Nomor Telepon Varchar 15 N Y

Jabatan Jabatan Varchar 30 N N

TglMasuk Tanggal Masuk Datetime 8 N N TglKeluar Tanggal Keluar Datetime 8 Y N Password Password Varchar 10 N N Pemasok PemasokID ID Pemasok Bigint 8 N N

KdPemasok Kode Pemasok Varchar 8 N N NmPemasok Nama Pemasok Varchar 50 N N NmKontak Nama Kontak Varchar 50 N N AlmtPemasok Alamat Pemasok Varchar 100 N N TelpPemasok Nomor Telepon Varchar 15 N Y

Fax Nomor Fax Varchar 15 N N

KotaPemasok Kota

Pemasok

Varchar 20 N N

KdPosPemasok Kode Pos

Pemasok

Varchar 7 N N BahanBakuID ID Bahan

Baku

Bigint 8 N N KdBahanBaku Kode Bahan

Baku

Varchar 8 N N NmBahanBaku Nama

Bahan Baku

Varchar 50 N N SatuanBrg SatuanBrg Varchar 15 N N HrgSatuan Harga per

Satuan

Float 8 N N

KdTrans Kode Varchar 8 N N

(7)

Bahan Baku Kuantitas Kuantitas Barang Masuk/Kelu ar Integer 4 N N StatusBahanBa ku Status Bahan Baku masuk / keluar Varchar 15 N N TrPembID ID Transaksi Pembelian Bigint 8 N N KdTrPemb Kode Transaksi Pembelian Varchar 8 N N TrPemb TglTrPemb Tanggal Transaksi Pembelian Datetime 8 N N

DP Uang Muka Float 8 Y N

PPNPemb Pajak Pembelian Float 8 N N TotalPemb Total Pembelian Float 8 N N KetPemb Keterangan Pembelian Varchar 100 Y N StatusPemb Status Pembelian Varchar 15 N N RtrPemb RtrPembID ID Retur

Pembelian

Bigint 8 N N KdRtrPemb Kode Retur

Pembelian Varchar 8 N N TglRtrPemb Tanggal Retur Pembelian Datetime 8 N N ReturOleh Di return oleh siapa Varchar 100 N N

StatusRetur Status Retur Varchar 15 N N BkHutangID Buku

Hutang ID

Bigint 8 N N KdBkHutang Kode Buku

Hutang Varchar 8 N N BkHutang TglBkHutang Tanggal Buku Datetime 8 N N

(8)

90 TglJthTempo Tanggal

Jatuh Tempo

Datetime 8 Y N

CaraBayar Cara Bayar Varchar 8 N N

StatusBayar Status Pembayaran Varchar 15 N N TotalBayar Total Pembayaran Float 8 N N MintaBahan Baku PermintaanBrgI D Permintaan Barang ID Bigint 8 N N KdPermintaanB rg Kode Permintaan Barang Varchar 8 N N TglPermintaan Brg Tanggal Permintaan Barang Datetime 8 N N DimintaOleh Diminta Oleh Varchar 50 N N StatusPermintaa nBrg Status Permintaan Barang Varchar 15 N N KetPermintaan Brg Keterangan Permintaan Barang Varchar 100 Y N BuktiPeneri maanBrg BPBID Bukti Penerimaan Barang ID Bigint 8 N N KdBPB Kode Bukti Penerimaan Barang Varchar 8 N N TglBPB Tanggal Bukti Penerimaan Barang Datetime 8 N N KetBPB Keterangan Bukti Penerimaan Barang Varchar 100 Y N

StatusBPB Status Bukti

Penerimaan Barang

Varchar 15 N N BuktiPeneri BPBReturID Bukti Bigint 8 N N

(9)

Penerimaan Retur Barang TglBPBRetur Tanggal Bukti Penerimaan Retur Barang Datetime 8 N N KetBPBRetur Keterangan Bukti Penerimaan Retur Barang Varchar 100 Y N

StatusBPBRetur Status Bukti Penerimaan Retur Barang Varchar 15 N N VoucherPen geluaranKas PengeluaranKas ID ID Pengeluaran Kas Bigint 8 N N KdPengluaranK as Kode Pengeluaran Kas Varchar 8 N N TglPengluaran Kas Tanggal Pengeluaran Kas Datetime 8 N N TotalPengeluara nKas Total Pengeluaran Kas Float 8 N N KetPengeluaran Kas Keternanga n Pengeluaran Kas Varchar 100 Y N

Tabel 4.3 Identifikasi Atribut dan Domain Atribut 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

(10)

92

Entity Candidate Key Primary Key

Karyawan KaryawanID KdKaryawan KaryawanID Pemasok PemasokID KdPemasok PemasokID BahanBaku BahanBakuID KdBahanBaku BahanBakuID TrPemb TrPemID KdTrPemb TrPembID RtrPemb RtrPembID KdRtrPemb RtrPembID MintaBahanBaku PermintaanBrgID KdPermintaanBrg PermintaanBrgID VoucherPengeluaran Kas PengeluaranKasID KdPengluaranKas PengeluaranKasID BkHutang BkHutangID KdBkHutang BkHutangID BuktiPenerimaanBrg BPBID KdBPB BPBID BuktiPenerimaanRet ur BPBReturID KdBPBRetur BPBReturID

(11)

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.

(12)

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

(13)

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

(14)

96 Hubungan antara ReturPemb dengan BahanBaku

Gambar 4.5 Hubungan antara ReturPemb dengan BahanBaku

Hubungan antara MintaBahanBaku dengan BahanBaku

(15)

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.

(16)

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 Karyawan KaryawanID {PK} KdKaryawan NmKaryawan JnsKelamin TglLahir AlmtKaryawan TelpKaryawan Jabatan TglMasuk TglKeluar Password TelpKaryawan 1..1 1..3 Mempunyai Karyawan KaryawanID {PK} KdKaryawan NmKaryawan JnsKelamin TglLahir AlmtKaryawan Jabatan TglMasuk TglKeluar Password TelpKaryawan {PK} 1.

(17)
(18)

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

(19)

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)

(20)
(21)
(22)
(23)
(24)
(25)
(26)
(27)
(28)
(29)
(30)

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, Fax, #KotaID, KdPosPemasok)

TelpPemasok(@PemasokID, TelpPemasok)

(31)

BahanBaku(@BahanBakuID, KdBahanBaku, NmBahanBaku, SatuanBrg, HrgSatuan, MinStok, KetBahanBaku, StatusBahanBaku)

StokBahanBaku(@BahanBakuID, KdTrans, Kuantitas)

Transaksi Permintaan Bahan Baku UNF

MintaBahanBaku(PermintaanBrgID, KdPermintaanBrg, TglPermintaanBrg , KaryawanID, KdKaryawan, { BahanBakuID, KdBahanBaku, NmBahanBaku, SatuanBrg, HrgSatuan, KetBahanBaku, StatusBahanBaku }, JmlhBahanBaku, Status ,Satuan, HrgBeliSatuan, DimintaOleh, StatusPermintaanBrg, KetPermintaanBrg )

1NF

MintaBahanBaku(@PermintaanBrgID, KdPermintaanBrg, TglPermintaanBrg , KaryawanID, KdKaryawan, @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 )

(32)

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,

(33)

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

(34)

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 )

(35)

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, TglBPB, TrPembID, KdTrPemb, KaryawanID, KdKaryawan,{ BahanBakuID, KdBahanBaku, NmBahanBaku, SatuanBrg, HrgSatuan, KetBahanBaku, StatusBahanBaku }, 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)

(36)

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, KdBPBRetur, TglBPBRetur, RtrPembID, KdRtrPemb, KaryawanID, KdKaryawan ,{ BahanBakuID, KdBahanBaku, NmBahanBaku, SatuanBrg, HrgSatuan, KetBahanBaku, StatusBahanBaku }, JmlhReturBrgTerima, SatuanBrgRetur , KetBPBRetur , StatusBPBRetur )

1NF

(37)

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

(38)

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)

(39)

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 )

(40)

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)

(41)

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

(42)

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 atribut-atribut tersebut tidak diperbolehkan bernilai null.

Entiti Atribut Deskripsi Tipe Len ght

Nulls Multiv alue Karyawan KaryawanID ID Karyawan Bigint 8 N N

KdKaryawan Kode Karyawan Varchar 8 N N NmKaryawan Nama Karyawan Varchar 50 N N

JnsKelamin Jenis Kelamin Char 1 N N TglLahir Tanggal Lahir Datetime 8 N N AlmtKaryawa Alamat Varchar 100 N N

(43)

Masuk

TglKeluar Tanggal Keluar

Datetime 8 Y N

Password Password Varchar 10 N N

Pemasok PemasokID ID Pemasok Bigint 8 N N KdPemasok Kode Pemasok Varchar 8 N N NmPemasok Nama

Pemasok

Varchar 50 N N

NmKontak Nama Kontak Varchar 50 N N AlmtPemasok Alamat

Pemasok

Varchar 100 N N

Fax Nomor Fax Varchar 15 N N

KotaID ID Kota Bigint 8 N N KdPosPemaso

k

Kode Pos Pemasok

Varchar 8 N N BahanBaku BahanBakuID ID Bahan

Baku Bigint 8 N N KdBahanBak u Kode Bahan Baku Varchar 8 N N NmBahanBak u Nama Bahan Baku Varchar 50 N N

SatuanBrg SatuanBrg Varchar 15 N N HrgSatuan Harga per

Satuan Float 8 N N MinStok Minimum Stok Integer 4 Y N KetBahanBak u Keterangan Bahan Baku Varchar 100 Y N StatusBahanB aku Status Bahan Baku masuk / keluar Varchar 20 N N TrPembID ID Transaksi Pembelian Bigint 8 N N KdTrPemb Kode Transaksi Pembelian Varchar 80 N N TrPemb TglTrPemb Tanggal Transaksi Pembelian Datetime 8 N N

KaryawanID ID Karyawan Bigint 8 N N PemasokID ID Pemasok Bigint 8 N N PermintaanBr

gID

ID Permintaan Barang

(44)

126 PPNPemb Pajak Pembelian Float 8 N N KetPemb Keterangan Pembelian Varchar 100 Y N StatusPemb Status Pembelian Varchar 20 N N TrPembDeti l TrPembID ID Transaksi Pembelian Bigint 8 N N BahanBakuID ID Bahan Baku Bigint 8 N N JmlhBahanBa kuBeli Jumlah Bahan Baku Beli Float 8 N N

Status Status Detil Varchar 20 N N

RtrPemb RtrPembID ID Retur Pembelian

Bigint 8 N N KdRtrPemb Kode Retur

Pembelian

Varchar 8 N N TglRtrPemb Tanggal Retur

Pembelian

Datetime 8 N N

TrPembID ID Transaksi

Pembelian

Bigint 8 N N ReturOleh Di return oleh

siapa

Varchar 50 N N

PemasokID ID Pemasok Bigint 8 N N

KaryawanID ID Karyawan Bigint 8 N N

StatusRetur Status Retur Varchar 20 N N RtrPembDet il RtrPembID ID Retur Pembelian Bigint 8 N N BahanBakuID ID Bahan Baku Bigint 8 N N JmlhBahanBa kuRtr Jumlah Bahan Baku Retur Float 8 N N KetReturDetil Keterangan Retur Detil Varchar 100 Y N BkHutang BkHutangID ID Buku

Hutang

Bigint 8 N N KdBkHutang Kode Buku

Hutang

Varchar 8 N N TglBkHutang Tanggal Buku

Hutang

Datetime 8 N N

TglJthTempo Tanggal Jatuh Tempo

(45)

RtrPembID ID Retur Pembelian Bigint 8 Y N BPBID ID Bukti Penerimaan Barang Bigint 8 N N

CaraBayar Cara Bayar Varchar 8 N N

StatusBayar Status Pembayaran Varchar 20 N N TotalBayar Total Pembayaran Float 8 N N MintaBahan Baku PermintaanBr gID ID Permintaan Barang Bigint 8 N N

KaryawanID ID Karyawan Bigint 8 N N

KdPermintaan Brg Kode Permintaan Barang Varchar 8 N N TglPermintaa nBrg Tanggal Permintaan Barang Datetime 8 N N

DimintaOleh Diminta Oleh Varchar 50 N N StatusPermint aanBrg Status Permintaan Barang Varchar 20 N N KetPermintaa nBrg Keterangan Permintaan Barang Varchar 100 Y N MintaBahan BakuDetil PermintaanBr gID ID Permintaan Barang Bigint 8 N N BahanBakuID ID Bahan Baku Bigint 8 N N JmlhBahanBa ku Jumlah Bahan Baku Float 8 N N

Status Status Minta

Bahan Baku Detil Varchar 20 N N BuktiPeneri maanBrg BPBID ID Bukti Penerimaan Barang Bigint 8 N N TrPembID ID Transaksi Pembelian Bigint 8 N N

KaryawanID ID Karyawan Bigint 8 N N

KdBPB Kode Bukti

Penerimaan Barang

Varchar 8 N N TglBPB Tanggal Bukti Datetime 8 N N

(46)

128 Barang KetBPB Keterangan Bukti Penerimaan Barang Varchar 100 Y N

StatusBPB Status Bukti

Penerimaan Barang Varchar 20 N N BuktiPeneri maanBrgDe til BPBID ID Bukti Permintaan Barang Bigint 8 N N BahanBakuID ID Bahan Baku Bigint 8 N N JmlhBrgTeri ma Jumlah Barang yang diterima Float 8 N N VoucherPen geluaranKas PengeluaranK asID ID Pengeluaran Kas Bigint 8 N N TrPembID ID Transaksi Pembelian Bigint 8 N N BkHutangID ID Buku Hutang Bigint 8 N N

KaryawanID ID Karyawan Bigint 8 N N

KdPengluaran Kas Kode Pengeluaran Kas Varchar 8 N N TglPengluara nKas Tanggal Pengeluaran Kas Datetime 8 N N TotalPengelua ranKas Total Pengeluaran Kas Float 8 N N KetPengeluar anKas Keternangan Pengeluaran Kas Varchar 100 Y N BuktiPeneri maanRetur BPBReturID ID Bukti Penerimaan Retur Bigint 8 N N RtrPembID ID Retur Pembelian Bigint 8 N N

KaryawanID ID Karyawan Bigint 8 N N

(47)

Retur KetBPBRetur Keterangan Bukti Penerimaan Retur Varchar 100 Y N StatusBPBRet ur Status Bukti Penerimaan Retur Varchar 20 N N BuktiPeneri maanRetur Detil BPBReturID ID Bukti Permintaan Retur Bigint 8 N N BahanBakuID ID Bahan Baku Bigint 8 N N JmlhReturBrg Terima Jumlah Retur Barang yang diterima Float 8 N N StokBahanB aku BahanBakuID ID Bahan Baku Bigint 8 N N KdTrans Kode Transaksi Varchar 8 N N Kuantitas Kuantitas Barang Float 8 N N

Kota KotaID ID Kota Bigint 8 N N

NamaKota Nama Kota Varchar 20 N N

TelpKaryaw an

TelpKaryawa n

Nomor Telpon Varchar 15 N N

KaryawanID ID Karyawan Bigint 8 N N

TelpPemasok Nomor Telpon Varchar 15 N N TelpPemaso

k PemasokID ID Pemasok Bigint 8 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 Tipe Len ght

Nulls Multi value

Constraints Karyawan JnsKelamin Jenis Kelamin Char 1 N N (L/P)

(48)

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 Lengh

t

Null s

Multi value Karyawan KaryawanID ID Karyawan Bigint 8 N N Pemasok PemasokID ID Pemasok Bigint 8 N N BahanBaku BahanBakuID ID Bahan

Baku

Bigint 8 N N TrPemb TrPembID ID Transaksi

Pembelian Bigint 8 N N TrPembID ID Transaksi Pembelian Bigint 8 N N TrPembDetil BahanBakuID ID Bahan Baku Bigint 8 N N RtrPemb RtrPembID ID Retur

Pembelian Bigint 8 N N RtrPembID ID Retur Pembelian Bigint 8 N N RtrPembDetil BahanBakuID ID Bahan Baku Bigint 8 N N BkHutang BkHutangID ID Buku

Hutang Bigint 8 N N VoucherPeng uaranlKas PengluaranKa sID ID Pengeluaran Kas Bigint 8 N N MintaBahanB aku PermintaanBr gID ID Permintaan Barang Bigint 8 N N MintaBahanB akuDetil PermintaanBr gID ID Permintaan Barang Bigint 8 N N BahanBakuID ID Bahan Baku Bigint 8 N N BuktiPenerim aanBrg BPBID ID Bukti Penerimaan Barang Bigint 8 N N

(49)

Baku BuktiPenerim aanRetur BPBReturID ID Bukti Penerimaan Retur Bigint 8 N N BuktiPenerim aanReturDetil BPBReturID ID Bukti Penerimaan Retur Detil Bigint 8 N N BahanBakuID ID Bahan Baku Bigint 8 N N StokBahanBa ku BahanBakuID ID Bahan Baku Bigint 8 N N KdTrans Kode Transaksi Varchar 8 N N

Kota KotaID ID Kota Bigint 8 N N

KaryawanID ID Karyawan Bigint 8 N N TelpKaryawa

n Telp Nomor

Telepon

Varchar 15 N N PemasokID ID Pemasok Bigint 8 N N TelpPemasok

Telp Nomor Telepon

Varchar 15 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.

(50)
(51)
(52)
(53)
(54)
(55)
(56)
(57)
(58)

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

Oracle 9i Harga:

Untuk 1 CPU sebesar $ 19,999

Harga:

Untuk 1 CPU sebesar $ 40,000 Kebutuhan Piranti Keras: Kebutuhan Piranti Keras:

(59)

Hard disk Space: 145 MB (minimum), 380 MB (typical)

Hard disk Space: 140 MB pada System Drive ditambah 4.5 GB untuk Oracle Home Drive (FAT) atau 2.8 GB untuk Oracle Home Drive (NTFS)

Kebutuhan Piranti Lunak:

Membutuhkan Internet Explorer 5.0 dan didukung oleh sistem operasi Microsoft Windows 2000 Server, Windows 2000 Advanced Server, Microsoft Windows NT version 4.0 Service Pack 5

Kebutuhan Piranti Lunak:

Oracle 9i mendukung semua platform termasuk platform berbasis Windows, AIX-Based Systems, Compaq Tru64 UNIX, HP 9000 Series HP-UX, Linux Intel, Sun Solaris, dan sebagainya

Fitur:

Mendukung T-SQL, dimana T-SQL memiliki fitur:

Indexes : B-Tree indexes

Tables : Relational tables, Temporary Tables

Triggers : AFTER triggers, INSTEAD OF triggers

Procedures : T-SQL statements Arrays : tidak mendukung

Fitur:

Mendukung PL/SQL, dimana PL/SQL memiliki fitur:

Indexes : B-Tree indexes, Bitmap indexes,

Partitioned indexes, Function- based indexes, Domain indexes

Tables : Relational tables, Object 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:

database name length : 128 column name length : 128 index name length : 128 table name length : 128 view name length : 128

stored procedure name length : 128 index length : 900

max columns per index : 16 max char() size : 8000 max varchar() size : 8000 max columns per table 1024 max table row length : 8036 max query size : 16777216 recursive subqueries : 40

constant string size in SELECT : 16777207

Keterbatasan:

database name length : 8 column name length : 30 index name length : 30 table name length : 30 view name length : 30

stored procedure name length : 30 index length : 749

max columns per index : 32 max char() size : 2000 max varchar() size : 4000 max columns per table 1000 max table row length : 255000 max query size : 16777216 recursive subqueries : 64

constant string size in SELECT : 4000 constant string size in WHERE : 4000

(60)

142 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.

Tidak mendukung TPC-C

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’

(61)

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

(62)

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

(63)

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

(64)

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

(65)

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 StatusDetil NOT NULL, 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(

(66)

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(

(67)

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

(68)

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

(69)

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 Ket_PengeluaranKas NULL, 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);

(70)

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);

(71)

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(

(72)

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,

(73)

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),

(74)

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

(75)

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),

(76)

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.

(77)

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.

(78)

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

(79)

I U D R I U D R I U D R I U D R I U D R I U D R Karyawan X X X X X Pemasok X X X X X BahanBaku X X X X X TrPemb TrPembDetil RtrPemb RtrPembDetil BkHutang VoucherPenglKas MintaBahanBaku MintaBahanBakuDetil BuktiPenerimaanBrg BuktiPenerimaanBrgDetil StokBahanBaku Kota TelpKaryawan X X X X X TelpPemasok X X X X X BuktiPenerimaanRetur BuktiPenerimaanReturDetil ( F ) Tabel ( A ) ( B ) ( C ) ( D ) ( E )

(80)

I U D R I U D R I U D R I U D R I U D R I U D R Karyawan X X Pemasok X X BahanBaku X TrPemb X X X X X X X TrPembDetil X X X X X RtrPemb X X X X X RtrPembDetil BkHutang VoucherPenglKas MintaBahanBaku X MintaBahanBakuDetil BuktiPenerimaanBrg BuktiPenerimaanBrgDetil StokBahanBaku X X X Kota TelpKaryawan X X TelpPemasok X X BuktiPenerimaaRetur BuktiPenerimaaReturDetil ( L ) Tabel ( G ) ( H ) ( I ) ( J ) ( K )

(81)

I U D R I U D R I U D R I U D R I U D R I U D R Karyawan X X Pemasok BahanBaku X TrPemb X X TrPembDetil RtrPemb X X RtrPembDetil X X X X X BkHutang X X X X X X VoucherPengluaranKas X X X X X MintaBahanBaku MintaBahanBakuDetil BuktiPenerimaanBrg X BuktiPenerimaanBrgDetil StokBahanBaku X Kota TelpKaryawan X X TelpPemasok BuktiPenerimaanRetur X BuktiPenerimaanReturDetil ( R ) Tabel ( M ) ( N ) ( O ) ( P ) ( Q )

(82)

I U D R I U D R I U D R I U D R I U D R I U D R I U D R Karyawan X X X Pemasok BahanBaku X X TrPemb X TrPembDetil RtrPemb RtrPembDetil BkHutang VoucherPengluaranKas MintaBahanBaku X X X X X X MintaBahanBakuDetil X X X X X BuktiPenerimaanBrg X X X X X X BuktiPenerimaanBrgDetil X X X X StokBahanBaku X X X X Kota TelpKaryawan X X X TelpPemasok BuktiPenerimaanRetur BuktiPenerimaanReturDetil ( X ) ( Y ) Tabel ( S ) ( T ) ( U ) ( V ) ( W )

(83)

I U D R I U D R I U D R I U D R I U D R I U D R I U D R Karyawan X X Pemasok BahanBaku X TrPemb X TrPembDetil RtrPemb RtrPembDetil BkHutang VoucherPengluaranKas MintaBahanBaku MintaBahanBakuDetil BuktiPenerimaanBrg BuktiPenerimaanBrgDetil X StokBahanBaku X X X X Kota TelpKaryawan X X TelpPemasok BuktiPenerimaanRetur X X X X X X BuktiPenerimaanReturDetil X X X X X (EE) ( FF ) Tabel ( Z ) ( AA ) (BB) (CC) (DD)

(84)

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)

(85)

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 :

(86)

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)

(87)

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 (KaryawanID)

CREATE INDEX Idx_RtrPembIDBPBRtr ON BuktiPenerimaanRetur (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 Idx_TelpKaryawan ON TelpKaryawan (KdKaryawan, TelpKaryawan)

(88)

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.

(89)

Tabel Num_Rows Pertumbuhan tiap tahun ( baris ) Num_Rows ( 5 tahun ) Karyawan 20 5 45 Pemasok 20 20 120 BahanBaku 20 50 270 StokBahanBaku 60 600 3060 MintaBahanBaku 20 200 1020 MintaBahanBakuDetil 40 400 2040 TrPemb 20 200 1020 TrPembDetil 40 400 2040 RtrPemb 10 100 510 RtrPembDetil 20 200 1020 BkHutang 30 200 1030 VoucherPengeluaranKas 30 200 1030 BuktiPenerimaanBrg 20 200 1020 BuktiPenerimaanBrgDetil 40 400 2040 BuktiPenerimaanRetur 10 100 510 BuktiPenerimaanReturDetil 20 200 1020 Kota 100 5 125 TelpPemasok 60 15 135 TelpKaryawan 60 15 135 Keterangan:

Num_Rows: jumlah baris

• Pertumbuhan Data Tiap Tahun: besar pertumbuhan data tiap tahun.

Num_Rows(5 tahun): jumlah baris 5 tahun mendatang Tabel Num Rows Row Size Row Per Page Free Row Per Page Num Page Tabel Size Karyawan 45 557 14 4 5 40.960 Pemasok 120 581 13 4 14 114.688 BahanBaku 270 544 14 4 27 221.184 StokBahanBaku 3060 72 109 27 38 311.296

Gambar

Gambar 4.2 ERD dengan Primary Key
Gambar 4.4 Hubungan antara TrPemb dengan BahanBaku
Gambar 4.6 Hubungan antara MintaBahanBaku dengan BahanBaku
Gambar 4.8 Hubungan antara BuktiPenerimaanRetur dengan BahanBaku
+7

Referensi

Dokumen terkait

Berdasarkan latar belakang masalah yang telah dipaparkan, maka penulis merumuskan masalah dalam penelitian ini sebagai berikut: “ Bagaimanakah analisis tindak tutur

Seperti yang terlihat dari rencana rasio defisit anggaran terhadap PDB yang berada di seki - tar 1,7 persen (lebih rendah dari 2,2 persen pada APBNP 2012), belanja pemerintah di

Panduan : Untuk memilih file atau folder lebih dari satu, dapat dilakukan dengan cara memilih salah satu file atau folder yang dipilih, lalu pindahkan pointer mouse pada file

Simpulan: Terdapat hubungan yang sangat bermakna antara infestasi cacing yang ditularkan melalui tanah dan eosinofilia Cacing yang paling banyak menginfestasi siswa SD GMIM

Pendapatan operasional adalah pendapatan yang timbul dari penjualan barang dagangan, produk, atau jasa dalam periode tertentu dalam rangka kegiatan utama atau yang

Penghematan penggunaan pakan untuk udang vaname dapat dilakukan dengan cara pergiliran pakan dua hari pakan protein rendah (28%) digilir dengan pakan protein tinggi (37%-39%) yang

Berdasarkan hasil analisa ragam menunjukkan perlakuan proporsi kapulaga dan jenis jahe memberikan pengaruh tidak berbeda nyata, hal ini diduga karena sirup yang disajikan

Pasien dengan gangguan ketidaknyamanan pada tangan dan pergelangan tangan seperti seorang wanita yang dijelaskan dalam tinjauan kasus, dievaluasi