Rabu, 22 Oktober 2025

trigger tugas rumah modul 8 lab 5

 gambaran isi database


trigger pertama : after_pembelian


isi tabel_barang
trigger kedua : log_delete

trigger ketiga : log_insert
isi tabel log_pembelian
trigger keempat : log_update

trigger kelima : mengambil nama barang dari tabel barang berdasarkan id_barang yang baru dimasukkan

trigger keenam : nota_pembayaran
isi tabel pembayaran : 

trigger ketujuh : stok_berkurang

trigger terakhir, kedelapan :stok_riset















Rabu, 17 September 2025

trigger phpmyadmin

1. total_harga langsung dikalikan(x)

ini code triggernya 


ini tabel hasilnya 
buku dibeli 2 yang harga aslinya 1 buku adalah 3000
jika dibeli 2 maka total harganya adalah 6000

ini relasinya
bisa direlasikan melalui tools design pada phpmyadmin


2. 
3.
4.







Definisi Trigger dan Cara bekerjanya

 Trigger

Apa itu Trigger dalam Database?

Trigger adalah sebuah alat otomatis dalam database yang "terpicu" atau dijalankan setiap kali ada perubahan data tertentu. Jadi, jika kamu melakukan INSERT, UPDATE, atau DELETE pada tabel, trigger bisa langsung dijalankan untuk melakukan tugas lain secara otomatis, seperti memvalidasi data atau mengupdate tabel lain.

Bagaimana Trigger Bekerja?

  1. Pemicu (Event): Ini adalah peristiwa yang memicu trigger untuk dijalankan. Misalnya, INSERT berarti trigger akan dijalankan ketika ada data yang ditambahkan ke tabel.

  2. Waktu Eksekusi: Trigger bisa dijalankan sebelum perubahan terjadi (BEFORE) atau setelah perubahan terjadi (AFTER).

  3. Logika dalam Trigger: Setelah pemicu terjadi, trigger akan menjalankan beberapa logika, seperti memeriksa data, mengupdate kolom lain, atau mencatat perubahan ke tabel audit.

  4. Referensi Data: Trigger bisa mengakses data yang diubah dengan menggunakan NEW (untuk data yang baru) dan OLD (untuk data yang lama).

Contoh Sederhana

Bayangkan kamu memiliki tabel stok_barang, dan kamu ingin secara otomatis mengurangi jumlah stok barang ketika ada penjualan. Setiap kali data penjualan dimasukkan ke dalam tabel penjualan, kita ingin mengurangi stok barang yang terjual.

Tabel Stok Barang:

CREATE TABLE stok_barang (
    id INT PRIMARY KEY,
    nama VARCHAR(100),
    jumlah INT
);

Tabel Penjualan:

CREATE TABLE penjualan (
    id INT PRIMARY KEY,
    id_barang INT,
    jumlah_terjual INT,
    tanggal DATE
);

Trigger untuk Mengurangi Stok Otomatis:

Kita akan membuat trigger yang berjalan setelah data dimasukkan ke tabel penjualan. Trigger ini akan mengurangi jumlah barang yang terjual di tabel stok_barang.

DELIMITER $$

CREATE TRIGGER after_penjualan
AFTER INSERT ON penjualan
FOR EACH ROW
BEGIN
    -- Kurangi stok barang sesuai jumlah yang terjual
    UPDATE stok_barang
    SET jumlah = jumlah - NEW.jumlah_terjual
    WHERE id = NEW.id_barang;
END $$

DELIMITER ;

Penjelasan Kode:

  • AFTER INSERT ON penjualan: Trigger ini dijalankan setelah ada data yang dimasukkan ke tabel penjualan.

  • NEW.jumlah_terjual: Ini adalah data dari baris yang baru saja dimasukkan ke tabel penjualan. NEW digunakan untuk mengakses data yang baru.

  • UPDATE stok_barang: Setelah penjualan dilakukan, trigger ini mengurangi jumlah stok barang di tabel stok_barang sesuai dengan jumlah yang terjual.

Apa yang Terjadi Ketika Penjualan Ditambahkan?

Misalkan ada data penjualan baru:

INSERT INTO penjualan (id_barang, jumlah_terjual, tanggal)
VALUES (1, 3, '2025-09-18');
  • Data penjualan ini akan memicu trigger.

  • Trigger akan mengurangi stok barang dengan id = 1 sebanyak 3 unit.

Kapan Menggunakan Trigger?

Trigger sangat berguna jika kamu ingin melakukan hal-hal seperti:

  1. Mencatat riwayat perubahan: Misalnya, mencatat perubahan pada tabel produk ke tabel audit.

  2. Validasi otomatis: Menjamin data yang dimasukkan sesuai dengan aturan tertentu.

  3. Pemeliharaan data: Menjaga konsistensi data antar tabel, seperti mengupdate stok saat terjadi penjualan.

Jenis-Jenis Trigger yang Ada :

  1. Trigger AFTER (AFTER Trigger):
    Trigger jenis ini akan dieksekusi setelah operasi (INSERT, UPDATE, DELETE) berhasil dilakukan pada tabel. Misalnya, jika ingin melakukan sesuatu setelah data berhasil dimasukkan ke dalam tabel, seperti memperbarui tabel lain atau membuat log.

    Contoh: Mengupdate data lain setelah ada perubahan di tabel utama.

  2. Trigger BEFORE (BEFORE Trigger):
    Trigger jenis ini dieksekusi sebelum operasi tertentu terjadi pada tabel. Biasanya, trigger ini digunakan untuk memvalidasi data atau melakukan pengecekan terhadap data yang akan dimasukkan, diubah, atau dihapus.

    Contoh: Memvalidasi data yang akan dimasukkan ke dalam tabel agar memenuhi syarat tertentu.

  3. Trigger INSTEAD OF (INSTEAD OF Trigger):
    Trigger ini mengabaikan operasi yang diminta (INSERT, UPDATE, DELETE) dan menggantinya dengan eksekusi trigger itu sendiri. Biasanya digunakan dalam view atau materialized view.

    Contoh: Jika kita ingin mengganti tindakan INSERT dengan memasukkan data ke dua tabel berbeda secara bersamaan.

