Image

Tutorial MySQL DB - Create table dan insert data

Seperti mengendarai sebuah sepeda ataupun sepeda motor, kita butuh waktu berjam - jam, dan atau jarak tempuh yang jauh untuk dapat sampai ke titik mahir. Begitu juga dengan programming. Kita butuh jam terbang yang tinggi, dengan trial and error yang banyak untuk bisa mahir membuat sebuah aplikasi program. Semakin sering kita berinteraksi dengan bahasa pemrograman, kita akan semakin banyak mahir. Apalagi studi kasus yang kita jumpai semakin hari semakin rumit. Maka tingkat kemahiran kita akan terus meningkat.

Menurut pengalaman saya, akan lebih mudah memahami suatu ilmu bila ilmu itu langsung diterapkan. Dengan menggunakan studi kasus, kita akan langsung belajar dengan contohnya. Studi kasus yang kita gunakan adalah studi kasus perancangan database yang digunakan di grosir ataupun warung. Jadi untuk belajar MySQL hingga mahir, disini kita akan merancang database dan membuat sistem yang akan digunakan untuk Warung.

Yang perlu diperhatikan dalam perancangan database salah satunya adalah penentuan primary key (kunci utama) dan foreign key (kunci tamu). Primary key atau kunci utama merupakan suatu field/kolom yang digunakan untuk menghubungkan dua tabel atau lebih. Sedangkan foreign key atau kunci tamu adalah kunci rujukan untuk dapat mengakses table yang lain didalam satu database. Berikut adalah gambar design table warung.


Oke, Langsung saja kita buka Web browser untuk dapat membuat PhpMyAdmin. Jika komputer anda belum terinstall Server MySQL, silahkan install terlebih dahulu. Kalau saya menggunakan Xampp. Jika belum silahkan ikuti tutorial cara menginstall Xampp dibawah ini.


- Menciptakan database baru

Setelah halaman PhpMyAdmin terbuka di browser, kita akan menciptakan sebuah database dengan nama 'warung'.  Setelah itu kita akan melanjurkan dengan membuat tabel - tabel yang ada didalam database 'warung'.


Selanjutnya, kita akan membuat 8 buah table, diantaranya:

  1. Table category berfungsi untuk menyimpan data category produk, misalnya: Food, Non Food, Peralatan Rumah, dll.
  2. Table sub_category berfungsi untuk menyimpan data rincian dari category produk, misalnya: Food (Susu, Biscuit, Minuman, Makanan Kemasan, dll). Non Food (Hair Care, Body Care, Skin Care, dll).
  3. Table produk berfungsi untuk menyimpan jenis - jenis produk penjualan warung.
  4. Tabel produk_trash berfungsi untuk tempat penampungan sampah jika salah satu produk penjualan dihapus.
  5. Tabel beli_trans berfungsi untuk menyimpan transaksi pembelian.
  6. Tabel beli_trans_trash berfungsi untuk tempat penampungan sampah jika isi tabel beli_trans ada yang dihapus.
  7. Tabel jual_trans berfungsi untuk menyimpan transaksi penjualan.
  8. Tabel jual_trans_trash berfungsi untuk tempat penampungan sampah jika isi tabel jual_trans ada yang dihapus.

Perintah untuk membuat tabel - tabel diatas adalah sebagai berikut

CREATE TABLE `category` (
  `category_id` varchar(20) NOT NULL primary key,
  `nama_category` char(50) DEFAULT NULL,
  `kode_perk` varchar(20) DEFAULT NULL
);

CREATE TABLE `sub_category` (
  `sub_category_id` char(20) NOT NULL primary key,
  `nama_sub_category` char(50) DEFAULT NULL,
  `category_id` char(20) DEFAULT NULL
);

