Istilah stack dalam c++ adalah tumpukan, tumpukan sendiri dalam bahasa kita adalah pengumpulan sebuah data lalu menaruh data tersebut ke dalam data-data lain yang sudah di tata sebelumnya, jadi metode peletakan beberapa data di atas data-data lain itulah yang disebut stack.
Secara mudahnya misalkan kita ingin mengambil beberapa buku yang ada di rak perpustakaan untuk dipindahkan ke rak buku lainya, lalu dalam pengambilan beberapa buku yang ada di perpustakaan tersebut, sebelum dipindahkan kita mengambil satu persatu buku dari perpustakaan lalu menatanya menjadi satu tumpukan bukan ? nah tumpukan buku tersebutlah yang dinamakan stack.
Dari penerapan diatas bisa disimpulkan bahwa stack itu mempunyai konsep LIFO (Last In First Out) artinya terakhir kali dimasukan akan keluar dahulu, maksudnya jika kita membuat tumpukan dari atas ke bawah seperti penerapan diatas, maka ketika kita mengambil satu persatu tumpukan tersebut pasti dari atas ke bawah bukan ? tidak mungkin dari bawah keatas karena akan menghambat waktu penataan buku tersebut.
Seperti halnya pada gambar di atas, mengambil tumpukan yang paling atas terlebih dahulu lalu meletakanya ke rak buku lainya, begitupun seterusnya sampai selesai.
Konsep seperti itu anda bisa terapkan dalam c++, yaitu stack ini, untuk membuat program c++ dengan konsep stack ini anda harus memahami operasi peran dari fungsi dibawah ini :
nilai top yang menunjukan -1 adalah data yang akan dimasukan dalam array itu pada index ke 0, jadi pertama kali proses compile/run yang tadinya nilai -1 lalu membuat program yang langsung menambahkan 1 jadi 0.
Selesai penamaan variabel, buat 4 fungsi yaitu push, pop, clearr, Print.
Pada kondisi if itu memeriksa bahwa jika nilai top == MAX-1 maka tampilkan pesan "stack sudah penuh", sedangkan jika kita pertamakali run program nilai (top = -1 dan MAX = 10 dikurangi 1 = 9) apakah -1 dengan 9 sama ?? pasti beda,
Jadi program akan menggunakan perintah else yang berfungsi untuk menumpukan data ke array, terdapat kode top++ artinya menambahkan index array lalu ada kode cin >> Stack[top]; data dimasukan kedalam index tersebut.
Itu sebaabnya nilai awal variabel top = -1.
Pada kondisi if itu memeriksa bahwa jika nilai top == -1 maka tampilkan pesan "stack kosong" sedangkan jika kita pertamakali run program nilai top = -1 jadi jelas jika kita belum memasukan data apapun ke dalam stack karena baru pertamakali run nilai top masih -1 memang stack itu kosong / tidak ada isinya.
Pada kondisi else untuk mengambil datanya maka menggunakan
Jika tidak kosong langsung diproses dan menampilkan data array stack dengan for(){} data akan muncul satu persatu sesuai data yang kita masukan.
Pakai do while agar progam terus mengulang-ulang selama syarat dalam while terpenuhi, karena dalam program menggunakan do while maka getch() digunakan untuk mem pause/memberhentikaan program sementara selama user belum meneken tombol sembarang.
Pas pertama kali dirun bahwa stack masih kosong dan nilai TOP = -1, Selanjutnya perhatikan
Data stack yang diatas akan menambah terus begitupun nilai TOP nya
Tag:
contoh program stack c++ sederhana
contoh program stack c++ push
contoh program stack dengan array
program push pop pada c++
contoh aplikasi stack
source code stack c++
program LIFO c++
Secara mudahnya misalkan kita ingin mengambil beberapa buku yang ada di rak perpustakaan untuk dipindahkan ke rak buku lainya, lalu dalam pengambilan beberapa buku yang ada di perpustakaan tersebut, sebelum dipindahkan kita mengambil satu persatu buku dari perpustakaan lalu menatanya menjadi satu tumpukan bukan ? nah tumpukan buku tersebutlah yang dinamakan stack.
Dari penerapan diatas bisa disimpulkan bahwa stack itu mempunyai konsep LIFO (Last In First Out) artinya terakhir kali dimasukan akan keluar dahulu, maksudnya jika kita membuat tumpukan dari atas ke bawah seperti penerapan diatas, maka ketika kita mengambil satu persatu tumpukan tersebut pasti dari atas ke bawah bukan ? tidak mungkin dari bawah keatas karena akan menghambat waktu penataan buku tersebut.
Seperti halnya pada gambar di atas, mengambil tumpukan yang paling atas terlebih dahulu lalu meletakanya ke rak buku lainya, begitupun seterusnya sampai selesai.
Konsep seperti itu anda bisa terapkan dalam c++, yaitu stack ini, untuk membuat program c++ dengan konsep stack ini anda harus memahami operasi peran dari fungsi dibawah ini :
- PUSH adalah operasi untuk menambahkan stack(data tumpukan) dalam program, kita harus bisa menambahkan satu persatu elemen dalam program untuk bisa dijadikan data stack, yang otomatis menambahkan data tanpa mereplacenya anda bisa menggunakan ARRAY untuk menampung datanya.
- POP adalah operasi penghapusan elemen yang sudah ditambahkan dalam stack(tumpukan) yang kita tambahkan sebelumnya pada posisi paling atas. seperti pada implementasi peletakan buku perpustakaan di atas
Membuat Program Stack / Tumpukan Sederhana Dengan Bahasa C++
1. Pertama buat seperti ini dulu
#include <iostream>
#include <stdlib.h> // menggunakan system("cls")
#include <conio.h> // menggunakan getch()
#define MAX 10 // batas stack yang ingin dibuat, boleh lebih
using namespace std;
Lalu buat deklarasi variabelnya termasuk array yang akan kita buat untuk menampung data-data stackint top=-1, Stack[MAX];
variabel top untuk menunjukan data array yang paling terakhir dimasukan ke data array yaitu pada variabel Stack[MAX].nilai top yang menunjukan -1 adalah data yang akan dimasukan dalam array itu pada index ke 0, jadi pertama kali proses compile/run yang tadinya nilai -1 lalu membuat program yang langsung menambahkan 1 jadi 0.
Selesai penamaan variabel, buat 4 fungsi yaitu push, pop, clearr, Print.
2. Membuat Fungsi PUSH
void push(){
if(top == MAX-1){
cout << ">> Stack sudah Penuh !" << endl;
}else{
top++;
cout << ">> Masukan Data : ";
cin >> Stack[top];
cout << "n\Pada Index ke '" << top << "' n\";
cout << "Data [" << Stack[top] << "] Telah Ditambah ! " << endl;
}
}
Fungsi push untuk menambahkan/menumpukan data ke tumpukan/array yang sudah kita buat variabel sebelumnya.Pada kondisi if itu memeriksa bahwa jika nilai top == MAX-1 maka tampilkan pesan "stack sudah penuh", sedangkan jika kita pertamakali run program nilai (top = -1 dan MAX = 10 dikurangi 1 = 9) apakah -1 dengan 9 sama ?? pasti beda,
Jadi program akan menggunakan perintah else yang berfungsi untuk menumpukan data ke array, terdapat kode top++ artinya menambahkan index array lalu ada kode cin >> Stack[top]; data dimasukan kedalam index tersebut.
Itu sebaabnya nilai awal variabel top = -1.
3. Membuat Fungsi POP
void pop(){
if(top == -1){
cout << ">> Stack Kosong !" << endl;
}else{
cout << "n\Data [" << Stack[top] << "] pada index ke '" << top << "' dalam Stack Diambil !" << endl;
Stack[top--];
}
}
Fungsi pop untuk mengurangi/mengambil data pada tumpukan/array yang paling terakhir di tambahkan sebelumnya, tentunya sesuai dengan konsep LIFO yaitu terakhir kali masuk dia yang pertama kali keluar.Pada kondisi if itu memeriksa bahwa jika nilai top == -1 maka tampilkan pesan "stack kosong" sedangkan jika kita pertamakali run program nilai top = -1 jadi jelas jika kita belum memasukan data apapun ke dalam stack karena baru pertamakali run nilai top masih -1 memang stack itu kosong / tidak ada isinya.
Pada kondisi else untuk mengambil datanya maka menggunakan
stack[top--]
yaitu mengambil data yang paling terakhir dimasukan4. Membuat Fungsi Clearr
int clearr(){
return top = -1;
}
Untuk menghapus semua data stack yang sudah ada datanya, makanya return / nilai kembalianya berupa top menjadi -1 lagi atau menjadi nilai semula lagi.5. Membuat Fungsi Print
void Print(){
if (top == -1) {
cout << " Stack : ";
cout << "\n===========================" << endl;
cout << " Empty ! \n===========================" << endl;
}
else {
cout << " Stack : ";
cout << "\n===========================" << endl;
for (int i = top; i >= 0; i--){
cout << " XXXXX[ " << Stack[i] << " ]XXXXX" << endl;
}
cout << "===========================" << endl;
}
}
Saya buat seperti program acak acakan tp agar hasilnya jelas dan dapat dimengerti oleh pembaca. Fungsi ini untuk menampilkan hasil stacknya, jika top == -1 yang artinya data stack tidak ada/nilai semula dari variabel top, maka disitu tampilkan "Empty !"Jika tidak kosong langsung diproses dan menampilkan data array stack dengan for(){} data akan muncul satu persatu sesuai data yang kita masukan.
6. Menu Tampilan Program
int main()
{
int choose;
do {
Print();
cout << "\n1. Push"
<< "\n2. Pop"
<< "\n3. Clear"
<< "\n4. Exit"
<< "\nCodeProgram ismynr.xyz"
<< "\nPergerakan ( TOP ) : " << top
<< "\n\n>> Choose : "; cin >> choose;
switch (choose){
case 1:
push();getch();
break;
case 2:
pop();getch();
break;
case 3:
clearr();
cout << "\nClear Succes" << endl;
getch();
break;
case 4:
cout << "Terima Kasih telah menggunakan program ini :)" << endl;
getch();
break;
default:
cout << "Pilihan tidak ada\nMasukan pilihan sesuai dengan daftar" << endl;
getch();
break;
}
system("cls");
}while(choose !=4);
}
Fungsi Print() ditaruh diatas agar mudah utuk memahami program, serta pergerakan (TOP) agar tau nilai top saat itu berapa.Pakai do while agar progam terus mengulang-ulang selama syarat dalam while terpenuhi, karena dalam program menggunakan do while maka getch() digunakan untuk mem pause/memberhentikaan program sementara selama user belum meneken tombol sembarang.
Pas pertama kali dirun bahwa stack masih kosong dan nilai TOP = -1, Selanjutnya perhatikan
Data stack yang diatas akan menambah terus begitupun nilai TOP nya
Tag:
contoh program stack c++ sederhana
contoh program stack c++ push
contoh program stack dengan array
program push pop pada c++
contoh aplikasi stack
source code stack c++
program LIFO c++
kalo misalkan kita mau ambil ( pop ) datanya secara sembarang gimana ya min kalo itu urut ambil datanya ?
ReplyDeleteEngga bisa, soalnya stack itu pake konsep LIFO terakhir masuk akan terakhir juga keluarnya, seperti contoh yg buku perpustakaan diatas
Deletekok ga run di Dev C++
ReplyDeleteuntuk yang di Dev C++ coba tambahkan
Deletecout << "n\\Pada Index ke\\ '" << top << "'\n";
dan
cout << "n\\Data\\ [" << Stack[top] << "] pada index ke '" << top << "' dalam Stack Diambil !" << endl;
Terimakasih gan pantes ga mau jalan di dev c++
DeleteMakasih kak, sangat membantu����
ReplyDeleteTetap ngga bisa jalan di C++
Deletedongo
Deletegmn supaya bisa ditambahin descending di programnya kk?
ReplyDeletemakasih kak, sangat membantu
ReplyDeletearray dinamis popo dan pusg, gimana ya kak
ReplyDeletekok gk bisa ngeprint anjiing
ReplyDeletesolve sendiri dongo
Deletedongo
Deletedongo
DeleteKabel printernya coba di cek , nyolok gak
DeleteDongo lu
Deletedongo
Deletepush ama poop gak bisa koontol
ReplyDeleteDasar dongok
DeleteSkill issue deck
Deletebalas woy koontol ngasih tutorial setengah"
ReplyDeleteKontol lu anjing
DeleteKlo gk pintar minimal sopan
DeleteOtak nya di kontol
Deletedongo
DeleteKontolnya di otak
Deletekok ada orang udah dibantu malah ngata-ngatain.
ReplyDeletehai
ReplyDeleteAkhirnya, ketemu juga, ini yg kami cari. Thanks gan sangat membantu.
ReplyDeleteHalo, saya dari masa depan
ReplyDeleteMakanya jadi hacker (smart people) pakai docker full OS untuk running c++ 🙂
ReplyDeleteVirus Machupo
ReplyDeleteVirus Corona
Virus Rabies
Virus Ebola
Virus Kyasanur
Demam berdarah
Virus HIV
Virus linea
Virus Spanish Flu
Marbug dan Lassa
Virus Hanta
Virus Influenza
Cacar, Lujo, Herpes
Virus Rota
Semua itu virus berbahaya
Satu virus mengguncang dunia
Virus dari Kota Wuhan, Cina
Virus yang sangatlah berbahaya
Nama virus adalah Corona
Tetap tenang dan juga waspada
Yang penting jaga kebersihannya
Berdoa pada Allah Ta'ala
Agar semua sehat sentosa
Bang info loker
ReplyDeleteHai
ReplyDeletehai
ReplyDeletewoy
ReplyDeletehttps://imtaqin.id
ReplyDeleteSMM Panel Indonesia ( nirupedia.com )
ReplyDeleteSolusi menaikkan followers semua sosmed
d sini juga bang kwowko,, mantap terus bang
DeleteCoba https://wajibtahu.my.id
ReplyDeleteRusuh amat cik
ReplyDeletekok ga bisa, soalnya ga kucoba, ampun puh sepuhhhh
ReplyDeletedongo banget jadi orang memek
DeleteLu yang dongo memek, bapaklo adam
Deleteamir memek
Delete