TI POLITALA ALPRO 2D

STACK

1.      Pengertian Stack
Stack pada struktur data adalah sebagai tumpukan dari benda, sekumpulan data yang seolah-olah diletakkan di atas data yang lain, koleksi dari objek-objek homogen, atau suatu urutan elemen yang elemennya dapat diambil dan ditambah hanya pada posisi akhir (top) saja. Secara sederhana tumpukan bisa diartikan sebagai kumpulan data yang seolaholah diletakkan di atas data yang lain. Dalam suatu tumpukan akan dapat dilakukan operasi penambahan (penyisipan) dan pengambilan (penghapusan) data melalui ujung yang sama, ujung ini merupakan ujung atas tumpukan. Stack pada Struktur Data dapat diilustrasikan dengan dua buah kotak yang ditumpuk, kotak yang satu akan ditumpuk diatas kotak yang lainnya. Jika kemudian stack 2 kotak tadi, ditambah kotak ketiga, keempat, kelima, dan seterusnya, maka akan diperoleh sebuah stack kotak yang terdiri dari N kotak. Konsep dasar pada stack sendiri adalah LIFO (Last In First Out) yang artinya data tersebut terakhir masuk namun data itu keluar pertama kali
2.      Operasi pada Stack
Stack memiliki beberapa operasi, yaitu:
a.      Top
Digunakan untuk melihat data pada tumpukan paling atas.
b.      Is Empty
Digunakan untuk memeriksa apkah stack masih dalam kondisi kosong yaitu dengan cara memeriksa TOP of Stack. Jika TOP masih = -1 maka berarti stack masih kosong.
c.       Is Full
Digunakan untuk memeriksa apakah kondisi stack sudah penuh, dengan cara menambah satu (increment) nilai TOP of Stack setiap ada penambahan elemen stack selama stack masih belum penuh atau dengan mengisikan nilai baru ke stack berdasarkan indeks TOP of Stuck setelah di tambah satu (increment).
d.      Push
Digunakan untuk memasukkan elemen ke dalam stack dan selalu menjadi elemen teratas stack, yaitu dengan menambah satu (increment) nilai TOP of Stack setiap ada penambahan elemen stack selama stack masih belum penuh atau dengan mengisikan nilai baru ke stack berdasarkan indeks TOP of Stack setelah ditambah satu (di increment).
e.       Pop
Digunakan untuk menghaus elemen yang berada pada posisi paling atas dari stack. Dengan cara:
1.      Mengambili lebih dahulu nilai elemen teratas stack dengan mengakses TOP of Stack.
2.      Menampilkan nilai yang akan diambil.
3.      Melakukan decrement nilai TOP of Stack sehingga jumlah elemen stack berkurang 1.
f.        Create empty
Digunakan untuk mengosongkan tumpukan.
g.      Clear
Digunakan untuk mengosongkan stack/membuat stack hampa sehingga top pada stack berada kembali di posisi top = -1.
3.      Contoh Program Stack
#include<stdio.h>
#include<conio.h>
#include<iostream.h>

struct stack
{
  int data[5];
  int atas;
};
stack tumpuk;

void main()
{
  clrscr();
  int pilihan, baru, i;

  tumpuk.atas=-1;
  do  
{
     clrscr();
      cout<<"1. PUSH DATA"<<endl;
      cout<<"2. POP DATA"<<endl;
      cout<<"3. PRINT DATA"<<endl<<endl;
      cout<<"MASUKKAN PILIHAN : ";
      cin>>pilihan;

switch (pilihan)
      {
        case 1 :
    if(tumpuk.atas==5-1)
       {
           cout<<"TUMPUKAN PENUH";
           getch();
       }
          else
       {
           cout<<"MASUKKAN DATA : ";
           cin>>baru;
           tumpuk.atas++;
           tumpuk.data[tumpuk.atas]=baru;
       }
       break;

  case 2 :
     if(tumpuk.atas==-1)
       {
           cout<<"TUMPUKAN KOSONG";
           getch();
       }
          else
       {
           cout<<"DATA YANG AKAN DI POP ="<<tumpuk.data[tumpuk.atas]<<endl;
           tumpuk.atas--;
           getch();
       }
  break;

  case 3 :
    if(tumpuk.atas==-1)
       {
           cout<<"TUMPUKAN KOSONG";
           getch();
             }
    else
             {
                cout<<"DATA - "<<endl;

               for(i=tumpuk.atas; i>=0; i--)
               {
               cout<<tumpuk.data[i]<<ends;
               }
               getch();
        }
        break;

  default :
           cout<<"TIDAK ADA DALAM PILIHAN";
            break;
      }

   }
while((pilihan>=1) && (pilihan<=3));
 getch();
}




SUMBER:
https://www.slideshare.net/MetaPratamaN/stack-49895480
http://suputradwipratama274.blogspot.com/2015/06/v-behaviorurldefaultvmlo.html
http://belajarstackbareng.blogspot.com/p/operasi-pada-stack_27.html
http://aditajulian05.blogspot.com/2017/04/makalah-struktur-data-stack.html
           

Share this

Related Posts

Previous
Next Post »