Minggu, 01 April 2012

Membuat Stack dengan PASCAL

            Pada postingan kali ini saya akan memaparkan bagaimana cara mengaplikasikan teori dari stack yang sebelumnya sudah diposting.Program yang akan saya berikan kali ini dikerjakan dengan menggunakan FPC ( Free Pascal Compiler ).Tanpa perlu panjang lebar inilah codingan dan output yang saya maksud.

program stack;
uses
 crt;
var
 arraystack: array[1..10] of char;
n, i, b, pil, balik, iseng, udahcreatebelom : shortint;
begin
 clrscr;
 i:=0;
 balik:=0;
 iseng:=0;
 b:=20;
 udahcreatebelom:=0;
 gotoxy(35,4); writeln(‘╔═══════════╗');
 gotoxy(35,5); writeln('║ Program Stack   ║');
 gotoxy(35,6); writeln(‘╠═══════════╣');
 gotoxy(35,7); writeln('║  1. Buat Array     ║');
 gotoxy(35,8); writeln('║  2. CREATE(S)   ║');
 gotoxy(35,9); writeln('║  3. PUSH(S)        ║');
 gotoxy(35,10); writeln('║  4. POP(S)         ║');
 gotoxy(35,11); writeln('║  5. ISEMPTY(S) ║');
 gotoxy(35,12); writeln('║  6. exit                ║');
 gotoxy(35,13); writeln(‘╚═══════════╝');
 repeat;
gotoxy(51,17);write ('      ');
gotoxy(32,17); write('Masukkan pilihan : '); readln(pil);
case (pil) of
 2: begin
 if i = 0 then begin
gotoxy(33,20); write('Array Memang Sudah Kosong');
end
else begin
gotoxy(32,16); writeln('                         ');
i:=0;
b:=20;
gotoxy(27,20); write(' ');
gotoxy(27,18); write(' ');
gotoxy(27,16); write(' ');
gotoxy(27,14); write(' ');
gotoxy(27,12); write(' ');
gotoxy(27,10); write(' ');
gotoxy(27,8); write(' ');
gotoxy(27,6); write(' ');
gotoxy(27,4); write(' ');
gotoxy(27,2); write(' ');
gotoxy(18,23); write('                     ');
gotoxy(33,20); write('                         ');
gotoxy(33,19); write('             ');
end;
end;
 3: begin
if udahcreatebelom=1 then begin
 inc(i);
if (i<=n) then begin
gotoxy(32,16); writeln('                         ');
gotoxy(33,20); write('                          ');
gotoxy(33,19);
write('                      ');
gotoxy(33,19);
 write('data ke ', i, ' = '); readln(arraystack[i]);
gotoxy(27,b); write(arraystack[i]);
gotoxy(18,23); write('NOEL : ', i); readln;
gotoxy(29,23); write('TOP : ', arraystack[i]); readln;
b:=b-2;
end
else begin
gotoxy(32,16); writeln('                         ');
gotoxy(33,20); write('OVER FLOW'); dec(i); readln;
end;
end
else begin
gotoxy(32,16); writeln('                         ');
gotoxy(33,20); write('Array Belum dibuat'); readln;
end;
end;
4: begin
if udahcreatebelom=1 then begin
if (i>=1) then begin
gotoxy(32,16); writeln('                         ');
gotoxy(33,20); write('                           ');
arraystack[i]:=' ';
b:=b+2;
gotoxy(27,b); write(arraystack[i]);
dec(i);
 gotoxy(33,19);
write('data ke ', i, ' = '); write(arraystack[i]);
gotoxy(18,23); write('NOEL : ', i); readln;
gotoxy(29,23); write('TOP : ', arraystack[i]); readln;
end
else begin
gotoxy(32,16); writeln('                         ');
gotoxy(33,20); write('UNDER FLOW'); readln;
end;
end
else begin
gotoxy(32,16); writeln('                         ');
gotoxy(33,20); write('Array belum dibuat'); readln;
end;
end;
5: begin
if udahcreatebelom=1 then begin
if (i=0) then begin
gotoxy(32,16); writeln('                         ');
gotoxy(33,20); write('TRUE'); readln;
end
else begin
gotoxy(32,16); writeln('                         ');
gotoxy(33,20); write('FALSE'); readln;
end;
end
else begin
gotoxy(33,20); write('Array belum dibuat'); readln;
end;
end;
6: begin
exit;
end;
1: begin
gotoxy(32,16); writeln('                         ');
gotoxy(64,18); write('   ');
gotoxy(18,23); write('                     ');
gotoxy(33,19); write('             ');
gotoxy(33,20); write('                       ');
gotoxy(25,1); writeln('     ');
gotoxy(25,2); writeln('     ');
gotoxy(25,3); writeln('     ');
gotoxy(25,4); writeln('     ');
gotoxy(25,5); writeln('     ');
gotoxy(25,6); writeln('     ');
gotoxy(25,7); writeln('     ');
gotoxy(25,8); writeln('     ');
gotoxy(25,9); writeln('     ');
gotoxy(25,10); writeln('     ');
gotoxy(25,11); writeln('     ');
gotoxy(25,12); writeln('     ');
gotoxy(25,13); writeln('     ');
gotoxy(25,14); writeln('     ');
gotoxy(25,15); writeln('     ');
gotoxy(25,16); writeln('     ');
gotoxy(25,17); writeln('     ');
gotoxy(25,18); writeln('     ');
gotoxy(25,19); writeln('     ');
gotoxy(25,20); writeln('     ');
gotoxy(25,21); writeln('     ');
i:=0;
b:=20;
gotoxy(32,18);
write('Masukan Jumlah ARRAY (max 10) : '); readln(n);
if n = 10 then begin
 gotoxy(25,1); writeln(‘╠══╣');
gotoxy(25,2); writeln('║      ║');
gotoxy(25,3); writeln('╠══╣');
gotoxy(25,4); writeln('║     ║');
gotoxy(25,5); writeln('╠══╣');
gotoxy(25,6); writeln('║     ║');
gotoxy(25,7); writeln('╠══╣');
gotoxy(25,8); writeln('║     ║');
gotoxy(25,9); writeln('╠══╣');
gotoxy(25,10); writeln('║     ║');
gotoxy(25,11); writeln('╠══╣’);
gotoxy(25,12); writeln('║     ║');
gotoxy(25,13); writeln('╠══╣');
gotoxy(25,14); writeln('║   ║');
gotoxy(25,15); writeln('╠══╣');
gotoxy(25,16); writeln('║     ║');
gotoxy(25,17); writeln('╠══╣');
gotoxy(25,18); writeln('║    ║’);
gotoxy(25,19); writeln('╠══╣');
gotoxy(25,20); writeln('║     ║');
gotoxy(25,21); writeln('╚══╝');
udahcreatebelom:=1;
end
else if n = 9 then begin
gotoxy(25,3); writeln('╠══╣');
gotoxy(25,4); writeln('║     ║');
gotoxy(25,5); writeln('╠══╣');
gotoxy(25,6); writeln('║     ║');
gotoxy(25,7); writeln('╠══╣');
gotoxy(25,8); writeln('║     ║');
gotoxy(25,9); writeln('╠══╣');
gotoxy(25,10); writeln('║    ║');
gotoxy(25,11); writeln('╠══╣’);
gotoxy(25,12); writeln('║     ║');
gotoxy(25,13); writeln('╠══╣');
gotoxy(25,14); writeln('║      ║’);
gotoxy(25,15); writeln('╠══╣');
gotoxy(25,16); writeln('║      ║');
gotoxy(25,17); writeln('╠══╣');
gotoxy(25,18); writeln('║     ║');
gotoxy(25,19); writeln('╠══╣');
gotoxy(25,20); writeln('║     ║');
gotoxy(25,21); writeln('╚══╝');
udahcreatebelom:=1;
                       
end
else if n = 8 then begin
gotoxy(25,5); writeln('╠══╣');
gotoxy(25,6); writeln('║     ║');
gotoxy(25,7); writeln('╠══╣');
gotoxy(25,8); writeln('║    ║ ');
gotoxy(25,9); writeln('╠══╣');
gotoxy(25,10); writeln('║    ║');
gotoxy(25,11); writeln('╠══╣');
gotoxy(25,12); writeln('║     ║’);
gotoxy(25,13); writeln('╠══╣¹');
gotoxy(25,14); writeln('║     ║');
gotoxy(25,15); writeln('╠══╣');
gotoxy(25,16); writeln('║     ║');
gotoxy(25,17); writeln('╠══╣');
gotoxy(25,18); writeln('║     ║');
gotoxy(25,19); writeln('╠══╣');
gotoxy(25,20); writeln('║   ║');
gotoxy(25,21); writeln('╚══╝');
udahcreatebelom:=1;
end
else if n = 7 then begin
gotoxy(25,7); writeln('╠══╣');
gotoxy(25,8); writeln('║    ║ ');
gotoxy(25,9); writeln('╠══╣');
gotoxy(25,10); writeln('║   ║');
gotoxy(25,11); writeln('╠══╣');
gotoxy(25,12); writeln('║   ║’);
gotoxy(25,13); writeln('╠══╣¹');
gotoxy(25,14); writeln('║   ║');
gotoxy(25,15); writeln('╠══╣');
gotoxy(25,16); writeln('║   ║');
gotoxy(25,17); writeln('╠══╣');
gotoxy(25,18); writeln('║   ║');
gotoxy(25,19); writeln('╠══╣');
gotoxy(25,20); writeln('║   ║');
gotoxy(25,21); writeln('╚══╝');
                                    udahcreatebelom:=1;
end
else if n = 6 then begin
gotoxy(25,9); writeln('╠══╣');
gotoxy(25,10); writeln('║   ║');
gotoxy(25,11); writeln('╠══╣');
gotoxy(25,12); writeln('║   ║’);
gotoxy(25,13); writeln('╠══╣¹');
gotoxy(25,14); writeln('║   ║');
gotoxy(25,15); writeln('╠══╣');
gotoxy(25,16); writeln('║   ║');
gotoxy(25,17); writeln('╠══╣');
gotoxy(25,18); writeln('║   ║');
gotoxy(25,19); writeln('╠══╣');
gotoxy(25,20); writeln('║   ║');
gotoxy(25,21); writeln('╚══╝');
                                                udahcreatebelom:=1;
end
else if n = 5 then begin
gotoxy(25,11); writeln('╠══╣');
gotoxy(25,12); writeln('║   ║’);
gotoxy(25,13); writeln('╠══╣¹');
gotoxy(25,14); writeln('║   ║');
gotoxy(25,15); writeln('╠══╣');
gotoxy(25,16); writeln('║   ║');
gotoxy(25,17); writeln('╠══╣');
gotoxy(25,18); writeln('║   ║');
gotoxy(25,19); writeln('╠══╣');
gotoxy(25,20); writeln('║   ║');
gotoxy(25,21); writeln('╚══╝');
                                                udahcreatebelom:=1;
end
else if n = 4 then begin
gotoxy(25,13); writeln('╠══╣¹');
gotoxy(25,14); writeln('║   ║');
gotoxy(25,15); writeln('╠══╣');
gotoxy(25,16); writeln('║   ║');
gotoxy(25,17); writeln('╠══╣');
gotoxy(25,18); writeln('║   ║');
gotoxy(25,19); writeln('╠══╣');
gotoxy(25,20); writeln('║   ║');
gotoxy(25,21); writeln('╚══╝');
                                                udahcreatebelom:=1;
end
else if n = 3 then begin
gotoxy(25,15); writeln('╠══╣');
gotoxy(25,16); writeln('║   ║');
gotoxy(25,17); writeln('╠══╣');
gotoxy(25,18); writeln('║   ║');
gotoxy(25,19); writeln('╠══╣');
gotoxy(25,20); writeln('║   ║');
gotoxy(25,21); writeln('╚══╝');
                                                udahcreatebelom:=1;
end
else if n = 2 then begin
gotoxy(25,17); writeln('╠══╣');
gotoxy(25,18); writeln('║     ║');
gotoxy(25,19); writeln('╠══╣');
gotoxy(25,20); writeln('║     ║');
gotoxy(25,21); writeln('╚══╝');
                                                udahcreatebelom:=1;
end
else if n = 1 then begin
gotoxy(25,19); writeln('╠══╣');
gotoxy(25,20); writeln('║     ║');
gotoxy(25,21); writeln('╚══╝');
udahcreatebelom:=1;
end
else if n = 0 then begin
gotoxy(25,21); writeln('Array tidak boleh Nol');
end
else begin
gotoxy(33,20); write ('Array maksimalnya 10');
end;
end;
else gotoxy(32,16); writeln('Tidak Ada dalam pilihan');
end;
 iseng:=1
 until(balik=1);
end.

Output Program

Gambar 1.Menu Utama

Gambar 2.Memasukkan elemen

Gambar 3.Mengecek Stack

Tidak ada komentar: