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 kedalam sebuah 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 Jeffry B-01 Sepatu 10-03-03 5 185.000 925.000 Dosen : Berliano Ruska, M. Kom. 61
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 item data 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 Jeffry 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 Jika 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 dalam pencarian data dan bersifat unik (tidak sama). Dari bentuk 1NF diatas kita dapat menentukan kunci kandidat yaitu : Dosen : Berliano Ruska, M. Kom. 62
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 TABEL BARANG Kode Barang Nama Barang Aturan lain pada proses normalisasi adalah : diperbolehkannya menambah item data yang dibutuhkan dan berhubungan dengan data tersebut, untuk saat ini kita menambahkan item harga 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 Jeffry TABEL BARANG Kode Barang * Nama Barang Harga Barang Satuan Barang Stok Barang TABEL SUPPLIER Kode Supplier Nama Supplier Dosen : Berliano Ruska, M. Kom. 63
Pada file supplier ini kita menambahkan item data Nomor Telpon dan Alamat Supplier, sehingga akan didapat hasil sebagai berikut KODE NAMA NOMOR ALAMAT SUPPLIER SUPPLIER TELEPON SUPPLIER S-01 Geovani 856850 Jl. Paus S-02 Jeffry 856860 Jl. Belimbing TABEL SUPPLIER Kode Supplier * Nama Supplier Nomor Telepon Alamat Supplier 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 TABEL PEMBELIAN Nomor Faktur Tanggal Beli Kode Supplier Kode Barang Jml Beli Harga Beli 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 dalam dua tabel atau lebih. dan yang tidak kalah pentingnya adalah masih adanya data yang sama untuk jenis yang sama ditulis berulangulang. 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. Dosen : Berliano Ruska, M. Kom. 64
FILE MASTER PEMBELIAN NO TANGGAL KODE FAKTUR BELI SUPPLIER 999 07-03-03 S-01 1000 10-03-03 S-02 TABEL MASTER PEMBELIAN Tanggal Beli Kode Supplier 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 DETAIL PEMBELIAN Kode Barang ** Jml Beli Harga Beli Dosen : Berliano Ruska, M. Kom. 65
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 TABEL PELANGGAN Kode pelanggan Nama pelanggan Pada file pelanggan ini kita menambahkan item data Nomor Telpon dan Alamat pelanggan, sehingga akan didapat hasil sebagai berikut KODE NAMA NOMOR ALAMAT PELANGGAN PELANGGAN TELEPON PELANGGAN P-01 Andi 856850 Jl. Nangka P-02 Rudi 856860 Jl. Manggis TABEL PELANGGAN Kode pelanggan * Nama pelanggan Nomor Telepon Alamat pelanggan Dosen : Berliano Ruska, M. Kom. 66
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 TABEL PENJUALAN Nomor Faktur Tanggal Jual Kode Pelanggan Kode Barang Jml Jual Harga Jual FILE MASTER PENJUALAN NO TANGGAL KODE FAKTUR JUAL PELANGGAN 999 07-03-03 P-01 1000 10-03-03 P-02 TABEL MASTER PENJUALAN Tanggal Jual Kode Pelanggan 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 TABEL DETAIL PENJUALAN Kode Barang ** Jml Jual Harga Jual Setelah Tabel 3NF selesai, maka langkah selanjutnya adalah pengujian terhadap hasil rancangan database, dilakukan dengan cara mengecek hubungan / relationship antar tabel. Jika tidak terdapat hubungan / relasi antar database, maka perancangan database yang saudara lakukan GAGAL TOTAL!!!. Berikut ini adalah hasil penghubungan / relasional antar file. Dosen : Berliano Ruska, M. Kom. 67
TABEL DETAIL PEMBELIAN TABEL MASTER PEMBELIAN TABEL BARANG Kode Barang * Nama Barang Harga Barang Satuan Barang Stok Barang Kode Barang ** Jml Beli Harga Beli TABEL DETAIL PENJUALAN Kode Barang ** Jml Jual Harga Jual Tanggal Beli Kode Supplier ** TABEL MASTER PENJUALAN Tanggal Jual Kode Pelanggan ** TABEL SUPPLIER Kode Supplier * Nama Supplier Nomor Telepon Alamat Supplier TABEL PELANGGAN Kode pelanggan * Nama pelanggan Nomor Telepon Alamat pelanggan Dengan memanfaatkan hasil normalisasi untuk transaksi tunai diatas, tugas anda : 1. Untuk No. BP ganjil buat program untuk penjualan 2. Untuk No. BP genap buat program untuk pembelian 3. 1 kelompok maksimal 3 orang Dosen : Berliano Ruska, M. Kom. 68