Tuesday, July 2, 2019

Oracle Apex 10 - Perulangan di PL/SQL

Assalamu'alaikum

Selamat siang, salam database!!. Melanjutkan kembali pembahasan PL/SQL pada oracle Apex, kali ini saya ingin menjelaskan tentang pembahasan perulangan. Sama seperti namanya, perulangan ini digunakan untuk melakukan perulangan satu atau beberapa instruksi dan akan berhenti sampai kondisi yang kita tentukan. 

Perulangan di PLSQL

Perulangan pada PL/SQL adalah sekumpulan perintah yang dapat melakukan perulangan pada suatu blok plsql yang dapat memuat beberapa nilai di dalam satu kali melakukan perintah (program) yang terdapat di dalam blok loop  Bentuk sederhana perulangan pada PLSQL adalah dengan menggunakan perintah LOOP. Jika perintah loop tidak di berikan kondisi, maka perulangan akan terus di lakukan (tidak terhingga). 


Instruksi loop diletakkan diantara kata kunci LOOP dan END LOOP. Pada PLSQL sendiri ada 3 jenis perulangan yang bisa digunakan. Yaitu :
  • Perulangan sederhana (simple looping)
  • Perulangan FOR (For Looping)
  • dan Perulangan While (While Looping)

Simple Looping

Simple looping adalah jenis looping yang paling sering di gunakan pada PLSQL. Biasa digunakan untuk melakukan query dst, simple looping cocok digunakan karena penggunaannya yang simple. Sama seperti penjelasan diiatas, instruksi simple looping di letakkan di antara kata kunci LOOP dan END LOOP. Kondisi pengakhiran looping di instruksikan dengan menggunakan perintah percabangan FOR. Contohnya :

DECLARE
  n number (3) := 1;

BEGIN
  DBMS_OUTPUT.PUT_LINE('*** Perulangan Menggunakan Basic Loop ***');
 
  LOOP
    DBMS_OUTPUT.PUT_LINE ('Nilai  dari n adalah ' || n);
    n := n+1;

    IF n > 10
    THEN
      EXIT;
    END IF;

  END LOOP;


END;
*** Perulangan Menggunakan Basic Loop ***
Nilai  dari n adalah 1
Nilai  dari n adalah 2
Nilai  dari n adalah 3
Nilai  dari n adalah 4
Nilai  dari n adalah 5
Nilai  dari n adalah 6
Nilai  dari n adalah 7
Nilai  dari n adalah 8
Nilai  dari n adalah 9
Nilai  dari n adalah 10
Note : instruksi n := n+1; digunakan bukan sebagai increment perulangan tapi sebagai acuan untuk increment output dan batasan akhir yang di arahkan ke kondisi IF perulangan loop di hentikan.

For Looping

For looping adalah looping yang sering di gunakan di program-program pada umumnya. Penulisan For looping pada PL/SQL berbeda dari script perulangan For pada umumnya. Penulisan scriptnya di apit oleh FOR n IN[Kondisi] LOOP dan END LOOP. Berikut contohnya :
 
DECLARE
  n number (3);
BEGIN
  DBMS_OUTPUT.PUT_LINE('*** Perulangan Menggunakan For Loop ***');
  FOR n IN 1..10 LOOP
    DBMS_OUTPUT.PUT_LINE ('Nilai  dari n adalah ' || n);
  END LOOP;

END;
*** Perulangan Menggunakan For Loop ***
Nilai  dari n adalah 1
Nilai  dari n adalah 2
Nilai  dari n adalah 3
Nilai  dari n adalah 4
Nilai  dari n adalah 5
Nilai  dari n adalah 6
Nilai  dari n adalah 7
Nilai  dari n adalah 8
Nilai  dari n adalah 9
Nilai  dari n adalah 10

While Looping

Tidak seperti penulisan perintah perulangan FOR yang menggunakan batasan awal..batasan akhir, instruksi while looping bisa menggunakan perintah kurang dari atau lebih dari untuk menentukan kondisi batasan akhir loopingnya. Berikut contohnya :
 
DECLARE
  n number (3) := 1;
