ƒ File bertipe record
„ -------------------
Pada file bertipe dapat diakses secara urut, dapat juga diakses
secara acak. Berarti komponen- komponen di dalam file bertipe
dapat dibaca atau direkamkan di manapun di dalam file, beda dengan
file text yang hanya dapat diakses secara sequential(urut).
dalam membuka file bertipe ada 2 cara yaitu dengan ,
Rewrite -> Untuk membuat dan sekaligus membuka file baru .
Reset -> Untuk membuka file yang sudah ada.
File bertipe dapat bertipe integer, real, char, string, array dan
record , namun disini akan dibahas file bertipe record.
Untuk file bertipe baik yang dibuka dengan procedure standard
rewrite ataupun reset mempunyai sifat read/write, yaitu dapat
membaca dan merekamkan data ke dalam file bertipe sekaligus.
Sedang pada file text hanya mempunyai satu keadaan yaitu read atau
write saja.
Untuk membuat suatu file yang dibuka menjadi read-only atau write-
only dapat digunakan variabel terdefinisi yaitu : filemode
secara default Filemode bernilai 2 yang berarti bisa read/write.
„ I. Procedure dan fungsi standard untuk file bertipe
Selain procedure dan fungsi standard yang dapat digunakan untuk
semua tipe file (dapat dilihat di modul file dan directory). Masih
terdapat beberapa procedure dan fungsi standard lainya yang dapat
digunakan di file bertipe, yaitu :
… I.1. Procedure standard write dan read
write digunakan untuk merekamkan satu atau lebih nilai ke dalam
file.
Read digunakan untuk membaca satu atau lebih nilai dari file.
Perbedaan penggunaan dari procedure ini adalah terletak pada
variabel file yang digunakan.
… I.2. Procedure standard Seek
Digunakan untuk mengarahkan penunjuk file ke suatu komponen ter
tentu di dalam file, sehingga memungkinkan untuk membaca komponen
atau menuliskan komponen secara acak.
sintak :
seek(f;n : logint);
f = variabel file
n = posisi record
komponen pertama record adalah adalah bernomor 0.
ex :
seek(filepeg,5);
read(filepeg,No_peg,Nama,Alamat);
menunjukkan komponen record ke 6 (nomor 5) di baca dari file.
… I.3. Procedure Standard Truncate
Digunakan untuk menghapus sejumlah komponen atau record mulai dari
posisi record tertentu.
Sintak :
Truncate(F);
ex :
seek(filepeg,5);
Truncate(filepeg);
Pada contoh diatas mulai no record ke 5 (komponen ke 6) sampai
terakhir akan dihapus dari file.
… I.4. Fungsi Standard Filepos
Fungsi standard ini digunakan untuk menghasilkan letak posisi
sekarang dari penunjuk file dengan sintak :
Filepos(f):longint;
Ex :
seek(filepeg,5);
Writeln(filepos(filepeg));
Pada contoh ini, penunjuk file diarahkan ke nomor record 5 dan
bila digunakan fungsi filepos maka akan dihasilkan nilai integer 5
, yang merupakan letak dari penunjuk file.
… I.5. Fungsi standard Filesize
Fungsi standard ini digunakan untuk menghasilkan jumlah dari
komponen atau record yang tersedia di file.
sintak :
Filesize(f):longint;
Fungsi ini harus digunakan setelah file dibuka dan tidak dapat
digunakan sebelum file dibuka.
Ex :
Assign(filepeg,'Pegawai.dat');
Reset(filepeg);
writeln('Jumlah record yang ada =',filesize(filepeg));
Contoh listing program dari penanganan file bertipe record seperti
membuat file baru, menambah data record di file, mengedit data
record, dan menampilkan data record.
Ex.1 :
Program membuat_file_baru_dan_isi;
uses crt;
type
mahasiswa=record
npm : string[10];
nama: string[25];
kls : string[4];
ipk : real;
end;
var
filesiswa : file of mahasiswa;
{deklarasi file siswa sebagai file record mahasiswa}
recordsiswa : mahasiswa;
lagi : char;
begin
assign(filesiswa,'siswa.dat');
{menghubungkan variabel file dgn external file}
rewrite(filesiswa);
{buka file baru filesiswa jika ada akan langsung tertimpa}
lagi := 'Y';
while upcase(lagi)='Y' do
begin
clrscr;
with recordsiswa do{menyertakan penyebut record}
begin
write('N P M =');readln(npm);
write('Nama =');readln(nama);
write('Kelas =');readln(kls);
write('I P K =');readln(ipk);
end;
write(filesiswa,recordsiswa);
{menulis isi recordsiswa ke file siwa}
write('ada data lagi =');readln(lagi);
end;
close(filesiswa); {tutup filesiswa}
end.
program tampildata;
uses crt;
type
mahasiswa = record
npm : string[10];
nama : string[25];
kls : string[4];
ipk : real;
end;
var
filesiswa : file of mahasiswa;
{filesiswa adalah file bertipe record mahasiswa}
recordsiswa : mahasiswa;
begin
assign(filesiswa,'siswa.dat');
{hubungkan varibel file dengan external file}
reset(filesiswa); {membuka file yang sudah ada }
clrscr;
while not eof(filesiswa) do begin
read(filesiswa,recordsiswa);
{membaca isi filesiswa lalu dimasukan ke recordsiswa}
with recordsiswa do
writeln(npm:10,nama:25,kls:4,ipk:3:2);
{menampilkan dilayar}
end;
close(filesiswa);{menutup file }
readln;
end.
Program mencari_record;
uses crt;
type
mahasiswa=record
npm : string[10];
nama: string[25];
kls : string[4];
ipk : real;
end;
var
filesiswa : file of mahasiswa;
recordsiswa : mahasiswa;
CariNpm : string[10];
ketemu : boolean;
lagi : char;
begin
assign(filesiswa,'siswa.dat');
{menghubungkan varibel file dgn external file}
reset(filesiswa);{buka file yang sudah ada}
lagi := 'Y';
while upcase(lagi)='Y' do
begin
ketemu := false;
write('Npm yang dicari =');readln(carinpm);
{masukan npm yang akan dicari}
while not eof(filesiswa) do
{baca selam isi filesiswa blm habis}
begin
read(filesiswa,recordsiswa);
{baca isi filesiswa lalu dimasukan ke recordsiwa}
if recordsiswa.npm =carinpm then
begin
ketemu := true;
with recordsiswa do
writeln(npm:10,nama:25,kls:4,ipk:3:2);
end;
end;
if ketemu=false then
writeln('data tidak ada');
write('cari lagi =');readln(lagi);
seek(filesiswa,0);
end;
close(filesiswa);
end.
program koreksi_data;
uses crt;
type
mahasiswa=record
npm : string[10];
nama : string[25];
kls : string[4];
ipk : real;
end;
var
filesiswa : file of mahasiswa;
recordsiswa : mahasiswa;
ketemu : boolean;
lagi : char;
npmcari:string[10];
jumrec,i : integer;
begin
assign(filesiswa,'siswa.dat');
{menghubungkan tipefile dengan external file}
reset(filesiswa);{buka file yang sudah ada }
jumrec := filesize(filesiswa);
{menghitung jumlah record di file}
lagi := 'Y';
while upcase(lagi)='Y' do
begin
write('NPM yang dicari =');readln(Npmcari);
for i:= 1 to jumrec do
begin
seek(filesiswa,i-1);
{Cari record di file siswa pada posisi i}
read(filesiswa,recordsiswa);{baca isi record di file}
if recordsiswa.npm=npmcari then
begin
ketemu:=true;
with recordsiswa do
begin
writeln('npm =',npm:10);
write('npm koreksi =');readln(npm);
writeln('nama =',nama:25);
write('nama koreksi =');readln(nama);
writeln('Kls =',kls:4);
write('Kls koreksi =');readln(kls);
writeln('Ipk =',ipk:3:2);
write('IPK koreksi =');readln(ipk);
end;
end;
seek(filesiswa,i-1);
write(filesiswa,recordsiswa);
end;
if not ketemu then
writeln('data tidak ada');
write('isi lagi =');readln(lagi);
end;
close(filesiswa);
end.
program tambah_data;
type
mahasiswa=record
npm : string[10];
nama: string[25];
kls : string[4];
ipk : real;
end;
var
filesiswa : file of mahasiswa;
recordsiswa : mahasiswa;
lagi:char;
begin
assign(filesiswa,'siswa.dat');
{i$-}
reset(filesiswa); {i$+}
if ioresult <> 0 then rewrite(filesiswa);
lagi :='Y';
seek(filesiswa,filesize(filesiswa));
while upcase(lagi)='Y' do
begin
with recordsiswa do
begin
write('Npm =');readln(npm);
write('nama =');readln(nama);
write('kelas =');readln(kls);
write('IPK =');readln(ipk);
end;
write(filesiswa,recordsiswa);
write('isi lagi =');readln(lagi);
end;
close(filesiswa);
end.
program menu_file;
uses crt;
type
mahasiswa=record
npm : string[10];
nama: string[25];
kls : string[4];
ipk :real;
end;
var
filesiswa : file of mahasiswa;
recordsiswa : mahasiswa;
procedure filebaru;
var
lagi : char;
begin
assign(filesiswa,'siswa.dat');
rewrite(filesiswa);
lagi := 'Y';
while upcase(lagi)='Y' do
begin
clrscr;
with recordsiswa do
begin
write('N P M =');readln(npm);
write('Nama =');readln(nama);
write('Kelas =');readln(kls);
write('I P K =');readln(ipk);
end;
write(filesiswa,recordsiswa);
write('ada data lagi =');readln(lagi);
end;
close(filesiswa);
end;
procedure tambahdata;
var
lagi:char;
begin
assign(filesiswa,'siswa.dat');
{i$-}
reset(filesiswa); {i$+}
if ioresult <> 0 then rewrite(filesiswa);
lagi :='Y';
seek(filesiswa,filesize(filesiswa));
while upcase(lagi)='Y' do
begin
with recordsiswa do
begin
write('Npm =');readln(npm);
write('nama =');readln(nama);
write('kelas =');readln(kls);
write('IPK =');readln(ipk);
end;
write(filesiswa,recordsiswa);
write('isi lagi =');readln(lagi);
end;
close(filesiswa);
end;
procedure koreksidata;
var
ketemu : boolean;
lagi : char;
npmcari:string[10];
jumrec,i : integer;
begin
assign(filesiswa,'siswa.dat');
reset(filesiswa);
jumrec := filesize(filesiswa);
lagi := 'Y';
while upcase(lagi)='Y' do
begin
ketemu := false;
write('NPM yang dicari =');readln(Npmcari);
for i:= 1 to jumrec do
begin
seek(filesiswa,i-1);
read(filesiswa,recordsiswa);
if recordsiswa.npm=npmcari then
begin
ketemu:=true;
with recordsiswa do
begin
writeln('npm =',npm:10);
write('npm koreksi =');readln(npm);
writeln('nama =',nama:25);
write('nama koreksi =');readln(nama);
writeln('Kls =',kls:4);
write('Kls koreksi =');readln(kls);
writeln('Ipk =',ipk:3:2);
write('IPK koreksi =');readln(ipk);
end;
end;
seek(filesiswa,i-1);
write(filesiswa,recordsiswa);
end;
if not ketemu then
writeln('data tidak ada');
write('isi lagi =');readln(lagi);
end;
close(filesiswa);
end;
procedure tampildata;
begin
assign(filesiswa,'siswa.dat');
reset(filesiswa);
clrscr;
while not eof(filesiswa) do
begin
read(filesiswa,recordsiswa);
with recordsiswa do
writeln(npm:10,nama:25,kls:4,ipk:3:2);
end;
close(filesiswa);
readln;
end;
procedure caridata;
var
CariNpm : string[10];
ketemu : boolean;
lagi : char;
begin
assign(filesiswa,'siswa.dat');
reset(filesiswa);
lagi := 'Y';
while upcase(lagi)='Y' do
begin
ketemu := false;
write('Npm yang dicari =');readln(carinpm);
while not eof(filesiswa) do
begin
read(filesiswa,recordsiswa);
if recordsiswa.npm =carinpm then
begin
ketemu := true;
with recordsiswa do
writeln(npm:10,nama:25,kls:4,ipk:3:2);
end;
end;
if ketemu=false then
writeln('data tidak ada');
write('cari lagi =');readln(lagi);
seek(filesiswa,0);
end;
close(filesiswa);
end;
{modul utama}
var
pil : char;
flag : boolean;
label awal;
begin
flag := true;
while flag = true do
begin
awal :
clrscr;
writeln('Pilihan menu file bertipe record');
writeln('1. file baru dan isi');
writeln('2. Tambah data ');
writeln('3. Koreksi data berdasar npm ');
writeln('4. Cari data berdasar npm ');
writeln('5. Tampil data ');
writeln('6. keluar');
writeln;
write('Pilihan anda =');readln(pil);
if not (pil in ['1'..'6']) then
begin
writeln(char(7));
writeln('Data tidak ada');
goto awal;
end;
case pil of
'1' : filebaru;
'2' : tambahdata;
'3' : koreksidata;
'4' : caridata;
'5' : tampildata;
'6' : halt;
end;
end;
end.

