Pertemuan 7 OPERASI FILE
Objektif: 1.
Mahasiswa dapat memahami pengertian file.
2.
Mahasiswa dapat mengetahui jenis-jenis file.
3.
Mahasiswa dapat mengetahui bentuk umum penulisan statement OPEN.
4.
Mahasiswa dapat menyebutkan jenis-jenis operasi yang dapat dilakukan pada suatu file.
5.
Mahasiswa dapat mengetahui cara membaca dan menulis suatu file.
6.
Mahasiswa dapat memahami beberapa reserved words yang berhubungan dengan file ,yaitu : EOF, LOF, CLOSE, APPEND, INPUT, OUTPUT, SEEK, PUT, GET ,PRINT #, RANDOM, LINE INPUT, KILL, dan FILES.
Page 65
P7.1. Teori File File merupakan tempat penyimpanan data-data yang lebih permanen di dalam disk atau tape. Pengertian lain, file adalah kumpulan dari record-record. Beberapa keuntungan menggunakan file ,yaitu: 1. Kita bisa melihat isi data dalam file di kemudian hari karena lebih permanen dari pada penyimpanan dalam memori utama /buffer. Jika komputer dimatikan data dalam buffer akan hilang, sedangkan dengan file tidak hilang karena sudah disimpan secara fisik dalam disk. 2. File dapat menampung jumlah data yang sangat besar, seperti data karyawan, data mahasiswa, dan sebagainya. 3. Data dalam file dapat digunakan secara bersama-sama oleh beberapa program atau aplikasi.
Ada beberapa jenis file dalam BASIC,yaitu : 1. File Sequential ; file yang diakses secara berurutan. 2. File Random ; file yang bisa diakses sccara random tanpa memprhatikan urutan data. 3. File Binary; file dalam bentuk kode-kode binary.
File yang digunakan biasanya bertipe atau berekstension .dat atau .txt. Untuk membuat file dengan BASIC bisa digunakan statement OPEN,
bentuk umumnya: OPEN nama_file [FOR MODE] AS [#nomor_file] [LEN = panjang_record]
Keterangan : Nama_file ; nama file yang akan dibuat atau dibuka,ditulis berkut direktori filenya. Jika direktori tidak ditulis berarti file dibuat pada direktori aktif. MODE ; mode penggunaan file , terdiri dari : -
INPUT ; jika file dibuat/dibuka untuk dibaca isi datanya.
Page 66
-
OUTPUT ; jika file dibuat/dibuka untuk menuliskan / merekam data ke dalam file. Jika nama file yang akan dibuat sudah ada sebelumnya, maka file yang lama akan dihapus.
-
APPEND ; jika file dibuat/dibuka untk ditambah isinya tanpa menghapus file sebelumnya.
-
RANDOM ; digunakan untuk pembuatan file random, menyimpan dalam bentuk record.
Setelah sebuah file dibuat atau dibuka,kemudian file bisa ditutup. Dengan menggunakan statement CLOSE.
Bentuk umumnya : CLOSE [(nomor_file)]
Ada beberapa operasi yang melibatkan file , yaitu: 1. Baca File ; setelah dibuka file dapat dibaca isi datanya dengan statement INPUT #, LINE INPUT #, atau GET. Bentuk umum masing-masing statement : INPUT #no_file, variabel_list LINE INPUT # #no_file, variabel_list GET #no_file, [no_record] [,variabel_list] LINE INPUT membaca isi file perbaris. Statement GET biasanya untuk membaca file random yang berisi record-record. 2. Tulis File ; penulisan file dapat dilakukan dengan statement PRINT #, PUT ,WRITE . Bentuk umumnya : PRINT #no_file, variabel_list PUT #no_file, [no_record] [,variabel_list] WRITE #no_file, ekspresi PUT digunakan untuk merekam data ke file random. Sedangkan WRITE untuk merekam data ke file sequewnsial. 3. Tambah File; untuk kepentingan tertentu isi file bisa ditambah datanya tanpa menghapus file lama dan menulis dengan yang baru. Untuk
bisa menambah isi file mode
pembuakaan file harus ditulis APPEND. Contoh : OPEN "DATA.DAT" FOR APPEND AS #1 Kemudian untuk menulisnya menggunakan statement yang biasa untuk menulis data, Page 67
seperti penjelasan no.2.
Contoh program yang membuat dan membaca sebuah file sequensial : DIM Nama AS STRING *15 , Umur AS INTEGER DIM Nama2 AS STRING *15 , Umur2 AS INTEGER Nama = "Budi" Umur = 21 Nama2 = "Wati" Umur = 22 ' Membuat file OPEN
"C:\QBASIC\data.dat" FOR OUTPUT AS #1
PRINT #1 ,
Nama
PRINT # 1, Umur PRINT #1, Nama2, Umur2 CLOSE(1) 'Membaca file OPEN
"C:\QBASIC\data.dat" FOR INPUT AS #1
INPUT #1, nam$ INPUT #1, age% INPUT #1, temp$ PRINT nam$, age% PRINT temp$ CLOSE (1) END
Output program : Budi 21 Wati
22
Isi file C:\QBASIC\data.dat setelah diisi data: Budi 21 Wati
22
Page 68
Contoh program yang membuat dan membaca sebuah file random : TYPE Data_Mhs Nama AS STRING * 15 Kelas AS STRING * 5 END TYPE DIM dat(1 TO 2) AS Data_Mhs, temp AS Dat_Mhs 'buat file OPEN "DATA.DAT" FOR RANDOM AS #1 FOR I%=1 TO 2 INPUT
"Nama : "; dat(I).Nama
INPUT
"Kelas : "; dat(I).Kelas
PUT #1, I%, dat(I) NEXT I% CLOSE(1) 'baca file PRINT OPEN "DATA.DAT" FOR RANDOM AS #1 FOR I%=1 TO 2 GET #1,I%, temp PRINT "Data-";I% PRINT temp.Nama, temp.Kelas NEXT I% CLOSE(1) END
Output program: Nama : Budi Kelas : 1IA01 Nama : Wati Kelas : 1IA02 Data-1
Budi
1IA01
Data-2
Wati
1IA02 Page 69
Beberapa reserved words lain yang berhubungan dengan file : 1. SEEK ; statement untuk menset dan mengetahui pointer record pembacaan atau penulisan pada file. Betnuk umumnya : SEEK(no_file) SEEK # no_file, posisi 2. EOF ; fungsi untuk mengetahui apakah pointer record berada di akhir file. Mengmbalikan nilai benar atau salah.Bentuk umumnya : EOF(no_file) 3. LOF; fungsi untuk mengetahui panjang sebuah file dalam satuan byte. Bentuk umumnya : LOF(no_file) 4. KILL; statement untuk menghapus file dari dalam program. Statement ini sama dengan perintah Delete dalam DOS. Bentuk umumnya : KILL nama_file 5. FILES ; statement untuk menampilkan file dalam direktori dari dalam program. Statement ini sama dengan perintah Dir dalam DOS. Bentuk umumnya : FILES nama_file
Page 70
P7.2. Contoh Kasus Seorang mahasiswa diminta untuk membuat program tentang Operasi File menggunakan bahasa pemrograman qbasic. Program yang dibuat akan menghasilkan output seperti pada gambar di bawah ini :
Langkah-langkah Pengerjaan 1. Klik aplikasi program Qbasic.exe, hingga muncul tampilan seperti pada gambar di bawah ini:
Page 71
2. Setelah muncul tampilan diatas, maka selanjutnya tekan ESC pada keyboard untuk mengetikkan program yang akan dibuat. Berikut tampilan untuk mengetikkan program:
3. Selanjutnya kita ketikkan souce code program berikut pada program qbasic. DECLARE SUB ISIDATA () DECLARE SUB BACADATA () CLS PRINT "CONTOH INPUT DATA" CALL ISIDATA CALL BACADATA END SUB BACADATA STATIC OPEN "DATA.DATA" FOR INPUT AS #1 CLS PRINT "ISI BERKAS DATA.DAT" Page 72
DO UNTIL EOF(1) INPUT #1, JK$, NM$, JL$, REK$ PRINT JK$, NM$, JL$, REK$ LOOP CLOSE #1 END SUB SUB ISIDATA STATIC OPEN "DATA.DATA" FOR OUTPUT AS #1 INPUT "JUDUL KASET : ", JK$ INPUT "NAMA MUSISI : ", NM$ INPUT "JENIS LAGU : ", JL$ INPUT "DIREKAM OLEH :", REK$ WRITE #1, JK$, NM$, JL$, REK$ PRINT CLOSE #1 END SUB
4. Program diatas merupakan program inti/utama, selanjutnya untuk SUB ISIDATA dan SUB BACADATA merupakan bagian dari program utama ini. Pada saat mengetikkan source SUB ISIDATA dan SUB BACADATA, maka akan masuk pada layar baru secara otomatis. Berikut tampilannya:
Page 73
5. Setelah selesai mengetikkan source code program diatas, maka terlebih dahulu merubah halaman yang aktif ke halaman utama yang telah dibuat dengan cara tekan F2 pada keyboard, kemudian memilih ke halaman utama yang yang telah dibuat yaitu halaman Untitled. Berikut tampilannya:
6. Setelah memilih Untitled, kemudian klik Edit in Active . maka akan tampil pada halaman utama program. Berikut tampilannya.
Page 74
7. Sebelum menjalankan program diatas, alangkah lebih baiknya menyimpan program tersebut dengan cara klik File pada toolbar pilih Save pilih direktori yang akan dipilihketikkan nama file nya klik OK
8. Setelah selesai menyimpan file tersebut, maka selanjutnya kita menjalankan program tersebut dengan cara menekan SHIFT+F5 , jika program yang telah ddiketikkan telah berhasil, maka program ini akan berjalan, tetapi pada saat program itu dijalankan program itu tidak berjalan, maka program tersebut mengalami kesalahan sintaks.
Page 75
P7.3. Latihan Soal
Pertanyaan: Lengkpai bagian A dan B: A. OPEN dan CLOSE#2 * B. OPEN dan CLOSE#1 C. OPEN#2 dan CLOSE#2 D. OPEN#1 dan CLOSE#2 E. Tidak ada yang tepat
Page 76
P7.4. Daftar Pustaka
[1]
Jogiyanto H.M, Teori dan Aplikasi Program Komputer Bahasa Basic (edisi ke-5), Andi Offset, 1992.
[2]
F. Soesianto B.Sc.E, Ir., Eko Nugroho, Ir., P. Insap Santosa, Ir., Pemrograman Basic(edisi ke-2), Andi Offset, Yogyakarta, 1992.
[3]
Abdul Kadir, Pemrograman QBASIC. Panduan Untuk Belajar Sendiri Bahasa BASIC(edisi pertama), Andi Offset, 1995.
[4]
P. Insap Santosa, Quick Basic, Andi Offset, 1990.
Page 77