FILE INDEKS
PENDAHULUAN.
Suatu organisasi file secara indeks (indexed file) adalah file yang mempunyai indeks atau tabel yang berisi daftar alamat-alamat (addresses) dari record di disk, yang disebut dengan control index.
Control indek ini berfungsi sebagai penunjuk (pointer) dari posisi record tertentu yang berisi data, sehingga memungkinkan untuk menuju ke suatu lokasi record tertentu dengan cepat.
Organisasi file secara indek ini dapat dimisalkan dengan suatu buku yang mempunyai halaman indeks. Isi dari buku diumpamakan dengan file data dan isi halaman indeks diumpamakan dengan file kunci. Isi buku (file data) berisi semua informasi data yang ada. Sedang isi dari halaman indeks (file kunci) menunjukkan letak dari suatu data tertentu di isi buku (data file). Sehingga dengan adanya indeks pada buku akan mempercepat pencarian suatu data karena akan langsung mengetahui letaknya.
IDENTIFICATION DIVISION pada file indeks
Isi dan bentuk dari IDENTIFICATION DIVISION untuk organisasi secara indeks sama dan tidak berbeda dengan IDENTIFICATION DIVISION. Pada organisasi file secara sequential.
ENVIRONMENT DIVISION pada file indeks
Pada divisi ini entry pada SELECT clause harus disebutkan ORGANIZATION IS INDEXED.
Bentuk entry pada SELECT clause adalah sebagai berikut :
FILE-CONTROL.
SELECT nama-file ASSIGN TO DISK
ORGANIZATION IS INDEKXED
SEQUENTIAL
ACCESS MODE IS RANDOM
DYNAMIC
RECORD KEY IS nama-data-1
FILE STATUS IS nama-data-2
Suatu file yang diorganisasikan secara indeks, dapat diakses baik secara berurutan (sequential access mode), secara acak (random access mode) dan secara dinamik (dynamic access mode).
Pada mode akses secara urut (sequential access mode) urutan dari record di file akan disajikan dalam keadaan urut dari kecil ke besar berdasarkan field kuncinya.
Pada mode akses secara random (random access mode) urutan dari record di file tidak urut, tetapi pengaksesan record diatur oleh programmer. Masing-masinh record yang diinginkan dapat dilakukan dengan meletakkan suatu nilai kunci tertentu pada field kunci sebelum perintah-perintah pengaksesan file dikerjakan. Dengan cara demikian, maka posisi record yang akan diinginkan akan langsung dituju. Pada mode akses secara dinamik (dynamic access mode), programmer dapat menggunakan file tersebut baik secara sequential access mode atau secara random mode dengan bergantian.
RECORD KEY clause menunjukkan nama-data yang dipergunakan sebagai field kunci, yang sudah disebutkan terlebih dahulu pada file description entry.
FILE STATUS clause dipergunakan untuk menunjukkan jenis kesalahan yang terjadi dari suatu hasil proses operasi file.
DATA DIVISION pada file indeks.
DATA DIVISION pada file indeks sama dengan DATA DIVISION pada organisasi file secara sequential, yaitu harus mengandung file description entry sebagai berikut :
LABEL RECORD IS STANDARD
VALUE OF FILE-ID IS nama-data di label
PROCEDURE DIVISION pada file indeks
Statement khusus yang dipergunakan pada file indeks di dalam PROCEDURE DIVISION dapat dibentuk dari verb OPRN, CLOSE, READ, WRITE, REWRITE, START dan DELETE.
OPEN verb
Open verb digunakan untuk membentuk statement OPEN, yang digunakan untuk membuka file yang akan diakses.
Bentuk dari statement OPEN pada file indeks adalah sebagai berikut :
INPUT nama-file-1 [, nama-file-2] …
OPEN OUTPUT nama-file-3 [, nama-file-4] …
I – O nama-file-5 [, nama-file-6] …
OPEN INPUT menunjukkan file dibuka sebagai file input, yaiutu file yang dibuka untuk tujuan dibuka sebagai input atau data akan dibaca (READ) dari file ini.
OPEN OUTPUT menunjukkan file dibuka sebagai file output, yaitu file yang dibuka untuk tujuan sebagai output atau data akan direkamkan (WRITE) pada file ini.
OPEN I-O menunjukkan file dibuka baik sebagai file input dan file output, yaitu file yang dibuka untuk tujuan sebagai input dan output sekaligus atau dapat dibaca (READ), dimodifikasi atau membetulkan terlebih dahulu bila salah, kemudian memungkinkan untuk direkamkan kembali pada posisi yang sama. Pada mode akses secara urut, statement WRITE pada OPEN I – O tidak boleh dipergunakan, harus menggunakan statement REWRITE.
CLOSE verb
Setelah operasi file selesai, maka semua file yang masih terbuka harus ditutup. Untuk menutup file dipergunakan statement CLOSE.
Bentuk dari statement CLOSE :
CLOSE nama-file-1 [WITH LOCK] [, nama-file-2 [WITH LOCK]]
Bentuk dan penggunaan statement CLOSE ini sama dengan organisasi file secara sequential.
WRITE verb
Digunakan untuk membentuk statement WRITE yang berguna untuk merekamkan data pada record tertentu di file yang telah dibuka dengan statement OPEN.
Untuk mode akses secara urut statement WRITE digunakan untuk file yang dibuka sebagai file output (OPEN OUTPUT), sedang pada mode akses secara acak dan mode akses secra dinamik statement WRITE dapat digunakan untuk file yang dibuka sebagai file output atau sebagai file input dan output sekaligus (OPEN I – O).
Bentuk dari statement WRITE :
WRITE nama-record [FROM nama-data]
[; INVALID KEY statement imperative]
Dengan statement WRITE ini, data yabg ada distorage nama-record atau diambilkan (FROM) storage nama-data) akan direkam (WRITE) pada record di file. Untuk merekamkan data pada record, nilai dari field kunci harus unik, kalau tidak maka data tidak akan terekam dan statement-imperatip pada INVALID KEY akan dikerjakan bila disebutkan.
READ verb
Statement READ digunakan untuk membaca record yang ada di file.
Ada 2 bentuk statement READ yang tersedia untuk ini.
Bentuk statement READ yang ke-1 :
READ nama-file [NEXT] RECORD [INTO nama-data]
[; AT END statement-imperatip]
Bentuk statement READ yang ke-2 :
READ nama-file RECORD [INTO nama-data-1]
[; KEY IS nama-data-2]
[; INVALID KEY statement-imperatip]
Bentuk ke-1 yang menggunakan NEXT option digunakan pada dynamic access mode untuk membaca record secara urut.
INVALID KEY clause pada statement READ uni akan terjadi bila pembacaan record sudah mencapai akhir dari file (End OF File) dan statement imperatip akan dikerjakan bila dituliskan. Bila INVALID KEY clause tidak disebutkan, tetapi menggunakan DECLARATIF region, maka control terhadap akhir file tersebut akan dilakukan pada region tersebut.
Bentuk ke-2 digunakan pada random access mode atau dynamic access mode untuk record yang akan dibaca secara acak (random), yaitu pembacaac yang dapat langsung pada record tertentu sesuai dengan field kunci tersebut.
KEY IS clause menunjukkan nilai field kunci yang merupakan patokan dari record tertentu yang akan dibaca secara acak random.
INVALID KEY clause pada statement READ bentuk ke-2 ini akan terjadi bila pembacaan tidak menemukan record yang sesuai dengan field kunci yang diinginkan dan statement imperative akan dikerjakan bila dituliskan, bila INVALID KEY clause tidak disebutkan, tetapi menggunakan DECLARATIF region, maka control terhadap hal ini akan dilakukan pada region tersebut.
START verb
statement START digunakan untuk menempatkan pembacaan record mulai pada record yang mengandung nilai field kunci tertentu. Statement ini hanya boleh dipergunakan untuk file yang diakses secara sequential access mode atau secara dynamaic access mode yang dibuka sebagai file input atau file I – O.
bentuk dari statement START :
IS EQUAL TO
IS =
START nama-file KEY IS GREATER THAN nama-data
IS >
IS NT LESS THAN
IS NOT <
[; INVALID KEY statement-imperatif]
Bila digunakan IS EQUAL TO atau IS =, maka penempatan posisi akan berada pada record yang nilai field kuncinya sama dengan nilai yang disebutkan.
Bila digunakan IS GREATER THAN atau IS > atau IS NOT LESS THAN atau IS NOT <, maka penempatan posisi akan berada pada record yang dinilai field kuncinya lebih besar dari nilai nama-data yang disebutkan.
Bila KEY phrase tidak disebutkan, maka penempatan posisi akan berada pada record yang berisi nilai field kunci terakhir yang ada di storage.
INVALID KEY clause pada statement START ini akan terjadi bila posisi record yang dicari tidak ketemu dan statement imperative akan dikerjakan bila dituliskan. Bila INVALID KEY clause tidak disebutkan, tetapi menggunakan DECLARATIVE region, maka control terhadap keadaan ini akan dilakukan pada region tersebut.
REWRITE verb
Digunakan untuk merekam ulang record yang sudah pernah direkam. Statement ini biasanya digunakan untuk meremajakan (up-date) atau mengkoreksi nilai record tertentu yang sudah terekam, yaitu dengan jalan merekamkan ulang (REWRITE) dengan nilai data yang baru.
Bentuk dari statement REWRITE :
REWRITE nama-record [FROM nama-data]
[; INVALID KEY statement-imperatif]
Untuk file sequential access mode, statemen READ sebelum statement REWRITE harus dikerjakan dengan sukses, kalau tidak maka pelaksanaan statement REWRITE menjadi tidak sah (INVALID). Juga pada file sequential access mode, nilai field kunci tidak boleh diubah, kalau berubah maka akan terjadi INVALID KEY dan statement-imperatif akan dikerjakan.
Untuk file sequential access mode atau dynamic access mode, record yang akan diubah ditentukan langsung dari nilai field kuncinya, tidak perlu digunakan statement READ terlebih dahulu untuk membaca record tersebut. Kondisi INVALID KEY terjadi bila nilai field kunci tidak ada di disk.
DELETE verb
Digunakan untuk menghapus record tertentu dari file.
Bentuk statement DELETE :
DELETE nama-file RECORD
[; INVALID KEY statement-imperatif]
Untuk file sequential access mode, sebelum record dihapus, record tersebut harus dibaca terlebih dahulu dengan statement READ yang harus dikerjakan dengan sukses.
Untuk file random access mode atau dynamic access mode, record yang akan dihapus ditentukan langsung dari nilai field kuncinya tidak perlu digunakan statement READ terlebih dahulu untuk membaca record tersebut. Kondisi INVALID KEY terjadi bila nilai field kunci tidak ada di disk.
MODE AKSES URUT PADA FILE INDEKS
Seperti telah diterangkan sebelumnya, bahwa organisasi file secara indeks yang diakses secara urut, record dalam file harus diorganisasikan secara urut menurut field kunci tertentu.
Suatu file umumya diakses untuk tujuan merekamkan data, mencetak semua data yang ada, mencetak data tertentu, koreksi data yang salah atau menghapus data yang sudah tidak dipergunakan.
Senin, 24 Mei 2010
11.16
HADI SUCIPTO
No comments
0 komentar:
Posting Komentar