• Tidak ada hasil yang ditemukan

BAB 4 PERANCANGAN DAN IMPLEMENTASI

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 4 PERANCANGAN DAN IMPLEMENTASI"

Copied!
217
0
0

Teks penuh

(1)

88

PERANCANGAN DAN IMPLEMENTASI

4.1 Perancangan Basisdata

Dalam merancangan basisdata pada PT. Ippachi Karya Sukses, digunakanlah tiga

tahap utama, yaitu :

1.Perancangan basisdata konseptual 2.Perancangan basisdata logikal 3.Perancangan basisdata fisikal

4.1.1 Perancangan Basisdata Konseptual

Perancangan basisdata konseptual merupakan suatu proses pembuatan

model menggunakan informasi yang diperoleh oleh perusahaan, terlepas dari semua pertimbangan fisik. Langkah-langkah penting dalam merancang basisdata secara konseptual adalah :

1.Identifikasi tipe entitas 2.Identifikasi tipe relasional

3.Identifikasi dan asosiasi atribut suatu entitas 4.Identifikasi kandidat dan primay key setiap entitas 5.Validasi model konseptual lokal dengan transaksi user

(2)

4.1.1.1 Identifikasi tipe entitas

Langkah ini bertujuan untuk mengidentifikasi tipe entitas yang utama yang dibutuhkan.Adapun tipe entitas yang diidentifikasi adalah seperti yang terlihat pada tabel di bawah ini.

Nama Entity Keterangan Entity

Supplier Merupakan entitas yang memberikan informasi tentang supplier yang memasok barang ke PT. IKS

Staf Merupakan entitas yang memberikan informasi tentang staf baik sales, staff, manajer ataupun presiden direktur.

Sales Contract Merupakan entitas yang berisi informasi tentang pemesanan yang dilakukan oleh PT. IKS kepada supplier

SC Payment Merupakan entitas yang berisi tentang jumlah pembayaran yang dilakukan oleh PT. IKS kepada supplier

Bill of Lading Merupakan entitas yang berisi total produk yang dibeli dari supplier beserta total beratnya Produk Merupakan entitas yang berisi informasi

tentang produk yang didatangkan dan yang akan dijual oleh PT. IKS yaitu sepeda listrik. Customer Entitas yang berisikan informasi tentang

konsumen dari PT. IKS

(3)

dilakukan oleh konsumen.

SP Payment Entitas yang berisi informasi pembayaran yang dilakukan oleh konsumen kepada PT. IKS Delivery Order

Penjualan

Merupakan entitas yang berisi informasi tentang pengiriman barang dari PT. IKS ke alamat konsumen.

Delivery Order Pembelian

Merupakan entitas yang berisi informasi tentang pengiriman barang dari supplier ke PT IKS

Commercial Invoice

Merupakan entitas yang berisi produk-produk beserta jumlah dan harga yang dibeli oleh PT IKS dari supplier

Packing List Entitas yang berisi berat beserta ukuran keseluruhan dari produk yang dibeli dari supplier

Tabel 4.1 Identifikasi Tipe Entitas

4.1.1.2 Identifikasi Tipe Relasional

Tujuan dari tahapan ini adalah untuk menentukan

hubungan-hubungan penting yang ada antara jenis entitas yang telah di identifikasikan.

Langkah-langkah penting dalam identifikasi tipe rasional adalah : 1. Menentukan ER Diagram (gambar 4.1)

(4)

Hubungan antara semua entity-entity dapat dilihat pada diagram berikut ini: Gambar 4.1 Diagram ER C o m m e rc ia l In v o ic e B ill o f L a d in g S a le s C o n tra c t S C P a y m e n t S u p p lie r P ro d u k S ta f S u ra t P e s a n a n D e liv e ry O rd e r P e n ju a la n C u s to m e r S P P a y m e n t P a c k in g L is t D e liv e ry O rd e r P e m b e lia n m e m ilik i d is e rta i d is e r ta i m e m ilik i D ik ir im k e m e n a m b a h M e m e r ik s a m e n g u ra n g i b e r d a s a r k a n m e la k u k a n m e m b u a t D ik irim k e m e m ilik i D ib e rik a n k e m e la k u k a n b e r d a s a r k a n D ib e rik a n k e m e m b u a t 1 ..1 1 ..1 1 ..1 1 ..1 1 ..1 1 ..1 1 ..1 1 ..1 1 ..1 1 ..1 1 ..1 1 ..1 1 ..1 1 ..1 1 ..1 1 ..1 0 ..* 0 ..* 1 ..1 1 ..1 0 ..* 0 ..* 0 ..* 0 ..* 0 ..* 0 ..* 0 ..* 0 ..* 1 ..1 1 ..1 1 ..* 1 ..* 0 ..* 1 ..* 1 ..* 1 ..*

(5)

Tipe relationship adalah hubungan antara semua tipe entity yang telah di identifikasi dari analisa kebutuhan. Hubungan antara semua entity yang telah di identifikasikan sebelumnya dapat dilihat pada tabel sebagai berikut:

Entity name Mul tipli city

Relationship Entity name Mul

tipli city

1..1 Membuat Sales Contract 0..*

1..1 Melakukan SC Payment 0..*

Staf

1..1 Memeriksa Produk 0..*

1..1 Membuat Surat Pesanan 0..*

Customer

1..1 Melakukan SP Payment 0..*

0..* Diberikan ke Supplier 1..1

Sales Contract

1..1 Memiliki Commercial Invoice 1..1

SC Payment 1..1 Berdasarkan Sales Contract 1..1

0..* Diberikan ke Staf 1..1

Surat Pesanan

1..1 Memiliki Delivery Order Penjualan

1..1

SP Payment 1..1 Berdasarkan Surat Pesanan 1..1

Commercial Invoice

1..1 Disertai Packing List 1..1

(6)

Tabel 4.2 Multiplicity Tipe Relasional

4.1.1.3 Identifikasi dan Asosiasi Atribut suatu Entitas

Tujuan dari tahapan ini adalah untuk mengidentifikasikan dan mengasosiasikan atribut dari entitas atau tipe relasi.

a. Staf

NIP, Nama_staf, posisi, Alamat, Telepon, Handphone, sex, komisi, bonus, gaji_pokok, tgl_mulai_kerja.

b. Supplier

Id_supplier, Nama_supplier, Alamat, Telp, Fax, E-mail c. Produk

Id_produk, Nama_produk, Satuan, Warna, Harga_satuanm Stok d. Customer

Id_customer, Nama_customer, Alamat, Telp, Handphone, Fax

Packing List 1..1 Disertai Bill of Lading 1..1

Bill of Lading 1..1 Memiliki Delivery Order Pembelian 1..1 0..* Menambah Produk 1..* Delivery Order Pembelian 0..* Dikirim ke Staf 1..*

(7)

e. Packing List

No_PL, Tgl_PL, No_SC, No_CI, Keterangan_produk f. Commercial Invoice

No_CI, Tgl_CI, Id_produk, Rincian_produk, Quan, Harga_Satuan, Jumlah, Total

g. Surat Pesanan

No_SP, Tgl_SP, Nama_customer, Alamat, Telp, Id_produk, Warna, Quantity, Perlengkapan_tambahan, Harga Satuan, Total, Uang_Muka, Sisa h. Bill of Lading

No_BL, Tgl_BL, Keterangan_produk i. Sales Contract

No_SC, Tgl_SC, Id_produk, Quan, Harga_Satuan, Jumlah, Total j. Delivery Order Pembelian

Tgl, No_pengiriman, No_SC, Id_produk, Nama_produk, Quan, harga_satuan, Jumlah, Total

k. Delivery Order Penjualan

Tgl, No_pengiriman, No_SP, Id_produk, Nama_produk, Quan, harga_satuan, Jumlah, Total

l. SC Payment

Tgl, No_SCPayment, No_pengiriman, NIP, Jumlah m. SP Payment

Tgl, No_SPPayment, Id_customer, Nama_customer, Jumlah

Berikut ini merupakan tabel dari mengidentifikasikan dan mengasosiasikan atribut dari entitas atau tipe relasi.

(8)

Entity Name Atribute Description Data Type & Lenght

Nulls Multiva lue

NIP Secara unik

mengidentifi kasi staf

5 variabel karakter

Tidak Tidak

Nama_staf Nama Staf 30 variabel

karakter

Tidak Tidak

Posisi Posisi atau

jabatan yang dimiliki 15 variabel karakter Tidak Tidak Alamat Alamat tempat tinggal staf 50 variabel karakter Tidak Tidak

Telepon No telp staf numerik Tidak Ya

Handphone No

handphone staf

numerik Ya Ya

Sex Jenis kelamin

staf 1 variabel karakter (P/W) Tidak Tidak Staf

(9)

Bonus Bonus staf numerik Ya Tidak

