Snippet

Contoh Program File Sequential Pada COBOL

Source Code PROGRAM MEMASUKKAN DATA FILE SEQUENTIAL secara utuh :

IDENTIFICATION DIVISION.
PROGRAM-ID. FILE-SEQUENTIAL.
AUTHOR. RENDI-PRIBADI.
SECURITY. PROGRAM MEMASUKAN DATA ORGANISASI FILE SEQUENTIAL
MODE AKSES URUT.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT PEGAWAI ASSIGN TO DISK
ORGANIZATION IS SEQUENTIAL
ACCESS MODE IS SEQUENTIAL
FILE STATUS IS STATUS-SALAH.
DATA DIVISION.
FILE SECTION.
FD PEGAWAI
LABEL RECORD IS STANDARD
VALUE OF FILE-ID IS “DFTRPEG.DAT”
DATA RECORD IS REC-PEG.
01 REC-PEG.
02 NAMA PIC X(10).
02 ALAMAT PIC X(20).
02 UMUR PIC 99.
WORKING-STORAGE SECTION.
77 STATUS-SALAH PIC XX.
01 SUDAH-BENAR PIC A.
88 BENAR VALUE ‘Y’, ‘y’.
88 BELUM VALUE ‘T’, ‘t’.
01 MASUKKAN-DATA-LAGI PIC A.
88 LAGI VALUE ‘Y’, ‘y’.
88 TIDAK VALUE ‘T’, ‘t’.
SCREEN SECTION.
01 HAPUS-LAYAR.
02 BLANK SCREEN.
01 LAYAR-DATA.
02 LINE 4 COLUMN 5 ‘NAMA :’.
02 COLUMN PLUS 1 PIC X(10) TO NAMA.
02 LINE 5 COLUMN 5 ‘ALAMAT :’.
02 COLUMN PLUS 1 PIC X(25) TO ALAMAT.
02 LINE 6 COLUMN 5 ‘UMUR :’.
02 COLUMN PLUS 1 PIC 99 TO UMUR.
PROCEDURE DIVISION.
BUKA-FILE.
OPEN EXTEND PEGAWAI.
MULAI.
MOVE SPACE TO SUDAH-BENAR
PERFORM INPUT-DATA UNTIL BENAR
PERFORM REKAM-DATA.
PERFORM ADA-LAGI.
IF LAGI GO TO MULAI.
SELESAI.
CLOSE PEGAWAI
STOP RUN.
INPUT-DATA.
DISPLAY HAPUS-LAYAR.
DISPLAY LAYAR-DATA.
ACCEPT LAYAR-DATA.
DISPLAY (8, 5) ‘SUDAH BENAR (Y/T) ? ‘
ACCEPT ( , ) SUDAH-BENAR.
REKAM-DATA.
MOVE ‘ ‘ TO STATUS-SALAH
WRITE REC-PEG
PERFORM TANYA-REKAM.
ADA-LAGI.
DISPLAY (12, 5) ‘ADA LAGI DATA (Y/T) ? ‘
ACCEPT ( , ) MASUKKAN-DATA-LAGI.
TANYA-REKAM.
IF STATUS-SALAH = ‘00′
DISPLAY (10, 5) ‘TIDAK TERJADI KESALAHAN ‘.
IF STATUS-SALAH = ‘10′
DISPLAY (10, 5) ‘EOF ‘.
IF STATUS-SALAH = ‘30′
DISPLAY (10, 5) ‘FILE NOT FOUND ‘.
IF STATUS-SALAH = ‘34′
DISPLAY (10, 5) ‘DISK SPACE FULL ‘.
IF STATUS-SALAH = ‘91′
DISPLAY (10, 5) ‘STRUKTUR FILE RUSAK ‘.
• Kekurangan-kekurangan yang ditemukan :
IDENTIFICATION DIVISION.
PROGRAM-ID. FILE-SEQUENTIAL.
AUTHOR. RENDI-PRIBADI.
SECURITY. PROGRAM MEMASUKAN DATA ORGANISASI FILE SEQUENTIAL
MODE AKSES URUT.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL. –> (Terpotongnya bagian dari Divisi-Divisi utama seperti :
SELECT PEGAWAI ASSIGN TO DISK IDENTIFICATION DIVISION. , ENVIRONMENT DIVISION. , dan
ORGANIZATION IS SEQUENTIAL DATA DIVISION.)
ACCESS MODE IS SEQUENTIAL
FILE STATUS IS STATUS-SALAH.
DATA DIVISION.
FILE SECTION.
FD PEGAWAI
LABEL RECORD IS STANDARD
VALUE OF FILE-ID IS “DFTRPEG.DAT”
01 SUDAH-BENAR PIC A.
88 BENAR VALUE ‘Y’, ‘y’.
88 BELUM VALUE ‘T’, ‘t’.
01 MASUKKAN-DATA-LAGI PIC A. –> (Penggunaan yang salah pada tanda petik tunggal yang
88 LAGI VALUE ‘Y’, ‘y’. seharusnya (’) bukan (’))
88 TIDAK VALUE ‘T’, ‘t’.
01 LAYAR-DATA.
02 LINE 4 COLUMN 5 ‘NAMA :’.
02 COLUMN PLUS 1 PIC X(10) TO NAMA.
02 LINE 5 COLUMN 5 ‘ALAMAT :’. –> (Penggunaan yang salah pada tanda petik tunggal yang
02 COLUMN PLUS 1 PIC X(25) TO ALAMAT. seharusnya (’) bukan (’))
02 LINE 6 COLUMN 5 ‘UMUR :’.
02 COLUMN PLUS 1 PIC 99 TO UMUR.
MULAI.
MOVE SPACE TO SUDAH-BENAR
PERFORM INPUT-DATA UNTIL BENAR
PERFORM REKAM-DATA.
PERFORM ADA-LAGI.
IF LAGI GO TO MULAI. –> (Seharusnya ada suatu kondisi penyeleksian)
SELESAI.
CLOSE PEGAWAI –> (Seharusnya ada statement yang menutup Program/file yang masih terbuka)
STOP RUN.
INPUT-DATA. –> (Seharusnya ada Paragraph INPUT-DATA. untuk proses peng-inputan data)
DISPLAY HAPUS-LAYAR.
DISPLAY LAYAR-DATA.
ACCEPT LAYAR-DATA.
DISPLAY (8, 5) ‘SUDAH BENAR (Y/T) ? ‘
ACCEPT ( , ) SUDAH-BENAR.
REKAM-DATA. –> (Seharusnya ada Paragraph REKAM-DATA. untuk proses merekam
MOVE ‘ ‘ TO STATUS-SALAH data pada file DFTRPEG.DAT)
WRITE REC-PEG
PERFORM TANYA-REKAM.
ADA-LAGI.
DISPLAY (12, 5) ‘ADA LAGI DATA (Y/T) ? ‘ –> (Penggunaan yang salah pada tanda petik tunggal
ACCEPT ( , ) MASUKKAN-DATA-LAGI. yang seharunya (’) bukan (’))
TANYA-REKAM.
IF STATUS-SALAH = ‘00′ –> (Penggunaan yang salah pada tanda petik tunggal
DISPLAY (10, 5) ‘TIDAK TERJADI KESALAHAN ‘. yang seharunya (’) bukan (’))
IF STATUS-SALAH = ‘10′
DISPLAY (10, 5) ‘EOF ‘. –> (Dapat pula diberi tambahan status salah
IF STATUS-SALAH = ‘30′ bila diperlukan)
DISPLAY (10, 5) ‘FILE NOT FOUND ‘.
IF STATUS-SALAH = ‘34′
DISPLAY (10, 5) ‘DISK SPACE FULL ‘.
IF STATUS-SALAH = ‘91′
DISPLAY (10, 5) ‘STRUKTUR FILE RUSAK ‘.
• Source Code PROGRAM MENCETAK DATA FILE SEQUENTIAL secara utuh :
IDENTIFICATION DIVISION.
PROGRAM-ID. FILE-SEQUENTIAL.
AUTHOR. RENDI-PRIBADI.
SECURITY. PROGRAM MEMASUKAN DATA ORGANISASI FILE SEQUENTIAL
MODE AKSES URUT.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT PEGAWAI ASSIGN TO DISK
ORGANIZATION IS SEQUENTIAL
ACCESS MODE IS SEQUENTIAL.
SELECT CETAK ASSIGN TO PRINTER.
DATA DIVISION.
FILE SECTION.
FD PEGAWAI
LABEL RECORD IS STANDARD
VALUE OF FILE-ID IS “DFTRPEG.DAT”
DATA RECORD IS REC-PEG.
01 REC-PEG.
02 NAMA PIC X(10).
02 ALAMAT PIC X(20).
02 UMUR PIC 99.
FD CETAK
LABEL RECORD IS OMITTED
LINAGE IS 52 LINES
WITH FOOTING AT 48
LINES AT TOP 7
LINES AT BOTTOM 7
DATA RECORD IS BARIS-CETAK.
01 BARIS-CETAK PIC X(80).
WORKING-STORAGE SECTION.
77 NOMER PIC 999 VALUE 0.
01 SWITCH-BACA-RECORD PIC X VALUE ‘ ‘.
88 HABIS-DIBACA-SEMUA VALUE ‘Y’.
01 JUDUL-1.
02 FILLER PIC X(18) VALUE SPACES.
02 FILLER PIC X(15) VALUE ‘LAPORAN PEGAWAI’.
01 JUDUL-2.
02 FILLER PIC X(6) VALUE ‘NOMER’.
02 FILLER PIC X(10) VALUE ‘NAMA’.
02 FILLER PIC X(20) VALUE ‘ALAMAT’.
02 FILLER PIC X(4) VALUE ‘UMUR’.
01 GARIS PIC X(40) VALUE ALL ‘-’.
01 REC-PEG-O.
02 NOMER-O PIC 999.
02 NAMA-O PIC X(10).
02 ALAMAT-O PIC X(20).
02 UMUR-O PIC 99.
PROCEDURE DIVISION.
BUKA-FILE.
OPEN INPUT PEGAWAI
OUTPUT CETAK.
MULAI.
PERFORM CETAK-JUDUL
PERFORM CETAK-ISI-TABEL UNTIL HABIS-DIBACA-SEMUA
PERFORM CETAK-GARIS.
SELESAI.
CLOSE PEGAWAI CETAK
STOP RUN.
CETAK-JUDUL.
WRITE BARIS-CETAK FROM JUDUL-1 AFTER ADVANCING PAGE
WRITE BARIS-CETAK FROM GARIS AFTER ADVANCING 3 LINES
WRITE BARIS-CETAK FROM JUDUL-2
WRITE BARIS-CETAK FROM GARIS.
CETAK-ISI-TABEL.
PERFORM BACA-DATA
IF NOT HABIS-DIBACA-SEMUA
PERFORM CETAK-ISI-TABELNYA
ELSE
PERFORM CETAK-TOTAL.
BACA-DATA.
READ PEGAWAI
AT END MOVE ‘Y’ TO SWITCH-BACA-RECORD.
CETAK-ISI-TABELNYA.
ADD 1 TO NOMER
MOVE NOMER TO NOMER-O
MOVE NAMA TO NAMA-O
MOVE ALAMAT TO ALAMAT-O
MOVE UMUR TO UMUR-O
WRITE BARIS-CETAK FROM REC-PEG-O.
CETAK-GARIS.
WRITE BARIS-CETAK FROM GARIS.
CETAK-TOTAL.
WRITE BARIS-CETAK FROM GARIS
MOVE SPACE TO NAMA-O
MOVE ‘TOTAL JUMLAH PEGAWAI : ‘ TO ALAMAT-O
MOVE NOMER TO UMUR-O
WRITE BARIS-CETAK FROM REC-PEG-O AFTER 2 LINES.
• Kesalahan yang ditemukkan hampir sama dengan program sebelumnya, terimakasih atas perhatiannya. Mudah-mudahan dapat bermanfaat.