Kontrol Statement Pada PL/SQL

Ada 4 macam tipe kontrol statement pada Oracle PL/SQL, yaitu:
1. IF THEN Statement
2. IF THEN ELSE Statement
3. IF THEN ELSIF Statement
4. Nested IF Statement (IF Bersarang)
5. CASE Statement

Kelima kontrol statement diatas akan kita bahas lebih detail di tutorial ini.

IF THEN Statement

Sintak Dasar

Dibawah ini adalah sintak dasar dari IF THEN Statement:

IF condition THEN
  statement;
END IF;

Contoh Program #1

Di bawah ini adalah contoh IF THEN Statement dalam program PL/SQL:

DECLARE
  c NUMBER(2) := 5;
BEGIN
  IF (c < 10) THEN
     DBMS_OUTPUT.PUT_LINE('Nilai C kurang dari 10');
  END IF;

  DBMS_OUTPUT.PUT_LINE('Nilai C adalah '||c);
END;
/

Output #1

Output dari program diatas akan menghasilkan output seperti dibawah ini:

Nilai C kurang dari 10
Nilai C adalah 5

PL/SQL procedure successfully completed.

Contoh Program #2

Pada contoh program #2, Kita akan menerapkan IF THEN Statement dengan kombinasi query SQL.

DECLARE
 id_pegawai pegawai.id%type := 1;
 gaji_pegawai pegawai.gaji%type;
BEGIN
 SELECT gai
 INTO gaji_pegawai
 FROM pegawai
 WHERE id = id_pegawai;
 
 IF (gaji_pegawai <= 1000000) THEN
  UPDATE pegawai
  SET gaji = gaji + 100000
  WHERE id = id_pegawai;
  dbms_output.put_line ('Gaji pegawai berhasil di update');
 END IF;
END;
/

Output #2

Gaji pegawai berhasil di update

PL/SQL procedure successfully completed.

IF THEN ELSE Statement

Sintak Dasar

Di bawah ini adalah sintak dasar dari IF THEN ELSE Statement:

IF condition THEN
   statement;
ELSE
   statement;
END IF;

Contoh Program

Di bawah ini adalah contoh IFT THEN ELSE Statement dalam program PL/SQL

DECLARE
  c NUMBER(2) := 5;
BEGIN
  IF (c < 10) THEN
     DBMS_OUTPUT.PUT_LINE('Nilai C kurang dari 10');
  ELSE
     DBMS_OUTPUT.PUT_LINE('Nilai C lebih dari 10');
  END IF;

  DBMS_OUTPUT.PUT_LINE('Nilai C adalah '||c);
END;

Output

Nilai C kurang dari 10
Nilai C adalah 5

PL/SQL procedure successfully completed.

IF THEN ELSIF Statement

Sintak Dasar

Di bawah ini adalah sintak dasar dari IF THEN ELSIF Statement

IF(ekspresi boolean 1)THEN
   Statement1; -- statement1 dijalankan apabila ekspresi boolean 1 bernilai true
ELSIF(ekspresi boolean 2) THEN
   Statement2; -- statement2 dijalankan apabila ekspresi boolean 2 bernilai true
ELSIF(ekspresi boolean 3) THEN
   Statement3; -- statement3 dijalankan apabila eskpresi boolean 3 bernilai true
ELSE
   Statement4; -- statement4 akan dijalankan jika tidak ada bernilai true
END IF;

Contoh Program

Di bawah ini adalah contoh IF THEN ELSIF dalam program PL/SQL:

DECLARE
 a number(3) := 100;
BEGIN
 IF ( a = 10 ) THEN
  dbms_output.put_line('Nilai a adalah 10' );
 ELSIF ( a = 20 ) THEN
  dbms_output.put_line('Nilai a adalah 20' );
 ELSIF ( a = 30 ) THEN
  dbms_output.put_line('Nilai a adalah 30' );
 ELSE
  dbms_output.put_line('Tidak ada nilai yang sesuai');
 END IF;
 dbms_output.put_line('Nilai a adalah : '|| a );
