stack(tumpukan)

28 February 2013 14:40:26 Dibaca : 123

Stack ( Tumpukan)

Pengertian ?

Sekumpulan data yang diletakkan diatas data yan lain , dan bisa melakukan penambahan (penyisipan ) data dan pengambilan (penghapusan) data lewat ujung yang sama.(Sekumpulan data terstruktur dengan sifat operasi penambahan (push) dan pengambilan (pop) elemen melalui satu tempat (top of stack).)Stack merupakan senarai (list) dengan sifat LIFO (last In First Out).

Deklarasi Stack

Stack dapat dideklarasikan dengan sebuah record yang mempunyai elemen sebuah array data untuk menyimpan elemen stack dan sebuah variabel top untuk menyimpan elemen stack teratas (top elemen). Deklarasi selengkapnya sebagai berikut :

Type

TipeElemen = array[1..MaxElemen] of TipeInfo

TipeStack = record

Elemen :TipeElemen;

TOP :0..MaxElemen; end;

Var

Stack : TipeStack;

Keterangan :

TipeStack

: adalah nama pengenal tipe untuk untuk stack

MaxElemen

: adalah jumlah maksimal elemen stack

Elemen

: adalah array model linear dengan index mulai

dari 1 s/d maksimal elemen.

Tipe Data

: adalah tipe data dari elemen elemen stack.

Top

: adalah elemen untuk menunjuk elemen

teratas dari stack.

Stack

: adalah variabel yang bertipe stack.

Operasi-operasi pada stack

1. Inisialisasi.

Inisialisasi adalah proses untuk membuat stack dalam keadaan kosong. Proses ini dilakukan dengan mengisi variabel top dengan nilai yang tidak menunjuk salah satu elemen array. Spesifikasi prosedure inisialisasi :

Tujuan

: mendeklarasikan stack yang kosong.

Input

: stack yang akan diinisialisasi.

Syarat awal

: - (tidak ada)

Output

: stack.

Syarat akhir

: stack dalam keadaan kosong.

Prosedure selengkapnya :

procedure Inisialisasi( var Stack :TipeStack);

begin

Stack.Top:=0;

end;

Operasi untuk mengetahui apakah stack dalam keadaan kosong atau tidak,

Dengan spesifikasi:

Tujuan

: mengecek apakah stack dalam keadaan

kosong

Input

: stack

Syarat awal

: - (tidak ada)

Output

: boolean (kosong atau tidak kosong)

Syarat akhir

: fungsi bernilai true jika stack dalam

keadaan kosong

Fungsi selengkapnya sebagai berikut :

function Stack_Kosong(Stack:TipeStack):boolean;

begin

Stack_Kosong:=(Stack.Top=0);

end;

Fungsi Size

Operasi untuk mengetahui jumlah elemen stack.

Tujuan

Mengetahui jumlah elemen stack

Input

Stack

Syarat awal

Stack sudah di inisialisasi

Output

Index Stack teratas (top)

Syarat akhir

Tidak ada

Fungsi selengkapnya sbb :

Function Size (Stack:TipeStack):Integer;

begin

Size:= Stack.Top;

end;

4. Operasi untuk mengetahui apakah Stack dalam keadaan penuh atau tidak

Dengan spesifikasi :

Tujuan

: mengecek apakah stack dalam keadaan

penuh (full)

Input

: Stack

Syarat awal

: - (tidak ada)

Output

: boolean (penuh atau kosong)

Syarat akhir

: stack penuh bernilai true jika stack dalam

keadaan penuh

Fungsi selengkapnya :

function Stack_Penuh(Stack:TipeStack):boolean;

begin

Stack_Penuh:=(Stack.Top=MaxElemen);

end;

5. Prosedure memasukkan data (Push) ke dalam stack

Dengan Spesifikasi :

Tujuan

: menambah elemen InfoBaru pada posisi paling atas

Input

: stack dan InfoBaru

Syarat awal

: stack tidak penuh

Output

: stack (keadaan sudah berubah)

Syarat akhir

: stack bertambah 1 (satu) elemen.

Prosedure selengkapnya sebagai berikut :

procedure Push(var Stack:TipeStack;InfoBaru:TipeInfo);

begin

if not Stack_penuh(Stack) then

begin

Stack.Top:=Stack.Top + 1;

Stack.Elemen[Stack.Top]:=InfoBaru;

end;

end;

6. Mengambil / mengeluarkan elemen (Pop) dari stack.

Prosesnya meliputi mengambil data dari elemen paling atas, kemudian menghapus elemen tersebut dengan cara mengubah nilai top untuk menunjuk elemen dibawahnya. Spesifikasi :

Tujuan

: mengambil (mengeluarkan) elemen dari

stack yang berada pada puncaknya (top of

stack) lalu disimpan dalam InfoPop.

Input

: stack

Syarat awal

: stack tidak kosong

Output

: stack dan infoPop

Syarat akhir

: stack berkurang 1 (satu) elemen

Prosedure selengkapnya :

procedure Pop(var Stack:TipeStack;var InfoPop:TipeInfo);

begin

if not Stack_Kosong(Stack) then

begin

InfoPop:=Stack.Elemen[Stack.Top];

Stack.Top:=Stack.Top - 1;

end;

end;

 

http://www1.search-results.com/web?l=dis&q=STACK(TUMPUKAN+)LIFO&o=APN10645&apn_dtid=^BND406^YY^ID&shad=s_0042&apn_uid=3040500489484140

 

Kategori

  • Masih Kosong

Blogroll

  • Masih Kosong