Pada seri belajar SQL Database bagian 6, kita telah belajar tentang transaksi di MySQL, mulai dari start, transaction, commit, rollback, hingga penggunaan savepoin untuk rollback parsial. Di bagian 7 ini, kita akan melanjutkan pembahasan ke tiga fitur penting yang membantu membuat sistem database lebih efisien dan otomatis, yaitu View, Stored Procedure, dan Trigger.
Fitur-fitur ini sering digunakan pada sistem database skala besar untuk menjaga konsistensi data, menyederhanakan logika bisnis, dan mengotomatisasi proses tertentu. Mari kita bahas satu per satu.
Skema Database Yang Digunakan
Sebelum masuk ke pembahasan, berikut permisalan skema database yang akan digunakan. Misalkan Anda memiliki beberapa tabel berikut dalam sistem penjualan:
Tabel produk :

Tabel transaksi :

Table pelanggan :

Tabel log_stok :

Tabel log_pelanggan_hapus :

Apa Itu View?
View adalah tabel virtual yang dibuat dari hasil query SELECT dan disimpan di database. Dengan View, Anda dapat menampilkan data yang kompleks dari beberapa tabel tanpa perlu menulis query panjang setiap kali dibutuhkan.
Contoh kasus: menampilkan total penjualan tiap produk selama 30 hari terakhir dari tabel transaksi dan produk.
CREATE VIEW view_penjualan_30hari AS
SELECT p.nama_produk, SUM(t.jumlah) AS total_terjual
FROM transaksi t
JOIN produk p ON t.id_produk = p.id_produk
WHERE t.tgl_transaksi >= CURDATE() - INTERVAL 30 DAY
GROUP BY p.nama_produk;Untuk menampilkan data, cukup jalankan:
SELECT * FROM view_penjualan_30hari;Berikut hasilnya:

Kelebihan View:
- Menyederhanakan query yang kompleks.
- Meningkatkan keamanan (pengguna hanya melihat View, bukan tabel asli).
- Mempermudah pemeliharaan logika query
Apa itu Stored Procedure?
Stored Procedure adalah sekumpulan perintah SQL yang tersimpan di server database dan dapat dipanggil berulang kali. Dengan procedure, logika bisnis dapat dijalankan langsung dari database tanpa harus ditulis di kode aplikasi.
Contoh kasus: memperbarui stok produk sekaligus mencatat log perubahan setiap kali barang direstock.
DELIMITER //
CREATE PROCEDURE sp_update_stok(
IN pid_produk INT,
IN pjumlah INT
)
BEGIN
UPDATE produk
SET stok = stok + pjumlah
WHERE id_produk = pid_produk;
INSERT INTO log_stok(id_produk, perubahan, tgl)
VALUES(pid_produk, pjumlah, NOW());
END //
DELIMITER ;Untuk menjalankan procedure, cukup panggil:
CALL sp_update_stok(1, 10);Berikut hasil Stored Procedure diatas untuk tabel produk:

Berikut hasil Stored Procedure diatas untuk tabel log_stok:

Keunggulan Stored Procedure:
- Eksekusi lebih cepat (sudah tersimpan di server).
- Lebih aman (logika tidak mudah diubah dari aplikasi).
- Mudah dipelihara jika logika bisnis berubah.
Apa Itu Trigger?
Trigger adalah prosedur yang dijalankan otomatis saat terjadi peristiwa tertentu pada tabel, misal INSERT, UPDATE, atau DELETE.
Contoh kasus: setiap kali data pelanggan dihapus, sistem mencatat riwayat penghapusan ke tabel log_pelanggan_hapus.
DELIMITER //
CREATE TRIGGER trg_before_delete_customer
BEFORE DELETE ON pelanggan
FOR EACH ROW
BEGIN
INSERT INTO log_pelanggan_hapus(id_pelanggan, nama, tgl_hapus)
VALUES(OLD.id_pelanggan, OLD.nama, NOW());
END //
DELIMITER ;Berikut percobaan uji coba triggernya untuk menghapus data pelanggan:

Dan berikut hasil uji coba trigger tersebut dimana riwayat data yang terhapus akan masuk ke tabel log_pelanggan_hapus:

Manfaat Trigger:
- Menjaga integritas dan konsistensi data.
- Mempermudah audit atau pelacakan perubahan.
- Mendukung otomatisasi aturan bisnis.
Hal yang Perlu Diperhatikan
- Gunakan InnoDB, karena MyISAM tidak mendukung trigger dan transaksi penuh.
- Hindari membuat View, Procedure, atau Trigger terlalu kompleks.
- Selalu uji coba di lingkungan development sebelum diterapkan di production.
- Dokumentasikan setiap fungsi agar mudah dipahami tim lain.
Tips Penggunaannya
- View: untuk menyederhanakan laporan dan akses data.
- Stored Procedure: menyimpan logika bisnis agar lebih terpusat.
- Trigger: aksi otomatis, misal audit log atau sinkronisasi data
Hindari nested trigger atau chaining procedure yang terlalu dalam karena sulit dilacak.
Penutup
Dengan memahami View, Stored Procedure, dan Trigger, Anda dapat membangun sistem database yang lebih efisien, otomatis, dan terkontrol. Ketiga fitur ini menjadi fondasi penting dalam pengembangan aplikasi berskala besar, terutama jika Anda ingin mengelola logika bisnis langsung di level database.
Demikian tutorial belajar SQL Database bagian 7 tentang penggunaan View, Stored Procedure, dan Trigger. Terus ikuti seri belajar SQL Database dari Rumahweb untuk meningkatkan kemampuan Anda dalam mengelola database. Semoga bermanfaat!