Gaji_pokok Gaji awal

staf

numerik Tidak Tidak

Tgl_mulai_kerja Tanggal mulai kerja staff

tanggal Tidak Tidak

Id_supplier Mengidentifi kasi supplier 5 variabel karakter Tidak Tidak Nama_supplier Nama_Suppl ier 30 variabel karakter Tidak Tidak Alamat Alamat supplier 50 variabel karakter Tidak Tidak Telp No telpon supplier numerik Tidak Ya Fax No Fax supplier numerik Tidak Ya Supplier E-mail Alamat e-mail supplier 20 variabel karakter Tidak Tidak Id_produk Mengidentifi kasi produk 7 variabel karakter Tidak Tidak Nama_produk Nama_produ k 20 variabel karakter Tidak Tidak Produk

(10)

barang karakter

Warna Warna 10 variabel

karakter

Tidak Ya

Harga_satuan Harga dari produk

numerik Tidak Tidak

Stok Stok dari

produk

numerik Tidak Tidak

Id_customer Mengidentifi kasi customer 5 variabel karakter Tidak Tidak Nama_customer Nama_custo mer 15 variabel karakter Tidak Tidak Alamat Alamat customer 30 variabel karakter Tidak Tidak Telp No telpon customer numerik Tidak Ya Handphone No telpon seluler customer numerik Ya Ya Customer Fax No fax customer numerik Tidak Ya Packing List

No_PL Nomor surat

packing list

(11)

Tgl_PL Tanggal packing list

tanggal Tidak Tidak

No_SC Nomor Sales

Contract

numerik Tidak Tidak

No_CI Nomor

Commercial Invoice

numerik Tidak Tidak

Keterangan_produk Deskripsi produk yang dikirim 50 variabel karakter Tidak Tidak No_CI Nomor commercial invoice

numerik Tidak Tidak

Tgl_CI Tanggal

invoice dibuat

Tanggal Tidak Tidak

Id_Produk Kode produk

yang dikirim 8 variabel karakter Tidak Tidak Rincian_Produk Deskripsi dan perincian dari produk 30 variabel karakter Tidak Tidak Commercia l Invoice Quan Banyaknya produk

(12)

Harga_satuan Harga satuan produk

numerik Tidak Tidak

Jumlah Jumlah

produk

Numerik Tidak Tidak

Total Total harga

yang dipesan

Numerik Tidak Tidak

No_SP Nomor surat

pesanan

numerik Tidak Tidak

Tgl_SP Tanggal surat

pesanan dibikin

Tanggal Tidak Tidak

Nama_customer Nama Customer 15 variabel karakter Tidak Tidak Alamat Alamat customer 30 variabel karakter Tidak Tidak Telp Nomor telepon customer Numerik Tidak Ya

Id_produk Kode produk

yang dipesan customer 7 variabel karakter Tidak Tidak Surat Pesanan Warna Warna produk yang 10 variabel karakter Tidak Tidak

(13)

dipesan

Quan Banyaknya

barang yang dipesan

Numerik Tidak Tidak

Perlengkapan_tambaha n Barang lain seperti sparepart yang dipesan 20 variabel karakter Ya Tidak

Harga_satuan Harga satuan barang

Numerik Tidak Tidak

Total Total harga

pesanan

Numerik Tidak Tidak

Uang_muka Uang muka

yang dibayar customer

Numerik Tidak Tidak

Sisa Sisa uang

yang harus dibayar

Numerik Ya Tidak

No_BL Nomor bill

of lading

numerik Tidak Tidak Bill of

Lading

Tgl_BL Tanggal

pembuatan bill of lading

(14)

Keterangan_produk Keterngan produk yang dikirim 50 variabel karakter tidak Tidak

No_SC Nomor sales

contract

Numerik Tidak tidak

Tgl_SC Tanggal sales

contract dibuat

Tanggal Tidak Tidak

Id_produk Kode produk 7 variabel karakter

Tidak Tidak

Quan Banyaknya

barang

Numerik Tidak Tidak

Harga_satuan Harga satuan produk

Numerik Tidak Tidak

Jumlah Banyaknya

barang yang dipesan

Numerik Tidak Tidak Sales

Contract

Total Total harga

barang yang dipesan

Numerik Tidak Tidak

Tgl Tanggal DO

pembelian

Tanggal Tidak Tidak Delivery

Order

(15)

pengiriman

No_SC Nomor SC Numerik Tidak Tidak

Id_produk Kode produk

yang dipesan 7 variabel karakter Tidak Tidak Nama_produk Nama_produ k yang dipesan 20 variabel karakter Tidak Tidak Quan Banyaknya produk yang dipesan

Numerik Tidak Tidak

Harga_satuan Harga satuan barang

Numerik Tidak Tidak

Jumlah Jumlah

barang yang dipesan

Numerik Tidak Tidak

Total Total harga Numerik Tidak Tidak

Tgl Tanggal DO

dibuat

Tanggal Tidak Tidak

No_pengiriman Nomor

pengiriman

Numerik Tidak Tidak

No_SP Nomor surat Numerik Tidak Tidak

Delivery Order Penjualan

Id_produk Kode produk 7 variabel karakter

(16)

Nama_produk Nama_produ k 20 variabel karakter Tidak Tidak Quan Jumlah barang yang dipesan

Numerik Tidak Tidak

Harga_satuan Harga satuan barang

Numerik Tidak Tidak

Jumlah Jumlah

barang yang dipesan

Numerik Tidak Tidak

Total Total harga Numerik Tidak Tidak

Tgl Tanggal

dibuat

Tanggal Tidak Tidak

No_SCPayment Nomor surat Numerik Tidak Tidak No_pengiriman Nomor surat

pengiriman

Numerik Tidak Tidak

NIP Nomor induk

staff 5 variabel karakter Tidak Tidak SC Payment

Jumlah Numerik Tidak Tidak

Tgl Tanggal

dibuat

Tanggal Tidak Tidak

No_SPPayment Nomor surat Numerik Tidak Tidak SP

Payment

(17)

kasi customer karakter Nama_customer Nama Customer 15 variabel karakter Tidak Tidak

Jumlah Numerik Tidak Tidak

Tabel 4.3 Identifikasi dan Asosiasi Atribut suatu Entitas

4.1.1.4 Identifikasi kandidat dan primay key setiap entitas

Tahapan ini bertujuan untuk mengidentifikasi kandidat key dan primary key dari field-field pada setiap tabel.

Entity Kandidat Key Primary Key

Staff NIP NIP

Supplier Id_Supplier Id_Supplier

Produk Id_Produk Id_Produk

Customer Id_Customer Id_Customer

Packing List No_PL, No_CI, No_SC No_PL

Commercial Invoice No_CI No_CI

Surat Pesanan No_SP No_SP

Bill of Lading No_BL No_BL

Sales Contract No_SC, Id_Produk No_SC

(18)

Pembelian No_SC, Id_Produk Delivery Order Penjualan No_Pengiriman, No_SP, Id_Produk No_Pengiriman SC Payment No_SCPayment, No_Penerimaan, NIP No_SCPayment SP Payment No_SPPayment, Id_Customer No_SCPayment

(19)

Berikut ini adalah diagram menentukan primary key dari entity-entity yang ada:

Gambar 4.2 Diagram ERD Konseptual dengan primary key

4.1.1.5 Validasi model konseptual lokal dengan transaksi user

Tahapan ini bertujuan untuk memastikan model konseptual lokal untuk mendukung transaksi yang dibutuhkan oleh transaksi user. Dalam hal ini digunakan jalur arah transaksi (pathways) yang digambarkan dalam diagram ER untuk memeriksa model konseptual lokal untuk mendukung transaksi. Model Konseptual

(20)

Lokal dengan transaksi user dapat dilihat pada diagram berikut ini:

(21)

Dari model konseptual lokal dengan Transaksi user di atas, didapat deskripsi transaksi-transaksi sebagai berikut:

(a) Menampilkan order pembelian yang ada (b) Mengidentifikasi Sales Contract

(c) Mengidentifikasi pembayaran

(d) Mengidentifikasi pembayaran pembelian (e) Mengidentifikasi produk yang di order (f) Mengidentifikasi commercial invoice (g) Mengidentifikasi Packing List

(h) Mengidentifikasi Bill of Lading (i) Menambah produk

(j) Menampilkan staf

(k) Menampilkan pesanan/order penjualan yang ada (l) Menampilkan Surat Pesanan

(m) Menampikan produk yang akan dikirim ke pelanggan (n) Input pembayaran

(o) Mengidentifikasi pembayaran penjualan (p) Menampilkan pelanggan

(q) Mengurangi produk (r) Menampilkan stok produk

(22)

4.1.2 Perancangan Basisdata Logikal