Komponen yang Ada dalam Trigger

Trigger biasanya terdiri dari beberapa komponen:

  • Event: Peristiwa yang memicu trigger, seperti INSERT, UPDATE, atau DELETE.

  • Timing: Menentukan kapan trigger akan dijalankan, apakah sebelum atau sesudah peristiwa.

  • Action: Kode SQL yang akan dijalankan setelah trigger dipicu, seperti UPDATE atau INSERT ke tabel lain.


https://www.nesabamedia.com/pengertian-trigger/
chatgpt.com : penjelasan-trigger/

Minggu, 14 September 2025

Percobaan Membuat Join

 


definisi join

JOIN dalam konteks database adalah operasi yang digunakan untuk menggabungkan dua atau lebih tabel berdasarkan suatu kondisi tertentu, umumnya menggunakan kolom yang memiliki hubungan antar tabel tersebut. Biasanya, JOIN digunakan untuk mendapatkan data yang terhubung antar tabel yang berbeda dalam sebuah database relasional. Misalnya, pada dua tabel yang berbeda, satu tabel berisi data tentang pelanggan dan yang lainnya berisi data tentang pesanan, kamu bisa menggunakan JOIN untuk menggabungkan kedua tabel ini berdasarkan ID pelanggan, sehingga mendapatkan informasi lengkap tentang pelanggan dan pesanan yang mereka buat.

1. INNER JOIN

INNER JOIN hanya menampilkan baris data yang memiliki kecocokan di kedua tabel berdasarkan kolom yang dihubungkan. Jika satu sisi tidak memiliki pasangan data yang cocok, maka baris tersebut akan diabaikan dari hasil query.

JOIN ini paling umum digunakan, terutama saat kamu hanya ingin melihat data yang sudah terhubung secara langsung di antara dua tabel. Cocok untuk laporan yang hanya menampilkan transaksi yang valid atau data yang lengkap.

SELECT pelanggan.nama, pesanan.produk

FROM pelanggan

INNER JOIN pesanan ON pelanggan.id_pelanggan = pesanan.id_pelanggan;

2. LEFT JOIN (LEFT OUTER JOIN)

LEFT JOIN menampilkan semua data dari tabel sebelah kiri (dalam hal ini pelanggan), meskipun tidak memiliki pasangan di tabel kanan (pesanan). Jika tidak ada pasangan data, maka kolom dari tabel kanan akan bernilai NULL.

JOIN ini cocok saat kamu ingin melihat semua data utama (pelanggan), termasuk yang belum melakukan pembelian. Sangat berguna untuk laporan seperti “pelanggan aktif dan tidak aktif”.

SELECT pelanggan.nama, pesanan.produk

FROM pelanggan

LEFT JOIN pesanan ON pelanggan.id_pelanggan = pesanan.id_pelanggan;

3. RIGHT JOIN (RIGHT OUTER JOIN)

RIGHT JOIN menampilkan semua data dari tabel kanan (pesanan), termasuk yang tidak memiliki kecocokan di tabel kiri (pelanggan). Bila data pelanggan tidak ditemukan, maka kolom nama akan berisi NULL.

JOIN ini berguna untuk menemukan data yang “masih berdiri sendiri” di tabel kanan, seperti transaksi tanpa data pelanggan yang lengkap. Bisa digunakan untuk validasi data input atau audit sistem.

SELECT pelanggan.nama, pesanan.produk

FROM pelanggan

RIGHT JOIN pesanan ON pelanggan.id_pelanggan = pesanan.id_pelanggan;

4. FULL JOIN (FULL OUTER JOIN)

FULL JOIN menggabungkan hasil dari LEFT JOIN dan RIGHT JOIN. Artinya, semua baris dari kedua tabel akan ditampilkan, baik yang punya pasangan maupun yang tidak.

MySQL tidak mendukung FULL JOIN secara langsung, tapi kamu bisa menyimulasikannya dengan UNION dari LEFT dan RIGHT JOIN. Cocok untuk menampilkan semua data, sekaligus tahu bagian mana yang belum terhubung antar tabel.

SELECT pelanggan.nama, pesanan.produk

FROM pelanggan

LEFT JOIN pesanan ON pelanggan.id_pelanggan = pesanan.id_pelanggan

UNION

SELECT pelanggan.nama, pesanan.produk

FROM pelanggan

RIGHT JOIN pesanan ON pelanggan.id_pelanggan = pesanan.id_pelanggan;


5. CROSS JOIN

CROSS JOIN menggabungkan semua baris dari tabel pertama dengan semua baris dari tabel kedua. Hasilnya adalah kombinasi total atau cartesian product dari dua tabel.

Biasanya digunakan untuk membuat kombinasi semua kemungkinan pasangan, bukan untuk relasi berbasis data yang cocok. Hati-hati dengan jumlah hasil jika tabel sangat besar.

SELECT pelanggan.nama, pesanan.produk

FROM pelanggan

CROSS JOIN pesanan;