Pertemuan VII TRIGGERS

dokumen-dokumen yang mirip
TRIGGER TRIGGER 5/29/2017 HANI IRMAYANTI, S.KOM

Kontrak Kuliah. Trigger dan Scheduled Events. Edi Sugiarto, S.Kom, M.Kom

Cara Membuat Trigger di MySQL

Cara Membuat Trigger di MySQL

PRAKTIKUM PL/SQL (Trigger) OLEH : WIRATMOKO YUWONO, ST

Praktikum Basis Data 2017 TE UM MODUL 8 TRIGGER A. TUJUAN

Bab 5. Database Trigger POKOK BAHASAN: TUJUAN BELAJAR: 5.1. PENDAHULUAN

Modul 6 Function dan Trigger

JobsheetTEUM MODUL VI TRIGGER

Pertemuan I KONSEP DASAR STORED ROUTINES

Contoh SQL Constraint

Praktikum TRIGGER. Tujuan :

Pertemuan VI F U N C T I O N

Mudafiq Riyan Pratama

Pengertian. Mengapa SP? Mengapa SP? 07/05/2012 STORED PROCEDURE

Basis Data II. Pertemuan Ke-9 dan ke-10 (Stored Procedure dan Trigger) Noor Ifada S1 T. Informatika - UTM (2012) 1

Riyanto

IMPLEMENTASI TRIGGER, STORED PROCEDURE, FUNCTION DAN VIEW PADA MYSQL DALAM PERANCANGAN SYSTEM INVENTORY CAFFE BOULEVARD JAYAPURA

BAB VIII FUNGSI, PL/PGSQL dan TRIGER

Administrasi Basis Data. Integritas Data. Yoannita

Computer Science, University of Brawijaya. Putra Pandu Adikara, S.Kom. Trigger. Basis Data 2

5. Database MySQL. Apa Database MySQL Itu? Hirarki Dalam Database. Table

BAB II PEMBUATAN DAN MANAJEMEN TABLE

Triggers. by: Ahmad Syauqi Ahsan

Pertemuan IX MANAJEMEN TRANSAKSI

LAPORAN TUGAS Pemrograman Berbasis Java

Persiapan Table Untuk Latihan Sebelum kita berkenalan lebih jauh dengan Trigger, mari kita buat terlebih dahulu, struktur table yang dibutuhkan.

TRIGGER. Tujuan Mata Kuliah. Tools yang digunakan. Sesi7 : TRIGGER. Praktikum Pemrograman Client Server Database Hadi Kusumah, S.T.

KapitaSelekta. (KBKI82127, 2 sks) Materi : Pengenalan MySQL

INTEGRITAS BASIS DATA. OLEH : Slamet Sn Wibowo Wicaksono

Modul Pembangunan Aplikasi Basis Data Lanjut 2014

Contoh SQL Constraint

Membuat Function, Stored Procedur dan View pada MySQL

Praktikum Basis Data. By. Rita Wiryasaputra, ST., M. Cs.

LAPORAN PRAKTIKUM MODUL 1 PENGENALAN MYSQL

Transact-SQL (Trigger- Event, Store Procedure)

Pertemuan IV CONDITION & HANDLER CURSOR

Transaction dan Trigger. M. Saefudin SKom, MMSI

MySQL Databases. Dasar-dasar MySQL dan Implementasi MySQL kedalam pemrograman PHP. Jakarta, 16 April 2011 Oleh: M. Awaludin, S.Kom

INTEGRITAS DAN KEAMANAN DATA. Gentisya Tri Mardiani, S.Kom., M.Kom

Pengenalan Structured Query Language

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN WEB Semester: 2 MYSQL 200 menit No.: Job: 12 Tgl: Hal.

PERINTAH DASAR MySQL

TUGAS I PRAKTIKUM SISTEM BASIS DATA. Nama: Krisna Pandu Wibowo( )

Agenda SQL. Pemakai SQL. Kemampuan SQL 02/12/2010 STRUCTURED QUERY LANGUAGE (SQL) Structured Query Language (SQL) (Pert. 9)

LAMPIRAN 1 LIST CODE DATABASE TRIGGER

Modul 3. Oleh : Mohammad Sholikin. 1

By Mrs Imana Malia Kondou, S.T. missimanakondou.wordpress.com

Praktikum Basis Data 14 Structure Query Language 2

Data Manipulation Language (DML)

Manajemen Data dengan Database MySQL Supriyono, M.Kom

APLIKASI KONVERSI FLOWCHART KE KODE PROGRAM BAHASA PEMROGRAMAN PL/SQL MYSQL