More Related Content

PDF
Pascal - FileText.txt - Notepad.pdf
PDF
pengaksesan-berkas-file-dalam-c.pdf
PPT
Bab 12 file_manipulation
PPTX
MANAJEMEN FILE IO DENGAN PYTHON.pptx
PPTX
Algoritma pemrograman 15
PDF
Pascal - FileDirectory.txt - Notepad.pdf
DOCX
Modul1
PDF
Algoritma dan Struktur Data - Operasi File
Pascal - FileText.txt - Notepad.pdf
pengaksesan-berkas-file-dalam-c.pdf
Bab 12 file_manipulation
MANAJEMEN FILE IO DENGAN PYTHON.pptx
Algoritma pemrograman 15
Pascal - FileDirectory.txt - Notepad.pdf
Modul1
Algoritma dan Struktur Data - Operasi File

Similar to Pascal - FileRecord.txt - Notepad.pdf (6)

PDF
Algoritma dan Struktur Data - operasi file
PDF
Cheat sheet berdasarkan kategori
PDF
Cheat Sheet Ubuntu
PDF
Pengenalan Teknologi Informasi - 7 - File
DOCX
Perintah perintah dasar linux
DOCX
Modul Praktikum PW 2016 Bab 4 - OperasiFile
Algoritma dan Struktur Data - operasi file
Cheat sheet berdasarkan kategori
Cheat Sheet Ubuntu
Pengenalan Teknologi Informasi - 7 - File
Perintah perintah dasar linux
Modul Praktikum PW 2016 Bab 4 - OperasiFile
Ad

