Jumat, 09 November 2012

Struktur PROCEDURE DIVISION Pada COBOL

PROCEDURE DIVISION

Merupakan inti dari pemrograman COBOL. Statement yang ada pada PROCEDURE DIVISION
dibentuk dari verb, diantaranya : MOVE, DISPLAY, ACCEPT, dan STOP.
 
1. MOVE verb
Digunakan untuk memindahkan data dari satu field ke lokasi field yang lain, sehingga input data dapat dimanipulasi untuk menghasilkan output.
Bentuk umum :

MOVE nama-data-1 TO nama-data-2 [ , nama-data-3 ] …
             literal

Bentuk khusus dari MOVE adalah MOVE CORRESPONDING, yang berguna untuk memindahkan data dari group data item ke group lain.
Bentuk umum :

MOVE CORRESPONDING nama-data-1 TO nama-data-2
 
2. DISPLAY verb
Digunakan untuk menampilkan hasil dilayar ataupun printer. Jika dipergunakan statement WRITE untuk menampilkan hasil di printer, maka print-file harus disebutkan terlebih dahulu di ENVIRONMENT DIVISION pada FILE-CONTROL. Ada 3 bentuk statement DISPLAY:
  • Bentuk 1
    DISPLAY nama-layar
  • Bentuk 2
    DISPLAY nama-data , nama-data .. UPON nama-mnemonic
                      literal        ,  literal
  • Bentuk 3
                                                  nama-data
    DISPLAY (posisi tampilan) literal …    UPON nama-mnemonic
                                                  ERASE
3. ACCEPT verb
Digunakan untuk memasukkan data lewat layar sewaktu program tersebut dijalankan (runtime). Ada 4 bentuk statement ACCEPT :
  • Bentuk 1
    BU : ACCEPT nama-data
    Data yang dimasukkan akan ditempatkan pada nama-data setelah ACCEPT, yang bentuk, jenis dan panjangnya sudah ditentukan dalam DATA DIVISION.
  • Bentuk 2
    BU : ACCEPT nama-layar [ ON ESCAPE statement-imperative ]
    Digunakan untuk menerima data dan mengirimkan data tersebut ke (TO) atau menggunakan (USING) field data item yang disebutkan pada nama-layar di SCREEN SECTION dalam DATA DIVISION.
  • Bentuk 3
    BU :                                                 ZERO - FILL
                                                            SPACE - FILL
                                                            LEFT - JUSTIFY
                                                            RIGHT - JUDTIFY
                                                            TRAILING - SIGN
    ACCEPT (posisi layar) nama data WITH PROMPT
                                                            UPDATE
                                                            LENGTH - CHECK
                                                            EMPTY – CHECK
                                                            AUTO – SKIP
                                                            NO – ECHO
                                                            BEEP

    1. ZERO-FILL phrase menyebabkan bila posisi-posisi field data-item penerima data tidak di isi dengan data (langsung menekan enter ) akan terisis dengan nol.
    2. SPACE-FILL phrase menyababkan bila posisi-posisi fieldd data-item dilayar tidak di isi dengan data (langsung menekan enter) akan terisi blank pada layar tetapi field data-item penerima tetap berisi nilai nol atau nilai sebelumnya, biasanya untuk jenis data numerik.
    3. LEFT-JUSTIFY phrase tidak berfungsi pada MS COBOL, tetapi boleh ditulis
    4. RIGHT-JUSTIFY phrase menyebabkan setelah data dimasukkan, hasil akhir yang tampak dilayar akan rata sebelah kanan. Digunakan untuk jenis data-item alphabetik atau alphanumerik.
    5. TRAILING-SIGN phrase menyebabkan tanda operasi + atau – tampak diposisi paling kanan dari field data input.
    6. PROMPT phrase menyebabkan tampilan untuk field data-item penerima berbentuk nol untuk posisi digit, titik untuk desimal point dan spasi untuk tanda operasi + (plus) atau – (minus).
    7. UPDATE phrase menyebabkan tampilan utuk field data-item penerima berbentuk nilai awal dari field penerima tersebut.
    8. LENGTH-CHECK phrase menyebabkan penekanan tombol carriage return tidak berfungsi kalau semua posisi field penerima belum terisi semua.
    9. EMPTY-CHECK phrase menyebabkan penekanan tombol carriage return tidak berfungsi jika tidak paling sedikit sebuah karakter atau angka yang bukan sifatnya terminator sudah di input.
    10. AUTO-SKIP phrase menyebabkan proses pemasukan data bergeser ke field penerima data lain berikutnya, bila posisi field penerima sudah penuh terisi tanpa harus menekan tombol carriage return atau tombol terminator yang lainnya.
    11. NO-ECHO phrase menyebabkan data yang dimasukkan tidak tampak dilayar.
    12. BEEP phrase menyebabkan bunyi bel sewaktu data di input.
  • Bentuk 4
    bu : ACCEPT nama-data FROM DATE
                                             DAY
                                             TIME
                                             ESCAPE-KEY

    1. DATE, akan mendapatkan 6 digit nilai standard dengan bentuk YYMMDD, diambil langsung dari “system-date”.(2 digit tahun, 2 digit bulan, 2 digit tanggal)
    2. DAY, akan mendapatkan 5 digit nilai “julian date” dengan bentuk YYDDD ( 2 digit tahun, 3 digit jumlah hari untuk tanggal tersebut)
    3. TIME, akan mendapatkan 8 digit nilai dengan bentuk JJMMDDSS ( 2 digit jam 00-23, 2 digit menit 00-59, 2 digit detik 00-59, 2 digit seperseratus detik 00-99).
    4. ESCAPE-KEY, akan mendapatkan 2 digit kode yang dihasilkan dari penekanan tombol-tombol terminator. yaitu : Backtab = 99, Escape = 01, Carriage-return = 00, Function key 1 – 10 = 02 – 11.
4. STOP VERB
Digunakan untuk menghentikan program baik secara permanen maupun sementara.
BU :    STOP literal
                      RUN

STOP literal, akan menyebabkan proses program terhenti sementara dan literal akan ditampilkan dilayar. Jika operator menekan sembarang tombol maka program akan dilanjutkan mulai statement setelah STOP literal tersebut.
STOP RUN, akan menyebabkan program berhenti secara permanen.

5. ADD Verb
Digunakan untuk menambahkan 2 atau lebih operand numerik dan menyimpan hasilnya.
BU-1:
ADD nama-data-1, nama-data-2 … TO nama-data-m [ROUNDED]
          literal-1         literal-2
                                            [; ON SIZE ERROR statement imperative]

BU-2:
ADD nama-data-1, nama-data-2 …GIVING nama-data-m [ROUNDED]
          literal-1         literal-2
                                            [; ON SIZE ERROR statement imperative]


Keterangan :
  1. TO digunakan bila beberapa nilai akan dijumlahkan dan hasilnya akan disimpan pada
    salah satu operand.
  2. GIVING digunakan bila beberapa nilai dijumlahkan dan hasilnya disimpan pada nama
    data yang lain.
  3. Field penerima harus merupakan nama data, bukan literal.
  4. Bentuk TO dan GIVING harus ada dan salah satu diantaranya, tidak boleh dipergunakan keduanya.
  5. Semua nama-data yang dipergunakan di dalam operasi aritmatika harus berbentuk data numerik dengan picture yang belum diedit kecuali operand dari field penerima.
  6. ROUNDED option digunakan bila diinginkan hasil perhitungan dibulatkan
  7. ON SIZE ERROR digunakan bila hasil perhitungan untuk digit-digit bilangan utuh (high order digits) tidak bisa masuk seluruhnya pada field penerima, nilai tidak akan disimpan di storsge dan program akan melanjutkan pada imperative statement yang mengikutinya.
6. SUBSTRACT Verb
Digunakan untuk operasi pengurangan suatu nilai data numerik.
BU :





7. MULTIPLY Verb
Digunakan untuk mengalikan 2 nilai numerik dan menyimpan hasilnya.
BU 1 :
      MULTIPLY nama-data-1 BY nama-data-2
                          literal-1

BU 2 :
      MULTIPLY nama-data-1 BY nama-data-2
                          literal-1               literal-2
                          GIVING nama-data-3 [ROUNDED]
                          [; ON SIZE ERROR imperative statement]

8. DIVIDE Verb
Digunakan untuk membentuk statement operasi pembagian.
BU 1 :
   DIVIDE    nama-data-1    INTO nama-data-2 [ROUNDED]
                     literal-1          [ ; ON SIZE ERROR imperative statement]

BU 2 :
   DIVIDE nama-data-1 INTO nama-data-2
                  literal-1                   literal-2
                  GIVING nama-data-3[ROUNDED]
                  [ ; ON SIZE ERROR imperative statement]

BU 3 :
   DIVIDE nama-data-1 BY nama-data-2
                  literal-1               literal-2
                  GIVING nama-data-3[ROUNDED]
                  [ ; ON SIZE ERROR imperative statement]

BU 4 :
   DIVIDE nama-data-1 INTO nama-data-2
                 literal-1                    literal-2
                 GIVING nama-data-3 [ROUNDED]
                 REMAINDER nama-data-4
                 [ ; ON SIZE ERROR imperative statement]

BU 5 :
    DIVIDE nama-data-1 BY nama-data-2
                   literal-1               literal-2
                   GIVING nama-data-3[ROUNDED]
                   REMAINDER nama-data-4
                   [ ; ON SIZE ERROR imperative statement]

9. COMPUTE
Digunakan untuk operasi yang lebih rumit, untuk menyederhanakan 4 arithmatic verb  sebelumnya.
BU :
     COMPUTE nama-data-1 [ROUNDED] = ungkapan aritmatika
                         [ ; ON SIZE ERROR imperative statement]

10. GO TO Verb
Digunakan untuk alih kontrol tanpa syarat ke paragraph tertentu.
BU :
          GO TO nama-paragraph
 
11. GO TO … DEPENDING Verb
Digunakan untuk alih kontrol bersyarat. Beralih pada paragraph tertentu dengan kondisi tertentu.
BU :
          GO TO nama-paragraph-1, nama-paragraph-2, … nama-paragraph-n
                     DEPENDING ON nama-data
 
12. ALTER Verb
Digunakan untuk merubah arah tujuan proses dari statement GO TO yang telah ada di program.
BU :
          ALTER nama-paragraph-1 TO [ PROCEED TO] nama-paragraph-2
 
13. PERFORM Verb
Digunakan untuk membuat suatu statement yang akan membawa proses dari program meloncat kesuatu paragraph, kemudian menjalankan seluruh statetement yang ada pada paragraph tersebut. Jika telah selesai akan kembali ke statement setelah PERFORM.
BU :
          PERFORM nama-paragrapg-1 THROUGH nama-paragraph-2
                                                            THRU
 
14.PERFORM ...THROUGH/THRU
Bentuk statement ini akan membawa proses menuju ke paragraf yang dituju kemudian melanjutkan sampai ke paragraf yang disebutkan setelah THROUGH/THRU.
Misal : 
 

0 komentar:

Posting Komentar