59 4.1 Perancangan Basis Data
Langkah selanjutnya yang perlu dilakukan adalah perancangan basis data yang dibagi kedalam 3 tahapan, yaitu :
1. Perancangan Basis Data Konseptual 2. Perancangan Basis Data Logikal 3. Perancangan Basis Data Fisikal
4.1.1 Perancangan Basis Data Konseptual
Perancangan basis data konseptual merupakan suatu proses pembuatan model dengan menggunakan informasi yang diperoleh dari perusahaan. Beberapa langkah penting dalam merancang basis data secara konseptual adalah :
1. Identifikasi tipe entity 2. Identifikasi tipe relasional
3. Identifikasi dan asosiasi atribut suatu entity 4. Menentukan domain atribut
5. Identifikasi candidate dan primary key setiap entitas 6. Memeriksa model dari redudancy
4.1.1.1 Identifikasi Tipe Entity
Tahap ini ditentukan entitas-entitas utama yang dibutuhkan pada perancangan basis data.
Tabel 4.1 Identifikasi Tipe-Tipe Entity
NO Nama Entity Deskripsi
1. Barang Keterangan yang berhubungan dengan penyediaan barang
2. M erk M erk pada barang
3. Jenis Jenis barang
4. Customer Daftar pelanggan
5. Pegawai Daftar pegawai
6. Order Daftar pemesanan
7. Supplier Daftar pemasok barang
8. Divisi Bagian dari pegawai
9. Faktur_Penerimaan_Barang M enunjukan bukti daftar barang yang sudah diterima
10. Faktur_Penjualan M enunjukan bukti daftar barang yang dijual ke pelanggan
11. Nota_Tagihan M enunjukkan daftar piutang kepada pelanggan 12. Surat_Jalan_Order M enunjukkan informasi surat jalan yang menyertai
order
13. Surat_Jalan_Customer M enunjukkan informasi surat jalan yang menyertai nota tagihan
14. Daftar_Pemesanan Daftar Pemesanan barang oleh cutomer
4.1.1.2 Mengidentifikasikan Tipe-Tipe Relasi
4.1.1.3 Mengidentifikasi dan Menghubungkan Atribut dengan Tipe-Tipe Entitas, Domain Atribut, Primary Key dan Candidate key Tabel 4.2 Pembatas Multiplicity Tipe Relational
Entity Name Multiplicity Relationship Entity Name Multiplicity
Barang 1..* Terhadap Order 1..*
1..* Terhadap Faktur_Penerimaan_ Barang 1..* 1..* Terhadap Faktur_Penjualan 1..* 1..* Terhadap Daftar_Pemesanan 1..* 1..* M emiliki M erk 1..1 1..1 M emiliki Jenis 1..*
Customer 1..1 M emiliki Daftar_Pemesanan 1..* 1..1 M emiliki Faktur_Penjualan 1..* 1..1 M emiliki Nota_Tagihan 1..*
Pegawai 1..1 M elakukan Order 1..*
1..1 M elakukan Faktur_Penjualan 1..* 1..1 M enerima Faktur_Penerimaan_
Barang
1..*
1..1 M enerima Daftar_Pemesanan 1..*
Divisi 1..1 M emiliki Pegawai 1..*
Faktur_Penjualan 1..* Terhadap Nota_tagihan 1..1
Supplier 1..1 M enerima Order 1..* 1..1 M elakukan Faktur_Penerimaan_
Barang
1..*
1..1 M embuat Surat_Jalan 1..*
Surat_Jalan_Customer 1..1 M emiliki Faktur_Penjualan 1..*
1..1 Terhadap Customer 1..1
4.1.1.4 Mengidentifikasikan Asosiasi Atribut Suatu Entity Entitas Customer
Tabel 4.3 Entitas Customer
Attribute Description Date Type & Length
Nulls Multi Valued Kd_Customer M engidentifikasi setiap
customer
Char(5) No No
Nama_Customer Nama dari customer Varchar(20) No No Alamat_Customer Alamat dari customer Varchar(100) No No Telp_Customer Nomor telpon dari customer Varchar(30) No Yes
Entitas Barang
Tabel 4.4 Entitas Barang
Attribute Description Data Type & Length
Nulls Multi Valued Kd_Barang M engidentifikasikan Barang
yang tersedia
Char(5) No No
Nama_Barang Nama barang yang tersedia Varchar(20) No No Kd_M erk_Barang M engidentifikasikan merk
barang
Char(5) No No
Nama_M erk Nama merk pada barang Varchar(20) No No Kd_Jenis_Barang M engidentifikasikan Jenis
barang yang tersedia
Char(5) No No
Jenis_Barang Jenisa dari suatu barang Varchar(10) No No Harga Harga dari masing-masing
barang yang tersedia
M oney No No
Ukuran Ukuran dari barang yang tersedia
Varchar(5) No No
Entitas Jenis
Tabel 4.5 Entitas Jenis
Attribute Description Data Type & Lenght
Nulls Multi Valued Kd_Jenis_Barang M engidentifikasikan jenis
barang yang tersedia
Char(5) No No
Jenis_Barang Jenis dari suatu barang Varchar(15) No No
Entitas Merk
Tabel 4.6 Entitas Merk
Attribute Description Data Type & Lenght
Nulls Multi Valued Kd_M erk_Barang M engidentifikasikan merk
dari barang yang tersedia
Char(5) No No
Entitas Pegawai
Tabel 4.7 Entitas Pegawai
Attribute Description Data Type & Lenght
Nulls Multi Valued Kd_Pegawai M engidentifikasi pegawai yang
bekerja
Char(5) No No
Kd_Divisi M engidentifikasi divisi yang ada pada perusahaan secara unik
Char(5) No No
Nama_Pegawai Nama dari pegawai Varchar(30) No No Alamat_Pegawai Alamat dari pegwai Varchar(100) No No Telp_Pegawai Nomor telepon dari pegawai Varchar(30) No No
Entitas Divisi
Tabel 4.8 Entitas Divisi
Attribute Description Data Type & Lenght
Nulls Multi Valued Kd_Divisi M engidentifikasikan divisi
yang ada pada perusahaan
Char(5) No No
Entitas S uplier
Tabel 4.9 Entitas Supplier
Attribute Description Data Type & Lenght
Nulls Multi Valued Kd_Supplier M engidentifikasikan setiap
supplier
Char(5) No No
Nama_Supplier Nama dari supplier Varchar(30) No No
Alamat_Supplier Alamat dari supplier Varchar(100) No No
Telp_Supplier Nomor dari supplier Varchar(30) No No
Entitas Order
Tabel 4.10 Entitas Order
Attribute Description Data Type & Lenght
Nulls Multi Valued No_Order M engidentifikasikan nomor order Char(5) No No Kd_Supplier M engidentifikasikan setiap
supplier
Char(5) No No
Nama_Supplier Nama dari supplier Varchar(30) No No
Tanggal Tanggal Order Datetime No No
Kd_Pegawai M engidentifikasikan setiap pegawai
Char(5) No No
Kd_Barang M engidentifikasikan setiap barang
Char(5) No No
Nama_barang Nama dari barang yang dipesan Varchar(20) No No Ukuran Ukuran dari barang yang dipesan Varchar(5) No No Harga_Beli Harga beli barang Decimal No No Qty Jumlah Pembelian setiap barang Interger No No Sub_Total Harga Sub total pemesanan barng
dari supplier
Decimal No No
Total Total harga pemesanan barang dari supplier
Decimal No No
Entitas Daftar_Pemesanan
Tabel 4.11 Entitas Daftar Pemesanan Attribute Description Data Type &
Lenght Nulls Multi Valued No_Daftar_Pemesan an M engidentifikasikan daftar pemesanan yang ada pada perusahaan
Char(5) No No
Status_Pemesanan Status Pemesanan Char(10) No No Kd_Customer M engidentifikasikan setiap
pembeli
Char(5) No No
Nama_Customer Nama dari customer Varchar(30 No No Alamat_Customer Alamat dari customer Varchar(100) No No
Telp_Customer Nomor telepon customer Varchar(15) No No Kd_Pegawai M engidentifikasikan pegawai
yang bekerja
Char(5) No No
Tanggal Tanggal pemesanan barang Datetime No No Kd_Barang M engidentifikasikan setiap
barang yang tersedia
Char(5) No No
Nama_Barang Nama dari barang Varchar(20) No No
Harga_Jual Harga jual barang Decimal No No
Qty Jumlah pemesanan u tuk tiap barang
Integer No No
Sub_total Harga sub total pemesanan barang
Decimal No No
Total Total Harga pemesanan harga Decimal No No
Entitas Faktur_Penerimaan_Barang
Tabel 4.12 Entitas Faktur Penerimaan Barang Attribute Description Data Type &
Lenght
Nulls Multi Valued No_Faktur M engidentifikasikan faktur
penerimaan barang yang ada pada perusahaan
Char(5) No No
Kd_Supplier M engidentifikasikan setiap supplier
Nama_Supplier Nama dari supplier Varchar(30) No No Tanggal Tanggal faktur penerimaan
barang
Datetime No No
Kd_barang M engidentifikasikan setiap barang yang tersedia secara
unik
Char(5) No No
Nama_Barang Nama dari setiap barang Varchar(20) No No
Harga_Beli Harga beli barang Decimal No No
Qty Jumlah pemesanan untuk setiap barang
Integer No No
Sub_Total Harga sub total pemesanan barang ke supplier
Decimal No No
Total Total harga pemesanan barang Decimal No No
Entitas Faktur_Penjualan
Tabel 4.13 Faktur Penjualan
Attribute Description Data Type & Lenght
Nulls Multi Valued No_Faktur_Penjualan M engidentifikasikan faktur
penjualan yang ada pada perusahaan
Char(5) No No
Kd_Customer M engidentifikasikan setiap pembeli
Nama_Customer Nama dari customer Varchar(30) No No Tanggal Tanggal faktur penjualan Datetime No No Kd_Barang M engidentifikasikan setiap
barang yang tersedia
Char(5) No No
Nama_Barang Nama dari setiap barang Varchar(20) No No
Harga_Jual Harga jual barang Decimal No No
Qty Jumlah penjualan tiap barang Integer No No Sub_Total Harga sub total penjualan
barang
Decimal No No
Total Total Harga Penjualan Decimal No No
Entitas Nota_Tagihan
Tabel 4.14 Entitas Nota Tagihan Attribute Description Data Type
& Lenght
Nulls Multi Valued No_Nota_Tagihan M engidentifikasikan nota
tagihan yang ada pada perusahaan
Char(5) No No
Kd_Customer M engidentifikasikan setiap customer
Char(5) No No
Nama_Customer Nama dari customer Varchar(30) No No Tanggal Tanggal nota tagihan Datetime No No
penjualoan yang ada pada perusahaan
Tanggal_Pembelian Tanggal pembelian pada nota tagihan
Datetime No No
Harga_Jual Harga jual barang Decimal No No
Sub_Total Harga sub total penjualan barang
Decimal No No
Total Total Harga Penjualan Decimal No No
Entitas S urat_Jalan_Order
Tabel 4.15 Entitas Surat Jalan_Order Attribute Description Data Type &
Lenght
Nulls Multi Valued No_Surat_Jalan_Order M engidentifikasikan surat
jalan order yang tersedia
Char(5) No No
No_Order M engidentifikasikan order
yang tersedia
Char(5) No No
Tanggal Tanggal Surat Jalan Datetime No No
Kd_Supplier M engidentifikasikan setiap supplier
Char(5) No No
Nama_Supplier Nama dari supplier Varchar(30) No No Alamat_Supplier Alamat dari supplier Varchar(100) No No Telp_Supplier Nomor telpon dari supplier Varchar(15) No No
Kd_Barang M engidentifikasikan setiap barang yang tersedia
Char(5) No No
Nama_Barang Nama dari setiap barang Varchar(20) No No
Entitas S urat_Jalan_Customer
Tabel 4.16 Entitas Surat Jalan_Customer Attribute Description Data Type &
Lenght
Nulls Multi Valued No_Surat_Jalan_Customer M engidentifikasikan
surat jalan customer yang tersedia
Char(5) No No
No_Faktur Penjualan M engidentifikasikan faktur penjualoan yang ada pada perusahaan
Char(5) No No
Tanggal Tanggal surat jalan Datetime No No
Kd_Customer M engidentifikasikan setiap customer
Char(5) No No
Nama_Customer Nama dari supplier Varchar(30) No No Alamat_Customer Alamat dari customer Varchar(100) No No
Telp_Customer Nomor telpon dari customer
Varchar(15) No No
Kd_Barang M engidentifikasikan setiap barang yang
tersedia
Nama_Barang Nama dari setiap barang Varchar(20) No No
4.1.1.5 Menentukan domain Atribut
Tabel 4.17 Domain Atribut
Attributes Domain
Kd_Customer 5 karakter, 1 karakter di depan berupa huruf ’C’ dan karakter sisanya berupa angka 000-999
Kd_Barang 5 karakter, 1 karakter di depan berupa huruf ’B’ dan karakter sisanya berupa angka 000-999
Kd_M erk 5 karakter, 1 karakter di depan berupa huruf ’M ’ dan karakter sisanya berupa angka 000-999
Kd_Jenis 5 karakter, 1 karakter di depan berupa huruf ’J’ dan karakter sisanya berupa angka 000-999
Kd_Pegawai 5 karakter, 1 karakter di depan berupa huruf ’P’ dan karakter sisanya berupa angka 000-999
Kd_Devisi 5 karakter, 1 karakter di depan berupa huruf ’D’ dan karakter sisanya berupa angka 000-999
Kd_Supplier 5 karakter, 1 karakter di depan berupa huruf ’S’ dan karakter sisanya berupa angka 000-999
karakter sisanya berupa angka 000-999
No_Daftar_Pemesanan 5 karakter, 2 karakter di depan berupa huruf ’DP’ dan karakter sisanya berupa angka 000-999
No_Faktur_Penerimaan_Barang 5 karakter, 2 karakter di depan berupa huruf ’FP’ dan karakter sisanya berupa angka 000-999
No_Faktur_Penjualan 5 karakter, 1 karakter di depan berupa huruf ’F’ dan karakter sisanya berupa angka 000-999
No_Nota_Tagihan 5 karakter, 2 karakter di depan berupa huruf ’NT’ dan karakter sisanya berupa angka 000-999
No_Surat_Jalan_Order 5 karakter, 2 karakter di depan berupa huruf ’SO’ dan karakter sisanya berupa angka 000-999
No_Surat_Jalan_Customer 5 karakter, 2 karakter di depan berupa huruf ’SC’ dan karakter sisanya berupa angka 000-999
4.1.1.6 Menentuan Candidate Key dan Primary Key Tabel 4.18 Candidate dan Primary Key
Entity Name Candidate Key Primary Key Customer Kd_Customer Kd_Customer
Barang Kd_Barang Kd_Barang M erk Kd_M erk Kd_M erk
Jenis Kd_Jenis Kd_Jenis Pegawai Kd_Pegawai Kd_Pegawai
Supplier Kd_Supplier Kd_Supplier
Divisi Kd_Divisi Kd_Divisi
Order No_Order No_Order
Daftar_Pemesanan No_Daftar_Pemesanan No_Daftar_Pemesanan Faktur_Penerimaan_Barang No_Faktur_Penerimaan_Barang No_Faktur_Penerimaan_
Barang
Faktur_Penjualan No_Faktur_Penjualan No_Faktur_Penjualan Nota_Tagihan No_Nota_Tagihan No_Nota_Tagihan Surat_Jalan_Order No_Surat_Jalan_Order No_Surat_Jalan_Order
Surat_Jalan_Customer No_Surat_Jalan_Customer No_Surat_Jalan_Customer
4.1.1.7 Memeriksa Model dari Redudancy
M odel data konseptual tidak memiliki redundansi karena tidak ada dua entity yang menunjuk pada objek yang sama dalam perusahaan.
4.1.1.8 Memvalidasi Model Konseptual Lokal dengan Transaksi Pengguna
Tujuan dari langkah ini adalah untuk meyakinkan bahwa model konseptual lokal mendukung transaksi user.
Keterangan transaksi :
a. M embuat daftar_pemesanan b. M embuat order
c. M embuat penjualan
d. M embuat penerimaan barang e. M embuat nota tagihan f. M embuat surat jalan order g. M embuat surat jalan customer h. Cetak laporan daftar_pemesanan i. Cetak laporan order
j. Cetak laporan penjualan
k. Cetak laporan penerimaan_barang l. Cetak laporan nota_tagihan m. Cetak laporan surat_jalan_order n. Cetak laporan surat_jalan_customer
4.1.1.9 Meninjau Model Konseptual Lokal dengan Pengguna
4.1.2 Perancangan Basis Data logikal
Perancangan basis data logikal merupakan suatu proses pembuatan model dengan menggunakan informasi yang diperoleh dari perusahaan serta berdasarkan pada model data spesifik, tetapi bebas dari DBM S tertentu dan pertimbangan fisik lainnya. Berikut ini adalah langkah-langkah penting dalam merancang basis data logikal :
1. M enghilangkan fitur yang tidak sesuai dengan model relasional
Untuk menghilangkan fitur yang tidak sesuai dengan model relasional, maka yang perlu dihilangkan :
a. Many to many (*.*) binary relationship b. Complex relationship types
c. Multi valued attributes
2. M enurunkan relasi untuk model data logikal lokal 3. M emvalidasi relasi dengan menggunakan normalisasi 4. M emvalidasi relasi terhadap transaksi user
4.1.2.1 Menghilangkan fitur-fitur yang tidak sesuai dengan Model Relational
Menghilangkan Many to Many (* : *) Binary Relationship
Gambar 4.4 Relasi Biner many-to-many (*:*) Order Header_Order Detail_Order Barang Terhadap 1,* 1.* Header_Order No_Order Detail_Order No_Order Kd_Barang Barang Kd_Barang 1..1 1..1 1..1 1..* M emiliki Terhadap
Gambar 4.5 Relasi Biner many-to-many (*:*) Penerimaan Barang Header_Penerimaan_Barang Detail_Penerimaan_Barang Barang 1..* 1..* Terhadap Header_Penerimaan_Barang No_Penerimaan_Barang Detail_Penerimaan_Barang No_Penerimaan_Barang Kd_Barang Barang Kd_Barang 1..1 1..1 1..1 1..* M emiliki Terhadap
Gambar 4.6 Relasi Biner many-to-many (*:*) Penjualan Header_Penjualan Kd_Penjualan Detail_Penjualan No_Penjualan Kd_Barang Barang Kd_Barang 1..1 1..1 1..1 1..* M emiliki Terhadap Header_Penjualan Detail_Penjualan Barang 1..* 1..* Terhadap
Gambar 4.7 Relasi Biner many to many (*.*) Daftar Pemesanan Header_Daftar_Pemesanan No_Daftar_Pemesanan Detail_Daftar_Pemesanan No_Daftar_Pemesanan Kd_Barang Barang Kd_Barang 1..1 1..1 1..1 1..* M emiliki Terhadap Header_Daftar_Pemesanan Detail_Daftar_Pemesanan Barang 1..* 1..* Terhadap
Gambar 4.8 Relasi Biner many to many (*.*) S urat Jalan Order Header_Surat_Jalan_Order Barang Detail_Surat_Jalan_Order Terhadap 1..* 1..* Header_Surat_Jalan_Order No_Surat_Jalan_Order Barang Kd_Barang Detail_Surat_Jalan_Order No_Surat_Jalan_Order Kd_Barang 1..1 1..1 1..1 1..* M emiliki Terhadap
Gambar 4.9 Relasi Biner many to many (*.*) S urat Jalan Customer Header_Surat_Jalan_Customer No_Surat_Jalan_Customer Barang Kd_Barang Detail_Surat_Jalan_Customer No_Surat_Jalan_Customer Kd_Barang 1..1 1..1 1..1 1..* M emiliki Terhadap Header_Surat_Jalan_Customer Barang Detail_Surat_Jalan_Customer Terhadap 1..* 1..*
4.1.2.2 Menurunkan Relasi untuk Model Data Logikal
Langkah ini bertujuan membuat relasi untuk model data logikal lokal untuk merepresentasikan entity, relationship, dan atribut yang telah kita identifikasikan.
Entity yang terdapat dalam menurunkan relasi untuk M odel Data Logikal :
4.1.2.2.1 Strong Entity Types
Tabel 4.19 Tabel yang Diturunkan dari Tipe Entity Kuat
No Nama Entity Tabel
1 Header_Barang @Kd_Barang, Nama_Barang, Kd_M erk,
Kd_Supplier, Kd_Jenis, Harga. 2 Detail_Barang @Kd_Barang, Ukuran, Qty
3 Pegawai @Kode_Pegawai, Nama_Pegawai,
Alamat_Pegawai, Telepon_Pegawai
4 Customer @Kode_Customer, Nama_Customer,
Alamat_Customer, Telepon_Supplier
5 Supplier @Kode_Supplier, Nama_Supplier,
Alamat_Supplier, Telpon_Supplier
6 Header_Daftar_Pemesanan @No_Daftar_Pemesanan_Barang, Kd_Pegawai, Kd_Customer, Tanggal, Status_Pemesanan
7 Detail_Daftar_Pemesanan @No_Daftar_Pemesanan_Barang, Kd_Barang, Ukuran, Harga_Jual, Qty, Sub_Total
8 Header _Order @No_Order, Kd_Pegawai, Kd_Supplier, Tanggal 9 Detail_Order @No_Order, Kd_Barang, Ukuran, Harga_Beli Qty,
Sub_Total
10 Header_Penerimaan_Barang @No_Faktur_Penerimaan_Barang, Kd_Supplier, Kd_Pegawai, Tanggal
11 Detail_Penerimaan_Barang @No_Faktur_Penerimaan_Barang, No_Order, Harga_Beli
12 Header_Penjualan @No_Faktur_Penjualan, Kd_Pegawai, Kd_Customer, Tanggal
13 Detail_Penjualan @No_Faktur_Penjualan, Kd_Barang, Ukuran, Harga Jual, Qty, Sub_Total
14 Header_Nota_Tagihan @No_Nota_Tagihan, Kd_Customer, Kd_Pegawai, Tanggal
15 Detail_Nota_Tagihan @No_Nota_Tagihan, No_Daftar_Pemesanan, Harga_Jual
16 Header_Surat_Jalan_Order @No_Surat_Jalan_Order,Kd_Supplier,Kd_Pegawai, Tanggal
17 Detail_Surat_Jalan_Order @No_Surat_Jalan_Order, No_Order
18 Header_Surat_Jalan_Customer @No_Surat_Jalan_Customer,Kd_Customer, Kd_Pegawai, Tanggal
4.1.2.2.2 Weak Entity Types
Tabel 4.20 Tabel yang Diturunkan dari Tipe Entity Lemah
No Nama Entity Tabel
1 M erk @Kd_M erk, Nama_M erk
2 Jenis @Kd_Jenis, Jenis
3 Divisi @Kode_Divisi, Nama_Divisi
4.1.2.2.3 Tipe relasi Biner one-to-many (1:*)
Gambar 4.10 Relasi Biner one-to-many (1:*) Divisi terhadap Pegawai Divisi(Kd_Divisi, Nama_Divisi) Primary Key Kd_Divisi
Pegawai (Kd_Pegawai, Nama_Pegawai, Alamat_Pegawai, Kd_Divisi) Primary Key Kd_Pegawai
Gambar 4.11 Relasi Biner one-to-many (1:*) Jenis_Barang terhadap Header_Barang
Gambar 4.12 Relasi Biner one-to-many (1:*) Merk_Barang terhadap Header_Barang
Header_Barang (Kd_Barang, Nama_Barang, Kd_M erk_Barang, Kd_Supplier, Kd_Jenis_Barang, Harga)
Primary Key Kd_Barang
Foreign Key Kd_M erk references M erk (Kd_M erk) Foreign Key Kd_Jenis references Jenis (Kd_Jenis)
Foreign Key Kd_Supplier references Supplier (Kd_Supplier) Jenis _Barang (Kd_Jenis_Barang,
Jenis_Barang)
Merk _Barang (Kd_ M erk _Barang, M erk _Barang)
Header_Barang (Kd_Barang, Nama_Barang, Kd_M erk_Barang, Kd_Supplier, Kd_Jenis_Barang, Harga)
Primary Key Kd_Barang
Foreign Key Kd_M erk references M erk (Kd_M erk) Foreign Key Kd_Jenis references Jenis (Kd_Jenis)
4.1.2.2.4 Tipe relasi biner one-to-one(1:1)
Gambar 4.13 Relasi Biner one-to-one (1:1) Detail_Surat_Jalan terhadap Header_Order
Gambar 4.14 Relasi Biner one-to-one (1:1) Detail_Surat_Customer terhadap Header_Nota_Tagihan
Header_Order (No_Order, Kd_Pegawai,
Kd_Supplier, Tanggal) Primary Key No_Order
Foreign_Key Kd_Pegawai references
Pegawai(Kd_Pegawai) Foreign_Key Kd_Supplier references
Supplier(Kd_Supplier) Detail_Surat_Jalan_Order
(No_Surat_Jalan_Order, No_Order) Primary Key No_Surat_Jalan_Order Primary Key No _Order
Detail_Surat_Jalan_Customer(No_Surat_Jalan _Customer, No_Nota_Tagihan)
Primary Key No_Surat_Jalan_ Customer Primary Key No_ Nota_Tagihan
Header_ Nota_Tagihan (No_ Nota_Tagihan, Kd_Pegawai, Kd_Customer, Tanggal) Primary Key No_ Nota_Tagihan
Foreign_Key Kd_Pegawai references Pegawai(Kd_Pegawai) Foreign_Key Kd_ Customer references Supplier(Kd_
4.1.2.2.5 Tipe relasi biner many-to-many(*:*)
Gambar 4.15 Many to many (*.*) relationship antara entity Header_Order dengan Header_Barang
Header_Barang (Kd_Barang,Nama_Barang,Kd_M erk_Barang, Kd_Supplier, Kd_Jenis_Barang, Harga)
Primary Key (Kd_Barang)
Foreign Key Kd_M erk references M erk(Kd_M erk_Barang) Foreign Key Kd_Jenis references Jenis(Kd_Jenis_Barang) Foreign Key Kd_Supplier references Supplier(Kd_Supplier)
Header_Order (No_Order, Kd_Supplier,Tanggal, Total) Primary Key (No_Order)
Foreign Key Kd_Supplier references Supplier (Kd_Supplier)
Gambar 4.16 Many to many (*.*) relationship antara entity Header_Penerimaan_Barang dengan Header_Barang
Header_Barang (Kd_Barang, Nama_Barang,Kd_M erk, Kd_Supplier, Kd_Jenis, Harga,
Tanggal_Update) Primary Key (Kd_Barang)
Foreign Key Kd_M erk references M erk(Kd_M erk) Foreign Key Kd_Jenis references Jenis(Kd_Jenis)
Foreign Key Kd_Supplier references Supplier(Kd_Supplier)
Header_Penerimaan_Barang (No_Faktur_Penerimaan_Barang,
Kd_Supplier, Tanggal, Kd_Barang, Total) Primary Key
(No_Faktur_Penerimaan_Barang)
Detail_Penerimaan_Barang
Gambar 4.17 Many to many (*.*) relationship antara entity Header_Penjualan dengan Header_Barang
Header_Barang (Kd_Barang, Nama_Barang, Kd_M erk, Harga)
Primary Key (Kd_Barang)
Foreign Key Kd_M erk_Barang refrerences Merk_Barang ( Kd_M erk_Barang)
Foreign Key Kd_Jenis_Barang references Jenis_Barang (Kd_Jenis_Barang)
Foreign Key Kd_Supplier references Supplier (Kd_Supplier)
Header_Penjualan (No_Faktur_Penjualan, Kd_Customer, Tanggal, Kd_Barang, Total) Primary Key (No_Faktur_Penjualan)
Gambar 4.18 Many to many (*.*) relationship antara entity Header_Daftar_Pemesanan dengan Header_Barang
Header_Barang ( Kd_Barang, Nama_Barang, Kd_M erk_Barang, Kd_Supplier, Kd_Jenis_Barang, Harga)
Primary Key ( Kd_Barang)
Foreign Key Kd_M erk_Barang references M erk_Barang (Kd_M erk_Barang)
Foreign Key Kd_Jenis_Barang references Jenis_Barang (Kd_Jenis_Barang)
Foreign Key Kd_Supplier references Supplier (Kd_Supplier)
Header_Daftar_Pemesanan (No_Daftar_Pemesanan, Kd_Pegawai, Kd_Customer, Kd_Barang, Total) Primary Key (No_Daftar_Pemesanan)
Detail_Daftar_Pemesanan ( No_Daftar_Pemesanan, Kd_Barang, Qty, Sub_Total)
4.1.2.3 Validasi Relasi dengan Normalisasi
Tujuan dari normalisasi adalah untuk menghilangkan redundansi semaksimal mungkin dan menghindarkan adanya data yang tidak konsisten terutama bila dilakukan penghapusan atau penambahan data sebagai akibat dari adanya data rangkap. Proses normalisasi terdiri dari langkah-langkah berikut:
• First normal form (1NF) adalah langkah menghilangkan repeating group.
• Second normal form (2NF) adalah langkah menghilangkan ketergantungan parsial pada primary key.
• Third normal form (3NF) adalah langkah menghilangkan ketergantungan transitif pada primary key.
Langkah-langkah normalisasi yang dilakukan : 1. Header_Barang
Telah memenuhi syarat normalisasi, yaitu UNF, 1NF,2NF. UNF
Header_Barang = Kd_Barang, Kd_M erk_Barang, Kd_Jenis_Barang, Kd_Supplier, Nama_Barang, Harga_Barang.
1NF
Header_Barang =@Kd_Barang, Nama_Barang, @Kd_M erk_Barang, @Kd_Supplier, @Kd_Jenis_Barang, Harga
Header_Barang =@Kd_Barang, Nama_Barang, @Kd_M erk_Barang, @Kd_Supplier, @Kd_Jenis_Barang, Harga
3NF → terdapat ketergantungan transitif, yaitu M erk_Barang, Jenis_Barang, Supplier.
M erk_Barang =@Kd_M erk_Barang, Nama_M erk_Barang
Supplier =@Kd_Supplier, Nama_Supplier, Alamat_Supplier, Telp_Supplier
Jenis_Barang =@Kd_Jenis_Barang, Jenis_Barang 2. Detail_Barang
Telah memenuhi syarat normalisasi UNF, 1NF, 2NF, 3NF UNF
Detail_Barang =@Kd_Barang, Ukuran, Qty 1NF → tidak terjadi repeating group
Detail_Barang =@Kd_Barang, Ukuran, Qty 2NF → tidak terjadi ketergantungan parsial Detail_Barang =@Kd_Barang, Ukuran, Qty
3NF → tidak terjadi ketergantungan transitif Detail_Barang =@Kd_Barang, Ukuran, Qty
3. Merk_Barang
Tabel M erk_Barang sudah memenuhi syarat normalisasi UNF, 1NF, 2NF, 3NF
UNF
M erk_Barang =Kd_M erk_Barang, Nama_M erk_Barang 1NF → tidak terjadi repeating group
M erk_Barang = @Kd_M erk_Barang, Nama_M erk_Barang 2NF → tidak terjadi ketergantungan parsial
M erk_Barang = @Kd_M erk_Barang, Nama_M erk_Barang 3NF → tidak terjadi ketergantungan transitif
M erk_Barang = @Kd_M erk_Barang, Nama_M erk_Barang 4. Customer
Tabel Customer sudah memenuhi syarat normalisasi UNF, 1NF, 2NF, 3NF
UNF
Customer = Kd_Customer, Nama_Customer, Alamat_Customer, Telp_Customer
1NF → tidak terjadi repeating group
Customer = @Kd_Customer, Nama_Customer, Alamat_Customer, Telp_Customer
2NF → tidak terjadi ketergantungan parsial
Customer = @Kd_Customer, Nama_Customer, Alamat_Customer, Telp_Customer
3NF → tidak terjadi ketergantungan transitif
Customer = @Kd_Customer, Nama_Customer, Alamat_Customer, Telp_Customer
5. Jenis_Barang
Tabel Jenis_Barang sudah memenuhi syarat normalisasi UNF, 1NF, 2NF, 3NF
Jenis_Barang = Kd_Jenis_Barang, Jenis_Barang 1NF → tidak terjadi repeating group
Jenis_Barang = @Kd_Jenis_Barang, Jenis_Barang 2NF → tidak terjadi ketergantungan parsial
Jenis_Barang = @Kd_Jenis_Barang, Jenis_Barang 3NF → tidak terjadi ketergantungan transitif Jenis_Barang = @Kd_Jenis_Barang, Jenis_Barang 6. Supplier
Tabel supplier sudah memenuhi syarat normalisasi UNF, 1NF, 2NF, 3NF
UNF
Supplier = Kd_Supplier, Nama_Supplier, Alamat_Supplier, Telp_Supplier
1NF → tidak terjadi repeating group
Supplier = @Kd_Supplier, Nama_Supplier, Alamat_Supplier, Telp_Supplier
2NF → tidak terjadi ketergantungan parsial
Supplier = @Kd_Supplier, Nama_Supplier, Alamat_Supplier, Telp_Supplier
3NF → tidak terjadi ketergantungan transitif
Supplier = @Kd_Supplier, Nama_Supplier, Alamat_Supplier, Telp_Supplier
Tabel Pegawai sudah memenuhi syarat normalisasi UNF, 1NF, 2NF, 3NF
UNF
Pegawai = Kd_Pegawai, Nama_Pegawai, Alamat_Pegawai, Telp_Pegawai, Kd_Divisi
1NF → tidak terjadi repeating group
Pegawai = @Kd_Pegawai, Nama_Pegawai, Alamat_Pegawai, Telp_Pegawai, Kd_Divisi
2NF → tidak terjadi ketergantungan parsial
Pegawai = @Kd_Pegawai, Nama_Pegawai, Alamat_Pegawai, Telp_Pegawai, Kd_Divisi
3NF → terjadi ketergantungan transitif, yaitu Divisi Kd_Pegawai, Kd_Divisi.
Pegawai = @Kd_Pegawai, Nama_Pegawai, Alamat_Pegawai, Telp_Pegawai, Kd_Divisi
Divisi = @Kd_Divisi, Nama_Divisi 8. Divisi
Tabel Divisi sudah memenuhi syarat normalisasi UNF, 1NF, 2NF, 3NF
UNF
Divisi = Kd_Divisi, Nama_Divisi 1NF → tidak terjadi repeating group Divisi = @Kd_Divisi, Nama_Divisi
Divisi = @Kd_Divisi, Nama_Divisi
3NF → tidak terjadi ketergantungan transitif Divisi = @Kd_Divisi, Nama_Divisi
9. Header_Penerimaan_Barang UNF Header_Penerimaan_Barang = No_Faktur_penerimaan_Barang, Kd_Supplier, Kd_Pegawai,Tanggal 1NF Header_Penerimaan_Barang = @No_Faktur_penerimaan_Barang, @Kd_Supplier, @Kd_Pegawai,Tanggal 2NF Header_Penerimaan_Barang = @No_Faktur_penerimaan_Barang, @Kd_Supplier,@ Kd_Pegawai,Tanggal
3NF → terjadi ketergantungan transitif, yaitu Supplier dan Pegawai.
Header_Penerimaan_Barang = @No_Faktur_penerimaan_Barang, Kd_Supplier, Kd_Pegawai,Tanggal
Supplier = @Kd_Supplier, Nama_Supplier, Alamat_Supplier, Telp_Supplier
Pegawai = @Kd_Pegawai, Nama_Pegawai, Alamat_Pegawai, Telp_Pegawai
10. Detail_Penerimaan_Barang UNF
Detail_Penerimaan_Barang = No_Faktur_penerimaan_Barang, No_Order, Harga_Beli 1NF Detail_Penerimaan_Barang = @No_Faktur_penerimaan_Barang, @No_Order, Harga_Beli 2NF Detail_Penerimaan_Barang = @No_Faktur_penerimaan_Barang, @No_Order, Harga_Beli Header_Penerimaan_Barang = @No_Faktur_penerimaan_Barang, Kd_Supplier, Kd_Pegawai,Tanggal
Header_Order = @ No_Order, Kd_Supplier, Kd_Pegawai, Tanggal
3NF → terjadi ketergantungan transitif
Detail_Penerimaan_Barang = @No_Faktur_penerimaan_Barang, @No_Order, Harga_Beli
Header_Order = @ No_Order, Kd_Supplier, Kd_Pegawai, Tanggal Supplier = @Kd_Supplier, Nama_Supplier, Alamat_Supplier, Telp_Supplier
Pegawai = @Kd_Pegawai, Nama_Pegawai, Alamat_Pegawai, Telp_Pegawai
11. Header_penjualan UNF
1NF
Header_penjualan = @No_Faktur_Penjualan, @Kd_Pegawai, Kd_Customer, Tanggal
2NF
Header_penjualan = @No_Faktur_Penjualan, @Kd_Pegawai, @Kd_Customer, Tanggal
3NF
Header_penjualan = @No_Faktur_Penjualan, Kd_Pegawai, Kd_Customer, Tanggal
Pegawai = @Kd_Pegawai, Nama_Pegawai, Alamat_Pegawai, Telp_Pegawai
Customer = @Kd_Customer, Nama_Customer, Alamat_Customer, Telp_Customer
12. Detail_Penjualan UNF
Detail_Penjualan = No_Faktur_Penjualan, Kd_Barang, Ukuran, Qty, Harga_Jual
1NF
Detail_Penjualan = @No_Faktur_Penjualan, @Kd_Barang, Qty, Harga_Jual, Ukuran
2NF
Detail_Penjualan = @No_Faktur_Penjualan, Kd_Barang, Qty, Harga_Jual, Ukuran
Header_penjualan = @No_Faktur_Penjualan, Kd_Pegawai, Kd_Customer, Tanggal
Header_Barang = @Kd_barang, Nama_Barang, Kd_Jenis_Barang, Kd_M erk_Barang, Nama_Barang, Harga_Barang
3NF
Detail_Penjualan = @No_Faktur_Penjualan, @Kd_Barang, Qty, Harga_Jual, Ukuran
Header_Barang = @Kd_barang, Nama_Barang, Kd_Jenis_Barang, Kd_M erk_Barang, Nama_Barang, Harga_Barang
Jenis_Barang = @ Kd_Jenis_Barang + Nama_Jenis_Barang M erk_Barang = @ Kd_M erk_Barang + Nama_M erk_Barang
Header_penjualan = @No_Faktur_Penjualan, Kd_Pegawai, Kd_Customer, Tanggal
Pegawai = @Kd_Pegawai, Nama_Pegawai, Alamat_Pegawai, Telp_Pegawai
Customer = @Kd_Customer, Nama_Customer, Alamat_Customer, Telp_Customer
13. Header_Order UNF
Header_Order = No_Order, Kd_Pegawai, Kd_Supplier, Tanggal 1NF
Header_Order = @No_Order,@ Kd_Pegawai,@ Kd_Supplier, Tanggal
Header_Order = @No_Order, Kd_Pegawai, Kd_Supplier, Tanggal 3NF
Header_Order = @No_Order, Kd_Pegawai, Kd_Supplier, Tanggal Pegawai = @Kd_Pegawai, Nama_Pegawai
Supplier = @Kd_Supplier, Nama_Supplier 14. Detail_Order
UNF
Detail_Order = No_Order, Kd_Barang, Ukuran, Qty, Harga_Beli 1NF
Detail_Order = @No_Order, @Kd_Barang, Ukuran, Qty, Harga_Beli
2NF
Detail_Order = @No_Order, Kd_Barang, Ukuran, Qty, Harga_Beli Header_Barang = @Kd_Barang, Nama_Barang, Ukuran, Qty, Kd_Jenis_Barang, Kd_M erk_Barang
3NF
Detail_Order = @No_Order, Kd_Barang, Ukuran, Qty, Harga_Beli Header_Barang = @Kd_Barang, Nama_Barang, Ukuran, Qty Kd_Jenis_Barang, Kd_M erk_Barang
Jenis_Barang = @ Kd_Jenis_Barang + Nama_Jenis_Barang M erk_Barang = @ Kd_M erk_Barang + Nama_M erk_Barang Header_Order = @No_Order, Kd_Pegawai, Kd_Supplier, Tanggal Pegawai = @Kd_Pegawai, Nama_Pegawai
15. Header_Pemesanan_Barang UNF
Header_Pemesanan_Barang = No_Daftar_Pemesanan_barang, Kd_Pegawai, Kd_Customer, Tanggal, Status_Pemesanan
1NF Header_Pemesanan_Barang = @No_Daftar_Pemesanan_barang, @Kd_Pegawai, @Kd_Customer, Tanggal, Status_Pemesanan
2NF
Header_Pemesanan_Barang = @No_Daftar_Pemesanan_barang, @Kd_Pegawai, @Kd_Customer, Tanggal, Status_Pemesanan
3NF
Header_Pemesanan_Barang = @No_Daftar_Pemesanan_barang, Kd_Pegawai, Kd_Customer, Tanggal, Status_Pemesanan
Customer = @Kd_Customer, Nama_Customer, Alamat_Customer, Telp_Customer
Pegawai = @Kd_Pegawai, Nama_Pegawai, Alamat_Pegawai, Telp_Pegawai
16. Detail_Pemesanan_Barang UNF
Detail_Pemesanan_Barang = No_Daftar_Pemesanan_barang, Kd_Barang, Ukuran, Qty, Harga_Jual
1NF
2NF
Detail_Pemesanan_Barang = @No_Daftar_Pemesanan_barang, Kd_Barang, Ukuran, Qty, Harga_Jual
Header_Barang = @Kd_Barang, Nama_Barang, Ukuran, Qty Kd_Jenis_Barang, Kd_M erk_Barang
3NF
Detail_Pemesanan_Barang = @No_Daftar_Pemesanan_barang, @Kd_Barang, Ukuran, Qty, Harga_Jual
Header_Barang = @Kd_Barang, Nama_Barang, Ukuran, Qty Kd_Jenis_Barang, Kd_M erk_Barang
Jenis_Barang = @ Kd_Jenis_Barang + Nama_Jenis_Barang M erk_Barang = @ Kd_M erk_Barang + Nama_M erk_Barang
Header_Pemesanan_Barang = @No_Daftar_Pemesanan_barang, Kd_Pegawai, Kd_Customer, Tanggal, Status_Pemesanan
Customer = @Kd_Customer, Nama_Customer, Alamat_Customer, Telp_Customer
Pegawai = @Kd_Pegawai, Nama_Pegawai, Alamat_Pegawai, Telp_Pegawai
17. Header_Nota_Tagihan UNF
Header_Nota_Tagihan = No_Nota_Tagihan, Kd_Pegawai, Kd_Customer, Tanggal
Header_Nota_Tagihan = @No_Nota_Tagihan, @Kd_Pegawai, Kd_Customer, Tanggal
2NF
Header_Nota_Tagihan = @No_Nota_Tagihan, @Kd_Pegawai, Kd_Customer, Tanggal
3NF → terjadi ketergantungan transitif, yaitu Customer dan Pegawai
Header_Nota_Tagihan = @No_Nota_Tagihan, Kd_Pegawai, Kd_Customer, Tanggal
Customer = @Kd_Customer, Nama_Customer, Alamat_Customer, Telp_Customer
Pegawai = @Kd_Pegawai, Nama_Pegawai, Alamat_Pegawai, Telp_Pegawai
18. Detail_Nota_Tagihan UNF
Detail_Nota_Tagihan = No_Nota Tagihan, No_Daftar_Pemesanan, Harga_Jual
1NF → tidak terjadi repeating group
Detail_Nota_Tagihan = @No_Nota Tagihan, @No_Daftar_Pemesanan, Harga_Jual
2NF → tidak terjadi ketergantungan parsial
Detail_Nota_Tagihan = @No_Nota Tagihan, No_Daftar_Pemesanan, Harga_Jual
Detail_Nota_Tagihan = @No_Nota Tagihan, @No_Daftar_Pemesanan, Harga_Jual
Header_Daftar_Pemesanan = @No_Daftar_Pemesanan_barang, Kd_Pegawai, Kd_Customer, Tanggal, Status_Pemesanan
Customer = @Kd_Customer, Nama_Customer, Alamat_Customer, Telp_Customer
Pegawai = @Kd_Pegawai, Nama_Pegawai, Alamat_Pegawai, Telp_Pegawai
19. Header_Surat_Jalan_Order UNF
Header_Surat_Jalan_Order = No_Surat_Jalan_Order, Kd_Supplier, Kd_Pegawai, Tanggal
1NF
Header_Surat_Jalan_Order = @No_Surat_Jalan_Order, @Kd_Supplier, @Kd_Pegawai, Tanggal
2NF
Header_Surat_Jalan_Order = @No_Surat_Jalan_Order, @Kd_Supplier, @Kd_Pegawai, Tanggal
3NF → terjadi ketergantungan transitif, yaitu Supplier, dan pegawai
No_Surat_Jalan_Order, Kd_Pegawai, Kd_Supplier
Header_Surat_Jalan_Order = @No_Surat_Jalan_Order, Kd_Supplier, Kd_Pegawai, Tanggal
Pegawai = @Kd_Pegawai, Nama_Pegawai, Alamat_Pegawai, Telp_Pegawai
20. Detail_Surat_Jalan_Order UNF
Detail_Surat_jalan_Order = No_Surat_Jalan_Order, No_Order 1NF
Detail_Surat_jalan_Order = @No_Surat_Jalan_Order, @No_Order 2NF
Detail_Surat_jalan_Order = @No_Surat_Jalan_Order, @No_Order 3NF
Detail_Surat_jalan_Order = @No_Surat_Jalan_Order, No_Order Header_Order = @No_Order, Kd_Pegawai, Kd_Supplier, Tanggal
Pegawai = @Kd_Pegawai, Nama_Pegawai Supplier = @Kd_Supplier, Nama_Supplier 21. Header_Surat_Jalan_Customer
UNF
Header_Surat_Jalan_Customer = No_Surat_Jalan_Customer, Kd_Customer, Kd_Pegawai, Tanggal
1NF
Header_Surat_Jalan_Customer = @No_Surat_Jalan_Customer, @Kd_Customer,@ Kd_Pegawai, Tanggal
Header_Surat_Jalan_Order = @No_Surat_Jalan_Customer, @Kd_Customer, @Kd_Pegawai, Tanggal
3NFNo_Surat_Jalan_Customer, Kd_Pegawai, Kd_Customer
Header_Surat_Jalan_Customer = @No_Surat_Jalan_Customer, Kd_Customer, Kd_Pegawai, Tanggal
Customer = @Kd_Customer, Nama_Customer, Alamat_Customer, Telp_Customer
Pegawai = @Kd_Pegawai, Nama_Pegawai, Alamat_Pegawai, Telp_Pegawai
22. Detail_Surat_Jalan_Customer
Tabel Detail_Surat_Jalan_Customer sudah memenuhi syarat normalisasi UNF, 1NF, 2NF, 3NF UNF Detail_Surat_Jalan_Customer= No_Surat_Jalan_Customer, No_Nota_Tagihan, Harga_Jual 1NF Detail_Surat_jalan_Order = @No_Surat_Jalan_Customer, @No_Nota_Tagihan 2NF Detail_Surat_Jalan_Customer = @No_Surat_Jalan_Customer, @No_Nota_Tagihan 3NF Detail_Surat_Jalan_Customer = @No_Surat_Jalan_Customer, No_Nota_Tagihan, Harga_Jual
Header_Nota_Tagihan = @No_Nota_Tagihan, Kd_Pegawai, Kd_Customer, Tanggal
Customer = @Kd_Customer, Nama_Customer, Alamat_Customer, Telp_Customer
Pegawai = @Kd_Pegawai, Nama_Pegawai, Alamat_Pegawai, Telp_Pegawai
4.1.2.4 Memeriksa Integrity Constraint
Tujuan dari langkah ini untuk menentukan batasan integritas yang dapat melindungi basis data dari ketidakkonsistenan. Ada 5 batasan integristas yang didefinisikan yaitu :
1. Required data
Beberapa atribut harus mengandung sebuah nilai valid, dengan kata lain atribut-atribut ini tidak diperkenankan mengandung nilai null. Batasan ini sudah diidentifikasikan pada saat atribut didokumentasikan dalam kamus data.
2. Attribute domain constraints
Setiap atribut memiliki sebuah domain, yaitu kumpulan dari nilai yang legal. Aturan-aturan seperti ini telah diidentifikasikan pada saat memilih atribut-atribut domain untuk data model.
3. Multiplicity
Multiplicity menampilkan constraints yang ditempatkan pada relasi antar entity dalam database.
Primary key dari suatu entity tidak boleh memiliki nilai null. Aturan-aturan seperti ini harus telah dipertimbangkan pada saat mengidentifikasikan primary key untuk setiap entitiy.
5. Referential integritiy
Referential integrity berarti apabila suatu foreign key mengandung suatu nilai, maka nilai tersebut harus menunjuk pada tuple yang terdapat pada relasi parent.
4.1.2.5 Validasi Relasi melalui Transaksi Pengguna
Penjelasan :
a. M embuat Header_Daftar_Pemesanan
M engambil No_Daftar_Pemesanan _Barang, Kd_Barang, Ukuran, Qty, Harga_Jual dari Detail_Daftar_Pemesanan. M engambil Kd_Barang, Ukuran, Qty dari Header_Barang. M engambil Kd_Customer dari Customer M engambil Kd_Pegawai dari Pegawai.
b. M embuat Header_Order
M engambil No_ Order, Kd_Barang, Ukuran, Qty, Harga_Beli dari Detail_ Order. M engambil Kd_Barang, Ukuran, Qty dari Header_Barang. M engambil Kd_Pegawai dari Pegawai. M engambil Kd_Supplier dari Supplier.
c. M embuat Header_Penjualan
M engambil No_Faktur_Penjualan, Kd_Barang, Ukuran, Qty, Harga_Jual dari Detail_Penjualan. M engambil Kd_Barang, Ukuran, Qty dari Header_Barang. M engambil Kd_Pegawai dari Pegawai. M engambil Kd_Customer dari Customer. d. M embuat Header_Penerimaan_Barang
M engambil No_Faktur_Penerimaan_Barang, No_Order dari Detail_Penerimaan_Barang. M engambil No_Order, Kd_Pegawai, Kd_Supplier, Harga_Beli dari Header_Order. M engambil Kd_Supplier dari Supplier. M engambil Kd_Pegawai dari Pegawai.
e. M embuat Header_Nota_Tagihan
M engambil No_Nota_Tagihan, No_Daftar_Pemesanan dari Detail_Nota_Tagihan. M engambil No_Daftar_Pemesanan, Kd_Pegawai, Kd_Customer, Harga_Jual dari
Header_Daftar_Pemesanan. M engambil Kd_Pegawai dari Pegawai. M engambil Kd_Customer dari Customer.
f. M embuat Surat_Jalan_Order
M engambil No_Surat_Jalan_Order, No_Order dari Detail Surat_Jalan_Order. M engambil No_Order, Kd_Pegawai, Kd_Supplier dari Header_Order. M engambil Kd_Supplier dari Supplier. M engambil Kd_Pegawai dari Pegawai.
g. M embuat Surat_Jalan_Customer
M engambil No_Surat_Jalan_Customer, No_Nota_Tagihan dari Detail Surat_Jalan_Customer. M engambil No_Nota_Tagihan, Kd_Customer, Kd_Pegawai dari Header_Nota_Tagihan. M engambil Kd_Customer dari Customer. M engambil Kd_Pegawai dari Pegawai.
h. Cetak laporan Header_Daftar_Pemesanan
Ambil No_Daftar_Pemesanan dari Header_Daftar_Pemesanan. Berdasarkan No_Daftar_Pemesanan_Barang, Kd_Barang, Ukuran, Qty, Harga_Jual ambil dari Detail_Daftar_Pemesanan. Berdasarkan Kd_Barang, Nama_Barang, Ukuran, Qty ambil dari Header_Barang. Ambil Kd_Customer, Nama Customer dari Customer. i. Cetak laporan Header_Order
Ambil No_Order dari Header_Order. Berdasarkan No_Order, Kd_Barang, Ukuran, Qty, Harga_Beli ambil dari Detail_Order. Berdasarkan Kd_Barang, Nama_Barang, Ukuran, Qty ambil dari Header_Barang. Ambil dari Kd_Supplier dari Supplier.
j. Cetak laporan Header_Penjualan
Berdasarkan Kd_Barang, Nama_Barang, Ukuran, Qty ambil dari Header_Barang. Ambil Kd_Customer, Nama_Customer dari Customer. Ambil Kd_Pegawai, Nama_Pegawai dari Pegawai.
k. Cetak laporan Header_Penerimaan_Barang
Ambil No_Faktur_Penerimaan_Barang dari Header_Penerimaan_Barang. Berdasarkan No_Faktur_Penerimaan_Barang, No_Order, Harga_Beli ambil dari Detail_Penerimaan_Barang. Berdasarkan Kd_Barang, Nama_Barang, Ukuran, Qty dari Header_Barang. Ambil Kd_Supplier, Nama_Supplier dari Supplier.
l. Cetak laporan Header_Nota_Tagihan
Ambil No_Nota_Tagihan dari Header_Nota_Tagihan. Berdasarkan No_Nota_Tagihan, No_Daftar_Pemesanan, Harga_Jual ambil dari Detail_Nota_Tagihan. Berdasarkan Kd_Barang, Ukuran, Qty ambil dari Header_Barang. Ambil Kd_Customer, Nama_Customer dari Customer.
m. Cetak laporan Header_Surat_Jalan_Order
Ambil No_Surat_Jalan_Order dari Header_Surat_Jalan_Order. Berdasarkan No_Surat_Jalan_Order, No_Order ambil dari Detail_Surat_Jalan_Order. Ambil Kd_Supplier, Nama_Supplier dari Supplier.
n. Cetak laporan Header_Surat_Jalan_Customer
Ambil No_Surat_Jalan_Customer dari Header_Surat_Jalan_Customer. Berdasarkan No_Surat_Jalan_Customer, No_Nota_Tagihan ambil dari Detail_Surat_Jalan_Customer. Ambil Kd_Customer, Nama_Customer dari Customer.
4.1.2.6 Meninjau Model Data Logikal dengan Pengguna
4.1.2.7 Membangun dan Memvalidasi Model Data Logikal Global Tujuan dari langkah ini adalah untuk menggabungkan model data logikal lokal individual ke dalam sebuah model data logikal global. Berikut ini adalah tabel model data logikal global :
Tabel 4.21 Membangun dan Memvalidasi Model Data Logikal Global
Header_Barang (Kd_Barang, Nama_Barang, Kd_Supplier, Kd_M erk_Barang, Kd_Jenis_Barang, Harga_Barang)
Primary Key Kd_Barang
Foreign Key Kd_Supplier references Supplier (Kd_Supplier)
Foreign Key Kd_M erk_Barang references M erk_Barang (Kd_M erk_Barang) Foreign Key Kd_Jenis_Barang references Jenis_Barang (Kd_Jenis_Barang) Detail_Barang (Kd_Barang, Ukuran, Qty)
Foreign Key Kd_Barang references Header_Barang (Kd_Barang) Merk_Barang (Kd_M erk_Barang, M erk_Barang)
Primary Key Kd_M erk_Barang
Jenis_Barang (Kd_Jenis_Barang, Jenis_Barang) Primary Key Kd_Jenis_Barang
Customer (Kd_Customer, Nama_Customer, Alamat_Customer, Telp_Customer) Primary Key Kd_Customer
Supplier (Kd_Supplier, Nama_Supplier, Alamat_Supplier, Telp_Supplier) Primary Key Kd_Supplier
Pegawai (Kd_Pegawai, Kd_Divisi, Nama_Pegawai, Alamat_Pegawai, Telp_Pegawai) Primary Key Kd_Pegawai
Divisi (Kd_Divisi, Nama_Divisi) Primary Key Kd_Divisi
Header_Order (No_Order, Kd_Supplier, Kd_Pegawai, Tanggal) Primary Key No_Order
Foreign Key Kd_Supplier references Supplier (Kd_Supplier) Foreign Key Kd_Pegawai references Pegawai (Kd_Pegawai) Detail_Order (No_Order, Kd_Barang, Qty, Harga_Beli) Foreign Key No_Order references Header_Order ( No_Order ) Foreign Key Kd_Barang references Header_Barang (Kd_Barang)
Header_Penjualan (No_Faktur_Penjualan, Kd_Customer, Tanggal, Kd_Pegawai) Primary Key No_Faktur_Penjualan
Foreign Key Kd_Customer references Customer (Kd_Customer) Foreign Key Kd_Pegawai references Pegawai (Kd_Pegawai)
Detail_Penjualan (No_Faktur_Penjualan, Kd_Barang, Qty, Harga_Jual)
Foreign Key No_Faktur_Penjualan references Header_Penjualan (No_Faktur_Penjualan)
Foreign Key Kd_Barang references Header_Barang (Kd_Barang)
Header_Penerimaan_Barang ( No_Faktur_Pengiriman_Barang, Kd_Supplier, Tanggal, Kd_Pegawai)
Primary Key No_Faktur_Penerimaan_Barang
Foreign Key Kd_Supplier references Supplier (Kd_Supplier) Foreign Key Kd_Pegawai references Pegawai (Kd_Pegawai)
Harga_Beli)
Foreign Key No_Faktur_Penerimaan_Barang references Header_Penerimaan_Barang (No_Faktur_Penerimaan_Barang)
Foreign Key No_Order references Header_Order (No_Order)
Header_Daftar_Pemesanan (No_Daftar_Pemesanan_Barang, Kd_Pegawai, Kd_Customer, Tanggal, Status_Pemesanan)
Primary Key No_Daftar_Pemesanan_Barang
Foreign Key Kd_Customer references Customer (Kd_Customer) Foreign Key Kd_Pegawai references Pegawai (Kd_Pegawai)
Detail_Daftar_Pemesanan (No_Daftar_Pemesanan_Barang, Kd_Barang, Qty, Harga_Jual)
Foreign Key (No_Daftar_Pemesanan_Barang references Header_Daftar_Pemesanan_Barang (No_Daftar_Pemesanan_Barang)
Foreign Key Kd_Barang references Header_ Barang (Kd_Barang)
Header_Nota_Tagihan (No_Nota_Tagihan, Kd_Customer, Tanggal, Kd_Pegawai) Primary Key No_Nota_Tagihan
Foreign Key Kd_Customer references Customer (Kd_Customer) Foreign Key Kd_Pegawai references Pegawai (Kd_Pegawai)
Detail Nota_Tagihan (No_Nota_Tagihan , No_Daftar_Pemesanan, Harga_Jual)
Foreign Key No_Nota_Tagihan references Header_Nota_Tagihan (No_Nota_Tagihan) Foreign Key No_Daftar_Pemesanan_Barang references Header_Daftar_Pemesanan_Barang (No_Daftar_Pemesanan_Barang)
Tanggal)
Primary Key No_Surat_Jalan_Order
Foreign Key Kd_Supplier references Supplier (Kd_Supplier) Foreign Key Kd_Pegawai references Pegawai (Kd_Pegawai) Detail_Surat_Jalan_Order (No_Surat_Jalan_Order, No_Order)
Foreign Key No_Surat_Jalan_Order references Header_Surat_Jalan_Order (No_Surat_Jalan_Order)
Foreign Key No_Order references Header_Order (No_Order)
Header_Surat_Jalan_Customer (No_Surat_Jalan_Customer, Kd_Customer, Kd_Pegawai, Tanggal)
Primary Key No_Surat_Jalan_Customer
Foreign Key Kd_Pegawai references Pegawai (Kd_Pegawai) Foreign Key Kd_Customer references Customer (Kd_Customer)
Detail_Surat_Jalan_Customer (No_Surat_Jalan_Customer, No_Nota_Tagihan)
Foreign Key No_Surat_Jalan_Customer references Header_Surat_Jalan_Customer (No_Surat_Jalan_Customer)
4.1.2.8 Pemilihan DBMS
Pemilihan DBM S digunakan untuk memilih DBM S yang tepat untuk mendukung aplikasi basis data.
1. Kemudahan Penggunaan
DBM S sebaiknya dapat digunakan dengan mudah oleh pengguna 2. Kemudahan dalam administrasi
Pengadministrasian harus mudah dilakukan 3. Kehandalan
DBM S harus mampu mengamankan data apabila terjadi kegagalan dan kerusakan piranti lunak atau keras
4. Biaya
Biaya yang dikeluarkan untuk DBM S sebaiknya tidak melebihi anggaran yang diperkirakan oleh perusahaan.
5. Keamanan
DBM S sebaiknya dapat bekerja dengan komponan perangkat keras dan piranti lunak lainnya dengan baik didalam sistem manajemen informasi.
6. Kompatibilitas
DBM S harus dapat bekerja dengan komponen perangkat keras dan piranti lunak lainnya dengan baik didalam system manajemen informasi.
7. Persyaratan minimum
DBM S harus mampu bekerja pada platform komputer untuk menjalankan sistem manajemen informasi.
8. Kedeketan dengan basis data
Apabila strukutur dan operasi dari DBM S telah dketahui, maka waktu yang seharusnya dihabiskan untuk mempelajari DBM S dapat difokuskan kepada perancangan.
9. Skalabilitas
M empertimbangkan faktor besar atau kecilnya suatu perusahaan, dan seberapa banyak data yang ditampung pada DBM S yang digunakan.
Berikut ini adalah perbandingan antara M icrosoft SQL Server 2000 dengan MySQL 4.0
Tabel 4.22 Perbandingan Microsoft SQL server 2000 dengan MyS QL 4.0
Perbedaan SQL Server 2000 MySQL 4.0
Tipe DBM S Transactional relational
database server
Relational database server dengan driver InnoDB
Biaya $1000 - $5000(Profesional
Edition)
$0 - $395 (Lisensi Komersial)
Kebutuhan Perangkat Keras Intel Pentium II atau AM D K6-II processor, 64MB RAM , 380 M B Harddisk Space Kebutuhan berdasarkan system operasinya. Kebutuhan Perangkat Lunak
Windows 2000 atau versi setelahnya hingga Windows
Linux berbasis Unix, MyODBC ( untuk ODBC
XP, Internet Explore 5.0 driver support), Connector/J (untuk JDBC driver support)
Kelebihan M endukung kehandalan
dan keamanan tingkat
entreprise, dapat menjalankan berbagai basis
data dalam satu server
Gratis, Dokumentasi secara online
Kekurangan Biaya cukup tinggi,
memerlukan windows 2000 server
Tidak sepenuhnya compatibel dengan SQL92
(yang menyebabkan masalah dengan aplikasi server yang membuat query SQL-nya sendiri)
Keterbatasan basis data Terbatas mendekati 2 milliar objek basis data
Terbatas hingga 32 index tiap table, ukuran basis data terbatas hingga ukuran terbesar file dari system operasinya
Pemenuhan ACID Ya Ya
Kemampuan M endukung failover
clusters, pemulihan point in time, dapat melakukan
restart jika terhenti
Keamanan M enggunakan authentifikasi penggunaan dengan pilihan untuk menyatukan keamanan basis data dengan Windows 2000 server
M enggunakan
Authentifikasi penggunaan
dengan menyatukan keamanan root dan kernel
versi system operasi open source Standard SQL99,ODBC,JDBT-SQL,XM L SQL-92 intermediete, ODBC (memerlukan MyIDBC), JDBC
Data – data diatas menunjukkan MySQL 4.0 memiliki biaya lebih rendah, bebas lisensi. Dikarenakan PT.MUTIARA FIBRINDO menginginkan platform berbasis windows. M aka kami memilih SQL server 2000 untuk pengerjaan basis datanya.
4.1.3 Perancangan Basis Data Fisikal
Perancangan basis data fisikal merupakan proses pembuatan deskripsi dari suatu implementasi basis data pada secondary storage. Beberapa langkah dalam merancang basis data secara fisik adalah sebagai berikut : 1. M erancang relasi dasar
2. M endesain representasi dari derived data 3. M endesain enterprise constraint
5. M emilih index
6. M emperkirakan kebutuhan kapasitas penyimpanan 7. M erancang user view
8. M erancang mekanisme keamanan
4.1.3.1 Perancangan Relasi Dasar
Tujuan dari tahap ini adalah untuk menentukan bagaimana menggambarkan relasi dasar yang diidentifikasikan oleh model data logikal global dalam DBM S. DBDL ( Database Design Languange) yang digunakan adalah sebagai berikut :
• Barang
Domain KodeBarang : variable lenght character string, lenght 5 Domain KodeM erk : variable lenght character string, lenght 5 Domain NamaBarang : variable lenght character string, lenght 20 Domain NamaM erk : variable lenght character string, lenght 15 Domain KodeJenis : variable lenght character string, lenght 5 Domain NamaJenis : variable lenght character string, lenght 15 Domain Ukuran : variable lenght character string, lenght 5 Domain Harga : money
Header_Barang (
KdBarang KodeBarang NOTNULL KdM erkBarang KodeM erk NOTNULL NamaBarang NamaBarang NOTNULL M erkBrg NamaM erk NOTNULL
KdJnsBarang KodeJenis NOTNULL
JnsBrg NamaJenis NOTNULL Harga Harga NOTNULL Ukuran Ukuran NOTNULL PRIMARY KEY (KdBarang),
FOREIGN KEY (KdM erk) REFERENCES M erk_Barang (KdM erk)
ON UPDATE CAS CADE ON DELETE NOACTION;
• Jenis_Barang
Domain KodeJenisBarang : variable lenght character string, lenght 5
Domain NamaJenisBarang : variable lenght character string, lenght 30 Jenis_Barang ( KdJnsBrg KodeJenisBarang NOTNULL JnsBrg NamaJenisBarang NOTNULL PRIMARY KEY (KdJnsBrg); • Customer
Domain KodeCustomer : variable lenght character string, lenght 5 Domain NamaCustomer : variable lenght character string, lenght
Domain AlamatCustomer : variable lenght character string, lenght 100
Domain TelpCustomer : variable lenght character string, lenght 30
Customer (
KdCustomer KodeCustomer NOTNULL NamaCustomer NamaCustomer NOTNULL AlamatCustomer AlamatCustomer NOTNULL PRIMARY KEY (KdCustomer)
• Supplier
Domain Kd_Supplier : Variabel lenght character string, lenght 5 Domain Nama_Supplier : Variabel lenght character string, lenght 30
Domain Alamat_Supplier : Variabel lenght character string, lenght 100
Domain Telp_Supplier : Variabel lenght character string, lenght 30
Supplier (
KdSupplier KodeSupplier NOTNULL NamaSupplier NamaSupplier NOTNULL AlamatSupplier Alamat_Supplier NOTNULL TelpSupplier TelpSupplier NOTNULL PRIMARY KEY (KdSupplier)
Domain KodePegawai : variabel lenght character string, lenght 5 Domain NamaPegawai : variabel lenght character string, lenght 15
Domain AlamatPegawai : variabel lenght character string, lenght 100
Domain KdDivisi : variabel lenght character string, lenght 20 Pegawai (
KdPegawai KodePegawai NOTNULL NamaPegawai NamaPegawai NOTNULL NamaPegawai AlamatPegawai NOTNULL KdDivisi KodeDivisi NOTNULL PRIMARY KEY (KdPegawai)
• Header_Penjualan
Domain NomorFakturPenjualan : variabel lenght character string, lenght 5
Domain KodeCustomer : variabel lenght character string, lenght 5 Domain TglFakJual : variabel datetime
Domain KdPegawai : variabel lenght character string, lenght 5 Header_Penjualan (
NoFakPenjualan NomorFakturJual NOTNULL KdCustomer KodeCustomer NOTNULL Tanggal TglFakJual NOTNULL KdPegawai KodePegawai NOTNULL
FOREIGN KEY (KdCustomer) REFERENCES Customer (KdCustomer)
ON UPDATE C AS CADE ON DELETE NO ACTION,
FOREIGN KEY (KdPegawai) REFERENCES Pegawai (KdPegawai)
ON UPDATE C AS CADE ON DELETE NO ACTION
• Detail_Penjualan
Domain NomorFakturPenjualan : variable lenght character string, lenght 5
Domain KodeBarang : variable lenght character string, lenght 5 Domain Ukuran : variable lenght charachter string, lenght 5 Domain HargaJual : variable money
Domain Quantity : integer Detail_Penjualan (
NoFakPenjualan NomorFakturPenjualan NOTNULL KdBarang KodeBarang NOTNULL
Ukuran Ukuran NOTNULL
HargaJual HargaJual NOTNULL
Qty Qty NOTNULL
PRIMARY KEY (NoFakPenjualan, KdBarang),
FOREIGN KEY (NoFakturPenjualan) REFERENCES Header_Penjualan (NoFakturPenjualan)
FOREIGN KEY (KdBarang) REFERENC ES Header_Barang (KdBarang)
ON UPDATE C AS CADE ON DELETE NO ACTION • Header_Penerimaan_Barang
Domain NoFakturPenerimaan : variable lenght character string, lenght 5
Domain KodeSupplier : variable lenght character string, lenght 5 Domain KodePegawai : variabel lenght character string, lenght 5 Domain Tanggal : variabel datetime
Header_Penerimaan_Barang (
NoFakPenerimaan NoFakturPenerimaan NOTNULL KdSupplier KodeSupplier NOTNULL KdPegawai KodePegawai NOTNULL
Tanggal Tanggal NOTNULL
PRIMARY KEY (NoFakPenerimaan),
FOREIGN KEY (KdSupplier) REFERENCES Supplier (KdSupplier)
ON UPDATE C AS CADE ON DELETE NO ACTION,
FOREIGN KEY (KdPegawai) REFERENCES Pegawai (KdPegawai)
ON UPDATE CAS CADE ON DELETE NO ACTION
Domain NoFakturPenerimaan : variable lenght character string, lenght 5
Domain NoOrder : variable lenght character string, lenght 5 Domain HargaBeli : money
Detail_Penerimaan_Barang (
NoFakPenerimaan NoFakturPenerimaan NOTNULL
NoOrder KodeBarang NOTNULL
HargaBeli HargaBeli NOTNULL
PRIMARY KEY (NoFakPenerimaan, KdBarang)
FOREIGN KEY (NoOrder) REFERENCES Header_Order (NoOrder),
ON UPDATE C AS CADE ON DELETE NO ACTION
FOREIGN KEY (NoFakPenerimaan) REFERENCES Header_Penerimaan_Barang (NoFakPenerimaan),
ON UPDATE C AS CADE ON DELETE NO ACTION
• Header_Order
Domain NoOrder : variable lenght character string, lenght 5 Domain KodeSupplier : variable lenght character string, lenght 5 Domain KodePegawai : variable lenght character string, lenght 5 Domain Tanggal : datetime
Header_Order (
NoOrder NoOrder NOTNULL
KdPegawai KodePegawai NOTNULL
Tanggal Tanggal NOTNULL
PRIMARY KEY (NoOrder)
FOREIGN KEY (KdSupplier) REFERENCES Supplier (KdSupplier)
ON UPDATE C AS CADE ON DELETE NO ACTION,
FOREIGN KEY (KdPegawai) REFERENCES Pegawai(KdPegawai)
ON UPDATE C AS CADE ON DELETE NO ACTION
• Detail_Order
Domain NoOrder : variable lenght character string, lenght 5 Domain KodeBarang : variable lenght character string, lenght 5 Domain Quantity : integer
Detail_Order (
NoOrder NoOrder NOTNULL
KdBarang KodeBarang NOTNULL
Qty Qty NOTNULL
PRIMARY KEY (NoOrder, KdBarang)
FOREIGN KEY (KdBarang) REFERENCES Barang (KdBarang)
ON UPDATE C AS CADE ON DELETE NO ACTION,
ON UPDATE C AS CADE ON DELETE NO ACTION
• Header_Daftar_Pemesanan
Domain NoDaftarPemesanan : variable lenght character string, lenght 5
Domain KodePegawai : variable lenght character string, lenght 5 Domain KodeCustomer : variabel lenght character string, lenght 5 Domain StatusPemesanan : variabel lenght character string, lenght 10
Domain Tanggal : variable datetime Header_Daftar_Pemesanan (
NoDaftPemesanan NoDaftarPemesanan NOTNULL KdPegawai KodePegawai NOTNULL KdCustomer KodeCustomer NOTNULL StatusPemesanan StatusPemesanan NOTNULL
Tanggal Tanggal NOTNULL
PRIMARY KEY (NoDaftPemesanan)
FOREIGN KEY (KdPegawai) REFERENCES Pegawai (KdPegawai)
ON UPDATE C AS CADE ON DELETE NO ACTION,
FOREIGN KEY (KdCustomer) REFERENCES Customer (KdCustomer)
• Detail_Daftar_Pemesanan
Domain NoDaftarPemesanan : variable lenght character string, lenght 5
Domain KodeBarang : variable lenght character string, lenght 5 Domain Qty : integer
Domain Ukuran : variable lenght character string, lenght 5 Domain HargaJual : money
Detail_Daftar_Pemesanan (
NoDafPemesanan NoDaftarPemesanan NOTNULL
KdBarang KodeBarang NOTNULL
Qty Qty NOTNULL
Ukuran Ukuran NOTNULL
HargaJual HargaJual NOTNULL
PRIMARY KEY (NoDaftPemesanan, KdBarang),
FOREIGN KEY (NoDaftPemesanan) REFERENCES Header_Daftar_Pemesanan (NoDaftPemesanan)
ON UPDATE C AS CADE ON DELETE NO ACTION, FOREIGN KEY (KdBarang) REFERENCES Barang (KdBarang)
ON UPDATE C AS CADE ON DELETE NO ACTION • Header_Nota_Tagihan
Domain NoNotaTagihan : variable lenght character string, lenght 5
Domain KodePegawai : variable lenght character string, lenght 5 Domain Tanggal : datetime
Header_Nota_Tagihan (
NoNotaTagihan NoNotaTagihan NOTNULL KdCustomer KodeCustomer NOTNULL KdPegawai KodePegawai NOTNULL
Tanggal Tanggal NOTNULL
PRIMARY KEY (NoNotaTagihan)
FOREIGN KEY (KdCustomer) REFERENCES Customer (KdCustomer)
ON UPDATE C AS CADE ON DELETE NO ACTION,
FOREIGN KEY (KdPegawai) REFERENCES Pegawai (KdPegawai)
ON UPDATE C AS CADE ON DELETE NO ACTION
• Detail_Nota_Tagihan
Domain NoNotaTagihan : variable length character string, lenght 5
Domain NoDaftPemesanan : variable length character string, lenght 5
Domain HargaJual : money Detail_Nota_Tagihan (
NoNotaTagihan NoNotaTagihan NOTNULL NoDaftPemesanan NoFakturPenjualan NOTNULL
HargaJual HargaJual NOTNULL PRIMARY KEY (NoNotaTagihan, NoDaftPemesanan)
FOREIGN KEY (NoNotaTagihan) REFERENCES Header_Nota_Tagihan (NoNotaTagihan)
ON UPDATE C AS CADE ON DELETE NO ACTION,
FOREIGN KEY (NoDaftPemesanan) REFERENCES Header_Daftar_Pemesanan (NoDaftPemesanan)
ON UPDATE C AS CADE ON DELETE NO ACTION
• Header_Surat_Jalan_Order
Domain NoSuratJalanOrder : variable lenght character string, lenght 5
Domain KodePegawai : variable lenght character string, lenght 5 Domain KodeSupplier : variabel lenght character string, lenght 5 Domain Tanggal : datetime
Header_Surat_Jalan_Order (
NoSrtJlnOrder NoSuratJalanOrder NOTNULL KdPegawai KodePegawai NOTNULL KdSupplier KodeSupplier NOTNULL
Tanggal Tanggal NOTNULL
PRIMARY KEY (NoSrtJlnOrder)
FOREIGN KEY (KdPegawai) REFERENCES Pegawai (KdPegawai)
FOREIGN KEY (KdSupplier) REFERENCES Supplier (KdSupplier)
ON UPDATE C AS CADE ON DELETE NO ACTION
• Detail_Surat_Jalan_Order
Domain NoSuratJalanOrder : variable length character string, lenght 5
Domain NoOrder : variable length character string, lenght 5
Detail_Surat_Jalan _Order(
NoSrtJlnOrder NoSuratJalanOrder NOTNULL
NoOrder NoOrder NOTNULL
PRIMARY KEY (NoSrtJlnOrder, NoOrder)
FOREIGN KEY (NoSrtJlnOrder) REFERENCES Header_Surat_Jalan_Order (NoSrtJlnOrder)
ON UPDATE C AS CADE ON DELETE NO ACTION,
FOREIGN KEY (NoOrder) REFERENCES Header_Order (NoOrder)
ON UPDATE C AS CADE ON DELETE NO ACTION
• Header_Surat_Jalan_Customer
Domain NoSuratJalanCustomer : variable lenght character string, lenght 5