Trigger PostgreSQL
Disusun Oleh:
Jeanny Indra Rifani
(150535602565)
Indy Fungsihan
(150535602331)
S1 TI 2015 OFF B
MODUL 3
Trigger PostgreSQL
1.
Tujuan
A. Memahami perintah-perintah dalam SQL.
B. Mengenal operasi-operasi DDL dan DML.
C. Mampu mengaplikasikan trigger dalam postgreSQL.
2.
Dasar Teori
PostgreSQL adalah Sistem Manajemen Basis Data (SMBD atau DBMS
(dalam bhs.Inggris)).
Basisdata adalah Sebuah basisdata merupakan kumpulan data yang
terorganisir untuk satu atau lebih kegunaan, pada umumnya dalam bentuk
digital. - Wikipedia
Sebuah sistem manajemen basisdata (DBMS) terdiri dari perangkat lunak
yang mengoperasikan basisdata, menyediakan penyimpanan, akses,
keamanan, cadangan (backup) dan fasilitas lainnya. Wikipedia
SQL terdiri dari beberapa komponen, dua di antaranya yang sangat
fundamental adalah DDL (Data Definition Language) dan DML (Data
Manipulation Language).
A. DDL (Data Definition Language)
DDL menyediakan perintah-perintah yang berhubungan dengan operasi
operasi dasar seperti mendefinisikan, memodifikasi dan menghapus
skema relasi misalnya tabel, view, prosedur dan fungsi. Contoh
perintah DDL adalah CREATE, ALTER dan DROP.
B. DML (Data Manipulation Language)
B. CREATE TABLE
1. Untuk melanjutkan operasi dalam database, maka diperluka sebuah
atau beberapa tabel. Tujuan tabel adalah menampung inputan data
kita, sehingga kita bisa melakukan modifikasi data (seperti: Alter,
drop, Create table, update, dst) serta melakukan perhitungan data
(seperti: count, sum, min, max, avg, dst).
2. Disini tabel yang digunakan adalah tabel bernama mahasiswa,
matakuliah, dan ambil_mk. Dimana, tabel-tabel tersebut saling
berelasi. Berikut querynya:
**Membuat Tabel
CREATE TABLE mahasiswa
(nim int, nama varchar(6), jk varchar(1), alamat varchar(20));
CREATE TABLE matakuliah
(kode_mk varchar(6), nama_mk varchar(30), sks int, semester int);
CREATE TABLE ambil_mk
(nim int, kode_mk varchar(6));
**Cek tabel
\d mahasiswa
\d matakuliah
\d ambil_mk
\dp
4. Hasil:
Cek tabel:
5. Analisa:
- Create table merupakan salah satu perintah yang berhubungan
3. Hasil:
4. Analisa:
Membuat tabel dosen dengan perintah CREATE TABLE. Detail
isis tabel adalah kode_dos (kode dosen) bertipe data integer.
nama_dos (nama dosen) bertipe data varchar dengan panjang 10.
alamat_dos (alamat dosen) bertipe data varchar dengan panjang 20.
Menggunakan perintah \d untuk menampilkan deskripsi tabel
dosen saja. Menggunakan perintah \dp untuk menampilkan daftar
tabel-tabel dalam database.
D. DROP TABLE
1. Dalam modifikasi database, kita juga dapat melakukan drop table
(hapus tabel).
2. Query
DROP TABLE dosen;
**cek list
\dp
3. Hasil:
4. Analisa:
Drop tabel adalah perintah untuk menghapus tabel. Perbedaan
DROP dan DELETE adalah DROP untuk menghapus objek dalam
database, jadi semua data dalam tabel yang dimaksud akan hilang.
Contohnya seperti query yang diatas. Sedangkan DELETE adalah
menghapus semua atau beberapa record pada tabel. Jika kondisinya
diberi WHERE maka perintah Delete akan menghapus data sesuai
kondisi yang diberikan. Setelah proses penghapusan berhasil, maka
ketika kita melihat daftar tabel dalam database kita, maka tabel
dosen sudah tidak ditemukan.
E. ALTER TABLE
1. Alter table adalah perintah untuk merubah struktur table. Seperti
merubah nama table / nama kolom, merubah tipe data, dst.
2. Query:
ALTER TABLE mahasiswa
RENAME nama to nama_mhs;
**cek deskripsi tabel mahasiswa:
\d mahasiswa
3. Hasil:
4. Analisa:
Jika ingin mengganti field bernama nama, maka kita
menggunakan ALTER TABLE. Setelah itu menggunakan perintah
RENAME. Menggunakan penghubung TO untuk parameter OLD
4. Hasil:
5. Analisa:
Membuat view dari relasi 3 tabel; yaitu tabel mahasiswa,
matakuliah, dan ambil_mk. Tiga tabel ini saling berelasi. Karena
nim pada tabel mahasiswa berhubungan dengan nim pada tabel
ambil_mk. Kode_mk pada tabel matakuliah berelasi pada tabel
kode_mk pada tabel ambil_mk. Sehingga dapat dibuat relasi h.nim
= a.nim and t.kode_mk = a.kode_mk. h merupakan inisialisasi dari
tabel mahasiswa, t dari tabel matakuliah, a dari tabel ambil_mk.
G. SELECT
1. SELECT merupakan perintah seleksi data yang ingin ditampilkan.
2. Query:
SELECT kode_mk, sks FROM matakuliah;
3. Hasil:
4. Analisa:
Disini yang diseleksi adalah field kode_mk dan sks yang diambil
dari tabel matakuliah. Karena belum di entry data, maka row
bernilai 0.
H. CONDITIONAL SELECT
1. Condiitional SELECT adalah melakukan seleksi dengan suatu
kondisi tertentu. Contohnya menggunakan CASE dan WHEN.
2. Query:
SELECT nama_mhs, CASE jk
WHEN L THEN Laki-laki
WHEN P THEN Perempuan
END
FROM mahasiswa;
3. Analisa:
Disini yang diseleksi adalah nama_mhs dengan CASE/label jk
(jenis kelamin). Dimana jk yang ditampilkan bernilai L dan P.
Seleksi ini dilakukan pada tabel mahasiswa.
I. INSERT
1. INSERT INTO adalah perintah untuk memasukkan data dalam
tabel.
2. Query:
**tabel mahasiswa
INSERT INTO mahasiswa VALUES
(101, Jeanny, P, Jl.Kauman),
(102, Indy, P, Jl.Surabaya),
(103, Adam, L, Jl.Kenanga),
(104, David, L, Jl.Jombang),
(105, Tara, P, Jl.Bandung);
**tabel matakuliah
INSERT INTO matakuliah VALUES
(PTI426, Praktikum Visual, 2, 4),
(PTI447, Praktikum database, 1, 2),
(PTI448, Praktikum Pemrograman Komputer, 1, 1),
(TIK132, Arsitektur Komputer, 2, 2),
(TIK254, Grafika Komputer, 2, 4),
**tabel ambil_mk
INSERT INTO ambil_mk VALUES
(101, PTI447),
(103, TIK255),
(104, PTI426),
(104, TIK254),
3.
4.
5.
3.Hasil:
4. Analisa
Entry data pada tabel mahasiswa sebanyak 5, pada tabel
matakuliah sebanyak 5, pada tabel ambil_mk sebanyak 4. Untuk
data bertipe varchar, maka saat entry data, data yang dimasukkan
harus diberi petik. Jika tipe data integer, tidak perlu juga tidak
4. Hasil:
5. Analisa:
Perintah UPDATE dilakukan pada tabel ambil_mk. Dimana field
yang ingin dirubah berada di kode_mk dengan label nim 103. Jadi,
nim yang bernilai 103, kode_mk TIK255 akan dirubah menjadi
TIK132.
K. DELETE
1. DELETE adalah perintah menghapus, namun jika diberi kondisi
maka yang terhapus adalah data yang sudah ditandai. (seperti yang
sudah dijelaskan pada point C)
2. Query:
3. Hasil:
4. Analisa:
Penghapusan dilakukan pada tabel matakuliah, dengan kondisi
kode_mk yaitu PTI448 yang dihapus. Setelah dicek, maka 5 row
tadi akan berkurang satu, sehingga menjadi 4).
L. AVG (Average Rata-rata)
1. AVG adalah perintah untuk melakukan rata-rata.
2. Query:
SELECT AVG(sks) AS rata_sks FROM matakuliah;
3. Hasil:
4. Analisa:
Melakukan penghitungan rata-rata pada field sks dalam tabel
matakuliah. Selanjutnya, seperti membuat temporary baru dengan
nama rata_sks, (karena sementara, jadi hanya aktif saat perintah ini
dieksekusi).
M. COUNT
1. Fungsi COUNT adalah menjumlahkan data.
2. Query:
SELECT COUNT(*) AS sks FROM matakuliah;
3. Hasil:
4. Analisa:
Menghitung jumlah data sks pada tabel matakuliah.
N. MAX
1. MAX adalah fungsi mencari nilai tertinggi.
2. Query:
SELECT MAX(semester) AS semester_terbesar FROM matakuliah;
3. Hasil:
4. Analisa:
Mencari nilai terbesar menggunakan MAX. Kondisinya bisa
disesuaikan. Contoh disini adalah menyeleksi nilai maksimal pada
field semester dengan temporary bernama semester_terbesar dari
tabel matakuliah. Sehingga jawabannya 4.
O. MIN
1. MIN adalah fungsi mencari nilai terkecil.
2. Query:
SELECT MIN(semester) AS semester_terkecil FROM matakuliah;
3. Hasil:
4.Analisa:
Mencari nilai terkecil menggunakan MIN. Kondisinya bisa
disesuaikan. Contoh disini adalah menyeleksi nilai minimal pada
field semester dengan temporary bernama semester_terkecil dari
tabel matakuliah. Sehingga jawabannya 2.
P. SUM
1. SUM adalah menjumlahkan total data
2. Query:
SELECT SUM(sks) AS total_sks FROM matakuliah;
3.Hasil:
4. Analisa:
Menjumlahkan total data pada field sks, lalu disimpan dalam
4.
2. Hasil:
3. Analisa:
Membuat tabel emp_table dengan field empid bertipe data integer,
empname bertipe data name, salary bertipe data integer. Membuat
tabel backup_tbl dengan field empid bertipe data integer, empname
bertipe data name, salary bertipe data integer, operation bertipe
data varchar dengan panjang 25.
B. Membuat Function, dan Membuat Bahasa (Language)
1. Teknisnya, trigger memanggil function. Function akan di eksekusi
sebelum operasi proses insert, delete, atau update.
2. Query:
3. Hasil:
4. Analisa:
Detailnya: Sebelum operasi delete, akan terjadi proses insert data
yang lama masuk ke backup_tbl. Sebelum operasi update, akan
terjadi proses insert data yang lama masuk ke backup_tbl. Sebelum
operasi insert, akan terjadi proses insert data yang baru masuk ke
backup_tbl. Dipercobaan awal, saat language ditempatkan diatas
create function, program menjadi error. Oleh karena itu, create
language diletakkan dibawah setelah pembuatan function.
C. Membuat Trigger
1. Trigger inilah yang akan mengeksekusi ins_function setelah
terjadi operasi proses insert, update, atau delete.
2. Query:
3. Hasil:
4. Analisa:
Trigger ini berfungsi setelah insert / delete / update pada tabel
emp_table untuk setiap row-nya. Setelah itu eksekusi prosedur
pada ins_function.
D. Insert Data
1. Query:
INSERT INTO emp_table (empid, empname, salary)
VALUES (101, 'sathiya', '3000');
2. Hasil:
Analisa:
2. Hasil:
3. Analisa:
Setelah di update, insert dan update juga akan terisi juga.
F. Delete Data
1. Query:
DELETE FROM emp_table WHERE empid = '101';
**Cek
SELECT*FROM backup_tbl;
2. Hasil:
3. Analisa:
Data yang didelete akan dimasukkan dalam backup_tbl bagian
delete.
G. Yang terjadi setelah melakukan delete data adalah data yang didelete
5.
6.
DAFTAR PUSTAKA
Kirana, Annisa Puspa. 2016. Modul 3 Trigger PostgreSQL. Malang:
Universitas Negeri Malang.
Anonymous. Online: http://nazipzihni.blogspot.com/p/1.html (diakses pada
18 September 2016, pukul 23:50)
Naura. 2014. Online: http://naura-lab.blogspot.co.id/2014/12/perintah-altertable-di-database-mysql.html (diakses pada 18 September 2016, pukul
24:19)
Anonymous. Online: http://mysql.phi-integration.com/sql/membuat-viewpada-mysql.html (diakses pada 18 September 2016, pukul 01:30)