Rancangan Database ANALISIS DATA DAN DESAIN SISTEM BERBASIS

4. Jika proses login berhasil, maka aplikasi kasir siap digunakan, dan program akan mengarah ke halaman utama transaksi. Kasir dapat mengoprasikan aplikasi ini menggunkan tombol keyboard tertentu yang telah ditetapkan untuk halaman transaksi. 5. Jika jam kerja shift kasir berakhir, dengan menekan tombol keyboard tertentu maka akan dicetak rejap transaksi yang dilakukan kasir selama jam kerjanya tadi. 6. Jika mini market sudah tutup, kasir yang mendapat shift terakhir mencetak rekap transaksi yang dilakukan. 7. Demi keamanan data, ketika ingin keluar dari aplikasi kasir, user harus logout.

3.4 Rancangan Database

Sebelum membat rancangan database, perlu diketahui pengertian database dan kenapa diperlukan. Database dapat didefinisakan sebagai kumpulan dari item data file atau tabel yang salaing berhubungan satu dengan yang lain yang diorganisasi berdasarkan sebuah skema atau struktur tertentu, tersimpan dalam perangkat keras komputer, dan digunakan perangkat lunak untuk memanipulasi. Sedangkan, kenapa database diperlukan berikut ini adalah jawabannya. 1. Database merupakan salah satu komponen penting dalam sistem informasi, karena merupakan dasar dalam menyediakan informasi. 2. Mampu menentukan kualitas informasi, meliputi akurasi, tepat pada waktunya, dan relevan. Karena informasi dapat dikatakan bernilai apabila manfaatnya lebih besar dengan biaya yang dipelukan. 3. Dapat mereduksi duplikasi data data redudancy dan mengurangi pemborosan tempat simpanan luar. 3.4.1 Mendefinisikan Objek Data Sebelum merancang sebuah database dan memprogram aplikasi, perlu ditetapkan data apa saja yang dibutuhkan dan apa saja yang akan dihasilkan oleh sistem yang dibangun. Secara umum, berikut ini adalah data minimal yang dibutuhkan dalam aplikasi mini market 1. Data Mini Market Dalam rangka membangun program aplikasi yang dinamis, tentunya data ini perlu dikelola tersendiri, meskipun hanya terdiri dari nama, alamat, dan nomor telpon. Dengan demikian jika nantinya aplikasi yang dibangun digunakan untuk cabang yang lain, dengan prosedur dan sistem yang sama, tidak perlu dilakukan perubahan total, tetapi cukup dengan mengganti data ini. 2. Data Kategori Data ini nantinya digunakan untuk mengelompokkan komoditas usaha barang berdasarkan kategori atau jenis tertentu. 3. Data Barang Data barang merupakan data pokok. Data ini merupakan objek data utama, karena hampir seluruh objek data dan alur sistem aplikasi berhubungan dengan data ini. Lingkup data ini meliputi barang, stok barang, dan barang rusak atau hilang. 4. Data Subjek Data subjek terdiri dari subjek yang terlibat langsung dengan aplikasi seperti pegawai, pengguna aplikasi, penyedia barang supplier. 5. Data Pembayaran Data pembayaran terdiri dari jenis pembayaran, baik pada transaksi pembelian dan penjualan.

3.4.2 Merancang Database

MySQL merupakan sistem basis data relasional dimana data diorganisasikan dalam bentuk tabel. Untuk dapat menciptakan sebuah tabel, sebuah database harus dibuat terlebih dahulu. Untuk lebih mudahnya database yang akan dibuat diberi nama datatokocs. Dalam database ini nantinya akan dibuat beberapa tabel yang dibutuhkan oleh aplikasi yang akan dibangun, baik aplikasi admin maupun kasir.

3.4.2.1 Tabel Utama

