Contoh Program Mengurutkan Nama, NIM dan IPK dalam Pascal
uses crt;
type mhs=record
Nama, NIM : string;
IPK : real;
end;
var Data : array[1..100] of mhs;
i, j, n, temp :integer;
Pilih : Char;
Procedure Table;
begin
writeln('| | | |');
writeln('|______________|__________|______|');
end;
Procedure Tampil;
Begin
clrscr;
writeln(' ________________________________');
writeln('| |');
writeln('| Data Mahasiswa |');
writeln('|________________________________|');
writeln('| Nama | NIM | IPK |');
writeln('|______________|__________|______|');
for i:=1 to n do
begin
gotoxy(1,6+i);Table;
gotoxy(3,6+i);writeln(Data[i].Nama);
gotoxy(18,6+i);writeln(Data[i].NIM);
gotoxy(29,6+i);writeln(Data[i].IPK:0:2);
end;
readkey;
end;
Procedure UrutIPK;
var temp : mhs;
begin
for i:=2 to n do
begin
temp:=Data[i];
j:=i-1;
while(j>1) and (Data[j].IPK<temp.IPK) do
begin
Data[j+1]:=Data[j];
j:=j-1;
end;
IF temp.IPK<Data[j].IPK then
Data[j+1]:=temp else
begin
Data[j+1]:=Data[j];
Data[j]:=temp
end;
end;
tampil;
end;
Procedure UrutNama;
var temp:mhs;
begin
for i:=2 to n do
begin
temp:=Data[i];
j:=i-1;
while(j>1) and (Data[j].Nama>temp.Nama) do
begin
Data[j+1]:=Data[j];
j:=j-1;
end;
IF temp.Nama>Data[j].Nama then
Data[j+1]:=temp else
begin
Data[j+1]:=Data[j];
Data[j]:=temp
end;
end;
tampil;
end;
Procedure UrutNIM;
var temp:mhs;
begin
for i:=2 to n do
begin
temp:=Data[i];
j:=i-1;
while(j>1) and (Data[j].NIM>temp.NIM) do
begin
Data[j+1]:=Data[j];
j:=j-1;
end;
IF temp.NIM>Data[j].NIM then
Data[j+1]:=temp else
begin
Data[j+1]:=Data[j];
Data[j]:=temp
end;
end;
tampil;
end;
Procedure Input;
begin
clrscr;
write(' Masukkan Jumlah Mahasiswa : ');readln(n);
for i:=1 to n do
begin
writeln(' ___________________________________');
writeln('| Data Ke-',i,' |');
writeln('|-----------------------------------|');
writeln('| Nama : |');
writeln('| NIM : |');
writeln('| IPK : |');
writeln('|___________________________________|');
gotoxy(11,5+(7*(i-1)));readln(Data[i].Nama);
gotoxy(11,6+(7*(i-1)));readln(Data[i].NIM);
gotoxy(11,7+(7*(i-1)));readln(Data[i].IPK);
writeln;
end;
end;
Begin
repeat
clrscr;
writeln(' ________________________________________');
writeln('| |');
writeln('| Menu Pilihan |');
writeln('|________________________________________|');
writeln('| |');
writeln('| 1. Input Data Mahasiswa |');
writeln('| 2. Data Yang Belum Urut |');
writeln('| 3. Data Urut Berdasarkan IPK |');
writeln('| 4. Data Urut Berdasarkan Nama |');
writeln('| 5. Data Urut Berdasarkan NIM |');
writeln('| 0. Keluar |');
writeln('|________________________________________|');
writeln('| |');
writeln('| Masukkan Pilihan : |');
writeln('|________________________________________|');
gotoxy(22,14);readln(Pilih);
Case Pilih of
'1' : Input;
'2' : tampil;
'3' : UrutIPK;
'4' : UrutNama;
'5' : UrutNIM;
'0' : Exit;
end;
Until (Pilih)='0';
end.
LINK DOWNLOAD : Klik Disini

Tidak ada komentar:
Posting Komentar