Modul 10
PENGOLAHAN FILE BINARY
Selain pengolahan data Sequential dan Random, QBasic juga
menyediakan pengolahan yang bersifat Binary. Pada pengolahan yang
bersifat Binary, file dapat dibaca/ditulis secara per-Byte pada
posisi yang diinginkan, sehingga tidak terikat kepada urutan
maupun struktur data.
Pengolahan yang bersifat Binary banyak digunakan untuk keperluan-
keperluan khusus yang membutuhkan akses langsung ke satuan data
di tingkat Byte. Misalnya membuat program Enkripsi dan Dekripsi
file, pada proses Enkripsi, isi suatu file disandikan byte-per-
byte sehingga tidak dapat dikenali lagi secara normal oleh sistem
yang membuatnya. Agar isi file tersebut dapat dikenali kembali,
maka diperlukan proses Dekripsi yang mengembalikannya ke keadaan
semula.
Pengolahan yang bersifat Binary juga banyak digunakan pada
pembuatan program AntiVirus, Crack, Game Cheat yang membutuhkan
akses ke byte level.
1. Perintah membuka file Binary
Seperti pada pengolahan file umumnya, sebelum digunakan file
binary harus dibuka dengan perintah sebagai berikut :
OPEN namafile FOR BINARY AS [#]filenum
Contoh :
OPEN "Sandi.bin" FOR BINARY AS #1
Membuka file "Sandi.bin" untuk diolah secara binary sebagai file
nomor 1.
2. Mendapatkan jumlah byte pada file binary yang telah terbuka.
JlhByte = LOF(1)
Fungsi LOF (Length Of File) akan mengembalikan ukuran file binary
dalam ukuran byte.
Catatan : 1 KB = 1024 Byte, 1 MB = 1024*1024
3. Perintah input/output pada file Binary
Perintah menulis data
PUT [#]filenum[,posisi][,variable]
Contoh :
MyData = 10
PUT #1, 101, MyData
Menulis karakter ASCII 10 (line feed) pada posisi byte ke 101
dalam file nomor 1.
Contoh Lain :
Dim MyChar As String*1
MyChar = Chr$(10)
Put #1, 101, MyChar
Perintah membaca data
GET [#]filenum[,posisi][,variabel]
Contoh :
Dim MyChar As String*1
GET #1, 101, MyChar
Membaca data byte posisi ke dari file nomor 1 ke variabel
MyChar.
4. Perintah menutup file Binary
Setelah selesai digunakan, file Binary perlu ditutup untuk
memastikan semua data ditulis ke media penyimpanan, dan
memberikan indikator EOF.
Nb. Untuk mempercepat proses I/O, sistem operasi menyediakan
memory buffer sebagai tempat pembacaan dan penulisan sementara.
Perintah Close untuk memastikan semua data dari buffer benar-
benar ditulis ke media penyimpanan.
Contoh :
CLOSE #1
Menutup file binary nomor 1.
Contoh :
'Program Enkripsi dan Dekripsi dengan kunci NOT
DIM Source AS STRING
DIM Target AS STRING
DIM FSize AS LONG
DIM MyChar AS STRING * 1
CLS
PRINT "Program Enkripsi/Dekripsi Data"
PRINT "Menggunakan operator NOT"
PRINT "------------------------"
INPUT "Masukkan Source :", Source
INPUT "Masukkan Target :", Target
IF Source = Target THEN
PRINT "Nama file source tidak boleh sama dengan target"
ELSE
OPEN Source FOR BINARY AS #1 'Buka source sebagai 1
OPEN Target FOR BINARY AS #2 'Buka target sebagai 2
FSize = LOF(1) 'Mendapatkan ukuran file 1
FOR I = 1 TO FSize
GET #1, I, MyChar 'Baca byte posisi ke i
'dari source
MyChar = CHR$(255 - ASC(MyChar)) 'Enkripsi dengan NOT
PUT #2, I, MyChar 'Tulis ke posisi ke i
'Pada Target
NEXT I
CLOSE #1
CLOSE #2
PRINT
PRINT "Proses Selesai"
END IF
END
'Program Menghilangkan Password file *.Mdb Microsoft Access 97
Dim nama As String
Dim huruf As String*1
INPUT "Masukkan nama file :",nama
IF Dir$(nama) = "" THEN
PRINT "File ";nama;" tidak ada !"
ELSE
OPEN nama FOR BINARY AS #1
huruf = Chr$(134)
PUT #1, 66, huruf
CLOSE #1
PRINT "Password ";nama;" telah dihilangkan !"
END IF
END