Modul Kuliah Teknik Pemrograman Terstruktur 1 / MI-SI Pemrograman Cobol
Oleh : Nani Mintarsih NIP : 960120
UNIVERSITAS GUNADARMA 2008
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 1
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
DAFTAR PUSTAKA ……………… ..………..………………………………..
82
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 2
PENDAHULUAN 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
: Pertama kali diciptakan oleh CODASYL : VERSY COBOL – 60, versi pertama : ANS COBOL gunakan standart ANSI : ANSI COBOL 1974 : 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 PROCEDURE DIVISION
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 3
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.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 4
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 yang dapat dijalankan secara langsung dari sistem operasi.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 5
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 keseluruhan. Teknik Pemrograman Terstruktur 1 / S1-MI
Page 6
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.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 7
KONSEP DASAR 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 Suatu kumpulan dari paragraph atau entry.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 8
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 Sesuatu yang boleh disertakan, boleh juga tidak.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 9
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 Word Kata-kata yang dapat dibuat dan telah didefinisikan oleh programmer untuk : Nama-program, Nama-alat, Nama-file, Nama-record, Nama-data, Nama-indek dan nama-data-indek, Nama-kondisi, Nama-prosedure, Namaseksi, 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. Teknik Pemrograman Terstruktur 1 / S1-MI
Page 10
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.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 11
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 SourceComputer 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.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 12
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 :
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 13
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 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
Teknik Pemrograman Terstruktur 1 / S1-MI
Operational Relational < LESS THAN > GREATER THAN = EQUAL TO NOT> NOT GREATER THAN NOT< NOT LESS THAN
Page 14
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 A+B A+B C+D A2 ( B + C )3
Penulisan A+B (A+B) / (C+D) A**2/(B+C)**3
✳ Ungkapan Arithmatika banyak digunakan pada verb COMPUTE ( lihat bab 12).
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 15
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.
. [AUTHOR. .] [INSTALLATION. .] [DATE-WRITTEN. .] [DATE-COMPILED. .] [SECURITY. <sifat_program>.]
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. DATE-COMPILED. 18-09-2004. SECURITY. RAHASIA.
Teknik Pemrograman Terstruktur 1 / S1-MI
OPTIONAL
Page 16
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. [WITH DEBUGGING MODEL. OBJECT-COMPUTER. . SPECIAL-NAMES. [ PRINTER IS ] [ DECIMAL-POINT IS COMMA ]. INPUT-OUTPUT SECTION. FILE-CONTROL. {file-control entry}.
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.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 17
ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. [WITH DEBUGGING MODEL. OBJECT-COMPUTER. . SPECIAL-NAMES. [ PRINTER IS ] [ DECIMAL-POINT IS COMMA ].
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. SPECIAL-NAMES. [ PRINTER IS ] [ DECIMAL-POINT IS COMMA ].
PRINTER IS clause digunakan untuk menghubungkan nama mnemonik yang dibuat oleh programmer dengan alat pencetak printer yang nantinya akan Teknik Pemrograman Terstruktur 1 / S1-MI
Page 18
berhubungan dengan statement DISPLAY yang menggunakan UPON pada PROCEDURE DIVISION.
Contoh penggalan programnya : IDENTIFICATION DIVISION. PROGRAM-ID. COBOL1. ENVIRONMENT DIVISION. SPECIAL-NAMES. PRINTER IS ALAT-CETAK. PROCEDURE DIVISION.
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}.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 19
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) InputInput-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 : InputInput-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 ASSIGN TO DISK ORGANIZATION IS INDEXED SEQUENTIAL ACCESS MODE IS RANDOM DYNAMIC RECORD KEY IS FILE STATUS IS
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 20
InputInput-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 ASSIGN TO DISK ORGANIZATION IS RELATIVE
ACCESS MODE IS
SEQUENTIAL, RELATIVE KEY IS RANDOM DYNAMIC , RELATIVE KEY IS
FILE-STATUS IS
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 21
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 22
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
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 23
ditampilkan pd PROCEDURE DIVISION menggunakan perintah WRITE atau DISPLAY. • Pemesanan tempat untuk data output yg akan ditampilkan. Bentuk umum :
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 24
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 : 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’
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 25
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 tampilan.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 26
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 ‘ <> ’ 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.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 27
Bila Program dijalankan akan terdapat tampilan sebagai berikut :
Garis bawah (underline)
<< PILIHAN >>
1. MENAMBAH DATA
2. MENCETAK DATA Lebih terang
3. KOREKSI DATA (highlight) Kedap-kedip
Kelap kelip
4. SELESAI (blink)
Bolak balik dengan
PILIH NOMER (1-4) ?
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 Teknik Pemrograman Terstruktur 1 / S1-MI
Page 28
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: 05 COLUMN PLUS 1 PIC X(15) TO NAMA-BARANG FULL.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 29
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). 02 Total-Gaji Pic 9(7).
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 30
Level number 66 untuk RENAMES 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).
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 31
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.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 32
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
Picture editing karakter Z 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
Picture editing karakter $ Menambahkan karakter $ saat pencetakan yang terletak paling ujung kiri. Contoh :
Space Jml Pic 9(6) | Space Edit Jml-O Pic
$Z(6)
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 33
Data Sumber
5000
Hasil Sebelum di Edit
005000
Hasil Setelah di Edit
$ 5000
Picture editing karakter “.” (titik) dan “,” (koma) 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.
Picture editing karakter “-“ (minus) Menambahkan tanda – pada posisi paling kiri pada saat pencetakan jika data aslinya bernilai negatif, jika bernilai positif akan digantikan dengan blank.
Picture editing karakter “+” (plus) 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.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 34
Picture editing karakter DB atau CR 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.
Picture editing karakter B Khusus untuk mengedit nilai data bukan numeric. Akan menyebabkan nilai blank disisipkan pada posisi dimana karakter B tsb berada.
Picture editing karakter “*” (asterik) 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
Picture editing karakter 0 (nol) Untuk menyisipkan karakter 0 pada posisi dimana karakter 0 tsb berada.
Picture editing karakter “/” (slash) Untuk menyisipkan karakter / pada posisi dimana karakter / itu berada.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 35
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.
Contoh Program Penggunaan Picture Editing :
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 36
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
02 GAJI PICTURE IS 999 02 KAS PIC 9(5)
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
02 HARGA PIC 999V99 03 LABA PIC 9(4)V9(3)
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.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 37
Contoh : Bentuk PIC
Panjang
02 PIUTANG PIC 9PPV 03 KAS PIC VPPP9(2)
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
02 SALDO PIC S99 02 SALDO PIC S99V9
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
02 NAMA PIC A(6) 03 NAMA PIC A(2)
6 2
Contoh Data Tersimpan di memory SAYA SAYAbb SA SA
05 PIC NAMA PIC A(4)
4
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
Teknik Pemrograman Terstruktur 1 / S1-MI
Contoh Data D2343 C16 B78901
Tersimpan di memory D2343 C16BB B7890
Di prosedur D2343 C16BB B7890 Page 38
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 nama record IN
Contoh : Pada DATA DIVISION : 01
01
MASTER. 02 BARANG-A. 03 JUMLAH 03 HARGA-SATUAN 02 BARANG-B. 03 JUMLAH 03 HARGA-SATUAN TRANSAKSI. 02 BARANG-A. 03 JUMLAH 03 HARGA-SATUAN 02 BARANG-B. 03 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).
Pada PROCEDURE DIVISION : COMPUTE TOTAL-B = JUMLAH OF BARANG-B OF TRANSAKSI * HARGA SATUAN OF BARANG-B OF TRANSAKSI.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 39
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. DATA DIVISION. FILE SECTION. Contoh Program Record Data Jamak : 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).
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 40
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 [
LIT2]
CONTOH : 01
SEX PIC A. 88 LAKI VALUE IS ‘L’. 88 WANITA VALUE IS ‘W’.
Didalam PROCEDURE DIVISION dapat dilakukan penyelesaian sebagai berikut :
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.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 41
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.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 42
Contoh Penggunaan 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. 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.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 43
Renames Clause Menyediakan programmer kemampuan untuk memberikan tambahan deskripsi tentang penggolongan kembali elemen-elemen data item. Dimulai dengan Level Number 66.
Contoh :
01
66
RECORD-A. 02 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 01
66
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. 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.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 44
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 000 000
Picture 02 HASIL PIC ++++ 02 HASIL-OUT PIC ++++ BLANK WHEN ZERO
Hasil output + 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. Bentuk Umumnya :
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 45
SYNCHRONIZED LEFT 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 02 FIELD-2 02 FIELD-3
PIC X(4) SYNC LEFT. PIC X(3) SYNC LEFT. 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
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 46
Bentuk Umum :
[USAGE IS]
DISPLAY COMPUTATIONAL COMP COMPUTATIONAL-3 CPM-3 INDEX
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 20 21 22 23 24 25 26 27 28 29 210 Dst
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.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 47
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.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 48
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.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 49
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).
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 50
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
To nama-data-2 [, nama data-3 ] ….. Literal
Contoh : 01 KIRIM. 02 UNIT 02 HARGA 01 TERIMA. 02 UNIT-OUT 02 HARGA-OUT
PIC 9(3). PIC 9(5). PIC 9(3). 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
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 51
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 nama-data-1 TO nama-data-2. 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 penerima Numerik integer Bentuk data pengirim Alphabetik Alphanumerik Numerik non integer Numerik yang di-edit Alphabetik Bisa Bisa Tidak
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 52
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
Teknik Pemrograman Terstruktur 1 / S1-MI
…[UPON nama-mnemonik]
Page 53
-
Posisi-tampilan merupakan posisi baris dan kolom tertentu dari hasil yang akan ditampilkan di layar di printer. Posisi tampilan ini mempunyai bentuk : Lin [{ + }] integer-1 Integer-2
,
COL [{+}] integer-3 integer-4
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 : ACCEPT nama-data 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 : ACCEPT nama-layar [ON ESCAPE statement-imperative ]
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 54
Apabila ON ESCAPE diikutsertakan, maka statement-imperative yang mengikutinya akan dikerjakan. Bentuk Statement ACCEPT yang ke-3 :
ACCEPT [posisi-layar] nama-data WITH
ZERO – FILL SPACE – FILL LEFT – JUSTIFY RIGHT – JUSTIFY TRAILING – SIGN PROMPT UPDATE LENGTH – CHECK EMPTY – CHECK AUTO – SKIP NO – ECHO BEEP
Posisi-layar menunjukkan letak dari posisi data yang akan dimasukkan pada layar. Posisi-layar ini mempunyai bentuk : Lin [{ + }] integer-1 Integer-2
,
COL [{+}] integer-3 integer-4
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
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 55
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.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 56
Bentuk Statement ACCEPT yang ke-4 :
DATE ACCEPT nama-data FROM
DAY TIME ESCAPE-KEY
DATE, akan mendapatkan 6 digit nilai standard dengan bentuk TTBBHH ( 2 digit untuk tahun. 2 digit untuk bulan dan 2 digit untuk hari) dari systemdate. 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.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 57
Contoh Program Bentuk statement ACCEPT : 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.
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
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 58
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 : STOP “ TEKAN SEMBARANG TOMBOL”.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 59
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
Bentuk ke-2 dari statement ADD : Nama-data-1 ADD Literal-1
nama-data-2
nama-data-3 ….GIVING nama-data-m [ROUNDED] literal-2 literal-3 [;ON SIZE ERROR statement imperative]
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 60
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
[ROUNDED] [;ON SIZE ERROR imperative-statement] CONTOH : SUBSTRACT A FROM B SUBSTRACT A, B FROM C SUBSTRACT A FROM B GIVING C SUBSTRACT 20 FROM 80 GIVING C SUBSTRACT 20, 15 FROM 100 GIVING B 65
B=B–A C=C–A–B C=B–A C = 80 – 20 B = 100 – 20 – 15 =
MULTIPLY Digunakan untuk membentuk statement guna instruksi perkalian dua nilai numerik dan menyimpan hasilnya. Bentuk Umum Statement MULTIPLY ke-1 : Nama-data-1 MULTIPLY literal-1 BY nama-data-2 [;ON SIZE ERROR imperative statement] Contoh : MULTIPLY A BY B
Teknik Pemrograman Terstruktur 1 / S1-MI
B=B*A
Page 61
Bentuk umum statement MULTIPLY ke-2 : MULTIPLY
Nama-data-1 literal-1
nama-data-2 literal-2
BY
GIVING nama-data-3 [ROUNDED] [;ON SIZE ERROR imperative statement]
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
INTO nama-data-2 [ ROUNDED]
[;ON SIZE ERROR imperative statement] CONTOH : DIVIDE A INTO B
B=B/A
Bentuk Statemen DIVIDE yang ke-2 : DIVIDE
Nama-data-1 literal-1
INTO
nama-data-2 literal-2
GIVING nama-data-3 [ROUNDED] [;ON SIZE ERROR imperative statement] CONTOH : DIVIDE A INTO B GIVING C
C=B/A
Bentuk Statemen DIVIDE yang ke-3 : DIVIDE
Nama-data-1 literal-1
BY
nama-data-2 literal-2
GIVING nama-data-3 [ROUNDED] [;ON SIZE ERROR imperative statement] Teknik Pemrograman Terstruktur 1 / S1-MI
Page 62
CONTOH : DIVIDE A BY B GIVING C DIVIDE 100 BY 50 GIVING Z
C=A/B Z=2
Bentuk Statement DIVIDE yang ke-4 : DIVIDE
Nama-data-1 literal-1
INTO
nama-data-2 literal-2
GIVING nama-data-3 [ROUNDED] REMAINDER nama-data-4 Contoh : [;ON SIZE ERROR imperative statement] DIVIDE A INTO B GIVING HASIL REMAINDER SISA BILA A = 2, B = 5 MAKA HASIL = 2 SISA =1 Bentuk Statemen DIVIDE yang ke-5 : DIVIDE
Nama-data-1 literal-1
BY
nama-data-2 literal-2
GIVING nama-data-3 [ROUNDED] REMAINDER nama-data-4 [;ON SIZE ERROR imperative statement] 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 :
COMPUTE nama-data-1 ungkapan arithmatika
Teknik Pemrograman Terstruktur 1 / S1-MI
[ROUNDED]
=
Page 63
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
Teknik Pemrograman Terstruktur 1 / S1-MI
Operational Relational < LESS THAN > GREATER THAN = EQUAL TO NOT> NOT GREATER THAN NOT< NOT LESS THAN NOT= NOT EQUAL TO
Page 64
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
✳ Ungkapan Arithmatika banyak digunakan pada verb COMPUTE ( lihat bab 12).
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 65
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.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 66
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 AFTER
ADVANCING
{ nama-data2 / int } PAGE
[ LINE ] [ LINES ]
[ ; AT { END OF PAGE/EOP } statement imperatif ] Keterangan : - statement WRITE Penulisan statement WRITE harus diikuti oleh nama-record dg levelnumber 01 pd FD di dalam DATA DIVISION yg dihubungkan dg suatu file yg dibuka.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 67
Jika file yg dibuka berupa disk-file, maka statement WRITE berfungsi untuk merekam data ke dalam file tersebut. Jika file yg dibuka berupa print-file, maka data akan dicetak pd printer. - BEFORE option Menunjukkan banyaknya spasi baris pencetakan antara baris yg sedang dicetak pd kertas printer dg baris pencetakan selanjutnya. - AFTER option Menunjukkan banyaknya spasi baris pencetakan yg digunakan oleh BEFORE atau AFTER yg ditunjukkan oleh nilai integer atau namadata2. integer 0 tanpa spasi integer 1 1 spasi baris integer 2 2 spasi baris integer 3 3 spasi baris Jika BEFORE atau AFTER tidak digunakan, maka pencetakan diprinter akan dianggap sebagai AFTER ADVANCING 1 LINES - PAGE option Digunakan bila data yg dicetak sebelum atau sesudah printer menempati posisi pd halaman baru selanjutnya. - END OF PAGE atau EOP phrase Menunjukkan baris yg terakhir dalam 1 halaman pencetakan diprinter. READ verb Digunakan untuk membaca record yg ada pd file. Bentuk umum : READ nama-file RECORD [ INTO nama-data ] [ ; AT END statement imperatif ]. Keterangan : - INTO option Digunakan bila data record yg dibaca akan dipindahkan secara langsung ke nama-data tertentu. - AT END clause Digunakan untuk mengetahui apakah data yg dibaca sudah habis.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 68
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 69
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).
Pada PROCEDURE DIVISION : MOVE UNIT TO UNIT-OUT Maka nilai data dari field UNIT akan dipindahkan ke field UNIT-OUT 2. MOVE CORRESPONDING nama-data1 TO nama-data2 Digunakan untuk memindahkan data dari group data-item ke group lain. Contoh : 01 RECORD-1. 02 AA PIC 99. 02 BB PIC XXX. 02 CC PIC 99. 01 RECORD-2. 02 AA PIC 99. 02 FILLER PIC X(5). 02 BB PIC XXX. 02 DD PIC 99. MOVE CORRESPONDING RECORD-1 TO RECORD-2. Statement MOVE CORRESPONDING tersebut akan memindahkan group data item RECORD-1 ke group data item RECORD-2 yg mempunyai nama data yg sama. Dalam pemindahan data dari sati field ke field yg lainnya perlu diperhatikan bagaimana data tersebut diorganisasikan dari field pengirim ke field penerima.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 70
PROCEDURE DIVISION LANJUT Pada Pokok Bahasan ini akan diterangkan tentang verb yang digunakan untuk membentuk suatu statement yang sifatnya loncatan, meloncat menuju ke suatu proses pada suatu paragraph tertentu, yaitu 1. GO TO verb. 2. GO TO….DEPENDING verb. 3. ALTER verb. 4. PERFORM verb . 5. EXIT verb. GO TO verb GO TO membentuk loncatan tanpa syarat, yaitu program proses meloncat langsung tanpa syarat ke nama paragraph yang di tunjuk. Bentuk Umum nya :
GO
TO
nama-
Statement GO TO harus selalu diikuti oleh nama-paragraph. Contoh : MOVE A TO B GO TO ALINEA-5. ALINEA-4. ADD X TO Y. ALINEA-5. MULTIPLY X BY Y. GO TO …….. DEPENDING verb GO TO …. DEPENDING verb akan membentuk statement yang akan membawa proses meloncat ( GO TO ) ke suatu nama-paragraph tergantung dari (DEPENDING) nilai nama-data yang ditunjukkan dalam statement ini. Bentuk Umumnya :
GO TO nama-paragraph-1, nama-paragraph2,… Contohnama-paragraph-n : GO TO TEMPAT-1, TEMPAT-2, HABIS DEPENDING ON KODE.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 71
Sebenarnya statement ini menyederhanakan bentuk statement IF untuk suatu kondisi : IF KODE = 1 GO TO TEMPAT-1. IF KODE = 2 GO TO TEMPAT-2. IF KODE KODE = 3 GO TO HABIS. ALTER Verb Alter berguna untuk merubah arah tujuan proses dari statement GO TO yang telah ada didalam program. Bentuk Umumnya :
ALTER nama-paragraph-1 TO [ PROCEED TO] nama-paragraph-2
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
PERFORM yang diikuti oleh THROUGH atau THRU option akan membawa proses menuju ke nama-paragraph-1 dan melanjutkan ke namapragraph-2, kemudian mengerjakan statement setelah statement PERFORM. Bentuk Umum ke-2 :
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 72
PERFORM nama-paragraph-1 Nama-data Numerik-integer
THROUGH THRU nama-paragraph-2
TIMES
Statement bentuk ini akan membuat paragraph yang akan di proses sebanyak lebih dari sekali, yang jumlah diwakili oleh nama-data ( numerik – integer). Contoh : MULAI. PERFORM MENCETAK 5 TIMES STOP RUN. MENCETAK. DISPLAY ‘ COBOL ‘ . OUTPUT : COBOL COBOL COBOL COBOL COBOL
Bentuk Umum ke –3 : PERFORM nama-paragraph-1 THROUGH THRU UNTIL kondisi
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
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 73
berulang kali sampai suatu kondisi yang di isyaratkan di dalam statement PERFORM terpenuhi. EXIT Verb Statement EXIT berfungsi untuk melakukan loncatan ke akhir paragraph yang di proses oleh PERFORM verb.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 74
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 ) Kondisi yang sederhana Dipergunakan untuk menyeleksi kondisi yang tunggal, yaitu membandingkan satu hubungan antara 2 item. Perbandingan ini ditunjukkan oleh tanda operasi hubungan ( relational operator ) Bentuk umum :
IF
Nama-data-1 Literal-1 lingkaran Arithmatika
IS [NOT] LESS THAN IS [NOT] < IS [NOT] EQUAL TO IS [NOT] = IS [NOT] GREATER THAN
nama-data-2 literal-2 lingkaran arithmatika
imperative statement
IS [NOT] >
Contoh : Teknik Pemrograman Terstruktur 1 / S1-MI
Page 75
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
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 IAYA - 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 76
DIBAWAH INI SALAH : IF NAMA IS NUMERIC GO TO PROSES. IF UMUR ALPHABETIC GO TO ISI-SALAH. 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 dari nama-kondisi Suatu nama kondisi dimulai dengan level number 88 ( harus) pada DATA DIVISION. Sedangkan pada PROCEDURE DIVISION statement kondisi dari nama-kondisi adalah suatu statement kondisi yang menyeleksi isi dari nilai data yang dikandung oleh nama-kondisi tersebut. 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
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 77
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.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 78
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 AFTER
ADVANCING
{ nama-data2 / int } PAGE
[ LINE ] [ LINES ]
[ ; AT { END OF PAGE/EOP } statement imperatif ] Keterangan : - statement WRITE Penulisan statement WRITE harus diikuti oleh nama-record dg levelnumber 01 pd FD di dalam DATA DIVISION yg dihubungkan dg suatu file yg dibuka. Jika file yg dibuka berupa disk-file, maka statement WRITE berfungsi untuk merekam data ke dalam file tersebut. Jika file yg dibuka berupa print-file, maka data akan dicetak pd printer. - BEFORE option Menunjukkan banyaknya spasi baris pencetakan antara baris yg sedang dicetak pd kertas printer dg baris pencetakan selanjutnya. - AFTER option Menunjukkan banyaknya spasi baris pencetakan antara baris yang sedang dicetak pada kertas di printer dengan baris pencetakkan sebelumnya. - ADVANCING option
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 79
Menunjukkan banyaknya spasi baris pencetakkan yang digunakan oleh BEFORE atau AFTER option, yg ditunjukkan oleh nilai integer atau nama-data2. integer 0 tanpa spasi integer 1 1 spasi baris integer 2 2 spasi baris integer 3 3 spasi baris Jika BEFORE atau AFTER tidak digunakan, maka pencetakan diprinter akan dianggap sebagai AFTER ADVANCING 1 LINES - PAGE option Digunakan bila data yg dicetak sebelum atau sesudah printer menempati posisi pd halaman baru selanjutnya. - END OF PAGE atau EOP phrase Menunjukkan baris yg terakhir dalam 1 halaman pencetakan diprinter. READ verb Digunakan untuk membaca record yg ada pd file. Bentuk umum : READ nama-file RECORD [ INTO nama-data ] [ ; AT END statement imperatif ]. Keterangan : - INTO option Digunakan bila data record yg dibaca akan dipindahkan secara langsung ke nama-data tertentu. - AT END clause Digunakan untuk mengetahui apakah data yg dibaca sudah habis. 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.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 80
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.
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 81
Daftar Pustaka Jogyanto, Pemrograman Bahasa COBOL, Andi Yogyakarta,1998
Teknik Pemrograman Terstruktur 1 / S1-MI
Page 82