No Slide Title

advertisement
PL/SQL PROGRAMMING
PL/SQL adalah prosedur berkelanjutan dari Oracle -SQL yang menawarkan
satu bentuk bahasa pemrograman.
PL/SQL memungkinkan user atau designer untuk membentuk suatu aplikasi
database yang kompleks yang menuntut pemakaian kontrol struktur dan
elemen prosedural seperti prosedur, fungsi, atau modul.
Sasaran utama PL/SQL :
1. Memaksimalkan pengertian dari SQL.
2. Proses query yg maksimal.
3. Optimasi kombinasi dari perintah pada SQL.
4. Membangun aplikasi database yg modular.
5. Pemakaian kode pemrograman.
6. Mengurangi nilai maintenance dan perubahan aplikasi.
STRUKTUR PL/SQL
Block header
DECLARE
constant
variable
cursor
user defined exceptions
BEGIN
PL/SQL statement
EXCEPTION
exception handling
END;
DEKLARASI dan CONSTANT
Nama_variabel constant tipe_data not null := ekspresi
Contoh
CURSOR
Cursor nama_cursor (list parameter) is select_statement
Contoh
CURSOR for LOOP
Suatu CURSOR for LOOP akan mendeklarasikan indeks dari loopingnya sebagai
suatu record yg merepresentasikan tampilan baris dari suatu database.
Untuk menunjuk suatu field dari record digunakan notasi dot.
VARIABEL CURSOR
Seperti sebuah cursor, variabel cursor menitikberatkan pada baris dari hasil query.
Tetapi, tidak seperti sebuah cursor, variabel cursor dapat dibuka pada berbagai tipe
query secara kompatibel.
Variabel cursor tidak mengikat pada query tertentu. Penggunaan variabel cursor
akan fleksibilitas dan kemudahan untuk memfokuskan pada penyajian data dari
suatu database.
ATTRIBUTE
Variabel dan cursor pada PL/SQL mempunyai atribut, yang mana properti akan
mengijinkan kita untuk merujuk pada suatu tipe data dan struktur tertentu tanpa
harus kita definisikan terlebih dahulu.
Tanda persen ( % ) digunakan sebagai indikator atribut.
%TYPE
Atribute %TYPE menyediakan tipe data dari variabel atau kolom database.
CONTOH :
my_tittle books.tittle%TYPE
Pendeklarasian dengan tipe ini memberikan 2 keuntungan, yaitu :
1. Kita tidak perlu mengetahui secaar pasti tipe data dari tittle.
2. Apabila kita merubah tipe data tittle, maka secara otomatis tipe data my_tittle
juga akan berubah.
%ROWTYPE
Atribute %ROWTYPE menyediakan tipe data dari record yang merepresentasikan
suatu baris dari tabel.
Jika kita akan mendeklarasikan suatu cursor yg menyediakan data tertentu, kita
dapat menggunakan tipe data ini untuk mendeklarasikan recordyang menyimpan
informasi yang sama.
LANGUAGE
EXCEPTION HANDLING
when exception_name then sequence of statement
CONTROL STRUCTURE
Struktur kontrol adalah tambahan terpenting PL/SQL pada SQL.
Tidak hanya memanipulasi data Oracle, tetapi juga dapat memproses data
menggunakan statemen kondisi, statemen iteratif, dan statemen ‘sequential flow
of control’ seperti IF-THEN-ELSE, FOR-LOOP, WHILE-LOOP, dll.
Control Structure
Instruksi yang digunakan adalah IF-THEN-ELSE.
Apabila kondisi pada IF terpenuhi, maka statemen setelah THEN akan dieksekusi,
tetapi jika kondisinya tidak terpenuhi, maka statemen setelah ELSE yang akan
dieksekusi.
Iterative Structure
Instruksi yang menggunakan LOOP.
LOOP akan mengeksekusi sekumpulan statemen secara berulang-ulang.
Instruksi yang menggunakan FOR LOOP.
FOR-LOOP akan mengeksekusi sekumpulan statemen secara berulang-ulang
sebanyak nilai integer yg kita berikan.
Instruksi yang menggunakan WHILE-LOOP.
Untuk masing-masing iterasi, kondisinya akan dievaluasi terlebih dahulu. Apabila
kondisinya benar maka statement-nya akan dijalankan, kemudian kontrol akan
kembali ke bagian teratas dari looping. Apabila kondisinya salah atau bernilai
null, maka looping akan dilewatkan dan akan menjalankan statemen selanjutnya.
Instruksi yang menggunakan EXIT-WHEN.
Statement dalam looping akan dijalankan, sampai menemukan statemen EXIT.
Setelah EXIT ditemukan, looping akan mengevaluasi kondisi yang ada. Apabila
kondisinya benar maka looping akan berhenti dan dilanjutkan dengan statemen
berikutnya.
Sequential Structure
Instruksi yang digunakan adalah GOTO.
Ketika instruksi dijalankan, statemen GOTO akan memindahkan kontrol sesuai
dengan label yang diberikan.
PROCEDURE
Adalah sebuah PL/SQL Block yang bisa dipanggil ataua dijalankan
seperti PL/SQL statemen. Pada prosedur juga dimungkinkan untuk mengirimkan
data.
Secara umum format dari prosedur adalah sbb :
PROCEDURE nama_prosedur (parameter IN OUT tipe data) IS
deklarasi variabel;
BEGIN
statement;
END;
Pada prosedur, suatu parameter bisa hanya bersifat IN yaitu nilai parameter yg
dikirimkan ke dalam suatu prosedur, selain itu juga bersifat OUT yaitu nilai
parameter yg dikirim keluar dari suatu prosedur. Sedangkan jika diinginkan suatu
data terswebut dikirim ke dalam dan juga keluar, maka digunakan tipe IN OUT.
FUNCTION
Adalah suatu PL/SQL Block yg menghasilkan suatu nilai dan biasa digunakan
seperti kita menulis suatu ekspreasi. Pada fungsi dimungkin untuk mengirimkan
data.
Secara umum format dari fungsi adalah sbb :
FUNCTION nama_fungsi (parameter IN OUT tipe data) RETURN
tipe_data IS
deklarasi variabel;
BEGIN
statement;
RETURN (value);
END;
Parameter yang ada pada suatu fungsi memiliki tipe data yang sma dengan
parameter pada suatu prosedur.
Sequential Structure
Instruksi yang digunakan adalah GOTO.
Ketika instruksi dijalankan, statemen GOTO akan memindahkan kontrol sesuai
dengan label yang diberikan.
Download