Anda di halaman 1dari 54

Praktikum

PEMROGRAMAN COBOL

Sekolah Tinggi Informatika dan Komputer Indonesia


2006
Kata Pengantar

Akhirnya dengan usaha yang keras, buku ini dapat diselesaikan. Cobol
merupakan suatu bahasa pemrograman yang mungkin cukup sederhana untuk
dipahami. Tetapi diharapkan mulai dari titik awal yang sederhana ini, logika
tentang pembuatan program akan bertambah luas.
Semoga dengan hadirnya buku ini dapat digunakan sebaik-baiknya untuk
maju.
Apabila ada kekurangan kami mohon maaf, dan mohon disampaikan untuk
perbaikan buku ini dan demi kemajuan bersama.
Daftar Isi

KATA PENGANTAR ........................................................................................... I


DAFTAR ISI ....................................................................................................... II
PENGENALAN COBOL DAN OUTPUT ............................................................ 1
INPUT & ARITMATIKA...................................................................................... 6
KONDISI 13
PERFORM ....................................................................................................... 18
SCREEN SECTION.......................................................................................... 22
FILE SEQUENTIAL.......................................................................................... 26
FILE INDEXED ACCESS MODE DYNAMIC (ENTRY DATA 1 FILE) ............. 31
FILE INDEXED ACCESS MODE DYNAMIC (KOREKSI & HAPUS - 1 FILE). 38
BEKERJA DENGAN DUA TABEL (INDEX DYNAMIC) .................................. 42
REPORT (INDEX DYNAMIC)........................................................................... 48
Pertemuan

1
Pengenalan Cobol dan Output

Tujuan
• Agar mahasiswa terampil menggunakan editor, menggunakan compiler
dan melakukan debugging.
• Agar mahasiswa dapat menggunakan perintah output sederhana.

Persiapan
• Editor program, yaitu dengan menggunakan MS-DOS Editor yaitu
dengan menjalankan perintah Run pada Start Menu kemudian
menuliskan Edit > OK
• Command Prompt dengan menjalankan perintah Run pada Start Menu
kemudian menuliskan Cmd > OK

Pekerjaan
• Mengetikkan listing program pada sebuah editor
• Melakukan kompilasi program
• Menjalankan program yang sudah dikompilasi

Hasil
• Sebuah program sederhana yang dapat menampilkan tulisan

Teori
Untuk bekerja dengan COBOL, maka harus diketahui terlebih dahulu editor
yang digunakan untuk membuat program. Editor yang dapat digunakan
tergantung kebiasaan programmer, yang terpenting adalah bentuk file yang
dihasilkan adalah flat text. Ada beberapa editor yang biasanya digunakan oleh
programmer COBOL, dengan kelebihan masing – masing. Antara lain :
Notepad, Pascal Editor, DBEdit, SideKick (SK).
Pertemuan I – Cobol dan Output 1-2

Setiap kali selesai melakukan editing program, jangan lupa untuk melakukan
penyimpanan data dengan ekstensi COB (.COB).

Setelah dilakukan penyimpanan maka sebelum dikompilasi, maka pada


Command Prompt perlu dilakukan pengaturan Path direktori, untuk
pengaturan Path direktori bisa menggunakan beberapa cara, dibawah ini akan
dijelaskan dua cara untuk mengatur Path Direktori program Cobol :
1. Dengan mengatur Path direktori program Cobol langsung pada
Command Prompt, yaitu dengan mengetikkan perintah berikut :
Prompt:\>Set Path=C:\Cobol *
Kelemahan cara ini pengguna akan melakukan pengaturan Path
Direktori setiap kali akan menjalankan program Cobol atau setelah
Command Prompt ditutup.
2. Dengan mengatur Path direktori program Cobol pada System
Configuration Editor, yaitu :
dengan menjalankan perintah Run pada Start Menu kemudian
menuliskan SysEdit > OK, kemudian tambahkan perintah berikut pada
window AUTOEXEX.BAT :
path = C:\COBOL *
kemudian pilih menu File > Save, dan lakukan Restart atau Log Off pada
komputer anda.
Dengan cara ini pengguna hanya perlu melakukan sekali dalam
mengatur Path direktori program Cobol selama File/master Program
Cobol tersebut tidak dipindah ke direktori lain atau dihapus.
* Path Direktori pada masing-masing komputer akan berbeda-beda
sesuai dengan tempat Master program Cobol itu disimpan

Setelah dilakukan pengaturan Path Direktori program Cobol, maka program


siap untuk dikompilasi. Untuk melakukan kompilasi dilakukan dengan
mengetikkan perintah pada command prompt sebagai berikut :

Prompt\> cobol [namaprogram]


Atau
Prompt\> cobol [namaprogram];

Masing – masing cara memiliki keuntungan. Untuk cara pertama, dapat


dituliskan nama file hasil kompilasi (.INT), dan nama file penampung pesan
kesalahan (.LST). Sedangkan pada cara kedua tidak akan ada pertanyaan apa,
atau langsung dilakukan kompilasi.
Pertemuan I – Cobol dan Output 1-3

Jika terjadi kesalahan dari program yang dikompilasi maka akan ditampilkan
pesan kesalahan dan perhatian. Isi dari pesan kesalahan atau perhatian adalah
nomer baris program yang salah dan penjelasan kesalahan yang terjadi.

Jika tidak terjadi kesalahan sewaktu melakukan kompilasi maka hasil kompilasi
(.INT) dapat dijalankan dengan menggunakan perintah :

Prompt\>runcob namaprogramhasilkompilasi

Perintah output (Display)


Sebelum berbicara tentang perintah output, mungkin sebaiknya diketahui
terlebih dahulu tentang bagian – bagian pada program COBOL. Ada empat
bagian program yang harus diperhatikan. Bagian – bagian tersebut memiliki
fungsi yang berbeda – beda. Ada empat (4) bagian program yaitu :
• Identification division.
• Environment division.
• Data division.
• Procedure division.
Bagian procedure division adalah bagian yang berisi program yang akan
dieksekusi. Sedangkan bagian lainya adalah pendukung dari procedure
division ini. Pada procedure division ini terdapat beberapa nama – nama
paragraph yang dapat ditentukan sendiri. Yang penting adalah harus diakhiri
dengan titik (.). Huruf besar dan kecil tidak berpengaruh (akan dianggap
sama) pada pemrograman cobol.

Untuk menampilkan tulisan dilayar dapat digunakan perintah display.


Perintah ini akan menampilkan tulisan, atau data sesuai dengan apa adanya.
Perintah ini terletak pada procedure division. Aturan penulisannya adalah :

Display identifier atau Display literal

Identifier adalah suatu variabel yang telah dideklarasikan di data division


(dibahas minggu depan). Sedangkan lieteral adalah suatu nilai atau tulisan
yang pasti.
Dalam satu paragraph dapat berisi beberapa baris perintah. Dan sekelompok
tulisan yang diakhiri dengan titik (.) disebut dengan kalimat (sentence).
Pertemuan I – Cobol dan Output 1-4

Percobaan
1. Buat sebuah program yang paling minimal berikut, kemudian simpan
dengan nama Prak1P1.COB, lakukan kompilasi pada command prompt,
dan jalankan jika program telah benar.

IDENTIFICATION DIVISION.
PROGRAM-ID. ProgramKecil.
ENVIRONMENT DIVISION.
DATA DIVISION.
PROCEDURE DIVISION.
MULAI.
DISPLAY "AKU BISA".
STOP RUN.

2. Buat sebuah program yang dapat menampilkan bentuk atau tulisan


sebagai berikut :
/------- Form ISIAN ----------\
| NRP : 00311281 |
| Nama : James Wiro Saras |
\-----------------------------/

3. Modifikasi program tersebut dengan melakukan beberapa perlakukan


