• Tidak ada hasil yang ditemukan

BAB I PENDAHULUAN IDENTIFICATION DIVISION ENVIRONMENT DIVISION DATA DIVISION PROCEDURE DIVISION 1.1 KEUNTUNGAN BAHASA COBOL

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB I PENDAHULUAN IDENTIFICATION DIVISION ENVIRONMENT DIVISION DATA DIVISION PROCEDURE DIVISION 1.1 KEUNTUNGAN BAHASA COBOL"

Copied!
70
0
0

Teks penuh

(1)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 1

BAB I

PENDAHULUAN

COBOL singkatan dari COmmond Business Oriented Language adalah suatu bahasa komputer awam (High Level Language) yang berorientasi langsung pada permasalahan bisnis. Cobol hampir dapat digunakan pada semua komputer bila tersedia compiler Cobolnya.

Cobol dikembangkan mulai tahun 1959, oleh suatu kelompok yang disebut CODASYL (Conference On DAta SYstem Language). Versi pertama diberi nama COBOL 60 dan dikeluarkan pada tahun 1960. Sejak saat itu bermunculanlah sejumlah versi COBOL diberbagai mesin. Pada tahun 1968, ANSI (American National Standards Institute) yang menangani masalah standarisasi industri di Amerika Serikat mengeluarkan versi COBOL yang diberi nama ANS COBOL. Pada tahun 1974 dikembangkan menjadi ANSI COBOL 1974. Versi inilah yang selanjutnya dipakai sebagai acuan perkembangan COBOL, hingga ANSI mengeluarkan standard yang baru yaitu ANSI COBOL 1985. ANSI COBOL 1985 menyajikan fenomena pemrograman yang terstruktur mengikuti gaya pemrograman terstruktur pada bahasa Pascal dan C.

Pemrograman bahasa COBOL merupakan program terstruktur, yaitu program yang strukturnya jelas, mudah dibaca, dan mudah dipelajari, dan baik untuk dokumentasi. Struktur utama dari suatu program COBOL terdiri dari 4 divisi yaitu :

• IDENTIFICATION DIVISION

• ENVIRONMENT DIVISION

• DATA DIVISION

• PROCEDURE DIVISION

1.1 KEUNTUNGAN BAHASA COBOL

Penggunaan bahasa cobol mempunyai beberapa keuntungan, diantaranya :

1. Program Cobol dibuat dalam instruksi bahasa Inggris, sehingga lebih mudah dipelajari dan dibuat.

(2)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 2

2. Program Cobol sesuai untuk pengolahan data, yang banyak diterapkan pada permasalahan bisnis.

3. Program Cobol sifatnya standard, sehingga dapat dipergunakan pada komputer-komputer yang berbeda, tanpa banyak perbedaan.

4. Struktur program Cobol jelas, sehingga dapat dimengerti oleh orang seperti akuntan, auditor atau manajer-manajer yang hanya mempunyai pengetahuan pengolahan data yang sedikit.

5. Cobol menyediakan fasilitas listing program, bilamana perlu dapat diperiksa oleh orang lain selain programmernya.

6. Mudah didokumentasikan dan dikembangkan bilamana perlu.

1.2 ATURAN PENULISAN PROGRAM COBOL

Kolom yang tersedia untuk menulis program Cobol (source program) adalah mulai dari kolom 1 sampai dengan kolom 80 dengan aturan sebagai berikut :

olom 1-6 : digunakan untuk nomor urut bilamana diperlukan, sifatnya optional (boleh ditulis boleh tidak). Nomor yang diberikan harus urut dari kecil ke besar.

Kolom 7 : digunakan untuk :

a. Tanda baris sambungan dari baris sebelumnya dengan memberikan tanda hypen (-). Baris sambungannya ditulis mulai dari area B.

b. Bila kolom ini diisi dengan tanda (*), maka apa yang ditulis pada baris ini dianggap sebagai komentar saja.

c. Bila kolom ini diisi dengan slash (/), maka baris yang ada tandanya ini dianggap sebagai komentar dan akan dicetak mulai halaman baru teratas, bila source program dicetak diprinter.

d. Bila kolom ini diisi dengan karakter "D", baris ini juga akan dianggap sebagai komentar. Tetapi bila pada Environment Division dalam paragraph source-computer

(3)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 3

disebutkan With Debugging Mode, maka akan berguna untuk tujuan debugging (penelusuran kesalahan).

Kolom 8-11 : disebut dengan Area A.

Semua judul divisi, judul seksi, nama paragraph, judul file description (FD), level number 01 dan level number 77 ditulis mulai kolom ke 8 ini.

Kolom 12-72 : disebut dengan area B.

Semua elemen program selain yang ditulis di area A, ditulis pada area A ini.

Kolom 73-80 : Merupakan kolom yang tidak diproses oleh komputer, jadi bisadiisi dengan catatan-catatan apa saja hanya untuk dokumentasi progam.

Bentuk Data

Bentuk dari data dapat dibedakan menjadi dua golongan, yaitu : 1• Data variabel ( disebut dengan variabel ).

data yang nilainya dapat berubah-ubah selama eksekusi program. Misalnya data yang berasal dari keyboard sewaktu program dieksekusi

2• Data konstanta ( disebut dengan konstanta atau literal )

Sedangkan data konstanta adalah data yang bersifat tetap selama eksekusi berlangsung.

Contoh : Add 2 to x Keterangan :

2 adalah tipe data konstanta x adalah tipe data variabel

x = 5 hasil : 7

Sebelum Add 2 to x Sesudah Add 2 to x Data Konstanta / Literal :

(4)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 4

2. Non-numerik 3. Figuratif Konstanta

Literal Numerik/Konstanta numerik

Literal numerik menyatakan suatu konstanta bilangan. Sayarat penulisan literal numerik :

• Maksimal mengandung 18 digit

• Jika mengandung tanda + (plus) atau - (minus), tanda + atau - harus berada di sebelah kiri

• Tidak boleh ada karakter spasi

• Tanda pecahan boleh berada di mana saja selain pada posisi terkanan.

Jika suatu literal numerik tidak mengandung tanda plus atau minus akan dianggap sebagai bilangan positif.

Contoh penulisan literal yang benar : +1234567

23456.77 -19.45 1000

.25 (identik dengan 0.25) Contoh penulisan literal yang salah :

45. Tanda pecahan di bagian terkanan tidak diperkenankan Rp 6000 Suatu literal numerik tidak boleh diawali dengan huruf $ 500 Simbol khusu tidak diperbolehkan

- 100 Penulisan literal numerik tidak boleh mengandung spasi 1,6000.00 Tidak boleh mengandung pemisah ribuan

Literal Non-Numerik

Literal non-numerik adalah konstanta yang bisa mengandung baik huruf, digit maupun simbol khusus ( sering disebut dengan string ). Syarat penulisan literal non-numerik :

• Bisa terdiri sampai 120 karakter, dan diapit oleh karakter delimiter ( berupa petik-ganda atau petik-tunggal ).

• Kalau tanda pengapit berupa petik-tunggal dan literal mengandung tanda petik-tunggal, tanda petik-tunggal dalam literal perlu ditulis sekali lagi disampingnya.

(5)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 5

• Kalau tanda pengapit berupa petik-ganda dan literal mengandung tanda petik-ganda, tanpa petik-ganda dalam literal perlu ditulis sekali lagi di sampingnya.

Contoh penulisan literal non-numerik :

"Faizal Amri" ( Boleh ditulis menjadi : 'Faizal Amri' ) Latihan 1 :

1. Mengapa Bahasa Cobol perlu diterjemahkan terlebih dahulu. 2. Jelaskan pengertian - pengertian dibawah ini :

- Source Program - Objek Program - Syntax error - Logis error - Execution error

3. Sebutkan software yang dapat digunakan untuk menulis source program cobol serta cara kerjanya.

(6)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 6

Bab II

STRUKTUR PROGRAM

COBOL

Pada umumnya inti dari struktur program Cobol dibagi menjadi 4 bagian yang disebut dengan Division, dimana masing-masing divisi dimulai dengan suatu judul divisi. Program cobol terdiri dari 4 divisi, dimana setiap divisi memiliki beberapa seksi. Dimana urutan divisi tersebut dalam Cobol adalah sebagai berikut :

IDENTIFICATION DIVISION. ENVIRONMENT DIVISION. DATA DIVISION.

