Skip to main content

Belajar ABAP Part 5: Internal Tables Lengkap (Standard, Sorted, Hashed)

Belajar ABAP Part 5: Internal Tables Lengkap (Standard, Sorted, Hashed)

Belajar ABAP Part 5: Internal Tables Lengkap (Standard, Sorted, Hashed)

Di Part 4: Modularisasi Program kita sudah bahas modularisasi. Sekarang kita akan mendalami Internal Table, struktur data paling penting di ABAP. Ada 3 jenis utama: Standard Table, Sorted Table, dan Hashed Table. Kita bedah satu-satu dengan contoh coding.

1. Standard Table

Standard Table adalah jenis default internal table. Data disimpan berurutan sesuai urutan APPEND. Cocok digunakan jika data tidak terlalu banyak dan pencarian dilakukan dengan index.


REPORT zstandard_table.

TYPES: BEGIN OF ty_emp,
         id   TYPE i,
         name TYPE string,
       END OF ty_emp.

DATA: lt_emp TYPE STANDARD TABLE OF ty_emp WITH DEFAULT KEY,
      ls_emp TYPE ty_emp.

" Isi data
ls_emp-id = 1. ls_emp-name = 'Andi'. APPEND ls_emp TO lt_emp.
ls_emp-id = 2. ls_emp-name = 'Budi'. APPEND ls_emp TO lt_emp.
ls_emp-id = 3. ls_emp-name = 'Citra'. APPEND ls_emp TO lt_emp.

" Loop data
WRITE: / '--- Standard Table ---'.
LOOP AT lt_emp INTO ls_emp.
  WRITE: / ls_emp-id, ls_emp-name.
ENDLOOP.

" Akses dengan index
READ TABLE lt_emp INTO ls_emp INDEX 2.
WRITE: / 'Index 2 adalah:', ls_emp-name.

Output: --- Standard Table --- 1 Andi 2 Budi 3 Citra Index 2 adalah: Budi

2. Sorted Table

Sorted Table otomatis menyimpan data dalam keadaan terurut berdasarkan key. Cocok untuk data besar karena pencarian lebih cepat daripada Standard Table.


REPORT zsorted_table.

TYPES: BEGIN OF ty_city,
         code TYPE i,
         name TYPE string,
       END OF ty_city.

DATA: lt_city TYPE SORTED TABLE OF ty_city
                WITH UNIQUE KEY code,
      ls_city TYPE ty_city.

" Isi data (acak urutannya)
ls_city-code = 30. ls_city-name = 'Surabaya'. APPEND ls_city TO lt_city.
ls_city-code = 10. ls_city-name = 'Jakarta'.  APPEND ls_city TO lt_city.
ls_city-code = 20. ls_city-name = 'Bandung'.  APPEND ls_city TO lt_city.

" Loop data akan otomatis urut berdasarkan KEY
WRITE: / '--- Sorted Table ---'.
LOOP AT lt_city INTO ls_city.
  WRITE: / ls_city-code, ls_city-name.
ENDLOOP.

" Akses dengan key
READ TABLE lt_city INTO ls_city WITH KEY code = 20.
WRITE: / 'Kota dengan code 20 adalah:', ls_city-name.

Output: --- Sorted Table --- 10 Jakarta 20 Bandung 30 Surabaya Kota dengan code 20 adalah: Bandung

3. Hashed Table

Hashed Table menyimpan data dengan struktur hash, mirip dictionary/map. Sangat cepat untuk pencarian berdasarkan key, tapi tidak bisa diakses dengan index.


REPORT zhashed_table.

TYPES: BEGIN OF ty_mat,
         matnr TYPE i,
         desc  TYPE string,
       END OF ty_mat.

DATA: lt_mat TYPE HASHED TABLE OF ty_mat
                WITH UNIQUE KEY matnr,
      ls_mat TYPE ty_mat.

" Isi data
ls_mat-matnr = 500. ls_mat-desc = 'Material A'. APPEND ls_mat TO lt_mat.
ls_mat-matnr = 200. ls_mat-desc = 'Material B'. APPEND ls_mat TO lt_mat.
ls_mat-matnr = 300. ls_mat-desc = 'Material C'. APPEND ls_mat TO lt_mat.

