BAB 4
PERANCANGAN SISTEM BASIS DATA
4.1 Perancangan Basisdata
Perancangan basis data merupakan proses pembuatan suatu rancangan untuk suatu basis data yang akan mendukung operasi dan tujuan perusahaan. Perancangan basisdata terdiri dari tiga tahapan, yaitu: perancangan basisdata konseptual, perancangan basisdata logical dan perancangan basisdata fisikal. Berikut tahapan-tahapan perancnagan basisdata yang diusulkan untuk membantu memecahkan masalah yang dihadapi oleh perusahaan.
4.1.1 Perancangan Basisdata Konseptual
Perancangan basisdata secara konseptual yaitu proses membangun suatu model informasi yang digunakan dalam suatu perusahaan, bebas dari semua pertimbangan fisik.
4.1.1.1 Mengidentifikasikan Tipe Entiti
Nama Entiti Deskripsi Entiti Alias Kejadian
Karyawan Merupakan entiti yang berisi data karyawan
Pegawai Tiap karyawan memiliki jabatan dan tugas yang berbeda.
Pelanggan Merupakan entiti yang berisi data pelanggan.
Klien Tiap pelanggan dapat memesan satu atau lebih barang.
Pemasok Merupakan entiti yang
berisikan data pemasok.
Penyuplai Tiap transaksi pembelian dapat memesan satu atau lebih barang dari pemasok. Barang Merupakan entiti yang
berisi informasi tentang status barang.
Produk Setiap barang dibeli dari satu pemasok dan dijual ke banyak pelanggan.
Pemesanan_ Penjualan
Merupakan entiti yang berisi informasi tentang barang yang dipesan oleh pelanggan.
Tiap pelanggan melakukan satu atau lebih pemesanan barang. Pesanan diterima oleh satu karyawan
Pengeluaran Merupakan entiti yang berisi informasi tentang tagihan penjualan yang dilakukan perusahaan.
Penjualan dilakukan oleh karyawan bagian penjualan. Setiap penjualan diterima oleh satu pelanggan. Tiap penjualan berisi satu atau banyak barang.
Pengembalian_ Penjualan
Merupakan entiti yang berisi tentang data
barang yang dikembalikan oleh
Tiap pelanggan dapat melakukan satu atau banyak
pengembalian barang. Pengembalian akan diterima
pelanggan. oleh satu orang karyawan. Pemesanan_
Pembelian
Merupakan entiti yang berisi informasi tentang barang yang akan dibeli oleh perusahaan.
Karyawan bagian pembelian melakukan pemesanan barang. Pesanan diterima oleh satu pemasok.
Pemasukan Merupakan entiti yang berisi informasi tentang tagihan pembelian yang diterima perusahaan.
Pemasok mengirim
pembelian dan pembelian diterima oleh karyawan. Tiap pembelian berisi satu atau banyak barang.
Pengembalian_ Pembelian
Merupakan entiti yang berisi tentang data
barang yang dikembalikan ke pemasok.
Pemasok menerima
pengembalian satu atau banyak barang dari perusahaan yang dilakukan oleh satu orang karyawan.
Tabel 4.1 Identifikasi Tipe Entiti
Gambar 4.1 Identifikasi Tipe Relasional
Menentukan batas multiplicity dari tipe relasional Nama Entiti Multiplicit
y
Relasional Nama Entiti Multiplicity
Karyawan 1..1 1..1 1..1 Melakukan Menerima Melakukan Pemesanan_Pembelian Pembelian Pengembalian_Pembelian 0..* 0..* 0..*
1..1 1..1 1..1 1..1 Menerima Menerima Melakukan Menerima Barang Pemesanan_Penjualan Penjualan Pengembalian_Penjualan 0..* 0..* 0..* 0..* Pelanggan 1..1 1..1 1..1 1..1 Melakukan Menerima Melakukan Menerima Pemesanan_Penjualan Penjualan Pengembalian_Penjualan Barang 1..* 1..* 1..* 1..* Pemasok 1..1 1..1 1..1 1..1 Menerima Mengirim Menerima Menerima Pemesanan_Pembelian Pembelian Pengembalian_Pembelian Barang 1..* 1..* 1..* 1..* Pemesanan_ Penjualan 1..* Memesan Barang 1..* Pengeluaran 1..* 1..* Mengurangi Menurut Barang Pemesanan_Penjualan 1..* 1..1 Pengembalian_ Penjualan 1..* 0..* Menambah Menurut Barang Penjualan 1..* 1..1 Pemesanan_ Penjualan 1..* Memesan Barang 1..* Pemasukan 1..* 1..* Menambah Menurut Barang Pemesanan_Pembelian 1..* 1..1 Pengembalian_ 1..* Mengurangi Barang 1..*
4.1.1.3 Mengidentifikasi dan Asosiasi Atribut Suatu Entiti
Tabel 4.3 Asosiasi Atribut Karyawan
Nama Entiti Atribut Deskripsi Tipe Data dan Length Nulls Multi Valued
Kd_Karyawan Kode Karyawan Varchar(6) [KR0000-KR9999] No No
Nm_Karyawan Nama Karyawan Varchar(30) No No
Alamat Alamat Karyawan Varchar(100) No No
Telp Nomor Telepon Varchar(15) No Yes
Kd_Pos Kode Pos Karyawan Varchar(7) Yes No
No_Rekening Nomor Rekening Varchar(14) Yes No
Karyawan
Nama Entiti Atribut Deskripsi Tipe Data dan Length Nulls Multi Valued
Kd_Pelanggan Kode Pelanggan Varchar(6) [PL0000-PL9999] No No
Nm_ Pelanggan Nama Pelanggan Varchar(30) No No
Alamat Alamat Pelanggan Varchar(100) No No
Telp Nomor Telepon Varchar(15) No Yes
Fax Nomor Faksimili Varchar(15) Yes No
Email Alamat Email Varchar(40) Yes No
Kd_Pos Kode Pos Pelanggan Varchar(7) Yes No
Pelanggan
No_Rekening Nomor Rekening Varchar(14) Yes No
Nama Entiti Atribut Deskripsi Tipe Data dan Length Nulls Multi Valued
Kd_Pemasok Kode Pemasok Varchar(6) [PM0000-PM9999] No No
Nm_ Pemasok Nama Pemasok Varchar(30) No No
Alamat Alamat Pemasok Varchar(100) No No
Telp Nomor Telepon Varchar(15) No Yes
Fax Nomor Faksimili Varchar(15) Yes No
Email Alamat Email Varchar(40) Yes No
Kd_Pos Kode Pos Pemasok Varchar(7) Yes No
Pemasok
No_Rekening Nomor Rekening Varchar(14) Yes No
Nama Entiti Atribut Deskripsi Tipe Data dan Length Nulls Multi Valued
Kd_Barang Kode Barang Varchar(6) [KL0000-KL4999]
atau [JK0000-JK4999]
No No
Nm_Barang Nama Barang Varchar(30) No No
Tipe_Barang Tipe Barang Varchar(15) No No
Permukaan_Kulit Permukaan Kulit Varchar(15) Yes No
Kd_Warna Warna Kulit Varchar(6) [WR0000-WR9999] No No
Jenis_Warna Jenis Warna Kulit Varchar(15) No No
Harga_Beli_Per_Unit Harga Beli Barang Per Unit Numeric No No
Harga_Jual_Per_Unit Harga Jual Barang Per Unit Numeric No No
Minimum_Stok Jumlah Minimum Barang Integer No No
Maksimum_Stok Jumlah Maksimum Barang Integer No No
Barang
Tabel 4.6 Asosiasi Atribut Barang
Nama Entiti Atribut Deskripsi Tipe Data dan Length Nulls Multi
Valued
Kd_Pemesanan_Penjualan Kode Pemesanan Penjualan Varchar(10)
[PO00000000-PO99999999]
No No
Tgl_Pemesanan_Penjualan Tanggal Pemesanan Penjualan Date/Time No No
Tgl_Dibutuhkan Tanggal Barang Dibutuhkan Date/Time No No
Pemesanan_ Penjualan
Jumlah_Barang_Dipesan Jumlah Barang Yang Dipesan Integer No No
Tabel 4.7 Asosiasi Atribut Pemesanan_Penjualan
Nama Entiti Atribut Deskripsi Tipe Data dan Length Nulls Multi
Valued
Kd_Penjualan Kode Penjualan Varchar(10)
[PI00000000-PI99999999]
No No Pengeluaran
Jumlah_Barang_Dijual Jumlah Jual Barang Integer No No
Harga_Jual Harga Jual Barang Numeric No No
Diskon Potongan Harga Integer Yes No
Pajak Pajak Integer No No
Total_Jual Total Harga Penjualan Numeric No No
Tabel 4.8 Asosiasi Atribut Penjualan
Nama Entiti Atribut Deskripsi Tipe Data dan Length Nulls Multi
Valued
Kd_Pengembalian_Penjualan Kode Pengembalian Penjualan Varchar(10)
[PR00000000-PR99999999]
No No
Tgl_Pengembalian_Penjualan Tanggal Pengembalian Penjualan Date/Time No No
Jumlah_Barang_Dikembalikan Jumlah Barang Dikembalikan Integer No No
Pengembalian_ Penjualan
Keterangan Alasan Pengembalian Barang Varchar (100) No No
Nama Entiti Atribut Deskripsi Tipe Data dan Length Nulls Multi Valued
Kd_Pemesanan_Pembelian Kode Pemesanan Pembelian Varchar(10)
[SO00000000-SO99999999]
No No
Tgl_Pemesanan_Pembelian Tanggal Pemesanan Pembelian Date/Time No No
Tgl_Dibutuhkan Tanggal Barang Dibutuhkan Date/Time No No
Pemesanan_ Pembelian
Jumlah_Barang_Dibutuhkan Jumlah Barang Dibutuhkan Integer No No
Tabel 4.10 Asosiasi Atribut Pemesanan_Pembelian
Nama Entiti Atribut Deskripsi Tipe Data dan Length Nulls Multi
Valued
Kd_ Pembelian Kode Pembelian Varchar(10)
[SI00000000-SI99999999]
No No Pemasukan
Jumlah_Barang_Dibeli Jumlah Beli Barang Integer No No
Harga_Beli Harga Beli Barang Numeric No No
Diskon Potongan Harga Integer Yes No
Pajak Pajak Integer No No
Total_Beli Total Harga Pembelian Numeric No No
Tabel 4.11 Asosiasi Atribut Pembelian
Nama Entiti Atribut Deskripsi Tipe Data dan Length Nulls Multi
Valued
Kd_Pengembalian_ Pembelian Kode Pengembalian Pembelian Varchar(10)
[SR00000000-SR99999999]
No No
Tgl_Pengembalian_ Pembelian Tanggal Pengembalian Pembelian Date/Time No No
Jumlah_Dikembalikan Jumlah Barang Dikembalikan Integer No No
Pengembalian_ Pembelian
Keterangan Alasan Pengembalian Barang Varchar (100) No No
4.1.1.4 Mengidentifikasi Domain
Pada tabel di atas telah disertakan domain atribut yang akan digunakan pada setiap field yang ada di tiap-tiap tabel.
4.1.1.5 Mengidentifikasi Candidate dan Primary Key
Nama Entiti Candidate Key Primary Key
Karyawan Kd_Karyawan, No_Rekening Kd_Karyawan Pelanggan Kd_Pelanggan, Email,
No_Rekening
Kd_Pelanggan
Pemasok Kd_Pemasok, Email, No_Rekening
Kd_Pemasok
Barang Kd_Barang Kd_Barang
Pemesanan_ Penjualan
Kd_Pemesanan_Penjualan Kd_Pemesanan_Penjualan
Penjualan Kd_Penjualan Kd_Penjualan
Pengembalian_ Penjualan Kd_Pengembalian_Penjualan Kd_Pengembalian_Penjualan Pemesanan_ Pembelian Kd_Pemesanan_Pembelian Kd_Pemesanan_Pembelian
Pembelian Kd_ Pembelian Kd_ Pembelian Pengembalian_
Pembelian
Kd_Pengembalian_ Pembelian Kd_Pengembalian_ Pembelian
Gambar 4.2 Primary Key
4.1.1.6 Validasi Model Lokal Konseptual Terhadap Transaksi Dari User
a. Mendeskripsikan transaksi
1. Munculkan semua karyawan 2. Munculkan semua pemasok
3. Munculkan semua pelanggan 4. Munculkan semua barang
5. Munculkan karyawan yang menerima order penjualan 6. Munculkan karyawan yang melakukan order pembelian 7. Munculkan barang yang dipesan oleh pelanggan pada hari
tertentu
8. Munculkan data barang yang dikembalikan oleh pelanggan 9. Munculkan jumlah persediaan barang di gudang
10. Munculkan order pembelian yang dilakukan pada hari tertentu
11. Munculkan transaksi pembelian yang dilakukan pada hari tertentu
12. Munculkan transaksi penjualan yang dilakukan pada hari tertentu
b. Menggunakan jalur transaksi
4.1.1.7 Menganalisa Redudansi
Berikut ini adalah entiti-entiti yang mengalami redudansi:
Gambar 4.4 Menganalisa Redudansi Pada Pembelian
Berikut ini adalah entiti-entiti yang mengalami redudansi:
4.1.2 Perancangan Basisdata Logikal
Perancangan basisdata secara logikal yaitu proses membangun suatu model informasi yang digunakan dalam suatu perusahaan berdasarkan pada model data yang spesifik, tetapi bebas dari DBMS tertentu dan pertimbangan-pertimbangan fisik lainnya.
4.1.2.1 Menghilangkan Ciri-ciri yang Tidak Sesuai Dalam Relasional
Menghilangkan tipe relasional yang many-to-many (*:*)
a. Pemesanan_Penjualan dengan Barang
Pemesanan_Penjualan dan Barang memiliki relasi Memesan *:* oleh karena itu dilakukan penghilangan many-to-many dengan menambahkan satu entitas diantaranya, yaitu Detail_Pemesanan_Penjualan.
Gambar 4.7 Menguraikan Relasi Pemesanan_Penjualan dengan Barang
b. Penjualan dengan Barang
Penjualan dan Barang memiliki relasi Mengurangi *:* oleh karena itu dilakukan penghilangan many-to-many dengan menambahkan satu entitas diantaranya, yaitu Detail_Penjualan.
Gambar 4.8 Menguraikan Relasi Penjualan Dengan Barang
c. Pengembalian_Penjualan dengan Barang
Pengembalian_Penjualan dan Barang memiliki relasi Menambah *:* oleh karena itu dilakukan penghilangan many-to-many dengan menambahkan satu entitas diantaranya, yaitu Detail_Pengembalian_Penjualan.
Gambar 4.9 Menguraikan Relasi Pengembalian_Penjualan Dengan Barang
d. Pemesanan_Pembelian dengan Barang
Pemesanan_Pembelian dan Barang memiliki relasi Memesan *:* oleh karena itu dilakukan penghilangan many-to-many dengan menambahkan satu entitas diantaranya, yaitu Detail_Pemesanan_Pembelian.
Pembelian dan Barang memiliki relasi Menambah *:* oleh karena itu dilakukan penghilangan many-to-many dengan menambahkan satu entitas diantaranya, yaitu Detail_Pembelian.
Gambar 4.11 Menguraikan Relasi Pembelian dengan Barang
f. Pengembalian_Pembelian dengan Barang
Pengembalian_Pembelian dan Barang memiliki relasi Mengurangi *:* oleh karena itu dilakukan penghilangan many-to-many dengan menambahkan satu entitas diantaranya, yaitu Detail_Pengembalian_Pembelian.
Gambar 4.12 Menguraikan Relasi Pengembalian_Pembelian dengan Barang
Menghilangkan atribut yang multi value
a. Karyawan dengan Telp
Entitas Karyawan mempunyai atribut telp yang bisa multivalue. Oleh karena itu perlu dilakukan pemisahan menjadi satu entitas baru yaitu Telp_Karyawan dengan telp sebagai primary key.
Gambar 4.13 Menguraikan Relasi yang Multi Value Pada Karyawan
b. Pemasok dengan Telp
Entitas Pemasok mempunyai atribut telp yang bisa multivalue. Oleh karena itu perlu dilakukan pemisahan menjadi satu entitas baru yaitu Telp_Pemasok dengan telp sebagai primary key.
Gambar 4.14 Menguraikan Relasi yang Multi Value Pada Pemasok
c. Pelanggan dengan Telp
Entitas Pelanggan mempunyai atribut telp yang bisa multivalue. Oleh karena itu perlu dilakukan pemisahan menjadi satu entitas baru yaitu Telp_Pelanggan dengan telp sebagai primary key.
Gambar 4.15 Menguraikan Relasi yang Multi Value Pada Pelanggan
4.1.2.2 Menurunkan Relasional Untuk Model Data Logikal Lokal
Karyawan (Kd_Karyawan, Nm_Karyawan, Alamat, Kd_Pos, No_Rekening, Jabatan)
Primary Key Kd_Karyawan
Pelanggan (Kd_Pelanggan, Nm_Pelanggan, Alamat, Fax, Email,
Kd_Pos, No_Rekening)
Primary Key Kd_Pelanggan
Pemasok (Kd_ Pemasok, Nm_ Pemasok, Alamat, Fax, Email, Kd_Pos,
No_Rekening)
Primary Key Kd_Pemasok
Barang (Kd_Barang, Nm_Barang, Tipe_Barang, Permukaan_Kulit,
Kd_Warna, Jenis_Warna, Harga_Beli_Per_Unit, Harga_Jual_Per_ Unit, Minimum_Stok, Maksimum_Stok, Jumlah_Stok)
Primary Key Kd_Barang
Pemesanan_Penjualan (Kd_Pemesanan_Penjualan, Tgl_Pemesanan_
Penjualan, Tgl_Dibutuhkan, Kd_Pelanggan, Kd_Karyawan)
Primary Key Kd_Pemesanan_Penjualan
Foreign Key Kd_Pelanggan references Pelanggan (Kd_Pelanggan) Foreign Key Kd_Karyawan references Karyawan (Kd_Karyawan)
Detail_Pemesanan_Penjualan (Kd_Pemesanan_Penjualan, Kd_Barang, Jumlah_Barang_Dipesan)
Primay Key Kd_Pemesanan_Penjualan, Kd_Barang
Foreign Key Kd_Pemesanan_Penjualan references
Detail_Pemesanan_Penjualan (Kd_Pemesanan_Penjualan)
Foreign Key Kd_Barang references Barang (Kd_ Barang)
Penjualan (Kd_Penjualan, Tgl_Penjualan, Kd_Pemesanan_Penjualan
Pajak, Total_Jual, Kd_Karyawan)
Primary Key Kd_Penjualan
Foreign Key Kd_Pemesanan_Penjualan references
Detail_Pemesanan_Penjualan (Kd_Pemesanan_Penjualan)
Foreign Key Kd_Karyawan references Karyawan (Kd_Karyawan) Detail_Penjualan (Kd_Penjualan, Kd_Barang, Jumlah_Barang_Dijual,
Foreign Key Kd_Penjualan references Penjualan (Kd_Penjualan) Foreign Key Kd_Barang references Barang (Kd_ Barang)
Pengembalian_Penjualan (Kd_Pengembalian_Penjualan,
Tgl_Pengembalian_Penjualan, Kd_Penjualan, Kd_Karyawan)
Primary Key Kd_Pengembalian_Penjualan
Foreign Key Kd_Penjualan references Penjualan (Kd_Penjualan) Foreign Key Kd_Karyawan references Karyawan (Kd_Karyawan)
Detail_Pengembalian_Penjualan (Kd_Pengembalian_Penjualan,
Kd_Barang, Jumlah_Barang_Dikembalikan, Keterangan)
Primay Key Kd_ Pengembalian_Penjualan, Kd_Barang
Foreign Key Kd_ Pengembalian_Penjualan references
Pengembalian_Penjualan (Kd_ Pengembalian_Penjualan)
Foreign Key Kd_Barang references Barang (Kd_ Barang)
Pemesanan_Pembelian (Kd_Pemesanan_Pembelian, Tgl_Pemesanan_
Pembelian, Tgl_Dibutuhkan, Kd_Pemasok, Kd_Karyawan)
Primary Key Kd_Pemesanan_ Pembelian
Foreign Key Kd_ Pemasok references Pemasok (Kd_ Pemasok) Foreign Key Kd_Karyawan references Karyawan (Kd_Karyawan) Detail_Pemesanan_Pembelian (Kd_Pemesanan_Pembelian, Kd_Barang, Jumlah_Barang_Dipesan)
Foreign Key Kd_Pemesanan_Pembelian references
Detail_Pemesanan_Pembelian (Kd_Pemesanan_Pembelian)
Foreign Key Kd_Barang references Barang (Kd_ Barang)
Pembelian (Kd_ Pembelian, Tgl_ Pembelian, Kd_Pemesanan_
Pembelian, Pajak, Total_Beli, Kd_Karyawan)
Primary Key Kd_Pembelian
Foreign Key Kd_Pemesanan_Pembelian references
Detail_Pemesanan_Pembelian (Kd_Pemesanan_Pembelian)
Foreign Key Kd_Karyawan references Karyawan (Kd_Karyawan)
Detail_Pembelian (Kd_Pembelian, Kd_Barang,
Jumlah_Barang_Dibeli, Harga_Beli, Diskon, Total)
Primary Key Kd_ Pembelian, Kd_Barang
Foreign Key Kd_ Pembelian references Pembelian (Kd_ Pembelian) Foreign Key Kd_Barang references Barang (Kd_ Barang)
Pengembalian_Pembelian (Kd_Pengembalian_Pembelian,
Tgl_Pengembalian_Pembelian, Kd_Pembelian, Kd_Karyawan)
Primary Key Kd_Pengembalian_Pembelian
Foreign Key Kd_Pembelian references Pembelian (Kd_Pembelian) Foreign Key Kd_Karyawan references Karyawan (Kd_Karyawan)
Detail_Pengembalian_Pembelian (Kd_Pengembalian_Pembelian,
Kd_Barang, Jumlah_Barang_Dikembalikan, Keterangan)
Primay Key Kd_ Pengembalian_ Pembelian, Kd_Barang
Foreign Key Kd_ Pengembalian_ Pembelian references
Pengembalian_Pembelian (Kd_ Pengembalian_ Pembelian)
Foreign Key Kd_Barang references Barang (Kd_ Barang)
Telp_Karyawan (Telp_Karyawan, Kd_Karyawan) Primary Key TelpNo_Karyawan
Foreign Key Kd_Karyawan references Karyawan (Kd_Karyawan)
Telp_Pelanggan (Telp_Pelanggan, Kd_ Pelanggan) Primary Key TelpNo_Pelanggan
Foreign Key Kd_ Pelanggan references Pelanggan (Kd_ Pelanggan)
Telp_Pemasok (Telp_Pemasok, Kd_ Pemasok) Primary Key TelpNo_Pemasok
Foreign Key Kd_ Pemasok references Pemasok (Kd_ Pemasok)
4.1.2.3 Validasi Relasional Menggunakan Normalisasi
Barang UNF
Barang = Kd_Barang + Nm_Barang + Tipe_Barang + Permukaan_Kulit + Kd_Warna + Jenis_Warna + Harga_Beli_Per_Unit + Harga_Jual_Per_Unit + Minimum_Stok + Maksimum_Stok + Jumlah_Stok
1NF
Barang = @Kd_Barang + Nm_Barang + Tipe_Barang + Permukaan_Kulit + Kd_Warna + Jenis_Warna + Harga_Beli_Per_Unit + Harga_Jual_Per_Unit + Minimum_Stok + Maksimum_Stok + Jumlah_Stok
3NF
Barang = @Kd_Barang + Nm_Barang + Tipe_Barang + Permukaan_Kulit + Kd_Warna + Harga_Beli_Per_Unit + Harga_Jual_Per_Unit + Minimum_Stok + Maksimum_Stok + Jumlah_Stok
Warna = @Kd_Warna + Jenis_Warna
Penjualan UNF
Penjualan = Kd_Penjualan + Tgl_Penjualan + Pajak + Total_Jual + Kd_Pelanggan + Kd_Karyawan
INF
Penjualan = @Kd_Penjualan + Tgl_Penjualan + Pajak + Kd_Pelanggan + Kd_Karyawan
Detail_Penjualan UNF
Detail_Penjualan = Kd_Penjualan + Kd_Barang + Jumlah_Barang_ Dijual + Harga_Jual + Diskon + Total
1NF
Detail_Penjualan = @Kd_Penjualan + @Kd_Barang + Jumlah_ Barang_Dijual + Harga_Jual + Diskon
2NF
Detal_Penjualan = @Kd_Penjualan + @Kd_Barang + Jumlah_ Barang_Dijual + Diskon
Barang = @Kd_Barang + Harga_Jual
Pembelian UNF
Pembelian = Kd_Pembelian + Tgl_Pembelian + Pajak + Total_Beli + Kd_Pemasok + Kd_Karyawan
1NF
Pembelian = @Kd_Pembelian + Tgl_Pembelian + Pajak + Kd_Pemasok + Kd_Karyawan
Detail_Pembelian UNF
Detail_Pembelian = Kd_Pembelian + Kd_Barang + Jumlah_Barang_ Dibeli + Harga_Beli + Diskon + Total
1NF
Detail_Pembelian = @Kd_Pembelian + @Kd_Barang + Jumlah_ Barang_Dibeli + Harga_Beli + Diskon
2NF
Detail_Pembelian = @Kd_Pembelian + @Kd_Barang + Jumlah_Barang_Dibeli + Diskon
4.1.3 Perancangan Basisdata Fisikal
Perancangan basisdata secara fisikal yaitu proses menghasilkan gambaran dari pelaksanaan basisdata pada penyimpan sekunder, yang menguraikan relasi dasar, berkas-berkas organisasi dan indeks yang digunakan untuk mencapai pengaksesan yang efisien pada data, dan segala ukuran keamanan dan batasan integritas yang berhubungan.
4.1.3.1 Perancangan Basisdata Relasional
Informasi yang dibutuhkan dalam perancangan basis data fisikal dapat diperoleh melalui kamus data dan mendefinisikan penggambaran relasional menggunakan Database Design Language (DBDL). Berikut ini adalah perancangan basisdata relasional untuk setiap entiti yang bertujuan untuk domain dari setiap atribut supaya user dapat mengerti penggunaan setiap atribut tersebut berdasarkan penjelasan beserta batasan yang terdapat dalam setiap atribut.
• DBDL untuk Karyawan
Domain KodeKaryawan char, length 6 Domain NamaKaryawan varchar, length 30
Domain Alamat varchar, length 100 Domain KodePos varchar, length 7 Domain NomorRekening varchar, length 14
Karyawan (
Kd_Kry KodeKaryawan NOT NULL,
Nm_Kry NamaKaryawan NOT NULL,
Alamat Alamat NOT NULL,
Kd_Pos KodePos NULL,
No_Rek NomorRekening NULL,
Jabatan Jabatan NOT NULL,
PRIMARY KEY (Kd_Kry) );
• DBDL untuk Pelanggan
Domain KodePelanggan char, length 6 Domain NamaPelanggan varchar, length 30
Domain Alamat varchar, length 100 Domain Fax varchar, length 15 Domain Email varchar, length 40 Domain KodePos varchar, length 7 Domain NomorRekening varchar, length 14 Pelanggan (
Kd_Plg KodePelanggan NOT NULL,
Nm_Plg NamaPelanggan NOT NULL,
Alamat Alamat NOT NULL,
Fax Fax NULL,
Kd_Pos KodePos NULL,
No_Rek NomorRekening NULL,
PRIMARY KEY (Kd_Plg) );
• DBDL untuk Pemasok
Domain KodePemasok char, length 6 Domain NamaPemasok varchar, length 30
Domain Alamat varchar, length 100 Domain Fax varchar, length 15 Domain Email varchar, length 40 Domain KodePos varchar, length 7 Domain NomorRekening varchar, length 14 Pemasok (
Kd_Pms KodePemasok NOT NULL,
Nm_Pms NamaPemasok NOT NULL,
Alamat Alamat NOT NULL,
Fax Fax NULL,
Email Email NULL,
Kd_Pos KodePos NULL,
No_Rek NomorRekening NULL,
PRIMARY KEY (Kd_Pms) );
• DBDL untuk Barang
Domain KodeBarang char, length 6 Domain NamaBarang varchar, length 30 Domain TipeBarang varchar, length 15 Domain PermukaanKulit varchar, length 15 Domain KodeWarna varchar, length 6 Domain HargaBeliPerUnit numeric
Domain HargaJualPerUnit numeric
Domain MinimumStok integer, antara 0-3000 Domain MaksimumStok integer, antara 1000-10000 Domain Jumlah integer, antara 0-10000 Barang (
Kd_Brg KodeBarang NOT NULL,
Nm_Brg NamaBarang NOT NULL,
Tipe_Brg TipeBarang NOT NULL, Permukaan_Kulit PermukaanKulit NULL,
Kd_Warna KodeWarna NOT NULL,
Hrg_Beli_Unit HargaBeliPerUnit NOT NULL, Hrg_Jual_Unit HargaJualPerUnit NOT NULL, Min_Stok MinimumStok NOT NULL, Max_Stok MaksimumStok NOT NULL,
Jumlah Jumlah NOT NULL
FOREIGN KEY (Kd_Warna) REFERENCES Warna (Kd_ Warna) ON UPDATE CASCADE ON DELETE SET NULL );
• DBDL untuk Warna
Domain KodeWarna char, length 6 Domain JenisWarna varchar, length 15 Warna (
Kd_Warna KodeWarna NOTNULL,
Jenis_Warna JenisWarna NOTNULL, PRIMARY KEY (Kd_Warna)
);
• DBDL untuk Pemesanan_Penjualan
Domain KodePemesananPenjualan char, length 10 Domain TanggalPemesananPenjualan date
Domain TanggalDibutuhkan date
Domain KodePelanggan char, length 6 Domain KodeKaryawan char, length 6 Pemesanan_Penjualan (
Kd_Pemesanan_Penj KodePemesananPenjualan NOT NULL, Tgl_Pemesanan_Penj TanggalPemesananPenjualan NOT NULL,
Kd_Plg KodePelanggan NOT NULL,
Kd_Kry KodeKaryawan NOT NULL,
PRIMARY KEY (Kd_Pemesanan_Penj),
FOREIGN KEY (Kd_Plg) REFERENCES Pelanggan (Kd_Plg)ON UPDATE CASCADE ON DELETE SET NULL, FOREIGN KEY (Kd_Kry) REFERENCES Karyawan (Kd_Kry)ON UPDATE CASCADE ON DELETE SET NULL );
• DBDL untuk Detail_Pemesanan_Penjualan
Domain KodePemesananPenjualan char, length 10 Domain KodeBarang varchar, length 6
Domain Jumlah integer
Detail_Pemesanan_Penjualan(
Kd_Pemesanan_Penj KodePemesananPenjualan NOT NULL,
Kd_Brg KodeBarang NOT NULL,
Jumlah Jumlah NOT NULL,
PRIMARY KEY (Kd_Pemesanan_Penj, Kd_Brg),
FOREIGN KEY (Kd_Pemesanan_Penj) REFERENCES Pemesanan_Penjualan (Kd_Pemesanan_Penj) ON UPDATE CASCADE ON DELETE SET NULL,
FOREIGN KEY (Kd_ Brg) REFERENCES Barang (Kd_ Brg) ON UPDATE CASCADE ON DELETE SET NULL
• DBDL untuk Penjualan
Domain KodePenjualan char, length 10 Domain TanggalPenjualan date
Domain KodePemesananPenjualan char, length 10 Domain Pajak integer, antara 0-10 Domain KodeKaryawan char, length 6 Penjualan (
Kd_Penj KodePenjualan NOT NULL, Tgl_Penj TanggalPenjualan NOT NULL, Kd_Pemesanan_Penj KodePemesananPenjualan NOT NULL,
Pajak Pajak NOT NULL,
Kd_Kry KodeKaryawan NOT NULL, PRIMARY KEY (Kd_Penj),
FOREIGN KEY (Kd_Pemesanan_Penj) REFERENCES Pemesanan_Penjualan (Kd_Pemesanan_Penj) ON UPDATE CASCADE ON DELETE SET NULL,
FOREIGN KEY (Kd_Kry) REFERENCES Karyawan (Kd_Kry)ON UPDATE CASCADE ON DELETE SET NULL );
• DBDL untuk Detail_Penjualan
Domain KodePenjualan char, length 10 Domain KodeBarang char, length 6
Domain JumlahBarang integer, antara 0-1000 Domain Diskon integer, antara 0-100 Detail_Penjualan (
Kd_Penj KodePenjualan NOT NULL,
Kd_Brg KodeBarang NOT NULL,
Jumlah_Brg JumlahBarang NOT NULL,
Diskon Diskon NOT NULL,
PRIMARY KEY (Kd_Penj, Kd_Brg),
FOREIGN KEY (Kd_Penj) REFERENCES Penjualan (Kd_ Penj) ON UPDATE CASCADE ON DELETE SET NULL, FOREIGN KEY (Kd_ Brg) REFERENCES Barang (Kd_ Brg) ON UPDATE CASCADE ON DELETE SET NULL );
• DBDL untuk Pengembalian_Penjualan
Domain KodePengembalianPenjualan char, length 10
Domain TanggalPengembalianPenjualan date
Domain KodePenjualan char, length 10
Domain KodeKaryawan char, length 6 Pengembalian_Penjualan (
Kd_Pengembalian_Penj KodePengembalianPenjualan NOT NULL, Tgl_Pengembalian_Penj TanggalPengembalianPenjualan NOT NULL, Kd_Penj KodePenjualan NOT NULL, Kd_Kry KodeKaryawan NOT NULL,
PRIMARY KEY (Kd_ Pengembalian _Penj),
FOREIGN KEY (Kd_Penj) REFERENCES Penjualan (Kd_Penj) ON UPDATE CASCADE ON DELETE SET NULL,
FOREIGN KEY (Kd_Kry) REFERENCES Karyawan (Kd_Kry)ON UPDATE CASCADE ON DELETE SET NULL
);
• DBDL untuk Detail_ Pengembalian _Penjualan
Domain KodePengembalianPenjualan char, length 10 Domain KodeBarang char, length 6
Domain Jumlah integer
Domain Keterangan varchar, length 100 Detail_ Pengembalian _Penjualan (
Kd_Pengembalian_Penj Kode Pengembalian Penjualan NOT NULL Kd_Brg KodeBarang NOT NULL, Jumlah Jumlah NOT NULL, Keterangan Keterangan NOT NULL,
PRIMARY KEY (Kd_ Pengembalian _Penj, Kd_Brg),
FOREIGN KEY (Kd_Pengembalian_Penj) REFERENCES Pengembalian_ Penjualan (Kd_ Pengembalian _Penj) ON UPDATE CASCADE ON DELETE SET NULL,
FOREIGN KEY (Kd_ Brg) REFERENCES Barang (Kd_ Brg) ON UPDATE CASCADE ON DELETE SET NULL
• DBDL untuk Pemesanan_Pembelian
Domain KodePemesananPembelian char, length 10 Domain TanggalPemesananPembelian date
Domain TanggalDibutuhkan date
Domain KodeKaryawan char, length 6 Pemesanan_Pembelian (
Kd_Pemesanan_Pemb KodePemesananPembelian NOT NULL, Tgl_Pemesanan_PembTanggalPemesananPembelianNOT NULL
Tgl_Butuh TanggalDibutuhkan NOT NULL,
Kd_Kry KodeKaryawan NOT NULL,
PRIMARY KEY (Kd_Pemesanan_Pemb),
FOREIGN KEY (Kd_Kry) REFERENCES Karyawan (Kd_Kry)ON UPDATE CASCADE ON DELETE SET NULL );
• DBDL untuk Detail_Pemesanan_Pembelian
Domain KodePemesananPembelian char, length 10 Domain KodeBarang char, length 6
Domain Jumlah integer
Detail_Pemesanan_Pembelian (
Kd_Pemesanan_Pemb KodePemesananPembelian NOT NULL, Kd_Brg KodeBarang NOT NULL,
PRIMARY KEY (Kd_Pemesanan_Pemb, Kd_Brg),
FOREIGN KEY (Kd_Pemesanan_Pemb) REFERENCES Pemesanan_ Pembelian (Kd_Pemesanan_Pemb) ON UPDATE CASCADE ON DELETE SET NULL,
FOREIGN KEY (Kd_ Brg) REFERENCES Barang (Kd_ Brg) ON UPDATE CASCADE ON DELETE SET NULL );
• DBDL untuk Pembelian
Domain KodePembelian char, length 10 Domain TanggalPembelian date
Domain KodePemesananPembelian char, length 10 Domain Pajak integer, antara 0-10 Domain KodeKaryawan char, length 6 Pembelian (
Kd_Pemb KodePembelian NOT NULL, Tgl_Pemb TanggalPembelian NOT NULL, Kd_Pemesanan_Pemb KodePemesananPembelian NOT NULL,
Pajak Pajak NOT NULL,
Kd_Kry KodeKaryawan NOT NULL, PRIMARY KEY (Kd_Pemb),
FOREIGN KEY (Kd_Pemesanan_Pemb) REFERENCES Pemesanan_ Pembelian (Kd_Pemesanan_Pemb) ON UPDATE
FOREIGN KEY (Kd_Kry) REFERENCES Karyawan (Kd_Kry)ON UPDATE CASCADE ON DELETE SET NULL );
• DBDL untuk Detail_Pembelian
Domain KodePembelian char, length 10 Domain KodeBarang char, length 6
Domain JumlahBarang integer, antara 0-1000 Domain Diskon integer, antara 0-100 Detail_Pembelian (
Kd_Pemb KodePembelian NOT NULL, Kd_Brg KodeBarang NOT NULL, Jumlah_Brg JumlahBarang NOT NULL,
Diskon Diskon NOT NULL,
PRIMARY KEY (Kd_Pemb, Kd_Brg),
FOREIGN KEY (Kd_Pemb) REFERENCES Pembelian (Kd_Pemb) ON UPDATE CASCADE ON DELETE SET NULL,
FOREIGN KEY (Kd_ Brg) REFERENCES Barang (Kd_ Brg) ON UPDATE CASCADE ON DELETE SET NULL );
Domain KodePengembalianPembelian char, length 10 Domain TanggalPengembalian Pembelian date
Domain KodePembelian char, length 10 Domain KodeKaryawan char, length 6 Pengembalian_Pembelian (
Kd_Pengembalian_Pemb KodePengembalianPembelian NOT NULL Tgl_Pengembalian_Pemb TanggalPengembalianPembelian NOT NULL, Kd_Pemb KodePembelian NOT NULL, Kd_Kry KodeKaryawan NOT NULL, PRIMARY KEY (Kd_ Pengembalian _Pemb),
FOREIGN KEY (Kd_Pemb) REFERENCES Pembelian(Kd_Pms)ON UPDATE CASCADE ON DELETE SET NULL,
FOREIGN KEY (Kd_Kry) REFERENCES Karyawan (Kd_Kry)ON UPDATE CASCADE ON DELETE SET NULL
);
• DBDL untuk Detail_ Pengembalian _Pembelian
Domain KodePengembalianPembelian char, length 10 Domain KodeBarang char, length 6
Domain Jumlah integer
Domain Keterangan varchar, length 100 Detail_ Pengembalian _Pembelian (
Jumlah Jumlah NOT NULL, Keterangan Keterangan NOT NULL, PRIMARY KEY (Kd_ Pengembalian _Pemb, Kd_Brg),
FOREIGN KEY (Kd_Pengembalian_Pemb) REFERENCES Pengembalian_ Pembelian (Kd_ Pengembalian_Pemb) ON UPDATE CASCADE ON DELETE SET NULL,
FOREIGN KEY (Kd_ Brg) REFERENCES Barang (Kd_ Brg) ON UPDATE CASCADE ON DELETE SET NULL
);
• DBDL untuk Telp_Karyawan
Domain TelponKaryawan varchar, length 6 Domain KodeKaryawan char, length 6 Telp_Karyawan (
Telp_Kry TelponKaryawan NOT NULL, Kd_Kry KodeKaryawan NOT NULL, PRIMARY KEY (Telp_Kry),
FOREIGN KEY (Kd_Kry) REFERENCES Karyawan (Kd_ Kry) ON UPDATE CASCADE ON DELETE SET NULL );
• DBDL untuk Telp_Pelanggan
Domain Kode Pelanggan char, length 6 Telp_ Pelanggan (
Telp_Plg Telpon Pelanggan NOT NULL, Kd_Plg Kode Pelanggan NOT NULL, PRIMARY KEY (Telp_Plg),
FOREIGN KEY (Kd_Plg) REFERENCES Pelanggan (Kd_Plg) ON UPDATE CASCADE ON DELETE SET NULL
);
• DBDL untuk Telp_Pemasok
Domain TelponPemasok varchar, length 6 Domain KodePemasok char, length 6 Telp_Pemasok (
Telp_Pms TelponPemasok NOT NULL, Kd_Pms KodePemasok NOT NULL, PRIMARY KEY (Telp_Pms),
FOREIGN KEY (Kd_Pms) REFERENCES Pemasok (Kd_ Pms) ON UPDATE CASCADE ON DELETE SET NULL );
4.1.3.2 Rancangan Data Turunan
Data turunan adalah atribut yang nilainya diketahui dengan mengetahui nilai dari atribut lain. Data turunan yang terjadi dalam penelitian ini, antara lain :
• Total (tabel penjualan) adalah hasil perhitungan dari perkalian jumlah barang dengan harga jual dikurangi dengan diskon.
• Total jual (tabel penjualan) adalah perhitungan dari penjumlahan total yang ada pada tabel detail penjualan ditambah pajak.
• Total (tabel pembelian) adalah hasil perhitungan dari perkalian jumlah barang dengan harga beli dikurangi dengan diskon.
• Total beli (tabel pembelian) adalah perhitungan dari penjumlahan total yang ada pada tabel detail pembelian ditambah pajak.
4.1.3.3 Estimasi Kebutuhan Disk
Tujuan dari langkah ini adalah untuk menghitung kapasitas penyimpanan yang dibutuhkan oleh basis data.
Perkiraan kebutuhan disk setiap Tabel adalah sebagai berikut:
Field Type Ukuran
Kd_Kry Varchar (6) 6 Nm_Kry Varchar (30) 30 Alamat Varchar (100) 100 Kd_Pos Varchar (7) 7 No_Rekening Varchar (14) 14 Jabatan Varchar (10) 10
Kapasitas dari tabel Karyawan adalah 167 byte
Diperkirakan dalam 1 bulan terjadi pertambahan ± 5 karyawan baru Dalam 1 tahun pertumbuhan tabel ini adalah 12 * 5 * 167 = 10020 byte atau 97.852 kbyte
Field Type Ukuran
Telp_Kry Varchar (15) 15
Kd_Kry Varchar (6) 6
Kapasitas dari tabel Telp_Karyawan adalah 21 byte
Diperkirakan dalam 1 bulan terjadi pertambahan ± 150 telp karyawan Dalam 1 tahun pertumbuhan tabel ini adalah 12 * 150 * 21 = 37800 byte atau 36.914 kbyte
Tabel 4.15 Estimasi Telp_Karyawan
Field Type Ukuran
Kd_Plg Varchar (6) 6 Nm_Plg Varchar (30) 30 Alamat Varchar (100) 100 Fax Varchar (15) 15 Email Varchar (40) 40 Kd_Pos Varchar (7) 7 No_Rekening Varchar (14) 14
Kapasitas dari tabel Pelanggan adalah 212 byte
Diperkirakan dalam 1 bulan terjadi pertambahan ±42 pelanggan baru Dalam 1 tahun pertumbuhan tabel ini adalah 12 * 42 * 212 = 106848 byte atau 104.344 kbyte
Tabel 4.16 Estimasi Pelanggan
Field Type Ukuran
Telp_Plg Varchar (15) 15
Kd_Plg Varchar (6) 6
Kapasitas dari tabel Telp_Pelanggan adalah 21 byte
Diperkirakan dalam 1 bulan terjadi pertambahan ± 126 telp pelanggan Dalam 1 tahun pertumbuhan tabel ini adalah 12 * 126 * 21 = 320544 byte atau 313.031 kbyte
Tabel 4.17 Estimasi Telp_Pelanggan
Field Type Ukuran
Kd_Pms Varchar (6) 6 Nm_Pms Varchar (30) 30 Alamat Varchar (100) 100 Fax Varchar (15) 15 Email Varchar (40) 40 Kd_Pos Varchar (7) 7 No_Rekening Varchar (14) 14
Kapasitas dari tabel Pemasok adalah 212 byte
Diperkirakan dalam 1 bulan terjadi pertambahan ± 0 pemasok baru Dalam 1 tahun pertumbuhan tabel ini adalah 12 * 0 * 212 = 0 byte atau 0 kbyte
Field Type Ukuran
Telp_Pms Varchar (15) 15
Kd_Pms Varchar (6) 6
Kapasitas dari tabel Telp_Pemasok adalah 21 byte
Diperkirakan dalam 1 bulan terjadi pertambahan ± 0 telp pemasok Dalam 1 tahun pertumbuhan tabel ini adalah 12 * 0 * 21 = 0 byte atau 0 kbyte
Tabel 4.19 Estimasi Telp_Pemasok
Field Type Ukuran
Kd_Brg Varchar (6) 6 Nm_ Brg Varchar (30) 30 Tipe_ Brg Varchar (15) 15 Permukaan_Kulit Varchar (15) 15 Kd_Warna Varchar (6) 6 Jenis_Warna Varchar (15) 15 Harga_Beli_Per_Unit Numeric 4 Harga_Jual_Per_Unit Numeric 4 Minimum_Stok Integer 4 Maksimum_Stok Integer 4 Jumlah_Stok Integer 4
Kapasitas dari tabel Barang adalah 107 byte
Diperkirakan dalam 1 bulan terjadi pertambahan ± 150 barang baru Dalam 1 tahun pertumbuhan tabel ini adalah 12 * 150 * 107 = 192600 byte atau 188.086 kbyte
Tabel 4.20 Estimasi Barang
Field Type Ukuran
Kd_Warna Varchar (6) 6
Jenis_Warna Varchar (15) 15
Kapasitas dari tabel Warna adalah 21 byte
Diperkirakan dalam 1 bulan terjadi pertambahan ± 60 warna
Dalam 1 tahun pertumbuhan tabel ini adalah 12 * 60 * 21 = 15120 byte atau 14.766 kbyte
Tabel 4.21 Estimasi Warna
Field Type Ukuran
Kd_Pemesanan_Penj Varchar (10) 10
Tgl_Pemesanan_Penj Date/Time 8
Tgl_Butuh Date/Time 8
Kd_Plg Varchar (6) 6
Kd_Kry Varchar (6) 6
Diperkirakan dalam 1 bulan terjadi pertambahan ± 300 pemesanan penjualan Dalam 1 tahun pertumbuhan tabel ini adalah 12 * 300 * 38 = 136800 byte atau 133.594 kbyte
Tabel 4.22 Estimasi Pemesanan_Penjualan
Field Type Ukuran
Kd_Pemesanan_Penj Varchar (10) 10
Kd_Brg Varchar (6) 6
Jumlah Integer 4 Kapasitas dari tabel Detail_Pemesanan_Penjualan adalah 20 byte
Diperkirakan dalam 1 bulan terjadi pertambahan ± 600 detail pemesanan penjualan Dalam 1 tahun pertumbuhan tabel ini adalah 12 * 600 * 20 = 144000 byte
atau 140.625 kbyte
Tabel 4.23 Estimasi Detail_Pemesanan_Penjualan
Field Type Ukuran
Kd_Penj Varchar (10) 10 Tgl_Penj Date/Time 8 Kd_Pemesanan_Penj Varchar (10) 10 Pajak Numeric 4 Kd_Plg Varchar (6) 6 Kd_Kry Varchar (6) 6
Kapasitas dari tabel Penjualan adalah 44 byte
Diperkirakan dalam 1 bulan terjadi pertambahan ± 575 penjualan
Dalam 1 tahun pertumbuhan tabel ini adalah 12 * 575 * 44 = 303600 byte atau 296.484 kbyte
Tabel 4.24 Estimasi Penjualan
Field Type Ukuran
Kd_Penj Varchar (10) 10
Kd_Brg Varchar (6) 6
Jumlah_Brg Integer 4
Diskon Integer 4
Kapasitas dari tabel Detail_Penjualan adalah 24 byte
Diperkirakan dalam 1 bulan terjadi pertambahan ± 1150 detail penjualan Dalam 1 tahun pertumbuhan tabel ini adalah 12 * 1150 * 24 = 331200 byte atau 323.438 kbyte
Tabel 4.25 Estimasi Detail_Penjualan
Field Type Ukuran
Kd_Pengembalian_Penj Varchar (10) 10
Tgl_Pengembalian_Penj Date/Time 8
Kd_Penj Varchar (10) 10
Kapasitas dari tabel Pengembalian_Penjualan adalah 40 byte
Diperkirakan dalam 1 bulan terjadi pertambahan ± 100 pengembalian penjualan Dalam 1 tahun pertumbuhan tabel ini adalah 12 * 100 * 40 = 48000 byte
atau 46.875 kbyte
Tabel 4.26 Estimasi Pengembalian_Penjualan
Field Type Ukuran
Kd_Pengembalian_Penj Varchar (10) 10
Kd_Brg Varchar (6) 6
Jumlah Integer 4
Keterangan Varchar (100) 100
Kapasitas dari tabel Detail_Pengembalian_Penjualan adalah 120 byte
Diperkirakan dalam 1 bulan terjadi pertambahan ± 200 detail pengembalian penjualan Dalam 1 tahun pertumbuhan tabel ini adalah 12 * 200 * 120 = 288000 byte
atau 281.250 kbyte
Tabel 4.27 Estimasi Detail_Pengembalian_Penjualan
Field Type Ukuran
Kd_Pemesanan_Pemb Varchar (10) 10
Tgl_Pemesanan_Pemb Date/Time 8
Tgl_Butuh Date/Time 8
Kd_Pms Varchar (6) 6
Kd_Kry Varchar (6) 6
Kapasitas dari tabel Pemesanan_Pembelian adalah 38 byte
Diperkirakan dalam 1 bulan terjadi pertambahan ± 325 pemesanan pembelian Dalam 1 tahun pertumbuhan tabel ini adalah 12 * 325 * 44 = 148200 byte atau 144.727 kbyte
Tabel 4.28 Estimasi Pemesanan_Pembelian
Field Type Ukuran
Kd_Pemesanan_Pemb Varchar (10) 10
Kd_Brg Varchar (6) 6
Jumlah Integer 4
Kapasitas dari tabel Detail_Pemesanan_Pembelian adalah 20 byte
Diperkirakan dalam 1 bulan terjadi pertambahan ± 650 detail pemesanan pembelian Dalam 1 tahun pertumbuhan tabel ini adalah 12 * 650 * 120 = 156000 byte
atau 152.344 kbyte
Tabel 4.29 Estimasi Detail_Pemesanan_Pembelian
Field Type Ukuran
Kd_Pemb Varchar (10) 10
Tgl_Pemb Date/Time 8
Kd_Pemesanan_Pemb Varchar (10) 10
Pajak Integer 4
Kd_Kry Varchar (6) 6 Kapasitas dari tabel Pembelian adalah 44 byte
Diperkirakan dalam 1 bulan terjadi pertambahan ± 635 pembelian
Dalam 1 tahun pertumbuhan tabel ini adalah 12 * 635 * 44 = 335280 byte atau 327.422 kbyte
Tabel 4.30 Estimasi Pembelian
Field Type Ukuran
Kd_Pemb Varchar (10) 10
Kd_Brg Varchar (6) 6
Jumlah_Brg Integer 4
Diskon Integer 4
Kapasitas dari tabel Detail_Pembelian adalah 24 byte
Diperkirakan dalam 1 bulan terjadi pertambahan ± 1270 detail pembelian Dalam 1 tahun pertumbuhan tabel ini adalah 12 * 1270 * 24 = 365760 byte atau 357.188 kbyte
Tabel 4.31 Estimasi Detail_Pembelian
Field Type Ukuran
Kd_Pengembalian_Pemb Varchar (10) 10
Tgl_Pengembalian_Pemb Date/Time 8
Kd_Pemb Varchar (10) 10
Kd_Pms Varchar (6) 6
Kd_Kry Varchar (6) 6
Kapasitas dari tabel Pengembalian_Pembelian adalah 40 byte
Diperkirakan dalam 1 bulan terjadi pertambahan ± 100 pengembalian pembelian Dalam 1 tahun pertumbuhan tabel ini adalah 12 * 100 * 40 = 48000 byte
atau 46.875 kbyte
Tabel 4.32 Estimasi Pengembalian_Pembelian
Field Type Ukuran
Kd_Pengembalian_Pemb Varchar (10) 10
Kd_Brg Varchar (6) 6
Jumlah Integer 4
Keterangan Varchar (100) 100
Kapasitas dari tabel Detail_Pengembalian_Pembelian adalah 120 byte
Diperkirakan dalam 1 bulan terjadi pertambahan ± 200 detil pengembalian pembelian Dalam 1 tahun pertumbuhan tabel ini adalah 12 * 200 * 120 = 288000 byte
atau 281.250 kbyte
Nama Tabel Kapasitas dalam 1 tahun Karyawan 97.852 kbyte Telp_Karyawan 36.914 kbyte Pelanggan 104.344 kbyte Telp_Pelanggan 313.031 kbyte Pemasok 0 kbyte Telp_Pemasok 0 kbyte Barang 188.086 kbyte Warna 14.766 kbyte Pemesanan_Penjualan 133.594 kbyte Detail_Pemesanan_Penjualan 140.625 kbyte Penjualan 296.484 kbyte Detail_Penjualan 323.438 kbyte Pengembalian_Penjualan 46.875 kbyte Detail_Pengembalian_Penjualan 281.250 kbyte Pemesanan_Pembelian 144.727 kbyte Detail_Pemesanan_Pembelian 152.344 kbyte Pembelian 327.422 kbyte Detail_Pembelian 357.188 kbyte Pengembalian_Pembelian 46.875 kbyte Detail_Pengembalian_Pembelian 281.250 kbyte
Total space yang dibutuhkan dalam 1 tahun adalah 3287.063 kbyte
Total space yang dibutuhkan dalam 5 tahun adalah 5 * 3287.063 = 16435.313 kbyte atau 16.051 Mbyte.
4.1.3.4 Pemilihan DBMS
Pemilihan DBMS merupakan pemilihan dari DBMS tertentu untuk mendukung aplikasi basisdata. Jika tidak ada DBMS, suatu bagian yang tepat dari siklus hidup yang mana untuk membuat suatu pemilihan adalah di antara tahap perancangan basisdata konseptual dan logikal.
Di bawah ini merupakan perbandingan DBMS antara Microsoft Access dengan Microsoft SQL Server 2000 yaitu :
Microsoft Access 2000 Microsoft SQL 2000
Mendukung Sistem Operasi dengan Windows 95, Windows 98, Windows 98 Second Edition, Windows Millennium Edition (Windows ME), Windows NT 4.0 dengan Service Pack 6 (SP 6), Windows 2000, atau Windows XP.
Mendukung platform Windows, termasuk Windows 9x, Windows NT, Windows 2000, dan Windows XP
Processor yang dibutuhkan adalah Pentium 75 MHz atau yang lebih tinggi.
Processor yang dibutuhkan adalah Pentium 166 MHz atau yang lebih tinggi. Dibutuhkan 8 MB RAM untuk Access
2000, ditambah 4 MB RAM untuk setiap aplikasi agar bekerja secara simultan, ditambah memory untuk Sistem Operasi : * 16 MB RAM untuk Windows 95 atau
Windows 98
Memory yang dibutuhkan adalah 32 MB RAM (minimum untuk Desktop Engine), 64 MB RAM (minimum untuk semua edisi lainnya), 128 MB RAM.
* 32 MB RAM untuk Windows ME atau Windows NT
* 64 MB RAM untuk Windows 2000 * 128 MB RAM untuk Windows XP
Ruang Hard Disk yang diperlukan melebihi 30 MB dari ruang Hard Disk
Ruang Hard Disk yang perlu disediakan adalah 270 MB (full installation), 250 MB (typical), 95 MB (minimum).
Desktop Engine : 44 MB
Analysis Services : 50 MB (minimum) dan 130 MB (typical)
English Query : 80 MB
Mampu menampung hingga 2 GB Mampu menampung hingga 1.045.516 TB
Tabel 4.35 Perbandingan antara Microsoft Access dan Microsoft SQL Server 2000
Adapun DBMS yang digunakan untuk perancangan basisdata pada PT. Intrapenta Jaya Sakti adalah SQL Server 2000.
4.1.3.5 Analisa Transaksi
Tujuan dari langkah ini adalah untuk memahami fungsionalitas dari transaksi yang akan berjalan pada basis data dan untuk menganalisa transaksi yang penting. Transaksi-transaksi yang terjadi adalah sebagai berikut:
b. Menambah dan mengubah data pemasok c. Menambah dan mengubah data pelanggan d. Menambah dan mengubah data barang e. Menambah dan mengubah data warna f. Mencatat transaksi order pembelian g. Mencatat transaksi invoice pembelian h. Mencatat transaksi retur pembelian i. Mencatat transaksi order penjualan j. Mencatat transaksi invoice penjualan k. Mencatat transaksi retur penjualan l. Membuat laporan pembelian m. Membuat laporan penjualan n. Membuat laporan persediaan
I=insert; R=read; U=Update; D=Delete
Tabel 4.36 Analisa Transaksi (1)
Transaksi/ ( A ) ( B ) ( C ) ( D ) ( E ) ( F ) ( G ) relasi I R U D I R U D I R U D I R U D I R U D I R U D I R U D Karyawan X X Telp_Karyawan X X Pelanggan X X Telp_Pelanggan X X Pemasok X X Telp_Pemasok X X Barang X X Warna X X Pemesanan_Penjualan Detail_Pemesanan_Penjualan Penjualan Detail_Penjualan Pengembalian_Penjualan Detail_Pengembalian_Penjualan Pemesanan_Pembelian X Detail_Pemesanan_Pembelian X Pembelian X Detail_Pembelian X Pengembalian_Pembelian Detail_Pengembalian_Pembelian
I=insert; R=read; U=Update; D=Delete Transaksi/ ( H ) ( I ) ( J ) ( K ) ( L ) ( M ) ( N ) relasi I R U D I R U D I R U D I R U D I R U D I R U D I R U D Karyawan Telp_Karyawan Pelanggan Telp_Pelanggan Pemasok Telp_Pemasok Barang X Warna Pemesanan_Penjualan X X Detail_Pemesanan_Penjualan X Penjualan X X Detail_Penjualan X Pengembalian_Penjualan X Detail_Pengembalian_Penjualan X Pemesanan_Pembelian X Detail_Pemesanan_Pembelian Pembelian X Detail_Pembelian Pengembalian_Pembelian X Detail_Pengembalian_Pembelian X
4.1.3.6 Merancang Mekanisme Keamanan
Berikut ini adalah perancangan mekanisme keamanan yang meliputi pembuatan user dengan menggunakan syntax SQL untuk memberikan hak pengaksesan data sesuai dengan jabatan operator oleh admin. Sebagai contoh adalah Jesse Chandra dari bagian marketing :
Membuat user
Create user Jesse Chandra identified by admin;
Membuat jabatan (Role)
Create role operator to Jesse Chandra As MarketingExecutive;
Memberi hak pengaksesan
Grant select on Pelanggan for Jesse Chandra; Grant select on Telp_Pelanggan for Jesse Chandra; Grant select, insert, update on Barang for Jesse Chandra; Grant select, insert, update on Warna for Jesse Chandra; Grant select, insert, update, on Penjualan for Jesse Chandra; Grant select on Detail_Penjualan for Jesse Chandra;
Grant select on Pengembalian_Penjualan for Jesse Chandra; Grant select on Detail_Pengembalian_Penjualan for Jesse Chandra;
4.2 Perancangan Aplikasi
Perancangan aplikasi berikut merupakan rancangan yang akan digunakan oleh perusahaan. Di dalam perancangan aplikasi berikut terdapat perancangan struktur menu-menu untuk tiap jabatan seperti admin dan operator. Kemudian dilanjutkan
dengan pembuatan State Transition Diagram (STD) beserta dengan spesifikasi prosesnya.
4.2.1 Bagan Terstruktur
Berikut ini adalah rancangan bagan terstruktur dari aplikasi yang dibuat :
Gambar 4.17 Struktur Menu
4.2.2 State Transition Diagram
Berikut ini adalah State Transition Diagram yang merupakan gambaran tentang perubahan kondisi aplikasi jika dijalankan :
Gambar 4.19 STD Menu User
Gambar 4.20 STD Submenu Login
Gambar 4.21.1 STD Menu Master
Gambar 4.21.4 STD Menu Laporan
Gambar 4.21.5 STD Menu Setting
Gambar 4.21.9 STD Submenu Barang
Gambar 4.21.11 STD Submenu Jok
Gambar 4.21.13 STD Submenu Order Pembelian
Gambar 4.21.14 STD Submenu Invoice Pembelian
Gambar 4.21.15 STD Submenu Retur Pembelian
Gambar 4.21.16 STD Submenu Order Penjualan
Gambar 4.21.17 STD Submenu Invoice Penjualan
Gambar 4.21.19 STD Submenu Laporan Pembelian
Gambar 4.21.20 STD Submenu Laporan Penjualan
Gambar 4.21.22 STD Submenu User Baru
Gambar 4.21.23 STD Submenu Ganti Password
Gambar 4.22.1 STD Menu Master
Gambar 4.22.2 STD Menu Pembelian
Gambar 4.22.5 STD Submenu Pemasok
Gambar 4.22.7 STD Submenu Kulit
Gambar 4.22.9 STD Submenu Warna
Gambar 4.22.10 STD Submenu Order Pembelian
Gambar 4.22.11 STD Submenu Invoice Pembelian
Gambar 4.22.13 STD Submenu Laporan Pembelian
Gambar 4.22.14 STD Submenu Laporan Persediaan
Gambar 4.23 STD Login Status Marketing Executive
Gambar 4.23.1 STD Menu Master
Gambar 4.23.2 STD Menu Laporan
Gambar 4.23.4 STD Submenu Pelanggan
Gambar 4.23.6 STD Submenu Kulit
Gambar 4.23.8 STD Submenu Warna
Gambar 4.23.9 STD Submenu Order Penjualan
Gambar 4.23.12 STD Submenu Laporan Penjualan
Gambar 4.23.13 STD Submenu Ganti Password
Gambar 4.24.1 STD Menu Pembelian
Gambar 4.24.2 STD Menu Setting
Gambar 4.24.3 STD Submenu Order Pembelian
Gambar 4.24.6 STD Submenu Ganti Password
Gambar 4.25 STD Login Status Sales
Gambar 4.25.2 STD Menu Setting
Gambar 4.25.3 STD Submenu Order Penjualan
Gambar 4.25.4 STD Submenu Invoice Penjualan
4.2.3 Spesifikasi Modul
Untuk merepresentasikan sistem database pada PT. Intrapenta Jaya Sakti, dibuat sebuah program yang dirancang menggunakan Microsoft Visual Basic 6.0 serta program database menggunakan SQL Server 2000.
• Modul Master Karyawan
Private sub tombol batal_klik Bersihkan text box
End sub
Private sub tombol hapus_klik Menghapus data yang dipilih End sub
Private sub tombol simpan_klik Menyimpan data yang dimasukan End sub
Private sub tombol tambah_klik Bersihkan text
End sub
Private sub tombol ubah_klik Ubah data yang ingin diubah End sub
• Modul Master Jok
Private sub tombol batal_klik Bersihkan text box
End sub
Private sub tombol hapus_klik Menghapus data yang dipilih End sub
Private sub tombol simpan_klik Menyimpan data yang dimasukan End sub
Private sub tombol tambah_klik Bersihkan text
End sub
Private sub tombol ubah_klik Ubah data yang ingin diubah End sub
• Modul Order Pembelian
Private sub tombol tambah_klik
Keluar dari aplikasi order pembelian Tampilkan form tambah order pembelian End sub
• Modul Invoice Pembelian
Private sub tombol tambah_klik
Keluar dari aplikasi invoice pembelian Tampilkan form tambah invoice pembelian End sub
• Modul Retur Pembelian
Private sub tombol tambah_klik
Keluar dari aplikasi retur pembelian Tampilkan form tambah retur pembelian End sub
• Modul Order Penjualan
Private sub tombol tambah_klik
Keluar dari aplikasi order penjualan Tampilkan form tambah order penjualan End sub
• Modul Invoice Penjualan
Private sub tombol tambah_klik
Keluar dari aplikasi invoice penjualan Tampilkan form tambah invoice penjualan End sub
• Modul Retur Penjualan
Private sub tombol tambah_klik
Keluar dari aplikasi retur penjualan Tampilkan form tambah retur penjualan End sub
• Modul Tambah Order Pembelian
Private sub tombol cetak_klik() Tampilkan order pembelian
End sub
Private sub tombol simpan_klik() Menyimpan data yang dimasukan End sub
Private sub tombol hapus_klik() Menghapus data yang dipilih End sub
Private sub tombol tambah_klik()
Menyimpan data yang dimasukan ke dalam flexgrid End sub
Private sub tombol ubah_klik() Mengubah data yang disimpan End sub
• Modul Tambah Invoice Pembelian
Private sub hitung_klik()
Jumlahkan total pada flexgrid yang ada pada setiap barang Hasil penjumlahan ditambah dengan pajak
End sub
Private sub tombol simpan_klik() Menyimpan data yang dimasukan End sub
End sub
• Modul Tambah Invoice Penjualan
Private sub tombol cetak_klik() Tampilkan invoice penjualan End sub
Private sub hitung_klik()
Jumlahkan total pada flexgrid yang ada pada setiap barang Hasil penjumlahan ditambah dengan pajak
End sub
Private sub tombol simpan_klik() Menyimpan data yang dimasukan End sub
Private sub tombol ubah_klik() Mengubah data yang disimpan End sub
• Modul Tambah Retur Penjualan
Private sub tombol simpan_klik() Menyimpan data yang dimasukan End sub
Private sub tombol tambah_klik() Menyimpan data yang dimasukan End sub
Private sub tombol ubah_klik() Mengubah data yang disimpan End sub
• Modul Laporan Pembelian
Private sub tombol cetak_klik() JIKA option order diisi MAKA
Tampilkan laporan order pembelian
SELAIN ITU JIKA option invoice diisi MAKA Tampillkan laporan invoice pembelian SELAIN ITU JIKA option retur diisi MAKA
Tampilkan laporan retur pembelian AKHIR JIKA
End sub
• Modul Laporan Penjualan
Private sub tombol cetak_klik() JIKA option order diisi MAKA Tampilkan laporan order penjualan
SELAIN ITU JIKA option invoice diisi MAKA Tampilkan laporan invoice penjualan
SELAIN ITU JIKA option retur diisi MAKA Tampilkan laporan retur penjualan
AKHIR JIKA End sub
• Modul Laporan Persediaan
Private sub tombol cetak_klik()
Tampilkan laporan persediaan barang dari kode yang sudah dipilih sampai kode yang dipilih
End sub
4.3 Perancangan Input dan Output
Berikut adalah kumpulan dari perancangan input dan output pada aplikasi :
4.3.1 Perancangan Input
Gambar-gambar di bawah ini merupakan rancangan input dari aplikasi yang akan dijalankan, yang berfungsi sebagai sarana untuk memasukkan data ke dalam aplikasi :
1. Halaman Menu
2. Master Pelanggan
Gambar 4.27 Halaman Master Pelanggan
4. Invoice Pembelian
Gambar 4.29 Halaman Invoice Pembelian
5. Retur Penjualan
6. Laporan Pembelian
Gambar 4.31 Halaman Laporan Pembelian
7. Laporan Penjualan
Gambar 4.32 Halaman Laporan Penjualan
4.3.2 Perancangan Output
Gambar-gambar di bawah ini merupakan rancangan output dari aplikasi yang akan dijalankan, yang berfungsi sebagai sarana untuk menampilkan data dari aplikasi :
1. Laporan Order Pembelian
Gambar 4.33 Laporan Order Pembelian
2. Laporan Invoice Penjualan
3. Laporan Persediaan Barang
Gambar 4.35 Laporan Persediaan Barang
4.4 Rencana Implementasi
Rencana implementasi berikut meliputi tata laksana sistem, hasil dan juga
evaluasi dari kegunaan aplikasi yang dirancang. Berikut ini merupakan tabel rancang proyek dan implementasi, antara lain :
Tabel 4.38 Rencana Implementasi
No. Kegiatan Bulan ke-1 Bulan ke-2 Bulan ke-3 Bulan ke-4 Bulan ke-5 Bulan ke-6 Bulan ke-7
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 Analisis masalah * * 2 Pengumpulan data * * * 3 Perancangan basisdata * * * * * 4 Pembuatan aplikasi * * * * * * * * 5 Install aplikasi * 6 Training user * * 7 Konversi/input data * * * * 8 Maintenance * * * *
4.4.1 Tata Laksana Sistem
Berikut ini merupakan bagian dari tata laksana sistem yang meliputi spesifikasi hardware, spesifikasi software dan cara pengoperasian aplikasi.
4.4.1.1 Spesifikasi Perangkat Keras
Topologi yang digunakan adalah topologi star dan akan digambarkan dibawah ini:
• Topologi Star
Beberapa klien dihubungkan dengan server, yang membentuk jaringan fisik seperti bintang, semua komunikasi data ditangani langsung dan dikelola oleh host yang berupa komputer server.
Gambar 4.36 Topologi LAN
Berikut ini adalah spesifikasi perangkat keras paling minimum yang dibutuhkan perusahaan untuk menjalankan aplikasi yang akan diterapkan. Spesifikasi perangkat keras yang dibutuhkan di bagi atas
Kebutuhan minimum untuk sebuah komputer server : - Processor Pentium IV 2.0 GHz - Memory 256 MB
- Hard Disk 40 GB
Kebutuhan minimum untuk sebuah komputer client : - Processor Pentium III
- Memory 128 MB - Hard Disk 20 GB
4.4.1.2 Spesifikasi Perangkat Lunak
Spesifikasi perangkat lunak paling minimum yang dibutuhkan perusahaan untuk menjalankan aplikasi dibagi menjadi dua, yaitu : - Kebutuhan minimum untuk sebuah Server adalah SQL Server 2000
dan Windows Operating System.
- Kebutuhan minimum untuk sebuah Client adalah SQL Client dan Windows Operating System
4.4.1.3 Jadwal Pengolahan Data
Berikut ini merupakan jadwal pengolahan data untuk setiap table dan proses pengolahan data dibagi atas 3 jenis, yaitu :
- Update
Nama Tabel Per Hari Per Minggu Per Bulan Bila Perlu
Karyawan X
Telp_Karyawan X
Telp_Pelanggan X Pemasok X Telp_Pemasok X Barang X Warna X Pemesanan_Penjualan X Detail_Pemesanan_Penjualan X Penjualan X Detail_Penjualan X Pengembalian_Penjualan X Detail_Pengembalian_Penjualan X Pemesanan_Pembelian X Detail_Pemesanan_Pembelian X Pembelian X Detail_Pembelian X Pengembalian_Pembelian X Detail_Pengembalian_Pembelian X
Tabel 4.39 Jadwal Update Data
- BackUp
Nama Tabel Per Hari Per Minggu Per Bulan Bila Perlu
Karyawan X Telp_Karyawan X Pelanggan X Telp_Pelanggan X Pemasok X Telp_Pemasok X Barang X Warna X Pemesanan_Penjualan X Detail_Pemesanan_Penjualan X Penjualan X Detail_Penjualan X Pengembalian_Penjualan X Detail_Pengembalian_Penjualan X Pemesanan_Pembelian X Detail_Pemesanan_Pembelian X Pembelian X Detail_Pembelian X
Detail_Pengembalian_Pembelian X
Tabel 4.40 Jadwal Backup Data
- Cetak Laporan
Nama Tabel Per Hari Per Minggu Per Bulan Bila Perlu
Barang X X Pemesanan_Penjualan X X Detail_Pemesanan_Penjualan X X Penjualan X X Detail_Penjualan X X Pengembalian_Penjualan X Detail_Pengembalian_Penjualan X Pemesanan_Pembelian X X Detail_Pemesanan_Pembelian X X Pembelian X X Detail_Pembelian X X Pengembalian_Pembelian X Detail_Pengembalian_Pembelian X
Tabel 4.41 Jadwal Cetak Laporan
4.4.1.4 Cara Pengoperasian Aplikasi
Pada sub bab ini akan dijelaskan mengenai cara penggunaan aplikasi yang akan diterapkan pada perusahaan PT. Intrapenta Jaya Sakti.
FORM LOGIN
Gambar 4.37 Tampilan Layar Submenu Login
Masukan kode user dan password pada textbox. Jika tombol Ok diklik maka aplikasi akan melakukan beberapa pengecekan antara lain jika ada salah satu textbox kosong maka akan keluar pesan kesalahan, memeriksa apakah kode user yang dimasukan ada dalam database atau tidak, jika ada maka akan di cek apakah password yang dimasukan benar atau salah. Jika kode user yang dimasukan dan password sama maka menu yang akan aktif bervariasi tergantung pada jabatan dan status masing-masing karyawan.
FORM MASTER KARYAWAN
Gambar 4.38 Tampilan Layar Submenu Karyawan
Pada saat tombol tambah diklik maka semua textbox akan dikosongkan kecuali pada textbox kode karyawan yang akan secara otomatis bertambah satu dari data yang terakhir. Jika tombol simpan diklik maka data yang ada pada textbox akan disimpan ke dalam database. Jika tombol batal yang diklik maka textbox akan dikosongkan. Saat tombol ubah diklik maka data yang ada pada textbox dapat diubah dan untuk menyimpannya klik tombol simpan. Tombol hapus dapat digunakan untuk menghapus data.
FORM MASTER PEMASOK
Gambar 4.39 Tampilan Layar Submenu Pemasok
Pada saat tombol tambah diklik maka semua textbox akan dikosongkan kecuali pada textbox kode pemasok yang akan secara otomatis bertambah satu dari data yang terakhir. Jika tombol simpan diklik maka data yang ada pada textbox akan disimpan ke dalam database. Jika tombol batal yang diklik maka textbox akan dikosongkan. Saat tombol ubah diklik maka data yang ada pada textbox dapat diubah dan untuk menyimpannya klik tombol simpan. Tombol hapus dapat digunakan untuk menghapus data.
FORM MASTER PELANGGAN
Gambar 4.40 Tampilan Layar Submenu Pelanggan
Pada saat tombol tambah diklik maka semua textbox akan dikosongkan kecuali pada textbox kode pelanggan yang akan secara otomatis bertambah satu dari data yang terakhir. Jika tombol simpan diklik maka data yang ada pada textbox akan disimpan ke dalam database. Jika tombol batal yang diklik maka textbox akan dikosongkan. Saat tombol ubah diklik maka data yang ada pada textbox dapat diubah dan untuk menyimpannya klik tombol simpan. Tombol hapus dapat digunakan untuk menghapus data.