PROCEDURE DIVISION.

Masing-masing divisi terdiri dari urut-urutan susunan bagian, tersusun secara hirarki (jenjang), secara umum sebagai berikut :

Division. Region. Section. Paragraph Sentence/Entry Statement/Clause Phrase/Option

Istilah region, sentence, statement dan phrase/option digunakan pada PROCEDURE DIVISION, sedangkan istilah entry dan clause digunakan pada ke 3 divisi yang lain.

(7)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 7

DIVISION.

Adalah bagian utama dari suatu program Cobol. Suatu divisi harus diawali dengan suatu judul divisi.

REGION

Adalah suatu kumpulan bagian tertentu di dalam procedure division. Region ini diawali dengan judul declaratives dan diakhiri dengan judul END DECLARATIVES.

SECTION

Seksi (section) adalah satu kumpulan dari paragraph atau entry. Suatu seksi harus diawali dengan suatu judul seksi, contohnya CONFIGURATION

SECTION.

PARAGRAPH

Adalah suatu group dari kalimat (sentences) di dalam PROCEDURE DIVISION. Suatu paragraph harus selalu diawali dengan nama-paragrahp atau judul paragraph.

ENTRY

Suatu entry adalah sesuatu yang harus dituliskan pada tempat-tempat di dalam suatu program COBOL. Suatu entry dapat juga dikatakan sebagai suatu set (kumpulan) dari clause (anak kalimat), yang diakhiri dengan titik. Entry adalah istilah yang terdapat pada IDENTIFICATION DIVISION, ENVIRONMENT DIVISION dan DATA DIVISION. Sedang pada PROCEDURE DIVISION istilah ini disebut dengan sentence.

SENTENCE

Kalimat (sentence) adalah suatu kumpulan dari satu atau lebih statement (pernyataan). Akhir dari sentence harus diakhiri dengan titik. Sentence adalah istilah dalam PROCEDURE DIVISION.

(8)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 8

Anak kalimat (clause) adalah kumpulan dari kata (word) yang membentuk suatu arti. Clause adalah bagian dari entry. Suatu entry dapat terdiri dari beberapa clause.

STATEMENT

Pernyataan (statement) adalah perintah pengerjaan untuk komputer. Semua statement, kecuali statement COPY dapat terletak di mana saja, selain di PROCEDURE DIVISION.

PHRASE

Suatu group kata yang merupakan bagian dari statement atau clause.

Latihan 2 :

1. Buatlah contoh masing-masing bagian atau hirarki dari program cobol untuk masing-masing divisi.

2. Sebutkan paragraf yang harus ada dalam sebuah program Cobol, jelaskan fungsinya.

3. Jelaskan fungsi masing-masing divisi dalam program Cobol.

(9)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 9

Bab III

IDENTIFICATION DIVISION

Identification division merupakan divisi pertama dalam program cobol dan yang paling sederhana. Division ini merupakan keterangan (Identification) tentang program yang dibuat. Identification division terdiri dari beberapa paragraph.

Bentuk Umum dari Identification division.

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. ]

Keterangan bentuk umum :

(10)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 10

persis, bila ada.

<*> Tanda [ ] (bracket) merupakan bentuk yang ada diantara tanda tersebut,sifatnya optional, boleh ditulis, boleh tidak.

<*> Huruf kecil adalah nama yang dibentuk oleh programmer.

Judul divisi dan semua judul paragrap harus dimulai pada kolom 8 dan harus diakhiri dengan tiitk. Apabila programmer ingin mencantumkan namanya didalam program, karena nama paragraph AUTHOR walaupun digaris bawahi, maka kata ini harus ditulis persis seperti diatas.

Program-id menunjukkan identitas dari program, setiap program harus diberi nama supaya unik dapat dibedakan dari program yang lainnya. Penulisan nama program bebas, tetapi mempunyai aturan tertentu, hanya khusus nama program, panjangnya hanya boleh 6 karakter. Bila lebih dari 6 karakter, boleh tetapi yang dianggap unik hanya 6 karakater pertama, selebihnya diabaikan (maksimum 30 karakter panjangnya).

Contoh : Identification Division. Program-d. Barang. Author. Team-cobol. Installation. YPTK-Padang. Date-written. 30-Juni-1997. Date-compiled. 01-Juli-1997. Security. Rahasia.

Atau cukup ditulis sebagai berikut : Identification Division.

(11)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 11

BAB IV

ENVIRONMENT DIVISION

Environment division, sebagai divisi ke-2 menyediakan informasi mengenai peralatan yang dipergunakan didalam program. Divisi ini dibagi menjadi 2 seksi (section ) yaitu CONFIGURATION SECTION dan INPUT-OUTPUT SECTION. Environment Division ditulis pada area A.

Bentuk umum dari Environment Division :

CONFIGURATION SECTION

Pada seksi ini diterangkan mengenai jenis-jenis komputer yang digunakan dalam rangka pembuatan, pengkompilasian dan pemrosesan program.

(12)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 12

ENVIRONMENT DIVISION. CONFIGURATION SECTION.

SOURCE-COMPUTER. nama komputer [WITH DEBUGGING MODE ] OBJECT-COMPUTER. nama komputer.

SPECIAL-NAMES.

DECIMAL POINT IS COMMA

Contoh dalam program :

Environment division. Configuration section. Source-computer. IBM-PC.

(Untuk menunjukkan nama komputer yang digunakan) Object-computer. IBM-PC.

( Menunjukkan nama komputer yang digunakan untuk menjalankan program ) yang telah dikompilasi, yang sifatnya sebagai dokumentasi saja.

Special-names.

Decimal-point is comma.

(Titik desimal dituliskan dengan bentuk karakter "." atau titik (period). Bila diinginkan karakter lain lain, misalnya koma, dapat ditulis perintah diatas)

Input-Output Section.

(Bila digunakan file dengan media simpanan sekunder, maka paragraph file-control dalam seksi ini harus ditulis. Sebaliknya tidak ditulis file-file-control kalau tidak menggunakan media penyimpanan).

File-control entry bisa terdiri dari 3 bentuk, tergantung dari organisasi file yang akan dipergunakan. Organisasi file dapat berupa sequential file, indexed file dan relative file.

(13)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 13

Organisasi file secara sequential adalah organisasi file yang sifatnya urut. Data direkamkan di record pada file secara urut dan urutan ini tidak berubah. Kalau ada data baru maka akan direkamkan pada record urutan terakhir di file. Demikian juga kalau akan membaca data di file, maka akan dibaca urut dari record pertama.

Bentuk Umum paragraph FILE-CONTROL untuk organisasi file secara sequential adalah sebagai berikut :

INPUT-OUTPUT SECTION FILE-CONTROL