Tabel utama merupakan tabel yang secara fisik harus dibuat untuk meyimpan data secara permanen. Berikut ini adalah daftar tabel utama lengkap dengan keterangan dan deskripsinya. Daftar tebel disini tidak diurutkan berdasarkan tingkat kepentingan atau kompleksitas, tetapi diurutkan berdasarkan abjad A-Z. 1. Tabel Barang Barang yang dimaksud adalah komoditas usaha sebuah mini market. Data barang terdiri dari kode, nama, dan atribut barang lainya. Data barang akan disimpan dalam tabel yang bernama tbarang dengan struktur sebagai berikut. Tabel 3.1 Struktur Tabel tbarang Field Type Null Key Default Extra username varchar20 No Pri Auto Increment password varchar20 No Uni level enumadmin,guru,walikelas,siswa No nip char18 No nis char5 No Mul status char1 No Mul Keterangan :  id_barang merupakan primary key pada tabel tbarang yang digunakan untuk menyimpan data id barang.  kode_barang digunakan untuk menyimpan data kode barang.  nama_barang digunakan untuk menyimpan data nama barang.  singkatan digunakan untuk menyimpan data kependekan nama barang.  id_merk digunakan untuk menyimpan data merk barang. Field ini merupakan foreign key dari field id_merk pada tabel tmerk.  id_kategori digunakan untuk menyimpan data kategori barang. Field ini merupakan foreign key dari field id_kategori pada tabel tkategori.  id_satuan digunakan untuk menyimpan data satuan barang. Field ini merupakan foreign key dari field id_satuan pada tabel tsatuan.  harga_jual digunakan untuk menyimpan data harga jual barang.  barcode digunakan untuk menyimpan data barcode barang. 2. Tabel Barang Rusak Dalam usaha retail, resiko kerusakan atau kehilanagn suatau barang sangat besar. Oleh karenanya perlu dibuat tabel tersendiri untuk pengolahan data ini. Barang yang termasuk hilang atau rusak akan disimpan dalam tabel yang bernama tbarangrusak dengan stuktur sebagai berikut. Tabel 3.2 Struktur Tabel tbarangrusak Field Type Null Key Default Extra id int10 No pri NULL Auto increment id_barang int10 No mull tgl date No harga_beli double No harga_jual double No qty double No ket text No Keterangan :  id merupakan primary key pada tabel tbarangrusak yang digunakan untuk menyimpan id data sebuah tabel.  id_barang digunakan untuk menyimpan data id barang barang. Field ini merupakan foreign key dari field id_barang pada tabel tbarang.  tgl digunakan untuk menyimpan data tanggal pencatatan barang sebagai barang rusak atau hilang.  harga_beli digunakan untuk menyimpan data harga beli barang rusak.  harga_jual digunakan untuk menyimpan data harga jual barang rusak.  qty digunakan untuk menyimpan data kuantitas barang rusak.  Ket digunakan untuk menyimpan data keteranagan tentang kerusakan barang yang dianggap perlu. 3. Tabel Jabatan Pegawai Data jabatan pegawai akan disimpan dalam tabel yang bernama tjabatan dengan struktur sebagai berikut. Tabel 3.3 Struktur Tabel tjabatan Field Type Null Key Default Extra id_jabatan int10 No Pri Auto increment jabatan varchar200 No Keterangan :  id_jabatan merupakan primary key pada tabel tjabatan yang digunakan untuk menyimpan id jabatan pegawai.  jabatan digunakan untuk menyimpan data nama jabatan. 4. Tabel Kassa Data kassa akan disimpan dalam tabel yang bernama tkasaa dengan struktur sebagai berikut. Tabel 3.4 Struktur Tabel tkassa Field Type Null Key Default Extra id_kassa smallint5 No Pri Auto increment no_kassa smallint5 No ip_address varchar20 No folder_sharing varchar50 No Null folder_datapenjualan varchar50 No Null Keterangan :  id_kassa merupakan primary key pada tabel tkassa yang digunakan untuk menyimpan id kassa.  no_kasaa digunakan untuk menyimpan data nomor kasa.  ip_address digunakan untuk menyimpan data alamat path folder sharing. Dalam implementasinya folder ini digunakan untuk menyimpan file bacup database atau keperluan lainnya.  folder_datapenjualan digunakan untuk menyimpan data alamat path folder penjualan. Dalam implementasinya folder ini digunakan untuk menyipan file backup data transaksi penjualan masing-masing kassa. 5. Tabel Kategori Barang Kategori ini digunakan untuk mengelompokan data barang berdasarkan jenis kebutuhan, misalnya peralatan dapur, kosmetik, peralatan belajar. Data kategori barang akan disimpan dalam tabel yang bernama tkategori dengan struktur sebagai berikut. Tabel 3.5 Struktur Tabel tkategori Field Type Null Key Default Extra id_kategori int10 No Pri Auto increment nama_kategori varchar30 No Keterangan :  id_kategori merupakan primary key pada tabel tkategori yang digunakan untuk menyimpan id kategori.  nama_ketegori digunakan untuk menyimpan data nama kategori 6. Tabel Merk Barang. Data merk digunakan untuk mengelompokan barang berdasarkan merknya. Data merk barang akan disimpan dalam tabel yang bernama tmerk dengan struktur sebagai berikut. Tabel 3.6 Struktur Tabel tmerk Field Type Null Key Default Extra id_merk int10 No Pri Auto increment nama_merk varchar20 No Keterangan :  id_merk merupakan primary key pada tabel tmerk yang digunakan untuk menyimpan id merk.  nama_ketegori digunakan untuk menyimpan data nama merk barang. 7. Tabel Modal Awal Kasir Modal awal kasir adalah modal yang pertaman kali dimasukan ke dalam mesin kasir. Dengan data ini maka akan dapat dihitung total omset dan keuntungan harian setelah jam kerja selesai. Data modal awal kasir disimpan dalam tabel yang bernama tmodalawal dengan struktur sebagai berikut. Tabel 3.7 Struktur Tabel tmodalawal Field Type Null Key Default Extra id_modal char10 No Pri tanggal date No 0000-00-00 modalawal double No id_user int10 No Mull no_kassa int10 No Mull Keterangan :  id_modal merupakan primary key pada tabel tmodalawal yang digunakan untuk menyimpan id modal.  tanggal digunakan untuk menyimpan data tanggal saat modal awal dimasukkan.  modalawal digunakan untuk menyimpan data modal awal.  id_user digunakan untuk menyimpan data id pengguna. Field ini merupakan foreign key dari field id_user pada tabel tuser.  no_kassa digunakan untuk menyimpan data nomor kassa. Field ini merupakan foreign key dari field no_kassa pada tabel tkassa. 8. Tabel Pegawai Tabel pegawai nantinya digunakan untuk merekam data pegawai termasuk jabatan dan gajinya. Data pegawai akan disimpan dalam tabel yang bernama tpegawai dengan struktur sebagai berikut. Tabel 3.8 Struktur Tabel tpegawai Field Type Null Key Default Extra id_pegawai int13 No Pri Auto increment nomor_pegawai varchar5 No nama_pegawai varchar50 No tempat_lahir varchar30 No tanggal_lahir varchar10 No 00000000 alamat_ktp varchar100 No alamat_pegawai varchar100 No jabatan_pegawai varchar200 No Mull KASIR gaji_pokok int20 No Keterangan :  id_pegawai merupakan primary key pada tabel tpegawai yang digunakan untuk menyimpan id pegawai.  nomor_pegawai digunakan untuk menyimpan data tanggal nomor pegawai.  nama_pegawai digunakan untuk menyimpan data nama pegawai.  tempat_lahir digunakan untuk menyimpan data tempat lahir pegawai.  tanggal_lahir digunakan untuk menyimpan data tanggal lahir pegawai.  alamat_ktp digunakan untuk menyimpan data alamat pegawai sesuai SIM atau KTP.  alamat_pegawai digunakan untuk menyimpan data alamat rumah yang ditempati pegawai saat kerja. Hal ini berlaku bagi pegawai yang bersal dari luar daerah.  jabatan_pegawai digunakan untuk menyimpan data jabatan pegawai.  gaji_pokok digunakan untuk menyimpan data gaji pokok pegawai. 9. Tabel Pembelian Pembelian yang dimaksud adalah proses pembelian barang. Proses ini dilakukan perusahaan kepada supplier. Data pembelian digunakan untuk merekam data kunci pembelian, seperti nomor nota, nomor bukti, tanggal pembelian, supplier, dan diskon pembelian. Data pembelian disimpan dalam tabel tpembelian dengan struktur sebagai berikut. Tabel 3.9 Struktur Tabel tpembelian Field Type Null Key Default Extra id_pembelian int10 No Pri Auto increment no_bukti varchar10 No no_nota varchar11 No tanggal date No 00-00-0000 id_supplier int10 No Mull diskon int250 No Keterangan :  id_pembelian merupakan primary key pada tabel tpembelian yang digunakan untuk menyimpan id pembelian.  no_bukti digunakan untuk menyimpan data tanggal nomor bukti pembelian.  no_nota digunakan untuk menyimpan data nomor nota pembelian.  tanggal digunakan untuk menyimpan data tanggal pembelian barang.  id_supplier digunakan untuk menyimpan data id supplier. Field ini merupakan foreign key dari field id_supplier pada tabel tsupplier.  diskon digunakan untuk menyimpan data diskon pembelian. 10. Tabel Detail Pembelian Jika tabel pembelian digunakan untuk merekam data kunci pembelian, tabel ini digunakan untuk merekam detail pembelian, yaitu berupa item barang apa saja yang dibeli berdasarkan nomor nota dan bukti pembelian. Data detail pembelian disimpan dalam tabel yang bernama tpembelianitem dengan struktur sebagai berikut. Tabel 3.10 Struktur Tabel tpembelianitem Field Type Null Key Default Extra id_pembelianitem int10 No Pri Null Auto increment id_pembelian int10 No id_item int10 No id_barang int10 No Mull 00-00-0000 harga_beli double No diskon double No qty double Keterangan :  id_pembelianitem merupakan primary key pada tabel tpembelian yang digunakan untuk menyimpan id pembelianitem.  id_pembelian digunakan untuk menyimpan id pembelian.  id_item digunakan untuk menyimpan data item barang.  id_barang digunakan untuk menyimpan data id barang. Field ini merupakan foreign key dari field id_barang pada tabel tbarang.  harga_beli digunakan untuk menyimpan data harga pembelian barang.  diskon digunakan untuk menyimpan data diskon pembelian item barang.  qty digunakan untuk menyimpan data kuantitas pembelian item barang. 11. Tabel Penjualan Tabel penjualan yang dimaksud adalah penjualan barang kepada pelanggan melalui kasir. Tabel ini digunakan untuk merekam data kunci penjualan, seperti data nomor nota, tanggal, kasir, diskon, nomor kassa, pelanggan, dan total bayar. Data penjualan disimpan dalam tabel yang bernama tpenjualan dengan struktur sebagai berikut. Tabel 3.11 Struktur Tabel tpenjualan Field Type Null Key Default Extra id_penjualan char12 No Pri Auto increment no_nota char12 No Null tanggal date No 00-00-0000 id_user int10 No Mull diskon double No no_kassa Int3 No jumlah_bayar double Keterangan :  id_pembelianitem merupakan primary key pada tabel tpenjualan yang digunakan untuk menyimpan id penjualan.  no_nota digunakan untuk menyimpan nomor nota penjualan yang di-generate melalui program aplikasi.  tanggal digunakan untuk menyimpan data tanggal penjualan barang.  id_user digunakan untuk menyimpan data id barang. Field ini merupakan foreign key dari field id_user pada tabel tuser.  diskon digunakan untuk menyimpan data diskon penjualan barang.  no_kassa digunakan untuk menyimpan data id barang. Field ini merupakan foreign key dari field no_kassa pada tabel tkassa  jumlah_bayar digunakan untuk menyimpan data nilai pembayaran atas barang yang dijual. 12. Tabel Detail Penjualan Jika tabel penjualan digunakan untuk merekam data kunci penjualan, tabel ini digunakan untuk merekam detail dari data penjualan, yaitu berupa item barang apa saja yang dijual berdasarkan nomor nota penjualan. Data detail penjualan akan disimpan dalam tabel yang bernama tpenjualanitem dengan stuktur sebagai berikut. Tabel 3.12 Struktur Tabel tpenjualanitem Field Type Null Key Default Extra id_penjualanitem char15 No Pri id_penjualan char12 No id_barang int10 No Mull tanggal_beli date No 00-00-0000 harga_beli double No harga_jual double No diskon double No qty double No Keterangan :  id_penjualanitem merupakan primary key pada tabel tpenjualanitem yang digunakan untuk menyimpan id penjualan item.  id_penjualan digunakan untuk menyimpan id penjualan.  id_barang digunakan untuk menyimpan data id barang. Field ini merupakan foreign key dari field id_barang pada tabel tbarang.  tanggal _beli digunakan untuk menyimpan data tanggal penjualan item barang.  harga_beli digunakan untuk menyimpan data harga beli barang.  harga_jual digunakan untuk menyimpan data harga jual barang.  diskon digunakan untuk menyimpan data diskon penjualan barang. 13. Tabel Satuan Barang. Satuan barang yang dimaksud adalah sebutan untuk satuan sebuah barang, contohnya adalam rim untuk kertas, eksemplar untuk buku. Data satuan barang akan disimpan dalam tabel yang bernama tsatuan dengan struktur sebagai berikut. Tabel 3.13 Struktur Tabel tsatuan Field Type Null Key Default Extra id_satuan int10 No Pri Auto increment nama_satuan varchar20 No Keterangan :  id_satuan merupakan primary key pada tabel tsatuan yang digunakan untuk menyimpan id satuan.  nama_satuan digunakan untuk menyimpan data nama satuan barang. 14. Tabel Stok Barang Data stok sangat penting peranannya dalam mengambil keputusan, karena data inilah yang akan dijadikan sebagai parameter sirkulasi suatu barang. Dengan data ini dapat diketahui laris atau tidaknya suatu barang, dan manajemen dapat memutuskan apakah suatu barang layak dipertahankan sebagai komoditas usaha atau tidak. Data stok barang akan disimpan dalam tabel yang bernama tstock dengan struktur sebagai berikut. Tabel 3.14 Struktur Tabel tstock Field Type Null Key Default Extra id_barang int10 No Pri Auto increment harga_beli double No stock double No Keterangan :  id_barang merupakan primary key pada tabel tstock yang digunakan untuk menyimpan id barang. Field ini juga merupakan foreign key dari field id_barang pada tabel tbarang. Karena field ini menjadi primary key pada masing masing tabel tbarang dan tstock, maka hubungan relasionalnya antara field ini one to one.  harga_beli digunakan untuk menyimpan data harga beli barang.  stock digunakan untuk menyimpan data stok barang. 15. Tabel Penyedia Barang Penyedia barang atau supplier terdiri dari penyedia barang biasa maupun konsinyasi. Data penyedia barang akan disimpan dalam tabel yang bernama tsupplier dengan struktur sebagai berikut. Tabel 3.15 Struktur Tabel tsupplier Field Type Null Key Default Extra id_supplier int10 No Pri Auto increment kode_supplier varcahar7 No nama_ supplier varcahar20 No alamat_ supplier varcahar225 No telp_ supplier varcahar30 No fax varcahar15 Yes Null Keterangan :  id_supplier merupakan primary key pada tabel tsupplier yang digunakan untuk menyimpan id supplier.  kode_supplier digunakan untuk menyimpan data kode supplier.  nama_ supplier digunakan untuk menyimpan data nama supplier.  alamat_ supplier digunakan untuk menyimpan data alamat supplier.  telp_ supplier digunakan untuk menyimpan data telpon supplier.  fax digunakan untuk menyimpan data fax supplier. 16. Tabel Tipe Barang Tipe yang dimaksud adalah tipe barang dilihat dari status pembeliannya, dalam hal ini berupa tipe biasa atau konsinyasi. Hal ini dikarenakan tidak semua barang berasal dari pembelian, tetapi juga ada yang berasal dari titpan per-orangan atau kelompok dagang lain. Data tipe barang akan disimpan dalam tabel yang bernama ttipe dengan struktur sebagai berikut. Tabel 3.16 Struktur Tabel ttipe Field Type Null Key Default Extra id_tipe int10 No Pri Auto increment tipe varcahar30 No Keterangan :  id_tipe merupakan primary key pada tabel ttipe yang digunakan untuk menyimpan id tipe.  tipe digunakan untuk menyimpan data tipe penjualan. 17. Tabel Perusahaan Tabel ini digunakan untuk merekam data identitas mini market seperti nama, alamat, dan keterangan lain yang dianggap perlu.Data ini nantinya akan dimunculkan pada bagian header aplikasi kasir, dan beberapa halaman lainnya. Data mini market akan disimpan dalam tabel yang bernama ttoko dengan struktur sebagai berikut. Tabel 3.17 Struktur Tabel ttoko Field Type Null Key Default Extra nama_toko varcahar30 No Pri Auto increment alamat_toko varcahar75 No keterangan varcahar100 Yes Null Keterangan :  nama_toko digunakan untuk menyampaikan data nama toko atau mini market dimana aplikasi dijalankan.  alamat_toko digunakan untuk menyimpan data alamat toko atau mini market.  keterangan digunakan untuk menyimpan data keterangan toko atau mini market apbila diperlukan. 18. Tabel Pengguna Aplikasi Sebagaimana yang telah dijelaskan sebelumnya, pengguna aplikasi dibagi menjadi 2 dua tingkat, yaitu admin dan kasir. Tabel inilah yang akan digunakan untuk mengelola data pengguna tersebut. Data pengguna akan disimpan dalam tabel yang bernama tuser dengan struktur sebagai berikut. Tabel 3.18 Struktur Tabel tuser Field Type Null Key Default Extra id_user int10 No Pri Auto increment user_name varcahar30 No password varcahar250 No hak enum‘KASIR’,’ADMIN’ No Keterangan :  id_user merupakan primary key pada tabel tuser yang digunakan untuk menyimpan id user.  user_name digunakan untuk menyimpan data nama pengguna aplikasi.  password digunakan untuk menyimpan password pengguna aplikasi.  hak digunakan untuk menyimpan data hak akses pengguna aplikasi.

3.4.2.2 Tabel Tambahan

Tabel tambahan digunakan untuk meyimpan data sementara, untuk selanjutnya dimanfaatkan lagi untuk proses lain. Proses lain yang dimaksud dapat berupa pemasukan ke tabel utama atau pembuatan laporan, seperti mencetak barcode dan lain-lain. Berikut ini beberapa tabel tambahan. 1. Tabel Cetak Kode Barang Tabel ini digunakan untuk menecetak kode barang. Data kode barang akan disimpan dalam tabel yang bernama ttemcetakkode dengan struktur sebagai berikut. Tabel 3.19 Struktur Tabel ttemcetakkode Field Type Null Key Default Extra id_temp int15 No Pri Auto increment id_barang int100 No qty int10 No Keterangan :  id_temp merupakan primary key pada tabel ttemcetakkode yang digunakan untuk menyimpan id temporari data barang.  id_barang digunakan untuk menyimpan data id barang. Field ini merupakan foreign key dari field id_barang pada tabel tbarang.  qty digunakan untuk menyimpan data kuantitas barang yang akan dicetak.

3.5 Relasi Antar Tabel Entity Relationship Diagram ERD