SAP ABAP - Operator

ABAP menyediakan sekumpulan operator yang kaya untuk memanipulasi variabel. Semua operator ABAP diklasifikasikan ke dalam empat kategori -

  • Operator Aritmatika
  • Operator Perbandingan
  • Operator Bitwise
  • Operator String Karakter

Operator Aritmatika

Operator aritmatika digunakan dalam ekspresi matematika dengan cara yang sama seperti yang digunakan dalam aljabar. Daftar berikut menjelaskan operator aritmatika. Asumsikan variabel integer A memiliki 20 dan variabel B memiliki 40.

S.No. Operator Aritmatika & Deskripsi
1

+ (Addition)

Menambahkan nilai di kedua sisi operator. Contoh: A + B akan menghasilkan 60.

2

− (Subtraction)

Mengurangi operan tangan kanan dari operan tangan kiri. Contoh: A - B akan memberikan -20.

3

* (Multiplication)

Mengalikan nilai di kedua sisi operator. Contoh: A * B akan menghasilkan 800.

4

/ (Division)

Membagi operan tangan kiri dengan operan tangan kanan. Contoh: B / A akan menghasilkan 2.

5

MOD (Modulus)

Membagi operan tangan kiri dengan operan tangan kanan dan mengembalikan sisanya. Contoh: B MOD A akan menghasilkan 0.

Contoh

REPORT YS_SEP_08. 
DATA: A TYPE I VALUE 150, 
B TYPE I VALUE 50, 
Result TYPE I. 
Result =  A / B. 
WRITE / Result.

Kode di atas menghasilkan keluaran sebagai berikut -

3

Operator Perbandingan

Mari kita bahas berbagai jenis operator perbandingan untuk berbagai operan.

S.No. Operator Perbandingan & Deskripsi
1

= (equality test). Alternate form is EQ.

Memeriksa apakah nilai dari dua operan sama atau tidak, jika ya maka kondisinya menjadi benar. Contoh (A = B) tidak benar.

2

<> (Inequality test). Alternate form is NE.

Memeriksa apakah nilai dari dua operan sama atau tidak. Jika nilainya tidak sama maka kondisinya menjadi benar. Contoh (A <> B) benar.

3

> (Greater than test). Alternate form is GT.

Memeriksa apakah nilai operan kiri lebih besar dari nilai operan kanan. Jika ya maka kondisinya menjadi benar. Contoh (A> B) tidak benar.

4

< (Less than test). Alternate form is LT.

Memeriksa apakah nilai operan kiri kurang dari nilai operan kanan. Jika ya, maka kondisinya menjadi benar. Contoh (A <B) benar.

5

>= (Greater than or equals) Alternate form is GE.

Memeriksa apakah nilai operan kiri lebih besar dari atau sama dengan nilai Operand kanan. Jika ya, maka kondisinya menjadi benar. Contoh (A> = B) tidak benar.

6

<= (Less than or equals test). Alternate form is LE.

Memeriksa apakah nilai operan kiri kurang dari atau sama dengan nilai operan kanan. Jika ya, maka kondisinya menjadi benar. Contoh (A <= B) benar.

7

a1 BETWEEN a2 AND a3 (Interval test)

Memeriksa apakah a1 terletak di antara a2 dan a3 (inklusif). Jika ya, maka kondisinya menjadi benar. Contoh (A ANTARA B DAN C) adalah benar.

8

IS INITIAL

Kondisi menjadi benar jika konten variabel tidak berubah dan nilai awalnya telah ditetapkan secara otomatis. Contoh (A IS AWAL) tidak benar

9

IS NOT INITIAL

Kondisi menjadi benar jika isi variabel telah berubah. Contoh (A BUKAN AWAL) adalah benar.

Note- Jika jenis data atau panjang variabel tidak cocok, maka konversi otomatis dilakukan. Penyesuaian tipe otomatis dilakukan untuk salah satu atau kedua nilai sambil membandingkan dua nilai dari tipe data yang berbeda. Jenis konversi ditentukan oleh jenis data dan urutan preferensi jenis data.

