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