Anda di halaman 1dari 12

Nama : Ryan Delon Pratama

Nim : 223020503059

Mahasiswa berlatih melakukan manajemen data pada file melalui Pemrograman Pascal
Jawablah pertanyaan di bawah ini
1. Mengapa perlu menggunakan operasi File pada Pemrograman Pascal?
2. Baca dan pahami contoh implementasi File Handling text pada laman berikut:
http://www.baskent.edu.tr/~tkaracay/etudio/ders/prg/pascal/PasHTM1/pas/pasl1012.h
tml dan implementasikan program yang dapat melakukan hal-hal berikut:
 Format file txt
 Menyimpan nama dalam file (untuk berhenti menginputkan nama, masukkan baris
kosong)
 menampilkan nama yang ada dalam file
 Buat penjelasan/komentar pada kode yang dibuat
3. Baca dan pahami contoh implementasi File Handling binary pada laman berikut:
http://www.baskent.edu.tr/~tkaracay/etudio/ders/prg/pascal/PasHTM1/pas/pasl1013.h
tml dan implementasikan program yang dapat melakukan hal-hal berikut:
 format file bin
 Menyimpan data mahasiswa dalam file (tata berupa record yang berisi nama, nim,
usia, tinggi badan)
 Menampilkan seluruh data mahasiswa dari file ke layar
 Menerima input NIM dan menampilkan data mahasiswa tersebut di layar
 Menghapus data 1 mahasiswa dengan nim tertentu
 Buat penjelasan/komentar pada kode yang dibuat

File dikumpulkan dalam bentuk PDF dan berisi source code (diketik)
dan screenshot hasil running program
Jawaban:

1. Operasi File pada Pemrograman Pascal diperlukan untuk membuat atau menyimpan
suatu data kedalam format file yang bisa berupa .txt atau .bin. Selain itu operasi file
digunakan juga untuk menampilkan data dari file ke terminal atau interface suatu
program.
2. Kode Program:

Program filetxt;

uses crt;

var
s, namafile: string;
t: text;
menu: integer;
r: char;

procedure inputdata;
begin
assign(t, namafile);
rewrite(t);
repeat
readln(s);
if s='' then break;
writeln(t,s);
until true;
close(t);
end;

procedure bukafile;
begin
assign(t, namafile);
reset(t);
while not eof(t) do
begin
readln(t,s);
writeln(s);
end;
close(t);
end;

begin
r:='y';
repeat
begin
clrscr;
WriteLn('======= Program File .txt =======');
writeln('======= Menu =======');
WriteLn('1. Input Data Ke File');
WriteLn('2. Buka Data Dari File');
WriteLn('=================================');
write('Masukan Input Menu : ');Readln(menu);
case menu of
1 : begin
write('Masukan Nama File : ');readln(namafile);
writeln;
writeln('==== Silahkan Input Dibawah ====');
inputdata;
end;
2 : begin
write('Masukan Nama File : ');readln(namafile);
Writeln('Isi File : ');
bukafile;
end;
end;
WriteLn;
write('Ingin Mengulang?(y/n) = ');readln(r);
end;
until (r ='n');
end.

Pembahasan:
Pada program file handling tugas 2 ini menggunakan variabel string untuk teks(s)
dan nama filenya, lalu variabel integer untuk inputan opsi menu, dan variabel char
untuk operasi pengulangan repeat(r). Pada program ini digunakan 2 procedure. Yang
pertama procedure untuk menginput data menggunakan operasi assign_rewrite,
pengulangan repeat, dan operasi if_break. Lalu yang kedua procedure untuk membaca
file menggunakan operasi assign_reset dan pengulangan while_not_do. Pada bagian
utama terdiri dari writeln sebagai teks keterangan dan write sebagai teks perintah yang
di gunakan bersamaan dengan readln sebagai wadah untuk inputan, dan operasi
pengulangan Repeat. Lalu terdapat case of sebagai opsi dari menu yang berisi writeln,
write dan readln sebagai wadah inputan dan nama procedure untuk memanggil
procedure.

Gambar 2.1. Run Program Pada Terminal

Gambar 2.2. Program Dengan Opsi 1 Gambar 2.3. Program Dengan Opsi 2
Gambar 2.3. Data Pada File .txt

3. Kode Program:

Program Data_Mahasiswa;

uses crt;

type
dataMS = record
nama : string;
nim : string;
usia : byte;
tinggi_badan: integer;
end;

var
Filedat : file of dataMS;
InNim, filename : string;
dat : dataMS;
i,totalrecord,menu,n: integer;
c,r : char;

procedure inputdatamahasiswa;
begin
writeln('input data mahasiswa');
writeln;
rewrite(Filedat);
repeat
write('Nama = ');readln(dat.nama);
write('Nim = ');readln(dat.nim);
write('Usia = ');readln(dat.usia);
write('Tinggi Badan = ');readln(dat.tinggi_badan);
write(Filedat,dat);
writeln;
writeln('Tambahkan Data ? (Y/T) ');
repeat
c := upcase(readkey);
until c in ['Y','T'];
until c='T';
close(Filedat);
end;

