File Bertype kelas A

{Nama    : Paskal Hutapea}
{Nim    : 09 310 732}
{Kelas    : A PTI }

uses crt;
type
    mahasiswa = record
              nim                : string[8];
              nama               : string [15];
              jtm,tm,tt,mid,nus  : real;
              end;
var
filemahasiswa   : file of mahasiswa;
recordmahasiswa : mahasiswa;
I,jumlahrecord  : integer;
nimcari         : string;
ketemu          : boolean;
urutanrecord    : integer;
lagi            : char;

(*     menambah data di file   *)

procedure menambahdata;
begin
assign(filemahasiswa,'MHS.DAT');
reset(filemahasiswa);
if IOResult<> 0 then rewrite(filemahasiswa);
seek(filemahasiswa,filesize(filemahasiswa));
lagi:='Y';
while upcase(lagi)='Y' do
begin
clrscr;
with recordmahasiswa do
begin
writeln('>>>>>>>>>>>>>>>>>>>>>>>>>>>>Program by : Paskal Hutapea<<<<<<<<<<<<<<<<<<<<<<<<<');
     gotoxy(5,6) ; write('nim mahasiswa    :');
     gotoxy(5,8) ; write('nama mahasiswa   :');
     gotoxy(5,10); write('tatap muka       :');
     gotoxy(5,12); write('tugas mandiri    :');
     gotoxy(5,14); write('tugas terstruktur:');
     gotoxy(5,16); write('mid              :');
     gotoxy(5,18); write('ujian semester   :');

     gotoxy(27,6) ; readln(nim);
     gotoxy(27,8) ; readln(nama);
     gotoxy(27,10); readln(jtm);
     gotoxy(27,12); readln(tm);
     gotoxy(27,14); readln(tt);
     gotoxy(27,16); readln(mid);
     gotoxy(27,18); readln(nus);
     end;
write(filemahasiswa,recordmahasiswa);
gotoxy(5,21); write('masukkan data lagi (Y/T) ?'); readln(lagi);
end;
close(filemahasiswa);
end;

(*         menampilkan semua data di file        *)

procedure menampilkansemuadata;
begin
assign(filemahasiswa,'MHS.DAT');
reset(filemahasiswa);
jumlahrecord:= filesize(filemahasiswa);
clrscr;
writeln('>>>>>>>>>>>>>>>>>>>>>>>>>>>>Program by : Paskal Hutapea<<<<<<<<<<<<<<<<<<<<<<<<<');
writeln;
writeln('--------------------------------------------------------------------------');
writeln('nim                     Jumlah      Tugas     Tugas                 NU    ');
writeln('Mhs.        nama        tatapmuka   mandiri   terstruktur   mid   semester');
writeln('--------------------------------------------------------------------------');
for I:=1 to jumlahrecord do
begin
read(filemahasiswa,recordmahasiswa);
with recordmahasiswa do
writeln(nim,nama,jtm:10:2,tm:10:2,tt:10:2,mid:10:2,nus:10:2);
end;
writeln('-------------------------------------------------------------------------');
close(filemahasiswa);
end;

(*           Menampilkan data tertentu berdasarkan nim mahasiswa       *)

procedure cariberdasarkannimMhs;
begin
assign(filemahasiswa,'MHS.DAT');
reset(filemahasiswa);
jumlahrecord:=filesize(filemahasiswa);
lagi:='Y';
while upcase(lagi)='Y' do
begin
ketemu := false;
clrscr;
writeln('>>>>>>>>>>>>>>>>>>>>>>>>>>>>Program by : Paskal Hutapea<<<<<<<<<<<<<<<<<<<<<<<<<');
writeln;
write('nim mahasiswa dicari ?: '); readln(nimcari);
writeln;
for I:=1 to jumlahrecord do
begin
seek(filemahasiswa,I-1);
read(filemahasiswa,recordmahasiswa);
if recordmahasiswa.nim = nimcari then
begin
ketemu :=true;
writeln('nama mahasiswa      :',recordmahasiswa.nama);
writeln('nim mahasiswa       :',recordmahasiswa.nim);
 end;
end;
if not ketemu then
writeln('tidak ada nim mahasiswa ini !!');
writeln;
write('ada lagi yang akan dicari (Y/T) ? : '); readln(lagi);
end;
close(filemahasiswa);
end;

(*      menampilkan data tertentu berdasarkan urutan record     *)
procedure cariberdasarkanrecord;
begin
assign(filemahasiswa,'MHS.DAT');
reset(filemahasiswa);
jumlahrecord:=filesize(filemahasiswa);
lagi :='Y';
while upcase(lagi)='Y' do
begin
clrscr;
writeln('>>>>>>>>>>>>>>>>>>>>>>>>>>>>Program by : Paskal Hutapea<<<<<<<<<<<<<<<<<<<<<<<<<');
writeln;
write('nim record dicari (1-',jumlahrecord:3,') ?');
readln(urutanrecord);
writeln;
if(urutanrecord<1) or (urutanrecord>jumlahrecord) then
writeln('tidak ada nomor record ini !!!')
Else
begin
seek(filemahasiswa,urutanrecord-1);
read(filemahasiswa,recordmahasiswa);

writeln('nim mahasiswa     :',recordmahasiswa.nim:5);
writeln('nama mahasiswa    :',recordmahasiswa.nama);
writeln('tatap muka        :',recordmahasiswa.jtm:6:2);
writeln('tugas mandiri     :',recordmahasiswa.tm:7:2);
writeln('tugas terstruktur :',recordmahasiswa.tt:8:2);
writeln('mid               :',recordmahasiswa.mid:9:2);
writeln('ujian semester    :',recordmahasiswa.nus:10:2);
end;
writeln;
write('ada lagi yang ingin dicari (Y/T) ?: '); readln(lagi);
end;
close(filemahasiswa);
end;

