Upload
irvan-ardianto
View
220
Download
0
Embed Size (px)
Citation preview
8/16/2019 2011-1-00198-if 3
1/148
77
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
3.1. Analisis sistem yang berjalan
3.1.1 Sejarah Perusahaan
AHASS 0596 Dunia Baru merupakan bengkel resmi untuk sepeda
motor honda yang bergerak di bidang jasa perawatan/pemeliharaan (H2) dan
penjualan spare part (H3). Bengkel ini berada di bawah naungan PT.
AHM(Astra Honda Motor) dengan PT. Wahana Makmur Sejati sebagai Main
Dealer di wilayah Jakarta dan Tanggerang. Ahass Dunia Baru didirikan oleh
Ibu Irma Iskandar pad Tahun 1987. Pada awal berdirinya, bengkel ini terletak
di Jl. Letjen Soeprapto No.40A, Jakarta-Pusat. Namun pada Tahun 2010
bengkel ini dipindahkan ke Jl. Jombang Raya No.7, Tanggerang.
Bengkel ini telah berdiri selama 20 tahun lebih dan memiliki 6 orang
mekanik, 1 orang front desk, 1 orang bagian spare part dan 1 orang sebagai
kepala bengkel. Seluruh karyawan tersebut telah memiliki standar sertifikasi
dari Honda sehingga mereka semua telah terjamin kualitas dan keahlian di
bidangnya masing-masing.
8/16/2019 2011-1-00198-if 3
2/148
78
3.1.2 Visi dan Misi
•
Visi
Adapun visi dari Ahass Dunia Baru adalah tumbuh dan
berkembang sebagai salah satu Bengkel sepeda motor Honda
yang terbaik di Indonesia.
• Misi
Adapun misi dari Ahass Dunia Baru adalah memberikan
pelayanan servis yang memuaskan bagi semua pengguna
sepeda motor Honda, menjadikan sebuah bengkel dengan
berbagai macam peralatan modern yang dapat meningkatkan
kepercayaan konsumen.
8/16/2019 2011-1-00198-if 3
3/148
79
3.1.3 Struktur Organisasi
Ahass Dunia Baru dipimpin oleh pemilik bengkelnya sendiri
dengan dibantu 1 orang kepala bengkel yang bertanggung jawab
penuh atas pelaksanaan kegiatan teknis dan non teknis di dalam
bengkel. Struktur organisasi dari Ahass Dunia Baru adalah sebagai
berikut:
Gambar 3.1 Struktur Organisasi Ahass Dunia Baru
Uraian tugas tentang kepemimpinan bengkel dapat diuraikan sebagai berikut:
1. Kepala Bengkel, bertugas untuk:
1.1 Bertanggung jawab kepada pemilik bengkel atas hasil yang
telah diperoleh.
1.2 Mengawasi jalannya bengkel baik dari segi manajemen
maupun dari segi kualitas mekanik.
8/16/2019 2011-1-00198-if 3
4/148
80
1.3 Terjun langsung ke lapangan ketika terjadi ketidakpuasan dari
konsumen.
2. Mekanik, bertugas untuk:
1.1 Merawat dan memperbaiki sepeda motor konsumen yang
masuk ke bengkel.
1.2 Memberikan kualitas terbaik dalam melakukan service motor.
1.3 Memberikan penjelasan kepada konsumen tentang kerusakan-
kerusakan yang terjadi pada sepeda motor konsumen.
3. Bagian Spare Part, bertugas untuk:
1.1 Mengawasi barang yang masuk dan yang keluar.
1.2 Membuat laporan pembelian, laporan persediaan barang, dan
melaporkannya kepada kepala mekanik.
1.3 Mengawasi sisa barang yang ada dan segera melakukan
penyetokan sehingga tidak terjadi kekosongan barang.
4. Front Desk, bertugas untuk:
1.1 Menyambut konsumen yang datang ke bengkel dan mencatat
WO(Work Order ).
1.2 Mencatat keluhan-keluhan yang ada pada sepeda motor
konsumen.
1.3 Memberikan informasi kepada konsumen mengenai harga
servis dan harga barang.
1.4 Membuat faktur penjualan pembelian setiap terjadi transaksi.
8/16/2019 2011-1-00198-if 3
5/148
81
1.5 Mencatat data-data p elanggan.
5. Pemilik Bengkel, sebagai penanam modal sekaligus pimpinan dimana
memegang kekuasaan penuh, wewenang dan tanggung jawab atas
bengkel tersebut.
3.1.4 Prosedur yang Sedang Berjalan
3.1.4.a Sistem Pembelian
Prosedur pembelian barang yang berlaku di Ahass Dunia Baru
adalah sebagai berikut:
1. Setelah mendapat persetujuan dari Pemilik Bengkel, bagian spare
part membuat laporan persediaan stok barang.
2. Laporan tersebut kemudian di cocokan dengan jumlah barang yang
ada di gudang.
3. Kemudian dibuat laporan persediaan stok barang yang sudah di
update.
4. Setelah laporan persediaan stok barang yang sudah diupdate
selesai di buat, bagian spare part akan mencocokan laporan
dengan barang yang tersedia di gudang dan mengupdate stok
barang untuk mengetahui barang mana yang sudah habis atau di
bawah stok minimum dan harus dipesan.
8/16/2019 2011-1-00198-if 3
6/148
82
5. Jika stok barang masih mencukupi maka sistem diaggap selesai,
namun apabila ada kekurangan stok barang maka bagian spare part
akan membuat Surat Purchase Order .
6. Surat Purchase Order tersebut dibuat rangkap dua. Yang pertama
dikirimkan ke supplier sebagai bukti pemesanan barang. Yang
kedua disimpan sebagai arsip untuk dicocokan dengan Faktur
Pembelian.
8/16/2019 2011-1-00198-if 3
7/148
83
Gambar 3.2 Flowchart Prosedur Sistem Pembelian
8/16/2019 2011-1-00198-if 3
8/148
84
3.1.4.b Sistem Persediaan
Prosedur sistem persediaan barang yang berlaku di Ahass
Dunia Baru adalah sebagai berikut:
1. Setelah supplier menerima surat purchase order , maka akan
dilakukan pengiriman barang sesuai dengan pesanan ke bagian
front desk .
2. Setelah barang diterima, bagian spare part akan memeriksa
kuantitas dan kualitas barang sesuai purchase order .
3. Kemudian dilakukan pengecekan secara fisik untuk mengetahui
apakah ada barang yang rusak atau kurang..
4. Setelah semua barang yang diterima sesuai dengan surat purchase
order , maka barang tersebut akan diterima dan disimpan ke
gudang.
5. Pembayaran kepada pemasok akan dilakukan 1 bulan setelah
barang diterima.
8/16/2019 2011-1-00198-if 3
9/148
85
Gambar 3.3 Flowchart Prosedur Sistem Persediaan
8/16/2019 2011-1-00198-if 3
10/148
86
3.1.4.c Sistem Penjualan
Prosedur sistem penjualan barang yang berlaku di Ahass Dunia
Baru adalah sebagai berikut:
1. Sistem penjualan dimulai dengan pemesanan barang(sales order )
oleh konsumen ke bagian front desk .
2. Setelah sales order diterima, bagian front desk akan melaporkan
pemesanan barang kepada bagian spare part untuk dilakukan
pengecekan apakah barang yang dipesan tersedia di gudang atau
tidak.
3. Kemudian bagian spare part akan melakukan pengecekan apakah
barang yang dipesan tersedia di gudang atau tidak.
4. Jika barang tidak tersedia di gudang maka transaksi dianggap
selesai. Namun apabila barang tersedia di gudang, bagian spare
part akan melaporkan ke bagian front desk untuk diteruskan ke
konsumen.
5. Bagian front desk akan membuatkan faktur penjualan rangkap
2(dua). Lembar pertama untuk konsumen sebagai bukti bahwa
barang tersebut telah dipesan sedangkan lembar yang kedua
sebagai arsip bengkel untuk menghitung jumlah barang yang telah
keluar per harinya.
6. Setelah faktur diserahkan ke konsumen, maka akan dilakukan
transaksi pembayaran oleh konsumen ke bagian front desk .
8/16/2019 2011-1-00198-if 3
11/148
87
7. Jika pembayarannya sesuai maka barang akan diserahkan ke
konsumen.
8/16/2019 2011-1-00198-if 3
12/148
88
Sistem Penjualan
GudangBagian Front Desk Bagian Spare PartKonsumen
Mulai
LaporanPemesanan Cek
Selesai
Faktur Penjualan
Selesai
tidakada
adaLaporan Barang
tersediaLaporan Barang
tersedia
Faktur Penjualan
Pembayaran OK
ya
SalesOrder
MenerimaSalesOrder
Konsumen
MembuatLaporan
PemesananBarang
Pembayaran
MembuatFaktur
penjualan
Penyerahanbarang
Menerimabarang
Gambar 3.4 Flowchart Prosedur Sistem Penjualan
8/16/2019 2011-1-00198-if 3
13/148
89
3.1.4.d Sistem Pembayaran
Prosedur Sistem Pembayaran ke Supplier yang berlaku di
Ahass Dunia Baru adalah sebagai berikut:
1. Pembayaran dilakukan 1 bulan setelah barang dikirim
menggunakan rekening giro.
2. Bagian front d esk akan melakukan pengecekan terhadap purchase
order yang sudah jatuh tempo.
3. Jika ditemukan purchase order yang sudah jatuh tempo, maka
akan dilakukan transaksi pembayaran ke supplier .
4. Bukti pembayaran dan giro dibuat rangkap 2(dua). Lembar
pertama diberikan kepada supplier sebagai media pembayaran
sedangkan lembar yang kedua disimpan sebagai bukti pembayaran.
8/16/2019 2011-1-00198-if 3
14/148
90
Gambar 3.5 Flowchart Prosedur Sistem Pembayaran ke Supplier
8/16/2019 2011-1-00198-if 3
15/148
91
3.1.5 Pemodelan Proses
3.1.5.a
Diagram Konteks
Ini merupakan sistem yang ada dalam Ahass Dunia Baru dari
pemesanan barang ke supplier yaitu PT.Wahana Makmur Sejati
sampai kepada penjualan kepada konsumen. Setelah melakukan
pengecekan terhadap stok barang di gudang, jika terjadi kekosongan
barang maka akan dilakukan pemesanan barang kepada PT.Wahana
Makmur Sejati. Selambat-lambatnya barang akan dikirmkan dalam
jangka waktu 1 minggu setelah proses pemesanan. Dalam sistem
penjualan barang, barang yang dipesanan oleh konsumen akan
langsung diberikan kepada konsumen dengan pembayaran secara
tunai. Kedua transaksi tersebut, baik pembelian dan penjulan
menggunakan faktur sebagai bukti terjadinya t ransaksi.
8/16/2019 2011-1-00198-if 3
16/148
92
SISTEM BASIS DATA
PADA AHASS DUNIA
BARU
Konsumen Supplier
Manajemen
Sales Order
Pengiriman Barang
Purchase order
Faktur Penjualan Faktur Pembelian
Penyerahan Barang
L a p or an-l a p or an
P er mi n t a anL a p or an
Retur PembelianRetur Penjualan
Gambar 3.6 Diagram Konteks
8/16/2019 2011-1-00198-if 3
17/148
93
3.1.5.b DFD Level Nol
Jika terjadi Pembelian barang maka input data barang-barang
yang diterima akan dimasukkan ke dalam daftar persediaan stok
barang. Jika terdapat penerimaan barang maka persediaan barang
bertambah. Jika terjadi penjualan barang maka persediaan barang akan
berkurang.
8/16/2019 2011-1-00198-if 3
18/148
94
Gambar 3.7 Diagram Nol
8/16/2019 2011-1-00198-if 3
19/148
95
3.1.6 Analisis Kebutuhan Informasi
Dalam pelaksanaan prpses bisnis pada Ahass Dunia Baru diperlukan
informasi sebagai ber ikut:
Tabel 3.1 Tabel Kebutuhan Informasi
Pengguna PemilikBengkel
KepalaBengkel
Bagian SparePart
Bagian FrontDesk
InfromasiLaporan
Pembelian
X X X
LaporanPenjualan
X X X
LaporanPersediaanStok Barang
X X X X
DaftarPegawai
X X
DaftarSupplier
X X X
Daftar
Konsumen
X X X
Dalam pelaksanaan bengkel terdapat berbagai dokumen yang
dikeluarkan dan disimpan. Dokumen-dokumen tersebut dapat diklasifikasikan
lebih rinci sehingga sesuai dengan bagian-bagiannya.
8/16/2019 2011-1-00198-if 3
20/148
96
Tabel 3.2 Tabel Representasi Analisis Kebutuhan Informasi
No. Nama Entity Deskripsi
1. Laporan Pembelian Berisikan data-data mengenai pembelian barangyang dipesan dari Supp lier.
2. Laporan Penjualan Berisikan data-data mengenai penjualan spare part yang dilakukan oleh Ahass Dunia Baru.
3. Laporan PersediaanStok Barang
Berisikan data-data mengenai barang-barangyang ada di gudang dan jumlah persediaanya.
4. Konsumen Berisikan data-data pribadi dari konsumen yangmelakukan pemesanan barang.
5. Supplier Berisikan data-data mengenai supplier yang
men-supply barang.
3.1.7 Permasalahan yang dihadapi
Setelah melakukan wawancara dan analisis terhadap transaksi
pembelian, penjualan, dan persediaan ditemukan masalah-masalah sebagai
berikut:
1. Sulitnya perusahaan untuk mengetahui jumlah persediaan yang ada di
gudang secara pasti.
2. Sulit dan lamanya pencatatan data transaksi ke dalam dan ke luar karena
perusahaan masih mencatat data transaksi secara manual menggunakan
nota penjualan dan pembelian.
3. Membutuhkan waktu yang cukup lama dalam penghitungan sisa stok
barang yang tersedia di gudang.
4. Sering terjadi kesalahan penghitungan antara jumlah stok barang di buku
stok dengan jumlah barang yang ada di gudang.
8/16/2019 2011-1-00198-if 3
21/148
97
5. Sering kehabisan stok barang karena barang yang ada di gudang sudah
habis dan terlambat untuk di pesan ke Main Dealer.
3.1.8 Alternati f Pemecahan Masalah
Berdasarkan permasalahan yang telah disebutkan di atas, maka kami
membuat suatu perancangan sistem basis data menggunakan SQL server
2005. Basis data yang dibuat ini bertujuan untuk mempercepat waktu
pencatatan setelah terjadi transaksi pembelian maupun penjualan sehingga
jumlah stok barang yang ada di gudang dapat diketahui dengan p asti jumlah
persediaannya.
Sistem basis data tersebut kemudian di aplikasikan ke dalam sebuah
program desktop. Program tersebut kami buat menggunakan Visual Basic
2008 Express Studio. Aplikasi ini diharapkan dapat membantu pembuatan
laporan pembelian dan penjualan yang akurat karena dihitung secara
komputerisasi.
8/16/2019 2011-1-00198-if 3
22/148
98
3.2 Perancangan Basis Data
Perancangan basis data dilakukan berdasarkan kebutuhan informasi yang telah
diidentifikasi pada AHASS Dunia Baru,dibagi dalam tiga tahapan yaitu:
a. Perancangan Basis Data Konseptual(Conceptual database design)
b. Perancangan Basis Data Logikal ( Logikal Databse design)
c. Perancangan Basis Data Fisikal (Physical Database Design)
3.2.1 Perancangan Basis Data Konseptual
Perancangan basis data konseptual merupakan suatu proses pembuatan sebuah
model informasi yang digunakan pada perusahaan,bebas dari semua pertimbangan
fisik.Adapun langkah-langkah dalam perancangan dalam pembuatan perancangan
basis data konseptual adalah sebagai berikut:
Tahap 1 membangun model data konseptual
1. mengidentifikasi tipe entity
2. mengidentifikasi tipe relationship
3. mengidentifikasi dan mengasosiasikan atribut suatu entity
4. menemukan domain atribut
5. menentukan candidate key dan primary key
6. mempertimbangkan konsep enchaned modeling(langkah optional)
7. memeriksa model dari adanya redudansi
8. mengvalidasikan model konseptual local dengan transaksi user
9. mengreview model data konseptual dengan user
8/16/2019 2011-1-00198-if 3
23/148
99
3.2.1.a Mengidentifikasi Tipe Entity
Entity-entity yang menjadi kebutuhan dari AHASS Dunia Baru setelah
melalui proses analisis sistem adalah sebagai berikut:
Tabel 3.3 identifikasi tipe Entity
Entity Name Descpription Aliases Occurance
Pegawai Merupakan entityyang berisiinformasi tentang pegawai yang
berkerja padaAHASS DuniaBaru
karyawan Setiap pegawaidapat menanganinol atau banyaktransaksi
penjualan,pembeliandan cek stokSetiap pegawai berkerja pada bagian tertentu
Bagian Berisi tentanginformasi bagian pegawai padaAHASS DuniaBaru
Departement Setiap bagianmemiliki satu atau banyak pegawai
konsumen Merupakan entity
yang berisiinformasi tentangkonsumen yang berbelanja diAHASS DuniaBAru
konsumen Setiap konsumen
yang datingmempunyai kode pegawai sebgaiatanda pengenalseberapa seringkonsumen datanguntuk membeli barang danmenggunakanservice.
Barang Merupakan entity
yang berisi barangyang dijual olehAHASS DuniaBaru
Produk Setiap barang dapat
dimiliki oleh banyak penjualan,pembeliandan cek stok
Cek stok Merupakan entityyang berisi pengecekan stok
Pengecekan stok Pengecekan atokatau jumlah barangyang tersedia di
8/16/2019 2011-1-00198-if 3
24/148
100
pada AHASSDunia Baru
gudang yangdilakukan oleh
pegawaiSupplier Merupakan entityyang memuatinformasi tentangsupplier padaAHASS DuniaBaru
supplier Supplier menerima purchase order danmeyediakan barangsesuai pesanan
Sales order Merupkan entityyang berisiinformasi penjualan pada
AHASS DuniaBaru
Penjualan barang Setiap penjualandisebabkan olehkonsumen atau pelanggan yang
diatur oleh pegawai
Purchase order Merupakan Entityyang berisiinformasi pembelian barang pada AHASSDunia Baru padasupplier
Pembelian barang Setiap pembeliandilakukan oleh pegawai untukmemesan barang pada supplier
Pembayaran Merupakan entityyang berisi
informasi pembayaran padaAHASS DuniaBaru
pembayaran Pembayaran yangdilakukan pegawai
kepada supplieruntuk melunasi biaya pembelian barang
3.2.1.b Mengidentifikasi Tipe Relationship
Tujuan dari tahap inilah adalah untuk menentukan hubungan antara entity-
entity yang ada.Berikut ini adalah Entity Relationship (ER) diagram konseptual yang
memuat nama entity,multiplicity berserta relationship antar entiry.
8/16/2019 2011-1-00198-if 3
25/148
101
Bagian
Pegawai
Sales_Order Purchase_Order
Konsumen
Pembayaran
Supplier
Cek_StokBarang
Memiliki
MelakukanMenangani
Melakukan Menerima
Melakukan
Melakukan
MemesanMemesan
Melakukan
1..*
1..1
1..*
1..*
1..*
1..1
1..*
Menangani
1..1
1..*
1..*
1..*
1..1
1..11..*
1..1
1..1
1..1
1..*
1..1
1..*1..1
1..*
Menyesuaikan1..*1..*
Gambar 3.8 Entity Relationship Diagram Konseptual
8/16/2019 2011-1-00198-if 3
26/148
102
Berikut adalah tabel multiplicity dari tipe relationship antar entity :
Tabel 3.4 Multiplicity Tipe Relationship
Entity Name Multip licity Relationship Entity Name MultiplicityPegawai 1.1
1.11.11.1
MenanganimelakukanMelakukanmelakukan
Sales_orderCek_stokPurchase_order pembayaran
1.*1.*1.*1.*
Bagian 1.1 Memiliki pegawai 1.*Cek_stok 1.* menyesuaikan barang 1.*supplier 1.1 Menangani Pembelian 1.*Sales_order 1.* Melibatkan Barang 1.*
Konsumen 1.*1.1 MemesanMelakukan BarangPembayaran 1.*1.*
3.2.1.c Mengidentifikasi dan Mengasosiasikan Atribut suatu Entity
Tujuan dari tahap ini adalah menghubungkan atribut dengan entity ataupun
relationship yang sesuai. Berikut ini merupakan tabel setiap entity dengan atribut
masing-masing.
8/16/2019 2011-1-00198-if 3
27/148
103
Tabel 3.5 Dokumen Atribut dari Entity
Entity Name Attribute Description
data type&
length NULL
Mult
Valu
Pegawai Kode_pegawai Kode pegawai char (5) NO NO
nama_pegawai nama pegawai varchar (30) NO NO
alamat_pegawai alamat pegawai varchar (100) NO NO
telepon_pegawai telepon pegawai varchar (15) NO NO
password password varchar (10) NO NO
Bagian Kode_Bagian Kode Bagian char (4) NO NO
Nama_Bagian Nama Bagian varchar (30) NO NO
Barang Kode_barang Kode barang char (6) NO NO
nama_barang nama barang varchar (30) NO NO
harga_jual harga jual numeric 10,2 NO NO
harga_beli harga beli numeric 10,2 NO NO
jumlah_barang jumlah barang integer NO NO
minimal_stok minimal stok integer NO NO
Supplier Kode_supplier Kode supplier char (6) NO NO
Nama_supplier Nama supplier varchar (30) NO NO
alamat_supplier alamat supplier varchar (100) NO NO
telepon_supplier telepon supplier varchar (15) NO NO
Konsumen Kode_Konsumen Kode Konsumen char(5) NO NO
8/16/2019 2011-1-00198-if 3
28/148
104
Nama_Konsumen Nama Konsumen varchar (30) NO NO
Alamat_Konsumen Alamat Konsumen varchar (100) NO NO
Telepon_Konsumen Telepon Konsumen varchar (15) NO NO
cek stok kode_cek_stok Kode cek stok char (6) NO NO
tgl_cek_stok tanggal cek stok datetime NO NO
jumlah_stok jumlah stok integer NO NO
harga_beli harga beli numeric 10,2 NO NO
sales_order no_faktur no faktur char (6) NO NO
tgl_faktur tgl faktur datet ime NO NO
purchase_order No_PO No PO char (6) NO NO
tgl_PO tgl PO datet ime NO NO
pembayaran no_Giro No Giro char (6) NO NO
tgl_Giro Tanggal Giro datet ime NO NO
total_pembayaran Total pembayaran numeric 10,2 NO NO
3.2.1.d Menentukan Domain Atribut
Tujuan tahap ini adalah untuk menentukan domain dari suatu atribut yang
terdapat pada model data konseptual.Domain atribut adalah sekumpulan nilai yang
diperkenankan untuk satu atau lebih atribut.
8/16/2019 2011-1-00198-if 3
29/148
105
Tabel 3.6 Dokumen Domain Atribut
Entity Name Attribute Domain attribut
Kode pegawai Kode_pegawai Char(5) [K][P][0-9][0-
9][0-9]
Nama pegawai Nama_pegawai Varchar (30)
Telepon pegawai Telepon_pegawai Varchar (15)
Alamat pegawai Alamat_pegawai Varchar (100)
Password Password Varchar (10)
Kode bagian Kode_bagian Char(4) [K][B][0-9][0-9]
Nama bagian Nama_bagian Varchar (30)
Kode konsumen Kode_konsumen Varchar(5) [K][S][0-9] [0-
9] [0-9]
Nama konsumen Nama_konsumen varchar (30)
Alamat konsumen Alamat_konsumen varchar (100)
Telepon konsumen Telepon_konsumen varchar (15)
Kode barang Kode_barang Char(6) [B][R][0-9][0-
9][0-9][0-9]
Nama barang Nama_barang Varchar (30)
Harga jual Harga_jual Numeric (10,2)
Jumlah barang Jumlah_barang Integer
Sales order No_faktur Char(6) [F][P][0-9][0-
8/16/2019 2011-1-00198-if 3
30/148
106
9][0-9][0-9]
Tanggal faktur Tgl_faktur Datetime
Total penjualan Total_penjualan Numeric (10,2)
Nomor cek stok No_cek_stok Char(6) [C][S][0-9][0-
9][0-9][0-9]
Tanggal cek stok Tgl_cek_stok Datetime
Kode supplier Kode_supplier Char(6) [S][P][0-9][0-
9][0-9][0-9]
Nama supplier Nama_supplier Varchar (30)
Alamat supplier Alamat_supplier Varchar(100)
Telepon supplier Telepon_supplier Varchar (15)
Nomor Purchase order No_PO Char(6) [P][O][0-9][0-
9][0-9][0-9]
Tanggal Purchase order Tgl_PO Datetime
Total pembelian Total pembelian Numeric(10,2)
No giro No_giro Char(6) [P][P][0-9][0-
9][0-9][0-9]
Tanggal pembayaran Tgl_giro Datetime
Total pembayaran Total_pembayaran Numeric (10,2)
8/16/2019 2011-1-00198-if 3
31/148
107
3.2.1.e Menentukan Atribut Candidate key dan primary key
Tujuan dari tahap ini adalah menentukan candidate key dan primary key untuk
setiap entiry yang ada.
Tabel 3.7 Dokumen Atribut Candidate Key dan Primary Key dari Setiap Entity
Entity Name Candidate key Primary key
Pegawai Kode pegawai
Telepon pegawai
Kode pegawai
Bagian Kode Bagian
Nama bagian
Kode bagian
Konsumen Kode_konsumen
Telepon konsumen
Kode konsumen
Barang Kode Barang
Nama barang
Kode barang
Cek stok No.cek stok No cek stok
Supplier Kode supplier
Telepon supplier
Kode supplier
Purchase order No PO No PO
Sales order No faktur No penjualan
pembayaran No Giro No Giro
berikut ini adalah gambar entity relationship Diagram Konseptual yang dilengkaspi
dengan primary key:
8/16/2019 2011-1-00198-if 3
32/148
108
Bagian
Kode_Bagian
Pegawai
Kode_Pegawai
Sales_Order
No_Faktur
Purchase_Order
No_PO
Konsumen
Kode_Konsumen
Pembayaran
No_Giro
Supplier
Kode_Supp
Cek_Stok
No_Cek_Stok
Barang
Kode_Barang
Memiliki
MelakukanMenangani
Melakukan Menerima
Melakukan
Melakukan
MemesanMemesan
Melakukan
1..*
1..1
1..*
1..*
1..*
1..1
1..*
Menangani
1..1
1..*
1..*
1..*
1..1
1..11..*
1..1
1..1
1..1
1..*
1..1
1..*1..1
1..*
Menyesuaikan1..*1..*
Gambar 3.9 Entity relationship Diagram Konseptual dengan primary key
3.2.1.f Mempertimbangkan Konsep Enchaned Modeling(Langkah Optional)
Setelah diperhatikan dari tahap ini dan telah dipertimbangkan,maka pada
perancangan konseptual tidak menggunakan konsep pemodelan enchaned.
8/16/2019 2011-1-00198-if 3
33/148
109
3.2.1.g Memeriksa Model Dari Redudansi
Setelah ditelti tidak ada adanya bentuk redundansi atau pemanggilan kembali.
3.2.1.h Memvalidasikan Model Konseptual Lokal Dengan Transaksi User
Tujuan dari tahap ini adalah untuk menyakinkan bahwa model data
konseptual yang dibuat mendukung transaksi user.
Adapun transaksi-transaksi yang diperlukan adalah sebagai berikut:
1. Memasukkan data pegawai
2. Memasukkan data barang
3. Memasukkan data sales order
4. Memasukkan data stok
5. memasukkan data supplier
6. memasukkan data purchase order
7. memasukkan data sales order
8. memasukkan data pembayaran
9. melakukan update/delete data pegawai
10. melakukan update/delete data barang
11. melakukan update/delete data konsumen
12. melakukan update/delete data sales order
13. melakukan update/delete data cek stok
14. melakukan up date/delete data supplier
15. melakukan update/delete data purchase order
16. melakukan update/delete data p embayaran
8/16/2019 2011-1-00198-if 3
34/148
110
17. menampilkan data p egawai
18. mencari data pegawai berdasarkan nama pegawai
19. menampilkan data barang
20. mencari data barang berdasarkan nama barang
21. menampilkan data sales order
22. mencari data sales order berdasarkan nomor faktur
23. menampilakn data cek stok
24. mencari data cek stok berdasarkan nomor cek stok
25. mencari data cek stok berdasarkan tanggal penyesuaian
26. menampilkan data supplier
27. mencari data supplier berdasarkan nama supp lier
28. menampilkan data p urchase order
29. Mencari data purchase order berdasarkan kode purchase order
30. menampilkan data pembayaran
31. mencari data pembayaran berdasarkan nomor giro
8/16/2019 2011-1-00198-if 3
35/148
111
3.2.1.i Mereview Data Konseptual User
Setelah meninjau ulang model data konseptual dengan user maka dapat
disimpulkan bahwa model data konseptual yang dibuat sudah sesuai dengan
kebutuhan user.
3.2.2 Perancangan Basis Data Logikal
Perancangan basis data logikal merupakan suaut proses pembuatan sebuah
model data yang digunakan dalam duaut perusahaan berdasarkan model data yang
spesifik tetapi tidak tergantung pada DBMS dan pertimbangan fisik lainnya.Model
data logikal merupakan sumber informasi perancangan tahap fisikal.Adapun langkah-
langkahnya yaitu :
Tahap 2 Membangun dan memvalidasi model data logikal
1. menentukan relasi untuk model data logikal
2. mengvalidasi relasi dengan menggunakan normalisasi
3. mengvalidasi relasi terhadap transaksi user
4. menentukan integrity constraint
5. menreview model data logikal dengan user
6. menggabungkan model-model data logikal menjadi model global
7. memeriksa pertumbuhan di masa depan
8/16/2019 2011-1-00198-if 3
36/148
112
3.2.2.a Menentukan Relasi Untuk Model Data Logikal
Tujuan dari tahap ini adalah membuat relasi dari model data logikal untuk
menampilkan kembali entity,relationship dan atribut yang telah didefinisikan.
1.) Strong Entity type
Pegawai(kode_pegawai,nama_pegawai,alamat_pegawai,telepon_pegawai,
password,kode_bagian)
primary key : kode_pegawai
Bagian(kode_bagian,nama_bagian)
primary key : Kode_bagian
Konsumen(kode_konsumen,nama_konsumen,alamat_konsumen,telp_konsum
en)
primary key : kode_konsumen
Barang(kode_barang,nama_barang,harga_jual,jumlah_stok)
primary key : Kode_barang
sales order(no_faktur,tgl_faktur,total_penjualan)
primary key : no_faktur
8/16/2019 2011-1-00198-if 3
37/148
113
cek stok(no_cek_stok,tgl_cek_stok,jumlah_stok)
primary key : no_cek_stok
supplier(kode_supp,nama_supp,alamat_supp,telepon_supp)
primary key : kode_supp
purchase order(Kode_PO,tgl_PO)
primary key : kode_PO
pembayaran(no_giro,tgl_giro,total_pembayaran)
primary key : no_giro
2.) Weak entity type
sales_order_detail(kode_barang,kuantitas)
primary key: none
cek_stok_detail(Kode_barang,jumlah_stok)
primary key : none
purchase_order_detail(kode_barang,nama_barang,kuantitas,no_PO)
primary key : none
8/16/2019 2011-1-00198-if 3
38/148
114
3.) one to many(1.*) binary relationship
Untuk setiap hubungan one to many,entity pada one side dalam relasi menjasi
parent sedangkan untuk entity pada many side menjadi child .
Pegawai (kode_pegawai, nama_pegawai,alamat_pegawai, telp_pegawai,
kode_bagian) primary key kode_pegawaiforeign key kode_bagian
purchase_order(No_PO, Tgl_PO,kode_supp, nama_pegawai)
primary key No_POforeign key kode_supp,kode_pegawai
post pegawai ke purchase_order
Pegawai (kode_pegawai, nama_pegawai,alamat_pegawai, telp_pegawai,kode_bagian) primary key kode_pegawai
foreign key kode_bagian
Sales_order(No_Faktur, tgl_faktur,kode_pegawai, n ama_pegawai) primary key No_Fakturforeign key kode_pegawai,
kode_konsumen
post pegawai ke sales_order
8/16/2019 2011-1-00198-if 3
39/148
115
Pegawai (kode_pegawai, nama_pegawai,alamat_pegawai, telp_pegawai,kode_bagian) primary key kode_pegawaiforeign key kode_bagian
bagian (kode_bagian)
primary key kode_bagian
post pegawai ke bagian
Pegawai (kode_pegawai, nama_pegawai,alamat_pegawai, telp_pegawai,kode_bagian) primary key kode_pegawaiforeign key kode_bagian
Pembayaran(No_Giro, tgl_giro,kode_supp, kode_konsumen,no_faktur, no_PO) primary key No_Giroforeign key kode_supp
post pegawai ke pembayaran
Pegawai (kode_pegawai, nama_pegawai,alamat_pegawai, telp_pegawai,kode_bagian) primary key kode_pegawaiforeign key kode_bagian
Cek_Stok (no_cek_stok,tgl_cek_stok, kode_pegawai,kode_supp) primary key no_cek_stokforeign key kode_barang
post pegawai ke cek_stok
8/16/2019 2011-1-00198-if 3
40/148
116
4.) one to one binary relationship
setelah melakukan pengecekan tidak ada one to one binary relationship pada
table diagram.
5.) one to one recursive relationship
setelah melakukan pengecekan tidak ada one to one recursive relationship
pada table diagram.
Pembayaran(No_Giro, tgl_giro,kode_supp, kode_konsumen, no_faktur,no_PO) primary key No_Giroforeign key kode_supp
Supplier(kode_supp, nama_supp,alamat_supp, email_supp,no_cek_stok) primary key kode_supp
post pembayaran ke supplier
Supplier(kode_supp, nama_supp,alamat_supp, email_supp, no_cek_stok)
primary key kode_supp
purchase_order(No_PO, Tgl_PO,kode_supp, nama_pegawai) primary key No_POforeign key kode_supp,kode_pegawai
post supplier ke purchase_order
8/16/2019 2011-1-00198-if 3
41/148
117
6.) superclass/subclass relation type
setelah dilakukan pengecekan tidak ada superclass/subclass pada model data
konseptual.
7.) many to many binary relationship types
Untuk tiap hubungan many to many dibuat suatu relasi yang mempertasikan
hubungan.antar entiry dan memasukkan seluruh atribut yang merupakan
bagian dengan relasi .Primary key disalinkan pada relasi baru juga bertindak
sebagai foreign key.
Barang(Kode_Barang, nama_barang,harga_jual, harga_beli, jumlah_stok,minimal_stok)Primary key kode_barang
Sales_order(No_Faktur, tgl_faktur,kode_pegawai, n ama_pegawai) primary key No_Faktur
post barang ke sales_order
Sales_Order_Detail(No_Faktur, Kode_Barang, Kuantitas)Primary key no_faktur
Foreign k ey no_faktur_Kode_Brang
8/16/2019 2011-1-00198-if 3
42/148
118
Barang(Kode_Barang, nama_barang,harga_jual, harga_beli, jumlah_stok,minimal_stok)Primary key kode_barang
purchase_order(No_PO, Tgl_PO,kode_supp, nama_pegawai) primary key No_PO
post barang ke purchase_order
Purchase_Order_Detail(No_PO, Total_Pembelian, Kode_Barang)Primary key No_PO
Foreign k ey Kode_Barang
8/16/2019 2011-1-00198-if 3
43/148
119
8.) complex relationship types
Pada ERD tidak terdapat relasi kompleks
9.) Multi-valued atributs
Untuk semua atribut multi valued dibuat sebuah relasi baru untuk
mempretasikan multi-valued dan masukkan primary key entitas asal pada
relasi baru untuk bertindak sebgaia foreign key.
Cek_Stok (no_cek_stok, tgl_cek_stok,kode_pegawai, kode_supp) primary key no_cek_stokforeign key kode_barang
Barang(Kode_Barang, nama_barangharga_jual, harga_beli, jumlah_stokminimal_stok)Primary key kode_barang
post cek_stok ke barang
Cek_Stok_Detail(No_Cek_Stok, Jumlah_Stok, Kode_Barang)Primary key No_Cek_Stok
Foreign k ey Kode_Barang, No_Cek_Stok
8/16/2019 2011-1-00198-if 3
44/148
120
3.2.2.b Mengvalidasi Relasi Dengan Menggunakan Normalisasi
Normalisasi pembelian/purchase order
UNF
Purchase_order{@no_Po,tgl_PO,kode_pegawai,nama_pegawai,kode_supplier,nama_
supplier,kode_barang, nama_barang,harga_beli,kuantitas}
1NF
Purchase_order{@no_Po,tgl_PO,kode_pegawai,nama_pegawai,kode_supplier,nama_
supplier,kode_barang }
Purchase_order_detail{@ no_PO,kode_barang, nama_barang,harga_beli,kuantitas}
2NF
Purchase_order{@no_Po,tgl_PO,kode_pegawai,nama_pegawai,kode_supplier,nama_
supplier,kode_barang }
Purchase_order_detail{@ no_PO,kode_barang,kuantitas}
Barang{@kode_barang, nama_barang,harga_beli}
3NF
Purchase_order{@no_Po,tgl_PO,kode_pegawai,kode_supplier,kode_barang }
Purchase_order_detail{@no_PO kode_barang,kuantitas}
Barang{@kode_barang, nama_barang,harga_beli}
Pegawai{@kode_pegawai,nama_pegawai,alamat_p egawai,telp_pegawai,password}
Supplier{@kode_supplier,nama_supp lier,alamat_supplier,telp_supplier}
Normalisasi Persediaan/cek stok
UNF
8/16/2019 2011-1-00198-if 3
45/148
121
Cek_stok{@no_cek_stok,tgl_cek_stok,kode_pegawai,nama_pegawai,kode_barang,
nama_barang,jumlah_stok}
1NF
Cek_stok{@no_cek_stok,tgl_cek_stok,kode_pegawai,nama_pegawai,kode_barang,
nama_barang,jumlah_stok}
cek_stok_detail(@no_cek_stok,kode_barang,nama_barang,jumlah_stok)
2NF
Cek_stok{@no_cek_stok,tgl_cek_stok,kode_pegawai,kode_barang}
cek_stok_detail{@no_cek_stok,kode_barang,jumlah_stok}
Barang(@kode_barang,nama_barang}
3NF
Cek_stok{@no_cek_stok,tgl_cek_stok,kode_pegawai,kode_barang,}
cek_stok_detail{@no_cek_stok,kode_barang,jumlah_stok}
Barang(@kode_barang,nama_barang}
Pegawai{@kode_pegawai,nama_pegawai,alamat_p egawai,telp_pegawai,password}
Normalisasi penjualan/sales order
UNF
Sales_order{@no_faktur,tgl_faktur,kode_pegawai,nama_pegawai,kode_konsumen,n
ama_konsumen,kode_barang, nama_barang,harga_jual,kuantitas}
1NF
8/16/2019 2011-1-00198-if 3
46/148
122
Sales_order{@no_faktur,tgl_faktur,kode_pegawai,nama_pegawai,kode_konsumen,n
ama_konsumen,kode_barang}
Sales_order_detail{@no_faktur,kode_barang, nama_barang,harga_jual,kuantitas}
2NF
Sales_order{@no_faktur,tgl_faktur,kode_pegawai,nama_pegawai,kode_konsumen,n
ama_konsumen,kode_barang}
Sales_order_detail{@no_faktur,kode_barang,kuantitas}
Barang{@kode_barang, nama_barang,harga_jual}
3NF
Sales_order{@no_faktur,tgl_faktur,kode_pegawai,kode_konsumen,kode_barang}
Sales_order_detail{@no_faktur,kode_barang,kuantitas}
MsBarang{@kode_barang, nama_barang,harga_jual}
Pegawai{@kode_pegawai,nama_pegawai,alamat_p egawai,telp_pegawai,password}
konsumen{@kode_konsumen,nama_konsumen,alamat_konsumen,telp_konsumen}
3.2.2.c Mengvalidasi Relasi Terhadap Transaksi User
Transaksi ini dilakukan dengan cara memerisa kembali semua transaksi user
yang telah didefinisikan pada tahap konseptual terhadap relasi yang ada.Seetelah
meninjau ulang model data logika local dengan user maka dapat disimpulkan bahwa
model data logikal sudah mendukung transaksi-transaksi yang dibutuhkan user.
3.2.2.d Menentukan integrity constraint
8/16/2019 2011-1-00198-if 3
47/148
123
Tujuan pada tahap ini adalah untuk memeriksa interigrity constraint yang
dipresentasikan pada mode data logikal.
1. Required data
beberapa attribute harus mempunya nilai yang valid,dengan kata lain atribut-
atribut yang ada tidak mempunyai nilai null.
2. Attribute domain constraints
setiap atribut memliki domain yaitu kumpulan dari nilai yang sah.
3. Multiplcity
menampilkan constraint yang ditempatkan pada relasi antar data dalam
database
4. Entity integrity
primary key dari suatu entity tidak boleh mempunyai nilai null
5. Refential integrity
apabila suatu table memiliki foreign key yang mengandung suatu nilai maka
nilai menunjuk pada barisyang ada relasi parent.Berikut adalah refential
integrity constraint pada model data logika:
8/16/2019 2011-1-00198-if 3
48/148
124
Tabel 3.8 Tabel Referential Integrity Constraints
Barang(kode_barang,nama_barang,harga_jual,jumlah_stok,minimal_stok)
Primary key: kode_barang
Konsumen(Kode_konsumen,nama_konsumen,alamat_konsumen,telepon_konsumen)
Primary key: kode_konsumen
Pegawai(kode_pegawai,nama_pegawai,alamat_pegawai,telepon_pegawai,password,k
ode_bagian)
Primary key: kode_pegawai
Foreign key:kode_bagian references bagian(kode_bagian)
ON UPDATE CASCADE ON DELETE NO ACTION
Bagian(Kode_bagian,namaBagian)
Primary key:kode_bagian
supplier(kode_supp,nama_supp,alamat_supp,telepon_supp)
primary key:kode_supp
sales_order(no_faktur,tgl_faktur,kuantitas,kode pegawai,kode konsumen)
primary key:no_faktur
foreign key:kode_pegawai references pegawai(kode_pegawai)ON UPDATE CASCADE ON DELETE NO ACTION
kode_konsumen references konsumen(kode_konsumen)
ON UPDATE CASCADE ON DELETE NO ACTION
sales_order_detail(no_faktur,kode_barang,kuantitas)
primary key:no_faktur,kode_barang
foreign key:no_faktur refrences sales_order(no_faktur)
ON UPDATE CASCADE ON DELETE NO ACTION
kode _barang references barang(kode_barang)
ON UPDATE CASCADE ON DELETE NO ACTION
8/16/2019 2011-1-00198-if 3
49/148
125
purchase_order(no_PO,tgl_PO,kode_pegawai,kode_supp lier)
primary key:no_PO
foreign key: kode_pegawai references pegawai(kode_pegawai)
ON UPDATE CASCADE ON DELETE NO ACTION
kode_supp references supp(kode_supp)
ON UPDATE CASCADE ON DELETE NO ACTION
Purchase_order_detail(no_PO,kode_barang,tgl_PO,kuantitas)
Primary key:no_PO,kode_barang
Foreign key: no_PO refrences purchase_order(no_PO)
ON UPDATE CASCADE ON DELETE NO ACTION
kode _barang references barang(kode_barang)
ON UPDATE CASCADE ON DELETE NO ACTION
Pembayaran(no_giro,tgl_giro,no_PO,kode pegawai,kode_supp)
Primary key: no_giro
Foreign key: no_PO refrences purchase_order(no_PO)
ON UPDATE CASCADE ON DELETE NO ACTION
kode_pegawai references p egawai(kode_pegawai)ON UPDATE CASCADE ON DELETE NO ACTION
kode_supp references supp(kode_supp)
cek-stok(@no_cek_stok,tgl_cek_stok,kode_pegawai)
primary key:no_cek_stok
foreign key: kode_pegawai references pegawai(kode_pegawai)
ON UPDATE CASCADE ON DELETE NO ACTION
cek_stok_detail(no_cek_stok,kode_barang,jumlah_stok)
primary key:no_cek_stok,kode_barang
foreign key: no_cek_stok references cek_stok(no_cek_stok)
ON UPDATE CASCADE ON DELETE NO ACTION
kode _barang references barang(kode_barang)
8/16/2019 2011-1-00198-if 3
50/148
126
ON UPDATE CASCADE ON DELETE NO ACTION
3.2.2.e mereview Model Data Logikal Dengan User
Setelah meninjau ulang model data lokal dengan user,maka didapatkan
kesimpulan bahwa model data lokal sesuai dengan kebutuhan user.
3.2.2.f Menggabungkan Model-Model Data Lokal Menjadi Model Global
(Langkah Optional)
Tujuan dari tahap ini adalah untuk menggabungkan individual data model
logika lokal menjadi global yang menggambarkan perusahaan.
Tabel 3.9 model data local ke global
Barang(kode_barang,nama_barang,harga_jual,harga_beli,jumlah_stok,minimal_stok)
Primary key: kode_barang
Konsumen(Kode_konsumen,nama_konsumen,alamat_konsumen,telepon_konsumen)
Primary key: kode_konsumen,
Pegawai(kode_pegawai,nama_pegawai,alamat_pegawai,password,kode bagian)
Primary key: kode_pegawai
Foreign key:kode_bagian references bagian(kode_bagian)
Bagian(Kode_bagian,nama_Bagian)
Primary key:kode_bagian
8/16/2019 2011-1-00198-if 3
51/148
127
supplier(kode_supp,nama_supp,alamat_supp)
primary key:kode_supp
sales_order(no_faktur,tgl_faktur,kuantitas,kode_pegawai,kode_konsumen)
primary key:no_faktur
foreign key:kode_pegawai references pegawai(kode_pegawai),kode_konsumen
references konsumen(kode_konsumen)
sales_order_detail(no_faktur,kode_barang,kuantitas)
primary key:no_faktur,kode_barang
foreign key:no_faktur refrences sales_order(no_faktur),kode_barang references
barang(kode_barang)
purchase_order(no_PO,tgl_PO,kode_pegawai,kode_supp )
primary key:no_PO
foreign key: kode_pegawai references p egawai(kode_pegawai),kode_supp references
supplier(kode_supp)
Purchase_order_detail(no_PO,kode_barang,tgl_PO,kuantitas)
Primary key:no_PO,kode_barang
Foreign key: no_PO refrences purchase_order(no_PO),kode _barang references
barang(kode_barang)
Pembayaran(no_giro,tgl_giro,no_PO,kode pegawai,kode_supp)
Primary key: no_giro
Foreign key: no_PO refrences purchase_order(no_PO), kode_pegawai references
8/16/2019 2011-1-00198-if 3
52/148
128
pegawai(kode_pegawai),kode_supp references supp(kode_supp)
cek-stok(no_cek_stok,tgl_cek_stok,kode_pegawai)
primary key:no_cek_stok
foreign key: kode_pegawai references pegawai(kode_pegawai)
cek_stok_detail(no_cek_stok,kode_barang,jumlah_stok)
primary key:no_cek_stok,kode_barang
foreign key: no_cek_stok references cek_stok(no_cek_stok), kode _barang references
barang(kode_barang)
8/16/2019 2011-1-00198-if 3
53/148
129
Gambar 3.10 Model Diagram Rasional Global
8/16/2019 2011-1-00198-if 3
54/148
130
3.2.2.g Memeriksa Pertumbuhan Di Masa Depan
Rancangan basis data yang dibuat masih memungkinkan untuk diperluas jika
user memiliki suatu keperluan di waktu akan datang.Seperti memerlukan tampilan
gaji karyawan, history berkerja dll.
3.2.3 Perancangan Basis Data Fisikal
Perancangan ini merupakan perancangan yang merupakan proses yang
menghasilkan sebuah deskripsi atau gambaran implementasi basis data pada media
penyimpanan yang menggambarkan hubungan dasar,organisasi data dan indeks-
indeks yang memungkinkan pengaksesan data lebi cepat.Langkah-langkahnya
sebagai berikut:
Tahap 3 Menterjemahkan model data logikal terhadpat DBMS yang ditentukan
1. Merancang relasi dasar
2. merancang representasi derived data
3. merancang general constraints
Tahap 4 Merancang organisasi file dan index
4. menganalisis transaksi
5. memilh organisasi f ile
6. memilih index
7. mengestimasi kapasitas p enyimpanan yang dibutuhkan
8/16/2019 2011-1-00198-if 3
55/148
131
Tahap 5 Merancang user views
Tahap 6 Merancang keamanan
3.2.3.a Merancang Relasi Dasar
Pada langkah pertama merupakan perancangan Database Design Language
(DBDL) untuk setiap entity yang bertujuan untuk membuat domain dari setiap atribut
berdasarkan penjelasan berserta batasan yang ada dalam setiap atribut,yaitu :
DBDL untuk Barang
Domain Kode Barang fixed length character string, length 6, format:
[B][R][0-9][0-9][0-9][0-9]
Domain Nama Barang variable length character string, length 30
Domain Harga_Jual variable length numeric, length 10,2
Domain Jumlah Stok integer
Barang (
Kode_Barang Kode Barang NOT NULL,
Nama_Barang Nama Barang NOT NULL,
Harga Harga NOT NULL,
Jumlah_Stok Jumlah Stok NOT NULL,
PRIMARY KEY (Kode_Barang)
);
8/16/2019 2011-1-00198-if 3
56/148
132
DBDL untuk Bagian
Domain Kode Bagian fixed length character string, length 4, format:
[B][G][0-9][0-9]
Domain Nama Bagian variable length character string, length 30
Bagian (
Kode_Bagian Kode Bagian NOT NULL,
Nama_Bagian Nama Bagian NOT NULL,
PRIMARY KEY (Kode_Bagian)
);
DBDL untuk Pegawai
Domain Kode Pegawai fixed length character string, length 6, format:
[P][G][0-9][0-9][0-9][0-9]
Domain Nama Pegawai variable length character string, length 30
Domain Alamat Pegawai variable length character string, length 100
Domain Password variable length character string, length 10
Domain Kode Bagian fixed length character string, length 4, format:
[B][G][0-9][0-9]
Pegawai (
Kode_Pegawai Kode Pegawai NOT NULL,
Nama_Pegawai Nama Pegawai NOT NULL,
Alamat_Pegawai Alamat Pegawai NOT NULL,
Password Password NOT NULL,
8/16/2019 2011-1-00198-if 3
57/148
133
Kode_Bagian Kode Bagian NOT NULL,
PRIMARY KEY (Kode_Pegawai),
FOREIGN KEY Kode_Bagian REFERENCES Bagian (Kode_Bagian)
ON UPDATE CASCADE ON DELETE NO ACTION
);
DBDL untuk Telp_Pegawai
Domain Telepon Pegawai variable length character string, length 15, format: [0-9]
untuk setiap digit
Domain Kode Pegawai fixed length character string, length 6, format: [P][L][0-
9][0-9][0-9][0-9]
Telepon_Pegawai (
Telepon_Pegawai Telepon Pegawai NOT NULL,
Kode_Pegawai Kode Pegawai NOT NULL,
PRIMARY KEY (Telepon_Pegawai),
FOREIGN KEY (Kode_Bagian) REFERENCES Pegawai (Kode_Pegawai)
ON UPDATE CASCADE ON DELETE NO ACTION
);
8/16/2019 2011-1-00198-if 3
58/148
134
DBDL untuk Sales_order
Domain Nomor Faktur fixed length character string, length 6, format: [F][P][0-
9][0-9][0-9][0-9]
Domain Tanggal Faktur datetime
Domain Kode Pegawai fixed length character string, length 6, format:
[P][G][0-9][0-9][0-9][0-9]
Penjualan (
No_Faktur No Faktur NOT NULL,
Tgl_Faktur Tanggal Faktur NOT NULL,
Kode_Pegawai Kode Pegawai NOT NULL,
PRIMARY KEY (No_Faktur),
ON UPDATE CASCADE ON DELETE NO ACTION
FOREIGN KEY (Kode_Pegawai) REFERENCES Pegawai (Kode_Pegawai)
ON UPDATE CASCADE ON DELETE NO ACTION
);
DBDL untuk Sales_order_detail Detail
Domain Nomor Faktur fixed length character string, length 6, format: [F][P][0-
9][0-9][0-9][0-9]
Domain Kode Barang fixed length character string, length 6, format:
[B][R][0-9][0-9][0-9][0-9]
Domain Harga Jual variable length numeric, length 10,2
Domain Kuantitas integer
8/16/2019 2011-1-00198-if 3
59/148
135
Penjualan_Detail (
No_Faktur No Faktur NOT NULL,
Kode_Barang Kode Barang NOT NULL,
Harga_Jual Harga Jual NOT NULL,
PRIMARY KEY (No_Faktur, Kode_Barang),
FOREIGN KEY No_Faktur REFERENCES Penjualan (No_Faktur)
ON UPDATE CASCADE ON DELETE NO ACTION
FOREIGN KEY Kode_Barang REFERENCES Barang (Kode_Barang)
ON UPDATE CASCADE ON DELETE NO ACTION );
DBDL untuk Konsumen
Domain Kode Konsumen variable length character string, length 5
Domain Nama Konsumen variable length character string, length 30
Domain Alamat Konsumen variable length character string, length 100
Domain Telepon Konsumen variable length character string, length 15
konsumen (
Kode_Konsumen Kode Konsumen NOT NULL,
Nama_Konsumen Nama Konsumen NOT NULL,
Alamat_Konsumen Alamat Konsumen NOT NULL,
Telepon_Konsumen Telepon konsumen NOT NULL,
PRIMARY KEY (Kode_konsumen),
ON UPDATE CASCADE ON DELETE NO ACTION
);
8/16/2019 2011-1-00198-if 3
60/148
136
DBDL untuk Cek_Stok
Domain Nomor Cek Stok fixed length character string, length 6, format: [C][S][0-
9][0-9][0-9][0-9]
Domain Tanggal Cek Stok datetime
Domain Kode Pegawai fixed length character string, length 6, format:
[P][G][0-9][0-9][0-9][0-9]
Penjualan (
No_Cek_Stok No Cek Stok NOT NULL,
Tgl_Cek_Stok Tanggal Cek Stok NOT NULL,
Kode_Pegawai Kode Pegawai NOT NULL,
PRIMARY KEY (No_Cek_Stok),
FOREIGN KEY (Kode_Pegawai) REFERENCES Pegawai (Kode_Pegawai)
ON UPDATE CASCADE ON DELETE NO ACTION
);
DBDL untuk Cek_Stok_Detail
Domain Nomor Cek Stok fixed length character string, length 6, format: [C][S][0-
9][0-9][0-9][0-9]
Domain Kode Barang fixed length character string, length 6, format:
[B][R][0-9][0-9][0-9][0-9]
Domain Jumlah Sistem integer
Domain Jumlah Fisik integer
Domain Keterangan variable length character string, length 100
8/16/2019 2011-1-00198-if 3
61/148
137
Cek_Stok-Detail (
No_Cek_Stok No Cek Stok NOT NULL,
Kode_Barang Kode Barang NOT NULL,
Jumlah_Sistem Jumlah Sistem NOT NULL,
Jumlah_Fisik Jumlah Fisik NOT NULL,
Keterangan Keterangan NOT NULL,
PRIMARY KEY (No_Cek_Stok, Kode_Barang),
FOREIGN KEY (No_Cek_Stok) REFERENCES Cek_Stok (No_Cek_Stok)
ON UPDATE CASCADE ON DELETE NO ACTION
FOREIGN KEY (Kode_Barang) REFERENCES Barang (Kode_Barang)
ON UPDATE CASCADE ON DELETE NO ACTION
);
DBDL untuk Supplier
Domain Kode Supplier fixed length character string, length 6, format: [S][P][0-
9][0-9][0-9][0-9]
Domain Nama Supplier variable length character string, length 30
Domain Alamat Supplier variable length character string, length 100
Domain Email Supplier variable length character string, length 30
Supplier (
Kode_Supp Kode Supplier NOT NULL,
Nama_Supp Nama Supplier NOT NULL,
Alamat_Supp Alamat Supplier NOT NULL,
8/16/2019 2011-1-00198-if 3
62/148
138
Kode_Bagian Kode Bagian NOT NULL,
PRIMARY KEY (Kode_Supp),
ON UPDATE CASCADE ON DELETE NO ACTION
);
DBDL untuk Purchase Order
Domain Nomor Purchase Order fixed length character string, length 6, format:
[P][O][0-9][0-9][0-9][0-9]
Domain Tgl Purchase Order datetime
Domain Kode Pegawai fixed length character string, length 6, format:
[P][G][0-9][0-9][0-9][0-9]
Domain Kode Supp lier fixed length character string, length 6, format:
[S][P][0-9][0-9][0-9][0-9]
Purchase_Order (
No_PO Nomor Purchase Order NOT NULL,
Tgl_PO Tanggal Purchase Order NOT NULL,
Kode_Pegawai Kode Pegawai NOT NULL,
Kode_Supp Kode Supplier NOT NULL,
PRIMARY KEY (No_PO),
FOREIGN KEY (Kode_Pegawai) REFERENCES Pegawai (Kode_Pegawai)
ON UPDATE CASCADE ON DELETE NO ACTION
FOREIGN KEY (Kode_Supp) REFERENCES Supplier (Kode_Supp)
ON UPDATE CASCADE ON DELETE NO ACTION
8/16/2019 2011-1-00198-if 3
63/148
139
);
DBDL untuk Purchase_Order_Detail
Domain Kode Purchase Order fixed length character string, length 6, format:
[P][O][0-9][0-9][0-9][0-9]
Domain Kode Barang fixed length character string, length 6, format:
[B][R][0-9][0-9][0-9][0-9]
Domain Kuantitas integer
Purchase_Order_Detail (
No_PO Nomor Purchase Order NOT NULL,
Kode_Barang Kode Barang NOT NULL,
Kuantitas Kuantitas
PRIMARY KEY (Kode_PO, Kode_Barang),
FOREIGN KEY (Kode_PO) REFERENCES Purchase_Order (Kode_PO)
ON UPDATE CASCADE ON DELETE NO ACTION
FOREIGN KEY (Kode_Barang) REFERENCES Supplier (Kode_Barang)
ON UPDATE CASCADE ON DELETE NO ACTION
);
DBDL untuk Pembayaran
Domain Nomor Giro fixed length character string, length 6, format:
[P][P][0-9][0-9][0-9][0-9]
Domain Tgl Purchse Payment datetime
8/16/2019 2011-1-00198-if 3
64/148
140
Domain Kode Pegawai fixed length character string, length 6, format:
[P][G][0-9][0-9][0-9][0-9]
Domain Kode Supplier fixed length character string, length 6, format:
[S][P][0-9][0-9][0-9][0-9]
Pembayaran (
No_PP Nomor Purchase Payment NOT NULL,
Tgl_PP Tgl Purchase Payment NOT NULL,
Kode_Pegawai Kode Pegawai NOT NULL,
Kode_Supp Kode Supp NOT NULL,
PRIMARY KEY (Kode_PP),
FOREIGN KEY (Kode_Pegawai) REFERENCES Kode Pegawai (Kode_Pegawai)
ON UPDATE CASCADE ON DELETE NO ACTION
FOREIGN KEY (Kode_Supp) REFERENCES Supplier (Kode_Supp)
ON UPDATE CASCADE ON DELETE NO ACTION
)
3.2.3.b Merancang Representasi Derived data
Tujuan dari tahap ini adalah untuk menampilkan kembali bagaimana derived
data yang tapil pada model data logikal ke global pada target DBMS.Atribut yang
nilainya dapat dihasilkan dengan memriksa nilai dari atribut lain dikenal dengan
nama derived atau calculated attribute.ontohnya sebagai berikut:
8/16/2019 2011-1-00198-if 3
65/148
141
Tabel 3.10 Tabel Sales order
No_faktur Tgl_faktur Kode_pegawai Total_penjualan
FP0001 5 okt 2010 PG0002 300000,00
Tabel 3.11 Tabel Sales order Detail
No_faktur Kode_barang kuantitas Harga_jual
FP0001 BR0001 1 50000,00
FP0001 BR0003 2 250000,00
Dari contoh di atas total penjualan didapat suatu nilai dari attribute lain.Total
penjualan di dapat pada table sales order detail yang memiliki atribut yang
dihubungkan oleh No_faktur.sales order dengan dengan sales order detail merupakan
suatu entury yang saling berhubungan sehingga dapat mempengaruhi atribut satu
sama lain.Total penjualan didapat dari kuantitas x kode barang.
3.2.3.c Merancang General Constraint
Tujuan dari tahap ini yaitu merancang general constraint untuk DBMS.
Dalam sistem ini terdapat beberapa aturan bisnis yang harus dipenuhi.
Berikut ini adalah general constraint yang akan dibuat untuk menjaga
intedritas dari data y ang disimpan.
8/16/2019 2011-1-00198-if 3
66/148
142
• Kuantitas barang yang dijual
kuantitas barang yang dijual tidak boleh melebihi jumlah stok yang tersedia
create table sales_order(
no_faktur char(6) NOT NULL
tgl_faktur datetime NOT NULL
kode_pegawai char(6) NOT NULL
constraint [kuantitaspenjualan]
CHECK(NOT EXIST(SELECT Jumlah_stok from Barang
group by kode_barang
having kuantitas>jumlah stok)),
primary key (no_faktur),
on update cascade on delete no action,
foreign key(kode_pegawai) references pegawai (kode_pegawai)
on update cascade on delete no action
);
3.2.3.d Menganalisis Transaksi
Analisis transaksi bertujuan untuk lebih memahami secara fungsional
transaksi-transaksi yang berjalan dalam basis data dan untuk menganalisi transkasi-
transaksi penting.
keterangan transaksi:
8/16/2019 2011-1-00198-if 3
67/148
143
1. Memasukkan data pegawai
2. Memasukkan data barang
3. Memasukkan data sales order
4. Memasukkan data stok
5. memasukkan data supplier
6. memasukkan data purchase order
7. memasukkan data sales order
8. memasukkan data pembayaran
9. melakukan update/delete data pegawai
10. melakukan update/delete data barang
11. melakukan update/delete data konsumen
12. melakukan update/delete data sales order
13. melakukan update/delete data cek stok
14. melakukan up date/delete data supplier
15. melakukan update/delete data purchase order
16. melakukan update/delete data p embayaran
17. menampilkan data p egawai
18. mencari data pegawai berdasarkan nama pegawai
19. menampilkan data barang
20. mencari data barang berdasarkan nama barang
21. menampilkan data sales order
22. mencari data sales order berdasarkan nomor faktur
8/16/2019 2011-1-00198-if 3
68/148
144
23. menampilakn data cek stok
24. mencari data cek stok berdasarkan nomor cek stok
25. mencari data cek stok berdasarkan tanggal penyesuaian
26. menampilkan data supplier
27. mencari data supplier berdasarkan nama supp lier
28. menampilkan data p urchase order
29. Mencari data purchase order berdasarkan kode purchase order
30. menampilkan data pembayaran
31. mencari data pembayaran berdasarkan nomor
Tabel 3.12 Referensi Silang Transaksi Dengan Relasi
1 2 3 4
I R U D I R U D I R U D I R U D
Barang x
bagian x
pegawai x x
supplier
cek_stok x x
cek_stok_detail x x
sales_order x x
sales_order_detail x x
purchase_order x
purchase_order_detail x
pembayaran x
konsumen
8/16/2019 2011-1-00198-if 3
69/148
145
5 6 7 8
I R U D I R U D I R U D I R U D
Barang bagian pegawai
supplier xcek_stok
cek_stok_detailsales_order x
sales_order_detail x purchase_order x x
purchase_order_detail x
pembayaran x xkonsumen
910
11
12
I R U D I R U D I R U D I R U D
Barang x x bagian
pegawai x x
suppliercek_stok xcek_stok_detail x
sales_order x x x xsales_order_detail x x
purchase_order purchase_order_detail x pembayaran x
konsumen x x
8/16/2019 2011-1-00198-if 3
70/148
146
13
14
15
16
I R U D I R U D I R U D I R U DBarang bagian
pegawai x xsupplier x x x x
cek_stok x x xcek_stok_detail x
sales_ordersales_order_detail
purchase_order x x x
purchase_order_detail x pembayaran x x
konsumen
17
18
19
20
I R U D I R U D I R U D I R U D
Barang x x bagian
pegawai x xsupplier
cek_stok xcek_stok_detail x
sales_order xsales_order_detail x
purchase_order x purchase_order_detail x
pembayaran xkonsumen
8/16/2019 2011-1-00198-if 3
71/148
147
21
22
23
24
I R U D I R U D I R U D I R U DBarang bagian
pegawaisupplier
cek_stok x xcek_stok_detail x
sales_order x xsales_order_detail x x
purchase_order
purchase_order_detail pembayaran
konsumen
25
26
27
28
I R U D I R U D I R U D I R U D
Barang bagian
pegawaisupplier x x
cek_stok xcek_stok_detail
sales_ordersales_order_detail
purchase_order x x purchase_order_detail x
pembayaran xkonsumen
8/16/2019 2011-1-00198-if 3
72/148
148
29 30 31
I R U D I R U D I R U D
Barang bagian pegawai
suppliercek_stok
cek_stok_detailsales_order
sales_order_detail purchase_order x
purchase_order_detail x
pembayaran x xkonsumen
3.2.3.e Memilih organisasi file
Pemilihan DBMS
Pemilihan DBMS merupakan pemilihan DBMS yang sesuai untuk
mendukung aplikasi basis data. Berikut ini merupakan pertimbangan pemilihan
DBMS antara SQL Server 2005 dan Oracle 9i.
8/16/2019 2011-1-00198-if 3
73/148
149
Tabel 3.13 Perbandingan Platform
SQL Server 2005 Oracle 9i
Hanya bekerja pada platform berbasis
Windows.
Bisa bekerja pada semua platform mulai
dari platform berbasis Windows, Compaq
Tru64, UNX, system berbasis AIX,
sistem HP-UX, Linux Intel.
Tabel 3.14 Perbandingan Hardware Requirements
Keterangan SQL Server 2005 Oracle 9i
Processor Minimal menggunakan Pentium 600
MHz Pentium III sampai 1 GHz.
Untuk Intel/ platform
kompatibel lain: Pentium
166 MHz atau lebih.
Untuk AIX: IBM
RISC/6000 atau Server
Series
Memory Minimal membutuhkan 512 MB
RAM
Untuk Windows: 128 MB
RAM (minimum) dan 256
MB RAM (dianjurkan)
Hard disk Database Engine and data file,
Replication, and Full Text Search
(150 MB)
140 MB pada System
Drive + 4.5 GB untuk the
Oracle Home Drive (FAT)
8/16/2019 2011-1-00198-if 3
74/148
150
Analysis Services and data file (35
MB)
Reporting Services and Reporting
Manager (40 MB)
Notification Services Engine
Components, Client Components
and Rules Components (5 MB)
Integration Services (9 MB)
Client Components (12 MB)
Development Tools (70 MB)
Samples and Sample Database (390
MB)
atau 2.8 GB untuk The
Oracle Home Drive
(NTFS)
Typical Installation :
minimal 450 s/d 550 Mb
Compact Installation :
minimal 350 s/d 400 Mb
Table 3.15 Perbandingan Dialect SQl Server 2005 dan Oracle 9i
Feature SQl Server 2005 : T-SQL Oracle 9i – PL/SQL
Indexes B-Tree indexes B-Tree indexes, Bitmap
indexes, Partitioned
indexes, Function Based
indexes, Domain indexes
Tables Relational tables
Temporary tables
Relational tables, Object
Tables, Temporary tables
8/16/2019 2011-1-00198-if 3
75/148
151
Triggers AFTER triggers,
INSTEAD OF triggers
BEFORE triggers, AFTER
triggers
Procedures T -SQL statements PL/SQL statements, Java
Methods, third generation
language (3GL) routines
Arrays Supported Not supported
Table 3.16 Tabel Perbandingan Keterbatasan Fitur SQL Server 2005 dengan Oracle
9i
Feature SQl Server 2005 Oracle 9i
Column Name Length 128 30
Index Name Length 128 30
Table Name Length 128 30
View Name Length 128 30
Stored Procedure Name
Length
128 30
Mix Column per Index 16 32
Max char() size 8000 2000
Max varchar() size 8000 4000
Max Column per Table 1024 1000
Max Table Row Length 8036 255000
8/16/2019 2011-1-00198-if 3
76/148
152
Max Query Size 16777216 16777216
Recursive Subqueries 40 64
Constant String Size in
SELECT
16777207 4000
Constant String Size in
WHERE
8000 4000
Table 3.17 Perbandingan Harga
Number of CPUs SQl Server 2005
Standart Edition
Oracle 9i
Standart Edition
1 $ 5,999 $ 17,500
2 $ 11,998 $ 35,000
4 $ 23,996 $ 70,000
8 $ 47,992 $ 140,000
16 $ 95,984 $ 280,000
32 $ 191,968 $ 560,000
Dari data-data di atas menunjukan bahwa Oracle 9i mempunyai kemampuan
yang lebih baik daripada SQL Server 2005, namun dari segi hardware requirements
dan biaya yang harus dikeluarkan untuk DBMS tersebut relatif lebih tinggi. Atas
8/16/2019 2011-1-00198-if 3
77/148
153
pertimbangan di atas, maka p enulis memilih SQL Server 2005 sebagai DBMS yang
akan digunakan dalam implementasi basis data.
3.2.3.f Memilih Index
Tujuan pada tahap ini adalah untuk meningkatkan peforma dari sistem dengan
menggunkan index.Berikut adalah tabel index yang mebantu dalam pencarian data
yang sering digunakan,yaitu :
Tabel 3.18 Tabel Index
Entitiy Primary Key Index
Barang Kode_Barang Idx_kode_barang
Purchase_Order No_PO Idx_No_PO
Sales_Order No_Faktur Idx_No_Faktur
Konsumen Kode_Konsumen Idx_Kode_Konsumen
3.2.3.g Mengestimasi Kapasitas Penyimpanan yang Dibutuhkan
Tujuan dari tahap ini adalah untuk menghitung kapasitas penyimpanan yang
dibutuhkan oleh basis data. Perkiraan kapasitas setiap tabel adalah sebagai berikut:
Tabel 3.19 Estimasi Tabel Bagian
Field Data Type Ukuran
Kode_Bagian
Nama_Bagian
Char
Varchar
4
30
8/16/2019 2011-1-00198-if 3
78/148
154
Kapasitas dari Tabel Bagian adalah 34 Byte.
Diperkirakan dalam satu tahun terjadi penambahan 1 bagian.
Dalam satu tahun pertumbuhan dari tabel Bagian adalah 1*34=34 By te.
Tabel 3.20 Estimasi Tabel Pegawai
Field Data Type Ukuran
Kode_Pegawai
Nama_Pegawai
Alamat_Pegawai
Telepon
Password
Kode_Bagian
Char
Varchar
Varchar
Varchar
Varchar
Char
6
30
100
15
10
4
Kapasitas dari Tabel Pegawai adalah 165 By te.
Diperkirakan dalam satu tahun terjadi penambahan 1 Pegawai baru.
Dalam satu tahun pertumbuhan dari tabel Pegawai adalah 1*165=165 Byte.
8/16/2019 2011-1-00198-if 3
79/148
155
Tabel 3.21 Estimasi Tabel Konsumen
Field Data Type Ukuran
Kode_Konsumen
Nama_Konsumen
Alamat_Konsumen
Telepon
Char
Varchar
Varchar
Varchar
6
30
100
15
Kapasitas dari Tabel Konsumen adalah 151 Byte.
Diperkirakan dalam satu bulan terdapat penambahan 100 konsumen.
Dalam satu tahun pertumbuhan dari tabel Konsumen adalah 1*12*100*151=181200
Byte.
Tabel 3.22 Estimasi Tabel Barang
Field Data Type Ukuran
Kode_Barang
Nama_Barang
Harga_Jual
Harga_Beli
Minimal_Stok
Jumlah_Stok
Char
Varchar
Numeric(10,2)
Numeric(10,2)
Integer
Integer
6
30
12
12
5
5
8/16/2019 2011-1-00198-if 3
80/148
156
Kapasitas dari Tabel Barang adalah 70 Byte.
Diperkirakan dalam satu tahun terjadi penambahan 20 barang baru.
Dalam satu tahun pertumbuhan dari tabel Barang adalah 20*70=1400 Byte.
Tabel 3.23 Estimasi Tabel Sales_Order
Field Data Type Ukuran
No_Faktur
Tgl_Faktur
Kode_Pegawai
Kode_Konsumen
Char
Datetime
Char
Char
6
8
6
4
Kapasitas dari Tabel Sales_Order adalah 24 Byte.
Diperkirakan dalam satu hari terjadi 20 transaksi.
Dalam satu tahun pertumbuhan dari tabel Sales_Order adalah 20*30*12*24= 172800
Byte.
8/16/2019 2011-1-00198-if 3
81/148
157
Tabel 3.24 Estimasi Tabel Sales_Order_Detail
Field Data Type Ukuran
No_Faktur
Kuantitas
Kode_Barang
Char
Integer
Char
6
50
6
Kapasitas dari Tabel Sales_Order_Detail adalah 62 Byte.
Diperkirakan dalam satu hari terjadi 20 transaksi.
Diperkirakan set iap t ransaksi terdapat 5 barang.
Dalam satu tahun pertumbuhan dari tabel Sales_Order_Detail adalah
20*5*30*12*62= 2232000 Byte.
Tabel 3.25 Estimasi Tabel Cek_Stok
Field Data Type Ukuran
No_Cek_Stok
Tgl_Cek_Stok
Kode_Pegawai
Char
Datetime
Char
6
8
6
Kapasitas dari Tabel Cek_Stok adalah 20 Byte.
Diperkirakan dalam satu hari terjadi 20 transaksi.
8/16/2019 2011-1-00198-if 3
82/148
158
Dalam satu tahun pertumbuhan dari tabel Cek_Stok adalah 20*30*12*20= 144000
Byte.
Tabel 3.26 Estimasi Tabel Cek_Stok_Detail
Field Data Type Ukuran
No_Cek_Stok
Jumlah_Stok
Kode_Barang
Char
Integer
Char
6
5
6
Kapasitas dari Tabel Tabel Cek_Stok_Detail adalah 17 Byte.
Diperkirakan dalam satu hari terjadi 20 transaksi.
Diperkirakan set iap t ransaksi terdapat 5 jenis barang.
Dalam satu tahun pertumbuhan dari tabel Tabel Cek_Stok_Detail adalah
20*5*30*12*17= 612 Kilo byte.
8/16/2019 2011-1-00198-if 3
83/148
159
Tabel 3.27 Estimasi Tabel Supplier
Field Data Type Ukuran
Kode_Supp
Nama_Supp
Alamat_Supp
Telepon
Char
Varchar
Varchar
Varchar
6
30
100
15
Kapasitas dari Tabel Supplier adalah 151 Byte.
Diperkirakan dalam satu tahun terjadi penambahan 5 supplier baru.
Dalam satu tahun pertumbuhan dari tabel Supplier adalah 5*151 = 755 Byte.
Tabel 3.28 Estimasi Tabel Purchase_Order
Field Data Type Ukuran
No_PO
Tgl_PO
Kode_Pegawai
Kode_Supp
Char
Datetime
Char
Char
6
8
6
6
Kapasitas dari Tabel Purchase_Order adalah 26 Byte.
Diperkirakan dalam satu bulan terjadi 300 transaksi.
8/16/2019 2011-1-00198-if 3
84/148
160
Dalam satu tahun pertumbuhan dari tabel Purchase_Order adalah
1*300*12*26=93600 Byte.
Tabel3.29 Estimasi Tabel Purchase_Order_Detail
Field Data Type Ukuran
No_PO
Kuantitas
Kode_Barang
Char
Integer
Char
6
28
6
Kapasitas dari Tabel Purchase_Order_Detail adalah 40 Byte.
Diperkirakan dalam satu bulan terjadi 300 transaksi.
Dalam satu tahun pertumbuhan dari tabel Purchase_Order_Detail adalah
1*300*12*40=144000 Byte.
8/16/2019 2011-1-00198-if 3
85/148
161
Tabel 3.30 Estimasi Tabel Pembayaran
Field Data Type Ukuran
No_Giro
Tgl_Giro
Kode_Supp
Kode_Pegawai
No_PO
Char
Datetime
Char
Char
Char
6
8
6
6
6
Kapasitas dari Tabel Pembayaran adalah 32 Byte.
Diperkirakan dalam satu bulan terjadi 300 transaksi.
Dalam satu tahun pertumbuhan dari tabel Pembayaran adalah 1*300*12*32=115200
Byte.
Tabel 3.31 Estimasi Disk Space yang Dibutuhkan
Tabel Kapasitas ysng dibutuhkan dalam 1 tahun
Bagian 34 Byte
Pegawai 165 Byte
Konsumen 181200 Byte
Barang 1400 Byte
Sales_Order 172800 Byte
Sales_Order_Detail 2232000 Byte
Cek_Stok 144000 Byte
8/16/2019 2011-1-00198-if 3
86/148
162
Cek_Stok_Detail 612000 Byte
Supplier 755 Byte
Purchase_Order 93600 Byte
Purchase_Order_Detail 144000 Byte
Pembayaran 115200 Byte
3.2.3.h Merancang User Interface
Tujuan dari tahap ini adalah merancang user views yang telah teredintifikasi
selama tahap requirements collection and analysis data dalam siklus pengembangan
basis data.
View Pegawai
CREATE VIEW view_pegawai
AS SELECT h.kode_pegawai,h.nama_pegawai, h.alamat_pegawai, d.telp_pegawai,
h.password, b.kode_bagian
FROM pegawai h, telp_p egawai d , bagian b
WHERE h.kode_pegawai=d.kode_pegawai AND h.kode_bagian=b.kode_bagian
View Konsumen
CREATE VIEW view_konsumen
AS SELECT h.kode_konsumen, h.nama_konsumen, h.alamat_konsumen,
d.telp_konsumen.
8/16/2019 2011-1-00198-if 3
87/148
163
FROM konsumen h, telp_konsumen d
WHERE h.kode_konsumen=d.kode_konsumen
View Supplier
CREATE VIEW view_supplier
AS SELECT h.kode_supp, h.nama_supp, h.alamat_supp, d.telp_supp
FROM supplier h, telp_supp d
WHERE h.kode_supp=d.kode_supp
View Sales_Order
CREATE VIEW sales_order
AS SELECT h.no_faktur, h.tgl_faktur, h.kode_pegawai, h.kode_konsumen
FROM sales_order h, sales_order_detail d, pegawai p, barang b
WHERE h.no_faktur = d.no_faktur AND h.kode_pegawai = p.kode_pegawai AND
d.kode_barang = b.kode_barang
GROUP BY h.no_faktur, h.tgl_faktur, h.kode_pegawai, h.kode_konsumen
View Sales_Order_Detail
CREATE VIEW view_sales_order_detail
AS SELECT h.no_faktur, b.kode_barang, d.kuantitas
FROM sales_order_detail d, barang b,sales_order h
WHERE d.kode_barang=b.kode_barang AND h.no_faktur=d.no_faktur
8/16/2019 2011-1-00198-if 3
88/148
164
View Cek_Stok
CREATE VIEW view_cek_stok
AS SELECT h.no_cek_stok, h.tgl_cek_stok, h.kode_pegawai
FROM cek_stok h, pegawai p
WHERE h.kode_pegawai = p.kode_pegawai
View Cek_Stok_Detail
CREATE VIEW view_cek_stok_detail
AS SELECT d.kode_barang, b.n ama_barang, d.jumlah_stok,
FROM cek_stok_detail d, barang b, cek_stok h
WHERE d.kode_barang=b.kode_barang AND h.no_cek_stok=d.no_cek_stok
View Purchase_Order
CREATE VIEW view_p urchase_order
AS SELECT h.no_PO, h.tgl_PO, h.kode_pegawai, h.kode_supp
FROM Purchase_Order h, supplier s, pegawai p
WHERE h.kode_supp = s.kode_supp AND h.kode_pegawai = p .kode_pegawai
View Purchase_Order_Detail
CREATE VIEW view_purchase_order_detail
AS SELECT h.no_PO, d.kode_barang, d.kuantitas
FROM purchase_order_detail d, barang b, purchase_order h
WHERE d.kode_barang=b.kode_barang AND h.no_PO=d.no_PO
8/16/2019 2011-1-00198-if 3
89/148
165
3.2.3.i Merancang Mekanisme Keamanan
Tujuan dari tahap ini adalah untuk merancang mekanisme keamanan
dari basis data. Adapun mekanisme keamanan yang dirancang untuk basis
data adalah sebagai berikut:
a) Keamanan Sistem
Keamanan Sistem diterapkan dengan menggunakan authentikasi user ,
yaitu dengan menggunakan halaman login sebelum masuk ke dalam
sistem yang dirancang pada aplikasi. Dari halaman login, user diminta
memasukkan username dan password . Selain itu, juga diatur agar user
hanya bisa mengakses modul-modul tertentu dalam program sesuai
dengan haknya.
b) Keamanan Data
Keamanan data berhubungan dengan relasi basis data (tabel atau
relasi) dan aksi user terhadap tersebut misalnya aksi pemilihan,
pengisian, pengubahan dan penghapusan data. Keamanan data ini
diterapkan menggunakan autohorisasi user dengan tujuan untuk
membatasi hak akses user terhadap relasi yang ada.
8/16/2019 2011-1-00198-if 3
90/148
166
Table 3.32 Perancangan Mekanisme Keamanan
User Pemilik Kepala Bagian Bagian
Bengkel Bengkel Front Desk Spare Part
Relasi I R U D I R U D I R U D I R U D
Barang x x x x x x x x
Bagian x x x x x
Pegawai x x x x x x x
Konsumen x x x x x x x x x x
Supplier x x x x x x
Sales_Order x x x x x x x
Sales_Order_ x x x x x x x
Detail
Cek_Stok x x x x x x
Cek_Stok_ x x x x x x x x
Detail
Purchase_ x x x x x x x
Order
Purchase_ x x x x x x
Order_Detail
Pembayaran x x x x x x
Keterangan: I = Insert R = Read U = Update D = Delete
8/16/2019 2011-1-00198-if 3
91/148
167
3.3 Perancangan Aplikasi
Berikut ini merupakan perancangan aplikasi yang menggunakan dan
memproses basis data. Perancangan aplikasi ini meliputi perancangan struktur menu,
pembuatan State Transition Diagram(STD), spesifikasi proses serta perancangan
input dan output .
3.3.1 Struktur Menu
Berikut ini merupakan struktur menu dari aplikasi yang dibuat:
Halaman Login
Fi le Insert Tr ans action
Halaman Utam a
ChangePassword
Exit
Product
Pegawai
Supplier
Front Desk
Pembelian
Penjualan
Repor t
Pembelian
Penjualan
Persediaan
LogoutPurchase
Order
Konsumen
Gambar 3.11 Struktur menu rancangan aplikasi
8/16/2019 2011-1-00198-if 3
92/148
168
3.3.2 State Transition Diagram(STD)
State Transition Diagram merupakan diagram yang menjelaskan aliran suatu state ke
state yang lain dalam sebuah aplikasi.
Berikut ini merupakan STD dari aplikasi yang dirancang:
Gambar 3.12 STD Halaman Login
8/16/2019 2011-1-00198-if 3
93/148
169
Halaman Utama
File
Insert
Transaction
Report
Klik ‘File’ _________________________
Tampilkan menu File
Klik ‘Insert’
Tampilkan menu Insert
Klik ‘Transaction’
Tampilkan menu Transaction
Klik ‘Report’
Tampilkan menu Report
_________________________
_________________________
_________________________
Gambar 3.13 STD Halaman Utama
8/16/2019 2011-1-00198-if 3
94/148
170
Gambar 3.14 STD Halaman File
Gambar 3.15 STD Halaman Change Password
8/16/2019 2011-1-00198-if 3
95/148
171
Insert
Barang
Supplier
Pegawai
Klik ‘Barang’ _________________________
Tampilkan halaman b arang
Klik ‘Supplier’
Tampilkan halaman supplier
Klik ‘Pegawai,
Tampilkan halaman pegawai
_________________________
_________________________
Konsumen
Klik ‘Konsumen’ _________________________
Tampilkan halaman
konsumen
Gambar 3.16 STD Halaman Insert
8/16/2019 2011-1-00198-if 3
96/148
172
Tambah Barang Eror Update Barang Eror
Tambah Barang Barang Update Barang
Tambah Data Berhasil
Hapus Barang
Update Barang Berhasil
Halaman Utama
Klik ‘Simpan’ ____________
Tambah dataerror, tampi lkan
pesankesalahan
Kl ik ‘OK’ ____________
Tampilkanhalaman
tambah Barang
Masukkan katakunci ____________
Tampilkanhalaman Barang
berisi dataBarang yang
dicari
Klik ‘TampilSemua‘ ____________
Tampi lkan
halaman Barangberisi semuadata Barang
Klik Tambah‘’ ____________
Tampilkanhalaman
tamba h Barang
Klik ‘Batal’ ____________
Tampilkanhalaman Ba rang
Klik ‘Simpan’ ____________
Tamb ah databerhasil,
tampilkan p esanberhasil
Kl ik ‘OK’ ____________
Tampilkan
halaman Barang
Klik ‘Hapus’ ____________
Tampilkanhalaman hapus
Barang
Klik ‘Yes’ ____________
Hapus d atapegawai,
Tampilkanhalaman Ba rang
Klik ‘No’ ____________
Tampilkanhalaman Barang
Klik ‘Tutup’ ____________
Tampilkanhalaman utama
Klik ‘Barang’ ____________
Tampilkanhalaman Barang
Klik ‘Tutup’ ____________
Tampilkanhalaman utama
Klik ‘Tutup’ ____________
Tampilkan
halaman u tama
Klik ‘OK’ ____________
Tampilkanhalaman Barang
Klik ‘Batal’ ____________
Tampilkanhalaman Barang
Klik ‘Update’ ____________
Tampilkanhalaman Update
Barang
Klik ‘OK’ ____________
Tampilkan
halaman U pdateBarang
Klik ‘Simpan’ ____________Update data
error, tampilkanpesan
kesalahan
Klik ‘Simpan’ ____________
Update databerhasil,
tampilkan p esanberhasil
Tambah Stok
Klik ‘TambahStok’ ____________
Tampilkanhalaman Tambah
Stok Barang
Klik ‘OK’ ____________
Tampilkanhalaman Ba rang
Klik ‘Cancel ’ ____________
Tampi lkanhalaman Ba rang
Gambar 3.17 STD Halaman Barang
8/16/2019 2011-1-00198-if 3
97/148
173
Tambah Supplier Eror Update Supplier Eror
Tambah Supplier Supplier Update Supplier
Tambah Data Berha sil
Hapus Suppl ier Update Supplier
Berhasil
Halaman Utama
Klik ‘Simpan’ ____________
Tambah dataerror, tampilkan
pesankesalahan
Kl ik ‘OK’ ____________
Tampilkanhalaman
tambah supplier
Masukkan katakunci ____________Tampilkanhalaman
supplier berisidata supplieryang d icari
Klik ‘TampilSemua‘ ____________Tampilkanhalaman
supplier berisisemua data
supplier
Klik T ambah‘’ ____________
Tampilkanhalaman
tambah supplier
Klik ‘Batal’ ____________
Tampilkanhalamansupplier
Klik ‘Simpan’ ____________
Tambah data
berhasil,tampilkan pesanberhasil
Kl ik ‘OK’ ____________
Tampilkanhalamansupplier
Kl ik ‘Hapus’ ____________
Tampilkanhalaman hapus
supplier
Klik ‘Yes’ ____________
Hapus datapegawai,
Tampilkanhalaman supplier
Klik ‘No’ ____________
Tampilkanhalaman supplier
Klik ‘Tutup’ ____________
Tampilkanhalaman utama
Klik ‘Supplier’ ____________
Tampilkanhalaman supplier
Kl ik ‘ Tutup’ ____________
Tampilkanhalaman u tama
Kl ik ‘ Tutup’ ____________
Tampilkanhalaman u tama
Klik ‘OK’ ____________
Tampilkanhalamansupplier
Klik ‘Batal’ ____________
Tampilkanhalamansupplier
Klik ‘Update’ ____________
Tampilkanhalaman Update
supplier
Klik ‘OK’ ____________
Tampilkanhalaman Update
supplier
Klik ‘Simpan’ ____________
Update dataerror, tampilkan
pesankesalahan
Klik ‘Simpan’ ____________
Update databerhasil ,
tampi lkan pesanberhasil
Gambar 3.18 STD Halaman Supplier
8/16/2019 2011-1-00198-if 3
98/148
174
Tambah Pegawai Eror Update Pegawai Eror
Tambah Pe gawai Pegawai Update Pegawai
Tambah Data Berhasi l
Hapus PegawaiUpdate Pegawai
Berhasil
Halaman U tama
Klik ‘Simpan’ ____________
Tambah dataerror, tampilkan
pesankesalahan
Klik ‘OK’ ____________
Tampilkanhalamantambah
Pegawai
Masukkan katakunci ____________Tampilkanhalaman
Pegawai berisidata Pegawai
yang dicar i
Kl ik ‘TampilSemua‘ ____________Tampilkanhalaman
Pegawai b erisisemua data
Pegawai
Klik Tambah‘’ ____________
Tampilkanhalamantambah
Pegawai
Kl ik ‘Batal’ ____________
TampilkanhalamanPegawai
Klik ‘Simpan’ ____________
Tambah databerhasi l,
tampilkan pesanberhasil
Klik‘OK’ ____________
TampilkanhalamanPegawai
Klik ‘Hapus’ ____________
Tampilkanhalaman hapus
Pegawai
Klik ‘Yes’ ____________
Hapus datapegawai,
Tampilkanhalaman Pegawai
Kl ik ‘No’ ____________
Tampilkanhalaman Pegawai
Klik ‘Tutup’ ____________
Tampilkanhalaman u tama
Klik ‘Pegawai’ ____________
Tampilkanhalaman Pegawai
Klik ‘Tutup’ ____________
Tampilkanhalaman utama
Klik ‘Tutup’ ____________
Tampilkanhalaman utama
Klik‘OK’ ____________
TampilkanhalamanPegawai
Klik ‘Batal’ ____________
TampilkanhalamanPegawai
Kl ik ‘Update’ ____________
Tampilkanhalaman Up date
Pegawai
Klik ‘OK’ ____________
Tampilkanhalaman Update
Pegawai
Klik ‘Simpan’ ____________
Update dataerror, tampilkan
pesankesalahan
Klik ‘Simpan’ ____________
Update databerhasil,
tampilkan pesanberhasil
Gambar 3.19 STD Halaman Pegawai
8/16/2019 2011-1-00198-if 3
99/148
175
Transaction
Front Desk
Pembelian
Penjualan
Klik ‘Front Desk’ _________________________
Tampilkan halaman FrontDesk
Klik ‘Pembelian’
Tampilkan halamanpembelian
Klik ‘Penjualan’
Tampilkan halamanpenjualan
_________________________
_________________________
Purchase Order
Klik ‘Purchase Order’
Tampilkan halaman
Purchase Order
_________________________
Gambar 3.20 STD Halaman Transaction
8/16/2019 2011-1-00198-if 3
100/148
176
Gambar 3.21 STD Halaman Front Desk
8/16/2019 2011-1-00198-if 3
101/148
177
Gambar 3.22 STD Halaman Front Desk
8/16/2019 2011-1-00198-if 3
102/148
178
Gambar 3.23 STD Halaman Pembelian
8/16/2019 2011-1-00198-if 3
103/148
179
Gambar 3.24 STD Halaman Penjualan
8/16/2019 2011-1-00198-if 3
104/148
180
Pembelian
Persediaan
Penjualan
Report
Klik ‘Pembelian’ _________________________
Tampilkan halaman LaporanPembelian
Klik ‘Penjualan’ _________________________
Tampilkan halaman LaporanPenjualan
Klik ‘Persediaan’ _________________________
Tampilkan halaman LaporanPersediaan
Gambar 3.25 STD Halaman Laporan
8/16/2019 2011-1-00198-if 3
105/148
181
Gambar 3.26 STD Halaman Laporan Pembelian
8/16/2019 2011-1-00198-if 3
106/148
182
Gambar 3.27 STD Halaman Laporan Penjualan
8/16/2019 2011-1-00198-if 3
107/148
183
Gambar 3.28 STD Halaman Laporan Persediaan
8/16/2019 2011-1-00198-if 3
108/148
184
3.3.3 Pseudocode
Tahap ini akan dirancang pseusocode untuk menggambarkan alur
jalannya aplikasi. Berikut ini psedocode dari aplikasi yang dibuat :
Halaman login