Rabu, 12 Desember 2018

Listing struktur data sederhana



MAHASISWA DIMINTA UNTUK MEMBUAT SEBUAH PROGRAM UNTUK MENGURUTKAN ANGKA-ANGKA YANG DIDAPAT SECARA RANDOM/ACAK. MULA-MULA DIDAPATKAN ENAM ANGKA SECARA RANDOM, LALU ANGKA-ANGKA TERSEBUT HARUS DISUSUN SECARA URUT DENGAN MENGGUNAKAN METODE QUICK SORT DIMULAI DARI ANGKA YANG TERKECIL. ANIMASIKANLAH PENGURUTAN DENGAN MEMPERLIHATKAN PERPINDAHAN ANGKA-ANGKA SAMPAI ANGKA-ANGKA TERSEBUT TERSUSUN SEMUANYA.

PROGRAM URUT_QUICK;
USES CRT;
CONST MAX=6;

VAR
   CH   : CHAR;
   I,J  : BYTE;
   DATA : ARRAY [1..MAX] OF INTEGER;

PROCEDURE GERAK (K,D:BYTE);
VAR
   X,Y,WARNA:BYTE;
BEGIN
     X:= 28 + MAX + (K-1);
     Y:= 34 + MAX + (D-2);
     REPEAT
        WARNA := RANDOM (15);
     UNTIL WARNA IN [9..14];
        TEXTCOLOR (WARNA+BLINK);
        GOTOXY (X,13); WRITE (DATA[K]);
        GOTOXY (Y,12); WRITE (DATA[D]); DELAY (700);
        TEXTCOLOR (WHITE);
        GOTOXY (X,12); WRITE ('');
        GOTOXY (Y,12); WRITE ('');
     FOR I:= 1 TO 2 DO
        BEGIN
        GOTOXY (X,12-I); WRITE (DATA[K]);
        GOTOXY (Y,12+I); WRITE (DATA[D]); DELAY (50);
        GOTOXY (X,12-I); WRITE ('');
        GOTOXY (Y,12+I); WRITE ('');
     END;
FOR I := 1 TO Y-X DO
   BEGIN
      GOTOXY (X+I-1,10); WRITE ('',DATA[K]);
      GOTOXY (Y-I,14); WRITE (DATA[D],''); DELAY (50);
   END;
      GOTOXY (X,14); WRITE ('');
      GOTOXY (Y,10); WRITE ('');
      FOR I:= 1 TO 2 DO
      BEGIN
      GOTOXY (Y,10+I); WRITE (DATA[K]);
      GOTOXY (X,14-I); WRITE (DATA[D]);
      DELAY (50);
      IF I <> 2 THEN
      BEGIN
        GOTOXY (Y,10+I); WRITE ('');
        GOTOXY (X,14-I); WRITE ('');
        END;
      END;
   END;

PROCEDURE CHANGE (VAR A,B:INTEGER);
VAR C:INTEGER;
BEGIN
     C:=A; A:=B; B:=C;
END;

PROCEDURE QUICKSORT (LEFT,RIGHT:INTEGER);
VAR
   I,J,MID: INTEGER;
BEGIN
     I:=LEFT; J:=RIGHT; MID:=DATA [(LEFT+RIGHT) DIV 2];
     REPEAT
        WHILE DATA [I] < MID DO INC (I);
        WHILE MID < DATA [J] DO DEC (J);
        IF I<J THEN
        BEGIN
             IF I<>J THEN GERAK (I,J);
             CHANGE (DATA[I],DATA[J]);
             INC(I); DEC(J);
        END;
     UNTIL I>J;
     IF LEFT < J THEN QUICKSORT (LEFT,J);
     IF I<RIGHT THEN QUICKSORT (I,RIGHT);
END;

PROCEDURE START;
VAR
   K:BYTE;
BEGIN
     DELAY (200);
     CLRSCR;
     FOR I:= 1 TO 3 DO
     BEGIN
        GOTOXY (1,10+I); WRITE ('');
        DELAY (200);
     END;
     K:=0;
     FOR j:=1 TO MAX DO
     BEGIN
     FOR I:= 1 TO 57-K DO
      BEGIN
           GOTOXY (I,12); WRITE ('',DATA[7-J]);
           DELAY (10);
      END;
     K:=K + 6;
     END;
     K:=0;
     FOR I:=1 TO MAX DO
     BEGIN
          TEXTCOLOR (I+8); GOTOXY (28+K,12); WRITE (DATA[I]);
          DELAY(100);
          INC (K,6);
     END;
END;

PROCEDURE CURSOR_OFF;ASSEMBLER;
ASM
   MOV AH, 01H
   MOV CX, 0FFFFH
   INT 10H
END;

BEGIN
     CLRSCR;
     CURSOR_OFF;
     RANDOMIZE;
     GOTOXY (30,8); WRITE ('RANDOM 6 DATA YANG AKAN DISORT:');
     FOR I:=1 TO MAX DO
        BEGIN
        GOTOXY (30,9+I); WRITE ('DATA',I,':');
        DATA [I]:=RANDOM (100);
        GOTOXY (39,9+I); WRITELN (DATA[I]); DELAY (100);
     END;
DELAY (1000);
START;
QUICKSORT (1,MAX);
J:=0;
FOR I:=1 TO MAX DO
    BEGIN
       TEXTCOLOR (YELLOW);
       GOTOXY (28+J,12); WRITE (DATA[I]);
       DELAY (100);
       J:=J+6;
       END;
    REPEAT
       GOTOXY (32,22); WRITE ('PRESS ANY KEY TO EXIT...');
    UNTIL KEYPRESSED;
END.


    
                                                                                           













1 komentar:

Kumpulan perintah mysql di CMD

MySQL  adalah sebuah perangkat lunak sistem manajemen basis data SQL (bahasa Inggris: database management system) atau DBMS yang multithrea...