Rabu, 05 Oktober 2011

Program Absen mahasiswa dengan sortiran kelas

PROGRAM Tugas_table_n_sorting;
USES CRT;
CONST
garis='------------------------------------------------------';
VAR
kelas : ARRAY [1..100] OF STRING[5];
npm : ARRAY [1..100] OF STRING[8];
nama : ARRAY [1..100] OF STRING[15];
min, temp : STRING;
n,i,bar,kelompok,tempatnya_min : INTEGER;
BEGIN
CLRSCR;
{ pemasukan data dalam array }
WRITE('MAU ISI BERAPA DATA : ');
READLN(N);
FOR i:= 1 TO n DO
BEGIN
CLRSCR;
GOTOXY(30,4); WRITE('DATA KE- ',i:2);
GOTOXY(10,7); WRITE('NPM : '); READLN(NPM[i]);
GOTOXY(10,8); WRITE('NAMA : '); READLN(NAMA[i]);
GOTOXY(10,9); WRITE('KELAS : '); READLN(KELAS[i]);
END;

{ proses pengurutan}
FOR kelompok := 1 to n do
BEGIN
min := KELAS[kelompok];
FOR i := kelompok to n do
BEGIN
IF (KELAS[i] <= min) then
BEGIN
min := KELAS[i];
tempatnya_min := i;
END;
END;

temp := KELAS[kelompok];
KELAS[kelompok] := KELAS[tempatnya_min];
KELAS[tempatnya_min] := temp;

temp := NPM[kelompok];
NPM[kelompok] := NPM[tempatnya_min];
NPM[tempatnya_min] := temp;

temp := NAMA[kelompok];
NAMA[kelompok] := NAMA[tempatnya_min];
NAMA[tempatnya_min] := temp;
end;

{ proses data dalam array }
CLRSCR;
GOTOXY(5,4); WRITE(GARIS);
GOTOXY(5,5); WRITE('NO');
GOTOXY(9,5); WRITE('NPM');
GOTOXY(20,5); WRITE('NAMA');
GOTOXY(37,5); WRITE('KELAS');
GOTOXY(47,5); WRITE('PARAF');
GOTOXY(5,6); WRITE(GARIS);
{ proses Cetak isi array dan seleksi kondisi }
bar:=7;
FOR i:= 1 TO n DO
BEGIN
{ penyeleksian kondisi }
GOTOXY(5,bar); WRITELN(i:2);
GOTOXY(9,bar); WRITELN(NPM[i]);
GOTOXY(20,bar); WRITELN(NAMA[i]);
GOTOXY(37,bar); WRITELN(KELAS[i]);
GOTOXY(47,bar); WRITELN(i,'. . .');
bar:=bar+1;
END;
GOTOXY(5,bar+1);WRITELN(garis);
READLN;
END.

Tidak ada komentar:

Posting Komentar