Tuesday, July 2, 2019

Oracle Apex 9 - Percabangan Di PL/SQL

Assalamu'alaikum

Selamat siang, salam database!!. Melanjutkan kembali pembahasan SQL, jika sebelumnya saya menjelaskan tentang blok atau struktur pada statement PL, kali ini saya ingin menjelaskan tentang statement percabangan pada program PL. Langsung saja berikut pembahasannya.

Statement IF Else

Percabangan pada PLSQL instruksi umumnya sama hanya berbeda bentuk pemaparan perintahnya. Secara teori pun sama, dimana statement IF Else yang digunakan untuk percabangan memiliki fungsi yaitu membandingkan suatu kondisi dimana jika kondisi yang di bandingkan bernilai true maka instruksi kondisi tersebut akan di jalankan. 


Percabangan di PL sendiri ada 2 metode yang bisa di gunakan yaitu menggunakan statement IF Else dan satu lagi menggunakan Statement Case yang bentuknya mirip seperti switch case pada program-program umum. Untuk statement IF Else sendiri ada 4 macam operator kondisional yang bisa digunakan di PLSQL, yaitu :
  • IF Then Statement
  • IF Then ELSE Statement
  • IF THEN ELSIF Statement
  • Nested IF THEN ELSE Statement
Namun yang saya bahas hanya poin pentingnya saja yaitu poin 1-3. Untuk nested tidak saya jelaskan karena merupakan percabangan di dalam percabangan lebih sering digunakan pada programming ketimbang di lakukan pada query data. 

IF THEN Statement

Penulisan script IF THEN pada PL berbeda dari script program-program pada umumnya. Dimana IF THEN statement pada PL memiliki struktur atau penulisan sebagai berikut. 

IF (kondisi) THEN
   statement;
END IF;
IF THEN sendiri merupakan penulisan sederhana dari instruksi percabangan IF Else Statement. IF THEN digunakan sebagai parent awal dari percabangan kondisi yang di bandingkan. Contoh disini semisal sebuah variabel yang kita buat kita isikan value, jika value sesuai dengan kondisi pada IF yang kita bandingkan, maka program akan menampilkan output. 
 
DECLARE
  nomor INT(3) := 2;
BEGIN
  IF (nomor = 2) THEN
    DBMS_OUTPUT.PUT_LINE('isi nomor adalah 2');
  END IF;
END;
isi nomor adalah 2

IF THEN ELSE Statement

Selanjutnya IF Then Else statement, yaitu kondisi IF dan ELSE (kondisi default) jika statement IF bernilai salah dan otomatis akan menjalankan statement ELSE, strukturnya :

IF (kondisi) THEN
   statement;
ELSE
   statement;
END IF;
Untuk contoh latihannya, kita coba kembangkan script diatas dengan kondisi salah. Sehingga nantinya perintah ELSE yang akan di jalankan oleh program.
 
DECLARE
  nomor INT(3) := 4;
BEGIN
  IF (nomor = 2) THEN
    DBMS_OUTPUT.PUT_LINE('nomor sama dengan 2');
  ELSE
    DBMS_OUTPUT.PUT_LINE('nomor tidak sama dengan 2')
;
  END IF
END;
nomor tidak sama dengan 2

IF THEN ELSIF

Untuk statement IF Then ELSIF ini digunakan untuk membandingkan beberapa kondisi yang akan terjadi. Dimana IF pertama adalah percabangan parentnya dan ELSIF merupakan kondisi selain kondisi IF. Di statement ini tentu instruksi ELSE di gunakan sebagai kondisi default semisal dari listing kondisi IF dan ELSIF tidak ada yang bernilai true, struktur penulisannya :

IF (kondisi-1) THEN
   statement-1;
ELSIF(kondisi-2)
   statement-2;
ELSIF(kondisi-3)
   statement-3;
ELSE
   statement;
END IF;
 
Contoh latihannya adalah sebagai berikut. Karena variabel INTnya kita berikan value atau nilai 4 maka yang di jalankan adalah instuksi ELSIF yang memiliki kondisi variabel jika bernilai 4.
 
DECLARE
  nomor INT(3) := 4;
