• Tidak ada hasil yang ditemukan

BAB 3 ANALISIS DAN PERANCANGAN SISTEM BASIS DATA. produk Sanken yang diproduksi oleh PT. Sanken Argadwija.

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 3 ANALISIS DAN PERANCANGAN SISTEM BASIS DATA. produk Sanken yang diproduksi oleh PT. Sanken Argadwija."

Copied!
263
0
0

Teks penuh

(1)

66

ANALISIS DAN PERANCANGAN SISTEM BASIS DATA

3.1 Riwayat Perusahaan

PT. Istana Argo Kencana merupakan perusahaan perdagangan (Trading Company) yang menjadi distributor sekaligus agen tunggal pemegang merk dari produk Sanken yang diproduksi oleh PT. Sanken Argadwija.

PT. Istana Argo Kencana yang berlokasi di Jln. Pluit Raya No. 19, Jakarta Barat didirikan pada akhir tahun 1997 yang dikepalai oleh 3 orang yang sekaligus pemegang saham terbesar, yaitu Mr. Markus Seah, Bp. Leo Zahar, dan Ibu Magdalena Ongko Wijaya. Saat itu, mereka membawahi sekitar 100 orang karyawan.

Sebagai pemain baru dalam memasarkan produknya waktu itu, PT. Istana Argo Kencana harus bersaing dengan pemain-pemain lama yang telah lama menguasai pasar, sebut saja merk Toshiba atau National yang sudah tidak asing lagi di telinga orang Indonesia.

Pada awalnya untuk membuat produk Sanken, PT. Istana Argo Kencana menjalin hubungan dengan beberapa manufaktur baik yang ada di dalam negeri maupun di luar negeri dan bila selesai, produk tersebut akan dikirim ke PT. Sanken Argadwija yang berada di Curug, Tangerang untuk registrasi dan pelabelan, baru selanjutnya dipasarkan oleh PT. Istana Argo Kencana.

Produk yang dipasarkan terbagi atas:

1. Produk Home Appliance dan Small Home Appliance seperti kulkas, mesin cuci, kompor gas, juicer, rice cooker, air conditioner, dan sebagainya.

(2)

2. Produk Audio Video seperti TV, VCD dan home theater.

Dari produk-produk yang dipasarkan tersebut ada yang masih belum dapat diproduksi di dalam negeri dan masih harus diimpor dalam bentuk Completely Built Up (CBU) dari Taiwan dan Malaysia, yaitu terdiri dari:

1. Lemari es besar 3 pintu 2. Mesin cuci Full Automatic 3. Small Appliances

4. Air Conditioner dengan kompresor dari Mitsubishi

PT. Istana Argo Kencana yang saat ini memiliki jumlah karyawan sekitar 256 orang yang berada di kantor pusat dan 14 kantor cabang yang tersebar di wilayah kota besar di Indonesia, yaitu: Tangerang, Bandung, Malang, Palembang, Samarinda, Banjarmasin, Ujung Pandang, Bali, Yogyakarta, Semarang, Surabaya, dan Lampung.

(3)

3.2 Struktur Organisasi Perusahaan dan Pembagian Tugas, Tanggung Jawab, Wewenang dan hal-hal lain yang menyangkut perusahaan

Berikut ini adalah struktur organisasi PT. Istana Argo Kencana.

(4)

Berdasarkan struktur organisasi yang ada, maka pembagian tugas, wewenang, dan tanggung jawab perusahaan adalah sebagai berikut:

1. BOD (Board of Directors)

Tugas dari BOD (Board of Directors) adalah menerima semua laporan penjualan yang dilakukan Perusahaan.

2. Sales & Marketing

Tugas dari bagian Sales & Marketing adalah membuat konsep-konsep promosi yang dapat mendukung penjualan produk.

3. Customer Service

Tugas dari bagian Customer Service adalah menangani dan melayani kebutuhan customer dengan baik.

4. IT

Tugas dari bagian IT adalah menjaga sistem tetap berjalan, melakukan pengembangan sistem baru, dan juga mengatasi permasalahan yang ada pada sistem.

5. Admin

Tugas dari bagian Admin adalah melakukan input data yang berkaitan terhadap sistem informasi di perusahaan dan melakukan update atau delete terhadap data yang bermasalah.

6. Finance

Tugas dari bagian Finance adalah membuat kas bank dan laporan keuangan perusahaan.

(5)

7. Sales Admin

Tugas dari Sales Admin adalah melakukan input data penjualan yang diberikan oleh sales dan retur barang.

8. Inventory Control

Tugas dari Inventory Control adalah memeriksa apakah barang yang keluar dari gudang telah sesuai dengan barang yang diterima oleh customer.

9. Acccount Receivable

Tugas dari Account Receivable adalah membuat faktur berdasarkan barang yang telah dipesan oleh customer dan juga memastikan customer membayar dengan jumlah yang sesuai dan tepat pada waktunya.

10. Internal Audit

Tugas dari Internal Audit adalah melakukan pemeriksaan terhadap keberadaan barang baik secara fisik maupun data dan juga mempelajari alur keberadaan barang untuk barang yang hilang.

11. Gudang

Tugas dari bagian Gudang adalah menyiapkan barang pesanan sesuai delivery order, membuat surat jalan sesuai dengan barang keluar, dan menerima barang yang masuk ke gudang.

(6)

3.3 Tata Laksana/Prosedur yang Sedang Berjalan

(7)

Proses pemesanan dimulai dari Customer memesan barang kepada Sales perusahaan. Sales kemudian membuat Sales Order dua rangkap. Satu lembar diberikan kepada Sales Admin secara langsung, melalui fax, atau telepon. Sales Admin membuat Delivery Order dua rangkap, selembar diberikan kepada bagian Inventory Control untuk diperiksa apakah stok barang yang dipesan mencukupi. Inventory Control mencetak stok barang yang ada di gudang, dan memberikan kembali ke Sales Admin. Sales Admin membandingkan ketersediaan barang dengan jumlah pesanan. Jika pesanan terpenuhi, maka Delivery Order direvisi bila perlu dan diinput ke dalam basis data, serta diberikan kepada bagian Kepala Gudang. Jika tidak terpenuhi, maka Sales Admin menunda pesanan, membuat purchase order ke pabrik dan transaksi berakhir.

(8)
(9)

Proses Pengiriman dimulai dari Kepala Gudang menerima kertas Delivery Order. Jika barang tidak dikirim saat itu, maka barang yang dipesan disimpan dahulu. Jika barang dikirim saat itu juga, Kepala Gudang menyiapkan barang-barang pesanan, lalu memasukkan data barang keluar ke sistem. Dari data barang keluar di basis data, Admin Gudang membuat Surat Jalan dua rangkap lalu diberikan kembali ke Kepala Gudang untuk ditandatangani. Admin Gudang juga meng-input Surat Jalan tersebut ke basis data. Surat Delivery Order diberikan ke bagian Inventory Control dan Surat Jalan diberikan ke Kurir untuk diantar.

(10)

Gambar 3.4 Proses Pengiriman (lanjutan) Sistem yang Sedang Berjalan

(11)

Kurir mengantarkan barang beserta Surat Jalan kepada Customer. Customer mengecek barang kiriman. Jika ada yang kondisinya kurang bagus, barang tersebut diretur. Lalu Customer menandatangani Surat Jalan dan memberikannya kembali kepada Kurir. Surat Jalan kemudian diberikan ke bagian Inventory Control. Bagian Inventory Control memeriksa apakah pesanan yang tertulis di Delivery Order sama dengan barang yang diantar. Jika sama, kurangi stok barang di basis data. Jika berbeda, setelah mengurangi stok barang, Inventory Control mengubah data pada surat Delivery Order, lalu memberikannya kepada Sales Admin untuk di-update di basis data, serta mendata barang retur.

(12)

Gambar 3.5 Proses Barang Masuk Sistem yang Sedang Berjalan

Pada proses ketersediaan barang, barang yang dikirim oleh kurir dari pabrik akan diterima oleh Kepala Gudang. Kepala Gudang akan memeriksa kualitas dari barang tersebut. Apabila barang tersebut kurang bagus, maka barang tersebut akan dikembalikan ke pabrik. Sebaliknya, barang yang bagus akan

(13)

dimasukkan ke dalam gudang. Kemudian, kepala Gudang menandatangani Surat Jalan yang diberikan dan meng-input barang yang masuk tersebut ke dalam basis data.

(14)
(15)

Pada proses penjualan, bagian Account Receiveable membuat faktur tiga rangkap lalu meng-input faktur tersebut ke basis data. Faktur diberikan kepada Customer sebagai tanda penagihan. Customer dapat membayar secara cash atau transfer. Jika pembayaran sudah benar, maka uang dan faktur diberikan ke bagian Finance untuk dibukukan. Pemasukan perusahaan dimasukkan ke dalam basis data kasbank. Sampai tahap ini, proses transaksi selesai.

(16)

3.4 Data Flow Diagram 3.4.1 Diagram Context

Gambar 3.7 DFD level Context Sistem yang Sedang Berjalan

(17)

3.4.2 Diagram level 0

(18)

3.5 Permasalahan yang Dihadapi

