TRIGGER
DI SUSUN OLEH :
Nama : SITI HERAWATI
NIM : 2302029
Program Studi : Sistem Informasi
Dosen Pengampu : Dr. Dedy Hartama, S.T, [Link]
SEKOLAH TINGGI ILMU KOMPUTER
STIKOM TUNAS BANGSA
PEMATANGSIANTAR
2024
KATA PENGANTAR
Puji syukur penulis panjatkan ke hadirat Tuhan Yang Maha Esa, karena berkat
rahmatnya penulis dapat menyelesaikan tugas laporan ini deanga baik. Dengan ini aporan
yang berjudul “TRIGGER” disusun. penulis ingin pembaca memahami tentang konsep
penting ini. Penulis berharap dapat memberikan wawasan yang berharga dan memperkaya
pemahaman tentang penggunaan “TRIGGER”.
Penulis menyadari bahwa masih terdapat kekurangan dalam penyusunan laporan ini.
Oleh karena itu, penulis sangat mengharapkan kritik dan saran dari pembaca untuk
membangun perbaikan di masa mendatang.
Pematangsiantar, 21 Oktober 2024
Penulis
Daftar isi
TRIGGER................................................................................................................................................1
Daftar isi................................................................................................................................................3
BAB I......................................................................................................................................................4
PENDAHULUAN.................................................................................................................................4
1.1. Latar Belakang.................................................................................................................4
1.2. Rumusan Masalah...........................................................................................................4
1.3. Tujuan..............................................................................................................................4
Bab II......................................................................................................................................................5
Pembahasan......................................................................................................................................5
2.1. Defini Trigger........................................................................................................................5
2.2. Membuat Dan Menjalankan Trigger..................................................................................6
2.3. Studi Kasus............................................................................................................................9
Bab III...................................................................................................................................................10
Penutup...........................................................................................................................................10
3.1. Kesimpulan.........................................................................................................................10
Daftar Pustaka...........................................................................................................................11
BAB I
PENDAHULUAN
1.1. Latar Belakang
Awal mula penggunaan trigger dalam basis data dapat ditelusuri kembali pada tahun
1970-an ketika basis data relasional pertama kali muncul. Trigger pertama kali diperkenalkan
dalam sistem basis data seperti System R(IBM), yang menjadi salah satu model awal bagi
banyak sistem basis data relasional modern.
Trigger diciptakan sebagai mekanisme untuk memungkinkan otomatisasi tindakan
tertentu dalam respons terhadap perubahan data dalam tabel. Konsepnya terinspirasi dari
logika bisnis yang sering kali memerlukan tindakan otomatis setelah suatu peristiwa terjadi.
Sejak diperkenalkan, penggunaan trigger telah berkembang dan terus digunakan dalam
berbagai sistem basis data relasional seperti Oracle, Microsoft SQL Server, MySQL,
PostgreSQL, dan lainnya.
1.2. Rumusan Masalah
Bagaimana sintaks Trigger ?
Bagaimana implementasi Trigger di MYSQL ?
1.3. Tujuan
Untuk mengetahui bagaimana cara penulisan sintaks Trigger.
Untuk mengetahui bagaimana implementasi Trigger di MYSQL.
Bab II
Pembahasan
2.1. Defini Trigger
Trigger adalah serangkaian tindakan yang dijalankan secara otomatis saat
megoperasikan perubahan tertentu yang dilakukan pada tabel tertentu. Kejadian (event) yang
dapat membangkitkan trigger umumnya berupa pernyataan INSERT, UPDATE, atau
DELETE. Berdasarkan ruang lingkupnya, trigger diklasifikasikan menjadi dua jenis : row
trigger dan statement trigger. Trigger baris(row) mendefinisikan aksi untuk setiap baris tabel,
trigger pernyataan hanya berlaku untuk setiap pernyataan INSERT, UPDATE, atau DELETE.
Dari sisi perilaku eksekusi, trigger dapat dibedakan menjadi beberapa jenis, namun
umumnya ada dua jenis trigger : trigger BEFORE dan AFTER.
Kita dapat mendefinisikan maksimum enam jenis tindakan atau peristiwa dalam
bentuk tirgger :
BEFORE INSERT, ini diaktifkan sebelum penyisipan data ke dalam tabel.
AFTER INSERT, ini diaktifkan setelah penyisipan data ke dalam tabel.
BEFORE UPDATE, ini diaktifkan sebelum pembaruan data dalam tabel.
AFTER UPDATE, ini diaktifkan setelah pembaruan data dalam tabel.
BEFORE DELETE, ini diaktifkan sebelum data dihapus dari tabel.
AFTER UPDATE, ini diaktifkan setelah pengahapusan data sari tabel.
Perintah / Sintaks umum Trigger adalah :
DELIMITER **
CREATE TRIGGER nama_trigger
{BEFORE | AFTER}{ INSERT | UPDATE | DELETE}
ON nama_table
FOR EACH ROW
BEGIN
Kode SQL
END**
DELIMITER ;
Keuntungan Trigger, antara lain :
1. Membantu mengotomatiskan perubahan data.
2. Memungkinkan kami menggunakan kembali query yang pernah ditulis.
3. Menyediakan metode untuk memeriksa integritas data database.
4. Membantu mendeteksi kesalahan pada level database.
5. Memungkinkan pengauditan data dengan mudah.\
Ada pula kekurangan Trigger, antara lain :
1. Meningkatkan biaya overhead server.
2. Hanya menyediakan validasi yang diperluas yang tidak semua validasi dapat diakses
di pemicu SQL.
3. Memecahkan masalah kesalahan karena Trigger adalah pekerjaan yang
membosankan.
4. Dapat menyebabkan kesalahan logis dalam aplikasi meskipun ada sedikit kesalahan
dalam query.
5. Kita bisa kehilangan data asli jika kita salah menyetel Trigger.
2.2. Membuat Dan Menjalankan Trigger
Langkah 1
1. Membuat table karyawan
CREATE TABLE karyawan (
-> id_karyawan INT PRIMARY KEY AUTO_INCREMENT,
-> nama_karyawan VARCHAR(50),
-> gaji_pokok DECIMAL(10,2),
-> tunjangan DECIMAL(10,2));
2. Membuat table penggajian
CREATE TABLE penggajian (
-> id_penggajian INT PRIMARY KEY AUTO_INCREMENT,
-> id_karyawan INT,
-> gaji_total DECIMAL(10,2),
-> tanggal_penggajian DATE,
-> FOREIGN KEY (id_karyawan) REFERENCES karyawan(id_karyawan));
3. Membuat table
CREATE TABLE log_penggajian (
-> id_log INT PRIMARY KEY AUTO_INCREMENT,
-> id_karyawan INT,
-> gaji_total_sebelumnya DECIMAL(10,2),
-> gaji_total_baru DECIMAL(10,2),
-> tanggal_log DATE);
Langkah 2
1. Mengisi data table karyawan
INSERT INTO karyawan (nama_karyawan, gaji_pokok, tunjangan) VALUES
-> ('Ahmad Saputra', 5000000, 1000000),
-> ('Dina Kartika', 7000000, 1500000),
-> ('Eko Widodo', 5000000, 1000000);
select*from karyawan;
+-------------+---------------+------------+------------+
| id_karyawan | nama_karyawan | gaji_pokok | tunjangan |
+-------------+---------------+------------+------------+
| 1 | Ahmad Saputra | 5000000.00 | 1000000.00 |
| 2 | Dina Kartika | 7000000.00 | 1500000.00 |
| 3 | Eko Widodo | 5000000.00 | 1000000.00 |
+-------------+---------------+------------+------------+
2. Mengisi table penggajian
INSERT INTO penggajian (id_karyawan, gaji_total,
tanggal_penggajian) VALUES
-> (1, 6000000, '2024-10-17'),
-> (2, 8500000, '2024-10-17');
select*from penggajian;
+---------------+-------------+------------+--------------------+
| id_penggajian | id_karyawan | gaji_total | tanggal_penggajian |
+---------------+-------------+------------+--------------------+
| 1 | 1 | 6000000.00 | 2024-10-17 |
| 2 | 2 | 8500000.00 | 2024-10-17 |
+---------------+-------------+------------+--------------------+
2.3 Studi Kasus Trigger
Sebuah perusahaan membutuhkan sistem untuk mencatat dan memonitor penggajian
karyawan. Sistem ini harus mampu menyimpan informasi gaji pokok, tunjangan, serta
perubahan total gaji karyawan dari waktu ke waktu. Untuk itu, diperlukan sebuah tabel yang
menyimpan data historis penggajian tiap karyawan beserta tanggal perubahan.
Permintaan:
Buatlah sistem yang mampu:
Menyimpan informasi dasar karyawan (ID, nama, gaji pokok, dan tunjangan).
Mencatat perubahan gaji dari waktu ke waktu dan menyimpannya ke dalam log.
Menampilkan riwayat gaji setiap karyawan, termasuk total gaji sebelum dan setelah
perubahan.
Langkah-Langkah:
Membuat Tabel Karyawan: Tabel ini menyimpan data karyawan beserta gaji pokok dan
tunjangan mereka.
sql
Salin kode
CREATE TABLE karyawan (
id_karyawan INT PRIMARY KEY,
nama_karyawan VARCHAR(100),
gaji_pokok DECIMAL(10,2),
tunjangan DECIMAL(10,2)
);
Mengisi Data Karyawan: Mengisi tabel karyawan dengan beberapa data.
sql
INSERT INTO karyawan (id_karyawan, nama_karyawan,
gaji_pokok, tunjangan)
VALUES
(1, 'Ahmad Saputra', 5000000, 1000000),
(2, 'Dina Kartika', 7000000, 1500000),
(3, 'Eko Widodo', 5000000, 1000000);
Membuat Tabel Log Penggajian: Tabel ini akan mencatat setiap perubahan gaji
karyawan.
sql
CREATE TABLE log_penggajian (
id_log INT PRIMARY KEY AUTO_INCREMENT,
id_karyawan INT,
gaji_total_sebelumnya DECIMAL(10,2),
gaji_total_baru DECIMAL(10,2),
tanggal_log DATE,
FOREIGN KEY (id_karyawan) REFERENCES
karyawan(id_karyawan)
);
Mencatat Perubahan Gaji: Ketika ada perubahan gaji, kita mencatatnya dalam tabel log
penggajian. Misalnya, Ahmad Saputra mendapatkan kenaikan gaji, kita bisa mencatatnya
seperti ini:
INSERT INTO log_penggajian (id_karyawan,
gaji_total_sebelumnya, gaji_total_baru, tanggal_log)
VALUES
(1, 6000000, 7000000, '2024-10-20');
Menampilkan Riwayat Gaji Karyawan: Untuk melihat perubahan gaji setiap karyawan,
kita bisa melakukan query berikut:
SELECT k.nama_karyawan, l.gaji_total_sebelumnya,
l.gaji_total_baru, l.tanggal_log
FROM log_penggajian l
JOIN karyawan k ON l.id_karyawan = k.id_karyawan
WHERE k.id_karyawan = 1; -- Ganti 1 dengan ID karyawan yang
ingin ditampilkan.
Bab III
Penutup
3.1. Kesimpulan
Penggunaan trigger dalam basis data untuk otomatisasi penghitungan gaji karyawan
sangat membantu dalam meningkatkan efisiensi dan keakuratan. Dengan
menggunakan trigger, perhitungan gaji total karyawan yang melibatkan berbagai
komponen seperti gaji pokok, lembur, dan potongan dapat dilakukan secara otomatis
setiap kali data baru dimasukkan. Ini mengurangi kemungkinan kesalahan perhitungan
secara manual dan memastikan proses yang lebih cepat dan andal. Sistem penggajian
berbasis database dengan trigger juga membantu perusahaan mengelola data dalam
skala besar dengan lebih efektif.
Daftar Pustaka
1. Date, C.J. (2004). An Introduction to Database Systems. Pearson Education.
[Link], A., Korth, H. F., & Sudarshan, S. (2010). Database System Concepts.
McGraw-Hill.
[Link], P., & Coronel, C. (2008). Database Systems: Design, Implementation, and
Management. Course Technology.
[Link], T., & Begg, C. (2014). Database Systems: A Practical Approach to Design,
Implementation, and Management. Pearson.
[Link], R., & Gehrke, J. (2003). Database Management Systems. McGraw-
Hill.
[Link], C., Morris, S., & Rob, P. (2017). Database Systems: Design,
Implementation, and Management. Cengage Learning.