berikut adalah program data mahasiswa sebagai tugas dari mata kuliah algoritma dan pemrograman 2
semoga bermanfaat bagi saya pribadi dan peembaca
Program Data_mahasiswa;
Uses Crt ;
Const
garis1 = '--------------------------------------------------------------------------------';
garis2 = '===================================================================';
garsed1= '--------------------------------------------------------------------';
garsed2= '====================================================================';
gar2 = '====================================';
gar1 = '------------------------------------';
gar3 = '==========================';
Type
cod = Record
Kuliah : word;
namax : String[20];
npm : string[20];
kelas : string[20];
alamat : string[20];
ip : real;
Mahasiswa : real ;
End;
Var
Filecod : File of cod;
Data : cod;
Pil,Ul : Char;
x,y,i : integer;
Procedure Menu;
Begin
Clrscr;
Textcolor(10);
Writeln('================================================================================');
Textcolor(23);
Writeln('#################### SELAMAT DATANG DI PROGRAM DATA MAHASISWA ################');
writeln('#################################### LASMANTO ###############################');
writeln('#################### 0941177004113 ################');
Textcolor(10);
Writeln('================================================================================');
Textcolor(white);
Textcolor(5);
x:=10; y:=6;
Gotoxy(x,y+5);write('PILIH SALAH SATU :');
Gotoxy(x,y+7);write('1. BUAT DATA');
Gotoxy(x,y+8);write('2. TAMBAH DATA');
Gotoxy(x,y+9);Write('3. EDIT DATA');
Gotoxy(x,y+10);Write('4. HAPUS DATA ');
Gotoxy(x,y+11);Write('5. TAMPILKAN DATA');
Gotoxy(x,y+12);Write('6. KELUAR');
Gotoxy(10,y+14);Write('Pilih nomer 1 sampai 6 : ');Pil:=Readkey
End;
Procedure BukaFile;
Begin
Assign(Filecod,'cod.txt');
Reset(Filecod);
End;
Procedure buat;
Var
Lagi: Char;
Ada : Boolean;
i : Integer;
code: Word;
Begin
Ul :='Y';
Lagi:='Y';
Clrscr;
BukaFile;
If IOResult<>0 Then
Rewrite(Filecod);
Repeat
Clrscr;
Textcolor(10);
Ada:=False;
i:=0;
x:=5;y:=1;
Gotoxy(x+4,y);Write('BUAT DATA BARU');
Gotoxy(x+0,y+1);Write('-----------------------------');
Gotoxy(x,y+2);Write('Code : ');Readln(code);
While (Ada=False) And (i<>Filesize(Filecod)) Do
Begin
Seek(Filecod,i);
Read(Filecod,Data);
If Data.Kuliah=code Then
Ada:=True
Else
Inc(i);
End;
If (Ada=True) Then
Begin
Gotoxy(x-5,y+7);Write('Code ',code,' ini sudah ada!');
End
Else
Begin
Seek(Filecod,Filesize(Filecod));
Data.Kuliah:=code;
Gotoxy(X,y+3);Write('NAMA : ');Readln(Data.namax);
Gotoxy(X,y+4);Write('NPM : ');Readln(Data.npm);
Gotoxy(X,y+5);Write('KELAS : ');Readln(Data.kelas);
Gotoxy(X,y+6);Write('ALAMAT : ');Readln(Data.alamat);
Gotoxy(x,y+7);Write('IP : ');Readln(Data.ip);
Write(Filecod,Data);
End;
Textcolor(23);
Gotoxy(x-5,y+8);Write('buat data lagi..?? :: Y/T:: ');Lagi:=Upcase(Readkey);
Until Lagi<>'Y';
Close(Filecod);
End;
Procedure Tambah;
Var
Lagi: Char;
Ada : Boolean;
i : Integer;
code: Word;
Begin
Ul :='Y';
Lagi:='Y';
Clrscr;
BukaFile;
If IOResult<>0 Then
Rewrite(Filecod);
Repeat
Clrscr;
Textcolor(8);
Ada:=False;
i:=0;
x:=45;y:=1;
Gotoxy(x+4,y);Write('TAMBAH DATA MAHASISWA ');
Gotoxy(x+0,y+1);Write('-----------------------------');
Gotoxy(x,y+2);Write('Code : ');Readln(code);
While (Ada=False) And (i<>Filesize(Filecod)) Do
Begin
Seek(Filecod,i);
Read(Filecod,Data);
If Data.Kuliah=code Then
Ada:=True
Else
Inc(i);
End;
If (Ada=True) Then
Begin
Gotoxy(x-5,y+7);Write('Code ',code,' ini sudah ada!');
End
Else
Begin
Seek(Filecod,Filesize(Filecod));
Data.Kuliah:=code;
Gotoxy(X,y+3);Write('NAMA : ');Readln(Data.namax);
Gotoxy(X,y+4);Write('NPM : ');Readln(Data.npm);
Gotoxy(X,y+5);Write('KELAS : ');Readln(Data.kelas);
Gotoxy(X,y+6);Write('ALAMAT : ');Readln(Data.alamat);
Gotoxy(x,y+7);Write('IP : ');Readln(Data.ip);
Write(Filecod,Data);
End;
Textcolor(23);
Gotoxy(x-5,y+8);Write('Tambah data lagi atau tidak..?? :: Y/T:: ');Lagi:=Upcase(Readkey);
Until Lagi<>'Y';
Close(Filecod);
End;
Procedure Edit;
Var
Lagi : Char;
Ada : Boolean;
i : Integer;
code: Word;
Begin
Ul :='Y';
Lagi:='Y';
Clrscr;
Textcolor(21);
BukaFile;
Begin
Repeat
Clrscr;
Textcolor(21);
Ada:=False;
i:=0;
x:=28;y:=2;
Gotoxy(x+2,y);Write('------------------');
Gotoxy(x+2,y+1);Write(' EDIT DATA MAHASISWA');
Gotoxy(x+2,y+2);Write('------------------');
Gotoxy(x+5,y+3);Write('Code : ');Readln(code);
While (Ada=False) And (i<>Filesize(Filecod)) Do
Begin
Seek(Filecod,i);
Read(Filecod,Data);
If Data.Kuliah=code Then
Begin
Textcolor(10);
Ada:=True;
x:=5;y:=15;
Gotoxy(X,y+1);write('------------------------------------------------------------------------');
Gotoxy(X+0,y+2);write('DATA YANG ADA <<<=====>>> DATA EDITAN ');
Gotoxy(x+0,y+3);write('----------------------------------------------------------------------');
Gotoxy(X,y+4);Write('NAMA : ');writeln(Data.namax);
Gotoxy(X,y+5);Write('NPM : ');writeln(Data.npm);
Gotoxy(X,y+6);Write('KELAS : ');writeln(Data.kelas);
Gotoxy(X,y+7);Write('ALAMAT : ');writeln(Data.alamat);
Gotoxy(X,y+8);Write('IP : ');writeln(data.ip:4:2);
End
Else
Inc(i);
End;
If (Ada=True) Then
Begin
Textcolor(10);
Data.Kuliah:=code;
x:=48;y:=15;
Gotoxy(X,y+4);Write('NAMA : ');readln(Data.namax);
Gotoxy(X,y+5);Write('NPM : ');readln(Data.npm);
Gotoxy(X,y+6);Write('KELAS : ');readln(Data.kelas);
Gotoxy(X,y+7);Write('ALAMAT : ');readln(Data.alamat);
Gotoxy(X,y+8);Write('IP : ');readln(Data.ip);
Seek(Filecod,i);
Write(Filecod,Data);
End
Else
Begin
Textcolor(10);
Gotoxy(20,12);Write('Code Mahasiswa "',code,'" ini tidak ada..!!');
End;
Textcolor(10);
Gotoxy(24,13);Write('Edit data lagi..?? Y/T : ');Lagi:=Upcase(Readkey);
Until Lagi<>'Y';
End;
Close(Filecod);
End;
Procedure Hapus;
Var
FileTmp : File of cod;
Lagi,Hapus : Char;
Ada : Boolean;
i : Integer;
code : Word;
Begin
Ul :='Y';
Lagi:='Y';
Clrscr;
Repeat
BukaFile;
Begin
Clrscr;
Textcolor(7);
Assign(FileTmp,'cod.tmp');
Rewrite(FileTmp);
Ada:=False;
i:=0;
x:=3;y:=16;
Gotoxy(x+2,y);Write('HAPUS DATA MAHASISWA');
Gotoxy(x+1,y+1);Write('----------------------');
Gotoxy(x,y+2);Write('Code : ');Readln(code);
While (Ada=False) And (i<>Filesize(Filecod)) Do
Begin
Seek(Filecod,i);
Read(Filecod,Data);
If Data.Kuliah=code Then
Ada:=True
Else
Inc(i);
End;
If (Ada=True) Then
Begin
Gotoxy(X,y+3);Write('NAMA : ');writeln(Data.namax);
Gotoxy(X,y+4);Write('NPM : ');writeln(Data.npm);
Gotoxy(X,y+5);Write('KELAS : ');writeln(Data.kelas);
Gotoxy(X,y+6);Write('ALAMAT : ');writeln(Data.alamat);
Gotoxy(X,y+7);Write('IP : ');writeln(Data.ip:4:2);
Gotoxy(x-8,y+9);Write('anda yakin hapus data ini..?? :: Y/T :: : ');Readln(Hapus);
If Upcase(Hapus)='Y' Then
Begin
For i := 1 to Filesize(Filecod) Do
Begin
Seek(Filecod,i-1);
Read(Filecod,Data);
If Data.Kuliah<>code Then
Write(FileTmp,Data);
End;
Close(Filecod);
Assign(Filecod,'cod.txt');
Erase(Filecod);
Assign(FileTmp,'cod.tmp');
Rename(FileTmp,'cod.txt');
Gotoxy(x-8,y+9);Write(' Code "',code,'" Sudah dihapus...!! ');
End;
End
Else
Begin
Gotoxy(x-4,y+9);Write('Code tidak ada...!!');
End;
Gotoxy(x-3,y+10);Write('Hapus data lain...?? :: Y/T :: ');Lagi:=Upcase(Readkey);
End;
Until Lagi<>'Y';
End;
Procedure Tampil;
Var
i,n : Integer;
TDN : Real;
Begin
clrscr;
Ul :='Y';
TDN:=0;
BukaFile;
If IoResult <> 0 Then
begin
gotoxy(30,11);
Write('MAAF DATA TIDAK ADA !! ');
end
Else
Begin
Textcolor(9);
Clrscr;
x:=4;y:=9;
textcolor(26);
Gotoxy(x+7,y-3); write(':::::::::::::::::: DATA MAAHASISWA ::::::::::::::::::');
textcolor(white);
Gotoxy(x,y-2); write(garsed2);
Gotoxy(x,y-1); writeln('| NO| CODE | NAMA | NPM | KELAS| ALAMAT | IP |');
Gotoxy(x,y); write(garsed1);
i:=0;
While Not EoF(Filecod) Do
Begin
Inc(i);
Read(Filecod,Data);
Gotoxy(x,y+i); write('| ',i);
Gotoxy(x+4,y+i); write('| '); writeln(data.kuliah);
Gotoxy(x+11,y+i); write('| '); writeln(data.namax);
Gotoxy(x+26,y+i); write('| '); writeln(data.npm);
Gotoxy(x+42,y+i); write('| '); writeln(data.kelas);
Gotoxy(x+49,y+i); write('| '); writeln(data.alamat);
Gotoxy(x+60,y+i); write('| '); writeln(data.ip:4:2);
Gotoxy(x+66,y+i); write(' |');
TDN:=TDN+Data.mahasiswa;
End;
Close(Filecod);
End;
Writeln;
Write(' =================<<>> TEKAN ENTER UNTUK KE MENU <<>>=================');Readln;
End;
Begin
Repeat
Menu;
Case Pil Of
'1' : buat;
'2' : Tambah;
'3' : Edit;
'4' : Hapus;
'5' : Tampil;
End;
Until (Ul<>'Y') Or (Pil='6');
End.