(*    Koreksi data berdasarkan nim mahasiswa     *)

procedure koreksiberdasarkannimMhs;
begin
assign(filemahasiswa,'MHS.DAT');
reset(filemahasiswa);
jumlahrecord:=filesize(filemahasiswa);
lagi:='Y';
while upcase(lagi)='Y' do
begin
ketemu :=false;
clrscr;
writeln('>>>>>>>>>>>>>>>>>>>>>>>>>>>>Program by : Paskal Hutapea<<<<<<<<<<<<<<<<<<<<<<<<<');
writeln;
write('nim mahasiswa yg dicari ?: '); readln(nimcari);
writeln;
for I:=1 to jumlahrecord do
begin
seek(filemahasiswa,I-1);
read(filemahasiswa,recordmahasiswa);
if recordmahasiswa.nim = nimcari then
begin
with recordmahasiswa do
begin
ketemu := true;
       writeln('nim mahasiswa  :',nim:5);
       write('koreksinya ?'); readln(nim);
       writeln('nama mahasiswa :',nama);
       write('koreksinya ?'); readln(nama);
       writeln('tatap muka     :',jtm:6:2);
       write('koreksinya ?'); readln(jtm);
       writeln('tugas mandiri  :',tm:7:2);
       write('koreksinya ?'); readln(tm);
       writeln('tugas terstruktur:',tt:8:2);
       write('koreksinya ?'); readln(tt);
       writeln('mind           :',mid:9:2);
       write('koreksinya ?'); readln(mid);
       writeln('ujian semester :', nus:10:2);
       write('koreksinya ?'); readln(nus);
       writeln;
       end;
end;
seek(filemahasiswa,I-1);
write(filemahasiswa,recordmahasiswa);
end;
if not ketemu then
write('tidak ada nim mahasiswa ini !!');
writeln;
write('ada lagi yang akan dikoreksi (Y/T) ?'); readln(lagi);
end;
close(filemahasiswa);
end;
(*     Koreksi data tertentu berdasarkan urutan record    *)

procedure koreksiberdasarkanrecord;
begin
assign(filemahasiswa,'MHS.DAT');
reset(filemahasiswa);
jumlahrecord :=filesize(filemahasiswa);
lagi :='Y';
while upcase(lagi)='Y' do
begin
clrscr;
writeln('>>>>>>>>>>>>>>>>>>>>>>>>>>>>Program by : Paskal Hutapea<<<<<<<<<<<<<<<<<<<<<<<<<');
writeln;
write('nim record dikoreksi (1-',jumlahrecord:3,'); ?');
readln(urutanrecord);
writeln;
if(urutanrecord<1) or (urutanrecord>jumlahrecord) then
writeln('tidak nim record ini !!!')
else
begin
seek(filemahasiswa,urutanrecord-1);
read(filemahasiswa,recordmahasiswa);
with recordmahasiswa do
begin
writeln('nim mahasiswa      : ',nim:5);
write  ('koreksinya ?'); readln(nim);
writeln('nama mahasiswa     : ',nama);
write  ('koreksinyan?'); readln(nama);
writeln('tatap muka         : ',jtm:6:2);
write('koreksinya ?');   readln(jtm);
writeln('tugas mandiri      : ',tm:7:2);
write('koreksinya ?');   readln(tm);
writeln('tugas terstruktur  : ',tt:8:2);
write('koreksinya ?');   readln(tt);
writeln('mid                : ',mid:9:2);
write('koreksinya ?');   readln(mid);
writeln('ujian semester     : ',nus:10:2);
write('koreksinya ?');   readln(nus);
end;
seek(filemahasiswa,urutanrecord-1);
write(filemahasiswa,recordmahasiswa);
end;
writeln;
write('ada lagi yang akan dikoreksi (Y/T) ?'); readln(lagi);
end;
close(filemahasiswa);
end;
(*    Program Utama Menampilkan Menu Pilihan    *)
var
pilih : byte;
begin
while true do
begin
clrscr;
writeln('>>>>>>>>>>>>>>>>>>>>>>>>>>>>Program by : Paskal Hutapea<<<<<<<<<<<<<<<<<<<<<<<<<');

       gotoxy(5,4); write('                     <<<<<<<<< M E N U >>>>>>>>');
       gotoxy(5,5); write('1. Menambah Data');
       gotoxy(5,7); write('2. Menampilkan semua data');
       gotoxy(5,9); write('3. Menampilkan data tertentu berdasarkan nim Mhs');
       gotoxy(5,11);write('4. Menampilkan data tertentu berdasarkan record');
       gotoxy(5,13);write('5. Koreksi data tertentu berdasarkan nim Mhs');
       gotoxy(5,15);write('6. Koreksi data tertentu berdasarkan record');
       gotoxy(5,17);write('7. KELUAR');
       pilih :=0;
       while (pilih<1) or (pilih>7) do
       begin
       gotoxy(5,20); write('Pilih Nomor (1-7) ?: '); readln(pilih);
       if(pilih<1) or (pilih>7) then
       write(^G);
end;
case pilih of
     1: menambahdata;
     2: begin
        menampilkansemuadata;
        writeln;
        write('Tekan ENTER untuk kembali ke MENU....');
        readln;
        end;
     3: cariberdasarkannimMhs;
     4: cariberdasarkanrecord;
     5: koreksiberdasarkannimMhs;
     6: koreksiberdasarkanrecord;
     7: Exit;
     end;
  end;
end.

Tidak ada komentar:

Posting Komentar

Thk's 4 u'r coment.

Populer