Dokumen tersebut memberikan penjelasan tentang penggunaan file teks dalam bahasa pemrograman Pascal. Terdapat beberapa poin utama yaitu: (1) procedure standar untuk membuka file teks seperti rewrite, reset, dan append, (2) fungsi dan procedure standar untuk membaca dan menulis data ke dalam file teks, dan (3) contoh program penggunaan file teks untuk membuat, menambah, mencari, dan merubah data pada file teks.
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Pascal - FileText.txt - Notepad.pdf
1. ƒ File Text
ƒ ---------
Untuk membuka dapat digunakanprocedure standard rewrite,reset dan
append .
rewrite -> untuk membuka file baru, sifat write only berarti data
hanya dapat direkam ke file dan data tidak dapat diambil dari
file.
Reset -> untuk membuka file yang sudah ada, sifat read only
hanya dapat dibaca dari file tetapitidak dapat merekamkan data ke
file.
Append -> Untuk membuka file yang sudah ada, Untuk keperluan
menambah data di file, sifat Write only hanya dapat merekam data
ke file dan tidak dapat mengambil data dari file.
ex :
var
tipe : text; {variabel file}
begin
assign(tipe,'siswa.txt');
{menghubungkan variabel file dgn extenal file}
append(tipe);
{membuka file dengan sifat write only, untuk menambah data}
.
.
.
end.
Catatan :
Dalam file text selain procedure standard untuk semua file seper
ti yang telah dibahas sebelumnya. Masih ada fungsi standard lain
yang dapat digunakan pada file text yaitu :
„ I. write/writeln
Digunakan untuk merekamkan data ke file
sintaks :
write([var f :text;]v1[,v2,...vn]);
writeln([var f :text;]v1[,v2,...vn]);
variabel file data yang akan direkamkan
ex : write(tipe,npm:6,nama:25,kls:4);
writeln(tipe,npm:6,nama:25,kls:4);
variabel text data variabel yang akan direkamkan
„ II. Procedure standard flush
Untuk segera merekamkan data di buffer ke file text tanpa harus
menunggu isi dari buffer penuh. Penggunaanya adlah optional.
Sintaks :
2. Flush(var f : text);
f = variabel file text
ex:
writeln(tipe,npm:6,nama:25,kls:4);
flush(tipe);
„ III. Procedure standard read dan readln
Digunakan untuk membaca satu atau lebih nilai dari file ke dalam
satu atau lebih variabel. Read dan readln fungsinya sama, tetapi
pada readln akan menggeser pembacaan ke awal dari baris berikut-
nya.
sintaks :
read([var f :text;]v1[,v2,...vn]);
readln([var f :text;]v1[,v2,...vn]);
f = variabel file
v1..vn = Variabel yang akan membaca data di file text
write(tipe,npm:6,nama:25,kls:4);
writeln(tipe,npm:6,nama:25,kls:4);
tipe = variabel text
npm, nama, kls = data variabel yang akan dibaca
„ IV. procedure standard settextbuf
Digunakan untuk membuat buffer yang baru sebagai pengganti dari
internal buffer untuk file variabel. Agar pembacaan dan perekaman
jadi menjadi lebih cepat.
sintaks :
settextbuf(var f:text;var buf[;size :word]);
Keterangan :
Masing- masing file variabel di file text mempunyai suatu internal
buffer sebesar 128 byte buffer inidigunakan untuk untuk operasi
read dan write pada text file. Sebenarnya buffer ini cukup namun
untuk aplikasi yang membutuhkan pembacaan dan perekaman data
dengan jumlah yang cukup besar diperlukan buffer yang berukuran
besar untuk mengurangi gerakan dari head drive, sehingga akses
lebih cepat.
ex :
Program penggunaan_settextbuf;
var
tipe : text; {variabel file text}
namafile : string;{variabel nama file}
karakter : char; {variabel nilai di text}
mybuffer : array[1..5120] of char;
{buffer sebesar 5 kb default 128 byte}
begin
write('nama file =');readln(namafile);
{menanyakan external file}
assign(tipe,namafile);
3. {menghubungkan variabel text dgn external file}
settextbuf(tipe,mybuffer);
{memberikan nilai buffer baru sebagai penampung}
reset(tipe);
{membuka file text, dimana file text sudah ada di disk}
while not eof(tipe) do
{lakukan selama posisi tidak diakhir dari file}
begin
read(tipe,karakter);
{membaca nilai variabel di file text}
write(karakter); {mencetak dilayar}
end;
end.
„ V. Fungsi standard eoln()
fungsi standard ini digunakan untuk megetahui posisi dari file
berada di end-of-line marker (tanda akhir baris). Jika ya akan
bernilai true dan false jika sebaliknya.
sintaks :
eoln[(var f:text)]:boolean;
„ VI. Fungsi standard seekeof()
sama seperti eof yaitu menghasilkan status akhir dari file .
sintak :
seekeof[(var f:text)]:boolean;
perbedaan eof dengan seekeof, pada seekeof akan melewati semua
blank, tabulasi, dan tanda akhir dari baris sebelum menghasilkan
status akhir dari file.
„ VII. Fungsi standard seekeoln()
menghasilkan status akhir dari baris dgn sintaks sama dengan
eoln() perbedaan seekeoln dengan eoln, seekeoln akan melewati
semua blank dan tabulasi sebelum menghasilkan status akhir dari
baris.
… Algoritma :
… 1. Membuat file Baru
a. Deklarasikan sebuah file variabel dengan tipe filenya.
b. Hubungkan file variabel ini dengan external file yang
akan digunakan dengan procedure standard assign.
c. File yang baru dihubungkan , selanjutya dapat dibuka
dengan procedure standard rewrite.
d. Masukan data yang akan direkamkan ke file pada variabel-
varibel memory.
e. Rekamkan data yang ada di variabel memory ke file dengan
menggunakan procedure standard write atau writeln( file
text).
f. Ulangi langkah d dan e bila masih ingin merekamkan data
lagi.
g. Tutup file bila operasi sudah selesai dengan menggunakan
procedure standard close.
4. catatan :
Untuk menjaga kemungkinan agar bila dalam membuat suatu file dan
ternyata nama file tersebut sudah ada tapi diberi peringatan
terlebih dahulu dapat dilakukan langkah sebagai berikut :
a. File dibuka dengan menggunakan procedure standard reset (digu
nakan untuk membuka file yang sudah ada), sehingga file yang
sudah ada tidak terhapus, tetapi bila file belum ada akan
menyebabkan runtime error, maka agar program tidak berhenti
pada waktu proses maka dapat digunakan Compiler directive
{$I+} dan {$I-}.
b. Kesalahan pembukaan ini kemudian dapat ditampung dengan dengan
menggunakan fungsi standard Ioresult yang akan bernilai 0 jika
tidak terjadi kesalahan, dan bukan 0 bila ada kesalahan. Se
hingga dapat ditampilkan pesan.
c. Bila file belum pernah ada atau file sudah pernah ada tetapi a
kan ditumpangi, maka dapat digunakan procedure standard Re
write. karena reset hanya untuk membuka file yang sudah ada.
„ 2. Algoritma menampilkan semua data di file ke layar
a. Deklarasi variabel sebagai file variabel tipenya.
b. Hubungkan file variabel dengan external file menggunakan
procedure standard assign.
c. Buka file yang telah ada dengan procedure standard reset.
d. Baca data tiap baris di dalam file dengan procedure stan
dard readln.
e. Tampilkan data yang telah dibaca dari file ke layar atau
ke printer.
f. Bila belum selesai ulangi langkah d dan e sampai selesai
eof().
g. Tutup file dengan procedure standard close
Contoh kumpulan listing program untuk penanganan file text seper
ti membuat file text, mengisi file text, merubah file text, menam
pilkan isi file text :
ex.1 :
program contoh_membuat_file_text_;
uses crt;
var
tipefile : text;
namafile : string;
npm : string[10];
nama : string[25];
sks : byte;
ipk : real;
lagi : char;
begin
clrscr;
assign(tipefile,'agung.txt');
{menghubungkan variabel file dengan external file}
rewrite(tipefile);{membuat file baru}
lagi := 'Y';
while upcase(lagi)='Y' do {proses selama lagi='Y'}
5. begin
clrscr;
writeln('Membuat File Baru');writeln;
write('N P M = ');readln(npm);
{pemasukan nilai ke variabel memory npm,nama,sks,ipk}
write('Nama = ');readln(nAMA);
write('S K S = ');readln(sks);
write('I P K = ');readln(ipk);
{memasukan nilai yang sudah ditampung di memori ke textfile}
writeln(tipefile,npm:10,nama:25,sks:4,' ',ipk:3:2);
writeln;
write('isi lagi =');readln(lagi);
end;
close(tipefile);{menutup externalfile}
end.
ex.2 :
program contoh_Menambah_data_text_file;
uses crt;
var
tipefile : text;
namafile : string;
npm : string[10];
nama : string[25];
sks : byte;
ipk : real;
lagi,jwb : char;
begin
assign(tipefile,'agung.txt');
{menghubungkan variabel file ke external file}
append(tipefile);{membuka file yg sudah ada}
lagi:='Y';
while upcase(lagi)='Y' do {lakukan selama lagi ='Y'}
begin
clrscr;
writeln('Tambah Data Mahasiswa');writeln;
write('N P M =');readln(npm);
write('N a m a =');readln(nAMA);
write('SKS=');readln(sks);
write('I P K =');readln(ipk);
writeln;
{pemasukan data ke file}
writeln(tipefile,npm:10,nama:25,sks:4,' ',ipk:3:2);
write('Tambah lagi =');readln(lagi);
end;
close(tipefile);
end.
Program mencari_data_text_file;
uses crt;
var
6. tipefile : text;
namafile : string;
npm : string[10];
nama : string[25];
sks : byte;
ipk : real;
knpm,mnpm : string[10];
lagi : char;
begin
lagi:='Y';
assign(tipefile,'Agung.txt');
while upcase(lagi)='Y' do
begin
clrscr;
mnpm:=' ';
reset(tipefile);
write('N P M yang akan ditampilkan =');readln(knpm);
knpm:=copy(mnpm,1,10-length(knpm))+knpm;
while (not eof(tipefile)) and (knpm<>npm) do
readLN(tipefile,npm,nama,sks,ipk);
if npm=knpm then
begin
writeln('Npm Nama Sks IPK');
writeln(npm:10,nama:25,sks:4,ipk:3:2);
end
else
writeln('tidak ada data ini');
close(tipefile);
write('Mencari lagi =');readln(lagi);
end;
end.
program merubah_isi_file_text;
uses crt;
var
tipefile : text;
namafile : string;
npm : string[10];
nama :string[25];
sks : byte;
ipk : real;
npm1 : string[10];
mnama : string[25];
mipk : real;
msks : byte;
pemindah : text;
lagi : char;
knpm,mnpm : string[10];
ketemu: boolean;
begin
lagi :='Y';
7. while upcase(lagi)='Y' do
begin
assign(tipefile,'agung.txt');
reset(tipefile);
assign(pemindah,'agung.sip');
rewrite(pemindah);
clrscr;
{ penghubungan variabel file dan buka file}
mnpm:=' ';
write('NPM yang dicari =');readln(knpm);
knpm:=copy(mnpm,1,10-length(knpm))+knpm;
ketemu:=false;
while not eof(tipefile) do
begin
readln(tipefile,npm,nama,sks,ipk); {baca variabel di file}
if npm = knpm then
begin
ketemu:=true;
writeln('NPM =',npm);
write('NPM koreksi =');readln(npm);
writeln('Nama =',nama);
write('Nama koreksi =');readln(nama);
writeln('SKS =',sks);
write('SKS koreksi =');readln(sks);
writeln('IPK =',ipk:3:2);
write('ipk =');readln(ipk);
end;
writeln(pemindah,npm:10,nama:25,sks:4,' ',ipk:3:2);
end; {akhir while}
if not ketemu then
writeln('data mahasiswa tidak ada');
close(tipefile);
close(pemindah);
erase(tipefile);
rename(pemindah,'agung.txt');
writeln;
write('ada lagi =');readln(lagi);
end;
end.
Program menampilkan_data_text;
uses crt;
var
tipefile : text;
namafile : string;
npm : string[10];
nama : string[25];
sks : byte;
ipk : real;
begin
clrscr;
8. assign(tipefile,'agung.txt');
reset(tipefile);{membuka file yg sudah ada hanya utk pembacaan}
writeln('-----------------------------------------------');
writeln('N P M NAMA S K S IPK ');
WRITELN('--------------------------------------------------');
while not eof(tipefile) do
begin
readln(tipefile,npm,nama,sks,ipk);
{membaca difile lalu dimasukan ke variabel}
writeln(npm:10,nama:25,sks:4,' ',ipk:3:2);
end;
writeln('---------------------------------------------------');
close(tipefile);
readln;
end.
program contoh_penganan_file_text(input,output);
uses crt;
var
tipefile : text;
namafile : string;
npm : string[10];
nama : string[25];
sks : byte;
ipk : real;
procedure isidata;
var
lagi : char;
begin
clrscr;
assign(tipefile,'agung.txt');
rewrite(tipefile);
lagi := 'Y';
while upcase(lagi)='Y' do
begin
clrscr;
writeln('Membuat File Baru');writeln;
write('N P M = ');readln(npm);
write('Nama = ');readln(nAMA);
write('S K S = ');readln(sks);
write('I P K = ');readln(ipk);
writeln(tipefile,npm:10,nama:25,sks:4,' ',ipk:3:2);
writeln;
write('isi lagi =');readln(lagi);
end;
close(tipefile);
end;
PROCEDURE Tambahdata;
var
9. lagi,jwb : char;
begin
assign(tipefile,'agung.txt');
append(tipefile);
lagi:='Y';
while upcase(lagi)='Y' do
begin
clrscr;
writeln('Tambah Data Mahasiswa');writeln;
write('N P M =');readln(npm);
write('N a m a =');readln(nAMA);
write('S K S =');readln(sks);
write('I P K =');readln(ipk);
writeln;
write('Tambah lagi =');readln(lagi);
writeln(tipefile,npm:10,nama:25,sks:4,' ',ipk:3:2);
end;
close(tipefile);
end;
procedure pilihdata;
var
knpm,mnpm : string[10];
lagi : char;
begin
lagi:='Y';
assign(tipefile,'Agung.txt');
while upcase(lagi)='Y' do
begin
clrscr;
mnpm:=' ';
reset(tipefile);
write('N P M yang akan ditampilkan =');readln(knpm);
knpm:=copy(mnpm,1,10-length(knpm))+knpm;
while (not eof(tipefile)) and (knpm<>npm) do
readLN(tipefile,npm,nama,sks,ipk);
if npm=knpm then
begin
writeln('Npm Nama Sks IPK');
writeln(npm:10,nama:25,sks:4,ipk:3:2);
end
else
writeln('tidak ada data ini');
close(tipefile);
write('Mencari lagi =');readln(lagi);
end;
end;
procedure rubahdata;
var
npm1: string[10];
10. mnama:string[25];
mipk :real;
msks :byte;
pemindah : text;
lagi : char;
knpm,mnpm : string[10];
ketemu: boolean;
begin
lagi :='Y';
while upcase(lagi)='Y' do
begin
assign(tipefile,'agung.txt');
reset(tipefile);
assign(pemindah,'agung.sip');
rewrite(pemindah);
clrscr;
{ penghubungan variabel file dan buka file}
mnpm:=' ';
write('NPM yang dicari =');readln(knpm);
knpm:=copy(mnpm,1,10-length(knpm))+knpm;
ketemu:=false;
while not eof(tipefile) do
begin
readln(tipefile,npm,nama,sks,ipk); {baca variabel di file}
if npm = knpm then
begin
ketemu:=true;
writeln('NPM =',npm);
write('NPM koreksi =');readln(npm);
writeln('Nama =',nama);
write('Nama koreksi =');readln(nama);
writeln('SKS =',sks);
write('SKS koreksi =');readln(sks);
writeln('IPK =',ipk:3:2);
write('ipk =');readln(ipk);
end;
writeln(pemindah,npm:10,nama:25,sks:4,' ',ipk:3:2);
end; {akhir while}
if not ketemu then
writeln('data mahasiswa tidak ada');
close(tipefile);
close(pemindah);
erase(tipefile);
rename(pemindah,'agung.txt');
writeln;
write('ada lagi =');readln(lagi);
end;
end;
procedure tampil;
begin
clrscr;
11. assign(tipefile,'agung.txt');
reset(tipefile);
writeln('--------------------------------------------');
writeln('N P M NAMA S K S IPK ');
WRITELN('--------------------------------------------');
while not eof(tipefile) do
begin
readln(tipefile,npm,nama,sks,ipk);
writeln(npm:10,nama:25,sks:4,' ',ipk:3:2);
end;
writeln('-----------------------------------------------');
close(tipefile);
readln;
end;
{program utama}
VAR
PILIH : CHAR;
status : boolean;
LABEL AWAL;
begin
status:=true ;
while status do
begin
clrscr;
WRITELN(' MENU PILIHAN ');
WRITELN(' PILIH SALAH SATU');
WRITELN('-------------------------------');
WRITELN('1. ISI DATA ');
WRITELN('2. TAMPIL DATA');
WRITELN('3. TAMBAH DATA');
WRITELN('4. RUBAH DATA ');
WRITELN('5. PILIH DATA ');
WRITELN('6. SELESAI ');
WRITELN('-------------------------------');
AWAL :
PILIH:=' ';
WRITE(' PILIHAN ANDA =');READLN(PILIH);
PILIH:=UPCASE(PILIH);
IF NOT (PILIH IN ['1'..'6']) THEN
BEGIN
WRITELN(CHR(7));
WRITELN('PILIHAN SALAH');
GOTO AWAL;
END;
CASE PILIH OF
'1' : ISIDATA;
'2' : TAMPIL;
'3' : TAMBAHDATA;
'4' : RUBAHDATA;
'5' : PILIHDATA;
'6' : begin