Minggu, 09 Desember 2012

DATA DIVISION


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.

Tidak ada komentar:

Posting Komentar