Setelah melihat sistem yang ada dan data-data yang didapat dari hasil wawancara, maka didapatkan beberapa masalah yang dihadapi PT. Istana Argo Kencana adalah sebagai berikut:

1. Basis data pada sistem pemesanan, pengiriman, dan penjualan belum terintegrasi, sehingga aliran data pada perusahaan menjadi lambat, barang tidak tersedia saat ada pemesanan, dan sulitnya komunikasi informasi antar unit.

2. Belum online-nya sistem yang sedang berjalan antar cabang, sehingga staff IT harus mengirim data setiap dua minggu sekali secara rutin ke pusat untuk meng-update data pemesanan, pengiriman, dan penjualan pada setiap cabang tersebut.

3. Pada proses keluar-masuknya barang, masih menggunakan proses input data secara manual sehingga banyak terjadi kesalahan pada pendataan barang, jumlah barang yang tidak seusai, dan lambatnya aliran informasi mengenai barang.

(19)

3.6 Alternatif Pemecahan Masalah

Alternatif pemecahan untuk permasalahan yang dihadapi adalah:

1. Membuat suatu basis data pemesanan, pengiriman, dan penjualan berbasis web yang dapat mengintegrasikan seluruh informasi-informasi yang berkaitan dengan aktivitas pemesanan, pengiriman, dan penjualan barang. 2. Membuat suatu basis data yang dapat menyimpan informasi pemesanan,

pengiriman, dan penjualan dari setiap cabang.

3. Menggunakan barcode pada proses keluar-masuknya barang sehingga mengurangi kesalahan pendataan barang.

(20)

3.7 Usulan Prosedur yang Baru

Gambar 3.9 Proses Pemesanan Sistem yang Diusulkan

Proses pemesanan dimulai dari Customer memesan barang kepada Sales perusahaan. Sales kemudian membuat Sales Order dua rangkap. Satu lembar

(21)

diberikan kepada Sales Admin secara langsung, melalui fax, atau telepon. Sales Admin membandingkan ketersediaan barang dengan jumlah pesanan. Jika pesanan terpenuhi, maka Sales Admin membuat Delivery Order dan menyimpannya ke dalam basis data, serta diberikan kepada bagian Kepala Gudang. Jika tidak terpenuhi, maka Sales Admin menunda pesanan, membuat purchase order ke pabrik dan transaksi berakhir.

(22)
(23)

Proses Pengiriman dimulai dari Kepala Gudang melihat Delivery Order yang baru pada sistem, lalu mencetaknya. Kepala Gudang menyiapkan pesanan, scan barang keluar, dan menyimpan data ke basis data. Stok barang di gudang akan otomatis berkurang. Jika barang sudah saatnya untuk dikirim, Admin Gudang membuat Surat Jalan baru dan menyimpannya ke dalam basis data, lalu dicetak. Surat Jalan ditandatangani oleh Kepala Gudang, lalu diberikan ke Kurir.

(24)

Gambar 3.11 Proses Pengiriman (Lanjutan) Sistem yang Diusulkan

Kurir mengantarkan barang beserta Surat Jalan kepada Customer. Customer mengecek barang kiriman. Jika ada yang kondisinya kurang bagus, barang tersebut diretur. Lalu Customer menandatangani Surat Jalan dan memberikannya kembali kepada Kurir. Surat Jalan kemudian diberikan ke bagian Inventory Control. Bagian Inventory Control memeriksa apakah pesanan yang tertulis di Delivery Order sama dengan barang yang diantar. Jika berbeda,

(25)

Inventory Control mengubah data pada Delivery Order di basis data, lalu memberikan informasi retur kepada Sales Admin. Sales Admin kemudian memasukkan data retur ke basis data.

(26)

Pada proses ketersediaan barang, barang yang dikirim oleh kurir dari pabrik akan diterima oleh Kepala Gudang. Kepala Gudang akan memeriksa kualitas dari barang tersebut. Apabila barang tersebut kurang bagus, maka barang tersebut akan dikembalikan ke pabrik. Sebaliknya, barang yang bagus akan dimasukkan ke dalam gudang. Kemudian, kepala Gudang menandatangani Surat Jalan yang diberikan dan meng-input barang yang masuk tersebut ke dalam basis data.

(27)

Gambar 3.13 Proses Penjualan Sistem yang Diusulkan

Pada proses penjualan, bagian Account Receiveable membuat faktur dan menyimpannya ke basis data, lalu mencetaknya sebanyak dua rangkap. Faktur

(28)

diberikan kepada Customer sebagai tanda penagihan. Customer dapat membayar secara cash atau transfer. Jika pembayaran sudah benar, maka uang dan faktur diberikan ke bagian Finance untuk dibukukan. Pemasukan perusahaan dimasukkan ke dalam basis data kas bank. Sampai tahap ini, proses transaksi selesai.

(29)

3.8 Data Flow Diagram untuk Prosedur yang Baru 3.8.1 Diagram Context

(30)

3.8.2 Diagram Level 0

(31)

3.9 Perancangan Basis Data Konseptual 3.9.1 Mengidentifikasi Tipe Entitas

Entitas yang didapat dari DFD adalah entitas Gudang, Orders, Customer, Kendaraan, Barang, Retur, BarangMasuk, BarangKeluar, Faktur, SuratJalan, dan KasBank.

Entitas lain yang diperlukan adalah:

1. Entitas Cabang, untuk menjelaskan entitas Gudang

2. Entitas Staff, untuk menjelaskan aktor dari setiap kegiatan 3. Entitas Divisi, untuk menjelaskan entitas Staff

4. Entitas Users, untuk menjelaskan pengguna system

5. Entitas JenisKendaraan, untuk menjelaskan entitas Kendaraan 6. Entitas JenisBarang, untuk menjelaskan entitas Barang

Tabel 3.1 Identifikasi Tipe Entitas

Nama Entitas Deskripsi Alias Kejadian (Occurrence) Cabang Semua cabang yang

dimiliki perusahaan.

- Setiap cabang

memiliki gudang dan staff.

Divisi Semua divisi yang ada di perusahaan.

- Setiap divisi

memiliki staff. Staff Semua staff yang Karyawan Setiap staff

(32)

me-bekerja di perusahaan. nangani customer, order, barang ma-suk, barang keluar, surat jalan, retur, faktur, dan kas bank. Setiap staff memiliki nol atau satu user.

Users Semua pengguna

sistem basis data

User Setiap user dimiliki oleh satu staff

Customer Semua pembeli barang.

Pelanggan Setiap customer dapat melakukan order.

Setiap customer memiliki staff yang melayani order. Gudang Semua gudang yang

digunakan untuk me-nyimpan barang.

- Setiap gudang

menjelaskan barang masuk dan barang keluar. Setiap gudang memiliki barang.

(33)

untuk mengantar barang.

menyertai nol atau banyak surat jalan. JenisKendaraan Semua jenis

kendara-an ykendara-ang dimiliki ken-daraan.

- Setiap jenis ken-daraan menjelaskan satu atau banyak kendaraan.

Barang Semua barang jadi yang berasal dari pabrik.

Produk Setiap barang dapat di order. Setiap barang menjelaskan barang masuk dan barang keluar.

JenisBarang Semua jenis barang yang dimiliki barang

- Setiap jenis barang menjelaskan satu atau banyak barang.

Orders Semua pemesanan

barang oleh customer

Pemesanan Setiap order memi-liki surat jalan, faktur, dan kas bank. Setiap order membuktikan retur. BarangMasuk Semua barang yang

masuk ke gudang.

- Setiap barang

masuk dijelaskan oleh gudang dan barang.

(34)

BarangKeluar Semua barang yang keluar dari gudang.

- Setiap barang keluar mempengaruhi surat jalan.

SuratJalan Sebagai surat ijin untuk mengeluarkan barang dari gudang.

- Setiap surat jalan dimiliki order dan dipengaruhi oleh barang keluar.

Retur Semua barang yang dikembalikan oleh customer.

- Setiap retur mem-pengaruhi barang.

Faktur Sebagai surat tagihan kepada customer untuk barang yang

telah dikirim kepadanya.

- Setiap faktur

dimiliki order.

KasBank Sebagai laporan

pemasukan kas bagi perusahaan.

- Setiap kas bank

(35)

3.9.2 Mengidentifikasi Tipe Relationship

a. Membuat Entity Relationship (ER) Diagram

(36)

b. Tipe Relationship

Tabel 3.2 Identifikasi Tipe Relationship Nama Entitas

Multi-plicity Relationship Multi-plicity Nama Entitas Staff 1..1 1..1 1..* 1..1 1..1 1..1 1..1 1..1 1..1 melayani memiliki menangani membuat menangani menangani mendata mendata membuat 0..* 0..1 0..* 0..* 0..* 0..* 0..* 0,,* 0..* Customer Users Orders SuratJalan Faktur Retur BarangMasuk BarangKeluar KasBank

Divisi 1..1 memiliki 1..* Staff

Customer 1..1 melakukan 1..* Orders

Barang 1..* menjelaskan 1..* BarangMasuk

1..* menjelaskan 1..* BarangKeluar 1..* melengkapi 0..* Orders Gudang 1..1 1..1 1..1 1..1 menjelaskan menjelaskan memiliki menjelaskan 1..* 1..* 1..* 1..* BarangMasuk BarangKeluar Kendaraan Orders

