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 :
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
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