Pengertian Random Access File | Algoritma Pemograman
Dikutip dari asnarbhrt.wordpress.com, Random file merupaan salah satu cara atau suatu metode penyimpanan dan pembaca data yangdilakukan secara random atau langsung. Jadi random file juga biasa disebut sebagai Direct Access File.
Untuk membuka File
Perintah yang diperlukan adalah : OPEN
Bentuk Umum
OPEN “R”, #nomfile, namafile, reclen
Atau
OPEN namafile FOR RANDOM ACCESS akses AS #nomfile LEN = reclen
Dimana:
- Nomfile : Bilangan bulat antara 1 sampai 255. Digunakan untuk menyatakan nomor file yang akan dibuka.
- Namafile : Ekspresi string untuk menunjukan nama file.
- Reclen : Bilangan bulat antara 1 sampai 32.676. Digunakan untuk menyatakan jumlah byte setiap record. Parameter ini bersifat pilihan, jika tidak dipakai, maka jumlah byte persecond dianggap 512 byte.
- Akses : Parameter yang menyatakan bentuk operasinya, berupa:
1. READ: Menyebabkan file untuk pembaca saja.
2. WRITE : Menyebabkan file untuk menulis saja.
3. READWRITE : Menyebabkan file untuk pembacaan dan penulisan.
Parameter ini bersifat pilihan. Jika tidak ditulis, maka diamsusikan file random digunakan untuk membaca dan menulis.
Contoh:
OPEN "R", #1,"B:DataNama"
OPEN "R", #2,"DataMhs", 250
OPEN "DataMhs" FOR RANDOM AS #2 LEN 50
OPEN "B:DataMhs" FOR RANDOM ACCESS READ AS #2 LEN 50
Penyediaan Buffer Data
Dalam file random perlu disisipkan suatu area penampungan sementara untuk data yang akan diakses dari file tersebut, yang disebut dengan "RANDOM BUFFER". Untuk membentuknya digunkan statement FIELD.
Bentuk Umum
FIELD #nomfile, lebarfield AS varstring [, lebarfield1 AS varstring 2, …]
Dimana
Nomfile : Bilangan sesuai dengan nomor file yang dibuka dengan statement OPEN.
Lebarfield1 : Bilangan yang menyatakan panjang variabel (Data) yang akan disimpan.
varstring1 : Nama variabel string yang akan digunakan untuk data
Berikut ini penjelasan mengenai lebar fied yang dibutuhkan untuk setiap tipe data.
Table#1-Ketentual lebar field
Tipe data | Lebar Field |
Alpanumerik | 1 byte untuk 1 karakter |
Numerik Integer | 2 byte |
Numerik Single Precission | 4 byte |
Long Integer | 4 byte |
Numerik Double Precission | 8 byte |
Data yang disimpan kedalam file harus dalam bentuk string.
Contoh:
Data Mahasiswa akan disimpan kedalam file random, dengan item-tem sebagai berikut:
Item | Tipe | Jumlah karakter |
NPM | Alpanumerik | 8 karakter |
NAMA | Alpanumerik | 20 karakter |
ALAMAT | Alpanumerik | 25 karakter |
NILAI | Numerik | 1 digit |
Total jumlah byte yang diperlukan berdasarkan tabel 1 diatas adalah 55 byte meliputi, 8 byte untuk NPM, 20 byte untuk NAMA, 25 byte untuk ALAMAT dan 2 byte untuk NILAI.
Penyediaan buffer yang diperlukan adalah :
OPEN “R”, #1, “DataMHS”, 55FIELD #1, 8 AS NPM$, 20 AS NAMA$, 25 AS ALAMAT$, 2 AS NILAI
Konversi Data
Berikut ini adalah tabel fungsi konversi data
Konversi Numerik Ke Karakter
Nama | Fungsi | Bentuk Umum |
MKI$ | Konversi numerik integer | MKI$(ekspresi integer) |
MKL$ | Konversi numerik Long integer | MKL$(ekspresi long integer) |
MKS$ | Konversi numerik single precission | MKS$(ekspresi single prec.) |
MKD$ | Konversi numerik Double precission | MKL$(ekspresi double prec.) |
Koneversi Karakter Ke Numerik
Nama | Fungsi | Bentuk Umum |
CVI | Konversi karakter 2 byte ke integer | CVI(2-byte string) |
CVL | Konversi karakter 4 byte ke long integer | CVL(4-byte string) |
CVS | Konversi karakter 4 byte ke single precission. | CVS(4-byte string) |
CVD | Konversi karakter 8 byte ke double precission. | CVD(8-byte string) |
Penyimpanan Data ke Buffer
Ada 2 bentuk perintah untuk meletakkan data ke dalam buffer:
LSET : Meletakan data kedalam budder dengan posisi merapat ke kiri
RSET : Meletakkan data kedalam buffer dengan posisi merapat ke kanan
Bentuk umum
LSET varstring = ekspstringRSET varstring = ekspstring
Dimana
Varstring : Nama variabel yang telah didefinisikan dengan FIELD
Ekspstring :Variabel string atau ekspresi string yang akan ditempatkan dalam buffer.
Contoh
OPEN "R", #1,"DataMHS",55
FIELD#1,8 AS NPM$, 10 AS Nama$
LSET Nama$ = "ANDI"
RSET NPM$ = "5523"
Hasil dalam buffer
A | N | D | I |
5 | 5 | 2 | 3 |
Post a Comment