J ava Programming Dosen : Berliano Ruska, M. Kom. 61
Diketahui sebuah Faktur Pembelian Barang seperti dibawah ini :
FAKTUR PEMBELIAN BARANG No Faktur : 999 Kode Supplier : S-01 Tgl Faktur : 07-03-2003 Nama Supplier : Geovani
KODE NAMA JUMLAH HARGA JUMLAH BARANG BARANG BELI BARANG BAYAR B-01 Sepatu 10 175.000 1.750.000 B-02 Baju 9 75.000 675.000 Total Rp 2.425.000 Terbilang : dua juta empat ratus dua puluh lima ribu rupiah
Hormat kami,
Kasir
Dari contoh faktur diatas, kita akan mencoba melakukan proses normalisasi sesuai dengan tahapan-tahapannya. Dari faktur diatas kita akan mencoba menyusunnya menjadi sebuah tabel UNF (bentuk tidak normal). Adapun cara perancangan tabel UNF ini adalah sebagai berikut.
1. Menyusun semua data yang diketahui kedalamsebuah tabel 2. Kelompokkan / Urutkan data-data yang anda anggap saling berkaitan
dengan berpedoman pada 2 cara diatas, maka akan didapatkan hasil perancangan tabel UNF sebagai berikut:
NO KODE NAMA KODE NAMA TANGGAL JML HARGA JUMLAH FAKTUR SUPPLIER SUPPLIER BARANG BARANG BELI BELI BELI BAYAR 999 S-01 Geovani B-01 Sepatu 07-03-03 10 175.000 1.750.000 999 S-01 Geovani B-02 Baju 07-03-03 9 75.000 675.000 1000 S-02 J effry B-01 Sepatu 10-03-03 5 185.000 925.000
Project Mandiri (Transaksi Tunai) Advanced Database Programming J ava Programming Dosen : Berliano Ruska, M. Kom. 62
Setelah tabel unf selesai kita buat, maka kita telah menyelesaikan tahapan awal dari proses normalisasi. Selanjutnya adalah membentuk tabel 1NF (Bentuk Normal Pertama). Bentuk normal pertama ini tidak jauh berbeda bahkan mungkin saja sama dengan bentuk tidak normal. Adapun cara-caranya adalah sebagai berikut.
1. Kelompokkan / urutkan data data yang menurut anda saling berhubungan / berkaitan. 2. Lengkapi semua data-datanya. 3. Buang / singkirkan setiap itemdata yang merupakan hasil proses matematika.
Hasil perancangan tabel 1NF berbentuk Flat File.
NO KODE NAMA KODE NAMA TANGGAL JML HARGA FAKTUR SUPPLIER SUPPLIER BARANG BARANG BELI BELI BELI 999 S-01 Memet B-01 Sepatu 07-03-03 10 175.000 999 S-01 Memet B-02 Baju 07-03-03 9 75.000 1000 S-02 J effry B-01 Sepatu 10-03-03 5 185.000
Sampai pada tahap ini kita telah memiliki satu file dengan sembilan field, yang tentu saja masih memiliki banyak kelemahan yaitu :
1. Inserting / Penyisipan Kita tidak bisa memasukkan data supplier saja, karena dengan hanya menyisipkan data supplier saja maka banyak field yang tidak lengkap, dengan kata lain data supplier hanya bisa ditambahkan jika terjadi transaksi pembelian.
2. Updating / Pengubahan Dengan adanya penulisan kode dan nama supplier berulang-ulang, maka, jika suatu waktu terjadi perubahan pada nama supplier kita harus merubah semua data yang mengandung hal tersebut. Hal ini sangat mempengaruhi kinerja dan konsistensi database yang kita rancang.
3. Deleting / Penghapusan J ika kita melakukan penghapusan data barang B-01, maka seluruh data yang berkaitan dengan B-01 akan ikut terhapus.
4. Redundancy data Perekaman data yang sama secara berulang-ulang.
Setelah kita mendapatkan tabel 1NF dengan segala karakteristik dan kelemahan-kelemahannya, maka langkah kita selanjutnya adalah membentuk tabel bentuk normal ke dua (2NF). Tabel 2NF ini dibentuk dengan cara mencari kunci-kunci field yang dapat dipakai sebagai patokan dalampencarian data dan bersifat unik (tidak sama). Dari bentuk 1NF diatas kita dapat menentukan kunci kandidat yaitu :
Project Mandiri (Transaksi Tunai) Advanced Database Programming J ava Programming Dosen : Berliano Ruska, M. Kom. 63
Nomor Faktur Kode Supplier Kode Barang
Dengan ketiga kunci diatas, buatlah tiga buah tabel, pisahkan semua elemen data yang berkaitan dengan nomor faktur, kode supplier, dan kode barang, lalu kelompokkan ke tabel-tabel yang telah ditentukan. Hasil perancangan 2NF adalah sebagai berikut.
TABEL BARANG
KODE NAMA BARANG BARANG B-01 Sepatu B-02 Baju
Aturan lain pada proses normalisasi adalah : diperbolehkannya menambah itemdata yang dibutuhkan dan berhubungan dengan data tersebut, untuk saat ini kita menambahkan itemharga barang, satuan barang dan stok barang (anda boleh menambahkan yang lainnya jika dianggap perlu). Sehingga akan didapat hasil sebagai berikut
KODE NAMA HARGA SATUAN STOK BARANG BARANG BARANG BARANG BARANG B-01 Sepatu 175000 Pasang 15 B-02 Baju 75000 Helai 7
TABEL SUPPLIER
KODE NAMA SUPPLIER SUPPLIER S-01 Geovani S-02 J effry
TABEL BARANG
Kode Barang Nama Barang TABEL SUPPLIER
Kode Supplier Nama Supplier TABEL BARANG
Kode Barang *
Nama Barang Harga Barang Satuan Barang Stok Barang Project Mandiri (Transaksi Tunai) Advanced Database Programming J ava Programming Dosen : Berliano Ruska, M. Kom. 64
Pada file supplier ini kita menambahkan itemdata Nomor Telpon dan Alamat Supplier, sehingga akan didapat hasil sebagai berikut
KODE NAMA NOMOR ALAMAT SUPPLIER SUPPLIER TELEPON SUPPLIER S-01 Geovani 856850 J l. Paus S-02 J effry 856860 J l. Belimbing
TABEL PEMBELIAN
NO TANGGAL KODE KODE JML HARGA FAKTUR BELI SUPPLIER BARANG BELI BELI 999 07-03-03 S-01 B-01 10 180000 999 07-03-03 S-01 B-02 9 80000 1000 10-03-03 S-02 B-01 5 185000
Setelah kita melakukan pemecahan tabel seperti diatas maka sebagian dari pertanyaan atau kondisi yang harus dipenuhi telah terjawab. Tapi ada satu PERMASALAHAN lagi..!!! pada tabel pembelian, field jumlah beli dan harga tidak hanya tergantung pada nomor faktur, tetapi tergantung juga pada kode supplier, tanggal beli, dan kode barang. Hal ini disebut dengan ketergantungan transitif dan harus dipisahkan dalamdua tabel atau lebih. dan yang tidak kalah pentingnya adalah masih adanya data yang sama untuk jenis yang sama ditulis berulang- ulang. Berdasarkan permasalahan yang masih terjadi, maka dilakukan proses normalisasi tahap selanjutnya, yakni pembentukan tabel 3NF. Tabel 3NF ini mempunyai syarat tidak boleh ada ketergantungan transitif dan harus bergantung sepenuhnya pada kunci utama. Hasil perancangannya sebagai berikut.
TABEL SUPPLIER
Kode Supplier *
Nama Supplier Nomor Telepon Alamat Supplier TABEL PEMBELIAN
Nomor Faktur Tanggal Beli Kode Supplier Kode Barang J ml Beli Harga Beli Project Mandiri (Transaksi Tunai) Advanced Database Programming J ava Programming Dosen : Berliano Ruska, M. Kom. 65
FILE MASTER PEMBELIAN
NO TANGGAL KODE FAKTUR BELI SUPPLIER 999 07-03-03 S-01 1000 10-03-03 S-02
FILE DETAIL PEMBELIAN
NOMOR KODE JML HARGA FAKTUR BARANG BELI BELI 999 B-01 10 175.000 999 B-02 9 80.000 1000 B-01 5 185.000
TABEL MASTER PEMBELIAN
Nomor Faktur *
Tanggal Beli Kode Supplier TABEL DETAIL PEMBELIAN
Nomor Faktur *
Kode Barang ** J ml Beli Harga Beli Project Mandiri (Transaksi Tunai) Advanced Database Programming J ava Programming Dosen : Berliano Ruska, M. Kom. 66
Diketahui sebuah Daftar Penjualan Barang seperti dibawah ini :
DAFTAR PENJUALAN BARANG BULAN MARET 2003
NO KODE NAMA KODE NAMA TANGGAL JML HARGA TOTAL FAKTUR PELANGGAN PELANGGAN BARANG BARANG JUAL JUAL JUAL BAYAR 999 P-01 Andi B-01 Sepatu 07-03-03 10 180.000 1.800.000 999 P-01 Andi B-02 Baju 07-03-03 9 80.000 720.000 1000 P-02 Rudi B-01 Sepatu 10-03-03 5 185.000 925.000
TABEL PELANGGAN
KODE NAMA PELANGGAN PELANGGAN P-01 Andi P-02 Rudi
Pada file pelanggan ini kita menambahkan itemdata Nomor Telpon dan Alamat pelanggan, sehingga akan didapat hasil sebagai berikut
KODE NAMA NOMOR ALAMAT PELANGGAN PELANGGAN TELEPON PELANGGAN P-01 Andi 856850 J l. Nangka P-02 Rudi 856860 J l. Manggis
TABEL PELANGGAN
Kode pelanggan Nama pelanggan TABEL PELANGGAN
Kode pelanggan *
Nama pelanggan Nomor Telepon Alamat pelanggan Project Mandiri (Transaksi Tunai) Advanced Database Programming J ava Programming Dosen : Berliano Ruska, M. Kom. 67
TABEL PENJUALAN
NO TANGGAL KODE KODE JML HARGA FAKTUR JUAL PELANGGAN BARANG JUAL JUAL 999 07-03-03 P-01 B-01 10 180.000 999 07-03-03 P-01 B-02 9 80.000 1000 10-03-03 P-02 B-01 5 185.000
FILE MASTER PENJUALAN
NO TANGGAL KODE FAKTUR JUAL PELANGGAN 999 07-03-03 P-01 1000 10-03-03 P-02
FILE DETAIL PENJUALAN
NOMOR KODE JML HARGA FAKTUR BARANG JUAL JUAL 999 B-01 10 180000 999 B-02 9 80000 1000 B-01 5 185000
Setelah Tabel 3NF selesai, maka langkah selanjutnya adalah pengujian terhadap hasil rancangan database, dilakukan dengan cara mengecek hubungan / relationship antar tabel. J ika tidak terdapat hubungan / relasi antar database, maka perancangan database yang saudara lakukan GAGAL TOTAL !!!. Berikut ini adalah hasil penghubungan / relasional antar file.
TABEL MASTER PENJUALAN
Nomor Faktur *
Tanggal Jual Kode Pelanggan TABEL PENJUALAN
Nomor Faktur Tanggal Jual Kode Pelanggan Kode Barang J ml J ual Harga Jual TABEL DETAIL PENJUALAN
Nomor Faktur *
Kode Barang ** J ml J ual Harga Jual Project Mandiri (Transaksi Tunai) Advanced Database Programming J ava Programming Dosen : Berliano Ruska, M. Kom. 68
Dengan memanfaatkan hasil normalisasi untuk transaksi tunai diatas, tugas anda :
1. Untuk No. BP ganjil buat programuntuk penjualan 2. Untuk No. BP genap buat programuntuk pembelian 3. 1 kelompok maksimal 3 orang TABEL BARANG
Kode Barang *
Nama Barang Harga Barang Satuan Barang Stok Barang TABEL MASTER PEMBELIAN
Nomor Faktur *
Tanggal Beli Kode Supplier ** TABEL DETAIL PEMBELIAN
Nomor Faktur *
Kode Barang **
J ml Beli Harga Beli TABEL SUPPLIER
Kode Supplier *
Nama Supplier Nomor Telepon Alamat Supplier TABEL DETAIL PENJUALAN
Nomor Faktur *
Kode Barang ** J ml J ual Harga Jual TABEL MASTER PENJUALAN