# PERTEMUAN 12 ## TRIGGER & VIEW ### Live Preview - [Click Me](https://hackmd.io/@novaardiansyah/rkJwJAGHp) ## TUGAS PRAKTIKUM ### Soal A. ```sql= create database rumahsakit; use rumahsakit; create table pasien(id_pasien varchar(5), nama char(20), alamat char(20), no_antrian varchar(5), tgl_masuk date, primary key(id_pasien)); ``` ### Soal B. ```sql= insert into pasien values('a1', 'yahya', 'pondok cabe', 'a11', '2014-05-21'); insert into pasien values('a2', 'yanto', 'cinere', 'a12', '2014-05-23'); insert into pasien values('a4', 'wandi', 'ciputat', 'a14', '2014-05-24'); select * from pasien; ``` ### Soal C. ```sql= set @jmlpenambahan = 0; create trigger trigger1 before insert on pasien for each row set @jmlpenambahan = @jmlpenambahan + 1; insert into pasien values('a3', 'lulu', 'cinere', 'a15', '2014-05-24'); insert into pasien values('a5', 'sari', 'cilandak', 'a16', '2014-05-25'); insert into pasien values('a6', 'bari', 'cinere', 'a16', '2014-05-25'); select @jmlpenambahan; ``` ### Soal D. ```sql= create database bioskop; use bioskop; create table JadwalFilm(Id_film varchar(15), Judul char(20), Waktu datetime, primary key(Id_film)); desc JadwalFilm; ``` ### Soal E. ```sql= insert into JadwalFilm values ('D11', 'In Fear', '2014-03-07 18:30:00'); insert into JadwalFilm values ('H12', 'Haunt', '2014-03-07 19:00:00'); insert into JadwalFilm values ('C13', 'Bad Words', '2014-03-07 19:30:00'); insert into JadwalFilm values ('A14', 'Divergent', '2014-03-07 20:00:00'); insert into JadwalFilm values ('E15', 'Enemy', '2014-03-07 20:30:00'); ``` ### Soal F. ```sql= create table stdio(kode_stdio varchar(15), namaStdio char(20), Id_film varchar(15), judul char(20), primary key(kode_stdio)); desc stdio; ``` ### Soal G. ```sql= insert into stdio values('STD4', 'Stdio 4', 'E15', 'Enemy'); insert into stdio values('STD3', 'Stdio 3', 'D11', 'In Fear'); insert into stdio values('STD2', 'Stdio 2', 'C13', 'Bad Words'); insert into stdio values('STD5', 'Stdio 5', 'A14', 'Divergent'); insert into stdio values('STD1', 'Stdio 1', 'H12', 'Haunt'); ``` ### Soal H. ```sql= create view tblview as select JadwalFilm.Judul, JadwalFilm.Waktu, stdio.namaStdio FROM JadwalFilm LEFT JOIN stdio ON JadwalFilm.Id_film = stdio.Id_film; select * from tblview; ``` ### Soal I. ```sql= create view tblview1 as select JadwalFilm.Judul, JadwalFilm.Waktu, stdio.namaStdio FROM JadwalFilm LEFT JOIN stdio ON JadwalFilm.Id_film = stdio.Id_film WHERE JadwalFilm.Id_film = 'H12'; select * from tblview1; ``` ## TUGAS PENDAHULUAN ### Soal 1. Jelaskan apa yang dimaksud dengan trigger! 2. Jelaskan apa yang dimaksud dengan view! 3. Jelaskan Kelebihan dari penggunaan trigger dan view! 4. Jelaskan operasi-operasi apa saja yang menyebabkan sebuah trigger diaktifkan! 5. Buat kesimpulan materi dari trigger dan view minimal 1 paragraf! ### Jawaban 1. **Trigger** adalah objek database yang secara otomatis melakukan aksi tertentu ketika suatu operasi dilakukan. 2. **View** adalah hasil dari sebuah query yang disimpan dalam basis data. View dapat digunakan untuk menyembunyikan kompleksitas query, membatasi akses ke data, atau menggabungkan data dari beberapa tabel. 3. Kelebihan dari penggunaan **trigger** adalah dapat digunakan untuk menjaga integritas data, menerapkan aturan bisnis, dan mengotomatiskan tindakan tertentu. Sementara kelebihan dari penggunaan **view** adalah dapat menyembunyikan kompleksitas query, memfasilitasi akses data, dan memungkinkan penggunaan query yang sudah ditentukan. 4. Operasi-operasi yang menyebabkan sebuah **trigger** diaktifkan adalah INSERT, UPDATE, DELETE pada tabel yang terkait dengan trigger tersebut. ## TUGAS AKHIR ### Kesimpulan **Trigger** dan **View** keduanya merupakan fitur penting dalam basis data. Trigger digunakan untuk mengotomatiskan tindakan tertentu berdasarkan operasi-operasi tertentu pada tabel, sementara view digunakan untuk menyimpan hasil dari query yang dapat digunakan kembali tanpa harus menuliskan ulang query tersebut. Keduanya memberikan fleksibilitas dan otomatisasi dalam pengelolaan data.