Perancangan basis data logikal merupakan suatu proses membangun sebuah model informasi yang digunakan dalam sebuah perusahaan berdasarkan pada sebuah model data khusus, tetapi bebas dari DBMS tertentu dan pertimbangan fisik lainnya.

Tahapan utama dalam fase ini adalah membangun suatu model data logikal lokal dari sebuah model data konseptual lokal yang merepresentasikan view tertentu dari perusahaan dan kemudian memvalidasi model ini untuk meyakinkan bahwa model tersebut secara struktural benar dan model tersebut mendukung semua transaksi yang dibutuhkan. Sehingga pada akhir tahap ini akan dihasilkan hanya satu model data logikal lokal yang sekaligus menjadi model data logikal global. Adapun langkah-langkah dalam merancang basis data logikal yaitu :

1.Menghilangkan feature yang tidak kompatibel dengan model relasional.

2.Membuat relasi untuk model data logikal lokal.

3.Memvalidasi relasi menggunakan teknik normalisasi.

4.Mendefinisikan batasan integritas (integrity constraints).

4.1.2.1 Menghilangkan feature tidak kompatibel dengan model relasional Tujuan dari langkah ini adalah untuk memperhalus model data konseptual lokal dengan menghilangkan feature yang tidak kompatibel dengan model relasional. Adapun cara yang digunakan dalam tahapan ini untuk menghilangkan feature tidak kompatibel dengan model relasional adalah dengan menghilangkan hubungan many-to-many (*:*) binary relationship

(23)

types. Hasil dari langkah ini secara keseluruhan dapat dilihat pada gambar diagram ER sebagai berikut:

1. Menghilangkan many-to-many binary relationship

Pada langkah ini, relationship *:* diganti dengan dua relationship one-to-many (1:*) ke sebuah entity baru. Adapun relationship *:* yang perlu dihilangkan yaitu :

a) Hubungan Delivery Order Pembelian dengan Produk

(a)

(b)

Keterangan: a. Kondisi awal b. Kondisi akhir

b) Hubungan antara Delivery Order Penjualan dengan Produk

(24)

(b)

Gambar 4.4 Membuang Relasi many to many

2. Menghilangkan atribut multi-valued

Atribut multi-valued memegang banyak nilai untuk sebuah entity. Oleh sebab itu, pada langkah ini kita menghilangkan atribut multi-valued ini dengan mengidentifikasikan sebuah entity baru dimana atribut tersebut direpresentasikan sebagai sebuah atribut tunggal (primary key) dan sebuah relationship 1:* dibuat. Adapun atribut multi-valued yang dihilangkan yaitu:

a) Atribut telepon dan handphone pada entity Staf

(25)

a) Entity Staf dengan atribut multi-valued Telepon dan Handphone

b) Membuat entity baru dengan nama Telepon_staf dan memindahkan atribut Telepon ke entity Telepon_staf dengan Telepon sebagai primary key dan relationship 1:* dengan nama memiliki

c) Membuat entity baru dengan nama Handphone_staf dan memindahkan atribut Handphone ke entity Handphone_staf

(26)

dengan Handphone sebagai primary key dan relationship 0:* dengan nama memiliki

b) Atribut telepon dan fax pada entity Supplier

Gambar 4.6 Atribut multi-valued pada entity Supplier

a) Entity Supplier dengan atribut multi-valued Telepon dan Fax

b) Membuat entity baru dengan nama Telp_supplier dan memindahkan atribut Telp ke entity Telp_supplier dengan Telp sebagai primary key dan relationship 1:* dengan nama memiliki

(27)

c) Membuat entity baru dengan nama Fax_supplier dan memindahkan atribut Fax ke entity Fax_supplier dengan Fax sebagai primary key dan relationship 1:* dengan nama memiliki

c) Atribut telepon, handphone dan fax pada entity Customer

Gambar 4.7 Atribut multi-valued pada entity Customer

a) Entity Supplier dengan atribut multi-valued Telp, Handphone dan Fax

b) Membuat entity baru dengan nama Telp_customer dan memindahkan atribut Telp ke entity Telp_customer dengan Telp sebagai primary key dan relationship 1:* dengan nama memiliki

(28)

c) Membuat entity baru dengan nama Handphone_customer dan memindahkan atribut Handphone ke entity Handphone_customer dengan Handphone sebagai primary key dan relationship 0:* dengan nama memiliki

d) Membuat entity baru dengan nama Fax_customer dan memindahkan atribut Fax ke entity Fax_customer dengan Fax sebagai primary key dan relationship 0:* dengan nama memiliki

4.1.2.2 Membuat relasi untuk model data logikal lokal

Langkah ini bertujuan untuk menciptakan relasi bagi model data logikal lokal untuk merepresentasikan entity, relationship dan atribut yang telah diidentifikasikan. Adapun langkah-langkah dalam membuat relasi dari struktur yang mungkin dalam model data antara lain:

1. Strong entity types

Untuk setiap strong entity dalam model data, ciptakan sebuah tabel yang mencakup semua atribut dari entity tersebut. Adapun tabel yang dihasilkan dari strong entity yaitu :

(29)

a) Staf (NIP, Nama_staf, posisi, Alamat, sex, komisi, bonus, gaji_pokok, tgl_mulai_kerja)

Primary Key NIP

b) Supplier (Id_supplier, Nama_supplier, Alamat, E-mail) Primary Key Id_supplier

c) Customer (Id_customer, Nama_customer, Alamat) Primary Key Id_customer

d) Produk (Id_produk, Nama_produk, Satuan, Warna, Harga_satuan, Stok)

Primary Key Id_produk

e) Packing List (No_PL, Tgl_PL, No_CI, No_SC, Keterangan_produk)

Primary Key No_PL

Foreign Key No_CI references Commercial Invoice (No_CI) Foreign Key No_SC references Sales Contract (No_SC)

f) Commercial Invoice (No_CI, Tgl_CI, Id_produk, Rincian_produk, Quan, Harga_Satuan, Jumlah, Total)

Primary Key No_CI

Foreign Key Id_produk references Produk (Id_produk)

g) Surat Pesanan (No_SP, Tgl_SP, Nama_customer, Alamat, Telp, Id_produk, Warna, Quantity, Perlengkapan_tambahan, Harga Satuan, Total, Uang_Muka, Sisa)

(30)

Foreign Key Id_produk references Produk (Id_produk)

h) Bill of Lading (No_BL, Tgl_BL, Keterangan_produk) Primary Key No_BL

i) Sales Contract (No_SC, Tgl_SC, Id_produk, Quan, Harga_Satuan, Jumlah, Total)

Primary Key No_SC

Foreign Key Id_produk references Produk (Id_produk)

j) Delivery order pembelian (Tgl, No_pengiriman, No_SC, Id_produk, Nama_produk, Quan, harga_satuan, Jumlah, Total)

Primary Key No_pengiriman

Foreign Key No_SC references Sales Contract (No_SC) Foreign Key Id_produk references Produk (Id_produk)

k) Delivery order penjualan (Tgl, No_pengiriman, No_SP, Id_produk, Nama_produk, Quan, harga_satuan, Jumlah, Total Primary Key No_pengiriman

Foreign Key No_SP references Surat Pesanan (No_SP) Foreign Key Id_produk references Produk (Id_produk)

i) SP_payment (Tgl, No_SPPayment, No_pengiriman, Id_customer, Nama_customer, Jumlah)

Primary Key No_SPPPayment

(31)

Foreign Key No_pengiriman references Delivery Order Penjualan (No_pengiriman)

j) SC_payment (Tgl, No_SCPayment, No_pengiriman, NIP, Jumlah)

Primary Key No_SCPayment

Foreign Key No_pengiriman references Delivery Order Pembelian (No_pengiriman)

Foreign Key NIP references Staf (NIP) k) Telepon_staf (Telepon)

Primary Key Telepon

l) Handphone_staf (Handphone) Primary Key Handphone m) Telp_supplier (Telp)

Primary Key Telp n) Fax_supplier (Fax)

Primary Key Fax o) Telp_customer (Telp)

Primary Key Telp

p) Handphone_customer (Handphone) Primary Key Handphone

q) Fax_customer (Fax) Primary Key Fax

(32)

2. Week entity types

Untuk setiap weak entity dalam model data, ciptakan sebuah tabel yang mencakup semua atribut dari entity tersebut. Adapun tabel yang dihasilkan dari weak entity yaitu :

a) Delivery Order Pembelian detil (No_pengiriman, Id_produk, satuan, harga_satuan, quan, jumlah)

Primary Key No_pengiriman, Id_produk

Foreign Key No_pengiriman reference Delivery Order Pembelian(No_pengiriman)

Foreign Key Id_produk reference Produk(Id_produk) b) Delivery Order Penjualan detil (No_pengiriman, Id_produk,

satuan, harga_satuan, quan, jumlah) Primary Key No_pengiriman, Id_produk

