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

dokumen-dokumen yang mirip
TUGAS PRAKTIKUM SISTEM BASIS DATA

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

TRIGGER TRIGGER 5/29/2017 HANI IRMAYANTI, S.KOM

Praktikum Basis Data (Database Server MySQL) Bekerja Dengan Tabel

TUGAS PRAKTIKUM SISTEM BASIS DATA

LAPORAN PRAKTIKUM MODUL 1 PENGENALAN MYSQL

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

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

PERINTAH DASAR MySQL

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

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

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

BAB II PEMBUATAN DAN MANAJEMEN TABLE

Pengenalan Structured Query Language

MySQL J A M K E T I G A

Jobsheet SQL Dasar : Hari Zulianto, ST [Year]

Praktikum Basis Data 14 Structure Query Language 2

Pemrograman Web Lanjut 2017

Pertemuan 12 Pengenalan Structured Query Language

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

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

P - 7 Pembahasan UTS PSIK V

CARA MENGGUNAKAN SELECT QUERY PADA MYSQL

1. Memulai pengelolaan database Menampilkan daftar database Sintaks : show databases;

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

MODUL 4 INTERNET PROGRAMMING DATABASE

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

BAB VIII FUNGSI, PL/PGSQL dan TRIGER

TUGAS 1 PRAKTIKUM SISTEM BASIS DATA

Contoh SQL Constraint

Modul 6 Function dan Trigger

Basis Data. DDL & Aturan Referential

Contoh SQL Constraint

MySQL Full-Text Searching

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

LAPORAN PRAKTIKUM SISTEM BASIS DATA

Tahap Instalasi PostgreSQL di Windows

Modul 3 : Query Penggabungan Tabel

Agus Setiadi : ( ) Bambang Dimas Ermanto : ( ) Mata Kuliah : Pemprograman Generasi 4

Hak Akses dan Login Multi User. Baiklah untuk mulai praktek yang pertama ini file yang dibutuhkan adalah seperti yang terlihat dalam gambar berikut :

MODUL PRAKTIKUM 04. Database Implementation dengan Perintah SQL

BAB IV IMPLEMENTASI DAN PENGUJIAN

MySQL AL AZHAR COMPUTER CLUB

Untuk mencoba contoh-contoh perintah join, silahkan eksekusi query create+insert dibawah ini:

PENGENALAN SINTAKS DASAR DALAM MySQL

BAB IV TESTING DAN IMPLEMENTASI

TUGAS 1 PRAKTIKUM SISTEM BASIS DATA

PRAKTIKUM SISTEM BASISDATA. Disusun Oleh : Anggi Nurcahyo ( )

7 VARIASI INSERT YANG TERLUPAKAN

LAPORAN PRAKTIKUM SISTEM BASIS DATA

Obyek pada Oracle. Manajemen Obyek Basis Data dan Dictionary View. Obyek pada Oracle adalah segala hal yang bisa dibuat di Oracle, seperti:

STUPID LOGIC PROGRAMMING II

E-trik Ajax. Database MySQL. Dedi Alnas

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

1. Hasil ERD dari Tabel satu adalah sebagai berikut: Figure 1: ERD Apotik. 2. Syntax CREATE tabel untuk masing - masing tabel :

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

Mengenal Operasi Dasar SQL

DATABASE RUMAH SAKIT 1. Objek yang dipakai a. Pasien b. Dokter c. Ruang d. Petugas e. Rawat_inap f. Pembayaran

Kamus Perintah Hibernate Criteria Query MySQL

TUGAS PRAKTIKUM SISTEM BASIS DATA

PHP & MYSQL. Universitas Komputer Indonesia 2004 Taryana. S Login ke dalam Linux Contoh :

BAB IV IMPLEMENTASI DAN PENGUJIAN

PRAKTIKUM SISTEM BASISDATA

MODUL 8 MEMBUAT USER DAN MENGAKSES DATABASE

Konsep Sistem Informasi B. BAB 2 - SQL Overview

Tutorial Singkat MySQL

DESAIN DATABASE. Pertemuan 06 3 SKS

b) Membuat database tiket. Siapkan databasenya dengan membuat database tiket Sampai langkah ini database tiket sudah siap digunakan

TUTORIAL JQUERY Langkah Tepat menjadi Web Designer Handal, menguasai JQuery JavaScript Library, jalan membuat halaman website lebih atraktif

