DATA
DIVISION
DATA DIVISION :
merupakan divisi ke-3 di dalam COBOL yang memberikan penjelasan tentang
input data dan output yang digunakan. Data perlu dijelaskan bagaimana disimpan,
diorganisasikan, dan sifat dari data tersebut.
Isi dari divisi ini adalah semua keterangan tentang file,
record, nama-data serta bentuk format yang akan digunakan dalam PROCEDURE
DIVISION. Terdiri dari beberapa seksi, diantaranya yaitu FILE SECTION,
WORKING-STORAGE SECTION, dan SCREEN SECTION.
1. FILE
SECTION
Terdapat semua keterangan mengenai file-file yg dipakai dalam
program, meliputi nama-file, cara perekaman, jumlah record per block, jumlah
karakter per record, label serta nama dari record tersebut.
Bentuk umum:
DATA DIVISION.
FILE SECTION.
FD nama-file
[BLOCK CONTAINS [ interger-1 TO ] interger-2 {
CHARACTERS /RECORDS } ]
[RECORD CONTAINS [ interger-3 TO ] interger-4
CHARACTERS ]
LABEL {RECORD
IS/RECORDS ARE} {STANDARD/OMITTED}
[VALUE OF FILE-ID IS nama-file-di-label ]
[DATA {RECORD IS/RECORDS ARE} nama-rec1 [ , nama-rec2] ]
Keterangan :
Judul FD diikuti oleh nama-file nya harus sama dengan yang
disebutkan pada INPUT-OUTPUT SECTION dalam ENVIRONMENT DIVISION.
1.1 BLOCK
CONTAINS clause
Menunjukkan ukuran record di dalam file untuk tiap-tiap
blocknya. Clause ini biasanya digunakan untuk file yg berupa tape magnetik,
sifatnya optional. Bila tidak ditulis maka dianggap setiap block berisi 1
record dan penulisannya harus benar.
1.2 RECORD CONTAINS
clause
Menunjukkan banyaknya karakter untuk tiap-tiap record di dalam
file. Clause ini boleh tidak ditulis karena nantinya juga termasuk dalam record
description entry yang telah menunjukkan panjang dan bentuk dari
masing-masing data item. Jika ditulis dapat berguna untuk memudahkan pengerjaan
compile oleh komputer sehingga memperpendek waktu. Jika panjang record
tetap, maka panjang record ini ditunjukkan oleh nilai dari int1.
Bentuk umum:
[; RECORD CONTAINS [interger-3
TO] interger-4 CHARACTERS]
Keterangan:
Bila panjang record tetap ditunjukkan oleh nilai dari
interger-4. Bila variabel, maka nilai terkecil ditunjukkan oleh interger-3 dan
terbesar oleh interger-4. Panjang record variabel biasa terdapat pada file yang
diorganisasikan secara sequential.
1.3 LABEL
RECORD atau LABEL RECORDS clause
Menunjukkan apakah file yang digunakan mempunyai label atau
tidak.
Bentuk umum :
; LABEL RECORD IS STANDARD
RECORDS ARE
OMITTED
·
OMITTED digunakan untuk card-file atau print-file
yang tidak mempunyai label.
·
STANDARD digunakan untuk disk-file yg
mempunyai label.
Clause ini harus
ditulis jika FILE SECTION ada.
1.4 VALUE OF
FILE-ID clause
Menunjukkan informasi mengenai file yg mempunyai label di
disk. Label di disk ini berupa suatu nama-file yang berisi data yang direkam di
dalam disk tersebut. Jadi, jika suatu file berada di disk, harus disebutkan
LABEL RECORD IS STANDARD dan VALUE OF FILE-ID diikuti oleh nama-file nya.
Bentuk umum:
[;
VALUE OF FILE-ID IS nama-file dilabel]
Keterangan:
Nama-file dapat ditulis di antara tanda petik tunggal atau
dua. Nama-file ini berbeda dengan yang ada di judul FD dan SELECT clause.
Syarat nama-file di label pada MS-COBOL dapat dilihat pada buku manual DOS
komputer.
1.5 DATA
RECORD atau DATA RECORDS clause
Menunjukkan nama-record di dalam file, sifatnya optional
karena hanya sebagai dokumentasi saja dan sudah ditunjukkan pada record
description-entry.
Bentuk umum:
[; DATA RECORD IS
nama-record-1 [, nama-record-2] ]
RECORDS ARE
2.
WORKING-STORAGE SECTION
Section ini digunakan untuk pemesanan tempat di internal
memori (STORAGE) yang diperlukan oleh pekerjaan (WORKING) pada proses program.
Pemesanan tempat ini biasanya digunakan untuk :
1. Bentuk, nilai dan nama data yang diperlukan di dalam proses
yang belum disebutkan pada FILE-SECTION.
2. Persiapan penulisan judul. Format judul dipersiapkan
terlebih dahulu pada WORKING-STORAGE SECTION yang nantinya jika akan dicetak
atau ditampilkan pada PROCEDURE DIVISION menggunakan perintah WRITE atau
DISPLAY.
3. Pemesanan tempat untuk data output yang akan ditampilkan.
Secara garis besar, section ini mengandung 2 golongan data,
yaitu data item individu dan group data item (membentuk suatu record).
Bentuk umum :
WORKING-STORAGE SECTION.
[77-level data description entry]
[record description]
Keterangan :
Data item individu disebut juga noncontigous elementary items
atau stand-alone items, ditunjukkan oleh level number 77 (hanya ada pada
WORKING-STORAGE SECTION), penulisan mulai dari Area A. Sedangkan group data
item (yang membentuk suatu record) diawali oleh level number 01.
Contoh:
WORKING-STORAGE SECTION.
77 TOTAL PIC 9(5) VALUE 0.
77 GAJI-KYW PIC 9(7).
77 NMR-HLM PIC 999 VALUE ZERO.
77 GARIS PIC X(80) VALUE ALL ‘_‘.
Keterangan:
·
Terlihat bahwa ada pemesanan tempat di memori
(STORAGE) untuk data item individu. Data pertama yang dipesan TOTAL bentuknya
numerik (ditunjukkan oleh karakter PICTUREnya) sepanjang 5 digit yang nilai
awalnya dibuat nol, oleh VALUE clause.
·
Nomor 77 adalah level number untuk
data-description data item individu (harus nomor 77).
·
Pemesanan kedua untuk nama-data GAJI-KYW, juga
numerik sepanjang 7 digit tanpa nilai awal.
·
Pemesanan ketiga untuk nama-data NMR-HLM, juga
numerik sepanjang 3 digit bernilai awal nol (ZERO berarti sama dengan nol, figurative
constant).
·
Pemesanan keempat untuk nama-data GARIS,
berbentuk alphanumerik bernilai karakter ‘_’ sebanyak 80 karakter yang juga figurative
contant.
·
Level 77 ditulis di area A, yang memberitahukan
komputer bawa data item individu dipesankan tempat pada storage. Level ini
hanya untuk WORKING-STORAGE SECTION.
·
Nama dari data item dibuat sendiri oleh
programmer.
·
Ukuran dan bentuk nilai data ditunjukkan oleh
PICTURE clause atau PIC clause.
3. SCREEN SECTION
Section ini berguna untuk menunjukkan bentuk format dari layar
terminal untuk menampilkan atau memasukkan data. Data item yand digunakan bisa
berupa group data item atau data item individu dengan level number 01 sampai
dengan 49 yang sudah disebutkan pada FILE SECTION atau pada WORKING-STORAGE
SECTION.
Bentuk umum :
SCREEN SECTION.
Level-number [nama-layar]
[ BLANK SCREEN]
[ LINE NUMBER IS [PLUS] integer-1]
[ COLUMN NUMBER IS [PLUS] integer-2]
[ BLANK LINE]
[ BELL]
[ { UNDERLINE / REVERSE VIDEO / HIGHLIGHT /
BLINK }]
[ VALUE IS literal-1]
[ {PICTURE / PIC }is karakter-string
[{FROM/USING} {literal-2/nama-data-1}] TO nama-data-2]
[ BLANK WHEN ZERO]
[ AUTO]
[ SECURE]
[ REQUIRED]
[ FULL]
Keterangan :
SCREEN SECTION berhubungan dengan perintah DISPLAY dan ACCEPT
dalam PROCEDURE DIVISION. DISPLAY untuk menampilkan format yang telah dibentuk
di SCREEN SECTION pada layar terminal, sedangkan ACCEPT untuk memasukkan nilai
data-item pada layar terminal.
3.1 BLANK
SCREEN clause
Digunakan untuk menghapus semua teks pada layar dan
menempatkan cursor pada posisi kiri atas (baris1, kolom1).
Contoh :
IDENTIFICATION DIVISION.
PROGRAM – ID. PROGR.
AUTHOR. KELOMPOK6.
ENVIRONMENT DIVISION.
DATA DIVISION
SCREEN SECTION.
01 HAPUS-LAYAR.
02 BLANK SCREEN.
PROCEDURE DIVISION.
MEMBERSIHKAN-LAYAR.
DISPLAY HAPUS-LAYAR.
STOP RUN.
3.2 LINE
NUMBER PLUS int1
Digunakan untuk menempatkan cursor pada posisi baris tertentu
di layar.
Contoh :
02
LINE NUMBER 7 VALUE ‘INI DI BARIS 7’.
02
LINE PLUS 1 VALUE ‘INI DI BARIS 8’.
Keterangan:
Jika tidak disebutkan posisi barisnya, maka LINE PLUS 1 akan
ditampilkan bergeser 1 dari baris sebelumnya dan jika ingin bergeser sebanyak 3
baris maka ditulis LINE PLUS 3.
3.3 COLUMN
NUMBER PLUS int2
Digunakan untuk menempatkan cursor pd posisi kolom tertentu di
layar.
Contoh:
02
BLANK SCREEN
02
COLUMN 15 VALUE ‘KELAS 2KA27’
02
COLUMN PLUS 2 VALUE ‘SISTEM INFORMASI SALEMBA’
Keterangan:
Maka mulai pada kolom 15 akan ditampilkan literal ‘KELAS
2KA27’ dan mulai dari kolom 28 (15+11+2) pada baris yang sama ditampilkan
literal ‘SISTEM INFORMASI SALEMBA’.
3.4 BLANK LINE
clause
Digunakan untuk menghapus tampilan pada baris tertentu di
layar.
Contoh:
02
LINE 15 BLANK LINE.
Keterangan:
Baris 15 di layar akan dihapus
3.5 BELL
clause
Digunakan untuk menimbulkan suara
bel.
Contoh :
02
LINE 23 COLUMN 15 VALUE ‘SALAH PILIH!!’ BELL.
Keterangan:
Setelah menampilkan literal ‘SALAH PILIH!!’ pada baris 23
kolom 15 kemudian diikuti suara bel.
3.6 UNDERLINE,
REVERSE-VIDEO,HIGHLIGHT dan BLINK clause
Digunakan untuk menampilkan
dengan suatu efek tertentu pada tampilan.
·
UNDERLINE
clause digunakan untuk memberi garis
bawah pada tampilan.
·
REVERSE-VIDEO
clause digunakan untuk membalik warna
dari tampilannya, warna dasar menjadi warna tampilannya dan sebaliknya.
·
HIGHLIGHT
clause digunakan untuk menampilkan
tampilan dengan bentuk yang lebih terang.
·
BLINK clause digunakan untuk membuat kedap-kedip bentuk tampilan.
Contoh :
IDENTIFICATION DIVISION.
PROGRAM-ID. DATA-MAHASISWA.
AUTHOR. KELOMPOK6.
ENVIRONMENT DIVISION.
DATA DIVISION.
SCREEN DIVISION.
01 LAYAR-PILIHAN.
02 BLANK SCREEN.
02 LINE 1 COLUMN 20 VALUE ‘**PILIHAN
TRANSAKSI**’ BLINK.
02 LINE 3 COLUMN 20 VALUE ‘1. Saldo’.
HIGHLIGHT.
02 LINE 5 COLUMN 20 VALUE ‘2. History
Transaksi’. HIGHLIGHT.
02 LINE 7 COLUMN 20 VALUE ‘3. Transfer.
HIGHLIGHT.
02 LINE 9 COLUMN 20 VALUE ‘4. Pembayaran’.
HIGHLIGHT.
02 LINE 11 COLUMN 20 VALUE ‘5. Selesai’.
UNDERLINE.
02 LINE 14 COLUMN 20 VALUE ‘PILIH NOMOR (1 –
5) ?’ RESERVE-VIDEO.
PROCEDURE DIVISION.
MULAI.
DISPLAY LAYAR-PILIHAN.
STOP RUN.
Bila program dijalankan akan terdapat
tampilan sebagai berikut :
Ø
PILIHAN TRANSAKSI
1. Saldo
2. History Transaksi
3. Transfer
4. Pembayaran
5. SelPILIH NOMOR (1-5) ?
Kedap-kedip (blink)
Lebih terang (highlight)
Garis bawah (underline)
Warna dasar gelap (reserved-video)
3.7 BLANK WHEN
ZERO clause
Digunakan untuk menampilkan spasi (blank) bila suatu data
numeric mengandung nilai 0.
Contoh:
02
COLUMN 20 PIC 9(6) USING AWAL BLANK WHEN ZERO.
Keterangan:
Akan tampil karakter spasi (blank) karena adanya BLANKS WHEN
ZERO clause.
3.8 AUTO,
SECURE, REQUIRED dan FULL clause
Digunakan untuk memberikan efek tertentu pada awal memasukkan
nilai suatu data.
·
AUTO clause digunakan untuk membuat
pergeseran cursor secara otomatis ke field berikutnya, bila field data item
sudah penuh terisi. Bila tidak menggunakan clause ini, kalau akan menggeser ke
field berikutnya menggunakan ENTER.
Contoh:
05 COLUMN PLUS 1 PIC X(25) TO NAMA-MHS
AUTO.
·
SECURE clause digunakan untuk membuat
supaya suatu nilai data yang dimasukkan pada field data item tertentu tidak
tampak di layar sewaktu diketik. Akan ditampilkan karakter ‘*’. Clause ini
digunakan saat akan memasukka data yang sifatnya rahasia sehingga tidak akan
terlihat pada layar.
Contoh :
05 COLUMN PLUS 1 PIC X(10) TO PASS-MHS
SECURE.
·
REQUIRED
clause digunakan kalau suatu field data-item harus diisi oleh suatu
nilai, tidak boleh dilewati.
Contoh :
05 COLUMN PLUS 1 PIC X(20) TO PRODI-MHS
REQUIRED
·
FULL clause digunakan untuk suatu field data item yang diisi
dengan suatu data sampai penuh untuk tempat yang disediakan. Bila tidak diisi
atau belum penuh maka tidak bisa berpindah ke field lain
Contoh:
05 COLUMN PLUS 1 PIC 9(8) TO NPM-MHS FULL.
Contoh program:
1
IDENTIFICATION DIVISION.
2
PROGRAM-ID. MAHASISWA.
3
AUTHOR. KELOMPOK6.
4
ENVIRONMENT DIVISION.
5
INPUT-OUTPUT SECTION.
6
FILE CONTROL.
7
SELECT FILE-MHS ASSIGN TO DISK.
8
DATA DIVISION.
9
FILE SECTION.
10 FD
FILE-MHS
11
LABEL RECORD IS STANDARD
12
VALUE OF FILE-ID IS “MAHASISWA.DAT”.
13 01
RECORD-MHS.
14 02
NPM-MHS PIC 9(8).
15 02
NAMA-MHS PIC X(25).
16 02
PRODI-MHS PIC X(20).
17 02
PASS-MHS PIC X(10).
18
WORKING-STORAGE SECTION.
19 01
BENAR-SALAH PIC X VALUE SPACE.
20 88
BENAR VALUE ‘Y’, ‘y’.
21 88
SALAH VALUE ‘T’,’t’.
22
SCREEN SECTION.
23 01
LAYAR-BETUL-SALAH.
24 06
LINE 20 COLUMN 10 VALUE ‘SUDAH BENAR (Y/T) ?’ HIGHLIGHT.
25 06
COLUMN PLUS 1 PIC X USING BENAR-SALAH.
26 01
LAYAR-ISIAN.
27 05
BLANK SCREEN.
28 05
LINE 8 COLUMN 10 VALUE ‘NPM :’.
29 05
COLUMN PLUS 1 PIC 9(8) TO NPM-MHS FULL.
30 05
LINE 10 COLUMN 10 VALUE ‘NAMA :’.
31 05
COLUMN PLUS 1 PIC X(25) TO NAMA-MHS AUTO.
32 05
LINE 12 COLUMN 10 VALUE ‘PRODI :’.
33 05
COLUMN PLUS 1 PIC X(20) TO PRODI-MHS REQUIRED.
34 05
LINE 14 COLUMN 10 VALUE ‘PASSWORD :’.
35 05
COLUMN PLUS 1 PIC X(10) TO PASS-MHS SECURE.
36
PROCEDURE DIVISION.
37
BUKA-FILE.
38
OPEN OUTPUT FILE-MHS.
39
TAMBAH-BARU.
40
DISPLAY LAYAR-ISIAN.
41
ACCEPT LAYAR-ISIAN.
42
DISPLAY LAYAR-BETUL-SALAH.
43 IF
SALAH
44 GO
TO TAMBAH-BARU.
45
WRITE RECORD-MHS.
46
CLOSE FILE-MHS.
47
STOP RUN.