ORACLE PL/SQL
(Procedure Language/Structure Query Language)
Objektif:
Arsitektur PL/SQL
Three-Tier Architecture
PL/SQL memiliki arsitektur three-tier client-server dengan tiga lapisan yang masing-
masing berjalan pada platform yang berbeda.
Page 2
1. Lapisan antarmuka pengguna, yang berjalan pada komputer pengguna akhir atau
client.
2. Logika bisnis dan lapisan pengolahan data yang berjalan pada server dan sering
disebut dengan server aplikasi.
3. Sebuah DBMS yang menyimpan data yang dibutuhkan oleh tingkat menengah.
Tingkat ini dapat berjalan pada server yang berbeda dari server aplikasi, yaitu
database server.
Client hanya akan bertanggung jawab untuk penggunaan aplikasi antarmuka dan
mungkin melakukan beberapa pengolahan logika sederhana sehingga client memiliki
tugas yang lebih mudah. Inti logika bisnis dari aplikasi berada pada lapisan tersendiri
yang secara fisik terhubung ke client dan database server melalui jaringan. Dan
aplikasi server dirancang untuk melayani beberapa client.
Pada gambar di atas, blok PL/SQL yang tanpa nama sedang dieksekusi. Perintah-
perintah procedural PL/SQL dieksekusi secara langsung, sedangkan perintah-perintah
SQL akan dieksekusi didalam Oracle Server. Sehingga PL/SQL berada di dua
lingkungan, yaitu:
Page 3
- Oracle Tools, bagian yang dapat langsung mengeksekusi perintah-perintah
prosedural PL/SQL.
Kelebihan PL/SQL
SQL PL/SQL
- Bahasa deklaratif untuk database - Ekstensi dari SQL dengan
yang distandarkan secara menambahkan fungsi procedural.
internasional (ANSI). - Dengan PL/SQL akan diketahui
- Dengan SQL hanya diketahui juga bagaimana proses untuk
tentang bagaimana mendapatkan mendapatkan hasil.
hasil. - Statement/syntax yang digunakan
- Statement/syntax yang digunakan tergantung dari jenis bahasa yang
sama pada DBMS manapun. di adopsi.
Penulisan blok program PL/SQL berbeda dengan penulisan SQL. Blok program
PL/SQL ditulis menggunakan notepad dengan mengetikkan perintah ED namafile
atau EDIT namafile pada SQL*Plus. Dan untuk menjalankan blok tersebut, dapat
menggunakan perintah @namafile atau START namafile.
Blok PL/SQL
Struktur Blok PL/SQL
Page 4
Struktur blok PL/SQL terdiri dari 3 bagian, yaitu :
1. Declarative
Merupakan bagian yang digunakan untuk mendeklarasikan suatu Variable,
Constanta, Cursor dan User-Defined Exception.
2. Executable
Merupakan bagian yang digunakan untuk mengeksekusi
program dengan menuliskan statement program di antara
Begin dan End.
3. Exception-handling
Merupakan bagian yang digunakan untuk
menspesifikasikan apa yang harus dilakukan apabila terjadi
error dan kondisi abnormal dalam excetubale section.
Untuk setiap penulisan menggunakan PL/SQL dalam
SQL*Plus selalu diakhiri dengan menggunakan tanda garis miring (/).
DECLARE
Variable tipe_data
konstanta CONSTANT tipe_data := nilai;
...
BEGIN
statement_1;
statement_2;
...
EXCEPTION
WHEN nama_eksepsi THEN statement_untuk_mengatasi_error;
...
END;
Contoh Program
SET SERVEROUTPUT ON
Page 5
DECLARE
A NUMBER(3);
BEGIN
A := 5;
DBMS_OUTPUT.PUT_LINE(‘A = ‘||A);
END;
Tipe data scalar merupakan tipe data yang menyimpan nilai tunggal dan tidak
memiliki komponen internal. Tipe data scalar ini dapat diklasifikasikan ke dalam 4
kategori, yaitu Numeric, Character, Date dan Boolean.
Composite
Page 6
Tipe data composite merupakan tipe data yang menyimpan nilai dari beberapa
elemen yang termasuk dalam variable tersebut. Contoh dari tipe data composite
adalah Record dan Array.
Reference
Tipe data ini merupakan tipe data yang digunakan untuk menyimpan nilai pointer
yang menunjuk ke suatu lokasi penyimpanan. Biasanya digunakan untuk mengambil
input dari user pada saat run time.
LOB (Large Object) merupakan tipe data yang digunakan untuk menyimpan data
lebih besar berupa teks, grafik, gambar, video dan audio.
- CLOB (Character Large Object) merupakan tipe data yang digunakan untuk
menyimpan objek berupa data teks yang besar didalam database.
- BLOB (Binary Large Object) merupakan tipe data yang digunakan untuk
menyimpan objek binary yang besar di dalam database.
- BFILE (Binary File) merupakan tipe data yang digunakan untuk menyimpan
objek binary yang besar dalam file sistem operasi di luar database.
- NCLOB (National Language Character Large Object) merupakan tipe data yang
digunakan untuk menyimpan data berupa objek apapun yang paling besar.
Terdapat 3 fungsi untuk mengkonversikan suatu tipe data didalam database menjadi
berupa karakter, waktu ataupun angka.
Page 7
Conversion Function
Bind variable merupakan non pl/sql variable yang menerima inputan dari luar blok
pl/sql. Variable ini memiliki symbol titik dua ( : ) di setiap awal nama variabelnya.
DECLARE
BEGIN
:g_mounthly_sal := V_sal/12;
END;
PRINT g_mounthly_sal
Page 8
Bentuk umum untuk penulisan sebuah Variable:
Keterangan :
- Dua variable dapat memiliki nama yang sama, asalkan berada dalam blok yang
berbeda
- Nama variable tidak boleh sama dengan nama kolom pada suatu tabel.
Page 9
mengaktifkan DBMS_OUTPUT.PUT_LINE, ketikkan statement SET
SERVEROUTPUT ON setalah login.
SET SERVEROUTPUT ON
DECLARE
BEGIN
V_sal := V_sal/12;
END;
Delimiter merupakan symbol tunggal atau majemuk yang memiliki arti khusus untuk
PL/SQL.
Page 10
tidak samadengan
= Operator persamaan <= Operator reational untuk
lebih kecil dari atau
samadengan
< Operator relational untuk >= Operator relational untuk
kurang dari lebih besar dari atau
samadengan
> Operator relational untuk -- Penunjuk komentar
lebih dari (single-line)
Identifiers
- Maksimal 30 karakter.
- Harus diawali dengan huruf.
- Tidak boleh ada spasi, tanda slash (/), ampersand (&).
- Tidak boleh memiliki nama yang sama dengan nama kolom dalam suatu
database.
- Bukan merupakan reserved word (keyword), jika merupakan reserved word
harus disertai dengan double quotion mark ( “ ” ).
Literals
Literal dapat berupa angka, karakter, tanggal, string, atau Boolean yang tidak dapat
diwakilkan dengan identifier.
- Karakter, string dan tanggal harus di apit menggunakan single quotation marks (
‘ ’ ).
- Untuk angka, dapat berupa nilai tunggal ataupun notasi ilmiah.
- Blok PL/SQL diakhiri dengan slash (/).
Comments
Page 11
Comment atau komentar dapat digunakan untuk memudahkan proses maintenance
programmer dalam menuliskan baris program.
Contoh penggunaan:
Memasukkan Data
Page 12
Mengubah Data
Menghapus Data
Struktur Kondisi
Terdapat dua struktur kondisi didalam PL/SQL, yaitu :
Page 13
ELSE grade := ‘B’;
END IF;
Struktur Kontrol
Dalam PL/SQL terdapat tiga struktur kontrol, yaitu basic loop, while loop dan for
loop.
1. Basic Loop
Basic loop merupakan struktur kontrol paling sederhana dalam PL/SQL.
Sintaks:
LOOP
Statement;
END LOOP;
2. While Loop
Merupakan struktur kontrol yang akan mengeksekusi suatu pernyataan hingga
kondisi yang diinginkan bernilai benar.
Sintaks:
WHILE condition LOOP Statement;
Page 14
END LOOP;
3. For Loop
Merupakan struktur kontrol yang akan mengeksekusi suatu pernyataan dengan
referensi counter.
Sintaks:
FOR counter IN lower_bound .. upper_bound
LOOP statement;
END LOOP;
DAFTAR PUSTAKA
Page 15
Asep Kosasih.Pendekatan Praktis Belajar Algoritma Pemrograman Dengan Bahasa
Delphi 5.0.CV.YRAMA WIDYA.2006
Matthew MacDonald, 2006, THE BOOK OF™ VISUAL BASIC 2005, No Starch
Press, Inc
Neena Kochar, Ellen Gravina, Priya Nathan, Introduction to Oracle: SQL and
PL/SQL.
Oracle Database PL/SQL User’s Guide and Reference 10g Release 2(10.2),
http://docs.oracle.com/cd/B19306_01/appdev.102/b14261.pdf
Thuan L. Thai dan Hoang Lam, 2002, .NET Framework Essentials 2nd Edition,
O'Reilly.
Todd Herman, Allen Jones, Matthew MacDonald, and Rakesh Rajan, 2008, Visual
Basic 2008 Recipes, Apress.
Page 16