OPEN MIND FOR THE BETTER LIFE

Insya Alloh bermanfaat…

  • Kicauan

  • RSS ARSIP PRIBADI

    • Sebuah galat telah terjadi; umpan tersebut kemungkinan sedang anjlok. Coba lagi nanti.
  • Arsip

  • Blog Stats

    • 248.899 hits
  • maping visitor

  • save our future

  • indonesia sekarang

  • bandwidth test

    Test your Internet connection speed at Speedtest.net

  • Top Rank

STRUKTUR PEMROGRAMAN PL/SQL

Posted by zulqarnain pada Juli 8, 2008


Sekilas pepatah mengatakan “ Sesuatu yang bermanfaat dimulai dari yang kecil terlebih dahulu”. Jadi, teringat dengan guru Matematika saya pada saat SMU doeloe. Sebelum memulai pelajaran beliau pasti memberikan kata pengantarnya yang saat ini sangat berarti sekali bagi kehidupan saya. Okey kita langsung ke topik daripada tema kali ini, masih seputar ORACLE maklum baru mengenali, sambil belajar saya juga ingin berbagi kepada pembaca setia blog saya ini,siapa tau saja bermanfaat dan satu hal yang ingin saya tanamkan di sini adalah saran dan kritikan yang membangun bagi pribadi serta demi melancarkan kecerdasan agama, bangsa,negara dan generasi penerusnya. okey langsung ke pembahasan :

silahkan lihat di sini contoh penggunaannya, sekarang mari kita bahas dasar-dasar PL/SQL. Silahkan lihat block PL/SQL yang telah kita bahas tersebut:

DECLARE
V_rcg_min NUMBER;
v_rcg_max number;
V_iterasi NUMBER;
BEGIN
V_rcg_min:= &1;
v_rcg_max:= &2;
V_iterasi:=V_rcg_min;
WHILE V_iterasi <= v_rcg_max LOOP
delete from MYTAB where rcg_id=V_iterasi;
commit;
V_iterasi:=V_iterasi+1;
END LOOP;
dbms_output.put_line(’Deleting sucess’);
dbms_output.put_line(’Min RCG_ID ‘||V_rcg_min);
dbms_output.put_line(’Max RCG_ID ‘||V_rcg_max);
EXCEPTION
WHEN OTHERS THEN dbms_output.put_line(’error here’);
END;
/

Struktur pokok PL/SQL adalah sebagai berikut
DECLARE
BEGIN
END;
/

DECLARE
Berisi deklarasi variabel. Adapun isi dari deklarasi variabel adalah nama variable, tipe data, constraint, dan default value. Setiap satu deklarasi diakhiri dengan tanda ; (titik koma). Contoh:

  1. Yang wajib ada : nama variabel dan tipe data
    v_rcg_min NUMBER;
  2. Dengan menambahkan nilai default
    v_jam_kerja INTEGER DEFAULT 40;
    v_jam_kerja INTEGER := 0;
  3. Dengan menambahkan constraint “not null” dan nilai default
    v_acc_id INTEGER(4) NOT NULL := 9999;
  4. Deklarasi konstanta
    v_jumlah_hari_pertahun CONSTANT INTEGER := 366;
    v_wni CONSTANT BOOLEAN := FALSE;
  5. Memakai tipe data dari suatu kolom di tabel (contoh, tabel: tbl emp, kolom: empid)
    v_empid tbl_emp.empid%TYPE;
  6. Contoh lain, silahkan lihat referensi

Bagian Utama
Bagian Utama ada di antara BEGIN dan END. Setelah END, tambahkan tanda ; (titik koma). Agar block PL/SQL bisa dieksekusi, tambahkan baris baru di bawah END dan beri tanda / (slash atau garis miring).

Bagian utama berisi operasi (pekerjaan) yang kita lakukan. Contoh block PL/SQL di atas berisi:
– Memberi nilai variable
– Operasi SQL (delete dan commit)
– Operasi aritmatika (penjumlahan )
– Control struktur ( LOOP dan WHILE)
– EXCEPTION (error handler)

Memberi nilai variabel
Cara memberi nilai pada variabel adalah memakai := (titik dua dan sama dengan). Contoh:
v_rcg_min:= &1;
v_rcg_max:= 100;
v_iterasi:=v_rcg_min;

Kita juga bisa memberi nilai ke variabel melalui SQL command. Lihat contoh berikut ini, nilai untuk variabel v_job adalah hasil dari “select job from emp where EMPID=10″
DECLARE
v_job VARCHAR2(9);
BEGIN
select job into v_job from emp where EMPID=10;
dbms_output.put_line(v_job);
END;
/

Operasi SQL
Hampir semua perintah SQL bisa dijalankan di sini. Iya dong, khan sesuai dengan namanya, di mana PL/SQL adalah pengembangan dari SQL.

Control Struktur
Macam-macam control structure adalah:
– Testing Conditions: IF dan CASE
– Controlling Loop Iterations: LOOP dan EXIT
– Sequential Control: GOTO dan NULL

Menggunakan LOOP
Contoh yang telah saya pakai di atas adalah WHILE …LOOP
WHILE V_iterasi <= v_rcg_max LOOP
delete from MYTAB where rcg_id=V_iterasi;
commit;
V_iterasi:=V_iterasi+1;
END LOOP;

Dengan hasil yang sama, kita bisa menggunakan LOOP … EXIT WHEN
LOOP
delete from MYTAB where rcg_id=V_iterasi;
commit;
V_iterasi:=V_iterasi+1;
EXIT WHEN V_iterasi > v_rcg_max;
END LOOP;

Bisa juga dengan memakai LOOP dan di dalamnya ada IF … THEN
LOOP
delete from MYTAB where rcg_id=V_iterasi;
commit;
V_iterasi:=V_iterasi+1;
IF (V_iterasi > v_rcg_max) THEN
exit;
END IF;
END LOOP;

Contoh Menggunakan IF … THEN

IF (v_gaji > v_umr) THEN
v_bonus:=v_gaji*2;
END IF;

IF (v_gaji < v_umr) THEN
v_bonus:=v_gaji*4;
ELSIF (v_gaji = v_umr) THEN
v_bonus:=v_gaji*3;
ELSE
v_bonus:=v_gaji*2;
END IF;

Contoh Mengguakan CASE

v_nilai := 'B';
CASE v_nilai
WHEN ‘A’ THEN v_predikat := ‘Excellent’;
WHEN ‘B’ THEN v_predikat := ‘Very Good’;
WHEN ‘C’ THEN v_predikat := ‘Good’;
WHEN ‘D’ THEN v_predikat := ‘Fair’;
WHEN ‘F’ THEN v_predikat := ‘Poor’;
ELSE v_predikat := ‘Nothing’;
END CASE;

Referensi

blog pak rohmat
Oracle® Database PL/SQL User’s Guide and Reference 10g Release 2 (10.2)

.

Tinggalkan komentar