Senin, 05 Oktober 2009

Pengenalan ABAP - Bahasa Pemrograman Sistem SAP

Bahasa pemrograman ABAP adalah bahasa pemrograman yang khusus digunakan untuk
membuat report, form, program, modifikasi-modifikasi (customizing) serta
membangun sistem SAP R/3. SAP R/3 sendiri merupakan salah satu dari sistem ERP
(Enterprise Resource Planning) yang dikeluarkan oleh SAP dan paling banyak
digunakan di dunia, Sebagai salah satu penyedia solusi aplikasi bisnis bagi
perusahaan-perusahaan di dunia, SAP juga mengeluarkan produk-produk lain seperti
BW(Business Warehouse) dan CRM (Customer Relationship Management) yang juga
menggunakan ABAP untuk membangun sistemnya.
Pada awalnya, nama ABAP diambil dari bahasa Jerman Allgemeniner Berichts
Aufbereitungs Prozessor yang dalam bahasa Inggris berarti general report
preparation processor. Sesuai dengan namanya, ABAP dulu diperuntukkan untuk
membuat report (reporting). Pada akhirnya, bahasa ini terus berkembang menjadi
suatu application development tool dengan berbagai fitur. Namanya pun berubah
menjadi Advanced Business Application Programming.

Sebuah program ABAP sederhana memiliki struktur logic program sebagai berikut :

- Declaration Part for Global Data
Bagian ini berisi semua deklarasi tipe data dan data global yang akan digunakan
di seluruh program. Ini adalah bagian awal dari suatu ABAP program.
Apabila program memerlukan selection-screen, maka deklarasi selection-screen
tersebut juga berada di bagian ini. Selection-screen merupakan bagian dari
dialog modules yang bertujuan untuk memfasilitasi kebutuhan interaksi antara
program dengan user. Sebagai contoh, sebuah program upload data menggunakan
selection-screen yang dipergunakan untuk menerima input berupa nama file data
input.
Selection-screen merupakan bagian dari dialog modules yang di-generate melalui
ABAP statements di dalam processing logic, tanpa menggunakan Screen-Painter.
Screen Painter adalah salah satu modul yang digunakan untuk membuat screen,
yaitu salah satu dialog modules dengan struktur yang lebih bervariasi dan lebih
kompleks daripada selection-screen.

Apabila program menggunakan local class, maka bagian ini juga merupakan tempat
mendefinisikan semua definisi local class. Class merupakan bagian dari ABAP
Object, yaitu suatu perluasan dari ABAP yang menggunakan konsep Object Oriented.
- Processing Blocks
Di sinilah logik program dimulai. Bagian ini berisi semua processing block yang
digunakan dalam program, misalnya statement, event blocks, procedures dan dialog
modules. Processing blocks biasanya diawali dengan event START-OF-SELECTION dan
diakhiri dengan event END-OF-SELECTION.
Procedure terdiri dari subroutines dan function modules. Subroutines merupakan
prosedur yang dideklarasikan di dalam program dan hanya dapat dipanggil dari
dalam program itu sendiri ( kecuali subroutine yang termasuk ke dalam suatu
subroutine pools ). Function modules merupakan prosedur yang dibuat melalui
Function Builder dan dapat dipanggil oleh berbagai program ABAP. Setiap prosedur
dapat mempunyai data local sendiri yang hanya dapat dipergunakan di dalam
prosedur tersebut, di luar data global yang sebelumnya dideklarasikan di bagian
awal program.
Sebuah ABAP program terdiri dari comments dan statements. Comments merupakan
kalimat yang ditulis user yang bukan merupakan bagian dari program. Apabila
ditulis di awal baris, maka comments diawali dengan tanda *. Sedangkan apabila
posisinya berada di tengah-tengah baris, maka comments diawali dengan tanda ".
Statements ABAP selalu diakhiri dengan tanda titik ( . ). Satu baris program
dapat terdiri dari beberapa statements. Sebaliknya, suatu statements juga dapat
terdiri dari beberapa baris.
Program ABAP mempunyai aturan penamaan yang unik. Untuk membedakan program
buatan developer dengan program-program standar yang disediakan oleh sistem SAP,
maka program-program tersebut harus diawali dengan huruf `Y' atau `Z'. Hal yang
sama berlaku untuk beberapa modifikasi, seperti penambahan tipe data structure
pada structure standar SAP. Dengan demikian, maka perubahan-perubahan dan
penambahan-penambahan tersebut akan terus terbawa setelah sistem di-upgrade.
Ada beberapa tipe program ABAP. Salah satunya adalah executable program yang
dapat langsung dijalankan tanpa harus membuat screen baru. Executable program
sering digunakan untuk keperluan reporting karena karakteristiknya ditujukan
untuk mengambil data, mengolahnya, lalu menampilkan informasi hasil pengolahan
data tersebut. Karena itulah, executable program juga disebut sebagai report.
Contoh sebuah report sederhana dalam bahasa ABAP adalah sebagai berikut :

