uses crt;
type mhs=record
nama,
nim:string;
ipk:real;
end;
var data :array [1..10] of mhs;
nama1,
nim1:string;
ipk1:real;
i, j, n,
rank, temp:integer;
plh :string;
procedure input;
begin
clrscr;
write('Masukkan Jumlah Data : ');readln(n);
for i:=1 to n
do
begin
with data[i]
do
begin
writeln('Mahasiswa [',i,'] : ');
write('Nama : ');readln(nama);
write('NIM : ');readln(nim);
write('IPK : ');readln(ipk);
writeln;
end;
end;
readkey;
end;
procedure output;
begin
clrscr;
writeln('|=======================================================|');
writeln('| DATA
NILAI MAHASISWA |');
writeln('|====|==========================|===========|===========|');
writeln('| No
| Nama | NIM
| IPK |');
writeln('|====|==========================|===========|===========|');
for i:=1 to n
do
begin
with data[i]
do
begin
gotoxy(1,5+i);writeln('| | | |
|');
gotoxy(3,5+i);writeln(i);
gotoxy(8,5+i);writeln(nama);
gotoxy(35,5+i);writeln(nim);
gotoxy(50,5+i);writeln(ipk:2:2);
end;
end;
writeln('|====|=========================|===========|============|');
readkey;
end;
procedure urut;
begin
for i:=1 to n-1
do
begin
for j:=i+1 to
n do
begin
if(data[j].ipk > data[i].ipk) then
begin
nama1:=
data[j].nama;
data[j].nama:= data[i].nama;
data[i].nama:=nama1;
nim1:=data[j].nim;
data[j].nim:=data[i].nim;
data[i].nim:=nim1;
ipk1:=data[j].ipk;
data[j].ipk:=data[i].ipk;
data[i].ipk:=ipk1;
end;
end;
end;
end;
procedure output2;
begin
urut;
clrscr;
writeln('|========================================================|');
writeln('| DATA
NILAI MAHASISWA |');
writeln('|====|==========================|===========|============|');
writeln('| No
| Nama | NIM
| IPK |');
writeln('|====|==========================|===========|============|');
for i:=1 to n
do
begin
with data[i]
do
begin
gotoxy(1,5+i);writeln('| | | |
|');
gotoxy(3,5+i);writeln(i);
gotoxy(8,5+i);writeln(nama);
gotoxy(35,5+i);writeln(nim);
gotoxy(50,5+i);writeln(ipk:2:2);
end;
end;
writeln('|====|=========================|===========|============|');
readkey;
end;
begin
repeat
clrscr;
writeln('|========================================|');
writeln('| MENU
UTAMA |');
writeln('|========================================|');
writeln('| [1]
Input data |');
writeln('| [2]
Tampilkan data yg belum diurutkan |');
writeln('| [3]
Tampilkan data yg sudah diurutkan |');
writeln('| [0]
Keluar |');
writeln('|========================================|');
writeln('|
Pilihan : |');
writeln('|========================================|');
gotoxy(17,9);readln(plh);
case plh of
'1' : input;
'2' : output;
'3' :
output2;
'0' : exit;
end;
until plh='0';
end.
Screenshoot :
Sekian Terima kasih, semoga bermanfaat.