UNIVERSITAS GUNADARMA

Rabu, 05 Oktober 2011

Program Sort Pascal

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];
              n,i,bar,kelompok,tempatnya_min,pil   : INTEGER;
              min, temp : STRING;
              label menu;
              label exit;
       BEGIN
              CLRSCR;
              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;
              menu:
              clrscr;
              writeln('pilihan anda : ');
              writeln('1.sort by class');
              writeln('2.sort by name');
              writeln('3.exit');
              write('pilih pilihan anda :');readln(pil);
              case pil of
              1: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;
              2:FOR kelompok := 1 TO n DO
              BEGIN
                   min := NAMA[kelompok];
                   FOR i := kelompok TO n DO
               BEGIN
                    IF (NAMA[i] <= min) THEN
                BEGIN
                     min := NAMA[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;
              3:goto exit;
              end;
              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 di absen  }
              bar:=7;
              FOR i:= 1 TO n DO
              BEGIN
                   {  penempatan cetak array  }
                   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;
              goto menu;
              exit:
         END.

Tidak ada komentar:

Posting Komentar