(37)

1..* memiliki 1..* Barang Orders 1..1 1..1 1..1 1..1 memiliki memiliki memiliki membuktikan 1..1 1..1 1..1 0..1 KasBank BarangKeluar Faktur Retur

BarangKeluar 1..1 mempengaruhi 1..1 SuratJalan Kendaraan 1..1 melengkapi 0..* SuratJalan Cabang 1..1 1..1 memiliki menjelaskan 1..* 1..* Staff Gudang JenisBarang 1..1 menjelaskan 1..* Barang JenisKendaraan 1..1 menjelaskan 1..* Kendaraan

(38)

3.9.3 Mengidentifikasi dan Mengasosiasikan Atribut dengan Tipe Entitas atau Relationship

Tabel 3.3 Identifikasi Atribut dengan Tipe Entitas Nama

Entitas

Atribut Deskripsi Tipe Data & Panjang

Null Multi-valued Cabang kdCabang kode cabang char(3) tidak tidak

namaCabang nama cabang varchar(40) tidak tidak alamatCabang alamat cabang varchar(50) tidak tidak

kdPosCabang kode pos

cabang

char(5) tidak tidak

kotaCabang kota cabang varchar(15) tidak tidak

noTelpCabang nomor telepon

cabang

varchar(12) tidak ya

noFaxCabang nomor fax

cabang

varchar(12) tidak ya

emailCabang email cabang varchar(30) tidak tidak

noRekCabang nomor

rekening cabang

varchar(15) tidak ya

namaBank nama bank varchar(30) tidak ya Divisi kdDivisi kode divisi char(2) tidak tidak namaDivisi nama divisi varchar(20) tidak tidak

(39)

Staff kdStaff kode staff char(5) tidak tidak namaStaff nama staff varchar(40) tidak tidak

alamatStaff alamat staff varchar(50) tidak tidak kdPosStaff kode pos staff char(5) tidak tidak kotaStaff kota staff varchar(15) tidak tidak

noTelpStaff telepon staff varchar(15) tidak ya

tanggalLahir tanggal lahir

staff

date tidak tidak

emailStaff email staff varchar(30) ya tidak

jenisKelamin jenis kelamin

staff

character (L atau P)

tidak tidak

jabatan jabatan staff varchar(20) tidak tidak tanggalMulai

Kerja

tanggal staff mulai bekerja

date tidak tidak

Users username username varchar(10) tidak tidak password password varchar(20) tidak tidak privilege hak akses varchar(10) tidak tidak

lastLogin waktu terakhir

login

datetime tidak tidak

Customer kdCust kode customer char(5) tidak tidak

namaCust nama customer varchar(40) tidak tidak

alamatCust alamat

customer

(40)

kdPosCust kode pos customer

char(5) tidak tidak

kotaCust kota customer varchar(15) tidak tidak

noTelpCust nomor telepon

customer

varchar(12) tidak ya

noFaxCust nomor fax

customer

varchar(12) tidak ya

emailCust email customer varchar(30) ya tidak

noRekCust nomor

rekening customer

varchar(15) tidak ya

namaBank nama bank varchar(30) tidak ya Gudang kdGudang kode gudang char(3) tidak tidak namaGudang nama gudang varchar(30) tidak tidak alamatGudang alamat gudang varchar(50) tidak tidak

kdPosGudang kode pos

gudang

char(5) tidak tidak

kotaGudang kota gudang varchar(15) tidak tidak Kendaraan kdKend kode

kendaraan

char(4) tidak tidak

noPolisi nomor polisi varchar(10) tidak tidak JenisKenda

raan

kdJenisKend kode jenis kendaraan

(41)

jenisKend jenis kendaraan

varchar(20) tidak tidak

Barang kdBarang kode barang char(8) tidak tidak

namaBarang nama barang varchar(50) tidak tidak

qtyBarang jumlah barang int tidak tidak

harga harga barang int tidak tidak

JenisBarang kdJenisBarang jenis barang varchar(3) tidak tidak

deskripsi deskripsi

barang

varchar(80) tidak tidak

Orders kdDO kode delivery

order

char(10) tidak tidak

tanggalKirimDO tanggal kirim

delivery order

date tidak tidak

totalHarga total harga

delivery order

int tidak tidak

qtyDO quantity

barang pada delivery order

int tidak ya

tanggalInput tanggal input

delivery order

datetime tidak tidak

tanggalPrint tanggal cetak delivery order

datetime tidak tidak

(42)

mencetak delivery order kdStaffInput kode staff yang

meng-input delivery order

varchar(5) tidak tidak

BarangMa suk

kdBarangMasuk kode barang masuk

char(12) tidak tidak

tanggalMasuk tanggal barang

masuk

datetime tidak tidak

qtyBarang quantity

barang masuk

int tidak tidak

BarangKelu ar

kdBarangKeluar kode barang keluar

char(12) tidak tidak

tanggalKeluar tanggal barang keluar

datetime tidak tidak

qtyBarang quantity

barang keluar

int tidak tidak

SuratJalan kdSuratJalan kode surat jalan

char(12) tidak tidak

tglSuratJalan tanggal

pembuatan surat jalan

date tidak tidak

(43)

tanggalRetur tanggal retur date tidak tidak

qtyRetur quantity

barang retur

int tidak tidak

keteranganRetur keterangan

retur

varchar(80) tidak tidak

Faktur kdFaktur kode faktur char(12) tidak tidak

tanggalFaktur tanggal

pembuatan faktur

date tidak tidak

jatuhTempo tanggal jatuh

tempo

date tidak tidak

KasBank kdKasBank kode kas bank char(12) tidak tidak tanggalPembaya

ran

tanggal pembayaran

date tidak tidak

totalPembayaran total

pembayaran

(44)

3.9.4 Menentukan Domain Atribut

Tabel 3.4 Identifikasi Domain dari Tiap Atribut

Nama Entitas Atribut Domain

Cabang kdCabang 3 karakter dengan format xxx, dimana tiga karakter ini merupakan nomor urut cabang berupa angka.

namaCabang Variasi karakter dengan maksimal jumlah 40 karakter.

alamatCabang Variasi karakter dengan maksimal jumlah 50 karakter.

kdPosCabang 5 karakter berupa angka.

kotaCabang Variasi karakter dengan maksimal jumlah 15 karakter.

noTelpCabang Variasi angka dengan maksimal jumlah 12 digit.

noFaxCabang Variasi angka dengan maksimal jumlah 12 digit.

emailCabang Variasi karakter dengan maksimal jumlah 30 karakter, harus mengandung karakter ‘@’ dan ‘.’, dan karakter ‘@’ dan ‘.’ tidak boleh bersebelahan.

(45)

digit. namaBank Variasi karakter dengan maksimal jumlah

30 karakter.

Divisi kdDivisi 2 karakter dengan format xx, dimana dua karakter ini merupakan nomor urut divisi berupa angka.

namaDivisi Variasi karakter dengan maksimal jumlah 20 karakter.

Staff kdStaff 5 karakter dengan format aaxxx, dimana dua karakter awal berupa huruf dan tiga karakter selanjutnya merupakan nomor urut staff berupa angka.

namaStaff Variasi karakter dengan maksimal jumlah 40 karakter.

alamatStaff Variasi karakter dengan maksimal jumlah 50 karakter.

kdPosStaff 5 karakter berupa angka.

kotaStaff Variasi karakter dengan maksimal jumlah 15 karakter.

noTelpStaff Variasi angka dengan maksimal jumlah 15 digit.

tanggalLahir Tanggal dengan format dd-mm-yyyy. emailStaff Variasi karakter dengan maksimal jumlah

(46)

30 karakter, harus mengandung karakter ‘@’ dan ‘.’, dan karakter ‘@’ dan ‘.’ tidak boleh bersebelahan.

jenisKelamin Sebuah karakter ‘L’ untuk jenis kelamin laki-laki atau ‘P’ untuk jenis kelamin perempuan.

jabatan Variasi karakter dengan maksimal jumlah 20 karakter.

tanggalMulaiKerja Tanggal dengan format dd-mm-yyyy. Users username Variasi karakter dengan maksimal jumlah

10 karakter.

password Variasi karakter dengan maksimal jumlah 20 karakter.

privilege Variasi karakter dengan maksimal jumlah 10 karakter.

lastLogin Tanggal dan waktu dengan format dd-mm-yyyy hh:mi:ss

Customer kdCust 5 karakter dengan format xxxxx, dimana lima karakter ini merupakan nomor urut customer berupa angka.

namaCust Variasi karakter dengan maksimal jumlah 40 karakter.

(47)

50 karakter. kdPosCust 5 karakter berupa angka.

kotaCust Variasi karakter dengan maksimal jumlah 15 karakter.

noTelpCust Variasi angka dengan maksimal jumlah 12 digit.

noFaxCust Variasi angka dengan maksimal jumlah 12 angka.

emailCust Variasi karakter dengan maksimal jumlah 30 karakter, harus mengandung karakter ‘@’ dan ‘.’, dan karakter ‘@’ dan ‘.’ tidak boleh bersebelahan.

noRekCust Variasi angka dengan maksimal jumlah 15 digit.

namaBank Variasi karakter dengan maksimal jumlah 30 karakter.

