;;..Stack..;;


- 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; Contoh: 1 2 3 4 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.

2 komentar:

  penguasa IT

3 Juni 2009 pukul 23.13

jadi stack merupakan tumpukan yee.........

  die without music

4 Juni 2009 pukul 08.28

ah ga jelassssssss