1 IDENTIFICATION DIVISION.
2 PROGRAM-ID. RELATIF.
2 PROGRAM-ID. RELATIF.
3 AUTHOR. NAUFAN SURYA.
4 SECURITY. PROGRAM MEMASUKKAN DATA ORGANISASI FILE RELATIF
5 MODE AKSES DINAMIK.
6 ENVIRONMENT DIVISION.
7 INPUT-OUTPUT SECTION.
8 FILE CONTROL.
9 SELECT FILE-MHS ASSIGN TO DISK
10 ORGANIZATION IS RELATIVE
11 ACCESS MODE IS DYNAMIC, RELATIVE KEY IS LOKASI-REC
12 FILE STATUS IS STATUS-SALAH.
13 DATA DIVISION.
14 FILE SECTION.
15 FD FILE-MHS.
16 LABEL RECORD IS STANDARD.
17 VALUE OF FILE-ID IS ‘RELATIF.DAT’
18 DATA RECORD IS RECORD-MAHASISWA.
19 01 RECORD-MAHASISWA.
20 02 NAMA-MHS PIC A(25).
21 02 ALAMAT-MHS.
22 03 JALAN PIC X(20).
23 03 KOTA PIC A(15).
24 02 TGL-DAFTAR.
25 03 TANGGAL PIC 99.
26 03 BULAN PIC 99.
27 03 TAHUN PIC 99.
28 02 IP-MHS PIC 99V99.
29 WORKING-STORAGE SECTION.
30 77 LOKASI-REC PIC 99V99.
31 77 NO-MHS-MASUK PIC 9(5).
32 77 STATUS-SALAH PIC XX.
33 01 SUDAH-BENAR PIC X.
34 88 BENAR VALUE ‘Y’, ‘y’.
35 88 SALAH VALUE ‘T’, ‘t’.
36 01 MASUKKAN-LAGI-TIDAK PIC X.
37 88 LAGI VALUE ‘Y’, ‘y’.
38 88 TIDAK VALUE ‘T’, ‘t’.
39 01 RECORD-MAHASISWA-MASUK.
40 02 NAMA-MHS-MASUK PIC A(25).
41 02 ALAMAT-MHS-MASUK.
42 03 JALAN-MASUK PIC X(20).
43 03 KOTA-MASUK PIC A(15).
44 02 TGL-DAFTAR-MASUK.
45 03 TANGGAL-MASUK PIC 99.
46 03 BULAN-MASUK PIC 99.
47 03 TAHUN-MASUK PIC 99.
48 02 IP-MHS-MASUK PIC 99V99.
49 SCREEN SECTION.
50 01 HAPUS-LAYAR.
51 02 BLANK SCREEN.
52 01 LAYAR-DATA.
53 02 LINE 4 COLUMN 5 ‘NOMER MAHASISWA :’.
54 02 COLUMN PLUS 1 PIC 9(5) TO NO-MHS-MASUK REQUIRED.
55 02 LINE 6 COLUMN 5 ‘NAMA MAHASISWA :’.
56 02 COLUMN PLUS 1 PIC A(25) TO NAMA-MHS-MASUK.
57 02 LINE 8 COLUMN 5 ‘ALAMAT MAHASISWA :’.
58 02 LINE 9 COLUMN 5 ‘JALAN :’.
59 02 COLUMN PLUS 1 PIC X(20) TO JALAN-MASUK.
60 02 LINE 10 COLUMN 5 ‘KOTA :’.
61 02 COLUMN PLUS 1 PIC A(15) TO KOTA-MASUK.
62 02 LINE 12 COLUMN 5 ‘TANGGAL DAFTAR :’.
63 02 COLUMN PLUS 1 PIC 99 TO TANGGAL-MASUK AUTO.
64 02 COLUMN PLUS 1 ‘-’.
65 02 COLUMN PLUS 1 PIC 99 TO BULAN-MASUK AUTO.
66 02 COLUMN PLUS 1 ‘-’.
67 02 COLUMN PLUS 1 PIC 99 TO TAHUN-MASUK AUTO.
68 02 LINE 14 COLUMN 5 ‘INDEKS PRESTASI :’.
69 02 COLUMN PLUS 1 PIC 99V99 TO IP-MHS-MASUK.
70 PROCEDURE DIVISION.
71 RUTIN-UTAMA SECTION.
72 BUKA-FILE.
73 OPEN OUTPUT FILE-MHS.
74 MULAI.
75 MOVE SPACE TO SUDAH-BENAR
76 PERFORM MASUKKAN-DATA UNTIL BENAR
77 PERFORM REKAM-DATA
78 PERFORM ADA-LAGI-TIDAK.
79 SELEKSI-MASUKKAN-LAGI-TIDAK.
80 IF LAGI
81 GO TO MULAI.
82 SELESAI.
83 CLOSE FILE-MHS
84 STOP RUN.
85 RUTIN-BAGIAN SECTION.
86 MASUKKAN-DATA.
87 DISPLAY HAPUS-LAYAR
88 DISPLAY LAYAR-DATA
89 ACCEPT LAYAR-DATA.
90 DISPLAY (18, 5) ‘SUDAH BENAR (Y/T) ?’
91 ACCEPT ( , ) SUDAH-BENAR.
92 REKAM-DATA.
93 MOVE ‘ ‘ TO STATUS-SALAH
94 COMPUTE LOKASI-REC = NO-MHS-MASUK – 8009
95 WRITE RECORD-MAHASISWA FROM RECORD-MAHASISWA
96 PERFORM SELEKSI-REKAMAN.
97 ADA-LAGI-TIDAK.
98 DISPLAY (20, 5) ‘ADA LAGI DATA LAINNYA (Y/T) ?’
99 ACCEPT ( , ) MASUKKAN LAGI TIDAK.
100 SELEKSI REKAMAN.
101 IF STATUS-SALAH = ’22′
102 DISPLAY (18, 5) ‘TIDAK TEREKAM, NILAI KUNCI TIDAK UNIK’.
103 IF STATUS-SALAH = ’24′
104 DISPLAY (18, 5) ’TIDAK TEREKAM, DISK PENUH’.
Penjelasan (logika program):
Ada beberapa perbedaan yang pokok antara organisasi file relatif dengan organisasi file indeks, yaitu:
(A). Pada SELECT clause dalam ENVIRONMENT DIVISION:
9 FILE-CONTROL.
10 SELECT FILE-MHS ASSIGN TO DISK
11 ORGANIZATION IS RELATIVE
12 ACCES MODE IS DYNAMIC, RELATIVE KEY IS LOKASI-REC
13 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:
30 77 LOKASI-REC PIC 9999.
(C). Pada waktu merekamkan data, record data tersebut akan direkamkan pada posisi nomor record relatif yang disebutkan:
92 REKAM-DATA
93 MOVE ‘ ‘ TO STATUS-SALAH
94 COMPUTE LOKASI-REC = NO-MHS-MASUK – 8009
95 WRITE RECORD-MAHASISWA FROM RECORD-MAHASISWA-MASUK
96 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.
sumber:http://abuqafa.wordpress.com