Gudang kdGudang 3 karakter dengan format xxx, dimana tiga karakter ini merupakan nomor urut gudang berupa angka.

namaGudang Variasi karakter dengan maksimal jumlah 30 karakter.

alamatGudang Variasi karakter dengan maksimal jumlah 50 karakter.

(48)

kdPosGudang 5 karakter berupa angka.

kotaGudang Variasi karakter dengan maksimal jumlah 15 karakter.

Kendaraan kdKend 4 karakter dengan format xxxx, dimana empat karakter ini merupakan nomor urut kendaraan berupa angka

noPolisi Variasi karakter dengan maksimal jumlah 10 karakter.

JenisKendaraan kdJenisKend Variasi karakter dengan maksimal jumlah 2 karakter.

jenisKend Variasi karakter dengan maksimal jumlah 20 karakter.

Barang kdBarang 8 karakter dengan format xxxxxxxx.

namaBarang Variasi karakter dengan maksimal jumlah 50 karakter.

qtyBarang Angka non-desimal

harga Angka non-desimal

JenisBarang kdJenisBarang Variasi karakter dengan maksimal jumlah 2 karakter.

deskripsi Variasi karakter dengan maksimal jumlah 80 karakter.

Orders kdDO 10 karakter dengan format DOxxxxaaaa, dimana dua karakter awal harus berupa

(49)

karakter ‘DO’, empat karakter selanjutnya adalah nomor DO yang diinput, dan empat karakter terakhir merupakan nomor urut DO.

tanggalKirimDO Tanggal dengan format dd-mm-yyyy. totalHarga Angka non-desimal

qtyDO Angka non-desimal

tanggalInput Tanggal dan waktu dengan format dd-mm-yyyy hh:mi:ss

tanggalPrint Tanggal dan waktu dengan format dd-mm-yyyy hh:mi:ss

kdStaffPrint 5 karakter dengan format aaxxx, dimana dua karakter awal berupa huruf dan tiga karakter selanjutnya merupakan nomor urut staff berupa angka.

kdStaffInput 5 karakter dengan format aaxxx, dimana dua karakter awal berupa huruf dan tiga karakter selanjutnya merupakan nomor urut staff berupa angka.

BarangMasuk kdBarangMasuk 12 karakter dengan format yyyymmddxxxx, dimana empat karakter awal berupa tahun, dua karakter berikutnya berupa bulan, dua karakter berikutnya

(50)

berupa tanggal, dan empat karakter terakhir merupakan nomor urut barang masuk pada tanggal tersebut.

tanggalMasuk Tanggal dan waktu dengan format dd-mm-yyyy hh:mi:ss.

qtyBarang Angka non-desimal

BarangKeluar kdBarangKeluar 12 karakter dengan format yyyymmddxxxx, dimana empat karakter awal berupa tahun, dua karakter berikutnya berupa bulan, dua karakter berikutnya berupa tanggal, dan empat karakter terakhir merupakan nomor urut barang keluar pada tanggal tersebut.

tanggalKeluar Tanggal dan waktu dengan format dd-mm-yyyy hh:mi:ss.

qtyBarang Angka non-desimal

SuratJalan kdSuratJalan 12 karakter dengan format yyyymmddxxxx, dimana empat karakter awal berupa tahun, dua karakter berikutnya berupa bulan, dua karakter berikutnya berupa tanggal, dan empat karakter terakhir merupakan nomor urut surat jalan pada tanggal tersebut.

(51)

tglSuratJalan Tanggal dengan format dd-mm-yyyy.

Retur kdRetur 12 karakter dengan format

yyyymmddxxxx, dimana empat karakter awal berupa tahun, dua karakter berikutnya berupa bulan, dua karakter berikutnya berupa tanggal, dan empat karakter terakhir merupakan nomor urut retur pada tanggal tersebut.

tanggalRetur Tanggal dengan format dd-mm-yyyy.

qtyRetur Angka non-desimal

keteranganRetur Variasi karakter dengan maksimal jumlah 80 karakter.

Faktur kdFaktur 12 karakter dengan format

yyyymmddxxxx, dimana empat karakter awal berupa tahun, dua karakter berikutnya berupa bulan, dua karakter berikutnya berupa tanggal, dan empat karakter terakhir merupakan nomor urut faktur pada tanggal tersebut.

tanggalFaktur Tanggal dengan format dd-mm-yyyy. jatuhTempo Tanggal dengan format dd-mm-yyyy.

KasBank kdKasBank 12 karakter dengan format

(52)

awal berupa tahun, dua karakter berikutnya berupa bulan, dua karakter berikutnya berupa tanggal, dan empat karakter terakhir merupakan nomor urut kas bank pada tanggal tersebut.

tanggalPembayaran Tanggal dengan format dd-mm-yyyy.

totalPembayaran Angka non-desimal

3.9.5 Menentukan Atribut Candidate, Primary, dan Alternate Key

Tabel 3.5 Identifikasi Candidate dan Primary Key untuk Tiap Entitas

Nama Entitas Candidate Key Primary Key

Cabang kdCabang alamatCabang noTelpCabang noFaxCabang emailCabang noRekCabang kdCabang Divisi kdDivisi namaDivisi kdDivisi Staff kdStaff alamatStaff kdStaff

(53)

noTelpStaff emailStaff

Users username username

Customer kdCust alamatCust noTelpCust noFaxCust emailCust noRekCust kdCust Gudang kdGudang alamatGudang kdGudang Kendaraan kdKend noPolisi kdKend

JenisKendaraan kdJenisKend kdJenisKendaraan

Barang kdBarang kdBarang

Jenisbarang kdJenisBarang kdJenisBarang

Orders kdDO tanggalInput tanggalPrint kdDO BarangMasuk kdBarangMasuk tanggalMasuk kdBarangMasuk

(54)

BarangKeluar kdBarangKeluar tanggalKeluar

kdBarangKeluar

SuratJalan kdSuratJalan kdSuratJalan

Retur kdRetur kdRetur

Faktur kdFaktur kdFaktur

(55)
(56)

3.9.6 Memeriksa Model untuk Redundansi a. Memeriksa Hubungan One to One

Gambar 3.18 Hubungan Staff dengan Users

Entitas Staff dan Users tidak redundan dan keduanya tidak dapat digabungkan menjadi satu entitas, karena tidak semua staff memiliki users.

Gambar 3.19 Hubungan Orders dengan KasBank

Entitas Orders dan KasBank tidak redundan dan keduanya tidak dapat digabungkan menjadi satu entitas, karena merupakan objek yang berbeda.

(57)

Entitas BarangKeluar dan Orders tidak redundan dan keduanya tidak bisa digabungkan menjadi satu entitas, karena merupakan objek yang berbeda.

Gambar 3.21 Hubungan Faktur dengan Orders

Entitas Faktur dan Orders tidak redundan dan keduanya tidak dapat digabungkan menjadi satu entitas karena merupakan objek yang berbeda.

Gambar 3.22 Hubungan Retur dengan Orders

Entitas Retur dan Orders tidak redundan dan keduanya tidak dapat digabungkan menjadi satu entitas karena merupakan objek yang berbeda.

Gambar 3.23 Hubungan BarangKeluar dengan SuratJalan

Entitas BarangKeluar dan SuratJalan tidak redundan dan keduanya tidak dapat digabungkan menjadi satu entitas karena merupakan objek yang berbeda.

(58)

b. Menghilangkan hubungan redundansi

Hubungan antar entitas tidak menunjukkan adanya redudansi.

3.9.7 Memvalidasi Model Konseptual dengan Transaksi Pengguna Tinjauan Sales Admin (SA)

a. Melihat rincian data pesanan yang dilakukan oleh pelanggan tertentu.

b. Melihat rincian data retur yang dilakukan oleh pelanggan tertentu. c. Melihat rincian data retur yang mengacu pada delivery order

tertentu.

d. Melihat daftar customer.

e. Melihat daftar sales yang melayani customer tertentu. f. Melihat daftar gudang yang memiliki barang tertentu. g. Melihat staff yang bertanggung jawab menangani retur. h. Melihat nama barang yang diretur pada tanggal tertentu. i. Melihat Delivery Order berdasarkan gudang tertentu.

Tinjauan Kepala Gudang

j. Melihat informasi pesanan dengan detail barang yang dipesan. k. Melihat staff yang menginput informasi pesanan tertentu. l. Melihat daftar staff yang bekerja di cabang tertentu. m. Melihat barang apa saja yang keluar di gudang tertentu. n. Melihat nama barang yang keluar pada tanggal tertentu.

(59)

o. Melihat staff yang bertanggung jawab dengan barang keluar tertentu.

p. Melihat barang keluar yang sesuai dengan surat jalan tertentu. q. Melihat barang apa saja yang masuk pada tanggal tertentu. r. Melihat barang masuk di gudang tertentu.

s. Melihat staff yang bertanggung jawab dengan barang masuk tertentu.

Tinjauan Admin Gudang

t. Melihat kendaraan yang dicantumkan pada Surat Jalan tertentu. u. Melihat alamat customer pada Delivery Order tertentu.

v. Melihat staff yang bertanggung jawab membuat Surat Jalan. w. Melihat cabang beserta gudang-gudangnya.

