BAB 4 PERANCANGAN BASIS DATA Usulan Prosedur yang...
-
Upload
truongdang -
Category
Documents
-
view
217 -
download
1
Transcript of BAB 4 PERANCANGAN BASIS DATA Usulan Prosedur yang...
94
BAB 4
PERANCANGAN BASIS DATA
4.1. Usulan Prosedur yang Baru
4.1.1 Proses Service Kendaraan
Ada 2 jenis pelanggan yang ada melakukan service kendaraan yaitu
perorangan dan perusahaan.
Pelanggan perorangan yang ingin melakukan service akan didata oleh
kasir ke dalam form SPK, data yang diinput adalah data kendaraan beserta
keluhan kendaran dan nama mekanik yang akan mengerjakan service,
kemudian akan di print dan diberikan ke mekanik. Mekanik akan
mengerjakan service berdasarkan SPK, jika ada pergantian sparepart maka
mekanik akan mengkonfirmasi ke pelanggan apabila disetujui maka kasir
akan menambahkan di form SPK sebagai penambahan keluhan
kendaraan,dan setelah itu kasir akan menginputpengeluaran sparepart ke form
jual sparepart. Kemudian staff gudang membawa sparepart dan kasir akan
mengupdate form Inventory. Setelah pengerjaan selesai kasir akan mencetak
struk pembayaran berdasarkan SPK dan struk jual sparepart.
Untuk Perusahaanyang ingin berlangganan service kendaraan
dinasnya di Dewi Motor, membuat kesepakatan kontrak dengan manajer
tentang prihal kedua belah p
ihak yang bersangkutan dengan membahas service berkala kendaraan
dinas dan sistem pembayaran service kendaraan dinas perusahaan,setelah
terjadi kesepakatan kendaraan dinas perusahaan langsung bisa mendapatkan
95
jasa service dari bengkel dengan syarat membawa surat rekomendasi service
dan tanda tangan penanggung jawab perusahaan,cap serta keluhan kendaraan
dinas.dari surat rekomendasi tersebut kasir akan mengisi form SPK
perusahaan yang kemudian akan diprint dan diberikan ke mekanik. Mekanik
kemudian akan men-service kendaraan, apabila ada pergantian sparepart
mekanik akan mengkonfirmasi ke supir jika disetujui kasir akan meminta
staff gudang untuk menyediakan sparepart yang dibutuhkan dan akan
diupdate Inventory oleh kasir. Setelah service selesai akan dimasukan ke
database service perusahaan. Setiap 5 hari sebelum tanggal jatuh tempo,
aplikasi akan memberikan signal berupa warning message dan kasir akan
menelpon perusahaan tentang tanggal jatuh tempo pembayaran.Kemudian
perusahaan membayar via kurir.Sebagai bukti kasir akan. mencetak struk
total pembayaran berdasarkan semua service kendaraan dinas perusahaan
yang ada di database dan struk sparepart berdasarkan sparepart perusahaan.
4.1.2 Proses Penjualan
Pelanggan yang hanya ingin membeli sparepart tanpa melakukan
service langsung ke kasir dan kasir akan mendata di form jual
sparepart.Apabila sparepart yang dibeli pelanggan tidak sesuai, pelanggan
bisa meretur sparepart yang dibeli dengan syarat segel belum rusak dan
serahkan bukti kwitansi barang yang ingin di retur, dan akan diinput ke form
retur barang sebagai bukti retur,apabila retur barang harga nya berbeda
dengan harga barang yang salah maka akan di update dan akan ada
keterangan retur barang di database.
96
4.1.3. Perancangan Basisdata Konseptual
Perancangan basisdata konseptual meliputi langkah – langkah sebagai
berikut:
• Identifikasi Tipe Entitas
• Identifikasi Tipe Relationship
• Identifikasi dan Asosiasikan Atribut dengan Tipe Entitas dan Tipe
Relationship
• Menentukan Domain Atribut
• Penentuan Atribut Candidate Key dan Primary Key
• Validasi Model Konseptual dengan user transaction
4.1.3.1. Identifikasi Tipe Entitas
Hasil identifikasi tipe entitas yang dilakukan akan ditampilkan dalam
tabel berikut :
Entity Name Description Occurrence
Pelanggan Perusahaan / individu yang membeli barang dan melakukan service dari CV.Dewi Bersaudara
Pelanggan membeli barang dan dapat mengajukan retur atas barang dan melakukan service
Karyawan Karyawan yang bekerja kepada CV.Dewi Bersaudara
Seluruh karyawan bekerja kepada CV.Dewi Bersaudara
Supplier Supplier barang bagi CV.Dewi Bersaudara
Setiap Supplier yang menjadi rekanan CV.Dewi Bersaudara
Barang Jenis – jenis barang yang dimiliki oleh perusahaan dan juga banyaknya barang yang dimiliki oleh perusahaan
Seluruh jenis item yang di jual oleh CV.Dewi Bersaudara
Catatan Retur Barang
Retur barang dari pelanggan yang dikembalikan kepada perusahaan
Pelanggan mengembalikan barang yang rusak kepada
97
CV.Dewi Bersaudara
Surat Permohonan Pembelian Barang
Semua detail yang menyangkut pembelian barang
Setiap pemesanan pembelian barang pada supplier
Penjualan Seluruh detail barang yang di pesan oleh pelanggan
Penjualan terhadap pelanggan mengurangi stok barang di gudang
Surat Service Mencatat seluruh keluhan kendaraan pelanggan
Melayani keluhan kendaraan pelanggan
Surat Permintaan Barang
Semua detail permintaan pengeluaran barang
Barang yang di beli pelanggan
Catatan pengeluaran Barang
Mencatat setiap barang keluar Mencatat laporan barang keluar
Surat Pemesanan Barang
Mencatat barang yang habis/kosong Membuat laporan penyediaan stok barang
Nota Pembayaran
Mencetak nota pembayaran yang akan di bayar pelanggan ,sesuai keluhan dan barang apa saja yang di beli
Membuat nota pembayaran yang akan d bayar pelanggan
Surat Penerimaan Barang
Menerima detail barang masuk Membuat laporan barang masuk
Nota Pembelian Barang
Menerima nota pembelian barang dari supplier
Membuat laporan total pembelian barang dari supplier
Surat Tagihan Pembayaran
Mengatur Bilyet Giro(BG) untuk membayar ke supplier
Mengeluar kan Bilyet Giro(BG) dan di berikan ke supplier
Tabel 4.1 Tabel Identifikasi Entitas
4.1.3.2. Identifikasi Tipe Relationship
Hasil identifikasi tipe relasi yang telah dirancang akan ditampilkan
dalam tabel berikut :
98
Entity Name Multiplicity Relationship Entity Name Multiplicity
Supplier 1...1 Menerima Surat pemesanan barang
1...*
Pelanggan 1...1 Menerima Surat service 1...1
Pelanggan 1...1 Memesan Penjualan 1...*
Penjualan 1...* Mengurangi Barang 1...*
Karyawan 1...1 Melakukan Surat service 1...*
Surat sevice 1...* Memesan Barang 1...*
Nota pembayaran 1...1 mencetak Surat sevice 1...1
Surat permintaan barang
1...* Mencetak Surat service 1...1
Barang 1...* Mencetak Catata pengeluaran barang
1...*
Nota pembayaran 1..1 Mencetak Penjualan 1...*
Surat permohonan pembelian
1...* Memesan Barang 1...*
Surat pemesanan barang
1...* Mencetak Surat pemohonan pembelian
1...1
Surat tagihan pembayaran
1...* Membayar Supplier 1...1
Nota pembelian barang
1...* Mencetak Surat tagihan pembayaran
1...1
Nota penerimaan barang
1...1 Mencetak Nota pemesanan barang
1...1
Catatan retur barang
1...* Melakukan Pelanggan 1...1
Catatan catat retur barang
1...* Mencetak Catatan pengeluaran barang
1...1
Tabel 4.2 Tabel Tipe Relasi
99
Dari hasil identifikasi tipe entitas dan relasi di atas, maka ERD dari CV.Dewi
Bersaudaraadalah sebagai berikut :
Gambar 4.1 ER Diagram
4.1.3.3 Identifikasi dan Asosiasikan Atribut dengan Tipe Entitas
atau Tipe Relationship
Atribut – atribut dari tipe entitas di atas ditampilkan dalam
tabel sebagai berikut
Nama entitas : karyawan
Atribut Type dan Panjang data
NULL Multi Value
Keterangan
KD_Karyawan Char (10) No No Kode karyawan Nama_karyawan Varchar (30) No No Nama karyawan Alamat_karyawan Varchar (50) No No Alamat karyawan No_telp_karyawan Varchar (15) No No telp karyawan Jabatan_karyawan Gender No No Jenis jabatan
100
Jenis kelamin Gender No No Jenis kelamin
Nama entitas : pelanggan
Atribut Type dan Panjang data
Null Multi Value
Keterangan
KD_pelanggan Char (10) No No Kode pelanggan Nama_pelanggan Varchar (30) No No Nama pelanggan Alamat_pelanggan Varchar (50) No No Alamat pelanggan No_telp_pelanggan Varchar (15) No No Telp pelanggan Email_pelanggan Varchar (30) Yes No Email pelanggan
Nama entitas : barang
Atribut Type dan Panjang data
Null Multi Value
Keterangan
KD_barang Char (10) No No Kode barang Nama _barang Varchar (20) No No Nama barang Harga_barang Int Yes No Harga satuan barang Jumlah_barang Int Yes No Jumlah barang Jenis barang Gender No No Jenis barang
Nama entitas : supplier
Atribut Type dan Panjang data
Null Multi value Keterangan
KD_Supplier Char (10) No No Kode supplier Nama _supplier Varchar (20) No No Nama supplier Alamat_supplier Varchar (50) No No Alamat supplier No_telp_supplier Varchar (15) No No No telp supplier Nama_Product varchar
Nama entitas : surat service
Atribut Type dan panjang data
Null Multi Value
Keterangan
KD_surat_service Char (10) No No Kode surat service Jenis_service Gender No No Jenis service KD_karyawan Char (10) No No Kode karyawan KD_pelanggan Char (10) No No Kode pelanggan KD_barang Char (10) Yes No Nama barang Tanggal Date time No No Tanggal service
101
Keterangan Varchar (200)
Yes Yes Keterangan service
Nama entitas : nota pembayaran Atribut Type dan
Panjang data
Null Multi Value
Keterangan
KD _nota_pembayaran
Char (10) No No Kode nota pembayaran
Tanggal Date Time Yes No Tanggal pembuatan nota pembayaran
KD_surat_service Char (10) No No Kode surat service Jumlah_bayar Int No No Total harga yang
dibayar Jatuh tempo Date time yes No Tanggal jatuh tempo Nama entitas : surat permintaan barang Atribut Type dan
Panjang data Null Multi
Value Keterangan
KD_SPB Char (10) No No Kode SPB KD_barang Char (10) No No Kode barang Jumlah_barang Int No No Jumlah barang yang di
minta Tanggal Date time No No Tanggal permintaan
barang Nama entitas : surat permohonan pembelian barang Atribut Type dan
Panjang data Null Multi value Keterangan
Tanggal_permohonan Date time No No Tanggal permohananbarang
Nama_barang Varchar (20) NO No Nama barang Jumlah_barang Int No No Jumlah yang ingin
dipesan KD_PPB Char (10) No No Kode PPB Nama entitas : Surat Pemesanan Barang Atribut Type dan
Panjang data Null Multi
value Keterangan
KD_SPB Char(10) No No Kode surat pemesanan barang
KD_PPB Char(10) No No Kode permohonan pembelian barang
KD_barang Char(10) No No Kode barang
102
Tanggal Date time No No Tanggal pemesanan barang
Nama Entitas:Surat penerimaan Barang
Nama Entitas:Surat Tagihan Pembayaran Atribut Type dan
Panjang data
Null Multi Value
Keterangan
KD_surat_tagihan_pembayaran Char(10) No No Kode surat tagihan pembayaran
KD_surat_pemesanan barang Char(10) No No Kode surat pemesanan barang
Jumlah Int No No Jumlah pembayaran tagihan
Tanggal Date time No No Tanggal setiap pembayaran tagihan
Nama Entitas:Penjualan
Atribut Type dan Panjang data
Null Multi Value
Keterangan
KD_Penjualan Char(10) No No Kode Penjualan
KD_Barang Char(10) No No Kode Barang Jumlah_barang Int No No Jumlah
Barang
Atribut Type dan Panjang data
Null Multi Value
Keterangan
KD_Surat_penerimaan_barang Char(10) No No Kode surat penerimaan barang
Nama_barang Char(10) No No Nama barang Tanggal Date time No No Tanggal
penerimaan barang
Jumlah Int No No Jumlah barang KD_Surat_Pemesanan_barang Char(10) No no Kode surat
pemesanan barang
103
Tgl_penjualan Date time No No Tanggal penjualan
Harga_Total Int No No Harga keseluruhan penjualan
Nama Entitas: Catatan Retur Barang
Atribut Type dan Panjang data
Null Multi Value
Keterangan
KD_Catatan_Retur_Brg Char(10) No No Kode retur brg
KD_Nota_pembayaran Char(10) No No Kode nota penjualan
Tgl_catatan _retur_brg Date time No No Tgl terjadi nya retur barang
Jumlah_Barang Int No No Jumlah barang retur
4.1.3.4Menentukan Domain Atribut
Domain atribut adalah kumpulan nilai yang diperbolehkan
untuk satu atau lebih atribut. Domain merupakan fitur yang sangat
kuat dalam model relational. Setiap atribut di dalam relasi ditetapkan
dalam domain. Domain mungkin berbeda untuk tiap atribut, atau dua
atau lebih atribut mungkin ditetapkan dalam domain yang sama.Dari
hasil penentuan atribut maka didapat domain atribut sebagai berikut :
• Supplier
Nama Atribut Domain Atribut Kd_Supplier char dengan panjang 10 karakter, dua karakter pertama huruf,
tiga karakter selanjutnya berupa angka dengan nilai antara 1-999 Nama_Supplier varchar dengan panjang 20 karakter Alamat_Supplier varchar dengan panjang 40 karakter Nama_product char dengan panjang 20 karakter No_telp_Supplier varchar dengan panjang 15 karakter
104
Tabel 4.3 Domain Atribut Supplier
• Pelanggan
Nama Atribut Domain Atribut Kd_pelanggan char dengan panjang 10 karakter, dua karakter pertama huruf,
tiga karakter selanjutnya berupa angka dengan nilai antara 1-999
Nama_pelanggan varchar dengan panjang 30 karakter Alamat_pelanggan varchar dengan panjang 50 karakter No_telp_pelanggan varchar dengan panjang 15 karakter Email_pelanggan varchar dengan panjang 30 karakter
Tabel 4.4 Domain Atribut pelanggan
• Barang
Nama Atribut Domain Atribut KD_barang
char dengan panjang 6 karakter, dua karakter pertama huruf, empat karakter selanjutnya berupa angka dengan nilai antara 1-9999
Nama _barang varchar dengan panjang 30 karakter Harga_barang Int yang angka dengan nilai di antara 100 – 100000000 Jumlah_barang Int yang angka dengan nilai di antara 100 – 100000000 Jenis barang Varchar yang didalam yang isi berupa : akesoris , sparepart , Oli
Tabel 4.5 Domain Atribut Barang
• karyawan
Nama Atribut Domain Atribut Kd_Karyawan
char dengan panjang 10 karakter, dua karakter pertama huruf, tiga karakter selanjutnya berupa angka dengan nilai antara 1-999
Nama_Karyawan varchar dengan panjang 30 karakter Alamat_Karyawan varchar dengan panjang 50 karakter Jbtn_Karyawan Varchar dengan panjang 20 yang berisi : mekanik, SPG,
manager , kasir Jenis_kelamin Varchar dengan panjan 10 yang berisi : pria atau wanita No_Telp_Karyawan varchar dengan panjang 15 karakter
Tabel 4.6 Domain Atribut karyawan
105
• surat service
KD_surat_service char dengan panjang 10 karakter, tiga karakter pertama huruf, karakter berikutnya berupa angka
Jenis_service Varchar dengan panjang karakter 50 Tanggal Date Keterangan Varchar dengan panjang karakter 200
Tabel 4.7 Domain Atribut surat service
• Penjualan
KD_Penjualan char dengan panjang 10 karakter, tiga karakter pertama huruf, karakter berikutnya berupa angka.
Tgl_penjualan Date Jumlah_barang Int yang angka dengan nilai di antara 1- 1000 Harga total Int yang angka dengan nilai di antara 100 – 100000000
Tabel 4.8 Domain Atribut Penjualan
• Nota_ Pembayaran
KD_nota_pembayaran char dengan panjang 10 karakter, tiga karakter pertama huruf, karakter berikutnya berupa angka
Jatuh _tempo Date Jumlah_bayar Int yang angka dengan nilai di antara 100 – 100000000
Tabel 4.9 Domain Atribut Nota_Pembayaran
• Surat penerimaan Barang
KdPnrm char dengan panjang 10 karakter, tiga karakter pertama huruf, karakter berikutnya berupa angka
TglPnrm Date Nama_barang Varchar yang dengan panjang karakter 20 Jumlah Int yang angka dengan nilai di antara 1- 1000
Tabel 4.10 Domain Atribut Penerimaan
• ReturPenjualan
Catatan Return Barang
char dengan panjang 10 karakter, tiga karakter pertama huruf, karakter berikutnya berupa angka
Tgl_catatan _return_brg
Date
Jumlah Int yang angka dengan nilai di antara 1- 1000 Tabel 4.11 Domain Atribut Retur_Penjualan
106
• Surat Tagihan Pembayaran
KD_surat_tagihan_pembayaran char dengan panjang 10 karakter, tiga karakter pertama huruf, karakter berikutnya berupa angka
TglReturPemb Date Jumlah Int yang angka dengan nilai di antara 1- 1000
Tabel 4.12 Domain Atribut Surat_Tagihan_Pembayaran
• Surat Pemesanan Barang
KD_SPB char dengan panjang 10 karakter, tiga karakter pertama huruf, karakter berikutnya berupa angka
Tanggal Date Tabel 4.13 Domain Atribut Surat_Pemesanan_Barang
• surat permohonan pembelian barang
KD_surat_tagihan_pembayaran char dengan panjang 10 karakter, tiga karakter pertama huruf, karakter berikutnya berupa angka
Tanggal_permohonan Date Jumlah_barang Int yang angka dengan nilai di antara 1- 1000 Nama_barang Varchar dengan panjang karakter 20
Tabel 4.14 Domain Atribut Retur_Pemb
• surat permintaan barang
KD_SPB char dengan panjang 10 karakter, tiga karakter pertama huruf, karakter berikutnya berupa angka
Tanggal_permohonan Date Jumlah_barang Int yang angka dengan nilai di antara 1- 1000
Tabel 4.15 Domain Atribut ReturPermintaan barang
4.1.3.5. Penentuan Atribut Candidate Key dan Primary Key
Candidate key adalah sekelompok atribut yang minimal dan
secara unik mengidentifikasikan tiap occurrence dari entity type.
107
Primary key adalah key yang dipilih untuk mengidentifikasikan secara
unik tiap occurrence dari entity type. ketika memilih primary key
diantara candidate key, kita dapat menggunakan panduan berikut
untuk membantu pemilihan primary key, yaitu :
- Candidate key dengan kumpulan atribut yang minimal
- Candidate key yang nilainya jarang berubah
- Candidate key dengan karakter – karakter yang paling
sedikit (untuk yang memiliki textual attributes)
- Candidate key dengan nilai maksimum paling rendah
(untuk yang memiliki numerical attributes)
- Candidate key yang paling mudah digunakan dari sudut
pandang user
Dari hasil panduan di atas, maka didapat candidate key dan
primary key sebagai berikut:
Entity Name Candidate Key Primary Key
Supplier KdSupp KdSupp
Pelanggan KdPlgn KdPlgn
Karyawan KdKrywn KdKrywn
Penjualan KdPnjln KdPnjln
Surat Service KdSrtService KdSrtService
Nota Pembayaran KdNtPmbyrn KdNtPmbyrn
Surat Permintaan Barang KdSrtPermintaanBrg KdSrtPermintaanBrg
Barang KdBrg,jenisBrg KdBrg
Surat Permohonan Pembelian barang KdSrtPermohonanPmblnBrg KdSrtPermohonanPmblnBrg
Catatan Retur Barang KdCttnReturBrg KdCttnReturBrg
108
Catatan Pengeluaran Barang KdCttnPengeluaranBrg KdCttnPengeluaranBrg
Surat Pemesanan Barang KdSrtPemesananBrg KdSrtPemesananBrg
Surat Penerimaan Barang KdSrtPenerimaanBrg KdSrtPenerimaanBrg
Nota Pembelian Barang KdNtPembelianBrg KdNtPembelianBrg
Surat Tagihan Pembayaran KdSrtTagihanPmbyrn KdSrtTagihanPmbyrn
Tabel 4.16 Tabel Atribut Candidate Key dan Primary Key
4.1.3.6Memeriksa Model dari Redudancy
Pada tahap ini, diperiksa apakah terdapat redudancy dan
menghilangkan redudancy yang ada. Dua langkah yang dilakukan
pada tahap ini adalah :
1. Memeriksa ulang hubungan one-to-one
Dari hasil identifikasi, terdapat hubungan one-to-one, sebagai
contoh : Pembelian dengan ReturPemb dan Penjualan dengan
ReturPenj. Dalam kasus ini, kedua entitas tersebut tidak dapat
disatukan bersama, karena Pembelian bukan merupakan sinonim dari
ReturPemb, begitu juga sebaliknya.
2. Menghilangkan hubungan yang redundant
Sebuah hubungan disebut redundant jika informasi yang sama
dapat diperoleh melalui hubungan yang lain. Pada kasus ini,
hubungan one-to-one antara Pembelian dan ReturPemb menghasilkan
informasi yang tidak dapat diperoleh dari hubungan yang lain.
Informasi tentang Pembelian yang diperoleh ReturPemb tidak dapat
109
diperoleh dari hubungan ReturPemb dengan Barang, begitu juga
sebaliknya. Sehingga, hubungan di atas tidak dapat dihilangkan.
Berikut ER Diagram Konseptual CV.Dewi Bersaudara dengan
penambahan Primary Key dan penambahan specialization /
generalization:
Gambar 4.2 ERD konseptual
4.1.3.7. Validasi Model Konseptual Dengan User Transaction
Validasi model konseptual dengan user transaction dapat
digunakan untuk memastikan bahwa rancangan konseptual dari
basisdata yang sedang dibangun dapat mendukung transakasi yang
dibutuhkan oleh pengguna. Hal ini dapat dilakukan dengan
menggunakan dua pendekatan:
110
1. Pendeskripsian transaksi
a. Tampilkan supplier yang memasok barang.
b. Tampilkan detail barang dari Nota pembelian Barang.
c. Tampilkan Notapembayaran saat cetak Nota
pembelian Barang.
d. Tampilkan detail Nota pembayaran oleh Pelanggan.
e. Tampilkan Pelanggan yang memesan barang.
f. Tampilkan Karyawan yang mengurus pembayaran.
g. Tampilkan Karyawan yang mengurus penjualan.
h. Tampilkan detail barang dari penjualan.
i. Tampilkan Karyawan yang mengurus Nota pembelian
Barang.
j. Tampilkan retur penjualan barang yang telah di review
terhadap penjualan.
k. Tampilkan Karyawan yang mengurus Surat
penerimaan Barang.
l. Tampilkan detail retur penjualan barang
Masukkan Data
a. Masukkan detail Supplier
b. Masukkan detail Pelanggan
c. Masukkan detail Barang
d. Masukkan detail Karyawan
e. Masukkan detail NotaPembelianBarang
111
f. Masukkan detail NotaPenjualan
g. Masukkan detail NotaPembayaran
h. Masukkan detail SuratPenerimaanBarang
i. Masukkan detail Retur NotaPenjualan
j. Masukkan detail SuratPemesananBarang
k. Masukkan detail Surat PermintaanBarang
l. Masukkan detail Nota PembayaranPembelian
m. Masukkan detail retur Barang
n. Masukkan detail PengeluaranBarang
o. Masukkan detail SuratService
Update / Delete data
a. Update detail Supplier
b. Update detail Pelanggan
c. Update detail Barang
d. Update detail Karyawan
4.1.4 Meninjau Local Conceptual Data Model Dengan Pengguna
Setelah dilakukan peninjauan model data konseptual lokal dengan
pengguna, model data sudah sesuai dengan representasi perusahaan.
4.1.4.1Perancangan Basisdata Logikal
112
Perancangan basisdata konseptual meliputi langkah – langkah sebagai
berikut:
• Menentukan Relasi – Relasi untuk Model data Logikal
• Validasi Model dengan Normalisasi
• Memvalidasi Relasi dengan user transaction
• Mendefinisikan kendala integrity
• Me-review logical data model dengan user
• Menggabungkan Logical Data Model kedalam Global Model
• Memeriksa untuk perkembangan lebih lanjut.
4.1.4.1.1 Menentukan Relasi - Relasi untuk Model Data Logikal
Dalam menentukan relasi – relasi untuk model data logikal meliputi
langkah – langkah sebagai berikut :
• Identifikasi Strong Entity
• Identifikasi Weak Entity
• Pembentukan relasi biner one to many (1:*)
• Pembentukan relasi biner one to one (1:*)
• Relasi 1:1 Recursive
• Tipe Relasi superclass / subclass
• Relasi biner many to many (*:*)
• Tipe relasi Kompleks
• Atribut multivalue
1. Identifikasi Strong Entity
113
• Supplier
(KdSupp, NmSupp, AlamatSupp, TelpSupp)
Primary Key KdSupp
• Pelanggan
(KdPlgn, NmPlgn, TelpPlgn)
Primary Key KdPlgn
• Barang
(KdBrg, Jenis, HargaBrg, JmlhBrg)
Primary Key KdBrg
• Karyawan
(KdKrywn, NmKrywn, JbtnKrywn, AlamatKrywn, TelpKrywn)
Primary Key KdKrywn
• Penjualan
(KdFakturPenj, TglPenj)
Primary Key KdFakturPenj
• NotaPembayaran
(KdNotaPmbyrn, TglNotaPmbyrn)
Primary Key KdNotaPmbyrn
• SuratPenerimaanBarang
114
(KdSrtPenerimaanBrg, TglSrtPenerimaanBrg)
Primary Key KdSrtPenerimaanBrg
• ReturPenj
(KdReturPenj,KdBrg, TglReturPenj)
Primary Key KdReturPenj
• SuratPermohonanPembelian
(KdSrtPermohonanPmbln, KdBrg,TglSrtPermohonanPmbln)
Primary Key KdSrtPermohonanPmbln
• CatatanPengeluaranBarang
(KdCttnPengeluaranBrg,KdBrg,KdSrtPermohonanPmbln)
Primary Key KdCttnPengeluaranBrg
• CatatanReturBarang
(KdCttnReturBrg,TglReturBrg,KdCttnPengeluaranBrg,KdNotaPembayar
an)
Primary Key KdCttnReturBrg
• PembayaranPembelian
(KdPmbyrnPmbln, TglPmbyrnPmbln,KdSupp)
Primary Key KdPmbyrnPmbln
• NotaPembelianBarang
(KdNtPmblnBrg,KdPmbyrnPmbln)
115
Primary Key KdNtPmblnBrg
• SuratService
(KdSrtSrvc,TglSrvc,KdBrg,KdKrywn,KdPlgn)
Primary Key KdSrtSrvc
• SuratPermintaanBarang
(KdSrtPrmntaanBrg,TglSrtPrmntaanBrg,KdSrtSrvc)
Primary Key KdSrtPrmntaanBrg
2. Identifikasi Weak Entity
Sampai pada tahap ini belum terdapat weak entity..
4.1.4.1.2. Validasi Model dengan Normalisasi
Tujuan dari langkah ini adalah untuk memvalidasi relasi-relasi dalam model
data logikal lokal menggunakan teknik normalisasi. Teknik normalisasi bertujuan
untuk menghasilkan model data yang konsisten, dan memiliki minimal redundansi
(pengulangan data yang tidak perlu) dan maksimum stabilitas. Proses normalisasi
dimulai dengan menentukan functional dependency antar atribut dalam suatu relasi.
Berikut ini adalah proses normalisasi untuk setiap entitas :
karyawan
Kdkrw NmKrw JbtnKrw AlamatKrwNotlpKrw Jeniskelamin
(3NF)
(Primary key)
116
Pegawai = KdPgw + NmPgw + JbtnPgw + AlamatPgw +jenis kelamin+
NoTlpPgw
Pelanggan
KDPlgn NmPlgn AlamatPlgn NotlpPlgn EmailPlgn
(3NF)
Customer = KDPlgn + NmPlgn + AlamatPlgn + NoTlpPlgn+EmailPlgn
Barang
KDBrg NamaBrg HargaBrg JumlahBrg JenisBrg
(3NF)
Barang = KDBrg + NamaBrg + HargaBrg + JumlahBrg + JenisBrg
Supplier
KDSupp NamaSupp AlamatSupp NoTlpSupp IDBrg
(3NF)
Supplier = KDSupp + NamaSupp + AlamatSupp + NoTlpSupp+IDBrg
Surat Service
(Primary key)
(Primary key)
(Primary key)
117
KDSuratService JenisService KDKaryawan KDPlgn KDBrg Tgl Ket
(3NF)
Surat Service = KDSuratService + JenisService + KDKaryawan + KDPlgn +
KDBrg
+ Tgl +ket
DETAIL_SURAT_SERVICE
KDSuratService KDBarang QtyBarang TotalBa
rang
(UNF)
Detail SuratService =KDSuratService + KDBarang + QtyBarang + TotalBarang
(3NF)
Detail SuratService =KDSuratService + KDBarang + QtyBarang
Nota Pembayaran
KDNotaPembayaran KDSuratService JmlhByr Jatuh tempo
(Primary key)
(Primary key)
(Primary key)
118
(3NF)
Nota Pembayaran = KDNotaPembayaran + KDSuratService + JmlhByr +
JatuhTempo
Surat Permintaan Barang
KDSuratPermintaanBrg
KDBrg JmlhBrg Tgl
(3NF)
Surat Permintaan Barang = KDSuratPermintaanBarang + KDBarang +
JmlhBarang + tanggal
DETAIL_SURAT_PERMINTAAN_BARANG
KDSPB KDBarang JmlhBarang QtyBarang
(UNF)
DETAIL_SPB = KDSPB + KDBarang + JlmlhBarang +QtySPB
(3NF)
Detail_SPB = KDSPB + KDBarang + JmlhBarang
Surat Permohonan Pembelian Barang
(Primary key)
(Primary key)
119
KDSuratPermohonanBrg TglPermohonan NamaBrg JmlhBrg
(3NF)
SuratPermohonan PembelianBarang = KDSPPB + TglPermohonan +NamaBrg
+JmlhBrg
DETAIL_SPPB
KDSrtPermohonanBrg KDBarang JmlhBarang QtyBarang
(UNF)
DETAIL_SPPB = KDSPPB + KDBarang + JmlhBarang + QtyBarang
(3NF)
DETAIL_SPPB = KDSPPB + KDBarang + JmlhBarang
Surat Pemesanan Barang
KDSuratPemesananBrg KDSuratPermohonanPembelianBrg KDBrg Tgl
(3NF)
SuratPemesananBarang=KDSuratPemesananBarang
+KDSuratPermohonanPembelianBarang
+ KDBarang + tanggal
(Primary key)
(Primary key)
(Primary key)
120
DETAIL_SURAT_PEMESANAN_BARANG
KDSrtPemesananBrg KDBarang JmlhBarang QtyBarang
(UNF)
Detail_Surat_pemesanan_Barang = KDSrtPemesananBrg + KDBarang +
JmlhBarang +QtyBarang
(3NF)
Detail_Surat_Pemesanan_Barang
KDSrtPemesananBrg + KD_Barang +JmlhBarang
Surat Penerimaan Barang
KDSuratPenerimaanBrg NamaBrg Tgl Jmlh KDSuratPemesananBarang
(3NF)
SuratPenerimaanBarang=
KDSuratPenerimaanBarang+NamaBarang+Tgl+Jumlah+KDSuratPemesananBarang
DETAIL_SURAT_PENERIMAAN_BARANG
KDSuratPenerimaanBrg KDBarang JmlhBarang QtyBarang
(UNF)
(Primary key)
(Primary key)
(Primary key)
121
DETAIL_PENERIMAAN_BARANG = KD_Penerimaan Barang +KD Barang
+Jmlh_barang +QtyBarang
(3NF)
DETAIL_PENERIMAAN_BARANG = KD Penerimaan Barang + KD Barang
+Jmlh_Barang
Surat Tagihan Pembayaran
KDSuratTagihanPembayaran KDSuratPemesananBrg Jmlh Tgl
(3NF)
SuratTagihanPembayaran=KDSuratTagihanPembayaran+KDSuratPemesananBrg+
jumlah+tgl
Penjualan
KDPenjualan KDPelanggan KDBarang JumlahBarang TglPenjualan Hargatotal
(3NF)
SuratTagihanPembayaran=KDPenjualan+KDPelanggan+KDBarang+JmlhBarang+T
gl+hargaTotal
DETAIL_PENJUALAN
(Primary key)
(Primary key)
122
KDPenjualan KDBarang JmlhBarang QtyBarang
(UNF)
DETAIL_PENJUALAN = KD Penjualan + KD_Barang +Jmlh_Barang +
Qty_Barang
(3NF)
DETAIL_PENJUALAN = KD Penjualan + KD Barang + Jmlh_Barang
Catatan retur barang
KD_Catatan_retur_brg KD_Nota_Pembayaran Tgl_Catatan_retur_brg JumlahBarang
(3NF)
Catatan_Retur_Barang=KD Cttn Retur Brg + KD Nota Pmbyrn + Tgl_Cttn_retur_Brg + Jmlh_Brg
Detail Catatan Retur Barang
KD_Catatan_retur_brg KD_Barang Jmlh_Barang Qty_Barang
(UNF)
Catatan Retur Barang = KD Cttn Retur Barang + KD Barang + Jmlh_Barang + Qty_Barang
(3NF)
(Primary key)
(Primary key)
(Primary key)
123
Catatan Retur Barang = KD Catatan Barang + KD Barang + Jmlh_Barang
ER Diagram Logika setelah normalisasi
4.1.4.1.3. Menvalidasi Relasi dengan User Transactions
Relasi – relasi dalam local logical data model sudah mendukung
transaksi – transaksi sesuai dengan kebutuhan pengguna. Transaksi –
transaksi tersebut antara lain sebagai berikut :
a. Tampilkan supplier yang memasok barang.
b. Tampilkan detail barang dari Nota pembelian Barang.
c. Tampilkan Notapembayaran saat cetak Nota pembelian Barang.
d. Tampilkan detail Nota pembayaran oleh Pelanggan.
e. Tampilkan Pelanggan yang memesan barang.
124
f. Tampilkan Karyawan yang mengurus pembayaran.
g. Tampilkan Karyawan yang mengurus penjualan.
h. Tampilkan detail barang dari penjualan.
i. Tampilkan Karyawan yang mengurus Nota pembelian Barang.
j. Tampilkan retur penjualan barang yang telah di review terhadap
penjualan.
k. Tampilkan Karyawan yang mengurus Surat penerimaan Barang.
l. Tampilkan detail retur penjualan barang
4.1.4.1.4 Mendefinisikan Kendala Integrity
Integrity constraint terdiri dari 6 tipe yaitu:
a. Required data
Constraint ini sudah diidentifikasi pada tahap perancangan basisdata
konseptual
b. Attribute domain constraint
Constraint ini sudah diidentifikasi pada tahap perancangan basisdata
konseptual
c. Multiplicity
Constraint ini sudah diidentifikasi pada tahap perancangan basisdata
konseptual
125
d. Entity Integrity
Constraint ini sudah diidentifikasi pada tahap perancangan basisdata
konseptual
e. Referential Integrity
Supplier (Kd_Supplier, Nm_Supplier, Alamat_Supplier, No_telp_supplier, kd_barang , nama_barang ) Primary Key Kd_Supplier Foreign Key Kd_barang references barang (Kd_barang ) ON UPDATE CASCADE ON DELETE NO ACTION Barang (KD_barang, Nama_barang, Harga_barang,jumlah_barang, jenis_barang Primary Key KdBrg Karyawan(KD_Karyawan,Nama_karyawan, Alamat_karyawan, No_telp_karyawan, Jabatan_karyawan, Jenis kelamin) Primary Key KD_Karyawan pelanggan(KD_pelanggan,Nama_pelanggan,Alamat_pelanggan No_telp_pelanggan,email_pelanggan ) Primary Key KdCust surat service (KD_surat_service, Jenis_service, KD_karyawan, KD_pelanggan, KD_barang, Tanggal, Keterangan ) Primary Key KD_surat_service Foreign Key KD_karyawan references karayawan(KD_karyawan) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KD_pelanggan references pelanggan(KD_pelanggan) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KD_barang references barang(KD_ KD_barang) ON UPDATE CASCADE ON DELETE NO ACTION Nota Pembayaran (KD _nota_pembayaran, KD_surat_service, Jumlah_bayar, Jatuh tempo) Primary Key KD _nota_pembayaran Foreign Key KD_surat_service references surat_service(KD_surat_service) ON UPDATE CASCADE ON DELETE NO ACTION Nota surat permintaan barang (KD_SPB, KD_barang, Jumlah_barang, Tanggal) Primary Key KD_SPB Foreign Key KD_barang, references barang (KD_barang,) ON UPDATE CASCADE ON DELETE NO ACTION surat permohonan pembelian barang (KD_PPB,KD_barang,Jumlah_barang, Tanggal_permohonan,nama_barang) Primary Key KD_PPB Foreign Key KD_barang, references barang (KD_barang,) ON UPDATE CASCADE ON DELETE NO ACTION Surat Pemesanan Barang (KD_SPB, KD_PPB , Tanggal) Primary Key KD_SPB Foreign Key KD_PPB references permohonan pembelian barang(KD_PPB) ON
126
UPDATE CASCADE ON DELETE NO ACTION Surat penerimaan Barang (KD_Surat_penerimaan_barang, KD_Surat_Pemesanan_barang, Tanggal) Primary Key KD_Surat_penerimaan_barang Foreign Key KD_Surat_Pemesanan_barangreferences Surat Pemesanan Barang (KD_Surat_Pemesanan_barang) ON UPDATE CASCADE ON DELETE NO ACTION Surat Tagihan Pembayaran (KD_surat_tagihan_pembayaran, KD_surat_penerimaan_barang, Tanggal) Primary Key KD_surat_tagihan_pembayaran Foreign Key , KD_surat_penerimaan_barang references Surat penerimaan Barang (KD_surat_penerimaan_barang) ON UPDATE CASCADE ON DELETE NO ACTION Penjualan (KD_Penjualan, KD_pelanggan, KD_Barang, Jumlah_barang, Harga_Total, Tgl_penjualan) Primary Key KD_Penjualan Foreign Key KD_pelanggan references pelanggan (KD_pelanggan ) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KD_Barang references barang (KD_Barang) ON UPDATE CASCADE ON DELETE NO ACTION Catatan Return Barang (KD_Catatan_Return_Brg, KD_Nota_pembayaran, Jumlah_Barang, Tgl_catatan _return_brg) Primary Key KD_Catatan_Return_Brg Foreign Key KD_Nota_pembayaran references nota pembayaran (KD_Nota_pembayaran) ON UPDATE CASCADE ON DELETE NO ACTION
Tabel 4.17Relasi – relasi yang terbentuk untuk model data logikal
f. General Constraints
Perusahaan membatasi jumlah kapasitas maksimal gudang adalah 3000 item,
maka apabila pembelian melebihi batas maksimal, pembelian tersebut harus
disesuaikan dengan kapasitas gudang.
4.1.5 Perancangan Basisdata Fisikal
Perancangan basisdata Fisikal meliputi langkah – langkah sebagai berikut:
• Menerjemahkan logical data model untuk DBMS yang dipilih
• Merancang file organization dan indexes
127
• Merancang user view
• Merancang mekanisme keamanan
• Mempertimbangkan pengenalan redudancy control
• Mengawasi dan mengendalikan sistem operasional
4.1.5.1. Menterjemahkan Logical Data Model untuk DBMS yang Dipilih
Berikut ini langkah – langkah untuk menerjemahkan logical data model untuk
DBMS yang dipilih :
• Merancang relasi – relasi dasar
• Merancangan representasi untuk data derived
• Merancang general constraint
4.1.5.1.1Merancang Relasi – Relasi Dasar
Tujuan dari langkah ini adalah untuk menentukan bagaimana
merepresentasikan relasi dasar yang diidentifikasikan dalam model data logikal
global ke dalam target DBMS. Informasi yang diperlukan untuk proses ini dapat
diperoleh dari kamus data dan definisi dari relasi dideskripsikan menggunakan
Database Definition Language (DBDL). Adapun DBDL yang didefinisikan adalah
sebagai berikut :
128
1. Supplier
Domain KD_Supplier: Variable length character string, length 10
Domain Nama _supplier: Variable length varchar string, length 20
Domain Alamat_supplier: Variable length varchar string, length 50
Domain No_telp_supplier: Variable length varchar string, length 15
Domain nama_barang : Variable length varchar string, length 20
Kd_barang: Variable length character string, length 10
Supplier(
KD_Supplier Kode Supplier NOT NULL,
Nama _supplier: Nama Supplier NOT NULL,
Alamat_supplier: Alamat Supplier NOT NULL,
No_telp_supplier: no telp supplier NOT NULL,
Nama_barang : nama barang NOT NULL,
Kd_barang kode barang NOT NULL,
PRIMARY KEY (KD_Supplier)
FOREIGN KEY (KD_barang) REFERENCES barang(KD_barang ) ON UPDATE
CASCADE ON DELETE NO ACTION);
129
2. Pelanggan
Domain KD_pelanggan: Variable length character string, length 10
DomainNama_pelanggan:Variable length varchar string, length 30
Domain Alamat _pelanggan: Variable length varchar string, length 50
No_telp_pelanggan Variable length character string, length 15
email_pelanggan Variable length character string, length 30
pelanggan(
KD_pelanggan Kode Customer NOT NULL,
Nama_pelanggan: Nama Customer NOT NULL,
Alamat _pelanggan: Alamat pelanggan NOT NULL,
No_telp_pelanggan telepon pelanggan NOT NULL,
email_pelanggan email pelanggan NOT NULL,
PRIMARY KEY (KD_pelanggan) )
3. karyawan
Domain KD_Karyawan: Variable length character string, length 10
Domain Nama_Karyawan: Variable length varchar string, length 30
Domain Alamat_karyawan: Variable length varchar string, length 50
Domain No_telp_karyawan Variable length character string, length 15
130
Doamin jabatan_karyawan Variable length character string, length 30
Doamain Jenis_kelamin Variable length character string, length 15
Karyawan (
KD_Karyawan Kode karyawan NOT NULL,
Nama_Karyawan: Nama karyawan NOT NULL,
Alamat_karyawan: Alamat karyawan NOT NULL,
No_telp_karyawan telepon karyawan NOT NULL,
jabatan_karyawan jabatan karyawan NOT NULL,
Jenis_kelamin jenis kelamin karyawan NOT NULL,
PRIMARY KEY (KD_Karyawan) )
4. barang
Domain KD_barang: Variable length character string, length 10
Domain Nama _barang: Variable length varchar string, length 20
Domain Harga_barang : integer
Domain Jenis barang: Variable length character string, length 15
Doamin Jumlah_barang: integer
Barang (
131
KD_barang Kode barang NOT NULL,
Nama _barang Nama barang NOT NULL,
Harga_barang harga barang NOT NULL,
Jenis barang jenis barang NOT NULL,
Jumlah_barang jumlah barang NOT NULL,
PRIMARY KEY (KD_barang) )
5. Surat service
Domain KD_surat_service: Variable length character string, length 10
Domain Jenis_service: Variable length varchar string, length 20
Domain KD_karyawan: Variable length character string, length 10
Domain KD_pelanggan: Variable length character string, length 10
Doamin KD_barang : Variable length character string, length 10
Domain Tanggal : date time
Domain keterangan : Variable length character string, length 200
Surat service (
KD_surat_service Kode barang NOT NULL,
Jenis_service Jenis service NOT NULL,
132
KD_karyawan Kode karyawan NOT NULL,
KD_pelanggan kode pelanggan NOT NULL,
KD_barang kode barang NOT NULL,
Tanggal tanggal service NOT NULL,
Domain keterangan keterangan service NULL
PRIMARY KEY (KD_surat_service)
Foreign Key KD_karyawan references karayawan(KD_karyawan) ON UPDATE
CASCADE ON DELETE NO ACTION
Foreign Key KD_pelanggan references pelanggan(KD_pelanggan) ON UPDATE
CASCADE ON DELETE NO ACTION
Foreign Key KD_barang references barang(KD_ KD_barang) ON UPDATE
CASCADE ON DELETE NO ACTION );
6. Nota pembanyaran
Domain KD _nota_pembayaran: Variable length character string, length 10
Domain KD_surat_service: Variable length varchar string, length 10
Domain Jumlah_bayar: integer
Domain Jatuh tempo: date time
133
Nota pembayaran (
Domain KD _nota_pembayaran Kode nota pembanyaran NOT NULL,
KD_surat_service kode surat service NOT NULL,
Jumlah_bayar jumlah yang dibayar NOT NULL,
Jatuh tempo tanggal pembayaran NOT NULL,
PRIMARY KEY (KD _nota_pembayaran)
Foreign Key KD_surat_service references surat_service(KD_surat_service) ON
UPDATE CASCADE ON DELETE NO ACTION
7. Nota surat permintaan barang
Domain KD_SPB: Variable length character string, length 10
Domain KD_barang: Variable length varchar string, length 10
Domain Jumlah_Barang : integer
Domain tanggal: date time
surat permintaan barang (
KD_SPB Kode SPB NOT NULL,
KD_barang kode barang NOT NULL,
Jumlah_Barang jumlah barang yang minta NOT NULL,
tanggal tanggal permintaan NOT NULL,
134
PRIMARY KEY (KD_SPB)
Foreign Key KD_barang, references barang (KD_barang,) ON UPDATE CASCADE
ON DELETE NO ACTION);
8. surat permohonan pembelian barang
Domain KD_PPB: Variable length character string, length 10
Domain KD_barang: Variable length varchar string, length 10
Domain Tanggal_permohonan: Date time
Domain nama_barang: Variable length varchar string, length 20
surat permohonan pembelian barang (
KD_PPB Kode SPB NOT NULL,
KD_barang kode barang NOT NULL,
Tanggal_permohonan Tanggal permohonan NOT NULL,
nama_barang nama barang NOT NULL,
PRIMARY KEY (KD_PPB)
Foreign Key KD_barang, references barang (KD_barang,) ON UPDATE CASCADE
ON DELETE NO ACTION
135
9. Surat Pemesanan Barang
Domain KD_SPB: Variable length character string, length 10
Domain KD_PPB: Variable length varchar string, length 10
Domain Tanggal : Date time
Surat Pemesanan Barang (
KD_SPB Kode SPB NOT NULL,
KD_PPB kode barang NOT NULL,
Tanggal Tanggal pemesanan NOT NULL,
PRIMARY KEY (KD_SPB)
Foreign Key KD_PPB references permohonan pembelian barang (KD_PPB) ON
UPDATE CASCADE ON DELETE NO ACTION
10. Surat penerimaan Barang
Domain KD_Surat_penerimaan_barang: Variable length character string, length
10
DomainKD_Surat_Pemesanan_barang: Variable length varchar string, length
10
Domain Tanggal : Date time
136
Surat Pemenerimaan Barang (
KD_Surat_penerimaan_barang Kode Surat_penerimaan_barang NOT NULL,
KD_Surat_Pemesanan_barang kode SPB NOT NULL,
Tanggal Tanggal pemesanan NOT NULL,
PRIMARY KEY (KD_Surat_penerimaan_barang)
Foreign Key KD_Surat_Pemesanan_barang references Surat Pemesanan Barang
(KD_Surat_Pemesanan_barang) ON UPDATE CASCADE ON DELETE NO
ACTION
11. Surat Tagihan Pembayaran
Domain KD_surat_tagihan_pembayaran: Variable length character string,
length 10
DomainKD_surat_penerimaan_barang: Variable length varchar string,
length 10
Domain Tanggal : Date time
Surat Tagihan Pembayaran (
KD_surat_tagihan_pembayaran Kode SPB NOT NULL,
KD_surat_penerimaan_barang kode barang NOT NULL,
Tanggal Tanggal pembayaran NOT NULL,
137
PRIMARY KEY (KD_surat_tagihan_pembayaran)
Foreign Key , KD_surat_penerimaan_barang references Surat penerimaan Barang
(KD_surat_penerimaan_barang) ON UPDATE CASCADE ON DELETE NO
ACTION
12. Penjualan
Domain KD_Penjualan: Variable length character string, length 10
Domain KD_barang: Variable length varchar string, length 10
Domain Tanggal: Date time
Domain KD_pelanggan: Variable length varchar string, length 10
Domain Jumlah_barang: integer
Domain harga_total : integer
Penjualan (
KD_Penjualan Kode penjualan NOT NULL,
KD_barang kode barang NOT NULL,
KD_pelanggan kode pelanggan NOT NULL,
Jumlah_barang quantity NOT NULL,
harga_total harga total NOT NULL,
138
PRIMARY KEY (KD_Penjualan)
Foreign Key KD_pelanggan references pelanggan (KD_pelanggan ) ON UPDATE
CASCADE ON DELETE NO ACTION
Foreign Key KD_Barang references barang (KD_Barang) ON UPDATE
CASCADE ON DELETE NO ACTION
13. Catatan Return Barang
Domain KD_Catatan_Return_Brg Variable length character string, length
10
KD_Nota_pembayaran: Variable length varchar string, length
10
Tgl_catatan _return_brg: Date time
Jumlah_Barang interger
Catatan Return Barang (
KD_Catatan_Return_Brg Kode SPB NOT
NULL,
KD_Nota_pembayaran: kode barang NOT
NULL,
Tgl_catatan _return_brg Tanggal permohonan NOT NULL,
Jumlah_Barang nama barang NOT NULL,
139
PRIMARY KEY (KD_Catatan_Return_Brg)
Foreign Key KD_Nota_pembayaran references nota pembayaran
(KD_Nota_pembayaran) ON UPDATE CASCADE ON DELETE NO ACTION
4.1.5.1.2Merancang Representasi untuk Data Turunan
Tujuan dari langkah ini adalah untuk memutuskan bagaimana merepresentasikan
derived data yang ada dalam model data logikal global ke dalam target DBMS.
Atribut yang nilainya dapat ditemukan dengan memeriksa nilai dari atribut lain
dikenal dengan nama derived atau calculated attribute. Derived attribute yang
didefinisikan yaitu:
1. Atribut TotalPemb yang merepresentasikan besar pembelian. Nilai ini didapat
dari perkalian antara jumlah barang yang dibeli dengan harga beli barang.
2. Atribut TotalPenj yang merepresentasikan besar penjualan. Nilai ini didapat
dari perkalian antara jumlah barang yang dijual dengan harga jual barang
4.1.5.1.3. Merancang General Constraint
Tujuan dari langkah ini adalah untuk merancang general constraint atau
batasan perusahaan untuk target DBMS. Adapun general constraint yang dirancang
untuk target DBMS ini adalah sebagai berikut :
Jumlah pembelian barang (QtyBrg) yang ada tidak boleh melebih kapasitas gudang
yang tersisa. Kapasitas maksimum gudang adalah 3000 item.
CONSTRAINT QtyMaks
140
CHECK ( NOT EXIST (SELECT SUM(QtyBrg) AS TotalStock FROM
Barang
WHERE (SELECT SUM(QtyBrg) FROM Barang) > 3000) )
4.1.5.2. Merancang File Organization dan Indexes
Berikut langakah – langkah untuk merancang file organization dan indexes :
• Menganalisa transaksi
• Memilih organisasi file
• Memilih indeks - indeks
• Memperkirakan kebutuhan disk space
4.1.5.2.1Menganalisa Transaksi
Langkah ini bertujuan untuk memahami fungsionalitas dari transaksi -
transaksi yang akan berjalan pada basisdata dan untuk menganalisis transaksi -
transaksi yang penting. Matriks berikut ini menunjukkan transaksi - transaksi yang
dibutuhkan dan relasi yang diakses. Adapun transaction / relation cross-reference
matrix yang dihasilkan adalah sebagai berikut :
141
Transaction / Relation
(A) (B) (C) (D) (E) (F) I R U D I R U D I R U D I R U D I R U D I R U D
Pelanggan X X Supplier X X Barang X X X Karyawan X Surat service X Nota pembayaran X Surat permintaan barang Surat permohonan pembelian barang
Surat Pemesanan Barang Surat penerimaan Barang Surat Tagihan Pembayaran
X
Penjualan X Catatan retur barang
I = Insert ; R = Read ; U = Update ; D = Delete (k)Masukkan detail Supplier yang memasok barang ke perusahaan (D) Masukkan detail Pegawai (l)Masukkan detail Customer (E) Masukkan detail Pembelian (M)Masukkan detail Barang (F) Masukkan detail Penjualan
Tabel 4.18Cross-referencing transactions and relationship Transaction / Relation
(G) (H) (I) (J) (K) (L) I R U D I R U D I R U D I R U D I R U D I R U D
Pelanggan X X X Supplier X X X Barang X X Karyawan X X Surat service X X Nota pembayaran X X
142
Surat permintaan barang X Surat permohonan pembelian barang
Surat Pemesanan Barang X Surat penerimaan Barang X Surat Tagihan Pembayaran X Penjualan X Catatan retur barang X
I = Insert ; R = Read ; U = Update ; D = Delete (G) Masukkan detail Pembayaran (J) Masukkan detail Retur Pembelian (H) Masukkan detail Penerimaan (K) Update detail Supplier (I) Masukkan detail Retur Penjualan (L) Update detail Customer
Tabel 4.19Cross-referencing transactions and relations (lanjutan)
Transaction / Relation
(M) (N) (O) (P) (Q) (R) I R U D I R U D I R U D I R U D I R U D I R U D
Pelanggan X Supplier X Barang X X X X Karyawan X X Surat service X Nota pembayaran Surat permintaan barang X Surat permohonan pembelian barang
Surat Pemesanan Barang Surat penerimaan Barang Surat Tagihan Pembayaran X Penjualan Catatan retur barang X X
I = Insert ; R = Read ; U = Update ; D = Delete
143
(M) Update detail barang (P) Tampilkan detail barang dari pembelian (N) Update detail Pegawai (Q) Tampilkan Pembayaran yang dilakukan terhadap pembelian (O) Tampilkan supplier yang memasok barang (R) Tampilkan detail pembayaran oleh customer
Tabel 4.20Cross-referencing transactions and relations (lanjutan)
Transaction / Relation
(S) (T) (U) (V) (W) (X) I R U D I R U D I R U D I R U D I R U D I R U D
Pelanggan Supplier X Barang X X Karyawan X X X X Surat service Nota pembayaran X Surat permintaan barang
X
Surat permohonan pembelian barang
Surat Pemesanan Barang
X
Surat penerimaan Barang
Surat Tagihan Pembayaran
Penjualan X Catatan retur barang
I = Insert ; R = Read ; U = Update ; D = Delete (S) Tampilkan customer yang memesan barang (V) Tampilkan pegawai yang mengurus penjualan (T) Tampikan pegawai yang mengurus pembayaran (W) Tampilkan detail barang dari penjualan (U) Tampilkan manager yang mengawasi pegawai (X) Tampilkan pegawai yang mengurus retur penjualan
144
Tabel 4.21Cross-referencing transactions and relations (lanjutan)
Transaction / Relation
(Y) (Z) (A1) (B1) (C1) (D1) I R U D I R U D I R U D I R U D I R U D I R U D
Pelanggan Supplier Barang X X Karyawan X X Surat service X Nota pembayaran X Surat permintaan barang Surat permohonan pembelian barang
X
Surat Pemesanan Barang Surat penerimaan Barang
X
Surat Tagihan Pembayaran
Penjualan Catatan retur barang
I = Insert ; R = Read ; U = Update ; D = Delete (Y) Tampilkan pegawai yang mengurus retru pembelian (B1) Tampilkan pegawai yang mengurus penerimaan (Z) Tampilkan retur barang yang telah direview terhadap penjualan (C1) Tampilkan detail barang yang dijual yang diretur (A1) Tampilkan retur barang yang telah di review terhadap pembelian (D1) Tampilkan detail barang yang dibeli yang diretur
Tabel 4.22Cross-referencing transactions and relations (lanjutan)
145
4.1.5.2.2. Memilih File – file Organisasi
Berdasarkan basisdata yang dipakai untuk merancang aplikasi ini, yaitu SQL Server 2000,
maka organisasi file yang digunakan adalah B+ - Trees. Adapun aturan – aturan dalam
pembuatan B+ - Trees sebagai berikut :
•Jika root adalah leaf node, maka node tersebut harus memiliki setidaknya 2 child
•Untuk tree of order n, setiap node (kecuali root dan leaf node) harus memiliki pointer dan child
sebanyak antara n/2 dan n. Jika n/2 bukan merupakan integer, maka dibulatkan ke atas.
•Untuk tree of order n, jumlah nilai jumlah dari key pada leaf node harus di antara (n-1)/2 dan (n-
1). Jika (n-1)/2 bukan merupakan integer, maka hasilnya akan dibulatkan ke atas
•Nilai jumlah dari key yang terdapat pada node yang bukan leaf node adalah 1 lebih sedikit dari
jumlah pointer
•Tree harus selalu seimbang (balanced), yaitu setiap jalur dari root ke leaf harus memiliki
panjang yang sama
•Leaf node dihubungkan berdasarkan nilai key
4.1.5.2.3. Memilih Indeks – indeks
Berikut ini adalah tabel indeks untuk setiap entitas yang ada :
Nama Entity Indeks Supplier KdSupp Pelanggan KdPlgn Barang KdBrg Penjualan KdFakturPenj
146
Karyawan KdKrywn Nota pembayaran KdNotaPmbyrn Surat penerimaan barang KdSrtPenerimaanBrg Retur penj KdReturPenj
KdBrg Surat Permohonan Pembelian KdSrtPermohonanPmbln
KdBrg Catatan pengeluaran barang KdCttnPengeluaranBrg
KdBrg KdSrtPermohonanPmbln
Catatan retur barang KdCttnReturBrg KdCttnPengeluaranBrg KdNotaPembayaran
Pembayaran pembelian KdPmbyrnPmbln KdSupp
Nota pembelian barang KdNtPmblnBrg KdPmbyrnPmbln
Surat service KdSrtSrvc KdPlgn
Surat permintaan barang KdSrtPrmntaanBrg KdSrtSrvc
Tabel 4.23Indeks
4.1.5.2.4. Memperkirakan Kebutuhan Disk Space
Langkah ini bertujuan untuk memperkirakan jumlah kapasitas penyimpanan yang
akan dibutuhkan oleh basis data. Langkah-langkah berikut digunakan untuk
memperkirakan jumlah kapasitas penyimpanan yang dibutuhkan untuk menyimpan data
pada tabel dalam Microsoft SQL Server 2000 yaitu :
4.1.5.2.5 Estimasi Table Size
Langkah – langkah dalam estimasi ukuran tableadalah sebagai berikut :
147
1. Adapun perkiraan jumlah record pada masing-masing tabel adalah sebagai berikut.:
Tabel / Relasi Perkiraan jumlah row yang ada sekarang
Perkiraan pertumbuhan jumlah row dalam 1 tahun
Total Row / Num_Rows
Supplier 10 2 12 Pelanggan 400 70 470 Barang 800 100 900 Karyawan 30 3 33 Penjualan 3500 700 4200 Surat service 4000 850 4850 Nota Pembayaran 1000 200 1200 Surat Permintaan Barang
1500 100 1600
Surat Permohonan Pembelian barang
140 25 165
Catatan Retur Barang 100 30 130 Surat Pemesanan Barang
2000 200 2200
Surat Penerimaan Barang
2000 200 2200
Nota Pembelian Barang 1500 300 1800 Surat Tagihan Pembayaran
2000 250 2250
Tabel 4.24Perkiraan jumlah row pada masing-masing tabel
2.Jika ada fixed-length column dan variable-length column dalam definisi tabel, hitung
kapasitas penyimpanan untuk masing-masing group column. Ukuran dari kolom
tergantung pada tipe data dan spesifikasi ukuran.
Adapun pembagian fixed-length column dan variable–length column pada tiap table
sebagai berikut :
148
Tabel / Relasi Fixed-length column Size (byte)
Variable-length column Size (byte)
Pelanggan Kd_Pelanggan 5 Nama_pelanggan 30 - - Alamat_pelanggan 80
- - No_telp_pelanggan 15
- - Email_pelanggan 30
Supplier KD_supplier 5 Nama_supplier 30 KD_barang 6 Alamat_supplier 80 - - No_telp_supplier 15 - - Nama_barang 30 - - - -
Barang KD_barang 5 Nama_barang 30 JmlhStok 4 Jenis_barang 30 Harga_Barang 8 - - - - - -
Karyawan KD_Karyawan 5 Nama_karyawan 20 Jenis kelamin 6 Alamat _karyawan 10 - - No_telp_karyawan 12 - - Jabatan_karyawan 10
Surat service KD_surat_service 8 Jenis _service 40 KD_karyawan 5 Keterangan 100 KD_pelanggan 5 - - KD_barang 5 - - Tanggal 8 - -
Nota pembayaran
KD _nota_pembayaran 8 - - KD_surat_service 8 - - Jumlah_bayar 8 - - Jatuh tempo 8 - -
Surat permintaan barang
KD_SPB 8 - - KD_barang 5 - - Jumlah_barang 4 - - Tanggal 8 -
-
149
Surat permohonan pembelian barang
Tanggal_permohonan 8 Nama_barang 30 Jumlah_barang 4 - - KD_PPB 8 - -
Kd_barang 5 - -
Surat Pemesanan Barang
KD_SPB 8 - - KD_PPB 8 - - Tanggal 8 - -
Surat penerimaan Barang
KD_Surat_penerimaan_barang
8 - -
Tanggal 8 - - KD_Surat_Pemesanan_barang
8 - -
Surat Tagihan Pembayaran
KD_surat_tagihan_pembayaran
8 - -
KD_surat_penerimaan_barang
8 - -
Tanggal 8 - - Penjualan KD_Penjualan 8 - -
KD_pelanggan 5 - - KD_Barang 5 - - Jumlah_barang 4 - - Tgl_penjualan 8 - - Harga_Total 8 - -
Catatan retur barang
KD_Catatan_Return_Brg 5 - - KD_Nota_pembayaran 8 - - Tgl_catatan _return_brg 8 - Jumlah_Barang 4 -
Tabel 4.25 Perhitungan ukuran data untuk setiap fixed dan variable - length column pada
masing-masing tabel
150
Tabel / Relasi Num_ Cols
Fixed_ Data_ Size
Num_ Variable_Cols
Max_Var_ Size
Pelanggan 1 5 4 155
Supplier 2 11 2 155 Barang 3 17 2 60
Karyawan 2 15 4 55
Surat service 5 31 1 100 Nota pembayaran 4 32 0 0
Surat permintaan barang 3 26 0 0 Surat permohonan pembelian barang
4 25 0 0
Surat Pemesanan Barang 3 24 0 0 Surat penerimaan Barang 3 24 0 0
Surat Tagihan Pembayaran 3 24 0 0 Penjualan 6 46 0 0 Catatan retur barang 4 25 0 0
Tabel 4.26 Perhitungan kapasitas penyimpanan untuk masing-masing tabel berdasarkan
fixed dan variable-length column
Num_Cols = jumlah fixed-length column
Fixed_Data_Size = jumlah byte dari semua fixed-length column
Num_Variable_Cols = jumlah variable-length column
Max_Var_Size = maksimum ukuran byte dari semua variable-length column
3. Jika ada fixed-length column dalam tabel, bagian dari row yang dikenal dengan null
bitmap, disediakan untuk mengatur kemungkinan null dari column. Hitung
besarnya ukuran null bitmap tersebut. Hasil perhitungan harus bilangan bulat. Jika
hasil perhitungan adalah bilangan desimal, buang semua nilai di belakang koma.
151
Tabel / Relasi Num_ Cols
Null_ Bitmap
Pelanggan 1 3
Supplier 2 3 Barang 3 3
Karyawan 2 3
Surat service 5 6 Nota pembayaran 4 3
Surat permintaan barang 3 3 Surat permohonan pembelian barang
4 3
Surat Pemesanan Barang 3 3 Surat penerimaan Barang 3 3
Surat Tagihan Pembayaran 3 3 Penjualan 6 3
Catatan retur barang 4 3
Ket :
Null_Bitmap = 2 + (( Num_Cols + 7) / 8 )
Tabel 4.27 Perhitungan null bitmap dari masing-masing tabel
4. Jika ada variable-length column dalam tabel, tentukan berapa besar kapasitas yang
digunakan untuk menyimpan column beserta dengan row - row yang dimilikinya. Jika
tidak ada kolom dengan variable_length, maka variable_data_size diset 0
Tabel / Relasi Num_ Variable_ Cols
Max_Var_ Size
Variable_ Data_Size
Pelanggan 4 155 165 Supplier 2 155 161 Barang 2 60 66 Karyawan 4 55 65 Surat service 1 100 103
Nota pembayaran 0 0 0
152
Surat permintaan barang 0 0 0
Surat permohonan pembelian barang
0 0 0
Surat Pemesanan Barang 0 0 0 Surat penerimaan Barang 0 0 0
Surat Tagihan Pembayaran 0 0 0
Penjualan 0 0 0 Catatan retur barang 0 0 0
Ket :
Variable_Data_Size = 2 + ( Num_Variable_Cols x 2) + Max_Var_Size
Tabel 4.28 Perhitungan kapasitas penyimpanan untuk variable-length column beserta
dengan row dari masing-masing tabel
5 . Hitung ukuran dari row.
Tabel / Relasi Fixed_ Data_ Size
Variable_Data_ Size
Null_ Bitmap
Row_Size
Pelanggan 5 155 3 164 Supplier 11 155 3 173 Barang 17 60 3 84 Karyawan 15 55 3 77 Surat service 31 100 3 138 Nota pembayaran 32 0 3 39 Surat permintaan barang 26 0 3 33 Surat permohonan pembelian barang
25 0 3 32
Surat Pemesanan Barang 24 0 3 31 Surat penerimaan Barang 24 0 3 31 Surat Tagihan Pembayaran 24 0 3 31 Penjualan 46 0 3 53 Catatan retur barang 25 0 3 31
Ket :
Row_Size = Fixed_Data_Size + Variable_Data_Size + Null_Bitmap + 4
( nilai 4 tersebut mewakili data row header)
153
Tabel 4.29 Perhitungan total ukuran row untukmasing-masing tabel
6. Hitung jumlah rows per page (8096 free bytes per page). Hasil perhitungan dibulatkan
Tabel / Relasi Row_Size Rows_Per_Page
Pelanggan 164 48 Supplier 173 46 Barang 84 94 Karyawan 77 102 Surat service 138 57 Nota pembayaran 39 197 Surat permintaan barang 33 231 Surat permohonan pembelian barang 32 238 Surat Pemesanan Barang 31 245 Surat penerimaan Barang 31 245 Surat Tagihan Pembayaran 31 245 Penjualan 53 149 Catatan retur barang 31 245
Ket :
Rows_Per_Page = ( 8096 ) / (Row_Size + 2)
Tabel 4.30Perhitungan jumlah rows per page dari masing-masing tabel
7. Jika clustered index diciptakan dalam tabel, hitung jumlah freerows per page yang
disediakan, berdasarkan pada fill factor yang telah dispesifikasikan. Hasil perhitungan
dibulatkan ke bawah.
Tabel / Relasi Fill_Factor Row_Size Free_Rows_Per_Page
Pelanggan 50 164 24 Supplier 50 173 23 Barang 50 84 47 Karyawan 50 77 51
154
Surat service 50 138 28 Nota pembayaran 50 39 98 Surat permintaan barang 50 33 115 Surat permohonan pembelian barang
50 32 119
Surat Pemesanan Barang 50 31 122 Surat penerimaan Barang 50 31 122 Surat Tagihan Pembayaran 50 31 112 Penjualan 50 53 73 Catatan retur barang 50 31 122
Ket :
Free_Rows_Per_Page = 8096 x ((100 – Fill_Factor) / 100) / (Row_Size + 2)
Tabel 4.31 Perhitungan jumlah free rows per page dari masing-masing tabel
Tabel / Relasi Total Row / Num_ Rows
Rows_Per_ Page
Free_ Rows_Per_Page
Num_ Pages
Pelanggan 12 48 24 1 Supplier 470 46 23 20 Barang 900 94 47 20 Karyawan 33 102 51 1 Surat service 4200 57 28 144 Nota pembayaran 4850 197 98 49 Surat permintaan barang 1200 231 115 10 Surat permohonan pembelian barang
1600 238 119 13
Surat Pemesanan Barang 165 245 122 1 Surat penerimaan Barang 130 245 122 1 Surat Tagihan Pembayaran 2200 245 112 17 Penjualan 2200 149 73 28 Catatan retur barang 1800 245 122 14
Ket :
Num_Pages = Num_Rows / (Rows_Per_Page – Free_Rows_Per_Page)
155
Tabel 4.32 Perhitungan jumlah page untuk menyimpan semua row dari
masing-masing tabel
8. Hitung jumlah kapasitas yang dibutuhkan untuk menyimpan data dalam tabel (8192 total
bytes per page).
Tabel / Relasi Num_Pages Table_Size (KBytes)
Pelanggan 1 8,192 Supplier 20 163,84 Barang 20 163,84 Karyawan 1 8,192 Surat service 144 1179,648 Nota pembayaran 49 401,408 Surat permintaan barang 10 81,92 Surat permohonan pembelian barang 13 106,496 Surat Pemesanan Barang 1 8,192 Surat penerimaan Barang 1 8,192 Surat Tagihan Pembayaran 17 139,264 Penjualan 28 229,376 Catatan retur barang 14 114,688 Total kapasitas penyimpanan yang dibutuhkan
2613,248 KB
Ket :
Table_Size (Data_Space_Used)= 8192 x Num_Pages
Tabel 4.33 Perhitungan jumlah kapasitas untuk menyimpan semua data dalam
masing-masing tabel
156
2. Estimasi Table Size dengan Clustered Index
Berikut merupakan langkah – langkah dalam perhitungan table size yang memiliki clustered index :
Nama Tabel Num_ Ckey_ Cols
Fixed_ Ckey Size
Num_ Var_ Ckey_ Cols
Max_ Var_ Ckey_ Size
CIndex_ Null_ Bitmap
Variable_ Ckey_ Size
CIndex_ Row_ Size
CIndex_ Row_ Per_ Page
Num_Pages_Clevel_0 Num_ CIndex_ Pages
Clustered Index Size
Pelanggan 1 5 0 0 3 0 17 426 1 1 8,192 KB Supplier 1 5 0 0 3 0 17 426 1 1 8,192 KB Barang 1 6 0 0 3 0 18 404 1 1 8,192 KB Karyawan 1 5 0 0 3 0 17 426 1 1 8,192 KB Surat service
1 8 0 0 3 0 20 368
1 1 8,192 KB
Nota pembayaran
1 8 0 0 3 0 20 368
1 1 8,192 KB
Surat permintaan barang
1 8 0 0 3 0
20 368
1 1 8,192 KB
Surat permohonan pembelian barang
1 8 0 0 3 0
20 368
1 1 8,192 KB
Surat Pemesanan Barang
1 8 0 0 3 0
20 368
1 1 8,192 KB
Surat penerimaan Barang
1 8 0 0 3 0
20 368
1 1 8,192 KB
Surat Tagihan Pembayaran
2 14 0 0 3 0
26 289
1 1 8,192 KB
157
Penjualan 2 14 0 0 3 0 26 289 1 1 8,192 KB Catatan retur barang
2 16 0 0 3 0 28 269
1 1 8,192 KB
Tabel 4.34 Perhitungan Clustered Index
158
keterangan :
Data_Space_Used = space yang digunakan untuk menyimpan data
1. Num_CKey_Cols = Jumlah kolom pada kunci index
Fixed_Ckey_Size = Jumlah byte dari semua kolom dengan fixed-length key
Num_Variable_Ckey_Cols = Kolom dengan fixed-length key pada kunci index
Max_Var_CKey_Size = Ukuran maksimum dari semua fixed-length key
2. CIndex_Null_Bitmap = 2 + (( Num_CKey_Cols + 7) / 8 )
3. Variable_CKey_Size = 2 + (Num_Variable_CKey_Cols x 2) + Max_Var_CKey_Size
4. CIndex_Row_Size = Fixed_CKey_Size + Variable_CKey_Size + CIndex_Null_Bitmap + 1 + 8
5. CIndex_Rows_Per_Page = ( 8096 ) / (CIndex_Row_Size + 2)
CIndex_Rows_Per_Page = Jumlah baris index per page
6. Number of pages (level 0) (Num_Pages_CLevel_0) = (Data_Space_Used / 8192) / CIndex_Rows_Per_Page
7. Clustered index size (bytes) = 8192 x Num_CIndex_Pag
159
1. Estimasi Table Size dengan NonClustered Index
Berikut merupakan langkah – langkah dalam perhitungan table size yang memiliki nonclustered index :
Tabel 4.35Tabel Perhitungan Nonclustered Index
Total Estimasi Disk Space yang dibutuhkan selama 1 tahun = Table Size + Clustered Index Size + NonClustered Index
Size
= 2236,416 KB + 180,224 KB + 147,456 KB = 2564,096 KB
Nama Tabel Num_ Ckey_ Cols
Fixed_ Key_ Size
Num_ Var_ Ckey_ Cols
Var_ key_ Size
Index_ Null_ Bitmap
NL_Index_Row_Size
NL_Index_Rows_Per_Page
Index_Row_Size
Index_Rows_Per_Page
Free_Index_Rows_Per_Page
Num_Pages_Level_0
Num_Pages_Level_1
Non Clustered Index Size
pelanggan 1 0 1 20 24 53 147 62 126 65 1 1 16,384KB Supplier 1 0 1 20 24 53 147 62 126 65 5 1 49,152KB Barang 1 5 0 0 3 17 426 27 279 149 7 1 65,536KB Karyawan 1 0 1 20 24 53 147 62 126 65 1 1 16,384KB
160
Keterangan :
1. Num_Key_Cols = jumlah kolom pada kunci index
Fixed_Key_Size = jumlah byte pada semua kolom fixed-length key
Num_Variable_Key_Cols = jumlah kolom dengan variable-length key
Max_Var_Key_Size = ukuran maksimum kolom variable-length key
2. Index_Null_Bitmap = 2 + (( Num_Key_Cols + 7) / 8 )
3. Variable_Key_Size = 2 + (Num_Variable_Key_Cols x 2) + Max_Var_Key_Size
4. NL_Index_Row_Size = Fixed_Key_Size + Variable_Key_Size + Index_Null_Bitmap + 1 + 8
5. NL_Index_Rows_Per_Page = ( 8096 ) / (NL_Index_Row_Size + 2)
6. Index_Row_Size = CIndex_Row_Size + Fixed_Key_Size + Variable_Key_Size + Index_Null_Bitmap + 1
7. Index_Rows_Per_Page = ( 8096 ) / (Index_Row_Size + 2)
8. Free_Index_Rows_Per_Page = 8096 x ((100 - Fill_Factor) / 100) / Index_Row_Size
9. Num_Pages_Level_0 = Num_Rows / (Index_Rows_Per_Page - Free_Index_Rows_Per_Page)
Num_Pages_Level_1 = Num_Pages_Level_0 / NL_Index_Rows_Per_Page
10. Nonclustered index size (bytes) = 8192 x Num_Index_Pages
161
4.1.6 Merancang User View
Tujuan dari tahap ini adalah untuk merancang user view yang diidentifikasikan selama pengumpulan kebutuhan dan analisa perkembangan lifecycle sistem basisdata .
Adapun user view yang dirancang untuk sistem basisdata adalah sebagai berikut :
CREATE VIEW view_ karyawan AS
SELECT *FROM karyawan
CREATE VIEW view_pelanggan AS
SELECT *FROM Customer
CREATE VIEW view_Supplier AS
SELECT * FROM Supplier
CREATE VIEW view_Barang AS
SELECT * FROM Barang
CREATE VIEW view_nota_Pembelian
AS
SELECT p.KdFakturPemb, p.TglPemb, s.KdSupp, s.NmSupp, pg.KdPgw, pg.NmPgw, b.KdBrg, b.KdDesign,b.Merk,b.KdWrn,b.KdUkrn,b.HrgSatuanBrg, SUM(QtyPemb * HrgSatuanBrg) AS Total
FROM Pembelian p JOIN Supplier s ON p.KdSupp = s.KdSupp
JOIN Pegawai pg ON p.KdPgw = pg.KdPgw
JOIN Barang b ON d.KdBrg = b.KdBrg
GROUP BY p.KdFakturPemb, p.TglPemb, s.KdSupp, s.NmSupp, pg.KdPgw, pg.NmPgw, b.KdBrg, b.KdDesign,b.Merk,b.KdWrn,b.KdUkrn,b.HrgSatuanBrg
162
CREATE VIEW view_Penjualan
AS
SELECT p.KdPenjualam, p.Tamggal, c.Kdpelanggan, c.nama_pelanggan , pg.KD_Karyawan,pg.nama_karyawan ,b.KD_barang, b, b.harga_barang, SUM(jumlah * HrgSatuanBrg) AS Total
FROM Penjualan p JOIN Customer c ON p.KdCust = c.KdCust
JOIN Pegawai pg ON p.KdPgw = pg.KdPgw
JOIN Barang b ON d.KdBrg = b.KdBrg
GROUP BY p.Kdpenjualan, p.Tanggal, c.Kd_pelanggan, c.nama_pelanggan, pg.Kd_karyawan,pg.Nama_karyawan, b.Kd_barang, , b.HrgSatuanBrg
CREATE VIEW view_surat_Penerimaan_barang
AS
SELECT pb.surat_penerimaan_barang, pg.Kd_surat_pemesanan_Barang, tanggal, c.Kd_pelanggan, c.nama_pelanggan, pg..kd_karyawan, pg.nama_karyawan
FROM surat_penerimaan_barang pb JOIN karyawan pg ON p.Kd_karyawan = pg.karyawan
JOIN surat_pemesanan_Barang pj ON pg.surat_pemesanan_Barang = pg.surat_pemesaan_barang
JOIN pelanggan c ON c pelanggant = pj.KdCust
CREATE VIEW view_surat_tagihan_Pembayaran
AS
SELECT p.Kd_surat_tagihan_pembayaran, pb.kd_surat_peneriamaan_Barang, Tanggal, s.Kd_Supplier, Nama_supplier, pg.Kd_karyawan, Nama_karyawan, jumlah_total
FROM surat_penerimaan_barang pb JOIN karawan pg ON pb.KdPgw = pg.KdPgw
JOIN surat_pemesanan_Barang pb ON d.Kd_surat_pemesanan_Barang = pb.surat_pemesanan_barang
163
JOIN Supplier s ON s.Kdpelanggan = pb.Kdpelanggan
CREATE VIEW view_catatan_retur_Barang
AS SELECT r.Kdcatatan_retur_barang, r.Kdpenjualan, TglReturPenj, pg.Kdkaryawan, Nm_karyawan, QtyReturPenj, SUM (QtyReturPenj * HrgSatuanBrg) AS Total_Retur
FROM ReturPenj r JOIN Barang b ON d.KdBrg = b.KdBrg
GROUP BY r.Kdcatatan_retur_barang, r.Kdpenjualan, TglReturPenj, pg.Kdkaryawan, Nm_karyawan, QtyReturPenj
4.1.7Merancang mekanisme keamanan
Tujuan dari langkah ini adalah untuk merancang mekanisme keamanan dari basis
data yang dispesifikasikan oleh user. Adapun mekanisme keamanan yang dirancang
untuk basisdata adalah sebagai berikut.
Hak akses setiap user
No Jabatan Akses
1 Admin Insert, Select, Update, Delete 2 Direktur Utama,
Direktur Select
3 Bagian Penjualan Select, Insert, Update 4 Bagian Karyawan Select, Insert, Update
Tabel 4.36 Hak Akses
4.2 Kamus Data
Dibawah ini adalah kamus data dari CV.Dewi bersaudara motor
1.Data Karyawan
Nama Arus Data : Data Karyawan
Alias :-
Bentuk Data Tampilan monitor
Arus Data :File Karyawan
Penjelasan :Daftar Data Diri Karyawan
164
Periode :Setiap Ada Karyawan Baru
2.Data Pelanggan
Nama Arus Data :Data Pelanggan
Alias :-
Bentuk Data :Tampilan Monitor
Arus Data :File Pelanggan
Penjelasan :Daftar Pelanggan
Periode :Setiap Ada Pelanggan Baru
3.Data Barang
Nama Arus Data :Data Barang
Alias :-
Bentuk Data :Tampilan Monitor
Arus Data :File Barang
Penjelasan :Daftar Stock Barang
Periode :Setiap Ada Transaksi
4.Data Supplier
Nama Arus Data :Data Supplier
Alias :-
Bentuk Data :Tampilan monitor
Arus Data :File Supplier
Penjelasan :Data-Data Supplier
Periode :Setiap Ada Supplier Baru dan Setiap Mencapai Titik ROP(?)
165
5.Data Penjualan
Nama Arus Data :Data Penjualan
Alias :-
Bentuk Data :Tampilan Monitor
Arus Data :File Penjualan
Penjelasan :Data barang Terjual
Periode :Setiap Ada Transaksi
6.surat service
Nama Arus Data : Data surat service
Alias :-
Bentuk Data : cetakan komputer
Arus Data : file surat service, file karyawan, file pelanggan , file barang
Penjelasan : surat yang berisi apa yang diservice
Periode : setiap kali ada transaksi
7. Nota pembayaran
Nama Arus Data : Data nota pembayaran
Alias :-
Bentuk Data : cetak komputer
Arus Data : file nota pembayaran, file surat service, file penjualan
Penjelasan : nota yang berisi apa yang harus di bayar oleh pelanggan
Periode : setiap ada transaksi
166
8. Surat permintaan barang
Nama Arus Data : surat permintaan barang
Alias :-
Bentuk Data : cetak komputer
Arus Data : file surat permintaan barang , file surat service
Penjelasan : sebagai bukti pengambilan barang di gudang
Periode : setiap ada transaksi
9 . surat permohonan pembelian barang
Nama Arus Data : surat permohonan pembelian barang
Alias :-
Bentuk Data : cetak komputer
Arus Data : file surat permohonan pembelianng barang, file bar
Penjelasan : jika barang sampe titi ROP maka surat ini dbuat untuk persetujuan pembelian barang
Periode : setiap mencapai titik ROP
10. catatan retur barang
Nama Arus Data : catatan retur barang
Alias :-
Bentuk Data : cetak komputer
Arus Data : file catatan retur barang , file nota pembayaran, file catatan pengeluaran barang
Penjelasan : mencatat jika ada pengambilan barang yang salah oleh pelanggan
Periode : setiap ada barang yang retur
167
12. surat pemesanan barang
Nama Arus Data : surat pemesanan barang
Alias :-
Bentuk Data : cetak komputer
Arus Data : file surat pemesanan barang , file supplier, file surat permohonan pembelian
Penjelasan : surat dibuat untuk barang yang sudah mencapai ROP
Periode : setiap barang mencapai titik ROP
13. surat penerimaan barang
Nama Arus Data : surat penerimaan barang
Alias :-
Bentuk Data : cetak komputer
Arus Data : file surat permintaan barang , file surat pemesanan barang
Penjelasan : surat sebagai bukti barang dari supplier untuk di masukan ke gudang Periode : setiap ada pemesanan barang
14. surat tagih pembayaran
Nama Arus Data : surat tagih pembayaran
Alias :-
Bentuk Data : cetak komputer
Arus Data : file surat tagih pembayaran, file surat penerimaan barang
Penjelasan : sebagai bukti pembayaran kepada supplier
Periode : setiap ada pemesanan
168
4.3. Perancangan Aplikasi
4.3.1.Structure Chart
Berikut ini adalah gambar struktur program yang dirancang untuk aplikasi basisdata pada CV.Dewi Bersaudara :
Gambar 4.3 : Struktur Program
169
4.3.2 State Transition Diagram
Berikut ini adalah gambar State transition Diagram untuk aplikasi basisdata yang
dirancang :
Gambar 4.4 :STD Menu login
Gambar 4.5 :STD Menu utama
170
Gambar 4.6: STD Halaman Insert Data pelanggan
Gambar 4.7 : STD Halaman Insert Data karyawan
Gambar 4.8: STD Menu Transaksi
171
Gambar 4.9 : STD Halaman Insert Data karyawan
Gambar 4.10 :STD Halaman Insert Data barang
Gambar 4.11 STD Menu Penjualan
180
Gambar 4.28 STD submenu tools
Gambar 4.29 STD submenu cetak laporan
Gambar 4.30 STD halaman laporan pembelian
181
Gambar 4.31 STD halaman laporan pembayaran
Gambar 4.32 STD halaman laporan penjualan
Gambar 4.33 STD halaman laporan retur penjualan
Gambar 4.34 STD halaman laporan penerimaan
182
4.3.3. Perancangan input
Berikut ini adalah rancangan input untuk aplikasi basisdata yang dirancang
untuk CV.Dewi Bersaudara :
Gambar 4.35 Form Login
Gambar 4.36 Menu Utama
191
Gambar 4.53 Master Supplier
Gambar 4.54 laporan
4.3.4. Rancangan output
Dari aplikasi basisdata yang dirancang dihasilkan 6 laporan dan 1 surat jalan, antara
lain sebagai berikut :
• Laporan Pembelian Barang
• Laporan Penjualan Barang
192
• Laporan Retur Penjualan Barang
• Surat penjualan
• Laporan penerimaan
• Laporan pembayaran
4.3.5 Petunjuk Operasional Sistem
Berikut ini akan dijelaskan petunjuk operasional sistem untuk aplikasi
basisdata yang telah dirancang :
Aplikasi dimulai dengan mengklik ganda pada skripsi.exe, kemudian
akan ditampilkan FormLogin.
Form LogIn
Gambar4.55 Login
Pada Formini user diminta untuk mengisi User Name dan Password yang
digunakan untuk menentukan hak akses user terhadap basisdata. Jika user
mengklik tombol ‘Login’ maka user name dan password akan divalidasi untuk
dicek apakah sudah terisi atau belum. Jika belum terisi akan ditampilkan pesan
untuk mengisi user nama dan password dan kemudian kembali ke FormLogin.
193
Jika sudah terisi, user name dan password akan dicek apakah sudah sesuai
dengan data yang ada di basisdata. Jika sesuai akan masuk ke Form Utama. Jika
tidak sesuai, maka akan ditampilkan pesan error dan kembali ke FormLogin.
Tombol cancel digunakan untuk keluar dari Aplikasi
Form utama
Gambar4.56Form utama
Gambar4.57Form utama Menu insert
194
Gambar 4.58Form Utama Menu Transaksi Sub Menu Penjualan
Gambar 4.59Form Utama Menu Transaksi Sub Menu Pembelian
195
Gambar 4.60Form Utama Menu Transaksi Sub Menu Pembayaran
Gambar 4.61Form Utama Menu Transaksi Sub Menu Penerimaan
197
Di FormUtama terdapat beberapa menu yang dapat dipilih, antara lain : Menu
Insert (berisi submenu : Insert Barang, Insert Karyawan, Insert Pelanggan, Insert
Supplier), Menu Transaksi (berisi submenu : Penjualan terdapat submenu Penjualan
,Surat Service dan Surat Permintaan Barang, Pembelian terdapat submenu Permohonan
Pembelian Barang dan Surat Pemesanan Barang, Pembayaran terdapat submenu Nota
Pembayaran Dan Surat Tagihan Pembayaran, dan Penerimaan terdapat submenu Surat
Penerimaan Barang), Master (berisi submenu : Master Barang,Master Supplier ,Master
Pelanggan,Master Supplier), Menu Tools (berisi submenu : Cetak Laporan (berisi
submenu : Cetak Laporan Penjualan, Cetak Laporan Pembelian, Cetak Retur Penjualan,
dan Cetak Retur Pembelian) dan User Management(berisi submenu : Tambah User,
Hapus User, dan Ubah Password) ), dan Menu Logout.
Form Insert Data Barang
Jika pada menu Insert dipilih submenu Insert Data Barang, maka akan
ditampilkan Layar Insert Data Barang, seperti berikut :
Form Insert Barang
Gambar 4.64 Form Insert Barang
198
Form Insert Data Karyawan
Jika pada menu Insert dipilih submenu Insert Data Karyawan, maka akan
ditampilkan Form Insert Data Karyawan, seperti berikut :
Form Insert Data Karyawan
Gambar 4.65 Form Insert Data Karyawan
199
Form Penjualan
Jika user mengklik Transaksi -> Penjualan -> Penjualan, maka akan ditampilkan
Form Penjualan, seperti berikut :
Form Penjualan
Gambar 4.66 Form Penjualan
200
Form Permintaan Barang
Jika user mengklik Transaksi -> Penjualan -> Surat Permintaan Barang, maka
akan ditampilkan Form Permintaan Barang, seperti berikut :
Form Permintaan Barang
Gambar 4.67 Form Permintaan Barang
201
Form Service
Jika user mengklik Transaksi -> Penjualan -> Surat Service, maka akan
ditampilkan Form Surat Service, seperti berikut :
Form Service
Gambar 4.68 Form Service
202
Permohonan Pembelian Barang
Jika user mengklik Transaksi -> Pembelian -> Permohonan Pembelian
Barang, maka akan ditampilkan Form Permohonan Pembelian Barang, seperti
berikut :
Permohonan Pembelian Barang
Gambar 4.69 Permohonan Pembelian Barang
203
Form Pemesanan Barang
Jika user mengklik Transaksi -> Pembelian ->Surat Pemesanan Barang,
maka akan ditampilkan Form Surat Pemesanan Barang, seperti berikut :
Form Pemesanan Barang
Gambar 4.70 Form Pemesanan Barang
204
Nota Pembayaran
Jika user mengklik Transaksi -> Pembayaran ->Nota Pembayaran, maka
akan ditampilkan Form Nota Pembayaran, seperti berikut :
Nota Pembayaran
Gambar 4.71 Nota Pembayaran
205
Form Tagihan Pembelian
Jika user mengklik Transaksi -> Pembayaran ->Surat Tagihan
Pembayaran, maka akan ditampilkan Form Surat Tagihan Pembayaran, seperti
berikut :
Form Tagihan Pembayaran
Gambar 4.72 Form Tagihan Pembayaran
206
Form Penerimaan Barang
Jika user mengklik Transaksi -> Penerimaan ->Penerimaan Barang, maka
akan ditampilkan Form Penerimaan Barang, seperti berikut :
Form Penerimaan Barang
Gambar 4.73 Form Penerimaan Barang
207
Master Barang
Jika user mengklik Master -> Master Barang, maka akan ditampilkan
Form Master Barang, seperti berikut :
Master Barang
Gambar 4.74 Master Barang
208
Form Master Karyawan
Jika user mengklik Master -> Master Karyawan, maka akan ditampilkan
Form Master Karyawan, seperti berikut :
Form Master Karyawan
Gambar 4.75 Form Master Karyawan
209
Cetak Laporan
Jika user mengklik Tools -> Cetak Laporan, maka akan ditampilkan jenis
laporan sesuai yang user butuhkan(ex:laporan Penjualan,Pembelian,Laporan
Pembayaran,Laporan Penerimaan), seperti berikut :
Cetak Laporan
Gambar 4.76 Cetak Laporan
4.4. Rencana Implementasi
4.4.1. Metode Implementasi
Metode Implementasi yang diterapkan di CV. Dewi Bersaudara adalah
dengan penerapan secara langsung, tujuan dari metode ini yaitu sistem baru
langsung diterapkan dan sistem lama dihentikan. Keuntungan metode ini adalah
low cost karena tidak memakan waktu serta biaya yang banyak untuk
implementasi maupun pelatihan untuk user. Kerugian dari metode ini adalah
kemungkinan kesalahan baik dari aplikasi maupun user sendiri masih besar
karena minimnya waktu adaptasi untuk sistem yang baru.
210
4.4.2. Jadwal Implementasi
Task Name Bulan 1
1 2 3 4
Pengadaan Hardware dan Software
Instalasi
Backup Data
Pengujian dan Evaluasi
Pelatihan
Tabel 4.35 Jadwal Implementasi
4.4.3. Spesifikasi Komputer
4.4.3.1. Spesifikasi Perangkat Keras
Untuk pengadaan hardware tidak terlalu banyak di lakukan
penambahan karena perusahaan sudah memiliki hardware pada sistem yang
lama hanya saja perlu di lakukan upgrade pada hardware tersebut agar
kemampuan kinerjanya menjadi lebih cepat. Penambahan hardware di
tujukan hanya untuk server database , untuk client bisa menggunakan
perangkat keras yang lama.
Spesifikasi perangkat keras yang disarankan untuk penerapan
aplikasi database di perusahaan adalah sebagai berikut :
211
1. Server sekaligus Client database
Processor : Core I3 , 3.0 Ghz
Memory / RAM : 2 GB
Harddisk : 500 GB
Monitor : Monitor 14 Inch
Printer : Deskjet
Perangkat Pendukung : Keyboard usb, Mouse optic, DVD- RW
4.4.3.2. Spesifikasi Perangkat Lunak
Sedangkan perangkat lunak yang dibutuhkan perusahaan pada sistem
yang baru adalah sebagai berikut :
1. Visual Studio C# 2010
2. MYSQL
3. Crystal report 8
4. Net Framework 4.0
5. Windows XP service pack 3
4.4.4 Instalasi
Setelah dilakukan pengadaan untuk perangkat keras (hardware) dan
perangkat lunak (software), maka tahap impementasi berikutnya adalah instalasi
hardware dan software untuk sistem yang baru. Software yang diinstal di PC
server yang merangkap client adalah MYSQL serta Visual Studio C# lengkap
dengan Crystal Report. Setelah di lakukan instalasi atau pemasangan semua
212
software maka hal selanjutnya adalah melakukan pengaturan pada aplikasi , agar
database dengan UI dapat saling terhubung.
4.4.5 Backup Data
Setelah di lakukan instalasi pada perangkat keras dan perangkat lunak
maka tahap selanjutnya adalah dengan melakukan backup data pada perangkat
lunak. Tujuan dari backup data adalah untuk mengatasi terjadinya kehilangan
data atau kerusakan data pada data asli.
Keterangan :
1. Full backup pada hari sabtu dan seninn
2. Diffrensial backup dilakukan setiap hari (jumat – minggu )
3. Log backup dilakukan pada hari jumat,sabtu,minggu
4. File dan file group dilakukan hari minggu
4.4.6 Pengujian dan Evaluasi
Setelah di lakukan backup data maka tahap selanjutnya adalah melakukan
pengujian untuk menguji coba kesesuaian sistem database baru pada CV. Dewi
Bersaudara. Selama Proses pengujian , karena data dalam sistem yang baru
belum ada , maka data yang di gunakan adalah data dari sistem yang lama.
Evaluasi dilakukan pada saat bersamaan dengan pengujian yang dimana
pada saat terjadinya proses pengujian terdapat kerusakan atau hal – hal yang
perlu di perbaiki maka di butuhkan evaluasi untuk hal tersebut.