Modul Kuliah
Teknik Pemrograman Terstruktur 1 / MI-SI
Pemrograman Cobol
Oleh : Nani Mintarsih NIP : 960120
UNIVERSITAS GUNADARMA 2008
DAFTAR ISI HAL
PENDAHULUAN ………. 3
KONSEP DASAR PEMBUATAN PROGRAM ………. 5
PROGRAM KOMPUTER ………... 7
KONSEP DASAR PROGRAM COBOL ……… 9
IDENTIFICATION DIVISION ………...……….. 16
ENVIRONMENT DIVISION ………... 17
DATA DIVISION ……… 22
PROCEDURE DIVISIOIN ……….……….. 50
PENDAHULUAN
DEFINISI COBOL
COBOL atau Common Bussiness Oriented Language adalah bahasa pemrograman komputer, yang dirancang untuk menyelesaikan persoalan bisnis.
Perkembangan COBOL
• Tahun 1958 : Pertama kali diciptakan oleh CODASYL
• Tahun 1960 : VERSY COBOL – 60, versi pertama
• Tahun 1968 : ANS COBOL gunakan standart ANSI
• Tahun 1974 : ANSI COBOL 1974
• Tahun 1985 : ANSI COBOL 1985
MS.COBOL VERSI 2.2 mengikuti ANSI COBOL 1974.
MS COBOL VERSI 3.0 mengikuti ANSI COBOL 1985 di luncurkan tahun 1988.
Program COBOL merupakan program terstruktur.
Struktur Utama dari suatu program COBOL terdiri dari 4 DIVISI, yaitu :
IDENTIFICATION DIVISION
ENVIRONMENT DIVISION
DATA DIVISION
Keuntungan Bahasa COBOL :
❋ Program dibuat dalam bahasa inggris sehingga lebih mudah dipelajari dan dibuat.
❋ Sangat sesuai untuk pengolahan data, banyak diterapkan untuk masalah bisnis.
❋ Struktur program COBOL jelas.
❋ Program bersifat standart fleksibel di komputer yang berbeda.
❋ COBOL menyediakan fasilitas listing program
Program ini mudah didokumentasikan dan dikembangkan.
Yang Dapat Dikerjakan BAHASA COBOL :
Langkah Dasar
Membaca data lalu memproses data dan menghasilkan output informasi. Ada dua divisi yang UTAMA yaitu :
DATA DIVISION
Menggambarkan bentuk dan jenis dari data input serta data outputnya.
PROCEDURE DIVISION
Menggambarkan prosedur yang digunakan untuk menyelesaikan permasalahan dalam bentuk dan jenis data yang ada pada DATA
DIVISION dan menghasilkan hasil output informasi sesuai yang ada
dalam DATA DIVISION.
Apa yang dapat dikerjakan COBOL ?
Mengolah data dengan prosedur – prosedur tertentu yang ada di dalam PROCEDURE DIVISION, data yang diolah dan bentuk hasil pengolahan ada didalam DATA DIVISION.
KONSEP DASAR PEMBUATAN PROGRAM
BAHASA KOMPUTER
Merupakan kumpulan dari karakter – karakter, kata-kata dalam aturan penulisan tertentu yang dapat digunakan untuk menulis sebuah program komputer.
HIGH LEVEL LANGUAGE
Orientasi masalah yang dihadapi oleh programmer atau problem oriented language.
Contoh : Pascal, Fortran,Cobol, Bahasa C, Basic.
LOW LEVEL LANGUAGE
Orientasi masalah pada mesin Contoh : Assembler (B.Rakitan)
SOURCE PROGRAM
Program yang dibuat dalam bahasa tingkat tinggi
OBJECT PROGRAM
Program yang telah diterjemahkan ke dalam bahasa mesin
KOMPILASI
Menterjemahkan source program menjadi object program.
♦ Compiler
Menterjemahkan program untuk seluruh instruksi sekaligus.
♦ Interpreter
Menterjemahkan program perinstruksi.
EXECUTABLE PROGRAM
PROGRAM KOMPUTER
??? PROGRAM, PROGRAMMING Dan PROGRAMMER ???
• PROGRAM
Adalah kumpulan dari instruksi atau deklarasi atau pernyataan yang disusun sehingga komputer dapat memproses input data menjadi output.
• PROGRAMMER
Orang yang membuat program komputer
• PROGRAMMING
Proses pembuatan program komputer
Langkah – Langkah pembuatan program COBOL
1. Memahami masalah yang akan di programkan 2. Menggunakan Flowchart
3. Menulis program di coding form
4. Membuat source program, extension .COB 5. Mengcompile program:
Source Program Object Program
6. Membuat Executable program, extension .EXE 7. EXE program dapat dijalankan
KONSEP DASAR ORGANISASI DATA
FILE RECORD FIELD KARAKTER
File atau bussiness file
Adalah kumpulan dari record – record yang berhubungan File dibedakan menjadi dua bagian yaitu :
• PROGRAM FILE yaitu file yang berisi program komputer
• DATA FILE yaitu file yang berisi kumpulan klasifikasi data secara
Setiap file harus diberi nama supaya unik file name
Syarat – Syarat pemberian nama file :
1. Maksimum 30 karakter (A…Z,a…z,0…9,-) 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.
KONSEP DASAR PROGRAM COBOL
Struktur Program Cobol Struktur Program CobolStruktur Program Cobol Struktur Program Cobol
Dibagi menjadi 4 Division, yaitu :
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.
Istilah region,sentence,statement dan phrase / option digunakan pada PROCEDURE DIVISION, sedangkan entry dan clause digunakan pada ke 3 divisi lainnya.
Division
Bagian utama dari suatu program COBOL
Region
Suatu bagian tertentu di dalam PROCEDURE DIVISION.
Section
Contoh : Configuration Section yang ada di ENVIRONTMENT DIVISION
Paragraph
Suatu group dari kalimat (sentences) didalam Procedure Division.
Suatu paragraph harus diawali dengan nama-paragraph atau judul paragraph.
Entry
Sesuatu yang harus dituliskan pada tempat-tempat tertentu di dalam program COBOL. Entry dapat juga dikatakan sebagai suatu set (kumpulan) dari clause (anak kalimat), yang diakhiri dengan titik.
Sentence
Suatu kumpulan dari satu atau lebih statement (pernyataan). Satu statement diakhiri dengan titik (.).
Clause [ anak kalimat ]
Kumpulan dari kata (word) yang membentuk suatu arti. Clause adalah bagian dari entry.
Statement [ Pernyataan ]
Perintah pengerjaan untuk komputer.
Dibentuk dari verb yang merupakan COBOL Reserved word. Semua statement kecuali COPY terletak di PROCEDURE DIVISION. Statement COPY dapat diletakkan dimana saja.
Phrase
Suatu group kata yang merupakan bagian dari statement atau clause.
Option atau Optional
User Defined Words
❋ Cobol Reserved Word
Yaitu kata yang telah didefinisikan yang mempunyai arti dan kegunaan tertentu dalam bahasa COBOL. Kata tersebut tidak boleh dipergunakan oleh programmer untuk nama-data dll kecuali dalam bentuk yang telah ditentukan oleh bahasa COBOL itu sendiri.
Contoh : ACCEPT, ADD, AND, BY, AFTER dsb……
❋ User Defined WordUser Defined Word User Defined WordUser Defined Word
Kata-kata yang dapat dibuat dan telah didefinisikan oleh programmer untuk : Nama-program, Nama-alat, Nama-file, Nama-record, Nama-data, indek dan nama-data-indek, kondisi, prosedure, Nama-seksi, Nama-kualifikasi.
Nama Program
Adalah suatu nama yang diberikan untuk menunjukkan identitas dari program yang dibuat.
Nama program ini ditulis pada paragraph PROGRAM – ID dalam IDENTIFICATION DIVISION.
Nama Alat
Adalah nama yang dibuat oleh programmer untuk menunjukkan suatu alat terntentu, misalnya PRINTER,mnemonis name dibentuk didalam ENVIRONMENT DIVISION pada paragraph SPECIAL NAMES.
Nama File
Adalah nama yang dibuat untuk menunjukkan suatu file terntentu yang dipergunakan didalam program tertentu yang dipergunakan didalam program.
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.
Aturan Penulisan Source Program
Kolom yang tersedia untuk menulis program Cobol adalah mulai dari kolom 1 sampai dengan kolom 80.
Kolom 1-6 :
Digunakan untuk nomor urut bila diperlukan, Nomor harus urut dari kecil ke besar.
Kolom 7 :
Untuk tanda hypen ( - ), baris sambungannya berada di area B.
Bila diisi dengan tanda *, maka baris tersebut dianggap sebagai komentar.
Bila diisi dengan tanda /, maka baris tersebut dianggap sebagai komentar dan akan dicetak mulai halaman baru teratas.
Bila diisi dengan karakter D, maka akan dianggap sebagai komentar. Tetapi bila pada Environment division dalam paragraph Source-Computer disebutkan With Debugging Mode, maka akan berguna untuk tujuan debugging.
Kolom 8-11 :
Disebut area A. Tempat menuliskan semua judul divisi, judul seksi, nama paragraph, judul file description (FD), level number 01 dan level number 77.
Kolom 12-72 :
Disebut area B. Semua elemen program selain yang ditulis diarea A ditulis di area B.
Kolom 73-80 :
Merupakan kolom yang tidak diproses oleh komputer, jadi bila diisi dengan catatan – catatan apa saja hanya untuk dokumentasi program.
BENTUK DATA
BENTUK DATA
BENTUK DATA
BENTUK DATA
Bentuk data dibedakan menjadi 2, yaitu : 1. Data Variabel
2. Data Konstanta ( Konstanta )
✳ Data Variabel adalah data yang nilainya dapat berubah didalam
program.
Contoh : ACCEPT NAMA_MHS.
✳ Konstanta atau data konstanta adalah suatu data yang nilainya tidak
tergantung dari input yang dibaca (bernilai tetap). Contoh :
MULTIPLY JAM-KERJA BY 500 GIVING GAJI-OUT.
Konstanta pada Procedure Division terbagi menjadi 3 :
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. Contoh : -15.50, 20.5, +0.72, 9876 dst…
Literal Bukan Numerik
Konstanta yang digunakan bukan untuk operasi aritmatika. Aturan Literal Bukan Numerik :
1. Panjang maksimum 120 karakter
2. Boleh terdiri dari kumpulan karakter (character set) kecuali karakter petik.
Contoh : ‘NILAI PIUTANG’
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 jenjang
** Pangkat 1 * Kali 2 / Bagi 2 + Tambah 3 - Kurang 3 OPERATOR RELATIONAL
Maksud Operational Relational
Lebih kecil dari < LESS THAN
Lebih besar dari > GREATER THAN
Sama dengan = EQUAL TO
Lebih kecil atau sama dengan NOT> NOT GREATER THAN Lebih besar atau sama dengan NOT< NOT LESS THAN
Tidak sama dengan NOT= 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 Penulisan A + B A + B A + B C + D ( A + B ) / ( C + D ) A2 ( B + C )3 A * * 2 / ( B + C ) * * 3
✳ Ungkapan Arithmatika banyak digunakan pada verb COMPUTE ( lihat bab 12).
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 :
NB : Kalimat yang berada di dalam tanda bracket “[ ]” bersifat optional. Contoh : IDENTIFICATION DIVISION. PROGRAM-ID. CONTOH1. AUTHOR. RANI. INSTALLATION. GUNADARMA. DATE-WRITTEN.17-09-2004. OPTIONAL DATE-COMPILED. 18-09-2004. SECURITY. RAHASIA. 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>.]
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 :
Ditulis pada area A, kecuali yang terdapat pada paragraph SPECIAL-NAMES dan FILE-CONTROL (pada area B).
Penjelasan :
CONFIGURATION SECTION, pada seksi ini diterangkan mengenai jenis –
jenis komputer yang digunakan.
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.
Bentuk Umum :
SOURCE-COMPUTER , digunakan untuk menunjukkan nama komputer
yang digunakan.
Paragraph ini ditulis mulai dari area A yaitu kolom ke 8 Contoh : SOURCE-COMPUTER. IBM-PC.
OBJECT-COMPUTER sama hal nya seperti SOURCE-COMPUTER.
Contoh : OBJECT-COMPUTER. IBM-PC.
SPECIAL NAMES, paragraph ini bersifat optional.Digunakan untuk
membuat nama khusus yang menghubungkan nama-mnemonik implementor dengan nama mnemonik yang dibuat programmer.
PRINTER IS clause digunakan untuk menghubungkan nama mnemonik yang
dibuat oleh programmer dengan alat pencetak printer yang nantinya akan
SPECIAL-NAMES.
[ PRINTER IS <nama mnemonik ] [ CURRENCY SIGN IS <literal> ] [ DECIMAL-POINT IS COMMA ].
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 ].
berhubungan dengan statement DISPLAY yang menggunakan UPON pada PROCEDURE DIVISION.
Contoh penggalan programnya :
CURRENCY SIGN IS clause untuk menunjukkan tanda mata uang yang
digunakan simbol “$” (Dollar). Dapat diubah menjadi karakter lain kecuali karakter 0-9, A, B, C, D, L, P, R, S, V, X, Z, blank, *, +, -, koma, titik, (,) , “, /, dan = (termasuk Cobol Reserved Word). Berhubungan dengan PICTURE pada WORKING-STORAGE SECTION yang terdapat pada DATA DIVISION .
Contoh : SPECIAL-NAMES. CURRENCY-SIGN IS F.
DECIMAL POINT IS COMMA clause adalah suatu clause yang
memerintahkan kepada compiler untuk merubah default decimal point yang bernilai “.” (titik) menjadi “,” (koma). Perubahan ini berhubungan
juga pada WORKING-STORAGE SECTION dan PROCEDURE DIVISION.
INPUT-OUTPUT SECTION
dipergunakan jika dalam pembuatan program mempergunakan file dengan media penyimpanan sekunder baik berbentuk disk maupun printer.Bentuk Umum :
INPUT-OUTPUT SECTION.
FILE-CONTROL.
{File-Control entry}.
IDENTIFICATION DIVISION. PROGRAM-ID. COBOL1. ENVIRONMENT DIVISION. SPECIAL-NAMES. PRINTER IS ALAT-CETAK. PROCEDURE DIVISION.File-Control Entry
terdiri dari 3 bentuk (tergantung dari organisasi file yang akan dipergunakan), yaitu :1. Sequential File (berurut)
2. Indexed File (memiliki nilai kunci yang unik)
3. Relative File (tiap record dibedakan bdsr s/ no. rec. relative)
Input InputInput
Input----Output Section Untuk Sequential FileOutput Section Untuk Sequential FileOutput Section Untuk Sequential File Output Section Untuk Sequential File
Organisasi secara sequential adalah organisasi file yang sifatnya urut.
Jika ada data baru yang dimasukkan, maka merupakan record urutan
terakhir.
Bentuk Umumnya :
Input InputInput
Input----Output Section Untuk Indexed FileOutput Section Untuk Indexed FileOutput Section Untuk Indexed File Output Section Untuk Indexed File
Organisasi secara indexed adalah organisasi file yang datanya dapat diambil langsung di posisi record yang mempunyai nilai kunci terntentu yang unik.
Record mempunyai nilai kunci tertentu yang unik. Hanya pada Disk.
Bentuk Umumnya :
INPUT-OUTPUT SECTION.
FILE-CONTROL.SELECT <nama file> ASSIGN TO DISK ORGANIZATION IS INDEXED
SEQUENTIAL
ACCESS MODE IS RANDOM DYNAMIC RECORD KEY IS <nama-data 1>
Input InputInput
Input----Output Section Untuk Relative FileOutput Section Untuk Relative FileOutput Section Untuk Relative File Output Section Untuk Relative File
Organisasi secara relative adalah organisasi file yang tiap – tiap recordnya dibedakan dengan suatu nomer record relative dan memungkinkan pencarian data cepat bila sudah diketahui nomer record posisi datanya.
Hanya pada Disk.
Bentuk Umumnya :
INPUT-OUTPUT SECTION. FILE-CONTROL.
SELECT <nama-file> ASSIGN TO DISK
ORGANIZATION IS RELATIVE
SEQUENTIAL, RELATIVE KEY IS <nm-data1> ACCESS MODE IS RANDOM
DYNAMIC , RELATIVE KEY IS <nm-data1>
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 ]
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 :
• Bentuk, nilai dan nama data yg diperlukan di dalam proses yg belum disebutkan pd FILE-SECTION
• Persiapan penulisan judul. Format judul dipersiapkan terlebih dahulu pd WORKING-STORAGE SECTION yg nantinya jika akan dicetak atau
ditampilkan pd PROCEDURE DIVISION menggunakan perintah WRITE atau DISPLAY.
• Pemesanan tempat untuk data output yg akan ditampilkan.
Bentuk umum :
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 :
WORKING-STORAGE SECTION.
[77 level data description entry ]
[ record description entry ]
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]
Keterangan :
BLANK SCREEN Clause
Digunakan untuk membersihkan layar dan menempatkan cursor pd posisi kiri atas ( baris1, kolom1 )
Contoh :
LINE NUMBER IS PLUS int1
Digunakan untuk menempatkan cursor pd posisi baris tertentu di layar. Contoh :
02 LINE NUMBER IS 5 VALUE ‘INI DI BARIS 5’. atau 02 LINE 5 VALUE ‘INI DI BARIS 5’.
COLUMN NUMBER IS PLUS int2
Digunakan untuk menempatkan cursor pd posisi kolom tertentu di layar. Contoh:
02 BLANK SCREEN
02 COLUMN 15 VALUE ‘FAKULTAS ILKOM’ 02 COLUMN PLUS 2 VALUE ‘GUNADARMA’
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.
BLANK LINE clause
Digunakan untuk menghapus tampilan pada baris tertentu di layar. Contoh:
02 LINE 15 BLANK LINE.
BELL clause
Digunakan untuk menimbulkan suara bel. Contoh :
02 LINE 22 COLUMN 20 VALUE ‘SALAH!!!’ BELL.
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
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.
Bila Program dijalankan akan terdapat tampilan sebagai berikut : Garis bawah (underline) Lebih terang (highlight)
Kedap-kedip Kelap kelip
(blink)
Bolak balik dengan warna dasar gelap
(reserve-video)
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.
AUTO, SECURE, REQUIRED dan FULL clause << PILIHAN >>
1.
MENAMBAH DATA
2.
MENCETAK DATA
3.
KOREKSI DATA
4.
SELESAI
PILIH NOMER (1-4) ?
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 999 TO UNIT-BARANG 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 ‘*’.
Contoh :
05 COLUMN PLUS 1 PIC 9(6) TO HARGA-BARANG SECURE.
REQUIRED clause Digunakan kalau suatu field data item harus
diisi oleh suatu nilai, tidak boleh dilewati. Contoh :
05 COLUMN PLUS 1 PIC X(5) TO KODE-BARANG REQUIRED.
FULL clause digunakan untuk suatu field data item yang diisi
dengan suatu data sampai penuh untuk tempat yang disediakan. Bila tidak diisi atau tidak penuh maka tidak bias berpindah ke field lain Contoh:
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 item. Contoh : 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).
Level number 66 untuk RENAMES Contoh :
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).
01 Data-Masukkan.
02 Nama Pic A(10).
02 Alamat Pic X(15). 02 Kelas Pic X(5).
CONTOH PROGRAM PENGGUNAAN LEVEL NUMBER
IDENTIFICATION DIVISION. PROGRAM-ID. 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.
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
Untuk menggantikan angka 0 dimuka tidak tampak pada waktu pencetakkan..
Contoh : Space Jml Pic 9(6) | Space Edit Jml-O Pic Z(6)
Data Sumber 5000 Ha sil Sebelum di Edit 005000 Hasil Setelah di Edit 5000
Menambahkan karakter $ saat pencetakan yang terletak paling ujung kiri.
Contoh : Space Jml Pic 9(6) | Space Edit Jml-O Pic $Z(6)
Picture editing karakter Z
Data Sumber 5000 Hasil Sebelum di Edit 005000 Hasil Setelah di Edit $ 5000
Untuk menunjukkan letak posisi dari titik desimal pada saat pencetakan. Dapat dipertukarkan kedudukannya dengan cara mendefinisikan terlebih dahulu :
DATA DIVISION.
WORKING-STORAGE SECTION.
SPECIAL-NAMES. DECIMAL POINT IS COMMA.
Menambahkan tanda – pada posisi paling kiri pada saat pencetakan jika data aslinya bernilai negatif, jika bernilai positif akan digantikan dengan blank.
Jika data aslinya bernilai positif tanda + akan tampak pada posisi paling kiri. Tetapi jika data aslinya bernilai negatif, maka yang akan muncul bukan karakter + tetapi karakter -.
Untuk data yang tidak bertanda, dianggap sebagai bernilai positif.
Picture editing karakter “.” (titik) dan “,” (koma)
Picture editing karakter “-“ (minus)
Menambahkan karakter DB atau CR pada posisi paling kanan dimana hanya berlaku untuk data aslinya yang bernilai negatif. Jika data bernilai positif tidak akan tampak.
Khusus untuk mengedit nilai data bukan numeric. Akan menyebabkan nilai blank disisipkan pada posisi dimana karakter B tsb berada.
Untuk menggantikan nilai 0 (nol) yang muncul pada posisi paling kiri dengan karakter *.
Digunakan untuk maksud pencegahan terhadap penambahan angka yang tidak diinginkan di suatu nilai.
Contoh : Space Jml Pic 9(6) | Space Edit Jml-O Pic ****** Data Sumber 400
Hasil Sebelum di Edit 000400 Hasil Setelah di Edit ***400
Untuk menyisipkan karakter 0 pada posisi dimana karakter 0 tsb berada.
Untuk menyisipkan karakter / pada posisi dimana karakter / itu berada.
Picture editing karakter DB atau CR
Picture editing karakter B
Picture editing karakter “*” (asterik)
Picture editing karakter 0 (nol)
Contoh Program Penggunaan Picture Editing :
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.
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 nilai-nilai numerik saja.
Bersifat rata kanan (right justified) Contoh :
Bentuk PIC Panjang Contoh
Data Tersimpan di memory Di prosedur 02 GAJI PICTURE IS 999 3 456 456 456 02 KAS PIC 9(5) 5 4250 04250 04250 Picture Karakter V.
Menunjukkan letak anggapan dari titik desimal.
Karakter ini hanya boleh ada satu dalam setiap picture. Contoh :
Bentuk PIC Panjang Contoh
Data Tersimpan di memory Di prosedur 02 HARGA PIC 999V99 5 234.50 23450 234^50 03 LABA PIC 9(4)V9(3) 7 12.345 0012345 0012^345 Picture Karakter P
Digunakan dengan gabungan PICTURE karakter V, yang digunakan untuk menimbulkan angka 0.
Contoh :
Bentuk PIC Panjang Contoh
Data Tersimpan di memory Di prosedur 02 PIUTANG PIC 9PPV 1 3 3 300^ 03 KAS PIC VPPP9(2) 2 15 15 ^00015 Picture Karakter S
Digunakan untuk menyimpan nilai data huruf.
Bersifat rata kiri (Left Justified) Contoh :
Bentuk PIC Panjang Contoh
Data Tersimpan di memory Di prosedur 02 SALDO PIC S99 2 -25 25 25 02 SALDO PIC S99V9 3 -25 250 250 Picture Karakter A
Digunakan untuk menyimpan nilai data huruf.
Bersifat rata kiri (left justified) Contoh :
Bentuk PIC Panjang Contoh Data Tersimpan di memory
Di prosedur
02 NAMA PIC A(6) 6 SAYA SAYAbb SAYAbb
03 NAMA PIC A(2) 2 SA SA SA
05 PIC NAMA PIC A(4) 4 SAYANG SAYA SAYA
Picture Karakter X
Menunjukkan posisi alphanumerik yang disimpan pada field.
Bersifat rata kiri ( Left justified ) Contoh :
Bentuk PIC Panjan
g
Contoh Data Tersimpan di memory
Di prosedur
02 KODE PIC X(5) 5 D2343 D2343 D2343
07 KODE PIC X(5) 5 C16 C16BB C16BB
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 :
Contoh :
Pada DATA DIVISION : 01 MASTER. 02 BARANG-A. 03 JUMLAH PIC 9(3). 03 HARGA-SATUAN PIC 9(5). 02 BARANG-B. 03 JUMLAH PIC9(3). 03 HARGA-SATUAN PIC 9(4). 01 TRANSAKSI. 02 BARANG-A. 03 JUMLAH PIC 9(3). 03 HARGA-SATUAN PIC 9(5). 02 BARANG-B. 03 JUMLAH PIC 9(3). 03 HARGA-SATUAN PIC 9(4). Pada PROCEDURE DIVISION :
COMPUTE TOTAL-B = JUMLAH OF BARANG-B OF TRANSAKSI * HARGA SATUAN OF BARANG-B OF TRANSAKSI.
Nama – data OF nama record
IN
Ket : Maksimum jumlah tingkatan qualification untuk nama-data adalah sejumlah 5 tingkat. misalnya : A OF B OF C OF D OF E OF F ATAU : A IN B IN C IN D IN E IN F
RECORD DATA JAMAK
Record data yang jamak (multiple data records) adalah record data yang lebih dari 1 pada file yang sama. Record yang satu dengan record yang lainnya akan mempunyai posisi di storage yang sama.
Record data jamak ini digunakan untuk data yang direkamkan di file, baik organisasinya secara sequential maupun organisasinya secara indexed.
Contoh Program Record Data Jamak :
DATA DIVISION. FILE SECTION. FD STOCK-FILE
RECORD CONTAINS 50 CHARACTERS LABEL RECORD ARE STANDARD VALUE OF FILE-ID IS “STOCK”
DATA RECORDS ARE PEMBELIAN, PENJUALAN. 01 PEMBELIAN.
02 KODE-BARANG PIC 9(4). 02 KODE-TRAN PIC 9. 02 JUMLAH PIC 9(5). 02 HARGA-SATUAN-BELI PIC 9(5). 02 NAMA-SUPLIER PIC A(15). 02 ALAMAT-SUPLIER PIC A(20). 01 PENJUALAN. 02 KODE-BARANG PIC 9(4). 02 KODE-TRAN PIC 9. 02 JUMLAH PIC 9(3). 02 HARGA-SATUAN-JUAL PIC 9(6). 02 KODE-LANGGANAN PIC X(6). 02 KETERANGAN PIC (20). 02 FILLER PIC X(10).
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 :
CONTOH :
Didalam PROCEDURE DIVISION dapat dilakukan penyelesaian sebagai berikut :
Dengan dipergunakannya nama-kondisi, bentuk penyeleksian dapat juga langsung berupa :
Keterangan :
Nama Kondisi tidak mempunyai PICTURE, karena PICTUREnya mengikuti elemen data yang diikutinya.Sehingga nilai literal yang dimasukkan ke nama-kondisi harus sesuai dengan field dan type data itemnya.
VALUE IS LITERAL 1 [LITERAL2]
88 NAMA KONDISI
THRUGH
[ LIT2]01
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.IF LAKI GO TO PROSES-L.
IF WANITA GO TO PROSES-W.Contoh :
02 STATUS PIC X . 02 STATUS PIC X .
88 KAWIN VALUE 1. 88 KAWIN VALUE ‘1’.
88 BELUM VALUE 2. 88 BELUM VALUE ‘2’.
VALUE Clause
Digunakan untuk memasukkan nilai awal pada storage. Biasanya terdapat pada WORKING-STORAGE SECTION.
Bentuk Umum :
Contoh Penggunaan Value Clause :
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.
LITERAL
VALUE IS
01 JUDUL PIC A(15) VALUE ‘PROGRAM COBOL’. 01 FILLER PIC X(15) VALUE SPACES.
01 TOTAL PIC 9(5) VALUE ZERO.
01 KETERANGAN VALUE IS ‘LUNAS’ PIC A(15). 77 COUNTER PIC 99 VALUE 0.
Contoh Penggunaan Redefines Clause :
Keterangan :
1. REDEFINES clause dapat digunakan untuk group data item, tetapi tidak boleh digunakan pada level number 01 yang nama recordnya sudah disebut di FILE SECTION.
Bila hal ini diinginkan,maka harus digunakan multiple data records, yang mempunyai efek sama dengan REDEFINES.
2. REDEFINES juga tidak boleh terdapat pada level number 66 atau 88. REDEFINES clause tidak dapat digunakan untuk data item individu yang lainnya.
3. Bila ada Clause yang lain, REDEFINES clause harus merupakan clause yang pertama pada data-description atau pada record-description entry. 4. REDEFINES clause tidak dapat dipergunakan untuk nama data yang
levelnya berbeda. Level disini yang dimaksud bukan level number, tetapi jenjangnya.Level number boleh berbeda,asal level (tingkatan jenjangnya) sama.
5. Value clause tidak boleh ada bersama-sama dengan REDEFINES clause. DATA DIVISION.
FILE SECTION. FD HUT-PIUT
LABEL RECORD IS STANDARD
VALUE OF FILE –ID IS “HUT-PIUT.DAT”. 01 HUTANG-PIUTANG.
02 HUTANG.
03 KODE-SUPLIER PIC 9(3). 03 NAMA-SUPLIER PIC X(16). 03 NILAI-HUTANG PIC 9(4)V99. 02 PIUTANG REDEFINES HUTANG .
03 KODE-LANGGANAN PIC 9(4). 03 NAMA-LANGGANAN PIC X(14). 03 NILAI-PIUTANG PIC 9(5)V99.
Renames Clause
Menyediakan programmer kemampuan untuk memberikan tambahan deskripsi tentang penggolongan kembali elemen-elemen data item.
Dimulai dengan Level Number 66.
Contoh :
RECORD-B adalah posisi dari storage yang terdiri dari field B dan C, yang juga dimiliki oleh RECORD-A
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. 01 RECORD-A.
02 A PIC A(2). 02 B PIC 9(3). 02 C PIC 9(4). 02 D PIC X(2).
66 RECORD-B RENAMES B THROUGH C.
01 PERSEDIAAN. 02 JENIS. 03 NAMA PIC C(8). 03 KODE PIC X(3). 02 HARGA. 03 BELI PIC 9(5)V99. 03 JUAL PIC 9(5). 02 KETERANGAN PIC X.
BLANK WHEN ZERO clause
Dipakai untuk menghilangkan bentuk seperti : -0 atau + atau – saja ( pemakaian pada picture editing). Bentuk tersebut akan memperjelek penampilan output.
Contoh :
Data Picture Hasil output
000 02 HASIL PIC ++++ +
000 02 HASIL-OUT PIC ++++ BLANK WHEN ZERO blank
JUSTIFIED RIGHT clause
♦ Digunakan hanya untuk data item alphabetik atau alphanumerik saja.
♦ Seperti telah kita ketahui data alphabetik dan alphanumerik disimpan di storage dengan posisi rata sebelah kiri.Bila diinginkan posisi yang rata disebelah kanan,maka digunakan clause ini.
Contoh :
Sebelum : 77 NAMA PIC X(9) VALUE ‘RANI’. D E W I
Sesudah : 77 NAMA PIC X(9) VALUE ‘ RANI’ JUSTIFIED RIGHT. Atau
77 NAMA PIC X(9) VALUE ‘RANI’ JUST RIGHT. D E W I
Contoh lainnya :
02 JUDUL PIC X(10) JUST RIGHT. MOVE ‘ NERACA’ TO JUDUL.
SYNCHRONIZED clause
Digunakan untuk mengalokasikan data secara efektif di storage.
Tidak boleh digunakan pada group data item.
Untuk MS-COBOL, clause ini tidak berfungsi, tetapi boleh ditulis sebagai dokumen saja.
Contoh : 01 RECORD-A. 02 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 :
01 RECORD-A.
02 FIELD-1 PIC X(4) SYNC LEFT. 02 FIELD-2 PIC X(3) SYNC LEFT. 02 FIELD-3 PIC X(5) SYNC RIGHT. OUTPUTNYA:
AAAA BBB CCCCC
USAGE Clause
Menunjukkan bentuk dari data yang disimpan di memory komputer.
Data numerik dapat ditempatkan pada memori komputer dengan 2 cara, yaitu :
1. Mode Karakter (Character mode) dengan DISPLAY
2. Mode Numerik (Numeric mode) dengan COMPUTATIONAL
SYNCHRONIZED
LEFT
Bentuk Umum :
COMPUTATIONAL dapat disingkat menjadi COMP. Keterangan :
DISPLAY digunakan untuk menyimpan data yang bentuknya bersifat
mode karakter.
COMPUTATIONAL untuk menyimpan data numerik ke dalam kode
binary.
Pangkat Desimal Binary
20 1 1 21 2 10 22 4 100 23 8 1000 24 16 10000 25 32 100000 26 64 1000000 27 128 10000000 28 256 100000000 29 512 1000000000 210 1024 10000000000 Dst Dst 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.
DISPLAY
COMPUTATIONAL [USAGE IS] COMP
COMPUTATIONAL-3 CPM-3
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 :
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. LEADING
[; [SIGN IS] [SEPARATE CHARACTER ] ]
2. SIGN IS LEADING SEPARATE CHARACTER.
Tanda operasi ( + atau -) diletakkan pada posisi paling kiri dengan menambahkan sebuah posisi storage tambahan.
Contoh :
02 NILAI PIC S9(4) SIGN IS LEADING SEPARATE. 3. SIGN IS TRAILING
Tanda operasi (+ atau - ) diletakkan pada posisi paling kanan tanpa adanya posisi storage tambahan.
Contoh :
02 NILAI PIC S9(4) SIGN IS TRAILING. Atau 02 NIALI PIC S9(4).
Note :
Kalau SIGN clause tidak dipergunakan maka dianggap sebagai SIGN IS TRAILING.
4. SIGN IS TRAILING SEPARATE CHARACTER
Tanda operasi ( + atau -) diletakkan pada posisi paling kanan dengan menambah sebuah posisi storage tambahan.
Contoh :
02 NILAI PIC S9(4) SIGN IS TRAILING SEPARATE..
Penjelasan :
a. Penggunaan SEPARATE CHARACTER akan menyebabkan bertambahnya ukuran storage dari data item dengan 1 byte karakter, jadi akan lebih boros,dianjurkan untuk tidak menggunakannya.
b. Penggunaan LEADING akan menyebabkan operasi object program kurang efektif, jadi dianjurkan tidak menggunakannya.
c. Yang terbaik adalah tidak menggunakan clause ini atau menggunakan SIGN IS TRAILING.
OCCURS clause
Digunakan untuk tujuan mengulang data-item didalam suatu record beberapa kali, yang membentuk suatu label.
Bentuk:
- 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).
[; OCCURS integer TIMES ASCENDING
DESCENDING KEY IS nama-data-1 [, nama-data-2] …. INDEXED BY nama-index-1 [, nama-index-2]….
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 :
Contoh : 01 KIRIM. 02 UNIT PIC 9(3). 02 HARGA PIC 9(5). 01 TERIMA. 02 UNIT-OUT PIC 9(3). 02 HARGA-OUT PIC 9(7).
Statement dalam PROCEDURE DIVISION sebagai berikut :
MOVE UNIT TO UNIT-OUT.
• Akan memindahkan nilai data dari field UNIT ke field UNIT-OUT
MOVE KIRIM TO TERIMA.
• Akan memindahkan 8 karakter dari field group item KIRIM ke 10 karakter secara bersamaan ke field group item TERIMA.Group item
Nama-data-1
MOVE To nama-data-2 [, nama data-3 ] …..
yang dipindahkan akan diperlakukan sebagai nilai alphanumerik,tidak memandang bentuk dari PICTURE masing-masing elemen data item.Sehingga bersifat Left-justified.
Bentuk yang khusus dari MOVE verb adalah MOVE CORRSPONDING, dengan bentuk:
MOVE CORRESPONDING digunakan untuk memindahkan data dari group data item ke group data item yang lain yang bernama sama.
Contoh:
Pada DATA DIVISION : 01 RECORD-A. 02 A PIC 9(3). 02 B PIC X(5). 02 C PIC A(9). 02 D PIC 9(4). 01 RECORD-B. 02 A PIC 9(3). 02 FILLER PIC X(5). 02 B PIC X(6). 02 D PIC 9(4). 02 E PIC $$$.99. 02 FILLER PIC X(5). Statement :
MOVE CORRESPONDING RECORD-A TO RECORD-B. Artinya :
Akan memindahkan group item RECORD-A ke group data item RECORD-B yang mempunyai nama data yang sama.
Bentuk data yang dapat dipindahkan :
Bentuk data pengirim
Bentuk data penerima Alphabetik Alphanumerik
Numerik integer Numerik non integer Numerik yang di-edit
Alphabetik Bisa Bisa Tidak
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 :
Bentuk Statement DISPLAY ke-2 :
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 : DISPLAY nama-layar
Nama data ,nama-data
DISPLAY …[UPON nama-mnemonik]
Literal ,literal
Nama-data
- Posisi-tampilan merupakan posisi baris dan kolom tertentu dari hasil yang akan ditampilkan di layar di printer.
Posisi tampilan ini mempunyai bentuk :
LIN and COL adalah register khusus MS-COBOL, yang merupakan COBOL reserved words, jadi tidak disebutkan pada DATA DIVISION.
Setelah koma “,” harus diikuti oleh 1 blank untuk memisahkan letak posisi baris dan posisi kolomnya.
Contoh :
DISPLAY (15, 5) “HALLO SAYA KOMPUTER”.
- ERASE adalah COBOL reserved word, yang kalau dipergunakan dalam DISPLAY dan posisi- tampilan ditentukan,maka mulai dari posisi tampilan tersebut untuk 1 baris akan dihapus dari tampilan sebelumnya. Contoh :
DISPLAY (3, 10) ERASE.
ACCEPT verb
Digunakan untuk memasukkan data lewat layar sewaktu program tersebut dijalankan(pada waktu runtime).
Ada 4 bentuk statement ACCEPT : Bentuk statement ACCEPT ke-1 :
Data yang dimasukkan, akan ditempatkan pada nama-data setelah ACCEPT, yang bentuk, jenis dan panjangnya sudah ditentukan dalam DATA DIVISION.
Bentuk Statement ACCEPT ke-2 :
Lin [{ + }] integer-1 COL [{+}] integer-3
Integer-2 , integer-4
ACCEPT nama-data
Apabila ON ESCAPE diikutsertakan, maka statement-imperative yang mengikutinya akan dikerjakan.
Bentuk Statement ACCEPT yang ke-3 :
Posisi-layar menunjukkan letak dari posisi data yang akan dimasukkan pada layar.
Posisi-layar ini mempunyai bentuk :
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
ZERO – FILL SPACE – FILL LEFT – JUSTIFY RIGHT – JUSTIFY TRAILING – SIGN ACCEPT [posisi-layar] nama-data WITH PROMPT
UPDATE LENGTH – CHECK EMPTY – CHECK AUTO – SKIP NO – ECHO BEEP
Lin [{ + }] integer-1 COL [{+}] integer-3
Menyebabkan tanda operasi + atau – tampak diposisi paling kanan dari field data input. Biasanya tanda tersebut akan menempati posisi paling kiri.
PROMPT phrase
Menyebabkan tampilan untuk field data-item penerima berbentuk nol untuk posisi digit,titik untuk decimal point dan spasi untuk tanda operasi + atau -.
UPDATE phrase
Menyebabkan tampilan untuk field data-item penerima berbentuk nilai awal dari field penerima tersebut.UPDATE phrase ini berfungsi sama dengan FORM dan TO atau USING clause pada SCREEN SECTION dalam DATA DIVISION.
LENGTH-CHECK phrase
Menyebabkan penekanan tombol carriage-return tidak berfungsi kalau semua posisi field penerima belum penuh semua.
LENGTH-CHECK phrase berfungsi sama dengan FULL clause pada SCREEN SECTION dalam DATA DIVISION.
EMPTY-CHECK phrase
Menyebabkan penekanan tombol carriage-return tidak berfungsi kalau tidak paling sedikit sebuah karakter atau angka yang bukan sifatnya terminator sudah dimasukkan.
EMPTY – CHECK phrase berfungsi sama dengan REQUIRED clause pada SCREEN SECTION dalam DATA DIVISION.
AUTO-SKIP phrase
Menyebabkan proses pemasukkan data bergeser ke field penerima data lain berikutnya, bila posisi field penerima sudah penuh terisi tanpa harus ditekan tombol carriage-return atau tombol terminator yang lainnya.
AUTO-SKIP berfungsi sama dengan AUTO clause pada SCREEN SECTION dalam DATA DIVISION.
NO-ECHO phrase
Menyebabkan data yang dimasukkan, tidak tampak di layar.
NO-ECHO berfungsi sama dengan SECURE clause pada SCREEN SECTION dalam DATA DIVISION.
BEEP phrase
Menyebabkan bunyi bel sewaktu data dimasukkan.
BEEP berfungsi sama dengan BELL clause pada SCREEN SECTION dalam DATA DIVISION.
Bentuk Statement ACCEPT yang ke-4 :
DATE, akan mendapatkan 6 digit nilai standard dengan bentuk TTBBHH (
2 digit untuk tahun. 2 digit untuk bulan dan 2 digit untuk hari) dari system-date.
DAY,akan mendapatkan 5 digit nilai “Julian Date” dengan bentuk TTJJJ (
2 digit untuk tahun dan 3 Digit menunjukkan jumlah hari dalam setahun untuk tanggal tersebut) dari System-date.
TIME, akan mendapatkan 8 digit nilai dengan bentuk JJMMDDSS.
JJ menunjukkan 2 digit jam, berkisar dari nilai 00 sampai dengan bentuk 23.
MM menunjukkan 2 digit menit, berkisar dari nilai 00 sampai dengan 59. DD menunjukkan 2 digit detik, berkisar dari nilai 00 sampai dengan 59. SS menunjukkan 2 digit seperseratus detik,berkisar dari 00 sampai dengan 99.
ESCAPE KEY, akan mendapatkan 2 digit kode yang dihasilkan dari hasil
penekanan tombol-tombol terminator.Terminator adalah tombol yang digunakan untuk mengakhiri pengerjaan statement ACCEPT.
DATE
DAY ACCEPT nama-data FROM TIME
Contoh Program Bentuk statement ACCEPT : 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 IDENTIFICATION DIVISION. PROGRAM-ID. SISTEMDATE. AUTHOR.. NANI. ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 01 SISTEM-DATE-TIME. 02 TANGGAL PIC 9(6). 02 JULIAN PIC 9(5). 02 JAM PIC 9(8). PROCEDURE DIVISION. MULAI.ACCEPT TANGGAL FROM DATE ACCEPT JULIAN FROM DAY ACCEPT JAM FROM TIME. TAMPILKAN.
DISPLAY ‘ TANGGAL ADALAH : ‘, TANGGAL. DISPLAY ‘ JULIAN ADALAH : ‘, JULIAN. DISPLAY ‘ JAM ADALAH : ‘, JAM. STOP RUN.
STOP RUN akan menyebabkan proses program berhenti secara permanen, sedang bentuk STOP yang diikuti oleh literal proses akan berhenti secara permanen. Bila menekan sembarang tombol, maka proses dilanjutkan. Contoh :
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 :
CONTOH :
ADD A TO B B = B + A
ADD 30, B TO A A = A + 30 + B
ADD A, B TO C C = C + A + B
Bentuk ke-2 dari statement ADD :
Nama-data-1 nama-data-2
ADD literal-1 literal-2 …. TO nama-data-m [ROUNDED] [; ON SIZE ERROR statement imperative]
Nama-data-1 nama-data-2 nama-data-3
ADD ….GIVING nama-data-m [ROUNDED]
Literal-1 literal-2 literal-3
CONTOH :
ADD A, B GIVING C C = A + B
ADD 4,5 GIVING A A = 4 + 5
SUBSTRACT VERB
Digunakan untuk membentuk statement operasi arithmatika pengurangan suatu nilai operand numerik.
Bentuk umumnya :
CONTOH :
SUBSTRACT A FROM B B = B – A
SUBSTRACT A, B FROM C C = C – A – B
SUBSTRACT A FROM B GIVING C C = B – A SUBSTRACT 20 FROM 80 GIVING C C = 80 – 20
SUBSTRACT 20, 15 FROM 100 GIVING B B = 100 – 20 – 15 = 65
MULTIPLY
Digunakan untuk membentuk statement guna instruksi perkalian dua nilai numerik dan menyimpan hasilnya.
Bentuk Umum Statement MULTIPLY ke-1 :
Contoh :
MULTIPLY A BY B B = B * A
Nama-data-1 nama-data-2
SUBSTRACT literal-1 literal-2 Nama-data-n
FROM literal-n GIVING nama-data-m [ROUNDED] [;ON SIZE ERROR imperative-statement]
Nama-data-1
MULTIPLY literal-1 BY nama-data-2
Bentuk umum statement MULTIPLY ke-2 :
CONTOH :
MULTIPLY A BY D GIVING C C = A * D MULTIPLY A BY 25 GIVING C C = A * 25
DIVIDE
Digunakan untuk membentuk statement operasi pembagian . Bentuk Statemen DIVIDE yang ke-1 :
CONTOH :
DIVIDE A INTO B B = B / A Bentuk Statemen DIVIDE yang ke-2 :
CONTOH :
DIVIDE A INTO B GIVING C C = B / A Bentuk Statemen DIVIDE yang ke-3 :
Nama-data-1 nama-data-2 MULTIPLY literal-1 BY literal-2
GIVING nama-data-3 [ROUNDED] [;ON SIZE ERROR imperative statement]
Nama-data-1
DIVIDE literal-1 INTO nama-data-2 [ ROUNDED] [;ON SIZE ERROR imperative statement]
Nama-data-1 nama-data-2 DIVIDE literal-1 INTO literal-2
GIVING nama-data-3 [ROUNDED] [;ON SIZE ERROR imperative statement]
Nama-data-1 nama-data-2 DIVIDE literal-1 BY literal-2
CONTOH :
DIVIDE A BY B GIVING C C = A / B DIVIDE 100 BY 50 GIVING Z Z = 2
Bentuk Statement DIVIDE yang ke-4 :
Contoh :
DIVIDE A INTO B GIVING HASIL REMAINDER SISA BILA A = 2, B = 5 MAKA HASIL = 2 SISA =1
Bentuk Statemen DIVIDE yang ke-5 :
CONT OH :
DIVIDE A BY B GIVING D REMAINDER SISA BILA A = 110 , B = 20 MAKA D = 5 SISA =10
COMPUTE
Mempergunakan 4 arithmatika verbs untuk perhitungan arithmatika tunggal dan sederhana.
Bentuk Umum :
Nama-data-1 nama-data-2 DIVIDE literal-1 INTO literal-2
GIVING nama-data-3 [ROUNDED] REMAINDER nama-data-4
[;ON SIZE ERROR imperative statement]
Nama-data-1 nama-data-2 DIVIDE literal-1 BY literal-2
GIVING nama-data-3 [ROUNDED] REMAINDER nama-data-4
[;ON SIZE ERROR imperative statement]
COMPUTE nama-data-1 [ROUNDED] =
ungkapan arithmatika
CONTOH :
MULTIPLY A BY D GIVING C COMPUTE C = A * D
Y = A 5 COMPUTE Y = A**5
Y = A + B COMPUTE Y = ( A + B ) / C
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 jenjang
** Pangkat 1 * Kali 2 / Bagi 2 + Tambah 3 - Kurang 3 OPERATOR RELATIONAL
Maksud Operational Relational
Lebih kecil dari < LESS THAN
Lebih besar dari > GREATER THAN
Sama dengan = EQUAL TO
Lebih kecil atau sama dengan NOT> NOT GREATER THAN Lebih besar atau sama dengan NOT< NOT LESS THAN
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 Penulisan A + B A + B A + B C + D ( A + B ) / ( C + D ) A2 ( B + C )3 A * * 2 / ( B + C ) * * 3
✳ Ungkapan Arithmatika banyak digunakan pada verb COMPUTE ( lihat bab 12).
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 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.