Mengurangi Stok Barang Dengan Trigger MySQL


Dalam tutorial mysql kali ini Saya akan memberikan sebuah contoh kasus dimana kita akan melakukan pengurangan stok barang secara otomatis ketika misalnya terjadi sebuah pembelian atau barang dimasukan kedalam keranjang. Sebenarnya ini hanyalah contoh/ilustrasi sederhana bagaimana mengurangi stok barang pada mysql dengan memanfaatkan trigger, dan mungkin dalam praktiknya proses ini akan jauh lebih kompleks dibandingkan dengan contoh yang akan saya berikan.



Dengan adanya fitur Trigger MySQL, maka ini tentunya akan lebih efisien dalam membantu pekerjaan seorang programmer, mengingat proses ini terjadi pada sisi DBMS-nya bukan harus disesuaikan melalui kode programnya atau dalam contoh kasus misalnya, seorang PHP Programmer tidak perlu repot – repot memikirkan/menulis kode untuk proses pengurangan stok barang melalui kode PHP yang dibuatnya ketika terjadi proses pembelian dan barang berhasil terjual, tapi proses tersebut akan otomatis dilakukan oleh MySQL.


Berikut ini adalah Mengurangi Stok Barang Dengan Trigger MySQL

Dimisalkan Anda memiliki sebuah data/database dengan struktur tabel seperti berikut;


CREATE TABLE `daftar_barang` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `nama` varchar(65) NOT NULL,
  `harga` decimal(10,0) DEFAULT NULL,
  `stok` int(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Dumping data for table `daftar_barang`
--

INSERT INTO `daftar_barang` (`id`, `nama`, `harga`, `stok`) VALUES
(1, 'Luak White Coffe', '2000', 1000),
(2, 'Coffemix', '2000', 500),
(3, 'Indomie', '1500', 120),
(4, 'Mie Sedap', '2000', 136),
(5, 'Sarimie', '12500', 131),
(6, 'Pop Mie', '5000', 20),
(7, 'Chocolatos', '1500', 30),
(8, 'Indomilk', '20000', 40);

-- --------------------------------------------------------

--
-- Table structure for table `keranjang`
--

CREATE TABLE `keranjang` (
  `id_keranjang` bigint(20) UNSIGNED NOT NULL,
  `id_barang` bigint(20) UNSIGNED DEFAULT NULL,
  `jml_beli` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Dumping data for table `keranjang`
--

INSERT INTO `keranjang` (`id_keranjang`, `id_barang`, `jml_beli`) VALUES
(1, 1, 1200),
(3, 1, 800),
(4, 2, 2000);



--
-- Indexes for dumped tables
--

--
-- Indexes for table `daftar_barang`
--
ALTER TABLE `daftar_barang`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `keranjang`
--
ALTER TABLE `keranjang`
  ADD PRIMARY KEY (`id_keranjang`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `daftar_barang`
--
ALTER TABLE `daftar_barang`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9;

--
-- AUTO_INCREMENT for table `keranjang`
--
ALTER TABLE `keranjang`
  MODIFY `id_keranjang` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;

Kemudian misalnya ketika terjadi insert barang kedalam tabel keranjang, maka stok barang dalam tabel daftar_barang akan berkurang, maka Anda bisa membuat trigger seperti berikut :


MariaDB [barang]> CREATE TRIGGER kurangi_stok AFTER INSERT ON keranjang  FOR EACH ROW UPDATE daftar_barang SET daftar_barang.stok=daftar_barang.stok-NEW.jml_beli WHERE daftar_barang.id=NEW.id_barang;



atau jika menggunakan interface phpMyAdmin, Anda bisa menggunakan langkah – langkah berikut
  1. Pilih tabel keranjangnya
  2. Klik Triggers => Add trigger
  3. Pada kotak dialog trigger, buat seperti contoh berikut

    Mengurangi Stok Barang Dengan Trigger MySQL

  4. atau pada definition boxnya Anda bisa menulisnya quernya seperti berikut :
    UPDATE daftar_barang SET daftar_barang.stok=daftar_barang.stok-NEW.jml_beli WHERE daftar_barang.id=NEW.id_barang
  5. Klik Go untuk menyimpan trigger
Tonton Tutorial Mengurangi Stok Barang Dengan Trigger MySQL di youtube



0 Response to "Mengurangi Stok Barang Dengan Trigger MySQL"

Post a Comment

Komentar yang Anda kirim akan terlebih dahulu di moderasi oleh Admin