Berikut adalah urutan preferensi -

  • Jika satu bidang berjenis I, bidang lainnya diubah menjadi tipe I.

  • Jika satu bidang bertipe P, maka bidang lainnya diubah menjadi tipe P.

  • Jika satu field bertipe D, maka field yang lain diubah menjadi tipe D. Tetapi tipe C dan N tidak dikonversi dan akan dibandingkan secara langsung. Serupa halnya dengan tipe T.

  • Jika satu bidang berjenis N dan bidang lainnya berjenis C atau X, kedua bidang akan dikonversi ke tipe P.

  • Jika satu bidang berjenis C dan bidang lainnya berjenis X, jenis X akan diubah ke jenis C.

Contoh 1

REPORT YS_SEP_08. 

DATA: A TYPE I VALUE 115,
      B TYPE I VALUE 119.
      IF A LT B.
      WRITE: / 'A is less than B'.
      ENDIF

Kode di atas menghasilkan keluaran sebagai berikut -

A is less than B

Contoh 2

REPORT YS_SEP_08. 

DATA: A TYPE I.
      IF A IS INITIAL.
      WRITE: / 'A is assigned'.
      ENDIF.

Kode di atas menghasilkan keluaran sebagai berikut -

A is assigned.

Operator Bitwise

ABAP juga menyediakan serangkaian operator logika bitwise yang dapat digunakan untuk membuat ekspresi aljabar Boolean. Operator bitwise dapat digabungkan dalam ekspresi kompleks menggunakan tanda kurung dan seterusnya.

S.No. Operator & Deskripsi Bitwise
1

BIT-NOT

Operator unary yang membalik semua bit dalam bilangan heksadesimal ke nilai yang berlawanan. Misalnya, menerapkan operator ini ke bilangan heksadesimal yang memiliki nilai level bit 10101010 (misalnya 'AA') akan menghasilkan 01010101.

2

BIT-AND

Operator biner ini membandingkan setiap bidang sedikit demi sedikit menggunakan operator Boolean AND.

3

BIT-XOR

Operator biner yang membandingkan setiap bidang sedikit demi sedikit menggunakan operator Boolean XOR (OR eksklusif).

4

BIT-OR

Operator biner yang membandingkan setiap bidang sedikit demi sedikit menggunakan operator Boolean OR.

Misalnya, berikut adalah tabel kebenaran yang memperlihatkan nilai yang dihasilkan saat menerapkan operator Boolean AND, OR, atau XOR terhadap dua nilai bit yang terdapat di bidang A dan bidang B.

Bidang A Bidang B DAN ATAU XOR
0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 1 0

Operator String Karakter

Berikut ini adalah daftar operator string karakter -

S.No. Deskripsi & Operator String Karakter
1

CO (Contains Only)

Memeriksa apakah A hanya terdiri dari karakter dalam B.

2

CN (Not Contains ONLY)

Memeriksa apakah A berisi karakter yang tidak ada di B.

3

CA (Contains ANY)

Memeriksa apakah A mengandung setidaknya satu karakter B.

4

NA (NOT Contains Any)

Memeriksa apakah A tidak mengandung karakter B.

5

CS (Contains a String)

Memeriksa apakah A berisi karakter string B.

6

NS (NOT Contains a String)

Memeriksa apakah A tidak mengandung karakter string B.

7

CP (Contains a Pattern)

Ia memeriksa apakah A berisi pola di B.

8

NP (NOT Contains a Pattern)

Ia memeriksa apakah A tidak mengandung pola di B.

Contoh

REPORT YS_SEP_08. 
DATA: P(10) TYPE C VALUE 'APPLE',
      Q(10) TYPE C VALUE 'CHAIR'.
      IF P CA Q.
	
      WRITE: / 'P contains at least one character of Q'.
      ENDIF.

Kode di atas menghasilkan keluaran sebagai berikut -

P contains at least one character of Q.