Diberdayakan oleh Blogger.
RSS

PBD II

Mata Kuliah : Pemrograman Basis Data II
Dosen          : Titik Lusiani, M.Kom, OCA
  

1.                       Package

Package adalah suatu kumpulan subprogram seperti PROCEDURE dan FUNCTION.
Package terdiri dari 2 bagian:
a)             Pacakage Specification
b)             Package Body

 

Gambar 1 Components of Package
     

Contoh penulisan package adalah sbb:
a.              Syntax Package Spesification:
CREATE [OR REPLACE] PACKAGE package_name IS|AS
public type and variable declarations
subprogram specifications
END [package_name];
b.             Syntax Package Body :
CREATE [OR REPLACE] PACKAGE BODY package_name IS|AS
private type and variable declarations
subprogram bodies
[BEGIN initialization statements]
END [package_name];
c.              Contoh Package Parent:
CREATE or REPLACE PACKAGE pkg_emp is
PROCEDURE view_emp_sal(emp_id employees.employee_id%type, gaji out employees.salary%type);
FUNCTION view_emp_sal1(emp_id employees.employee_id%type) RETURN NUMBER;
END;

2.                 Procedure

            Procedure adalah suatu blok PL/SQL yang menyimpan sekumpulan perintah yang tidak disertai dengan pengembalian nilai. Dengan kata lain, procedure hanya melakukan proses tertentu saja.
            Procedure Ditandai dengan adanya katakunci CREATE PROCEDURE di ikuti oleh nama prosedur dan parameternya.Opsi lain ialah dengan mengikuti CREATE dengan OR REPLACE. Dengan begitu jika telah ada procedure yang sama sebelumnya maka akan di gantikan dengan procedure yang baru dan prosedure yang lama akan hilang.
Syntax untuk membuat procedure
CREATE [OR REPLACE] PROCEDURE nama_procedure
(parameter_1 tipedata, parameter_2 tipedata, …) IS
variabel-variabel_lokal
BEGIN
            Statemen;
            ……
END;

Contoh Menghapus Procedure adalah sbb:


Ket : Perintah DROP Procedure digunakan untuk menghapus procedure diikuti dengan nama procedure yang ingin dihapus.



3.                       Parameter

            Ada sejumlah parameter, diantaranya ialah IN, OUT  dan INOUT
a)                  IN parameter  Merupakan Tipe parameter yang didefinisikan pada aktual parameter untuk kemudian di tangkap oleh formal parameter. Parameter IN diggunakan untuk memasukkan nilai, di definisikan secara default oleh oracle
CREATE OR REPLACE PROCEDURE luaslingkaran1 (r IN NUMBER) IS
phi NUMBER:=3.14;
luas NUMBER;

BEGIN
luas := phi*r*r;
DBMS_OUTPUT.PUT_LINE(‘Luas lingkaran dengan jari-jari ‘||r||’ = ‘||luas);
END;
b)                  OUT Parameter. Merupakan tipe parameter pada procedure yang nilainya dapat digunakan oleh si pemanggil procedure dan bisa di bilang OUT parameter  merupakan kebalikan dari IN parameter
CREATE OR REPLACE PROCEDURE luaslingkaran2 (r IN NUMBER, luas OUT NUMBER) IS
phi NUMBER:=3.14;
BEGIN
luas := phi*r*r;
DBMS_OUTPUT.PUT_LINE(‘Luas lingkaran dengan jari-jari ‘||r||’ = ‘||luas);
END;
c)                  IN OUT Parameter. Merupakan tipe parameter yang digunakan untuk mengirimkan sebuah nilai ke procedure yang kemudian akan di proses dan di kembalikan kepada si pemanggil procedure

4.                      FUNCTION

Function merupakan sebuah blok PL/SQL yang dapat mengembalikan sebuah nilai. Function juga dapat disimpan dalam sebuah schema object, sehingga dapat digunakan secara berulang-ulang.
Berikut Perbedaan Procedure dengan Function:

 Tabel 1 perbedaan procedure dan function



CREATE [OR REPLACE] FUNCTION function_name
    [(parameter1 [mode1] datatype1, …)]
    RETURN datatype IS|AS
    [local_variable_declarations; …]
    BEGIN
    – actions;
    RETURN expression;
    END [function_name];

5.                       CURSOR
Cursor merupakan suatu variabel yang digunakan untuk menampung  hasil query yang terdiri atas lebih dari satu row atau record.
Cursor sendiri terdiri dari 2 tipe :
a.                       Implicit Cursor
Merupakan Cursor yang dideklarasikan dan dikelola secara otomatis oleh PL/SQL untuk semua operasi DML SQL dan PL/SQL SELECT Statement
b.                       Eksplicit Cursor
Merupakan Cursor yang dikelola dan dideklarasikan oleh Programmer

Contoh:
DECLARE
     CURSOR csr_ac IS
         SELECT employee_id, salary FROM employees
         WHERE first_name LIKE '%Alana%';
    xempno employees.first_name%type;
    xsal employees.salary%type;

BEGIN
    OPEN csr_ac;
    LOOP
    FETCH csr_ac INTO xempno, xsal;
    EXIT WHEN csr_ac%NOTFOUND;
    DBMS_OUTPUT.PUT_LINE(xempno || ' ' ||xsal);                 
    END LOOP ;
  CLOSE csr_ac;
END;
Penjelasan Perintah Cursor :

  • Cursor bernama csr_ac  yang memilih dari employee_id dan salary dari tabel employees dimana yang dipilih dari nama Alana.
  •   Deklarasi xempno dan xsal untuk first_name dan salary.
  •   Kemudian membuka cursor csr_ac yang telah dibuat dan kemudian mengambil nilai cursor csr_ac dalam variable xempno dan xsal dan akan ditutup apabila nilainya kosong.
  •   Kemudian ditampilkan sesuai variable xempno dan xsal, dan selesai perulangannya. Kemudian ditutup cursor csr_ac dan selesai.
       Sumber



  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

1 komentar:

John mengatakan...

This blog contains more useful information, thanks for this blog...
Soft Skills Training In Chennai
Soft Skill Online Training

Posting Komentar