x. Melihat surat jalan yang mengacu kepada Delivery Order tertentu. y. Melihat kendaraan yang terdapat pada gudang tertentu.

Tinjauan Inventory Control

z. Melihat stok barang yang dipesan pada Delivery Order oleh customer tertentu.

Tinjauan Account Recieveable

aa. Melihat faktur untuk customer tertentu.

bb. Melihat faktur yang mengacu pada Delivery Order tertentu. cc. Melihat staff yang bertanggung jawab membuat faktur tertentu.

(60)

dd. Melihat jatuh tempo pembayaran seorang customer. ee. Melihat daftar harga barang.

ff. Melihat status faktur dari customer tertentu.

Tinjauan Finance

gg. Melihat status faktur dari order tertentu. hh. Melihat kas bank dari order tertentu.

ii. Melihat staff yang bertanggung jawab dalam pembuatan kas bank tertentu.

Tinjauan Admin

jj. Melihat daftar cabang. kk. Melihat daftar divisi.

ll. Melihat daftar staff yang bekerja pada suatu cabang. mm. Melihat daftar staff yang bekerja pada suatu divisi. nn. Melihat daftar username dari staff tertentu.

oo. Melihat daftar barang. pp. Melihat daftar gudang. qq. Melihat daftar customer. rr. Melihat daftar pesanan. ss. Melihat daftar surat jalan. tt. Melihat daftar faktur. uu. Melihat daftar kas bank.

(61)

ww. Melihat nama kendaraan beserta jenis kendaraannya. xx. Melihat daftar retur.

Gambar 3.24 Entity Relationship Diagram Model Konseptual dengan Transaksi Pengguna

(62)

3.10 Perancangan Basis Data Logikal

3.10.1 Menurunkan Relasi untuk Model Data Logikal a. Tipe Entitas Kuat

Cabang(kdCabang, namaCabang, alamatCabang, kdPosCabang, kotaCabang, noTelpCabang, noFaxCabang, emailCabang, noRekCabang, namaBank) Primary Key kdCabang

Divisi (kdDivisi, namaDivisi) Primary Key kdDivisi

Staff(kdStaff, namaStaff, alamatStaff, kdPosStaff, kotaStaff, noTelpStaff, tanggalLahir, emailStaff, jenisKelamin, jabatan, tanggalMulaiKerja)

Primary Key kdStaff

Users(username, password, privilege, lastLogin) Primary Key username

Customer (kdCust, namaCust, alamatCust, kdPosCust, kotaCust, noTelpCust, noFaxCust, emailCust, noRekCust, namaBank)

Primary Key kdCust

Gudang (kdGudang, namaGudang, alamatGudang, kdPosGudang, kotaGudang)

Primary Key kdGudang Kendaraan (kdKend, noPolisi) Primary Key kdKend

JenisKendaraan (kdJenisKend, jenisKend) Primary Key kdJenisKend

(63)

Barang (kdBarang, namaBarang, qtyBarang, harga) Primary Key kdBarang

JenisBarang (kdJenisBarang, deskripsi) Primary Key kdJenisBarang

Orders (kdDO, tanggalKirimDO, totalHarga, qtyDO, tanggalInput, tanggalPrint, kdStaffPrint, kdStaffInput)

Primary Key kdDO

BarangMasuk (kdBarangMasuk, tanggalMasuk, qtyBarang) Primary Key kdBarangMasuk

BarangKeluar (kdBarangKeluar, tanggalKeluar, qtyBarang) Primary Key kdBarangKeluar

SuratJalan (kdSuratJalan, tglSuratJalan) Primary Key (kdSuratJalan)

Retur (kdRetur, tanggalRetur, qtyRetur, keteranganRetur) Primary Key kdRetur

Faktur (kdFaktur, tanggalFaktur, jatuhTempo) Primary Key kdFaktur

KasBank (kdKasBank, tanggalPembayaran, totalPembayaran) Primary Key kdKasBank

b. Tipe Entitas Lemah

(64)

c. Tipe Binary Relationship 1:*

Relationship antara entitas Cabang dengan Gudang

Cabang (kdCabang, namaCabang, alamatCabang, kdPosCabang, kotaCabang, noTelpCabang, noFaxCabang, emailCabang, noRekCabang, namaBank) Primary Key kdCabang

Gudang(kdGudang, namaGudang, alamatGudang, kdPosGudang, kotaGudang, kdCabang) Primary Key kdGudang

Foreign Key kdCabang references Cabang(kdCabang)

Relationship antara entitas Cabang dengan Staff

Cabang (kdCabang, namaCabang, alamatCabang, kdPosCabang, kotaCabang, emailCabang) Primary Key kdCabang

Staff(kdStaff, namaStaff,

alamatStaff, kdPosStaff, kotaStaff, noTelpStaff, tanggalLahir,

emailStaff, jenisKelamin, jabatan, tanggalMulaiKerja, kdCabang) Primary Key kdStaff

Foreign Key kdCabang references Cabang(kdCabang)

memiliki

(65)

Relationship antara entitas Divisi dengan Staff

Divisi(kdDivisi, namaDivisi) Primary Key kdDivisi

Staff(kdStaff, namaStaff,

alamatStaff, kdPosStaff, kotaStaff, noTelpStaff, tanggalLahir,

emailStaff, jenisKelamin, jabatan, tanggalMulaiKerja, KdCabang, kdDivisi)

Primary Key kdStaff

Foreign Key kdCabang references Cabang(kdCabang)

Foreign Key kdDivisi references Divisi(kdDivisi)

(66)

Relationship antara entitas Staff dengan BarangMasuk

Staff(kdStaff, namaStaff,

alamatStaff, kdPosStaff, kotaStaff, noTelpStaff, tanggalLahir,

emailStaff, jenisKelamin, jabatan, tanggalMulaiKerja, KdCabang, kdDivisi)

Primary Key kdStaff

Foreign Key kdCabang references Cabang(kdCabang)

Foreign Key kdDivisi references Divisi(kdDivisi)

BarangMasuk(kdBarangMasuk, tanggalMasuk, kdStaff)

Primary Key kdBarangMasuk Foreign Key kdStaff references Staff(kdStaff)

(67)

Relationship antara entitas Staff dengan BarangKeluar

Staff(kdStaff, namaStaff,

alamatStaff, kdPosStaff, kotaStaff, noTelpStaff, tanggalLahir,

emailStaff, jenisKelamin, jabatan, tanggalMulaiKerja, KdCabang, kdDivisi)

Primary Key kdStaff

Foreign Key kdCabang references Cabang(kdCabang) Foreign Key kdDivisi references Divisi(kdDivisi)

BarangKeluar(kdBarangKeluar, tanggalKeluar, qtyBarang , kdStaff) Primary Key kdBarangKeluar Foreign Key kdStaff references Staff(kdStaff)

(68)

Relationship antara entitas Staff dengan Customer

Staff(kdStaff, namaStaff,

alamatStaff, kdPosStaff, kotaStaff, noTelpStaff, tanggalLahir,

emailStaff, jenisKelamin, jabatan, tanggalMulaiKerja, KdCabang, kdDivisi)

Primary Key kdStaff

Foreign Key kdCabang references Cabang(kdCabang)

Foreign Key kdDivisi references Divisi(kdDivisi)

Customer(kdCust, namaCust, alamatCust, kdPosCust, kotaCust, noTelpCust, noFaxCust, emailCust, noRekCust, namaBank, kdStaff) Primary Key kdCust

Foreign Key kdStaff references Staff(kdStaff)

(69)

Relationship antara entitas Staff dengan KasBank

Staff(kdStaff, namaStaff,

alamatStaff, kdPosStaff, kotaStaff, noTelpStaff, tanggalLahir,

emailStaff, jenisKelamin, jabatan, tanggalMulaiKerja, KdCabang, kdDivisi)

Primary Key kdStaff

Foreign Key kdCabang references Cabang(kdCabang)

Foreign Key kdDivisi references Divisi(kdDivisi)

KasBank(kdKasBank, tanggalPembayaran, totalPembayaran, kdStaff) Primary Key kdKasBank

Foreign Key kdStaff references Staff(kdStaff)

(70)

Relationship antara entitas Staff dengan Retur

Staff(kdStaff, namaStaff,

alamatStaff, kdPosStaff, kotaStaff, noTelpStaff, tanggalLahir,

emailStaff, jenisKelamin, jabatan, tanggalMulaiKerja, KdCabang, kdDivisi)

Primary Key kdStaff

Foreign Key kdCabang references Cabang(kdCabang)

Foreign Key kdDivisi references Divisi(kdDivisi)

Retur (kdRetur, tanggalRetur, qtyRetur, keteranganRetur, kdStaff) Primary Key kdRetur

Foreign Key kdStaff references Staff(kdStaff)

(71)

Relationship antara entitas Staff dengan Faktur

Staff(kdStaff, namaStaff,

alamatStaff, kdPosStaff, kotaStaff, noTelpStaff, tanggalLahir,

emailStaff, jenisKelamin, jabatan, tanggalMulaiKerja, KdCabang, kdDivisi)

Primary Key kdStaff

Foreign Key kdCabang references Cabang(kdCabang)

Foreign Key kdDivisi references Divisi(kdDivisi)

