Ngoding jadi pusing karena lupa.

Breaking

Saturday, November 24

November 24, 2018

DESIGN DATABASE PROJECT POS (Point of Sales)

Sebelumnya saya sudah mengatakan, jika saya akan membuat catatan tentang bagaimana saya membuat aplikasi Point of Sales sederhana dan memiliki beberapa fitur yang sudah saya sebutkan sebelumnya di catatan saya yang ini.

Ok, untuk memulainya saya awali dengan melakukan design databasenya terlebih dahulu. Saya sadar saya bukan designer yang baik, tapi saya mencoba mendesign database untuk project ini sesuai dengan apa yang sudah saya sebutkan fitur apa saja yang akan dimasukkan kedalam project ini.


Langsung saja saya Create database dengan nama "pos".
Click gambar untuk memperbesar gambar

Selanjutnya silahkan import file pos.sql yang bisa di download dari sini ke dalam database yang baru saja dibuat.

link yang baru saja saya tuliskan adalah link dimana project yang saya catat ini akan saya letakkan. sehingga anda bisa dengan mudah untuk mendownloadnya. Untuk file pos.sql saya letakkan di dalam folder database.

berikut ini adalah sketsa dari relasi yang saya buat antara semua table yang sudah saya buat.
Click gambar untuk memperbesar gambar
saya akan jelaskan kenapa untuk sebuah aplikasi PoS sederhana butuh table sebanyak itu.
saya akan jelaskan table per table nya. (Semoga tidak salah dan tidak membosankan).

1. History 

table ini saya buat untuk mencatat apa saja yang sudah di lakukan oleh pengguna (admin ataupun kasir) terhadap data. Jadi nantinya ketika si user melakukan update data ataupun insert data maka akan di catat ke dalam table ini. supaya jika suatu saat ada data yang berubah, bisa di deteksi siapa sih yang melakukan itu. 
field kode disitu di gunakan untuk menyimpan kode dari data yang di insert / pun dirubah.

create_at akan otomatis mengambil time dari komputer ketika data di simpan.
create_by akan menyimpan kode atau id dari user yang melakukan proses ini.

2. Users
table ini digunakan untuk menyimpan data dari penggunanya (username, password dan lain-lain).

3. Menu
Table ini saya buat untuk menyimpan data dari menu atau fitur apa saja yang ada di dalam aplikasi ini nantinya.

4. Otoritas

Jika dilihat dari sketsa pada gambar diatas, pada table ini akan menyimpan kode_menu dan juga kode_user. Di dalam table ini nantinya akan meyimpan si user ini memiliki hak akses akan menu apa saja.

Dalam table yang memiliki relasi, ketika dua buah table berelasi dengan tipe (M to M) atau Many to Many maka akan menciptakan table baru.
sesuai dengan note diatas, karena talbe Users dan table Menu memiliki relasi dengan type (M to M) maka muncullah table baru yang disini saya beri nama Otoritas. 

Kenapa saya sebut M to M ?
karena 1 data users bisa memiliki banyak data menu.

dan juga 1 data menu bisa dimiliki banyak users.

Untuk lebih jelasnya nanti akan saya contohkan ketika dalam project. 


5. Kategori
Table ini hanya digunakan untuk menyimpan beberapa data untuk membantu mengelompokkan jenis barang.

6. Barang
Sesuai namanya, Table ini akan digunakan untuk menyimpan data dari barang - barang yang akan dijual oleh pengguna.

7. Satuan
Table ini saya buat untuk menyimpan jenis-jenis satuan dari barang. Misalnya (piece, liter, Kg, butir, dll).

8. Jenis_promo

Karena promo ada beberapa jenis dan ketentuan, maka dari itu saya buat table sendiri untuk menyimpan jenis dan ketentuannya. Oleh sebab itu saya buat field rumus di dalam table ini. fungsi field ini adalah untuk membuat rumus perhitungan tersendiri untuk jenis promo tertentu, misalnya 
(Diskon 10% + 90%) atau contoh lainnya (Beli 3 gratis 1 produk yang sama) dan lainnya.

9. Promo

Table ini saya buat untuk menyimpan promo yang sedang terjadi. Misalnya barang ini sedang ada promo dari tanggal sekian hingga sekian. Nah data tersebut saya simpan di table ini.

10. Transaksi
Ketika ada pembeli melakukan pembelian, dan akan ada data yang berkurang karena sudah di beli, maka hal ini perlu di catat supaya bisa tau, kemana dan kapan suatu barang terjual.

11. Detail_transaksi
Karena ketika suatu transaksi terjadi, pembeli bisa saja membeli suatu barang lebih dari satu jenis. Supaya data tetap tercatat secara detail, maka dari itu saya membuat table ini untuk menyimpan detail dari suatu transaksi.
Misalnya :
pembeli membeli beberapa produk, yang salah satunya ternyata ada promonya, maka harganya akan berubah, data tentang harga yang berubah ini perlu di simpan supaya bisa tau kenapa barang yang dijual sekian, tetapi uang yang masuk tidak sesuai.

Ok, itulah penjelasnnya kenapa saya membuat begitu banyak table.
Terimakasih banyak.
Ikuti terus catatan ini, hingga project ini selesai ya..

Silahkan tinggalkan komentarnya...