PRAKTIKUM SISTEM BASIS DATA

Contoh 3.1: Membuat suatu store procedure supaya menghapus semua pertandingan pemain berdasarkan nomor pemain yang ditentukan.

Nama : Parisaktiana Fathonah NIM : Kelas : Prak Sistem Basis Data TI-2 B malam

Praktikum 2 Mata Kuliah : Sistem Pengolahan Basis Data Dosen : Nandang Hermanto

VIEW : Tabel Virtual VIEW 5/29/2017

Basis Data Relational

MODUL 4 INTERNET PROGRAMMING DATABASE

TUGAS PRAKTIKUM SISTEM BASIS DATA

Stored Procedure. M. Saefudin SKom, MMSI

Pertemuan 12 Pengenalan Structured Query Language

DATABASE - MySQL. Muhammad Zen S. Hadi, ST. MSc.

MODUL I PENGENALAN MYSQL

MODUL PEMPROGRAMAN SQL TINGKAT DASAR 1 STANDAR KOMPETENSI: MENERAPKAN BAHASA PEMPROGRAMAN SQL TINGKAT DASAR SMK NEGERI 1 MAJALENGKA

TUGAS 1 PRAKTIKUM SISTEM BASIS DATA

Pengenalan Database Management System MySQL. Pokok Bahasan: Pengenalan DataBase Pembangunan database berbasis Client-Server Dasar-Dasar MySQL

15-Jan DATABASE - MySQL. Database. Constraints. Tujuan: Memahami perintah-perintah dasar DDL dan DML

P - 7 Pembahasan UTS PSIK V

Sistem Basis Data Danny Kriestanto, S.Kom., M.Eng

Data Manipulation Language (DML) & Data Control Language (DCL) pada Database

Perangkat Lunak Pengembangan Web

Pemrograman Basis Data dan SQL

Modul 2. Database Menggunakan Primary Key, Unique, Auto Increment, Alter-Add dan Alter-Drop. Disusun oleh. Sri Siska Wirdaniyati JURUSAN STATISTIKA

Jobsheet SQL Dasar : Hari Zulianto, ST [Year]

Untuk menjalankan Mysql secara konpensional jalankan Mysql.exe pada direktori Mysql\Bin. Akan tampak tampilan sebagai berikut:

INTERNET PROGRAMMING DATABASE

Modul 3 : Query Penggabungan Tabel

PL / SQL. Arif Basofi

BAB IV IMPLEMENTASI DAN PENGUJIAN

STRUCTURE QUERY LANGUAGE (SQL)

STORE PROCEDURE. Pemrograman Client Server Sarji, S.Kom Studi kasus pada

Introduction to SQL. Database Programming. 2 nd Chapter

Basis Data 2. Procedure dan Function Database. Arif Basofi, S.Kom. MT. Teknik Informatika, PENS

TUGAS PRAKTIKUM SISTEM BASIS DATA

MODUL V DATA MANIPULATION LANGUAGE (DML) 1

TABEL. Tabel Halaman 25

SQL Lanjut. Modifikasi Database. Versi 2

BAB 4 : Interaksi PL/SQL dengan Oracle Server

B a s i s D a t a - 1 C H A P T E R. SQL Operasi DML. Copyright 2005 PENS-ITS

PRAKTIKUM BASIS DATA TERDISTRIBUSI MODUL 4 SINKRONISASI DATA

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

BAB 4 MEMBUAT LIST OF VALUE (LOV) DAN NON-BASE TABLE FIELDS

BAB 2 LANDASAN TEORI

Sejarah(1) Sejarah(2) STRUCTURE QUERY LANGUANGE (1) Definisi SQL

X. PENGANTAR DATABASE

TUGAS 1 PRAKTIKUM SISTEM BASIS DATA

Basis Data Spasial Modul 2

BAB 3 BAHASA BASIS DATA (DATABASE LANGUAGE)

IMPLEMENTASI CONSTRAINT UNTUK MENJAMIN KONSISTENSI DAN INTEGRITAS DATA DALAM DATABASE

Transkripsi:

Pertemuan VII TRIGGERS

TUJUAN 1. Mahasiswa mampu untuk menjelaskan tentang jenisjenis dari triggers. 2. Mahasiswa mampu untuk menjelaskan tentang database triggers dan penggunaannya. 3. Mahasiswa mampu untuk membuat triggers. 4. Mahasiswa mampu untuk menjelaskan aturan-aturan di lingkungan trigger. 5. Mahasiswa mampu untuk meremove triggers.

PENGERTIAN DARI TRIGGER Trigger merupakan nama object database yang berhubungan dengan sebuah tabel dan aktif ketika suatu kejadian muncul pada suatu tabel tertentu Trigger adalah : Sebuah blok PL/SQL atau prosedur PL/SQL yang berhubungan dengan table, view, schema atau database. Akan dieksekusi secara implicit pada saat sebuah kejadian tertentu terjadi. Trigger merupakan bentuk khusus suatu Strore Procedure yang akan dilaksanakan secara otomatis jika terjadi perubahan (INSERT, UPDATE dan DELETE) pada sebuah tabel.

PENGERTIAN DARI TRIGGERS (cont) Ada 2 jenis trigger yaitu : Application trigger: Terjadi pada saat sebuah kejadian terjadi dengan aplikasi tertentu. Database trigger : Terjadi pada saat terjadi sebuah perubahan data seperti DML pada table (INSERT, UPDATE atau DELETE)

KEUNTUNGAN TRIGGER Dalam sebuah tabel dapat mempunyai beberapa trigger. Trigger sangat berguna karena dapat secara otomatis dilaksanakan dalam server, sehingga menyederhanakan pemorgraman, sekaligus menjaga konsistensi informasi dalam database

KEUNTUNGAN TRIGGER (cont) Keuntungan penggunaan Trigger antara lain : a. Standarisasi (penyeragaman) proses. Trigger dibuat satu kali dan tersimpan dalam database, sehingga semua client yang menggunakan database tersebut sekaligus adalah pengguna Trigger. Dengan demikian seluruh client akan menggunakan operasi yang sama terhadap suatu proses dalam database, karena Trigger yang dipakai sama. b. Menyederhanakan pemrograman. Apabila Trigger sudah dibuat dalam database server, seluruh program dalam bahasa apapun, yang mengakses database tersebut akan secara otomatis menggunakan Triger yang ada tanpa perlu membuat perintahnya dalam program aplikasi.

KEUNTUNGAN TRIGGER (cont) c. Mudah diperbaharui. Apabila Trigger pernah di-update dalam database server, semua client akan menggunakan perbaruan yang terakhir d. Kecepatan dan efisiensi proses. Oleh karena Trigger disimpan dalam server dalam kode yang sudah terkompilasi, dan dilaksanakan dalam server sehingga lalu-lintas jaringan menjadi berkurang. e. Memudahkan kerja secara tim. Apabila Trigger dan Stored Procedure sudah dibuat, anggota tim kerja dapat menggunakan bahasa pemrograman yang berbeda dalam mengaksesnya, karena Trigger disimpan dan dilaksanakan oleh server, tanpa melihat bahasa pemrograman apa yang dipakai oleh pengguna database.

PETUNJUK UNTUK DISAIN TRIGGER Gunakan trigger untuk memastikan pada saat sebuah operasi tertentu terbentuk, aksi yang berhubungan dengannya juga terbentuk. Gunakan database trigger hanya untuk operasi yang global. Tidak mendisain trigger untuk fungsi-fungsi yang yang telah dibuat oleh server database dan tidak boleh membuat duplikasi trigger. Buatlah store procedur dan invoke prosedur dalam sebuah trigger jika kode PL/SQL terlalu panjang. Gunakan trigger untuk menghasilkan hasil dengan tingkat interdepensi yang tinggi, yang sulit untuk dimaintain dalam aplikasi yang besar. Database trigger akan terjadi untuk setiap user pada saat sebuah kejadian yang mentrigger dibuat.

MEMBUAT TRIGGER Syntaks CREATE [DEFINER = { user CURRENT_USER }] TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt Sebelum membuat coding untuk trigger, tentukan terlebih dahulu nilai-nilai dari komponen trigger yaitu: trigger timing, trigger event dan trigger type.

MEMBUAT TRIGGER (cont) Part Trigger timing (TRIGGER_TIME) Trigger_event Keterangan Kapan triger terjadi sesuai dengan trigger event. Operasi manipulasi data tertentu pada tabel atau view yang menyebabkan trigger dilaksanakan Nilai yang mungkin BEFORE AFTER INSERT UPDATE DELETE Trigger_stmt Aksi yang terjadi pada saat trigger terjadi Block PL/SQL

MEMBUAT TRIGGER (cont) Trigger timing kapan trigger terjadi? BEFORE Mengeksekusi body trigger sebelum mentrigger event DML pada sebuah table. AFTER Mengeksekusi body trigger setelah mentrigger event DML pada sebuah table

