Bab 3 File Sequential, File Indeks dan File Relatif 27 BAB 3 FILE SEQUENTIAL, FILE INDEKS DAN FILE RELATIF TUJUAN PRAKTIKUM 1. Mengetahui organisasi file pada program COBOL. 2. Mengetahui pemakaian file pada Program COBOL berupa File Sequential, File Indeks, dan File Relatif. TEORI PENUNJANG 3.1 File Sequential Organisasi file secara urut (sequential file) memungkinkan pengaksesan record di file secara berurutan. Urutan data record yang direkamkan di file sama dengan urutan sewaktu data itu direkamkan. Urutan tidak berubah walaupun data baru ditambahkan. Data baru yang direkamkan akan menempati urutan record selanjutnya setelah record terakhir yang telah ada. Ada 2 macam organisasi file secara urut, yaitu: 1. Sequential mempunyai panjang record yang tetap, 2. Line Sequential bisa berbeda-beda, setiap record terdapat pembatas berupa carriage return (CR) dan line feed (LF). 3.1.1 Definisi ENVIRONMENT DIVISION pada File Sequential Pada ENVIRONMENT DIVISION yang membedakan adalah dalam Input-Output Section pada file control. INPUT -OUTPUT SECTION FILE-CONTROL SELECT nama-file-1 ASSIGN TO DISK [ ORGANIZATION IS [LINE] SEQUENTIAL ] [ ACCESS MODE IS SEQUENTIAL ] [ FILE STATUS IS nama-data-1 ]
Bab 3 File Sequential, File Indeks dan File Relatif 28 3.1.2 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 } 3.1.3 Statement untuk Operasi File Sequential Pernyataan dalam Cobol yang berhubungan dengan operasi file sequential adalah: 1. Pernyataan OPEN OPEN INPUT dig unakan untuk membuka file yang isinya hendak dibaca. OPEN OUTPUT digunakan untuk menciptakan file baru. OPEN I-O memungkinkan data record di dalam file diperbaharui. OPEN EXTEND digunakan untuk membuka file sequential dan isinya dapat ditambah. INPUT nam a-file-1. OPEN OUTPUT nama-file-2 I-O nama-file-3 Extend nama-file-4 2. Pernyataan CLOSE Pernyataan ini digunakan untuk menutup file atau mengakhiri pemrosesan pada file. Bentuk Umum : CLOSE { nama-file-1 } 3. Pernyataan R EAD Pernyataan ini digunakan untuk membaca data record yang dilakukan secara berurutan (sequential). READ hanya dapat digunakan pada file yang dibuka dengan model OPEN INPUT atau OPEN I-O. Bentuk Umum : READ nama-file-1 RECORD [ INTO nama-data ] [ AT END statement-imperative-1 ] Frase RECORD digunakan sebagai dokumentasi.
Bab 3 File Sequential, File Indeks dan File Relatif 29 Frase INTO digunakan untuk menempatkan data record yang dibaca ke identifier1. 4. Pernyataan REWRITE Pernyataan REWRITE digunakan untuk mengubah data record yang sudah ada pada file. Pernyataan ini hanya dapat digunakan pada file disk yang dibuka dengan model OPEN I-O. Bentuk Umum : REWRITE nama-record-1 [ FROM nama-data ] Jika frase FROM disertakan, data dari identifier -1 yang akan menggantikan record lama. 5. Pernyataan WRITE Pernyataan ini digunakan untuk menuliskan data record baru ke file. Statement WRITE hanya dapat digunakan pada file yang dibuka dengan model OPEN OUTPUT atau OPEN EXTEND. Bentuk Umum : WRITE nama-record-1 [ FROM nama-data-1 ] 3.1.4 FILE STATUS Status file biasa dipakai dalam program untuk mendeteksi keberhasilan operasi pada file. Misalnya pada operasi OPEN INPUT keberadaan file yang dibuka bisa diperiksa melalui nilai pada file status. KODE FILE STATUS : 00 : Operasi berhasil 10 : Akhir file 30 : File tidak ada 34 : Disk penuh 39 : Deskripsi antara file aktual dan program tidak sama 91 : Struktur rusak
Bab 3 File Sequential, File Indeks dan File Relatif 30 3.2 File Indeks File indeks 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. 3.2.1 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 indeks ditentukan oleh statement entri : ORGANIZATION IS INDEXED. Untuk ACCESS 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.
Bab 3 File Sequential, File Indeks dan File Relatif 31 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. 3.2.2 Definisi DATA DIVISION pada File Indeks 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 } 3.2.3 Statement untuk Operasi File Indeks Statement untuk operasi File Indeks adalah : 1. Pernyataan OPEN OPEN INPUT digunakan untuk membuka file yang isinya hendak dibaca. OPEN OUTPUT digunakan untuk menciptakan file baru. 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 ]
Bab 3 File Sequential, File Indeks dan File Relatif 32 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 : START nama-file is EQUAL to is = is GREATHER THAN KEY is > is NT LESS THAN is NOT > Nama-data [ INVALID KEY statement-imperatip ] 3.3 File Relatif 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. 3.3.1 IDENTIFICATION DIVISION pada File Relatif ID pada file relatif sama dengan ID pada program yang tidak menggunakan file untuk merekamkan datanya.
Bab 3 File Sequential, File Indeks dan File Relatif 33 3.3.2 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 ] 3.3.3 DATA DIVISION pada File Relatif LABEL RECORD IS STANDARD VALUE OF FILE-ID IS nama-file di label 3.3.4 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 OPEN INPUT nama-file-1 [, nama-file-2 ]. 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 ]
Bab 3 File Sequential, File Indeks dan File Relatif 34 Bentuk 2 : READ nama-file RECORD [ INTO nam a-data ] [ ;INVALID KEY statement imperatip ] 5. START verb START nama-file is EQUAL to is = is GREATHER THAN KEY is > is NT LESS THAN is NOT > Nama-data [ INVALID KEY statement-imperatip ] 6. DELETE verb DELETE nama-file RECORD [ ;IN VALID KEY statement imperatip ] LATIHAN 1. Apa yang dimaksud dengan organisasi file sequential, file indeks, dan file relatif? 2. Sebutkan & jelaskan statement untuk operasi file sequential? 3. Sebutkan Status file pada file sequential? 4. Sebutkan definisi Environment Division pada file Sequential, file indeks, dan file relatif? 5. Sebutkan kelebihan menggunakan file indeks?