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 ‘.
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”
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’.
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.
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)
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.
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.
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.
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 (’))
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 ‘.
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.
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.
Posting Komentar