1.
Buatlah sebuah prosedur yang berfungsi untuk
membandingkan inputan user dan memberikan kesimpulan tentang hasil
perbandingannya dengan ketentuan :
- contoh
1 : INPUT1 = 10 dan INPUT2 = 20 maka OUTPUT = '10 LEBIH KECIL DARI 20'
- contoh
2 : INPUT1 = 20 dan INPUT2 = 10 maka OUTPUT = '20 LEBIH BESAR DARI 10'
- contoh
3 : INPUT1 = 10 dan INPUT2 = 10 maka OUTPUT = '10 SAMA BESAR DENGAN 10'
Data
yang ditampilkan berupa kesimpulan dari perbandingan (OUTPUT)
Tunjukan
screenshot dari 3 skenario percobaan diatas ! (Gunakan fungsi logika IF)
QUERY:
CREATE OR REPLACE PROCEDURE BANDING_INPUT_1(
IN IN_INPUT1 INT,
IN IN_INPUT2 INT,
OUT OUT_OUTPUT VARCHAR(200)
)
BEGIN
IF IN_INPUT1 = 10 AND IN_INPUT2 = 20
THEN SET OUT_OUTPUT= '10
LEBIH KECIL DARI 20';
ELSEIF IN_INPUT1 = 20 AND IN_INPUT2 = 10
THEN SET OUT_OUTPUT= '20
LEBIH BESAR DARI 10';
ELSEIF IN_INPUT1 = 10 AND IN_INPUT2 = 10
THEN SET OUT_OUTPUT = '10
SAMA BESAR DENGAN 10';
ELSE SET OUT_OUTPUT = 'DATA TIDAK
DITEMUKAN';
END IF;
END@
2.
Buatlah sebuah prosedur untuk menghitung bonus yang
didapatkan oleh seorang staff (inputan kode staff) dengan ketentuan :
-
jabatan 'Mgr' mendapatkan bonus 15% dari gaji
-
jabatan 'Sales' mendapatkan bonus 10% dari gaji
-
jabatan 'Clerk' mendapatkan bonus 5% dari gaji
Data
yang ditampilkan berupa (ID, NAME, JOB, SALARY, BONUS - dari tabel STAFF)
Tunjukan
screenshot dari skenario 3 jabatan diatas ! (Gunakan fungsi logika SIMPLE CASE)
QUERY:
CREATE OR REPLACE PROCEDURE BONUS_STAFF(
IN IN_ID INT,
OUT OUT_DATA VARCHAR (200)
)
RESULT SETS 1
BEGIN
DECLARE IN_ID CURSOR WITH RETURN FOR
SELECT ID, NAME, JOB, SALARY,
CASE
WHEN JOB = 'Mgr' THEN 0.15 * SALARY
WHEN JOB = 'Sales' THEN 0.1 * SALARY
ELSE 0.05 * SALARY
END CASE
FROM STAFF WHERE ID = IN_ID;
OPEN IN_ID;
END@
3.
Buatlah sebuah prosedur untuk mendapatkan reputasi dari
masing-masing tenaga penjualan dalam sebuah regional tertentu dengan ketentuan
:
-
penjualan >= 20 mendapatkan reputasi 'SANGAT BAGUS'
-
penjualan >= 50 mendapatkan reputasi 'BAGUS'
-
penjualan >= 10 mendapatkan reputasi 'CUKUP'
-
penjualan >= 5 mendapatkan reputasi 'BURUK'
-
penjualan >= 1 mendapatkan reputasi 'SANGAT BURUK'
Data yang ditampilkan berupa (SALES_PERSON, REGION,
TOTAL_PENJUALAN, REPUTASI - dari tabel SALES)
Tunjukan
screenshot dari skenario diatas ! (Gunakan fungsi logika SEARCH CASE)
QUERY:
CREATE OR REPLACE PROCEDURE PENJUALAN()
DYNAMIC RESULT SETS 1
BEGIN
DECLARE CUR CURSOR WITH RETURN FOR
SELECT SALES_PERSON, REGION, SUM(SALES) AS TOTAL_PENJUALAN,
CASE
WHEN SUM(SALES) >=20 THEN'SANGAT BAGUS'
WHEN SUM(SALES) >=15 THEN'BAGUS'
WHEN SUM(SALES) >=10 THEN'CUKUP'
WHEN SUM(SALES) >=5 THEN'BURUK'
WHEN SUM(SALES) >=1 THEN'SANGAT BURUK'
END PENJUALAN
FROM SALES GROUP BY REGION, SALES_PERSON;
OPEN CUR;
END@
4.
Buatlah sebuah prosedur untuk melakukan operasi INSERT,
UPDATE, DELETE ke/dari table DEPARTMENT dengan ketentuan :
- jika OPERATOR adalah 'I' maka operasi yang dilakukan
adalah INSERT dengan pesan 'DATA DEPARTMENT BERHASIL DITAMBAHKAN'
- jika OPERATOR adalah 'U' maka operasi yang dilakukan
adalah UPDATE dengan pesan 'DATA DEPARTMENT BERHASIL DIUBAH'
- jika OPERATOR adalah 'D' maka operasi yang dilakukan
adalah DELETE dengan pesan 'DATA DEPARTMENT BERHASIL DIHAPUS'
- jika OPERATOR adalah selain 'I','U','D' maka tidak
dilakukan operasi apapun dan pesan 'OPERASI TERSEBUT TIDAK VALID'
Data
yang ditampilkan berupa pesan keluaran dari masing-masing operasi
Tunjukan
screenshot dari 4 skenario diatas ! (Gunakan fungsi logika yang paling anda
kuasai)
QUERY:
CREATE OR REPLACE PROCEDURE OPERASI(
IN IN_USER VARCHAR(5),
OUT OUT_OUTPUT VARCHAR(100)
)
DYNAMIC RESULT SETS 1
BEGIN
IF (IN_USER = 'I') THEN
INSERT INTO DEPARTMENT (DEPTNO,
DEPTNAME, MGRNO, ADMRDEPT)
VALUES ('A08','PLANNING','000020','A00');
SET OUT_OUTPUT = 'DATA DEPARTMENT BERHASIL
DITAMBAHKAN';
ELSEIF (IN_USER = 'U')THEN UPDATE DEPARTMENT SET DEPTNO ='B' WHERE DEPTNO ='A';
SET OUT_OUTPUT = 'DATA DEPARTMENT BERHASIL
DIUBAH';
ELSEIF (IN_USER ='D')THEN DELETE FROM DEPARTMENT WHERE DEPTNO ='B';
SET OUT_OUTPUT ='DATA DEPARTMENT BERHASIL
DIHAPUS';
ELSE SET OUT_OUTPUT ='OPERASI
TERSEBUT TIDAK VALID';
END IF;
END@
No comments:
Post a Comment