CREATE TABLE `produk` (
  `produk_id` int(11) NOT NULL AUTO_INCREMENT ,
  `barcode` VARCHAR(50) NULL DEFAULT NULL ,
  `nama_produk` VARCHAR(50) NOT NULL ,
  `brand` VARCHAR(20) NOT NULL ,
  `merk` VARCHAR(20) NOT NULL ,
  `sub_category_id` VARCHAR(20) NOT NULL ,
  `satuan_produk` VARCHAR(50) NOT NULL ,
  `stok_produk` INT(11) NOT NULL ,
  `harga_beli` DOUBLE(12,0) NOT NULL ,
  `persen_untung` DECIMAL(10,2) NOT NULL ,
  `nominal_untung` DOUBLE(12,0) NOT NULL ,
  `harga_jual` DOUBLE(12,0) NOT NULL ,
  `keterangan` VARCHAR(255) DEFAULT NULL ,
  `produk_status` VARCHAR(5) NOT NULL ,
  `date_created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
  PRIMARY KEY (`produk_id`));

CREATE TABLE `produk_trash` (
  `produk_id` int(11) NOT NULL AUTO_INCREMENT ,
  `barcode` VARCHAR(50) NULL DEFAULT NULL ,
  `nama_produk` VARCHAR(50) NOT NULL ,
  `brand` VARCHAR(20) NOT NULL ,
  `merk` VARCHAR(20) NOT NULL ,
  `sub_category_id` VARCHAR(20) NOT NULL ,
  `satuan_produk` VARCHAR(50) NOT NULL ,
  `stok_produk` INT(11) NOT NULL ,
  `harga_beli` DOUBLE(12,0) NOT NULL ,
  `persen_untung` DECIMAL(10,2) NOT NULL ,
  `nominal_untung` DOUBLE(12,0) NOT NULL ,
  `harga_jual` DOUBLE(12,0) NOT NULL ,
  `keterangan` VARCHAR(255) DEFAULT NULL ,
  `produk_status` VARCHAR(5) NOT NULL ,
  `date_created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
  PRIMARY KEY (`produk_id`));

