Materi Stack

Senin, 22 Juni 2015

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;
}                    



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);
}

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--;
}
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
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