dibawah ini :
- Ganti nama program pada program-id dengan "Program Baru".
- Hapus beberapa titik yang ada dibawah procedure division.
- Buat paragrap SELESAI yang hanya berisi perintah STOP RUN,
dan paragrap MULAI yang berisi selain perintah STOP RUN.
- Rubah semua tanda petik dua (") dengan tanda petik satu (').
- Simpan dan jalankan.

Latihan
1. Buat program yang dapat menampilkan form isian diatas, tetapi nrp dan
nama diisi (diinputkan, gunakan perintah ACCEPT) sewaktu program
telah berjalan dan dapat diganti sesuai keinginan. Setelah diisikan nrp
dan nama maka akan ditampilkan tulisan sebagai berikut yang
disesuaikan dengan inputan :
"Hallo saudara bernama James Wiro Saras dengan NRP 00311281"
Sebagai bantuan tambahkan baris program dibawah ini, pada DATA
DIVISION :

DATA DIVISION.
WORKING-STORAGE SECTION.
Pertemuan I – Cobol dan Output 1-5

01 NRP PIC X(8).


01 NAMA PIC X(20).

Contoh tampilan :
NRP : James Wiro Saras [input]
NAMA : 00311281 [input]

Hasil :
Hallo Saudara bernama James Wiro Saras dengan
NRP 00311281

Laporan
1. Buat program yang dapat menampilkan form isian data karyawan,
dengan inputan NIP, Nama, Alamat dan Gaji, dan inputan dapat diganti
sesuai keinginan. Setelah semua data diisi maka akan ditampilkan
tulisan sebagai berikut yang disesuaikan dengan inputan :
NIP : 22356123 [input]
NAMA : Michael Subagio [input]
Alamat : Jl Raya Angkasa [input]
Gaji : 2000000 [input]

Hasil :
Apa kabar Michael Subagio ? ternyata anda tinggal
Di Jl Raya Angkasa, dengan gaji Rp. 200000
2. Tuliskan Aturan tata tulis yang harus dipatuhi pada pemrograman
COBOL.
3. Tuliskan kegunaan AREA A, dan AREA B.
4. Tuliskan macam – macam LEVEL NUMBER, dan aturannya.
5. Tuliskan contoh Picture Clause.
Pertemuan

2
Input & Aritmatika

Tujuan
• Diharapkan mahasiswa dapat mendeklarasikan data dengan
berbagai cara.
• Diharapkan mahasiswa dapat membuat program input data.
• Diharapkan mahasiswa dapat menggunakan data dalam procedure
division.
• Diharapkan mahasiswa dapat mengolah data numerik dengan
menggunakan beberapa operasi.
• Diharapkan mahasiswa dapat menggunakan perintah accept with
untuk memperbaiki tampilan.

Persiapan
• Editor program, yaitu dengan menggunakan MS-DOS Editor yaitu
dengan menjalankan perintah Run pada Start Menu kemudian
menuliskan Edit > OK
• Command Prompt dengan menjalankan perintah Run pada Start
Menu kemudian menuliskan Cmd > OK

Pekerjaan
• Mahasiswa membuat sebuah program dengan menggunakan
perintah display.
• Mahasiswa memodifikasi program dengan ketentuan – ketentuan
tertentu.
• Mahasiswa dapat menggunakan perintah input dan output.
Pertemuan II – Input dan Aritmatika 2-7

Hasil
Menghasilkan program Input data yang mengolah data numeric
dengan beberapa operasi.

Teori
Pada modul sebelumnya telah dikenalkan secara sepintas (terutama
pada tugas) tentang pendeklarasian data pada working-storage section.
Working-storage section adalah bagian program yang letaknya ada di
bawah data division.
Guna dari dari working-storage section adalah mendeklarasikan data
yang akan digunakan pada procedure division.
Cara mendeklarasikan data pada working-storage section adalah
dengan beberapa cara :
• Untuk data tunggal :
Level number nama data PIC clause.
Contoh :
01 Student PIC X(30).
01 Book Pic X(30).

• Untuk data majemuk :


- Untuk nama record atau group item.
Level Number Nama data.
- Untuk nama data elementary sama seperti data tunggal.

Contoh :
01 SStudent.
05 NRP Pic 9(8).
05 Name Pic X(10) value space.
05 Address.
10 Street Pic X(10).
10 Nomer Pic 99.
01 BBook.
05 BookID Pic 9(8).
05 Title Pic X(10) value spaces.
05 AuthorName Pic X(10).

• Untuk data kondisi akan dijelaskan kemudian.

Beberapa Picture Clause yang dapat digunakan adalah :


9, X, V, dan S.
Pertemuan II – Input dan Aritmatika 2-8

Selain dari Picture Clause, untuk mendeklrasikan data terdapat pula


picture Editing yang tidak dapat digunakan dalam proses aritmatika.
Picture Editing digunakan terutama untuk tampilan data. Picture
Editing yang digunakan adalah :
Z,0,*,-/+, ./, , DB/CR, $, B

Perintah MOVE
Perintah move digunakan sebagai assignment atau pemindahan data
dari sumber ke tujuan. Formatnya adalah sebagai berikut :

 Identifier 
MOVE   TO {Identifier}...
 Literal 

Identifier adalah nama data yang telah dideklarasikan pada bagian


working-storage section diatas.
Sedangkan Literal adalah sebuah nilai yang akan diberikan pada
identifier yang ditentukan.

Contoh :
MOVE “RYAN” TO Surname.
MOVE SSTUDENT TO Student.

INPUT
Perintah input (memasukkan data) pada COBOL digunakan statement
ACCEPT. Aturannya :
ACCEPT identifier

Perintah ACCEPT harus menggunakan identifier yang telah


dideklarasikan pada DATA DIVISION di bagian WORKING-
STORAGE SECTION. Sehingga identifier tersebut dapat menyimpan
data yang diinputkan.

DISPLAY ( , ) DAN ACCEPT ( , ) … WITH


Untuk menampilkan sesuatu dilayar dengan posisi baris B dan kolom
K dapat digunakan perintah display(B, K).
"perhatikan setelah tanda koma harus ada spasi"
Contoh :
Display (5, 10) "Hallo World"
Contoh diatas akan menampilkan tulisan Hallo World pada posisi baris
5 dan kolom 10.
Pertemuan II – Input dan Aritmatika 2-9

Begitu pula dengan perintah berikut :


Accept (5,10) Nama
Akan meminta inputan pada baris 5 dan kolom 10.
Pada perintah Accept terdapat beberapa tambahan statement seperti :
Zero-fill : Setelah diisi bagian yang kosong diisi ‘0’
Space-fill : Setelah diisi bagian yang kosong tampak kosong
Left-justify : tidak berlaku
Right-justify : setelah diisi akan tampak rata kanan
Trailing-sign : menampilkan tanda +/- pada bagian kanan
Prompt : menampilkan tempat pengisian.
Update : sebelum diisi akan menampilkan data sebelumnya
Length-check : pengisian field harus penuh
Empty-check : field harus diisi
Auto-skip : Berpindah ke field selanjutnya bila field terisi penuh
No-echo : tidak ada tampilan sewaktu diisi.
Beep : terdengar bunyi sewaktu data dimasukkan.

CONTOH PROGRAM :
Procedure division.
Mulai.
Display (5, 10) "Contoh PERFORM".
Display (6, 10) "--------------".
Display (7, 10) "Nama : ".
Accept (7, ) Nama with
prompt length-check.
Cetak.
Display (8, 10) "Nama saudara :", Nama.

ARITMATIKA
Beberapa perintah yang berhubungan dengan matematika adalah :
- ADD … TO …
- ADD identifier, identifier GIVING
- SUBTRACT … FROM… [GIVING]
- MULTIPLY … BY … [GIVING]
- DEVIDE … BY … [GIVING]
- COMPUTE :
Bentuk dari statement COMPUTE :
COMPUTE nama-data-1 [ROUNDED] = ungkapan arithmatika.
[ ; ON SIZE ERROR imperative statement]
Contoh : Y = A + B, maka ditulis :
Pertemuan II – Input dan Aritmatika 2-10

COMPUTE Y = A + B
Sebelum melakukan operasi matematika, terlebih dahulu harus
dideklarasikan data yang akan diolah pada Working-storage section.
Data yang deklarasikan harus bertipe numerik dan menggunakan
picture standart numerik ( 9, V ).
Untuk membentuk tampilan yang bagus digunakan picture editing.
Tapi perlu diingat bahwa picture editing tidak dapat digunakan
sebagai operand pada operasi matematika.
Dalam menggunakan perintah add, subtract, multiply, dan devide
perlu diperhatikan penggunaan operasi dengan dan tanpa giving.

CATATAN :
Setelah tanda koma selalu harus ada satu spasi.

Percobaan
1. Ketik program isi data berikut ini :
IDENTIFICATION DIVISION.
PROGRAM-ID. ProgramKecil.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 NRP.
02 ANGKATAN PIC 99.
02 JURUSAN PIC 99.
02 NOMER PIC 9999.
01 NAMA PIC X(20).
PROCEDURE DIVISION.
MULAI.
DISPLAY "ISIAN".
DISPLAY "NRP"
ACCEPT ANGKATAN, JURUSAN
ACCEPT NOMER.
DISPLAY "NAMA LENGKAP :"
ACCEPT NAMA.
DISPLAY NRP, NAMA.
STOP RUN.

2. Modifikasi program diatas sehingga tampilan program menjadi teratur.


Setiap perintah DISPLAY dan ACCEPT menggunakan koordinat ( line,
column). Contoh :
DISPLAY (1, 2) “ISIAN”. à menampilkan tulisan isian pada baris 1
kolom ke 2
Kemudian pada bagian akhir perintah ACCEPT di tambah perintah
WITH PROMPT.
3. Ketik program isi data berikut ini :
Pertemuan II – Input dan Aritmatika 2-11

IDENTIFICATION DIVISION.
PROGRAM-ID. ProgramKecil.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 ANGKA1 PIC 9999.
01 ANGKA2 PIC 9999.
01 HASIL PIC 99999.
01 FMT-HASIL PIC ZZZ9.99.
PROCEDURE DIVISION.
MULAI.
DISPLAY "ISIAN".
DISPLAY "ANGKA KE 1"
ACCEPT ANGKA1.
DISPLAY "ANGKA KE 2"
ACCEPT ANGKA2.
ADD ANGKA1, ANGKA2 GIVING HASIL.
MOVE HASIL TO FMT-HASIL.
DISPLAY FMT-HASIL.
STOP RUN.

Latihan
Dari percobaan no. 1 tambahkan isian jumlah sks yang harus dibayar
yang berisi inputan, kemudian jumlah pembayaran dan sisa atau
kembalian. Contoh :
NRP : 00112233
Nama : Aku
Total biaya sks : 90.000
Dibayar : 100.000
Sisa : 10.000
NRP, Nama, Total Biaya SKS dan dibayar merupakan data inputan
sedangkan Sisa merupakan output.

Laporan
1. Buatlah deklarasi data SSTUDENT dan STUDENT diatas. Dan lanjutkan
dengan membuat program isian data terhadap variabel yang telah
dideklarasikan tersebut.
2. Tambahkan perintah MOVE SSTUDENT to STUDENT setelah program
pengisian data. Kemudian tampilkan data SSTUDENT yang telah diisikan,
dan juga data STUDENT setelah dilakukan MOVE, tulislah apa yang
dihasilkan, dan beri keterangan.
3. Buatlah sebuah program yang dapat mengambil data jam dari system
operasi dan ditampilkan dalam bentuk ss-SS-MM-HH.
4. Sebutkan fungsi dari perintah MOVE.
Pertemuan II – Input dan Aritmatika 2-12

5. Buatlah program untuk menampilkan data dalam bentuk tanggal.


(99/99/99).
6. Tuliskan bagaimana hasil dari perintah Display berikut, jika deklarasi yang
digunakan telah ditentukan :

Deklarasi PERINTAH
1.01 ANGKA pic 9(5)v99 MOVE ZERO to ANGKA
DISPLAY angka.
2. 01 ANGKA pic -9(5)v99 MOVE ZERO to ANGKA
DISPLAY angka.
3. 01 ANGKA pic 9(5)v99 MOVE -1234567.897 to ANGKA
01 SEMENTARA pic –Z(5).00 DISPLAY angka.
MOVE ANGKA to SEMENTARA
DISPLAY SEMENTARA.
4. 01 ANGKA pic S9(5)v99 MOVE -1234567.897 to ANGKA
01 SEMENTARA pic –Z(5).00 DISPLAY angka.
MOVE ANGKA to SEMENTARA
DISPLAY SEMENTARA.

7. Buatlah sebuah program data karyawan dengan field NIP, Nama, Gapok,
Tunjangan dan total gaji. Total Gaji merupakan output yang diperoleh dari
Gapok + Tunjangan. Sedangkan field lainnya merupakan data inputan!
Pertemuan

3
Kondisi

Tujuan
• Diharapkan mahasiswa dapat menggunakan statement Kondisi yang
ada.
• Diharapkan mahasiswa dapat menggunakan level number 88 untuk
suatu kondisi.

Persiapan
• Editor program, yaitu dengan menggunakan MS-DOS Editor yaitu
dengan menjalankan perintah Run pada Start Menu kemudian
menuliskan Edit > OK
• Command Prompt dengan menjalankan perintah Run pada Start Menu
kemudian menuliskan Cmd > OK

Pekerjaan
• Mengetikkan listing program pada sebuah editor
• Melakukan kompilasi program
• Menjalankan program yang sudah dikompilasi

Hasil
• Sebuah program sederhana dengan menggunakan beberapa kondisi
• Sebuah program sederhana dengan menggunakan level number 88

Teori
Kondisi
Sebuah program COBOL akan berjalan urut mulai baris pertama perintah
dibawah PROCEDURE DIVISION dan seterus sampai baris terakhir. Tetapi
jika ada perintah kondisi, maka baris program yang akan dijalankan dapat
dilewati jika tidak sesuai dengan kondisi yang diberikan.
Pertemuan III –Kondisi 3-14

Contoh Cerita Pemrograman COBOL


Jika saudara laki – laki maka IF jeniskelamin = 'Laki-laki'
Ambil baju merah Move 'merah' to WarnaBaju
Jika tidak maka Else
Ambil baju biru Move 'biru' to WarnaBaju.

Jika jeniskelamin sama dengan 'Laki-laki' maka baris kedua akan dijalankan
sedangan baris empat (setelah else) tidak dijalankan. Baris setelah else akan
dijalankan jika jeniskelamin berisi bukan 'Laki-laki'.
Perlu diingat bahwa dalam satu kalimat (sentence) IF hanya terdapat satu titik
(.).

Contoh Cerita yang lain Pemrograman COBOL


Jika saudara laki – laki maka IF jeniskelamin = ‘Laki-laki’
Ambil Topi merah Move ‘Topi’ to WarnaTopi
Pada pernyataan (cerita kedua) tidak ada perintah else. Sehingga dapat
disimpulkan perintah IF tidak harus menggunakan “ELSE”.

Level number 88
Level number 88 digunakan untuk mendefinisikan suatu nama kondisi yang
spesifik terhadap suatu item, yang mana nilainya dapat digunakan sebagai
suatu kondisi pada PROCEDURE DIVISION. Atau dengan kata lain level
number merupakan suatu level number yang digunakan untuk kondisi dengan
nilai tertentu.
Cara penulisan level number 88 adalah sebagai beriikut :
88 [nama-kondisi] value [literal]
nama kondisi yang didefinisikan harus dikaitkan dengan elementary item.
Contoh :
01 Jen-kel pic x.
88 lk Value ‘L’.
88 prm Value ‘P’.
Pertemuan III –Kondisi 3-15

Percobaan
1. Ketik program isi data berikut ini :

IDENTIFICATION DIVISION.
PROGRAM-ID. ProgramKecil.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 Mahasiswa.
02 NRP.
05 ANGKATAN PIC xx.
05 JURUSAN PIC xx.
05 NOMER PIC x(4).
02 NAMA PIC X(20).
02 JenisKelamin PIC X.
02 WARNABAJU PIC XXXXX.
PROCEDURE DIVISION.
MULAI.
DISPLAY "ISIAN".
DISPLAY "NRP"
ACCEPT ANGKATAN.
ACCEPT JURUSAN.
ACCEPT NOMER.
DISPLAY "NAMA LENGKAP :"
ACCEPT NAMA.
DISPLAY "JENIS KELAMIN :"
ACCEPT JENISKELAMIN.
IF JENISKELAMIN = 'L'
MOVE 'MERAH' TO WARNABAJU
ELSE
MOVE 'BIRU' TO WARNABAJU.
DISPLAY NRP, NAMA, WARNABAJU.
STOP RUN.

2. Berikut ini contoh penggunaan level number 88 dalam program


Gunakan program seperti pada bagian percobaan no.1 diatas, kemudian
sesuaikan dengan listing program di bawah ini :

IDENTIFICATION DIVISION.
PROGRAM-ID. ProgramKecil.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 Mahasiswa.
02 NRP.
05 ANGKATAN PIC xx.
05 JURUSAN PIC xx.
05 NOMER PIC x(4).
02 NAMA PIC X(20).
02 JenisKelamin PIC X.
bagian yg 88 Lk VALUE ‘L’.
diubah 88 Pr VALUE ‘P’.
Pertemuan III –Kondisi 3-16

02 WARNABAJU PIC XXXXX.


PROCEDURE DIVISION.
MULAI.
DISPLAY "ISIAN".
DISPLAY "NRP"
ACCEPT ANGKATAN.
ACCEPT JURUSAN.
ACCEPT NOMER.
DISPLAY "NAMA LENGKAP :"
ACCEPT NAMA.
DISPLAY "JENIS KELAMIN :"
ACCEPT JENISKELAMIN.
IF Lk
penggunaan MOVE 'MERAH' TO WARNABAJU
level number 88 ELSE
MOVE 'BIRU' TO WARNABAJU.
DISPLAY NRP, NAMA, WARNABAJU.
STOP RUN.

Amati program diatas (no.2), kemudian bandingkan dengan percobaan


sebelumnya (no.1) !

Latihan
1. Buat program Calculator sederhana, yang akan menampikan hasil
jumlah, pengurangan, perkalian dari dua angka yang diinputkan, sesuai
pilihan operator yang diinputkan pula.
Contoh bentuk tampilan program Calculator versi :
Angka ke 1 : 3
Angka ke 2 : 6
Operator : *
Hasil : 18.00
Untuk dapat membuat pilihan operator maka perlu ditambahkan
beberapa kondisi pada program (bisa menggunakan kondisi biasa atau
dengan menggunakan level number 88).
Contoh :
DISPLAY "OPERATOR :"
ACCEPT operator.
IF operator = '+'
ADD ANGKA1, ANGKA2 GIVING HASIL.
IF operator = '-'
SUBTRACT ANGKA1 FROM ANGKA2 GIVING HASIL.

Dan seterusnya, sesuai dengan jumlah operator yang akan digunakan.


Pertemuan III –Kondisi 3-17

Anda juga bisa menggunakan perintah compute sebagai pengganti


operator-operator yang ada pada pemrograman Cobol.
Cara penulisan :
Compute [variabel-penampung] = [variebel1] [operator] [variabel2]
Operator yang digunakan sesuai dengan operator aritmatika yang ada
seperti +, -, *, /, dst.

Laporan
1. Buat program untuk menghitung Gaji total, dengan ketentuan sebagai
berikut :
Gaji total = Gaji pokok + Tunjangan Anak + Tunjangan Jabatan.
Ketentuan Tunjangan Anak dihitung hanya sampai anak ke tiga, dan
masing – masing anak mendapatkan 2% dari gaji pokok.
Ketentuan Tunjangan Jabatan dihitung sebagai berikut :
Golongan I : Tunjangan Jabatan = Rp. 100.000,00
Golongan II : Tunjangan Jabatan = Rp. 75.000,00
Golongan III : Tunjanan Jabatan = Rp. 50.000,00

Contoh tampilan :
NIP : input X(5)
Nama : input X(20)
Golongan : input X(3)
Gaji pokok : input 9(6)
Tunjangan Anak : output
Tunjangan Jabatan : output
Gaji Total : output
Catatan : Tugas ini akan digunakan pada praktikum selanjutnya
2. Apa yang dimaksud dengan perintah perform?
3. Jelaskan jenis – jenis perintah perform yang ada di COBOL dan
kegunaannya. (seperti Perform … Until, Perform … Thru, Perform …
Times dan lain lain).
Pertemuan

4
Perform

Tujuan
• Agar Mahasiswa terampil menggunakan perintah perform ... until.
• Agar Mahasiswa dapat membedakan bentuk tampilan tanpa Screen
Section dan dengan Screen Section.

Persiapan
• Editor program, yaitu dengan menggunakan MS-DOS Editor yaitu
dengan menjalankan perintah Run pada Start Menu kemudian
menuliskan Edit > OK
• Command Prompt dengan menjalankan perintah Run pada Start
Menu kemudian menuliskan Cmd > OK

Pekerjaan
1. Mahasiswa harus dapat membedakan bentuk tampilan tanpa screen
section dan dengan screen section.
2. Untuk dapat membedakan bentuk tampilan tersebut maka mahasiswa
harus dapat menggunakan semua bentuk perintah dalam membentuk
screen section.

Hasil
Menghasilkan program yang terdapat perintah perform … until dan
tampilan dengan Screen Section.

Teori
PERFORM
Perform adalah suatu perintah untuk menjalankan semua perintah
yang terdapat didalam paragraf yang disebutkan. Setelah mengerjakan
semua perintah yang terdapat didalam paragraf, maka akan dijalankan
perintah setelah PERFORM.
Pertemuan IV –Perform 4-19

Sebuah paragraf memiliki nama (pada kolom 8 area A), dan berisi
beberapa kalimat (pada area B). Contoh paragraf dapat dilihat sebagai
berikut :

1 Procedure division.
2 Mulai.
3 Display 'hallo world'
4 Display ' C O B O L'.
5 Perform Proses.
6 Proses.
7 Add 1 to A.
8 Selesai.
9 Perform Proses.
10 Display A.
11 Stop run.

Pada contoh potongan program diatas, terdapat tiga buah paragraf


yaitu paragraf mulai, proses dan selesai. Jumlah paragraf dapat
disesuaikan dengan keperluan, dan diharapkan nama yang digunakan
dapat mencerminkan maksud dari kalimat atau perintah didalamnya.
Pada contoh potongan program diatas juga terlihat dua buah perintah
PERFORM. Keduanya memanggil paragraf proses.
Untuk jelasnya baris program yang dijalankan adalah dengan urutan
sebagai berikut :
1,2,3,4,5 (mengerjakan paragraf proses),
6,7 (perintah dalam paragraf proses selesai dikerjakan dan kembali
pada baris 5),
6,7,8,9 (mengerjakan paragraf proses),
6,7, (perintah dalam paragraf proses selesai dikerjakan dan kembali
pada baris 9),
10,11.

PERFORM .. UNTIL
Untuk melakukan perulangan, bahasa pemrograman COBOL
menggunakan statement PERFORM .. UNTIL. Seperti perintah
PERFORM sebelumnya, perintah PERFORM .. UNTIL ini
berhubungan dengan paragraph. Setiap paragraph yang dikerjakan
akan diulang – ulang sampai kondisi yang ditentukan tidak terpenuhi.
Selain dari PERFORM .. UNTIL masih ada bentuk yang lain, yaitu
PERFORM .. TIMES, dan PERFORM .. VARYING .. UNTIL.
Untuk bentuk perulangan yang lainnya tidak dibahas disini, silahkan
dibaca pada buku teori.
Pertemuan IV –Perform 4-20

Percobaan

1. Ketik Program berikut :


IDENTIFICATION DIVISION.
PROGRAM-ID. SmallestProgram.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 NRP PIC X(8).
01 NAMA PIC X(10).
SCREEN SECTION.
01 BERSIH-LAYAR.
02 BLANK SCREEN.
PROCEDURE DIVISION.
DisplayPrompt.
DISPLAY BERSIH-LAYAR.
PERFORM MASUKKAN DATA
PERFORM TAMPIL
MASUKKAN-DATA
DISPLAY (4, 1) 'NRP :'.
ACCEPT (4, 8) NRP.
DISPLAY (5, 1) 'NAMA :'.
ACCEPT (5, 8) NAMA.
TAMPIL.
DISPLAY (7, 1) "Nama saudara :", NAMA.
2. Buat sebuah program untuk mengisi data Mahasiswa dengan field : nrp,
nama, tgl lahir, jenis kelamin, dan alamat.
3. Tambahkan statement PERFORM … UNTIL, sehingga dapat dilakukan
pengisian data berulang – ulang sampai 5 kali. Jangan lupa membuat
deklarasi variabel JAWAB, dan inputan "ISI LAGI ?"
MULAI.
DISPLAY BERSIH-LAYAR.
PERFORM DISPLAYPROMPT UNTIL JAWAB = 'T'.

Latihan
1. Buat sebuah program untuk mengisi data Mahasiswa Baru dengan
field NRP, Nama, Jenis Kelamin (Laki-laki = L dan Wanita = W)
dengan kondisi jika dia Laki-laki maka topi = Biru dan jika wanita
maka topi = Merah. Gunakan Level Number 88!
2. Tambahkan statement perform ... until, sehingga dapat dilakukan
pengisian data berulang-ulang sampai 5 kali. Jangan lupa membuat
deklarasi variabel Jawab dengan inputan “Isi Lagi”?
Pertemuan IV –Perform 4-21

Laporan
1. a. Buat sebuah program seperti di bawah ini :
/----------------------FORM DATA KARYAWAN----------------------\
| NIP : |
|Nama : |
| Alamat : |
| Jenis Kelamin : |
| Status : |
| Tunjangan : |
| Gaji Pokok : |
| Total Gaji : |
\------------------------------------------------------------ ----------------------/
Jika status = kawin makan tunjangan = 100.000, jika status = belum
kawin maka tunjangan = 0. Total gaji merupakan hasil dari
Tunjangan + Gapok !
b. Tambahkan statement perform ... until, sehingga dapat dilakukan
pengisian data berulang-ulang sampai 5 kali. Jangan lupa membuat
deklarasi variabel Jawab dengan inputan “Isi Lagi?”
2. Sebutkan kegunaan dan perbedaan dari TO, FROM, dan USING pada
screen section.
Buat satu program kecil untuk mengisi data barang dengan field :
kode, nama, harga dan jumlah. Setelah itu akan ditampilkan hasil
perkalian harga x jumlah.
Pertemuan

5
Screen Section

Tujuan
• Mahasiswa harus dapat membedakan bentuk tampilan tanpa screen
section dan dengan screen section.
• Untuk dapat membedakan bentuk tampilan tersebut maka mahasiswa
harus dapat menggunakan semua bentuk perintah dalam membentuk
screen section.

Persiapan
• Editor program, yaitu dengan menggunakan MS-DOS Editor yaitu
dengan menjalankan perintah Run pada Start Menu kemudian
menuliskan Edit > OK
• Command Prompt dengan menjalankan perintah Run pada Start Menu
kemudian menuliskan Cmd > OK

Pekerjaan
• Mengetikkan listing program pada sebuah editor
• Melakukan kompilasi program
• Menjalankan program yang sudah dikompilasi
• Megerjakan latihan-latihan yang diberikan

Hasil
• Sebuah program sederhana untuk menampilkan layar yang sudah
didefinisikan pada bagian screen section
Pertemuan V –Screen Section 5-23

Teori
SCREEN SECTION
Section ini berguna untuk membuat format layer baik untuk input maupun
output-an. Screen section berhubungan dengan perintah DISPLAY dan
ACCEPT di PROCEDURE DIVISION.
Perintah DISPLAY digunakan untuk menampilkan format layer yang ada di
SCREEN SECTION. Sedangkan ACCEPT digunakan untuk memasukkan nilai
pada tempat yang disediakan pada format layer di SCREEN SECTION.
Screen Section terdapat pada data division, dibawah working-storage section.
Screen section digunakan untuk mendeklarasikan tampilan yang akan
digunakan. Setiap tampilan yang akan diletakkan pada screen section harus
diberi nama terlebih dahulu. Sehingga pada procedure division nama tampilan
dapat digunakan, baik sebagai penampilan (output) maupun isian (input).
Format dasar untuk tampilan output adalah :

[SCREEN SECTION.
Level-number [nama-layar].
Level-number [BLANK SCREEN]
[LINE NUMBER]
[COLUMN NUMBER]
[VALUE literal]
]

Format dasar untuk tampilan input adalah :


[SCREEN SECTION.
Level-number [nama-layar].
Level-number [LINE NUMBER]
[COLUMN NUMBER]
[PIC FROM/TO/USING nama-data]
[BELL]
[UNDERLINE]
[HIGHLIGHT]
[REVERSE-VIDEO]
[AUTO]
[SECURE]
[REQUIRED]
[FULL]
]
Pertemuan V –Screen Section 5-24

Percobaan
Lakukan percobaan praktikum dibawah ini secara berurutan :
1. Definisikan terlebih dahulu layer yang akan kita buat pada screen
section.
IDENTIFICATION DIVISION.
PROGRAM-ID. LAYAR.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 NRP PIC X(8).
02 NAMA PIC X(20).
SCREEN SECTION
01 BERSIH-LAYAR.
02 BLANK SCREEN.
01 LAYAR-1.
02 LINE 3 COLUMN 2 VALUE ‘NRP : ’.
02 COLUMN PLUS 1 PIC X(8) TO NRP.
02 LINE 4 COLUMN 2 VALUE ‘NAMA : ’.
02 COLUMN PLUS 1 PIC X(20) TO NAMA.

2. Dibawah ini contoh penggunaan screen section pada bagian


PROCEDURE DIVISION
PROCEDURE DIVISION.
TAMPIL.
DISPLAY BERSIH-LAYAR.
DISPLAY ‘PENERAPAN SCREEN SECTION’
DISPLAY LAYAR-1.
ACCEPT LAYAR-1.
STOP RUN.

Latihan
1. Buatlah sebuah program sederhana untuk mengisi data mahasiswa
dengan menggunakan screen section, dengan inputan NRP, Nama.
Kemudian setelah data diisi maka program akan menampilkan data
yang diisi diawal tadi (gunakan screen section dengan perintah FROM
untuk menampilkan data).
Pertemuan V –Screen Section 5-25

Contoh tampilan :
NRP : 00311936 [input x(8)]
NAMA : John Suparmin [input x(20)]

Mahasiswa yang memiliki NRP 00311936 [output]


Ternyata bernama John Suparmin [output]

2. Modifikasi program diatas (latihan no.1) dengan menambahkan


statement PERFORM … UNTIL, sehingga dapat dilakukan pengisian
data berulang – ulang sampai 5 kali. Jangan lupa membuat deklarasi
variabel JAWAB, dan inputan "ISI LAGI ?"

Laporan
1. Sebutkan keguanaan dan perbedaan dari TO, FROM, dan USING pada
screen section.
2. Buat sebuah program untuk mengisi data Karyawan sesuai dengan
Praktikum 3 pada bagian Laporan No.1, dimana semua input dan
output menggunakan screen section, tambahkan juga statement
PERFORM …UNTIL, sehingga dapat dilakukan pengisian data
berulang–ulang.
Pertemuan

6
File Sequential

Tujuan
Diharapkan mahasiswa dapat mengetahui beberapa operasi yang
digunakan untuk membuaka file, merekam / menyimpan / menulis :
bila telah dibuka menggunakan OUTPUT, I-O, atau EXTEND,
PEMBACAAN : bila telah dibukan menggunakan INPUT, MENUTUP :
bila telah dibuka.

Persiapan
• Editor program, yaitu dengan menggunakan MS-DOS Editor yaitu
dengan menjalankan perintah Run pada Start Menu kemudian
menuliskan Edit > OK
• Command Prompt dengan menjalankan perintah Run pada Start Menu
kemudian menuliskan Cmd > OK
• Menjalankan ISAM.EXE pada commpand prompt

Pekerjaan
• Melakukan deklarasi file.
• Melakukan operasi simpan data dan ambil data dari file sequential.

Hasil
Menghasilkan sebuah program dengan organisasi dan access mode
sequential.

Teori
Ada beberapa bentuk pengolahan data file pada COBOL. Salah satu
bentuk file yang terdapat pada COBOL adalah file sequential. File
sequential dapat menyimpan data yang berbentuk record. Dengan
menggunakan file maka program akan menjadi lebih fleksibel, karena
Pertemuan VII – File Index Access Mode Dynamic (Entry Data 1 File) 7-27

data yang digunakan dapat disimpan dan kemudian dapat pula


ditampilkan.
Ada beberapa hal yang perlu diperhatikan dalam membuat program
yang menggunakan file, terutama file sequential. Antara lain :
• Cara mendeklarasikan file
• Cara menggunakan file, baik untuk menyimpan data maupun
untuk mengambil data.

Untuk mendeklarasikan file ada beberapa hal lagi yang perlu diperhatikan :
• Untuk deklarasi file diletakkan pada ENVIRONMENT
DIVISION. Dibawah INPUT-OUTPUT SECTION, dan FILE-
CONTROL.
• Bentuk Organisasi (Organization),
• Cara mengakses (access mode),
• Status kesalahan operasi file yang terjadi (FILE STATUS).

Untuk mendeklarasikan data yang akan disimpan perlu diperhatikan :


• Tempat menyimpan atau nama file yang akan digunakan.
• Nama record yang akan digunakan.

Pada file sequential, maka diatur bentuk organisasinya adalah


SEQUENTIAL. Karena yang akan dipakai adalah file sequential maka
access mode yang ada hanya SEQUENTIAL juga. Untuk FILE STATUS
diisi dengan nama variabel tempat menampung nomer kesalahan, dan
harus dideklarasikan pada working-storage section.
Contoh Deklarasi File :
IDENTIFICATION DIVISION.
PROGRAM-ID. SmallestProgram.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT MHS ASSIGN TO DISK
ORGANIZATION IS SEQUENTIAL
ACCESS MODE IS SEQUENTIAL
FILE STATUS IS MHSSTAT.
DATA DIVISION.
FILE SECTION.
FD MHS
LABEL RECORD IS STANDARD
VALUE OF FILE-ID IS 'DAFMHS.XYZ'
DATA RECORD IS MHSDAT.
01 MHSDAT.
02 NRP PIC X(8).
02 NAMA PIC X(20).
WORKING-STORAGE SECTION.
Pertemuan VII – File Index Access Mode Dynamic (Entry Data 1 File) 7-28

01 MHSSTAT PIC XX.

Pada listing program diatas dapat dijelaskan bahwa


• SELECT MHS ASSIGN TO DISK berarti data yang digunakan
adalah MHS yang nanti akan dideklarasikan pada FILE
SECTION, level number FD.
• Organisasi dan access mode yang digunakan adalah sequential.
• File status yang digunakan adalah MHSSTAT. Variable ini telah
dideklarasikan pada WORKING-STORAGE SECTION dengan
tipe (picture XX).
• FD MHS yang terletak pada FILE SECTION, ditujukan untuk
mendeklarasikan nama data yang akan digunakan pada operasi
file. Sehingga semua operasi yang berhubungan dengan file
harus menggunakan nama MHS.
• LABEL RECORD IS STANDARD digunakan untuk file.
• VALUE OF FILE-ID IS 'DAFMHS.XYZ' maksudnya adalah bahwa
data akan disimpan dan diambil dari file yang bernama MHS
dengan ekstensi XYZ.
• DATA RECORD IS MHSDAT maksudnya adalah bahwa bentuk
data yang disimpan terlihat seperti pada pendeklarasian record
dengan nama MHSDAT dibawahnya.

Pada PROCEDURE DIVISION perlu diperhatikan perintah yang


berhubungan dengan operasi file. Yaitu :
MEMBUKA FILE.
• OPEN INPUT [nama data] : digunakan untuk membuka file, dan
file yang dibuka dengan perintah ini hanya dapat dibaca saja.
• OPEN OUTPUT [nama data] : digunakan untuk membuka file
juga, tetapi jika file yang dibuka belum ada maka file akan dibuat,
dan bila sudah ada maka data akan tetap dibuat baru kembali.
• OPEN I-O [nama data] : Digunakan untuk membuka file juga,
tetapi file yang dibuka dengan perintah ini akan dapat dibaca dan
ditulis (bukan menambah).
• OPEN EXTEND [nama data] : Digunakan untuk membuka file
juga, tetapi file yang dibuka dengan perintah ini hanya akan
dapat dilakukan perintah menulis saja (menambah data).
MEREKAM / MENYIMPAN / MENULIS : bila telah dibuka
menggunakan OUTPUT, I-O, atau EXTEND.
• WRITE [nama data]: digunakan untuk menulis data ke file yang
sedang dibuka, biasanya digunakan untuk menambah data.
• REWRITE [nama data]: digunakan untuk mengkoreksi data, dan
penulisan dilakukan pada posisi yang ditunjukkan.
Pertemuan VII – File Index Access Mode Dynamic (Entry Data 1 File) 7-29

PEMBACAAN : bila telah dibukan menggunakan INPUT.


• READ [nama data]: digunakan untuk membaca
MENUTUP : bila telah dibuka.
• CLOSE [nama data]

Percobaan
1. Tambahkan screen section untuk menampilkan data dan
mememasukkan data pada file tersebut.
SCREEN SECTION.
01 BERSIH-LAYAR.
02 BLANK SCREEN.
01 FORMAT-SATU.
02 LINE 4 VALUE 'NRP :'.
02 COLUMN PLUS 1 PIC X(8) TO NRP.
02 LINE 5 VALUE 'NAMA :'.
02 COLUMN PLUS 1 PIC X(20) TO NAMA.

2. Tambahkan contoh deklarasi diatas dengan procedure division, yang


didalamnya berisi perintah membuka, dan menyimpan, dan menutup.
PROCEDURE DIVISION.
DisplayPrompt.
DISPLAY BERSIH-LAYAR.
OPEN OUTPUT MHS.
DISPLAY FORMAT-SATU.
ACCEPT FORMAT-SATU.
WRITE MHS.
CLOSE MHS.
STOP RUN.
( logika : file dibuka, layar ditampilkan, layar diisi, data disimpan,
ditutup. )
3. Rubahlah screen section sehingga dapat digunakan untuk menampilkan
data. Kemudian Ganti procedure division nomer 2 dengan perintah
membuka, membaca, dan menutup.
PROCEDURE DIVISION.
DisplayPrompt.
DISPLAY BERSIH-LAYAR.
OPEN INPUT MHS.
READ MHS.
DISPLAY FORMAT-SATU.
CLOSE MHS.
STOP RUN.
(logika : file dibuka, data dibaca, tampilkan data pada layar, tutup file. )

Latihan
Buatlah program untuk mengkoreksi data. Dengan logika : file dibuka,
isi NRP, NRP dicari, jika ketemu data ditampilkan, data diisi dan
disimpan.
Pertemuan VII – File Index Access Mode Dynamic (Entry Data 1 File) 7-30

Laporan
Buatlah deklarasi file Karyawan menggunakan access mode sequential dengan
fiel NIP, Nama dan Alamat. Kemudian Lakukan seperti pada percobaan dan
latihan!
Pertemuan

7
File Indexed Access Mode Dynamic (Entry data 1 File)

Tujuan
• Diharapkan mahasiswa dapat memahami cara penggunaan file index
dengan access mode dynamic.
• Diharapkan mahasiswa dapat membuat sebuah program sederhana
untuk entry data dengan menggunakan satu file.

Persiapan
• Editor program, yaitu dengan menggunakan MS-DOS Editor yaitu
dengan menjalankan perintah Run pada Start Menu kemudian
menuliskan Edit > OK
• Command Prompt dengan menjalankan perintah Run pada Start Menu
kemudian menuliskan Cmd > OK
• Menjalankan ISAM.EXE pada commpand prompt

Pekerjaan
• Mengetikkan listing program pada sebuah editor
• Melakukan kompilasi program
• Menjalankan program yang sudah dikompilasi
• Mengerjakan latihan yang diberikan

Hasil
• Sebuah program sederhana untuk entry data dengan menggunakan File
Indexed access mode dynamic.

Teori
Bahasa pemrograman COBOL dapat digunakan untuk bekerja dengan file yang
tersimpan pada storage (Harddisk, ataupun disket). File yang akan digunakan
dibedakan dalam tiga organisasi file, yaitu : Sequential, Index, dan Relatif
Untuk masing-masing organisasi file tersebut memiliki cara akses data. Seperti
terlihat pada tabel dibawah ini :
Pertemuan VII – File Index Access Mode Dynamic (Entry Data 1 File) 7-32

ORGANISASI FILE ACCESS MODE

SEQUENTIAL SEQUENTIAL
SEQUENTIAL
INDEX INDEXED
DYNAMIC
SEQUENTIAL
RELATIF INDEXED
DYNAMIC

Pada kali ini Organisasi file yang akan digunakan adalah INDEX dengan
Access Mode DYNAMIC. Organisasi INDEX dengan Access Mode DYNAMIC
ini mempunyai beberapa kelebihan dibandingkan bentuk file lain. Dengan
adanya kelebihan itu maka pengolahan file akan menjadi lebih mudah, tetapi
pasti ada kekurangannya.
Organisasi INDEX dengan Mode Access Dynamic adalah cara untuk
mengakses file yang menggabungkan kelebihan dari mode access Sequential
dan mode access Random. Semua fasilitas operasi file selain open dan close,
seperti write, rewrite, read, start dapat digunakan.
Cara mendeklarasikan file yang perlu diperhatikan adalah pada bagian
ORGANIZATION IS diisi dengan INDEXED, dan pada ACCESS MODE IS diisi
dengan DYNAMIC.
Contoh 7.1 Deklarasi File Indexed ACCESS MODE DYNAMIC :
IDENTIFICATION DIVISION.
PROGRAM-ID. DYNAMICPROGRAM.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT Mahasiswa ASSIGN TO DISK
ORGANIZATION IS INDEXED
ACCESS MODE IS DYNAMIC
RECORD KEY IS NRP
FILE STATUS IS STAT.
DATA DIVISION.
FILE SECTION.
FD Mahasiswa
LABEL RECORD IS STANDARD
VALUE OF FILE-ID IS 'MHS.XYZ'
DATA RECORD IS MhsDat.
01 MhsDat.
02 NRP PIC X(8).
02 Nama PIC X(20).
02 Alamat PIC x(20).
WORKING-STORAGE SECTION.
01 STAT PIC XX.
Pertemuan VII – File Index Access Mode Dynamic (Entry Data 1 File) 7-33

Perintah operasi file yang dapat digunakan pada organisasi INDEX dan Access
Mode DYNAMIC sebagai berikut :

• OPEN INPUT nama-file


• OPEN OUTPUT nama-file
• OPEN I-O nama-file
• WRITE nama-record [INVALID KEY statement]
• READ nama-file [NEXT RECORD][INTO nama-data][AT END
statement]
• READ nama-file [INTO nama-data][KEY IS nama-data][INVALID KEY
statement]
• REWRITE nama-record [INVALID KEY statement]
• START nama-file [ KEY IS EQUAL TO nama-data] [INVALID KEY
statement]
• DELETE nama-record RECORD [INVALID KEY statement]
• CLOSE nama-file

Penggunaan perintah operasi file tersebut dilakukan pada bagian PROCEDURE


DIVISION.

MEMBUKA FILE (OPEN).


Perbedaan file hasil pembukaan file :
• OPEN INPUT [nama file] : digunakan untuk membuka file, dan file yang
dibuka dengan perintah ini hanya dapat dibaca saja.
• OPEN OUTPUT [nama file] : digunakan untuk membuka file juga, tetapi
jika file yang dibuka belum ada maka file akan dibuat, dan bila sudah
ada maka data akan tetap dibuat baru kembali.
• OPEN I-O [nama file] : Digunakan untuk membuka file juga, tetapi file
yang dibuka dengan perintah ini akan dapat digunakan untuk membaca,
menyimpan/menulis, merubah, ataupun mencari (READ, WRITE,
REWRITE, START).

MEREKAM / MENYIMPAN / MENULIS DATA


Bila file telah dibuka menggunakan OPEN OUTPUT maka data dapat disimpan
menggunakan perintah :
• WRITE nama-record [FROM nama-data] [INVALID KEY statement]:
digunakan untuk menulis data ke file yang sedang dibuka, biasanya
digunakan untuk menambah data.

MENGAMBIL / MEMBACA / MENCARI DATA


Apabila file telah dibuka menggunakan perintah OPEN INPUT maka data
dapat dibaca menggunakan perintah :
Pertemuan VII – File Index Access Mode Dynamic (Entry Data 1 File) 7-34

• READ nama-file [NEXT RECORD][INTO nama-data][AT END


statement] : digunakan untuk membaca sebuah record secara urut,
biasanya digunakan untuk membuat laporan.
• READ nama-file [INTO nama-data][KEY IS nama-data][INVALID KEY
statement] : digunakan untuk membaca sebuah record berdasarkan
kunci yang telah ditentukan sebelumnya, biasanya perintah ini
digunakan untuk mencari data.

MENGKOREKSI / MERUBAH / UPDATE DATA


Untuk dapat mengkoreksi data maka file terlebih dahulu dibuka menggunakan
bentuk OPEN I-O, setelah itu dilakukan perintah
• REWRITE nama-record [FROM nama-data] [INVALID KEY statement]:
digunakan untuk mengkoreksi data, dan penulisan dilakukan pada
posisi yang ditunjukkan oleh kunci yang telah ditentukan.

MENGHAPUS DATA
Sebelum dapat menghapus data maka file harus dibuka menggunakan OPEN I-
O, kemudian jalankan perintah :
• DELETE nama-record RECORD [INVALID KEY statement]: digunakan
untuk menghapus data.

MENUTUP FILE
Apabila telah dibuka menggukan perintah OPEN dengan bentuk apa saja maka
file dapat ditutup menggunakan perintah :
• CLOSE [nama file]

Pada file dengan Organisasi INDEX, akan terdapat file dengan extention .KEY.
File ini berfungsi sebagai index atau kunci, yang bersifat unik (tidak ada yang
sama), dan harus ditentukan pada pendeklarasian file tersebut. Dengan adanya
file index ini pencarian data menjadi lebih cepat.

CATATAN :
Jangan lupa untuk menjalankan ISAM.EXE sewaktu menggukan FILE
organisasi INDEX.
Pertemuan VII – File Index Access Mode Dynamic (Entry Data 1 File) 7-35

Percobaan
1. Buatlah deklarasi file seperti pada Contoh 7.1 diatas kemudian
tambahkan perintah berikut :
SCREEN SECTION.
01 BERSIH-LAYAR.
02 BLANK SCREEN.
01 FORMAT-SATU.
02 LINE 4 COLUMN 3 VALUE 'NRP : '.
02 COLUMN PLUS 2 PIC X(8) TO NRP.
02 LINE 5 COLUMN 3 VALUE 'NAMA : '.
02 COLUMN PLUS 2 PIC X(20) TO Nama.
02 LINE 6 COLUMN 3 VALUE 'ALAMAT : '.
02 COLUMN PLUS 2 PIC X(20) TO Alamat.

PROCEDURE DIVISION.
BUKA-DATA.
DISPLAY BERSIH-LAYAR.
OPEN I-O Mahasiswa.
IF STAT = '30'
OPEN OUTPUT Mahasiswa
CLOSE Mahasiswa
OPEN I-O Mahasiswa.
ISI-DATA.
DISPLAY FORMAT-SATU.
ACCEPT FORMAT-SATU.
WRITE MHSDAT.
SELESAI.
CLOSE MAHASISWA.
STOP RUN.
( logika : layar dibersihkan, file dibuka, jika file masih belum ada file
dibuka sebagai file output, file ditutup, file dibuka sebagai file I-O, layar
ditampilkan, isi data, data disimpan, ditutup )

CATATAN
Gunakan perintah TYPE namafile untuk melihat langsung isi dari file. Sehingga
dapat diperiksa apakah data tersimpan atau tidak
Contoh : C:\>TYPE MHS.XYZ
2. Lakukan percobaan berikut :
• Tambahkan listing program berikut pada bagian WORKING-
STORAGE SECTION
01 LAGI PIC X.
88 YA-LAGI VALUE 'Y', 'Y'.
88 TDK-LAGI VALUE 'T', 'T'.
• Buat sebuah tampilan untuk menampilkan pesan pada bagian
SCREEN SECTION
01 MSG-LAGI.
Pertemuan VII – File Index Access Mode Dynamic (Entry Data 1 File) 7-36

02 LINE 8 COLUMN 3 VALUE 'ISI LAGI ?'.


02 COLUMN PLUS 2 PIC X TO LAGI.
• Kemudian buatlah paragraf baru pada bagian PROCEDURE
DIVISION untuk memanggil format layar MSG-LAGI dari
SCREEN SECTION, letakkan paragraf berikut sebelum paragraf
SELESAI.
PESAN.
DISPLAY MSG-LAGI.
ACCEPT MSG-LAGI.
DISPLAY BERSIH-LAYAR.
IF YA-LAGI
GO TO ISI-DATA
ELSE
DISPLAY 'Terima Kasih'.
( logika : layar pesan ditampilkan, diisi, layar dibersihkan, jika diisi ‘Y’
program dilanjutkan ke paragraf ISI-DATA jika ‘T’ menampilkan pesan)

Latihan
1. Rubahlah program pada bagian percobaan diatas untuk mencari data.
Dengan logika : file dibuka, isi NRP, NRP dicari, jika ketemu data
ditampilkan kemudian tampilkan pesan untuk mengisi data lagi, jika
tidak ketemu kosongkan layar entry data selain NRP.

Laporan
1. Dengan menggunakan SCREEN SECTION dan FILE ORGANISASI
INDEX dan ACCESS MODE DYNAMIC, buatlah program untuk
mengisi data karyawan dengan field sebagai berikut :

NIP X(5)
NAMA X(20)
GOLONGAN X(3)
GAJIPOKOK 9(6)

Gaji total, dengan ketentuan sebagai berikut :

Gaji total = Gaji pokok + Tunjangan Anak + Tunjangan Jabatan.


Ketentuan Tunjangan Anak dihitung hanya sampai anak ke tiga, dan
masing – masing anak mendapatkan 2% dari gaji pokok.
Ketentuan Tunjangan Jabatan dihitung sebagai berikut :
Pertemuan VII – File Index Access Mode Dynamic (Entry Data 1 File) 7-37

Golongan I : Tunjangan Jabatan = Rp. 100.000,00


Golongan II : Tunjangan Jabatan = Rp. 75.000,00
Golongan III : Tunjangan Jabatan = Rp. 50.000,00

Contoh tampilan :
NIP : input X(5)
Nama : input X(20)
Golongan : input X(3)
Gaji pokok : input 9(6)
Tunjangan Anak : output
Tunjangan Jabatan : output
Gaji Total : output
--[pesan]-----
Data disimpan [y/t] ? input x(1)

2. Tuliskan perintah untuk membuka file agar file tersebut dapat dikoreksi.
3. Tuliskan pula perintah untuk mencari, mengkoreksi dan menghapus
data.
Pertemuan

8
File Indexed Access Mode Dynamic (Koreksi & Hapus
- 1 File)

Tujuan
Agar Mahasiswa dapat membuat program file index access mode
dynamic.

Persiapan
• Editor program, yaitu dengan menggunakan MS-DOS Editor yaitu
dengan menjalankan perintah Run pada Start Menu kemudian
menuliskan Edit > OK
• Command Prompt dengan menjalankan perintah Run pada Start Menu
kemudian menuliskan Cmd > OK
• Menjalankan ISAM.EXE pada commpand prompt

Pekerjaan
Mahasiswa membuat program untuk Koreksi dan Hapus sebuah data
di sebuah Tabel (File).

Hasil
Menghasilkan sebuah program file index access mode dynamic untuk
Koreksi dan Hapus data – 1 file.

Teori
Untuk dapat melakukan Koreksi (perubahan) ataupun
penghapusan data, maka lebih baik dilakukan pencarian terlebih
dahulu. Apabila data yang dicari ditemukan, maka selanjutnya dapat
dilakukan koreksi (perubahan) atau penghapusan.
Pada ORGANISASI INDEX ACCESS MODE DYNAMIC
perintah untuk mencari sekaligus mengambil data adalah
Pertemuan VIII – File Index Access Mode Dynamic (Koreksi dan Hapus 1 File) 8-39

READ nama-file [INTO nama-data][KEY IS nama-


data][INVALID KEY statement] : digunakan untuk membaca
sebuah record berdasarkan kunci yang telah ditentukan sebelumnya,
biasanya perintah ini digunakan untuk mencari data.

MENGKOREKSI / MERUBAH / UPDATE DATA


Untuk dapat mengkoreksi data maka file terlebih dahulu dibuka
menggunakan bentuk OPEN I-O, setelah itu dilakukan perintah
• REWRITE nama-record [FROM nama-data] [INVALID KEY
statement]: digunakan untuk mengkoreksi data, dan penulisan
dilakukan pada posisi yang ditunjukkan oleh kunci yang telah
ditentukan.

MENGHAPUS DATA
Sebelum dapat menghapus data maka file harus dibuka menggunakan
OPEN I-O, kemudian jalankan perintah :
• DELETE nama-record RECORD [INVALID KEY
statement]: digunakan untuk menghapus data.

Percobaan
1. Membuat Program KOREKSI data
Buatlah deklarasi FILE sebagai berikut :

IDENTIFICATION DIVISION.
PROGRAM-ID. UPDATEdata.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT MHS ASSIGN TO DISK
ORGANIZATION IS INDEXED
ACCESS MODE IS DYNAMIC
KEY IS NRP
FILE STATUS IS MHSSTAT.
DATA DIVISION.
FILE SECTION.
FD MHS
LABEL RECORD IS STANDARD
VALUE OF FILE-ID IS 'DAFMHS.XYZ'
DATA RECORD IS MHSDAT.
01 MHSDAT.
02 NRP PIC X(8).
02 NAMA PIC X(20).
02 ALAMAT PIC X(15).
WORKING-STORAGE SECTION.
Pertemuan VIII – File Index Access Mode Dynamic (Koreksi dan Hapus 1 File) 8-40

01 MHSSTAT PIC XX.

Buat DEKLARASI DATA DAN SCREEN :


01 ADAMHS PIC X.
88 YA-ADA VALUE 'Y','y'.
88 TIDAK-ADA VALUE 'T','t'.
01 SIMPANLAGI PIC X.
88 YA-SIMPAN VALUE 'Y','y'.
88 TIDAK-SIMPAN VALUE 'T','t'.
01 ISILAGI PIC X.
88 YA-LAGI VALUE 'Y','y'.
88 TIDAK-LAGI VALUE 'T','t'.
SCREEN SECTION.
01 BERSIH-LAYAR.
02 BLANK SCREEN.
01 FORMAT-SATU.
02 LINE 4 COLUMN 5 VALUE 'NRP :'.
02 COLUMN PLUS 1 PIC X(8) TO KODE full.
02 LINE 5 COLUMN 5 VALUE 'NAMA :'.
02 LINE 6 COLUMN 5 VALUE 'ALAMAT :'.
01 FORMAT-DUA.
02 LINE 5 COLUMN 14 PIC X(20) TO NAMA.
02 LINE 5 COLUMN 14 PIC X(15)
TO ALAMAT.
01 FORMAT-TIGA.
02 LINE 5 COLUMN 14 PIC X(20)
USING NAMA.
02 LINE 5 COLUMN 14 PIC X(15)
USING ALAMAT.
01 MSG-SIMPAN.
02 LINE 8 COLUMN 5 VALUE
'DATA AKAN DISIMPAN [Y/T] ?'.
02 COLUMN PLUS 1 PIC X TO SIMPANLAGI.
01 MSG-LAGI.
02 LINE 8 COLUMN 5 VALUE
'MODIFIKASI DATA LAGI [Y/T] ?'.
02 COLUMN PLUS 1 PIC X TO ISILAGI.

Tambahkan pada procedure division program untuk MENGISI DAN KOREKSI


DATA.
PROCEDURE DIVISION.
MULAI.
PERFORM BUKAFILE.
MOVE 'Y' TO ISILAGI.
PERFORM ISIDATA UNTIL TIDAK-LAGI.
PERFORM SELESAI.

BUKAFILE.
DISPLAY BERSIH-LAYAR.
OPEN I-O MHS.
IF MHSSTAT = '30'
OPEN OUTPUT MHS
CLOSE MHS
Pertemuan VIII – File Index Access Mode Dynamic (Koreksi dan Hapus 1 File) 8-41

OPEN I-O MHS.

ISIDATA.
DISPLAY FORMAT-SATU.
ACCEPT FORMAT-SATU.

PERFORM CARIDATA.
IF TIDAK-ADA
ACCEPT FORMAT-DUA
ELSE
DISPLAY FORMAT-TIGA
ACCEPT FOMRAT-TIGA.

DISPLAY MSG-SIMPAN.
ACCEPT MSG-SIMPAN.
IF YA-SIMPAN
IF TIDAK-ADA
WRITE MHS
ELSE
REWRITE MHS.
DISPLAY MSG-LAGI.
ACCEPT MSG-LAGI.
CARIDATA.
MOVE 'Y' TO ADAMHS.
READ MHS KEY IS KODE
INVALID KEY MOVE 'T' TO ADAMHS.
SELESAI.
CLOSE MHS.
STOP RUN.

Latihan
Buat Program HAPUS data dari program pada percobaan di atas,
SESUAIKAN UNTUK MSG-DELTE, DAN VARIABEL YA-
DELETE.

Laporan

1. Buatlah program Koreksi data, Cari data dan Hapus data KARYAWAN
dengan field-filed : NIP, Nama, Jenis Kelamin, Alamat.
2. Jelaskan kegunaan perintah KEY IS pada waktu mendeklarasikan data.
3. Nama file dapat ditentukan pada waktu mendeklarasikan data, sebutkan
bagian yang digunakan untuk memberi nama file.
4. Sebutkan dan jelaskan fungsi file status.
5. Sebutkan perbedaan antara OPEN OUTPUT dan OPEN I-O.
Pertemuan

9
Bekerja Dengan Dua Tabel (Index Dynamic)

Tujuan
• Agar mahasiswa terampil membuat program file Organisasi INDEXED
Access Mode Dynamic dengan menggunakan dua tabel atau lebih.

Persiapan
• Editor program, yaitu dengan menggunakan MS-DOS Editor yaitu
dengan menjalankan perintah Run pada Start Menu kemudian
menuliskan Edit > OK
• Command Prompt dengan menjalankan perintah Run pada Start Menu
kemudian menuliskan Cmd > OK
• Menjalankan ISAM.EXE pada commpand prompt

Pekerjaan
• Mengetikkan listing program pada sebuah editor
• Membuat sebuah program sederhana untuk mengisi data dosen dengan
menggunakan File Index Dynamic
• Membuat sebuah program dengan menggunakan dua tebel yaitu
Mahasiswa dan Dosen dengan menggunakan File Index Dynamic
• Melakukan kompilasi program
• Menjalankan program yang sudah dikompilasi
• Mengerjakan latihan yang diberikan

Hasil
• Sebuah program sederhana dengan menggunakan File Indexed access
mode dynamic.
• Sebuah program dengan menggunakan dua tabel.

Teori
COBOL dapat digunakan untuk membuat program yang menggunakan lebih
dari satu tabel (file). Pada dasarnya program yang dibuat sama seperti program
Pertemuan IX – Bekerja dengan dua Tabel (Index Dynamic) 9-43

menggunakan satu tabel (file). Perbedaannya adalah hanya pada pendekla-


rasian file.
Cara mendeklarasikan tabel dapat dilihat pada Contoh 9.1 dibawah. Pada
contoh tersebut diperlihatkan penggunaan tabel mahasiswa dan tabel dosen
wali.
IDENTIFICATION DIVISION.
PROGRAM-ID. DYNAMICPROGRAM.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT Mahasiswa ASSIGN TO DISK
ORGANIZATION IS INDEXED
ACCESS MODE IS DYNAMIC
RECORD KEY IS KODEMHS
FILE STATUS IS STAT-MHS.

SELECT Dosen ASSIGN TO DISK


ORGANIZATION IS INDEXED
ACCESS MODE IS DYNAMIC
RECORD KEY IS KODE-DSN
FILE STATUS IS STAT-DSN.

DATA DIVISION.
FILE SECTION.
FD Mahasiswa
LABEL RECORD IS STANDARD
VALUE OF FILE-ID IS 'MHS.XYZ'
DATA RECORD IS MhsDat.
01 MhsDat.
02 NRP PIC X(8).
02 NAMA PIC X(20).
02 KD-DSN PIC X(5).
FD Dosen
LABEL RECORD IS STANDARD
VALUE OF FILE-ID IS 'DSN.XYZ'
DATA RECORD IS DosenDat.
01 DosenDat.
02 KODE-DSN PIC X(5).
02 NAMA-DSN PIC X(20).
WORKING-STORAGE SECTION.
01 STAT-MHS PIC XX.
01 STAT-DSN PIC XX.
Yang perlu diperhatikan :
• Urutan dalam mendeklarasikan tabel – tabel yang digunakan, antara File
control dan FD.
• Nama - nama field yang digunakan tidak boleh ada yang sama.

Percobaan
1. Buatlah sebuah program untuk mengisi data Dosen dengan fields
sebagai berikut :
Pertemuan IX – Bekerja dengan dua Tabel (Index Dynamic) 9-44

KODE-DSN PIC X(5)


NAMA-DSN PIC X(20)
Deklarasi File sebagai berikut :
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT Dosen ASSIGN TO DISK
ORGANIZATION IS INDEXED
ACCESS MODE IS DYNAMIC
RECORD KEY IS KODE-DSN
FILE STATUS IS STAT-DSN.
DATA DIVISION.
FILE SECTION.
FD Dosen
LABEL RECORD IS STANDARD
VALUE OF FILE-ID IS 'DSN.XYZ'
DATA RECORD IS DsnDat.
01 DsnDat.
02 KODE-DSN PIC X(5).
02 NAMA-DSN PIC X(20).
WORKING-STORAGE SECTION.
01 STAT-DSN PIC XX.
Lanjutkan program diatas untuk mengisi data Dosen.
2. Tambahkan listing program pada Contoh 9.1 diatas, dengan menambah
deklarasi data dan tampilan pada SCREEN SECTION seperti berikut :
WORKING-STORAGE SECTION.
01 STAT-DSN PIC XX.
01 STAT-MHS PIC XX.

01 ADAMHS PIC X.
88 YA-ADAMHS VALUE 'Y', 'Y'.
88 TDK-ADAMHS VALUE 'T', 'T'.

01 ADADSN PIC X.
88 YA-ADADSN VALUE 'Y', 'Y'.
88 TDK-ADADSN VALUE 'T', 'T'.

01 SIMPAN PIC X.
88 YA-SIMPAN VALUE 'Y', 'Y'.
88 TDK-SIMPAN VALUE 'T', 'T'.

01 LAGI PIC X.
88 YA-LAGI VALUE 'Y', 'Y'.
88 TDK-LAGI VALUE 'T', 'T'.

SCREEN SECTION.
01 BERSIH-LAYAR.
02 BLANK SCREEN.
01 FORMAT-SATU.
02 LINE 4 COLUMN 5 VALUE
'NRP :'.
02 COLUMN PLUS 1 PIC X(8) TO NRP FULL.
Pertemuan IX – Bekerja dengan dua Tabel (Index Dynamic) 9-45

02 LINE 5 COLUMN 5 VALUE


'NAMA MAHASISWA :'.
02 LINE 6 COLUMN 5 VALUE
'KODE DOSEN :'.
02 LINE 7 COLUMN 5 VALUE
'NAMA DOSEN :'.
01 FORMAT-DUA.
02 LINE 5 COLUMN 22 PIC X(20)
USING NAMA.
02 LINE 6 COLUMN 22 PIC X(5)
USING KD-DSN.
01 FORMAT-TIGA.
02 LINE 5 COLUMN 22 PIC X(20) TO NAMA.
01 FORMAT-EMPAT.
02 LINE 6 COLUMN 22 PIC X(5)
TO KD-DSN.
01 FORMAT-LIMA.
02 LINE 7 COLUMN 22 PIC X(20)
FROM NAMA-DSN.
01 MSG-SIMPAN.
02 LINE 9 COLUMN 5 VALUE
'DATA DISIMPAN ? '.
02 COLUMN PLUS 1 PIC X TO SIMPAN.
01 MSG-LAGI.
02 LINE 10 COLUMN 5 VALUE
'ISI LAGI ? '.
02 COLUMN PLUS 1 PIC X TO LAGI.

3. Mengisi & Koreksi Data, tambahkan listing program berikut pada


PROCEDURE DIVISION :
PROCEDURE DIVISION.
BUKA-DATA.
DISPLAY BERSIH-LAYAR.
OPEN I-O Dosen.
IF STAT-DSN = '30'
STOP 'DATA DOSEN MASIH KOSONG'
STOP RUN.
OPEN I-O Mahasiswa.
IF STAT-MHS = '30'
OPEN OUTPUT Mahasiswa
CLOSE Mahasiswa
OPEN I-O Mahasiswa.
ISI-DATA.
DISPLAY BERSIH-LAYAR.
DISPLAY FORMAT-SATU.
ACCEPT FORMAT-SATU.
PERFORM CARI-MHS.
IF YA-ADAMHS
DISPLAY FORMAT-DUA
MOVE KD-DSN TO KODE-DSN
PERFORM CARI-DSN
ACCEPT FORMAT-DUA
ELSE
ACCEPT FORMAT-TIGA
Pertemuan IX – Bekerja dengan dua Tabel (Index Dynamic) 9-46

ACCEPT FORMAT-EMPAT.
MOVE KD-DSN TO KODE-DSN.
MOVE ‘T’ TO ADADSN
PERFORM CARI-DSN UNTIL YA-ADADSN.
DISPLAY MSG-SIMPAN.
ACCEPT MSG-SIMPAN.
IF YA-SIMPAN
IF TDK-ADAMHS
WRITE MHSDAT
ELSE
REWRITE MHSDAT.
DISPLAY MSG-LAGI.
ACCEPT MSG-LAGI.
IF YA-LAGI
GO TO ISI-DATA
ELSE
GO TO SELESAI.
CARI-MHS.
MOVE 'Y' TO ADAMHS.
READ MAHASISWA KEY IS NRP
INVALID KEY MOVE 'T' TO ADAMHS.
CARI-DSN.
MOVE 'Y' TO ADADSN
READ DOSEN KEY IS KODE-DSN
INVALID KEY MOVE 'T' TO ADADSN.
IF YA-ADADSN
DISPLAY FORMAT-LIMA
ELSE
DISPLAY(6, 28)
'MAAF KODE TERSEBUT TDK ADA'
ACCEPT FORMAT-EMPAT
MOVE KD-DSN TO KODE-DSN.
SELESAI.
DISPLAY BERSIH-LAYAR.
DISPLAY 'TERIMA KASIH'.
CLOSE MAHASISWA.
CLOSE DOSEN.
STOP RUN.
( logika : file dibuka, layar ditampilkan, layar KEY diisi, cari KEY,
ditampilkan, isi data lain, data disimpan, ditutup. )

Latihan
1. Hapuslah file DSN.XYZ, kemudian rubahlah program pada bagian
percobaan (2-3) diatas sedemikian rupa, sehingga pada saat program
dijalankan, jika file Dosen (DSN.XYZ) masih belum ada maka program
tidak akan langsung berhenti tapi langsung menjalankan program untuk
mengisi data Dosen. Dan setelah selesai mengisi data dosen maka akan
keluar pesan untuk mengisi data Mahasiswa.
Contoh tampilan :
Pertemuan IX – Bekerja dengan dua Tabel (Index Dynamic) 9-47

Jika file Dosen belum ada, saat program isi data Mahasiswa dijalankan :
File Dosen masih kosong !
Isi data dosen sekarang [y/t] ? input x(1)
Jika jawaban ‘Y’ maka akan mengisi data Dosen, jika ‘T’ maka program akan
langsung keluar.
Setelah mengisi data Dosen juga akan menampilkan pesan seperti berikut :
Apakah anda akan mengisi data Mahasiswa [y/t] ?
Jika jawaban ‘Y’ maka akan mengisi data Mahasiswa, jika ‘T’ maka program
akan langsung keluar.

Laporan
1. Buatlah sebuah program untuk menampilkan pilihan menu seperti
berikut :
---[ Menu Utama ]---
[1] Entry Data Dosen
[2] Entry Data Mahasiswa
[3] Laporan Data Mahasiswa
[4] Keluar

Pilih Menu 1-4 [ input x(1) ]

gunakan perintah CHAIN [NamaFile.INT] atau CALL [NamaFile.INT]


untuk memanggila program yang lain.
Keterangan :
[1] Akan menampilkan program Entry Data Dosen (gunakan program
untuk mengisi Data Dosen pada Praktikum 9).
[2] Akan menampilkan program Entry Data Mahasiswa (gunakan
program untuk mengisi Data Mahasiswa pada Praktikum 9).
[3] Akan menampilkan laporan data Mahasiswa (optional boleh tidak
dikerjakan).
[4] Program akan keluar
2. Jelaskan cara membaca semua data secara berurutan pada file index
dynamic.
3. Jelaskan apa yang anda ketahui tentang perintah Lin & Col.
Pertemuan

10
Report (Index Dynamic)

Tujuan
• Agar mahasiswa dapat membuat program untuk menampilkan laporan
dari data-data yang sudah disimpan dengan menggunakan file
Organisasi INDEXED Access Mode Dynamic.

Persiapan
• Editor program, yaitu dengan menggunakan MS-DOS Editor yaitu
dengan menjalankan perintah Run pada Start Menu kemudian
menuliskan Edit > OK
• Command Prompt dengan menjalankan perintah Run pada Start Menu
kemudian menuliskan Cmd > OK
• Menjalankan ISAM.EXE pada commpand prompt
• File mahasiswa (MHS.XYZ) yang sudah dibuat pada praktikum
sebelumnya

Pekerjaan
• Mengetikkan listing program pada sebuah editor
• Membuat sebuah program sederhana untuk menampilkan data
Mahasiswa dalam bentuk laporan dengan menggunakan File Index
Dynamic
• Melakukan kompilasi program
• Menjalankan program yang sudah dikompilasi
• Mengerjakan latihan yang diberikan

Hasil
• Sebuah program sederhana untuk menampilkan data dalam bentuk
laporan dengan menggunakan File Indexed access mode dynamic.
Pertemuan X – Report (Index Dynamic) 10-49

Teori
Pada praktikum sebelumnya sudah dijelaskan tentang cara untuk membaca
data, pada dasarnya pembuatan report/laporan dalam cobol ialah dengan
membaca semua data secara urut pada sebuah file di dalam disk.
Apabila file telah dibuka menggunakan perintah OPEN INPUT atau OPEN I-O
maka data dapat dibaca secara berurutan dengan menggunakan perintah :
READ nama-file [NEXT RECORD][INTO nama-data]
[AT END statement]
contoh :
READ Mahasiswa NEXT RECORD
AT END MOVE ‘S’ TO Sdh-Selesai.
Pada contoh diatas data akan dibaca mulai pertama dan dilanjutakan ke
data/record setelahnya secara berurutan (pada statement READ Mahasiswa
NEXT RECORD), kemudian jika sudah membaca record terakhir (pada statement
AT END) maka akan dijalankan statement setelahnya (MOVE ‘S’ TO Sdh-
Selesai.).

Percobaan
1. lakukan percobaan berikut ini :
definisikan terlebih dahulu file yang akan digunakan untuk pembuatan
laporan (sesuaikan dengan data Mahasiswa yang telah anda buat pada
praktikum sebelumnya).
IDENTIFICATION DIVISION.
PROGRAM-ID. LAPMHS.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL
SELECT MAHASISWA ASSIGN TO DISK
ORGANIZATION IS INDEXED
ACCESS MODE IS DYNAMIC
RECORD KEY IS NRP
FILE STATUS IS STAT-MHS.
DATA DIVISION.
FILE SECTION.
FD MAHASISWA
LABEL RECORD IS STANDARD
VALUE OF FILE-ID IS 'MHS.XYZ'
DATA RECORD IS MHSDAT.
01 MHSDAT.
02 NRP PIC X(8).
02 NAMA PIC X(20).
02 KD-DSN PIC X(5).
WORKING-STORAGE SECTION.
01 STAT-MHS PIC XX.
01 CARI-SELESAI PIC X VALUE 'B'.
88 SDH-SELESAI VALUE 'S', 'S'.
Pertemuan X – Report (Index Dynamic) 10-50

88 BLM-SELESAI VALUE 'B', 'B'.


2. Buatlah layar pada screen section untuk menampilkan header dari
laporan anda.
SCREEN SECTION.
01 BERSIH-LAYAR.
88 BLANK SCREEN.
01 FORM1.
02 LINE 1 COLUMN 3 VALUE 'NRP'.
02 LINE 1 COLUMN 11 VALUE 'NAMA'.
02 LINE 1 COLUMN 30 VALUE 'KODE DOSEN'.
3. Kemudian ketik listing program dibawah ini untuk membuka file
mahasiswa kemudian menampilkan semua data mahasiswa dengan cara
membacanya secara berurutan.
PROCEDURE DIVISION.
MULAI.
DISPLAY BERSIH-LAYAR.
OPEN I-O MAHASISWA.
IF STAT-MHS='30'
STOP 'DATA KOSONG, TEKAN ENTER'
STOP RUN
ELSE
DISPLAY FORM1
MOVE 2 TO LIN
PERFORM TAMPIL UNTIL SDH-SELESAI
STOP 'TEKAN ENTER UNTUK KEMBALI'
GO TO SELESAI.
TAMPIL.
READ MAHASISWA NEXT RECORD
AT END MOVE 'S' TO CARI-SELESAI.
IF BLM-SELESAI
COMPUTE LIN = LIN + 1
DISPLAY(LIN, 3) NRP,
' ', NAMA,' ' ,KD-DSN.
SELESAI.
CLOSE MAHASISWA.
STOP RUN.

Latihan
1. Modifikasi program diatas (pada bagian percobaan) sehingga menjadi
lebih menarik dengan menambahkan tabel.
Contoh tampilan :
+----------------------------------+
¦ NRP ¦ NAMA ¦ KD DSN ¦
+--------+----------------+--------¦
¦01311936¦John Suparmin ¦ 00001 ¦
+--------+----------------+--------¦
¦01311937¦Michael Bejo ¦ 00002 ¦
+----------------------------------+
Pertemuan X – Report (Index Dynamic) 10-51

untuk mempermudah dalam mendesain tampilan form/tabel gunakan


COBGEN.EXE yang ada dalam master program Cobol.

Laporan
1. Buatlah kesimpulan tentang praktikum yang anda lakukan pada
pertemuan kali ini !
2. Lengkapi program menu pada Praktikum 9 pada bagian Laporan No.1
sehingga dapat menampilkan laporan data dosen.

Anda mungkin juga menyukai