Faktur(kdFaktur, tanggalFaktur, jatuhTempo, kdStaff)

Primary Key kdFaktur

Foreign Key kdStaff references Staff(kdStaff)

(72)

Relationship antara entitas Staff dengan SuratJalan

Staff(kdStaff, namaStaff,

alamatStaff, kdPosStaff, kotaStaff, noTelpStaff, tanggalLahir,

emailStaff, jenisKelamin, jabatan, tanggalMulaiKerja, KdCabang, kdDivisi)

Primary Key kdStaff

Foreign Key kdCabang references Cabang(kdCabang)

Foreign Key kdDivisi references Divisi(kdDivisi)

SuratJalan(kdSuratJalan, tglSuratJalan, kdStaff) Primary Key kdSuratJalan Foreign Key kdStaff references Staff(kdStaff)

(73)

Relationship antara entitas Customer dengan Orders

Customer(kdCust, namaCust, alamatCust, kdPosCust, kotaCust, noTelpCust, noFaxCust, emailCust, noRekCust, namaBank, kdStaff) Primary Key kdCust

Foreign Key kdStaff references Staff(kdStaff)

Orders (kdDO, tanggalKirimDO, totalHarga, qtyDO, tanggalInput,

tanggalPrint, kdStaffPrint, kdStaffInput, kdCust)

Primary Key kdDO

Foreign Key kdCust references Customer(kdCust)

Relationship antara entitas Gudang dengan BarangMasuk

Gudang(kdGudang, namaGudang, alamatGudang, kdPosGudang, kotaGudang, kdCabang) Primary Key kdGudang Foreign Key kdCabang references Cabang(kdCabang)

BarangMasuk(kdBarangMasuk, tanggalMasuk, kdStaff, kdGudang) Primary Key kdBarangMasuk Foreign Key kdStaff references Staff(kdStaff)

Foreign Key kdGudang references Gudang(kdGudang)

melakukan

(74)

Relationship antara entitas Gudang dengan BarangKeluar

Gudang(kdGudang, namaGudang, alamatGudang, kdPosGudang, kotaGudang, kdCabang) Primary Key kdGudang Foreign Key kdCabang references Cabang(kdCabang)

BarangKeluar(kdBarangKeluar, tanggalKeluar, qtyBarang , kdStaff, kdGudang)

Primary Key kdBarangKeluar Foreign Key kdStaff references Staff(kdStaff)

Foreign Key kdGudang references Gudang(kdGudang)

Relationship antara entitas Gudang dengan Kendaraan

Gudang(kdGudang, namaGudang, alamatGudang, kdPosGudang, kotaGudang, kdCabang) Primary Key kdGudang Foreign Key kdCabang references Cabang(kdCabang)

Kendaraan (kdKend, noPolisi, kdGudang)

Primary Key kdKend

Foreign Key kdGudang references Gudang(kdGudang)

menjelaskan

(75)

Relationship antara entitas Gudang dengan Orders

Gudang(kdGudang, namaGudang, alamatGudang, kdPosGudang, kotaGudang, kdCabang) Primary Key kdGudang Foreign Key kdCabang references Cabang(kdCabang)

Orders (kdDO, tanggalKirimDO, totalHarga, qtyDO, tanggalInput,

tanggalPrint, kdStaffPrint, kdStaffInput, kdCust, kdGudang)

Primary Key kdDO

Foreign Key kdCust references Customer(kdCust)

Foreign Key kdGudang references Gudang(kdGudang)

(76)

Relationship antara entitas Kendaraan dengan SuratJalan

Kendaraan (kdKend, noPolisi, kdGudang)

Primary Key kdKend Foreign Key kdGudang

references Gudang(kdGudang)

SuratJalan(kdSuratJalan, tglSuratJalan, kdStaff, kdKend) Primary Key kdSuratJalan Foreign Key kdStaff references Staff(kdStaff)

Foreign Key kdKend references Kendaraan(kdKend)

Relationship antara entitas JenisKendaraan dengan Kendaraan

JenisKendaraan (kdJenisKend, jenisKend)

Primary Key kdJenisKend

Kendaraan (kdKend, noPolisi, kdGudang, kdJenisKend)

Primary Key kdKend

Foreign Key kdGudang references Gudang(kdGudang)

Foreign Key kdJenisKend references JenisKendaraan(kdJenisKend)

melengkapi

(77)

Relationship antara entitas JenisBarang dengan Barang

JenisBarang(kdJenisBarang, deskripsi)

Primary Key kdjenisbarang

Barang(kdBarang, namaBarang, harga, kdJenisBarang, qtyBarang) Primary Key kdBarang

Foreign Key kdJenisBarang references

JenisBarang(kdJenisBarang) menjelaskan

(78)

d. Tipe Binary Relationship 1:1

Relationship antara entitas Staff dengan Users

Staff(kdStaff, namaStaff, alamatStaff, kdPosStaff, kotaStaff, noTelpStaff, tanggalLahir, emailStaff, jenisKelamin, jabatan, tanggalMulaiKerja, KdCabang, kdDivisi)

Primary Key kdStaff

Foreign Key kdCabang references Cabang(kdCabang)

Foreign Key kdDivisi references Divisi(kdDivisi)

Users(username, password, privilege, lastLogin, kdStaff)

Primary Key username

Foreign Key kdStaff references Staff(kdStaff)

(79)

Relationship antara entitas Orders dengan KasBank

Orders (kdDO, tanggalKirimDO, totalHarga, qtyDO, tanggalInput, tanggalPrint, kdStaffPrint,

kdStaffInput, kdCust, kdGudang) Primary Key kdDO

Foreign Key kdCust references Customer(kdCust)

Foreign Key kdGudang references Gudang(kdGudang)

KasBank(kdKasBank,

tanggalPembayaran, totalPembayaran, kdStaff, kdDO)

Primary Key kdKasBank

Foreign Key kdStaff references Staff(kdStaff)

Foreign Key kdDO references Orders(kdDO)

(80)

Relationship antara entitas Orders dengan KasBank

Orders (kdDO, tanggalKirimDO, totalHarga, qtyDO, tanggalInput,

tanggalPrint, kdStaffPrint, kdStaffInput, kdCust, kdGudang)

Primary Key kdDO Foreign Key kdCust

references Customer(kdCust) Foreign Key kdGudang

references Gudang(kdGudang)

Retur (kdRetur, tanggalRetur, qtyRetur, keteranganRetur, kdStaff)

Primary Key kdRetur

Foreign Key kdStaff references Staff(kdStaff)

Foreign Key kdDO references Orders(kdDO)

(81)

Relationship antara entitas Orders dengan Faktur

Orders (kdDO, tanggalKirimDO, totalHarga, qtyDO, tanggalInput, tanggalPrint, kdStaffPrint,

kdStaffInput, kdCust, kdGudang) Primary Key kdDO

Foreign Key kdCust references Customer(kdCust)

Foreign Key kdGudang references Gudang(kdGudang)

Faktur(kdFaktur, tanggalFaktur, jatuhTempo, kdStaff, kdDO) Primary Key kdFaktur

Foreign Key kdStaff references Staff(kdStaff)Foreign Key kdDO references Orders(kdDO)

(82)

Relationship antara entitas Orders dengan BarangKeluar

Orders (kdDO, tanggalKirimDO, totalHarga, qtyDO, tanggalInput, tanggalPrint, kdStaffPrint,

kdStaffInput, kdCust, kdGudang) Primary Key kdDO

Foreign Key kdCust references Customer(kdCust)

Foreign Key kdGudang references Gudang(kdGudang)

BarangKeluar(kdBarangKeluar, tanggalKeluar, qtyBarang , kdStaff, kdGudang, kdDO)

Primary Key kdBarangKeluar Foreign Key kdStaff references Staff(kdStaff)

Foreign Key kdGudang references Gudang(kdGudang) Foreign Key kdDO references Orders(kdDO) memiliki

(83)

Relationship antara entitas BarangKeluar dengan SuratJalan

BarangKeluar(kdBarangKeluar, tanggalKeluar, qtyBarang , kdStaff, kdGudang, kdDO)

Primary Key kdBarangKeluar Foreign Key kdStaff references Staff(kdStaff)

Foreign Key kdGudang references Gudang(kdGudang) Foreign Key kdDO references Orders(kdDO)

SuratJalan(kdSuratJalan, tglSuratJalan, kdStaff, kdKend, kdBarangKeluar)

Primary Key kdSuratJalan Foreign Key kdStaff references Staff(kdStaff)

Foreign Key kdKend references Kendaraan(kdKend) Foreign Key kdBarangKeluar references BarangKeluar(kdBarangKeluar) mempengaruhi

(84)

e. Tipe Relationship Superclass/Subclass

Tidak ada tipe relationship superclass/subclass pada rancangan model data.

f. Tipe Binary Relationship *:*

Relationship antara entitas Barang, Gudang, dan LokasiBarang Barang(kdBarang, namaBarang,

harga, kdJenisBarang) Primary Key kdBarang Foreign Key kdJenisBarang references

JenisBarang(kdJenisBarang)

Gudang(kdGudang, namaGudang, alamatGudang, kdPosGudang, kotaGudang, kdCabang) Primary Key kdGudang

