Oracle PL/SQL FOR LOOP dengan Contoh

⚡ Ringkasan Cerdas

Oracle Perulangan FOR PL/SQL menjalankan blok kode sejumlah kali yang diketahui antara batas bawah dan batas atas. Variabel perulangan dideklarasikan secara implisit dan bertambah sendiri, sehingga tidak diperlukan penghitung manual, dan kata kunci REVERSE memungkinkan perulangan untuk menghitung mundur.

  • 🔢 Terbaik Untuk: Perulangan FOR lebih cocok untuk jumlah iterasi yang diketahui daripada kondisi yang tidak terbatas.
  • 📏 Range: Batas bawah dan batas atas menentukan berapa kali perulangan dijalankan.
  • ⚙️ Penghitung Implisit: Variabel loop dideklarasikan secara otomatis dan bertambah nilainya dengan sendirinya.
  • 🎯 Cakupan: Variabel loop hanya ada di dalam loop.
  • 🔄 BALIK: Menambahkan REVERSE sebelum batas bawah membuat perulangan menghitung mundur.
  • 🪜 Bersarang: Perulangan dapat bersarang, dan perulangan dalam berjalan sepenuhnya untuk setiap iterasi luar.
  • 🚪 Keluar Otomatis: Perulangan berakhir secara otomatis ketika variabel keluar dari rentang tersebut.

Oracle Perulangan For PL/SQL

Apa itu perulangan FOR?

Pernyataan “FOR LOOP” paling cocok digunakan ketika Anda ingin mengeksekusi kode sebanyak jumlah kali yang telah ditentukan, bukan berdasarkan kondisi lain.

Dalam perulangan ini, batas bawah dan batas atas ditentukan, dan selama variabel perulangan berada di antara rentang ini, perulangan akan dieksekusi.

Variabel loop bersifat self-incremental, sehingga tidak diperlukan operasi penambahan eksplisit. Variabel loop tidak perlu dideklarasikan, karena dideklarasikan secara implisit.

FOR <loop_variable> in <lower_limit> .. <higher_limit>
LOOP
<execution block starts>
.
.
.
<execution_block_ends>
END LOOP;

Penjelasan Sintaks:

  • Kata kunci 'FOR' menandai awal perulangan dan 'END LOOP' menandai akhir perulangan.
  • Variabel loop dievaluasi setiap kali sebelum bagian eksekusi dijalankan.
  • Blok eksekusi berisi semua kode yang perlu dijalankan dan dapat berisi pernyataan apa pun yang dapat dieksekusi.
  • Variabel `loop_variable` dideklarasikan secara implisit selama eksekusi loop, dan cakupannya hanya di dalam loop.
  • Ketika variabel loop keluar dari rentang yang ditentukan, kontrol keluar dari loop.
  • Perulangan dapat dibuat bekerja dalam urutan terbalik dengan menambahkan kata kunci 'REVERSE' sebelum lower_limit.

Contoh 1: Dalam contoh ini, kita mencetak angka dari 1 hingga 5 menggunakan pernyataan perulangan FOR.

Perulangan FOR mencetak angka 1 sampai 5

BEGIN
dbms_output.put_line('Program started.');
FOR a IN 1 .. 5
LOOP
dbms_output.put_line(a);
END LOOP;
dbms_output.put_line('Program completed.');
END;
/

Code Penjelasan:

  • Code baris 2: Mencetak pernyataan “Program dimulai”.
  • Code baris 3: Kata kunci 'FOR' menandai awal perulangan dan variabel perulangan 'a' dideklarasikan. Variabel ini sekarang mengambil nilai dari 1 hingga 5.
  • Code baris 5: Mencetak nilai 'a'.
  • Code baris 6: Kata kunci 'END LOOP' menandai akhir dari blok eksekusi.
  • Baris 5 terus dieksekusi hingga 'a' mencapai nilai 6, di mana pada titik tersebut kondisi gagal dan kontrol keluar dari loop.
  • Code baris 7: Mencetak pernyataan “Program selesai”.

Loop Bersarang

