Selasa, 22 November 2016

Cara Membuat Internal Table SAP ABAP


Pada postingan kali ini penulis bakalan membagi tutorial cara membuat internal table. Sebelum memulai tutorial, penulis akan menjelaskan apa yang dimaksud dengan internal table. Internal table sendiri merupakan sebuah tabel yang hanya disimpan dalam memori sementara ketika program ABAP berjalan. Atau jika dalam bahasa pemograman lain seperti array. Jika array pada bahasa lain hanya dapat diisi dengan satu tipe saja, sedangkan untuk internal tabel kita bisa mengisi field-field dengan berbagai type.

Oke, selanjutnya penulis akan membagikan cara membuat internal table. Disini ada tiga cara dalam pembuatan internal table yang diperlihatkan sebagai berikut:

*cara 1 dengan headerline atau workarea
DATA: BEGIN OF gt_data OCCURS 0,
        nama TYPE char30,
        alamat TYPE char30,
      END OF gt_data.

*cara 2
TYPES: BEGIN OF ty_data_2,
        nama TYPE char30,
        alamat TYPE char30,
       END OF ty_data_2.
DATA gt_data_2 TYPE TABLE OF ty_data_2 WITH HEADER LINE.

*cara 3 headerline dan workarea terpisah
DATA: gt_data_3 TYPE TABLE OF ty_data_2,
      gwa_data_3 TYPE ty_data_2.

Cara 1 dan 2 ialah cara membuat internal tabel dengan workarea. Workarea sendiri merupakan suatu space yang menunjuk ke satu baris atau index dalam internal table. Contoh penggambarannya ada di Gambar 1.

Gambar 1. Workarea pada Table
Perbedaan cara 1 dan 2 yaitu pada cara pertama kita membuat data dengan diisi field-field tabel secara langsung. Sedangkan yang kedua kita membuat sebuah tipe data dengan field-field tabel lalu tipe tersebut dijadikan tipe tabel pada data gt_data2. Saat membuat gt_data_2 kita harus menambahkan 'WITH HEADER LINE' agar pada gt_data_2 terdapat workareanya. Pada cara 3 kita membuat workarea terpisah yang disimpan pada gwa_data_3.

Selanjutnya setelah membuat internal table. Lalu, bagaimana jika kita akan menginsert data pada internal table. Berikut ini cara menginsert data pada internal table.

*with header line
*Row 1
CLEAR: gt_data_2.
gt_data_2-nama = 'Arsyad'.
gt_data_2-alamat = 'Kalibata'.
APPEND gt_data_2.
*
**Row 2
CLEAR: gt_data_2.
gt_data_2-nama = 'Setyawan'.
gt_data_2-alamat = 'Kalibata'.
APPEND gt_data_2.

*without header line
*Row 1
CLEAR: gwa_data_3.
gwa_data_3-nama = 'Arsyad'.
gwa_data_3-alamat = 'Kalibata'.
APPEND gwa_data_3 TO gt_data_3.
*
*Row 2
CLEAR: gwa_data_3.
gwa_data_3-nama = 'Setyawan'.
gwa_data_3-alamat = 'Kalibata'.
APPEND gwa_data_3 TO gt_data_3.

Saat penambahan data pada internal table dengan headerline yang kita lakukan adalah mengkosongkan workarea terlebih dahulu. Karena gt_data_2 sudah memiliki workarea yang sudah ada didalamnya maka yang dikosongkan langsung gt_data_2 lalu baru diisi dengan data yang diinsert. Sedangkan untuk yang memiliki workarea terpisah yang dikosongkan workareanya dahulu yaitu gwa_data_3 selanjutnya saat memasukkan datanya dari gwa_data_3 kita masukkan ke internal tablenya  gt_data_3. dengan cara APPEND <workarea> TO <itab>.

Tidak ada komentar:

Posting Komentar