Contoh Program Stack C++ Dan Penjelasannya Program Stack Bahasa C++ - Stack secara sederhana memiliki pengertiannya yaitu adalah struktur data yang memungkinkan penyisipan dan pengambilan data dilakukan dari satu ujung yang disebut puncak. Metode stack ini memiliki sifat tersendiri, yaitu last in first out. Jadi, data yang terakhir masuk akan keluar paling terakhir sendiri, metode stack ini mirip antrian yang terjadi di toko - tokok. Siapa yang antri duluan maka akan di layani terlebih dahulu dan akan keluar dari toko lebih dulu. Kurang lebih seperti itulah ilustrasi metode stack yang akan kita buat nanti. Contoh program stack yang akan kita buat nanti adalah antrian yang terdapat pada toko.
Stack juga memiliki 2 operasi yaitu, operasi push dan operasi pop. Operasi push merupakan menginputkan data ke dalam stack dan operasi pop adalah menghapus data yang ada di stack. Selain itu, stack juga memiliki beberapa fungsi dasar untuk mengecek apakah stack dalam keadaan penuh atau tidak dan stack dalam keadaan kosong atau tidak.
Stack juga tidak lepas dari metode struct, untuk tutorial mengenai metode struct kalian dapat membaca artikel Contoh Aplikasi Sederhana Data Mahasiswa Menggunakan Metode Struct Dalam Bahasa C++.
Implementasi Contoh Program C++ Menggunakan Metode Stack
Kita akan membuat contoh program stack untuk antrian pada sebuah toko. Dimana antrian tersebut hanya mampu menampung sebanyak 10 antrian. Jadi, langsung saja ke kode programnya yang telah admin buat.
Kode Program Contoh Program C++ Menggunakan Metode Stack
#include <iostream>
#define JumlahAntrian 10 // Inisialisasi bahwa variabel JumlahAntrian dapat menampung antrian sebanyak 10
using namespace std;
struct ANTRIANTOKO{ /* Mendeklarasasikan struct ANTRIANTOKO yang terdiri
int antrianAtas; atas variabel antrianAtas dan antrian untuk menyimpan data
int antrian[JumlahAntrian]; antrian */
}toko;
void inisialisasi(){ /* fungsi untuk memastikan bahwa posisi sedang berada
toko.antrianAtas = -1; di indeks ke 0 */
}
bool kondisiKosong(){ /* kondisiKosong akan memberikan hasil true apabila
return toko.antrianAtas == -1; toko.antrianAtas sama dengan -1 */
}
bool kondisiPenuh(){ /* kondisiPenuh akan memberikan nilai true apabila
return toko.antrianAtas == JumlahAntrian - 1; toko.antrianAtas sama
} dengan JumlahAntrian - 1 */
void inputData(){ /* sebelum menginputkan data, akan di lakukan pengecekan
if (kondisiPenuh()) { terlebih dahulu apakah kondisiPenuh atau tidak, jika
cout << "\nAntrian penuh"<<endl; tidak maka akan dilanjutkan proses
} memasukkan data */
else {
toko.antrianAtas++;
cout << "\nMasukkan Antrian = "; cin >> toko.antrian[toko.antrianAtas];
cout << "Antrian " << toko.antrian[toko.antrianAtas] << " Telah Masuk Ke Toko Antrian"<<endl;
}
}
void hapusData(){ /* sebelum menghapus data, di lakukan pengecekan apakah
if (kondisiKosong()) { kondisi stack kosong atau tidak, jika tidak maka akan
cout << "\nAntrian kosong\n"<<endl; lanjut ke pemrosesan penghapusan
} data */
else {
cout << "\nAntrian "<<toko.antrian[toko.antrianAtas]<<" Telah Di Hapus"<<endl;
toko.antrianAtas--;
}
}
void tampilData(){ /* apabila kondisiKosong sama dengan benar, maka stack
if (kondisiKosong()) { dalam keadaan kosong */
cout << "Antrian kosong";
}
else { /* Jika tidak maka akan di tampilkan seluruh antrian pada stack */
cout << "\nAntrian : ";
for (int i = toko.antrianAtas; i >= 0; i--)
cout << toko.antrian[i] << ((i == 0) ? "" : ",");
}
}
int main(){
int pilihan;
inisialisasi();
do {
tampilData();
cout << "\n1. Masukkan Data\n"
<<"2. Hapus Data\n"
<<"3. Keluar\n"
<<"Masukkan Pilihan: ";
cin >> pilihan;
switch (pilihan)
{
case 1:
inputData();
break;
case 2:
hapusData();
break;
default:
cout << "Pilihan tidak tersedia" << endl;
break;
}
} while (pilihan!=3);
}
Comments
Post a Comment