END;
/

Output:
Program PL/SQL diatas akan mengeluarkan output di bawah ini:

Tidak ada nilai yang sesuai
Nilai adalah : 100

Nested IF Stetement

Sintak Dasar

Di bawah ini adalah sintak dasar dari IF Bersarang (Nested IF Statement):

IF(ekspresi boolean 1)THEN
 -- statement akan dijalankan jika ekspresi boolean 1 TRUE
 IF(ekspresi boolean 2) THEN
  -- statement akan dijalankan jika ekspresi boolean 2 TRUE
  statement2;
 END IF;
ELSE
 -- statement akan dijalankan jika ekspresi boolean 1 FALSE
 else-statements;
END IF;

Contoh Program

DECLARE
   a number(3) := 100;
   b number(3) := 200;
BEGIN
   IF( a = 100 ) THEN
      -- jika kondisi diatas bernilai true, maka akan dicek kondisi dibawah
      IF( b = 200 ) THEN
         -- jika kondisi bernilai true, maka akan menampilkan output
         DBMS_OUTPUT.PUT_LINE('Nilai  a adalah 100 dan b adalah 200' );
      END IF;
   END IF;
   DBMS_OUTPUT.PUT_LINE('Nilai a adalah : ' || a );
   DBMS_OUTPUT.PUT_LINE('Nilai b adalah : ' || b );
END;
/

Output:

Nilai  a adalah 100 dan b adalah 200
Nilai a adalah : 100
Nilai b adalah : 200

PL/SQL procedure successfully completed.

CASE Statement

Sintak Dasar

Di bawah ini adalah sintak dasar dari CASE Statement

CASE selector
 WHEN 'value1' THEN Statement1;
 WHEN 'value2' THEN Statement2;
 WHEN 'value3' THEN Statement3;
 ...
 ELSE Statement; -- default case
END CASE;

Ada 2 bentuk CASE Statement seperti pada kedua contoh program di bawah ini:

Contoh Progam #1

Di bawah ini adalah contoh CASE Stetement dalam program PL/SQL:

DECLARE
 nilai CHAR(1) := 'A';
BEGIN
 CASE nilai
  WHEN 'A' THEN DBMS_OUTPUT.PUT_LINE('Sempurna');
  WHEN 'B' THEN DBMS_OUTPUT.PUT_LINE('Sangat Baik');
  WHEN 'C' THEN DBMS_OUTPUT.PUT_LINE('Baik');
  WHEN 'D' THEN DBMS_OUTPUT.PUT_LINE('Cukup');
  WHEN 'F' THEN DBMS_OUTPUT.PUT_LINE('Coba Kuliah lagi..');
  ELSE DBMS_OUTPUT.PUT_LINE('Gagal');
 END CASE;
END;
/

Output #1:

Sempurna

PL/SQL procedure successfully completed.

Contoh Program #2

DECLARE
 nilai CHAR(1) := 'A';
BEGIN
 CASE 
  WHEN nilai = 'A' THEN DBMS_OUTPUT.PUT_LINE('Sempurna');
  WHEN nilai = 'B' THEN DBMS_OUTPUT.PUT_LINE('Sangat Baik');
  WHEN nilai = 'C' THEN DBMS_OUTPUT.PUT_LINE('Baik');
  WHEN nilai = 'D' THEN DBMS_OUTPUT.PUT_LINE('Cukup');
  WHEN nilai = 'F' THEN DBMS_OUTPUT.PUT_LINE('Coba Kuliah lagi..');
  ELSE DBMS_OUTPUT.PUT_LINE('Gagal');
 END CASE;
END;
/

Output

Sempurna

PL/SQL procedure successfully completed.

Share on Google Plus

About Unknown

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.
    Blogger Comment
    Facebook Comment

0 comments:

Post a Comment