Foreign Key No_pengiriman reference Delivery Order Penjualan(No_pengiriman)

Foreign Key Id_produk reference Produk (Id_produk) 3. Tipe relasi biner one-to-many (1:*)

Untuk setiap relationship biner 1:*, entity pada ‘sisi satu’ dari relationship dianggap sebagai entity induk dan entity pada ‘sisi banyak’ dianggap sebagai entity anak. Untuk merepresentasikan relationship, kita mengirim copy-an atribut primary key dari entity

(33)

induk ke dalam tabel yang merepresentasikan entity anak, untuk bertindak sebagai foreign key. Adapun relationship 1:* yang terlibat yaitu :

a). Staf memiliki Telepon_staf

Gambar 4.8 Relationship 1:* Staf Memiliki Telepon_staf

b). Staf memiliki Handphone_staf

(34)

c). Supplier memiliki Telp_supplier

Gambar 4.10 Relationship 1:* Supplier Memiliki Telp_supplier

d). Supplier memiliki Fax_supplier

Gambar 4.11 Relationship 1:* Supplier memiliki Fax_supplier

e). Customer memiliki Telp_customer

(35)

f). Customer memiliki Fax_customer

Gambar 4.13 Relationship 1:* Customer memiliki Fax_customer

g). Customer memiliki Handphone_customer

Gambar 4.14 Relationship 1:* Customer memiliki Handphone_customer

h). Staf melakukan SC Payment

(36)

i). Customer melakukan SP Payment

Gambar 4.16 Relationship 1:* Customer melakukan SP Payment

4. Tipe relasi biner many-to-many (*:*)

Untuk setiap relasi biner many-to-many membuat sebuah hubungan untuk mewakili relasi tersebut dan meliputi atribut-atribut yang merupakan bagian dari relasi tersebut. Adapun relasi *:* yang terlibat, antara lain:

a). Relasional antara Delivery Order Pembelian dengan Produk Gambar 4.17 Relationship *:* antara Delivery Order Pembelian dengan

produk

(37)

b) Relasional antara Delivery Order Penjualan dengan Produk

Gambar 4.18 Relationship *:* antara Delivery Order Penjualan dengan Produk

4.1.2.3 Menvalidasi relasi menggunakan teknik normalisasi

Tujuan dari langkah ini adalah untuk memvalidasi relasi-relasi dalam model data logikal lokal menggunakan teknik normalisasi. Teknik normalisasi bertujuan untuk menghasilkan model data yang konsisten, dan memiliki minimal redundansi (pengulangan data yang tidak perlu) dan maksimum stabilitas. Proses normalisasi dimulai dengan menentukan functional dependency antar atribut dalam suatu relasi. Sistemnya telah berada pada kondisi normalisasi pertama karena telah ditentukan primary key dan sistem telah dihilangkan attribute multi value. Jadi kita mulai pada tahap 2NF atau

(38)

normalisasi yang ke dua. Untuk 2NF menghilangkan partial depedency dan pada 3NF menghilangkan transitif depedency.

Proses normalisasi adalah sebagai berikut:

Gambar 4.19 Validasi Relasi dengan Normalisasi Staf (primary key)

NIP Nama_staf posisi alamat sex komisi bonus gaji_pokok Tgl_mulai_kerja

(39)

Supplier (primary key) Produk (primary key) Customer Id_customer Nama_customer Alamat Id_supplier Nama_supplier Alamat e-mail Id_produk Nama_produk Satuan Warna Harga_satuan

(40)

Packing List (primary key) Commercial Invoice (primary key) No_PL Tgl_PL No_SC No_CI Keterangan_produk No_CI Tgl_CI Id_produk Rincian_produk Quan Harga_satuan Jumlah Total

(41)

Surat Pesanan

(primary key)

Relasi yang terbentuk:

Surat Pesanan (@No_SP, Tgl_SP, No_customer, Alamat, Telp, Perlengkapan_tambahan, Total, Uang_muka, sisa)

Produk (@Id_produk, Warna, , Harga Satuan) No_SP Tgl_SP Nama_customer Alamat Telp Id_produk Warna Quantity Perlengkapan_tambahan Harga_satuan Total Uang_muka Sisa

(42)

Bill of Lading (primary key) Sales Contract (primary key) No_BL Tgl_BL Keterangan_produk No_SC Tgl_SC Id_produk Quan Harga_satuan Jumlah Total

(43)

Delivery Order Pembelian

(primary key)

Relasi yang terbentuk adalah:

Delivery Order Pembelian ( @No_pengiriman, Tgl. No_SC, Jumlah, Total)

Id_produk (@Id_produk, Nama_produk, Quan, Harga_satuan) Tgl No_pengiriman No_SC Id_produk Nama_produk Quan Harga_satuan Jumlah Total

(44)

Delivery Order Penjualan

(primary key)

Relasi yang terbentuk adalah:

Delivery Order Penjualan ( @No_pengiriman, Tgl. No_SP, Jumlah, Total)

Id_produk (@Id_produk, Nama_produk, Quan, Harga_satuan) Tgl No_pengiriman No_SP Id_produk Nama_produk Quan Harga_satuan Jumlah Total

(45)

SC Payment

(primary key)

SP Payment

(primary key)

Relasi yang terbentuk adalah:

SP Payment (@No_SPPayment, Tgl, No_pengiriman, jumlah) Customer (@Id_customer, Nama_customer)

Tgl No_SCPayment No_pengiriman NIP jumlah Tgl No_SPPayment No_pengiriman Id_customer Nama_customer jumlah

(46)

Telepon_staf (primary key) Handphone_staf (primary key) Telp_supplier (primary key) Fax_supplier (primary key) Telp_customer (primary key) Telepon NIP Handphone NIP Telp Id_supplier Fax Id_supplier Telp Id_customer

(47)

Handphone_customer

(primary key)

Fax_customer

(primary key)

Berdasarkan functional dependency antar atribut dalam suatu relasi tersebut, dapat dilihat bahwa ternyata semua atribut non-primary key dalam suatu relasi tergantung sepenuhnya pada atribut primary key dari relasi tersebut. Penentuan primary key untuk setiap relasi sudah dilakukan pada tahap sebelumnya, sehingga secara otomatis di dalam setiap relasi sudah tidak ada lagi repeating group yang berarti setiap relasi sudah memenuhi 1NF. Di dalam setiap relasi juga tidak terdapat atribut non-primary key yang tergantung pada salah satu atribut primary key (partial dependency), sehingga setiap relasi berarti sudah memenuhi 2NF. Juga tidak ditemukan adanya atribut non-primary key dalam suatu relasi yang tergantung pada atribut non-primary key yang lain dalam relasi tersebut (transitive dependency). Hal ini berarti bahwa setiap relasi juga sudah memenuhi 3NF. Dengan menentukan functional dependency Handphone

Id_customer

Fax

(48)

dari setiap relasi, maka dapat diketahui bahwa semua relasi tersebut sudah normal dan tidak perlu dilakukan normalisasi lagi.

4.1.2.4 Mendefinisikan batasan integritas (integrity constraints)

Tujuan dari langkah ini adalah untuk menentukan batasan integritas yang dapat melindungi basis data dari ketidakkonsistenan. Ada lima batasan integritas yang didefinisikan yaitu :

1. Required data

Beberapa atribut harus selalu mengandung sebuah nilai yang valid atau dengan kata lain, atribut-atribut ini tidak diperkenankan untuk mengandung nilai null. Batasan ini sudah diidentifikasikan dalam tahap 4.1.1.3.

2. Attribute domain constraints

Setiap atribut mempunyai sebuah domain, yang merupakan serangkaian nilai yang legal atau sah. Batasan ini juga sudah diidentifikasikan ketika memilih domain atribut untuk model data pada tahap 4.1.1.3.

3. Entity integrity

Primary key dari sebuah entity tidak boleh null. Batasan ini juga sudah

dipertimbangkan ketika mengidentifikasikan primary key untuk setiap entity type yang dilakukan pada tahap 4.1.1.4.

(49)

4. Referential integrity

Jika sebuah foreign key mengandung sebuah nilai, maka nilai tersebut harus mengacu pada suatu baris (tuple) yang ada dalam relasi induknya. Adapun referential integrity constraints untuk relasi-relasi yang telah diciptakan sebelumnya adalah seperti terlihat pada tabel berikut ini.

Tabel 4.5 Tabel Menentukan Integrity Constraint

Staf (NIP, Nama_staf, posisi, alamat, sex, komisi, bonus, gaji_pokok, tgl_mulai_kerja)

Primary Key NIP