CREATE TABLE `jual_trans` (
  `jualtrans_id` int(11) NOT NULL auto_increment primary key,
  `produk_id` varchar(20) NOT NULL,
  `tgl_trans` date NOT NULL,
  `harga_jual` DOUBLE(12,0) NOT NULL ,
  `qty` int(11) not null,
  `tunai` DOUBLE(12,0) NOT NULL ,
  `date_created` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE `jual_trans_trash` (
  `jualtrans_id` int(11) NOT NULL,
  `produk_id` varchar(20) NOT NULL,
  `tgl_trans` date NOT NULL,
  `harga_jual` DOUBLE(12,0) NOT NULL ,
  `qty` int(11) not null,
  `tunai` DOUBLE(12,0) NOT NULL ,
  `date_created` datetime NOT NULL
);

CREATE TABLE `beli_trans` (
  `belitrans_id` int(11) NOT NULL auto_increment primary key,
  `produk_id` varchar(20) NOT NULL,
  `tgl_trans` date NOT NULL,
  `harga_beli` DOUBLE(12,0) NOT NULL ,
  `qty` int(11) not null,
  `tunai` DOUBLE(12,0) NOT NULL ,
  `date_created` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE `beli_trans_trash` (
  `belitrans_id` int(11) NOT NULL,
  `produk_id` varchar(20) NOT NULL,
  `tgl_trans` date NOT NULL,
  `harga_beli` DOUBLE(12,0) NOT NULL ,
  `qty` int(11) not null,
  `tunai` DOUBLE(12,0) NOT NULL ,
  `date_created` datetime NOT NULL
);
Setelah tabel - tabel diatas terbuat, sekarang kita akan mencoba untuk menjalankan perintah insert into. Insert into berfungsi untuk memasukkan data kedalam tabel tertentu dari sebuah database. Dari perintah - perintah dibawah kita dapat melihat hubungan antar tabel yang satu dengan yang lainnya. Hubungan antara primary key dan fereign key. Berikut adalah contoh untuk menjalankan perintah INSERT INTO

INSERT INTO `category` (`category_id`, `nama_category`, `kode_perk`) VALUES
('11', 'Food', '1010501'),
('12', 'Non Food', '1010502'),
('13', 'Peralatan Rumah', '1010503'),
('14', 'Permainan', '1010504'),
('15', 'Stationary', '1010505'),
('16', 'Makanan Segar', '1010506');
Dapat kita lihat bahwa pada table category yang bertindak sebagai primary key adalah category_id. Nantinya category_id menjadi kunci untuk mendapatkan informasi yang lain saat dihubungkan dengan tabel yang lainnya. Untuk lebih jelasnya kita insert-kan data sub_category seperti perintah dibawah.

INSERT INTO `sub_category` (`sub_category_id`, `nama_sub_category`, `category_id`) VALUES
('11001', 'Susu Milk', '11'),
('11002', 'Biscuits', '11'),
('11003', 'Minuman', '11'),
('11004', 'Makanan Kemasan', '11'),
('11005', 'Snack', '11'),
('11006', 'Sesioning Bumbu', '11'),
('11007', 'Sembako', '11'),
('11008', 'BAKERY', '11'),
('11009', 'Bahan Kue', '11'),
('11010', 'Permen dan Coklat', '11'),
('11011', 'Noodles', '11'),
('11012', 'Breakfast', '11'),
('11013', 'Minyak Goreng', '11'),
('11014', 'Sirup', '11'),
('11015', 'Makanan Kering', '11'),
('11016', 'Cigarette Rokok', '11'),
('12001', 'Hair Care', '12'),
('12002', 'Body Care', '12'),
('12003', 'Skin Care', '12'),
('12004', 'Mouth Care', '12'),
('12005', 'Bahan Pembersih', '12'),
('12006', 'Insect Killer', '12'),
('12007', 'Air Freshness', '12'),
('12008', 'Tissue and Piper Product', '12'),
('12009', 'Kosmetik', '12'),
('12010', 'Parfum dan Deodorant', '12'),
('12011', 'Vitamin dan Obat', '12'),
('12012', 'Perlengkapan Bayi', '12'),
('13001', 'Elektrikal', '13'),
('13002', 'Perlengkapan Pesta', '13'),
('13003', 'Perlengkapan Musiman', '13'),
('13004', 'Tas dan Koper', '13'),
('13005', 'Hard Ware', '13'),
('13006', 'Souvenir', '13'),
('13007', 'Plastic Wear', '13'),
('13008', 'Kitchen Wear', '13'),
('13009', 'Peralatan Makan', '13'),
('13010', 'Peralatan Bersih', '13'),
('14001', 'Mainan Laki - laki', '14'),
('14002', 'Mainan Perempuan', '14'),
('14003', 'Permainan Tradisional', '14'),
('14004', 'Permainan Lain', '14'),
('14005', 'Alat Tulis Kantor', '15'),
('16001', 'Sayuran', '16'),
('16002', 'Buah Lokal', '16'),
('16003', 'Buah Import', '16'),
('16004', 'Daging', '16'),
('16005', 'Susu Olahan', '16'),
('16006', 'Frozen', '16');
Pada table sub_category yang bertindak sebagai primary key adalah sub_category_id. Sedangkan yang bertindak sebagai foreign key adalah category_id, yang mana category_id merupakan primary key pada table category. Untuk selanjutnya kita akan entry data table produk.

INSERT INTO `produk` 
(`barcode`, `nama_produk`, `brand`, `merk`, `sub_category_id`, `satuan_produk`, `stok_produk`, `harga_beli`, `persen_untung`, `nominal_untung`, `harga_jual`, `keterangan`, `produk_status`) VALUES
('0034126939043', 'ALHAMI RASA KALDU AYAM ( 5 X 60 G )', 'ANTICO', 'ALHAMI', '11004', 'PCS', 0, 4125, '21.21', 875, 5000, '', '1'),
('0089686010312', 'INDOMIE SOTO MEDAN', 'INDOFOOD', 'INDOMIE SOTO MEDAN', '11004', 'BANDED', 10, 8200, '19.51', 1600, 9800, '', '1'),
('0089686014181', 'SUPERMI RASA KALDU AYAM(5X70G)', 'INDOFOOD', 'SUPERMI', '11004', 'BANDED', 15, 5938, '9.00', 562, 6500, '', '1'),
('0089686060461', 'POP MIE CUP RASA KARI AYAM', 'INDOFOOD', 'POP MIE', '11009', 'PCS', 10, 3542, '41.16', 1458, 5000, '', '1'),
('0089686596427', 'LAYS RASA RUMUT LAUT 14 G', 'INDOFOOD', 'LAYS', '11005', 'PCS', 0, 1634, '22.40', 366, 2000, '', '1'),
('0089686598018', 'CHITATO RASA SAPI PANGGANG 15 G', 'INDOFOOD', 'CHITATO', '11005', 'PCS', 0, 1634, '22.40', 366, 2000, '', '1'),
('0089686600223', 'CHEETOS', 'INDOFOOD', 'CHEETOS', '11005', 'PCS', 0, 917, '63.58', 583, 1500, '', '1'),
('0111009000001', 'GAGA SARDINES TOMATA & CHILI SAUCE', 'JAKARANA TAMA', 'GAGA SARDIENS', '11009', 'PCS', 0, 6300, '19.05', 1200, 7500, '', '1'),
('111100700003', 'BERAS KKB MARIO BROS 5 KG', 'KKB', 'CAP MARIO BROS', '11007', 'KARUNG', 0, 44000, '11.11', 5000, 49000, '', '1'),
('0711844110755', 'ABC KECAP EKTRA PEDAS', 'ABC INDONESIA', 'ABC KECAP PEDAS', '11004', 'PCS', 0, 2500, '20.00', 500, 3000, '', '1'),
('0711844120082', 'ABC SAMBAL EKTRA PEDAS 135 ML', 'PT HEIZ ABC', 'ABC SAMBAL', '11006', 'PCS', 0, 5500, '18.00', 1000, 6500, '', '1'),
('0711844330108', 'ABC SARDINES CABAI 80 G', 'PT INDO JAYA', 'ABC SARDINES', '11009', 'PCS', 0, 7000, '18.57', 1300, 8300, '', '1'),
('0711844330115', 'ABC SARDINES CABAI 425 G', 'PT HEIZ ABC', 'ABC SARDINES CABAI', '11004', 'PCS', 0, 16500, '6.06', 1000, 17500, '', '1'),
('111100700001', 'BERAS AY KKB 64 10 KG', 'KKB', 'BERAS ', '11007', 'KARUNG', 0, 105000, '5.00', 5000, 110000, '', '1'),
('111100700002', 'GULA 1 KG', '', 'GULA', '11007', 'KG', 0, 11200, '7.00', 800, 12000, '', '1');

Pada tabel produk, yang bertindak sebagai primary key adalah produk_id. Sedangkan yang bertindak sebagai foreign key adalah sub_category_id. jadi jika kita relasikan antar tabel, kita dapat mengetahui produk ini termasuk didalam category apa. Sebagai contoh, sub_category_id pada nama produk ALHAMI RASA KALDU AYAM ( 5 X 60 G ) adalah '11004'. Dimana '11004' adalah Makanan kemasan dengan nilai category_id '11'. Sedangkan cateogry_id '11' adalah 'Food'. Jadi nama produk ALHAMI RASA KALDU AYAM ( 5 X 60 G ) merupakan category dari 'Food'. Bagaimana jika kita ingin melihat isi tabel - tabel yang ada di database? Kita akan menggunakan perintah Select. Selengkapnya disini.

Categories: Database

0 Comments

    Leave a comment

Popular Posts

1

Hello World Java Android

2

Login App dengan Java Programming

3
4

See All Popular

Berlangganan Berita

Kami akan mengirim informasi - informasi terbaru sekitar teknologi dan pemrograman untuk menambah refenrensi anda untuk menjadi programmer handal. Masukkan email anda kolom sebelah ->