Procedure yaitu sub
program yang digunakan untuk melakukan proses tertentu dan tidak mengembalikan
nilai, bisa disimpan dalam database sebagai object skema, sehingga suatu
procedure bisa digunakan berulangkali tanpa harus melakukan parsing dan compile
ulang.
Function yaitu
Sebuah kumpulan Statement yang akan mengembalikan sebuah nilai balik pada
pemanggilnya. Nilai yang dihasilkan Function harus ditampung kedalam sebuah
variabel. Perbedaan function dan procedure, yaitu :
Kalau function dia akan
mengembalikan suatu nilai pada pemanggilnya, sedangkan procedure dia tidak akan
mengembalikan nilai apapun pada fungsi pemanggilnya
Salah
satu perbedaan produk oracle dan SQL Server terdapat dalam tatacara penulisan
Syntax Query, dimana dalam SQL Server sering disebut sebagai Transact-SQL
(TSQL) sedangkan dalam Oracle sering disebut PL/SQL. Secara umum Store
Procedure dan Function dalam tiap parameter mengandung :
1. Nama
Parameter
2. Penggunaan
(IN,OUT, IN-OUT), dan
3. Tipe Data
(IN) adalah parameter input yang seharusnya tidak mengalami perubahan.
(OUT) adalah parameter output yang memberikan suatu nilai didalam
procedure dan bisa merupakan sebuah parameter baru atau variable baru jika
didalam function, karena merupakan nilai balik (RETURN) sehingga sering dalam
function disebut tidak terdapat OUT.
(IN-OUT) adalah parameter input-output, yang seharusnya memiliki suatu
nilai input yang telah disediakan diluar procedure/function, akan tetapi dapat
diubah saat didalam procedure/function.
TUGAS
STORE PROCEDURE MENGGUNAKAN SQL
SERVER 2000
1.
Buat SP baru dengan nama InsertMenu
create procedure InsertMenu
@Kode_Menu int,
@ID_Customer int,
@Nama_Menu varchar(20),
@Jumlah_Menu varchar(10),
@Tgl_Order varchar(10);
As
BEGIN
SET NOCOUNT ON;
INSERT INTO Catering VALUES(@Kode_Menu, @ID_Customer, @Nama_Menu,
@Jumlah_Menu, @Harga, @Tgl_Order;
END
EXEC InsertMenu ‘1412’, 20001’, ‘Nasi Padang Ikan Ayam’, ‘1 Porsi’,
‘Rp.15.000,-, ’15 Juni 2014’
2.
Buat SP
baru dengan nama InsertPegawai
create procedure InsertPegawai
@Kode_Pegawai int,
@ID_Customer int,
@Nama_Pegawai varchar(20),
@Alamat varchar(20),
@No_Telp varchar(12);
As
BEGIN
SET NOCOUNT ON;
INSERT INTO Pegawai VALUES(@Kode_Pegawai, @Nama_Pegawai, @Alamat, @No_Telp;
END
EXEC InsertPegawai ‘11120054’, ‘Agus Santoso’, Jl.Merkuri Purnama’,
‘08785678801’
3.
Buat SP baru dengan nama InsertBahanProduksi
create procedure InsertBahanProduksi
@Kode_Barang int,
@Nama_barang varchar(20),
@Harga_barang varchar(20),
As
BEGIN
SET NOCOUNT ON;
INSERT INTO Bahan_Produksi VALUES(@Kode_Barang, @Nama_Barang, @Harga_Barang,
@Tgl_Pembelian_Barang;
END
EXEC InsertBahanProduksi ‘10026’, ‘Kepiting’, ‘Rp.250.000,-‘, ’08 Juni
2014’
4.
Buat SP baru dengan nama InsertMember
create procedure InsertMember
@No_Member_Baru int,
@Disc varchar(3),
As
BEGIN
SET NOCOUNT ON;
INSERT INTO Member VALUES(@No_Member_baru, @id_cust,@disc)
END
EXEC InserMember ‘1226’, 200025’, ‘10%’
5.
Tampilkan SP pada
ViewCustomer
Create procedure ViewCustomer
As
Select *from customer
Exec ViewCustomer
6.
Tampilkan SP pada ViewMember
Create procedure ViewMember
As
Select *from Member
Exec ViewMember
7.
Tampilkan SP pada ViewCatering
Create procedure
ViewCatering
As
Select *from catering
Exec ViewCatering
8.
Buat SP Update
Customer
untuk mengupdate data customer yang telah ada
Alter procedure UpdateCustomer
@ID_Customer int,
@No_Telp varchar(12)
As
Begin
Set nocount on;
Update customer set no_telp = @No_Telp where ID_Customer =@ID_Customer
End
Exec UpdateCustomer 20001, ‘085678012290’
Tampilan sebelum di update
Tampilan sesudah diupdate
FUNCTION MENGGUNAKAN SQL SERVER 2000
1.
Function ViewPenjualan
Create FUNCTION ViewPenjualan
(@Kode_Menu int)
Returns table
As
Return
Select ID_Customer, Nama_Menu, Jumlah_Menu
From Catering
Where Kode_Menu=@Kode_Menu
Select *from ViewPenjualan (1120)
2.
Function TotalPembayaran
Alter FUNCTION TotalPembayaran
(@ID_Customer int)
Return
Select ID_Customer, Nama_Menu, Jumlah_Menu AS TotalPembayaran FROM
Catering
Where ID_Customer=@ID_Customer
Select *from TotalPembayaran (20004)
3.
Function Diskon
create FUNCTION Diskon
(@No_Member int)
returns table
as
return
select No_Member, ID_Customer, Diskon
from Member
where No_Member=@No_Member
select *from Diskon (1111)
4.
Function TotalPesanan
alter function TotalPesanan
(@ID_Customer int)
returns table
as
return
SELECT *from TotalPesanan (20006)
STORE PROCEDURE MENGGUNAKAN ORACLE
1. Buat SP baru dengan nama InsertMenu
create or replace procedure InsertMenu
(p_id_menu in catering.kode_menu%TYPE,
p_id_customer in catering.id_customer%TYPE,
p_menu in catering.nama_menu%TYPE,
p_jumlah in catering.jumlah_menu%TYPE,
p_harga in catering.harga%TYPE,
p_tgl_pesan in catering.tgl_order%TYPE)
IS
BEGIN
INSERT INTO CATERING values (p_id_menu, p_id_customer,p_menu, p_jumlah,
p_harga, p_tgl_pesanan);
COMMIT;
END
EXEC InsertMenu (‘2354’, ‘200025’, ‘susu kuda liar’, ‘10’, ‘2000000’,
’20 Juni 2014’)
2. Buat SP baru dengan nama InsertPegawai
CREATE OR REPLACE PROCEDURE
INSERTPEGAWAI
(vid in pegawai,
kode_pegawai%TYPE,
vnama in
pegawai.nama_pegawai%TYPE,
valamat in pegawai.alamat%TYPE,
vno_telp in pegawai
(kode_pegawai, nama_pegawai, alamat, no_telp)
as
begin
insert into pegawai
(kode_pegawai, nama_pegawai, alamat, no_telp)
commit;
end;
exec
insertpegawai(11120024,’cinta’, ‘jl.patah hati’, ‘081406832612’)
3. Buat SP baru dengan nama InsertBahanProduksi
Create or replace procedure
insertbahan
(mkode in bahan_produksi,
kode_barang%type,
mbahan in
bahan_produksi.nama_barang%type,
mharga in bahan_produksi.harga_bahan%type,
mpembelian in bahan_produksi,
tgl_pembelian_barang%type)
as
begin
insert into
bahan_produksi(bahan_produksi, kode_barang, bahan_produksi, nama_barang,
bahan_produksi,tgl_pembelian_barang)
end;
exec
insertbahan(10026,’jagungmanis’, ‘Rp20.000’, ’20 Juni 2014’)
4.
Buat SP baru dengan nama InsertMember
Create or
replace procedure insertmember
(vno_member
in member.no_member%type,
vid_customer
in member, id_customer%type,
vdiskon in
member, diskon%type)
as
begin
insert into
member (no_member, id_customer, diskon)
values(vno_member,
vid_customer,vdiskon);
commit;
end;
exec
insertmember (‘1227’, ‘200016’, ‘10%’)
5.
Tampilkan SP dengan nama viewpenjualan
create or replace function
viewpenjualan
(v_id in catering.kode_menu%type)
return aypackage.ref_cursor;
begin
open jualanku for
select id_customer,
nama_menu, jumlah_menu from catering where kode_menu like v_id||%;
return jualanku;
end;
FUNCTION MENGGUNAKAN ORACLE
1.
Function viewpenjualan
create or replace function viewpenjualan
(v_id in catering.kode_menu%type)
return aypackage.ref_cursor
as
jualanku aypackage.ref_cursor;
begin
open jualanku for
select id_customer, nama_menu, jumlah_menu from catering where kode_menu
like v_id||’%’;
return jualanku;
end;
2.
Function totalharga
create or replace function totalharga
(jualan_menu member,
harga member)
as
begin
return (jumlah_menu *harga);
end;
3.
Function Diskon
create or replace function
diskon(
v_id in member,
no_member%type)
return aypackage.ref_cursor;
as
memberku
aypackage.ref_cursor;
begin
open memberku for
select *from member where
no_member like v_id||’%’;
return memberku;
end;
4.
Function TotalPesanan
create or replace function
totalpesanan
(
id_customer1 in member
)
return sys_refcursor;
begin
for select sum(jumlah_menu)
as total_pesanan_menu from catering where id_customer=id_customer1;
return jml;
end;
0 komentar:
Posting Komentar