Supplier (Id_supplier, Nama_supplier, Alamat, E-mail Primary Key Id_supplier

Produk (Id_produk, Nama_produk, Satuan, Warna, Harga_satuan, Stok) Primary Key Id_produk

Customer (Id_customer, Nama_customer, alamat Primary Key Id_customer

Packing List (No_PL, Tgl_PL, No_SC, No_CI, Keterangan_produk) Primary Key No_PL

Foreign Key No_SC references Sales Contract(No_SC) on update cascade on delete no action

(50)

cascade on delete no action

Commercial Invoice (No_CI, Tgl_CI, Id_produk, Rincian_produk, Quan, Harga_satuan, Jumlah, Total)

Primary Key No_CI

Foreign Key Id_produk references Produk(Id_produk) on update cascade on delete no action

Surat Pesanan (No_SP, Tgl_SP, Nama_customer, Alamat, Telp, Id_produk, Warna, Quan, Perlengkapan_tambahan, Harga_satuan, Total, Uang_muka, Sisa

Primary Key No_SP

Foreign Key Id_produk references Produk(Id_produk) on update cascade on delete no action

Bill of Lading (No_BL, Tgl_BL, Keterangan_produk) Primary Key No_BL

Sales Contract (No_SC, Tgl_SC, Id_produk, Quan, Harga_satuan, Jumlah, Total)

Primary Key No_SC

Foreign Key Id_produk references Produk(Id_produk) on update cascade on delete no action

(51)

Nama_produk, Quan, harga_satuan, jumlah, total)

Primary Key No_pengiriman

Foreign Key No_SC references Sales Contract(No_SC) on update cascade on delete no action

Foreign Key Id_produk references Produk(Id_produk) on update cascade on delete no action

Delivery Order Penjualan (No_pengiriman, Tgl, No_SP, Id_produk, Nama_produk, Quan, Harga_satuan, jumlah, total

Primary Key No_pengiriman

Foreign Key No_SP references Surat Pesanan(No_SP) on update cascade on delete no action

Foreign Key Id_produk references Produk(Id_produk) on update cascade on delete no action

SC Payment (No_SCPayment, Tgl, No_pengiriman, NIP, jumlah Primary Key No_SCPayment

Foreign Key No_pengiriman references Delivery Order

Pembelian(No_pengiriman) on update cascade on delete no action

Foreign Key NIP references Staf(NIP) on update cascade on delete no action

(52)

Primary Key No_SPPayment

Foreign Key Id_customer references Customer(Id_customer) on update cascade on delete no action

Telepon_staf (Telepon, NIP) Primary Key Telepon

Foreign Key NIP references Staf(NIP) on update cascade on delete no action

Handphone_staf (Handphone, NIP) Primary Key Handphone

Foreign Key NIP references Staf(NIP) on update cascade on delete no action

Telp_supplier (Telp, Id_supplier) Primary Key Telp

Foreign Key Id_supplier references Supplier(Id_supplier) on update cascade on delete no action

Fax_supplier (Fax, Id_supplier) Primary Key Fax

Foreign Key Id_supplier references Supplier(Id_supplier) on update cascade on delete no action

(53)

Primary Key Telp

Foreign Key Id_customer references Customer(Id_customer) on update cascade on delete no action

Handphone_customer (Handphone, Id_customer) Primary Key Handphone

Foreign Key Id_customer references Customer(Id_customer) on update cascade on delete no action

Fax_customer (Fax, Id_customer) Primary Key Fax

Foreign Key Id_customer references Customer(Id_customer) on update cascade on delete no action

Delivery Order Penjualan detil (No_pengiriman, Id_produk, Satuan, Harga_satuan, Quan, Jumlah)

Primary Key No_pengiriman, Id_produk

Foreign Key No_pengiriman references Delivery Order

Penjualan(No_pengiriman) on update cascade on delete no action

Foreign Key Id_produk references Produk(Id_produk) on update cascade on delete no action

Delivery Order Pembelian detil (No_pengiriman, Id_produk, Satuan, Harga_satuan, Quan, Jumlah)

(54)

Primary Key No_pengiriman, Id_produk

Foreign Key No_pengiriman references Delivery Order

Pembelian(No_pengiriman) on update cascade on delete no action

Foreign Key Id_produk references Produk(Id_produk) on update cascade on delete no action

(55)
(56)

4.1.3 Perancangan Basisdata Fisikal

Perancangan basis data fisik merupakan proses untuk memutuskan bagaimana struktur logika diimplementasikan secara fisik (sebagai relasi) ke target DBMS. Adapun langkah-langkah dalam perancangan basis data secara fisik yaitu :

1.Merancang relasional basis data.

2.Menganalisis transaksi.

3.Memilih index

4.Memperkirakan kebutuhan kapasitas penyimpanan.

5.Merancang mekanisme keamanan.

6.Pemilihan DBMS

4.1.3.1 Merancang Relasional Basis data

Tujuan dari langkah ini adalah untuk memutuskan bagaimana

merepresentasikan relasi dasar yang diidentifikasikan dalam model data logikal global ke dalam target DBMS. Informasi yang diperlukan untuk proses ini dapat diperoleh dari kamus data dan definisi dari relasi dideskripsikan menggunakan Database Definition Language (DBDL). Adapun DBDL yang didefinisikan adalah sebagai berikut :

(57)

DBDL Staf

Domain NIP variable length character string, length 5

Domain NamaStaf variable length character string, length 30

Domain Posisi variable length character string, length 15

Domain Alamat variable length character string, length 50

Domain Sex single character must be one of ’P’, ’W’

Domain Komisi monetary value

Domain Bonus monetary value

Domain GajiPokok monetary value

Domain TanggalMulaiKerja date

Staf (

NIP NIP NOT NULL,

Nama_staf NamaStaf NOT NULL,

Posisi Posisi NOT NULL,

Alamat Alamat NOT NULL,

sex Sex NOT NULL,

komisi Komisi

(58)

DBDL Supplier

Domain IdSupplier variable length character string, length 5

Domain NamaSupplier variable length character string, length 30

Domain Alamat variable length character sting, length 50

Domain E-mail variable length character string, length 20

Supplier (

Id_supplier IdSupplier NOT NULL,

Nama_supplier NamaSupplier NOT NULL,

Alamat Alamat NOT NULL,

E-mail E-mail

Primary Key (Id_supplier));

Gaji_pokok GajiPokok NOT NULL,

Tgl_mulai_kerja TanggalMulaiKerja NOT NULL,

(59)

DBDL Produk

Domain IdProduk variable length character string, length 7

Domain NamaProduk variable length character string, length 20

Domain Satuan variable length character string, length 7

Domain Warna variable length character string, length 10

Domain HargaSatuan monetary value

Domain Stok Integer

Produk (

Id_produk IdProduk NOT NULL,

Nama_produk NamaProduk NOT NULL,

Satuan Satuan

Warna Warna NOT NULL,

Harga_satuan HargaSatuan NOT NULL,

Stok Stok NOT NULL,

(60)

DBDL Customer

Domain IdCustomer variable length character string, length 5

Domain NamaCustomer variable length character string, length 15

Domain Alamat variable length character string, length 30

Customer (

Id_customer IdCustomer NOT NULL,

Nama_customer NamaCustomer NOT NULL,

Alamat Alamat NOT NULL,

Primary Key (Id_customer));

DBDL Packing List Domain NoPackingList integer

Domain TanggalPackingList date

Domain NoSalesContract integer

Domain NoCommercialInvoice integer

Domain KeteranganProduk variable length character string, length 50

Packing List (

No_PL NoPackingList NOT NULL,

(61)

No_SC NoSalesContract NOT NULL,

No_CI NoCommercialInvoice NOT NULL,

Keterangan_produk KeteranganProduk NOT NULL,

Primary Key (No_PL),

Foreign Key (No_SC) references Sales Contract(No_SC) on update cascade on delete no action,

Foreign Key (No_CI) references Commercial Invoice (No_CI) on update cascade on delete no action);

DBDL Commercial Invoice Domain NoCommercialInvoice integer

Domain TanggalCommercialInvoice date

Domain IdProduk variable length character string, length 8

Domain RincianProduk variable length character string, length 30

Domain Quantity integer

Domain HargaSatuan monetary value

Domain Jumlah monetary value

Domain Total monetary value

(62)

No_CI NoCommercialInvoice NOT NULL,

Tgl_CI TanggalCommercialInvoice NOT NULL,

Id_produk IdProduk NOT NULL,

Rincian_produk RincianProduk NOT NULL,

Quan Quantity NOT NULL,

Harga_satuan HargaSatuan NOT NULL,

Jumlah Jumlah NOT NULL,

Total Total NOT NULL,

Primary Key (No_CI),

Foreign Key (Id_produk) references Produk (Id_produk) on update cascade on delete no action);

DBDL Surat Pesanan Domain NoSuratPesanan integer

Domain TanggalSuratPesanan date

Domain NamaCustomer variable length character string, length 15

Domain Alamat variable length character string, length 30

(63)

Domain Telepon integer

Domain IdProduk variable length character string, length 7

Domain Warna variable length character string, length 10

Domain Quantity integer

Domain PerlengkapanTambahan variable length character string, length 20

Domain HargaSatuan monetary value

Domain Total monetary value

Domain UangMuka monetary value

Domain Sisa monetary value

Surat Pesanan (

No_SP NoSuratPesanan NOT NULL,

Tgl_SP TanggalSuratPesanan NOT NULL,

Nama_customer NamaCustomer NOT NULL,

Alamat Alamat NOT NULL,

Telp Telepon NOT NULL,

Id_produk IdProduk NOT NULL,

(64)

Quan Quantity NOT NULL,

Perlengkapan_Tambahan PerlengkapanTambahan

Harga_satuan Harga_satuan NOT NULL,

Total Total NOT NULL,

Uang_muka UangMuka NOT NULL,

Sisa Sisa

Primary Key (No_SP),

Foreign Key (Id_produk) references Produk (Id_produk) on update cascade on delete no action);

DBDL Bill of Lading Domain NoBillOfLading integer Domain TanggalBillOfLading date

Domain KeteranganProduk variable length character string, length 50 Bill of Lading (

No_BL NoBillOfLading NOT NULL, Tgl_BL TanggalBillOfLading NOT NULL, Keterangan Produk KeteranganProduk NOT NULL, Primary Key (No_BL));

(65)

DBDL Sales Contract Domain NoSalesContract integer Domain TanggalSalesContract date

Domain IdProduk variable length character string, length 7 Domain Quantity integer

Domain HargaSatuan monetary value Domain Jumlah monetary value Domain Total monetary value Sales Contract (

No_SC NoSalesContract NOT NULL, Tgl_SC TanggalSalesContract NOT NULL, Id_produk IdProduk NOT NULL, Quan Quantity NOT NULL, Harga_satuan HargaSatuan NOT NULL, Jumlah Jumlah NOT NULL, Total Total NOT NULL, Primary Key (No_SC),

Foreign Key (Id_produk) references Produk(Id_produk) on update cascade on delete no action);

DBDL Delivery Order Pembelian Domain NoPengiriman integer

(66)

Domain Tanggal date Domain NoSalesContract integer

Domain IdProduk variable length character string, length 7 Domain NamaProduk variable length character string, length 20 Domain Quantity integer

Domain HargaSatuan monetary value Domain Jumlah monetary value Domain Total monetary value Delivery Order Pembelian (

No_pengiriman NoPengiriman NOT NULL, Tgl Tanggal NOT NULL, No_SC NoSalesContract NOT NULL, Id_produk IdProduk NOT NULL, Nama_produk NamaProduk NOT NULL, Quan Quantity NOT NULL, Harga_satuan HargaSatuan NOT NULL, Jumlah Jumlah NOT NULL, Total Total NOT NULL, Primary Key (No_pengiriman),

Foreign Key (No_SC) references Sales Contract (No_SC) on update cascade on delete no action,

Foreign Key (Id_produk) references Produk (Id_produk) on update cascade on delete no action);

(67)

DBDL Delivery Order Penjualan Domain NoPengiriman integer

Domain Tanggal date Domain NoSuratPesanan integer

Domain IdProduk variable length character string, length 7 Domain NamaProduk variable length character string, length 20 Domain Quantity integer

Domain HargaSatuan monetary value Domain Jumlah monetary value Domain Total monetary value Delivery Order Penjualan (

No_pengiriman NoPengiriman NOT NULL, Tgl Tanggal NOT NULL, No_SP NoSuratPesanan NOT NULL, Id_produk IdProduk NOT NULL, Nama_produk NamaProduk NOT NULL, Quan Quantity NOT NULL, Harga_satuan HargaSatuan NOT NULL, Jumlah Jumlah NOT NULL, Total Total NOT NULL, Primary Key (No_pengiriman),

Foreign Key (No_SP) references Surat Pesanan (No_SP) on update cascade on delete no action,

(68)

Foreign Key (Id_produk) references Produk (Id_produk) on update cascade on delete no action);

DBDL SC Payment Domain NoSalesContractPayment integer Domain Tanggal date Domain NoPengiriman integer

Domain NIP variable length character string, length 5 Domain Jumlah monetary value

SC Payment (

No_SCPayment NoSalesContractPayment NOT NULL, Tgl Tanggal NOT NULL, No_pengiriman NoPengiriman NOT NULL, NIP NIP NOT NULL, Jumlah Jumlah NOT NULL, Primary Key (No_SCPayment),

Foreign Key (No_pengiriman) references Delivery Order Pembelian (No_pengiriman) on update cascade on delete no action,

Foreign Key (NIP) references Staf (NIP) on update cascade on delete no action);

DBDL SP Payment Domain NoSuratPesananPayment integer Domain Tanggal date

(69)

Domain IdCustomer variable length character string, length 5 Domain NamaCustomer variable length character string, length 15 Domain Jumlah monetary value

SP Payment (

No_SPPayment NoSuratPesananPayment NOT NULL, Tgl Tanggal NOT NULL, Id_customer IdCustomer NOT NULL, Nama_customer NamaCustomer NOT NULL, Jumlah Jumlah NOT NULL, Primary Key (No_SPPayment),

Foreign Key (Id_customer) references Customer (Id_customer) on update cascade on delete no action);

DBDL Delivery Order Pembelian Detil Domain NoPengiriman integer

Domain IdProduk variable length character string, length 7 Domain Satuan integer

Domain Quantity integer

Domain HargaSatuan monetary value Domain Jumlah monetary value Delivery Order Pembelian detil (

No_pengiriman NoPengiriman NOT NULL, Id_produk IdProduk NOT NULL

(70)

Satuan Satuan NOT NULL, Quan Quantity NOT NULL, Harga_satuan HargaSatuan NOT NULL, Jumlah Jumlah NOT NULL, Primary Key (No_pengiriman),

Primary Key (Id_produk),

Foreign Key (No_pengiriman) references Delivery Order Pembelian (No_pengiriman) on update cascade on delete no action,

Foreign Key (Id_produk) references Produk (Id_produk) on update cascade on delete no action);

DBDL Delivery Order Penjualan Detil Domain NoPengiriman integer

Domain IdProduk variable length character string, length 7 Domain Satuan integer

Domain Quantity integer

Domain HargaSatuan monetary value Domain Jumlah monetary value Delivery Order Penjualan Detil (

No_pengiriman NoPengiriman NOT NULL, Id_produk IdProduk NOT NULL, Satuan Satuan NOT NULL, Quan Quantity NOT NULL,

(71)

Harga_satuan HargaSatuan NOT NULL, Jumlah Jumlah NOT NULL, Primary Key (No_pengiriman),

Primary Key (Id_produk),

Foreign Key (No_pengiriman) references Delivery Order Penjualan (No_pengiriman) on update cascade on delete no action,

Foreign Key (Id_produk) references Produk (Id_produk) on update cascade on delete no action);

DBDL Telepon_staf Domain Telepon integer

Domain NIP variable length character string, length 5 Telepon_staf (

Telepon Telepon NOT NULL, NIP NIP NOT NULL, Primary Key (Telepon),

(72)

DBDL Handphone_staf Domain Handphone integer

Domain NIP variable length character string, length 5 Handphone_staf (

Handphone Handphone

NIP NIP NOT NULL, Primary Key (Handphone),

Foreign Key (NIP) references Staf (NIP) on update cascade on delete no action);

DBDL Telp_supplier Domain Telepon integer

Domain Id_supplier variable length character string, length 5 Telp_supplier (

Telp Telepon NOT NULL, Id_supplier Id_supplier NOT NULL, Primary Key (Telp),

Foreign Key (Id_supplier) references Supplier (Id_supplier) on update cascade on delete no action);

DBDL Fax_supplier Domain Fax integer

(73)

Domain Id_supplier variable length character string, length 5 Fax_supplier (

Fax Fax NOT NULL, Id_supplier Id_supplier NOT NULL, Primary Key (Fax),

Foreign Key (Id_supplier) references Supplier (Id_supplier) on update cascade on delete no action);

DBDL Fax_ customer Domain Fax integer

Domain Id_customer variable length character string, length 5 Fax_customer (

Fax Fax NOT NULL, Id_customer Id_customer NOT NULL, Primary Key (Fax),

Foreign Key (Id_customer) references Customer (Id_customer) on update cascade on delete no action);

DBDL Telp_customer Domain Telepon integer

Domain Id_customer variable length character string, length 5 Telp_customer (

(74)

Id_customer Id_customer NOT NULL, Primary Key (Telp),

Foreign Key (Id_customer) references Customer (Id_customer) on update cascade on delete no action);

DBDL Handphone_customer Domain Handphone integer

Domain Id_customer variable length character string, length 5 Handphone_customer(

Handphone Handphone

Id_customer Id_customer NOT NULL, Primary Key (Handphone),

Foreign Key (Id_customer) references Customer (Id_customer) on update cascade on delete no action);

4.1.3.2 Menganalisis Transaksi

Langkah ini bertujuan untuk memahami fungsionalitas dari transaksi yang akan berjalan pada basis data dan untuk menganalisis transaksi-transaksi yang penting. Transaksi – transaksi-transaksi yang terjadi adalah sebagai berikut:

(a) Menampilkan order pembelian yang ada (b) Mengidentifikasi Sales Contract

(c) Mengidentifikasi pembayaran

(75)

(e) Mengidentifikasi produk yang di order (f) Mengidentifikasi commercial invoice (g) Mengidentifikasi Packing List

(h) Mengidentifikasi Bill of Lading (i) Menambah produk

(j) Menampilkan staf

(k) Menampilkan pesanan/order penjualan yang ada (l) Menampilkan Surat Pesanan

(m) Menampikan produk yang akan dikirim ke pelanggan (n) Input pembayaran

(o) Mengidentifikasi pembayaran penjualan (p) Menampilkan pelanggan

(q) Mengurangi produk (r) Menampilkan stok produk

(76)

163

Tabel 4.6 Analisis Transaksi bagian I

I = Insert; R = Read; U = Update; D = Delete

(A) (B) (C) (D) (E) (F) (G) Transaksi/ Relasi I R U D I R U D I R U D I R U D I R U D I R U D I R U D Staf X X X X Supplier X Produk X X X X X X Customer Packing List X Commercial Invoice X X Surat Pesanan Bill of Lading Sales Contract X X X

Delivery Order Pembelian X X

Delivery Order Penjualan

SC Payment X X

SP Payment

Delivery Order Pembelian detil Delivery Order Penjualan detil

Telepon_staf X Handphone_staf Telp_supplier Fax_supplier Telp_customer Handphone_customer Fax_customer

(77)

164

Tabel 4.7 Analisis Transaksi bagian II

I = Insert; R = Read; U = Update; D = Delete

(H) (I) (J) (K) (L) (M) (N) Transaksi/ Relasi I R U D I R U D I R U D I R U D I R U D I R U D I R U D Staf X X X X Supplier Produk X X X X X X Customer X X Packing List Commercial Invoice Surat Pesanan X Bill of Lading X Sales Contract

Delivery Order Pembelian

Delivery Order Penjualan X X

SC Payment X X X

SP Payment X X X

Delivery Order Pembelian detil Delivery Order Penjualan detil

Telepon_staf X X X X Handphone_staf X X X X Telp_supplier Fax_supplier Telp_customer Handphone_customer Fax_customer

(78)

165

Tabel 4.7 Analisis Transaksi bagian III

I = Insert; R = Read; U = Update; D = Delete Transaksi/ Relasi (O) (P) (Q) (R) I R U D I R U D I R U D I R U D Staf Supplier Produk X X X X Customer X X X X X Packing List Commercial Invoice Surat Pesanan Bill of Lading Sales Contract

Delivery Order Pembelian Delivery Order Penjualan SC Payment

SP Payment X

Delivery Order Pembelian detil Delivery Order Penjualan detil Telepon_staf Handphone_staf Telp_supplier Fax_supplier Telp_customer X X X X Handphone_customer X X X X Fax_customer X X X X

(79)

4.1.3.3 Memilih index

Tujuan dari langkah ini adalah untuk menentukan apakah penambahan index akan meningkatkan performa sistem. Index yang digunakan adalah sebagai berikut:

a). Staf

CREATE UNIQUE INDEX NIPInd ON Staf (NIP) CREATE INDEX NmStafInd ON Staf (Nama_staf) b) Telepon_staf

CREATE UNIQUE INDEX TelpInd ON Telepon_staf (Telepon) c). Handphone_staf

CREATE UNIQUE INDEX HpInd ON Handphone_staf (Handphone) d). Supplier

CREATE UNIQUE INDEX IdSupInd ON Supplier (Id_supplier) CREATE INDEX NmSupInd ON Supplier (Nama_supplier) e). Telp_supplier

CREATE UNIQUE INDEX TelpInd ON Telp_supplier (Telp) f). Fax_supplier

