Sunday, October 8, 2017

Tutorial Loop dalam SAP ABAP

Mungkin ada situasi saat Anda perlu melakukan pengulangan kode / Looping. Dalam SAP ABAP, pernyataan dieksekusi secara berurutan: Pernyataan pertama dalam sebuah fungsi dijalankan pertama, diikuti oleh yang kedua, dan seterusnya. Pernyataan loop memungkinkan kita untuk mengeksekusi pernyataan atau kelompok pernyataan beberapa kali dan berikut adalah bentuk umum dari sebuah pernyataan loop di sebagian besar bahasa pemrograman.

Bahasa pemrograman ABAP menyediakan 3 Jenis statement Loop seperti:

  1. WHILE loop
  2. Do loop
  3. Nested loop

WHILE loop

WHILE loop statement berulang kali mengeksekusi pernyataan target selama kondisi tertentu benar.

Format umum perintah WHILE adalah sebagai berikut:
WHILE   

. 
    
ENDWHILE.

while_loop_sap_abap
Blok pernyataan bisa berupa pernyataan tunggal atau satu blok pernyataan. While Loop mengeksekusi pernyataan yang dilampirkan oleh perintah WHILE dan ENDWHILE sampai logical expression menjadi false.

Contoh:
REPORT YS_SEP_15.
 
DATA: a type i.

a = 0.
 
WHILE a <> 8.
 
   Write: / 'This is the line:', a. 
   a = a + 1.
 
Outpunya adalah
This is the line: 0
This is the line: 1
This is the line: 2
This is the line: 3
This is the line: 4
This is the line: 5
This is the line: 6
This is the line: 7


Do loop

Loop tanpa syarat berulang kali melakukan beberapa pernyataan tanpa menentukan kondisi apapun. Pernyataan DO menerapkan loop tanpa syarat dengan mengeksekusi satu set blok pernyataan beberapa kali tanpa syarat.
Syntax
'Times' memberlakukan pembatasan jumlah lintasan loop, yang diwakili oleh 'n'. Nilai 'n' tidak boleh negatif atau nol. Jika nol atau negatif, pernyataan dalam loop tidak dapat dieksekusi
do_loop_SAP_ABAP

Contoh: 

Report YH_SEP_15.
  
Do 15 TIMES. 
 
Write: / 'Hello'.
  
ENDDO.
Outputnya adalah:
Hello 
Hello 
Hello 
Hello 
Hello 
Hello 
Hello 
Hello 
Hello 
Hello 
Hello 
Hello 
Hello 
Hello 
Hello

Nested loop

Pernyataan DO dan WHILE dapat diuji serta digabungkan dengan bentuk loop lainnya. Setiap nested loop akan memiliki sendiri SY-INDEX yang dibuat dan dipantau oleh sistem.
Syntax
DO [n TIMES]. 
. 
   DO [m TIMES]. 
   . 
   ENDDO. 
ENDDO.
Contoh:
REPORT YS_SEP_15.
  
Data: a1 type I, b1 type I.
  
a1 = 0.  
b1 = 0.
  
Do 2 times.
  
a1 = a1 + 1.
  
Write: /'Outer', a1.
  
Do 10 times.  
b1 = b1 + 1.
  
Write: /'Inner', b1.
  
ENDDo. 
ENDDo
Outputnya adalah:
Outer   1 
Inner   1 
Inner   2 
Inner   3 
Inner   4 
Inner   5 
Inner   6 
Inner   7 
Inner   8 
Inner   9 
Inner  10 
Outer   2 
Inner  11 
Inner  12 
Inner  13 
Inner  14 
Inner  15 
Inner  16 
Inner  17 
Inner  18 
Inner  19 
Inner  20

Dalam contoh ini, loop DO luar diproses dua kali dan loop DO dalam diproses 10 kali, setiap kali loop DO luar diproses. Jadi dalam kasus ini, inner loop diproses 20 kali.


EmoticonEmoticon