MEMBUAT TRIGGER (cont) Triggering user event (Trigger_event) DML statement yang menyebabkan trigger dieksekusi. Peristiwa atau kejadian yang memicu terjadinya Trigger. Kita dapat menggunakan statement INSERT, UPDATE, DELETE. Saat menggunakan UPDATE maka perlu memasukan list kolom, untuk mengidentifikasikan kolom mana yang berubah,. Tidak perlu menspesifikasikan list kolom untuk statement INSERT atau untuk DELETE karena perintah tersebut akan berpengaruh pada suatu row. Trigger dapat berisi satu, dua atau ketiganya dari operasi DML.INSERT or UPDATE or DELETE

MEMBUAT TRIGGER (cont) Trigger body (trigger_statement) aksi apa yang trigger buat? Trigger body merupakan pernyataan atau perintah yang dilaksanakan Trigger. Jika pernyataan yang dilaksanakan lebih dari satu perintah, beberapa perintah dapat dimasukan ke dalam block BEGIN.. END.

Temporer Tabel (Old dan New) Perlu diketahui pada saat proses menambahkan data, MySQL akan membuat semacam tabel temporer dengan struktur yang sama dengan tabel yang akan diisi. Tabel temporer diberi nama new. Pada saat proses pemasukan data (INSERT), nilai-nilai yang akan dimasukan ke dalam tabel disalin ke dalam tabel NEW Hal yang hampir sama juga berlaku pada proses penghapusan data (DELETE). Pada perintah menghapus data akan dibuat tabel temporer OLD dengan struktur yang sama dengan tabel yang record-nya akan dihapus. Sedangkan untuk proese updating data (UPDATE) kedua tabel temporer yaitu OLD dan NEW dibuat. Old akan menyimpan data yang dihapus (sebelum di-update) dan New berisi data pengganti (data baru).

Contoh Perhatikan tabel berikut ini: Misalkan stock pada tabel barang masih kosong. Kemudian akan dibuat Trigger yang otomatis akan mengupdate stock pada tabel barang jika terdapat proses pembelian

Contoh (cont) Adapun tabel DetailPembelian mempunyai struktur sebagai berikut: Table Create Table --------------- ----------------------------------------------- detailpembelian CREATE TABLE `detailpembelian` ( `NoReference` varchar(10) NOT NULL default '', `KodeBarang` varchar(12) NOT NULL default '', `HargaBeli` double NOT NULL default '0', `JumlahBarang` int(8) NOT NULL default '0', `Operator` varchar(8) NOT NULL default '' ) ENGINE=MyISAM DEFAULT CHARSET=latin1

Contoh (cont) Kemudian dibuat Trigger dengan nama triggerbeli DELIMITER $$ create trigger `trigerbeli` BEFORE INSERT on `detailpembelian` for each row BEGIN UPDATE barang SET Stock=IF(ISNULL(Stock),0,Stock)+new.JumlahBarang WHERE KodeBarang = new.kodebarang; END; $$ DELIMITER ;

Contoh (cont) Contoh diatas berarti perintah untuk membuat Trigger bernama trigerbeli yang akan otomatis dilaksanakan sebelum tabel detailpembelian diisi dengan suatu record. Pada setiap sebelum satu baris (record) ditambahkan ke dalam tabel DetailPembelian, tabel Barang akan di-update, yaitu isi kolom Stock di-update dengan isi sebelumnya ditambah banyak barang yang akan ditambahkan ke dalam tabel detailpembelian, untuk barang dalam tabel barang yang kode barangnya sama dengan kode barang dari baris yang akan disisipkan ke dalam tabel detailpembelian.

Contoh (cont) Perhatikan bahwa Trigger menggunakan pernyataan new.jumlahbarang dan new.kodebarang. Sebelum sebuah trigger dibuat dan belum dihapus, Trigger akan selalu siap dan akan bekerja sesuai dengan tugasnya, sehingga siapapun dan dari program apapun menambahkan data ke dalam tabel detailpembelian, berarti pula akan mengupdate jumlah stok dalam tabel Barang. Isikan tabel detailpembelian dengan data : INSERT INTO detailpembelian` ( 1, PS.001,900,50, SAYA ); Berapakah stock untuk tabel Barang untuk barang PS.001???

MENGHAPUS DAN MEMPERBAIKI TRIGGER MySQL tidak menyediakan fasilitas untuk memperbaiki atau mengedit Trigger. Oleh karena itu cara untuk memperbaiki Trigger adalah dengan menghapusnya, kemudian membuat yang baru. DROP TRIGGER Trigger_name