STACK DALAM BAHASA PASCAL

IMPLEMENTASI STACK DALAM BAHASA PASCAL

Implementasi dalam bahasa Pascal dapat dilakukan dengan memanfaatkan struktur data record dan array. Array dipergunakan untuk menyimpan elemen-elemen yang dimasukkan. Selain itu diperlukan pula suatu variabel untuk mencatat banyaknya elemen yang adadi dalam array yang sekaligus menunjukkan TOS. Pada implementasi di bawah ini:

  • konstanta maxelm menyatakan banyaknya elemen maksimum yang dapat ditampung oleh stack
  • typeelemen adalah tipe data yang akan disimpan di dalam stack (bisa integer, word, real, boolean, char , string atau lainya)
  • banyak adalah field yang menyatakan banyaknya elemen dalam stack saat itu, yang sekaligus menyatakan TOS
Deklarasi tipe untuk tumpukan (stack):
type tumpukan = record
   banyak :0..maxelm;
   elemen : array[1..maxelm] of typeelemen;
end;
Selain prosedur untuk POP dan PUSH, kita dapat pula menambahkan sejumlah fungsi untuk membantu penanganan kesalahan diantaranya adalah fungsi PENUHS (untuk mengecek apakah stack penuh) fungsi KOSONGS (untuk mengecek apakah stack kosong) dan fungsi SIZES (untuk mengetahui banyaknya elemen di dalam stack). Masing-masing sub program di atas dapat disajikan pseudocode-nya sebagai berikut:

Procedure Inisialisasi(var S : tumpukan);
begin
  S. banyak¬ 0
end;

Function PENUHS(S : tumpukan): boolean;
begin
 Jika S.banyak = maxelm maka PENUHS ¬ true
 else PENUHS ¬false
end;

Function KOSONGS(S : tumpukan):boolean;
begin
 If S.banyak = 0 then KOSONGS ¬ true
 else KOSONGS¬false
end;

Procedure PUSH(data : tipeelemen; var S : tumpukan);
begin
 If not KOSONGS(S) then
 begin
  1. S.banyak ¬ S.banyak +1
  2. S.elemen[S.banyak]¬data
 end
 else
   Tampilkan pesan kesalahan "Stack Penuh"
end;

Procedure POP(var S : tumpukan; var data : typeelemen);
begin
 If not KOSONGS(S) then
 begin
  1. data¬S.elemen[S.banyak]
  2. S.banyak ¬ S.banyak - 1
 end
 else
   Tampilkan pesan kesalahan "Stack kosong"
End;

Categories: , Share

Leave a Reply