Alsonbna clan Pemrosaman 1B
f
t
l
:,
1Berkas Data Masup
Acak
(Random
Access
File)
Pada berkas data
(filO
masup arak, akses tefiadap record data dapat dilalekansecara acak (rardorB), tanpa harus membaca record satu per satu mulai dari posisi awal record. Keuntungannya adalah kecepatar! proses lebih
finggi
dibandingkan berkas data masup urut.Berikut adalah prosedur penyimpanan data ke dalam berkas data masup acak :
1.
Bukafile
2.
Siapkan buffer data3.
Untuk data numeric harus dikonversi ke alfabetilJstring4.
Sinpan daia ke dalam buffer5.
Lakukan penulisan ke dalamfile
Menbuka File
Perintah yang diperlukar adalah : OPEN Bentuk Unrlrm :
OPEN
'R",
#nomfile, narnafilg reclen atauOPEN namafite FOR P.ANDOM ACCESS akses AS lkromfile LEN = recten
dimana,
nonfile
:
bilangan bulat antara 1 sampai 255. Digunakarmtuk
nenyalakannomor file yang akan dibuka
namalile :
ekspresi string untuk nenunjukkan namaflle
reclen
:
bilangan bulal antaraI
sa{pai 32.6?6. Digunakan untut menyatakan'
junlah blte
setiap record. p€rameterini
bersifalpilihaq
jika
tidakdip6kai,
rnakajur
ah blte per record dianggap 512 brte.akses
:
Parameter yang menyatakan bentuk opeaasinya, berupa :READ
WRI"IE
:
menyebabkan file untut pembacaan saja:
menyebabkan filemtuk
paDlisan sajaREADV'RITE :
menyebabksn
file
rmluk
pembacaan
dan petuiisan.Parameter
ini
be$ifat pilihan. Jika tidak ditulis,rEka
diasumsikanfile nndom digunakan rmtuk membaca dan
rFnulis
Conloh-conloh:
OPEN
sR". #1,
"B:
DataNama,,Algonna dan PenrcFanan I B
OPEN
'R",
#2,
"DataMhs",
250
OPEN
"Data-Mhs"
EOR RANDOMAS
+2 IEN
250
OPEN
"B:DataMhs"
FOR RANDOM ACCESS READAS
#2 IEN
50 PenyediaanBulfer Data
Dalarn file random, perlu disiapkan suafu area penarlpungan serredara untuk data
yang akan dialses dari Ele lersebul, yang disebd dengan -RANDOM BUFFER'. Untuk membenhrkn]ia diguakan statement FIELD.
Bentuk
Ufium:
FIELD #nomfilg lebar6eld AS varstdng [, lebarfieldl AS va$tring 2, . . .
]
diman4
nomfile
:
bilangan sesuai dengan nomorflle
yang dibuka dengan statement OPENlebarfleld,
lebarfieldl:
bilanganyang
m€nyatakanpanjang variabel (data)
yang
akan disimpanvarsting,
varstdngl
:
nalna variabel string yang akan digunatan untuk data yang akan diakses.Berikut
ini
penjelasan me[genai lebarfield
yang dibutuhkan rmtuk setiap tipe dataTabel
I
-
Ketertu@ Leba! FieldTiDe data Lebar tr'ield
Alpanumerik 1 b\4e unhrk
I
karakerNumerik Inteser 2
blte
Numerik Sinsle Precission 4
bfie
Lorg
Integer 4 bryteNumerik Double Precission 8
b\te
Catatan'
Data yang disimpatr ke dalam file harus dalam benhtk stdng. Contoh :
Data Malusiswa akan disimpan ke dalarn file
rardor4
dengan item-item sebagai berikut :Alstitoa dan Pe'wosa arl lB
Item
fipe
Jumlabkarakrr
NPM
Alpanomerik
8 karalderNAMA
Alpanumerik
20 kaekterAI,AMAT
Alpanumerik
25 karakterNII-AI
Numerik
I
digitTotal
jun
ahbite
yaDg diperlukan berdasarkan tabelI
di
atas ada.lah 55bye
meliputi, 8 byte untuk
NPM
20 blte mtukNAMA
25 b/te tmtukALAMAI
dan 2 b4e untukNILAL
Pen) ediaan buffer yang diperlukan adalah :
oPEN
"R-, Fl,
'DataMHS-,
55FIEID
fi1, 8
AS NPM$, 2O AS
NA.I4AS,25
AS
AI,AI.,IAT$,2
ASNITAlI
.t
Konversi
I)ata
Berikut ini adalah tabel firnlsi konve*i data^
Konversi Numerik ke
Katuher
.
Konversi KaruA.ter ke NumettkPenyimpanan
Data keBuffer
Ada dua beltuk perintah untuk neletaktan data ke dalam buffer :
LSET
: rFletakkar dala ke dalam buIler dengan posisi mempat keliri
RSET
: rFletakkan data ke dalam buffer dengan posisi merapat ke kanan Bentuk UII{rm :LSET varstring = ekspstring
Nama Fungsi Bentuk Umum
MKI$
Konversi nudedk inteqer MKl$(eksDresi inteser)MKLS Konversi oumerik Lone inteser MKl$(eLsoresi lons inteeer)
MKS$ KonveNi nuhedk shqle Drecission MKs$(eksoresi sinsle Drec.)
MKD$ Konve$i nument Double Drecrssjon
MKl$(ekoresi
double orec.)Nama Fungsi Bentuk Umum
CVI
KonveNi karakter 2 b\,te ke inleBerCVI(2-hte
strins)cvL
Konversi karal$er 4 t['te ke lons inteser C\al-(4-b!4e strine)cvs
Konveni karakter 4 tn4e ke sinale orecissior CVS(4-hte strinp)cvD
Konversi Larakler 8 br,le ke double Drecission CVD(8-b!re strins)Alsoitna clan Pewoera an
lB
RSET
varshiq
= ekspstrhg diman4va$tdng
:
nama variabel yaog telah didefinisikan dengan FIELDekspstring
: vadabelstri.g
atau elcspresi string yang akan diterpatkan dalarnbuffer Contoh : OPEN
'R", #1,
"DataMHS",
55FIELD
+1, I
AS NPM$,
10
AS
Nana$I,SET
Nama$ RSET NPM$=
*5523"
Hasil dalambufer:
J 5 2 3
Penulisan Data
keDalam
File
Untuk menuliskan data ke dalam file digunakan stateneft
PUl.
Bentuk Urnum :
PUT #nonFile [, noinRec] dirnan4
nornFile
:
nomor file yang akan digunakanmtuk
menyimpan datanoriRec,
:
bilangan bulat antaraI
sanpai 2.1474a3.&1
yang menyatakan'
noftor
record tempal dala disimpa!Contoh :
Menyfurpan dala pada posisi record ke-2
PUT
#1,
2Contoh
Aplikasi
1Pembuatm
file
randomuntuk
menyimpan data mengenai na1ru, alamat, dan nomor telepon. Nama filed yang akar dibuda adalah TELEPON_DTA. Isi recordfile adalah :
Alsorinna
d8
Pewosrannn 1PnoRec
=
1 CLS*NAMA
A.IA},IAT
TET,EPON" PRLN t_---WHI],E
NOry EOF(1)
GEr
#r,
noRec,
DataMhs
I 6
Aafy
:
Qtli
x
fut)
PRINT DataMhs,Nama,
DataMhs'Alamat,
Datal4hs'lelepon
noRec=noRec+1
IiENDcr,osE
ENDAlp@i|tt4 den Penroerantn
lB
Contoh
Aplikasi
3Membuat prograrn TELEPON.DTA
untuk
menc€tak rccord-record yang tersimpan dalamfile
rProgram
RANDOM3 . BA5Contoh
pembacaan
data daii fife
random
rKeterangan
,''\
OPEN"R", #1,
"c:
\DATA\TEIEPON.
DTA',
5?
Bfh't
F-LE-LD#1,
20
AS Nama$, 30 AS
A-Lanat$,
?
AS
Telepon$
noRec
=
1crs
"NAMA
ALAMAT
TEr_EpoN,,
H/,r^ot4
PRrNr
---
-")
WHI],E
NOT EOF ( 1)FlTolt:
ffii"r.o""*,
Brli
=
dulCarli
g)
1
r\aTyt'
Bili
x
az'
PRTNT
Namds,
Alamats,
TeIp6
dnt/,q^
noRec-noRectl
i^]END
CLOSE END
Contoh
Aplikasi
4Membuat plogram
ulhrk
metrcetak record-recordyang
tersimpan dalamfile
TELEPON.DTA
Pembacaanrecord
menggunakanvariabel record
yang didefinisikan oleh staternent TYPE . . ENDT\?E.
:
RANDOM . BAS:
Contoh
penicacaan
data dari file
random
'P:rografir
rKeterangan
OPEN
'R", #1,
'C:
\DA?A\TELEPON-DTA',
57TYPE
Datal
Nana
AS
STRfNG
*
20Alamat
AS
STRING
*
30TeleDon
AS
LoNG .'-t. Ag jnltQ|f
END
TYPF
L'DIM DataMhs
as
Datal
netUs Oato uasup
Alpoituta datl Pemosranab 1B
IOCATE
6, 19:
LINE
INPUT DataMhs.Alamat
LOCATE
7, 19:
LINE
INPUT DataMhs.Tefepon
PUT
#1r
NoRec,
DataMhs
NoRec
:
NoRec
+
1IiEND CIOSE END
Pembacaan
Data
Unh*
membacadala yang
tersinpar
di
dalam Ele
randonl
maka gmakan staiement GET.Bentuk Urnrm :
GET rhomFile [, nomRec]
ataujika record didefinisikan deqan staternerf TYPE .. END TYPE
GET #nornFile [,
no
Rec], varRecordContoh-1 i
Mengambil data pada posisi record ke-3
OPEN
"Kartu"
FOR RANDOMAS
#1
l,EN
:
22FIEI,D
#1,
20
AS
Nana$,
2
AS U$ia
GET
#1,
3 END Contoh-2 :TYPE
JenisData
NamaAS
STRING
*
20Us,ia
AS
INTEGER END TYPEDIM RecData AS
,fenisData
OPEN
"Kartu"
I'OR
RANDOMAS
#1
I,EN
:
22GET
#1,
3,
RecData
END
AleditM .lan Pemsanan 1B
Pemyataan yang tertulis di dalam blok starernent TYPE .. END TYPE rne.upakan definisi untuk tiap-tiap rariabel dan hanya menentukanjenis dan ukuran variabel.
Untuk nEmbentuk variabel record yang aLan digrmakan unluk rne ampung data
diguukan stalement DIM.
DIM
ContohRec AS Je{isDaJaDengan merggunakan std€ment
TYPE..
END
TYPE,
maka beotuk urrumstatement PIIT adalah :
PUT
#norfile
[, nortRec], varReiorddiIllan4
varRecord
: variab€l record yang telah didefinisikan dengan statementDIM
Contoh
Aplikasi
2Pembuata[ progrsn yang identik dengan Contoh Aplikasi 1 dengan menggunakan statement TYPE .. END TYPE
'Progr
'Keter
am
:
RANDOM2 -BASangan
:
Contoh
penulisan
data ke file
ran.tom
OPEN
.R", #1,
'.C I \DATA\TEIEPON.DTA",
5?TYPE
Datal
Nama
AS
STRING
*
20Alamat
AS
STRING
*
30Tplepon
AS
T,ONGEND TYPE
DIM
Datali*
AS
Datal
Mhs
Nm$=""
NoRec
=
1WHTT,E Nm$
<>
"'
C],S
T.OCATE
5, 10:
"Nana
:
,. T,OCATE6, 10:
"Alamat :
s I,OCATE7, 10:
"Tefepon :
.. I,OCATE5, 19:
LINE
INPUT
Nn$IF
Nms
='"
THEN ENDDataMhs.Nama
=
Nm$Alsoitnu dan PemoPraw 1B
Natrta
AlpanumerikAlaulal
AlpqnunerikTelepon
Item
Jenis
JuEiah karakfer 20 karakter 30 karakter7@k
RANDOM1 . BAS
Contoh
penulisaE
data
ke
file
random
-f+Ererik
AL7"^
rProgran
rKeterangan
OPEN
*R", #1,
'C:
\DATA\TE],EPON.DTA",
57rrero ft,
20
AS
Nam;$,
30
AS
Alamals,
I
AS
TeLepons
Ma$=".*
NoRec:1
WHII,E
Nn$
<>
*"
cLSIOCATE
5, 10:
PRfNT
"Nana
:
"
I,OCATE6, 10:
PRTNT"Al-amat :
"
IOCATE
7, 10:
"Telepon :
"
TOCATE
5,
19:.T,TNE INPUT
Nm$IF
Nms
= ""
THEN ENDLOCATE
6, 19: IINE
INPUT
Aln$
IOCATE
7, 19:
T,INE INPUT
T1p$T,SE?
Nama$
=
Nln$l,SE"
Alamat$
:
AIms
LSET
Telepon$
=
Tfp$
PUT
#1,
NoRecNoRec:NoRec+l
WEND CI,OSE ENDPenggunaan
Statenent TYPE
..END
TYPE
Stafement TYPE
..
END TYPE digunakanunnrl
mendefinisitan sualu vaiiabel record. Dengan menggunakan variabel record, daJa dapat disimpan ke dalamfle
random tanpa memerlukan proses konve$i data.Unnrk membentuk variabel record dari contoh aplikasi di atas, maka pendefinisian yang harus dilahrkan adalali :
TYPE
JenisData
Nama