COBOL : Organisasi File Relatif

PENGERTIAN

Organisasi file secara relatif (relative file) adalah file yang recordnya dibedakan dengan dasar suatu nomor record relatif.Nomor record relatif dapat berkisar dari nomor record 1 sampai dengan nomor record 32767.
Nomor record relative ini tidak turut direkamkan dalam file,sehingga panjang recornya adalah sepanjang record yang ditentukan tanpa nomor record relatif.Panjang record untuk file relatif adalah mempunyai panjang yang tetap.

ENVIRONMENT DIVISION 

Pada divisi ini, entry pada clause SELECT harus disebutkan ORGANIZATION IS RELATIVE. Organisasi file secara relatif dapat diakses secara urut, acak, maupun dinamik. Pada mode akses urut (sequential access mode) record diakses dengan urutan record relatif dari kecil ke besar.

Pada mode akses acak (random access mode) pengaksesan record diakses tidak diurutkan, tetapi diatur oleh pemrogram. Pada mode akses dinamik (dynamic access mode) pengaksesan record dilakukan dengan terurut dan acak.

RELATIVE KEY clause menunjukan nama-data yang dipergunakan sebagai kunci relatif, yang sudah harus disebutkan terlebih dahulu pada record description entry dalam DATA DIVISION. Clause RELATIVE KEY harus disebutkan untuk mode akses acak dan dinamik, sedangkan pada mode akses urut dapat disebutkan bila akan mempergunakan perintah START.

FILE STATUS clause dipergunakan untuk menunjukan jenis kesalahan yang terjadi dari suatu operasi.Jenis kesalahan ini ditunjukan oleh suatu nilai sepanjang karakter yang disimpan pada nama data yang disebutkan pada clause ini dan sudah disebutkan terlebih dahulu pada WORKING-STORAGE SECTION atau pada LINKAGE SECTION. Untuk nilai status organisasi file relatif lihat tabel file indeks.

Bentuk umum :

Untitled

DATA DIVISION
Bentuk umum :
;LABEL RECORD IS STANDARD
[;VALUE OF FILE-ID IS nama-file di label]

PROCEDURE DIVISION
Statement khusus yang dipergunakan dalam PROCEDURE DIVISION yaitu OPEN, CLOSE, READ, WRITE, REWRITE, START dan DELETE

  • OPEN verb digunakan untuk membuka file yang akan diakses, dengan bentuk umum :sdgs
  • CLOSE Verb, digunakan untuk menutup file yang digunakan setelah selesai melaksanakan operasi file untuk mecegah rusaknya struktur file, dengan bentuk umum :

CLOSE nama-file1 [WITH LOCK] [,nama-file2 [WITH LOCK] ]

  • WRITE Verb, digunakan untuk merekamkan data pada record tertentu difile yang telah dibuka, dengan bentuk umum :
    WRITE nama-record [FROM nama-data1] [;INVALID KEY statement-imperatif]
  • READ Verb, digunakan untuk membaca record yang ada di file, dengan bentuk umum :
    BU 1 :
    READ nama-file [NEXT] RECORD [INTO nama-data] [;AT END statement imperatif]
    BU 2 :
    READ nama-file RECORD [INTO nama-data] [;INVALID KEY statement-imperatif]
  • REWRITE Verb, digunakan untuk merekam ulang record yang sudah pernah direkam/ update record, dengan bentuk umum :
    REWRITE nama-record [FROM nama-data] [;INVALID KEY statement imperatif]
  • DELETE Verb
    DELETE nama-file RECORD    [;INVALID KEY statement-imperatif]
  • START Verb, digunakan untuk menempatkan pembacaan record mulai record yang mengandung nilai field kunci tertentu, dengan bentuk umum :

dfs

CODING:

IDENTIFICATION DIVISION.
PROGRAM-ID. RELATIF.
AUTHOR. ADHANISCUBER.
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’.

OUTPUT:

1

2

selesai.

Source : http://sugiartha26.wordpress.com/2011/12/20/organisasi-file-relatif-pada-cobol/

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s