CREATE UNIQUE INDEX FaxInd ON Fax_suppier (Fax) g). Customer

CREATE UNIQUE INDEX IdCustInd ON Customer (Id_customer) CREATE INDEX NmCustInd ON Customer (Nama_customer) h). Telp_customer

CREATE UNIQUE INDEX TelpInd ON Telp_customer (Telp) i). Handphone_customer

(80)

CREATE UNIQUE INDEX HpInd ON Handphone_customer (Handphone) j). Fax_customer

CREATE UNIQUE INDEX FaxInd ON Fax_customer (Fax) k). Produk

CREATE UNIQUE INDEX IdProdInd ON Produk (Id_produk) CREATE INDEX NmProdInd ON Produk (Nama_produk) l). Packing List

CREATE UNIQUE INDEX NoPLInd ON Packing List (No_PL)

4.1.3.4 Memperkirakan Kebutuhan Kapasitas Penyimpanan

Tujuan dari langkah ini adalah untuk menghitung kapasitas penyimpanan yang dibutuhkan oleh basisdata. Perkiraan kapasitas setiap tabel adalah sebagai berikut :

Tabel 4.9 Staff

Field Tipe Ukuran

NIP Varchar 5 Nama_staff Varchar 30 Posisi Varchar 15 Alamat Varchar 50 Sex Varchar 1 Komisi Integer 4 Bonus Integer 4 Gaji_pokok Integer 4