Untuk mengakses MySQL dengan mode text dari Console (Command Prompt = Microsoft Windows), dapat dilakukan dengan cara : 1.

Pemrograman Web. Koneksi dan Manipulasi Basis Data. 7 Adam Hendra Brata

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

MODUL I PENGENALAN MYSQL

Pertemuan VII TRIGGERS

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

Merancang Database Aplikasi Penjualan

IF PEMROGRAMAN LANJUT MENGAKSES DATABASE. Oleh : Andri Heryandi, M.T.

Perintah MySQL Lanjutan

PRAKTIKUM SISTEM BASIS DATA

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

_basis_data. 10 rows in set (0.24 sec)

Mudafiq Riyan Pratama

Menangani Input dari User

DATABASE MYSQL DENGAN PHP


BAB V IMPLEMENTASI DAN PENGUJIAN SISTEM. sudah ditentukan. Tujuan implementasi adalah untuk mengkonfirmasi modul program

Kontrak Kuliah. Dasar-dasar MySQL. Edi Sugiarto, S.Kom, M.Kom

LAPORAN TUGAS BASIS DATA I

Database Systems: Lab. Actvity 1: Database Design. Merancang Database. Merancang Database. Tipe Tabel MySQL.

Constraint dan Manajemen Data dalam Timezone Berbeda

4. BAB IV ANALISIS DAN PERANCANGAN SISTEM. diusulkan perancangan sistem baru, dimana kinerja dari suatu sistem yang baru

B a s i s D a t a C H A P T E R. SQL Operasi DML. Arif Basofi PENS 2015

Database Management System. Program yang memungkinkan item-item dalam suatu database disusun, diolah dan diperbaharui

MySQL. Setelah Anda melakukan tahapan-tahapan di atas Anda akan dapatkan screen seperti ini

MODUL IV DATA DEFINITION LANGUAGE (DDL)

Modul Pembangunan Aplikasi Basis Data Lanjut 2014

Seri 01 : Belajar Database MySQL

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

BAB IV IMPLEMENTASI DAN PENGUJIAN

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

Transkripsi:

Mengenal Trigger di MySQL Pernahkan menemukan kasus saat men-develop aplikasi, dimana perlu melakukan update terhadap suatu field, berdasarkan isi dari field lain? Contoh: men-update field status menjadi disabled, apabila tanggal input lebih kecil dari tanggal hari ini. Biasanya, yang kita lakukan adalah dengan melakukan pengecekan di script (baik itu PHP, Java, atau lainnya) sebelum menyimpan data ke table. Definisi Trigger Di MySQL, ada suatu mekanisme bernama TRIGGER yang bisa digunakan sebagai alternatif untuk kasus di atas. Trigger akan menjalankan suatu perintah SQL yang bisa terjadi pada saat sebelum atau sesudah kita melakukan perintah INSERT, UPDATE, dan DELETE. Secara sederhana, syntax trigger adalah sebagai berikut: CREATE TRIGGER nama_trigger [BEFORE/AFTER] [INSERT/UPDATE/DELETE] ON nama_table FOR EACH ROW //defisi trigger Di dalam blok... kita bisa memasukkan sebanyak mungkin perintah SQL dengan memisahkan masing-masing perintah menggunakan tanpa titik-koma ;. Persiapan Table Untuk Latihan Sebelum kita berkenalan lebih jauh dengan Trigger, mari kita buat terlebih dahulu, struktur table yang dibutuhkan. CREATE TABLE `table_master` ( `id` int(11) NOT NULL AUTO_INCREMENT, `nama` varchar(60) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; CREATE TABLE `table_master_backup` ( `id` int(11) NOT NULL AUTO_INCREMENT, `nama` varchar(60) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; CREATE TABLE `table_log` ( `tanggal` date NOT NULL, `master_id` int(11) NOT NULL, UNIQUE KEY `tanggal` (`tanggal`,`master_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Penjelasan penggunaan table di atas adalah sebagai berikut: table_master adalah master data user table_master_backup adalah backup dari table master data untuk user2 yang sudah dianggap tidak aktif lagi table_log adalah catatan kegiatan dari user. Strukturnya tidak masuk akal? cuekin saja, soalnya saya juga bingung ingin membuat contoh kasus yang seperti apa :D. Membuat Trigger Sederhana Untuk contoh kasus yang akan kita lakukan adalah, setiap kali melakukan proses insert table master, hitung rating berdasarkan panjang nama. Untuk sederhananya, kita buat saja dengan formula: rating = panjang_nama * 2 Maka, syntax trigger yang akan kita buat adalah sebagai berikut: DROP TRIGGER IF EXISTS trigger_insert_master; CREATE TRIGGER trigger_insert_master BEFORE INSERT ON table_master FOR EACH ROW SET NEW.rating = LENGTH(NEW.nama) * 2; Setelah Trigger berhasil dibuat, sekarang kita test dengan melakukan operasi INSERT: INSERT INTO table_master(nama) VALUES('Jagung Agung'); Perhatikan bahwa kita hanya mengisikan nama pada operasi INSERT. Coba kita lihat apa yang terjadi dengan data yang kita simpan: mysql> SELECT * FROM table_master; id nama rating 1 Jagung Agung 24 1 row in set (0.04 sec) Bisa dilihat bahwa field rating juga ikut terisi.

