Please Wait, Loading...

Friday 8 April 2011

ABAP Programming I


Pengantar
Alhamdullilah, akhirnya dengan padatnya aktivitas keseharian, bisa menyempatkan untuk berlatih menulis kembali, pada kesempatan kali ini penulis akan menuliskan mengenai ABAP Programming, dalam tema ini memang tidak dipungkiri kalo kajiannya akan sangat panjang dan meluas, akan tetapi sedikit demi sedikit penulis akan memaparkan dengan pengetahuan yang penulis peroleh, semoga kajian mengenai ABAP Programming dapat bermanfaat bagi para pengunjung blog ini, terima kasih,

Definisi ABAP Programming

ABAP atau yang memiliki kepanjangan " Advanced Business Application Programming " adalah suatu software yang  pada intinya digunakan untuk membuat laporan umum. ABAP masuk dalam kategori bahasa tingkat tinggi dimana untuk sintaksnys menurut penulis mirip dengan bahasa COBOL. ABAP masuk golongan sebahai bahasa generasi ke-4 ( 4GLs ), dimana ABAP pertama kali dikembangkan pada tahun 1980-an.

ABAP sebagai salah satu bahasa yang pertama kali memasukan konsep Logic Database (LDBs), yang artinya adalah memberikan abstraksi tingkat tinggi dari database tingkat dasar. ABAP secara konten sangat berhubungan erat dengan SAP, dimana dengan maksud awalnya adalah digunakan untuk membuat suatu laporan umum, dengan pemrograman ABAP suatu laporan dan interface pengguna dapat dikembangkan.

Beberapa hal yang disimpulkan penulis dalam mempelajari pemrograman ABAP yaitu :
1. Memahami mengenai sintaks SQL / desain database relasional.
2. Memahami mengenai konsep Pemrograman Orientasi Object.
3. Pemrograman klien/server.

Operasional  ABAP Programming di System SAP

Mungkin sebelum menjalankan ABAP perlu diketahui pula bahwa keberadaan Program ABAP ada di dalam database SAP, program-program ini tidak disimpan dalam file yang terpisah layaknya Java atau C++ dan program lainnya.
Didalam database pengkodean ABAP terdiri dari dua bentuk yaitu :
1. Source kode, yang dapat diedit dengan alat  ABAP Workbench
Suatu ABAP Workbench berisi alat yang berbeda untuk program editing. Yang paling penting dari ini adalah (kode transaksi yang ditampilkan dalam tanda kurung) :
    a. ABAP Editor, untuk menulis dan mengedit laporan, kolam modul, termasuk dan kolam subroutine (SE38)
    b. ABAP Dictionary, untuk pengolahan tabel database definisi dan mengambil jenis global (SE11)
    c. Menu Painter, untuk merancang antarmuka pengguna (menu bar, toolbar standar, toolbar aplikasi, fungsi 
tugas kunci) (SE41)
    d. Screen Painter, untuk layar merancang dan logika aliran (SE51)
    e. Function Builder, untuk modul fungsi (SE37)
    f.  Class Builder, untuk kelas Objects ABAP dan interface (SE24)
    Suatu catatan disini  ABAP Workbench (SE80 transaksi) menyediakan antarmuka tunggal terintegrasi ke dalam berbagai alat.

2. Representasi biner yang agak sebanding dengan Java.

Operasional ABAP dikendalikan oleh sistem runtime, dimana sistem runtime ini merupakan bagian dari kernel SAP, yang memiliki tugas sebasgai berikut :
1. Running applications, Semua aplikasi ABAP berjalan pada prosesor perangkat lunak (mesin virtual) dalam komponen ini.



2. User and process administration, NetWeaver AS ABAP adalah perangkat multi-user dan setiap user dapat menjalankan beberapa program ABAP independent. Singkatnya, ini adalah komponen yang bertanggung jawab untuk tugas-tugas yang biasanya dimiliki oleh sistem operasi.
User yang masuk ke NetWeaver AS ABAP dapat menjalankan aplikasi yang ada. Dan dengan cara begini mereka tidak bersentuhan dengan system operasi yang sebenarnya. NetWeaver AS ABAP adalah satu-satunya pengguna dari sistem operasi utama.

 3. Database Access, Setiap NetWeaver AS ABAP terhubung ke database sistem, yang terdiri dari database management system (DBMS) dan database itu sendiri. ABAP aplikasi yang tidak berkomunikasi secara langsung dengan database. Sebaliknya, mereka menggunakan administration services.

 4. Comunication, ABAP aplikasi dapat berkomunikasi dengan baik dengan SAP Systems dan dan sistem eksternal lainnya.Hal ini memungkinkan untuk mengakses aplikasi dengan ABAP dari system diluar SAP menggunakan interface. Sevice ini dibutuhkan untuk komunikasi ke semua bagian dari kernel dan komponen administration services.

