Sesi/Perkuliahan ke: 11
Tujuan Instruksional Khusus :
1. Memahami Konsep File Random
2. Mengetahui pembuatan file Random dengan bahasa Basic 3. Mengetahui Operasi file Random dengan bahasa Basic
Pokok Bahasan : BERKAS DATA MASUP ACAK (RANDOM ACCESS FILE)
Deskripsi singkat : Dalam pertemuan ini akan mempelajari tentang konsep file random, pembuatan file random dan operasi file random
Reference :
1. Insap Santoso, Ir.,MSc, Program-program Terapan Menggunakan Quick Basic, Andi Yogyakarta.
2. Jogiyanto H.M, Teori dan Aplikasi Program Komputer Bahasa Basic, Andi Yogyakarta.
3. Rijanto Tosin, Quick Basic, Dinastindo.
Berkas Data Masup Acak (Random Access File)
Pada berkas data (file) masup acak, akses terhadap record data dapat dilakukan secara acak (random), tanpa harus membaca record satu per satu mulai dari posisi awal record. Keuntungannya adalah kecepatan proses lebih tinggi dibandingkan berkas data masup urut.
Berikut adalah prosedur penyimpanan data ke dalam berkas data masup acak : 1. Buka file
2. Siapkan buffer data
3. Untuk data numeric harus dikonversi ke alfabetik/string 4. Simpan data ke dalam buffer
5. Lakukan penulisan ke dalam file
Membuka File
Perintah yang diperlukan adalah : OPEN
Bentuk Umum :
atau
Dimana:
nomfile : bilangan bulat antara 1 sampai 255. Digunakan untuk menyatakan nomor file yang akan dibuka
namafile : ekspresi string untuk menunjukkan nama file OPEN “R”, #nomfile, namafile, reclen
OPEN namafile FOR RANDOM ACCESS akses AS #nomfile LEN = reclen
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 per record dianggap 512 byte.
akses : Parameter yang menyatakan bentuk operasinya, berupa : READ : menyebabkan file untuk pembacaan saja.
WRITE : menyebabkan file untuk penulisan saja.
READWRITE : menyebabkan file untuk pembacaan dan penulisan.
Parameter ini bersifat pilihan. Jika tidak ditulis, maka diasumsikan file random digunakan untuk membaca dan menulis.
Contoh-contoh :
OPEN “R”, #1, “B:DataNama”
OPEN “R”, #2, “DataMhs”, 250
OPEN “DataMhs” FOR RANDOM AS #2 LEN 250
OPEN “B:DataMhs” FOR RANDOM ACCESS READ AS #2 LEN 50
Penyediaan Buffer Data
Dalam file random, perlu disiapkan suatu area penampungan sementara untuk data yang akan diakses dari file tersebut, yang disebut dengan “RANDOM BUFFER”.
Untuk membentuknya digunakan statement FIELD.
Bentuk Umum :
Dimana:
nomfile : bilangan sesuai dengan nomor file yang dibuka dengan statement OPEN
lebarfield,
lebarfield1 : bilangan yang menyatakan panjang variabel (data) yang akan disimpan
FIELD #nomfile, lebarfield AS varstring [, lebarfield1 AS varstring 2, …]
varstring,
varstring1 : nama variabel string yang akan digunakan untuk data yang akan diakses.
Berikut ini penjelasan mengenai lebar field yang dibutuhkan untuk setiap tipe data.
Tabel 1 – Ketentuan 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
Catatan:
Data yang disimpan ke dalam file harus dalam bentuk string.
Contoh :
Data Mahasiswa akan disimpan ke dalam file random, dengan item-item 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 di atas 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”, 55
FIELD #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.)
Konversi 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 dua bentuk perintah untuk meletakkan data ke dalam buffer : LSET : meletakkan data ke dalam buffer dengan posisi merapat ke kiri RSET : meletakkan data ke dalam buffer dengan posisi merapat ke kanan
Bentuk Umum :
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
Penulisan Data ke Dalam File
Untuk menuliskan data ke dalam file digunakan statement PUT.
Bentuk Umum :
dimana,
LSET varstring = ekspstring
RSET varstring = ekspstring
PUT #nomFile [, nomRec]
nomFile : nomor file yang akan digunakan untuk menyimpan data
nomRec : bilangan bulat antara 1 sampai 2.147.483.647 yang menyatakan nomor record tempat data disimpan
Contoh :
Menyimpan data pada posisi record ke-2
PUT #1, 2
Contoh Aplikasi 1
Pembuatan file random untuk menyimpan data mengenai nama, alamat, dan nomor telepon. Nama filed yang akan dibuata adalah TELEPON.DTA. Isi record file adalah :
Item Jenis Jumlah karakter
Nama Alpanumerik 20 karakter Alamat Alpanumerik 30 karakter Telepon Numerik 7 digit
‘====================================================
‘Program : RANDOM1.BAS
‘Keterangan : Contoh penulisan data ke file random
‘====================================================
‘
OPEN “R”, #1, “C:\DATA\TELEPON.DTA”, 57
FIELD #1, 20 AS Nama$, 30 AS Alamat$, 7 AS Telepon$
Nm$ = “ “ NoRec = 1
WHILE Nm$ <> ““
CLS
LOCATE 5, 10: PRINT “Nama : “ LOCATE 6, 10: PRINT “Alamat : “ LOCATE 7, 10: PRINT “Telepon : “ LOCATE 5, 19: LINE INPUT Nm$
IF Nms = “” THEN END
LOCATE 6, 19: LINE INPUT Alm$
LOCATE 7, 19: LINE INPUT Tlp$
LSET Nama$ = Nm$
LSET Alamat$ = Alm$
LSET Telepon$ = Tlp$
PUT #1, NoRec NoRec = NoRec + 1 WEND
CLOSE END
Penggunaan Statement TYPE .. END TYPE
Statement TYPE .. END TYPE digunakan untuk mendefinisikan suatu variabel record. Dengan menggunakan variabel record, data dapat disimpan ke dalam file random tanpa memerlukan proses konversi data.
Untuk membentuk variabel record dari contoh aplikasi di atas, maka pendefinisian yang harus dilakukan adalah :
TYPE JenisData
Nama AS STRING * 20 Alamat AS STRING * 30 Telepon AS LONG
END TYPE
Pernyataan yang tertulis di dalam blok statement TYPE .. END TYPE merupakan definisi untuk tiap-tiap variabel dan hanya menentukan jenis dan ukuran variabel.
Untuk membentuk variabel record yang akan digunakan untuk menampung data digunakan statement DIM.
DIM ContohRec AS JenisData
Dengan menggunakan statement TYPE .. END TYPE, maka bentuk umum statement PUT adalah :
Dimana,
varRecord : variabel record yang telah didefinisikan dengan statement DIM
Contoh Aplikasi 2
Pembuatan program yang identik dengan Contoh Aplikasi 1 dengan menggunakan statement TYPE .. END TYPE
‘====================================================
‘Program : RANDOM2.BAS
‘Keterangan : Contoh penulisan data ke file random
‘====================================================
‘
OPEN “R”, #1, “C:\DATA\TELEPON.DTA”, 57
TYPE Data1
Nama AS STRING * 20 Alamat AS STRING * 30 Telepon AS LONG
END TYPE
PUT #nomFile [, nomRec], varRecord
DIM DataNama AS Data1
Nm$ = “ “ NoRec = 1
WHILE Nm$ <> ““
CLS
LOCATE 5, 10: PRINT “Nama : “ LOCATE 6, 10: PRINT “Alamat : “ LOCATE 7, 10: PRINT “Telepon : “ LOCATE 5, 19: LINE INPUT Nm$
IF Nms = “” THEN END DataMhs.Nama = Nm$
LOCATE 6, 19: LINE INPUT DataMhs.Alamat LOCATE 7, 19: LINE INPUT DataMhs.Telepon PUT #1, NoRec, DataMhs
NoRec = NoRec + 1 WEND
CLOSE END
Pembacaan Data
Untuk membaca data yang tersimpan di dalam file random, maka gunakan statement GET.
Bentuk Umum :
atau jika record didefinisikan dengan statement TYPE .. END TYPE GET #nomFile [, nomRec]
GET #nomFile [, nomRec], varRecord
Contoh-1 :
Mengambil data pada posisi record ke-3
OPEN “Kartu” FOR RANDOM AS #1 LEN = 22 FIELD #1, 20 AS Nama$, 2 AS Usia
GET #1, 3 END
Contoh-2 :
TYPE JenisData
Nama AS STRING * 20 Usia AS INTEGER END TYPE
DIM RecData AS JenisData
OPEN “Kartu” FOR RANDOM AS #1 LEN = 22 GET #1, 3, RecData
END
Contoh Aplikasi 3
Membuat program untuk mencetak record-record yang tersimpan dalam file TELEPON.DTA
‘======================================================
‘Program : RANDOM3.BAS
‘Keterangan : Contoh pembacaan data dari file random
‘======================================================
‘
OPEN “R”, #1, “C:\DATA\TELEPON.DTA”, 57
FIELD #1, 20 AS Nama$, 30 AS Alamat$, 7 AS Telepon$
noRec = 1 CLS
PRINT “NAMA ALAMAT TELEPON”
PRINT “---”
WHILE NOT EOF(1) GET #1, noRec
Telp& = CVL(Telepon$)
PRINT Nama$, Alamat$, Telp&
noRec = noRec + 1 WEND
CLOSE END
Contoh Aplikasi 4
Membuat program untuk mencetak record-record yang tersimpan dalam file TELEPON.DTA. Pembacaan record menggunakan variabel record yang didefinisikan oleh statement TYPE .. END TYPE.
‘======================================================
‘Program : RANDOM4.BAS
‘Keterangan : Contoh pembacaan data dari file random
‘======================================================
‘
OPEN “R”, #1, “C:\DATA\TELEPON.DTA”, 57 TYPE Data1
Nama AS STRING * 20 Alamat AS STRING * 30 Telepon AS LONG
END TYPE
DIM DataMhs as Data1
noRec = 1 CLS
PRINT “NAMA ALAMAT TELEPON”
PRINT “---”
WHILE NOT EOF(1)
GET #1, noRec, DataMhs
PRINT DataMhs.Nama, DataMhs.Alamat, DataMhs.Telepon noRec = noRec + 1
WEND CLOSE END
Sesi/Perkuliahan ke: 12
Tujuan Instruksional Khusus :
4. Memahami Konsep File Sequential
5. Mengetahui pembuatan file Sequential dengan bahasa Basic 6. Mengetahui Operasi file Sequential dengan bahasa Basic
Pokok Bahasan : BERKAS SEQUENTIAL (FILE SEQUENTIAL)
Deskripsi singkat : Dalam pertemuan ini akan mempelajari tentang konsep file sequential, pembuatan file sequential dan operasi file sequential
Reference :
4. Insap Santoso, Ir.,MSc, Program-program Terapan Menggunakan Quick Basic, Andi Yogyakarta.
5. Jogiyanto H.M, Teori dan Aplikasi Program Komputer Bahasa Basic, Andi Yogyakarta.
6. Rijanto Tosin, Quick Basic, Dinastindo.
BERKAS SEQUENTIAL
Pengertian File dalam BASIC
File data (data file) adalah rekaman dari data. Secara fisik, file ada pada alat simpanan luar (external memory) seperti disket , hardisk, magnetic disk.
File program BASIC (BASIC program file) adalah file yang berisi program yang ditulis dengan bahasa BASIC. File ini berakhiran .BAS
File yang akan dipelajari dalam materi File ini adalah file data, yaitu file yang berisi dengan data, bukan berisi program.
Pada bagian sebelumnya, untuk menyimpan data dipergunakan statemen READ-DATA. Untuk data dalam jumlah yang besar, penyimpanan data dengan menggunakan statemen READ-DATA tidak efisien. Oleh karena itu dianjurkan untuk menggunakan file data.
Keuntungan yang didapat dengan cara menyimpan data ke dalam suatu file jika dibandingkan dengan penyimpanan data menggunakan READ-DATA adalah sebagai berikut :
1. Data yang ada pada statemen DATA pada file program semuanya akan dimasukkan ke memori internal komputer (RAM) dan bila volume data ini besar, memori internal komputer dapat tidak cukup untuk menampungnya.
Dengan menggunakan file data, semua data tersimpan di memori eksternal dan hanya data yang dibutuhkan saja yang akan diambil dan diletakkan di memori internal komputer.
2. Dengan menggunakan statemen READ-DATA, maka program menjadi lebih panjang, karena semua data ditulis didalam program.
3. Data yang ada di statemen READ-DATA hanya dapat digunakan oleh program yang mengandung statemen ini saja. Program lain yang tidak mengandung data tersebut tidak dapat menggunakannya, kecuali datanya diketikkan atau digabungkan lagi didalam program yang akan menggunakannya. Akibatnya suatu aplikasi tidak dapat menggunakan data milik aplikasi yang lain.
4. Modifikasi dari data yang ada di statemen READ-DATA lebih sulit dilakukan oleh pemakai program. Perubahan, penambahan, atau pengurangan data di statemen READ-DATA harus dilakukan dengan membuka dan merubah program yang mengandung data tersebut, sehingga
pemakai program harus mengerti programnya. Dengan menggunakan file data, modifikasi data dapat dilakukan dengan lebih mudah oleh si pemakai program, karena tidak terlibat langsung dengan perubahan programnya.
File data pada dasarnya terdiri atas record-record yang memuat informasi.
Dibawah ini adalah contoh data yang akan direkam ke dalam file.
NAMA UMUR ALAMAT
Zeini 27 Jakarta
Rudi 30 Bandung
Supriyatno 26 Jakarta
Sari 24 Jakarta
Jhonny 19 Jakarta
Abdi 25 Jakarta
Data diatas terdiri atas 3 field yaitu field Nama, Umur dan Alamat. Data tersebut memuat 6 buah record. Kumpulan dari record tersebut tersimpan dalah sebuah file.
Untuk membedakan antara satu file dengan file lainnya diperlukan sebuah nama untuk masing-masing file. Aturan yang berlaku untuk nama file data sama halnya dengan yang berlaku untuk nama file program.
Di dalam BASIC, file data dapat dibedakan dalam 2 tipe tergantung dari format atau organisasi dari data tersebut yang disimpan didalam file, yaitu file data sequential (akses urut) dan file data random (akses acak)
File Data Sequential
File data akses sequential (urut) sebenarnya merupakan berkas teks ASCII.
Setiap record dalam file data akses urut tersimpan sebagai sebuah baris teks, yang diakhiri dengan carriage-retur n dan line-feed (CR-LF).
Panjang setiap record dalam file data akses urut bisa berbeda satu sama lain.
Gambar dibawah ini menyajikan contoh sebuah file data akses urut dengan 3 record yang setiap recordnya terdiri atas 3 buah field Nama, Umur dan Alamat.
Record 1
“ Z e i n i “ , 23 “ J a k a r t a “
Field 1 Field 2 Field 3 Record 2
“ R u d i “ , 30 “ B a n d U n g “
Field 1 Field 2 Field 3 Record 3
“ J h o n n y “ , 23 “ J a k a r t a “
Field 1 Field 2 Field 3
Gambar 12.1. Gambaran File Data Akses Urut dengan 3 Record
Dalam file data akses urut, tipe data yang akan disimpan dalam field menentukan posisi awal dan akhir dari field yang bersangkutan.
Membuat File Baru.
Membuat file dapat diibaratkan dengan menggunakan sebuah buku. Buku harus dibuka terlebih dahulu sebelum digunakan, kemudian baru ditulisi dan setelah selesai ditulisi, maka buku harus ditutup. Demikian juga dengan file data,
sebelum diisi dengan data, maka file harus dibuka terlebihdahulu dan setelah diisi, file harus ditutup.
Membuka File
Sebelum data yang disimpan dalam file data bisa dibaca, atau untuk menyimpan data ke dalam file data, terlebih dahulu file data tersebut harus dibuka. Pada saat membuka file data akses urut, tentukan terlebih dahulu apakah file tersebut sebagai file input, yaitu file yang isinya akan dibaca, atau sebagai file output, yaitu tempat untuk merekam data.
Bentuk umum statemen untuk membuka file data akses urut adalah sebagai berikut :
OPEN “mode”,[#]nomor file,namafile
Keterangan :
mode : adalah mode operasi dari file yang akan dibuka. Pada file data akses urut, mode file dibedakan menjadi 2, yaitu :
O : menunjukkan output mode, yaitu file akan digunakan untuk diisi dengan data (output akan direkamkan ke file).
I : menunjukkan input mode, yaitu file akan digunakan untuk diambil datanya (input akan diambil dari file).
Nomor file : merupakan bilangan bulat antara 1 sampai dengan 255. Digunakan untuk menyatakan nomor file yang akan dibuka.
Nama file : merupakan nama dari file.
Alternatif lain untuk statemen OPEN adalah :
OPEN nama file FOR mode AS [#]nomor file
Keterangan :
mode : terdiri atas 3 macam, yaitu
OUTPUT sama dengan mode “O”
menunjukkan bahwa file akan dibuka sebagai file output, yaitu file yang akan diisi. Perlu berhati-hati karena jika file yang akan dibuka belum ada, maka file akan dibuat, dan siap diisi data. Tetapi jika nama file sudah ada dalam media eksternal yang dimaksud, maka file tersebut akan dikosongkan terlebih dahulu, yakni dengan menghapus semua isinya, kemudian data yang baru akan dituliskan ke dalam file yang sudah kosong tersebut.
INPUT sama dengan mode “I”
menunjukkanbahwa file akan dibuka sebagai file input, yaitu file yang isinya akan dibaca.
APPEND menunjukkan append mode, yaitu pada waktu file dibuka, posisi file berada di akhir file, sehingga file dapat ditambah dengan data yang baru. Mode ini tidak terdapat pada alternatif pertama. Dalam hal ini, file yang ditunjuk harus sudah ada dalam media eksternal yang dimaksud. Jika pilihan in idigunakan, maka file yang lama akan tetap ada, lengkap dengan datanya, sedangkan data yang baru akan ditambahkanpada posisi setelah data yang lama.
Contoh penulisan statemen OPEN untuk membuat file yang baru (output mode) : OPEN “O”,#1,”HASIL.DAT”
Atau dapat dituliskan dengan alternatif kedua sebagai berikut : OPEN “HASIL.DAT” FOR OUTPUT AS #1
Artinya : Buat file HASIL.DAT untuk diisi data.
Contoh penulisan statemen OPEN untuk membuka file yang telah ada (input mode) :
OPEN “I”,#1,”C:\Mydocumen\ALAMAT.DAT”
Atau dapat dituliskan dengan alternatif kedua sebagai berikut : OPEN “ALAMAT.DAT” FOR INPUT AS #1
Artinya : Buka file ALAMAT.DAT yang tersimpan pada direktori Mydocument yang ada pada Drive C.
Menutup File
File yang sudah diisi data perluditutup. Kegunaannyaadalah untuk bahwa pada saat file ditutup, semua data yang ada di dalam penyangga (buffer, yaitu tempat penyimpan data sementara yang menggunakan memori internal) akan dituliskan kedalam file, sehingga menghindari kemungkinan adanya data yang hilang.
Kegunaan yang kedua adalah untuk membebaskan nomor file, sehingga bisa digunakan oleh program yang lain.
Bentuk umum :
CLOSE [#nomor file]
Dengan nomor file adalah nomor file yang akan ditutup. Jika nomor file tidak dituliskan, maka semua file yang sedang terbuka akan ditutup semuanya.
Menyimpan Data Ke File
Untuk merekam / menyimpan data kedalam file digunakan statemen WRITE#.
Bentuk umumnya :
WRITE #nomor file,dafpar
Keterangan:
Nomor file : menyatakan nomor dari file yang akan digunakan untuk menyimpan rekaman data. File yang akan digunakan harus sudah dibuka dengan menggunakan statemen OPEN dalam bentuk OUTPUT atau APPEND.
Dafpar : merupakan ekspresi string atau numerik yang menyatakan data yang akan disimpan ke dalam file.
Contoh :
WRITE #1, “Zeini”,23,”Jakarta”
Selain penulisan menggunakan statemen WRITE#, terdapat alternatif lain untuk penulisan data, yaitu dengan menggunakan statemen PRINT#.
Bentuk umumnya :
PRINT #nomor file,dafpar Keterangan :
nomorfile dan dafpar fungsinya sama dengan nomor file dan dafpar pada statemenWRITE#
Contoh :
PRINT#1,”Zeini”,23,”Jakarta”
Contoh : Menyimpan data ke dalam suatu file dengan nama ALAMAT yang akan disimpan pada direktori MYDATA yang ada pada drive C.
OPEN “C:/MYDATA/ALAMAT” FOR OUTPUT AS #1 WRITE#1,”Zeini”,23,”Jakarta”
WRITE#1,”Rudi”,30,”Bandung”
WRITE#1,”Supriyatno”,26,”Jakarta”
WRITE#1,”Sari”,24,”Jakarta”
WRITE#1,”Jhonny”,19,”Jakarta”
WRITE#1,”Abdi”,25,”Jakarta”
CLOSE#1 END
Setelah program di atas dijalankan, maka pada direktori MYDATA yang ada pada drive C akan terbentuk satu file baru dengan nama ALAMAT. Dengan menggunakan statemen WRITE#, susunan data di dalam file ALAMAT dapat digambarkan sebagai berikut :
”Zeini”,23,”Jakarta”
”Rudi”,30,”Bandung”
”Supriyatno”,26,”Jakarta”
”Sari”,24,”Jakarta”
”Jhonny”,19,”Jakarta”
”Abdi”,25,”Jakarta”
Dari susunan diatas terlihat bahwa data yang disimpan didalam file dipisahkan dengan tanda koma.
Bandingkan dengan jika penulisan data menggunakan statemen PRINT#
OPEN “C:/MYDATA/ALAMAT” FOR OUTPUT AS #1 PRINT#1,”Zeini”,23,”Jakarta”
PRINT#1,”Rudi”,30,”Bandung”
PRINT#1,”Supriyatno”,26,”Jakarta”
PRINT#1,”Sari”,24,”Jakarta”
PRINT#1,”Jhonny”,19,”Jakarta”
PRINT#1,”Abdi”,25,”Jakarta”
CLOSE#1 END
Hasilnya :
Zeini 23 Jakarta Rudi 30 Bandung Supriyatno 26 Jakarta Sari 24 Jakarta Jhonny 19 Jakarta Abdi 25 Jakarta
Dari susunan di atas terlihat bahwa antara field yang satu dengan field yang lainnya tidak dipisahkan oleh tanda koma sebagai pembatas (delimiter).
Sehingga dalam satu record akan dianggap hanya terdiri dari satu field saja. Oleh sebab itu, agar posisi field-field dalam satu record tetap terjaga maka sebaiknya gunakan statemen WRITE# untuk menulis data ke dalam file.
Mengambil Data Dari File
Untuk membaca atau mengambil data yang tersimpan dalam suatu file maka diperlukan proses pembacaan data. Untuk itu digunakan statemen INPUT#.
Bentuk umumnya :
INPUT #nomor file, varlist Keterangan :
Nomor file : merupakan nomro dari file yang akan dibaca. File yang akan digunakan harus sudah dibuka dengan menggunakan statemen OPEN dalam bentuk INPUT.
Varlist : merupakan nama variabel yang akan digunakan untuk menampung data yang dibaca. Variabel ini dapat berupa variabel string maupun numerik tetapiharus disesuaikan dengan data yang akan dibaca.
Langkah-langkah di dalam menampilkan semua data yang ada didalam filedata akses urut adalah sebagai berikut :
1. File dibuka dengan mode “I” atau INPUT, karena data akan diambil dari file ini.
2. Data diambil atau dibaca dari file mulai dari record pertama sampai dengan record terakhir atau akhir dari file. Akhir dari file dapat dideteksi dengan fungsi EOF dengan sintaks :
EOF(nomor file)
3. Bila belum sampai di akhir file atau belum mencapai record yang terakhir, maka data dapat dibaca dengan menggunakan statemen INPUT#.
4. Setelah semua data dibaca dari file, untuk mengakhiri penggunaan file, maka file harus ditutup dengan statemen CLOSE atau END.
Contoh : Mencetak isi data yang tersimpan di dalam file ALAMAT yang ada pada direktori MYDATA pada drive C. File ini sebelumnya telah dibuat dengan menggunakan statemen WRITE#.
PRINT “DAFTAR ALAMAT KOLEGA “ PRINT
PRINT ”---“
PRINT “NAMA UMUR ALAMAT “ PRINT”---“
Items$= “\ \ ## \ \”
OPEN “C:\MYDATA\ALAMAT” FOR INPUT AS #1 Do Until EOF(1)
INPUT #1,Nm$,Umur,ALM$
PRINT USING item$; Nm$; Umur;ALM$
LOOP
PRINT”---“
CLOSE END
Hasil setelah dijalankan :
DAFTAR ALAMAT KOLEGA
---
NAMA UMUR ALAMAT
--- Zeini 23 Jakarta
Rudi 30 Bandung
Supriyatno 26 Jakarta
Sari 24 Jakarta
Jhonny 19 Jakarta
Abdi 25 Jakarta
--- Menambah Data
Untuk menambah data di dalam file diperlukan penulisan dengan menggunakan WRITE#, namun dalam file yg diorganisasikansecara urut, akses terhadap record data akan dilakukan secara berurutan mulai dari recordpertama sampai dengan terakhir.
Jadi penambahan data dapat menyebabkan data yang telah disimpan sebelumnya akan terhapus. Hal ini disebabkan data yang baru akan ditulis dengan cara menimpa data sebelumnya. Untuk itu penambahan data harus dilakukan dengan memperhatikan record data didalamnya.
Agar dalam penambahan data tidak menyebabkan data yang lama terhapus, maka digunakan mode APPEND pada statemen OPEN sewaktu membuka file yang bersangkutan.
Mode APPEND menyebabkan penunjuk (pointer) record akan ditempatkan diakhir file yaitu record terakhir. Dengan demikian,penambahan record akan dimulai pada record terakhir sehingga tidak menghapus record sebelumnya.
Contoh : Menambah data yang yang akan tersimpan pada file ALAMAT, dimana file ini sebelumnya telah dibuat dengan menggunakan statemenWRITE#.
OPEN “C:\MYDATA\ALAMAT” FOR APPEND AS #1 Nama$ = “xxx”
DO UNTIL Nama$=””
INPUT “Nama = “; Nama$
If Nama$=””THEN EXIT DO INPUT “Umur =”;Umur INPUT “Alamat= “;ALM$
PRINT “---“
WRITE#1, Nama$, Umur, ALM$
LOOP CLOSE END
Hasil setelah dijalankan :
Nama = Iwan Umur = 32 Alamat = Jakarta
---
maka di dalam file ALAMAT akan bertambah satu data baru pada record terakhir sehingga hasilnya jika program untuk membaca isi data pada contoh sebelumnya dijalankan adalah sebagai berikut :
DAFTAR ALAMAT KOLEGA
---
NAMA UMUR ALAMAT
--- Zeini 23 Jakarta
Rudi 30 Bandung
Supriyatno 26 Jakarta
Sari 24 Jakarta
Jhonny 19 Jakarta
Abdi 25 Jakarta
Iwan 32 Jakarta
---
Record baru menempati posisi record yang terakhir.
INSTRUKSI FILE
1. FILEATTR
Digunakan untuk mendapatkan keterangan mengenai akses suatu file sewaktu file tersebut dibuka dengan statemen OPEN.
Bentuk Umum :
FILEATTR (nomor file, atribut)
Keterangan :
Nomor file : bilangan bulat yang menyatakan nomor file. File yang dinyatakan disini merupakan file yang sebelumnya telah cibuka dengan statemen OPEN
Atribut : parameter ini terdiri dari dua pilihan nilai yaitu :
• nilai 1 berarti fungsi FILEATTR akan mengembalikan sebuah bilangan yang menunjukkan jenis akses dari file yang bersangkutan, yakni :
*
• Nilai 2 berarti fungsi bilangan yang akan dikembalikan oleh fungsi FILEATTR berupa file handle DOS.
Contoh : Buka 3 file dengan setiap metoda akses yang berbeda. Kemudian file tersebut diperiksa dengan menggunakan fungsi FILEATTR untuk mengetahui akses pada file bersangkutan.
OPEN “File1” FOR OUTPUT AS #1 OPEN “File2” FOR RANDOM AS #2 OPEN “File3” FOR APPEND AS #3 Print “File No. Jenis Akses DOS handle”
For I = 1 to 4
Bilangan Jenis File
1 Input
2 Output
4 Random
8 Append
32 Binary
X = FILEATTR(I,1) SELECT CASE x
CASE 2
Jenis$=”OUTPUT”
CASE 4
Jenis$=”RANDOM”
CASE 8
Jenis$=”APPEND”
END SELECT
PRINT I, Jenis$, FILEATTR(I,2) Next I
END
Hasilnya :
File No. Jenis Akses DOS handle 1 OUTPUT 5
2 RANDOM 6 3 APPEND 7
2. FILES
Digunakan untuk menampilkan nama-nama file dalam suati direktori / disket.
Bentuk umum :
FILES spesfile
Keterangan :
Spesfile : merupakan ekspresi string yang menunjukkan spesifikasi file yang akan ditampilkan. Spesifikasi ini mencakup penentuan nama drive dan direktori dari file-file yang akan ditampilkan.
Contoh :
INPUT “Ketik nama drive dan path :”;nama$
FILES nama$
END
3. KILL
Digunakan untuk menghapus suatu file dari disk.
Bentuk umum :
KILL spesfile Keterangan :
Spesfile : merupakan ekspresi string yang menunjukkan spesifikasi file yang akan dihapus. Spesifikasi ini mencakup penentuan nama drive dan direktori dari file-file yang akan ditampilkan
Contoh :
Print “Ketik nama file yang akan dihapus atau tekan ENTER untuk mengakhiri”
Line Input “Nama File :”;namafl$
If namafl$=”” then END KILL namafl$
4. NAME…AS…
Digunakan untuk mengganti nama suatu file.
Bentuk umum :
NAME nama1 AS nama2
Keterangan :
Nama1 : nama file yang akan diganti
Nama2 : nama file baru sebagai pengganti nama1
Contoh :
NAME “Coba.BAS” AS “LATIH.BAS”
5. MKDIR
Digunakan untuk membuat sebuah direktori baru.
Bentuk umum :
MKDIR namapath
Keterangan :
Namapath : ekspresi string yang menunjukkan nama direktori yang akan dibuat.
Contoh :
MKDIR “DirData”
6. CHDIR
Digunakan untuk pindah dari satu direktori ke direktori lainnya.
Bentuk umum :
CHDIR namapath
Keterangan :
Namapath : ekspresi string yang menunjukkan nama direktori yang akan dituju.
Contoh :
CHDIR “C:\DATA1”
7. RMDIR
Digunakan untuk menghapus suatu direktori.
Bentuk umum :
RMDIR namapath
Keterangan :
Namapath : Namapath : ekspresi string yang menunjukkan nama direktori yang akan dihapus.
Contoh :
RMDIR “C”\DATA1”
8. SEEK
Digunakan sebagai statemen maupun fungsi.
Penggunaan SEEK sebagai statemen berarti menempatkan pointer pada posisi tertentu dalam suatu file.
Bentuk umum :
SEEK #nomor file,Pos
Keterangan :
Nomor file : nomor file untuk penempatan pointer.
Pos : posisi pointer yang akan ditempatkan.
9. FREEFILE
Digunakan untuk mendapatkan bilangan selanjutnya dari nomor file yang terakhir dipakai.
Bentuk umum :
FREEFILE
Contoh :
OPEN “Data1” FOR RANDOM AS #1 OPEN “Data2” FOR RANDOM AS #2 Nofile = FREEFILE
OPEN “Data3” FOR RANDOM AS Nofile END
10. RESET
Digunakan untuk menutup semua file dalam dik.
Bentuk umum :
RESET
Contoh :
OPEN “Data1” FOR RANDOM AS #1 OPEN “Data2” FOR RANDOM AS #2 OPEN “Data3” FOR RANDOM AS #3 CLOSE#1
RESET END
11. LOF
Digunakan untuk mengetahui ukuran file. Satuan yang digunakan adalah byte.
Bentuk umum :
LOF (nofil)
Keterangan :
Nofil : menyatakan nomor file yang merupakan indikasi untuk menentukan file yang akan diperiksa ukurannya.
Contoh :
OPEN “CONTOH.DAT” FOR RANDOM AS #1 PRINT “Ukuran file adalah : “;LOF(1); “byte”
CLOSE END
12. LOCK dan UNLOCK
LOCK digunakan untuk mengunci sebagian atau seluruh record dalam suatu file. Dengan mengunci suatu file maka file tersebut tidak dapat diakses.
UNLOCK digunakan untuk membuka file yang telah dikunci dengan menggunakan LOCK. Keduanya hanya digunakan dilingkungan network.
Bentuk umum :
LOCK #nomor file,rec/start TO end UNLOCK #nomor file,rec/start TO end
Keterangan :
Nomor file : nomor file yang akan di LOC atau UNLOCK Rec : jumlah record atau byte yang akan dikunci.
Start : nomor record atau byte pertama yang akan dikunci End : nomor record atau byte terakhir yang akan dikunci.
Contoh :
LOCK #2 LOCK #2,32 LOCK #2, TO 32 UNLOCK #2
UNLOCK #2, 2 TO 30
13. LOC
Digunakan untuk mengetahui posisi akhir dari record yang dibaca atau ditulis.
Bentuk umum :
LOC (nomor file)