Sunday, December 6, 2015

pengertian Operasi dasar Pada Stack ( Tumpukan ) beserta contohnya, fungsi push dan pop,contoh program stack dan macam-macam stack!



  1. Jelaskan pengertian Stack?
  2. Sebutkan dan jelaskan Operasi dasar Pada Stack ( Tumpukan ) beserta contohnya!
  3. Sebutkan fungsi push dan pop!
  4. Buatlah contoh program stack!
  5. Sebutkan macam-macam stack!
Jawaban :
1.    Stack ( Tumpukan ) adlah kumpulan elemen – elemen data yang disimpan dalam satu lajur linier. Pada Stack, penambahan dan penghapusan elemennya hanya dapat dilakukan pada satu posisi, yaitu posisi akhir stack. Konsep utamanya adalah Last In First Out, benda yang terakhir masuk dalam stack akan menjadi benda pertama yang dikeluarkan dari stack.
2.        Operasi dasar yang dilakukan Dalam Stack ada dua yaitu :
    Menambah Komponen (Push)
    Menghapus Komponen (Pop)
            Operasi Push adalah Menambah elemen kedalam stack S, dimana penambahan dapat dilakukan jika stack itu belum penuh. Sedangkan Pop(s) adalah menghapus elemen dari stack, dimana elemen yang dihapus adalah elemen yang terakhir Masuk ( Last In First Out)
Operasi Push


Operasi POP

3.    Fungsi Push
Untuk memasukkan elemen ke stack, selalu menjadi elemen teratas stack (yang ditunjuk oleh TOS=Top Of Stack)
Fungsi Pop
Untuk mengambil elemen teratas (data yang ditunjuk oleh TOS) dari stack.
4.       Contoh Program Stack (Tumpukan) untuk membalikan kalimat:


#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <iostream.h>
#define MaxElemen 200 //menentukan batas max elemen

struct Tumpukan
{
 char Isi[MaxElemen];
   int Atas;
} T;

//sub program PUSH berfungsi memasukkan elemen ke dalam STACK
void PUSH (char x){ //fungsi push
if(T.Atas == MaxElemen){  //untuk mengecek apakah stack sudah penuh
 cout<<"Tumpukan Sudah Penuh";
 getch();
}
else{
 T.Atas = T.Atas + 1;
 T.Isi[T.Atas] = x;
}
}

//sub program POP berfungsi mengambil elemen dari STACK
char POP(){
 char hasil;
 if(T.Atas == 0){
    cout<<"Tumpukan sudah kosong";
      hasil = ' ';
   }
   else{
    hasil = T.Isi[T.Atas];
      T.Atas = T.Atas - 1;
   }
   return hasil;
}

//program utama
void main ()
{
     int I;       // pencacah
     char Kalimat[MaxElemen];   //kalimat yang akan dibalik
     clrscr();
     T.Atas =0;  // nilai awal tumpukan
     cout<<"Aplikasi Stack untuk Membalik kalimat\n";
     cout<<"----------------------------------------\n\n";

     // Inputkan kalimat yang akan dibalik
     cout<<"Masukkan sembarang kalimat : ";gets(Kalimat);

     clrscr();
     cout<<"Kalimat Asli : "<<Kalimat;

     //Mem-PUSH huruf dari kalimat ke dalam tumpukan
     for(I=0;I<strlen(Kalimat);I++)
     {
      PUSH(Kalimat[I]);
      }

      cout<<"\nKalimat Setelah di Balik : ";

      //Mem-POP sekaligus mencetak isi tumpukan sehingga diperoleh kalimat yang terbalik
      for (I=0;I<strlen(Kalimat);I++)
      {
       cout<<""<<POP();
      }
       getch();
    } //Akhir Program Utama


Output Program :


5.        Macam-macam stack:
a.    Stack dengan Array
b.    Double Stack dengan Array


4 comments: