Uploaded by rahmatmayers5

Stack

advertisement
Stack / Tumpukan
Stack dapat diartikan sebagai tumpukan dari benda atau data yang seolah -olah
diletakkan di atas data yang lain dimana data yang pertama kali masuk akan terakhir.
Secara sederhana sebuah stack bisa digambarkan sebagai tumpukan buku yang
disimpan dengan cara ditumpuk keatas. Dimana buku yang pertama kali disimpan atau
ditumpuk ada di paling bawah dan yang selanjutnya ditumpuk diatasnya. Dan ketika kita
melakukan pengambilan buku ototmatis buku yang terkahir ditumpuk atau disimpan
terakhir akan mejadi yang pertama diambil, istilah ini kemudian disebut FILO (First In
Last Out) dan bertambah atau berkurangnya data melalui satu ujung yang sama yaitu
ujung atas tumpukan (Top of Stack).
Ada 2 operasi dasar dari stack yang dapat dilakukan, yait u :
1. Operasi push yaitu operasi menambahkan elemen pada urutan terakhir (paling
atas).
2. Operasi pop yaitu operasi mengambil sebuah elemen data pada urutan terakhir dan
menghapus elemen tersebut dari stack.
Selain operasi dasar stack (push dan pop), ada lagi operasi lain yang dapat terjadi dalam
stack yaitu :
1. Proses deklarasi yaitu proses pendeklarasian stack.
2. Proses inisialisasi yaitu proses pembuatan stack kosong, biasanya dengan
pemberian nilai untuk top.
3. Proses cek kosong yaitu proses pemeriksaan apakah stack dalam keadaan kosong.
4. Proses cek penuh yaitu proses pemeriksaan apakah stack telah penuh.
Operasi-operasi stack secara lengkap adalah sebagai berikut :
Pendeklarasian stack dengan array
Proses pendeklarasian stack adalah proses pembuatan struktur stack dalam memori.
Karena stack dapat direpresentasikan dalam 2 cara, maka pendeklarasian stack pun ada
2 yaitu:
Suatu stack memiliki beberapa bagian yaitu:
1. top yang menunjuk posisi data terakhir (top)
2. elemen yang berisi data yang ada dalam stack. Bagia n ini lah yang berbentuk array.
Deklarasi stack dengan array:
struct stack
{
int elemen[10]; //elemen int top;
};
Inisialisasi
Inisialisasi stack adalah proses pembuatan suatu stack kosong. Proses inisialisasi untuk
stack yang menggunakan array adalah dengan mengisi nilai field top dengan 0 (nol) jika
elemen pertama diawali dengan nomor 1. Kalau elemen pertama array dimulai dengan 0
maka top diisi dengan nilai -1.
p->top=-1
Operasi Cek Kosong Stack
Operasi ini digunakan untuk memeriksa apakah stack dalam keadaan kosong. Operasi ini
penting dilakukan dalam proses pop. Ketika suatu stack dalam keadaan kosong, maka
proses
pop tidak bisa dilakukan. Operasi ini dilakukan hanya dengan memeriksa field top. Jika
top top bernilai -1, maka berarti stack dalam keadaan empty (kosong).
if (p->top==-1)
{
cout<<"STACK kosong";
return -1;
}
Operasi Cek Penuh
Operasi ini berguna untuk memeriksa keadaan stack apakah sudah penuh atau belum.
Operasi ini akan memberikan nilai true (1) jika field top sama dengan size -1.
if(p->top==size-1)
cout<<"STACK penuh ";
Operasi Push
Operasi ini berguna untuk menambah suatu elemen data baru pada stack dan disimpan
pada posisi top yang akan mengakibatkan posisi top akan berubah. Langkah operasi ini
adalah :

Periksa apakah stack penuh. Jika tidak penuh maka proses push dilaksanakan dan
jika stack penuh, maka proses push digagalkan.
 Proses push-nya sendiri adalah dengan menambah field top dengan 1, kemudian
elemen pada posisi top diisi dengan elemen data baru. if(p->top==size-1)
cout<<"STACK penuh ";
else
p->elemen[++p->top]=value;
Operasi Pop
Operasi ini berguna untuk mengambil elemen terakhir (top) dan kemudian menghapus
elemen tersebut sehingga posisi top akan berpindah. Langkah operasi pop pada stack
yang menggunakan array adalah terlebih dahulu memeriksa apakah stack sedang
keadaan kosong, jika tidak kosong maka data diambil pada posisi yang ditunjuk oleh
posisi top, kemudian posisi top – 1.
if (p->top==-1)
{
cout<<"STACK kosong";
return -1;
}
else
return p->elemen[p->top--];
Download