Sedangkan sistem runtime bertanggung jawab terhadap :
1. Memproses laporan ABAP
2. Mengendalikan aliran logika dan menanggapi event yang diprogramkan  (misal : kondisi klik pada layar), dalam hal ini dapat dilihat sebagai Mesin Virtual yang sebanding dengan Java VM.

Komponen utama dari sistem runtime ABAP adalah Database Interface, yang mengubah database-laporan independen ABAP ("Open SQL") ke dalam laporan yang dapat dipahami  oleh DBMS yang mendasarinya ("Native SQL").
Bagaimana dengan antarmuka databasenya, antarmuka databasenya disini bertugas  menangani semua komunikasi dengan database relasional yang mengatasnamakan program ABAP,  tetapi juga berisi fitur tambahan seperti buffering tabel dan sering diakses oleh data didalam memori lokal dari server aplikasi.

SAP

Environment Bahasa ABAP (termasuk generasi pemeriksa sintaks, kode dan sistem runtime) merupakan bagian dari  komponen Dasar SAP. Dasar SAP adalah sebuah platform yang mendukung seluruh aplikasi SAP. Artinya Dasar SAP dapat dilihat sebagai virtual machine yang menjalankan aplikasi SAP.

Seperti layaknya Sistem Operasi, Dasar dari SAP terdiri dari
1.  Pelayanan dari tingkat rendah (manajemen memori sebagai contoh komunikasi database atau permintaan Web servis).
2.  Perangkat tingkat tinggi bagi End User dan Administrator.

Komponen ini bisa di eksekusi (SAP Kernel) yang berjalan langsung di sistem operasi dasar, untuk transaksi dikembangkan di ABAP, atau antarmuka yang berbasis Web.

ABAP dan Sistem SAP......

Data SAP dan perangkat lunak SAP beroperasi di konteks sistem SAP. Sebuah sistem terdiri dari relational database yang terpusat dan satu sampel aplikasi server yang befungsi untuk mengkases data dan program dalam database. Sebuah sistem SAP berisi setidaknya satu sampel atau lebih, dengan alasan ukuran dan kinerjanya. Dengan sebuah sistem yang memiliki beberapa sampel, mekanisme load balancing diperlukan untuk memastikan pendistribusian  data yang merata dalam server aplikasi yang tersedia.

Dalam proses instalasi sistem dari Web Aplikasi server (SAP NetWeaver Application Server) pada umumnya terdiri dari tiga sistem :
1. sistem untuk pengembangan
2. sistem untuk pengujian dan QA (penjaminan kualitas)
3. sistem untuk produksi

Peran ABAP dalam sistem SAP terkait dengan sistem yang pertama yaitu sistem untuk pengembangan, yang kemudian akan distribusikan ke sistem yang lain. Proses ini berlangsung dibawah kendali CTS (Canges Transport System) yang bertanggung jawab sebagai :
1. Pengendali concurency sebagai contohnya melakukan pencegahan terhadap pengembangan dua kode yang sama dan dalam waktu yang sama.
2. Manajemen versi dan pendistribusian program pada QA dan sistem produksi

Web Application Server  (SAP NetWeaver Application Server)  terdiri dari tiga lapisan:
1. Lapisan basis data, lapisan database berisi basis data relasional dan perangkat lunak database.
2. Lapisan aplikasi, layer aplikasi berisi contoh atau contoh dari sistem. Semua proses aplikasi, termasuk transaksi bisnis dan pengembangan ABAP, berjalan pada lapisan aplikasi.
3. Lapisan presentasi, lapisan ini dapat berjalan pada mesin fisik yang sama atau pada mesin fisik yang berbeda. Lapisan presentasi menangani interaksi dengan pengguna sistem. Online akses ke server aplikasi ABAP bisa pergi melalui antarmuka grafis proprietary, yang disebut "SAP GUI", atau melalui browser Web.

