Thursday, April 17, 2025

Thursday, 24 February 2011

Dasar Teori

STACK atau TUMPUKAN adalah suatu struktur data yang seolah-olah terlihat
•Seperti data yang tersusun secara ‘menumpuk’, dimana ada data yang terletak
diatas data yang lainnya.
•Bersifat LIFO (Last In First Out), berarti data yang masuk terakhir akan keluar
pertama.
•Operasi pada Stack :

  1. IsFull :mengecek apakah STACK sudah penuh
  2. IsEmpty : mengecek apakah STACK sudah kosong
  3. Push :menambah data pada STACK pada tumpukan paling atas
  4. Pop :mengambil data pada STACK pada tumpukan paling atas
  5. Print :mencetak semua data dalam tumpukan




Contohnya, karena kita menumpuk Compo di posisi terakhir, maka Compo akan menjadi
elemen teratas dalam tumpukan. Sebaliknya, karena kita menumpuk Televisi pada saat
pertama kali, maka elemen Televisi menjadi elemen terbawah dari tumpukan. Dan jika
kita mengambil elemen dari tumpukan, maka secara otomatis akan terambil elemen
teratas, yaitu Compo juga.


Menambahkan sebuah item pada posisi paling atas dari sebuah tumpukan


Menghapus item yang terakhir ditambahkan ke tumpukan
Implementation Stack with Array of Struct
- Definisikan Stack dengan menggunakan struct
- Definisikan MAX_STACK untuk maksimum isi stack
- Buatlah variabel array data sebagai implementasi stack secara nyata
- Deklarasikan operasi-operasi/function di atas dan buat implemetasinya
Contoh program:
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
//deklarasi 'STACK' dengan struct dan array
struct STACK
{
int data[5];
int atas;
};
//deklarasi variabel 'tumpuk' dari struct
STACK tumpuk;
void main()
{
clrscr();
int pilihan,baru,i;
//inisialisasi awal
tumpuk.atas=-1;
do
{
clrscr();
cout<<"1.Push Data"<<endl;
cout<<"2.Pop Data"<<endl;
cout<<"3.Print Data"<<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<<"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"<<endl;
getch();
}
else
{
cout<<"Data = "<<endl;
for(i=0; i<=tumpuk.atas; i++)
{
cout<<tumpuk.data[i]<<" ";
}
getch();
}
break;
}
default:
{
cout<<" Tidak ada dalam pilihan "<<endl;
}
}
}
while( pilihan >=1 && pilihan <= 3 );
getch();}





Related Posts:

  • Bab 1. ArrayDasar TeoriLarik merupakan sekumpulan data yang mempunyai nama dan tipe yangsama, Larik disebut juga variabel berindeks. Nilai suatu data dalam larik ditentukanoleh nama dan indeksnya. Larik banyak digunakan pada operasi yang… Read More
  • Bab 4. STACKDasar TeoriSTACK atau TUMPUKAN adalah suatu struktur data yang seolah-olah terlihat•Seperti data yang tersusun secara ‘menumpuk’, dimana ada data yang terletakdiatas data yang lainnya.•Bersifat LIFO (Last In First Out), berar… Read More
  • Bab 2. Struktur / RecordDasar Teori Struktur merupakan suatu tipe data yang merupakan kumpulan dari tipe data lainnya. Struktur terdiri dari data yang disebut suatu field. Filed – filed dapat berupa tipe data sederhana maupun tipe data… Read More
  • Bab 5. QUEUEDasar TeoriAntrian (Queue) dapat diartikan sebagai suatu kumpulan data yang seolah-olahterlihat seperti ada data yang diletakkan di sebelah data yang lain seperti pada gambar 01.Pada gambar, data masuk melalui lorong di sebel… Read More
  • Bab 3. PointerDasar Teori Pointer sesungguhnya berisi alamat dari suatu data, bukan data sebagaimana pada variable yang sudah anda kenal. Pointer (variabel penunjuk) adalah suatu variabel yang berisi alamat memori dari suatu variab… Read More

0 komentar:

Post a Comment

Iklan

rss


Translate

Chat

Komentar Blog

Iklan