Senin, 16 April 2012

PERCABANGAN Dalam PL/SQL Oracle


Setiap pembahasan materi PL/SQL Oracle selalu tidak dapat dipisahkan dengan pembahasan materi percabangan. Yang dimaksud dengan Percabangan adalah opsi atau pilihan yang didasarkan atas satu atau beberapa kondisi tertentu. Sebuah atau beberapa statemen akan di jalankan jika kondisi tersebut bernilai TRUE dan sebaliknya tidak akan dieksekusi jika kondisi tersebut tidak terpenuhi.
Secara umum di dalam PL/SQL Oracle, struktur percabangan dibagi menjadi 3 struktur, yaitu :
A. Struktur percabangan dengan satu kondisi
B. Struktur percabangan dengan dua kondisi
C. Struktur percabangan dengan tiga kondisi

Bentuk Umum Penulisan

Struktur percabangan dengan satu kondisi

IF kondisi THEN
      Statemen_1;
         ...
END IF;

Struktur percabangan dengan dua kondisi

IF kondisi THEN
      Statemen_1;
         ...
ELSE
      Statemen_2;
         ...
END IF;

Struktur percabangan dengan tiga kondisi atau lebih.

IF kondisi_1 THEN
      Statemen_1;
         ...
ELSIF kondisi 2 THEN
      Statemen_2;
         ...
ELSE
      Statemen_3;
         ...
END IF;


1. Contoh  percabangan dengan satu kondisi
    - Menentukan sebuah bilangan Bulat apakah termasuk kedalam bilangan 
      Genap atau Ganjil
-----------------------------------------------------------------------
SET SERVEROUTPUT ON
DECLARE
   BIL INTEGER := 100;
BEGIN
   IF MOD(BIL,2)=0 THEN
      DBMS_OUTPUT.PUT_LINE(TO_CHAR(BIL)|| ' adalah bilangan Genap');
   END IF;
END;

   - Menentukan bilangan terbesar dan terkecil dari sebuah bilangan bulat
-----------------------------------------------------------------------
SET SERVEROUTPUT ON
DECLARE
   bil_1  INTEGER;
   bil_2  INTEGER;
BEGIN
   bil_1 := 300;
    bil_2 := 200;
   
    IF bil_1 > bil_2 THEN
      DBMS_OUTPUT.PUT_LINE('Bilangan tebesar adalah : '|| TO_CHAR(bil_1)  
                                ||', terkecil adalah : ' || TO_CHAR(bil_2)); 
   END IF;
END;

2. Contoh  percabangan dengan dua kondisi
    - Menentukan sebuah bilangan Bulat apakah termasuk kedalam bilangan 
      Genap atau Ganjil
-----------------------------------------------------------------------
SET SERVEROUTPUT ON
DECLARE
   bil INTEGER := 99;
BEGIN
   IF MOD(bil,2)=0 THEN
       DBMS_OUTPUT.PUT_LINE(TO_CHAR(bil)|| ' adalah bilangan Genap');
   ELSE
       DBMS_OUTPUT.PUT_LINE(TO_CHAR(bil)|| ' adalah bilangan Ganjil');
   END IF;
END;

   - Menentukan bilangan terbesar dan terkecil dari sebuah bilangan bulat
-----------------------------------------------------------------------
SET SERVEROUTPUT ON
DECLARE
   bil_1  INTEGER;
   bil_2  INTEGER;
BEGIN
   bil_1 := 300;
   bil_2 := 200;
   
   IF bil_1 > bil_2 THEN
      DBMS_OUTPUT.PUT_LINE('Bilangan tebesar adalah : ' || TO_CHAR(bil_1)
                         ||', terkecil adalah : ' || TO_CHAR(bil_2)); 
   ELSE
    DBMS_OUTPUT.PUT_LINE('Bilangan tebesar adalah : ' || TO_CHAR(bil_2) 
                   ||', terkecil adalah : ' || TO_CHAR(bil_1));   
  END IF;
END;

3. Contoh  percabangan dengan Tiga kondisi
    - Menentukan sebuah bilangan Bulat apakah termasuk kedalam bilangan 
      Genap atau Ganjil
-----------------------------------------------------------------------
SET SERVEROUTPUT ON
DECLARE
   bil INTEGER := -9;
BEGIN
   IF MOD(bil,2)=0 THEN
       DBMS_OUTPUT.PUT_LINE(TO_CHAR(bil)|| ' adalah bilangan Genap');
   ELSIF MOD(bil,2)=1 THEN
       DBMS_OUTPUT.PUT_LINE(TO_CHAR(bil)|| ' adalah bilangan Ganjil');
   ELSE
       DBMS_OUTPUT.PUT_LINE('Bilangan tsb adalah Bilangan negatif');
   END IF;
END;
 
    - Menentukan bilangan terbesar dan terkecil dari sebuah bilangan bulat
-----------------------------------------------------------------------
SET SERVEROUTPUT ON
DECLARE
   bil_1  INTEGER;
   bil_2  INTEGER;
BEGIN
   bil_1 := 300;
   bil_2 := 200;
   
   IF bil_1 > bil_2 THEN
      DBMS_OUTPUT.PUT_LINE('Bilangan tebesar adalah : ' || TO_CHAR(bil_1)
                         ||', terkecil adalah : ' || TO_CHAR(bil_2)); 
   ELSIF bil_1 > bil_2 THEN
    DBMS_OUTPUT.PUT_LINE('Bilangan tebesar adalah : ' || TO_CHAR(bil_2) 
                    ||', terkecil adalah : ' || TO_CHAR(bil_1));
  ELSE
     DBMS_OUTPUT.PUT_LINE('Bilangan ke-1 dan 2 adlh sama yaitu : '||bil_1);
  END IF;
END;

Demikian sedikit sharing mengenai percabangan yang biasa digunakan pada PL/SQL Oracle.






4 komentar:

  1. mas mau tanya saya punya koding seperti ini
    --------------------
    declare
    v_stock barang.stok_barang%type;
    begin
    select stok_barang into v_stock from barang
    where lower(nama_barang)=lower('lemari es');
    IF v_stock>=10 then
    dbms_output.put_line('persediaan barang masih banyak');
    ELSEIF v_stock <=10 then
    dbms_output.put_line('persediaan barang kurang dari 10');
    ELSE
    dbms_output.put_line('persediaan barang habis');
    end if;
    end;
    /
    -------------------------------------------
    waktu saya kompile saya kok dapat pesan kesalahan seperti ini kira kira kode yang kurang apa ya mas ?
    tolong pencerahannya,,,,

    BalasHapus
    Balasan
    1. kesalahannya di elseif, seharusnya di tulis elsif

      Hapus
    2. terimakasih sangat membantu

      Hapus
  2. Komentar ini telah dihapus oleh pengarang.

    BalasHapus