Anda di halaman 1dari 17

Operasi pada Stack

1. Deklarasi
2. Inisialisasi
3. Cek kosong
4. Cek penuh (pada Array)
5. Penambahan
6. Pengambilan
7. Pengaksesan
(1) Deklarasi
 Proses yang harus dilakukan pertama kali adalah
deklarasi/menyiapkan tempat.
Deklarasi Stack dengan
Linked-list
1. Pembuatan struct TNode
contoh :
struct TNode{
int data;
TNode *next;
};
2. Pembuatan variabel head, tail dan top bertipe
TNode.
TNode *head,*tail,*top;
(2) Inisialisasi
 Pada Linked List:
Proses inisialisasi dilakukan dengan memberikan nilai awal pada
variabel head, tail dan top dengan nilai null.
void inisialisasi(){
head=tail=top=NULL;
}
(3) Cek Kosong
 Operasi yang digunakan untuk mengecek kondisi stack dalam
keadaan kosong.
 Caranya : melihat nilai top. Jika nilainya sama seperti ketika
inisialisasi berarti stack dalam kondisi kosong (top=NULL).
 Operasi ini harus dapat mengembalikan nilai true jika stack kosong
dan false jika sebaliknya.
Program “isEmpty” (Linked
List)

bool isEmpty(){
return (top==NULL);
}
(5) Operasi POP
 Pop adalah proses pengambilan data pada
stack.
 Ketika pop terjadi, element pada stack akan
berkurang, yaitu element yang paling akhir
ditambahkan.
 Sehingga posisi pointer top juga akan
bergeser :
 Pada linked list : top menunjuk ke node sebelum
node yang dihapus.
(5) Operasi
POP...........(lanjutan)
 Langkah-langkah :
1. Pengecekan stack dalam kondisi kosong
dengan memanggil method isEmpty().
Jika nilai yang dikembalikan true maka
keluar pesan “stack kosong” Jika nilai
yang dikembalikan false maka akan
dilakukan langkah berikutnya (langkah 2
dan 3).
2. Data dari element paling belakang akan
menjadi return value (nilai yang
dikembalikan).
3. Pergeseran posisi top.
Program Pop (Linked List)

int pop(){
if(isEmpty())
cout<<"stack kosong";
int tampungData=top->data;
removeLast();
top=tail;
return tampungData;
}
Program removeLast
void removeLast(){
TNode *bantu,*hapus;
if (!isEmpty()){
bantu = head;
if(head!=tail){
while(bantu->next!=tail){
bantu = bantu->next;
}
hapus = tail;
tail=bantu;
delete hapus;
tail->next = NULL;
}else {
head=tail=NULL;
}
} else cout<<"Masih kosong\n";
}
(6) Operasi Push
 Push adalah proses penambahan element
pada stack.
 Ketika push terjadi, element pada stack
akan bertambah 1.
 Posisi pointer top akan bergeser menunjuk
pada element baru yang ditambahkan..
 Pada linked list : top akan menunjuk ke node
baru yang ditambahkan
(6) Operasi
PUSH...........(lanjutan)
 Langkah-langkah :
1. Penambahan element baru pada bagian belakang stack.
2. Pergeseran posisi top.
Program Push (Linked List)

void push(int baru){


addLast(baru);
top=tail;
}
Program addLast
void addLast(int databaru){

TNode *baru,*bantu;
baru = new TNode;
baru->data = databaru;
baru->next = NULL;
if(isEmpty()){
head=baru;
tail=baru;
tail->next = NULL;
}
else {
tail->next = baru;
tail=baru;
}
cout<<"Data masuk\n";
}
(7) Operasi peek
 Peek adalah proses pengaksesan element yang ditunjuk oleh
top(yaitu element yang terakhir kali ditambahkan).
 Operasi ini berbeda dengan pop karena tidak disertai dengan
penghapusan data yang ada hanya pengaksesan (pengembalian data
saja).
Program Peek (Linked List)

int peekStack(){
return top->data;
}
Penting!
 Untuk linked list, jika operasi push dilakukan dari depan (addFirst)
maka operasi pop juga dilakukan dari belakang (removeFirst).
Sebaliknya, jika operasi push dari belakang (addLast) maka operasi
pop juga dilakukan dari belakang (removeLast).

Anda mungkin juga menyukai