Contoh Program Stack C++ beserta Penjelasan dan Implementasinya (Tumpukan) ~ Coding IsmyNR - Cara Dan Contoh Pemrograman

Contoh Program Stack C++ beserta Penjelasan dan Implementasinya (Tumpukan)

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.

program stack c++ dan penjelasanya

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.

program stack c++ dan penjelasanya

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 stack
int 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 dimasukan

4.  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.

contoh demo
Pas pertama kali dirun bahwa stack masih kosong dan nilai TOP = -1, Selanjutnya perhatikan

contoh demo

Data stack yang diatas akan menambah terus begitupun nilai TOP nya
contoh demo


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++
logoblog

Share :

46 comments:

  1. kalo misalkan kita mau ambil ( pop ) datanya secara sembarang gimana ya min kalo itu urut ambil datanya ?

    ReplyDelete
    Replies
    1. Engga bisa, soalnya stack itu pake konsep LIFO terakhir masuk akan terakhir juga keluarnya, seperti contoh yg buku perpustakaan diatas

      Delete
  2. kok ga run di Dev C++

    ReplyDelete
    Replies
    1. untuk yang di Dev C++ coba tambahkan

      cout << "n\\Pada Index ke\\ '" << top << "'\n";

      dan

      cout << "n\\Data\\ [" << Stack[top] << "] pada index ke '" << top << "' dalam Stack Diambil !" << endl;

      Delete
    2. Terimakasih gan pantes ga mau jalan di dev c++

      Delete
  3. Makasih kak, sangat membantu����

    ReplyDelete
  4. gmn supaya bisa ditambahin descending di programnya kk?

    ReplyDelete
  5. array dinamis popo dan pusg, gimana ya kak

    ReplyDelete
  6. kok gk bisa ngeprint anjiing

    ReplyDelete
  7. push ama poop gak bisa koontol

    ReplyDelete
  8. balas woy koontol ngasih tutorial setengah"

    ReplyDelete
  9. kok ada orang udah dibantu malah ngata-ngatain.

    ReplyDelete
  10. Akhirnya, ketemu juga, ini yg kami cari. Thanks gan sangat membantu.

    ReplyDelete
  11. Halo, saya dari masa depan

    ReplyDelete
  12. Makanya jadi hacker (smart people) pakai docker full OS untuk running c++ 🙂

    ReplyDelete
  13. Virus Machupo
    Virus 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

    ReplyDelete
  14. https://imtaqin.id

    ReplyDelete
  15. SMM Panel Indonesia ( nirupedia.com )
    Solusi menaikkan followers semua sosmed

    ReplyDelete
    Replies
    1. d sini juga bang kwowko,, mantap terus bang

      Delete
  16. kok ga bisa, soalnya ga kucoba, ampun puh sepuhhhh

    ReplyDelete

Berkomentarlah jika ada pertanyaan, Kesan pembaca atau saran yang membangun blog ini.
> Gunakan akun google dan ceklis kolom (Notify Me) agar mendapat notifikasi balasan komentar

 
Back to Top