You are on page 1of 4

=====================================================================

***1. a. Buat Table Material***


=====================================================================
create table material
(item_number varchar2(5),
item_description varchar2(30),
price decimal(15,2),
sale_date date,
discount decimal(15,2),
sale decimal(15,2),
qty decimal(15,2),
total_price decimal(15,2))
=====================================================================
***1. b. Buat Table history user***
=====================================================================
create table history_user
( history_user_id int primary key,
description varchar2(100), code_trans char(1),
user_name varchar2(50),trans_date date,
table_name varchar2(50))
=====================================================================
***2. Buat Function***
=====================================================================
=====================================================================
***3. a. Buat Function Sale***
=====================================================================
Create or replace function sale(
price IN Number, disc IN Number)
Return Number
is
sale Number;
Begin
select price-(price*disc/100) into sale from dual;
return sale;
end
select sale (10000,30) as sale from dual;
=====================================================================
***3. a. Buat Function Total Price***
=====================================================================
Create or replace function sum_of_price(
sale IN Number, qty IN Number)
Return Number
is
sum_of_pricenumber number;
begin
sum_of_pricenumber:=sale*qty;
return sum_of_pricenumber;
end;
select sum_of_price(10000,30) as sum_of_price from dual;
=====================================================================

***4. a. Buat Procedure insert material***


=====================================================================
create or replace procedure isi_material(
vitem_number material.item_number%type,
vitem_description material.item_description%type,
vprice material.price%type,
vsale_date material.sale_date%type,
vdiscount material.discount%type,
vqty material.qty%type)
as
vsale number;
vsum_of_price number;
begin
select sale(vprice,vdiscount) into vsale from dual;
select sum_of_price(vsale,vqty) into vsum_of_price from dual;
insert into material(item_number,item_description,price,sale_date,discount,sale,
qty,total_price)
values (vitem_number,vitem_description,vprice,vsale_date,vdiscount,vsale,vqty,vs
um_of_price);
end isi_material;

begin
isi_material('01','Meja',500000,to_date('17/03/2013','dd/mm/yyyy'),10,2);
isi_material('02','Kursi',350000,to_date('17/04/2013','dd/mm/yyyy'),10,3);
isi_material('03','Lemari',250000,to_date('27/03/2013','dd/mm/yyyy'),30,2);
isi_material('04','Kulkas',2500000,to_date('24/03/2013','dd/mm/yyyy'),25,1);
isi_material('05','Kasur',1600000,to_date('21/04/2013','dd/mm/yyyy'),15,2);
end;
=====================================================================
***4. b. Buat Procedure update material***
=====================================================================
create or replace procedure update_material(
pitem_number material.item_number%type,
pitem_description material.item_description%type,
pprice material.price%type,
psale_date material.sale_date%type,
pdiscount material.discount%type,
pqty material.qty%type)
as
psale number;
psum_of_price number;
begin
select sale(pprice,pdiscount) into psale from dual;
select sum_of_price(psale,pqty) into psum_of_price from dual;
update material set item_description=pitem_description,price=pprice,sale_date=ps
ale_date,discount=pdiscount,sale=psale,qty=pqty,total_price=psum_of_price where
item_number=pitem_number;
end update_material;
begin
update_material('01','meja',380000,to_date('17/03/2013','dd/mm/yyyy'),10,2);
end;
=====================================================================
***4. c. Buat Procedure delete material***

=====================================================================
create or replace procedure delete_material(
pitem_number material.item_number%type,
pitem_description material.item_description%type,
pprice material.price%type,
psale_date material.sale_date%type,
pdiscount material.discount%type,
pqty material.qty%type)
as
psale number;
psum_of_price number;
begin
delete from material where item_number=pitem_number;
end delete_material;
begin
delete_material('01','meja',380000,to_date('17/03/2013','dd/mm/yyyy'),10,2);
end;
=====================================================================
***5. Fasilitas untuk membuat trigger***
=====================================================================
create sequence history_user_seq
start with 1 increment by 1
maxvalue 99999 minvalue 1
nocycle
cache 5
noorder;
=====================================================================
***5. a. Buat Trigger insert material***
=====================================================================
create or replace trigger trg_insert_material
before insert
on material
for each row
declare
vdescription varchar2(100);
begin
select :new.item_number into vdescription from dual;
insert into history_user(HISTORY_USER_ID,DESCRIPTION,USER_NAME,TRANS_DATE,CODE_T
RANS,TABLE_NAME)
values(history_user_seq.nextval,vdescription,user,sysdate,'I','material');
end;
insert into material(item_number,item_description,price,sale_date,discount,sale,
qty,total_price)
values('06','Komputer',5000000,to_date('18/07/2013','dd/mm/yyyy'),500000,4500000
,2,9000000)
=====================================================================
***5. b. Buat Trigger update material***
=====================================================================
create or replace trigger trg_update_material
before update
on material
for each row

declare
vdescription varchar2(100);
begin
select :old.ITEM_DESCRIPTION into vdescription from dual;
insert into history_user(HISTORY_USER_ID,DESCRIPTION,USER_NAME,TRANS_DATE,CODE_T
RANS,TABLE_NAME)
values(history_user_seq.nextval,vdescription,user,sysdate,'U','material');
end;
update material set item_description='Cooler' where item_number ='02'
=====================================================================
***5. c. Buat Trigger delete material***
=====================================================================
create or replace trigger trg_delete_material
before delete
on material
for each row
declare
vdescription varchar2(100);
begin
select concat(:old.ITEM_NUMBER,:old.ITEM_DESCRIPTION) into vdescription from dua
l;
insert into history_user(HISTORY_USER_ID,DESCRIPTION,USER_NAME,TRANS_DATE,CODE_T
RANS,TABLE_NAME)
values(history_user_seq.nextval,vdescription,user,sysdate,'D','material');
end;
delete from material where item_number ='06'

<?php
$conn = oci_connect('isna','i123'); // This assumes you followed the Getting Sta
rt guide...
$sql = "SELECT * FROM material";
$stmt = oci_parse($conn, $sql);
oci_execute($stmt);
echo '<pre>';
while ( $row = oci_fetch_assoc($stmt) ) {
print_r($row);
}
echo '</pre>';
?>

You might also like