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 :

No comments:

Post a Comment

Berkomentarlah jika ada pertanyaan mengenai artikel ini, Kesan pembaca atau saran yang membangun blog ini.
*Gunakan akun google dan ceklis kolom (Notify Me) agar mendapatkan pemberitahuan balasan komentar

 
Back to Top