Jenis-jenis Program ABAP

Seperti pada bahasa pemrograman lain, program ABAP adalah salah satu unit executable atau library, yang menyediakan kode dapat digunakan kembali untuk program lainnya dan tidak independen executable.

Dalam proses ekesekusinya ABAP membedakan dua jenis program, yaitu
1. Laporan
Laporan mengikuti model pemrograman yang relatif sederhana dimana pengguna dapat memilih dan menentukan satu input parameter (misalnya pilihan subset data) dan program kemudian menggunakan parameter input untuk menghasilkan laporan dalam bentuk daftar interaktif.
Istilah Laporan bisa agak menyesatkan, dalam laporan juga dapat dirancang untuk memodifikasi data; alasan mengapa program ini disebut laporan adalah "daftar berorientasi" yang outputnya adalah yang hasilkan oleh sistem.

2. Kumpulan Modul
Mendefinisikan pola yang lebih kompleks interaksi pengguna dalam menggunakan kumpulan screen. Suatu screen merujuk pada image yang sebenarnya, Setiap screen memiliki "logika aliran", yang mengacu pada kode ABAP implisit yang dipanggil oleh screen.
Masing-masing screen memiliki aliran logika sendiri-sendiri, yang terbagi menjadi "PBO" (Process Before Output) dan "PAI" (Process After Input).
Dalam dokumentasi SAP didefinisikan dengan "dynpro" (program yang dinamis) mengacu pada kombinasi sebuah screen dan aliran logika masing-masing screen.

Berikut adalah beberapa jenis program yang tidak dieksekusi :
  1. Modul Include
  tercakup saat generate kedalam unit yang dipanggil, hal ini sering digunakan untuk membagi program yang sangat besar.
  2. Kumpulan Subroutine
  berisi subrutin ABAP (blok kode tertutup oleh FORMULIR / laporan ENDFORM dan dijalankan dengan PERFORM).
  3. Kelompok Function
  adalah modul fungsi perpustakaan mandiri (tertutup oleh FUNGSI / ENDFUNCTION dan dijalankan dengan FUNGSI CALL).
  4. Objek Class dan Interfaces
 Objek kelas dan interface yang mirip dengan kelas Java dan interface, yang pertama mendefinisikan satu set metode dan atribut, yang berisi kedua "kosong"  definisi metode, yang setiap kelas yang mengimplementasikan antarmuka harus menyediakan kode eksplisit.
  5. Kumpulan Type
Definisi kumpulan disini adalah mendefinisikan tipe data dan konstanta.

Contoh SIntaks ABAP
1. Menampilkan Tulisan Bismillah Saya Akan Belajar ABAP SAP

 REPORT TEST.
WRITE 'Bismillah Saya Akan Belajar ABAP SAP'

Penjelasan sintaks :
Contoh diatas berisi dua hal:
a. Report dan Write.
b. Program ini menampilkan daftar di layar. Dalam hal ini, menampilkan teks "Bismillah Saya Akan Belajar ABAP SAP"
c. Pernyataan Report menunjukkan bahwa program ini adalah laporan. Sebuah pernyataan alternatif, PROGRAM, akan digunakan untuk kumpulan modul.

Beberapa aturan main dalam pengkodean ABAP :
a. Setiap pernyataan ABAP harus diakhiri dalam suatu periode.
b. Token dalam sebuah pernyataan harus dipisahkan dengan minimal satu spasi.
c. Sebuah akhir baris setara dengan spasi.
d. Pernyataan dan kata kunci tidak case-sensitive
e. Komentar didefinsikan sebagai berikut :
    - Sebuah tanda bintang (*) di kolom paling kiri baris membuat seluruh baris komentar
    - Sebuah tanda kutip ganda (") di manapun pada baris membuat sisa dari baris yang komentar

Contoh :
 ***************************************
 ** Program : Modul TS01 **
 ** Penulis  : Tri, Maret 2011 **
 ***************************************

 REPORT  Modul_TS01.

 SELECT * FROM TB_COMP
  WHERE PRICE = '20000'     "20000   = Harga batas bawah
  OR    PRICE = '100000'.       "100000 = Harga batas atas

*************************************************************************************************
Demikian kajian mengenai ABAP Programming I, Untuk ABAP Programming II akan di bahas dalam waktu yang sama, semoga bermanfaat...