You are on page 1of 5

1 . buat procedure dengan sebuah parameter input berupa city.

output dari procedure menampilkan


nama-nama customer di kota tersebut.

DELIMITER $$
create procedure getCustomer2(IN kota varchar(15))

begin

Declare finished Integer Default 0;


DECLARE namaCustLast varchar(20);

DECLARE namaCustFirst varchar(20);

declare cur_cust cursor for


select contactlastname, contactfirstname from customers where city =
kota;

Declare Continue handler for not found set finished =1;

open cur_cust;

getname : LOOP

fetch cur_cust into namaCustLast, namaCustFirst;

if finished = 1 then
LEAVE getname;

end if;

select namaCustLast, namaCustFirst;

end loop;

close cur_cust;
end $$

Memanggil procedure getCustomer

call getCustomer('nanter')
2. buat procedure dengan inputan berupa employeenumber kemudian menampilkan spt contoh
berikut:
call getmanager(1056)

Mary phan memiliki bos bernama Diane murphy

Procedure dengan satu parameter


DELIMITER $$

create procedure getManager3(IN empl_num int)

begin
Declare finished Integer Default 0;
DECLARE var_last varchar(20);

DECLARE var_first varchar(20);

DECLARE var_report int;


DECLARE var_lastman varchar(20);

DECLARE var_firstman varchar(20);

select lastName, firstName, reportsTo into var_last, var_first,


var_report from employees where employeeNumber = empl_num;

select lastName, firstName into var_lastman, var_firstman from


employees where employeeNumber = var_report;
select concat(var_first, ' ', var_last, 'Memiliki bos bernama ',
var_firstman, var_lastman);

end $$

memanggil procedure getManager

call getManager3(1056);

procedure dengan dua parameter


DELIMITER $$

create procedure getManager(IN empl_num int, out x varchar(100))

begin

Declare finished Integer Default 0;

DECLARE var_last varchar(20);


DECLARE var_first varchar(20);
DECLARE var_report int;

DECLARE var_lastman varchar(20);

DECLARE var_firstman varchar(20);

select lastName, firstName, reportsTo into var_last, var_first,


var_report from employees where employeeNumber = empl_num;
select lastName, firstName into var_lastman, var_firstman from
employees where employeeNumber = var_report;

set x=concat(var_first, ' ', var_last, 'Memiliki bos bernama ',


var_firstman, var_lastman);

end $$

3. buat procedure yang menghitung cashback masing2 customer. query menghitung jumlah amount
(tabel payment) bedasarkan customer. jika jumlah amount lebih besar dari 100.000 maka cashback
sebesar 5% dari amount transaksi terakhir jika selain itu maka cashback 2% dari amount transaksi
terakhir.

DELIMITER $$

create PROCEDURE cashback(customerNum int(11))

BEGIN
DECLARE amounts Decimal(10,2);

DECLARE transaksi_terakhir Decimal(10,2);

DECLARE Cashback Decimal(10,2);


set Cashback = 0;

select sum(amount) into amounts from payments where


customernumber=customerNum;

SELECT amount into transaksi_terakhir FROM `payments` where


customerNumber=customerNum order by paymentDate desc limit 1 ;

if(amounts > 100000) THEN

set Cashback = (transaksi_terakhir*0.05);


else

set Cashback = (transaksi_terakhir*0.02);


END IF;
select Cashback;

END $$

Memanggil procedure cashback

call cashback(103)

You might also like