Pengertian Stuck dan Contoh Kodingnya

by 03.10 0 komentar


Stack merupakan bentuk khusus dari suatu struktur data, dimana node yang ditambahkan ke dalam list dan diambil dari list hanya pada kepalanya atau dengan kata lain prinsip pengolahannya dalah last-in first-out (LIFO). Dengan demikian, pada struktur ini hanya ada dua fungsi utama yaitu push (memasukkan node ke dalam stack), dan pop (mengambil node dari stack). Secara sederhana tumpukan bisa diartikan sebagai kumpulan data yang seolah-olah diletakkan di atas data yang lain. Kita Bisa menambah (menyisipkan) data dan mengambil (menghapus) data melalui ujung yang sama yang disebut sebagai ujung atas tumpukan. Sebagai contohnya misalkan kita mempunyai 2 buah kotak yang ditimpuk sehingga kotak yang satu akan diatas kotak yang lainnya. Jika kemudian tumpukan 2 kotak tadi, ditambah kotak ketiga, keempat, kelima dan seterusnya, maka akan diperoleh sebuah tumpukan kotak yang terdiri dari N kotak.
Secara sederhana sebuah tumpukan bisa diilustrasikan sebagai gambar berikut :

Dari gambar diatas bisa di lihat bahwa kotak B terletak di atas kotak A dan di bawah kotak C. Gambar diatas menunjukan bahwa dalam tumpukan dalam tumpukan hanya bisa menambah atau mengambil sebuah kotak lewat satu ujung yaitu bagian atas. Bisa dilihat juga yang menjadi ujung atas tumpukan adalah kotak F. Jadi jika ada kotak lain yang akan di sisipkan, akan diletakkan di ats kotak F, dan jika ada kotak yang akan diambil, maka kotak F yang akan pertama diambil. 
Operasi Pada Tumpukan.
Ada 2 operasi dasar yang bisa dilaksanakan pada sebuah tumpukan yaitu operasi menyisipkan data (push) dan operasi menghapus data (pop).
Operasi push
Perintah push digunakan untuk memasukkan data ke dalam tumpukan. Conthnya misalkan kita mempuyai data-data 3, 25, dan 9 dalam tumpukan dengan posisi 3 paling bawah dan 9 paling atas. Dan kita akan memasukkan data 34 ke dalam tumpukan tersebut. Tentu saja data 34 akan diletakkan di atas data 9.


Operasi Pop
Operasi Pop adalah operasi untuk menghapus elemen yang yang terletak pada posisi paling atas dari sebuah tumpukan. Sama halnya dengan operasi push. Pertanyaanya sekarang bagaimana kalau tumpukan itu kosong. Cara untuk melihat kosong tidaknya suatu tumpukan adalah dengan membuat suatu fungsi yang menghasilkan suatu data yang bertipe Boolean. Cara ini lebih disarankan karena dengan mengetahui nilai fungsi tersebut kita bisa tahu kosong tidaknya suatu tumpukan.
Contoh Implementasinya Kedalam Koding:
#include <iostream>
#include <conio.h>
#include <cstdlib>

using namespace std;

struct STACK
{
    int data[5];
   int atas;
};

STACK tumpuk;

int main()
{
    system("cls");
   int pilihan,baru,i;
   tumpuk.atas=-1;
   do
   {
       system("cls");
      cout<<"1.Push Data"<<endl;
      cout<<"2.Pop Data"<<endl;
      cout<<"3.Print Data"<<endl;
      cout<<"4.Keluar"<<endl;
      cout<<endl;
      cout<<"Pilihan : ";
      cin>>pilihan;
      switch(pilihan)
      {
          case 1 :
         {
             if(tumpuk.atas==5-1)
            {
                cout<<"Tumpukan penuh";
               getch();
            }
            else
            {
                cout<<"Data yang akan di Push :";
               cin>>baru;
               tumpuk.atas++;
               tumpuk.data[tumpuk.atas]=baru;
            }
            break;
         }
         case 2 :
         {
             if(tumpuk.atas==-1)
            {
                cout<<"Tumpuk 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 "<<endl;
                getch;
             }
         else
             {
                 cout<<"Data= " <<endl;
                for(i=0;i<=tumpuk.atas;i++)
                {
                    cout<<tumpuk.data[i]<<" ";
                }
         case 4:
            {
                exit(1);
            }

            getch();
         }
         break;
      }
      default:
      {
          cout<<"Tidak ada dalam pilihan"<<endl;
      }
   }
}
    while(pilihan>=1 && pilihan<=3);
    getch();
    return 0;
}
Jika dicompile maka akan tampak seperti gambar berikut:

Sumber  : Konsep dan Implementasi Struktur Data dengan C++
Oleh       : Lamhot Sitorus dan David J.M. Sembiring
Penerbit  : Andi

Simpan Gambar Aja

NIM: 140010297

Nama Dosen: IB KETUT SURYA ARNAWA, S.Kom.
Asisten : Steven Anthony

0 komentar:

Posting Komentar