Design Database adalah salah satu hal penting yang perlu diperhatikan dalam membuat aplikasi perkantoran. Dalam membuat design database, ikutilah kaidah-kaidah yang pernah kita dapatkan semasa kuliah, terutama Normalisasi, minimal sampai dengan bentuk 3NF. Kesalahan dalam membuat design database dapat berakibat fatal, misalnya sulit membuat coding dan men-generate report yang kita inginkan. Dan jika sampai harus mengubah design database maka akan banyak waktu terbuang karena kita harus menyesuaikan kembali coding yang sudah dibuat sebelumnya. Oleh karena itu sediakanlah waktu dan pikiran yang cukup dalam men-design database ini.
Artikel ini adalah bagian dari artikel berseri tentang Tutorial Membuat Aplikasi Inventory Sederhana Menggunakan VB.net dan Database MySQL.
Dalam membuat design database Aplikasi Inventory atau Aplikasi Stok Barang ini, kami juga menyengajakan diri untuk membuat design database menggunakan bahasa inggris, tujuannya selain melatih skill bahasa inggris kita, juga untuk melatih diri kita, siapa tahu aplikasi ini akan di-publish menjadi open source, atau kita berkesempatan berkontribusi dalam project open source lain.
Berdasarkan analisa dan design aplikasi yang tertuang dalam artikel sebelumnya, maka kita memerlukan sejumlah table untuk menyimpan data-data Barang dan Transaksi Keluar Masuk Barang. Untuk itu, sejumlah table yang diperlukan antara lain:
Tabel Barang
Table untuk menampung data master barang ini akan kita beri nama items. Data dictionary lengkapnya adalah sebagai berikut:
No. | Nama Field | Tipe Data | Keterangan |
---|---|---|---|
1. | id | integer | Primary Key, Auto Increment |
2. | code | varchar(20) | Kode barang berupa text bebas maksimal 20 karakter, bisa digunakan sebagai barcode |
3. | name | varchar(100) | Nama barang maksimal 100 karakter |
4. | quantity_on_hand | decimal(10,2) | Quantity barang terakhir yang saat ini ada di gudang |
5. | remarks | text | Keterangan lebih lengkap tentang barang bersangkutan |
Tabel Jenis Transaksi
Tabel ini akan berisi kode untuk menentukan jenis transaksi dan kita beri nama transaction_types. Untuk aplikasi ini akan ada 2 (dua) jenis transaksi yaitu Transaksi Barang Masuk (kita beri kode BM) dan Transaksi Barang Keluar (kita beri kode BK). Data dictionary lengkapnya adalah sebagai berikut:
No. | Nama Field | Tipe Data | Keterangan |
---|---|---|---|
1. | id | integer | Primary Key, Auto Increment |
2. | code | varchar(20) | Kode jenis transaksi berupa text bebas maksimal 20 karakter |
3. | name | varchar(100) | Nama panjang yang lebih deskriptif, maksimal 100 karakter |
Tabel Transaksi
Tabel ini akan berisi seluruh transaksi inventory dari aplikasi yang akan kita buat. Untuk membedakan Transaksi Barang Masuk dengan Transaksi Barang Keluar kita sediakan field type_id yang merupakan Foreign Key yang me-refer ke . Data dictionary lengkapnya adalah sebagai berikut:
No. | Nama Field | Tipe Data | Keterangan |
---|---|---|---|
1. | id | integer | Primary Key, Auto Increment |
2. | type_id | integer | Foreign Key refer ke tabel transaction_types, untuk membedakan Transaksi Barang Masuk atau Keluar |
3. | trans_code | varchar(100) | Nama panjang yang lebih deskriptif, maksimal 100 karakter |
4. | trans_date | date | Tanggal transaksi |
5. | remarks | text | Teks bebas untuk keterangan, silakan mengarang di field ini juga boleh |
Tabel Detil Transaksi
Tabel ini akan berisi seluruh transaksi inventory dari aplikasi yang akan kita buat. Untuk membedakan Transaksi Barang Masuk dengan Transaksi Barang Keluar kita sediakan field type_id yang merupakan Foreign Key yang me-refer ke . Data dictionary lengkapnya adalah sebagai berikut:
No. | Nama Field | Tipe Data | Keterangan |
---|---|---|---|
1. | id | integer | Primary Key, Auto Increment |
2. | trans_id | integer | Foreign Key refer ke tabel transactions, untuk record detil transaksi ini milik transaksi yang mana |
3. | item_id | integer | Foreign Key refer ke tabel items, untuk menentukan barang mana yang harus diubah status stock-nya |
4. | quantity | decimal(10,2) | Jumlah barang yang masuk atau keluar |
5. | remarks | text | Teks bebas untuk keterangan, silakan mengarang di field ini juga boleh |
Diagram ER
Diagram ER menggunakan notasi IDEF1X dari desain database untuk aplikasi inventory sederhana ini adalah sebagai berikut.
Script Database
Sedangkan script sql create table-nya adalah sebagai berikut.
create table items ( id int auto_increment primary key, code varchar(20) not null, name varchar(100) not null, quantity_on_hand decimal(10,2) not null default 0, remarks text null ) ; create table transaction_types ( id int auto_increment primary key, code varchar(20) not null, name varchar(100) not null ) ; create table transactions ( id int auto_increment primary key, type_id int not null, trans_code varchar(20) not null, trans_date varchar(100) not null, remarks text null, foreign key(type_id) references transaction_types(id) ) ; create table transaction_details ( id int auto_increment primary key, trans_id int not null, item_id int not null, quantity decimal(10,2) not null default 0, remarks text null, foreign key (trans_id) references transactions(id), foreign key (item_id) references items(id) ) ;
Simpulan
Dengan demikian selesailah sudah proses analisa dan desain kita. Dengan tersedianya Design Aplikasi dan Design Database, maka langkah selanjutnya kita bisa membuat Aplikasi-nya dengan lebih mudah dan terarah.
^_^