UNIVERSITAS BRAWIJAYA
1. Langkah 1
1.1 Query
1.2 Screenshot
1.3 Penjelasan
Mengakses database SAMPLEDB yang sudah dibuat pada mosul sebelumnya
2. Langkah 2
2.1 Query
CREATE PROCEDURE MYPROCEDURE( )
DYNAMIC RESULT SETS 1
P1: BEGIN
DECLARE cursor1 CURSOR WITH RETURN FOR
SELECT * FROM EMPLOYEE;
OPEN cursor1;
END P1@
2.2 Screenshot
2.3 Penjelasan
Membuat procedure serta menampilkan data menggunakan Store Procedure. Procedure sendiri
digunakan untuk mempermudah program dalam aplikasi.
3. Langkah 3
3.1 Query
CALL MYPROCEDURE()@
3.2 Screenshot
3.3 Penjelasan
4. Langkah 4
4.1 Query
CREATE PROCEDURE MYPROCEDURE2 (
IN IN_WORKDEPT CHAR(6))
DYNAMIC RESULT SETS 1
P1: BEGIN
DECLARE cursor1 CURSOR WITH RETURN FOR
SELECT * FROM EMPLOYEE WHERE WORKDEPT = IN_WORKDEPT;
OPEN cursor1;
END P1@
4.2 Screenshot
4.3 Penjelasan
Query diatas merupakan modifikasi query pada Langkah 2, supaya dapat melakukan pencarian pegawai
berdasarkan WORKDEPT tertentu. Kemudian memnaggil procedure tersebut dengan menggunakan
CALL.
5. Langkah 5
5.1 Query
CREATE OR REPLACE PROCEDURE SP_UPDATE (
IN IN_EMPNO CHAR(6),
IN IN_FIRSTNME VARCHAR(100),
OUT OUT_PESAN VARCHAR(100))
BEGIN
UPDATE EMPLOYEE SET FIRSTNME = IN_FIRSTNME
WHERE EMPNO = IN_EMPNO;
SET OUT_PESAN = 'UPDATE BERHASIL';
END@
5.2 Screenshot
5.3 Penjelasan
Pernyataan diatas yaitu mengupdate data FIRSTNME employee berdasarkan empno dimana EMPNO
dan FIRSTNME didapat dari input user.
6. Langkah 6
6.1 Query
CALL SP_UPDATE('000010', 'Fairuz', ?)@
6.2 Screenshot
6.3 Penjelasan
Menjalankan Stored Prosedure SP_UPDTAE yang telah dibuat di Langkah sebelumnya
7. Langkah 7
7.1 Query
CREATE FUNCTION myfunction( )
RETURNS INTEGER
NO EXTERNAL ACTION
F1: BEGIN ATOMIC
RETURN SELECT COUNT (*) FROM EMPLOYEE;
END@
7.2 Screenshot
7.3 Penjelasan
Membuat User Defined Function (UDF) untuk menghitung total pegawai. UDF berbeda dengan
procedure. Procedure dapt mengembalikan/memberikan beberpa data atau tidak sama sekali. Sedangkan
UDF hanya dapat mengembalikan atau memberikan satu data yang sifatnya mandatory.
8. Langkah 8
8.1 Query
SELECT myfunction() FROM SYSIBM.SYSDUMMY1@
8.2 Screenshot
8.3 Penjelasan
Memanggil UDF yang telah dibuat pada Langkah sebelumnya dengan menggunakan select.
9. Langkah 9
9.1 Query
CREATE TABLE BACKUP_EMP LIKE EMPLOYEE@
9.2 Screenshot
9.3 Penjelasan
Membuat sebuah table yang memiliki struktur yang sama seperti table employee sebelum membuat
BEFORE TRIGGER.
10. Langkah 10
10.1 Query
CREATE TRIGGER SETDEFAULT_SALARY
NO CASCADE BEFORE INSERT ON BACKUP_EMP
REFERENCING NEW AS n
FOR EACH ROW
MODE DB2SQL
WHEN (n.salary IS NULL)
SET n.salary = 50000@
10.2 Screenshot
10.3 Penjelasan
Membuat BEFORE TRIGGER dengan nama setDefault_Salary yang bertujuan untuk memberikan nilai
default pada kolom salary jika diisi NULL pada proses insert.
11. Langkah 11
11.1 Query
INSERT INTO BACKUP_EMP (EMPNO, FIRSTNME, MIDINIT, LASTNAME, WORKDEPT, PHONENO,
HIREDATE, JOB, EDLEVEL, SEX, BIRTHDATE, SALARY, BONUS, COMM,
SYSTEM_START_TIME1,
SYSTEM_END_TIME1, TRANS_ID1)
11.2 Screenshot
11.3 Penjelasan
Pernyataan diatas yaitu melakukan insert pada table BACKUP_EMP, data pertama isi salary dengan
nilai 1000, data kedua isi salary dengan NULL.
12. Langkah 12
12.1 Query
CREATE TABLE audit (mytimestamp timestamp, comment varchar (1000))@
12.2 Screenshot
12.3 Penjelasan
membuat sebuah tabel dengan nama AUDIT dengan parameter mytimestamp dan comment.
13. Langkah 13
13.1 Query
CREATE TRIGGER audit_emp_sal2
AFTER UPDATE OF salary ON EMPLOYEE
REFERENCING OLD AS o NEW AS n
FOR EACH ROW
MODE DB2SQL
INSERT INTO audit
VALUES (CURRENT TIMESTAMP, 'EMP' || o.empno || 'salary changed
from' ||
CHAR (o.salary) || 'to' || CHAR (n.salary) || 'by' ||
USER)@
13.2 Screenshot
13.3 Penjelasan
Mengimplementasikan TRIGGER AUDIT_EMP_SAL2 yang digunakan untuk melakukan auditing
pada kolom SALARY di table EMPLOYEE. Ketika melakukan perubahan pada kolom tersebut, maka
trigger akan diaktifkan untuk menulis tentang perubahan yang terjadi pada salary ke dalam table lain
yang bernama AUDIT.
14. Langkah 14
14.1 Query
UPDATE EMPLOYEE SET SALARY = 1000.00
WHERE EMPNO = 000010@
14.2 Screenshot
14.3 Penjelasan
Pernyataan diatas digunakan untuk melakukan update pada kolom salary dari tabel employee.
KESIMPULAN