" Loop data (tidak berurutan karena sifat hash)
WRITE: / '--- Hashed Table ---'.
LOOP AT lt_mat INTO ls_mat.
  WRITE: / ls_mat-matnr, ls_mat-desc.
ENDLOOP.

" Akses dengan key
READ TABLE lt_mat INTO ls_mat WITH KEY matnr = 300.
WRITE: / 'Material 300 adalah:', ls_mat-desc.

Output (urutan bisa berbeda): --- Hashed Table --- 200 Material B 300 Material C 500 Material A Material 300 adalah: Material C

Perbandingan 3 Jenis Internal Table

Jenis Kelebihan Kekurangan Cocok untuk
Standard Table Mudah digunakan, akses via index Pencarian lambat untuk data besar Data kecil, sederhana
Sorted Table Data otomatis terurut, pencarian cepat Butuh key untuk akses efisien Data besar yang sering dicari berdasarkan key
Hashed Table Pencarian super cepat via key Tidak bisa pakai index, urutan tidak terjamin Data sangat besar, lookup by key

Kesimpulan

Internal Table adalah pondasi utama ABAP. Pilih jenis sesuai kebutuhan:

  • Pakai Standard Table untuk data kecil/sederhana.
  • Pakai Sorted Table untuk data besar yang perlu urut + pencarian cepat.
  • Pakai Hashed Table untuk pencarian super cepat berdasarkan key.

👉 Lanjut ke: Belajar ABAP Part 6: Open SQL di ABAP

Comments

Popular posts from this blog

How to Create a REST API in SAP ABAP — Step-by-step Guide

How to Create a REST API in SAP ABAP — Step-by-step Guide Summary: This tutorial shows how to build a REST API in SAP ABAP by creating a handler class, configuring SICF service, registering endpoints with cl_rest_router , implementing endpoint logic (example GET method), and testing the API. Based on an internal implementation reference. Why expose REST APIs from SAP? REST APIs allow SAP systems to integrate with web, mobile, and external services using standard HTTP and JSON payloads. Implementing REST endpoints in ABAP provides secure, reusable, and maintainable integration points for modern applications. Prerequisites Access to an SAP system with authorization to create classes (SE24) and SICF services (SICF). Familiarity with ABAP object-oriented concepts and basic SAP transaction codes. ABAP classes CL_REST_RESOURCE , CL_REST_ROUTER and utilities like /UI2/CL_JSON . High-level overview (4 steps) Create an API handler class (e.g. ZCL_API_HANDLER ). R...

SAP ABAP - User Exit Set Batch Characteristic Value In MIGO Goods Receipt

Customer Exit  :  MBCFC004 ( EXIT_SAPMM07M_004) Set Up Customer Exit for Classification of User-Defined Characteristics You use SAP enhancement MBCFC004 EXIT_SAPMM07M_004, which contains function module exit EXIT_SAPMM07M_004 to classify user-defined characteristics automatically during goods movements in Inventory Management. This is only possible for characteristics which are not assigned values during quality inspection. Requirements 1. The class of the batch to be classified must be known.  This means that a class must be assigned either to the material or at least to one batch of this material. 2. The exit call must be activated for the respective movement type in activity Activate batch classification during goods movements in IM using indicator 'Extended classification' . Open tcode OMC...

IT Asset Management Dengan PHP MySQL

Pada postingan kali saya akan share sebuah aplikasi IT Asset management yang fungsinya untuk memonitoring semua Asset khusus IT, contohnya : Laptop/komputer , Printer, Router, Hardisk, dll. Dalam aplkasi ini kita bisa mengetahui Asset IT posisinya dimana dan digunakan oleh siapa. untuk data-data yang dibutuhkan antara lain : 1. data kategori asset dalam menu ini kita bisa meng-input jenis2 kategory asset : tambah kategori asset : 2. data department 3. data karyawan 4. data department per karyawan 5. data asset location  6. data satuan asset dan untuk transaksi yang ada dalam aplikasi ini adalah,  1. create asset, pada menu create asset ini kita akan mengalokasikan sebuah asset ke karyawan/personnel tampilannya seperti berikut: setelah klik tombol save akan muncul seperti dibawah : untuk melihat detail asset yang sudah dibuat tadi, kita bisa pilih...