Pernyataan perulangan juga dapat bersarang. Perulangan luar dan dalam dapat memiliki tipe yang berbeda. Dalam perulangan bersarang, untuk setiap iterasi perulangan luar, perulangan dalam dieksekusi sepenuhnya.

Struktur loop bersarang

LOOP --outer
<execution block starts>
LOOP --inner
<execution_part>
END LOOP;
<execution_block_ends>
END LOOP;

Penjelasan Sintaks:

  • Lingkaran terluar memiliki satu lingkaran lagi di dalamnya.
  • Perulangan dapat berupa jenis apa pun, dan fungsi eksekusinya tetap sama.

Contoh 1: Dalam contoh ini, kita mencetak angka dari 1 hingga 3 menggunakan pernyataan perulangan FOR. Setiap angka dicetak sebanyak nilai angka tersebut.

Contoh perulangan FOR bersarang bagian 1

Contoh perulangan FOR bersarang bagian 2

DECLARE
b NUMBER;
BEGIN
dbms_output.put_line('Program started');
FOR a IN 1..3
LOOP
b:= 1;
WHILE (a>=b)
LOOP
dbms_output.put_line(a);
b:= b+1;
END LOOP;
END LOOP;
dbms_output.put_line('Program completed');
END;
/

Code Penjelasan:

  • Code baris 2: Mendeklarasikan variabel 'b' sebagai tipe data 'NUMBER'.
  • Code baris 4: Mencetak pernyataan “Program dimulai”.
  • Code baris 5: Kata kunci 'FOR' menandai awal perulangan dan variabel perulangan 'a' dideklarasikan. Variabel ini sekarang mengambil nilai dari 1 hingga 3.
  • Code baris 7: Menyetel ulang nilai 'b' menjadi '1' setiap kali.
  • Code baris 8: Batin loop sementara memeriksa kondisi a>=b.
  • Code baris 10: Mencetak nilai 'a' selama kondisi di atas terpenuhi.
  • Code baris 14: Mencetak pernyataan “Program selesai”.

Perulangan FOR dan Perulangan REVERSE FOR

Secara default, perulangan FOR menghitung ke atas dari batas bawah ke batas atas. Menambahkan kata kunci REVERSE membuatnya menghitung ke bawah sambil tetap mempertahankanping Batasannya dalam urutan yang sama. Kedua bentuk tersebut ditampilkan bersama di bawah ini sehingga perbedaannya jelas.

Bentuk Header Urutan nilai
Ascending UNTUK a DALAM 1 .. 5 1, 2, 3, 4, 5
Descending UNTUK A DALAM BALASAN 1 .. 5 5, 4, 3, 2, 1

Perhatikan bahwa bahkan dengan REVERSE, batas bawah tetap ditulis sebelum batas atas; hanya arah iterasi yang berubah. Untuk loop yang jumlahnya tidak diketahui sebelumnya, loop dasar adalah pilihan yang lebih baik.

Pertanyaan Umum Demo Slot

Tidak. Perulangan FOR mendeklarasikan variabelnya secara implisit, dan variabel tersebut hanya ada di dalam perulangan. Mendeklarasikan variabel dengan nama yang sama di luar perulangan tidak memengaruhi variabel yang digunakan oleh perulangan.

REVERSE membuat loop berulang dari batas atas ke batas bawah. Batas-batasnya tetap ditulis dari rendah ke tinggi; hanya urutan nilai yang dikunjungi yang dibalik.

Gunakan perulangan FOR ketika jumlah iterasi diketahui sebelumnya, seperti rentang tetap. Gunakan perulangan WHILE ketika perulangan harus berlanjut selama suatu kondisi terpenuhi dan jumlahnya tidak tetap.

Ya, ketika perulangan dasar hanya menghitung antara dua nilai tetap. AI dapat mengganti penghitung manual dan EXIT dengan rentang FOR, sehingga kode menjadi lebih pendek. Pastikan batasannya sesuai dengan aslinya.

Tidak. Variabel loop bersifat read-only di dalam loop, sehingga pemberian nilai ke variabel tersebut akan menimbulkan kesalahan kompilasi. Untuk mengubah alur, gunakan variabel terpisah atau keluar dari loop dengan EXIT.

Ringkaslah postingan ini dengan: