Picture Clause, Picture Editing dan Struktur Procedure Division pada COBOL

PICTURE CLAUSE dan PICTURE EDITING
            PICTURE CLAUSE
Yang berguna untuk menjelaskan bentuk-bentuk data yang akan dimasukan dan output yang akan dikeluarkan nantinya.

1.       Picture Clause 9
                                Menunjukan posisi suatu memory rata kanan yang  hanya mengandung nilai-nilai
Bentuk pic                      panjang          contoh       diprosedur
02 Hutang pic 9(4)                4                 5678             5678
02 Gaji pic 9(5)                     5                 5678           05678
2.      Picture Clause V
 Menunjukan letak anggapan suatu titik decimal dan hanya boleh ada satu disetiap picture. Karena suatu nilai numeric tidak bisa mengandung lebih dari satu titik decimal.
Bentuk pic              panjang              contoh            diprosedure
02 pic 99V99                4                      89.70                  89^70
02 pic 9(3)V9(2)           5                     89.70               089^70
3.      Picture Clause A
 Digunakan untuk menyimpan nilai data huruf (alphabetic) dengan rata kiri.
Bentuk pic              panjang               contoh           diprosedure
02 pic A(6)                   6                     anda                 andabb
02 pic A(4)                   4                     anda                 anda
02 pic A(2)                   2                      anda                 an
4.      Picture Karakter X
Digunakan untuk menunjukan nilai alphanumeric pada field yang bersifat rata kiri.
Bentuk pic              panjang              contoh            diprosedure
02 Pic X(5)                   5                   E3467                  E3467
02 Pic X(5)                   5                   D67                      D67bb
02 Pic X(5)                   5                  A12345                A1234
5.      Picture Karakter P
                 Digunakan bersama dengan PICTURE karakter V untuk menimbulkan angka f / 0
  Contoh :
Misal : nilai data 5
PIC 9PPV berarti di prosedur 5ff^
Tanda ^ (caret) menunjukkan posisi dari letak anggapan titik desimal
Jumlah PIC 9PPV9(3) = 700.729

6.      Picture Karakter S
                Digunakan untuk menempatkan angka negatif pada lokasi field, sehingga komputer akan menyimpan tanda tsb. Karakter S tidak dihitung sebagai panjang field.
Jumlah PIC S9 = -5
PICTURE EDITING
                Berguna untuk mengubah data yang telah tersimpan distorage . dengan adanya picture editing ini output yang ditampilkan akan lebih muda dimengerti dan akan mempunyai susunan yang lebih baik disbanding data yang sebelumnya yang terdapat distorage.

·         Picture Editing Z
 Menghilangkan angka 0 dimuka agar tidak tampak pada pencetakan.
–          Pic Z(6)
Data sumber                        :  5678
Hasil sebelum diedit         :  005678
Hasil setelah diedit            :      5678
·         Picture Editing $
 Menambahkan karakter $ pada ujung kiri pada saat pencetakan.
–          Pic $Z(6)
Data sumber                        :  5678
Hasil sebelum edit             :  005678
Hasil setelah edit               :  $ 5678

·         Picture Editing “.”(Titik) Dan “,”(Koma)
(.) berfungsi untuk menunjukkan letak posisi koma pada bilangan decimal.
(,) berfungsi untuk memberi tanda koma, biasanya digunakan untuk mata uang.
·         Picture Editing “-“(Minus)
Menambah tanda minus pada posisi kiri saat pencetakan. Jika data yang diberikan negative, jika positif akan digantikan dengan blank
47594 = PIC -9(5) = 47594
·         Picture Editing “+”(Plus)
Jika data asli diberikan positif maka tampak positif diposisi paling kiri. Dan jika yang diberikan minus maka akan menghasilkan minus.
·         Picture Editing DB Atau CR
Menambahkan karakter DB atau CR pada posisi paling kanan bila data yang diberikan bernilai negative. Dan jika positif tidak akan tampak.
·         Picture Editing “*”(Asterik)
Untuk menggantikan angka 0 yang terdapat disebelah kiri.
–          Pic ******
Data sumber                        :  789
Hasil sebelum diedit         :  000789
Hasil setelah diedit            :  ***789

·         Picture EDITING 0 (NOL)
Untuk menyisipkan angka 0 dimana angka nol itu berada.
–          Pic ZZZZ0
data sumber                       :  3456
hasil edit                              :  34560

·         Picture Editing “/” (Slash)
Digunakan untuk menyisipkan karakter “/” pada posisi karakter “/” itu berada.
–          Pic  99/09/99
Data sumber                     : 20698
Hasil edit                           : 20/06/98

·         Picture Editing Karakter B.

7465B8578B8374 = 7465 8578 8374

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.

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.


Comments