0% menganggap dokumen ini bermanfaat (0 suara)
4 tayangan13 halaman

Panduan Lengkap Trigger MySQL

Diunggah oleh

hera wati
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
4 tayangan13 halaman

Panduan Lengkap Trigger MySQL

Diunggah oleh

hera wati
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd

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.

Anda mungkin juga menyukai