STACK (tumpukan)
´ Anggota
Kelompok:
´ -BENICO
REKYASSA (NIM:11141975)
´ -LULUS
KURNIAWAN (NIM:11140693)
´ -RAMADAN
ZAMHARI (NIM:11141397)
´ -REZQY
CHANDRA AMIN (NIM:11141993)
´ -RIDHO
NOVRAN PRATAMA (NIM:11142339)
´ -SUKMA
NUROCHIM (NIM:11141163)
DEFINISI STACK(TUMPUKAN)
´ Merupakan
bentuk khusus dari Linear List yang pemasukan dan penghapusan elemennya hanya
dapat dilakukan pada satu posisi, yaitu posisi akhir dari List(Top).
´ Prinsip
dari Stack adalah LAST-IN-FIRST-OUT (LIFO)
OPERASI STACK
´ •
ISEMPTY
Untuk memeriksa apakah stack kosong
´ •
ISFULL
Untuk memeriksa apakah stack sudah penuh
´ •
PUSH
Untuk menambahkan item pada posisi paling atas
(TOP)
´ •
POP
Untuk menghapus item paling atas (TOP)
´ •
CLEAR
Untuk mengosongkan stack
STACK PADA ARRAY
´ Deklarasi
MAX_STACK
#define MAX_STACK 5
´ Deklarasi
STACK dengan struct dan array data
typedef
struct STACK{
int
top;
int
data[5];
};
´ Deklarasi variabel stack dari struct
STACK
tumpuk;
Inisialisasi
´ Pada
mulanya sis top dengan -1 karena array dalam C++ dimulai dari 0, berarti stack
adalah KOSONG
´ TOP
adalah variable penanda dalam STACK yang menunjukan elemen teratas STACK
´ TOP
of STACK akan selalu bergerak hingga mencapai MAX of STACK sehingga menyebabkan
stack PENUH
´ void
inisialisasi ()
{
tumpuk.top
= -1
}
Fungsi IsEmpty
´ Digunakan
untuk memeriksa apakah stack masih dalam kondisi kosong
´ Dengan
cara memeriksa TOP of STACK. Jika TOP masih=-1 maka berarti stack masih kosong
´ int
IsEmpty ()
{
if
(tumpuk.top == -1
return
1;
else
return
0;
Fungsi IsFull
´ Digunakan
untuk memeriksa apakah kondisi stack sudah penuh
´ Dengan
cara memeriksa TOP of STACK.
Jika
TOP of STACK = MAX_STACK-1 maka FULL(Penuh).
Jika
TOP of STACK < MAX_STACK-1 maka belum penuh
int IsFull ()
{
if (tumpuk.top == MAX_STACK-
1
return 1;
else
return 0;
}
{
if (tumpuk.top == MAX_STACK-
1
return 1;
else
return 0;
}
Fungsi Push
´ Digunakan
untuk memasukkan elemen ke dalam stack dan selalu menjadi elemen teratas stack
´ •
Dengan cara :
1.
Menambah satu (increment) nilai TOP of STACK setiap ada penambahan elemen stack selama stack masih belum penuh
2.
Isikan nilai baru ke stack berdasarkan indeks TOP of STACK setelah satu (diincrement)
void push (char d[5])
{
tumpuk.top++
strcpy(tumpuk.data[tumpuk.top],d);
}
{
tumpuk.top++
strcpy(tumpuk.data[tumpuk.top],d);
}
Fungsi POP
´ Digunakan
untuk menghapus elemen yang berada pada posisi paling atas dari stack.
´ •
Dengan cara :
1. Ambil dahulu nilai elemen
teratas stack dengan mengakses TOP of STACK.
2.
Tampilkan nilai yang akan diambil.
3.
Lakukan decrement nilai TOP of STACK sehingga jumlah elemen stack berkurang 1.
void pop ()
{
printf(“Data yg di POP = %s\n”, tumpuk.data[tumpuk.top]);
tumpuk.top--;
}
{
printf(“Data yg di POP = %s\n”, tumpuk.data[tumpuk.top]);
tumpuk.top--;
}
Fungsi CLEAR
´ Digunakan
untuk mengosongkan stack / membuat stack hampa sehingga Top pada Stack berada
kembali di posisi Top = -1
void
clear ()
{
tumpuk.data=tumpuk.top=-1
printf(“Data
clear”);
}
Contoh Soal
´ Diketahui
sebuah Stack dengan MAX_STACK=5
´ 1.
Bila dilakukan PUSH 3 elemen kedalam Stack, kemudian di PUSH lagi 2 elemen dan
di POP 3 elemen. Maka dimana posisi terakhir adalah?
´ 2.
IsFull pada kondisi terakhir adalah?
´ 3.
Dari Kondisi diatas, berapa elemen yang harus di POP untuk mencapai kondisi
Stack kosong, TOP of STACK= -1
´ 4.
Dari kondisi diatas, berapa elemen yang harus di PUSH untuk mencapai kondisi
IsFull?
Jawaban
1. Maka posisi terakhir ada dielemen ke 1
1. Maka posisi terakhir ada dielemen ke 1
2. False, karena TOP of STACK < Max_STACK – 1 maka kondisi stack terakhir belum
penuh
3. 2 elemen
4. 5 elemen
Tidak ada komentar:
Posting Komentar