Keuntungan
mengakses data melalui akses random
adalah kita bisa langsung menuju ke record
yang akan kita akses tanpa harus melalui record-record
sebelumnya sebagaimana harus dilakukan untuk akses secara sequential. Namun demikian,
organisasi file random dapat
juga diakses secara sequential
(berurut dari record pertama ke
record-record sesudahnya). Bila
diilustrasikan, kita juga dapat mendengar lagu yang direkam di CD secara
berurut dari awal hingga akhir.
Kesulitannya,
jika kita akan mengakses secara langsung (direct) ke record
tertentu, maka kita harus tahu nomor recordya
(ilustrasi : bila kita akan mendengarkan lagu tertentu di CD, maka kita harus
tahu judulnya, lalu kita lihat daftar isinya, baru kita pilih lagu itu).
Pada
contoh program memasukkan data random
di atas, di sana digunakan nilai i dari perintah FOR-NEXT sebagai nomor recordnya. Mungkin kita bisa hafal
siapa-siapa saja yang menempati nomor record
1 sampai 10 tersebut, tapi, jika jumlah datanya sudah ratusan atau ribuan,
bisakah kita menghafalnya ?.
Inilah
pentingnya manipulasi terhadap nilai m ketika kita akan melakukan proses
perekaman data PUT #n, m.
Berdasarkan teori, m tersebut akan diaplikasikan sebagai key field (kunci field).
Misalkan
kunci field seorang mahasiswa
ada pada nomor pokok mahasiswa (NPM)nya,
maka kita harus memanipulasi angka-angka dari NPM tersebut agar kita
bisa tahu bahwa NPM tertentu ada di nomor record sekian. Bagaimana jika nomor NPM dijadikan m saja ?. Bisa
saja, tapi terjadi pemborosan karena nomor record (address)
1 hingga sekian juta menjadi kosong (misalkan NPM terkecil adalah 10000001,
maka nomor record 1 hingga
10000000 akan kosong). Pembahasan hal ini selengkapnya ada di buku-buku yang
bertemakan “file and access.”
Menampilkan Data
Berikut
contoh program untuk menampilkan data yang telah kita masukkan tadi (program
1), dan untuk menampilkan record
nomor 5 saja (program 2).
Contoh
Menampilkan Data yang Sudah Dimasukkan (1)
CLS
TYPE
Temanku
nama AS STRING * 25
nama AS STRING * 40
notelp AS STRING * 7
END TYPE
DIM ambil AS Temanku
OPEN "TEMAN.DAT" FOR RANDOM AS #1 LEN = LEN(ambil)
FOR i = 1 TO 10
GET #1,
i, ambil
PRINT
"Nama :", ambil.nama
PRINT
"Alamat :", ambil.alamat
PRINT
"No.Telp:", ambil.notelp
NEXT
CLOSE #1
Contoh
Menampilkan Data yang Sudah Dimasukkan
(2)
CLS
TYPE
Temanku
nama AS STRING * 25
alamat AS STRING * 40
notelp AS STRING * 7
END TYPE
DIM ambil AS Temanku
OPEN "TEMAN.DAT" FOR RANDOM AS #1 LEN = LEN(ambil)
INPUT “Nomor Record yang Akan
Ditampilkan : “; nr
GET #1,
nr, ambil
PRINT
"Nama :", ambil.nama
PRINT
"Alamat :", ambil.alamat
PRINT
"No.Telp:", ambil.notelp
CLOSE #1
Catatan
:
1.
Nama variabel boleh sama, dan boleh
berbeda ketika menulis data dan membaca data, tetapi jenis dan panjang nilai
datanya harus sama.
2.
GET #n,m,
adalah perintah untuk mengambil (menyalin) data dari file (nomor record m) dan menyimpannya di buffer memori utama komputer.