• Tidak ada hasil yang ditemukan

Parameter

Dalam dokumen DAFTAR ISI - System Manajemen Basis Data (Halaman 118-129)

7.2 Callable Procedure & Function

7.2.3 Parameter

Parameter adalah nilai yang dilewatkan dalam sebuah prosedur atau fungsi. Ada tiga jenis parameter : parameter input, output, dan input-output.

7.2.3.1 Parameter Input

Parameter input berguna untuk menyimpan nilai yang akan digunakan sebagai input pada badan prosedur maupun fungsi. Parameter ini ditandai dengan mode IN, tapi bila mode ini dihilangkan maka secara otomatis akan dianggap sebagai parameter input juga.

Contoh

/*Prosedur pengecekan stok barang*/

CREATE OR REPLACE PROCEDURE prc_stok_brg (pi_brg VARCHAR2) IS

vstok INTEGER;

BEGIN

-- Mengambil nilai stok dari barang -- (nilai stok adalah bilangan positif)

SELECT stok_barang INTO vstok FROM barang WHERE UPPER(nama_barang) = UPPER(pi_brg);

--Memeriksa nilai dari variabel vstok

IF vstok = 0 THEN

--Jika vstok = 0, cetak keterangan ke layar

DBMS_OUTPUT.PUT_LINE(‘Persediaan barang telah

habis’);

END IF; END;

SQL> set serveroutput on;

7.2.3.2 Parameter Output

Parameter output berperan untuk menampung nilai hasil dari suatu proses yang dilakukan di dalam prosedur atau fungsi. Pada kenyataannya, parameter ini lebih sering ditemukan pada prosedur. Parameter output ditandai dengan mode OUT

Contoh

/*Prosedur pencarian nama supplier*/

CREATE OR REPLACE PROCEDURE cari_supp ( pi_kode IN VARCHAR2,

vNamaSupp OUT supplier.nama_supp%TYPE) IS

BEGIN

-- Mengambil nama supplier berdasar parameter

SELECT nama_supp INTO vNamaSupp FROM supplier WHERE UPPER(kode_supp) = UPPER(pi_kode);

END;

Contoh blok PL/SQL yang mengeksekusi prosedur di atas :

/*Blok yang mengeksekusi prosedur*/

DECLARE

nama supplier.nama_supp%TYPE;

BEGIN

-- Eksekusi prosedur

cari_supp(‘SU-10001’, nama);

-- Mencetak nilai variabel nama ke layar

DBMS_OUTPUT.PUT_LINE (nama);

7.2.3.3 Parameter Input-Output

Parameter ini merupakan gabungan dari kedua parameter sebelumnya. Mula-mula badan prosedur atau fungsi akan melakukan proses terhadap nilai input yang dikirimkan oleh parameter ini, kemudian nilai hasil dari proses tersebut akan dimasukkan kembali ke parameter ini.

Suatu parameter dikatakan sebagai paramter input-output bila dituliskan dalam mode IN OUT.

Contoh

/*Prosedur pencarian nama supplier*/

CREATE OR REPLACE PROCEDURE cari_supp ( vParam IN OUT VARCHAR2) IS

vHasil supplier.nama_supp%TYPE;

BEGIN

-- Mengambil nama supplier berdasar parameter

SELECT nama_supp INTO vHasil FROM supplier WHERE UPPER(kode_supp) = UPPER(vParam);

-- Memasukkan nilai hasil ke parameter

vParam := vHasil;

END;

Contoh blok PL/SQL yang mengeksekusi prosedur di atas :

/*Blok yang mengeksekusi prosedur*/

DECLARE

vLokal VARCHAR2 := ‘SU-10001’; BEGIN

-- Mencetak nilai parameter input

-- Mencetak nilai parameter output

DBMS_OUTPUT.PUT_LINE (vLokal);

Rangkuman

16. Index adalah objek database yang dapat dibuat untuk meningkatkan performansi dari query.

17. Index dapat dibuat dengan cara :

 Otomatis : dibuat secara otomatis oleh server saat pembuatan tabel dengan primary key atau unique constraint.

 Manual : dibuat secara manual dengan statemen CREATE INDEX.

CREATE INDEX [schema.]index

ON [schema.]tabel ({kolom [ASC|DSC]});

18. Manipulasi terhadap index :  Mengganti nama index

ALTER INDEX [schema.]index RENAME TO index_baru;

 Menghapus index

DROP INDEX [schema.]index;

19. Prosedur adalah blok PL/SQL yang menyimpan sekumpulan perintah tanpa disertai pengembalian nilai.

CREATE [OR REPLACE] PROCEDURE nama_prosedur

(parameter1 tipedata, parameter2 tipedata,...) IS variable_variabel_lokal tipedata; BEGIN statemen_statemen; ... END;

20. Fungsi adalah blok PL/SQL yang dapat mengembalikan nilai. Karena itu perlu ditambahkan statemen RETURN untuk proses pengembalian nilai.

CREATE [OR REPLACE] FUNCTION nama_fungsi