BEGIN
  IF (nomor = 2) THEN
    DBMS_OUTPUT.PUT_LINE('nomor sama dengan 2');
  ELSIF(nomor = 3) THEN
    DBMS_OUTPUT.PUT_LINE('nomor sama dengan 3');
  ELSIF(nomor = 4) THEN
    DBMS_OUTPUT.PUT_LINE('nomor sama dengan 4')
;
  ELSE
    DBMS_OUTPUT.PUT_LINE('nomor sama dengan 5');
  END IF;
END;
nomor sama dengan 4

Statement Case

Selanjutnya adalah statement case. Seperti yang sudah saya jelaskan di atas, statement case mirip dengan statement switch case yang di gunakan di program-program umum lainnya. Berbeda dari statement IF Else, statement case pada PL ini digunakan untuk membandingkan satu variabel saja. 

Kalian dapat menggunakan hampir semua jenis tipe data PL/SQL  sebagai pemilih kecuali blob, jenis BFILE dan komposit. Tidak seperti pernyataan IF PL/SQL , pernyataan CASE PL/SQL menggunakan pemilih bukan kombinasi dari ekspresi Boolean ganda.

Semisal disini saya ingin membandingkan variabel nilai, valuenya bertipe datakan integer sehingga nilai yang saya masukan disini adalah 60. Isi pembanding casenya di tandai dengan perintah WHEN (kondisi) THEN baru di isi dengan instruksi. Jika sesuai yang kita lihat pada script dibawah, maka hasinya program akan melakukan output C.
 
DECLARE
    nilai number;
BEGIN
nilai:=60;
CASE
   WHEN nilai >= 80 THEN
    dbms_output.put_line('A');
   WHEN nilai between 70 and 79 THEN
    dbms_output.put_line('B');
   WHEN nilai between 60 and 69 THEN
    dbms_output.put_line('C')
;
   WHEN nilai between 50 and 59 THEN
    dbms_output.put_line('D');
  ELSE dbms_output.put_line('E');
END CASE;
END;
C
Statement processed.

Contoh PLSQL Percabangan 

Latihan-latihan percabangan diatas adalah hanya mengandalkan program PL saja (tanpa SQL). Contoh gabungan antara PL dan SQL pada percabangan bisa di cek pada script conditional berikut. Semisal disini saya menampung variabel dengan nilai value alfa. Kondisi yang kita berikan, semisal bernilai true maka akan di lakukan perintah SQL Insert kedalam database dengan nama Alfa tersebut.
 
DECLARE
  nama VARCHAR(25) := 'Alfa';
  PelID NUMBER(10);
BEGIN
  SELECT MAX(Kode_Pelanggan) INTO PelID FROM PELANGGAN;

  IF (nama = 'Alfa') THEN
    INSERT INTO PELANGGAN (Kode_Pelanggan, Nama_Pelanggan, Alamat_Pelanggan)
    VALUES ((PelID + 1), 'Alfa', 'Bekasi');

 
  ELSIF (nama = 'Farhan') THEN
    INSERT INTO PELANGGAN (Kode_Pelanggan, Nama_Pelanggan, Alamat_Pelanggan)
    VALUES ((PelID + 1), 'Farhan', 'Jakarta');
 
  ELSE
    DBMS_OUTPUT.PUT_LINE('Silahkan masukan nama user yang ingin di entry');
 
  END IF;
END;
1 row(s) inserted.
Note : perintah SELECT MAX(Kode_Pelanggan) INTO PelID FROM PELANGGAN; digunakan untuk mencari nilai tertinggi didalam kolom Kode_Pelanggan di tabel PELANGGAN untuk di masukan ke dalam variabel PelID.

Hasilnya data dengan Nama_Pelanggan Alfa berhasil di input dengan menggunakan PLSQL percabangan.


Demikian penjelasan mengenai pembahasan percabangan di PLSQL, semoga bermanfaat bagi pembaca. Sekian dari saya, jika ada yang ingin di tanyakan bisa letakkan langsung di komentar. Terima kasih sudah berkunjung, sampai berjumpa di pembahasan oracle selanjutnya. Salam database!!. 

0 komentar:

Post a Comment

Kenal Saya

Follow My Twitter

Profil



Nama saya Alfa Farhan Syarief, web ini ada berdasarkan nama saya sendiri. Saya sendiri masih duduk tingkat SMK. Lebih lengkapnya saya masih bersekolah di SMKN 1

More »

Blog Archive

Recent Comment