Minggu, 11 Desember 2011

Tumpukan

Pengertian tumpukan
Secara sederhana, tumpukan bisa diartikan sebagai suatu kumpulan data yang seolah‑olah ada data yang diletakkan diatas data lain. Satu hal yang perlu kita ingat adalah bahwa kita bisa menambah (menyisipkan) data, dan mengambil (menghapus) data lewat ujung yang sama, yang disebut dengan ujung tumpukan (top of stack).

Penyajian tumpukan
Tumpukan bisa disajikan dengan menggunakan data yang bertipe larik (array), dengan nomor larik terkecil diletakkan paling bawah dan nomor terbesar diletakkan pada paling atas.
Namun dalam praktikum ini data yang digunakan bertipe record yang terdiri dari satu atau beberapa medan yang bertipe larik untuk menyimpan elemen tumpukan dan satu medan yang bertipe integer untuk mencatat ujung atas tumpukan.
Contoh deklarasi tumpukan berikut ini terdiri dari dua medan, medan pertama bertipe larik dan medan kedua bertipe integer;
const maxelemen = 255;
type tumpukan = record
            Isi : array il..maxelenienj of integer;
            atas : 0..maxelemen;
        end;
var
    T : tumpukan;
Operasi pada tumpukan:
1. Operasi Push
Operasi push adalah proses meletakkan suatu elemen pada tumpukan paling atas.
Operasi push dapat diimplementasikan sebagai berikut:
procedure push (var T : tumpukan; X: integer);
begin
    if T.Atas = maxelemen then
        writeln('Tumpukan sudah penuh')
    else
    begin
      T.atas := T.atas + 1;
      T.isi[T.atas] := X;
    end;
end;
Untuk memanggil prosedur diatas dengan

Push(T,X);

2. Operasi Pop:
Operasi Pop adalah suatu proses menghapus elemen data paling atas dari suatu tumpukan. Operasi Pop dapat diimplementasikan sebagai berikut:

Procedure pop (var T : tumpukan);
begin
   If T.atas = 0 then
         writeln('Tumpukan sudah kosong')
   else
       T.atas:= T.atas ‑ 1; end;

Prosedur diatas dapat dipanggil dengan:

Pop (T);