(81)

Tgl_mulai_kerja Date 8 Kapasitas dari tabel staff adalah 121 byte

Total staff yang sudah ada di perusahaan adalah 30

Total kapasitas penyimpanan tablel ini adalah 121*30 = 3630 byte

Tabel 4.10 Supplier

Field Tipe Ukuran

Id_Supplier Varchar 5

Nama_Supplier Varchar 30

Alamat Varchar 50

E-mail Varchar 20

Kapasitas dari table supplier adalah 105 byte. Total supplier yang sudah ada sekarang adalah 3

Total kapasitas penyimpanan table ini adalah 105*3 = 315 byte

Tabel 4.11 Produk

Field Tipe Ukuran

Id_Produk Varchar 7

Nama_Produk Varchar 20

Warna Varchar 10

Harga_satuan Integer 4

Stok Integer 4

(82)

Total produk yang ada sekarang adalah 15

Total kapasitas penyimpanan tabel ini adalah 675 byte

Tabel 4.12 Customer

Field Tipe Ukuran

Id_Customer Varchar 5

Nama_Customer Varchar 15

Alamat Varchar 30

Kapasitas dari tabel customer adalah 50 byte Diperkirakan dalam satu hari ada 5 customer baru

Dalam satu tahun pertumbuhan tabel ini adalah 50*5*26*12 = 78000 byte

Tabel 4.13 Packing_List

Field Tipe Ukuran

No_PL Integer 4

Tgl_PL Date 8

No_SC Integer 4

No_CI Integer 4

Keterangan Produk Varchar 50

Kapasitas dari tabel packing_list adalah 70 byte

Diperkirakan dalam satu tahun ada 4 packing list pembelian barang Dalam satu tahun pertumbuhan tabel ini adlaah 70*4 = 280byte

(83)

Tabel 4.14 Commercial Invoice

Field Tipe Ukuran

No_CI Integer 4 Tgl_CI Date 8 Id_Produk Varchar 8 Rincian_produk Varchar 30 Quantity Integer 4 Harga_satuan Integer 4 Jumlah Integer 4 Total Integer 4

Total kapasitas tabel commercial invoice adalah 66 byte Diperkirakan dalam satu hari terjadi 5 transaksi

Dalam satu tahun perkembangan tabel ini adalah 66*5*26*12 = 102960 byte atau 102.96Kbyte

Tabel 4.15 Surat Pesanan

Field Tipe Ukuran

No_SP Integer 4

Tgl_SP Date 8

Nama_customer Varchar 15

Alamat Varchar 30

(84)

Id_produk Varchar 7 Warna Varchar 10 Quantity Integer 4 Perlengkapan_tambahan Varchar 20 Harga_satuan Integer 4 Total Integer 4 Uang_muka Integer 4 Sisa Integer 4

Total kapasitas tabel curat pesanan adalah 118 byte Diperkirakan dalam satu hari terjadi 5 transaksi

Dalam satu tahun perkembangan tabel ini adalah 118*5*26*12 = 184080 byte atau 184.08 Kbyte

Tabel 4.16 Bill of Lading

Field Tipe Ukuran

No_BL Integer 4

Tgl_BL Date 8

Keterangan Produk Varchar 50

Total kapasitas tabel bill of lading adalah 62 byte