Foreign Key kdCabang references Cabang(kdCabang)

LokasiBarang(kdBarang, kdGudang, qtyBarang) Primary Key kdBarang, kdGudang

Foreign Key kdBarang references Barang(kdBarang) Foreign Key kdGudang references Gudang(kdGudang)

(85)

Relationship antara entitas Orders, Staff, dan OrderStaff Orders(kdDO, tanggalKirimDO,

totalHarga, tanggalInput,

tanggalPrint, kdCust, kdGudang, qtyDO, kdStaffPrint, kdStaffInput) Primary Key kdDO

Staff(kdStaff, namaStaff,

alamatStaff, kdPosStaff, kotaStaff, tanggalLahir, emailStaff,

jenisKelamin, jabatan,

tanggalMulaiKerja, telpStaff) Primary Key kdStaff

OrderStaff(kdDO, kdStaff) Primary Key kdDO, kdStaff

Foreign Key kdDO references Ordesr(kdDO) Foreign Key kdStaff references Staff(kdStaff)

(86)

Relationship antara entitas Orders, Barang, dan OrderDetail Orders(kdDO, tanggalKirimDO,

totalHarga, tanggalInput, tanggalPrint, kdStaffPrint, kdStaffInput)

Primary Key kdDO

Barang(kdBarang, namaBarang, harga, kdJenisBarang)

Primary Key kdBarang Foreign Key kdJenisBarang references

JenisBarang(kdJenisBarang)

OrderDetail(kdDO, kdBarang, qtyDO) Primary Key kdDO, kdBarang

Foreign Key kdDO references Orders(kdDO) Foreign Key kdBarang references Barang(kdBarang)

(87)

Relationship antara entitas BarangMasuk, Barang, dan BarangMasukDetail

Barangmasuk(kdBarangMasuk, tanggalMasuk)

Primary Key kdBarangMasuk

Barang(kdBarang, namaBarang, harga, kdJenisBarang)

Primary Key kdBarang Foreign Key kdJenisBarang references

JenisBarang(kdJenisBarang)

BarangMasukDetail(kdBarangMasuk, kdBarang, qtyBarang) Primary Key kdBarangMasuk, kdBarang

Foreign Key kdBarangMasuk references BarangMasuk(kdBarangMasuk) Foreign Key kdBarang references Barang(kdBarang)

(88)

Relationship antara entitas BarangKeluar, Barang, dan BarangKeluarDetail

BarangKeluar(kdBarangKeluar, tanggalKeluar)

Primary Key kdBarangKeluar

Barang(kdBarang, namaBarang, harga, kdJenisBarang)

Primary Key kdBarang Foreign Key kdJenisBarang references

JenisBarang(kdJenisBarang)

BarangKeluarDetail (kdBarangKeluar, kdBarang, qtyBarang) Primary Key kdBarangKeluar, kdBarang

Foreign Key kdBarangKeluar references BarangKeluar(kdBarangKeluar) Foreign Key kdBarang references Barang(kdBarang)

(89)

Relationship antara entitas Retur, Barang, dan ReturDetail Retur(kdRetur, tanggalRetur,

keteranganRetur) Primary Key kdRetur

Barang(kdBarang, namaBarang, harga, kdJenisBarang)

Primary Key kdBarang Foreign Key kdJenisBarang references

JenisBarang(kdJenisBarang)

ReturDetail(kdRetur, kdBarang, qtyRetur) Primary Key kdRetur, kdBarang

Foreign Key kdRetur references Retur(kdRetur) Foreign Key kdBarang references Barang(kdBarang)

(90)

g. Tipe Relationship kompleks

Tidak ada tipe relationship kompleks pada rancangan model data.

h. Atribut Multi-valued

Gambar 3.25 Atribut Multi-valued pada entitas Staff

Entitas Staff merepresentasikan situasi dimana sebuah staff memiliki hingga tiga nomor telepon, sehingga atribut noTelpStaff pada entitas Staff merupakan atribut multi-valued seperti gambar diatas.

(91)

Entitas Customer merepresentasikan situasi dimana sebuah customer memiliki hingga tiga nomor telepon, tiga nomor fax, dan tiga nomor rekening, sehingga atribut noTelpCust, noFaxCust, noRekCust pada entitas Customer merupakan atribut multi-valued seperti gambar diatas.

Gambar 3.27 Atribut Multi-valued pada entitas Cabang

Entitas Cabang merepresentasikan situasi dimana sebuah cabang memiliki hingga tiga nomor telepon, tiga nomor fax, dan tiga nomor rekening, sehingga atribut noTelpCabang, noFaxCabang, noRekCabang pada entitas Cabang merupakan atribut multi-valued seperti gambar diatas.

(92)

3.10.2 Memvalidasi Relasi Menggunakan Normalisasi

LokasiBarang

UNF

LokasiBarang(kdJenisBarang, deskripsi, kdBarang, namaBarang, qtyBarang, harga, kdGudang, namaGudang, alamatGudang,

kdPosGudang, kotaGudang, kdCabang, namaCabang, alamatCabang, kdPosCabang, kotaCabang, emailCabang)

1NF

Gudang(kdGudang, namaGudang, alamatGudang, kdPosGudang, kotaGudang, kdCabang, namaCabang, alamatCabang, kdPosCabang, kotaCabang, emailCabang)

TelpCabang(noTelpCabang, kdCabang) FaxCabang(noFaxCabang, kdCabang)

RekCabang(noRekCabang, namaBank, kdCabang)

LokasiBarang(kdJenisBarang, kdGudang, deskripsi, kdBarang, namaBarang, qtyBarang, harga)

2NF

Gudang(kdGudang, namaGudang, alamatGudang, kdPosGudang, kotaGudang, kdCabang, namaCabang, alamatCabang, kdPosCabang, kotaCabang, emailCabang)

(93)

TelpCabang(noTelpCabang, kdCabang) FaxCabang(noFaxCabang, kdCabang)

RekCabang(noRekCabang, namaBank, kdCabang) LokasiBarang(kdGudang, kdBarang, qtyBarang)

Barang (kdBarang, namaBarang, harga, kdJenisBarang, deskripsi,)

3NF

Gudang(kdGudang, namaGudang, alamatGudang, kdPosGudang, kotaGudang, kdCabang)

Cabang(kdCabang, namaCabang, alamatCabang, kdPosCabang, kotaCabang, emailCabang)

TelpCabang(noTelpCabang, kdCabang) FaxCabang(noFaxCabang, kdCabang)

RekCabang(noRekCabang, namaBank, kdCabang) LokasiBarang(kdGudang, kdBarang, qtyBarang) Barang(kdBarang, namaBarang, harga, kdJenisBarang) JenisBarang(kdJenisBarang, deskripsi)

(94)

Delivery Order (DO)

UNF

Orders (kdDO, tanggalKirimDO, qtyDO, kdBarang, namaBarang, totalHarga, kdStaffInput, kdStaffPrint, kdPengirim, kdSales, kdCustomer, namaCust, kdCabang, namaDivisi)

1NF

Orders(kdDO, tanggalKirimDO, totalHarga, tanggalInput, tanggalPrint, kdCust, namaCust, alamatCust, kdPosCust, kotaCust, emailCust, kdStaff, kdGudang)

OrderDetail(kdDO, kdBarang, qtyDO)

OrderStaff(kdDO, kdStaff, namaStaff, alamatStaff, kdPosStaff, Kota, tanggalLahir, emailStaff, jenisKelamin, jabatan, tanggalMulaiKerja, kdDivisi, namaDivisi)

TelpStaff(noTelpStaff, kdStaff) TelpCust(noTelpCust, kdCust) faxCust(noFaxCust, kdCust)

rekCust(noRekCust, namaBank, kdCust)

2NF

Orders(kdDO, tanggalKirimDO, totalHarga, tanggalInput, tanggalPrint, kdCust, namaCust, alamatCust, kdPosCust, kotaCust, emailCust, kdStaff, kdGudang)

(95)

OrderDetail(kdDO, kdBarang, qtyDO)

OrderStaff(kdDO, kdStaff, namaStaff, alamatStaff, kdPosStaff, kota, tanggalLahir, emailStaff, jenisKelamin, jabatan, tanggalMulaiKerja, kdDivisi, namaDivisi)

TelpStaff(noTelpStaff, kdStaff) TelpCust(noTelpCust, kdCust) FaxCust(noFaxCust, kdCust)

RekCust(noRekCust, namaBank, kdCust)

3NF

Orders(kdDO, tanggalKirimDO, totalHarga, tanggalInput, tanggalPrint, kdCust)

OrderDetail(kdDO, kdBarang, qtyDO)

Staff (kdStaff, namaStaff, alamatStaff, kdPosStaff, kota, tanggalLahir, emailStaff, jenisKelamin, jabatan, tanggalMulaiKerja, kdDivisi) Divisi(kdDivisi, namaDivisi)

OrderStaff(kdDO, kdStaff) TelpStaff(noTelpStaff, kdStaff)

Customer(kdCust, namaCust, alamatCust, kdPosCust, kotaCust, emailCust, kdStaff)

TelpCust(noTelpCust, kdCust) FaxCust(noFaxCust, kdCust)

(96)

Users

UNF

Users(username, password, privilege, lastLogin, kdStaff)

