pROGRAM-PROGRAM TERAPAN MENGGUNAKAN QuickBASIC
REEL ae
Bab IX
BERKAS DATA
nda telah mempelajari statemen READ yang digunakan untuk mem-
baca nilai data yang dinyatakan dalam statemen DATA. Jika anda
menyimpan program yang berisi statemen READ dan DATA, anda menyim-
nnilai-nilai data sebagai bagian program. Hal yang demikian tidak
selalu diinginkan karena data tersebut hanya bisa digunakan oleh pro-
gram yang bersangkutan.
Dalam beberapa program terapan, data yang tersimpan sebagai
program saja tidak cukup luwes untuk menangani permasalahan; dengan
demikian pertu dicari cara pemecahannya, khususnya tentang bagaimana
menyimpan data tetapi yang bukan merupakan bagian dari sebuah pro-
gram. Untuk itu diperlukan apa yang disebut dengan berkas data. Dalam
berkas data anda dapat menyimpan data dengan cara yang berbeda de-
ngan yang sering anda laksanakan jika anda menyimpannya bersama-
sama dengan statemen DATA. Lebih jauh, data yang tersimpan dalam
berkas data bisa diguniakan oleh beberapa program. Selain itu, data yang
tersimpan dalam berkas data akan lebih tersembunyi dibanding jika di-
simpan sebagai bagian program, sehingga mengurangi kemungkinan
penggunaan data secara tidak benar.
Secara umum, sesuai dengan cara penanganan berkas data, dike-
nal 2 tipe berkas data, yaitu berkas masup urut (sequential access file), dan
| berkas masup acak (random access file). Sesuai dengan namanya, pada
| berkas masup urut, rekaman harus dibaca atau ditulis secara berurutan
mulai dari rekaman ke 1. Tetapi pada berkas masup acak, pembacaan atau
_ penulisan rekaman tidak harus dimulai dari rekaman nomor 1. Bab ini
_ akan membicarakan kedua jenis berkas data seperti dijelaskan di atas.
‘ Dalam subbab 5.2. telah dijelaskan pengertian rekaman (record)
dan medan (field). Dalam bab ini kita akan banyak menggunakan rekaman
_ dan medan, serta berkas data, yakni sekumpulan rekaman yang tersimpan
_ dalam piranti penyimpan sekunder.p URUT
mya merupakan berks te
‘odifikasi berkas ini m
iki, misalnya Wordstae
s DATA MASU
data masup urut sebena!
Se bisa melihat atau men
i id
ASCII, sehingB? 2am olah Kata yang anda m
m berkas data masup urut tersimpan z
ing diakhiri dengan ‘arriage-return dan line-eed (CR.
m subbab 5.2. setiap rekaman terdiri dari
dalam setiap rekaman,
i urutan yang sama
alam berkas masuP urut bisa berbeda
mmedan bisa bervariasi. Tetapi teap_
9.1. BERKA:
yp rekaman
kas masup urut dengan tiga
punyai dua buah medan.
Rekaman 1
Boe pECoONGOoUOGweBOREGCE
(a ee ee re oo —_—
medan 1 medan 2
Rekaman 2
medan 2
+|Llolvje|2]s|nje Peer rs i
ni medan 2 aaa
medan 1
Rekaman 34 Berkas Data Masup Urut 167
Dalam berkas masup urut tipe data yang akan disimpan dalam
medan menentukan posisi awal dan akhir dari medan yang bersangkutan.
ika kita membaca isi medan ke dalam perubah bertipe, maka karakter-
a 5
Jk (ter berikut bisa merupakan tanda akhir medan:
_ Tanda petik ganda ("), jika untai diawali dengan tanda petik
ganda.
- Koma (), jika untai tidak diawali dengan tanda petik ganda.
* CR-LF jika medan tersebut meripaka medan trakhir dalam
suatu rekaman.
sebaliknya, jika kita membaca isi medan ke dalam perubah ber-
tipe numeris, maka karakter-karakter berikut bisa merupakan tanda akhir
medan: koma, satu atau lebih spasi, CR-LF.
ga... Membuka Berkas
Sebelum data yang disimpan dalam berkas data bisa dibaca, atau
kita bisa menyimpan data ke dalam berkas data, terlebih dahulu berkas
data tersebut harus dibuka. Pada saat anda membuka berkas data masup
urut, anda harus menentukan apakah berkas tersebut sebagai berkas ma-
sukan, yaitu berkas yang isinya akan dibaca, atau sebagai berkas keluar-
an, yaitu tempat untuk merekam data anda.
Bentuk umum statemen untuk membuka berkas data masup urut
adalah:
OPEN namaberkas FOR mode AS [#)nomor
dengan namaberkas + nama berkas yang akan dibuka.
nomor : bilangan integer yang menyatakan nomor berkas.
Dalam bentuk umum di atas, parameter mode harus dipilih salah
satu dari INPUT, OUTPUT, atau APPEND. Berkas namaberkas yang akan
dibuka bisa berupa sembarang ungkapan, yang terdiri dari kombinasi
huruf alphabet, bilangan 0 sampai 9, dan karakter-karakter khusus seperti
(ACC tee ee =. Tetapi perlu anda ingat bahwa
nama berkas selalu terdiri dari 8 karakter (dan bisa diikuti titik dan 3
pengenal berkas, misalnya DAT). Contoh berikut menunjukkan statemen-
statemen untuk membuka berkas dengan benar:
OPEN «,: \BAB9\PROGRAM\PROG9~1- DAT” FOR INPUT AS #1
yang berarti bahwa kita akan membuka berkas PROG9-1.DAT yang ter-
simpan dalam subdirektori BAB9\PROGRAM pada pemutar cakram Asebagai berkas masukan, dan berkas tersebut diberi nomor 1:
misalnya: ;
namaBerkas§ = “NILAI.MHS”
OPEN namaBerkas$ FOR OUTPUT AS #2
yang berarti bahwa kita akan membuka berkas NILAILMHS pag,
cakram yang aktif (default) sebagai berkas keluaran, dan berkag he ™Utay
diberi nomor 2. S lerseyt
Perbedaan antara pilihan INPUT, OUTPUT, dan app,
dijelaskan sebagai berikut: ND bis,
CLOSE #1 ’
END SUB
Program 9.2. Membaca isi rekaman dengan menggunakan state
men LINE INPUTE.
Bandingkan statemen pada baris 17 dari program di atas dengan
statemen pada baris 34 dari Program 9.1. Keduanya digunakan untuk
membaca isi rekaman.
Statemen LINE INPUT# sangat berguna jika kita ingin mengkopi
isi suatu berkas ke dalam berkas lain. Program 9.3. menyajikan contoh
program untuk mengkopi isi berkas, dari berkas CONTOH1.DAT ke
dalam berkas CONTOH2.DAT.
aecaenasssnnseaensenenouaaanenennnenannceeeecsess
** Program 9.3. (PROG9-3.BAS) ‘
** Contoh pemakaian statemen LINE INPUT#
‘* untuk mengkopi isi berkas ke berkas yang lai
Caaneenaanceneatenueeenussananaenananenaaneee®
** Berkas yang akan dikopi *
OPEN “A: \BAB9\PROGRAM\CONTOH1.DAT™ FOR pau
‘* Berkas tujuan ¢
OPEN “A: \BAB9\PROGRAM\CONTOH2.DAT” FOR peanA Berkas Data Masup Acak i
KOPI SEDANG
my
a nad EOF (1)
6 ES, L
: po UNTIL Paca isi rekaman yang akan dikopi
i) [awe INPUT #1, t0iRekanans
19). .
wo Sy wenuliskan ke dalam berkas tujuan + i
WRITE #2¢ isiRekaman$
P
PRINT
END
{
LOOP esELESAL.. +17 |
|
9.3. Mengkopi isi berkas.
m di atas, statemen pada baris 9 digunakan untul.
Dalam oie akan dikopi, dan statemen pada SATE AITALL
ndan membuka berkas hasil kopian. Proses mengkopi tegac
semban’ ye sampai dengan 24. Baris 20 akan membaca isi berkas yany; \
jade opi, dan dituliskan ke dalam berkas tujuan dengan menggunakar
fl baris 23.
jee ae peda statemen di atas, untuk membaca isi rekaman juge
fungsi INPUTS. Dalam hal ini akan dibaca sejumlah ka-
. kan
seo suatu berkas. Sebagai contoh, statemen:
a
parisl$ = INPUTS(50, #1)
yan membacd isi berkas dengan nomor 1 sebanyak 50 karakter. Dengan
a
fara yang sama, statemen
| pRINT INPUTS$(75, #2) tk
akan membaca isi berkas yang diberi nomor 2 sebanyak 75 karakter, dan
kemudian mencetak apa yang diperoleh dari hasil pembacaan tersebut.
92, BERKAS DATA MASUP ACAK |
Rekaman dalam berkas data masup acak akan disimpan dengan
cara yang berbeda dibanding dengan rekaman dalam berkas masup urut
Semua rekaman dalam berkas masup acak mempunyai panjang yang, \ :
letap, demikian juga dengan panjang setiap medannya. Berdasar panjang 4
mkaman inj akan bisa ditentukan posisi awal dan akhir suatu rekaman. |
lbih lanjut, dalam berkas masup acak tidak terdapat tanda baca koma
sbagai pemisah medan, dan tidak terdapat karakter CR-LF sebagai akhir ;