seni seviyorum

Rabu, 03 Juni 2009
STACK
STACK ( Tumpukan )

- Adalah tumpulan data yang seolah-olah ada data di atas data lain.
- Suatu metode untuk Input dan hapus di dalam memori komputer.

Konsep utama dalam STACK adalah LIFO ( Last In First Out ).
Contoh:

5 Guntur
4 Aditya
3 Tyas
2 Hendra
1 Dyah

Data nomor 1 datang/masuk duluan, data nomor 5 yang paling atas yang keluar terlebih dahulu.

Algoritma:
1. Input/tambah data
• Jika ada input maka no stack/no tumpukan yang semula 0 akan tambah 1 demi 1 sampai maksimal tumpukan.

2. Pengambilan data
• Jika ada pengambilan data maka data dipindahkan di variabel lain contohnya temp. Dan posisi tumpukannya yang semula maksimal akan berkurang 1 demi 1 sampai posisi 0 kembali.


1. Deklarasi STACK

Type
Const
Max = 5;
Nama record = Record
Data : type data;
Top : byte;
End;
Nama_array = ARRAY [1..max] of Nama record;
Var
STACK : nama Array;

Nama Array----- Barang
Nama Record--- Coba
Nama Variabel-- Stack

Contoh Deklarasi dari gambar diatas:

Type
Coba = record
Data :string;
Top : byte;
End;
Barang = ARRAY [1..4] of coba;
Var
Stack:barang;

2. Operasi pada STACK
• CREATE
Membuat stack baru yang masih kosong.

Procedure create;
Begin
Stack.top:=0;
End;

• FULL
Untuk memeriksa apakah stack sudah penuh atau belum.

Fuction full:bolean;
Begin
Stack.top:=max;
End;

• PUSH
Menambah sebuah elemen ( data ) kedalam stack
Syarat: tidak bisa dilakukan jika stack sudah penuh.

Procedure push ( input:string );
Begin
If not full then
Begin
Stack.top:=stack.top;
Stack.data:=input;
End;
End;

• EMPTY
Fuction empty: bolean;
Begin
Empty:=false;
If top:=0 then empty:=true;
End;

• POP
Mengambil elemen teratas dari stack.
Syarat: Stack tidak boleh kosong.

Procedure Pop ( elemen:string );
Begin
If not empty then
Begin
Elemen:=stack.data;
Stack.top:=top – 1;
End;
End;


Uses wincrt;
Type
kelas = ARRAY[1..4] of string;
Var
Stack: kelas;
top:byte;
Elemen: string;
I : integer;
Begin
top:=0;
For i:=1 to 4 do
Begin
Writeln('masukkan nama ke', ' ',i,' ','='); readln(stack[i]);
top:=top+1;
End;
writeln('posisi tumpukan=',top);
Writeln('pengambilan data');
For i:=1 to 4 do
Begin
Elemen:=stack[i];
top:=top - 1;
End;
writeln;
Writeln('data elemen sekarang=',elemen);
writeln('posisi tumpukan=',top);
Readln;
End.
posted by asy syaghaf @ 6/03/2009 09:12:00 PM  
1 Comments:
  • At 5 Juni 2009 pukul 06.40, Anonymous Anonim said…

    hehehehe....
    we' pucing aQ mo komen ap...
    coz, pesanQ do'ain aQ ja yah biar ngerti dgan Stack ne,,,,,

     
Posting Komentar
<< Home
 
About Me

Name: asy syaghaf
Home: Pekanbaru, Riau
About Me: saya hanya seorang gadis biasa yang tengah berjuang menelusuri jati diri.
See my complete profile
Previous Post
Archives
Shoutbox

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis ligula lorem, consequat eget, tristique nec, auctor quis, purus. Vivamus ut sem. Fusce aliquam nunc vitae purus.

Links
  • link 1
  • link 2
  • link 3
  • link 4
Powered by

Free Blogger Templates

BLOGGER