1NF

Users(username, password, privilege, lastLogin, kdStaff)

2NF

Users(username, password, privilege, lastLogin, kdStaff)

3NF

Users(username, password, privilege, lastLogin, kdStaff)

BarangMasuk

UNF

BarangMasuk(kdBarangMasuk, tanggalMasuk, kdBarang, namaBarang, qtyBarang, kdKepalaGudang, kdGudang)

1NF

BarangMasuk(kdBarangMasuk, tanggalMasuk, kdStaff, kdGudang) BarangMasukDetail(kdBarangMasuk, kdBarang, qtyBarang)

(97)

2NF

BarangMasuk(kdBarangMasuk, tanggalMasuk, kdStaff, kdGudang) BarangMasukDetail(kdBarangMasuk, kdBarang, qtyBarang)

3NF

BarangMasuk(kdBarangMasuk, tanggalMasuk, kdStaff, kdGudang) BarangMasukDetail(kdBarangMasuk, kdBarang, qtyBarang)

BarangKeluar

UNF

BarangKeluar(kdBarangKeluar, tanggalKeluar, kdBarang, namaBarang, qtyBarang, kdKepalaGudang, kdGudang, kdDO)

1NF

BarangKeluar(kdBarangKeluar, tanggalKeluar, kdStaff, kdGudang, kdDO)

BarangKeluarDetail(kdBarangKeluar, kdBarang, qtyBarang)

2NF

BarangKeluar(kdBarangKeluar, tanggalKeluar, kdStaff, kdGudang, kdDO)

(98)

3NF

BarangKeluar(kdBarangKeluar, tanggalKeluar, kdStaff, kdGudang, kdDO)

BarangKeluarDetail(kdBarangKeluar, kdBarang, qtyBarang)

Surat Jalan

UNF

SuratJalan(kdSuratJalan, tglSuratJalan, kdCust, namaCust, alamatCust, kdPosCust, kotaCust, emailCust, telpCust, kdBarang, qtyDO,

namaBarang, kdAdminGudang, kdKend, noPolisi, kdJenisKend, jenisKend, kdGudang, kdBarangKeluar)

1NF

SuratJalan(kdSuratJalan, tglSuratJalan, kdStaff, kdKend, noPolisi, kdJenisKend, jenisKend, kdGudang, kdBarangKeluar)

2NF

SuratJalan(kdSuratJalan, tglSuratJalan, kdStaff, kdKend, noPolisi, kdJenisKend, jenisKend, kdGudang, kdBarangKeluar)

3NF

SuratJalan(kdSuratJalan, tglSuratJalan, kdStaff, kdKend, kdBarangKeluar)

(99)

Kendaraan(kdKend, noPolisi, kdJenisKend, kdGudang) JenisKendaraan(kdJenisKend, jenisKend)

Faktur

UNF

Faktur(kdFaktur, tanggalFaktur, jatuhTempo, kdDO, kdBarang, namaBarang, qtyDO, harga, jumlahHarga, totalHarga,

kdManagerPenjualan, kdStaffBuat, kdStaffCetak, kdStaffCek, kdManagerAR, kdCust, namaCust, alamatCust)

1NF

Faktur(kdFaktur, tanggalFaktur, jatuhTempo, kdDO, kdStaff)

2NF

Faktur(kdFaktur, tanggalFaktur, jatuhTempo, kdDO, kdStaff)

3NF

(100)

Retur

UNF

Retur(kdRetur, tanggalRetur, keteranganRetur, kdDO, kdBarang, qtyRetur, kdCust, kdPenerimaRetur, kdStaffyangmenyetujui)

1NF

Retur(kdRetur, tanggalRetur, keteranganRetur, kdBarang, qtyRetur, kdDO, kdStaff)

2NF

Retur(kdRetur, tanggalRetur, keteranganRetur, kdDO, kdStaff) ReturDetail(kdRetur, kdBarang, qtyRetur)

3NF

Retur(kdRetur, tanggalRetur, keteranganRetur, kdDO, kdStaff) ReturDetail(kdRetur, kdBarang, qtyRetur)

(101)

KasBank

UNF

KasBank(kdKasBank, tanggalPembayaran, totalPembayaran, kdDO, kdStaff)

1NF

KasBank(kdKasBank, tanggalPembayaran, totaPembayaran, kdDO, kdStaff)

2NF

KasBank(kdKasBank, tanggalPembayaran, totalPembayaran, kdDO, kdStaff)

3NF

KasBank(kdKasBank, tanggalPembayaran, totalPembayaran, kdDO, totalHarga, kdStaff)

(102)
(103)

3.10.3 Memvalidasi Relasi Terhadap Transaksi Pengguna

Proses ini bertujuan untuk memastikan bahwa relasi pada model data logikal mendukung kebutuhan transaksi. Tahap ini memeriksa bahwa relasi yang dibuat pada tahap sebelumnya juga mendukung transaksi yang ada dan memastikan tidak ada error yang terjadi pada saat membuat relasi. Apabila semua transaksi dapat dipenuhi oleh model data logikal yang dibuat maka model data logikal tersebut valid.

Pada perancangan diatas, semua transaksi dapat dipenuhi oleh model data logikal yang dibuat.

3.10.4 Memeriksa Integrity Constraint

Cabang(kdCabang, namaCabang, alamatCabang, kdPosCabang, kotaCabang, emailCabang)

Primary Key kdCabang

TelpCabang(noTelpCabang, kdCabang) Primary Key noTelpCabang

Foreign Key kdCabang references Cabang(kdCabang) ON UPDATE CASCADE ON DELETE CASCADE

FaxCabang(noFaxCabang, kdCabang) Primary Key noFaxCabang

Foreign Key kdCabang references Cabang(kdCabang) ON UPDATE CASCADE ON DELETE CASCADE

(104)

RekCabang(noRekCabang, namaBank, kdCabang) Primary Key noRekCabang

Foreign Key kdCabang references Cabang(kdCabang) ON UPDATE CASCADE ON DELETE CASCADE

Divisi(kdDivisi, namaDivisi) Primary Key kdDivisi

Staff(kdStaff, namaStaff, alamatStaff, kdPosStaff, kotaStaff,

tanggalLahir, emailStaff, jenisKelamin, jabatan, tanggalMulaiKerja, kdDivisi, kdCabang)

Primary Key kdStaff

Foreign Key kdDivisi references Divisi(kdDivisi) ON UPDATE CASCADE ON DELETE NO ACTION

Foreign Key kdCabang references Cabang(kdCabang) ON UPDATE CASCADE ON DELETE NO ACTION

TelpStaff(noTelpStaff, kdStaff) Primary Key noTelpStaff

Foreign Key kdStaff references Staff(kdStaff) ON UPDATE CASCADE ON DELETE CASCADE

Users(username, password, privilege, lastLogin, kdStaff) Primary Key username

(105)

Foreign Key kdStaff references Staff(kdStaff) ON UPDATE CASCADE ON DELETE CASCADE

Customer(kdCust, namaCust, alamatCust, kdPosCust, kotaCust, emailCust, kdStaff)

Primary Key kdCust

Foreign Key kdStaff references Staff(kdStaff) ON UPDATE CASCADE ON DELETE SET NULL

TelpCust(noTelpCust, kdCust) Primary Key noTelpCust

Foreign Key kdCust references Customer(kdCust) ON UPDATE CASCADE ON DELETE CASCADE

FaxCust (FaxCust, kdCust) Primary Key noFaxCust

Foreign Key kdCust references Customer(kdCust) ON UPDATE CASCADE ON DELETE CASCADE

RekCust(noRekCust, namaBank, kdCust) Primary Key noRekCust

Foreign Key kdCust references Customer(kdCust) ON UPDATE CASCADE ON DELETE CASCADE

Gudang(kdGudang, namaGudang, alamatGudang, kdPosGudang, kotaGudang, kdCabang)

Referensi

Dokumen terkait

Namun jika jarak toko yang dituju kurang dari 150 km dari gudang, dan jumlah pesanan lebih besar dari kapasitas, maka jumlah pesanan bernilai 0 yang berarti kendaraan

Di samping itu, akan dikembangkan sebuah aplikasi program yang dapat mengakses logikal basis data tersebut dan dapat digunakan oleh beberapa bagian perusahaan terutama di bagian

Untuk proses penjualan, bila ada pesanan dari pelanggan maka Bagian Penjualan dan Pemasaran akan membuat SO ( Sales Order ) rangkap dua.. SO

Kepala bagian Departemen Sizing membuat bon permintaan benang sesuai dengan data yang ada dalam order produksi, dan selanjutnya diserahkan ke kepala gudang

Admin membuat form pengeluaran barang berdasarkan barang yang diminta dari Bagian Logistik, lalu diarsip ke Bagian Gudang.. Post Kondisi

Setelah bagian admin keuangan menerima uang muka, pesanan diserahkan pada admin gudang kemudian akan diserahkan kepada bagian produksi agar di proses. Setelah

Kepala gudang membuat BKB (Bukti Keluar Barang) berdasarkan SPB yang akan diberikan kepada mekanik untuk dilakukan penandatanganan BKB. Setelah itu mekanik akan

Pada halaman ini admin dapat mendelet member yang sudah tidak aktif..