Sebelum melangkah lebih jauh, mari kita tambahkan beberapa data terlebih dahulu: INSERT INTO table_master(nama) VALUES('Jagung Agung'); INSERT INTO table_master(nama) VALUES('Badi Bangor'); INSERT INTO table_master(nama) VALUES('Mad Dog'); INSERT INTO table_master_backup(id, nama, rating) VALUES(5, 'Success Kids', 24); INSERT INTO table_master_backup(id, nama, rating) VALUES(6, 'Interesting Man', 30); INSERT INTO table_master_backup(id, nama, rating) VALUES(7, 'Yao Ming', 16); Ok, data sudah siap. Sekarang, yang akan kita lakukan adalah saat melakukan INSERT data log, cari nilai rating user dari table master atau master_backup dan isikan nilainya sebagai nilai rating saat ini. Bagaimana syntaxnya? Silahkan dipelajari: CREATE TRIGGER trigger_insert_log BEFORE INSERT ON table_log FOR EACH ROW SET NEW.rating = (SELECT rating FROM table_master WHERE id = NEW.master_id); SET NEW.rating = (SELECT rating FROM table_master_backup WHERE id = NEW.master_id); Sekarang kita test dengan query berikut: INSERT INTO table_log(tanggal, master_id) VALUES('2012-11-25', 3); INSERT INTO table_log(tanggal, master_id) VALUES('2012-11-25', 7); Bagaimana hasilnya? mysql> SELECT * FROM table_log; tanggal master_id rating 2012-11-25 3 22 2012-11-25 7 16 2 rows in set (0.00 sec) Wow, rating langsung terisi!

Menampilkan Pesan Pada Trigger Trik terakhir yang akan saya bagi adalah, bagaimana menampilkan pesan apabila terjadi suatu kesalahan. Yaitu, dengan membuat variable dummy dan melakukan SELECT yang berisi pesan kesalahan ke variable dummy tersebut. Contohnya: Pertama-tama kita hapus dulu trigger yang sudah dibuat tadi. Caranya, ketikan query berikut: DROP TRIGGER trigger_insert_log; Setelah itu buat trigger seperti di bawah ini : CREATE TRIGGER trigger_insert_log BEFORE INSERT ON table_log FOR EACH ROW DECLARE dummy INT; SET NEW.rating = (SELECT rating FROM table_master WHERE id = NEW.master_id); SET NEW.rating = (SELECT rating FROM table_master_backup WHERE id = NEW.master_id); SELECT `Master ID tidak ditemukan` INTO dummy FROM table_log WHERE master_id = NEW.master_id AND tanggal = NEW.tanggal; Apabila Anda mencoba melakukan query INSERT dengan data master_id yang tidak ada di table_master dan table_master_backup, maka yang terjadi adalah: mysql> INSERT INTO table_log(tanggal, master_id) VALUES('2012-11-25', 25); ERROR 1054 (42S22): Unknown column 'Master ID tidak ditemukan' in 'field list' Penutup Trik penggunaan Trigger dibandingkan pengecekan melalui script ada banyak sekali manfaatnya. Di antaranya adalah memusatkan business logic menjadi satu di database. Selain itu juga dengan pengecekan yang di lakukan di sisi database, maka mengurangi traffic data antara database dengan script. Dan sangat signifikan. Rewrite www.listsoftmedia.com