(parameter1 tipedata, parameter2 tipedata,...) RETURN tipe_data_fungsi IS variable_variabel_lokal tipedata; BEGIN statemen_statemen; ... RETURN nilai_fungsi; END;

21. Parameter adalah nilai yang dilewatkan dalam sebuah prosedur atau fungsi. Ada tiga jenis parameter : parameter input, output, dan input- output.

 Parameter input : menyimpan nilai yang akan digunakan sebagai input pada badan prosedur maupun fungsi. Ditandai dengan mode IN.  Parameter output : menampung nilai hasil dari suatu proses yang

dilakukan di dalam prosedur atau fungsi. Ditandai dengan mode OUT.

 Parameter input-output : berfungsi sebagai parameter input maupun output. Ditandai dengan mode IN OUT.

Studi Kasus : Pembuatan Laporan

Pada studi ini, kasus inventory akan digunakan sebagai contoh dalam penerapan index, prosedur, maupun fungsi.

1. Buat 3 buah table dengan spesifikasi sebagai berikut :

o supplier

CREATE TABLE SUPPLIER (

SUPP_ID VARCHAR2(8) NOT NULL, SUPP_NAME VARCHAR2(50) NOT NULL, SUPP_ADDR VARCHAR2(120)

CONSTRAINT PK_SUPPLIER PRIMARY KEY(SUPP_ID) );

o barang

CREATE TABLE BARANG (

BRG_ID VARCHAR2(8) NOT NULL, BRG_NAME VARCHAR2(50) NOT NULL, BRG_STOK INTEGER DEFAULT 0,

CONSTRAINT PK_BARANG PRIMARY KEY(BRG_ID) );

o pasok

CREATE TABLE PASOK (

PAS_ID VARCHAR2(8) NOT NULL, PAS_DATE DATE DEFAULT SYSDATE, PAS_SUPP VARCHAR2(8),

PAS_BRG VARCHAR2(8),

PAS_AMT INTEGER DEFAULT 0,

CONSTRAINT FK_PASOK_BARANG FOREIGN KEY(PAS_BRG) REFERENCES BARANG(BRG_ID) );

2. Buatlah sebuah nonunique index untuk field PAS_DATE pada tabel PASOK.

3. Insert data pada ketiga tabel tersebut :

o supplier

SUPP_ID SUPP_NAME SUPP_ADDR

SP-10001 CV. KARYA Jl. Pembangunan, Jakarta SP-10002 PT. MAJU Jl. Diponegoro, Yogyakarta SP-10003 CV. MURAH Jl. Harapan, Bandung

... ... ...

(Bila perlu, tambahkan data lainnya).

o barang

BRG_ID BRG_NAME BRG_STOK

BR-10001 Lemari pakaian 15

BR-10002 Meja belajar 17

BR-10003 Kasur 23

... ... ...

(Bila perlu, tambahkan data lainnya).

o pasok

PAS_ID PAS_DATE PAS_SUPP PAS_BRG PAS_AMT

PS-10001 08/07/2008 SP-10001 BR-10001 5 PS-10002 08/07/2008 SP-10001 BR-10002 7 PS-10003 08/11/2008 SP-10002 BR-10003 12 PS-10004 08/12/2008 SP-10003 BR-10002 3 PS-10005 08/12/2008 SP-10003 BR-10003 10 ... ... ... ... ...

4. Buatlah sebuah fungsi untuk mengecek stok suatu jenis barang :

o Parameter input adalah id barang.

o Akan mengembalikan TRUE bila stok barang tidak nol, dan FALSE bila stok sama dengan nol.

5. Buatlah sebuah prosedur yang akan mencetak laporan pasok berdasar supplier tertentu :

o Parameter input adalah id supplier.

o Bentuk laporan :

Nama Supplier : _______________ Alamat : ____________________

____________________

Tgl Pasok Nama Barang Jumlah Pasok

o Contoh pemanggilan prosedur : EXEC nama_prosedur (‗SP-10001‘); 6. Buatlah sebuah prosedur yang akan mencetak laporan pasok berdasar

bulan dan tahun tertentu :

o Parameter input adalah bulan dan tahun pasok.

o Bentuk laporan :

Bulan : __________*

Tahun : __________

Nama Supplier Nama Barang Jumlah Pasok

o Contoh pemanggilan prosedur : EXEC nama_prosedur (‗08‘, ‗2008‘);

* Bulan ditampilkan dalam format Januari...Desember, untuk itu perlu ditambahkan fungsi pendukung untuk mengkonversi format

8 DATABASE-TRIGGER

Overview

Apabila kita menginginkan suatu aksi yang dapat memicu terjadinya aksi atau perubahan yang lain pada data yang kita miliki. Kita dapat menggunakan trigger. Trigger akan memicu sebuah aksi terjadi pada sebuah data atau memicu untuk membangkitkan trigger yang lain.

Tujuan

1. Mahasiswa Praktikan memahami trigger.

2. Mahasiswa mengerti fungsi dan kelebihan penggunaan trigger. 3. Mahasiswa mampu mengimplementasikan trigger

Dalam dokumen DAFTAR ISI - System Manajemen Basis Data (Halaman 118-129)