DEFINISI COBOL
COBOL atau Common Bussiness Oriented Language adalah bahasa
pemrograman komputer, yang dirancang untuk menyelesaikan persoalan
bisnis.
Perkembangan COBOL
Tahun 1958
Tahun 1960
Tahun 1968
Tahun 1974
Tahun 1985
IDENTIFICATION DIVISION
ENVIRONMENT DIVISION
DATA DIVISION
PROCEDURE DIVISION
Page
Page
Page
PROGRAM KOMPUTER
PROGRAMMER
Orang yang membuat program komputer
PROGRAMMING
Proses pembuatan program komputer
RECORD
FIELD
KARAKTER
Page
DATA FILE yaitu file yang berisi kumpulan klasifikasi data secara
keseluruhan.
Setiap file harus diberi nama supaya unik
file name
Syarat Syarat pemberian nama file :
1. Maksimum 30 karakter (AZ,az,09,-)
2. Minimum mengandung 1 huruf (alphabetik)
3. Tidak boleh mengandung
Special Karakter
Blank / Spasi
COBOL reserved Word
4. Tanda hypen (-) diletakkan ditengah tengah
nama. Tidak boleh diletakkan pada posisi awal atau akhir.
RECORD
Adalah kumpulan dari field atau data item yang berisi suatu informasi tertentu.
Kumpulan dari RECORD membentuk file
FIELD atau DATA ITEM
Adalah bagian terkecil dari record, yang merupakan kumpulan dari karakter
karakter yang membentuk sebuah informasi.
Data item dapat terdiri dari :
a. Numerik ( numeric) terdiri dari 0 s/d 9,+,b. Alphabetik (Alphabetic) terdiri dari A s/d Z, spasi
c. Alphanumerik (Alphanumeric) terdiri dari numerik dan alphanumerik.
Kumpulan data item tertentu membentuk record.
Page
IDENTIFICATION DIVISION.
ENVIRONMENT DIVISION.
DATA DIVISION.
PROCEDURE DIVISION.
Dari ke-4 divisi tersebut terdapat susunan hirarki :
Division.
Region.
Section.
Paragraph.
Sentence/Entry.
Statement/Clause.
Phrase/Option.
Page
Section
Suatu kumpulan dari paragraph atau entry.
Contoh : Configuration Section yang ada di ENVIRONTMENT
DIVISION
Paragraph
Suatu group dari kalimat (sentences) didalam
Procedure Division.
Page
Page
Nama Record
Untuk program COBOL, record harus diberi nama. Nama record pada DATA
RECORD dan digunakan pada statement WRITE dalam PROCEDURE
DIVISION.
Nama Data
Adalah nama yang dibuat untuk menunjukkan suatu data item yang
dipergunakan didalam program. Nama data ini dipergunakan hampir apda
semua statement dalam PROCEDURE DIVISION seperti MOVE,ADD,dsb.
Nama Index dan nama data index
Digunakan untuk data yang berbentuk tabel yang di-index.
Nama Kondisi
Adalah suatu nama data yang dihubungkan dengan suatu nilai tertentu. Nama
Kondisi didefinisikan dalam DATA DIVISION dengan level number 88.
Nama Procedure atau Nama paragraph
Adalah nama yang menunjukkan suatu paragraph dalam PROCEDURE
DIVISION.
Nama Seksi atau Section
Didalam PROCEDURE DIVISION dapat dibuat menjadi beberapa seksi, tiap
seksi dapat dibentuk dengan dimulai judul seksinya.
Nama Kualifikasi
Bila nama data atau nama kondisi tidak unik (ada yang sama satu dengan yang
lainnya), untuk menentukan yang mana akan digunakan dapat emnggunakan
Qualifier. Nama kualifikasi hanya dapat dipergunakan pada SCREEN
SECTION dalam DATA DIVISION atau dalam PROCEDURE DIVISION.
Page
Page
BENTUK DATA
Bentuk data dibedakan menjadi 2, yaitu :
1.
Data Variabel
2.
Literal Numerik
Aturan Penggunaan Literal Numerik :
1. Maksimum panjangnya 18 digit
2.
Boleh ada tanda plus pada posisi terkiri tanpa ada spasi dengan
angka pertama. Bila tanpa tanda maka dianggap bernilai positif.
3.
Boleh ada titik desimal dimana saja kecuali pada posisi terkanan.
Page
Figurative Constant
Termasuk dalam Cobol Reserved Word (kata yang telah dikenal oleh
kompiler).
Contoh : ZERO. Digunakan pada Procedure Division. MOVE ZERO TO
JUMLAH.
Artinya memberikan nilai 0 pada nama data JUMLAH.
OPERATOR ARITHMATIKA
Adalah simbol yang digunakan untuk membentuk suatu ungkaan
arithmatika,yaitu :
Operator arithmatika
**
*
/
+
-
Maksud
Pangkat
Kali
Bagi
Tambah
Kurang
jenjang
1
2
2
3
3
OPERATOR RELATIONAL
Maksud
Teknik Pemrograman Terstruktur 1 / S1-MI
Operational Relational
Page
<
>
=
NOT>
NOT<
NOT=
LESS THAN
GREATER THAN
EQUAL TO
NOT GREATER THAN
NOT LESS THAN
NOT EQUAL TO
UNGKAPAN ARITHMATIKA
Adalah Kombinasi dari literal numerik, nama-data, operator
arithmatika, kurung buka dan kurung tutup.
Penulisannya harus dipisahkan paling sedikit dengan sebuah blank
antara literal numerik, nama-data dan operator arithmatika.
Contoh:
Maksud
A+B
A+B
C+D
A2
( B + C )3
Penulisan
A+ B
( A+ B ) / ( C + D )
A* * 2 / ( B+ C) * * 3
Page
IDENTIFICATION DIVISION
IDENTIFICATION DIVISION adalah merupakan divisi yang pertama
dalam program COBOL dan yang paling sederhana. Pada divisi ini berisi
keterangan mengenai program yang dibuat.
Bentuk Umum :
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>.]
OPTIONAL
Page
DATE-COMPILED. 18-09-2004.
SECURITY. RAHASIA.
ENVIRONMENT DIVISION
ENVIRONMENT DIVISION dalam program cobol sebagai divisi ke-2.
Berisi dokumentasi informasi mengenai peralatan yang dipergunakan didalam
program. Divisi ini dibagi menjadi 2 section, yaitu CONFIGURATION
SECTION, INPUT-OUTPUT SECTION.
Bentuk Umum :
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-POINT IS COMMA ].
INPUT-OUTPUT SECTION.
FILE-CONTROL.
{file-control entry}.
Page
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. <nama komputer> [WITH DEBUGGING MODEL.
OBJECT-COMPUTER. <nama komputer>.
SPECIAL-NAMES.
[ PRINTER IS <nama mnemonik ]
Bentuk Umum
:
[ CURRENCY
SIGN IS <literal> ]
[ DECIMAL-POINT IS COMMA ].
Page
INPUT-OUTPUT SECTION.
FILE-CONTROL.
Teknik Pemrograman Terstruktur
1 / S1-MI entry}.
{File-Control
Page
RANDOM
DYNAMIC
RECORD KEY IS <nama-data 1>
FILE STATUS IS <nama-data 2>
Page
ACCESS MODE IS
FILE-STATUS IS <nm-data2>
Page
DATA DIVISION
Divisi ini menjelaskan tentang input & output data yg digunakan serta
semua keterangan ttg file, record, nama data serta bentuk format yg akan
digunakan dalam PROCEDURE DIVISION.
DATA DIVISION terdiri dari beberapa section :
FILE SECTION
WORKING-STORAGE SECTION
SCREEN SECTION
LINKAGE SECTION
REPORT SECTION
I.
FILE SECTION
Menerangkan tentang 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 [ int1 TO int2 ] { CHARACTERS/RECORDS } ]
[ RECORD CONTAINS [ int3 TO int4 ] 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] ]
Teknik Pemrograman Terstruktur 1 / S1-MI
Page
keterangan :
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.
RECORD CONTAINS clause
Menunjukkan banyaknya karakter untuk tiap-tiap record di dalam file.
Jika clause ini tidak ditulis, maka panjang record diambil dari record
description entry. Jika panjang record tetap, maka panjang record ini
ditunjukkan oleh nilai dari int1.
LABEL RECORD atau LABEL RECORDS clause
Menunjukkan apakah file yg dipergunakan mempunyai label atau tidak.
OMMITED digunakan untuk card-file atau print-file yang tidak
mempunyai file.
STANDARD digunakan untuk disk-file yg mempunyai label
Clause ini harus ditulis jika FILE SECTION ada.
VALUE OF FILE-ID clause
Berisi informasi mengenai file yg mempunyai label di disk. Label di
disk ini berupa suatu nama-file yg berisi data yg direkam di dalam disk
tsb.
DATA RECORD atau DATA RECORDS clause
Menunjukkan nama-record di dalam file, sifatnya optional.
II. WORKING-STORAGE SECTION
Section ini digunakan untuk pemesanan tempat di internal memori
(STORAGE) yg diperlukan pd proses program. Pemesanan tempat ini
biasanya digunakan untuk :
Page
WORKING-STORAGE SECTION.
[77 level data description entry
[ record description entry
]
]
Keterangan :
Data item individu ditunjukkan oleh level number 77 (hanya ada pd
WORKING-STORAGE SECTION), penulisan mulai dari Area A.
Group data item (yg membentuk suatu record) diawali dg level number 01
III. SCREEN SECTION
Section ini digunakan untuk menunjukkan bentuk format dari layar terminal
untuk menampilkan atau memasukkan data.
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 }]
[ VALUES IS literal-1]
[ {PICTURE / PIC }is karakter-string [FROM {literal-2/nama-data-1} / USING nama-data-2]
[ BLANK WHEN ZERO]
[ AUTO]
[ SECURE]
[ REQUIRED]
[ FULL]
Teknik Pemrograman Terstruktur 1 / S1-MI
Page
Keterangan :
BLANK SCREEN Clause
Digunakan untuk membersihkan layar dan menempatkan cursor pd
posisi kiri atas ( baris1, kolom1 )
Contoh :
IDENTIFICATION DIVISION.
PROGRAM ID. PROGR.
AUTHOR. RANI.
ENVIRONMENT DIVISION.
SCREEN SECTION.
01 HAPUS-LAYAR.
02 BLANK SCREEN.
PROCEDURE DIVISION.
MEMBERSIHKAN-LAYAR.
DISPLAY HAPUS-LAYAR.
STOP RUN.
LINE NUMBER IS PLUS int1
Digunakan untuk menempatkan cursor pd posisi baris tertentu di layar.
Contoh :
2
Page
Page
Contoh :
IDENTIFICATION DIVISION.
PROGRAM-ID. PILIHAN.
AUTHOR. NANI.
ENVIRONMENT DIVISION.
DATA DIVISION.
SCREEN DIVISION.
01 LAYAR-PILIHAN.
02 BLANK SCREEN.
02 LINE 2 COLUMN 25 VALUE <<PILIHAN>> UNDERLINE.
02 LINE 5 COLUMN 25 VALUE 1.MENAMBAH DATA.
02 LINE 7 COLUMN 25 VALUE 2.MENCETAK DATA .
02 LINE 9 COLUMN 25 VALUE 3. KOREKSI DATA HIGHLIGHT.
02 LINE 11 COLUMN 25 VALUE 4. SELESAI BLINK.
02 LINE 18 COLUMN 25 VALUE PILIH NOMER (1 4) ? RESERVE-VIDEO.
PROCEDURE DIVISION.
MULAI.
DISPLAY LAYAR-PILIHAN.
STOP RUN.
Page
Garis bawah
(underline)
1. MENAMBAH DATA
2. MENCETAK DATA
Lebih terang
3. KOREKSI DATA
(highlight)
Kedap-kedip
Kelap kelip
(blink)
4. SELESAI
Bolak balik dengan
Page
Page
LEVEL NUMBER
Level Number atau nomer jenjang adalah suatu nomor yang menunjukkan dari
data item dalam suatu record.
Level Number yang dipakai terdiri dari :
1. Level number 01 untuk mengawali keterangan dari record.
2. Level number 02 sampai dengan 49 digunakan untuk mengawali
keterangan dari data item boleh dipilih salah satu dari nomor level tersebut.
3. Level number 66 digunakan untuk RENAMES.
4. Level number 77 digunakan untuk mengawali data item yang berdiri
sendiri.
5. Level number 88 digunakan mengawali suatu nama kondisi.
LEVEL NUMBER: Adalah suatu nomer yang menunjukkan jenjang dari
data item dalam suatu record. Makin besar nomer levelnya, makin
rendah jenjang tingkatannya.
Level Number yang dipakai terdiri dari :
Level Number 01 untuk mengawali keterangan dari record.
Level number 02 49 digunakan untuk mengawali keterangan dari
Data Division.
Working-Storage Section.
01 Data-Masukkan.
02 Nama Pic A(10).
02 Gaji.
03 Gaji-Pokok Pic 9(6).
03 Tunjangan Pic 9(6).
Teknik Pemrograman Terstruktur 1 / S1-MI 02 Total-Gaji Pic 9(7).
Page
data item. Contoh :
01 Data-Masukkan.
02 Nama
Pic A(10).
02 Alamat
Pic X(15).
02 Kelas
Pic X(5).
66 Data-Pegawai Renames Nama thru Alamat.
Level number 77 untuk mengawali data item yang berdiri sendiri
Level number 88 untuk mengawali suatu nama kondisi
Contoh :
Data Division.
Working-Storage Section.
01 Data-Masukkan.
02 Tanya Pic A.
88 Lagi value is Y, y.
88 Tidak value is T, t.
77 Nama Pic A(20).
Page
IDENTIFICATION DIVISION.
PROGRAM-ID. LEVEL-NUMBER.
CONTOH
PROGRAM
PENGGUNAAN LEVEL NUMBER
ENVIRONMENT
DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 DATA-MASUKKAN.
02 NAMA PIC A(10).
02 GAJI.
03 GAJI-POKOK PIC 9(6).
03 TUNJANGAN PIC 9(6)
02 TOTAL-GAJI PIC 9(7).
02 TANYA PIC A.
88 LAGI VALUE IS Y, y.
88 TIDAK VALUE IS T, t.
SCREEN SECTION.
01 HAPUS-LAYAR.
49 BLANK SCREEN.
PROCEDURE DIVISION.
MULAI.
HAPUS-LAYAR.
DISPLAY (1, 1) NAMA ANDA
: .
ACCEPT NAMA.
DISPLAY(2, 1) GAJI POKOK
: Rp. .
ACCEPT GAJI-POKOK.
DISPLAY(3, 1) BESARNYA TUNJANGAN
: Rp. .
ACCEPT TUNJANGAN.
COMPUTE TOTAL-GAJI = GAJI-POKOK + TUNJANGAN.
DISPLAY HAPUS-LAYAR.
DISPLAY >>> GAJI ANDA UNTUK BULAN INI <<<.
DISPLAY .
DISPLAY N A M A
: , NAMA.
DISPLAY GAJI POKOK
: Rp. , GAJI-POKOK.
DISPLAY GAJI TUNJANGAN
: Rp. , TUNJANGAN.
DISPLAY TOTAL GAJI ANDA
: Rp. , TOTAL-GAJI.
SELESAI.
STOP RUN.
Page
PICTURE EDITING
Berfungsi untuk melakukan perubahan bentuk dari data yang
tersimpan (edit data) di dalam memori, sehingga data yang
tercetak nantinya akan lebih mudah dimengerti, dibaca, dan
mempunyai susunan yang lebih baik dari data aslinya.
Berlaku hanya untuk numerik, kecuali Picture editing karakter
B.
Jenis-jenis Picture Editing
Space
Jml Pic
Pic Z(6)
Data Sumber
5000
005000
5000
$Z(6)
Teknik Pemrograman Terstruktur 1 / S1-MI
Page
Data Sumber
5000
005000
$ 5000
Page
Data Sumber
400
000400
***400
Page
IDENTIFICATION DIVISION.
PROGRAM-ID. PICTURE-EDITING.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 DATA-SUMBER.
02 NAMA
PIC A(10).
02 TANGGAL PIC X(6).
02 HARGA
PIC 9(6).
02 BIAYA
PIC 9(6).
01 DATA-EDIT.
02 NAMA-OUT
PIC A(5)BA(5).
02 TANGGAL-OUT PIC XX/XX/XX.
02 HARGA-OUT
PIC $Z(6).
02 BIAYA-OUT
PIC ******.
SCREEN SECTION.
01 HAPUS-LAYAR.
02 BLANK SCREEN.
PROCEDURE DIVISION.
MULAI.
DISPLAY HAPUS-LAYAR.
DISPLAY (2, 1) NAMA ANDA : . ACCEPT NAMA.
MOVE NAMA TO NAMA-OUT.
DISPLAY (3, 1) TANGGAL
: . ACCEPT TANGGAL.
MOVE TANGGAL TO TANGGAL-OUT.
DISPLAY (4, 1) H A R G A
: . ACCEPT HARGA.
MOVE HARGA TO HARGA-OUT.
DISPLAY (5, 1) B I A Y A
: . ACCEPT BIAYA.
MOVE BIAYA TO BIAYA-OUT.
DISPLAY HAPUS-LAYAR. DISPLAY NAMA-OUT.
DISPLAY TANGGAL-OUT. DISPLAY HARGA-OUT.
DISPLAY BIAYA-OUT.
SELESAI.
STOP RUN.
Page
PICTURE CLAUSE
Digunakan untuk menjelaskan bentuk data yang akan dimasukkan,
tetapi juga untuk menampilkan bentuk data output.
Bentuk dari clause ini :
Picture
PIC
[isi] karakter
Picture karakter 9.
Menunjukkan posisi sebuah memory hanya dapat mengandung nilainilai numerik saja.
Bersifat rata kanan (right justified)
Contoh :
Bentuk PIC
Panjang
3
5
Contoh
Data
456
4250
Tersimpan di
memory
456
04250
Di prosedur
456
04250
Picture Karakter V.
Menunjukkan letak anggapan dari titik desimal.
Karakter ini hanya boleh ada satu dalam setiap picture.
Contoh :
Bentuk PIC
Panjang
5
7
Contoh
Data
234.50
12.345
Tersimpan di
memory
23450
0012345
Di prosedur
234^50
0012^345
Picture Karakter P
Digunakan dengan gabungan PICTURE karakter V, yang digunakan
untuk menimbulkan angka 0.
Page
Contoh :
Bentuk PIC
Panjang
1
2
Contoh
Data
3
15
Tersimpan di
memory
3
15
Di prosedur
Tersimpan di
memory
25
250
Di prosedur
Di prosedur
SAYA
300^
^00015
Picture Karakter S
Digunakan untuk menyimpan nilai data huruf.
Bersifat rata kiri (Left Justified)
Contoh :
Bentuk PIC
Panjang
2
3
Contoh
Data
-25
-25
25
250
Picture Karakter A
Digunakan untuk menyimpan nilai data huruf.
Bersifat rata kiri (left justified)
Contoh :
Bentuk PIC
Panjang
6
2
SAYANG
SAYA
SAYAbb
SA
Picture Karakter X
Menunjukkan posisi alphanumerik yang disimpan pada field.
Bersifat rata kiri ( Left justified )
Contoh :
Bentuk PIC
02 KODE PIC X(5)
07 KODE PIC X(5)
09 KODE PIC X(5)
Panjan
g
5
5
5
Contoh Data
D2343
C16
B78901
Tersimpan di
memory
D2343
C16BB
B7890
Di prosedur
D2343
C16BB
B7890
Page
DATA DIVISION I
Qualification
Qualifier untuk membedakan keunikan pada nama data , yang nantinya akan
tampak pada PROCEDURE DIVISION.Sehingga nama-data +yang telah
dipergunakan dapat dipergunakan lagi untuk nilai yang lain.
Bentuk Umumnya :
Nama data
OF
IN
nama record
Contoh :
Pada DATA DIVISION :
1
MASTER.
2
BARANG-A.
3
JUMLAH
03
HARGA-SATUAN
2
BARANG-B.
3
JUMLAH
03
HARGA-SATUAN
TRANSAKSI.
2
BARANG-A.
3
JUMLAH
03
HARGA-SATUAN
2
BARANG-B.
3
JUMLAH
03
HARGA-SATUAN
PIC 9(3).
PIC 9(5).
PIC9(3).
PIC 9(4).
PIC 9(3).
PIC 9(5).
PIC 9(3).
PIC 9(4).
Page
Page
Ket :Pada program diatas terdapat 2 record yaitu record PEMBELIAN dan
record PENJUALAN, direkamkan pada 1 file yaitu STOCK-FILE.
Nama Kondisi
Nama kondisi adalah nama yang dibuat oleh programmer yang berada
pada DATA DIVISION sebagai fasilitas proses di PROCEDURE
DIVISION.
Nama kondisi ditulis dimulai dengan level number 88.
Bentuk Umumnya :
VALUE IS
LITERAL 1 [LITERAL2]
88 NAMA KONDISI
THRUGH
CONTOH :
1
LIT2]
SEX PIC A.
88 LAKI
VALUE IS L.
88 WANITA VALUE IS W.
IF SEX = L GO TO PROSES-L.
IF SEX = W GO TO PROSES-W.
Dengan dipergunakannya nama-kondisi, bentuk penyeleksian dapat juga
langsung berupa :
IF LAKI GO TO PROSES-L.
IF WANITA GO TO PROSES-W.
Keterangan :
Nama Kondisi tidak mempunyai PICTURE, karena PICTUREnya mengikuti
elemen data yang diikutinya.Sehingga nilai literal yang dimasukkan ke namakondisi harus sesuai dengan field dan type data itemnya.
Page
Contoh :
02
STATUS
PIC X .
88
KAWIN VALUE 1.
88
BELUM VALUE 2.
02
STATUS
PIC X .
88
KAWIN VALUE 1.
88
BELUM VALUE 2.
VALUE Clause
Digunakan untuk memasukkan nilai awal pada storage.
Biasanya terdapat pada WORKING-STORAGE SECTION.
Bentuk Umum :
LITERAL
VALUE IS
Contoh Penggunaan Value Clause :
01
01
01
01
77
77
JUDUL
PIC A(15) VALUE PROGRAM COBOL.
FILLER
PIC X(15) VALUE SPACES.
TOTAL
PIC 9(5) VALUE ZERO.
KETERANGAN VALUE IS LUNAS PIC A(15).
COUNTER PIC 99 VALUE 0.
GARIS
PIC X(80) VALUE ALL -.
REDEFINES CLAUSE.
Digunakan untuk menempatkan nama data yang berlainan pada lokasi
storage yang sama. Dengan kata lain satu lokasi storage ditempati lebih
dari 1 nama data.
Page
Page
Renames Clause
Menyediakan programmer kemampuan untuk memberikan tambahan
deskripsi tentang penggolongan kembali elemen-elemen data item.
Dimulai dengan Level Number 66.
Contoh :
66
RECORD-A.
2
A
PIC A(2).
02
B
PIC 9(3).
02
C
PIC 9(4).
02
D
PIC X(2).
RECORD-B RENAMES B THROUGH C.
RECORD-B adalah posisi dari storage yang terdiri dari field B dan C,
yang juga dimiliki oleh RECORD-A
1
66
PERSEDIAAN.
2
JENIS.
3
NAMA
PIC C(8).
03
KODE
PIC X(3).
2
HARGA.
3
BELI
PIC 9(5)V99.
03
JUAL
PIC 9(5).
02
KETERANGAN
PIC X.
PERSEDIAAN-OUT RENAMES KODE THRU JUAL.
Keterangan :
1. RENAMES clause hanya dapat dipakai untuk elemen-elemen data item
yang berurutan.
2. RENAMES clause harus berada pada posisi paling akhir dari deskripsi
record ( record description).
3. Untuk MS-COBOL , RENAMES clause tidak tersedia.
Page
Picture
02 HASIL PIC ++++
02 HASIL-OUT PIC ++++ BLANK WHEN ZERO
Hasil output
+
blank
Bentuk Umumnya :
Page
SYNCHRONIZED
LEFT
Contoh :
1
RECORD-A.
2
FIELD-1
PIC X(4).
02
FIELD-2
PIC X(3).
02
FIELD-3
PIC X(5).
Statemen berikutnya :
MOVE AAAA TO FIELD-1
MOVE BBB TO FIELD-2
MOVE CCCCC TO FIELD-3.
OUTPUTNYA :
AAAABB
BCCCCC
1 WORD
1 WORD
Contoh pemakaian SYNC :
1
RECORD-A.
02 FIELD-1
02 FIELD-2
02 FIELD-3
OUTPUTNYA:
AAAA
BBB
CCCCC
USAGE Clause
Page
Bentuk Umum :
DISPLAY
COMPUTATIONAL
COMP
COMPUTATIONAL-3
CPM-3
INDEX
[USAGE IS]
Desimal
1
2
4
8
16
32
64
128
256
512
1024
Dst
Binary
1
10
100
1000
10000
100000
1000000
10000000
100000000
1000000000
10000000000
dst
COMPUTATIONAL-1.
Digunakan untuk menyimpan data numerik dalam bentuk mode
numerik floating point ketepatan tunggal. Bentuk ini jarang sekali
digunakan dan tidak tersedia pada MS-COBOL.
Page
COMPUTATIONAL-2.
COMPUTATIONAL-2, sama dengan bentuk COMPUTATIONAL-1
tetapi dengan ketepatan yang lebih kecil. Juiga jarang digunakan dan
tidak tersedia pada MS-COBOL.
COMPUTATIONAL-3.
Digunakan untuk menyimpan data numerik yang digitnya dalam
bentuk dipak(packed), yang maksudnya tiap byte tidak berisi dengan
1 digit tetapi dapat berisi 2 digit. Data numerik yang disimpan dalam
bentuk ini disebut dengan packed decimal atau internal decimal.
INDEX
USAGE IS INDEX menunjukkan bahwa data-item akan digunakan
sebagai indeks dan akan disimpan dalam bentuk kode binary seperti
pada USAGE IS COMPUTATIONAL-0. Kalau USAGE IS INDEX
dipergunakan, maka PICTURE clause tidak boleh digunakan.
SIGN clause
Digunakan untuk mengatur tanda operasi yang ada pada data numerik
untuk data-item external decimal ( dengan USAGE IS DISPLAY).
Clause ini digunakan hanya untuk data-item numerik yang mempunyai
PICTURE karakter S.
Bentuk Umum :
LEADING
[;
[SIGN IS]
[SEPARATE CHARACTER ] ]
TRAILING
Keterangan :
1. SIGN IS LEADING
Tanda operasi (+ atau - ) diletakkan pada posisi paling kiri tanpa adanya
posisi storage tambahan.
Contoh :
02 NILAI PIC S9(4) SIGN IS LEADING.
Page
Page
Bentuk:
[; OCCURS integer TIMES
ASCENDING
DESCENDING KEY IS nama-data-1 [, nama-data-2] .
INDEXED BY nama-index-1 [, nama-index-2].
- OCCURS clause tidak boleh digunakan pada level number 01 atau level
number 77. Digunakan pada FILE SECTION, WORKING-STORAGE
SECTION atau LINKAGE SECTION.
- Integer TIMES menunjukkan berapa kali data-item akan diulang
didalam suatu record.
- ASCENDING atau DESCENDING, menunjukkan bagaimana data
tersebut diatur tergantung dari nilainya, apakah urut dari kecil ke besar (
ASCENDING) atau dari besar ke kecil ( DESCENDING).
- KEY IS dan INDEXED BY menunjukkan nama kunci yang
dipergunakan pada statement SEARCH untuk mencari data yang ada di
tabel.
OCCURS clause digunakan untuk membentuk suatu tabel (table) atau
kumpulan (list) dari data-item atau larik (array).
Tabel (table)adalah sekumpulan nilai data yang membentuk suatu set.
Bentuk Tabel sbb :
1. Tabel beridmensi Satu ( one-dimensional table)
2. Tabel berdimensi dua ( two-dimensional table).
3. Tabel berdimensi Tiga (three-dimensional table).
Page
PROCEDURE DIVISION
Merupakan divisi ke 4 dan yang terakhir dari program COBOL. Semua
instruksi-instruksi ditulis pada PROCEDURE DIVISION, sehingga divisi ini
merupakan inti dari program COBOL.Statement yang ada di PROCEDURE
DIVISION dibentuk dari verb (Kata kerja).
MOVE verb
Adalah perintah yang penting didalam program COBOL. Verb ini berguna
untuk memindahkan data dari satu field ke lokasi field yang lain, sehingga
input data dapat dimanipulasi untuk menghasilkan output.
Bentuk dari statement MOVE :
Nama-data-1
MOVE
Contoh :
1
KIRIM.
2
UNIT
PIC 9(3).
02
HARGA
1
TERIMA.
2
UNIT-OUT
PIC 9(3).
02
HARGA-OUT
PIC 9(5).
PIC 9(7).
Page
Page
Alphanumerik
Bisa
Bisa
Bisa
Numerik integer
Tidak
Bisa
Bisa
Numerik non integer
Tidak
Tidak
Bisa
Numerik yang di-edit Tidak
Bisa
Tidak
Keterangan :
Bila data mengandung tanda + atau - , maka tanda tersebut akan
diabaikan.
DISPLAY verb
Dipergunakan untuk menampilkan hasil di layar ataupun di printer.
Ada 3 bentuk statement DISPLAY :
Bentuk Statement DISPLAY ke-1 :
DISPLAY nama-layar
Bentuk Statement DISPLAY ke-2 :
Nama data
DISPLAY
,nama-data
[UPON nama-mnemonik]
Literal
,literal
Nama data adalah nama
dari data item yang
telah disebutkan pada DATA
DIVISION, yang panjang nilai datanya tidak boleh lebih dari 1920
karakter.
Literal adalah bentuk yang akan ditampilkan, berupa bentuk yang sudah
tetap, terletak diantara tanda petik dua ( ) atau terletak di antara tanda
petik tunggal().
UPON Clause dipergunakan bilamana hasil tidak ingin ditampilkan di
layar, tetapi akan dicetak di printer.
Nama-mnemonik adalah nama yang dibentuk oleh programmer sebagai
penunjuk alat cetakan, yaitu printer.Nama-mnemonik ini harus sudah
disebutkan pada CONFIGURATION SECTION dalam SPECIAL
NAMES, PRINTER IS nama-mnemonik.
Bentuk Statement DISPLAY ke-3 :
Nama-data
DISPLAY
[posisi-tampilan] Literal
ERASE
[UPON nama-mnemonik]
Page
Page
ZERO FILL
SPACE FILL
LEFT JUSTIFY
RIGHT JUSTIFY
TRAILING SIGN
PROMPT
UPDATE
LENGTH CHECK
EMPTY CHECK
AUTO SKIP
NO ECHO
BEEP
ZERO-FILL phrase
Bila posisi-posisi field data-item penerima data tidak diisi dengan data
(langsung di tekan tombol RETURN), maka akan terisi dengan nilai nol.
SPACE FILL phrase
Bila posisi-posisi field data-item di layar tidak diisi dengan data (langsung
ditekan tombol RETURN), maka akan terisi dengan nilai nol.
LEFT-JUSTIFY phrase
Tidak berfungsi dalam MS-COBOL.
RIGHT-JUSTIFY phrase
Menyebabkan setelah data dimasukkan, hasil akhir yang tampak dilayar
akan rata di sebelah kanan.
TRAILING SIGN phrase
Page
Page
DATE
ACCEPT nama-data FROM
DAY
TIME
ESCAPE-KEY
Page
OUTPUT :
TANGGAL ADALAH: 860807
JULIAN ADALAH : 86219
JAM ADALAH
: 15305834
STOP verb
Digunakan untuk menghentikan program baik secara permanen maupun
secara sementara saja, yang kemudian proses program dapat dianjurkan
kembali.
Bentuknya :
STOP
Literal
RUN
Page
Page
STATEMENT ARITHMATIKA
Operasi Arithmatika pada COBOL dikerjakan dengan menggunakan
pernyataan :
ADD
Digunakan untuk menambahkan 2 atau lebih operand numerik dan
menyimpan hasilnya.
Suatu operand adalah suatu data item atau suatu literal numerik
(konstanta).Operand yang digunakan untuk verb ini harus berupa nilai
numerik.
Ada 2 Bentuk Umum dari Statemen ADD :
Bentuk ke-1 dari statement ADD :
ADD
Nama-data-1 nama-data-2
literal-1
literal-2 . TO nama-data-m [ROUNDED]
[; ON SIZE ERROR statement imperative]
CONTOH :
ADD A TO B
ADD 30, B TO A
ADD A, B TO C
B=B+A
A = A + 30 + B
C = C + A+ B
nama-data-2
nama-data-3
.GIVING nama-data-m [ROUNDED]
literal-2
literal-3
[;ON SIZE ERROR statement imperative]
Page
CONTOH :
ADD A, B GIVING C
ADD 4,5 GIVING A
C = A+ B
A= 4 + 5
SUBSTRACT VERB
Digunakan untuk membentuk statement operasi arithmatika pengurangan
suatu nilai operand numerik.
Bentuk umumnya :
Nama-data-1
SUBSTRACT
literal-1
FROM
nama-data-2
literal-2
Nama-data-n
literal-n
GIVING nama-data-m
B=B*A
Page
Nama-data-1
literal-1
nama-data-2
literal-2
BY
CONTOH :
MULTIPLY A BY D GIVING C
MULTIPLY A BY 25 GIVING C
C = A* D
C = A * 25
DIVIDE
Digunakan untuk membentuk statement operasi pembagian .
Bentuk Statemen DIVIDE yang ke-1 :
DIVIDE
Nama-data-1
literal-1
B=B/A
Nama-data-1
literal-1
INTO
nama-data-2
literal-2
C=B/A
Nama-data-1
literal-1
BY
nama-data-2
literal-2
Page
CONTOH :
DIVIDE A BY B GIVING C
DIVIDE 100 BY 50 GIVING Z
C = A/ B
Z=2
Nama-data-1
literal-1
INTO
nama-data-2
literal-2
Nama-data-1
literal-1
BY
nama-data-2
literal-2
COMPUTE
nama-data-1
ungkapan arithmatika
[ROUNDED]
Page
CONTOH :
MULTIPLY A BY D GIVING C
Y= A5
Y= A+ B
C
COMPUTE C = A * D
COMPUTE Y = A**5
COMPUTE Y = ( A + B ) / C
ROUNDED :
Untuk membulatkan hasil perhitungan yang berbentuk pecahan.
ON SIZE ERROR :
Digunakan jika hasil perhitungan untuk digit digit bilangan utuh tidak
bisa masuk seluruhnya pada field penerima.
OPERATOR ARITHMATIKA
Adalah simbol yang digunakan untuk membentuk suatu ungkapan
arithmatika,yaitu :
Operator arithmatika
**
*
/
+
-
Maksud
Pangkat
Kali
Bagi
Tambah
Kurang
jenjang
1
2
2
3
3
OPERATOR RELATIONAL
Maksud
Lebih kecil dari
Lebih besar dari
Sama dengan
Lebih kecil atau sama dengan
Lebih besar atau sama dengan
Tidak sama dengan
Operational Relational
<
LESS THAN
>
GREATER THAN
=
EQUAL TO
NOT>
NOT GREATER THAN
NOT<
NOT LESS THAN
NOT=
NOT EQUAL TO
Page
UNGKAPAN ARITHMATIKA
Adalah Kombinasi dari literal numerik, nama-data, operator
arithmatika, kurung buka dan kurung tutup.
Penulisannya harus dipisahkan paling sedikit dengan sebuah blank
antara literal numerik, nama-data dan operator arithmatika.
Contoh:
Maksud
A+B
A+B
C+D
A2
( B + C )3
Penulisan
A+ B
( A+ B ) / ( C + D )
A* * 2 / ( B+ C) * * 3
Page
PROCEDURE DIVISION
PROCEDURE DIVISION merupakan gambaran logika yg digunakan
untuk menyelesaikan masalah, sehingga divisi ini merupakan inti dari program
COBOL.
Adapun statement khusus yg digunakan pd divisi ini antara lain :
OPEN, READ, WRITE, REWRITE, CLOSE.
Bentuk umum :
PROCEDURE DIVISION.
[ buka-file ]
[ cetak-judul ]
[ alur proses ]
[ tutup file ]
OPEN verb
Digunakan untuk membuka file yg akan diakses.
Bentuk umum :
INPUT
OUPUT
OPEN
I-O
nama-file1
nama-file3
nama-file5
EXTEND nama-file7
[ , nama-file2 ] ....
[ , nama-file4 ] ....
[ , nama-file6 ] ....
[ , nama-file8 ] ....
Keterangan :
- OPEN INPUT
Menunjukkan file yg akan dibuka sbg file input, atau data yg akan dibaca
( READ ) dari file ini.
- OPEN OUTPUT
Menunjukkan file yg akan dibuka sbg file output atau data yg akan direkam (
WRITE ) pd file ini. Jika sudah ada data sebelumnya, maka data baru akan
direkam & data yg lama akan terhapus.
Page
Jika akan menambahkan data ke file yg sudah berisi data, maka file harus
dibuka dengan OPEN EXTEND
- OPEN I-O
Menunjukkan file yg dibuka sebagai file-input dan juga sebagai fileoutput, yaitu file yg dibuka untuk tujuan sbg input & output sekaligus
dapat dibaca & dimodifikasi.
CLOSE verb
Setelah operasi file selesai, maka semua file yg digunakan atau file yg masih
terbuka harus ditutup kembali guna mencegah rusaknya struktur dari file.
Bentuk umum :
CLOSE nama-file1 [ WITH LOCK ][ , nama-file2 [ WITH LOCK ] ]
LOCK digunakan bila file yg sudah ditutup tidak dapat dibuka pd saat proses
berlangsung, tetapi bila proses sudah dihentikan dan program dijalankan lagi
file dapat dibuka kembali.
WRITE verb
Digunakan untuk menampilkan output ke printer atau merekam data ke file yg
ditunjuk.
Bentuk umum :
WRITE nama-record [ FROM nama-data1 ]
BEFORE ADVANCING
AFTER
{ nama-data2 / int }
PAGE
[ LINE ]
[ LINES ]
Page
Page
contoh :
PROCEDURE DIVISION.
------------------------------------------------BUKA-FILE.
OPEN INPUT NILAI.
BACA-DATA.
READ NILAI INTO NILAI1 AT END GO TO SELESAI.
TAMPILKAN.
DISPLAY NILAI.
GO TO BACA-DATA.
SELESAI.
CLOSE NILAI.
STOP RUN.
REWRITE verb
Digunakan untuk merekam ulang record yg sudah pernah direkam. Biasanya
digunakan untuk memodifikasi atau memperbaiki data. Record yg direkam
ulang adl record terakhir yg dibaca.
Bentuk umum :
REWRITE nama-record [ FROM nama-data ]
Keterangan :
Pada waktu REWRITE dilaksanakan, maka file sudah harus dibuka sebagai
input-output file (OPEN I-O)
Nama record setelah perintah REWRITE adl nama record yg sudah
dijelaskan dalam DATA DIVISION pd FILE SECTION
Jika digunakan FROM, record akan direkam ulang dg nilai data yg ada pd
nama data setelah perintah FROM tersebut
MOVE verb
Digunakan untuk memindahkan data dari satu field ke field yg lain, sehingga
input data dapat dimanipulasi untuk menghasilkan output.
Bentuk umum :
1. MOVE { nama-data1 / literal } TO nama-data2 [ , nama-data3 ]
contoh : ( pd DATA DIVISION)
Teknik Pemrograman Terstruktur 1 / S1-MI
Page
01
01
KIRIM.
02 UNIT
02 HARGA
TERIMA.
02 UNIT-OUT
02 HARGA-OUT
PIC 9(3).
PIC 9(5).
PIC 9(3).
PIC 9(7).
Page
GO
TO
nama-
GO TO nama-paragraph-1, nama-paragraph-2,
nama-paragraph-n
Contoh :
GO TO TEMPAT-1, TEMPAT-2, HABIS DEPENDING ON KODE.
Page
PERFORM Verb
PERFORM verb adalah statement yang membawa proses dari suatu
program meloncat ke suatu paragraph tertentu. Dan setelah mengerjakan
seluruh isi paragraph tersebut dan setelah selesai kembali lagi ke statement
setelah statement PERFORM ini.
Perbedaan pokok dengan statement GO TO adalah dengan statement GO
TO proses menuju ke suatu nama-paragraph tertentu, tidak kembali ke
statemenet setelah GO TO tetapi proses dilanjutkan ke paragraph
berikutnya dari paragraph yang dituju.
Bentuk Umum ke-1 :
THROUGH
PERFORM nama-paragraph-1
nama-paragraph-2
THRU
Page
PERFORM nama-paragraph-1
Nama-data
Numerik-integer
THROUGH
THRU
nama-paragraph-2
TIMES
nama-paragraph-2
Perbedaan bentuk ke-3 dengan yang sebelumnya adalah terletak pada adanya
kondisi sebagai akhir dari proses PERFORM atau suatu paragraph di proses
Page
Page
STATEMENT KONDISI
Penyeleksian suatu kondisi dan pengambilan keputusan adalah bagian yang
terpenting di dalam proses pengolahan data.
Perbedaan antara conditional statement dengan imperative statement yang
sudah sering dijumpai adalah :
- conditional statement adalah suatu statement yang dipergunakan untuk
menyeleksi suatu kondisi/syarat dan akan mengerjakan suatu operasi
tergantung dari nilai kondisinya.
- Imperative statement adalah statement yang langsung mengerjakan
operasinya tanpa ada penyeleksian suatu kondisi.
Semua statement kondisi didalam COBOL dimulai dan dibentuk dengan IF
verb.
Jenis-jenis dari statement kondisi yaitu :
1. Kondisi yang sederhana (simple conditions)
2. Kondisi tanda ( sign conditions)
3. Kondisi kelas ( class conditions )
4. Kondisi bercabang ( nested conditions )
5. Kondisi dari nama-kondisi ( condition-name condition )
6. Kondisi yang kompleks ( complex conditions ) atau Kondisi jamak
( compound conditions )
IF
Nama-data-1
Literal-1
lingkaran
Arithmatika
nama-data-2
literal-2
lingkaran
imperative
arithmatika
statement
IS [NOT] >
Contoh :
Teknik Pemrograman Terstruktur 1 / S1-MI
Page
IF A < B MOVE 1 TO C
ATAU
IF A LESS B MOVE 1 TO C
Kondisi Tanda
Kondisi tanda adalah kondisi untuk menentukan apakah suatu data atau
perumusan (ungkapan arithmatika ) mempunyai nilai sama dengan
nol,positif ataukah negatif.
Bentuk dari statement kondisi :
IF
nama-data
POSITIVE
ungkapan
IS [NOT]
Arithmatika
NEGATIVE
ZERO
imperative statement
Contoh :
IF A<B IS NOT POSITIF PERFORM TOLAK
Kondisi Kelas
Adalah kondisi untuk menentukan apakah suatu data (field) termasuk kelas
numerik (0 9, + , - ) ataukah alphabetik (a-z, blank )
Bentuk umum :
NUMERIC
IF nama-data IS [NOT]
ALPHABETIC imperative statement
Contoh :
01
BIAYA.
02 BIAYA-VARIABEL PIC 9(5).
02 BIAYA-TETAP PIC 9(5).
IF BIAYA - VARIABEL IS NOT NUMERIC
GO TO BERHENTI.
ATAU
01 DATA PRIBADI
02 NAMA PIC A(20).
02 UMUR PIC 99.
IF NAMA IS ALPHABETIC GO TO PROSES.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page
Kondisi Bercabang
Bentuk Umum :
IF kondisi
statement-1
NEXT SENTENCE
ELSE statement-2
ELSE NEXT SENTENCE
Dengan statement kondisi ini, bila (IF) suatu kondisi terpenuhi,maka akan
dikerjakan suatu proses yaitu statement-1 atau statement berikutnya (NEXT
SENTENCE). Sebaliknya (ELSE) bila kondisi tidak terpenuhi,maka akan
dikerjakan proses yang lain yaitu statement-2 atau statement berikutnya
( NEXT SENTENCE ).
Contoh :
IF KODE = 1 GO TO KREDIT ELSE GO TO DEBET.
Kondisi Jamak
Kondisi jamak adalah kondisi yang lebih dari sebuah kondisi, yang
merupakan gabungan beberapa kondisi tunggal ( sederhana ). Beberapa
kondisi bisa digabungkan dengan menggunakan tanda operasi boolean,
yaitu : OR, AND dan NOT
Page
STATEMENT KHUSUS
Adapun statement khusus yg digunakan pd divisi ini antara lain :
OPEN, READ, WRITE, REWRITE, CLOSE.
Bentuk umum :
PROCEDURE DIVISION.
[ buka-file ]
[ cetak-judul ]
[ alur proses ]
[ tutup file ]
OPEN verb
Digunakan untuk membuka file yg akan diakses.
Bentuk umum :
INPUT
nama-file1 [ , nama-file2 ] ....
OUPUT nama-file3 [ , nama-file4 ] ....
OPEN
I-O
nama-file5 [ , nama-file6 ] ....
EXTEND nama-file7 [ , nama-file8 ] ....
Keterangan :
- OPEN INPUT
Menunjukkan file yg akan dibuka sbg file input, atau data yg akan dibaca
( READ ) dari file ini.
- OPEN OUTPUT
Menunjukkan file yg akan dibuka sbg file output atau data yg akan
direkam ( WRITE ) pd file ini. Jika sudah ada data sebelumnya, maka
data baru akan direkam & data yg lama akan terhapus.
Jika akan menambahkan data ke file yg sudah berisi data, maka file harus
dibuka dengan OPEN EXTEND
- OPEN I-O
Menunjukkan file yg dibuka sebagai file-input dan juga sebagai fileoutput, yaitu file yg dibuka untuk tujuan sbg input & output sekaligus
dapat dibaca & dimodifikasi.
CLOSE verb
Setelah operasi file selesai, maka semua file yg digunakan atau file yg masih
terbuka harus ditutup kembali guna mencegah rusaknya struktur dari file.
Page
Bentuk umum :
CLOSE nama-file1 [ WITH LOCK ][ , nama-file2 [ WITH LOCK ] ]
LOCK digunakan bila file yg sudah ditutup tidak dapat dibuka pd saat proses
berlangsung, tetapi bila proses sudah dihentikan dan program dijalankan lagi
file dapat dibuka kembali.
WRITE verb
Digunakan untuk menampilkan output ke printer atau merekam data ke file yg
ditunjuk.
Bentuk umum :
WRITE nama-record [ FROM nama-data1 ]
BEFORE ADVANCING
AFTER
{ nama-data2 / int }
PAGE
[ LINE ]
[ LINES ]
Page
Page
REWRITE verb
Digunakan untuk merekam ulang record yg sudah pernah direkam. Biasanya
digunakan untuk memodifikasi atau memperbaiki data. Record yg direkam
ulang adl record terakhir yg dibaca.
Bentuk umum :
REWRITE nama-record [ FROM nama-data ]
Keterangan :
Pada waktu REWRITE dilaksanakan, maka file sudah harus dibuka
sebagai input-output file (OPEN I-O)
Nama record setelah perintah REWRITE adl nama record yg sudah
dijelaskan dalam DATA DIVISION pd FILE SECTION
Jika digunakan FROM, record akan direkam ulang dg nilai data yg
ada pd nama data setelah perintah FROM tersebut.
Page
Daftar Pustaka
Jogyanto, Pemrograman Bahasa COBOL, Andi Yogyakarta,1998
Page