Diperkirakan dalam satu tahun ada 4 bill of lading pembelian barang Dalam satu tahun pertumbuhan tabel ini adalah 62*4 = 248 byte

(85)

Tabel 4.17 Sales Contract

Field Tipe Ukuran

No_SC Integer 4 Tgl_SC Date 8 Id_Produk Varchar 7 Quantity Integer 4 Harga_satuan Integer 4 Jumlah Integer 4 Total Integer 4

Total kapasitas tabel sales contract adalah 35 byte Diperkirakan dalam satu hari terjadi 5 transaksi

Dalam satu tahun pertumbuhan tabel ini adalah 54600 byte atau 54.6 Kbyte

Tabel 4.18 Delivery Order Pembelian

Field Tipe Ukuran

No_Pengiriman Integer 4 Tanggal Date 8 No_SC Integer 4 Id_Produk Varchar 7 Nama_produk Varchar 20 Quantity Integer 4 Harga_satuan Integer 4 Jumlah Integer 4

(86)

Total Integer 4 Total kapasitas tabel delivery order pembelian adalah 59 byte

Diperkirakan dalam satu tahun ada 4 kali pembelian barang Dalam satu tahun pertumbuhan tabel ini adalah 59*4 = 236 byte

Tabel 4.19 Delivery Order Penjualan

Field Tipe Ukuran

No_Pengiriman Integer 4 Tanggal Date 8 No_SP Integer 4 Id_Produk Varchar 7 Nama_produk Varchar 20 Quantity Integer 4 Harga_satuan Integer 4 Jumlah Integer 4 Total Integer 4

Total kapasitas tabel delivery order penjualan adalah 59 byte Diperkirakan dalam satu hari ada 5 kali transaksi

Dalam satu tahun pertumbuhan tabel ini adalah 59*5*26*12 = 92040 byte atau 92.04 Kbyte

(87)

Tabel 4.20 SC Payment

Field Tipe Ukuran

No_SCPayment Integer 4

Tanggal Date 8

No_Pengiriman Integer 4

NIP Varchar 5

Jumlah Integer 4

Total kapasitas tabel SC Payment adalah 25 byte Diperkirakan dalam satu hari ada 5 kali transaksi

Dalam satu tahun pertumbuhan tabel ini adalah 25*5*26*12 = 39000 byte atau 39 Kbyte

Tabel 4.21 SP Payment

Field Tipe Ukuran

No_SPPayement Integer 4

Tanggal Date 8

Id_Customer Varchar 5

Nama_Customer Varchar 15

Jumlah Integer 4

Total kapasitas tabel SP Payment adalah 36 byte

Diperkirakan dalam satu tahun ada 4 kali transaksi pembelian Dalam satu tahun pertumbuhan tabel ini adalah 36*4 = 144 byte

(88)

Tabel 4.22 Telepon_Staff

Field Tipe Ukuran

Telepon Integer 4

NIP varchar 5

Total kapasitas tabel telepon_staff adalah 9 byte

Jumlah karyawan yang sudah ada di perusahaan adalah 30 orang Total kapasitas tabel ini adalah 30*9 = 270 byte

Tabel 4.23 Handphone Staff

Field Tipe Ukuran

Handphone Integer 4

NIP Varchar 5

Total kapasitas tabel telepon_staff adalah 9 byte

Jumlah karyawan yang sudah ada di perusahaan adalah 30 orang Total kapasitas tabel ini adalah 30*9 = 270 byte

(89)

Tabel 4.24 Telp_supplier

Field Tipe Ukuran

Telepon Integer 4

Id_Supplier Varchar 5

Total kapasitas tabel telepon_staff adalah 9 byte

Jumlah karyawan yang sudah ada di perusahaan adalah 5 orang Total kapasitas tabel ini adalah 5*9 = 45 byte

Tabel 4.25 Fax_supplier

Field Tipe Ukuran

Fax Integer 4

Id_Supplier Varchar 5

Total kapasitas tabel telepon_staff adalah 9 byte

Jumlah karyawan yang sudah ada di perusahaan adalah 5 orang Total kapasitas tabel ini adalah 5*9 = 45 byte

(90)

Tabel 4.26 Telp_Customer

Field Tipe Ukuran

Telepon Integer 4

Id_Customer Varchar 5

Total kapasitas tabel telepon_staff adalah 9 byte Diperkirakan dalam satu hari ada 5 customer baru

Dalam satu tahun pertumbuhan tabel ini adalah 9*5*26*12 = 14040 byte atau 14.04 Kbyte

Tabel 4.27 Handphone_customer

Field Tipe Ukuran

Handphone Integer 4

Id_Customer Varchar 5

Total kapasitas tabel telepon_staff adalah 9 byte Diperkirakan dalam satu hari ada 5 customer baru

Dalam satu tahun pertumbuhan tabel ini adalah 9*5*26*12 = 14040 byte atau 14.04 Kbyte

(91)

Tabel 4.28 Fax_customer

Field Tipe Ukuran

Fax Integer 4

Id_Customer Varchar 5

Total kapasitas tabel telepon_staff adalah 9 byte Diperkirakan dalam satu hari ada 5 customer baru

Dalam satu tahun pertumbuhan tabel ini adalah 9*5*26*12 = 14040 byte atau 14.04 Kbyte

Tabel 4.29 Delivery order penjualan detil

Field Tipe Ukuran

No_Pengiriman Integer 4 Id_Produk Varchar 5 Satuan Integer 4 Harga_Satuan Integer 4 Quantity Integer 4 Jumlah Integer 4

Total kapasitas tabel delivery order penjualan detil adalah 25 byte Diperkirakan dalam satu hari ada 5 transaksi

Dalam satu tahun perkembangan tabel ini adalah 25*5*26*12 = 39000 byte atau 39 Kbyte

(92)

Tabel 4.30 Delivery Order Pembelian detil

Field Tipe Ukuran

No_Pengiriman Integer 4 Id_Produk Varchar 5 Satuan Integer 4 Harga_Satuan Integer 4 Quantity Integer 4 Jumlah Integer 4

Total kapasitas tabel delivery order penjualan detil adalah 25 byte Diperkirakan dalam satu tahun ada 4 kali transaksi pembelian Dalam satu tahun perkembangan tabel ini adalah 25*4 = 125 byte

(93)

Tabel 4.31 Estimasi disk space

Nama Tabel Kapasitas yang dibutuhkan dalam 1 tahun

Staff 3630 byte

Supplier 315 byte

Produk 675 byte

Customer 78000 byte

Packing List 280 byte Commercial Invoice 102960 byte Surat Pesanan 184080 byte Bill of Lading 248 byte Sales Contract 54600 byte Delivery order Pembelian 236 byte Delivery order Penjualan 92040 byte SC Payment 39000 byte SP Payment 144 byte Telepon_staff 270 byte Handphone_staff 270 byte Telp_supplier 45 byte Fax_supplier 45 byte Telp_Customer 14040 byte Handphone_Customer 14040 byte

Gambar

Tabel 4.3 Identifikasi dan Asosiasi Atribut suatu Entitas
Gambar 4.3 Model Konseptual Lokal dengan Transaksi User
Gambar 4.19 Validasi Relasi dengan Normalisasi  Staf                            (primary key)
Gambar 4.20 Data Model Lokal Logikal
+7

Referensi

Dokumen terkait

membaca puisi dengan lafal, intonasi, dan ekspresi yang tepat. Namun, fakta dilapangan belum menunjukkan bahwa siswa mampu membaca puisi dengan lafal, intonasi, dan

30 Tahun 1999 tentang Arbitrase dan APS tidak mengandung sanksi apapun apabila tidak dipenuhi, tidak merupakan syarat pembatalan putusan arbitrase atau tidak

Tujuan yang ingin dicapai dalam proses belajar mengajar harus menjadi perhatian utama bagi seorang guru dalam menentukan metode apa yang dipakai (serasi),

Berdasarkan gambar 6 diketahui selama masa penyimpanan, telur mengalami penyusutan walaupun pada awal penyimpanan yaitu 7 hari terjadi kenaikan berat telur dan

Penurunan ini disebabkan oleh penurunan luas panen sebesar -29 hektar (-9,57 persen) meskipun produktivitas naik sebesar 0,06 ton per hektar (1,39 persen) dibandingkan tahun

- Dengan mengetahui Consumer Motivation pada wanita kerja usia 25-40 tahun dalam menggunakan produk busana kerja merek ‘X’, perusahaan dapat menyesuaikan strategi

Berdasarkan hasil analisis yang telah dilakukan maka dapat diambil kesimpulan bahwa model pemberdayaan masyarakat pada pengelolaan sampah di Kelurahan Kutisari berbeda-beda

Dengan menyebut nama Allah Yang Maha Pengasih lagi Maha Penyayang hanya dengan ridho dan rahmat-Nyalah peneliti dapat menyelesaikan penelitian dengan judul Peningkatan