68 BAB 3 ANALISIS KEBUTUHAN DAN PERANCANGAN SISTEM BASIS DATA
3.1
Analisis Kebutuhan 3.1.1
Riwayat Perusahaan 3.1.1.1 Sejarah Organisasi PT Cavenzi Indonesia cabang Plaza Meubel Cawang didirikan pada tanggal 18 Januari 2007 oleh Bapak Adrian Haryono Mulyoharjono dan Bapak Alwi Koty, yang disahkan oleh Bapak Rusnaldy, S.H. selaku notarisnya. Perusahaan yang bergerak dalam industri meubel dan beralamat di Jl. Otista Raya No. 82a Cawang Jakarta Timur ini selain memproduksi barang – barang meubel, juga mengambil barang – barang meubel dari supplier – supplier untuk dijual. PT Cavenzi Indonesia bekerja sama dengan perusahaan – perusahaan lain, dimana PT Cavenzi Indonesia menyediakan barang – barang meubel bagi perusahaan – perusahaan tersebut.
3.1.1.2 Visi dan Misi Visi dari perusahaan adalah menjadi salah satu perusahaan meubel yang dapat memenuhi permintaan konsumen dan kebutuhan pasar terhadap meubel. Misi yang ingin dicapai oleh perusahaan adalah sebagai berikut :
69 •
Meningkatkan kualitas, baik pelayanan kepada pelanggan (Meningkatkan kinerja karyawan pada setiap bagian), maupun barang – barang yang dijual
• 3.1.2
Menjalin kerja sama yang baik dengan supplier – supplier.
Struktur Organisasi Struktur organisasi suatu perusahaan memegang peranan penting, karena dapat menggambarkan dengan jelas fungsi-fungsi dan pembagian tugas dalam organisasi. Dalam struktur organisasi akan digambarkan tata hubungan kerja, wewenang, dan tanggung jawab dari tiap-tiap bagian yang ada dalam organisasi. Struktur organisasi bertujuan membantu perusahaan dalam penyelesaian tugas secara efektif dan efisien agar tercipta suatu kelancaran kerja, guna mencapai tujuan perusahaan yang telah ditetapkan. Struktur organisasi PT Cavenzi Indonesia adalah struktur organisasi garis, karena tugas dan perintah mengalir dari pimpinan melalui garis vertikal sampai pada tingkat yang terbawah. Struktur ini menjelaskan bahwa setiap bawahan menerima perintah langsung dari satu atasan dan bertanggung jawab penuh terhadap atasannya. Struktur organisasi PT Cavenzi Indonesia dapat dilihat pada gambar berikut ini :
70
RUPS
DEWAN KOMISARIS
DIREKTUR UTAMA
MANAGER KEUANGAN
WAKIL MANAGER KEUANGAN
MANAGER PEMASARAN
STAFF ADMINISTRASI
BAGIAN PERSEDIAAN BARANG
SALES PROMOTION GIRLS
OFFICE BOY DAN SOPIR
Gambar 3.1 Struktur Organisasi PT Cavenzi Indonesia
71 3.1.3 Pembagian Tugas dan Tanggung Jawab Uraian tugas dari masing-masing posisi pada struktur organisasi PT Cavenzi Indonesia adalah sebagai berikut : a. RUPS (Rapat Umum Pemegang Saham). 1) Pemegang kekuasaan tertinggi dalam pengambilan keputusan. 2) Memilih dan mengangkat dewan komisaris dan direktur. 3) Mengawasi dan menerima pertanggungjawaban pelaksanaan kegiatan perusahaan dari dewan komisaris. b. Dewan Komisaris. 1) Mengawasi pelaksanaan kegiatan perusahaan dalam pencapaian tujuan yang telah ditetapkan. 2) Menentukan kebijakan dan tujuan perusahaan secara keseluruhan. 3) Bertanggungjawab
kepada
RUPS
atas
seluruh
kegiatan
perusahaan. c. Direktur Utama. 1) Merumuskan, menyusun dan menetapkan kegiatan operasional perusahaan. 2) Mengawasi, mengkoordinir dan mengevaluasi kegiatan dari masing-masing manager dalam menjalankan aktivitas perusahaan. 3) Memberikan
pengarahan
umum
serta
menetapkan
tugas,
wewenang dan tanggung jawab untuk setiap bagian perusahaan, baik dari segi disiplin kerja maupun prestasi kerja. 4) Menerima semua laporan per bulan yang telah diperiksa oleh para manager.
72 5) Memiliki hak / wewenang untuk memberhentikan dan menerima karyawan. d. Manager Keuangan 1) Memeriksa laporan keuangan per bulan yang disusun oleh Wakil Manager Keuangan. e. Manager Pemasaran 1) Memantau arus penjualan barang ke pelanggan, yang meliputi pesanan penjualan barang, pembayaran pelanggan, pengiriman barang ke pelanggan, dan retur penjualan dengan memeriksa laporan penjualan yang telah disusun oleh staff administrasi. 2) Memantau arus persediaan barang dari supplier / vendor, yang meliputi pembelian barang jadi ke supplier dan retur pembelian dengan memeriksa laporan pembelian dan laporan persediaan yang telah disusun oleh bagian persediaan barang. f. Wakil Manager Keuangan 1) Menyusun laporan keuangan per bulan berdasarkan laporan penjualan, pembelian, dan persediaan. g. Bagian Persediaan Barang 1) Mengatur persediaan barang dari supplier, yang meliputi pembelian barang jadi ke supplier dan retur pembelian. 2) Mencatat barang masuk dan keluar. 3) Menyusun laporan pembelian dan persediaan per bulan. h. Staff Administrasi
73 1) Mengatur penjualan barang ke pelanggan, yang meliputi pesanan penjualan barang, pembayaran pelanggan, pengiriman barang ke pelanggan, dan retur penjualan 2) Membuat kwitansi, faktur, dan surat jalan (untuk pelanggan). 3) Mendokumentasikan faktur, tanda terima, bukti surat jalan, dan data retur penjualan. 4) Menyusun laporan penjualan per bulan. i. Sales Promotion Girls 1) Melayani dan melakukan penawaran barang kepada pelanggan. j. Office Boy dan Sopir 1) Membersihkan showroom tiap hari. 2) Merakit meubel. 3) Pesuruh. 4) Mengirimkan barang pesanan pelanggan
3.1.4
Sistem yang Sedang Berjalan 3.1.4.1 Diagram Aliran Dokumen 3.1.4.1.1 DAD Sistem Penjualan
74 Sales Promotion Girls
Pelanggan
Staff Administrasi
Bagian Persediaan Barang
Sopir
Kirim barang
Mulai
Menerima informasi penawaran
Membuat kwitansi
Packing barang
Melakukan penawaran barang
Sesuai Ya dengan yangTidak dibutuhkan?
Membuat faktur
Mencatat barang keluar
Mengeluarkan daftar harga
Menawar harga
4 3
Menerima faktur
2 Faktur Daftar harga
Tidak
Tidak
Apakah harga sesuai?
Ya
Memesan barang
Mendokumen tasikan faktur
Membayar 50% dari harga beli
Ordner
Kwitansi
Membuat surat jalan
Ada barang Ya yang rusak?
Melunasi pembayaran
2 Surat jalan
Mendokumen tasikan surat jalan
Menerima faktur Ordner
Faktur dan surat jalan Memproses retur penjualan Selesai
Membuat laporan penjualan
Gambar 3.2 DAD Sistem Penjualan
Menerima surat jalan
Memberikan faktur (bukti pelunasan) dan surat jalan
Wakil Manager Keuangan Menerima faktur
75 3.1.4.1.2 DAD Sistem Persediaan
Gambar 3.3 DAD Sistem Persediaan
76 3.1.4.2 Kebutuhan pengguna Analisis
kebutuhan
sistem
pada
PT
Cavenzi
Indonesia
digambarkan dalam tabel berikut : Tabel 3.1 Informasi Kebutuhan Pengguna Informasi
Pengguna
Barang
Bagian persediaan barang
Supplier
Bagian persediaan barang
Customer
Staff administrasi
Pesanan customer
Staff administrasi
Pembayaran customer
Staff administrasi
Pengiriman barang ke customer
Staff administrasi
Pembelian barang ke supplier
Bagian persediaan barang
Retur penjualan
Staff administrasi
Retur pembelian
Bagian persediaan barang
Laporan penjualan
Staff administrasi
Laporan pembelian
Bagian persediaan barang
Laporan persediaan
Bagian persediaan barang
77 3.1.5
Permasalahan yang Dihadapi Dari analisis sistem yang berlaku ditemukan permasalahan yaitu penjualan dan persediaan masih dilakukan secara manual dengan menggunakan kertas, sehingga membutuhkan waktu, biaya dan tenaga yang cukup besar. Melihat permasalahan yang ada, maka PT Cavenzi Indonesia memutuskan untuk menggunakan sistem penjualan dan persediaan yang baru dan alternatif yang lain untuk mengatasi permasalahan yang ada. Sistem penjualan dan persediaan ini dibuat lebih karena adanya arahan dari pihak manajemen PT Cavenzi Indonesia untuk lebih meningkatkan penjualan dan dapat memantau persediaan yang ada.
3.1.6
Usulan Pemecahan Masalah Dengan melihat permasalahan yang ada, maka usulan atas masalah yang dihadapi adalah dengan mengubah sistem penjualan dan persediaan yang manual menjadi sistem penjualan dan persediaan yang dapat dilakukan dengan menggunakan aplikasi berbasis web dan merancang sistem basis data untuk menyimpan data penjualan dan persediaan tersebut. Dengan adanya sistem ini, pengguna diberikan kemudahan dalam melakukan kegiatan penjualan dan persediaan, sehingga akan lebih efisien dan efektif dalam hal waktu pengerjaan dan tenaga serta menghemat kertas (paperless), dan ini tentunya akan mengurangi biaya. Pengguna juga dapat memperoleh suatu basis data dari penjualan dan
78 persediaan yang akurat dan konsisten, yang mana dapat meningkatkan kinerja PT Cavenzi Indonesia dalam mengolah data – data tersebut.
3.2
Perancangan Sistem Basis Data Perancangan basis data dilakukan berdasarkan kebutuhan informasi yang telah diidentifikasi pada PT Cavenzi Indonesia dan terbagi dalam tiga tahap, yaitu: •
Perancangan basis data konseptual
•
Perancangan basis data logical
•
Perancangan basis data fisikal
3.2.1
Perancangan Basis Data Konseptual 3.2.1.1 Identifikasi Tipe Entity Tabel 3.2 Identifikasi Tipe Entity
Nama Entity MsBarang
MsSupplier
Deskripsi
Alias
Kejadian
Barang – barang yang Barang
Memiliki
dijual di PT Cavenzi
macam, seperti sofa,
Indonesia
lemari, meja, dll.
Perusahaan perusahaan menyediakan untuk
PT
Indonesia
– Supplier yang barang Cavenzi
beberapa
Supplier barang
memasok –
barang
yang akan dijual ke pelanggan
79 Nama Entity MsKaryawan
Deskripsi
Alias
Kejadian
Karyawan yang bekerja Pegawai
Bekerja
pada
Cavenzi
PT
Cavenzi
di
PT
Indonesia MsCustomer
TrPemesanan
Pelanggan yang hendak Customer
Melakukan transaksi
membeli suatu barang
pembelian barang
Berisi
Pelanggan memesan
mengenai
informasi Pemesanan pemesanan
barang
barang dari pelanggan TrPembayaran
Berisi
informasi Pembayaran Pelanggan
mengenai pembayaran
membayar barang –
pelanggan
barang
atas
dipesannya
pesanannya TrPengiriman
Berisi mengenai
yang
informasi Pengiriman pengiriman
Barang
–
dikirim
barang – barang ke
pelanggan
pelanggan
melakukan
barang setelah
pembayaran TrPembelian
Berisi mengenai
informasi Pembelian pembelian
barang ke supplier
PT
Cavenzi
Indonesia
membeli
barang dari supplier
80 Nama Entity TrReturPenjualan
Deskripsi Informasi
Alias
mengenai Retur
Jika
ada
barang
retur barang – barang Penjualan
rusak dikirim, maka
yang
pelanggan
dijual
ke
pelanggan TrReturPembelian
Kejadian
akan
meretur barang itu
Informasi
mengenai Retur
Jika
ada
retur barang – barang Pembelian
rusak
yang
supplier
dibeli
dari
supplier
barang dikirim ke
perusahaan,
maka
perusahaan
akan
meretur barang itu CustomerTalk
Saran
dan
kritik Saran
dan Setiap
customer
Kritik
berhak
untuk
customer
mengeluarkan saran dan
kritik,
demi
kemajuan perusahaan
3.2.1.2 Identifikasi Tipe Relationship Tabel 3.3 Identifikasi Tipe Relationship Nama Entity MsBarang
Multipicity
Relational
Multipicity
Nama Entitas
1..1
Dimiliki
1..*
TrPemesanan
1..*
Dimiliki
1..*
TrPembelian
81 Nama Entity
Multipicity
Relational
Multipicity
Nama Entitas
MsSupplier
1..1
Dimiliki
1..*
TrPembelian
MsKaryawan
1..1
Melakukan
1..*
TrPembelian
1..1
Melayani
1..*
TrPemesanan
1..1
Melayani
1..*
TrPembayaran
1..1
Melakukan
1..*
TrPengiriman
1..1
Melakukan
1..*
TrPemesanan
1..1
Memberikan
1..*
CustomerTalk
TrPemesanan
1..1
Dimiliki
1..1
TrPembayaran
TrPembayaran
1..1
Melakukan
1..1
TrPengiriman
TrPengiriman
1..1
Memiliki
0..1
TrReturPenjualan
TrPembelian
1..1
Memiliki
0..1
TrReturPembelian
MsCustomer
82
Gambar 3.4 ER Diagram Konseptual
83 3.2.1.3 Identifikasi dan Asosiasi Atribut dengan Entity atau Tipe Relationship Tabel 3.4 Entity MsBarang Entity : MsBarang Atribut
Deskripsi
Tipe Data
Null
Multi value
KdBarang
Kode Barang
Char(5)
Tidak
Tidak
NamaBarang
Nama Barang
Varchar(30)
Tidak
Tidak
JenisBarang
Jenis Barang
Varchar(30)
Tidak
Tidak
Harga
Harga
Varchar(20)
Tidak
Tidak
Stok
Persediaan Barang
Int
Tidak
Tidak
Tabel 3.5 Entity MsSupplier Entity : MsSupplier Atribut
Deskripsi
Tipe Data
Null
Multi value
KdSupplier
Kode Supplier
Char(5)
Tidak
Tidak
NamaSupplier
Nama Supplier
Varchar(30)
Tidak
Tidak
AlamatSupplier
Alamat Supplier
Text
Tidak
Tidak
TelpSupplier
Telepon Supplier
Varchar(20)
Tidak
Ya
EmailSupplier
Email Supplier
Varchar(50)
Tidak
Ya
84 Tabel 3.6 Entity MsKaryawan Entity : MsKaryawan Atribut
Deskripsi
Tipe Data
Null
Multi value
KdKaryawan
Kode Karyawan
Char(5)
Tidak
Tidak
NamaKaryawan
Nama Karyawan
Varchar(30)
Tidak
Tidak
AlamatKaryawan
Alamat Karyawan
Text
Tidak
Tidak
TelpKaryawan
Telepon Karyawan
Varchar(20)
Tidak
Ya
EmailKaryawan
Email Karyawan
Varchar(50)
Tidak
Ya
Jabatan
Jabatan Karyawan
Varchar(30)
Tidak
Tidak
Username
Username Karyawan
Varchar(20)
Tidak
Tidak
Password
Password Karyawan
Varchar(35)
Tidak
Tidak
Tabel 3.7 Entity MsCustomer Entity : MsCustomer Atribut
Deskripsi
Tipe Data
Null
Multi value
KdCust
Kode Customer
Int
Tidak
Tidak
NamaCust
Nama Customer
Varchar(30)
Tidak
Tidak
AlamatCust
Alamat Customer
Text
Tidak
Tidak
KdPos
Kode Pos Customer
Char(5)
Tidak
Tidak
TelpCust
Telepon Customer
Varchar(20)
Tidak
Ya
EmailCust
Email Customer
Varchar(50)
Tidak
Ya
NoRekCust
Nomor Rekening Customer Varchar(20)
Tidak
Ya
Username
Username Customer
Tidak
Tidak
Varchar(20)
85 Password
Password Customer
Varchar(35)
Tidak
Tidak
Tabel 3.8 Entity TrPemesanan Entity : TrPemesanan Atribut
Deskripsi
Tipe Data
Null
Multi value
KdPemesanan
Kode Pemesanan
Char(6)
Tidak
Tidak
KdBarang
Kode Barang
Char(5)
Tidak
Tidak
HargaJual
Harga Jual Satuan
Varchar(20)
Tidak
Tidak
Qty
Jumlah Barang
Int
Tidak
Tidak
TglPesan
Tanggal Pemesanan
Datetime
Tidak
Tidak
Tabel 3.9 Entity TrPembayaran Entity : TrPembayaran Atribut
Deskripsi
Tipe Data
Null
Multi value
KdPembayaran
Kode Penjualan
Char(6)
Tidak
Tidak
TglBayar
Tanggal Pembayaran
Datetime
Tidak
Tidak
Tabel 3.10 Entity TrPengiriman Entity : TrPengiriman Atribut
Deskripsi
Tipe Data
Null
Multi value
KdPengiriman
Kode Pengiriman
Char(6)
Tidak
Tidak
TglKirim
Tanggal Pengiriman
Datetime
Tidak
Tidak
86 Tabel 3.11 Entity TrPembelian Entity : TrPembelian Atribut
Deskripsi
Tipe Data
Null
Multi value
KdPembelian
Kode Pembelian
Char(6)
Tidak
Tidak
KdBarang
Kode Barang
Char(5)
Tidak
Tidak
HargaBeli
Harga Beli Satuan
Varchar(20)
Tidak
Tidak
Qty
Banyak Barang
Int
Tidak
Tidak
TglBeli
Tanggal Beli
Datetime
Tidak
Tidak
Tabel 3.12 Entity TrReturPenjualan Entity : TrReturPenjualan Atribut
Deskripsi
Tipe Data
Null
Multi value
KdRtrPenjualan
Kode Retur Penjualan
Char(6)
Tidak
Tidak
Qty
Banyak Barang
Int
Tidak
Tidak
TglPengembalian
Tanggal Pengembalian
Datetime
Tidak
Tidak
Tabel 3.13 Entity TrReturPembelian Entity : TrReturPembelian Atribut
Deskripsi
Tipe Data
Null
Multi value
KdRtrPembelian
Kode Retur Pembelian
Char(6)
Tidak
Tidak
Qty
Banyak Barang
Int
Tidak
Tidak
TglPengembalian
Tanggal Pengembalian
Datetime
Tidak
Tidak
87 Tabel 3.14 Entity CustomerTalk Entity : CustomerTalk Atribut
Deskripsi
Tipe Data
Null
Multi value
KdCust
Kode Customer
Char(5)
Tidak
Tidak
Talk
Isi saran dan kritik
Text
Tidak
Tidak
Tgl
Tanggal pengiriman
Datetime
Tidak
Tidak
3.2.1.4 Menentukan Atribut Domain Tabel 3.15 Atribut Domain Entity MsBarang Entity : MsBarang Atribut KdBarang
Atribut Domain Harus
diawali
dengan
‘KB’,
karakter berupa angka dan harus
sisa 5
karakter NamaBarang
Diisi dengan karakter, maksimal 30 karakter
JenisBarang
Diisi dengan karakter, maksimal 30 karakter
Harga
Diisi dengan karakter, maksimal 20 karakter
Stok
Diisi dengan angka
88 Tabel 3.16 Atribut Domain Entity MsSupplier Entity : MsSupplier Atribut KdSupplier
Atribut Domain Harus
diawali
dengan
‘KS’,
sisa
karakter berupa angka dan harus
5
karakter NamaSupplier
Diisi dengan karakter, maksimal 30 karakter
AlamatSupplier
Diisi dengan karakter
TelpSupplier
Diisi karakter berupa angka, maksimal 20 karakter
EmailSupplier
Diisi dengan karakter, maksimal 50 karakter
Tabel 3.17 Atribut Domain Entity MsKaryawan Entity : MsKaryawan Atribut KdKaryawan
Atribut Domain Harus diawali dengan ‘KK’, sisa karakter berupa angka dan harus
5
karakter NamaKaryawan
Diisi dengan karakter, maksimal 30 karakter
89 AlamatKaryawan
Diisi dengan karakter
TelpKaryawan
Diisi karakter berupa angka, maksimal 20 karakter
EmailKaryawan
Diisi dengan karakter, maksimal 50 karakter
Jabatan
Diisi dengan karakter, maksimal 30 karakter
Username
Diisi dengan karakter, maksimal 20 karakter
Password
Diisi dengan karakter, maksimal 35 karakter
Tabel 3.18 Atribut Domain Entity MsCustomer Entity : MsCustomer Atribut
Atribut Domain
KdCust
Diisi dengan angka
NamaCust
Diisi dengan karakter, maksimal 30 karakter
AlamatCust
Diisi dengan karakter
KdPos
Diisi karakter berupa angka, maksimal 5 karakter
TelpCust
Diisi karakter berupa angka, maksimal
90 20 karakter EmailCust
Diisi dengan karakter, maksimal 50 karakter
NoRekCust
Diisi karakter berupa angka, maksimal 20 karakter
Username
Diisi dengan karakter, maksimal 20 karakter
Password
Diisi dengan karakter, maksimal 35 karakter
T
Tabel 3.19 Atribut Domain Entity TrPemesanan Entity : TrPemesanan Atribut KdPemesanan
Atribut Domain Harus
diawali
dengan
‘KPB
karakter berupa angka dan harus
sisa 6
karakter KdBarang
Harus
diawali
dengan
‘KB’,
karakter berupa angka dan harus
sisa 5
karakter HargaJual
Diisi dengan karakter, maksimal 20 karakter
Qty
Diisi dengan angka
91 TglPesan
Diisi dengan tanggal dan waktu dengan format yyyy-mm-dd hh:mm:ss
Tabel 3.20 Atribut Domain Entity TrPembayaran Entity : TrPembayaran Atribut KdPembayaran
Atribut Domain Harus diawali dengan ‘KBB’, sisa karakter berupa angka dan harus
6
karakter TglBayar
Diisi dengan tanggal dan waktu dengan format yyyy-mm-dd hh:mm:ss
Tabel 3.21 Atribut Domain Entity TrPengiriman Entity : TrPengiriman Atribut KdPengiriman
Atribut Domain Harus diawali dengan ‘KKB’, sisa karakter berupa angka dan harus
6
karakter TglKirim
Diisi dengan tanggal dan waktu dengan format yyyy-mm-dd hh:mm:ss
92 Tabel 3.22 Atribut Domain Entity TrPembelian Entity : TrPembelian Atribut KdPembelian
Atribut Domain Harus diawali dengan ‘KBI’, sisa karakter berupa angka dan harus
6
karakter KdBarang
Harus
diawali
dengan
‘KB’,
karakter berupa angka dan harus
sisa 5
karakter HargaBeli
Diisi dengan karakter, maksimal 20 karakter
Qty
Diisi dengan angka
TglBeli
Diisi dengan tanggal dan waktu dengan format yyyy-mm-dd hh:mm:ss
Tabel 3.23 Atribut Domain Entity TrReturPenjualan Entity : TrReturPenjualan Atribut KdRtrPenjualan
Atribut Domain Harus diawali dengan ‘KRJ’, sisa karakter berupa angka dan harus karakter
Qty
Diisi dengan angka
6
93 TglPengembalian
Diisi dengan tanggal dan waktu dengan format yyyy-mm-dd hh:mm:ss
Tabel 3.24 Atribut Domain Entity TrReturPembelian Entity : TrReturPembelian Atribut KdRtrPembelian
Atribut Domain Harus diawali dengan ‘KRB’, sisa karakter berupa angka dan harus
6
karakter Qty
Diisi dengan angka
TglPengembalian
Diisi dengan tanggal dan waktu dengan format yyyy-mm-dd hh:mm:ss
94 Tabel 3.25 Atribut Domain Entity CustomerTalk Entity : Customer Talk Atribut KdCust
Atribut Domain Harus
diawali
dengan
‘KC’,
karakter berupa angka dan harus
sisa 5
karakter Talk
Diisi dengan karakter
Tgl
Diisi dengan tanggal dan waktu dengan format yyyy-mm-dd hh:mm:ss
3.2.1.5 Menentukan Atribut Candidate Key dan Primary Key Setiap Entity Tabel 3.26 Identifikasi Candidate Key dan Primary Key Entity
Candidate Key
Primary Key
MsBarang
KdBarang
KdBarang
MsSupplier
KdSupplier
KdSupplier
MsKaryawan
KdKaryawan
KdKaryawan
MsCustomer
KdCust
KdCust
TrPemesanan
KdPemesanan
KdPemesanan
KdBarang
KdBarang
TrPembayaran
KdPembayaran
KdPembayaran
TrPengiriman
KdPengiriman
KdPengiriman
95 Entity TrPembelian
Candidate Key
Primary Key
KdPembelian
KdPembelian
KdBarang
KdBarang
TrReturPenjualan
KdRtrPenjualan
KdRtrPenjualan
TrReturPembelian
KdRtrPembelian
KdRtrPembelian
CustomerTalk
KdCust
KdCust
96
Gambar 3.5 ER Diagram Konseptual dengan Primary Key
97 3.2.1.6 Mempertimbangkan
Penggunaan
Konsep
Pemodelan
Enhanced Tidak terdapat entity dengan konsep enhanced modeling, seperti spesialisasi, generalisasi, penggabungan (aggregation) dan komposisi (composition).
3.2.1.7 Cek Redudansi Pada
langkah
ini,
dilakukan
pengecekan
untuk
menghilangkan redudansi. Terdapat 3 aktivitas pada langkah ini yaitu : 1. Mengecek relasi one-to-one (1:1) Tujuannya supaya tidak ada dua atau lebih tipe entitas yang merepresentasikan objek yang sama dalam perusahaan. Adapun 1:1 relationship (1:1) yang diuji antara lain :
Gambar 3.6 Hubungan one to one (1:1) antara TrPemesanan dan TrPembayaran
98
Gambar 3.7 Hubungan one to one (1:1) antara TrPembayaran dan TrPengiriman
Gambar 3.8 Hubungan one to one (1:1) antara TrPengiriman dan TrPemesanan
Dari hasil pengujian tersebut ternyata tidak ditemukan adanya dua atau lebih entitas yang merepresentasikan objek yang sama dalam perusahaan.
2. Menghilangkan relasi yang redundan. Pada relasi-relasi entity yang ada, tidak ada relasi yang redundan yang perlu dihilangkan.
3. Mempertimbangkan dimensi waktu. Tidak ada relasi yang berhubungan dengan dimensi waktu. Oleh karena itu langkah ini tidak dilakukan.
99 3.2.1.8 Validasi Model Konseptual Terhadap Transaksi User Validasi model data konseptual diuji untuk memastikan model konseptual lokal mendukung dan menjalankan transaksi yang dibutuhkan oleh pengguna.
100
Gambar 3.9 ER Diagram dengan Penambahan Panah Transaksi
101 Keterangan : (A)
Barang dimiliki transaksi pemesanan
(B)
Barang dimiliki transaksi pembelian
(C)
Supplier dimiliki transaksi pembelian barang
(D)
Karyawan melakukan transaksi pembelian
(E)
Karyawan melayani transaksi pemesanan
(F)
Karyawan melayani transaksi pembayaran
(G)
Karyawan melakukan transaksi pengiriman
(H)
Customer melakukan pemesanan barang
(I)
Customer memberikan saran dan kritik (Customer Talk)
(J)
Transaksi pemesanan dimiliki transaksi pembayaran
(K)
Transaksi pembayaran melakukan transaksi pengiriman
(L)
Pengiriman memiliki retur penjualan
(M) Pembelian memiliki retur pembelian
3.2.1.9 Melakukan Review Model Data Konseptual dengan User Model data konseptual merupakan representasi yang sebenarnya dari transaksi pengguna. Setelah ditinjau secara bersama-sama dengan penggunaannya, rancangan basis data konseptual yang dirancang sampai tahap ini dianggap mampu mewakili keinginan pengguna sistem di PT Cavenzi Indonesia.
102 3.2.2 Pemilihan DBMS Berikut ini memperlihatkan perbandingan DBMS MySQL Server 2000 standard edition dengan Oracle 9i standard edition : Tabel 3.27 Tabel perbandingan MySQL Server 2000 Standard Edition dengan Oracle Standard edition Kriteria Feasibility
Faktor
MySQL
Oracle 9i
Pemberat MySQL
Dari segi keamanan
Feasibility
mendukung user
oracle memang
menjelaskan sebaik
akan mudah
memberikan
apa sistem akan
mengoperasikan
fungsionalitas yang
bekerja dan juga
sistem ini.Karena
tinggi, tetapi di lain
penerimaan solusi
aplikasi PHP 4.0
pihak Oracle lebih
yang ditawarkan
berbasis web
umum digunakan
interface seperti ini
pada perusahaan
mungkin sangat
dengan basis data
familiar bagi user
yang sangat besar,
yang biasa surfing
sehingga perusahaan
di internet dan akan
dengan basis data
mengurangi
yang tidak besar akan
terjadinya human
lebih memilih DBMS
error
lain dan tidak
Operational
25%
mendukung TCP-C
103 Kriteria Feasibility
Faktor
MySQL
Oracle 9i
Pemberat Nilai : 85
Nilai : 80 aplikasi Secara teknis oracle
Technical Feasibility 25%
Membuat
menilai
web-based,
kematangan
teknologi,
tingkat
khususnya PHP 4.0 keahlian yang lebih mudah daripada SQL Server.
keahlian teknis yang
sangat
dibutuhkan
dikuasai
untuk
membutuhkan
oleh Namun
mengembangkan,
programmer, atau
mengoperasikan, dan
yang
mengelola DBMS
menguasainya
oracle
ini
mendukung semua
ingin platform, tidak hanya
baru
platform
yang
dapat menjadi ahli berbasis
windows
dalam singkat.
waktu saja.
Fitur
yang
MySQL mendukung
adalah
adalah DBMS yang PL/SQL,
dimana
digunakan PL/SQL
memiliki
mudah
dan dioperasikan.
fitur:
Indexes: B-Tree
indexes,
Bitmap indexes, Partitioned indexes, Function-based
104 Kriteria Feasibility
Faktor
MySQL
Oracle 9i
Pemberat indexes,
Domain
indexes Tables: BEFORE
trigger,
AFTER
trigger,
INSTEAD OF trigger Procedures : PL/SQL
statements,
Java methods, ThirdGeneration Language (3GL) routines Array : Mendukung Nilai : 80
Nilai : 85
Economic Feasibility 40%
MySQL
Berapa besar biaya
Processor : Pentium Edition dihargai US$
yang
dibutuhkan
166 MHz
untuk
menerapkan
solusi
Free Oracle 9i Enterprise
40.000 namun belum
Memory : 64 MB meliputi RAM
fitur-fitur
manajemen manapun
Hard disk Space: OLAP
dan
data
145 MB, 380 MB mining.
Bila
ingin
(typical)
menginstal fitur-fitur
105 Kriteria Feasibility
Faktor
MySQL
Oracle 9i
Dilihat dari
tersebut, maka harus
kebutuhan piranti
mengeluarkan biaya
lunak: Microsoft
tambahan lagi dan ada
Windows,
biaya tambahan untuk
Dreamweaver Mx
pelatihan karena
Pemberat
keahlian yang tinggi. Dilihat dari kebutuhan piranti
keras
(minimum): Processor : Pentium 166 MHz Memory : 128 MB RAM Hard disk Space: 140 MB
pada
system
Drive ditambah 4.5 GB
untuk
Oracle
Home Drive (NTFS) Dilihat dari kebutuhan piranti lunak: Oracle
106 Kriteria Feasibility
Faktor
MySQL
Oracle 9i
Pemberat 9i mendukung semua platform
termasuk
platform
berbasis
windows, AIX-Based system, Tru64
Compaq UNIX,
HP,
LINUX, Intel, Sun
Solaris,
dan
sebagainya Nilai : 90 Schedule Berapa
Feasibility 10% lama
yang
diperlukan
untuk
merancang
dan
Karena
Nilai : 80 tidak Butuh waktu sekitar
memerlukan keahlian
9-12
bulan
teknis mengimplementasikan
yang tinggi maka solusi
mengimplementasikan
solusi
solusi
diimplementasikan
dapat
dalam waktu 5-7 bulan
100%
untuk
Nilai : 75
Nilai : 70
84,75
80,25
107 Dari hasil analisis diatas diambil keputusan bahwa DBMS yang akan digunakan adalah MySQL. Hal ini berdasarkan dari nilai tertinggi MySQL memperoleh nilai 84,75. MySQL juga gratis dan gampang diimplementasikan. Karakteristik DBMS MySQL 5.0.20 yang digunakan dalam perancangan fisikal ini :
Tabel 3.28 Karakteristik MySQL 5.0.20 MySQL 5.0.20 Tipe DBMS
Transactional relational database server
Kebutuhan Piranti Keras
Processor : Pentium 166 MHz (minimum) Memory : 64 MB RAM (minimum) Hard disk Space: 145 MB (minimum), 380 MB (typical)
Kebutuhan Piranti Lunak
Membutuhkan software Apache2Triad versi 1.5.4 untuk Windows versi 2000 ke atas. Membutuhkan software updated phpMyAdmin to 2.7.0
Portability
Dapat berjalan di atas berbagai macam OS.
Open Source
Karena bersifat open source, maka tidak ada biaya license.
Multiuser
Dapat digunakan oleh banyak user pada waktu yang bersamaan.
108 MySQL 5.0.20 Mempunyai beberapa lapisan keamanan seperti
Security
level subnetmask, nama host, user permission, dan password ter-enkripsi. Scalability & Limits
Dapat menangani jumlah records lebih dari 50 juta dan jumlah tabel 60 ribu
Graphical user interface
Dapat menggunakan software sebagai antarmuka grafis dengan user, sehingga mudah digunakan.
3.2.3
Perancangan Basis Data Logikal 3.2.3.1 Menghilangkan Fitur yang Tidak Kompatibel dengan Model Relasional Berikut ini adalah tahap-tahap dalam menghilangkan fitur-fitur yang tidak kompatibel dengan model relasional 1. Menghilangkan Many-To-Many (*:*) Binary Relationship a.Relasi Many-To-Many (*:*) pada entitas TrPembelian dan MsBarang akan menghasilkan entitas baru yaitu entitas TrDetailPembelian
109
Gambar 3.10 Pemecahan menjadi dua relationship 1:* antara entity TrPembelian dan MsBarang
2. Hilangkan tipe relasi Many-To-Many (*:*) rekursif
Gambar 3.11 Relasi *:* rekursif MsBarang
110
Gambar 3.12 Relasi *:* rekursif MsKaryawan
3. Hilangkan atribut Multi-Value a. Atribute
Multi-Value
TeleponSupplier
pada
entitas
MsSupplier dihilangkan dengan menghasilkan sebuah entitas baru yaitu entitas TeleponSupplier
Gambar 3.13 Atribute Multi- Value TeleponSupplier
b.Atribute
Multi-Value
EmailSupplier
pada
entitas
MsSupplier dihilangkan dengan menghasilkan sebuah entitas baru yaitu entitas EmailSupplier
111
Gambar 3.14 Atribute Multi-Value EmailSupplier
c.Atribute
Multi-Value
TeleponKaryawan
pada
entitas
MsKaryawan dihilangkan dengan menghasilkan sebuah entitas baru yaitu entitas TeleponKaryawan
Gambar 3.15 Atribute Multi-Value TeleponKaryawan
d.Atribute
Multi-Value
EmailKaryawan
pada
entitas
MsKaryawan dihilangkan dengan menghasilkan sebuah entitas baru yaitu entitas EmailKaryawan
Gambar 3.16 Atribute Multi-Value EmailKaryawan
112 e.Atribute
Multi-Value
TeleponCustomer
pada
entitas
MsCustomer dihilangkan dengan menghasilkan sebuah entitas baru yaitu entitas TeleponCustomer
Gambar 3.17 Atribute Multi-Value TeleponCustomer
f.Atribute
Multi-Value
EmailCustomer
pada
entitas
MsCustomer dihilangkan dengan menghasilkan sebuah entitas baru yaitu entitas EmailCustomer
Gambar 3.18 Atribute Multi-Value EmailCustomer
113 g.Atribute
Multi-Value
NoRekCustomer
pada
entitas
MsCustomer dihilangkan dengan menghasilkan sebuah entitas baru yaitu entitas EmailCustomer
Gambar 3.19 Atribute Multi-Value NoRekeningCustomer
3.2.3.2 Membuat relasi untuk model data logikal lokal 1. Tipe entity kuat - MsJenisBarang (KdJenisBarang, JenisBarang) Primary Key : KdJenisBarang - MsSupplier (KdSupplier, NamaSupplier, AlamatSupplier) Primary Key : KdSupplier. - MsJenisKaryawan (KdJenisKaryawan, Jabatan) Primary Key : KdJenisKaryawan - MsCustomer (KdCust, NamaCust, AlamatCust, KdPos, Username, Password) Primary Key : KdCust - TrPemesanan (KdPemesanan, TglPesan) Primary Key : KdPemesanan - TrPembayaran (KdPembayaran, TglBayar) Primary Key : KdPembayaran
114 - TrPengiriman (KdPengiriman, TglKirim) Primary Key : KdPengiriman - TrPembelian (KdPembelian, KdBarang, HargaBeli, Qty, TglBeli) Primary Key : KdPembelian - TrReturPenjualan
(KdRtrPenjualan,
Qty,
TglPengembalian) Primary Key : KdRtrPenjualan - TrReturPembelian
(KdRtrPembelian,
Qty,
TglPengembalian) Primary Key : KdRtrPembelian
2. Tipe Entity lemah - MsBarang
(KdBarang,
KdJenisBarang,
NamaBarang,
JenisBarang, Harga, Stok) Primary Key : MsBarang Foreign Key : KdJenisBarang references MsJenisBarang - MsKaryawan
(KdKaryawan,
KdJenisKaryawan,
NamaKaryawan, AlamatKaryawan, Username, Password) Primary Key : KdKaryawan Foreign
Key
:
KdJenisKaryawan
references
MsJenisKaryawan - TrDetailPembelian
(KdPembelian,
Qty,
HargaBeli, KdBarang, NamaBarang, JenisBarang)
TglBeli,
115 Primary Key : KdPembelian, KdBarang Foreign Key : KdPembelian references TrPembelian KdBarang references MsBarang - TeleponSupplier (TelpSupplier, KdSupplier) Primary Key : TelpSupplier Foreign Key : KdSupplier references MsSupplier - EmailSupplier (EmailSupplier, KdSupplier) Primary Key : EmailSupplier Foreign Key : KdSupplier references MsSupplier - TeleponKaryawan (TelpKaryawan, KdKaryawan) Primary Key : TelpKaryawan Foreign Key : KdKaryawan references MsKaryawan - EmailKaryawan (EmailKaryawan, KdKaryawan) Primary Key : EmailKaryawan Foreign Key : KdKaryawan references MsKaryawan - TeleponCustomer (TelpCust, KdCust) Primary Key : TelpCust Foreign Key : KdCust references MsCustomer - EmailCustomer (EmailCust, KdCust) Primary Key : EmailCust Foreign Key : KdCust references MsCustomer - NoRekeningCustomer (NoRekCust, KdCust) Primary Key : NoRekCust
116 Foreign Key : KdCust references MsCustomer
3. Mengidentifikasi relasi One-To-Many (1:*) a. Hubungan MsSupplier dengan TrPembelian
b. Hubungan MsKaryawan dengan TrPembelian
c. Hubungan MsKaryawan dengan TrPemesanan
117 d. Hubungan MsKaryawan dengan TrPembayaran
e. Hubungan MsKaryawan dengan TrPengiriman
f. Hubungan MsCustomer dengan TrPemesanan
g. Hubungan MsCustomer dengan CustomerTalk
118 4. Mengidentifikasi relasi One-To-One (1:1) a. Hubungan TrPemesanan dengan TrPembayaran
b. Hubungan TrPembayaran dengan TrPengiriman
c. Hubungan TrPemesanan dengan TrPengiriman
119 d. Hubungan TrPengiriman dengan TrRtrPenjualan
e. Hubungan TrPembelian dengan TrRtrPembelian
5. Mengidentifikasi relasi Many-To-Many (*;*) a.
120 6. Mengidentifikasi atribut Multi-Value a. Hubungan KdSupplier dengan TeleponSupplier untuk model relasi Multi-Value mempunyai
b. Hubungan KdSupplier dengan EmailSupplier untuk model relasi Multi-Value mempunyai
c. Hubungan KdKaryawan dengan TeleponKaryawan untuk model relasi Multi-Value mempunyai
121 d. Hubungan KdKaryawan dengan EmailKaryawan untuk model relasi Multi-Value mempunyai
e. Hubungan KdCustomer dengan TeleponCustomer untuk model relasi Multi-Value mempunyai
f. Hubungan KdCustomer dengan EmailCustomer untuk model relasi Multi-Value mempunyai
122 3.2.3.3 Memvalidasi relasi menggunakan normalisasi •
MsBarang
(KdBarang,
KdJenisBarang,
NamaBarang,
JenisBarang, Harga, Stok) Primary Key : KdBarang Foreign Key : KdJenisBarang references MsJenisBarang (KdJenisBarang) 1NF : Sudah memenuhi 1NF karena mempunyai primary key dan tidak ada lagi repeating group. 2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency. 3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency Hasil validasi normalisasi : MsBarang
(KdBarang,
KdJenisBarang,
NamaBarang,
JenisBarang, Harga, Stok) Primary key : KdBarang Foreign Key : KdJenisBarang references MsJenisBarang (KdJenisBarang)
•
MsJenisBarang (KdJenisBarang, JenisBarang) Primary Key : KdJenisBarang 1NF : Sudah memenuhi 1NF karena mempunyai primary key dan tidak ada lagi repeating group.
123 2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency. 3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency Hasil validasi normalisasi : MsJenisBarang (KdJenisBarang, JenisBarang) Primary key : KdJenisBarang
•
MsSupplier (KdSupplier, NamaSupplier, AlamatSupplier) Primary Key : KdSupplier 1NF : Sudah memenuhi 1NF karena mempunyai primary key dan tidak ada lagi repeating group. 2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency. 3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency Hasil validasi normalisasi : MsSupplier (KdSupplier, NamaSupplier, AlamatSupplier) Primary key : KdSupplier
•
MsKaryawan
(KdKaryawan,
KdJenisKaryawan,
NamaKaryawan, AlamatKaryawan, Username, Password) Primary Key : KdKaryawan
124 Foreign Key : KdJenisKaryawan
references
MsJenisKaryawan (KdJenisKaryawan) 1NF : Sudah memenuhi 1NF karena mempunyai primary key dan tidak ada lagi repeating group. 2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency. 3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency Hasil validasi normalisasi : MsKaryawan (KdKaryawan, KdJenisKaryawan, NamaKaryawan, AlamatKaryawan, Username, Password) Primary key : KdKaryawan Foreign Key : KdJenisKaryawan
references
MsJenisKaryawan (KdJenisKaryawan)
•
MsJenisKaryawan (KdJenisKaryawan, Jabatan) Primary Key : KdJenisKaryawan 1NF : Sudah memenuhi 1NF karena mempunyai primary key dan tidak ada lagi repeating group. 2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency. 3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency Hasil validasi normalisasi :
125 MsJenisKaryawan (KdJenisKaryawan, Jabatan) Primary key : KdJenisKaryawan
•
MsCustomer (KdCust, NamaCust, AlamatCust, KdPos, Username,Password) Primary Key : KdCust 1NF : Sudah memenuhi 1NF karena mempunyai primary key dan tidak ada lagi repeating group. 2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency. 3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency Hasil validasi normalisasi : MsCustomer (KdCust, NamaCust, AlamatCust, KdPos, Username, Password) Primary key : KdCust
•
TrPemesanan (KdPemesanan, TglPesan) Primary Key : KdPemesanan 1NF : Sudah memenuhi 1NF karena mempunyai primary key dan tidak ada lagi repeating group. 2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency.
126 3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency Hasil validasi normalisasi : TrPemesanan (KdPemesanan, TglPesan) Primary Key : KdPemesanan
•
TrPembayaran (KdPembayaran, TglBayar) Primary Key : KdPembayaran 1NF : Sudah memenuhi 1NF karena mempunyai primary key dan tidak ada lagi repeating group. 2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency. 3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency Hasil validasi normalisasi : TrPembayaran (KdPembayaran, TglBayar) Primary Key : KdPembayaran
•
TrPengiriman (KdPengiriman, TglKirim) Primary Key : KdPengiriman 1NF : Sudah memenuhi 1NF karena mempunyai primary key dan tidak ada lagi repeating group.
127 2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency. 3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency Hasil validasi normalisasi : TrPengiriman (KdPengiriman, TglKirim) Primary Key : KdPengiriman
•
TrPembelian (KdPembelian, Qty, TglBeli, HargaBeli) Primary Key : KdPembelian 1NF : Sudah memenuhi 1NF karena mempunyai primary key dan tidak ada lagi repeating group. 2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency. 3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency Hasil validasi normalisasi : TrPembelian (KdPembelian, Qty, TglBeli, HargaBeli) Primary Key : KdPembelian
128 •
TrReturPenjualan (KdRtrPenjualan, Qty, TglPengembalian) Primary Key : KdRtrPenjualan 1NF : Sudah memenuhi 1NF karena mempunyai primary key dan tidak ada lagi repeating group. 2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency. 3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency Hasil validasi normalisasi : TrReturPenjualan (KdRtrPenjualan, Qty, TglPengembalian) Primary Key : KdRtrPenjualan
•
TrReturPembelian (KdRtrPembelian, Qty,TglPengembalian) Primary Key : KdRtrPembelian 1NF : Sudah memenuhi 1NF karena mempunyai primary key dan tidak ada lagi repeating group. 2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency. 3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency Hasil validasi normalisasi : TrReturPembelian (KdRtrPembelian, Qty,TglPengembalian) Primary Key : KdRtrPembelian
129 •
TrDetailPembelian (KdPembelian, Qty, TglBeli, HargaBeli, KdBarang, NamaBarang, JenisBarang) Primary Key : KdPembelian, KdBarang Foreign Key : KdPembelian
references
TrPembelian(KdPembelian) Foreign Key : KdBarang references MsBarang (KdBarang) 1NF : Sudah memenuhi 1NF karena mempunyai primary key dan tidak ada lagi repeating group. 2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency. 3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency Hasil validasi normalisasi : TrDetailPembelian (KdPembelian, Qty, TglBeli, HargaBeli, KdBarang, NamaBarang, JenisBarang) Primary Key : KdPembelian, KdBarang Foreign Key : KdPembelian
references
TrPembelian(KdPembelian) Foreign Key : KdBarang references MsBarang (KdBarang)
•
TeleponSupplier (TelpSupplier, KdSupplier) Primary Key : TelpSupplier
130 Foreign Key : KdSupplier
references
MsSupplier
(KdSupplier) 1NF : Sudah memenuhi 1NF karena mempunyai primary key dan tidak ada lagi repeating group. 2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency. 3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency Hasil validasi normalisasi : TeleponSupplier (TelpSupplier, KdSupplier) Primary Key : TelpSupplier Foreign Key : KdSupplier
references
MsSupplier
(KdSupplier)
•
EmailSupplier (EmailSupplier, KdSupplier) Primary Key : EmailSupplier Foreign Key : KdSupplier
references
MsSupplier
(KdSupplier) 1NF : Sudah memenuhi 1NF karena mempunyai primary key dan tidak ada lagi repeating group. 2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency. 3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency
131 Hasil validasi normalisasi : EmailSupplier (EmailSupplier, KdSupplier) Primary Key : EmailSupplier Foreign Key : KdSupplier
references
MsSupplier
(KdSupplier)
•
TeleponKaryawan (TelpKaryawan, KdKaryawan) Primary Key : TelpKaryawan Foreign Key : KdKaryawan
references
MsKaryawan
(KdKaryawan) 1NF : Sudah memenuhi 1NF karena mempunyai primary key dan tidak ada lagi repeating group. 2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency. 3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency Hasil validasi normalisasi : TeleponKaryawan (TelpKaryawan, KdKaryawan) Primary Key : TelpKaryawan Foreign Key : KdKaryawan (KdKaryawan)
references
MsKaryawan
132 •
EmailKaryawan (EmailKaryawan, KdKaryawan) Primary Key : EmailKaryawan Foreign Key : KdKaryawan
references
MsKaryawan
(KdKaryawan) 1NF : Sudah memenuhi 1NF karena mempunyai primary key dan tidak ada lagi repeating group. 2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency. 3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency Hasil validasi normalisasi : EmailKaryawan (EmailKaryawan, KdKaryawan) Primary Key : EmailKaryawan Foreign Key : KdKaryawan
references
MsKaryawan
(KdKaryawan)
•
TeleponCustomer (TelpCust, KdCust) Primary Key : TelpCust Foreign Key : KdCust references MsCustomer (KdCust) 1NF : Sudah memenuhi 1NF karena mempunyai primary key dan tidak ada lagi repeating group. 2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency.
133 3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency Hasil validasi normalisasi : TeleponCustomer (TelpCust, KdCust) Primary Key : TelpCust Foreign Key : KdCust references MsCustomer (KdCust)
•
EmailCustomer (EmailCust, KdCust) Primary Key : EmailCust Foreign Key : KdCust references MsCustomer (KdCust) 1NF : Sudah memenuhi 1NF karena mempunyai primary key dan tidak ada lagi repeating group. 2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency. 3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency Hasil validasi normalisasi : EmailCustomer (EmailCust, KdCust) Primary Key : EmailCust Foreign Key : KdCust references MsCustomer (KdCust)
134 •
NoRekeningCustomer (NoRekCust, KdCust) Primary Key : NoRekCust Foreign Key : KdCust references MsCustomer (KdCust) 1NF : Sudah memenuhi 1NF karena mempunyai primary key dan tidak ada lagi repeating group. 2NF : Sudah memenuhi 2NF karena tidak terdapat partial dependency. 3NF : Sudah memenuhi 3NF karena tidak terdapat transitive dependency Hasil validasi normalisasi : NoRekeningCustomer (NoRekCust, KdCust) Primary Key : NoRekCust Foreign Key : KdCust references MsCustomer (KdCust)
3.2.3.4 Validasi relasi pada transaksi user Semua transaksi pengguna seperti yang telah didefinisikan pada tahap konseptual diperiksa kembali terhadap relasi yang ada untuk memastikan relasi sudah benar dan dapat memenuhi transaksi-transaksi yang dibutuhkan pengguna.
135 3.2.3.5 Mendefinisikan integrity constraint •
Required data Beberapa atribut harus selalu berisi data yang sah sehingga atribut tersebut tidak diperbolehkan menerima null. Batasan seperti ini telah diidentifikasikan dalam kamus data atribut.
•
Attribute domain constrains Setiap
atribut
mempunyai
domain
yang
merupakan
sekumpulan nilai yang sah. Batasan ini telah diidentifiikasikan pada saat menentukan domain atribut untuk model data. •
Entity integrity Primary key dari sebuah entity tidak dapat menerima null. Batasan ini telah dipertimbangkan pada saat mengidentifikasi primary key pada kamus data entitas.
•
Referential integrity MsBarang (KdBarang, KdJenisBarang, NamaBarang, JenisBarang, Harga, Stok) Primary key : KdBarang Foreign Key KdJenisBarang references MsJenisBarang ON UPDATE CASCADE ON DELETE NO ACTION
MsSupplier (KdSupplier, NamaSupplier, AlamatSupplier) Primary key : KdSupplier
136 MsKaryawan
(KdKaryawan,
KdJenisKaryawan,
NamaKaryawan, AlamatKaryawan, Username, Password) Primary key : KdKaryawan Foreign Key KdJenisKaryawan references MsJenisKaryawan (KdJenisKaryawan) MsCustomer (KdCust, NamaCust, AlamatCust, KdPos, Username, Password) Primary Key : KdCust
TrPemesanan (KdPemesanan, TglPesan) Primary Key : KdPemesanan
TrPembayaran (KdPembayaran, TglBayar) Primary Key : KdPembayaran
TrPengiriman (KdPengiriman, TglKirim) Primary Key : KdPengiriman
TrPembelian (KdPembelian, Qty, TglBeli, HargaBeli) Primary Key : KdPembelian
TrReturPenjualan (KdRtrPenjualan, Qty, TglPengembalian) Primary Key : KdRtrPenjualan
137 TrReturPembelian
(KdRtrPembelian,
Qty,
TglPengembalian) Primary Key : KdRtrPembelian TrDetailPembelian (KdPembelian, Qty, TglBeli, HargaBeli, KdBarang, NamaBarang, JenisBarang) Primary Key : KdPembelian, KdBarang Foreign Key KdPembelian references TrPembelian (KdPembelian) Foreign Key KdBarang references MsBarang (KdBarang) ON UPDATE CASCADE ON DELETE NO ACTION
TeleponSupplier (TelpSupplier, KdSupplier) Primary Key : TelpSupplier Foreign
Key
KdSupplier
references
MsSupplier
(KdSupplier) ON UPDATE CASCADE ON DELETE NO ACTION
EmailSupplier (EmailSupplier, KdSupplier) Primary Key : EmailSupplier Foreign
Key
KdSupplier
references
MsSupplier
(KdSupplier) ON UPDATE CASCADE ON DELETE NO ACTION
138 TeleponKaryawan (TelpKaryawan, KdKaryawan) Primary Key : TelpKaryawan Foreign
Key
KdKaryawan
references
MsKaryawan
(KdKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION
EmailKaryawan (EmailKaryawan, KdKaryawan) Primary Key : EmailKaryawan Foreign
Key
KdKaryawan
references
MsKaryawan
(KdKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION
TeleponCustomer (TelpCust, KdCust) Primary Key : TelpCust Foreign Key KdCust references MsCustomer (KdCust) ON UPDATE CASCADE ON DELETE NO ACTION
EmailCustomer (EmailCust, KdCust) Primary Key : EmailCust Foreign Key KdCust references MsCustomer (KdCust) ON UPDATE CASCADE ON DELETE NO ACTION
139 NoRekeningCustomer (NoRekCust, KdCust) Primary Key : NoRekCust Foreign Key KdCust references MsCustomer (KdCust) ON UPDATE CASCADE ON DELETE NO ACTION
•
Enterprise constrains Merupakan aturan tambahan yang dibuat oleh user atau seorang database administrator dari basis data tersebut. Batasan ini telah diidentifikasikan dalam tabel atribut domain.
140 MsJenisBarang
MsBarang TrDetailPembelian
PK
KdJenisBarang
PK
JenisBarang
KdBarang
FK1
KdJenisBarang NamaBarang Harga Stok
PK
KdPembelian
FK1
KdBarang Qty TglBeli HargaBeli NamaBarang JenisBarang
TrPemesanan PK
KdPemesanan
FK1
KdCust TglPesan
TrReturPembelian PK
KdRtrPembelian
FK1
KdPembelian Qty TglPengembalian
TeleponCustomer PK
TelpCust
FK1
KdCust
CustomerTalk PK,FK1
EmailCustomer PK
EmailCust
FK1
KdCust
MsCustomer PK
Talk Tgl TrPembelian
NamaCust AlamatCust KdPos Username Password
NoRekeningCustomer PK
KdCust
KdCust
KdPembelian
FK1 FK2
KdBarang KdSupplier Qty TglBeli HargaBeli
NoRekCust
FK1
MsSupplier
KdCust PK
TeleponSupplier PK
TelpSupplier
FK1
KdSupplier
TeleponKaryawan
FK1
KdKaryawan EmailKaryawan
PK
EmailKaryawan
FK1
KdKaryawan
MsJenisKaryawan
PK
KdRtrPenjualan
FK1
KdPengiriman Qty TglPengembalian
NamaSupplier AlamatSupplier TrPengiriman
PK
EmailSupplier
FK1
KdSupplier
TeleponKaryawan PK
TrReturPenjualan
KdSupplier
TrPembayaran
EmailSupplier
PK
PK
PK
KdPembayaran
FK1
KdPemesanan TglBayar
PK
KdPengiriman
FK1
KdPembayaran TglKirim KdKaryawan
FK2
MsKaryawan PK
KdKaryawan
FK1
KdJenisKaryawan NamaKaryawan AlamatKaryawan Username Password
KdJenisKaryawan Jabatan
Gambar 3.20 : ERD LOGIKAL
141 3.2.4
Perancangan Basis Data Fisikal Pada perancangan basis data fisikal terdapat pembahasan perancangan Database Design Language (DBDL) untuk setiap entitas, perancangan constraint setiap entitas, analisis transaksi, pembuatan indeks, serta perancangan mekanisme keamanan data. 3.2.4.1 Menerjemahkan Model Data Logikal kedalam Target DBMS Bertujuan untuk membuat suatu skema basis data relasional dari model data logikal yang dapat diimplementasikan ke DBMS yang dituju. 3.2.4.1.1 Merancang Relasi Dasar Tujuan dari tahap ini adalah untuk merepresentasikan relasi dasar yang diidentifikasi pada model data logikal global ke dalam sasaran DBMS dengan menggunakan DBDL (Database Design Language). DBDL yang digunakan adalah sebagai berikut: 1. DBDL untuk MsBarang Domain KdBarang
: char, length 5
Domain KdJenisBarang : char, length 6 Domain NamaBarang
: variable length char string,
length 20 Domain Harga
: variable length char string,
length 20 Domain Stok
: int
142 MsBarang ( KdBarang
Kode Barang
NOT NULL,
KdJenisBarang Kode Jenis Barang
NOT NULL,
NamaBarang
Nama Barang
NOT NULL,
Harga
Harga
NOT NULL,
Stok
Persediaan Barang
NOT NULL
Primary Key KdBarang Foreign Key KdJenisBarang references MsBarang (KdJenisBarang) ON UPDATE CASCADE ON DELETE NO ACTION
2. DBDL untuk MsJenisBarang Domain KdJenisBarang : char, length 5 Domain JenisBarang
: variable length char string,
length 20
MsJenisBarang( KdJenisBarang Kode Jenis Barang
NOT NULL,
JenisBarang
NOT NULL
Jenis Barang
Primary Key KdJenisBarang
143 3.
DBDL untuk MsSupplier Domain KdSupplier
: char, length 5
Domain NamaSupplier : variable length char string, length 20 Domain AlamatSupplier
: text
MsSupplier ( KdSupplier
Kode Supplier
NOT NULL,
NamaSupplier Nama Supplier
NOT NULL,
AlamatSupplier Alamat Supplier
NOT NULL,
Primary Key KdSupplier
4. DBDL untuk TeleponSupplier Domain KdSupplier : char, length 5 Domain TelpSupplier : variable length char string, length 20
TeleponSupplier ( KdSupplier
Kode Supplier
NOT NULL,
TelpSupplier
Telepon Supplier
NOTNULL
Primary Key TelpSupplier Foreign Key KdSupplier references MsSupplier (KdSupplier)
ON
UPDATE
DELETE NO ACTION
CASCADE
ON
144 5. DBDL untuk EmailSupplier Domain EmailSupplier : variable length char string, length 50 Domain KdSupplier : char, length 5
EmailSupplier ( EmailSupplier Email Supplier
NOTNULL,
KdSupplier
NOT NULL
Kode Supplier
Primary Key EmailSupplier Foreign Key KdSupplier references MsSupplier (KdSupplier) ON UPDATE CASCADE ON DELETE NO ACTION
6.
DBDL untuk MsKaryawan Domain KdKaryawan : char, length 5 Domain KdJenisKaryawan : char, length 6 Domain NamaKaryawan
: variable length char
string, length 50 Domain AlamatKaryawan : text Domain Username
: variable length char string,
length 20 Domain Password string, length 35
: variable length char
145 MsKaryawan ( KdKaryawan
Kode Karyawan
NOT NULL,
KdJenisKaryawan Kode Jenis Karyawan NOT NULL, NamaKaryawan
Nama Karyawan
NOT NULL,
AlamatKaryawan Alamat Karyawan NOT NULL, Username
Username Karyawan NOT NULL,
Password
Password Karyawan NOT NULL
Primary Key KdKaryawan Foreign Key KdJenisKaryawan references MsJenisKaryawan (KdJenisKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION
7. DBDL untuk MsJenisKaryawan Domain KdJenisKaryawan : char, length 6 Domain JabatanKaryawan : variable length char string, length 30
MsJenisKaryawan ( KdJenisKaryawan Kode Jenis Karyawan
NOT
NULL, Jabatan
Jabatan Karyawan
Primary Key KdJenisKaryawan
NOT NULL
146 8. DBDL untuk TeleponKaryawan Domain TelpKaryawan : variable length char string, length 20 Domain KdKaryawan : char, length 5 TeleponKaryawan ( TelpKaryawan Telepon Karyawan
NOTNULL
KdKaryawan
NOT NULL,
Kode Karyawan
Primary Key TelpKaryawan Foreign Key KdKaryawan references MsKaryawan (KdKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION,
9. DBDL untuk EmailKaryawan Domain EmailKaryawan : variable length char string, length 50 Domain KdKaryawan : char, length 5
EmailKaryawan ( TelpKaryawan Email Karyawan
NOTNULL
KdKaryawan
NOT NULL,
Kode Karyawan
Primary Key EmailKaryawan Foreign Key KdKaryawan references MsKaryawan (KdKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION,
147 10. DBDL untuk MsCustomer Domain KdCust
: integer
Domain NamaCust
: variable length char string,
length 50 Domain AlamatCust : text Domain Kdpos
: char, length 5
Domain Username
: variable length char string,
length 20 Domain Password
: variable length char
string, length 35
MsCustomer ( KdCust
Kode Customer
NOT NULL,
NamaCust
Nama Customer
NOT NULL,
AlamatCust
Alamat Customer
NOT NULL,
Kode Pos dari Customer
NOT NULL,
Username
Username Customer
NOT NULL,
Password
Password Customer
NOT NULL
Kdpos
Primary Key KdCust
11. DBDL untuk TeleponCustomer Domain TelpCust : variable length char string, length 20 Domain KdCust : char, length 5
148 TeleponCustomer ( TelpCust
Telepon Customer
NOTNULL
KdCust
Kode Customer
NOT NULL,
Primary Key TelpCust Foreign Key KdCust references MsCustomer (KdCust) ON UPDATE CASCADE ON DELETE NO ACTION,
12. DBDL untuk EmailCustomer Domain EmailCust : variable length char string, length 50 Domain KdCust : char, length 5
EmailCustomer ( TelpCust
Email Customer
NOTNULL,
KdCust
Kode Customer
NOT NULL
Primary Key EmailCust Foreign Key KdCust references MsCustomer (KdCust) ON UPDATE CASCADE ON DELETE NO ACTION
13. DBDL untuk NoRekeningCustomer Domain NoRekCust : variable length char string, length 50
149 Domain KdCust : char, length 5
NoRekeningCustomer ( NoRekCust
Email Customer
NOTNULL,
KdCust
Kode Customer
NOT NULL
Primary Key NoRekCust Foreign Key KdCust references MsCustomer (KdCust) ON UPDATE CASCADE ON DELETE NO ACTION
14. DBDL untuk TrPemesanan Domain KdPemesanan : char, length 6 Domain KdCust : char, length 5 Domain TglPesan : datetime
TrPemesanan ( KdPemesanan
Kode Pemesanan
NOT NULL,
KdCust
Kode Customer
NOTNULL,
TglPesan
Tanggal pemesanan
NOT NULL
Primary Key KdPemesanan Foreign Key KdCust references MsCustomer (KdCust) ON UPDATE CASCADE ON DELETE NO ACTION );
150 15. DBDL untuk TrPembayaran Domain KdPembayaran : char, length 6 Domain KdPemesanan : char, length 6 Domain KdKaryawan : char, lenght 5 Domain TglBayar : datetime
TrPembayaran ( KdPembayaran Kode Pembayaran
NOT NULL,
KdPemesanan
Kode Pemesanan
NOTNULL,
KdKaryawan
Kode Karyawan
NOT NULL,
TglBayar
Tanggal pembayaran NOT NULL
Primary Key KdPembayaran Foreign
Key
TrPemesanan
KdPemesanan
(KdPemesanan)
ON
references UPDATE
CASCADE ON DELETE NO ACTION Foreign Key KdKaryawan references MsKaryawan (KdKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION );
16. DBDL untuk TrPengiriman Domain KdPengiriman : char, length 6 Domain KdPembayaran : char, length 6 Domain KdKaryawan : char, length 5
151 Domain TglKirim : datetime
TrPengiriman ( KdPengiriman Kode Pengiriman
NOT NULL,
KdPembayaran Kode Pembayaran
NOTNULL,
KdKaryawan
Kode Karyawan
NOT NULL,
TglKirim
Tanggal pembayaran NOT NULL
Primary Key KdPengiriman Foreign
Key
TrPembayaran
KdPembayaran
(KdPembayaran)
references
ON
UPDATE
CASCADE ON DELETE NO ACTION Foreign Key KdKaryawan references MsKaryawan (KdKaryawan) ON UPDATE CASCADE ON DELETE NO ACTION );
17. DBDL untuk TrPembelian Domain KdPembelian : char, length 6 Domain KdSupplier
: char, lenght 5
Domain TglBeli
: datetime
TrPembelian ( KdPembelian
Kode Pembelian
NOT NULL,
KdSupplier
Kode Supplier
NOT NULL,
TglBeli
Tanggal Pembelian
NOTNULL
152 Primary Key KdPembelian Foreign Key KdSupplier references MsSupplier (KdSupplier)
ON
UPDATE
CASCADE
ON
DELETE NO ACTION, );
18. DBDL untuk TrDetailPembelian Domain KdPembelian : char, length 6 Domain KdBarang
: char, length 6
Domain HargaBeli
: variable length char string,
length 20
Domain Qty
: integer
TrDetailPembelian ( KdPembelian
Kode Pembelian
NOT NULL,
KdBarang
Kode Barang
NOT NULL,
HargaBeli
Harga Beli Satuan
NOT NULL,
Qty
Banyaknya barang
NOT NULL,
Primary Key KdPembelian Foreign
Key
KdBarang
references
MsBrang
(KdBarang) ON UPDATE CASCADE ON DELETE NO ACTION );
153 19. DBDL untuk TrReturPenjualan Domain KdRtrPenjualan: char, length 6 Domain KdPenjualan
: char, length 6
Domain Qty
: integer
Domain TglPengembalian : Datetime
TrReturPenjualan ( KdRtrPenjualan Kode Retur Penjualan
NOT
NULL, KdPenjualan
Kode penjualan
NOT
Banyaknya barang
NOT
NULL, Qty NULL, TglPengembalian
Tanggal Pengembalian
NOT
NULL Primary Key KdRtrPenjualan Foreign Key KdPenjualan references TrlPenjualan (KdPenjualan)
ON
UPDATE
CASCADE
DELETE NO ACTION );
20. DBDL untuk TrReturPembelian Domain KdRtrPembelian Domain KdPembelian
: char, length 6
: char, length 6
ON
154 Domain Qty
: integer
Domain TglPengembalian : Datetime
TrReturPembelian ( KdRtrPembelian
Kode Retur Pembelian
NOT
NULL, KdPembelian
Kode Pembelian
NOT NULL,
Qty
Banyaknya barang
NOT NULL,
TglPengembalian
Tanggal Pengembalian
NOT
NULL Primary Key KdRtrPembelian Foreign Key KdPembelian references TrHeaderlPembelian (KdPembelian) ON UPDATE CASCADE ON DELETE NO ACTION );
21. DBDL untuk CustomerTalk Domain KdCust : char, length 6 Domain Talk : Text Domain Tgl : datetime CustomerTalk ( KdCust
Kode Customer
NOT NULL,
Talk
Komentar
NOT NULL,
Tgl
Nama barang
NOT NULL
155 Primary Key KdCust Foreign Key KdCust references MsCustomer (KdCust) ON UPDATE CASCADE ON DELETE NO ACTION );
3.2.4.1.2 Merancang Representasi Dari Data Turunan Tujuan dari langkah ini adalah untuk memutuskan bagaimana merepresentasikan suatu data turunan pada model data logikal global pada DBMS yang dipakai. Pada model data logikal global yang telah dibuat tidak terdapat data turunan, jadi langkah ini tidak dilakukan
3.2.4.1.3 Merancang Enterprise Constraints Berikut ini merupakan perancangan constraints yang terdapat dalam suatu entitas, antara lain: 1. Constraint untuk MsBarang CREATE TABLE MsBarang ( KdBarang
CHAR(5),
KdJenisBarang
VARCHAR(30),
NamaBarang
VARCHAR(30),
Harga
VARCHAR(20)
Stok
INT,
156 CONSTRAINT PK MsBarang PRIMARY KEY (KdBarang), CONSTRAINT FK MsBarang FOREIGN KEY (KdJenisBarang) REFERENCES MsJenisBarang (KdJenisBarang) ON UPDATE CASCADE ON DELETE NO ACTION )
2.
Constraint untuk MsJenisBarang CREATE TABLE MsJenisBarang ( KdJenisBarang
VARCHAR(30),
JenisBarang
VARCHAR(30),
CONSTRAINT PK MsjenisBarang PRIMARY KEY (KdJenisBarang), )
3.
Constraint untuk MsSupplier CREATE TABLE MsSupplier ( KdSupplier
CHAR(5),
NamaSupplier
VARCHAR(20),
AlamatSupplier
TEXT,
157 CONSTRAINT PK MsSupplier PRIMARY KEY (KdSupplier) )
4.
Constraint untuk TeleponSupplier CREATE TABLE TeleponSupplier ( TelpSupplier
VARCHAR(20),
KdSupplier
CHAR(5),
CONSTRAINT PK TeleponSupplier PRIMARY KEY (TelpSupplier) CONSTRAINT FK TeleponSupplier FOREIGN KEY (KdSupplier) REFERENCES MsSupplier (KdSupplier) ON UPDATE CASCADE ON DELETE NO ACTION )
5.
Constraint untuk EmailSupplier CREATE TABLE EmailSupplier ( EmailSupplier
VARCHAR(20),
KdSupplier
CHAR(5),
CONSTRAINT PK EmailSupplier PRIMARY KEY (EmailSupplier)
158 CONSTRAINT FK EmailSupplier FOREIGN KEY (KdSupplier) REFERENCES MsSupplier (KdSupplier) ON UPDATE CASCADE ON DELETE NO ACTION )
6.
Constraint untuk MsKaryawan CREATE TABLE MsKaryawan ( KdKaryawan
CHAR(5),
KdJenisKaryawan CHAR(6), NamaKaryawan
VARCHAR(20),
AlamatKaryawan
TEXT,
Username
VARCHAR (20),
Password
VARCHAR (10),
CONSTRAINT PK MsKaryawan PRIMARY KEY (KdKaryawan), CONSTRAINT FK MsKaryawan FOREIGN KEY
REFERENCES
MsJenisKaryawan(KdJenisKaryawan)
ON
UPDATE
NO
ACTION )
(KdJenisKaryawan)
CASCADE
ON
DELETE
159 7.
Constraint untuk MsJenisKaryawan CREATE TABLE MsJenisKaryawan ( KdJenisKaryawan CHAR(6), Jabatan CONSTRAINT
VARCHAR(30), PK
MsJenisKaryawan
PRIMARY KEY (KdJenisKaryawan) )
8.
Constraint untuk TeleponKaryawan CREATE TABLE TeleponKaryawan ( TelpKaryawan
VARCHAR(20),
KdKaryawan
CHAR(5),
CONSTRAINT
PK
TeleponKaryawan
PRIMARY KEY (TelpKaryawan) CONSTRAINT
FK
TeleponKaryawan
FOREIGN KEY (KdKaryawan) REFERENCES MsKaryawan
(KdKaryawan)
ON
UPDATE
CASCADE ON DELETE NO ACTION )
160 9.
Constraint untuk EmailKaryawan CREATE TABLE EmailKaryawan ( EmailKaryawan
VARCHAR(20),
KdKaryawan
CHAR(5),
CONSTRAINT PK EmailKaryawan PRIMARY KEY (EmailKaryawan) CONSTRAINT FK EmailKaryawan FOREIGN KEY
(KdKaryawan)
MsKaryawan
(KdKaryawan)
REFERENCES ON
UPDATE
CASCADE ON DELETE NO ACTION )
10.
Constraint untuk MsCustomer CREATE TABLE MsCustomer ( KdCust
INT(5),
KdJenisCust
CHAR(6),
NamaCust
VARCHAR(50),
AlamatCust
TEXT,
KdPos
VARCHAR(6),
Username
VARCHAR (20),
Password
VARCHAR (10),
161 CONSTRAINT PK MsCustomer PRIMARY KEY (KdCust), CONSTRAINT FK MsCustomer FOREIGN KEY
(KdJenisCust)
REFERENCES
MsJenisCustomer(KdJenisCust) ON UPDATE CASCADE ON DELETE NO ACTION )
11.
Constraint untuk TeleponCustomer CREATE TABLE TeleponCustomer ( TelpCust
VARCHAR(20),
KdCust
CHAR(5),
CONSTRAINT
PK
TeleponCustomer
PRIMARY KEY (TelpCust) CONSTRAINT FK TeleponCustomer FOREIGN KEY (KdCust) REFERENCES MsCustomer (KdCust)
ON
UPDATE
DELETE NO ACTION )
CASCADE
ON
162 12.
Constraint untuk EmailCustomer CREATE TABLE EmailCustomer ( EmailCust
VARCHAR(20),
KdCust
CHAR(5),
CONSTRAINT PK EmailCustomer PRIMARY KEY (EmailCust) CONSTRAINT FK EmailCustomer FOREIGN KEY (KdCust) REFERENCES MsCustomer (KdCust)
ON
UPDATE
CASCADE
ON
DELETE NO ACTION )
13.
Constraint untuk NoRekeningCustomer CREATE TABLE NoRekeningCustomer ( NoRekCust
VARCHAR(20),
KdCust
CHAR(5),
CONSTRAINT
PK
NoRekeningCustomer
PRIMARY KEY (NoRekCust) CONSTRAINT FOREIGN MsCustomer
FK
KEY
NoRekeningCustomer
(KdCust)
(KdCust)
REFERENCES ON
UPDATE
CASCADE ON DELETE NO ACTION
163 )
14.
Constraint untuk TrPemesanan CREATE TABLE TrPemesanan ( KdPemesanan
CHAR(6),
KdCust
CHAR(5),
TglPesan
DATETIME,
CONSTRAINT PK TrPemesanan PRIMARY KEY (KdPemesanan), CONSTRAINT FK TrPemesanan FOREIGN KEY (KdCust) REFERENCES MsCust(KdCust) ON UPDATE CASCADE ON DELETE NO ACTION )
15.
Constraint untuk TrPembayaran CREATE TABLE TrPembayaran ( KdPembayaran
CHAR(6),
KdPemesanan
CHAR(6),
KdKaryawan
CHAR(5),
TglBayar
DATETIME,
164 CONSTRAINT PK TrPembayaran PRIMARY KEY (KdPembayaran), CONSTRAINT FK TrPembayaran FOREIGN KEY
(KdPemesanan)
TrPemesanan(KdPemesanan)
REFERENCES ON
UPDATE
CASCADE ON DELETE NO ACTION, CONSTRAINT FK TrPembayaran FOREIGN KEY
(KdKaryawan)
MsKaryawan(KdKaryawan)
REFERENCES ON
UPDATE
CASCADE ON DELETE NO ACTION )
16.
Constraint untuk TrPengiriman CREATE TABLE TrPengiriman ( KdPengiriman
CHAR(6),
KdPembayaran
CHAR(6),
KdKaryawan
CHAR(5),
TglKirim
DATETIME,
CONSTRAINT PK TrPengiriman PRIMARY KEY (KdPengiriman), CONSTRAINT FK TrPengiriman FOREIGN KEY
(KdPembayaran)
REFERENCES
165 TrPembayaran (KdPembayaran) ON UPDATE CASCADE ON DELETE NO ACTION, CONSTRAINT FK TrPengiriman FOREIGN KEY
(KdKaryawan)
MsKaryawan
REFERENCES
(KdKaryawan)
ON
UPDATE
CASCADE ON DELETE NO ACTION )
17.
Constraint untuk TrPembelian CREATE TABLE TrPembelian ( KdPembelian
CHAR(6),
KdSupplier
CHAR(5),
TglBeli
DATETIME,
CONSTRAINT PK TrPembelian PRIMARY KEY (KdPembelian), CONSTRAINT FK TrPembelian FOREIGN KEY
(KdSupplier)
MsSupplier(KdSupplier)
REFERENCES ON
UPDATE
CASCADE ON DELETE NO ACTION )
166 18.
Constraint untuk TrDetailPembelian CREATE TABLE TrDetailPembelian ( KdPembelian
CHAR(6),
KdBarang
CHAR(5),
HargaBeli
VARCHAR(20),
Qty
INT(8)
CONSTRAINT PK TrPembelian PRIMARY KEY (KdPembelian,KdBarang), CONSTRAINT
FK
TrDetailPembelian
FOREIGN KEY (KdPembelian) REFERENCES TrPembelian(KdPembelian)
ON
UPDATE
CASCADE ON DELETE NO ACTION, CONSTRAINT FK TrPembelian FOREIGN KEY
(KdBarang)
REFERENCES
MsBarang(KdBarang) ON UPDATE CASCADE ON DELETE NO ACTION )
19.
Constraint untuk TrReturPenjualan CREATE TABLE TrReturPenjualan ( KdRtrPenjualan
CHAR(6),
KdPenjualan
CHAR(6),
167 Qty
INT,
TglPengembalian
DATETIME,
CONSTRAINT
PK
TrReturPenjualan
PRIMARY KEY (KdRtrPenjualan), CONSTRAINT FK TrReturPenjualan FOREIGN KEY (KdPenjualan) REFERENCES TrHeaderPenjualan(KdPenjualan) ON UPDATE CASCADE ON DELETE NO ACTION )
20.
Constraint untuk TrReturPembelian CREATE TABLE TrReturPembelian ( KdRtrPembelian
CHAR(6),
KdPembelian
CHAR(6),
Qty
INT,
TglPengembalian
DATETIME,
CONSTRAINT
PK
TrReturPembelian
PRIMARY KEY (KdRtrPembelian), CONSTRAINT
FK
TrReturPembelian
FOREIGN KEY (KdPembelian) REFERENCES TrHeaderPembelian(KdPembelian)
ON
168 UPDATE
CASCADE
ON
DELETE
NO
ACTION )
21.
Constraint untuk CustomerTalk CREATE TABLE CustomerTalk ( KdCust
CHAR(6),
Talk
TEXT,
Tgl
DATETIME,
CONSTRAINT PK CustomerTalk PRIMARY KEY (KdCust), CONSTRAINT FK CustomerTalk FOREIGN KEY
(KdCust)
REFERENCES
MsCustomer(KdCust) ON UPDATE CASCADE ON DELETE NO ACTION, )
3.2.4.2 Merancang Representasi Fisikal 3.2.4.2.1 Menganalisis Transaksi Data Entry A. Memasukan, mengubah dan melihat data barang B. Memasukan dan melihat data supplier C. Memasukan data penambahan karyawan baru
169 D. Memasukan, mengubah dan melihat data jabatan. E. Pelanggan melakukan pendaftaran. F. Pelanggan mengupdate informasi dirinya. G. Pelanggan melakukan pemesan barang. H. Melihat pemesanan yang dilakukan oleh pelanggan. I. Memasukan,
mengubah
dan
melihat
data
pembayaran berdasarkan pembayaran transfer yang dilakukan oleh pelanggan J. Pelanggan melihat status pemesanan, pembayaran dan pengiriman K. Memasukan dan melihat data karyawan yang memproses transaksi. L. Memasukan, mengubah dan melihat data pengiriman barang ke pelanggan M. Memasukan, melihat dan mengubah
data retur
penjualan dan retur pembelian. N. Pelanggan dapat melakukan komplain O. Melihat komplain dari pelanggan.
Tabel 3.29 Cross-referencing transactions and relations (A) – (D) Transaksi/Relasi MsBarang MsJenisBarang MsSupplier TeleponSupplier
(A) (B) I R U D I R U D I x x x x x x x x x x
(C) R U D I
(D) R U D
170 EmailSupplier x x MsKaryawan MsJenisKaryawan TeleponKaryawan EmailKaryawan NoRekCustomer MsCustomer TeleponCustomer EmailCustomer NoRekCustomer TrPemesanan TrPembayaran TrPengiriman TrPembelian TrDetailPembelian TrReturPenjualan TrReturPembelian CustomerTalk I = Insert, R = Read, U = Update, D = Delete
x x x x x x
x x
x x
x x
Tabel 3.30 Cross-referencing transactions and relations (E) – (H)
I
(E) R U D I
x x x x
x x x x
Transaksi/Relasi MsBarang MsJenisBarang MsSupplier TeleponSupplier EmailSupplier MsKaryawan MsJenisKaryawan TeleponKaryawan EmailKaryawan MsCustomer TeleponCustomer EmailCustomer NoRekCustomer TrPemesanan TrPembayaran TrPengiriman TrPembelian TrDetailPembelian TrReturPenjualan
(F) R U D I
x x x x
x x x x x
(G) R U D I x x
(H) R U D x x
x x x x x
171 TrReturPembelian CustomerTalk
Tabel 3.31 Cross-referencing transactions and relations (I) – (L) Transaksi/Relasi
(I) R U D I
(J) R U D I
I MsBarang MsJenisBarang MsSupplier TeleponSupplier EmailSupplier MsKaryawan MsJenisKaryawan TeleponKaryawan EmailKaryawan MsCustomer x TeleponCustomer x EmailCustomer x NoRekCustomer x TrPemesanan x TrPembayaran x x x x TrPengiriman x TrPembelian TrDetailPembelian TrReturPenjualan TrReturPembelian CustomerTalk I = Insert, R = Read, U = Update, D = Delete
(K) R U D I
x x x x
x x x x x x
Tabel 3.32 Cross-referencing transactions and relations (M) – (O) Transaksi/Relasi MsBarang MsJenisBarang MsSupplier TeleponSupplier EmailSupplier MsKaryawan MsJenisKaryawan TeleponKaryawan
(M) I R U D I x x x x
(N) R U D I
(L) R U D
(O) R U D
x x
x
172 EmailKaryawan MsCustomer TeleponCustomer EmailCustomer NoRekCustomer TrPemesanan TrPembayaran TrPengiriman TrPembelian TrDetailPembelian TrReturPenjualan x x x TrReturPembelian x x x CustomerTalk x x I = Insert, R = Read, U = Update, D = Delete
x x x x
x
3.2.4.2.2 Memilih Organisasi File Karena DBMS yang digunakan dalam sistem yang akan dibuat adalah MySQL, maka organisasi file yang digunakan adalah MyISAM. MyISAM menggunakan logika B-tree, yang hampir sama dengan B+-tree, hanya saja pencarian kata kunci hanya terjadi sekali pada indeks.
3.2.4.2.3 Memilih Indeks Tujuan dari langkah ini adalah untuk meningkatkan performa dari sistem. Berikut ini adalah indeks yang digunakan :
173 Tabel 3.33 Tabel Indeks Entity MsBarang
Nama Indeks pk_ms_barang
Indeks Key KdBarang
Deskripsi Indeks Clustered, Unique, primary key located on PRIMARY
MsJenisBarang
idx_nama_barang
NamaBarang
Non-Clustered
pk_ms_jenis_barang
KdJenisBarang
Clustered, Unique, primary key located on PRIMARY
MsSupplier
idx_jenis_barang
JenisBarang
Non-Clustered
pk_ms_supplier
KdSupplier
Clustered, Unique, primary key located on PRIMARY
idx_nama_supplier
NamaSupplier
Non-Clustered
174 Entity TeleponSupplier
Nama Indeks pk_telepon_supplier
Indeks Key TelpSupplier
Deskripsi Indeks Clustered, Unique, primary key located on PRIMARY
EmailSupplier
pk_email_supplier
EmailSupplier
Clustered, Unique, primary key located on PRIMARY
MsKaryawan
pk_ms_karyawan
KdKaryawan
Clustered, Unique, primary key located on PRIMARY
MsJenisKaryawan
idx_nama_karyawan
NamaKaryawan
Non-Clustered
pk_jenis_karyawan
KdJenisKaryawan
Clustered, Unique, primary key located on PRIMARY
idx_jabatan_karyawan
JabatanKaryawan
Non-Clustered
175 Entity TeleponKaryawan
Nama Indeks pk_telepon_karyawan
Indeks Key TelpKaryawan
Deskripsi Indeks Clustered, Unique, primary key located on PRIMARY
EmailKaryawan
pk_email_karyawan
EmailKaryawan
Clustered, Unique, primary key located on PRIMARY
MsCustomer
pk_ms_cust
KdCust
Clustered, Unique, primary key located on PRIMARY
TeleponCustomer
idx_nama_cust
NamaCust
Non-Clustered
pk_telepon_customer
TelpCust
Clustered, Unique, primary key located on PRIMARY
176 Entity EmailCustomer
Nama Indeks pk_email_customer
Indeks Key EmailCust
Deskripsi Indeks Clustered, Unique, primary key located on PRIMARY
NoRekening
pk_no_rekening_custo
Customer
mer
NoRekCust
Clustered, Unique, primary key located on PRIMARY
TrPemesanan
pk_pemesanan
KdPemesanan
Clustered, Unique, primary key located on PRIMARY
TrPembayaran
idx_tgl_pesan
TglPesan
Non-Clustered
pk_pembayaran
KdPembayaran
Clustered, Unique, primary key located on PRIMARY
idx_tgl_bayar
TglBayar
Non-Clustered
177 Entity TrPengiriman
Nama Indeks pk_pengiriman
Indeks Key KdPengiriman
Deskripsi Indeks Clustered, Unique, primary key located on PRIMARY
TrPembelian
idx_tgl_kirim
TglKirim
Non-Clustered
pk_pembelian
KdPembelian
Clustered, Unique, primary key located on PRIMARY
TrDetailPembelian
idx_tgl_beli
TglBeli
Non-Clustered
pk_detail_pembelian
KdPembelian
Clustered, Unique, primary key located on PRIMARY
idx_kd_barang_detail
KdBarang
Non-Clustered
KdRtrPenjualan
Clustered,
_pembelian TrReturPenjualan
pk_rtr_penjualan
Unique, primary key located on PRIMARY idx_tgl_pengembalian
TglPengembalian
Non-Clustered
178 Entity
Nama Indeks
TrReturPembelian
pk_rtr_penjualan
Indeks Key KdRtrPembelian
Deskripsi Indeks Clustered, Unique, primary key located on PRIMARY
CustomerTalk
idx_tgl_pengembalian
TglPengembalian
Non-Clustered
pk_customer_talk
KdCust
Clustered, Unique, primary key located on PRIMARY
idx_tgl
Tgl
Non-Clustered
3.2.4.2.4Memperkirakan Kapasitas Disk yang Dibutuhkan Untuk Menyimpan Basis Data
Tabel 3.34 Perkiraan Kapasitas MsBarang 1. Tabel MsBarang Tabel / Entiti
Atribut
Tipe Data
Ukuran (Byte)
MsBarang
KdBarang
Char
5
KdJenisBarang
Char
6
NamaBarang
Varchar
30
Harga
Varchar
20
179 Stok
Int
Jumlah
8 69
Kapasitas dari table MsBarang adalah 69 bytes Diperkirakan dalam satu bulan terjadi 80 transaksi Dalam satu tahun pertumbuhan dari table ini adalah 12 x 80 x 69 = 66.240 bytes
Tabel 3.35 Perkiraan Kapasitas MsJenisBarang 2. Tabel MsJenisBarang Tabel / Entiti
Atribut
Tipe Data
Ukuran (Byte)
MsJenisBarang
KdJenisBarang
Char
6
JenisBarang
Varchar
30
Jumlah
36 Kapasitas dari table MsBarang adalah 36 bytes Diperkirakan dalam satu bulan terjadi 80 transaksi Dalam satu tahun pertumbuhan dari table ini adalah 12 x 80 x 36 = 34.560 bytes
180 Tabel 3.36 Perkiraan Kapasitas MsSupplier 3. Tabel MsSupplier Tabel / Entiti
Atribut
Tipe Data
Ukuran (Byte)
MsSupplier
KdSupplier
Char
5
NamaSupplier
Varchar
20
AlamatSupplier
Text
50
Jumlah
75 Kapasitas dari table MsSupplier adalah 75 bytes Diperkirakan dalam satu bulan terjadi 4 transaksi Dalam satu tahun pertumbuhan dari table ini adalah 12 x 4 x 75 = 3.600 bytes
Tabel 3.37 Perkiraan Kapasitas TeleponSupplier 4. Tabel TeleponSupplier Tabel / Entiti
Atribut
Tipe Data
Ukuran (Byte)
TeleponSupplier
KdSupplier
Char
5
TelpSupplier
Varchar
20
Jumlah
25 Kapasitas dari table TeleponSupplier adalah 25 bytes Diperkirakan dalam satu bulan terjadi 4 transaksi Dalam satu tahun pertumbuhan dari table ini adalah 12 x 4 x 25 =
181 1.200 bytes
Tabel 3.38 Perkiraan Kapasitas EmailSupplier 5. Tabel EmailSupplier Tabel / Entiti
Atribut
Tipe Data
Ukuran (Byte)
EmailSupplier
KdSupplier
Char
5
EmailSupplier
Varchar
50
Jumlah
55 Kapasitas dari table EmailSupplier adalah 55 bytes Diperkirakan dalam satu bulan terjadi 4 transaksi Dalam satu tahun pertumbuhan dari table ini adalah 12 x 4 x 55 = 2.640 bytes
Tabel 3.39 Perkiraan Kapasitas MsKaryawan 6. Tabel MsKaryawan Tabel / Entiti
Atribut
Tipe Data
Ukuran (Byte)
MsKaryawan
KdKaryawan
Char
5
KdJenisKaryawan
Char
6
NamaKaryawan
Varchar
50
AlamatKaryawan
Text
50
Username
Varchar
20
182 Password
Varchar
35
Jumlah
166 Kapasitas dari table MsKaryawan adalah 166 bytes Diperkirakan dalam satu bulan terjadi 4 transaksi Dalam satu tahun pertumbuhan dari table ini adalah 12 x 4 x 141 = 7.968 bytes
Tabel 3.40 Perkiraan Kapasitas MsJenisKaryawan 7. Tabel MsJenisKaryawan Tabel / Entiti
Atribut
Tipe Data
Ukuran (Byte)
MsJenisKaryawan
KdJenisKaryawan
Char
6
Jabatan
Varchar
30
Jumlah
36 Kapasitas dari table MsJenisKaryawan adalah 36 bytes Diperkirakan dalam satu bulan terjadi 8 transaksi Dalam satu tahun pertumbuhan dari table ini adalah 12 x 8 x 36 = 3.456 bytes
183 Tabel 3.41 Perkiraan Kapasitas TeleponKaryawan 8. Tabel TeleponKaryawan Tabel / Entiti
Atribut
Tipe Data
Ukuran (Byte)
TeleponKaryawan
KdKaryawan
Char
5
TelpKaryawan
Varchar
20
Jumlah
25 Kapasitas dari table TeleponKaryawan adalah 25 bytes Diperkirakan dalam satu bulan terjadi 4 transaksi Dalam satu tahun pertumbuhan dari table ini adalah 12 x 4 x 25 = 1.200 bytes
Tabel 3.42 Perkiraan Kapasitas EmailKaryawan 9. Tabel EmailKaryawan Tabel / Entiti
Atribut
Tipe Data
Ukuran (Byte)
EmailKaryawan
KdKaryawan
Char
5
EmailKaryawan
Varchar
50
Jumlah
55 Kapasitas dari table EmailKaryawan adalah 55 bytes Diperkirakan dalam satu bulan terjadi 4 transaksi Dalam satu tahun pertumbuhan dari table ini adalah 12 x 4 x 55 = 2.640 bytes
184 Tabel 3.43 Perkiraan Kapasitas MsCustomer 10. Tabel MsCustomer Tabel / Entiti
Atribut
Tipe Data
Ukuran (Byte)
MsCustomer
KdCust
Int
5
KdJenisCust
Char
6
NamaCust
Varchar
50
AlamatCust
Text
50
KdPos
Char
5
NoRekCust
Varchar
20
Username
Varchar
20
Password
Varchar
35
Jumlah
191 Kapasitas dari table MsCustomer adalah 191 bytes Diperkirakan dalam satu bulan terjadi 80 transaksi Dalam satu tahun pertumbuhan dari table ini adalah 12 x 80 x 191 = 183.360 bytes
Tabel 3.44 Perkiraan Kapasitas TeleponCustomer 11. Tabel TeleponCustomer Tabel / Entiti
Atribut
Tipe Data
Ukuran (Byte)
TeleponCustomer
KdCust
Char
5
185 TelpCust
Varchar
20
Jumlah
25 Kapasitas dari table TeleponCustomer adalah 25 bytes Diperkirakan dalam satu bulan terjadi 80 transaksi Dalam satu tahun pertumbuhan dari table ini adalah 12 x 80 x 25 = 2.400 bytes
Tabel 3.45 Perkiraan Kapasitas EmailCustomer 12. Tabel EmailCustomer Tabel / Entiti
Atribut
Tipe Data
Ukuran (Byte)
EmailCustomer
KdCust
Char
5
EmailCust
Varchar
50
Jumlah
55 Kapasitas dari table EmailCustomer adalah 55 bytes Diperkirakan dalam satu bulan terjadi 80 transaksi Dalam satu tahun pertumbuhan dari table ini adalah 12 x 80 x 55 = 52.800 bytes
186 Tabel 3.46 Perkiraan Kapasitas NoRekeningCustomer 13. Tabel NoRekeningCustomer Tabel / Entiti
Atribut
Tipe Data
Ukuran (Byte)
NoRekeningCustomer
KdCust
Char
5
NoRekCust
Varchar
20
Jumlah
25 Kapasitas dari table EmailCustomer adalah 25 bytes Diperkirakan dalam satu bulan terjadi 80 transaksi Dalam satu tahun pertumbuhan dari table ini adalah 12 x 80 x 25 = 24.000 bytes
Tabel 3.47 Perkiraan Kapasitas TrPemesanan 14. Tabel TrPemesanan Tabel / Entiti
Atribut
Tipe Data
Ukuran (Byte)
TrPemesanan
KdPemesanan
Char
6
KdCust
Int
5
TglPesan
Datetime
8
Jumlah
19 Kapasitas dari table TrPemesanan adalah 19 bytes Diperkirakan dalam satu bulan terjadi 95 transaksi Dalam satu tahun pertumbuhan dari table ini adalah 12 x 95 x 19
187 = 21.660 bytes
Tabel 3.48 Perkiraan Kapasitas TrPembayaran 15. Tabel TrPembayaran Tabel / Entiti
Atribut
Tipe Data
Ukuran (Byte)
TrPembayaran
KdPembayaran
Char
6
KdPemesanan
Char
6
KdKaryawan
Char
5
TglBayar
Datetime
8
Jumlah
25 Kapasitas dari table TrPembayaran adalah 25 bytes Diperkirakan dalam satu bulan terjadi 95 transaksi Dalam satu tahun pertumbuhan dari table ini adalah 12 x 95 x 25 = 28.500 bytes
Tabel 3.49 Perkiraan Kapasitas TrPengiriman 16. Tabel TrPengiriman Tabel / Entiti
Atribut
Tipe Data
Ukuran (Byte)
TrPengiriman
KdPengiriman
Char
6
KdPembayaran
Char
6
KdKaryawan
Char
5
188 TglKirim
Datetime
Jumlah
8 25
Kapasitas dari table TrPengiriman adalah 25 bytes Diperkirakan dalam satu bulan terjadi 95 transaksi Dalam satu tahun pertumbuhan dari table ini adalah 12 x 95 x 25 = 28.500 bytes
Tabel 3.50 Perkiraan Kapasitas TrPembelian 17. Tabel TrPembelian Tabel / Entiti
Atribut
Tipe Data
Ukuran (Byte)
TrPembelian
KdPembelian
Char
6
KdSupplier
Char
5
TglBeli
Datetime
8
Jumlah
19 Kapasitas dari table TrPembelian adalah 19 bytes Diperkirakan dalam satu bulan terjadi 40 transaksi Dalam satu tahun pertumbuhan dari table ini adalah 12 x 40 x 19 = 9.120 bytes
189 Tabel 3.51 Perkiraan Kapasitas TrDetailPembelian 18. Tabel TrDetailPembelian Tabel / Entiti
Atribut
Tipe Data
Ukuran (Byte)
TrDetailPembelian
KdPembelian
Char
6
KdBarang
Char
5
HargaBeli
Varchar
20
Qty
Int
4
Jumlah
35 Kapasitas dari table TrDetailPembelian adalah 35 bytes Diperkirakan dalam satu bulan terjadi 40 transaksi Dalam satu tahun pertumbuhan dari table ini adalah 12 x 40 x 35 = 16.800 bytes
Tabel 3.52 Perkiraan Kapasitas TrReturPenjualan 19. Tabel TrReturPenjualan Tabel / Entiti
Atribut
Tipe Data
Ukuran (Byte)
TrReturPenjualan
Jumlah
KdRtrPenjualan
Char
6
KdPenjualan
Char
6
Qty
Int
4
TglPengembalian
Datetime
8 24
190 Kapasitas dari table TrReturPenjualan adalah 24 bytes Diperkirakan dalam satu bulan terjadi 3 transaksi Dalam satu tahun pertumbuhan dari table ini adalah 12 x 3 x 24 = 864 bytes
Tabel 3.53 Perkiraan Kapasitas TrReturPembelian 20. Tabel TrReturPembelian Tabel / Entiti
Atribut
Tipe Data
Ukuran (Byte)
TrReturPembelian
KdRtrPembelian
Char
6
KdPembelian
Char
6
Qty
Int
4
TglPengembalian
Datetime
8
Jumlah
24 Kapasitas dari table TrReturPembelian adalah 24 bytes Diperkirakan dalam satu bulan terjadi 5 transaksi Dalam satu tahun pertumbuhan dari table ini adalah 12 x 5 x 24 = 1.440 bytes
191 Tabel 3.54 Perkiraan Kapasitas CustomerTalk 21. CustomerTalk Tabel / Entiti
Atribut
Tipe Data
Ukuran (Byte)
CustomerTalk
KdCust
Int
5
Talk
Text
Tgl
Datetime
100
Jumlah
8 113
Kapasitas dari table CustomerTalk adalah 113 bytes Diperkirakan dalam satu bulan terjadi 10 transaksi Dalam satu tahun pertumbuhan dari table ini adalah 12 x 10 x 113 = 13.560 bytes
Tabel 3.55 Perkiraan Total Disk Space Total Disk Space Tabel /Entiti
Kapasitas yang diperlukan dalam 1 tahun (bytes)
MsBarang
66.240
MsJenisBarang
34.560
MsSupplier
3.600
TeleponSupplier
1.200
EmailSupplier
2.640
192 Tabel /Entiti
Kapasitas yang diperlukan dalam 1 tahun (bytes)
MsKaryawan
7.968
MsJenisKaryawan
3.456
TeleponKaryawan
1.200
EmailKaryawan
2.640
MsCustomer
183.360
TeleponCustomer
2.400
EmailCustomer
52.800
NoRekCustomer
24.000
TrPemesanan
21.660
TrPembayaran
28.500
TrPengiriman
28.500
TrPembelian
9.120
TrDetailPembelian
16.800
TrReturPenjualan
864
TrReturPembelian
1.440
CustomerTalk
13.560
Total space yang dibutuhkan
506.508 Bytes
dalam 1 tahun Total space yang dibutuhkan dalam 5 tahun
2.532.540 Bytes
193 3.2.4.3 Perancangan User View View 1. View MsBarang --View untuk menampilkan Data Barang create view view_MsBarang as (select KdBarang, KdJenisBarang, NamaBarang, Harga, Stok from MsBarang)
2. View MsSupplier --View untuk menampilkan data supplier create view view_MsSupplier as (select
KdSupplier,
NamaSupplier,
AlamatSupplier,
TelpSupplier, EmailSupplier from MsSupplier)
3. View TeleponSupplier --View untuk menampilkan Telepon supplier create view view_TeleponSupplier as (select TelpSupplier, KdSupplier from TeleponSupplier)
4. View EmailSupplier --View untuk menampilkan Email supplier
194 create view view_EmailSupplier as (select EmailSupplier, KdSupplier from EmailSupplier)
5. View MsKaryawan --View untuk menampilkan Data Karyawan create view view_MsKaryawan as (select a.KdKaryawan, b.KdJenisKaryawan, NamaKaryawan, AlamatKaryawan, Username, Password from MsKaryawan a inner join MsJenisKaryawan b on a.KdJenisKaryawan = b.KdJenisKaryawan)
6. View TeleponKaryawan --View untuk menampilkan Telepon Karyawan create view view_TeleponKaryawan as (select TelpKaryawan, KdKaryawan from TeleponKaryawan)
7. View EmailKaryawan --View untuk menampilkan Email karyawan create view view_EmailKaryawan as (select EmailKaryawan ,KdKaryawan from EmailKaryawan)
195 8. View MsCustomer --View untuk menampilkan Data Pelanggan create view view_MsCustomer as (select a.KdCust, b.KdJenisCust, NamaCust, AlamatCust, KdPos, TelpCust,
EmailCust, Username, Password from
MsCustomer a inner join MsJenisCust b on a.KdJenisCust = b.KdJenisCust)
9. View TeleponCustomer --View untuk menampilkan Telepon Customer create view view_TeleponCustomer as (select KdSupplier, TelpCust from TeleponCustomer)
10. View EmailCustomer --View untuk menampilkan Email Customer create view view_EmailCustomer as (select EmailCust, KdCust from EmailCustomer)
11. View NoRekeningCustomer --View untuk menampilkan No Rekening Customer create view view_No_Rek_Cust
196 as (select NoRekCust, KdCust from NoRekeningCustomer)
12. View TrPemesanan --View untuk menampilkan Pemesanan create view view_TrPemesanan as (select
a.KdPemesanan,
b.KdCust,
TglPesan
from
TrPemesanan a inner join MsCustomer b on a.KdCust = b.KdCust)
13. View TrPembayaran --View untuk menampilkan pembayaran create view view_TrPembayaran as (select a.KdPembayaran, b.KdPemesanan, c.KdKaryawan, TglBayar from TrPembayaran a inner join TrPemesanan b on a.KdPemesanan = b.KdPemesanan inner join MsKaryawan c on a.KdKaryawan = c.KdKaryawan)
14. View TrPengiriman --View untuk menampilkan pengiriman create view view_TrPengiriman as
197 (select
KdPengiriman,
b.KdPembayaran,
c.KdKaryawan
TglKirim from TrPengiriman a inner join TrPembayaran b on a.KdPembayaran = b.KdPembayaran inner join MsKaryawan c on a.KdKaryawan = b.KdKaryawan)
15. View TrPembelian --View untuk menampilkan Header dari Pembelian barang create view view_TrPembelian as (select
a.KdPembelian,
b.KdSupplier,
TglTrans
from
TrPembelian a inner join MsSupplier c on a.KdSupplier = b.KdSupplier)
16. View TrDetailPembelian --View untuk menampilkan Detail dari Pembelian barang create view view_TrDetailPembelian as (select a.KdPembelian, b.KdBarang, HargaBeli, Qty from TrDetailPembelian a inner join MsBarang b on a.KdBarang = b.KdBarang)
17. View TrReturPenjualan --View untuk menampilkan Header dari Retur Penjualan barang
198 create view view_TrRtrPenjualan as (select a.KdRtrPenjualan, b.KdPenjualan, Qty, NoFaktur, SuratJalan, TglPengembalian from TrRtrPenjualan a inner join TrRtrPenjualan a on a.KdBarang = b..KdBarang)
18. View TrReturPembelian --View untuk menampilkan Header dari Retur Pembelian barang create view view_TrRtrPembelian as (select a.KdRtrPembelian, b.KdPembelian, Qty, NoFaktur, SuratJalan, TglPengembalian from TrRtrPembelian a inner join TrRtrPembelian a on a.KdBarang = b..KdBarang)
19. View CustomerTalk --View untuk menampilkan keluhan pelanggan create view view_CustomerTalk as (select a.KdCust, Talk, Tgl from CustomerTalk a inner join CustomerTalk a on a.KdCust = b..KdCust)
199 3.2.4.4 Store Procedure 1. Procedure insert Barang create proc proc_insert_barang ( @KdBarang char(5), @NamaBarang varchar(30), @Harga varchar(20), @Stok(20) as insert
into
MsBarang
values
(@KdBarang,
@NamaBarang, @Harga, @Stok) )
2.Procedure insert Supplier create proc proc_insert_Supplier ( @KdSupplier char(5) @NamaSupplier varchar(50) @AlamatSupplier text as insert
into
MsSupplier
values
@NamaSupplier, @AlamatSupplier) )
(@KdSupplier,
200 3. Procedure insert Karyawan create proc proc_insert_Karyawan ( @KdKaryawan char(5) @KdJenisKaryawan char(6) @NamaKaryawan varchar(50) @AlamatKaryawan text @Username varchar(20) @Password varchar(10) as insert
into
MsKaryawan
values
@KdJenisKaryawan, @AlamatKaryawan,
@NamaKaryawan, @TelpKaryawan,
Karyawan, @Username, @Password) )
4.Procedure insert Customer create proc proc_add_Customer ( @KdCust int(5) @KdJenisCust char(6) @NamaCust varchar(50) @AlamatCust text @KdPos char(5)
(@KdKaryawan,
@Email
201 @Username varchar(20) @Password varchar(10) as insert into MsCustomer values (@KdCust, @KdJenisCust, @NamaCust, @AlamatCust, @KdPos,
@Username,
@Password) )
5. Procedure insert pemesanan create proc proc_insert_pemesanan ( @KdPemesanan char(6) @NamaBarang vachar(30) @HargaJual varchar(20) @Qty int @TglPesan datetime as insert
into
pemesanan
values
(@KdPemesanan,
@NamaBarang, @HargaJual, @Qty, @TglPesan) )
6. Procedure insert pembayaran create proc proc_insert_pembayaran (
202 @KdPembayaran char(6) @KdPemesanan char(6) @KdKaryawan char(5) @TglBayar datetime as insert
into
pembayaran
values
(@KdPembayaran,
@KdPemesanan, @KdKaryawan, @TglBayar) )
7. Procedure insert pengiriman create proc proc_insert_pengiriman ( @KdPengiriman char(6) @KdPembayaran char(6) @KdKaryawan char(5) @TglKirim datetime as insert
into
pengiriman
values
(@KdPengiriman,
@KdPembayaran, @KdKaryawan, @TglKirim) )
8. Procedure insert pembelian create proc proc_insert_ pembelian (
203 @KdPembelian char(6) @KdSupplier char(5) @KdBarang char (5) @Qty int @TglPengembalian datetime as insert
into
pembelian
values
(@KdPembelian,
@KdSupplier, @KdBarang, @Qty, @TglPengembalian) )
9. Procedure insert retur penjualan create proc proc_insert retur_penjualan ( @KdRtrPenjualan char(6) @KdPengiriman char(5) @Qty int @TglPengembalian datetime as insert
into
retur_penjualan
values
(@KdPembelian,
@KdPengiriman @Qty, @TglPengembalian) )
10. Procedure insert retur_pembelian create proc proc_insert_ retur_pembelian
204 ( @KdRtrPembelian char(6) @KdPengiriman char(6) @Qty int @TglPengembalian datetime as insert
into
(@KdRtrPembelian,
detail_retur_pembelian
values
@KdPengiriman,
@Qty,
@TglPengembalian) )
11. Procedure update barang create proc proc_update_barang ( @Harga (6) @Stok int @KdBarang char(5) as update MsBarang set Harga = @Harga, Stok = @Stok where KdBarang = @KdBarang )
12. Procedure update jabatan karyawan create proc proc_update_karyawan
205 ( @Jabatan varchar(30) @KdKaryawan char(5) as
update MsJenisKaryawan set Jabatan = @Jabatan where KdKaryawan = @KdKaryawan )
13. Procedure update customer create proc proc_update_customer ( @AlamatSupplier (6) @TelpSupplier varchar(20) @EmailSupplier varchar(20) @Username varchar (10) @Password varchar (35) @KdCust char(5) as update MsBarang set AlamatSupplier = @AlamatSupplier, TelpSupplier
=
@TelpSupplier,
EmailSupplier
=
@EmailSupplier, Username = @Username, Password = @Password where KdCust = @KdCust
206 )
14. Procedure Select CustomerTalk create proc proc_select_customerTalk ( @KdCust char(5) as select * from CustomerTalk where KdCust = @KdCust )
3.2.4.5 Merancang Mekanisme Keamanan Langkah ini bertujuan untuk mendesain ukuran keamanan untuk basis data. Ada 2 tipe di dalam sistem keamanan basis data ini, yaitu: •
Keamanan sistem, yaitu untuk menangani akses dan penggunaan basis data pada tingkat sistem. Implementasinya adalah dengan menggunakan Username dan password. Customer disini haruslah yang sudah pernah melakukan request untuk menjadi member dan telah disetujui requestnya oleh admin.
•
Keamanan data, yaitu untuk menangani akses dan penggunaan objek-objek basis data dan aksi-aksi yang bisa dilakukan user terhadap
objek-objek
tersebut.
Implementasinya
adalah
207 dengan mekanisme authorization, yaitu mekanisme yang membatasi hak-hak akses user terhadap tabel-tabel di database. Hak akses terdiri dari Insert, Update, Read, dan Delete. Pengaturan ini sudah terdokumentasi dengan lengkap pada tabel berikut.
Tabel 3.56 Perancangan Mekanisme Keamanan
User Tabel MsBarang MsJenisBarang MsSupplier TeleponSupplier EmailSupplier MsKaryawan MsJenisKaryawan TeleponKaryawan EmailKaryawan MsCustomer TeleponCustomer EmailCustomer NoRekCustomer TrPemesanan TrPembayaran TrPengiriman TrPembelian TrDetailPembelian TrReturPenjualan TrReturPembelian CustomerTalk
Staff BagianPersediaan Pelanggan Administrasi Barang I R U D I R U D I R U D x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
208 3.2.5
Perancangan Program Aplikasi 3.2.5.1 Struktur Menu 3.2.5.1.1Struktur Menu Pelanggan
Gambar 3.21 Struktur menu pelanggan
3.2.5.1.2 Struktur Menu Karyawan
Gambar 3.22 Struktur menu karyawan
Keterangan untuk struktur menu karyawan : Edit terdiri dari insert, update dan delete
209 3.2.5.2 State Transition Diagram (STD) 3.2.5.2.1 STD untuk Pelanggan Pilih link Register Now
Index Masukkan Username dan Password Validasi
Tampilkan form Register
Login salah Tampilkan pesan kesalahan
Login berhasil Masuk ke halaman Home Home
Gambar 3.23 STD Index
Tampilkan form Register Register Isi data diri lalu klik submit Login berhasil dan masuk ke halaman Home
Home
Gambar 3.24 STD Register
Register
210 Pilih menu Home Tampilkan sub menu Home Home Pilih menu About Us Tampilkan sub menu About Us About Us Pilih menu Profile Tampilkan sub menu Profile Profile Pilih menu Products Tampilkan sub menu Products Products
Home Pilih menu Status Tampilkan sub menu Status
Status Pilih menu Customer Talk Tampilkan sub menu Customer Talk Customer Talk
Pilih menu Logout Kembali ke halaman Index
Gambar 3.25 STD Home
211 Tampilkan sub menu Profile Profile Pilih Edit Profile Tampilkan form Edit Profile Edit Profile
Gambar 3.26 STD Sub Menu Profile
Tampilkan sub menu Products Products Pilih Products Tampilkan form Product berdasarkan Products yang dipilih Product
Gambar 3.27 STD Sub Menu Products
Tampilkan form Product Product Tentukan pesanan lalu klik submit
Tampilkan form Order Status Order Status
Gambar 3.28 STD Sub Menu Product
212 Tampilkan form Order Status Order Status Jawab pertanyaan konfirmasi Konfirmasi
jika klik batal
Masuk ke halaman Products
Products
jika klik ya
Tampilkan form Paying Status Paying Status
Gambar 3.29 STD Form Order Status
Tampilkan sub menu Status Status Pilih Order Status
Pilih Paying Status
Pilih Delivery Status
Tampilkan form Order Status
Tampilkan form Paying Status
Tampilkan form Delivery Status
Order Status
Paying Status
Delivery Status
Gambar 3.30 STD Sub Menu Status
213 3.2.5.2.2 STD untuk Karyawan
Index Masukkan Username dan Password
Login salah
Validasi
Tampilkan pesan kesalahan
Login berhasil Masuk ke halaman Home Home
Gambar 3.31 STD Index
Home
Pilih menu Home
Tampilkan sub menu Home
Home
Pilih menu Master
Tampilkan sub menu Master
Master
Pilih menu Transaksi
Tampilkan sub menu Transaksi
Transaksi
Pilih menu Laporan
Tampilkan sub menu Laporan
Laporan
Pilih menu Logout
Gambar 3.32 STD Home
Kembali ke halaman Index
214 Pilih Barang Tampilkan sub menu Barang Barang Pilih Supplier Tampilkan sub menu Supplier Tampilkan sub menu Master
Supplier Master
Pilih Karyawan Tampilkan sub menu Karyawan Karyawan Pilih Customer Tampilkan sub menu Customer Customer
Gambar 3.33 STD Sub Menu Master
Tampilkan sub menu Barang Barang
Pilih Insert Tampilkan form Insert Insert
Gambar 3.34 STD Sub Menu Insert Barang
215 Tampilkan sub menu Barang Barang
Pilih Update Tampilkan form Update
Update
Gambar 3.35 STD Sub Menu Update Barang
Tampilkan sub menu Barang Barang
Pilih Delete Hapus data dan tampilkan sub menu Barang Barang
Gambar 3.36 STD Sub Menu Delete Barang
216 Tampilkan sub menu Supplier Supplier
Pilih Insert Tampilkan form Insert Insert
Gambar 3.37 STD Sub Menu Insert Supplier
Tampilkan sub menu Supplier Supplier Pilih Update
Tampilkan form Update Update
Gambar 3.38 STD Sub Menu Update Supplier
217 Tampilkan sub menu Supplier Supplier
Pilih Delete Hapus data dan tampilkan sub menu Supplier Supplier
Gambar 3.39 STD Sub Menu Delete Supplier
Tampilkan sub menu Karyawan Karyawan Pilih Insert Tampilkan form Insert Insert
Gambar 3.40 STD Sub Menu Insert Karyawan
218 Tampilkan sub menu Karyawan Karyawan Pilih Update Tampilkan form Update Update
Gambar 3.41 STD Sub Menu Update Karyawan
Tampilkan sub menu Karyawan Karyawan
Pilih Delete Hapus data dan tampilkan sub menu Karyawan Karyawan
Gambar 3.42 STD Sub Menu Delete Karyawan
219 Tampilkan sub menu Customer Customer
Pilih Customer Talk Tampilkan sub menu Customer Talk Customer Talk
Gambar 3.43 STD Sub Menu Customer
220 Pilih Pemesanan Tampilkan sub menu Pemesanan Pemesanan Pilih Pembayaran Tampilkan sub menu Pembayaran Pembayaran Pilih Pengiriman Tampilkan sub menu Pengiriman Pengiriman
Tampilkan sub menu Transaksi
Pilih Pembelian Transaksi
Tampilkan sub menu Pembelian Pembelian Pilih Retur Penjualan Tampilkan sub menu Retur Penjualan
Retur Penjualan
Pilih Retur Pembelian Tampilkan sub menu Retur Pembelian
Gambar 3.44 STD Sub Menu Transaksi
Retur Pembelian
221 Tampilkan sub menu Pembayaran Pembayaran
Pilih Delete
Hapus data
Pembayaran
Pilih Insert Tampilkan form Insert Insert
Gambar 3.45 STD Sub Menu Pembayaran
Tampilkan sub menu Pengiriman Pengiriman
Pilih Delete
Hapus data
Pilih Insert Tampilkan form Insert Insert
Gambar 3.46 STD Sub Menu Pengiriman
Pengiriman
222 Tampilkan sub menu Pembelian Pembelian
Pilih Delete
Hapus data
Pembelian
Pilih Insert Tampilkan form insert Insert
Gambar 3.47 STD Sub Menu Pembelian
Tampilkan sub menu Retur Penjualan Retur Penjualan
Pilih Delete
Hapus data
Pilih Insert Tampilkan form Insert Insert
Gambar 3.48 STD Sub Menu Retur Penjualan
Retur Penjualan
223 Tampilkan sub menu Retur Pembelian Retur Pembelian
Pilih Delete
Hapus data
Retur Pembelian
Pilih Insert Tampilkan form Insert Insert
Gambar 3.49 STD Sub Menu Retur Pembelian
Pilih Penjualan Tampilkan sub menu Penjualan Penjualan Pilih Pembelian Tampilkan sub menu Laporan
Tampilkan sub menu Pembelian Pembelian
Laporan Pilih Persediaan Tampilkan sub menu Persediaan
Persediaan
Gambar 3.50 STD Sub Menu Laporan
224 Tampilkan sub menu Laporan Penjualan Penjualan
Pilih Barang
Pilih Wilayah
Tampilkan laporan
Tampilkan laporan
Laporan
Laporan
Gambar 3.51 STD Sub Menu Laporan Penjualan
225 3.2.5.3 Perancangan Layar 3.2.5.3.1 Untuk Pelanggan
Halaman Index
LOGO
Login Form Username
x-20-x
Password
x-35-x Image Login
Registrasi Gambar 3.52 Perancangan halaman login
226 Halaman Registrasi
LOGO
Login Form Username
x-20-x
Password
x-35-x
Registrasi
Nama Login
x-30-x
Alamat x-50-x
Registrasi Kode Pos
x-5-x
Telepon
x-20-x
Email
x-50-x
Nomor Rekening
x-20-x
Username
x-20-x
Password
x-35-x
Confirm Password
x-35-x
Registrasi
Cancel
Gambar 3.53 Perancangan halaman registrasi pelanggan
227 Halaman Home
LOGO
Home
Selamat Datang, User
About Us Profile Products Status
Image
Customer Talk Logout
Gambar 3.54 Perancangan halaman home
228 Halaman About Us
LOGO
Home About Us Profile
Sejarah Organisasi Visi dan Misi
Products
Alamat
Status
Email
Customer Talk
Nomor Telepon
Logout Gambar 3.55 Perancangan halaman about us
229 Halaman Profile
LOGO
Home About Us
Profile
Profile Products
Nama
x-30-x
Status Customer Talk
x-50-x Alamat
Logout Kode Pos
x-5-x
Telepon
x-20-x
Email
x-50-x
Nomor Rekening
x-20-x
Username
x-20-x
Password
x-35-x
Edit Profile Gambar 3.56 Perancangan halaman profile pelanggan
230 Halaman Edit Profile
LOGO
Home About Us
Edit Profile
Profile Products
Nama
Status
Alamat
Customer Talk
x-30-x
x-50-x
Logout Kode Pos
x-5-x
Telepon
x-20-x
Email
x-50-x
Nomor Rekening
x-20-x
Username
x-20-x
Password
x-35-x
Confirm Password
Submit
x-35-x
Cancel
Gambar 3.57 Perancangan halaman edit profile pelanggan
231 Halaman Products Categories
LOGO
Home About Us
Products Categories
Profile Products
Image
Image
Image
Image
Status Customer Talk Logout
Gambar 3.58 Perancangan halaman kategori produk
Image
232 Halaman Product
LOGO
Home About Us
Products Sofa
Profile Products
Nama Barang : x-30-x
9
Status
Image
Customer Talk
Harga
: x-20-x
Banyak
: 999
Logout Nama Barang : x-30-x Image
Harga
: x-20-x
Banyak
: 999
Submit Gambar 3.59 Perancangan halaman pemesanan produk
233 Halaman Status
LOGO
Home About Us
Status
Profile Products
Order Status
Status
Paying Status
Customer Talk
Delivery Status
Logout
Gambar 3.60 Perancangan halaman status pembelian pelanggan
234 Halaman Order Status
LOGO
Home About Us
Order Status
Profile Products
Nama Barang
Harga
Banyak
Total
Tgl Pesan
x-30-x
x-20-x
99999
99999
dd/mm/yyyy
Status Customer Talk Logout Submit
Cancel
Gambar 3.61 Perancangan halaman order status
235 Halaman Paying Status
LOGO
Home About Us
Paying Status
Profile Products
Total
Tgl Bayar
99999
dd/mm/yyyy
Status Customer Talk Logout Gambar 3.62 Perancangan halaman paying status
236 Halaman Delivery Status
LOGO
Home About Us
Delivery Status
Profile Products Status
Nama Barang
Banyak
Tgl Kirim
x-30-x
99999
dd/mm/yyyy
Customer Talk Logout Gambar 3.63 Perancangan halaman delivery status
237 Halaman Customer Talk
LOGO
Home About Us
Customer Talk
Profile
Silahkan isi saran dan kritik anda
Products Status Customer Talk
x-100-x Talk :
Logout
Submit Gambar 3.64 Perancangan halaman customer talk
238 3.2.5.3.2 Untuk Karyawan
Halaman Index
LOGO
Login Form Username
x-20-x
Password
x-35-x Image Login
Registrasi Gambar 3.65 Perancangan halaman login
239 Halaman Home
LOGO
Home
Selamat Datang, User
About Us Profile Products Status
Image
Customer Talk Logout
Gambar 3.66 Perancangan halaman home
240 Halaman Master
LOGO
Home Master
Master
Transaksi Laporan Barang Logout Supplier Karyawan Customer Gambar 3.67 Perancangan halaman master
241 Halaman Barang
LOGO
Home Master
Barang
Transaksi Laporan Logout
Kd Barang
Jenis Barang
Nama Barang
Harga
Stok
x-5-x
x-30-x
x-30-x
x-20-x
99999
Action Update Delete
x-5-x
x-30-x
x-30-x
x-20-x
99999
Update Delete
Insert Gambar 3.68 Perancangan halaman barang
242 Halaman Insert Barang
LOGO
Home Master
Insert Barang
Transaksi Laporan Kd Barang
x-5-x
Kd Jenis Barang
x-6-x
Nama Barang
x-30-x
Harga
x-20-x
Stok
99999
Logout
Submit Gambar 3.69 Perancangan halaman insert barang
243 Halaman Update Barang
LOGO
Home Master
Update Barang
Transaksi Laporan Kd Barang
x-5-x
Kd Jenis Barang
x-6-x
Nama Barang
x-30-x
Harga
x-20-x
Stok
99999
Logout
Submit Gambar 3.70 Perancangan halaman update barang
244 Halaman Supplier
LOGO
Home Master
Supplier
Transaksi Laporan Logout
Kd
Nama
Alamat
Telp
Email
Supplier
Supplier
Supplier
Supplier
Supplier
x-5-x
x-30-x
x-50-x
x-20-x
x-50-x
Action
Update Delete
x-5-x
x-30-x
x-50-x
x-20-x
x-50-x
Update Delete
Insert Gambar 3.71 Perancangan halaman supplier
245 Halaman Insert Supplier
LOGO
Home Master
Insert Supplier
Transaksi Laporan Kd Supplier
x-5-x
Nama Supplier
x-30-x
Logout
Alamat Supplier x-50-x
Telp Supplier
x-20-x
Email Supplier
x-50-x
Submit Gambar 3.72 Perancangan halaman insert supplier
246 Halaman Update Supplier
LOGO
Home Master
Update Supplier
Transaksi Laporan Kd Supplier
x-5-x
Nama Supplier
x-30-x
Logout
Alamat Supplier x-50-x
Telp Supplier
x-20-x
Email Supplier
x-50-x
Submit Gambar 3.73 Perancangan halaman update supplier
247 Halaman Karyawan
LOGO
Home Master
Karyawan
Transaksi Laporan Logout
Kd
Nama
Karyawan
Karyawan
x-5-x
x-30-x
Jabatan
x-30-x
Alamat
Telp
Email
Karyawan
Karyawan
Karyawan
x-50-x
x-20-x
x-50-x
Action
Update Delete
x-5-x
x-30-x
x-30-x
x-50-x
x-20-x
x-50-x
Update Delete
Insert
Gambar 3.74 Perancangan halaman karyawan
248 Halaman Insert Karyawan
LOGO
Home Master
Insert Karyawan
Transaksi Laporan Kd Karyawan
x-5-x
Kd Jenis Karyawan
x-6-x
Nama Karyawan
x-30-x
Logout
Alamat Karyawan x-50-x
Telp Karyawan
x-20-x
Email Karyawan
x-50-x
Submit Gambar 3.75 Perancangan halaman insert karyawan
249 Halaman Update Karyawan
LOGO
Home Master
Update Karyawan
Transaksi Laporan Kd Karyawan
x-5-x
Kd Jenis Karyawan
x-6-x
Nama Karyawan
x-30-x
Logout
Alamat Karyawan x-50-x
Telp Karyawan
x-20-x
Email Karyawan
x-50-x
Submit Gambar 3.76 Perancangan halaman update karyawan
250 Halaman Customer
LOGO
Home Master
Customer
Transaksi KdCust
Nama
Alamat
Cust
Cust
99999
x-30-x
x-50-x
99999
x-30-x
x-50-x
Laporan Logout
KdPos
Telp
Email
User
Pass
Cust
Cust
name
word
x-5-x
x-20-x
x-50-x
x-20-x
x-35-x
x-5-x
x-20-x
x-50-x
x-20-x
x-35-x
Customer Talk
Gambar 3.77 Perancangan halaman view customer
251 Halaman Customer Talk
LOGO
Home Master
Customer Talk
Transaksi KdCust
Talk
Tgl
99999
x-100-x
dd/mm/yyyy
99999
x-100-x
dd/mm/yyyy
Laporan Logout
Gambar 3.78 Perancangan halaman view customer talk
252 Halaman Transaksi
LOGO
Home Master
Transaksi
Transaksi Laporan
Pemesanan
Logout
Pembayaran Pengiriman Pembelian Retur Penjualan Retur Pembelian Gambar 3.79 Perancangan halaman transaksi
253 Halaman Pemesanan
LOGO
Home Master
Pemesanan
Transaksi Laporan
Kd
Nama
Nama
Harga
Logout
Pemesanan
Customer
Barang
Jual
x-6-x
x-30-x
x-30-x
x-6-x
x-30-x
x-30-x
Qty
TglPesan
x-20-x
999
dd/mm/yyyy
x-20-x
999
dd/mm/yyyy
Gambar 3.80 Perancangan halaman data pemesanan oleh pelanggan
254 Halaman Pembayaran
LOGO
Home Master
Pembayaran
Transaksi Laporan
Kd
Nama
Nama
Total
Tgl
Action
Pembayaran
Customer
Karyawan
Pembayaran
Bayar
x-6-x
x-30-x
x-30-x
99999
dd/mm/yyyy
Delete
x-6-x
x-30-x
x-30-x
99999
dd/mm/yyyy
Delete
Logout
Insert Gambar 3.81 Perancangan halaman pembayaran oleh pelanggan
255 Halaman Insert Pembayaran
LOGO
Home Master
Insert Pembayaran
Transaksi Laporan Kd Pembayaran
x-6-x
Kd Pemesanan
x-6-x
Kd Karyawan
x-5-x
Logout
Tgl Bayar
dd/mm/yyyy
Submit Gambar 3.82 Perancangan halaman insert pembayaran
256 Halaman Pengiriman
LOGO
Home Master
Pengiriman
Transaksi Laporan
Kd
Nama
Nama
Alamat
TglKirim
Action
Pengiriman
Karyawan
Customer
Customer
x-6-x
x-30-x
x-30-x
x-50-x
dd/mm/yyyy
Delete
x-6-x
x-30-x
x-30-x
x-50-x
dd/mm/yyyy
Delete
Logout
Insert
Gambar 3.83 Perancangan halaman pengiriman barang
257 Halaman Insert Pengiriman
LOGO
Home Master
Insert Pengiriman
Transaksi Laporan Kd Pengiriman
x-6-x
Kd Pembayaran
x-6-x
Kd Karyawan
x-5-x
Tgl Kirim
dd/mm/yyyy
Logout
Submit Gambar 3.84 Perancangan halaman insert pengiriman
258 Halaman Pembelian
LOGO
Home Master
Pembelian
Transaksi Laporan
Kd
Nama
Nama
Nama
Harga
Logout
Pembelian
Barang
Supplier
Karyawan
Beli
x-6-x
x-30-x
x-30-x
x-30-x
x-6-x
x-30-x
x-30-x
x-30-x
Qty
TglBeli
x-20-x
999
dd/mm/yyyy
x-20-x
999
dd/mm/yyyy
Action Delete
Insert
Delete
Gambar 3.85 Perancangan halaman pembelian barang ke supplier
259 Halaman Insert Pembelian
LOGO
Home Master
Insert Pembelian
Transaksi Laporan Kd Pembelian
x-6-x
Kd Barang
xxxxxxxxxx x-5-x
Kd Supplier
x-5-x
Logout
Harga Beli
Qty Tgl Beli
x-20-x
999 dd/mm/yyyy
Submit Gambar 3.86 Perancangan halaman insert pembelian
260 Halaman Retur Penjualan
LOGO
Home Master
Retur Penjualan
Transaksi KdRtr
Nama
Qty
TglPengembalian
Action
Penjualan
Barang
x-6-x
x-30-x
999
dd/mm/yyyy
Delete
x-6-x
x-30-x
999
dd/mm/yyyy
Delete
Laporan Logout
Insert Gambar 3.87 Perancangan halaman retur penjualan
261 Halaman Insert Retur Penjualan
LOGO
Home Master
Insert Retur Penjualan
Transaksi Laporan KdRtrPenjualan
x-6-x
KdPengiriman
x-6-x
Logout
Qty Tgl Pengembalian
999 dd/mm/yyyy
Submit Gambar 3.88 Perancangan halaman insert retur penjualan
262 Halaman Retur Pembelian
LOGO
Home Master
Retur Pembelian
Transaksi KdRtr
Nama
Qty
TglPengembalian
Action
Pembelian
Barang
x-6-x
x-30-x
999
dd/mm/yyyy
Delete
x-6-x
x-30-x
999
dd/mm/yyyy
Delete
Laporan Logout
Insert Gambar 3.89 Perancangan halaman retur pembelian
263 Halaman Insert Retur Pembelian
LOGO
Home Master
Insert Retur Pembelian
Transaksi Laporan KdRtrPembelian
x-6-x
KdPembelian
x-6-x
Qty
999
Tgl Pengembalian
dd/mm/yyyy
Logout
Submit Gambar 3.90 Perancangan halaman insert retur pembelian
264 Halaman Laporan
LOGO
Home Master
Laporan
Transaksi Laporan Penjualan Logout Pembelian Persediaan
Gambar 3.91 Perancangan halaman laporan
265 Halaman Laporan Penjualan
LOGO
Home Master
Penjualan
Transaksi Laporan Barang Logout Wilayah
Gambar 3.92 Perancangan halaman laporan – penjualan
266 Printed
dd/mm/yyyy
hh:mm:ss
PT Cavenzi Indonesia Jl. Otista Raya No. 82a Cawang Jakarta Timur
Laporan Penjualan Berdasarkan Barang yang Paling Banyak Terjual Per dd/mm/yyyy
Kode Barang
Nama Barang
Jumlah Penjualan
x-5-x
x-30-x
99999
x-5-x
x-30-x
99999
x-5-x
x-30-x
99999
dibuat oleh,
disetujui oleh,
(x-30-x)
(x-30-x)
Staff Administrasi
Manager Pemasaran Cetak
Gambar 3.93 Perancangan halaman laporan penjualan berdasarkan barang yang paling banyak terjual
267 Printed
dd/mm/yyyy
hh:mm:ss
PT Cavenzi Indonesia Jl. Otista Raya No. 82a Cawang Jakarta Timur
Laporan Penjualan Berdasarkan Wilayah Customer Per dd/mm/yyyy
Kode Barang
Nama Barang
Jumlah Penjualan
Wilayah
x-5-x
x-30-x
99999
x-20-x
x-5-x
x-30-x
99999
x-20-x
x-5-x
x-30-x
99999
x-20-x
dibuat oleh,
disetujui oleh,
(x-30-x)
(x-30-x)
Staff Administrasi
Manager Pemasaran Cetak
Gambar 3.94 Perancangan halaman laporan penjualan berdasarkan wilayah customer
268 Printed
dd/mm/yyyy
hh:mm:ss
PT Cavenzi Indonesia Jl. Otista Raya No. 82a Cawang Jakarta Timur
Laporan Pembelian Per dd/mm/yyyy Kode Pembelian
: x-6-x
Tanggal Pembelian : dd/mm/yyyy Kode Karyawan
: x-5-x
Nama Karyawan
: x-30-x
Kode Barang
Nama Barang
Nama
Harga Satuan
Banyak
Jumlah
Supplier
x-5-x
x-30-x
x-30-x
x-20-x
99999
x-20-x
x-5-x
x-30-x
x-30-x
x-20-x
99999
x-20-x
x-5-x
x-30-x
x-30-x
x-20-x
99999
x-20-x
Total
x-20-x
dibuat oleh,
disetujui oleh,
(x-30-x)
(x-30-x)
Bagian Persediaan Barang
Manager Pemasaran Cetak
Gambar 3.95 Perancangan halaman laporan pembelian
269 Printed
dd/mm/yyyy
hh:mm:ss
PT Cavenzi Indonesia Jl. Otista Raya No. 82a Cawang Jakarta Timur
Laporan Persediaan Per dd/mm/yyyy
Kode Barang
Jenis Barang
Nama Barang
Harga
Stok
x-5-x
x-30-x
x-30-x
x-20-x
99999
x-5-x
x-30-x
x-30-x
x-20-x
99999
x-5-x
x-30-x
x-30-x
x-20-x
99999
Total
99999
dibuat oleh,
disetujui oleh,
(x-30-x)
(x-30-x)
Bagian Persediaan Barang
Manager Pemasaran Cetak
Gambar 3.96 Perancangan halaman laporan persediaan
270 3.2.5.4 Perancangan Laporan
Printed
dd/mm/yyyy
hh:mm:ss
PT Cavenzi Indonesia Jl. Otista Raya No. 82a Cawang Jakarta Timur
Laporan Penjualan Berdasarkan Barang yang Paling Banyak Terjual Per dd/mm/yyyy
Kode Barang
Nama Barang
Jumlah Penjualan
x-5-x
x-30-x
99999
x-5-x
x-30-x
99999
x-5-x
x-30-x
99999
dibuat oleh,
disetujui oleh,
(x-30-x)
(x-30-x)
Staff Administrasi
Manager Pemasaran
Gambar 3.97 Perancangan halaman laporan penjualan berdasarkan barang yang paling banyak terjual (yang akan dicetak)
271 Printed
dd/mm/yyyy
hh:mm:ss
PT Cavenzi Indonesia Jl. Otista Raya No. 82a Cawang Jakarta Timur
Laporan Penjualan Berdasarkan Wilayah Customer Per dd/mm/yyyy
Kode Barang
Nama Barang
Jumlah Penjualan
Wilayah
x-5-x
x-30-x
99999
x-20-x
x-5-x
x-30-x
99999
x-20-x
x-5-x
x-30-x
99999
x-20-x
dibuat oleh,
disetujui oleh,
(x-30-x)
(x-30-x)
Staff Administrasi
Manager Pemasaran
Gambar 3.98 Perancangan halaman laporan penjualan berdasarkan wilayah customer (yang akan dicetak)
272 Printed
dd/mm/yyyy
hh:mm:ss
PT Cavenzi Indonesia Jl. Otista Raya No. 82a Cawang Jakarta Timur
Laporan Pembelian Per dd/mm/yyyy Kode Pembelian
: x-6-x
Tanggal Pembelian : dd/mm/yyyy Kode Karyawan
: x-5-x
Nama Karyawan
: x-30-x
Kode Barang
Nama Barang
Nama
Harga Satuan
Banyak
Jumlah
Supplier
x-5-x
x-30-x
x-30-x
x-20-x
99999
x-20-x
x-5-x
x-30-x
x-30-x
x-20-x
99999
x-20-x
x-5-x
x-30-x
x-30-x
x-20-x
99999
x-20-x
Total
dibuat oleh,
(x-30-x) Bagian Persediaan Barang
x-20-x
disetujui oleh,
(x-30-x) Manager Pemasaran
Gambar 3.99 Perancangan halaman laporan pembelian (yang akan dicetak)
273 Printed
dd/mm/yyyy
hh:mm:ss
PT Cavenzi Indonesia Jl. Otista Raya No. 82a Cawang Jakarta Timur
Laporan Persediaan Per dd/mm/yyyy
Kode Barang
Jenis Barang
Nama Barang
Harga
Stok
x-5-x
x-30-x
x-30-x
x-20-x
99999
x-5-x
x-30-x
x-30-x
x-20-x
99999
x-5-x
x-30-x
x-30-x
x-20-x
99999
Total
99999
dibuat oleh,
disetujui oleh,
(x-30-x)
(x-30-x)
Bagian Pesediaan Barang
Manager Pemasaran
Gambar 3.100 Perancangan halaman laporan persediaan (yang akan dicetak)
274 3.2.5.5 Spesifikasi Proses 1. Modul index.php Begin Tampilkan halaman Index.php If tombol login diklik Then Buka koneksi ke tabel MsKaryawan dan MsCustomer Baca input username dan password If input username dan password salah Then Tampilkan pesan ”Invalid username or password” Else If posisi = Admin Then Masuk ke halaman Home_Admin.php sebagai Admin Tutup data Tutup koneksi Else If posisi = Member Masuk ke halaman Home.php sebagai Member Tutup data Tutup koneksi End If Else If tombol Log Out diklik Then Tutup aplikasi End If End
275 2. Modul connect.php Begin Buka koneksi ke database Memilih Database dbcavenzi End
3. Modul Menu registrasi.php (sebagai Pelanggan) Begin Buka koneksi ke database If link Registrasi diklik Then Tampilkan halaman pengisian Registrasi pelanggan Mengisi data diri pelanggan If tombol submit diklik Then Simpan data ke dalam database End If End
4. Modul Menu Home.php (sebagai Pelanggan) Begin Buka koneksi ke database If memilih menu home Then Tampilkan halaman Home.php Else If memilih menu About us Then Tampilkan halaman About_us.php
276 Else If memilih menu Profile Then Tampilkan halaman Profile.php Else If memilih menu Products Then Tampilkan halaman Products.php Else If memilih menu Status Then Tampilkan halaman Status.php Else If memilih menu Customer Talk Then Tampilkan halaman Customer_Talk.php Else If memilih menu Logout Then Tampilkan modul Index.php End If End
5. Modul Menu About Us.php (sebagai Pelanggan) Begin Buka koneksi ke database If About Us diklik Then Tampilkan data tentang perusahaan End If End
6. Modul Menu Profile.php (sebagai Pelanggan) Begin Buka koneksi ke database
277 Tampilkan data pelanggan If link Edit Profile diklik Then Menuju modul Update_Profile.php dan ubah data yang diinginkan dalam database End If End
7. Modul Menu Products.php (sebagai Pelanggan) Begin Buka koneksi ke database Tampilkan halaman gambar Products berdasarkan jenisnya If link gambar Jenis Products diklik Then Tampilkan data Product sesuai dengan jenis yang dipilih Menginput product yang akan dipesan If tombol submit ditekan Then Simpan data kedalam modul pemesanan.php End If End
8. Modul Menu Status.php (sebagai Pelanggan) Begin Buka koneksi ke database If link Order Status diklik Then Tampilkan data status pemesanan pelanggan
278 Else If link Paying Status diklik Then Tampilkan data status pembayaran pelanggan Else If link Delivery Status diklik Then Tampilkan data status pengiriman barang End If End
9. Modul Menu Customer_Talk.php (sebagai Pelanggan) Begin Buka koneksi ke database Tampilkan halaman Customer_Talk.php Mengisi saran dan kritik pada halaman Customer_Talk.php If tombol submit diklik Then Simpan
data
ke
dalam
View_Customer_Talk.php End If End
10. Modul Menu Logout.php (sebagai Pelanggan) Begin Buka koneksi ke database If Logout diklik Then Keluar dari aplikasi End If
database
dan
modul
279 End
11. Modul Menu Home_Admin.php (sebagai Karyawan) Begin Buka koneksi ke database If memilih menu home Then Tampilkan halaman HomeAdmin.php Else If memilih menu Master Then Tampilkan halaman Master.php Else If memilih menu transaksi Then Tampilkan halaman Transaksi.php Else If memilih menu Laporan Tampilkan halaman Laporan.php Else If memilih menu Logout Tampilkan modul index.php End If End
12. Modul Menu Master.php (sebagai Karyawan) Begin Buka koneksi ke database If link Barang diklik Then Tampilkan data Barang If link update diklik Then
280 Koneksi ke database Tampilkan data-data barang pada field-field isian yang akan di update pada Update_Barang.php End If If link delete diklik Then Hapus data barang yang akan dihapus End If If link insert diklik Then Tampilkan field isian barang baru Masukan data-data barang baru pada field End If Else If link Supplier diklik Then Tampilkan data-data supplier If link update diklik Then Koneksi ke database Tampilkan data-data supplier pada field-field isian yang akan di update pada Update_Supplier.php End If If link delete diklik Then Hapus data supplier yang akan dihapus End If If link insert diklik Then Tampilkan field isian supplier baru Masukan data-data supplier baru pada field
281 End If Else If link Karyawan diklik Then Tampilkan data-data karyawan If link update diklik Then Koneksi ke database Tampilkan data-data karyawan pada field-field isian yang akan di update pada Update_Karyawan.php If link delete diklik Then Hapus data karyawan yang akan dihapus End If If link insert diklik Then Tampilkan field isian karyawan baru Masukan data-data karyawan baru pada field End If Else If link Customer diklik Then Tampilkan data-data customer If link Customer Talk diklik Then Koneksi ke database Tampilkan
data-data
View_Customer_Talk.php End If End If End
Customer
Talk
pada
282 13. Modul Menu Transaksi.php (sebagai Karyawan) Begin Buka koneksi ke database If link Pemesan diklik Then Tampilkan data pemesanan barang customer pada modul Pemesan.php Else If link Pembayaran diklik Then Tampilkan
data-data
pembayaran
customer
pada
modul
pada
modul
Pembayaran.php If link Insert diklik then Tampilkan field isian pembayaran Masukan data pembayaran baru pada field End If If link delete diklik Then Hapus data pembayaran yang akan dihapus End If Else If link Pengiriman diklik Then Tampilkan
data-data
pengiriman
Pengiriman.php If link Insert diklik then Tampilkan field isian pengiriman Masukan data pengiriman baru pada field End If If link delete diklik Then
barang
283 Hapus data pengiriman yang akan dihapus End If Else If link Pembelian diklik Then Tampilkan data-data pembelian barang ke supplier pada modul Pembelian.php If link Insert diklik then Tampilkan field isian pembelian Masukan data pembelian baru pada field End If If link delete diklik Then Hapus data pembelian yang akan dihapus End If Else If link Retur Penjualan diklik Then Tampilkan data retur penjualan pada modul Retur_Penjualan.php If link Insert diklik then Tampilkan field isian retur penjualan Masukan data retur penjualan baru pada field End If If link delete diklik Then Hapus data retur penjualan yang akan dihapus End If Else If link Retur Pembelian diklik Then Tampilkan
data
Retur_Pembelian.php
retur
pembelian
pada
modul
284 If link Insert diklik then Tampilkan field isian retur pembelian Masukan data retur pembelian baru pada field End If If link delete diklik Then Hapus data retur pembelian yang akan dihapus End If End If End
14. Modul Menu Laporan (sebagai Karyawan) Begin Buka koneksi ke database If link Penjualan diklik Then Tampilkan link Barang dan link Wilayah If link Barang diklik Then Tampilkan laporan penjualan berdasarkan barang yang paling banyak terjual End If If link Cetak dipilih Then Cetak laporan penjualan berdasarkan barang yang paling banyak terjual End If If link Wilayah diklik Then
285 Tampilkan laporan penjualan berdasarkan wilayah customer End If If link Cetak dipilih Then Cetak laporan penjualan berdasarkan wilayah customer End If Else If link Pembelian diklik Then Tampilkan modul Laporan_Pembelian.php If link Cetak dipilih Then Cetak Laporan Pembelian End If Else If link Persediaan diklik Then Tampilkan modul Laporan_Persediaan.php If link Cetak dipilih Then Cetak Laporan Persediaan End If End If End
286 15. Modul Menu Logout.php (sebagai Karyawan) Begin Buka koneksi ke database If Logout diklik Then Keluar dari aplikasi End If End