Kamis, 02 April 2015

Program Mengurutkan Nama, NIM dan IPK dalam Pascal

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