Senin, 08 November 2010

0

FILE RELATIF DAN FILE INDEX

  • Senin, 08 November 2010
  • Share
  • 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.

    0 Responses to “FILE RELATIF DAN FILE INDEX”

    :1 :2 :3 :4 :5 :6 :7 :8 :9 :a :b :c
    :) :( ;) :D ;;-) :-/ :x :P :-* =(( :-O X( :7 B-) :-S #:-S 7:) :(( :)) :| /:) =)) O:-) :-B =; :-c :)] ~X( :-h :-t 8-7 I-) 8-| L-) :-a :-$ [-( :O) 8-} 2:-P (:| =P~ :-? #-o =D7 :-SS @-) :^o :-w 7:P 2):) X_X :!! \m/ :-q :-bd ^#(^ :ar!

    Posting Komentar

    Subscribe