Belajar ABAP Part 5: Internal Tables & Work Area
Setelah membahas Part 4: Modularisasi Program, sekarang kita masuk ke salah satu konsep terpenting di ABAP yaitu Internal Table & Work Area. Internal table digunakan untuk menyimpan banyak data di memory, sementara Work Area dipakai sebagai wadah untuk membaca/menulis data baris demi baris.
Apa itu Internal Table?
Internal Table adalah tabel sementara yang hanya ada di memory saat program berjalan. Biasanya dipakai untuk:
- Menyimpan hasil query dari database.
- Melakukan perhitungan atau transformasi data.
- Mengolah data sebelum ditampilkan ke user.
Jenis Internal Table
- Standard Table: urutan sesuai data dimasukkan.
- Sorted Table: otomatis terurut berdasarkan key.
- Hashed Table: akses cepat menggunakan key.
Contoh Membuat Internal Table & Work Area
REPORT zitab_example.
TYPES: BEGIN OF ty_student,
id TYPE i,
name TYPE string,
END OF ty_student.
DATA: lt_students TYPE TABLE OF ty_student, "Internal Table
ls_student TYPE ty_student. "Work Area
" Tambah data ke internal table
ls_student-id = 1.
ls_student-name = 'Andi'.
APPEND ls_student TO lt_students.
ls_student-id = 2.
ls_student-name = 'Budi'.
APPEND ls_student TO lt_students.
ls_student-id = 3.
ls_student-name = 'Citra'.
APPEND ls_student TO lt_students.
" Baca data dengan LOOP
LOOP AT lt_students INTO ls_student.
WRITE: / 'ID:', ls_student-id, 'Nama:', ls_student-name.
ENDLOOP.
Output: ID: 1 Nama: Andi ID: 2 Nama: Budi ID: 3 Nama: Citra
Perintah Dasar Internal Table
APPEND
→ menambah data ke internal table.LOOP AT
→ membaca data baris demi baris.READ TABLE
→ membaca data berdasarkan index atau key.MODIFY
→ mengubah data di internal table.DELETE
→ menghapus data.CLEAR
→ membersihkan isi variabel/work area.
Contoh READ, MODIFY, DELETE
REPORT zitab_ops.
TYPES: BEGIN OF ty_num,
num TYPE i,
END OF ty_num.
DATA: lt_nums TYPE TABLE OF ty_num,
ls_num TYPE ty_num.
DO 5 TIMES.
ls_num-num = sy-index.
APPEND ls_num TO lt_nums.
ENDDO.
" READ data ke-3
READ TABLE lt_nums INTO ls_num INDEX 3.
WRITE: / 'Data index 3:', ls_num-num.
" MODIFY data ke-2
ls_num-num = 99.
MODIFY lt_nums FROM ls_num INDEX 2.
" DELETE data ke-4
DELETE lt_nums INDEX 4.
" LOOP hasil akhir
WRITE: / '--- Data setelah update ---'.
LOOP AT lt_nums INTO ls_num.
WRITE: / ls_num-num.
ENDLOOP.
Output: Data index 3: 3 --- Data setelah update --- 1 99 3 5
Kesimpulan
Internal Table & Work Area adalah fondasi penting dalam ABAP. Hampir semua program yang berhubungan dengan database atau report akan memanfaatkan internal table untuk menyimpan dan mengolah data.
👉 Lanjut ke: Belajar ABAP Part 6: Open SQL di ABAP
👉 Baca Juga: Internal Table Lanjutan
👉 Baca Juga: Belajar Data Dictionary
Comments
Post a Comment