Senin, 08 November 2010
0
FILE RELATIF DAN FILE INDEX
FILE RELATIVE
Organisasi file secara relatif adalah file yang recordnya dibedakan dengan dasar suatu nomor record relatif. Nomor record relatif dapat berkisar dari nomor record 1 sampai dengan 32767. Nomor record relatif ini tidak turut direkamkan dalam file, sehingga panjang recordnya adalah sepanjang record yang ditentukan tanpa nomor record relatif. Panjang record untuk file relatif adalah tetap.
ENVIRONMENT DIVISION PADA FILE RELATIF
FILE-CONTROL
SELECT nama-file ASSIGN TO DISK
; ORGANIZATION IS RELATIVE
SEQUENTIAL [ , RELATIVE KEY IS nama-data-1 ]
[ ; ACCESS MODE IS RANDOM
DYNAMIC [ , RELATIVE KEY IS nama-data-1 ]
[ ; FILE STATUS IS nama-data-2 ]
DATA DIVISION PADA FILE RELATIF
LABEL RECORD IS STANDARD
VALUE OF FILE-ID IS nama-file di label
PROCEDURE DIVISION PADA FILE RELATIF
Statement khusus yang dipergunakan pada file relatif di dalam procedure division sama dengan yang ada di file index, yaitu dapat dibentuk dari verb OPEN, READ, CLOSE, WRITE, REWRITE, START DAN DELETE.
1. OPEN verb
INPUT nama-file-1 [ , nama-file-2 ] ….
OPEN OUTPUT nama-file-3 [ , nama-file-4 ] ….
I-O nama-file-5 [ , nama-file6 ] ….
2. CLOSE verb
CLOSE nama-file-1 [ WITH LOCK ] [ , nama-file-2 [ WITH LOCK ]]
3. WRITE verb
WRITE nama-record [ FROM nama-data ]
[ ; INVALID KEY statement-imperatip ]
4. READ verb ada 2 yaitu :
Bentuk 1 :
READ nama-file [ NEXT ] RECORD [ INTO nama-data ]
[ ;AT END statement imperatip ]
Bentuk 2 :
READ nama-file RECORD [ INTO nama-data ]
[ ;INVALID KEY statement imperatip ]
5. START verb
IS EQUAL TO
IS =
START nama-file KEY IS GREATER THAN nama-data
IS >
IS NOT LESS THAN
IS NOT < [ ;INVALID KEY statement imperatip ]6. REWRITE verb REWRITE nama-record [ FROM nama-data ] [ ; INVALID KEY statement imperatip ]7. DELETE verb DELETE nama-file RECORD [ ;INVALID KEY statement imperatip ]Contoh program :IDENTIFICATION DIVISION. PROGRAM-ID. RELATIF. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT MHS ASSIGN TO DISK ORGANIZATION IS RELATIVE ACCESS MODE IS DYNAMIC RELATIVE KEY IS NO-REL FILE STATUS IS STATUS-SALAH. DATA DIVISION. FILE SECTION FD MHS LABEL RECORD IS STANDARD VALUE OF FILE-ID IS 'DATA.DAT' DATA RECORD IS RECMHS. 01 RECMHS. 02 NPM PIC 9(8). 02 NAMA PIC X(20). 02 KELAS PIC X(5). WORKING-STORAGE SECTION. 01 JUDUL. 02 WS-NAMA PIC X(25). 02 WS-NPM PIC 9(8). 02 WS-KELAS PIC X(8). 02 NPM-CARI PIC 9(8). 01 TAMBAH-DATA PIC X. 88 LAGI VALUE 'Y', 'y'. 88 TDK VALUE 'T', 't'. 01 X PIC 9 VALUE 0. 77 STATUS-SALAH PIC XX. 77 NO-REL PIC 9(8). 77 PIL PIC X. 77 PIL2 PIC X. 77 PIL3 PIC X. 77 CR-NPMX PIC X VALUE 'Y'. SCREEN SECTION. 01 HAPUS. 02 BLANK SCREEN. 01 MASUKAN. 02 LINE 5 COLUMN 24 VALUE 'NPM : '. 02 COLUMN PLUS 2 PIC X(8) TO NPM. 02 LINE 7 COLUMN 24 VALUE 'NAMA : '. 02 COLUMN PLUS 2 PIC X(20) TO NAMA. 02 LINE 9 COLUMN 24 VALUE 'KELAS : '. 02 COLUMN PLUS 2 PIC X(5) TO KELAS. 01 MENU. 02 LINE 5 COLUMN 27 '<< MENU >>'.
02 LINE PLUS 2 COLUMN 21 '[1] BUAT / INPUT FILE'.
02 LINE PLUS 1 COLUMN 21 '[2] TAMPIL FILE'.
02 LINE PLUS 1 COLUMN 21 '[3] CARI DATA '.
02 LINE PLUS 1 COLUMN 21 '[4] EXIT '.
02 LINE PLUS 2 COLUMN 21 'PILIH : '.
02 COLUMN PLUS 1 PIC X TO PIL.
01 CARI-X.
02 BLANK SCREEN.
02 LINE 5 COLUMN 25 'NPM YANG DICARI : '.
02 COLUMN PLUS 1 PIC X(8) TO NPM-CARI.
PROCEDURE DIVISION.
PROGRAM-UTAMA.
COMPUTE X = 0.
DISPLAY HAPUS.
DISPLAY MENU.
ACCEPT MENU.
IF PIL = '1' GO TO BUKA.
IF PIL = '2' GO TO TAMPIL.
IF PIL = '3' GO TO CARI.
IF PIL = '4' GO TO SELESAI.
BUKA.
OPEN OUTPUT MHS.
GO TO BUKA2.
BUKA2.
DISPLAY HAPUS.
DISPLAY MASUKAN.
ACCEPT MASUKAN.
COMPUTE NO-REL = NPM - 50498000.
WRITE RECMHS.
DISPLAY (15, 23) 'MASIH ADA DATA [Y/T] ? '
ACCEPT TAMBAH-DATA.
IF LAGI GO TO BUKA2.
CLOSE MHS.
GO TO PROGRAM-UTAMA.
TAMPIL.
DISPLAY HAPUS.
DISPLAY (1, 1) 'NAMA'.
DISPLAY (1, 22) 'NPM'.
DISPLAY (1, 32) 'KELAS'.
OPEN INPUT MHS.
COMPUTE X = 1.
GO TO TAMPIL2.
TAMPIL2.
IF PIL = 'Y' GO TO TAMPIL3.
TAMPIL3.
COMPUTE X = X + 1.
MOVE X TO LIN.
READ MHS NEXT RECORD AT END GO TO TAMPIL4.
MOVE NAMA TO WS-NAMA.
MOVE NPM TO WS-NPM.
MOVE KELAS TO WS-KELAS.
DISPLAY (LIN, 1) WS-NAMA.
DISPLAY (LIN, 22) WS-NPM.
DISPLAY (LIN, 32) WS-KELAS.
GO TO TAMPIL2.
TAMPIL4.
ACCEPT PIL.
CLOSE MHS.
GO TO PROGRAM-UTAMA.
CARI.
MOVE 'N' TO CR-NPMX.
DISPLAY CARI-X.
ACCEPT CARI-X.
OPEN INPUT MHS.
GO TO CARI2.
CARI2.
READ MHS NEXT AT END GO TO CARI3.
MOVE NAMA TO WS-NAMA.
MOVE NPM TO WS-NPM.
MOVE KELAS TO WS-KELAS.
IF NPM-CARI = WS-NPM GO TO KETEMU.
GO TO CARI2.
KETEMU.
DISPLAY HAPUS.
DISPLAY (7, 23) 'DATA NPM : ' WS-NPM.
DISPLAY (9, 23) 'NAMA : ' WS-NAMA.
DISPLAY (11, 23) 'KELAS : ' WS-KELAS.
DISPLAY (15, 23) 'CARI DATA LAGI ? '.
ACCEPT ( , ) PIL2.
CLOSE MHS.
IF PIL2 = 'Y' OR PIL2 = 'y' GO TO CARI.
GO TO PROGRAM-UTAMA.
CARI3.
DISPLAY HAPUS.
DISPLAY 'DATA TIDAK ADA...'.
DISPLAY 'Press Escape / Enter Untuk Cari Lagi..'.
DISPLAY 'X Untuk Ke Menu Utama, Lalu Tekan Enter..'.
ACCEPT ( , ) PIL3.
CLOSE MHS
IF PIL3 = 'X' OR PIL3 = 'x' GO TO PROGRAM-UTAMA.
GO TO CARI.
SELESAI.
DISPLAY HAPUS.
DISPLAY (2, 2) 'Good Bye......'.
CLOSE MHS.
STOP RUN.
FILE INDEKS
File index merupakan jenis file yang banyak dipakai dalam program aplikasi.
Dengan menggunakan file index memiliki banyak kelebihan, antara lain :
1. Pembacaan data dapat dilakukan dengan cepat.
2. Data dapat diurutkan secara ascending berdasarkan sebuah field atau
sejumlah field.
3. Isi file dapat dimodifikasi atau dihapus dengan cepat tanpa harus
mengakses record-record lain.
Pengaksesan pada file index dapat dilakukan dengan cepat disebabkan adanya kunci (key). Pada MS-Cobol, key dari record disimpan dalam file yang terpisah dengan file data record. File key mempunyai extention berupa .KEY.
Kunci utama dari record pada file index bersifat unik yang artinya setiap kunci record memiliki nilai yang berlainan.
DEFINISI ENVIRONMENT DIVISION PADA FILE INDEKS
Definisi awal dari semua jenis file terletak pada ENVIRONMENT DIVISION dalam paragraf FILE CONTROL sama seperti file sequential.
FILE-CONTROL
SELECT nama-file-1 ASSIGN TO DISK
ORGANIZATION IS INDEXED
ACCESS MODE IS { SEQUENTIAL / RANDOM / DYNAMIC }
RECORD KEY IS nama-data-1
[FILE STATUS IS nama-data-3]
File index ditentukan oleh statement entri : ORGANIZATION IS INDEXED.
Untuk akses mode yang digunakan adalah :
1. SEQUENTIAL, menyatakan bahwa pengaksesan secara berurut.
2. RANDOM, menyatakan pengaksesan record hanya dapat dilakukan
secara random, yaitu dengan cara mengisikan nilai kunci record.
3. DYNAMIC, memungkinkan pengaksesan secara random dan
sequential.
Klausa RECORD KEY digunakan untuk menyatakan nama data yang menjadi kunci record.
Klausa FILE STATUS digunakan untuk menyatakan nama data guna menampung status dari operasi pada file index. Misalnya untuk mengetahui ada tidaknya file pada disk, melihat keberhasilan penulisan ke disk dan sebagainya.
DEFINISI DATA DIVISION PADA FILE SEQUENTIAL
Data Division pada file urut harus mengandung file description entry (fd) sebagai berikut :
FD nama-file-1
LABEL { RECORD {ARE/IS} } {STANDARD}
VALUE OF FILE-ID IS { nama-data-1 }
STATEMENT UNTUK OPERASI FILE INDEKS
Statement untuk operasi File Indeks adalah :
1. Pernyataan OPEN
1. OPEN INPUT digunakan untuk membuka file yang isinya
hendak dibaca.
2. OPEN OUTPUT digunakan untuk menciptakan file baru.
3. OPEN I-O memungkinkan data record di dalam file
diperbaharui.
INPUT nama-file-1…….
OPEN OUTPUT nama-file-2……
I-O nama-file-3……
2. Pernyataan CLOSE
Pernyataan ini digunakan untuk menutup file atau mengakhiri pemrosesan pada
file.
CLOSE { nama-file-1 } …
3. Pernyataan Write
Pernyataan ini berguna untuk merekamkan data pada record tertentu di file
yang telah dibuka.
WRITE nama-record-1 [ FROM nama-data-1 ]
4. Pernyataan Read
Pernyataan ini digunakan untuk membaca record yang ada di file.
Ada 2 bentuk statement Read :
Bentuk 1 :
READ nama-file [ next ] RECORD [ into nama-data ]
[ AT END statement-imperatip ]
Bentuk 2 :
READ nama-file [ next ] RECORD [ into nama-data-1 ]
[ KEY is nama-data-2 ]
[ INVALID KEY statement-imperatip ]
5. Pernyataan START
Statement start digunakan untuk menempatkan pembacaan record mulai pada
record yang mengandung nilai field kunci tertentu.
Bentuk umumnya :
is EQUAL to
is =
is GREATHER THAN
KEY is >
is NT LESS THAN
is NOT >
[ INVALID KEY statement-imperatip ]
Contoh program file index:
IDENTIFICATION DIVISION.
PROGRAM-ID. FileIndex.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT MHS ASSIGN TO DISK
ORGANIZATION IS RELATIVE
ACCESS MODE IS DYNAMIC
RECORD KEY IS NO-REL
FILE STATUS IS STATUS-SALAH.
DATA DIVISION.
FILE SECTION.
FD MHS
LABEL RECORD IS STANDARD
VALUE OF FILE-ID IS 'DATA.DAT'
DATA RECORD IS RECMHS.
01 RECMHS.
02 NPM PIC 9(8).
02 NAMA PIC X(28).
02 KELAS PIC X(5).
WORKING-STORAGE SECTION.
01 TAMBAH-DATA PIC X.
88 LAGI VALUE 'Y', 'y'.
88 TDK VALUE 'T', 't'.
77 STATUS-SALAH PIC XX.
77 NO-REL PIC 9(8).
SCREEN SECTION.
01 HAPUS.
02 BLANK SCREEN.
01 MASUKAN.
02 LINE 10 COLUMN 20 VALUE 'NPM : '.
02 COLUMN PLUS 2 PIC X(8) TO NPM.
02 LINE 12 COLUMN 20 VALUE 'NAMA : '.
02 COLUMN PLUS 2 PIC X(28) TO NAMA.
02 LINE 14 COLUMN 20 VALUE 'KELAS : '.
02 COLUMN PLUS 2 PIC X(5) TO KELAS.
PROCEDURE DIVISION.
BUKA.
OPEN OUTPUT MHS.
MULAI.
DISPLAY HAPUS.
DISPLAY MASUKAN.
ACCEPT MASUKAN.
COMPUTE NO-REL = NPM - 50498000.
WRITE RECMHS.
DISPLAY (18, 25) ' MASIH ADA DATA [Y/T] '.
ACCEPT TAMBAH-DATA.
IF LAGI GO TO MULAI.
SELESAI.
CLOSE MHS.
STOP RUN.
Organisasi file secara relatif adalah file yang recordnya dibedakan dengan dasar suatu nomor record relatif. Nomor record relatif dapat berkisar dari nomor record 1 sampai dengan 32767. Nomor record relatif ini tidak turut direkamkan dalam file, sehingga panjang recordnya adalah sepanjang record yang ditentukan tanpa nomor record relatif. Panjang record untuk file relatif adalah tetap.
ENVIRONMENT DIVISION PADA FILE RELATIF
FILE-CONTROL
SELECT nama-file ASSIGN TO DISK
; ORGANIZATION IS RELATIVE
SEQUENTIAL [ , RELATIVE KEY IS nama-data-1 ]
[ ; ACCESS MODE IS RANDOM
DYNAMIC [ , RELATIVE KEY IS nama-data-1 ]
[ ; FILE STATUS IS nama-data-2 ]
DATA DIVISION PADA FILE RELATIF
LABEL RECORD IS STANDARD
VALUE OF FILE-ID IS nama-file di label
PROCEDURE DIVISION PADA FILE RELATIF
Statement khusus yang dipergunakan pada file relatif di dalam procedure division sama dengan yang ada di file index, yaitu dapat dibentuk dari verb OPEN, READ, CLOSE, WRITE, REWRITE, START DAN DELETE.
1. OPEN verb
INPUT nama-file-1 [ , nama-file-2 ] ….
OPEN OUTPUT nama-file-3 [ , nama-file-4 ] ….
I-O nama-file-5 [ , nama-file6 ] ….
2. CLOSE verb
CLOSE nama-file-1 [ WITH LOCK ] [ , nama-file-2 [ WITH LOCK ]]
3. WRITE verb
WRITE nama-record [ FROM nama-data ]
[ ; INVALID KEY statement-imperatip ]
4. READ verb ada 2 yaitu :
Bentuk 1 :
READ nama-file [ NEXT ] RECORD [ INTO nama-data ]
[ ;AT END statement imperatip ]
Bentuk 2 :
READ nama-file RECORD [ INTO nama-data ]
[ ;INVALID KEY statement imperatip ]
5. START verb
IS EQUAL TO
IS =
START nama-file KEY IS GREATER THAN nama-data
IS >
IS NOT LESS THAN
IS NOT < [ ;INVALID KEY statement imperatip ]6. REWRITE verb REWRITE nama-record [ FROM nama-data ] [ ; INVALID KEY statement imperatip ]7. DELETE verb DELETE nama-file RECORD [ ;INVALID KEY statement imperatip ]Contoh program :IDENTIFICATION DIVISION. PROGRAM-ID. RELATIF. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT MHS ASSIGN TO DISK ORGANIZATION IS RELATIVE ACCESS MODE IS DYNAMIC RELATIVE KEY IS NO-REL FILE STATUS IS STATUS-SALAH. DATA DIVISION. FILE SECTION FD MHS LABEL RECORD IS STANDARD VALUE OF FILE-ID IS 'DATA.DAT' DATA RECORD IS RECMHS. 01 RECMHS. 02 NPM PIC 9(8). 02 NAMA PIC X(20). 02 KELAS PIC X(5). WORKING-STORAGE SECTION. 01 JUDUL. 02 WS-NAMA PIC X(25). 02 WS-NPM PIC 9(8). 02 WS-KELAS PIC X(8). 02 NPM-CARI PIC 9(8). 01 TAMBAH-DATA PIC X. 88 LAGI VALUE 'Y', 'y'. 88 TDK VALUE 'T', 't'. 01 X PIC 9 VALUE 0. 77 STATUS-SALAH PIC XX. 77 NO-REL PIC 9(8). 77 PIL PIC X. 77 PIL2 PIC X. 77 PIL3 PIC X. 77 CR-NPMX PIC X VALUE 'Y'. SCREEN SECTION. 01 HAPUS. 02 BLANK SCREEN. 01 MASUKAN. 02 LINE 5 COLUMN 24 VALUE 'NPM : '. 02 COLUMN PLUS 2 PIC X(8) TO NPM. 02 LINE 7 COLUMN 24 VALUE 'NAMA : '. 02 COLUMN PLUS 2 PIC X(20) TO NAMA. 02 LINE 9 COLUMN 24 VALUE 'KELAS : '. 02 COLUMN PLUS 2 PIC X(5) TO KELAS. 01 MENU. 02 LINE 5 COLUMN 27 '<< MENU >>'.
02 LINE PLUS 2 COLUMN 21 '[1] BUAT / INPUT FILE'.
02 LINE PLUS 1 COLUMN 21 '[2] TAMPIL FILE'.
02 LINE PLUS 1 COLUMN 21 '[3] CARI DATA '.
02 LINE PLUS 1 COLUMN 21 '[4] EXIT '.
02 LINE PLUS 2 COLUMN 21 'PILIH : '.
02 COLUMN PLUS 1 PIC X TO PIL.
01 CARI-X.
02 BLANK SCREEN.
02 LINE 5 COLUMN 25 'NPM YANG DICARI : '.
02 COLUMN PLUS 1 PIC X(8) TO NPM-CARI.
PROCEDURE DIVISION.
PROGRAM-UTAMA.
COMPUTE X = 0.
DISPLAY HAPUS.
DISPLAY MENU.
ACCEPT MENU.
IF PIL = '1' GO TO BUKA.
IF PIL = '2' GO TO TAMPIL.
IF PIL = '3' GO TO CARI.
IF PIL = '4' GO TO SELESAI.
BUKA.
OPEN OUTPUT MHS.
GO TO BUKA2.
BUKA2.
DISPLAY HAPUS.
DISPLAY MASUKAN.
ACCEPT MASUKAN.
COMPUTE NO-REL = NPM - 50498000.
WRITE RECMHS.
DISPLAY (15, 23) 'MASIH ADA DATA [Y/T] ? '
ACCEPT TAMBAH-DATA.
IF LAGI GO TO BUKA2.
CLOSE MHS.
GO TO PROGRAM-UTAMA.
TAMPIL.
DISPLAY HAPUS.
DISPLAY (1, 1) 'NAMA'.
DISPLAY (1, 22) 'NPM'.
DISPLAY (1, 32) 'KELAS'.
OPEN INPUT MHS.
COMPUTE X = 1.
GO TO TAMPIL2.
TAMPIL2.
IF PIL = 'Y' GO TO TAMPIL3.
TAMPIL3.
COMPUTE X = X + 1.
MOVE X TO LIN.
READ MHS NEXT RECORD AT END GO TO TAMPIL4.
MOVE NAMA TO WS-NAMA.
MOVE NPM TO WS-NPM.
MOVE KELAS TO WS-KELAS.
DISPLAY (LIN, 1) WS-NAMA.
DISPLAY (LIN, 22) WS-NPM.
DISPLAY (LIN, 32) WS-KELAS.
GO TO TAMPIL2.
TAMPIL4.
ACCEPT PIL.
CLOSE MHS.
GO TO PROGRAM-UTAMA.
CARI.
MOVE 'N' TO CR-NPMX.
DISPLAY CARI-X.
ACCEPT CARI-X.
OPEN INPUT MHS.
GO TO CARI2.
CARI2.
READ MHS NEXT AT END GO TO CARI3.
MOVE NAMA TO WS-NAMA.
MOVE NPM TO WS-NPM.
MOVE KELAS TO WS-KELAS.
IF NPM-CARI = WS-NPM GO TO KETEMU.
GO TO CARI2.
KETEMU.
DISPLAY HAPUS.
DISPLAY (7, 23) 'DATA NPM : ' WS-NPM.
DISPLAY (9, 23) 'NAMA : ' WS-NAMA.
DISPLAY (11, 23) 'KELAS : ' WS-KELAS.
DISPLAY (15, 23) 'CARI DATA LAGI ? '.
ACCEPT ( , ) PIL2.
CLOSE MHS.
IF PIL2 = 'Y' OR PIL2 = 'y' GO TO CARI.
GO TO PROGRAM-UTAMA.
CARI3.
DISPLAY HAPUS.
DISPLAY 'DATA TIDAK ADA...'.
DISPLAY 'Press Escape / Enter Untuk Cari Lagi..'.
DISPLAY 'X Untuk Ke Menu Utama, Lalu Tekan Enter..'.
ACCEPT ( , ) PIL3.
CLOSE MHS
IF PIL3 = 'X' OR PIL3 = 'x' GO TO PROGRAM-UTAMA.
GO TO CARI.
SELESAI.
DISPLAY HAPUS.
DISPLAY (2, 2) 'Good Bye......'.
CLOSE MHS.
STOP RUN.
FILE INDEKS
File index merupakan jenis file yang banyak dipakai dalam program aplikasi.
Dengan menggunakan file index memiliki banyak kelebihan, antara lain :
1. Pembacaan data dapat dilakukan dengan cepat.
2. Data dapat diurutkan secara ascending berdasarkan sebuah field atau
sejumlah field.
3. Isi file dapat dimodifikasi atau dihapus dengan cepat tanpa harus
mengakses record-record lain.
Pengaksesan pada file index dapat dilakukan dengan cepat disebabkan adanya kunci (key). Pada MS-Cobol, key dari record disimpan dalam file yang terpisah dengan file data record. File key mempunyai extention berupa .KEY.
Kunci utama dari record pada file index bersifat unik yang artinya setiap kunci record memiliki nilai yang berlainan.
DEFINISI ENVIRONMENT DIVISION PADA FILE INDEKS
Definisi awal dari semua jenis file terletak pada ENVIRONMENT DIVISION dalam paragraf FILE CONTROL sama seperti file sequential.
FILE-CONTROL
SELECT nama-file-1 ASSIGN TO DISK
ORGANIZATION IS INDEXED
ACCESS MODE IS { SEQUENTIAL / RANDOM / DYNAMIC }
RECORD KEY IS nama-data-1
[FILE STATUS IS nama-data-3]
File index ditentukan oleh statement entri : ORGANIZATION IS INDEXED.
Untuk akses mode yang digunakan adalah :
1. SEQUENTIAL, menyatakan bahwa pengaksesan secara berurut.
2. RANDOM, menyatakan pengaksesan record hanya dapat dilakukan
secara random, yaitu dengan cara mengisikan nilai kunci record.
3. DYNAMIC, memungkinkan pengaksesan secara random dan
sequential.
Klausa RECORD KEY digunakan untuk menyatakan nama data yang menjadi kunci record.
Klausa FILE STATUS digunakan untuk menyatakan nama data guna menampung status dari operasi pada file index. Misalnya untuk mengetahui ada tidaknya file pada disk, melihat keberhasilan penulisan ke disk dan sebagainya.
DEFINISI DATA DIVISION PADA FILE SEQUENTIAL
Data Division pada file urut harus mengandung file description entry (fd) sebagai berikut :
FD nama-file-1
LABEL { RECORD {ARE/IS} } {STANDARD}
VALUE OF FILE-ID IS { nama-data-1 }
STATEMENT UNTUK OPERASI FILE INDEKS
Statement untuk operasi File Indeks adalah :
1. Pernyataan OPEN
1. OPEN INPUT digunakan untuk membuka file yang isinya
hendak dibaca.
2. OPEN OUTPUT digunakan untuk menciptakan file baru.
3. OPEN I-O memungkinkan data record di dalam file
diperbaharui.
INPUT nama-file-1…….
OPEN OUTPUT nama-file-2……
I-O nama-file-3……
2. Pernyataan CLOSE
Pernyataan ini digunakan untuk menutup file atau mengakhiri pemrosesan pada
file.
CLOSE { nama-file-1 } …
3. Pernyataan Write
Pernyataan ini berguna untuk merekamkan data pada record tertentu di file
yang telah dibuka.
WRITE nama-record-1 [ FROM nama-data-1 ]
4. Pernyataan Read
Pernyataan ini digunakan untuk membaca record yang ada di file.
Ada 2 bentuk statement Read :
Bentuk 1 :
READ nama-file [ next ] RECORD [ into nama-data ]
[ AT END statement-imperatip ]
Bentuk 2 :
READ nama-file [ next ] RECORD [ into nama-data-1 ]
[ KEY is nama-data-2 ]
[ INVALID KEY statement-imperatip ]
5. Pernyataan START
Statement start digunakan untuk menempatkan pembacaan record mulai pada
record yang mengandung nilai field kunci tertentu.
Bentuk umumnya :
is EQUAL to
is =
is GREATHER THAN
KEY is >
is NT LESS THAN
is NOT >
[ INVALID KEY statement-imperatip ]
Contoh program file index:
IDENTIFICATION DIVISION.
PROGRAM-ID. FileIndex.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT MHS ASSIGN TO DISK
ORGANIZATION IS RELATIVE
ACCESS MODE IS DYNAMIC
RECORD KEY IS NO-REL
FILE STATUS IS STATUS-SALAH.
DATA DIVISION.
FILE SECTION.
FD MHS
LABEL RECORD IS STANDARD
VALUE OF FILE-ID IS 'DATA.DAT'
DATA RECORD IS RECMHS.
01 RECMHS.
02 NPM PIC 9(8).
02 NAMA PIC X(28).
02 KELAS PIC X(5).
WORKING-STORAGE SECTION.
01 TAMBAH-DATA PIC X.
88 LAGI VALUE 'Y', 'y'.
88 TDK VALUE 'T', 't'.
77 STATUS-SALAH PIC XX.
77 NO-REL PIC 9(8).
SCREEN SECTION.
01 HAPUS.
02 BLANK SCREEN.
01 MASUKAN.
02 LINE 10 COLUMN 20 VALUE 'NPM : '.
02 COLUMN PLUS 2 PIC X(8) TO NPM.
02 LINE 12 COLUMN 20 VALUE 'NAMA : '.
02 COLUMN PLUS 2 PIC X(28) TO NAMA.
02 LINE 14 COLUMN 20 VALUE 'KELAS : '.
02 COLUMN PLUS 2 PIC X(5) TO KELAS.
PROCEDURE DIVISION.
BUKA.
OPEN OUTPUT MHS.
MULAI.
DISPLAY HAPUS.
DISPLAY MASUKAN.
ACCEPT MASUKAN.
COMPUTE NO-REL = NPM - 50498000.
WRITE RECMHS.
DISPLAY (18, 25) ' MASIH ADA DATA [Y/T] '.
ACCEPT TAMBAH-DATA.
IF LAGI GO TO MULAI.
SELESAI.
CLOSE MHS.
STOP RUN.
Langganan:
Posting Komentar (Atom)
0 Responses to “FILE RELATIF DAN FILE INDEX”
Posting Komentar