File

Untuk menyimpan dan membuka file kita bisa menggunakan tipe data file. Pascal menggunakan bermacam-macam tipe data file, tapi yang paling sering digunakan adalah tipe data text / textfile.

Pascal memperlakukan sebuah file sebagai serangkaian atau kumpulan komponen yang harus berupa tipe data yang seragam. Sebuah variabel dengan tipe data file memiliki nama sesuai tipe data yang akan disimpan dalam file. Tipe data file dideklarasikan dengan pola sebagai berikut :

type nama_variabel = file of Tipe_file;

Tipe_file menunjukkan tipe data yang disimpan dalam file. Tipe_file bisa berupa tipe data seperti integer, real, Boolean, enumerated, subjangkauan, record, array dan himpunan / set. Variabel dari sebuah tipe data file dibuat dengan deklarasi variabel :

var
f1, f2,...: nama-file; 

Berikut ini adalah contoh deklarasi tipe data file sesuai tipe data yang akan disimpan dalam file.
type
    rfile = file of real;
    ifile = file of integer;
    bfile = file of boolean;
    datafile = file of record;
    arrfile = file of array[1..4] of integer;

 var
     tanda_tanda : arrfile;
     data_murid: datafile;
     rfdata: rfile; tdaTA: ifile;
     pilihan: bfile;


Membuat dan Menulis ke dalam Sebuah File
Mari kita membuat kode program untuk menulis file berisi record dari data siswa. Ini akan menghasilkan file bernama siswa.dat dan menuliskan data murid ke dalamnya.

program DataSiswa;
uses crt;
type
   Record_siswa = Record
      nama: String;
      addr: String;
   end;

var
   siswa: Record_siswa;
   f: file of Record_siswa;

begin
    clrscr;
    //Buat dan Tulis File
    Assign(f, 'siswa.dat');
    Rewrite(f);
    siswa.nama := 'Geri';
    siswa.addr := 'Indonesia';
    Write(f, siswa);
    Close(f);
    //Cari akhir File dan tambahkan data
    Reset(f);
    Seek(f, FileSize(f));
    siswa.nama := 'Sani';
    siswa.addr := 'Indonesia';
    Write(f, siswa);
    Close(f);
    //Baca isi File
    Writeln('=======================');
    Reset(f);
    while(not(eof(f)))do
    begin
        Read(f, siswa);
        Writeln('Nama Siswa :', siswa.nama);
        Writeln('Alamat Siswa : ', siswa.addr);
        Writeln('=======================');
    end;
    Close(f);
    readln
end.

Contoh di atas menunjukkan cara menulis dan membaca isi file. Sebelum membaca atau menulis file, kita harus menggunakan assign untuk menugaskan variabel dengan tipe file supaya menggunakan nama file sesuai yang kita sebutkan di parameter kedua dari assign. File yang digunakan harus berada di folder yang sama dengan programnya atau di direktori yang aktif.

Ketika dicompile dan dijalankan, program yang menggunakan rewrite akan membuat sebuah file bernama siswa.dat ke dalam direktori atau folder yang aktif atau folder yang sama dengan tempat program yang dijalankan.

Untuk membaca file, kita harus menggunakan reset. Reset menggunakan parameter berupa variabel bertipe file yang sudah di-assign. Reset akan membaca file sesuai dengan parameter kedua dari assign.

Selanjutnya, kita akan mencoba membuat satu kode program lagi yang digunakan untuk menulis dan membaca file. Kita juga akan menggunakan tipe data file sebagai parameter. Program yang dihasilkan kode program di bawah ini menghasilkan file yang namanya sesuai dengan nama yang masukkan pengguna untuk menyimpan sekumpulan data. Berikutnya, program membuka dan memperhitungkan data yang ada.


program Tambah_data_file;
uses crt;
type
   fileku = file of string;
var
   tfile: fileku;
   filename: string;

procedure writedata(var f: fileku);
var
   data: string;

begin
   rewrite(f, sizeof(data));
      writeln('Masukkan tulisan anda: ');
      readln(data);
      write(f, data);
   close(f);
end;

procedure hitung_rata_rata(var x: fileku);
var
    d: string;

begin
    reset(x);
    read(x, d);
    close(x);
    writeln('Tulisan yang tersimpan : ', d);
end;

begin
    clrscr;
    writeln('Masukkan nama file: ');
    readln(filename);
    assign(tfile, filename);
    writedata(tfile);
    hitung_rata_rata(tfile);
end.




Saat kode program di atas dieksekusi hasilnya bisa dilihat di dalam file dengan nama sesuai isi variabel "filename".

Menambahkan Text ke akhir sebuah File
Untuk menambahkan text setelah akhir sebuah file tanpa mengubah isinya, kita menggunakan prosedur append. append hanya bisa digunakan pada file dengan jenis text. Perhatikan program berikut ini.

program Lanjutkanfile;
var
   fileku: text;
   info: string;

begin
   assign(fileku, 'contact.txt');
   append(fileku);
   
   writeln('Detail');
   writeln('codelogi.com');
   close(fileku);
   
   ayo baca dari file ini.
   assign(fileku, 'contact.txt');
   reset(fileku);
   while not eof(fileku) do
      begin
      readln(fileku, info);
      writeln(info);
   end;
   close(myfile);
end.

Compile dan jalankan untuk melihat hasilnya!
Jangan lupa cek juga file yang dihasilkan!