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: |
-
hehehehe.... we' pucing aQ mo komen ap... coz, pesanQ do'ain aQ ja yah biar ngerti dgan Stack ne,,,,,
|
|
<< 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 |
|
|
hehehehe....
we' pucing aQ mo komen ap...
coz, pesanQ do'ain aQ ja yah biar ngerti dgan Stack ne,,,,,