PROCEDURE DAN FUNCTION

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),
@Tgl_Pembelian_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
open jml
for select sum(jumlah_menu) as total_pesanan_menu from catering where id_customer=id_customer1;
return jml;
end;

Penulis : Unknown ~ Sebuah blog yang menyediakan berbagai macam informasi

Artikel PROCEDURE DAN FUNCTION ini dipublish oleh Unknown pada hari Kamis, 17 Juli 2014. Semoga artikel ini dapat bermanfaat.Terimakasih atas kunjungan Anda silahkan tinggalkan komentar.sudah ada 0 komentar: di postingan PROCEDURE DAN FUNCTION
 

0 komentar:

Posting Komentar

Contact Us

Nama

Email *

Pesan *