Secara
keseluruhan pada intinya struktur program COBOL dibagi menjadi 4 bagian yang
disebut DIVISION*, yaitu :
1.
IDENTIFICATION DIVISION
2. ENVIRONMENT
DIVISION
3. DATA
DIVISION
4. PROCEDURE
DIVISION
1.1 IDENTIFICATION DIVISION
Tujuan dari IDENTIFICATION DIVISION adalah memberikan informasi mengenai
program yang dibuat.
Bentuk Umum dari IDENTIFICATION DIVISION :
IDENTIFICATION DIVISION .
PROGRAM-ID. nama program .
[ AUTHOR. nama programmer. ]
[ INSTALLATION. nama instalasi. ]
[ DATE-WRITTEN. tanggal program dibuat. ]
[ DATE-COMPILED. tanggal program dikompilasi.
]
[ SECURITY. sifat program. ]
Keterangan
membeca Bentuk Umum :
Garis Bawah =
Bentuk yang digaris bawahi harus ditulis
persis bila digunakan.
Tanda “[ ]” (bracket) =
Bentuk yang ada diantara tanda ini sifatnya
optional, boleh ditulis / tidak.
Huruf kecil =
nama yang dibentuk oleh programmer.
Jadi pada IDENTIFICATION DIVISION yang WAJIB ditulis :
IDENTIFICATION DIVISION.
PROGRAM-ID.
nama program.
*Catatan :
Penulisan semua divisi dan paragraphnya dimulai dari area A yaitu kolom 8
1.2 ENVIRONMENT DIVISION
Tujuan dari ENVIRONMENT DIVISION adalah memberikan informasi mengenai peralatan yang digunakan dalam program.
Divisi ini dibagi menjadi 2 section yaitu
CONFIGURATION SECTION dan INPUT-OUTPUT SECTION.
Bentuk Umum ENVIRONMENT DIVISION :
ENVIRONMENT DIVISION .
CONFIGURATION
SECTION .
[ SOURCE -COMPUTER . nama-komputer [ WITH
DEBUGGING MODEL .]
[ OBJECT-COMPUTER. nama-komputer. ]
SPECIAL – NAMES .
[ PRINTER IS nama-mnemonik ]
[ CURRENCY SIGN IS literal ]
[ DECIMAL – POINTS IS COMMA ] .
INPUT-OUTPUT SECTION.
FILE-CONTROL .
{ file control entry } .
1.2.1 CONFIGURATION SECTION
Segala informasi mengenai jenis
komputer yang digunakan dalam rangka pembuatan, pengkompilasian
dan pemrosesan program dijelaskan di seksi ini.
1.2.2 SOURCE
COMPUTER
Digunakan
untuk menunjukkan nama komputer yang digunakan dalam membuat dan mengkompilasi program.
Bila
clause WITH DEBUGGING MODE disertakan maka baris pada source program
yang mengandung karakter ‘D’ di kolom ke 7 bukan dianggap sebagai komentar,
Sebaliknya bila clause WITH DEBUGGING MODE tidak disertakan maka
statement yang mengandung karakter ‘D’ di kolom 7 dianggap sebagai
komentar.
1.2.3 OBJECT-COMPUTER
Sama seperti Source Computer, yang sifatnya sebagai dokumentasi
1.2.4 SPECIAL-NAMES
Bersifat optional, digunakan untuk membuat nama khususnya
menghubungkan nama –mnemonik
implementor dengan nama mnemonic yang dibuat programmer.
· PRINTER IS
Digunakan untuk menghubungkan
nama-mnemonik yang dibuat programmer dengan alat pencetak Printer.
· CURRENCY SIGN IS
Digunakan untuk menunjukkan tanda mata
uang. Bila tidak disebutkan maka Currency Sign adalah
$.
· DECIMAL POINT IS COMMA
Dalam COBOL titik desimal dituliskan
dengan bentuk karakter “.“ atau titik. Bila diinginkan bukan karakter titik
tetapi koma dapat ditulis DECIMAL POINT IS COMMA.
1.2.5 INPUT – OUTPUT SECTION
Seksi ini menerangkan peralatan yang digunakan untuk memproses file baik sebagai media peralatan input atau media peralatan output.
1.2.6 FILE-CONTROL
Bila akan dipergunakan file dengan media simpanan sekunder, maka
paragraph File-Control harus ditulis.
File-Control Entry bisa terdiri 3 bentuk, tergantung dari organisasi
file yang digunakan : Organisasi file
secara sequential, indexed, dan relative (dibahas pada bab berikutnya)
1.3 DATA DIVISION
Divisi ini
memberikan penjelasan tentang input data dan output yang dipergunakan. Isi dari
divisi ini adalah semua keterangan tentang file, record, nama-data, serta
bentuk format yang akan digunakan di Procedure
Division.
1.3.1 FILE SECTION
Digunakan
untuk menjelaskan file yang dipergunakan dalam program. File Section ini ada
bila dipergunakan file dalam bentuk simpanan sekunder yaitu disk atau printer
dan mempunyai hubungan dengan Input-Output Section dalam Environment Division.
Bentuk Umum :
1.3.3.1
FD
nama-file
Judul FD ditulis di area A dan diikuti
nama filenya yang harus sama dengan nama-file yang disebutkan di Input-Output
Section dalam Environment Division.
·
BLOCK
CONTAINS
Menunjukkan ukuran dari record di dalam
file untuk tiap blocknya. Clause ini digunakan pada file yang berupa tape
magnetik, sehingga clause ini tidak berfungsi pada COBOL tetapi boleh ditulis,
dan penulisannya harus benar.
·
RECORD
CONTAINS
Menunjukkan banyak karakter tiap-tiap record dalam file. Record Contains
clause ini bisa tidak ditulis, karena nantinya termasuk dalam record
description entry, tetapi jika ditulis dapat mempermudah pengerjaan kompilasi
oleh komputer.
·
LABEL
RECORD atau LABEL RECORDS
Bila File Section ada maka clause ini harus
ditulis. LABEL RECORD IS OMITTED digunakan untuk card-file (file yang berupa kartu
plong) atau print-file (berupa cetakan di printer) yang tidak mempunyai label.LABEL RECORD
IS STANDARD untuk disk-file (file yang disimpan di disk) yang mempunyai label.
·
VALUE OF FILE-ID
Menunjukkan informasi mengenai informasi
file yang mempunyai label di disk. Label di disk ini berupa suatu nama-file
yang berisi data yang direkammkan tersebut. Nama file di label dapat ditulis di
antara tanda petik tunggal atau petik ganda.
Contoh :
LABEL
RECORD IS STANDARD
VALUE
OF FILE-ID IS ‘RELASI.DAT’.
·
DATA
RECORD atau DATA RECORDS
Data Record atau Data Records clause
menunjukkan nama-record di dalam file. Clause ini bersifat optional, hanya sebagai
dokumentasi saja, boleh tidak ditulis karena nama record ini sudah ditunjukkan
pada record-description-entry.
·
LINAGE
Linage clause menunjukkan jumlah baris yang
akan dicetak perhalaman, jumlah dari baris kosong paling atas
( top margins ) dan jumlah dari baris kosong paling
bawah ( bottom margins ).
1.3.2 WORKING-STORAGE SECTION
Sifatnya
optional, ada bilamana diperlukan pemesanan tempat di internal memori yang
diperlukan oleh pekerjaan proses program.
Pemesanan tempat
biasanya digunakan untuk :
1. Data yang diperlukan oleh proses tetapi tidak
berhubungan dengan file.
Misalnya data yang dimasukkan lewat layar terminal, data yang
diterima dari lokasi storage
yang lain, atau data yang dihasilkan dari hasil perhitungan matematika.
2.
Persiapan penulisan judul yang nantinya di Procedure Division bila akan dicetak dapat dilakukan dengan statement Display atau Write.
3. Untuk
data output yang akan ditampilkan.
Bentuk Umum :
[ WORKING-STORAGE
SECTION ]
[ 77-level data description entry ]
[ record description ] ………….]
1.3.3 SCREEN SECTION
Seksi ini
berguna untuk menunjukkan bentuk format dari layar terminal untuk menampilkan
data atau memasukkan data.
Bentuk Umum :
1.3.3.1
FD
nama-file
Judul FD ditulis di area A dan diikuti
nama filenya yang harus sama dengan nama-file yang disebutkan di Input-Output
Section dalam Environment Division.
·
BLOCK
CONTAINS
Menunjukkan ukuran dari record di dalam
file untuk tiap blocknya. Clause ini digunakan pada file yang berupa tape
magnetik, sehingga clause ini tidak berfungsi pada COBOL tetapi boleh ditulis,
dan penulisannya harus benar.
·
RECORD
CONTAINS
Menunjukkan banyak karakter tiap-tiap record dalam file. Record Contains
clause ini bisa tidak ditulis, karena nantinya termasuk dalam record
description entry, tetapi jika ditulis dapat mempermudah pengerjaan kompilasi
oleh komputer.
·
LABEL
RECORD atau LABEL RECORDS
Bila File Section ada maka clause ini harus
ditulis. LABEL RECORD IS OMITTED digunakan untuk card-file (file yang berupa kartu
plong) atau print-file (berupa cetakan di printer) yang tidak mempunyai label.LABEL RECORD
IS STANDARD untuk disk-file (file yang disimpan di disk) yang mempunyai label.
·
VALUE OF FILE-ID
Menunjukkan informasi mengenai informasi
file yang mempunyai label di disk. Label di disk ini berupa suatu nama-file
yang berisi data yang direkammkan tersebut. Nama file di label dapat ditulis di
antara tanda petik tunggal atau petik ganda.
Contoh :
LABEL
RECORD IS STANDARD
VALUE
OF FILE-ID IS ‘RELASI.DAT’.
·
DATA
RECORD atau DATA RECORDS
Data Record atau Data Records clause
menunjukkan nama-record di dalam file. Clause ini bersifat optional, hanya sebagai
dokumentasi saja, boleh tidak ditulis karena nama record ini sudah ditunjukkan
pada record-description-entry.
·
LINAGE
Linage clause menunjukkan jumlah baris yang
akan dicetak perhalaman, jumlah dari baris kosong paling atas
( top margins ) dan jumlah dari baris kosong paling
bawah ( bottom margins ).
1.3.2 WORKING-STORAGE SECTION
Sifatnya
optional, ada bilamana diperlukan pemesanan tempat di internal memori yang
diperlukan oleh pekerjaan proses program.
Pemesanan tempat
biasanya digunakan untuk :
1. Data yang diperlukan oleh proses tetapi tidak
berhubungan dengan file.
Misalnya data yang dimasukkan lewat layar terminal, data yang
diterima dari lokasi storage
yang lain, atau data yang dihasilkan dari hasil perhitungan matematika.
2.
Persiapan penulisan judul yang nantinya di Procedure Division bila akan dicetak dapat dilakukan dengan statement Display atau Write.
3. Untuk
data output yang akan ditampilkan.
Bentuk Umum :
[ WORKING-STORAGE
SECTION ]
[ 77-level data description entry ]
[ record description ] ………….]
1.3.3 SCREEN SECTION
Seksi ini
berguna untuk menunjukkan bentuk format dari layar terminal untuk menampilkan
data atau memasukkan data.
Bentuk Umum :
PICTURE karakter 9
Digunakan untuk data item yang
berbentuk numerik
PICTURE karakter V
Menunjukkan letak anggapan dari titik desimal
PICTURE karakter P
Digunakan bersama dengan PICTURE
karakter V untuk menimbulkan angka f
Contoh :
Misal : nilai data 5
PIC 9PPV berarti di prosedur 5ff^
Tanda ^ (caret) menunjukkan posisi dari letak
anggapan titik desimal
PICTURE karakter S
Digunakan untuk menempatkan angka
negatif pada lokasi field, sehingga
komputer akan menyimpan tanda tsb.
Karakter S tidak dihitung sebagai
panjang field.
PICTURE karakter A
Digunakan untuk menyimpan nilai
data huruf (alphabetik)
PICTURE karakter X
Digunakan untuk menyimpan gabungan
angka, huruf atau karakter khusus
(alphabetik)
1.3.3.8 PICTURE EDITING
Picture editing berguna untuk perubahan bentuk dari data yang
tersimpan di storage.
Dengan adanya perubahan data yang dicetak pada output akan tampak
lebih mudah dibaca, mudah dimengerti dan mempunyai susunan yang lebih baik
dibanding bentuk data asli yang ada di storage.
PICTURE editing karakter Z
Digunakan untuk mengganti angka f dimuka tidak tampak pada waktu
pencetakan
PICTURE editing karakter $
Dengan adanya tanda $, maka pada pencetakan, karakter $ akan tampak
PICTURE editing karakter “ . ” dan “ , ”
Karakter “
. ” digunakan untuk menunjukkan letak posisi dari titik desimal pada
Pencetakkan. Hanya sebuah karakter “ . ” yang boleh digunakan pada
PICTURE
editing
Karakter “
, ” berfungsi memberikan bentuk koma pada tempat – tempat tertentu
tanpa
merubah nilai datanya. Karakter “ , ” boleh digunakan lebih dari sekali
PICTURE editing karakter “ - “
(minus)
Jika
sebuah tanda minus dipakai pada permulaan atau pada karakter terakhir dari
PICTURE
editing, maka tanda minus akan tampak pada pencetakan bila data
aslinya
negatif. Jika data tidak negatif, tanda minus diganti dengan blank.
PICTURE editing karakter “ + “
Jika
sebuah tanda plus dipakai pada permulaan atau pada karakter terakhir dari
PICTURE
editing, maka tanda plus akan tampak pada hail edit bila data
aslinya
positif. Jika data negatif, yang akan tampak tanda minus. Untuk data
yang tidak
bertanda, dianggap bernilai positif.
PICTURE editing karakter DB dan CR
Pada
aplikasi akuntasi dibutuhkan keterangan nilai debit atau kredit. COBOL
menyediakan fasilitas ini dengan PICTURE editing karakter DB atau CR.
PICTURE editing karakter B
Digunakan
untuk mengedit nilai data bukan numerik. Karakter B akan
menyebabkan blank disisipkan pada posisi dimana karakter B tersebit
berada.
PICTURE editing karakter “ * “ (asterik)
Digunakan
untuk mengganti nilai 0 pada nilai data disebelah kanan dengan tanda
asterik
(*). Untuk maksud pencegahan terhadap penambahan angka yang tidak
diinginkan
di suatu nilai.
1.4 PROCEDURE
DIVISION
Procedure Division merupakan tempat
instruksi-instruksi dimana dilakukan prosedur pekerjaan proses dari input data
menjadi output data. Dengan kata lain divisi ini merupakan inti dari program
Cobol. Dan statement-statement yang ada di prosedur division dibentuk dari verb.
MOVE verb
MOVE verb adalah statement yang ada di
prosedur division yang digunakan
untuk memindahkan data dari satu field ke lokasi field yang lain, sehingga
input
data dapat dimanipulasi untuk menghasilkan output.
Bentuk Umum :