REPORT zprintcharexample
NO STANDARD PAGE HEADING
MESSAGE-ID sabapdocu.

*-----------------------------------------------------------------------
* Data and Selection-Screen Declaration
* ----------------------------------------------------------------------
DATA : d_idx TYPE i,
d_msg(30) TYPE c.

SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME.
PARAMETERS:
p_str(12) TYPE c.
SELECTION-SCREEN END OF BLOCK block1.


INITIALIZATION.
d_msg = 'Only accept characters'.
p_str = 'Hello world!'.
*-----------------------------------------------------------------------
* Start-of-selection
* ----------------------------------------------------------------------
START-OF-SELECTION.

PERFORM f_check_not_num.
WRITE : / p_str.

END-OF-SELECTION.

*-----------------------------------------------------------------------
* Events
* ----------------------------------------------------------------------
AT SELECTION-SCREEN OUTPUT.

PERFORM f_check_not_num.

*-----------------------------------------------------------------------
* Subroutines
* ----------------------------------------------------------------------
FORM f_check_not_num.

IF NOT p_str IS INITIAL.
d_idx = 0.
DO 11 TIMES.
CASE p_str+d_idx(1).
WHEN '0' OR '1' OR '2' OR '3' OR '4' OR
'5' OR '6' OR '6' OR '7' OR '8' OR '9'.
MESSAGE ID 'SABAPDOCU' TYPE 'I' NUMBER '888' WITH d_msg.
CLEAR p_str.
EXIT.
WHEN OTHERS.
ADD 1 TO d_idx.
ENDCASE.
ENDDO.
ENDIF.


ENDFORM.

Program di atas menerima input berupa karakter lalu menampilkannya di output
yang disebut list. Apabila parameter p_str dibiarkan kosong pada saat program
dieksekusi, maka parameter tersebut akan diisi dengan kalimat "Hello World!".
Program tersebut diawali dengan deklarasi data global ( d_checknum ) dan
selection-screen, lalu diikuti dengan event START-OF-SELECTION yang menandai
awal processing block. Selanjutnya, setiap kali event AT SELECTION-SCREEN OUTPUT
di-trigger oleh runtime environment, maka program menjalankan subroutine
f_check_not_num untuk memeriksa apakah parameter p_str diisi dengan angka atau
bukan. Event AT SELECTION-SCREEN OUTPUT akan di-trigger setiap kali program akan
menampilkan selection-screen, misalnya, pada program ini, setelah user menekan
tombol enter.
Apabila contoh di atas dijalankan, maka hasilnya adalah sebagai berikut :


Tipe-tipe program yang lain adalah include program, function group, module pool,
subroutine pool, interface pool, dan class pool. Masing-masing mempunyai
karakteristik dan fungsinya sendiri dan digunakan dalam program-program ABAP
yang lebih kompleks.
Syntax ABAP tidak lebih sulit dibandingan dengan syntax bahasa-bahasa
pemrograman yang lain, seperti Java atau C. Walaupun demikian, ABAP juga
mempunyai struktur dan karakteristik yang agak berbeda dengan bahasa lain,
seperti konsep dynpro dalam dialog modules, logical database, cluster, dan
sebagainya yang membuatnya memiliki kompleksitasnya sendiri.
Salah satu bahan pertimbangan bagi perusahaan yang berminat mengimplementasikan
SAP adalah biayanya yang cukup mahal, baik dari sisi tenaga kerja, maupun dari
sisi aplikasi itu sendiri beserta license-nya. Untuk itu, ABAP mempunyai
fasilitas yang berfungsi untuk menghubungkan aplikasi SAP dengan system lain
yang menggunakan bahasa pemrograman yang berbeda, misalnya RFC ( Remote Function
Call ), ABAP Proxy dan SAP Java Connector. Hal ini memungkinkan aplikasi SAP
untuk dapat berhubungan dengan aplikasi lain, misalnya dengan aplikasi yang
dibangun dengan bahasa Visual Basic atau Java, atau mengeksekusi prosedur PL/SQL
di database Oracle dengan native SQL. Dengan demikian, perusahaan dapat
mengambil fitur-fitur dari aplikasi SAP yang paling diperlukan untuk
diimplementasikan, kemudian menghubungkannya dengan aplikasi lain yang lebih
murah sehingga dapat menekan biaya secara keseluruhan.
Di Indonesia, banyak perusahaan besar dan menengah telah menjadi pelanggan SAP,
sehingga dibutuhkan tenaga-tenaga kerja yang menguasai bahasa ini. Saat ini, SAP
telah menyiapkan produk baru yang diperuntukkan bagi perusahaan kelas menengah
ke bawah. Hal ini diharapkan akan menambah pelanggan SAP dan pada akhirnya akan
membuka peluang tenaga kerja IT di Indonesia. Bagi para pekerja Teknologi
Informasi yang berminat untuk memasuki dunia SAP,maka pengetahuan mengenai
bahasa ABAP merupakan salah satu modal yang patut untuk dipertimbangkan.

Tidak ada komentar:

Posting Komentar