SELECT nama-file ASSIGN to [ DISK ] [ PRINTER ] [ ORGANIZATION IS [ LINE SEQUENTIAL ] [ ACCESS MODE IS SEQUENTIAL ]

[ FILE STATUS IS nama-data ]

Input-output section untuk Indexed file.

Organisasi indexed adalah organisasi file yang datanya dapat dimbil langsung di posisi record yang mempunyai nilai kunci tertentu yang unik.

Bentuk Umum paragraph FILE-CONTROL untuk organisasi file secara sequential adalah sebagai berikut :

(14)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 14

INPUT-OUTPUT SECTION FILE-CONTROL

SELECT nama-file ASSIGN to DISK ORGANIZATION IS INDEXD [ ACCESS MODE IS SEQUENTIAL RANDOM DYNAMIC RECORD KEY IS nama-data-1 [ FILE STATUS IS nama-data ]

Input-output section untuk Relative file.

Organisasi secara relative adalah organisasi file yang tiap-tiap recordnya dibedakan dengan suatu nomer record relatip. Organisasi relative file hanya pada disk. Bentuk umum paragraph FILE-CONTROL untuk organisasi file secara relative adalah :

INPUT-OUTPUT SECTION FILE-CONTROL

SELECT nama-file ASSIGN to DISK ORGANIZATION IS RELATIVE

[ ACCESS MODE IS SEQUENTIAL [, RELATIVE KEY IS nama-data-1 RANDOM

DYNAMIC , RELATIVE KEY IS nama-data-1 [ FILE STATUS IS nama-data-2 ]

BAB V DATA DIVISION

(15)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 15

1. Memberikan penjelasan tentang input data dan output yang dipergunakan.

2. Menjelaskan bagaimana data disimpan dan diorganisasikan, juga bagaimana sifat dari data tersebut.

3. Berisi keterangan tentang file, record, nama-data serta bentuk format yang akan digunakan di dalam PROCEDURE DIVISION.

DATA DIVISION dapat terdiri dari beberapa seksi, diantaranya yaitu : - FILE SECTION

- WORKING-STORAGE SECTION - SCREEN SECTION

FILE SECTION

Didalam seksi ini terdapat semua keterangan mengenai file-file yang dipakai didalam program. Keterangan ini meliputi nama-file, cara perekaman, jumlah record per block dan jumlah karakter per record, bagaimana labelnya serta nama dari record tersebut.

FILE SECTION ini ada bila dipergunakan file dalam bentuk simpanan sekunder yaitu disk atau printer dan mempunyai hubungan dengan INPUT-OUTPUT SECTION dalam ENVIRONMENT DIVISION.

Syntax :

DATA DIVISION. FILE SECTION. FD nama-file

LABEL RECORDS ARE OMITTED

VALUE OF FILE-ID IS nama-file di label RECORD IS

DATA nama-record-1 [, nama-record-2] RECORDS ARE

Judul FD ditulis pada area A dan diikuti oleh nama-filenya yang harus sama dengan nama-file yang disebutkan pada INPUT-OUTPUT SECTION dalam ENVIRONMENT DIVISION.

(16)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 16

LABEL RECORD atau LABEL RECORDS clause menunjukan apah file yang dipergunakan mempunyai label atau tidak.

Bentuknya :

RECORD IS STANDARD LABEL

RECORDS ARE OMITTED

LABEL RECORD IS OMITTED digunakan untuk card-file ( file yang berupa kartu plong ) atau print-file ( file yang berupa cetakan di printer ) yang tidak mempunyai label. Untuk disk-file ( file yang disimpan di disk ) yang mempunyai label, maka ditulis LABEL RECORD IS STANDARD.

VALUE OF FILE-ID clause

VALUE OF FILE-ID clause menunjukan informasi mengenai file yang mempunyai label di disk. Label di disk ini berupa suatu nama-file yang berisi data yang direkamkan tersebut. Jadi, jika suatu file berada di disk, maka harus disebutkan LABEL RECORD IS STANDARD dan VALUE OF FILE-ID diikuti oleh nama-filenya.

Syntax :

VALUE OF FILE-ID IS nama-file di label Contoh :

INPUT-OUTPUT SECTION. FILE-CONTROL.

SELECT REKAMAN ASSIGN TO DISK. DATA DIVISION.

FILE SECTION.

FD REKAMAN

RECORD CONTAINS 48 CHARACTERS LABEL RECORD IS STANDARD

VALUE OF FILE-ID IS "RELASI.DAT".

Nama-file di label dapat ditulis di antara tanda petik tunggal atau di antara tanda petik dua. Nama-file di label tidak sama dengan nama-file yang disebutkan pada judul FD dan pada SELECT clause. "RELASI.DAT" adalah nama-file di label.

DATA RECORD atau DATA RECORDS clause

DATA RECORD atau DATA RECORDS clause menunjukan nama-record di dalam file.

(17)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 17

RECORD IS

DATA nama-record-1 [, nama-record-2] RECORDS ARE

Clause ini sifatnya optional, hanya sebagai dokumentasi saja, boleh tidak ditulis, karena nama-record ini sudah ditunjukan pada record-description-entry.

Contoh :

Sebuah program COBOL dengan nama program PROG menggunkan file di disk untuk merekam datanya dengan nama-file MHS-FILE dan nama-file di label dengan nama "DAFMHS.DAT", nama recordnya adalah MHS-REC, mempunyai struktur record sebagai berikut :

Karakter Ke Keterangan Jenis Nama-Data

1 - 6 Nomor Mahasiswa Numerik Nomor-Mhs 7 - 27 Nama Mahasiswa Alphanumerik Nama-Mhs 28 - 68 Alamat Mahasiswa Alphanumerik Nama-Mhs Program Cobol ini juga menggunakan printer untuk mencetak hasil outputnya. Print-file ini diberi nama Cetak dan nama recordnya adalah baris-cetak, maka ditulis : IDENTIFICATION DIVISION. PROGRAM-ID. PROG. ENVIRONMENT DIVISION. CONFIGURATION SECTION. INPUT-OUTPUT SECTION. FILE-CONTROL.

SELECT MHS-FILE ASSIGN TO DISK SELECT CETAK ASSIGN TO PRINTER. DATA DIVISION.

FILE SECTION. FD MHS-FILE

RECORD CONTAINS 68 CHARACTERS LABEL RECORD IS STANDARD

(18)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 18

VALUE OF FILE-ID IS "DAFMHS.DAT" DATA RECORD IS MHS-REC.

01 MHS-REC.

02 NOMOR-MHS PIC 9(6). 02 NAMA-MHS PIC X(20). 02 ALAMAT-MHS PIC X(40). FD CETAK

LABEL RECORD IS OMITTED DATA RECORD IS BARIS-CETAK. 01 BARIS CETAK PIC X(80).

Penjelasan :

Karena dipergunakan dua buah file ( disk dan printer ), maka ada 2 buah FD ( file description ). Nama-file pada masing-masing SELECT clause harus sama dengan nama-file pada judul FD.

- FD (file-description) yaitu keterangan mengenai file yang dipergunakan

- Record Description Entry adalah keterangan terhadap record yang digunakan di file mengenai nama record, nama-data item, bentuk dari data item, panjang dari data item, nilai data item serta level dari masing-masing data item tersebut.

WORKING-STORAGE SECTION

Sebagai seksi yang ke dua didalam DATA DIVISION, seksi ini berfungsi untuk pemesanan tempat di internal memory ( Storage ) yang diperlukan oleh pekerjaan ( Working ) proses program. Pemesanan tempat ini biasanya digunakan untuk :

1. Bentuk, nilai dan nama data yang diperlukan di dalam proses, yang terpisah dan belum disebutkan pada FILE SECTION. Data yang disebutkan pada FILE SECTION adalah data yang akan diambil dari disk-file, atau data yang akan direkamkan pada disk-file, atau yang akan dicetak pada print-file.

Jadi yang disebutkan pada FILE SECTION adalah data yang berhubungan dengan file. Sedang data lain yang diperlukan oleh proses tetapi tidak berhubungan dengan file disebutkan pada WORKING-STORAGE SECTION.

(19)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 19

misalnya data yang akan dimasukan lewat layar terminal dengan perintah ACCEPT, atau data yang diterima dari lokasi storage yang lain dengan perintah MOVE atau data yang dihasilkan dari hasil suatu perhitungan arithmatika dengan statement COMPUTE, dan lainnya.

2. Persiapan Penulisan Judul

Bentuk judul dipersiapkan terlebih dahulu pada WORKING-STORAGE SECTION, yang nantinya di dalam PROCEDURE DIVISION bila akan dicetak judul tersebut, dapat dilakukan oleh statement DISPLAY atau WRITE.

3. Pemesanan tempat untuk data output yang akan ditampilkan.

Secara garis besar, seksi ini mengandung 2 golongan data, yaitu data item individu dan group data item ( membentuk suatu record ).

Bentuknya :

Working-storage section. 77-level data description entry record description entry

Data item individu, disebut juga dengan noncontigous elementary items atau stand-alone items, ditunjukan oleh level number 77, sedang group data item diawali dengan level number 01.

Contoh :

Working-storage section. 77 total pic 9(5) value 0.

77 gaji-kar pic 9(6).

77 nomor-hal pic 999 value zero. 77 garis pic x(80) value all '-'.

Pada contoh ini, terlihat bahwa ada pemesanan tempat di memory ( storage ) untuk data item individu. Data item pertama yang dipesankan tempat adalah dengan nama total bentuknya adalah numerik ( ditunjukan oleh karakter

(20)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 20

picturenya ) sepanjang 5 digit yang nilai awalnya dipasang nol oleh value clause. Nomor 77 adalah level number untuk data-description data item individu ( harus nomor 77 ).

Pemesanan tempat kedua untuk nama-data gaji-kar juga numerik sepanjang 6 digit tanpa nilai awal. Yang ketiga adalah dengan nama-data nomor-hal numerik 3 digit bernilai awal nol ( zero berarti sama dengan nol, figurative konstant ). Yang keempat dengan nama-data garis, berbentuk alphanumerik bernilai karakter "-" sebanyak 80 karakter. All '-' juga figurative konstant.

Contoh :

Akan dicetak sebuah judul sebagai berikut :

LAPORAN PENJUALAN UNTUK DAERAH SUMBAR Maka pada working-storage section dapat dituliskan : Working-storage section.

01 judul.

02 filler pic x(15) value spaces.

02 filler pic x(40) value "Laporan Penjualan Untuk Daerah Sumbar". 02 filler pic x(25) value spaces.

Contoh ini adalah untuk group data item dengan nama-record Judul yang berisi data -item data-item yang ditunjukan oleh level number yang lebih besar (02). Keterangan :

1. Level number 01 ditulis pada area A yaitu kolom ke 8, untuk mengawali keterangan nama-record (harus 01).

2. Nama-record untuk level number 01 ditulis pada kolom ke 12 area B

3. Level number 02 ditulis mulai pada area B kolom 12 (tidak harus 02, bisa bervariasi sampai 49).

(21)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 21

4. Nama datanya ditulis dengan diberi jarak paling sedikit 1 spasi

5. Filler digunakan untuk menyatakan suatu nilai yang tidak akan ditunjuk lagi pada procedure division.

6. Bila 1 baris tidak cukup dapat disambung pada baris selanjutnya dengan memberikan tanda '-' (hypen) pada kolom 7 pada baris sambungan, dan sambungan baris berikutnya ditulis pada area B.

Contoh :

Akan dimasukkan data lewat layar terminal, dengan susunan data tiap recordnya sebagai berikut :

Item Jenis Panjang

NAMA alphabetik 20

ALAMAT

- nomor jalan alphanumerik 20

- kota alphabetik 15

- negara alphabetik 15

SEX alphabetik 1

Pada working-storage section akan tampak : Working-storage section. 01 DAFTAR-PRIBADI. 02 NAMA pic x(20). 02 ALAMAT. 03 nomor-jalan pic x(20). 03 kota pic x(15). 03 negara pic x(15). 02 SEX pic x.

(22)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 22

Screen Section.

Seksi ini berguna untuk menunjukkan bentuk format dari layar terminal untuk menampilkan data atau memasukkan data. Data item yang digunakan dapat berupa group data item atau data item individu, dengan level number 01 sampai 49, yang sudah disebutkan pada FILE SECTION atau pada WORKING-STORAGE SECTION. Screen section berhubungan dengan statement DISPLAY dan ACCEPT dalam PROCEDURE DIVISION. Statement display dipergunakan untu menampilkan format yang telah dibentuk di screen section pada layar terminal. Sedangkan statement ACCEPT digunakan untuk memasukkan nilai data item lewat layar terminal dengan format yag dibentuk pada screen section tersebut. Diantara clause yang digunakan pada screen section adalah sebagai berrkut :

BLANK SCREEN clause

Blank screen clause digunakan untuk membersihkan layar dan menempatkan cursor pada posisi kiri atas (baris 1, kolom 1).

LINE clause

Line clause digunakan untuk menempatkan cursor pada posisi baris tertentu di layar. Bila tidak disebutkan nilai posisi barisnya, berarti LINE PLUS 1, yaitu akan ditampilkan bergeser 1 baris dari baris sebelumnya. Kalau akan ditampilkan bergeser sebanyak 3 baris dari baris sebelumnya, maka ditulis LINE PLUS 3.

COLUMN clause

Column clause digunakan untuk menempatkan cursor pada posisi kolom tertentu di layar. Bila tidak disebutkan posisi kolomnya, maka akan ditempatkan pada kolom 1.

BLANK LINE clause

Blank line clause digunakan untuk menghapus tampilan pada baris tertentu di layar.

(23)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 23

BELL clause

Bell clause digunakan untuk menimbulkan suara bel

UNDERLINE, REVERSE-VIDEO, HIGHLIGHT dan BLINK clause

Clause diatas digunakan untuk memberi garis bawah pada tampilannya.

UNDERLINE clause

digunakan untuk memberi garis bawah pada tampilannya.

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 tampilannya.

FROM, TO dan USING clause

FROM, TO dan USING clause digunakan untuk menampilkan atau menerima data yang bentuk data-itemnya dihubungkan ditempat lain di luar Screen Section ini, misalnya pada Working-storage section, File section atau Linkage section.

From clause digunakan untuk menampilkan isi data.

Contoh program dari statemen pada screen section diatas : Identification division.

Program-id. Team-cobol. Environment division.

(24)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 24

Data division.

Working-storage section. 01 Data-karyawan.

02 Nama pic x(20) value "KAMU".

02 Jabatan pic x(10) value "SALESMAN". 02 Gaji pic 9(5) value 75000

Screen section. 01 Layar-tampilan. 02 Blank screen.

02 Line 4 value "NAMA KARYAWAN :" 02 column plus 1 pic x(20) from nama. 02 Line 5 value "JABATAN :" 02 column plus 1 pic x(10) from jabatan. 02 line 6 value "GAJI : Rp ". 02 column plus 1 pic 9(5) from gaji.

procedure division.

display layar-tampilan. stop run.

Bila program ini dijalankan, akan mendapat hasil : NAMA KARYAWAN : BADU

JABATAN : SALESMAN

GAJI : Rp 75000

Penjelasan :

Hasil yang ditampilkan, untuk data-itemnya, nilai tersebut diambilkan dari ( From ) working-storage section, yang sudah diisi nilainya dengan Value Clause.

TO Clause digunakan untuk menerima isi data.

Identification division. Program-id. Team-cobol. Environment division.

(25)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 25

Data division.

Working-storage section. 01 Data-karyawan.

02 Nama pic x(20) value space.

02 Jabatan pic x(10) value space. 02 Gaji pic 9(5) value space. Screen section.

01 Layar-tampilan. 02 Blank screen.

02 Line 4 value "NAMA KARYAWAN :" 02 column plus 1 pic x(20) to nama. 02 Line 5 value "JABATAN :" 02 column plus 1 pic x(10) to jabatan.

02 line 6 value "GAJI : Rp ". 02 column plus 1 pic 9(5) to gaji.

procedure division.

display layar-tampilan. accept layar-tampilan. stop run.

Bila program ini dijalankan, pertama kali di layar akan berbentuk : NAMA KARYAWAN : ...

JABATAN : ...

GAJI : Rp ...

Kemudian data dimasukan dengan mengetikan lewat keyboard sebagai berikut NAMA KARYAWAN : Faizal Amri

JABATAN : Personalia

GAJI : Rp 750000

(26)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 26

Pada procedure division, pertama kali bentuk dari layar-tampilan ditampilkan. Nilai dari data item nama, jabatan dan gaji yang diberi nilai space pada working-storage section, tidak turut ditampilkan karena menggunakan To clause dalam screen section. Baru setelah perintah Accept, nilai-nilai data diketik, dimasukan ke ( To ) masing-masing data item yang bersangkutan.

From dan To clause dapat dipergunakan bersama-sama. Bila From dan To clause dipergunakan bersama-sama, penggunaan ini dimasukan untuk tujuan menampilkan terlebih dahulu nilai dari ( From ) data item sebelumnya, yang langsung kemudian dimasukan nilai data baru ke ( To ) tempat lokasi data item tersebut. Contoh : Identification division. Program-id. Team-cobol. Environment division. Data division. Working-storage section. 01 Data-karyawan.

02 Nama pic x(20) value "Faizal Amri".

02 Jabatan pic x(10) value "Personalia". 02 Gaji pic 9(5) value 750000. Screen section.

01 Layar-tampilan. 02 Blank screen.

02 Line 4 value "NAMA KARYAWAN :"

02 column plus 1 pic x(20) from nama to nama. 02 Line 5 value "JABATAN :"

02 column plus 1 pic x(10) from jabatan to jabatan. 02 line 6 value "GAJI : Rp ". 02 column plus 1 pic 9(5) from gaji to gaji. procedure division.

display layar-tampilan. accept layar-tampilan. stop run.

(27)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 27

Bila program ini dijalankan, pertama kali akan ditampilkan terlebih dahulu nilai sebelumnya dari data-item bersangkutan, sebagai berikut :

NAMA KARYAWAN : Faizal Amri JABATAN : Personalia

GAJI : Rp 750000

Kemudian nilai dari data item tersebut dimasukan : NAMA KARYAWAN : Muhammad

JABATAN : Administrasi

GAJI : Rp 500000

LEVEL NUMBER

Level number atau nomor jenjang adalah suatu nomor yang menunjukkan jenjang dari data item dalam suatu record. Makin besar nomor levelnya, makin rendah jenjang tingkatannya.

Level number yang dipakai terdiri dari :

Level Number 01 :

Mendefenisikan variabel induk contoh : Data Division. Working-storage Section. 01 Record-Mahasiswa. 02 Nama pic x(15). 02 Nobp pic x(8). 02 Nilai pic 9(3). • Level number 77

Digunakan untuk mendefenisikan item yang berdiri sendiri (independent item) contoh :

(28)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 28 Working-Storage section. 77 penjualan pic 9(8). 77 Harga pic 9(6). 77 Stock pic 9(4). • Level number 02, 03, 04, ..., 49

Mengawali keterangan dari data item ( bagian dari level number 01 ) contoh : 01 Record-penjualan 02 no-faktur pic x(5). 02 tgl-penjualan. 03 Tanggal pic 9(2). 03 Bulan pic 9(2). 03 Tahun pic 9(2). • Level number 88

Mengawali suatu nama kondisi contoh : Working-storage section. 01 Jenis-Kelamin pic x. 88 laki-laki value "L" , "l". 88 Perempuan value "P" , "p".

PICTURE

Picture digunakan untuk menjelaskan bentuk ( type ) serta ukuran dari data yang akan digunakan.

• PICTURE UNTUK DATA YANG TIDAK DIEDIT

digunakan untuk data yang akan disimpan di dalam memori yang nantinya dapat diolah menjadi bentuk yang lebih informatif.

Picture Pemakaian

(29)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 29

A Alphabetik X ALphanumerik V Titik Desimal Anggapan P Faktor Penyekala Desimal

S Bilangan Bertanda (Positif / Negatif )

• PICTURE UNTUK DATA YANG TIDAK DIEDIT

digunakan untuk merobah bentuk data yang telah tersimpan di memori sehingga informasi yang disajikan lebih mudah dibaca.

Picture Pemakaian

Z Mengganti nol yang tak berarti dengan space $ Tanda Mata uang

* Memberi tanda *

' Memberi tanda ' (koma) . Tanda titik desimal + / - Tanda + dan -

DB/CR Tanda Debit dan Credit B Penyisipan Spasi / Penyisipan tanda '/' contoh : Nama Data-item Picture Data Masukan Di Memori Di Prose KODE X(5) 2045 2 0 4 5 2 0 4 5 NAMA X(8) COBOL C O B O L C O B O L UNIT 9(4) 25 0 0 2 5 0 0 2 5 HARGA 9(6)V99 15500.75 1 5 5 0 0 . 7 5 0 1 5 5 0 0 7 5 KAS 9(4) 16798 1 6 7 9 1 6 7 9 SALDO S999 -25 0 2 5 0 2 5

(30)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 30

VALUE

Berfungsi untuk memberi nilai awal dari suatu data item. Pemberian nilai awal dilakukan dengan menyertakan value setelah picture.

Contoh :

Working-storage section. 77 Harga pic 9(5) value 5000 77 Jumlah pic 9(4) value 0

Konstanta figurative (seperti : zero, space, high value dll ) juga dapat digunakan dalam pemberian nilai awal.

Contoh :

Working-storage section 77 Jumlah pic 9(4) value zero 77 Jawaban pic x value space

FILLER

Digunakan untuk menampilkan atau membuat bentuk tampilan dengan format yang diinginkan.

Contoh :

Bentuk tampilan sebagai berikut :

DAFTAR NAMA-NAMA MAHASISWA AMIK YPTK PADANG

Program :

Identification division. Program-id. contoh-filler.

(31)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 31

Environment division. Data division.

Working-storage section. 77 Garis pic x (60) value all "-" 01 Judul-1.

02 Filler pic x (40) value "DAFTAR NAMA-NAMA MAHASISWA". 01 Judul-2.

02 Filler pic x (40) value " YPTK PADANG ". Procedure Division.

Mulai.

Display garis.

Display judul-1, judul-2. Display garis.

(32)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 32

BAB VI

PROCEDURE DIVISION

Pada divisi sebelumnya sudah dipersiapkan semua sarana yang nantinya dibutuhkan dalam suatu pekerjaan proses. Divisi ini merupakan inti dari pemrograman COBOL. Statement yang ada di PROCEDURE DIVISION diantaranya adalah sebagai berikut :

~ MOVE ~ DISPLAY

~ ACCEPT

MOVE

Verb ini berguna untuk memindahkan data dari satu field ke lokasi field yang lain, sehingga input data dapat dimanipulasi untuk menghasilkan output. Bentuk umum :

MOVE nama-data-1 TO nama-data-2 [, nama-data-3 ] ... literal

Contoh :

Move unit to unit-out ( memindahkan nilai data dari field unit ke field unit-out )

(33)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 33

Move zero to kuantitas ( memindahkan karakter nol ke record kuantitas )

DISPLAY

Statement display dipergunakan untuk menampilkan hasil di layar ataupun di printer. Kalau dipergunakan statement Write untuk menampilkan hasil di printer, maka print-file harus disebutkan terlebih dahulu di environment division pada file-control dan select clause, tetapi dengan statement display, tidak perlu menyebutkannya.

Ada 3 bentuk dari statement display : Bentuk statement display ke 1 :

Display nama-layar Contoh : identification division. program-id. display1. environment division. data division. screen section. 01 hapus-layar. 02 blank screen. procedure division. mulai. display hapus-layar. stop run.

Bentuk statement display ke 2:

Display nama-data-literal

(34)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 34 identification division. program-id. display2. environment division. data division. working-storage section. 01 nilai-celcius.

02 celcius pic 9(5) value 50. 01 nilai-hasil.

02 celcius-out pic 9(5). 02 fahrenheit pic zzz.99. procedure division. hitung.

compute fahrenheit = 1.8 * celcius +32. tampilkan.

move celcius to celcius-out. display "Perhitungan :".

display celcius-out,'Derajad celcius adalah :'. display fahrenheit,'Derajat Fahrenheit'. selesai.

stop run.

Bentuk statement display ke 3:

Display (posisi-tampilan) nama-data literal.

Contoh : identification division. program-id. display3. environment division. data division. screen section. 01 hapus-layar. 02 blank screen. procedure division.

(35)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 35

tampilkan.

display hapus-layar. display (2, 5) "Bahasa Cobol".

stop run.

ACCEPT

Statement accept digunakan untuk memasukan data lewat layar sewaktu program tersebut dijalankan ( pada waktu run time ). Ada 3 bentuk statement accept yang tersedia :

Bentuk statement accept ke 1 :

Accept nama-data

Data yang dimasukan, akan ditempatkan pada nama-data setelah accept, yang bentuk, jenis dan panjangnya sudah ditentukan dalam Data Division.

Contoh : identification division. program-id. accept1. environment division. data division. working-storage section. 01 variabel. 02 nobp pic x(8). 02 nama pic x(20). screen section. 01 hapus-layar. 02 blank screen.

(36)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 36

procedure division. tampilkan.

display hapus-layar.

display (5, 10) "Nobp Mahasiswa :".

accept nobp.

display (6, 10) "Nama Mahasiswa :".

accept nama.

stop run.

Bentuk statement accept yang ke 2 :

Accept nama-layar. contoh : identification division. program-id. accept1. environment division. data division. working-storage section. 01 variabel. 02 nobp pic x(8). 02 nama pic x(20). screen section. 01 hapus-layar. 02 blank screen. 01 layar-data.

02 line 5 column 10 value "Nobp Mahasiswa :". 02 column plus 1 pic x(8) to nobp.

02 line 6 column 10 value "Nama Mahasiswa :". 02 column plus 1 pic x(20) to nama.

procedure division. tampilkan.

display layar-data. accept layar-data.

(37)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 37

stop run.

Bentuk statement accept yang ke 3 :

Accept (posisi-layar) nama-data

identification division. program-id. accept1. environment division. data division. working-storage section. 01 variabel. 02 nobp pic x(8). 02 nama pic x(20). screen section. 01 hapus-layar. 02 blank screen. procedure division. tampilkan. display hapus-layar.

display (5, 10) "Nobp Mahasiswa :". accept (5, 30) nobp.

display (6, 10) "Nama Mahasiswa :". accept (6, 30) nama.

stop run.

Statement Arithmatik

Cobol mempunyai 4 verb dasar untuk membentuk statement operasi arithmatika yaitu : - Add ( penjumlahan ) - Subtract ( Pengurangan ) - Multiply ( mengali ) - Divide ( membagi ). ADD

(38)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 38

Verb ini 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 dari statement Add, yaitu :

Bentuk 1 :

ADD nama-data-1 nama-data-2 ... TO nama-data-3 {ROUNDED}

Literal-1 , literal-2

{ ON SIZE ERROR statement-imperatif }

Bentuk 2 :

ADD nama-data-1 nama-data-2 nama-data-3 Literal-1 literal-2

GIVING nama-data-4 {ROUNDED} { ON SIZE ERROR statement-imperative }

contoh :

(39)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 39

add a, b to c, d

pernyataan diatas identik dengan add a, b t c

add a, b to d

SUBTRACT verb

Verb ini digunakan untuk membentuk statement operasi arithmatika pengurangan suatu nilai operand numerik.

SUBTRACT nama-data-1 nama-data-2 nama-data-3 Literal-1 literal-2

FROM nama-data-n GIVING nama-data-m literal-n

[ ROUNDED ] [; SIZE ERROR imperative-statemen ]

Contoh :

* Subtract A From B On Size Error * Subtract A From B Giving C Rounded On Size Error Goto ...

(40)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 40

Verb ini digunakan untuk membentuk statement guna instruksi perkalian dua nilai numerik dan menyimpan hasilnya.

Bentuk -1

MULTIPLY nama-data-1 BY

Literal-1 {; ON SIZE ERROR statement-imperative }

Bentuk -2 :

MULTIPLY nama-data-1 BY nama-data-2 Literal-1 Literal-2 GIVING nama-data-3 {ROUNDED}

{ ON SIZE ERROR statement-imperative }

Bila hasil perkalian akan disimpan pada salah satu field dari numerik data pengali, maka digunakan bentuk BY. Bila hasil perkalian akan disimpan di tempat yang lain, maka digunakan bentuk BY dan bentuk optional GIVING bersama-sama. Contoh :

Multiply A By B

Multiply A By 5 Giving B Multiply A By B Giving C

(41)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 41

Verb ini digunakan untuk membentuk statement operasi pembagian. Bentuk-1 :

DIVIDE { nama-data-1 } INTO nama-data-2 [ROUNDED ]

{ Literal-1 } {; ON SIZE ERROR statement-imperative }

COMPUTE

Pada statement arithmatik sebelumnya, lebih cocok untuk perhitungan arithmatika tunggal dan sederhana. Dengan digunakan COMPUTE verb di dalam ungkapan matematik yang rumit akan menyederhanakan statement tersebut. Contoh : Untuk perhitungan sebagai berikut :

Y = A + B - C x E D

Jika digunakan arithmatika sebelum, akan digunakan banyak statement untuk memecahkannya, sebagai berikut :

Add A To B Divide D Into C Multiply C By E

Subtract E From B giving Y

(42)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 42

COMPUTE Y = A + B - ( C/D ) * E

Statement Percabangan

GO TO Verb

Statement Go to akan membawa proses program menuju ke suatu paragraph tertentu.

Bentuk Umum :

GO TO nama-paragraph

contoh :

Identification division. Program-id. Contoh Go-To Envirenment Division. Data Division. Working-storage section. 77 nmb pic A(10). 77 jmb pic 9(5). 77 hrg pic 9(6). 77 tot-penj pic 9(8). Procedure Divison. paragraf-1.

Display (10, 10) "Data Penjualan " Display (12, 10) "Nama Barang : ". Accept (12, 28) nmb.

(43)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 43

paragraf-2.

compute tot-penj = penj * hrg.

Display (18, 10) " Total Penjualan : " , tot-penj. stop run.

paragraf-3.

Display (14, 10) "Jumlah Barang : ". Accept (14, 28) jmb.

Display (16, 10) "Harga Barang : ". Accept (16, 28) hrg.

go to paragraf-2. Bentuk 2 :

GO TO nama-paragraph-1, nama-paragraph-2, ... nama-paragraph-n

DEPENDING ON nama-data

contoh :

Identification division.

Program-id. Go to Depending ON. Environment Division. Data Division. Working-storage section. 77 fakultas pic 9. Procedure Division.. par-1.

Display (10, 10) "Fakultas Anda ( (1)STMIK/(2)AMIK/(3)STIE/(4)AAMPK ) ? : " Accept fakultas.

Display (1, 1) erase.

go to fak1, fak2, fak3, fak4 depending on fakultas Display "Fakultas Anda tidak Ada Lho ... !" Go to par-1.

(44)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 44

Display (10, 10) "Fakultas Anda adalah "STMIK" " Go to Selesai.

fak2.

Display (10, 10) "Fakultas Anda adalah "AMIK" " Go to Selesai.

fak3.

Display (10, 10) "Fakultas Anda adalah "STIE" " Go to Selesai.

fak4.

Display (10, 10) "Fakultas Anda adalah "AAMPK" " Go to Selesai.

Selesai. Stop run.

PERFORM

Berfungsi untuk membawa proses dari program meloncat ke suatu paragraf tertentu, mengerjakan seluruh isi paragraph tersebut dan setelah selesai kembali lagi ke statement setelah statement perform.

Bentuk 1 :

PERFORM nama-paragraph-1 THROUGH nama-paragraph-2 THRU contoh : Identification division. Program-id. Contoh-perform. Environment division. Data Division. Working-Storage section. par-a. Display "STMIK-AMIK-STIE-AAMPK"

(45)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 45

perform par-b. stop run. par-b.

Display " "YPTK" PADANG". hasil :

STMIK-AMIK-STIE-AAMPK "YPTK" Padang

Bentuk 2 :

PERFORM nama-paragraph-1 THROUGH nama-paragraph-2 THRU

UNTIL kondisi

contoh :

Identification division.

Program-id. Contoh perform-kondisi. Environment Division. Data Division Working-storage section. 77 saldo pic S9(7). 77 jml-tr pic 9(5). 01 jenis pic x. 88 ambil value "1". 88 setor value "2". 77 jawab pic x. Screen Section. 01 masukan.

(46)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 46

02 line 10 column 20 "Entri Transaksi ". 02 line 12 column 20 "Saldo Tabungan : ". 02 column plus 1 pic S9(7) from saldo. 02 line 14 column 20 "Jenis Transaksi : ". 02 column plus 1 pic x to jenis.

02 line 16 column 20 "Jumlah Transaksi : ". 02 column plus 1 pic 9(5) to jml-tr.

01 hasil.

02 line 16 column 20 "Sisa saldo : ". 02 column plus 1 pic S9(7) from saldo. Procedure division.

proses-1.

move 0 to ambil, setor, saldo move "Y" to Jawab

perform proses-lagi until jawab = "T" or "t" stop run.

proses-lagi.

display masukan accept masukan

if jenis = "1"

compute tsaldo = saldo - jml-tr move tsaldo to saldo, sisa-saldo else

compute tsaldo = saldo + jml-tr. move tsaldo to saldo, sisa-saldo. display hasil.

Bentuk 3 :

PERFORM nama-paragraph-1 THROUGH nama-paragraph-2 THRU

nama-data

(47)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 47

contoh :

Identification Division.

Programi-d. perform... times. Environment Division.

Data Division. Procedure Division. awal.

display (1, 1) erase

perform tampilkan 10 times. stop run.

tampilkan.

display "SAYA BELAJAR BAHASA COBOL ".

Hasil :

"SAYA BELAJAR BAHASA COBOL " akan ditampilkan sebanyak 10 kali.

PERFORM nama-paragraph-1 THROUGH nama-paragraph-2

THRU

nama-data-1 nama-data-2

VARYING nama-index-1 FROM integer-1 nama-index-2 nama-data-3

(48)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 48

STATEMENT IF

Dalam suatu permasalahan yang memerlukan pengambilan sebuah keputusan terhadap sejumlah alternatif. Misalnya, untuk menentukan seorang pembeli akan diberi korting atau tidak berdasarkan total pembelian, besarnya komisi yang diterima oleh seorang penjual berdasarkan kriteria.

Dalam bahasa Cobol, persoalan yang memerlukan pengambilan keputusan dapat diselesaikan dengan menggunakan kalimat IF.

Bentuk Umum : IF kondisi ( pernyataan-1 ) .... [ ELSE ( pernyataan-2 ) .... ] Kondisi Hubungan

Kondisi Hubungan melibatkan operator hubungan (Relational Operator) yang terdiri atas :

(49)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 49

IS LESS THAN atau IS < IS GREATER THAN IS > IS EQUAL TO IS = IS NOT LESS THAN IS NOT < IS NOT GREATER THAN IS NOT > IS NOT EQUAL TO IS NOT =

Kurang dari Lebih dari Sama dengan Tidak Kurang dari Tidak lebih dari Tidak sama dengan

contoh : Identification Division. Program-id. Contoh-If. Environment Division. Configuration section. Special-names. Decimal-point is comma. Data Division. Working-storage section. 77 gb pic 9(8). 77 lb pic 9(2). 77 hn pic 9(6). 77 jawab pic x. 01 Data-masukan. 02 nik pic x(7). 02 nmk pic x(20). 02 jk pic 9(3). 02 gp pic 9(6). Screen section. 01 layar-masuk.

02 line 2 column 20 "Perhitungan Gaji "PT. COBA-COBA" ". 02 line 4 column 20 "Nomor Induk Karyawan : ".

02 column plus 1 pic x(7) to nik.

02 line 6 column 20 "Nama Karyawan : ". 02 column plus 1 pic x(20) to nmk.

(50)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 50

02 line 8 column 20 "Jam Kerja : ". 02 column plus 1 pic 9(3) to jk.

02 line 10 column 20 "Gaji Pokok : ". 02 column plus 1 pic 9(6) to gp.

01 layar-tampil.

02 line 12 column 20 "Gaji Bersih : " 02 Column pus 1 pic zzz.zzz.

01 layar-tanya.

02 line 14 column 20 "Ada data lagi (Y/T) : ". 02 column plus 1 pic x to jawab.

Procedure Division. proses-1.

display (1, 1) erase move "Y" to jawab.

perform masuk until jawab = "T" or "t" stop run. masuk. display layar-masuk. accept layar-masuk. if jk < 40 move 0 to lb else compute lb = jk - 40 if lb < 5 compute hn = lb * 1000 else

if lb not < 5 and lb not > . Display layar-tampil. Accept layar-tampil. Display layar-tanya Accept layar-tanya. Disk layar Kasus

(51)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 51

Dengan mempergunakan kasus yang sama pada modul sambungan disk layar (sambungan 1), akan dibuat program untuk menentukan bentuk tampilan sbb :

LAPORAN PAJAK

Departemen : xxxxxxxxxxxx

--- NO NIP NAMA PEGAWAI GJ.BERSIH PAJAK --- 99 xxxxxx xxxxxxxxxxxxxxx 9999999 999999 99 xxxxxx xxxxxxxxxxxxxxx 9999999 999999 --- Total Departemen 99999999 9999999 ... ... dst Departemen : xxxxxxxxxxxx --- NO NIP NAMA PEGAWAI GJ.BERSIH PAJAK --- 99 xxxxxx xxxxxxxxxxxxxxx 9999999 999999 99 xxxxxx xxxxxxxxxxxxxxx 9999999 999999 --- Total Departemen 99999999 9999999 Total Seluruhnya 999999999 99999999

(52)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 52

Untuk membuat laporan diatas data pada file Pegawai tersusun secara SEQUENTIAL (terurut) berdasarkan departemen / bagian, mulai dari departemen / bagian HUMAS s/d PERSONALIA.

Sebelum anda membuat program ini, bukalah program MASUK-2.COB (program memasukkan data pd file PEGAWAI) tukarlah OPEN EXTEN PEGAWAI dengan OPEN OUTPUT PEGAWAI, kompilasi program MASUK-2.COB kemudian entrikanlah data misalkan sbb :

--- record 1 HUMAS 921871 FRANSISCA 75 5000 2 HUMAS 921872 ELVIRA 70 4500 3 HUMAS 921873 TOMMY AREA 70 5000 4 SECURITY 922874 ZULIMANSYAH 80 1500 5 SECURITY 922075 HENDRA 85 2000 6 ADMINISTRASI 923076 TATI TITI 65 2500 7 ADMINISTRASI 923077 ITA FITRIA 70 2500 8 ADMINISTRASI 923078 JEJET 60 2000 9 STAFF 924064 FADHLI 45 7500 10 STAFF 924065 ZAKI 50 7000 11 PERSONALIA 925045 FITRI YANDI 60 4500 12 PERSONALIA 925034 CHANDRUSAX 45 4000 . . .

Berdasarkan data yang tersimpan tersebut diatas, kalau program yang akan anda buat berikut ini di jalankan, maka akan tampil di layar monitor anda sbb :

LAPORAN PAJAK

Departemen : HUMAS

--- NO NIP NAMA PEGAWAI GJ.BERSIH PAJAK --- 1 921871 FRANSISCA 337500 37500 2 921872 ELVIRA 283500 31500 3 921873 TOMMY AREA 315000 35000 --- Total Departemen 936000 104000

(53)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 53

Departemen : SECURITY

--- NO NIP NAMA PEGAWAI GJ.BERSIH PAJAK --- 1 922874 ZULIMANSYAH 108000 12000 2 922075 HENDRA 153000 17000 --- Total Departemen 251000 29000 ... ..dst.. ... Departemen : PERSONALIA --- NO NIP NAMA PEGAWAI GJ.BERSIH PAJAK --- 1 925045 FITRI YANDI 243000 27000 2 925034 CHANDRUSAX 162000 18000 --- Total Departemen 405000 45000 Total seluruhnya 2622500 292500

Untuk Membuat program tersebut di atas, bukalah program LAPOR-2D.COB yang harus anda lakukan adalah :

1. Pelajari dan fahami cara pendefenisian variabel / data di DATA DIVISION ( baik di FILE SECTION maupun di WORKING-STORAGE SECTION)

2. Pelajari dan fahami perancangan bentuk output laporan yang dirancang di WORKING-STORAGE section.

3. Lengkapi program dengan memperhatikan logika program yang ter gambar pada FLOWCHART tersebut adalah :

(54)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 54 ************************** * program * ************************** identification division. program-id. modul-laporan. environment division. input-output section file-control.

select PEGAWAI assign to disk organization is sequential access mode is sequential. data division.

file section. fd PEGAWAI

label record are standard value of file-id is "B:peg.dat". 01 record-gaji-pegawai. 02 dept-peg pic x(12). 02 nip-peg pic x(6). 02 nama-peg pic x(15). 02 jam-kerja pic 9(3). 02 gaji-jam pic 9(4). working-storage section. 77 ph-b pic 9(7). 77 ph-k pic 9(7). 77 pjk pic 9(6). 77 tpjk pic 9(8). 77 eof pic x. 77 dep-sbl pic x(12). 77 tpjk-dep pic 9(8). 77 tphb-dep pic 9(8). 77 tpjk-sel pic 9(10). 77 tphb-sel pic 9(10). 01 judul-utama.

02 filler pic x(30) value spaces.

02 filler pic x(25) value 'LAPORAN PAJAK KARYAWAN'. 01 judul-utama-2.

02 filler pic x(15) value spaces.

02 filler pic x(20) value 'Departemen : '. 02 dep-out pic x(12).

01 judul-spasi.

02 filler pic x(80) value spaces. 01 garis.

(55)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 55

02 filler pic x(55) value all '~'. 01 isi-tabel.

02 filler pic x(15) value spaces. 02 filler pic x(3) value spaces. 02 NIP-OUT pic x(6).

02 filler pic x(3) value spaces. 02 NM-OUT pic x(15).

02 filler pic x(5) value spaces. 02 PHB-OUT PIC Z(8).

02 filler pic x(4) value spaces. 02 PJK-OUT pic Z(6).

01 total-dep.

02 filler pic x(16) value spaces. 02 filler pic x(12) value 'Total Dept'. 02 dep-c pic X(12).

02 filler pic x(6) value spaces. 02 tphb-dep-c pic z(8). 02 filler pic x(2) value spaces. 02 tpjk-dep-c pic z(8).

01 total-seluruh.

02 filler pic x(16) value spaces.

02 filler pic x(25) value 'Total Seluruh '. 02 filler pic x(3) value spaces.

02 tphb-sel-c pic z(10). 02 tpjk-sel-c pic z(10). screen section. 01 hapus-monitor. 02 blank screen. KASUS 2

Perusahaan Penerbangan Bondo Air Lines yang melayani penerbangan untuk 3 daerah tujuan yaitu Jakarta, Medan dan Batam dalam melakukan pengolahan data penumpang yang tersimpan dalam file TIKET ( nama file dilabel TIKET.DAT), dengan organisasi dan access file secara sequential dengan data-data sebagai berikut :

--- Nama data item Type Panjang Keterangan --- NO-TKT N 4 Nomor Tiket

NM-PNP AN 15 Nama Penumpang AL-PNP AN 20 Alamat Penumpang TUJUAN AN 8 Tujuan penerbangan

(56)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 56

STAT-PNP AN 9 Status Penumpang ---

Dari data yang tersimpan dalam file TIKET.DAT akan dilakukan pengolahan data yang nantinya akan menghasilkan suatu laporan dalam bentuk tabel, dengan ketentuan pemprosesan sebagai berikut

- Jika Tujuan = 'Jakarta' , maka harga tiket Rp. 225000 Jika Tujuan = 'Batam' , maka harga tiket Rp. 175000 Jika Tujuan = 'Medan' , maka harga tiket Rp. 125000 - Jika Status = 'Mahasiswa' , maka potongan 10 % dari harga Jika Status = 'Anak' , maka potongan 50 % dari harga Jika Status = 'Dewasa' , maka tidak dapat potongan - Pembayaran = harga - potongan

Tampilan yang diinginkan sbb : BONDO AIR LINES

Jl. Burung, 20 Padang

---

| NO | NO.TIKET | NAMA MAHASISWA | TUJUAN| HARGA | DISKON | BAYAR| --- | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | --- | T o t a l | | | | --- Jumlah Penumpang Jakarta = ... Orang

Jumlah Penumpang Medan = ... Orang Jumlah Penumpang Batam = ... Orang PROGRAM UNTUK MEMASUKKAN DATA

---

Dari kasus di atas, sebelum mencetak tabel yang diinginkan tersebut maka harus dimasukkan / dientrikan terlebih dahulu, oleh sebab itu dibuat terlebih dahulu program untuk memasukkan datanya ke dalam file tiket ( tiket.dat ).

(57)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 57

Logika / Flowchart program --- identification division. program-id. contoh-1. environment division. data division. working-storage section. 77 nm-kar pic x(20). 77 nip-kar pic x(8). 77 gol-kar pic x. 77 stat-kar pic x(5). 77 jam-k pic 9(3). 77 gj pic 9(6). 77 tunj pic 9(5). 77 gj-bersih pic 9(7). screen section. 01 bersih-layar. 02 blank screen. procedure division. baru-mulai.

move 0 to jam-k, gj, tunj, gj-bersih display bersih-layar

display(5, 25) 'PT. ABC Padang' display(6, 25) '---' display(8, 5) 'N a m a : '. accept (8, ) nm-kar display(9, 5) 'N i p : '. accept (9, ) nip-kar display(10, 5) 'Golongan : '. accept (10, ) gol-kar display(11, 5) 'Status : '. accept (11, ) stat-kar display(12, 5) 'Jam Kerja : '. accept (12, ) jam-k if gol-kar = 'A' move 1500 to gj else if gol-kar = 'B' move 3000 to gj else move 4500 to gj. if stat-kar = 'KAWIN' move 75000 to tunj else

(58)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 58

move 25000 to tunj.

compute gj-bersih = (gj * jam-k) + tunj display(15, 15) 'Gaji bersih Rp. ', gj-bersih stop run.

PENGGUNAAN TABEL / DIMENSI

Tabel : merupakan daftar data yang mempunyai type yang sama dan diakses

dengan menggunakan nama data yang sama. Daftar data tersebut tersimpan di memori secara berurutan.

Kegunaan :

Untuk memudahkan / menyederhanakan penulisan program.

Pendefinisian Tabel

Tabel didefinisikan dalam DATA DIVISION pada Working Storage Section dan File Section dengan menggunakan OCCURS clause.

OCCURS :

clause yang digunakan untuk melakukan pengulangan terhadap data item beberapa kali dalam suatu record, yang membentuk suatu tabel (daftar).

Bentuk Syntax :

OCCURS integer TIMES

Ascending Key is nama-data-1, nama-data-2 Descending

Indexed by nama-index-1, nama-index-2

Syarat Penggunaan :

1. Occurs tidak boleh digunakan pada level number 01 atau 77

2. Integer Times menunjukkan beberapa kali dilakukan pengulangan item di dalam suatu record.

3. Ascending atau descending , menunjukkan bagaimana data tersebut diatur, tergantung dari nilainya apakah descending(urutan menurun) atau ascending(menaik).

4. Key is dan Indexed by menunjukkan nama kunci yang dipergunakan pada statement search untuk mencari data yang ada di tabel.

(59)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 59

contoh : 01 Tabel-nilai-siswa.

02 Nilai pic 999 occurs 5 times Keterangan :

Defenisi tersebut menyatakan bahwa variabel nilai dapat menampung 5 data numeric. Identik dengan : 01 Tabel-nilai-siswa. 02 Nilai1 pic 9(3). 02 Nilai2 pic 9(3). 02 Nilai3 pic 9(3). 02 Nilai4 pic 9(3). 02 Nilai5 pic 9(3).

Mengisi tabel & Mengambil isi tabel

1. Untuk menuju ke suatu elemen tabel digunakan suatu penunjuk / pointer yang disebut "SUBSCRIPT".

2. Nilai subscript berupa literal numerik / berupa bilangan bulat positif

3. Pengisian tabel dan pengambilan isi tabel dilakukan dengan menggunakan statement "PERFORM-VARYING".

Syntax :

Perform nama-paragraph THROUGH nama-paragraph-2

THRU

Varying nama-data-1 FROM nama-data-2 integer-1 By nama-data-3 UNTIL kondisi

integer-2

OCCURS ... DEPENDING ON

Digunakan jika elemen di dalam tabel bervariasi jumlahnya. Syntax :

OCCURS integer-1 TO integer-2 TIMES DEPENDING ON nama-data

(60)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 60

contoh :

01 rec-mhs.

02 Jumlah-mhs pic 9(3).

02 Data occurs 1 to 500 TIMES

depending on jumlah-mhs. 03 nobp pic x(8).

03 nama pic x(20).

Contoh pemakaian tabel :

Identification Division. Program-id. Tabel-dim-1. Environment Division. Data Division. Working-storage section. 77 i pic 99 01 Tabel-nilai-siswa.

02 nilai-siswa pic 9(3) occurs 5 times Screen section.

01 Hapus-layar. 02 Blank screen. Procedure Division. Proses.

Perform masukan-nilai varying i from 1 by 1 until i > 5

Display hapus-layar.

Perform tampilan-nilai-siswa varying i from 1 by 1 until i > 5 stop run. Masukan-nilai. Display( , ) 'nilai : '. Accept ( , ) nilai-siswa(i) Display spaces. Tampilan-nilai-siswa.

Display ( , ) ' Nilai ke ', i , ' : ' , nilai-siswa(i) Display space.

(61)

JUFRIADIF NA’AM

Universitas Putra Indonesia “YPTK” 61

PENGGUNAAN FILE UNTUK TABEL DIMENSI SATU 1. Program Entry Data

Identification division. Program-id. Dimensi-1. Environment Division. Input-output section. File-control

select matakuliah assign to disk organization is sequential access mode is sequential. Data division.

File section. FD matakuliah

label record is standard value of file-id is "a"siswa.dat" data record is rec-siswa. 01 Rec-siswa.

02 nobp pic x(8). 02 nama pic x(20).

02 data-mata-kuliah occurs 6 times. 03 kdmtk pic x(5). 03 nmtk pic x(12). 03 sks pic 9. Working-storage section. 77 i pic 9 value 0. 77 mad pic x. 77 dsb pic x. 01 var-bantu. 02 kd-m pic x(5). 02 nmtk-m pic x(15). 02 sks-m pic 9. Screen section. 01 Entri-1.

02 Line 4 column 10 " Nobp : ". 02 Column plus 1 pic x(8) to nobp. 02 Line 5 column 10 " Nama : ". 02 Column plus 1 pic x(15) to nama.

Referensi

Dokumen terkait