More from Jurnal IT (20)

PDF
Belajar Java Dasar
PDF
12_Sinkronisasi.pdf
PDF
11_GUI Pada Java.pdf
PDF
9_Multithreading.pdf
PDF
8_Penangan Eksepsi.pdf
PDF
7_Packages.pdf
PDF
6_String.pdf
PDF
5_Pewarisan.pdf
PDF
4_Array.pdf
PDF
3_Pengertian_Class_Object_Method.pdf
PDF
2_Struktur_kontrol.pdf
PDF
1_Pengenalan_Java.pdf
PDF
delphi part 13.pdf
PDF
delphi part 11.pdf
PDF
delphi part 8 new.pdf
PDF
delphi part 7 new.pdf
PDF
delphi part 6.pdf
PDF
delphi part 5.pdf
PDF
delphi part 4.pdf
PDF
delphi part 3.pdf
Belajar Java Dasar
12_Sinkronisasi.pdf
11_GUI Pada Java.pdf
9_Multithreading.pdf
8_Penangan Eksepsi.pdf
7_Packages.pdf
6_String.pdf
5_Pewarisan.pdf
4_Array.pdf
3_Pengertian_Class_Object_Method.pdf
2_Struktur_kontrol.pdf
1_Pengenalan_Java.pdf
delphi part 13.pdf
delphi part 11.pdf
delphi part 8 new.pdf
delphi part 7 new.pdf
delphi part 6.pdf
delphi part 5.pdf
delphi part 4.pdf
delphi part 3.pdf
Ad