BEGIN
  DBMS_OUTPUT.PUT_LINE('*** Perulangan Menggunakan While Loop ***');
  WHILE n <= 10 LOOP
    DBMS_OUTPUT.PUT_LINE ('Nilai  dari n adalah ' || n);
    n := n+1;
  END LOOP;

END;
*** Perulangan Menggunakan While Loop ***
Nilai  dari n adalah 1
Nilai  dari n adalah 2
Nilai  dari n adalah 3
Nilai  dari n adalah 4
Nilai  dari n adalah 5
Nilai  dari n adalah 6
Nilai  dari n adalah 7
Nilai  dari n adalah 8
Nilai  dari n adalah 9
Nilai  dari n adalah 10

Menentukan Bilangan Ganjil Dengan Looping

Untuk menentukan bilangan ganjil dengan looping, disini saya menggunakan loop basic untuk perulangannya. Kondisinya disini semisal 1-12 yang kita tentukan bilangan ganjilnya maka berikut perintah sqlnya. Ingat disini yang perlu di perhatikan adalah kondisinya.
 
DECLARE
  n number (3) := 1;
BEGIN
  DBMS_OUTPUT.PUT_LINE('*** Menampilkan Bilangan Ganjil dengan Basic Loop ***');
  LOOP
    DBMS_OUTPUT.PUT_LINE ('Nilai  dari n adalah ' || n);
    n := n+2;
    IF n > 12
    THEN
      EXIT;

    END IF;
  END LOOP;
END;
*** Menampilkan Bilangan Ganjil dengan Basic Loop ***
Nilai  dari n adalah 1
Nilai  dari n adalah 3
Nilai  dari n adalah 5
Nilai  dari n adalah 7
Nilai  dari n adalah 9
Nilai  dari n adalah 11

Perulangan Pangkat Dengan Looping

Selanjutnya kita coba melakukan perulanngan pangkat. Masih sama menggunakan simple looping, kondisi yang saya berikan disini semisal maksimal perulangannya 20. Lalu untuk incrementnya saya menggunakan rumus n := n*n;. Berikut contohnya :
 
DECLARE
  n number (3) := 2;
BEGIN
  DBMS_OUTPUT.PUT_LINE('*** Perulangan Pangkat Menggunakan Basic Loop ***');
  LOOP
    DBMS_OUTPUT.PUT_LINE ('Nilai  dari n adalah ' || n);
    n := n*n;
    IF n > 20
    THEN
      EXIT;

    END IF;
  END LOOP;
END;
*** Perulangan Pangkat Menggunakan Basic Loop ***
Nilai  dari n adalah 2
Nilai  dari n adalah 4
Nilai  dari n adalah 16

Contoh PL/SQL Implementasi Looping

Untuk contoh PLSQLnya masih sama seperti kemarin yaitu, perintah DML Insert secara mengulang sebanyak kondisi perulangan yang kita inginkan. Semisal disini saya ingin melakukan insert data sebanyak 3 kali. Loop yang saya gunakan disini adalah While Looping. Dan agar data pada kolom primary keynya tidak bentrok dengan data yang ada kita menggunakan perintah max (nama_kolom) untuk mencari nilai data yang tertinggi di kolom tersebut. 

Data tertinggi yang di temukan akan di letakkan di variabel ID_Pel. Pada perulangannya ketika perintah insert di eksekusi, variabel ID_Pel + value1 (variabel n). Sehingga dengan begitu data yang di insert tidak bentrok dengan data tertinggi yang tersimpan.

DECLARE
  ID_Pel NUMBER (3);
  n number := 1;
BEGIN
  SELECT MAX(Kode_Pelanggan) INTO ID_Pel FROM PELANGGAN;
  WHILE n <= 3 LOOP
    INSERT INTO PELANGGAN(Kode_Pelanggan, Nama_Pelanggan, Alamat_Pelanggan)
      VALUES((ID_Pel + n), 'Testing Nama', 'Jabodetabek');

    n:=n+1;
  END LOOP;
END;
1 row(s) inserted.
Hasilnya ketiga data akan muncul pada tabel PELANGGAN.


Demikian penjelasan mengenai perulangan pada PLSQL di Oracle Apex. Semoga bermanfaat. Sekian dari saya, saran dan pertanyaan bisa letakkan 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