Rabu, 12 Desember 2018

Listing struktur data praktikum 9



PRAKTIKUM 9

MAHASISWA DIMINTA UNTUK MEMBUAT SEBUAH PROGRAM ANIMASI STACK/TUMPUKAN, GAMBARKAN SEBUAH WADAH DAN BERI TIGA PILIHAN: PUSH, POP DAN EXIT. JIKA DIPILIH PUSH, PROGRAM AKAN MEMINTA USER MENGINPUT SEBUAH KARAKTER YANG AKAN DIMASUKKAN KE WASAH TERSEBUT, MAKSIMAL 10 KARAKTER DALAM WADAH. JIKA DIPILIH EXIT MAKA PROGRAM AKAN SELESAI.

PROGRAM ARRAY_STACK;
USES CRT;
CONST
     MAX=10;
VAR
     TOP,I         : BYTE;
     PIL, TEMP, E  : CHAR;
     STACK         : ARRAY [1.....MAX] OF CHAR;

PROCEDURE PUSHANIM;        {ANIMASI MENGISI ISI TUMPUKAN}
BEGIN
     FOR I:= 1 TO 18 DO
     BEGIN
       GOTOXY (23+I,7); WRITE (TEMP); DELAY (30);
       GOTOXY (23,7); CLREOL
     END;

     FOR I:=1 TO 14-TOP DO
     BEGIN
       DELAY(30);
       GOTOXY(41,6+I); WRITE ('');
       GOTOXY(41,7+I); WRITE ('');
     END;
END;

PROSEDURE POPANIM (TEMP:CHAR);          {ANIMASI MENGELUARKAN ISI TUMPUKAN}
BEGIN
     FOR I:=1 TO 14-TOP DO
     BEGIN
       DELAY(30);
       GOTOXY(41,22-I-TOP); WRITE ('');
       GOTOXY(41,21-I-TOP); WRITE (TEMP);
     END;

     FOR I:=1 TO 19 DO
     BEGIN
       GOTOXY(40+I,7); WRITE (TEMP); DELAY(30);
       GOTOXY(16,7); CLREOL;
     END;
END;

PROSEDURE PUSH (E:CHAR);        {MENGISI ISI TUMPUKAN}
BEGIN
    INC(TOP);
    STACK[TOP]:=E;
    PUSHANIM;
END;

PROSEDURE POP(E:CHAR);          {MENGELUARKAN ISI TUMPUKAN}
BEGIN
     IF TOP <> 0 THEN
     BEGIN
       E:=STACK [TOP]; POPANIM (E);
       DEC(TOP);
     END ELSE
     BEGIN   {PERINGATAN JIKA STACK TELAH KOSONG}
     GOTOXY (1,7); WRITE ('STACK TELAH KOSONG'); READKEY;
     GOTOXY (1,7); CLREOL;
     END;
END;

BEGIN  {MAIN PROGRAM}
  CLRSCR;
  WRITELN ('ANIMASI STACK');
  WRITELN ('1. PUSH');
  WRITELN ('2. POP');
  WRITELN ('3. QUIT');
  WRITELN ('PILIHAN [1/2/3]=');
  GOTOXY (59,6); WRITE ('\');
  GOTOXY (59,8); WRITE ('/');
  GOTOXY (37,10); WRITE ('\      /');
  FOR I:=1 TO 11 DO
  BEGIN
    GOTOXY (38,10+I);
    IF I=11 THEN WRITE ('|---------|') ELSE WRITE ('|......|');
    END;
  TOP :=0;
  REPEAT
     GOTOXY(19,5); CLREOL;
     PIL:=READKEY; WRITE (PIL);
     IF PIL='1' THEN
     BEGIN
       IF TOP <> MAX THEN
       BEGIN
         GOTOXY (1,7); WRITE ('MASUKKAN SUATU HURUF=');
         TEMP:=READKEY; WRITE (TEMP);
         PUSH (TEMP);
         GOTOXY(1,7); CLREOL;
       END ELSE
       BEGIN
         GOTOXY (1,7); WRITE ('STACK TELAH PENUH'); READKEY;
         GOTOXY (1,7); CLREOL;
       END;
  END ELSE
  IF PIL='2' THEN POP (TEMP);
  UNTIL PIL ='3';
END.

Tidak ada komentar:

Posting 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...