Recently uploaded (20)

PPTX
Presentasi Al-Quran Hadits Kelompok XI.1
PPTX
7 KEBIASAAN ANAK INDONESIA HEBAT.pptx xx
PDF
Ilmu tentang pengembangan teknologi pembelajaran
PPTX
SISTEM POLITIK DAN PEMERINTAHAN INDONESIA.pptx
PPTX
Saint Maximilian Kolbe, Polish friar, priest, missionary and martyr (indonesi...
PDF
Konsep Dasar Nifas, Neonatus, Bayi, Balita dan Anak Pra Sekolah.pdf
PPTX
PPT REVISED - SEMINAR PEMBELAJARAN MENDALAM .pptx
PDF
12. KSP SD Runiah Makassar OK School.pdf
PDF
Laporan On The Job TRaining PM KS Siti Hikmah.pdf
PPTX
PPT POLA PIKIR BERTUMBUH Grow Mindset_2025.pptx
PDF
LK - Kerangka Pembelajaran Mendalam luring 4 Herpina Indah Permata Sari.pdf
DOCX
Modul Ajar Pembelajaran Mendalam PKN Kelas X Terbaru 2025
DOCX
Modul Ajar Pembelajaran Mendalam PKWU Kerajinan Kelas XII SMA Terbaru 2025
PDF
RPP PEMBELAJARAN MENDALAM BAHASA INDONESIA _SariIndah_DEWI SINTA (1).pdf
PPTX
ppt_bola_basket_kelas x sma mata pelajaran pjok.pptx
PPTX
Modul ajar kelas 5 sd kecerdasan artifisial pptx
PDF
Modul Ajar Deep Learning Bahasa Indonesia Kelas 6 Kurikulum Merdeka
PDF
Laktasi dan Menyusui (MK Askeb Esensial Nifas, Neonatus, Bayi, Balita dan Ana...
PDF
2021 KREATIFITAS DNA INOVASI DALAM BERWIRAUSAHA.pdf
PDF
Sosialisasi Menu DAK NF TA 2026 Promkeskom.pdf
Presentasi Al-Quran Hadits Kelompok XI.1
7 KEBIASAAN ANAK INDONESIA HEBAT.pptx xx
Ilmu tentang pengembangan teknologi pembelajaran
SISTEM POLITIK DAN PEMERINTAHAN INDONESIA.pptx
Saint Maximilian Kolbe, Polish friar, priest, missionary and martyr (indonesi...
Konsep Dasar Nifas, Neonatus, Bayi, Balita dan Anak Pra Sekolah.pdf
PPT REVISED - SEMINAR PEMBELAJARAN MENDALAM .pptx
12. KSP SD Runiah Makassar OK School.pdf
Laporan On The Job TRaining PM KS Siti Hikmah.pdf
PPT POLA PIKIR BERTUMBUH Grow Mindset_2025.pptx
LK - Kerangka Pembelajaran Mendalam luring 4 Herpina Indah Permata Sari.pdf
Modul Ajar Pembelajaran Mendalam PKN Kelas X Terbaru 2025
Modul Ajar Pembelajaran Mendalam PKWU Kerajinan Kelas XII SMA Terbaru 2025
RPP PEMBELAJARAN MENDALAM BAHASA INDONESIA _SariIndah_DEWI SINTA (1).pdf
ppt_bola_basket_kelas x sma mata pelajaran pjok.pptx
Modul ajar kelas 5 sd kecerdasan artifisial pptx
Modul Ajar Deep Learning Bahasa Indonesia Kelas 6 Kurikulum Merdeka
Laktasi dan Menyusui (MK Askeb Esensial Nifas, Neonatus, Bayi, Balita dan Ana...
2021 KREATIFITAS DNA INOVASI DALAM BERWIRAUSAHA.pdf
Sosialisasi Menu DAK NF TA 2026 Promkeskom.pdf

Pascal - FileRecord.txt - Notepad.pdf

  • 1. ƒ File bertipe record „ ------------------- Pada file bertipe dapat diakses secara urut, dapat juga diakses secara acak. Berarti komponen- komponen di dalam file bertipe dapat dibaca atau direkamkan di manapun di dalam file, beda dengan file text yang hanya dapat diakses secara sequential(urut). dalam membuka file bertipe ada 2 cara yaitu dengan , Rewrite -> Untuk membuat dan sekaligus membuka file baru . Reset -> Untuk membuka file yang sudah ada. File bertipe dapat bertipe integer, real, char, string, array dan record , namun disini akan dibahas file bertipe record. Untuk file bertipe baik yang dibuka dengan procedure standard rewrite ataupun reset mempunyai sifat read/write, yaitu dapat membaca dan merekamkan data ke dalam file bertipe sekaligus. Sedang pada file text hanya mempunyai satu keadaan yaitu read atau write saja. Untuk membuat suatu file yang dibuka menjadi read-only atau write- only dapat digunakan variabel terdefinisi yaitu : filemode secara default Filemode bernilai 2 yang berarti bisa read/write. „ I. Procedure dan fungsi standard untuk file bertipe Selain procedure dan fungsi standard yang dapat digunakan untuk semua tipe file (dapat dilihat di modul file dan directory). Masih terdapat beberapa procedure dan fungsi standard lainya yang dapat digunakan di file bertipe, yaitu : … I.1. Procedure standard write dan read write digunakan untuk merekamkan satu atau lebih nilai ke dalam file. Read digunakan untuk membaca satu atau lebih nilai dari file. Perbedaan penggunaan dari procedure ini adalah terletak pada variabel file yang digunakan. … I.2. Procedure standard Seek Digunakan untuk mengarahkan penunjuk file ke suatu komponen ter tentu di dalam file, sehingga memungkinkan untuk membaca komponen atau menuliskan komponen secara acak.
  • 2. sintak : seek(f;n : logint); f = variabel file n = posisi record komponen pertama record adalah adalah bernomor 0. ex : seek(filepeg,5); read(filepeg,No_peg,Nama,Alamat); menunjukkan komponen record ke 6 (nomor 5) di baca dari file. … I.3. Procedure Standard Truncate Digunakan untuk menghapus sejumlah komponen atau record mulai dari posisi record tertentu. Sintak : Truncate(F); ex : seek(filepeg,5); Truncate(filepeg); Pada contoh diatas mulai no record ke 5 (komponen ke 6) sampai terakhir akan dihapus dari file. … I.4. Fungsi Standard Filepos Fungsi standard ini digunakan untuk menghasilkan letak posisi sekarang dari penunjuk file dengan sintak : Filepos(f):longint; Ex : seek(filepeg,5); Writeln(filepos(filepeg)); Pada contoh ini, penunjuk file diarahkan ke nomor record 5 dan bila digunakan fungsi filepos maka akan dihasilkan nilai integer 5 , yang merupakan letak dari penunjuk file. … I.5. Fungsi standard Filesize Fungsi standard ini digunakan untuk menghasilkan jumlah dari komponen atau record yang tersedia di file. sintak : Filesize(f):longint; Fungsi ini harus digunakan setelah file dibuka dan tidak dapat digunakan sebelum file dibuka. Ex : Assign(filepeg,'Pegawai.dat'); Reset(filepeg); writeln('Jumlah record yang ada =',filesize(filepeg)); Contoh listing program dari penanganan file bertipe record seperti membuat file baru, menambah data record di file, mengedit data record, dan menampilkan data record.
  • 3. Ex.1 : Program membuat_file_baru_dan_isi; uses crt; type mahasiswa=record npm : string[10]; nama: string[25]; kls : string[4]; ipk : real; end; var filesiswa : file of mahasiswa; {deklarasi file siswa sebagai file record mahasiswa} recordsiswa : mahasiswa; lagi : char; begin assign(filesiswa,'siswa.dat'); {menghubungkan variabel file dgn external file} rewrite(filesiswa); {buka file baru filesiswa jika ada akan langsung tertimpa} lagi := 'Y'; while upcase(lagi)='Y' do begin clrscr; with recordsiswa do{menyertakan penyebut record} begin write('N P M =');readln(npm); write('Nama =');readln(nama); write('Kelas =');readln(kls); write('I P K =');readln(ipk); end; write(filesiswa,recordsiswa); {menulis isi recordsiswa ke file siwa} write('ada data lagi =');readln(lagi); end; close(filesiswa); {tutup filesiswa} end. program tampildata; uses crt; type mahasiswa = record npm : string[10]; nama : string[25]; kls : string[4]; ipk : real; end; var filesiswa : file of mahasiswa; {filesiswa adalah file bertipe record mahasiswa}
  • 4. recordsiswa : mahasiswa; begin assign(filesiswa,'siswa.dat'); {hubungkan varibel file dengan external file} reset(filesiswa); {membuka file yang sudah ada } clrscr; while not eof(filesiswa) do begin read(filesiswa,recordsiswa); {membaca isi filesiswa lalu dimasukan ke recordsiswa} with recordsiswa do writeln(npm:10,nama:25,kls:4,ipk:3:2); {menampilkan dilayar} end; close(filesiswa);{menutup file } readln; end. Program mencari_record; uses crt; type mahasiswa=record npm : string[10]; nama: string[25]; kls : string[4]; ipk : real; end; var filesiswa : file of mahasiswa; recordsiswa : mahasiswa; CariNpm : string[10]; ketemu : boolean; lagi : char; begin assign(filesiswa,'siswa.dat'); {menghubungkan varibel file dgn external file} reset(filesiswa);{buka file yang sudah ada} lagi := 'Y'; while upcase(lagi)='Y' do begin ketemu := false; write('Npm yang dicari =');readln(carinpm); {masukan npm yang akan dicari} while not eof(filesiswa) do {baca selam isi filesiswa blm habis} begin read(filesiswa,recordsiswa); {baca isi filesiswa lalu dimasukan ke recordsiwa} if recordsiswa.npm =carinpm then begin ketemu := true; with recordsiswa do
  • 5. writeln(npm:10,nama:25,kls:4,ipk:3:2); end; end; if ketemu=false then writeln('data tidak ada'); write('cari lagi =');readln(lagi); seek(filesiswa,0); end; close(filesiswa); end. program koreksi_data; uses crt; type mahasiswa=record npm : string[10]; nama : string[25]; kls : string[4]; ipk : real; end; var filesiswa : file of mahasiswa; recordsiswa : mahasiswa; ketemu : boolean; lagi : char; npmcari:string[10]; jumrec,i : integer; begin assign(filesiswa,'siswa.dat'); {menghubungkan tipefile dengan external file} reset(filesiswa);{buka file yang sudah ada } jumrec := filesize(filesiswa); {menghitung jumlah record di file} lagi := 'Y'; while upcase(lagi)='Y' do begin write('NPM yang dicari =');readln(Npmcari); for i:= 1 to jumrec do begin seek(filesiswa,i-1); {Cari record di file siswa pada posisi i} read(filesiswa,recordsiswa);{baca isi record di file} if recordsiswa.npm=npmcari then begin ketemu:=true; with recordsiswa do begin writeln('npm =',npm:10); write('npm koreksi =');readln(npm); writeln('nama =',nama:25); write('nama koreksi =');readln(nama);
  • 6. writeln('Kls =',kls:4); write('Kls koreksi =');readln(kls); writeln('Ipk =',ipk:3:2); write('IPK koreksi =');readln(ipk); end; end; seek(filesiswa,i-1); write(filesiswa,recordsiswa); end; if not ketemu then writeln('data tidak ada'); write('isi lagi =');readln(lagi); end; close(filesiswa); end. program tambah_data; type mahasiswa=record npm : string[10]; nama: string[25]; kls : string[4]; ipk : real; end; var filesiswa : file of mahasiswa; recordsiswa : mahasiswa; lagi:char; begin assign(filesiswa,'siswa.dat'); {i$-} reset(filesiswa); {i$+} if ioresult <> 0 then rewrite(filesiswa); lagi :='Y'; seek(filesiswa,filesize(filesiswa)); while upcase(lagi)='Y' do begin with recordsiswa do begin write('Npm =');readln(npm); write('nama =');readln(nama); write('kelas =');readln(kls); write('IPK =');readln(ipk); end; write(filesiswa,recordsiswa); write('isi lagi =');readln(lagi); end; close(filesiswa); end. program menu_file;
  • 7. uses crt; type mahasiswa=record npm : string[10]; nama: string[25]; kls : string[4]; ipk :real; end; var filesiswa : file of mahasiswa; recordsiswa : mahasiswa; procedure filebaru; var lagi : char; begin assign(filesiswa,'siswa.dat'); rewrite(filesiswa); lagi := 'Y'; while upcase(lagi)='Y' do begin clrscr; with recordsiswa do begin write('N P M =');readln(npm); write('Nama =');readln(nama); write('Kelas =');readln(kls); write('I P K =');readln(ipk); end; write(filesiswa,recordsiswa); write('ada data lagi =');readln(lagi); end; close(filesiswa); end; procedure tambahdata; var lagi:char; begin assign(filesiswa,'siswa.dat'); {i$-} reset(filesiswa); {i$+} if ioresult <> 0 then rewrite(filesiswa); lagi :='Y'; seek(filesiswa,filesize(filesiswa)); while upcase(lagi)='Y' do begin with recordsiswa do begin write('Npm =');readln(npm); write('nama =');readln(nama);
  • 8. write('kelas =');readln(kls); write('IPK =');readln(ipk); end; write(filesiswa,recordsiswa); write('isi lagi =');readln(lagi); end; close(filesiswa); end; procedure koreksidata; var ketemu : boolean; lagi : char; npmcari:string[10]; jumrec,i : integer; begin assign(filesiswa,'siswa.dat'); reset(filesiswa); jumrec := filesize(filesiswa); lagi := 'Y'; while upcase(lagi)='Y' do begin ketemu := false; write('NPM yang dicari =');readln(Npmcari); for i:= 1 to jumrec do begin seek(filesiswa,i-1); read(filesiswa,recordsiswa); if recordsiswa.npm=npmcari then begin ketemu:=true; with recordsiswa do begin writeln('npm =',npm:10); write('npm koreksi =');readln(npm); writeln('nama =',nama:25); write('nama koreksi =');readln(nama); writeln('Kls =',kls:4); write('Kls koreksi =');readln(kls); writeln('Ipk =',ipk:3:2); write('IPK koreksi =');readln(ipk); end; end; seek(filesiswa,i-1); write(filesiswa,recordsiswa); end; if not ketemu then writeln('data tidak ada'); write('isi lagi =');readln(lagi); end; close(filesiswa);
  • 9. end; procedure tampildata; begin assign(filesiswa,'siswa.dat'); reset(filesiswa); clrscr; while not eof(filesiswa) do begin read(filesiswa,recordsiswa); with recordsiswa do writeln(npm:10,nama:25,kls:4,ipk:3:2); end; close(filesiswa); readln; end; procedure caridata; var CariNpm : string[10]; ketemu : boolean; lagi : char; begin assign(filesiswa,'siswa.dat'); reset(filesiswa); lagi := 'Y'; while upcase(lagi)='Y' do begin ketemu := false; write('Npm yang dicari =');readln(carinpm); while not eof(filesiswa) do begin read(filesiswa,recordsiswa); if recordsiswa.npm =carinpm then begin ketemu := true; with recordsiswa do writeln(npm:10,nama:25,kls:4,ipk:3:2); end; end; if ketemu=false then writeln('data tidak ada'); write('cari lagi =');readln(lagi); seek(filesiswa,0); end; close(filesiswa); end; {modul utama} var
  • 10. pil : char; flag : boolean; label awal; begin flag := true; while flag = true do begin awal : clrscr; writeln('Pilihan menu file bertipe record'); writeln('1. file baru dan isi'); writeln('2. Tambah data '); writeln('3. Koreksi data berdasar npm '); writeln('4. Cari data berdasar npm '); writeln('5. Tampil data '); writeln('6. keluar'); writeln; write('Pilihan anda =');readln(pil); if not (pil in ['1'..'6']) then begin writeln(char(7)); writeln('Data tidak ada'); goto awal; end; case pil of '1' : filebaru; '2' : tambahdata; '3' : koreksidata; '4' : caridata; '5' : tampildata; '6' : halt; end; end; end.