Untuk
Memenuhi Tugas Algoritma Pemrograman 3 saya membuat program dengan menggunakan
COBOL File Relatif berikut Coding,Listing,dan outputnya.
Coding
Program :
IDENTIFICATION
DIVISION.
PROGRAM-ID. RELATIF.
AUTHOR. ZULFAHMI.
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. ZULFAHMI.
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 kalau
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