Ad 468 X 60

Sabtu, 25 Oktober 2014

Widgets

Perintah Mysql membuat Tabel Log (Mencatat Aktivitas dengan Trigger)

Assalamu'alaikum ,,,
Siang gays ,,,,
Hmmm , akhirnya setelah dari pagi sampe sekarang mencari logika mysql untuk membuat tabel log yang disuruh oleh bapak dosen akhirnya ketemu , ga sia sia deh waktunya seharian didepan laptop :D

Baiklah langsung saja ya , sebelumnya saya akan menjelaskan tentang pengertian triger terlebih dahulu :
Trigger adalah sekumpulan perintah di mysql yang bisa menjalankan operasi tertentu pada tabel secara otomatis , tapi disini saya hanya akan menjelaskan cara membuat tabel log , sesuai judul yang saya buat :D
okeh langsung saja :

Langkah-langkah :
1. Buat tabel yang temen-temen ingin menyimpan aktivitas hapus,edit dan ubah
Misal, kalo ingin lebih cepat bisa lewat CMD , dan pastikan buatnya di database yang ingin kalian kenai perintah ini ya :

CREATE TABLE `log` (
  `ket` text NOT NULL,
  `datetime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `user` varchar(50) NOT NULL DEFAULT '',
  `data_lama` varchar(25) NOT NULL DEFAULT '',
  `data_baru` varchar(25) NOT NULL DEFAULT ''
) ENGINE=MYISAM DEFAULT CHARSET=latin1;

2. Kalau sudah , buat tabel yang ingin kalian kenai perintah trigger, misal saya akan menggunakan perintah trigger di tabel karyawan , ohya pastikan sudah di buat ID di tabel yang anda buat , contoh disini saya membuat tabel karyawan , mungkin tidak usah saya tampilkan yak pasti kalian sudah bisa gampang ko :D , langsung saja lanjut ke langkah yang ke-3

3. Misal langkah 1 dan 2 sudah selesai , langsung saja kita gunakan perintah trigger :

CATAT TABEL TAMBAH (copi coding dibawah ke cmd , pastikan keadaan didalam database , dan perintah dibawah digunakan untuk mencatat aktivitas tambah)

DELIMITER $$
DROP TRIGGER IF EXISTS `after_insert` $$
CREATE TRIGGER `after_insert` AFTER INSERT ON `karyawan`
FOR EACH ROW
BEGIN
  INSERT INTO LOG (ket, user, data_baru)
  VALUES (CONCAT('Insert data ke tabel karyawan, no_karyawan = ', NEW.no_karyawan), USER(), NEW.nm_karyawan);
END $$
DELIMITER ;

CATAT TABEL UBAH (copi coding dibawah ke cmd , pastikan keadaan didalam database , dan perintah dibawah digunakan untuk mencatat aktivitas ubah)

CATAT TABEL UBAH :
DELIMITER $$
DROP TRIGGER IF EXISTS `after_update` $$
CREATE TRIGGER `after_update` AFTER UPDATE ON `karyawan`
FOR EACH ROW
BEGIN
  INSERT INTO LOG (ket, USER, data_baru, data_lama)
  VALUES (CONCAT('Update data ke tabel karyawan, no_karyawan = ', NEW.no_karyawan), USER(), NEW.nm_karyawan, old.nm_karyawan);
END $$
DELIMITER ;

CATAT TABEL HAPUS : (copi coding dibawah ke cmd , pastikan keadaan didalam database , dan perintah dibawah digunakan untuk mencatat aktivitas hapus)

DELIMITER $$
DROP TRIGGER IF EXISTS `before_delete` $$
CREATE TRIGGER `before_delete` BEFORE DELETE ON `karyawan`
FOR EACH ROW
BEGIN
  INSERT INTO LOG (ket, USER, data_lama)
  VALUES (CONCAT('Delete data ke tabel karyawan, no_karyawan = ', OLD.no_karyawan), USER(), OLD.nm_karyawan);
END $$
DELIMITER ;


jadi Deh :D 
nih kalo pingin lihat hasil tabel log yang saya buat sebagai bukti :




sekian tutorial dari saya , semoga bermanfaat , terima kasih :)

@Fb  : Imam A. Ashari
@Pin : 75e43690

Sumber inspirasi : http://garyabraham.blogspot.com/2013/01/mencatat-log-pada-mysql-menggunakan.html






SHARE THIS POST   

  • Facebook
  • Twitter
  • Myspace
  • Google Buzz
  • Reddit
  • Stumnleupon
  • Delicious
  • Digg
  • Technorati
Author: Mohammad
Mohammad is the founder of STC Network which offers Web Services and Online Business Solutions to clients around the globe. Read More →

7 komentar:

  1. Klo menambah data User yang login melakukan proses CRUD, gimana mas?

    BalasHapus
  2. (copi coding dibawah ke cmd , pastikan keadaan didalam database , dan perintah dibawah digunakan untuk mencatat aktivitas tambah)

    maksudnya gimana ya mas?

    BalasHapus
  3. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  4. terimakasih sangat tidak membantu saya :)

    BalasHapus
  5. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  6. lalu jika kita ingin mencatat hanya id user, timestamp login dan timestamp logout bagaimana gan?

    BalasHapus