104
BAB 4
RANCANGAN SISTEM YANG DIUSULKAN
4.1 Tata Laksana yang dirancang
Rancangan tata laksana pada PT. Solusi Corporindo Teknologi adalah sebagai berikut:
4.1.1 Tata Laksana Penjualan
Pelanggan yang tertarik dan ingin membeli barang dapat datang secara langsung ke kantor, via telepon. Sebelumnya pelanggan harus mendaftar terlebih dahulu, apabila pelanggan sudah pernah membeli barang sebelumnya maka bisa langsung mengisi SO (sales order) dan diberikan kepada kasir, apabila pelanggan baru pertama kali membeli barang maka pelanggan mendaftar terlebih dahulu ke admin. Admin akan menyimpan data pelanggan ke dalam database pelanggan. Setelah mendapat SO maka kasir akan mengecek ketersediaan barang, setelah itu kasir akan melayani pembayaran oleh pelanggan. Pelanggan dapat membayar melalui dua cara secara tunai ataupun kredit, bila membayar secara kredit pelanggan diwajibkan membayar uang muka sebesar 50% dan sisanya dilunaskan sebelum tanggal jatuh tempo. Setelah selesai melakukan pembayaran kemudian kasir mencetak faktur penjualan sebagai tanda bahwa pelanggan telah membayar. Kemudian kasir juga memberikan surat jalan kepada teknisi untuk mengantar barang tersebut ke tempat tujuan. Kasir juga memberikan SO sebagai daftar barang yang ingin diantar ke bagian gudang, bagian gudang akan memuat barang yang akan diantar kedalam mobil. Kemudian teknisi pergi ke lokasi yang telah ditentukan
oleh pelanggan. Setelah tiba di lokasi maka teknisi akan memasang barang tersebut, install software yang diperlukan, dan memberi pelatihan kepada semua karyawan milik pelanggan mengenai cara penggunaan alat absensi/alat akses pintu tersebut. Setelah selesai maka pelanggan akan menandatangani surat jalan yang telah dibawa oleh teknisi sebagai tanda bahwa barang telah diterima. Apabila ternyata barang yang dikirim oleh teknisi rusak saat masih ada garansi maka pelanggan dapat meretur barang tersebut.
4.1.2 Tata Laksana Pembelian
Bila stok barang sudah mencapai jumlah minimum untuk reorder, maka bagian gudang pembelian akan membuat purchase order (PO) yang kemudian dikirim ke supplier. Setelah menerima purchase order maka pemasok akan mengirim barang yang dipesan ke perusahaan, barang yang dikirim oleh supplier harus dalam keadaan baru dan tersegel. Kemudian pihak supplier akan memberikan tagihan kepada kasir untuk mengurusi pembayaran terhadap supplier, kemudian kasir akan menambah jumlah tagihan ke dalam jumlah hutang mereka, bila tanggal tagihan pembayaran terhadap supplier belum jatuh tempo maka kasir tidak melakukan pembayaran terhadap supplier, bila telah jatuh tempo maka kasir akan melakukan pembayaran terhadap supplier dan mencetak bukti pembayaran yang kemudian diserahkan ke supplier, setelah itu kasir akan mengupdate jumlah hutang mereka terhadap supplier.
4.1.3 Tata Laksana Persediaan Barang
Setelah barang diterima maka bagian gudang persediaan akan mengecek apakah barang yang diterima sesuai dengan invoice serta mengecek kondisi barang dalam keadaan tersegel dan baru serta sesuai dengan yang dipesan. Apabila ditemukan barang yang tidak baik dan tidak sesuai dengan yang seharusnya maka barang tersebut dikembalikan ke supplier. Bagian gudang persediaan akan menyimpan barang yang telah dibeli dalam gudang dan mengupdate stok barang. Setelah itu bagian gudang persediaan akan mengecek adanya stok barang yang sudah menipis, jika ditemukan stok barang yang sudah menipis maka bagian gudang persediaan akan memberitahu bagian pembelian.
4.1.4 Tata Laksana Retur Penjualan
Jika barang yang diterima pelanggan tidak sesuai dengan pesanan mungkin karena rusak dan lain hal, maka bagian pemasaran akan menerima retur penjualan dan barang dari pelanggan. Barang dan retur penjualan akan dicek oleh sales dengan melihat status garansi barang tersebut, jika masa garansi telah jatuh tempo maka klaim akan ditolak, tetapi bila masih dalam masa garansi kemudian akan di cek kondisi barang apakah dalam keadaan rusak atau tidak. Bila status barang tidak rusak atau hanya karena ada salah pengunaan dan sebagainya maka dianggap tidak ada kerusakan, bila ternyata memang terbukti rusak maka barang akan didistribusikan ke bagian persediaan. Kemudian bagian kasir akan membuat surat retur penjualan kemudian mengecek ketersediaan barang pengganti untuk diberikan ke pelanggan. Jika
barang yang diinginkan masih tersedia dalam gudang maka barang akan di-pack dan dikirim ke pelanggan bersama dengan faktur yang telah tercetak. Jika barang pengganti tidak tersedia maka bagian kasir akan memberi tahu bagian pembelian untuk melakukan pembelian barang. Sistem aplikasi akan secara otomatis mengupdate stok barang.
4.1.5 Tata Laksana Retur Pembelian
Apabila ada barang yang rusak yang telah diretur oleh pelanggan maka akan dikembalikan ke supplier, sebelumnya bagian pembelian menerima surat retur penjualan sebagai sumber informasi atas pengembalian barang dari pelanggan kemudian bagian gudang pembelian akan mencetak surat retur pembelian berdasarkan barang yang rusak dan menyerahkannya ke bagian supplier. Setelah surat retur pembelian beserta barang yang rusak sampai ke supplier, supplier akan mengirimkan barang pengganti ke perusahaan dan di terima oleh bagian gudang persediaan. Bagian gudang persediaan akan menerima barang kemudian melakukan pengecekan terhadap barang yang diberikan supplier, bila barang yang diterima tidak baik dan tidak sesuai maka akan dikembalikan ke supplier, bila sesuai maka sistem aplikasi akan secara otomatis mengupdate stok barang.
4.2 Diagram aliran data 4.2.1 Diagram Context
4.2.2 Diagram Nol
4.2.3 Diagram Rinci
4.2.3.1 Diagram rinci melakukan pendaftaran
Gambar 4.3 Diagram rinci melakukan pendaftaran
4.2.3.2 Diagram rinci penjualan barang
4.2.3.3 Diagram rinci pembelian barang
Gambar 4.5 Diagram melakukan pembelian barang
4.2.3.4 Diagram rinci retur pembelian
4.2.3.5 Diagram rinci retur penjualan
Gambar 4.7 Diagram rinci retur penjualan
4.2.3.6 Diagram rinci pembuatan laporan
4.3 Database Planning 4.3.1 Mission Statement
Mission statement pada PT.Solusi Corporindo Teknologi adalah untuk merancang , mengelola, dan memelihara data yang dibutuhkan mengenai pelanggan, karyawan, supplier, dan barang serta proses bisnis yang berlangsung dalam perusahaan sehingga memudahkan kegiatan pembelian, persediaan, dan penjualan perusahaan.
4.3.2 Mission Objective
Apabila Mission statement telah didefinisikan, maka mission objectives pun harus didefiniskan. Setiap tujuan harus mengidentifikasikan tugas khusus yang harus didukung oleh database.
Mission objectives :
9 Mengelola (insert, update, delete,save) pada barang 9 Mengelola (insert, update, delete,save) pada karyawan 9 Mengelola (insert, update, delete,save) pada pelanggan 9 Mengelola (insert, update, delete,save) pada supplier 9 Mengelola (insert, update, delete,print) pada penjualan 9 Mengelola (insert, update, delete,save) pada pembelian 9 Mengelola (insert, update, delete,save) pada retur pembelian 9 Mengelola (insert, update, delete,save) pada retur penjualan 9 Mengelola (insert, update, delete) pada laporan penjualan 9 Mengelola (insert, update, delete) pada laporan pembelian 9 Menampilkan barang
9 Menampilkan karyawan 9 Menampilkan pelanggan 9 Menampilkan supplier 9 Menampilkan penjualan 9 Menampilkan pembelian 9 Menampilkan retur pembelian 9 Menampilkan retur penjualan 9 Menampilkan laporan penjualan 9 Menampilkan laporan pembelian 9 Menampilkan laporan persediaan 9 Membuat laporan penjualan 9 Membuat laporan pembelian 9 Membuat laporan persediaan 9 Melakukan pencarian pada barang 9 Melakukan pencarian pada pelanggan
9 Melakukan pencarian pada laporan penjualan 9 Melakukan pencarian pada laporan pembelian 9 Melakukan pencarian pada retur pembelian 9 Melakukan pencarian pada retur penjualan 9 Melakukan pencarian pada laporan persediaan
4.4 System Definition
Gambar 4.9 System Definition Penjelasan :
Pada system definition menggambarkan batasan sistem terhadap user yang berhubungan dengan sistem. Lingkungan internal perusahaan terdiri dari pembelian, persediaan dan penjualan. Dimana karyawan berhubungan dengan penjualan dan pembelian, lalu supplier berhubungan dengan pembelian dan persediaan, pelanggan berhubungan dengan penjualan , direktur menerima laporan pembelian, persediaan dan penjualan.
4.5 Requirement Collection And Analysis 4.5.1 Data Requirement
1 . Barang
Informasi yang berisi tentang data barang yang dijual dan stock barang tersebut.
2. Penjualan
Informasi yang berisi tentang penjualan yang telah dilakukan oleh pelanggan. 3. Pembelian
Informasi yang berisi tentang pembelian yang telah dilakukan oleh perusahaan.
4. Karyawan
Informasi yang berisi tentang data karyawan. 5. Supplier
Informasi yang berisi tentang data supplier. 6. Pelanggan
Informasi yang berisi tentang data pelanggan. 7. Retur pembelian
Informasi yang berisi tentang barang yang dikembalikan kepada supplier. 8. Retur penjualan
4.5.2 Transaction Requirement Data entry
M emasukkan detail data untuk barang M emasukkan detail data untuk karyawan M emasukkan detail data untuk pelanggan M emasukkan detail data untuk supplier M emasukkan detail data untuk penjualan M emasukkan detail data untuk pembelian M emasukkan detail data untuk retur pembelian M emasukkan detail data untuk retur penjualan M emasukkan detail data untuk laporan pembelian M emasukkan detail data untuk laporan penjualan M emasukkan detail data untuk laporan persediaan
Data Update / Deletion
Update / Deletion detail data untuk barang Update / Deletion detail data untuk karyawan Update / Deletion detail data untuk pelanggan Update / Deletion detail data untuk supplier Update / Deletion detail data untuk penjualan Update / Deletion detail data untuk pembelian Update / Deletion detail data untuk retur pembelian Update / Deletion detail data untuk retur penjualan Update / Deletion detail data untuk laporan pembelian
Update / Deletion detail data untuk laporan penjualan Update / Deletion detal data untuk laporan persediaan
4.6 Perancangan Database
Perancangan database merupakan proses pembuatan suatu rancangan untuk suatu database yang akan mendukung operasi dan tujuan perusahaan. Perancangan database terdiri dari tiga tahapan, yaitu: perancangan database konseptual, perancangan database logical dan perancangan database fisikal. Berikut tahapan-tahapan perancangan database yang diusulkan untuk membantu memecahkan masalah yang dihadapi oleh perusahaan.
4.6.1 Perancangan Database Konseptual
Perancangan database secara konseptual yaitu proses membangun suatu model informasi yang digunakan dalam suatu perusahaan, bebas dari semua pertimbangan fisik.
4.6.1.1 Mengidentifikasikan Tipe Entiti T abel 4.1 Identifikasi T ipe Entiti
Nama Entiti Deskripsi Entiti Alias Kejadian Karyawan
Pelanggan
Supplier
M erupakan entiti yang berisi data karyawan
M erupakan entiti yang berisi data pelanggan
M erupakan entiti yang berisi data supplier
Pegawai
Customer
Penyuplai
Tiap karyawan memiliki jabatan dan tugas yang berbeda.
Tiap pelanggan dapat memesan satu atau banyak barang.
Tiap transaksi pembelian dapat memesan satu atau banyak
Barang
Penjualan
Retur_penjualan
Pembelian
M erupakan entiti yang berisi informasi tentang stok dan status dari barang.
M erupakan entiti yang berisi informasi tentang barang yang
dipesan oleh pelanggan. Dan M erupakan entiti yang
berisi informasi
tentang tagihan penjualan yang dilakukan perusahaan.
M erupakan entiti yang berisi tentang data
barang yang dikembalikan oleh pelanggan.
M erupakan entiti yang berisi informasi tentang barang yang akan dibeli oleh perusahaan. Dan M erupakan entiti yang berisi informasi
Produk
barang dari supplier
Barang dibeli dari supplier dan dijual ke banyak pelanggan
Tiap pelanggan melakukan satu atau lebih pemesanan barang. Pesanan diterima oleh kasir
Penjualan dilakukan oleh karyawan bagian penjualan. Setiap penjualan diterima oleh satu pelanggan. Tiap penjualan berisi satu atau banyak barang.
Tiap pelanggan dapat melakukan satu atau banyak pengembalian barang sesuai dengan garansi. Pengembalian akan diterima oleh satu orang karyawan.
Karyawan bagian persediaan melakukan pemesanan barang. Pesanan diterima oleh supplier. Supplier mengirim pembelian dan pembelian diterima oleh karyawan.
Retur_pembelian
tentang tagihan pembelian yang diterima perusahaan.
M erupakan entiti yang berisi tentang data
barang yang dikembalikan ke supplier
Tiap pembelian berisi satu atau banyak barang.
Supplier menerima pengembalian barang dari
perusahaan yang dilakukan oleh satu orang karyawan.
4.6.1.2 Mengidentifikasikan Tipe Relasional
T abel 4.2 Pembatasan Multiplicity
Nama Entiti Multiplicity Relasional Nama Entiti Multiplicity Karyawan Pelanggan Supplier Pembelian Retur Pembelian Penjualan Retur Penjualan 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 1..* 1..* M emberikan M enerima M enerima M enerima M emberikan M enerima M enerima M enerima M enambah M enerima Menurut M emberikan M enurut M enambah M elakukan M emberikan M enurut M enerima M engurangi M engurangi Menurut Pembelian Penjualan Retur_penjualan Barang Penjualan Barang Barang Pembelian Barang Supplier Retur pembelian Karyawan Pembelian Barang Karyawan Pelanggan Retur penjualan Karyawan Barang Barang Penjualan 0..* 0..* 0..* 0..* 1..* 1..* 0..* 1..* 1..* 1..* 1..* 1..* 1..1 1..* 1..1 1..1 1..* 1..1 1..* 1..* 1..1
0..* M enerima Karyawan 1..1
4.6.1.3 Mengidentifikasi dan Asosiasi Atribut Suatu Entiti T abel 4.3 Asosiasi Atribut Barang
Nama Entiti Atribut Deskripsi Tipe data dan length Nulls M ulti valued Barang kdbarang namabarang jenisbarang jumlah harga rop hargajual Kode barang Nama Barang Jenis Barang Jumlah Barang Harga Beli ROP Harga Jual Varchar (10) Varchar (100) Varchar (10) Int Int Int Int No Yes Yes Yes Yes Yes Yes No No No No No No No
T abel 4.4 Asosiasi Atribut Karyawan
Nama Entiti Atribut Deskripsi Tipe data dan length Nulls M ulti valued Karyawan kdkaryawan namakaryawan jabatan alamat Kode karyawan Nama karyawan Jabatan Alamat karyawan Varchar (10) Varchar (50) Varchar (20) Varchar (100) No Yes Yes Yes No No No No
T abel 4.5 Asosiasi Atribut Pelanggan
Nama Entiti Atribut Deskripsi Tipe data dan length Nulls M ulti valued Pelanggan kdpelanggan namapelanggan alamat notelepon fax email Kode pelanggan Nama pelanggan Alamat pelanggan No telp pelanggan No fax pelanggan Email pelanggan Varchar (10) Varchar (50) Varchar (100) Int Int Varchar (50) Yes Yes Yes Yes Yes Yes No No No Yes No No
T abel 4.6 Asosiasi Atribut Pembelian notelepon gaji password No telp karyawan Gaji karyawan Password karyawan Int Int Varchar (20) Yes Yes Yes Yes No No
Nama Entiti Atribut Deskripsi Tipe data dan length Nulls M ulti valued Pembelian kdpembelian kdkaryawan kdsupplier nofakturpembelian Kode pembelian Kode karyawan Kode supplier No faktur pembelian Varchar (10) Varchar (10) Varchar (10) Varchar (20) No Yes Yes Yes No No No No
T abel 4.7 Asosiasi Atribut Penjualan
Nama Entiti Atribut Deskripsi Tipe data dan length Nulls M ulti valued Penjualan kdpenjualan kdkaryawan kdpelanggan grandtotal tanggal tipe tanggaljatuhtempo Kode penjualan Kode karyawan Kode pelanggan Total harga Tanggal penjualan Tipe barang Tanggal jatuh tempo kredit Varchar (10) Varchar (10) Varchar (10) Numeric Datetime Varchar (10) Datetime No Yes Yes Yes Yes Yes Yes No No No No No No No
T abel 4.8 Asosiasi Atribut Returpembelian
Nama Entiti Atribut Deskripsi Tipe data dan length Nulls M ulti valued Returpembelian kdreturpembelian kdsupplier tanggal
Kode retur pembelian Kode supplier Tanggal retur Varchar (10) Varchar (10) Datetime No Yes Yes No No No grandtotal tanggal Total harga Tanggal pembelian Numeric Datetime Yes Yes No No
kdkaryawan status kdpembelian pembelian Kode karyawan Status retur pembelian Kode pembelian Varchar (10) Varchar (10) Varchar (10) Yes Yes Yes No No No
T abel 4.9 Asosiasi Atribut Returpenjualan
Nama Entiti Atribut Deskripsi Tipe data dan length Nulls M ulti valued Returpenjualan kdreturpenjualan kdpelanggan tanggal kdkaryawan status kdpenjualan
Kode retur penjualan Kode pelanggan Tanggal retur penjualan Kode karyawan Status retur penjualan Kode penjualan Varchar (10) Varchar (10) Datetime Varchar (10) Varchar (10) Varchar (10) Yes Yes Yes Yes Yes Yes No No No No No No
T abel 4.10 Asosiasi Atribut Supplier
4.6.1.4 Penentuan Domain Atribut Nama Entitas : Barang
T abel 4.11 Entitas barang
Atribut Domain Value
Kdbarang Range Value B-0000 - B-9999 Namabarang Range Value A-Z, a-z, 0-9 Jenisbarang Range Value A-Z, a-z
Jumlah Range Value 1-99999999
Harga Range Value 1-99999999
Rop Range Value 1-99999999
Hargajual Range Value 1-99999999 Nama
Entiti
Atribut Deskripsi Tipe data dan length Nulls M ulti valued Supplier kdsupplier namasupplier alamat notelepon fax email Kode supplier Nama supplier Alamat supplier No telp supplier No fax supplier Email supplier Varchar (10) Varchar (50) Varchar (100) Int Int Varchar (50) Yes Yes Yes Yes Yes Yes No No No Yes No No
Nama Entitas : karyawan T abel 4.12 Entitas karyawan
Atribut Domain Value
Kdkaryawan Range Value K-0000 - K-9999 Namakaryawan Range Value A-Z, a-z
Jabatan Range Value A-Z, a-z
Alamat Range Value A-Z, a-z, 0-9
Notelepon Range Value 0-9
Gaji Range Value 1-99999999
Password Range Value A-Z, a-z, 0-9
Nama Entitas : pelanggan T abel 4.13 Entitas pelanggan
Atribut Domain Value
Kdpelanggan Range Value P-0000 - P-9999 Namapelanggan Range Value A-Z, a-z
Alamat Range Value A-Z, a-z, 0-9
Notelepon Range Value 0-9
Fax Range Value 0-9
Nama Entitas : pembelian T abel 4.14 Entitas pembelian
Atribut Domain Value
Kdpembelian Range Value B-000000000 - BHB-999999999
Kdkaryawan Range Value K-0000 - K-9999 Kdsupplier Range Value S-0000 - S-9999 Nofakturpembelian Range Value 0-9
Grandtotal Range Value 1-99999999
Tanggal Range Value 0-9, ‘/’
Nama Entitas : penjualan T abel 4.15 Entitas penjualan
Atribut Domain Value
Kdpenjualan Range Value J-000000000 - J-999999999 Kdkaryawan Range Value K-0000 - K-9999
Kdpelanggan Range Value P-0000 - P-9999 Grandtotal Range Value 1-99999999
Tanggal Range Value 0-9, ‘/’
Tipe Range Value ‘Cash’, ‘Credit’ Tgljatuhtempo Range Value 0-9, ‘/’
Nama Entitas : returpembelian T abel 4.16 Entitas retur pembelian
Atribut Domain Value
Kdreturpembelian Range Value 000000000 - RB-999999999
Kdsupplier Range Value S-0000 - S-9999
Tanggal Range Value 0-9, ‘/’
Kdkaryawan Range Value K-0000 - K-9999 Status Range Value ‘Process’, ‘Done’ Kdpembelian Range Value B-000000000 -
BHB-999999999
Nama Entitas : returpenjualan T abel 4.17 Entitas retur penjualan
Atribut Domain Value
Kdreturpenjualan Range Value 000000000 - RJ-999999999
Kdpelanggan Range Value P-0000 - P-9999
Tanggal Range Value 0-9, ‘/’
Kdkaryawan Range Value K-0000 - K-9999 Status Range Value ‘Process’, ‘Done’
Nama Entitas : supplier T abel 4.18 Entitas supplier
Atribut Domain Value
Kdsupplier Range Value S-0000 - S-9999 Namasupplier Range Value A-Z, a-z
Alamat Range Value A-Z, a-z, 0-9
Notelepon Range Value 0-9
Fax Range Value 0-9
Email Range Value A-Z, a-z, 0-9, ‘@’, ‘.’
4.6.1.5 Mengidentifikasi Domain
Pada tabel di atas telah disertakan domain atribut yang akan digunakan pada setiap field yang ada di tiap-tiap tabel.
Mengidentifikasi Candidate dan Primary key T abel 4.19 Identifikasi Candidate dan Prim ary key
Nama Entiti Candidate key Primary key Karyawan Pelanggan Supplier Barang Penjualan Retur_penjualan Pembelian Retur_pembelian
Kdkaryawan, email, gaji Kdpelanggan, email Kdsupplier, email Kdbarang Kdpenjualan Kdretur_penjualan Kdpembelian Kdretur_pembelian Kdkaryawan Kdpelanggan Kdsupplier Kdbarang Kdpenjualan Kdretur_penjualan Kdpembelian Kdretur_pembelian
4.6.1.6 Validasi Model Lokal Konseptual Terhadap Transaksi Dari User
a. M endeskripsikan transaksi 1. M unculkan semua karyawan 2. M unculkan semua supplier 3. M unculkan semua pelanggan 4. M unculkan semua barang
5. M unculkan karyawan yang menerima order penjualan 6. M unculkan karyawan yang melakukan order pembelian
7. M unculkan barang yang dipesan oleh pelanggan pada hari tertentu
8. M unculkan data barang yang dikembalikan oleh pelanggan 9. M unculkan jumlah persediaan barang di gudang
10. M unculkan order pembelian yang dilakukan pada hari tertentu 11. M unculkan transaksi pembelian yang dilakukan pada hari
tertentu
12. M unculkan transaksi penjualan yang dilakukan pada hari tertentu
b.M enggunakan jalur transaksi
4.6.2 Perancangan Database Logikal
4.6.2.1 Menghilangkan Ciri-ciri yang Tidak Sesuai Dalam Relasional Menghilangkan tipe relasional yang many-to-many (*:*) a. Pembelian dengan Barang
Pembelian dan Barang memiliki relasi M enambah *:* oleh karena itu dilakukan penghilangan many-to-many dengan menambahkan satu entitas diantaranya, yaitu Detailpembelian.
Gambar 4.14 Menguraikan Relasi Pembelian dengan Barang
b. Penjualan dengan Barang
Penjualan dan Barang memiliki relasi M engurangi *:* oleh karena itu dilakukan penghilangan many-to-many dengan menambahkan satu entitas diantaranya, yaitu DetailPenjualan.
c. Returpembelian dengan Barang
Returpembelian dan Barang memiliki relasi M enambah *:* oleh karena itu dilakukan penghilangan many-to-many dengan menambahkan satu entitas diantaranya, yaitu Detailreturpembelian.
Gambar 4.16 Menguraikan Relasi Returpembelian Dengan Barang
d. Returpenjualan dengan Barang
Returpenjualan dan Barang memiliki relasi M engurangi *:* oleh karena itu dilakukan penghilangan many-to-many dengan menambahkan satu entitas diantaranya, yaitu Detailreturpenjualan.
Menghilangkan atribut yang multi value a. Karyawan dengan Telp
Entitas Karyawan mempunyai atribut notelepon yang bisa multivalue. Oleh karena itu perlu dilakukan pemisahan menjadi satu entitas baru yaitu TelpKaryawan dengan notelepon sebagai primary key.
Gambar 4.18 Menguraikan Relasi yang Multi Value Pada Karyawan
b. Supplier dengan Telp
Entitas Supplier mempunyai atribut notelepon yang bisa multivalue. Oleh karena itu perlu dilakukan pemisahan menjadi satu entitas baru yaitu TelpSupplier dengan notelepon sebagai primary key.
c. Pelanggan dengan Telp
Entitas Pelanggan mempunyai atribut notelepon yang bisa multivalue. Oleh karena itu perlu dilakukan pemisahan menjadi satu entitas baru yaitu TelpPelanggan dengan notelepon sebagai primary key.
Gambar 4.20 Menguraikan Relasi yang Multi Value Pada Pelanggan
4.6.2.2 Menurunkan Relasional Untuk Model Data Logikal Lokal
Karyawan (Kdkaryawan, Namakaryawan, Alamat, Jabatan, Gaji, Password)
Primary key Kdkaryawan
Pelanggan (Kdpelanggan, Namapelanggan, Alamat, Fax, Email) Primary key Kdpelanggan
Supplier (Kdsupplier, Namasupplier, Alamat, Fax, Email) Primary key Kdsupplier
Barang (Kdbarang, Namabarang, Jenisbarang, Jumlah, Harga, ROP, Hargajual)
Primary key Kdbarang
Pembelian (Kdpembelian, Kdkaryawan, Kdsupplier, nofakturpembelian, Grandtotal, Tanggal)
Primary key Kdpembelian
Foreign key Kdkaryawan references Karyawan (Kdkaryawan) Foreign key Kdsupplier references supplier (Kdsupplier)
Penjualan (Kdpenjualan, Kdkaryawan, Kdpelanggan, Grandtotal, Tanggal, Tipe, Tgljthtempo)
Primary key Kdpenjualan
Foreign key Kdkaryawan references Karyawan (Kdkaryawan) Foreign key Kdpelanggan references Pelanggan (Kdpelanggan)
Returpembelian (Kdreturpembelian, Kdsupplier, Tanggal, Kdkaryawan, Status, Kdpembelian)
Primary key Kdreturpembelian
Foreign key Kdsupplier references supplier (Kdsupplier) Foreign key Kdkaryawan references Karyawan (Kdkaryawan) Foreign key Kdpembelian references Pembelian (Kdpembelian)
Returpenjualan (Kdreturpenjualan, Kdpelanggan, Tanggal, Kdkaryawan, Status, Kdpenjualan)
Primary key Kdreturpenjualan
Foreign key Kdpelanggan references Pelanggan (Kdpelanggan) Foreign key Kdkaryawan references Karyawan (Kdkaryawan) Foreign key Kdpenjualan references Penjualan (Kdpenjualan)
Detailpembelian (Kdpembelian, Kdbarang, Hargabeli, Qty, Totalharga)
Primary key Kdpembelian, Kdbarang
Foreign key Kdpembelian references Pembelian (Kdpembelian) Foreign key Kdbarang references Barang (Kdbarang)
Detailpenjualan ( Kdpenjualan, Kdbarang, Harga, Qty, Totalharga) Primary key Kdpenjualan, Kdbarang
Foreign key Kdpenjualan references Penjualan (Kdpenjualan) Foreign key Kdbarang references Barang (Kdbarang)
Detailreturpembelian (Kdreturpembelian, Kdbarang, Qty) Primary key Kdreturpembelian, Kdbarang
Foreign key Kdreturpembelian references Returpembelian (Kdreturpembelian)
Detailreturpenjualan (Kdreturpenjualan, Kdbarang, Qty) Primary key Kdreturpenjualan, Kdbarang
Foreign key Kdreturpenjualan references Returpenjualan (Kdreturpenjualan)
Foreign key Kdbarang references Barang (Kdbarang)
Teleponkaryawan (Telpkaryawan, Kdkaryawan) (mustina teleponkaryawan)
Primary key Telpkaryawan
Foreign key Kdkaryawan references Karyawan (Kdkaryawan)
Teleponsupplier (Telpsupplier, Kdsupplier) Primary key Telpsupplier
Foreign key Kdsupplier references Supplier (Kdsupplier)
Teleponpelanggan (Telppelanggan, Kdpelanggan) Primary key Telppelanggan
Foreign key Kdpelanggan references Pelanggan (Kdpelanggan)
4.6.2.3 Validasi Relasional Menggunakan Normalisasi Pembelian Barang
UNF
Pembelian = kdpembelian + kdkaryawan + namakaryawan + nofakturpembelian + tanggal + kdsupplier + namasupplier + {kdbarang + namabarang + jenisbarang + hargabeli + hargajual + qty + totalharga}
1NF
Pembelian = @kdpembelian + kdkaryawan + namakaryawan + nofakturpembelian + tanggal + kdsupplier + namasupplier + @kdbarang + namabarang + jenisbarang + hargabeli + hargajual + qty 2NF
Pembelian = @kdpembelian + #kdkaryawan + nofakturpembelian + tanggal + #kdsupplier
Detailpembelian = @kdpembelian+ #kdbarang + qty karyawan = @kdkaryawan + namakaryawan
Supplier = @kdsupplier + namasupplier
Barang = @kdbarang + namabarang + jenis barang + hargabeli + hargajual
Penjualan UNF
Penjualan = kdpenjualan + kdkaryawan + namakaryawan + kdpelanggan + namapelanggan + {kdbarang + namabarang + jenisbarang + harga + qty + totalharga} + grandtotal + pembayaran + kembali
1NF
Penjualan = @kdpenjualan + kdkaryawan + namakaryawan + kdpelanggan + namapelanggan + @kdbarang + namabarang + jenisbarang + harga + qty + pembayaran
2NF
Penjualan = @kdpenjualan + #kdkaryawan + #kdpelanggan + pembayaran
Detailpenjualan = @kdpenjualan + kdbarang + qty Karyawan = @kdkaryawan + namakaryawan Pelanggan = @kdpelanggan + namapelanggan
Barang = @kdbarang + nama barang + jenis barang + harga
Returpembelian UNF
Returpembelian = kdreturpembelian + kdpembelian + kdsupplier + namasupplier + status ambil + {kdbarang + namabarang + jenisbarang + qty}
1NF
Returpembelian = @kdreturpembelian + kdpembelian + kdsupplier + namasupplier + statusambl + @kdbarang + namabarang + jenisbarang + qty
2NF
Returpembelian = @kdreturpembelian + #kdpembelian + #kdsupplier + statusambil
Detailreturpembelian = @kdreturpembelian + #kdbarang + qty Pembelian barang = @kdpembelian + tanggal
Supplier =@kdsupplier + namasupplier
Returpenjualan UNF
Returpenjualan = kdreturpenjualan + kdpenjualan + kdpelanggan + namapelanggan + statusambil + {kdbarang + namabarang + jenisbarang + qty}
1NF
Returpenjualan = @kdreturpenjualan + kdpenjualan + kdpelanggan + namapelanggan + statusambil + @kdbarang + namabarang + jenisbarang + qty
2NF
Returpenjualan = @kdreturpenjualan + #kdpenjualan + #kdpelanggan + statusambil
Detailreturpenjualan = @kdreturpenjualan + #kdbarang + qty Penjualan = @kdpenjualan + tanggal
Pelanggan = @kdpelanggan + namapelanggan Barang = @kdbarang + namabarang + jenisbarang
Supplier UNF
Supplier = kdsupplier + namasupplier + alamat + telepon + fax + email 1NF
Supplier = @kdsupplier + namasupplier + alamat + notelepon + fax + email
Barang UNF
Barang = kdbarang + namabarang + jenisbarang + jumlah + hargabeli + ROP + hargajual
1NF
Barang = @kdbarang + namabarang + jenisbarang + jumlah + hargabeli + ROP + hargajual
Karyawan UNF
Karyawan = kdkaryawan + namakaryawan + alamat + jabatan + no. telepon + gaji + password
1NF
Karyawan = @kdkaryawan + namakaryawan + alamat + jabatan + no. telepon + gaji + password
Pelanggan UNF
Pelanggan = kdpelanggan + namapelanggan + alamat + notelepon + fax + email
1NF
Pelanggan = @kdpelanggan + namapelanggan + alamat + notelepon + fax + email
NB : @ = primary key # = foreign key
4.6.2.4 Pembentukan Model Data Logikal Global
a. Tabel Relationship Model Data Logikal Global T abel 4.20 T abel relationship model data logikal global Nama Entitas Multi
plicity
Relationship Nama Entitas Multiplic ity
Supplier 1..1 M emiliki Teleponsupplier 1..*
1..1 M emiliki Pembelian 1..*
Pelanggan 1..1 M emiliki Teleponpelanggan 1..*
1..1 M emiliki Penjualan 1..*
Karyawan 1..1 M emiliki Teleponkaryawan 1..*
1..1 M emiliki Penjualan 0..*
1..1 M emiliki Pembelian 1..*
1..1 M emiliki Returpenjualan 0..*
1..1 M emiliki Returpembelian 0..*
Penjualan 1..* M emiliki Pelanggan 1..1
0..1 M emiliki Karyawan 1..1
1..1 M emiliki Returpenjualan 0..*
1..1 M emiliki Detilpenjualan 1..*
Pembelian 1..* M emiliki Supplier 1..1
1..* M emiliki Karyawan 1..1
1..1 M emiliki Detailpembelian 1..*
1..1 M emiliki Returpembelian 0..*
1..1 Terdiri dari Detailpenjualan 0..*
1..1 Terdiri dari Detailreturpembelian 0..*
1..1 Terdiri dari Detailreturpenjualan 0..*
Returpembelian 0..* M emiliki Karyawan 1..1
0..* M emiliki Pembelian 1..1
1..1 M emiliki Detailreturpembelian 1..* Returpenjualan 0..* M emiliki Karyawan 1..1
0..* M emiliki Penjualan 1..1
1..* M emiliki Detailreturpenjualan 1..1
b. S pesifikasi Database Baru T abel 4.21 T abel spesifikasi database baru
No Nama Tabel Keterangan
1. Supplier Tabel yang menyimpan data barang yang
dibeli dari supplier dan dijual ke banyak pelanggan
2. Pelanggan Tabel yang menyimpan data pelanggan yang terdaftar dan melakukan transaksi pembelian barang
3. Karyawan Tabel yang menyimpan data karyawan yang terdaftar pada PT Solusi Corporindo Teknologi
4. Penjualan Tabel yang menyimpan data yang berisi informasi tentang barang yang dipesan oleh pelanggan. Dan yang berisi informasi tentang tagihan penjualan yang
dilakukan perusahaan.
5. Pembelian Tabel yang menyimpan data yang berisi informasi tentang barang yang akan dibeli oleh perusahaan. Dan M erupakan entiti yang berisi informasi tentang tagihan pembelian yang diterima perusahaan. 6. Barang Tabel yang menyimpan data yang berisi
informasi tentang stok dan status dari barang.
7. Returpembelian Tabel yang menyimpan data yang berisi tentang data barang yang dikembalikan ke supplier
8. Returpenjualan Tabel yang menyimpan data yang berisi tentang data barang yang dikembalikan oleh pelanggan.
9. Detailpenjualan Tabel yang menyimpan data yang berisi informasi secara rinci tentang barang yang dipesan oleh pelanggan. Dan yang berisi informasi tentang tagihan penjualan yang dilakukan perusahaan.
10. Detailpembelian Tabel yang menyimpan data yang berisi informasi secara rinci tentang barang yang akan dibeli oleh perusahaan. Dan M erupakan entiti yang berisi informasi tentang tagihan pembelian yang diterima perusahaan.
11. Detailreturpenjualan Tabel yang menyimpan data yang berisi secara rinci tentang data barang yang dikembalikan oleh pelanggan.
12. Detailreturpembelian Tabel yang menyimpan data yang berisi secara rinci tentang data barang yang
dikembalikan ke supplier
13. Teleponsupplier Tabel yang menyimpan data telepon supplier
14. Teleponkaryawan Tabel yang menyimpan data telepon karyawan
15. Teleponpelanggan Tabel yang menyimpan data telepon pelanggan
c. Tabel Atribut Model Data Logikal Global 1. Supplier
T abel 4.22 Atribut supplier PK atau
FK
Atribut Deskripsi Panjang dan Tipe Data
Nulls Multi-Valued PK kdsupplier Kode Supplier Varchar (10) Yes No namasupplier Nama Supplier Varchar (50) Yes No
alamat Alamat
Supplier
Varchar (100) Yes No
fax Fax Supplier Int Yes No
email Email Supplier Varchar (50) Yes No
2. Pelanggan T abel 4.23 Atribut Pelanggan
PK atau FK
Atribut Deskripsi Panjang
dan Tipe Data Nulls Multi-Valued PK kdpelanggan Kode Pelanggan Varchar (10) Yes No
namapelanggan Nama Pelanggan Varchar (50) Yes No alamat Alamat Pelanggan Varchar (100) Yes No
fax Fax Pelanggan Int Yes No
email Email Pelanggan Varchar (50) Yes No 3. Karyawan T abel 4.24 Atribut karyawan PK atau
FK
Atribut Deskripsi Panjang
dan Tipe Data
Nulls Multi-Valued
PK kdkaryawan Kode Karyawan Varchar (50) No No namakaryawan Nama Karyawan Varchar (50) Yes No
alamat Alamat Karyawan Varchar
(100)
Yes No
jabatan Jabatan Karyawan Varchar (20) Yes No
gaji Gaji Pelanggan Int Yes No
password Password Karyawan Varchar (20) Yes No
4. Penjualan T abel 4.25 Atribut penjualan PK atau
FK
Atribut Deskripsi Panjang
dan Tipe Data Nulls Multi-Valued PK kdpenjualan Kode Penjualan Varchar (10) No No
FK kdkaryawan Kode Karyawan Varchar (10) Yes No kdpelanggan Kode Pelanggan Varchar (10) Yes No
grandtotal Total Harga Numeric Yes No tanggal Tanggal Penjualan Datetime Yes No tipe Tipe Barang Varchar(10) Yes No tanggaljatuhtempo Tanggal Jatuh Tempo Kredit Datetime Yes No 5. Pembelian T abel 4.26 Atribut Pembelian
PK atau FK
Atribut Deskripsi Panjang
dan Tipe Data Nulls Multi-Valued PK kdpembelian Kode Pembelian Varchar (10) No No FK kdkaryawan Kode Karyawan Varchar (10) Yes No FK kdsupplier Kode Supllier Varchar (10) Yes No nofakturpembelian Nomor Faktur Pembelian Varchar (20) Yes No
grandtotal Total Harga Numeric Yes No tanggal Tanggal
Pembelian
6. Barang T abel 4.27 Atribut barang
7. Retur Pembelian T abel 4.28 Atribut Pembelian
PK atau FK
Atribut Deskripsi Panjang
dan Tipe Data
Nulls Multi-Valued
PK kdreturpembelian Kode Retur Pembelian Varchar (10) No No FK kdsupplier Kode Supplier Varchar (10) Yes No tanggal Tanggal Retur Pembelian Datetime Yes No
FK kdkaryawan Kode Varchar (10) Yes No PK atau
FK
Atribut Deskripsi Panjang
dan Tipe Data Nulls Multi-Valued PK kdbarang Kode Barang Varchar (10) No No namabarang Nama Barang Varchar (100) Yes No jenisbarang Jenis Barang Varchar (10) Yes No jumlah Jumlah Barang Int Yes No hargabeli ROP Harga beli ROP Int Int Yes Yes No No
Karyawan
status Status Retur
Pembelian Varchar (10) Yes No FK kdpembelian Kode Pembelian Varchar (10) Yes No 8. Retur Penjualan T abel 4.29 Atribut retur penjualan PK atau
FK
Atribut Deskripsi Panjang
dan Tipe Data
Nulls Multi-Valued
PK kdreturpenjualan Kode Retur Pembelian Varchar (10) Yes No FK kdpelanggan Kode Pelanggan Varchar (10) Yes No FK kdkaryawan Kode Karyawan Varchar (10) Yes No FK kdpenjualan Kode Penjualan Varchar (10) Yes No
status Status Retur
Penjualan Varchar (10) Yes No tanggal Tanggal Retur Penjualan Datetime Yes No 9. Detail Penjualan T abel 4.30 Atribut detail penjualan PK atau
FK
Atribut Deskripsi Panjang
dan Tipe Data
Nulls Multi-Valued
Penjualan FK kdbarang Kode
Barang
Varchar (10) Yes No
harga Harga Int Yes No
qty Jumlah
barang yang terjual
Int Yes No
totalharga Total Harga Numeric Yes No
10. Detail Pembelian T abel 4.31 Atribut detail pembelian PK atau
FK
Atribut Deskripsi Panjang
dan Tipe Data Nulls Multi-Valued PK kdpembelian Kode Pembelian Varchar (10) Yes No FK kdbarang Kode Barang Varchar (10) Yes No
hargabeli Harga Beli Int Yes No
qty Jumlah
barang yang terjual
Int Yes No
totalharga Total Harga Numeric Yes No
11. Detail Retur Penjualan T abel 4.32 Atribut detail retur penjualan
PK atau FK
Atribut Deskripsi Panjang
dan Tipe Data
Nulls Multi-Valued
PK kdreturpenjualan Kode Retur Penjualan
FK kdbarang Kode Barang Varchar (10) Yes No qty Jumlah barang yang diretur Int Yes No
12. Detail Retur Pembelian T abel 4.33 Atribut detail retur pembelian PK atau
FK
Atribut Deskripsi Panjang
dan Tipe Data
Nulls Multi-Valued
PK kdreturpembelian Kode Retur Pembelian Varchar (10) No No FK kdbarang Kode Barang Varchar (10) Yes No qty Jumlah barang yang diretur Int Yes No 13. Telepon Supplier T abel 4.34 Atribut telepon supplier
PK atau FK
Atribut Deskripsi Panjang
dan Tipe Data Nulls Multi-Valued PK telpsupplier Telepon Supplier
Int Yes Yes
FK kdsupplier Kode
Supplier
14. Telepon Karyawan T abel 4.35 Atribut telepon karyawan PK atau
FK
Atribut Deskripsi Panjang
dan Tipe Data Nulls Multi-Valued PK telpkaryawan Telepon karyawan
Int Yes Yes
FK kdsupplier Kode
Supplier
Varchar (10) Yes No
15. Telepon Pelanggan T abel 4.36 Atribut telepon pelanggan PK atau
FK
Atribut Deskripsi Panjang
dan Tipe Data Nulls Multi-Valued PK telppelanggan Telepon Pelanggan
Int Yes Yes
FK kdsupplier Kode
Supplier
Varchar (10) Yes No
Batasan Domain Atribut
a. kdsupplier harus diisi 5 karakter dan diawali dengan huruf S b. kdpelanggan harus diisi 5 karakter dan diawali dengan huruf P
c. kdkaryawan harus diisi 5 karakter dan diawali dengan huruf K
d. kdpenjualan harus diisi 10 karakter dan diawali dengan huruf J, baik pada penjualan tunai maupun kredit
f. kdbarang harus diisi 5 karakter dan diawali dengan huruf B
g. kdreturpembelian harus diisi 10 karakter dan diawali dengan huruf RB
h. kdreturpenjualan harus diisi 10 karakter dan diawali dengan huruf RJ i. teleponkaryawan harus diisi dan tidak boleh diisi lebih dari 15 karakter
j. teleponsupplier harus diisi dan tidak boleh diisi lebih dari 15 karakter
k. teleponpelanggan harus diisi dan tidak boleh diisi lebih dari 15 karakter l. password karyawan maksimal diisi sebanyak 50 karakter
m. status ambil pada returpenjualan harus diisi dengan process atau done n. status ambil pada returpembelian harus diisi dengan process atau done
Integritas Entitas
a. Tabel Supplier harus mempunyai atribut primary key kdsupplier
b. Tabel Pelanggan harus mempunyai atribut primary key kdpelanggan c. Tabel Karyawan harus mempunyai atribut primary key kdkaryawan
d. Tabel Penjualan harus mempunyai atribut primary key kdpenjualan
e. Tabel Pembelian harus mempunyai atribut primary key kdpembelian f. Tabel Barang harus mempunyai atribut primary key kdbarang
h. Tabel Returpenjualan harus mempunyai atribut primary key kdreturpenjualan i. Tabel Persediaan harus mempunyai atribut primary key kdbarang
j. Tabel Detailpenjualan harus mempunyai atribut primary key kddetailpenjualan dan kdbarang
k. Tabel Detailpembelian harus mempunyai atribut primary key kddetailpembelian dan kdbarang
l. Tabel Detailreturpenjualan harus mempunyai atribut primary key kdreturpenjualan dan kdbarang
m. Tabel Detailreturpembelian harus mempunyai atribut primary key kdreturpembelian dan kdbarang
n. Tabel Teleponsupplier harus mempunyai atribut primary key telpsupplier dan kdsupplier
o. Tabel Teleponkaryawan harus mempunyai atribut primary key telpkaryawan dan kdkaryawan
p. Tabel Teleponpelanggan harus mempunyai atribut primary key telppelanggan dan kdpelanggan
Integritas Referensial
1. Kdkaryawan di dalam tabel karyawan terhubung dengan kdkaryawan yang terdapat pada tabel pembelian, penjualan, teleponkaryawan, returpenjualan dan returpembelian.
2. Kdsupplier di dalam tabel supplier terhubung dengan kdsupplier yang terdapat pada tabel pembelian, returpembelian, dan teleponsupplier.
3. Kdpelanggan di dalam tabel pelanggan terhubung dengan kdpelanggan yang terdapat pada tabel penjualan, returpenjualan dan teleponpelanggan.
4. Kdbarang di dalam tabel barang terhubung dengan kdbarang yang terdapat pada tabel detailpembelian, detailpenjualan, detailreturpembelian dan detail
returpenjualan.
5. Kdpenjualan di dalam tabel penjualan terhubung dengan kdpenjualan yang terdapat pada tabel returpenjualan dan detailpenjualan.
6. Kdpembelian di dalam tabel pembelian terhubung dengan kdpembelian yang terdapat pada tabel returpembelian dan detailpembelian.
4.6.2.5 Memvalidasi Model Data Logikal Global Terhadap Transaksi User
Keterangan :
a. Membuat, memasukkan dan mengubah data supplier b. Membuat, memasukkan dan mengubah data karyawan c. Membuat, memasukkan dan mengubah data pelanggan d. Membuat, memasukkan dan mengubah data barang e. Membuat, memasukkan dan menyimpan data pembelian f. Menampilkan data laporan pembelian
g. Membuat, memasukkan dan menyimpan data retur pem belian h. Menampilkan data laporan retur pembelian
i. Membuat, memasukkan dan menyimpan data penjualan j. Menampilkan data laporan penjualan
k. Membuat, memasukkan dan menyimpan data retur penjualan l. Menampilkan data laporan retur penjualan
m. Membuat , memasukkan dan mengubah data telepon supplier n. Membuat , memasukkan dan mengubah data telepon karyawan o. Membuat , memasukkan dan mengubah data telepon pelanggan p. Membuat, memasukkan dan menyimpan data detail pem belian q. Membuat, memasukkan dan menyimpan data detail ret ur pembelian r. Membuat, memasukkan dan menyimpan data detail penjualan s. Membuat, memasukkan dan menyimpan data detail ret ur penjualan
4.6.3 Perancangan Database Fisikal
Perancangan database secara fisikal yaitu proses menghasilkan gambaran dari pelaksanaan database pada penyimpan sekunder, yang menguraikan relasi dasar, berkas-berkas organisasi dan indeks yang digunakan untuk mencapai pengaksesan yang efisien pada data, dan segala ukuran keamanan dan batasan integritas yang berhubungan.
4.6.3.1 Perancangan Database Relasional
Informasi yang dibutuhkan dalam perancangan database fisikal dapat diperoleh melalui kamus data dan mendefinisikan penggambaran relasional menggunakan Database Design Language (DBDL). Berikut ini adalah perancangan database relasional untuk setiap entiti yang bertujuan untuk domain dari setiap atribut supaya user dapat mengerti penggunaan setiap atribut tersebut berdasarkan penjelasan dan batasan yang terdapat dalam setiap atribut.
• DBDL untuk Karyawan
Domain Kode karyawan Varchar (10)
Domain Nama karyawan Varchar (50) Domain Jabatan Varchar (20) Domain Alamat karyawan Varchar (100) Domain Gaji karyawan Int
Karyawan (
KdKaryawan Kode karyawan NOT NULL, NamaKaryawan Nama karyawan NOT NULL,
KdJabatan Jabatan NOT NULL, Alamat Alamat karyawan NOT NULL, Gaji Gaji karyawan NOT NULL,
PRIMARY KEY (kdkaryawan),
);
• DBDL untuk Pelanggan
Domain Kode pelanggan Varchar (10)
Domain Nama pelanggan Varchar (50) Domain Alamat pelanggan Varchar (100) Domain No Fax pelanggan Int
Domain Email pelanggan Varchar (50) Pelanggan (
Kdpelanggan Kode pelanggan NOT NULL, Namapelanggan Nama pelanggan NOT NULL, Alamat Alamat pelanggan NOT NULL, Fax No Fax pelanggan NULL, Email Email pelanggan NULL, PRIMARY KEY (kdpelanggan)
);
• DBDL untuk Supplier
Domain Kode supplier Varchar (10) Domain Nama supplier Varchar (50)
Domain Alamat supplier Varchar (100) Domain No fax supplier Int
Domain Email supplier Varchar (50) Supplier (
KdSupplier Kode supplier NOT NULL, NamaSupplier Nama supplier NOT NULL,
Alamat Alamat supplier NOT NULL, Fax No fax supplier NULL, Email Email supplier NULL, PRIMARY KEY (KdSupplier)
);
• DBDL untuk Barang
Domain Kode barang Varchar (10) Domain Nama Barang Varchar (100) Domain Jenis Barang Varchar (10) Domain Jumlah Barang Int
Domain Harga Beli Int
Domain ROP Int
Domain Harga Jual Int
Domain Kode supplier Varchar (10) Barang (
NamaBarang Nama Barang NOT NULL, KdJenis Jenis Barang NOT NULL, Jumlah Jumlah Barang NOT NULL, HargaBeli Harga Beli NOT NULL,
ROP ROP NOT NULL,
HargaJual Harga Jual NOT NULL, KdSupplier Kode supplier NOT NULL, PRIMARY KEY (kdbarang),
CONSTRAINT FK_M sBarang
FOREIGN KEY (KdSupplier) REFERENCES M s_Supplier (KdSupplier) ON DELETE NO ACTION ON UPDATE CASCADE,
CONSTRAINT Ms_Barang1 CHECK (ROP > 0), CONSTRAINT Ms_Barang2 CHECK (Jumlah >= 0), CONSTRAINT Ms_Barang3 CHECK (HargaBeli > 0), CONSTRAINT Ms_Barang4
CHECK (HargaJual > HargaBeli) );
• DBDL untuk Pembelian
Domain Kode pembelian Varchar (10) Domain Kode karyawan Varchar (10)
Domain Kode supplier Varchar (10)
Domain Tanggal Datetime
Pembelian (
KdPembelian Kode pembelian NOT NULL, KdKaryawan Kode karyawan NOT NULL, KdSupplier Kode supplier NOT NULL,
Tanggal Tanggal NOT NULL,
PRIMARY KEY (KdPembelian)
CONSTRAINT FK_TrPembelian1
FOREIGN KEY (KdKaryawan) REFERENCES M s_Karyawan
(KdKaryawan) ON DELETE NO ACTION ON UPDATE CASCADE, CONSTRAINT FK_TrPembelian2
FOREIGNKEY (KdSupplier) REFERENCES M s_Supplier (KdSupplier) ON DELETE NO ACTION ON UPDATE CASCADE
);
• DBDL untuk Detail Pembelian
Domain Kode pembelian Varchar (10) Domain Kode Barang Varchar (10)
Domain Jumlah Int
Detail Pembelian (
KdPembelian Kode pembelian NOT NULL, KdBarang Kode karyawan NOT NULL,
CONSTRAINT PK_TrDetailPembelian PRIMARY KEY (KdPembelian, KdBarang),
CONSTRAINT FK_TrDetailPembelian1
FOREIGN KEY (KdPembelian) REFERENCES Tr_Pembelian (KdPembelian) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT FK_TrDetailPembelian2
FOREIGN KEY (KdBarang) REFERENCES M s_Barang (KdBarang) ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT TrDetailPembelian1 CHECK (Qty >= 1)
);
• DBDL untuk Retur Pembelian
Domain Kode retur pembelian Varchar (10) Domain Kode pembelian Varchar (10) Domain Kode karyawan Varchar (10)
Domain Tanggal Datetime
Domain Status Varchar (10) Pembelian (
KdReturPembelian Kode retur pembelian NOT NULL, KdPembelian Kode pembelian NOT NULL, KdKaryawan Kode karyawan NOT NULL,
Tanggal Tanggal NOT NULL,
PRIMARY KEY (KdReturPembelian)
CONSTRAINT FK_TrReturPembelian1 FOREIGN KEY (KdPembelian) REFERENCES Tr_Pembelian (KdPembelian) ON DELETE CASCADE ON UPDATE CASCADE );
• DBDL untuk Detail Retur Pembelian
Domain Kode retur pembelian Varchar (10) Domain Kode barang Varchar (10) Domain Jumlah retur Int
Detail Retur Pembelian (
KdReturPembelian Kode retur pembelian NOT NULL, KdBarang Kode barang NOT NULL, QtyRetur Jumlah retur NOT NULL, CONSTRAINT PK_TrDetailReturBeli
PRIMARY KEY (KdReturPembelian, KdBarang),
CONSTRAINT FK_TrDetailReturBeli1
FOREIGN KEY (KdReturPembelian) REFERENCES Tr_ReturPembelian (KdReturPembelian) ON DELETE CASCADE ON UPDATE
CASCADE,
CONSTRAINT FK_TrDetailReturBeli2
FOREIGN KEY (KdBarang) REFERENCES M s_Barang (KdBarang) ON DELETE NO ACTION ON UPDATE NO ACTION,
CHECK (QtyRetur >= 1) );
• DBDL untuk Penjualan
Domain Kode penjualan Varchar (10) Domain Kode karyawan Varchar (10) Domain Kode pelanggan Varchar (50) Domain Tanggal penjualan Datetime Domain Tipe barang Varchar (10) Domain Tanggal jatuh tempo kredit Datetime
Penjualan (
KdPenjualan Kode penjualan NOT NULL, KdKaryawan Kode karyawan NOT NULL, KdPelanggan Kode pelanggan NOT NULL, Tanggal Tanggal Penjualan NOT NULL,
Tipe Tipe barang NOT NULL,
TglJatuhTempo Tanggal jatuh tempo kredit NOT NULL, PRIMARY KEY (KdPenjualan)
CONSTRAINT FK_TrPenjualan1
FOREIGN KEY (KdKaryawan) REFERENCES M s_Karyawan
(KdKaryawan) ON DELETE NO ACTION ON UPDATE CASCADE,
CONSTRAINT FK_TrPenjualan2 \
FOREIGN KEY (KdPelanggan) REFERENCES M s_Pelanggan
CONSTRAINT TrPenjualan3 CHECK (TglJatuhTempo > GETDATE())
);
• DBDL untuk Detail Penjualan
Domain Kode penjualan Varchar (10) Domain Kode barang Varchar (10)
Domain Jumlah Int
Detail Penjualan (
KdPenjualan Kode penjualan NOT NULL, KdBarang Kode barang NOT NULL, Qty Jumlah NOT NULL,
CONSTRAINT PK_TrDetailPenjualan PRIMARY KEY (KdPenjualan, KdBarang),
CONSTRAINT FK_TrDetailPenjualan1
FOREIGN KEY (KdPenjualan) REFERENCES Tr_Penjualan (KdPenjualan) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT FK_TrDetailPenjualan2
FOREIGN KEY (KdBarang) REFERENCES M s_Barang (KdBarang) ON DELETE NO ACTION ON UPDATE CASCADE,
CONSTRAINT TrDetailPenjualan1 CHECK (Qty >= 1)
• DBDL untuk Retur Penjualan
Domain Kode retur penjualan Varchar (10) Domain Kode penjualan Varchar (10) Domain Kode karyawan Varchar (10) Domain Kode tanggal Datetime Domain Kode status Varchar (10) Retur Penjualan (
KdReturPenjualan Kode retur penjualan NOT NULL, KdPenjualan Kode penjualan NOT NULL, KdKaryawan Kode karyawan NOT NULL,
Tanggal Tanggal NOT NULL,
Status Status NOT NULL,
PRIMARY KEY (KdReturPenjualan)
CONSTRAINT FK_TrReturPenjualan1 FOREIGN KEY (KdPenjualan) REFERENCES Tr_Penjualan (KdPenjualan) ON DELETE CASCADE ON UPDATE CASCADE );
• DBDL untuk Detail Retur Penjualan
Domain Kode retur penjualan Varchar (10) Domain Kode barang Varchar (10) Domain Jumlah retur Int
Retur Penjualan (
KdBarang Kode barang NOT NULL, QtyRetur Jumlah retur NOT NULL, CONSTRAINT PK_TrDetailReturJual
PRIMARY KEY (KdReturPenjualan, KdBarang), CONSTRAINT FK_TrDetailReturJual1
FOREIGN KEY (KdReturPenjualan) REFERENCES
Tr_ReturPenjualan (KdReturPenjualan) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT FK_TrDetailReturJual2
FOREIGN KEY (KdBarang) REFERENCES M s_Barang (KdBarang) ON DELETE NO ACTION ON UPDATE CASCADE,
CONSTRAINT TrDetailReturJual1 CHECK (QtyRetur >= 1)
);
• DBDL untuk Telpkaryawan
Domain No telp karyawan Int
Domain KdKaryawan Varchar(10) Telpkaryawan (
Telpkaryawan No telp karyawan NOT NULL, Kdkaryawan Kodekaryawan NOT NULL, PRIMARY KEY (Telpkaryawan),
FOREIGN KEY (Kdkaryawan) REFERENCES Karyawan (Kdkaryawan) ON UPDATE CASCADE ON DELETE SET NULL
);
• DBDL untuk Telppelanggan
Domain No telp pelanggan Int
Domain Kdpelanggan Varchar(10) Telppelanggan (
Telppelanggan No telp pelanggan NOT NULL, Kdpelanggan Kodepelanggan NOT NULL, PRIMARY KEY (Telppelanggan),
FOREIGN KEY (Kdpelanggan) REFERENCES Pelanggan (Kdpelanggan) ON UPDATE CASCADE ON DELETE SET NULL
);
• DBDL untuk Telpsupplier
Domain No telp supplier Int
Domain Kdsupplier Varchar(10) Telpsupplier (
Telpsupplier No telp supplier NOT NULL, Kdsupplier Kodesupplier NOT NULL, PRIMARY KEY (Telpsupplier),
FOREIGN KEY (Kdsupplier) REFERENCES supplier (Kdsupplier) ON UPDATE CASCADE ON DELETE SET NULL
);
4.6.3.2 Estimasi Kebutuhan Disk
Tujuan dari langkah ini adalah untuk menghitung kapasitas penyimpanan yang dibutuhkan oleh database.
Perkiraan kebutuhan disk setiap Tabel adalah sebagai berikut: T abel 4.37 Estimasi Karyawan
Field Type Ukuran
KdKaryawan Varchar (10) 10
NamaKaryawan Varchar (50) 50
KdJabatan Varchar (20) 20
Alamat Varchar (100) 100
Gaji Int 15 Kapasitas dari tabel Karyawan adalah 195 byte
Diperkirakan dalam 1 bulan terjadi pertambahan ± 1 karyawan baru Dalam 1 tahun pertumbuhan tabel ini adalah 12 * 195 = 2340 byte
T abel 4.38 Estimasi Pelanggan
Field Type Ukuran
KdPelanggan Varchar (10) 10
NamaPelanggan Varchar (50) 50
Alamat Varchar (100) 100
Fax Int 15
Email Varchar (50) 50
Kapasitas dari tabel Pelanggan adalah 225 byte
Diperkirakan dalam 1 bulan terjadi pertambahan ± 100 pelanggan baru Dalam 1 tahun pertumbuhan tabel ini adalah 12 * 100 * 225 = 270000 byte
T abel 4.39 Estimasi Supplier
Field Type Ukuran
KdSupplier Varchar (10) 10
NamaSupplier Varchar (50) 50
Alamat Varchar (100) 100
Fax Int 15
Email Varchar (50) 50
Kapasitas dari tabel supplier adalah 225 byte
Diperkirakan dalam 1 bulan terjadi pertambahan ± 1 supplier baru Dalam 1 tahun pertumbuhan tabel ini adalah 12 * 1 * 225 = 2700 byte
T abel 4.40 Estimasi Barang
Field Type Ukuran
KdBarang Varchar (10) 10 NamaBarang Varchar (100) 100 KdJenis Varchar (10) 10 Jumlah Int 4 HargaBeli Int 18 HargaJual Int 18 ROP Int 4 KdSupplier Varchar (10) 10
Kapasitas dari tabel Barang adalah 174 byte
Diperkirakan dalam 1 bulan terjadi pertambahan ± 5 barang baru Dalam 1 tahun pertumbuhan tabel ini adalah 12 * 5 * 174 = 10440 byte
T abel 4.41 Estimasi Penjualan
Field Type Ukuran
KdPenjualan Varchar (10) 10 KdKaryawan Varchar(10) 10 KdPelanggan Varchar (10) 10 Tanggal Date/time 8 Tipe Varchar (10) 10 TgljatuhTempo Date/time 8
Kapasitas dari tabel Pemesanan_Penjualan adalah 56 byte
Diperkirakan dalam 1 bulan terjadi pertambahan ± 600 pemesanan penjualan Dalam 1 tahun pertumbuhan tabel ini adalah 12 * 600 * 56 = 403200 byte
T abel 4.42 Retur Penjualan
Field Type Ukuran
Kdreturpenjualan Varchar (10) 10
Kdpenjualan Varchar (10) 10
Kdkaryawan Varchar (10) 10
Tanggal Date/time 8
Status Vachar (10) 10
Kapasitas dari tabel Pengembalian_Penjualan adalah 48 byte
Diperkirakan dalam 1 bulan terjadi pertambahan ± 100 pengembalian penjualan Dalam 1 tahun pertumbuhan tabel ini adalah 12 * 100 * 48 = 57600 byte
T abel 4.43 Detail Penjualan
Field Type Ukuran
Kdpenjualan Varchar (10) 10
Kdbarang Varchar (10) 10
Qty Int 4 Kapasitas dari tabel Detail_Penjualan adalah 24 byte
Diperkirakan dalam 1 bulan terjadi pertambahan ± 100 detail penjualan Dalam 1 tahun pertumbuhan tabel ini adalah 12 * 100 * 24 = 28800 byte
T abel 4.44 Detail Retur Penjualan
Field Type Ukuran
Kdreturpenjualan Varchar (10) 10
Kdbarang Varchar (10) 10
Qtyretur Int 4 Kapasitas dari tabel Detail_Retur_Penjualan adalah 24 byte
Diperkirakan dalam 1 bulan terjadi pertambahan ± 100 detail retur penjualan Dalam 1 tahun pertumbuhan tabel ini adalah 12 * 100 * 24 = 28800 byte
T abel 4.45 Pembelian
Field Type Ukuran
Kdpembelian Varchar (10) 10
Kdkaryawan Varchar (10) 10
Kdsupplier Varchar (10) 10
Tanggal Date/time 8
Kapasitas dari tabel Pemesanan_Pembelian adalah 38 byte
Diperkirakan dalam 1 bulan terjadi pertambahan ± 700 pemesanan pembelian Dalam 1 tahun pertumbuhan tabel ini adalah 12 * 700 * 38= 277200 byte
T abel 4.46 Retur Pembelian
Field Type Ukuran
Kdreturpembelian Varchar (10) 10
Kdpembelian Varchar (10) 10
Kdkaryawan Varchar (10) 10
Tanggal Date/time 8
Status Varchar (10) 10
Kapasitas dari tabel Pengembalian_Pembelian adalah 48 byte
Diperkirakan dalam 1 bulan terjadi pertambahan ± 100 pengembalian pembelian Dalam 1 tahun pertumbuhan tabel ini adalah 12 * 100 * 48 = 56400 byte
T abel 4.47 Detail Pembelian
Field Type Ukuran
Kdpembelian Varchar (10) 10
Kdbarang Varchar (10) 10
Qty Int 4 Kapasitas dari tabel Detail_Pembelian adalah 24 byte
Diperkirakan dalam 1 bulan terjadi pertambahan ± 100 detail pembelian Dalam 1 tahun pertumbuhan tabel ini adalah 12 * 100 * 24 = 28800 byte
T abel 4.48 Detail Retur Pembelian
Field Type Ukuran
Kdreturpembelian Varchar (10) 10
Kdbarang Varchar (10) 10
Qtyretur Int 4 Kapasitas dari tabel Detail_Retur_Pembelian adalah 24 byte
Diperkirakan dalam 1 bulan terjadi pertambahan ± 100 detail retur pembelian Dalam 1 tahun pertumbuhan tabel ini adalah 12 * 100 * 24 = 28800 byte
T abel 4.49 T elepon karyawan
Field Type Ukuran
Telpkaryawan Int 15
Kdkaryawan Varchar (10) 10
Kapasitas dari tabel Telp_karyawan adalah 25 byte
Diperkirakan dalam 1 bulan terjadi pertambahan ± 1 telpkaryawan Dalam 1 tahun pertumbuhan tabel ini adalah 12 * 1 * 25 = 300 byte
T abel 4.50 T elepon pelanggan
Field Type Ukuran
Telppelanggan Int 15
Kdkaryawan Varchar (10) 10
Kapasitas dari tabel Telp_pelanggan adalah 25 byte
Diperkirakan dalam 1 bulan terjadi pertambahan ± 300 telppelanggan Dalam 1 tahun pertumbuhan tabel ini adalah 12 * 300 * 25 = 72000 byte
T abel 4.51 T elepon supplier
Field Type Ukuran
Telpsupplier Int 15
Kdkaryawan Varchar (10) 10
Kapasitas dari tabel Telp_supplier adalah 25 byte
Diperkirakan dalam 1 bulan terjadi pertambahan ± 1 telpsupplier Dalam 1 tahun pertumbuhan tabel ini adalah 12 * 1 * 25 = 300 byte
T abel 4.52 Estimasi Kebutuhan Disk
Nama Tabel Kapasitas dalam 1 tahun
Karyawan 2.340 byte
Telepon Karyawan 300 byte
Pelanggan 270.000 byte
Telepon Pelanggan 90.000 byte
Supplier 2.700 byte
Telepon Supplier 300 byte
Barang 10.440 byte
Penjualan 403.200 byte
Detail Penjualan 28.800 byte
Retur Penjualan 57.600 byte
Pembelian 319.200 byte
Retur Pembelian 57.600 byte
Detail Pembelian 28.800 byte
Detail Retur Pembelian 28.800 byte
Total space yang dibutuhkan dalam 1 tahun adalah 1.328.880 byte
4.6.3.3 Pemilihan DBMS
Pemilihan DBM S merupakan pemilihan dari DBM S tertentu untuk mendukung aplikasi database. Jika tidak ada DBM S, suatu bagian yang tepat dari siklus hidup yang mana untuk membuat suatu pemilihan adalah di antara tahap perancangan database konseptual dan logikal.
Di bawah ini merupakan perbandingan DBM S antara Microsoft Access dengan Microsoft SQL Server 2005 yaitu :
T abel 4.53 Perbandingan antara Microsoft Access dan Microsoft SQL Server 2005
Microsoft Access 2000 Microsoft S QL 2005
M endukung Sistem Operasi dengan Windows 95, Windows 98, Windows 98 Second Edition, Windows Millennium Edition (Windows M E), Windows NT 4.0 dengan Service Pack 6 (SP 6), Windows 2000, atau Windows XP.
M endukung platform Windows, termasuk Windows 9x, Windows NT, Windows 2000, dan Windows XP
Processor yang dibutuhkan adalah Pentium 75 MHz atau yang lebih tinggi.
Processor yang dibutuhkan adalah Pentium 166 MHz atau yang lebih tinggi.
Dibutuhkan 8 M B RAM untuk Access 2000, ditambah 4 M B RAM untuk setiap aplikasi agar bekerja secara simultan, ditambah memory untuk Sistem Operasi : * 16 M B RAM untuk Windows 95 atau
Windows 98
* 32 MB RAM untuk Windows M E atau Windows NT
* 64 M B RAM untuk Windows 2000 * 128 M B RAM untuk Windows XP
M emory yang dibutuhkan adalah 32 M B RAM (minimum untuk Desktop Engine), 64 M B RAM (minimum untuk semua edisi lainnya), 128 M B RAM .
Ruang Hard Disk yang diperlukan melebihi 30 M B dari ruang Hard Disk
Ruang Hard Disk yang perlu disediakan adalah 270 M B (full installation), 250 M B (typical), 95 M B (minimum).
Desktop Engine : 44 M B
Analysis Services : 50 M B (minimum) dan 130 M B (typical)
English Query : 80 M B
M ampu menampung hingga 2 GB M ampu menampung hingga 1.045.516 TB
DBM S yang digunakan untuk perancangan database pada PT. Solusi Corporindo Teknologi adalah SQL Server 2005.