procedure tampilkandata;
begin
reset(Filedat);
totalrecord := FileSize(Filedat);
for i := 0 to totalrecord-1 do
begin
seek(Filedat,i);
read(Filedat,dat);
WriteLn('Data ',i+1);
writeln('Nama = ',dat.nama);
writeln('NIM = ',dat.nim);
writeln('Usia = ',dat.usia);
writeln('Tinggi Badan = ',dat.tinggi_badan);
writeln;
end;
close(Filedat);
end;

procedure carisesuainim;
begin
reset(Filedat);
writeln;
totalrecord := filesize(Filedat);
for i := 0 to totalrecord-1 do
begin
seek(Filedat,i);
read(Filedat,dat);
if InNim = dat.nim then
begin
writeln('Data ',i+1);
writeln('nama = ',dat.nama);
writeln('NIM = ',dat.nim);
writeln('Usia = ',dat.usia);
writeln('Tinggi badan = ',dat.tinggi_badan);
close(Filedat);
exit;
end;
end;
if InNim <> dat.nim then
begin
writeln('NIM Tidak Terdaftar = ',InNim);
close(Filedat);
exit;
end;
end;

procedure hapussesuainim;
begin
reset(Filedat);
totalrecord := fileSize(Filedat);
n := 0;
while (n <= totalrecord-1) do
begin
seek(Filedat,n);
read(Filedat,dat);
n := n+1;
if InNim = dat.nim then
begin
break;
end;
end;
if InNim <> dat.nim then
begin
writeln('NIM Tidak Terdaftar = ',InNim);
close(Filedat);
exit;
end;
for i := n to totalrecord-1 do
begin
seek(Filedat,i);
read(Filedat,dat);
seek(Filedat,i-1);
write(Filedat,dat);
end;
seek(Filedat,totalrecord-1);
truncate(Filedat);
dec(totalrecord);
close(Filedat);
writeln;
end;

begin
r:='y';
repeat
begin
clrscr;
writeln('========== Program Data Mahasiswa =========');
writeln('============ Menu ============');
WriteLn('1. Input Data Mahasiswa(Akan Mereset Data');
WriteLn(' Jika File Sama)') ;
WriteLn('2. Tampilkan Data Mahasiswa');
WriteLn('3. Cari File Sesuai NIM');
WriteLn('4. Hapus File Sesuai NIM');
writeln;
WriteLn('===========================================');
write('Nama File : ');readln(filename);
assign(Filedat,filename);
Write('Pilih Menu : ');ReadLn(menu);
WriteLn;
case menu of
1 : begin
inputdatamahasiswa;
end;
2 : begin
WriteLn('Data yang Ditampilkan :');
WriteLn;
tampilkandata;
end;
3 : begin
write('Masukan NIM : '); readln(InNim);
carisesuainim;
end;
4 : begin
write('Masukan NIM : ');readln(InNim);
hapussesuainim;
end;
end;
writeln;
write('Ingin Mengulang?(y/n) = ');readln(r);
end;
until (r = 'n');
end.
Pembahasan:
Pada program file handling tugas 3 ini menggunakan type_record yang berisi
format variabel dari data yang akan diinput. Program ini menggunakan variabel khusus
File of, lalu variabel string untuk inputan nim dan nama file, lalu variabel khusus untuk
data(dat) dalam record nya, lalu variabel integer untuk operasi pengulangan for
while(i,n), total record dan opsi menu, dan terakhir variabel char untuk operasi
pengulangan repeat pada procedure dan bagian program utama. Pada program ini
terdapat 4 procedure. Yang pertama prosedur input data yang berisi operasi rewrite file
.bin dan operasi pengulangan repeat. Yang kedua prosedur menampilkan data
menggunakan operasi reset file .bin dan operasi for_to_do. Yang ketiga prosedur
mencari data sesuai nim menggunakan operasi reset file .bin, operasi pengulangan
for_to_do, operasi if_then, dan operasi exit. Yang keempat prosedur hapus data sesuai
nim menggunakan operasi reset file .bin, operasi pengulangan for_to_do, operasi
if_then, operasi exit dan operasi break. Pada bagian utama terdiri dari writeln sebagai
teks keterangan dan write sebagai teks perintah yang di gunakan bersamaan dengan
readln sebagai wadah untuk inputan, dan operasi pengulangan Repeat. Lalu terdapat
case of sebagai opsi dari menu yang berisi writeln, write dan readln sebagai wadah
inputan dan nama procedure untuk memanggil procedure.

Gambar 3.1. Run Program Pada Terminal


Gambar 3.2. Program Dengan Opsi 1 Gambar 3.3. Program Dengan Opsi 2

Gambar 3.4. Program Dengan Opsi 3 Gambar 3.5. Program Dengan Opsi 4
Gambar 3.6. Isi Data File Ketika
Salah Satu Data Dihapus

Gambar 3.7. Program Opsi 3 Di Input Gambar 3.8. Program Opsi 4 Di Input
Dengan Nim Yang Tidak Terdaftar Dengan Nim Yang Tidak Terdaftar

Anda mungkin juga menyukai