Berikut Coding, Listing dan Output untuk COBOL File Relatif :
Coding Program :
IDENTIFICATION DIVISION.
PROGRAM-ID. RELATIF.
AUTHOR. SUGIARTHA.
SECURITY. PROGRAM MEMASUKKAN DATA ORGANISASI FILE RELATIF.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT MAHASISWA ASSIGN TO DISK
ORGANIZATION IS RELATIVE
ACCESS MODE IS DYNAMIC, RELATIVE KEY IS LOKASI-REC
FILE STATUS IS STATUS-SALAH.
DATA DIVISION.
FILE SECTION.
FD MAHASISWA
LABEL RECORD IS STANDARD
VALUE OF FILE-ID IS ‘RELATIF.DAT’
DATA RECORD IS RECORD-MAHASISWA.
01 RECORD-MAHASISWA.
02 NAMA-MHS PIC A(25).
02 ALAMAT-MHS.
03 JALAN PIC X(20).
03 KOTA PIC A(15).
02 TGL-DAFTAR.
03 TANGGAL PIC 99.
03 BULAN PIC 99.
03 TAHUN PIC 99.
02 IP-MHS PIC 99V99.
WORKING-STORAGE SECTION.
77 LOKASI-REC PIC 99V99.
77 NO-MHS-MASUK PIC 9(5).
77 STATUS-SALAH PIC XX.
01 SUDAH-BENAR PIC X.
88 BENAR VALUE ‘Y’, ‘y’.
88 SALAH VALUE ‘T’, ‘t’.
01 MASUKKAN-LAGI-TIDAK PIC X.
88 LAGI VALUE ‘Y’, ‘y’.
88 TIDAK VALUE ‘T’, ‘t’.
01 RECORD-MAHASISWA-MASUK.
02 NAMA-MHS-MASUK PIC A(25).
02 ALAMAT-MHS-MASUK.
03 JALAN-MASUK PIC X(20).
03 KOTA-MASUK PIC A(15).
02 TGL-DAFTAR-MASUK.
03 TANGGAL-MASUK PIC 99.
03 BULAN-MASUK PIC 99.
03 TAHUN-MASUK PIC 99.
02 IP-MHS-MASUK PIC 99V99.
SCREEN SECTION.
01 HAPUS-LAYAR.
02 BLANK SCREEN.
01 LAYAR-DATA.
02 LINE 4 COLUMN 5 ‘NOMER MAHASISWA :’.
02 COLUMN PLUS 1 PIC 9(5) TO NO-MHS-MASUK REQUIRED.
02 LINE 6 COLUMN 5 ‘NAMA MAHASISWA :’.
02 COLUMN PLUS 1 PIC A(25) TO NAMA-MHS-MASUK.
02 LINE 8 COLUMN 5 ‘ALAMAT MAHASISWA :’.
02 LINE 9 COLUMN 5 ‘JALAN :’.
02 COLUMN PLUS 1 PIC X(20) TO JALAN-MASUK.
02 LINE 10 COLUMN 5 ‘KOTA :’.
02 COLUMN PLUS 1 PIC A(15) TO KOTA-MASUK.
02 LINE 12 COLUMN 5 ‘TANGGAL DAFTAR :’.
02 COLUMN PLUS 1 PIC 99 TO TANGGAL-MASUK AUTO.
02 COLUMN PLUS 1 ‘-‘.
02 COLUMN PLUS 1 PIC 99 TO BULAN-MASUK AUTO.
02 COLUMN PLUS 1 ‘-‘.
02 COLUMN PLUS 1 PIC 99 TO TAHUN-MASUK AUTO.
02 LINE 14 COLUMN 5 ‘INDEKS PRESTASI :’.
02 COLUMN PLUS 1 PIC 99V99 TO IP-MHS-MASUK.
PROCEDURE DIVISION.
RUTIN-UTAMA SECTION.
BUKA-FILE.
OPEN OUTPUT MAHASISWA.
MULAI.
MOVE SPACE TO SUDAH-BENAR.
PERFORM MASUKKAN-DATA UNTIL BENAR.
PERFORM REKAM-DATA.
PERFORM ADA-LAGI-TIDAK.
SELEKSI-MASUKKAN-LAGI-TIDAK.
IF LAGI
GO TO MULAI.
SELESAI.
CLOSE MAHASISWA
STOP RUN.
RUTIN-BAGIAN SECTION.
MASUKKAN-DATA.
DISPLAY HAPUS-LAYAR.
DISPLAY LAYAR-DATA.
ACCEPT LAYAR-DATA.
DISPLAY (18, 5) ‘SUDAH BENAR (Y/T) ? ‘.
ACCEPT ( , ) SUDAH-BENAR.
REKAM-DATA.
MOVE ‘ ‘ TO STATUS-SALAH.
COMPUTE LOKASI-REC = NO-MHS-MASUK – 8009.
WRITE RECORD-MAHASISWA FROM RECORD-MAHASISWA
PERFORM SELEKSI-REKAMAN.
ADA-LAGI-TIDAK.
DISPLAY (20, 5) ‘ADA LAGI DATA LAINNYA (Y/T) ? ‘.
ACCEPT ( , ) MASUKKAN-LAGI-TIDAK.
SELEKSI-REKAMAN.
IF STATUS-SALAH = ’22?
DISPLAY (18, 5) ‘TIDAK TEREKAM, NILAI KUNCI TIDAK UNIK’.
IF STATUS-SALAH = ’24?
DISPLAY (18, 5) ‘TIDAK TEREKAM, DISK PENUH’.
PROGRAM-ID. RELATIF.
AUTHOR. SUGIARTHA.
SECURITY. PROGRAM MEMASUKKAN DATA ORGANISASI FILE RELATIF.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT MAHASISWA ASSIGN TO DISK
ORGANIZATION IS RELATIVE
ACCESS MODE IS DYNAMIC, RELATIVE KEY IS LOKASI-REC
FILE STATUS IS STATUS-SALAH.
DATA DIVISION.
FILE SECTION.
FD MAHASISWA
LABEL RECORD IS STANDARD
VALUE OF FILE-ID IS ‘RELATIF.DAT’
DATA RECORD IS RECORD-MAHASISWA.
01 RECORD-MAHASISWA.
02 NAMA-MHS PIC A(25).
02 ALAMAT-MHS.
03 JALAN PIC X(20).
03 KOTA PIC A(15).
02 TGL-DAFTAR.
03 TANGGAL PIC 99.
03 BULAN PIC 99.
03 TAHUN PIC 99.
02 IP-MHS PIC 99V99.
WORKING-STORAGE SECTION.
77 LOKASI-REC PIC 99V99.
77 NO-MHS-MASUK PIC 9(5).
77 STATUS-SALAH PIC XX.
01 SUDAH-BENAR PIC X.
88 BENAR VALUE ‘Y’, ‘y’.
88 SALAH VALUE ‘T’, ‘t’.
01 MASUKKAN-LAGI-TIDAK PIC X.
88 LAGI VALUE ‘Y’, ‘y’.
88 TIDAK VALUE ‘T’, ‘t’.
01 RECORD-MAHASISWA-MASUK.
02 NAMA-MHS-MASUK PIC A(25).
02 ALAMAT-MHS-MASUK.
03 JALAN-MASUK PIC X(20).
03 KOTA-MASUK PIC A(15).
02 TGL-DAFTAR-MASUK.
03 TANGGAL-MASUK PIC 99.
03 BULAN-MASUK PIC 99.
03 TAHUN-MASUK PIC 99.
02 IP-MHS-MASUK PIC 99V99.
SCREEN SECTION.
01 HAPUS-LAYAR.
02 BLANK SCREEN.
01 LAYAR-DATA.
02 LINE 4 COLUMN 5 ‘NOMER MAHASISWA :’.
02 COLUMN PLUS 1 PIC 9(5) TO NO-MHS-MASUK REQUIRED.
02 LINE 6 COLUMN 5 ‘NAMA MAHASISWA :’.
02 COLUMN PLUS 1 PIC A(25) TO NAMA-MHS-MASUK.
02 LINE 8 COLUMN 5 ‘ALAMAT MAHASISWA :’.
02 LINE 9 COLUMN 5 ‘JALAN :’.
02 COLUMN PLUS 1 PIC X(20) TO JALAN-MASUK.
02 LINE 10 COLUMN 5 ‘KOTA :’.
02 COLUMN PLUS 1 PIC A(15) TO KOTA-MASUK.
02 LINE 12 COLUMN 5 ‘TANGGAL DAFTAR :’.
02 COLUMN PLUS 1 PIC 99 TO TANGGAL-MASUK AUTO.
02 COLUMN PLUS 1 ‘-‘.
02 COLUMN PLUS 1 PIC 99 TO BULAN-MASUK AUTO.
02 COLUMN PLUS 1 ‘-‘.
02 COLUMN PLUS 1 PIC 99 TO TAHUN-MASUK AUTO.
02 LINE 14 COLUMN 5 ‘INDEKS PRESTASI :’.
02 COLUMN PLUS 1 PIC 99V99 TO IP-MHS-MASUK.
PROCEDURE DIVISION.
RUTIN-UTAMA SECTION.
BUKA-FILE.
OPEN OUTPUT MAHASISWA.
MULAI.
MOVE SPACE TO SUDAH-BENAR.
PERFORM MASUKKAN-DATA UNTIL BENAR.
PERFORM REKAM-DATA.
PERFORM ADA-LAGI-TIDAK.
SELEKSI-MASUKKAN-LAGI-TIDAK.
IF LAGI
GO TO MULAI.
SELESAI.
CLOSE MAHASISWA
STOP RUN.
RUTIN-BAGIAN SECTION.
MASUKKAN-DATA.
DISPLAY HAPUS-LAYAR.
DISPLAY LAYAR-DATA.
ACCEPT LAYAR-DATA.
DISPLAY (18, 5) ‘SUDAH BENAR (Y/T) ? ‘.
ACCEPT ( , ) SUDAH-BENAR.
REKAM-DATA.
MOVE ‘ ‘ TO STATUS-SALAH.
COMPUTE LOKASI-REC = NO-MHS-MASUK – 8009.
WRITE RECORD-MAHASISWA FROM RECORD-MAHASISWA
PERFORM SELEKSI-REKAMAN.
ADA-LAGI-TIDAK.
DISPLAY (20, 5) ‘ADA LAGI DATA LAINNYA (Y/T) ? ‘.
ACCEPT ( , ) MASUKKAN-LAGI-TIDAK.
SELEKSI-REKAMAN.
IF STATUS-SALAH = ’22?
DISPLAY (18, 5) ‘TIDAK TEREKAM, NILAI KUNCI TIDAK UNIK’.
IF STATUS-SALAH = ’24?
DISPLAY (18, 5) ‘TIDAK TEREKAM, DISK PENUH’.
Logika Program :
Ada beberapa perbedaan
antara organisasi file relatif dengan organisasi file indeks, yaitu:
A.
Pada SELECT
clause dalam ENVIRONMENT DIVISION:
FILE-CONTROL.
SELECT FILE-MHS ASSIGN TO DISK.
ORGANIZATION IS RELATIVE.
ACCES MODE IS DYNAMIC, RELATIVE KEY IS LOKASI-REC.
FILE STATUS IS STATUS-SALAH.
Entry dalam SELECT clause harus disebutkan ORGANIZATION
IS RELATIVE. Sedangkan jika digunakan mode akses dinamik, maka harus disebutkan
nama-data RELATIVE KEYnya. LOKASI-REC pada contoh program ini adalah nama-data
yang dihubungkan dengan nomor record relaifnya.
B.
Nomor record
relatif tersebut tidak menjadi bagian dari data record, tetapi disebutkan
tersendiri dalam DATA DIVISION sebagai berikut:
77 LOKASI-REC PIC 9999.
C.
Pada waktu
merekamkan data, record data tersebut akan direkamkan pada posisi nomor record
relatif yang disebutkan:
REKAM-DATA.
MOVE ‘ ‘ TO STATUS-SALAH.
COMPUTE LOKASI-REC = NO-MHS-MASUK – 8009.
WRITE RECORD-MAHASISWA FROM RECORD-MAHASISWA-MASUK.
PERFORM SELEKSI-REKAMAN.
Tampak bahwa data akan direkamkan pada posisi nomor
record relatif LOKASI-REC yang mempunyai hubungan dengan nomor mahasiswa, yaitu
NO-MHS-MASUK dikurangi dengan nilai 8009.
Maksud dari hubungan ini adalah misalnya nomor
mahasiswa 8010 akan direkamkan pada posisi nomor relative 1, nomor mahasiswa
8011 akan direkamkan pada posisi nomor record relatif 2 dan seterusnya.
Output Program :
Tidak ada komentar:
Posting Komentar