-->

Program Sederhana Stack / Tumpukan dengan Data Angka - Stack C/C++


Studi Kasus Praktikum 8.1 (Struktur Data - Modul 8)


#include <iostream>
#include <conio.h>
#define max 10
using namespace std;

struct tumpukan  //struktur tumpukan
{
 int atas;  
 int data[max]; 
}T;

void awal()  //awal untuk menentukan nilai awal 
{
 T.atas =- 1;
}

int kosong()  //kosong untuk melanjutkan pengisian tumpukan
{
 if (T.atas == -1)
 return 1;
 else
  return 0;
}

int penuh()  //penuh untuk memberhentikan tumpukan
{
 if (T.atas == max-1)
 return 1;
 else 
  return 0;
}

void input (int data)  //input untuk memasukan data
{
 if (kosong () == 1)  //pemilihan jika data masih kosong
 {
  T.atas++;
   T.data [T.atas] = data;
   cout << "Data " << T.data[T.atas] <<" masuk ke stack\n";
 }
 else 
  if (penuh () == 0)  //pemilihan jika data masih penuh
  {
   T.atas++;
    T.data [T.atas] = data;
    cout << "Data " << T.data [T.atas] << " masuk ke stack\n";
  }
}

void hapus()  //hapus untuk menghapus data paling atas
{
 if (kosong() == 0)  //mengambil data paling atas
 {
  cout << "Data teratas sudah terambil\n";
  T.atas--;
 }
 else  //menampilkan jika data kosong
  cout << "Data kosong\n";
}

void tampil()  //parameter menampilkan isi data
{
 if (kosong() == 0)  //pemilihan menampilkan isi data
 {
  for (int i = T.atas; i >= 0; i--)
  {
   cout << "\nTumpukan ke "<< i + 1 << "=" << T.data[i]; 
  }
   
 }
  else  //jika salah maka menampilkan tumpukan kosong
   cout << "Tumpukan kosong\n";
}

void bersih()  //parameter memebersihkan semua data
{
 T.atas =- 1;
 cout << "Tumpukan kosong!\n";
}

main(void)
{
 int pil, data;
 awal();
 do  //perulangan do - while
 {
  cout << "\n1. Input\n2. Hapus\n3. Tampil\n4. Bersihkan\n5. Keluar\nMasukan pilihan : ";
  cin >> pil;
  
  switch (pil)  //pemilihan perintah
  {
   case 1: 
    cout << "Masukan data = ";  cin >> data;
    input (data);
   break; 
   
   case 2:
    hapus();
   break;
   
   case 3:
    tampil();
   break;
   
   case 4:
    bersih();
   break;
   
   case 5: 
    cout << "Terimakasih, tekan enter untuk keluar";       
  }
 getch();
 }
 while (pil != 5);
 
}

Ketarangan dan Hasil running

Program ini menggunakan konsep stack yaitu dimana suatu kumpulan data yang seolah-olah diletakan diatas data yang lain. Jika kita akan menghapus atau mengambil data maka data yang akan dihapus atau diambil pada bagian paling atas karena stack bersifat LIFO (Last In First Out). Program ini menggunakan struct untuk memudahkan dalam menyimpan dan mengelolah data. Dan di dalam program ini terdapat function untuk mengkelompokan setiap perintah, agar mudah di akses.

Didalam struct terdapat 2 buah variabel / anggota yaitu int atas untuk menyatakan variabel atas, dan variabel array int data[max] dengan nilai tetap 10 angka (#define max 10). Dan pada function terdapat 7 function yang didalamnya memiliki perintah berbeda-beda. Function tersebut adalah void awal() digunakan untuk nilai awal atau menandakan nilai paling atas, int kosong() digunakan untuk menyatakan data kosong atau tidak menggunakan fungsi return, int penuh() digunakan untuk memastikan data penuh atau tidak menggunakan return , void input (int data) digunakan untuk memasukan data, void hapus() digunakan untuk menghapus data bagian paling atas, void tampil() digunakan untuk menampilkan keseluruhan data, dan void bersih() digunakan untuk menghapus keseluruhan data yang ada. Pada fungsi main() didalam nya terdapat fungsi switch - case untuk memilih pilihan menu yang ada dan terdapat perulangan do - while untuk mengulang pemilihan menu sampai kita memilih keluar menu.

Cara kerja program. Untuk inputan data, angka yang akan dimasukan 2 buah angka yaitu 23 dan 44. Kita akan memasukan angka 1 yang kemudian akan masuk ke variabel pil dimana akan dilakukan penyeleksian switch - case, jika angka benar akan memasukan kembali angka untuk inputan nilai, nilai tersebut akan masuk ke void input (). Didalam paramameter ini terdapat pemilihan menggunakan if jika data masih kosong maka akan melanjutkan penginputan data. Apabila penuh maka data yang diinputkan akan berhenti dan tidak akan bisa masuk kedalam penyimpanan data.
Inputan pertama. Setalah proses memasukan nilai maka akan kembali ke menu awal menggunakan fungsi do - while


Inputan kedua.

Untuk melihat data yang dimasukan kita masukan angka 3, maka dalam fungsi switch case akan langsung melakukan pemilihan ke parameter void tampil(). Didalam parameter ini terdapat pemilihan if, jika data masih ada yang masih kosong, akan melakukan perulangan for untuk melakukan menampilkan data keseluruhan. Jika tidak ada data maka akan menampilkan tumpukan kosong. Setelah menampilkan data maka akan kembali ke menu awal dengan menggunakan fungsi do - while.

 
Untuk mengambil data atau menghapus data paling atas maka kita masukan angka 2, data yang terhapus adalah data yang terakhir dimasukan. Switch - case akan mengalihkan ke parameter void hapus(). Setelah menampilkan data maka akan kembali ke menu awal dengan menggunakan fungsi do - while.


Hasil tampilan tumpukan setelah di hapus


Untuk menghapus keseluruhan data masukan angka 4. Switch - case akan mengalihkan ke parameter void bersih(). Secara otomatis data akan terhapus, didalam parameter void bersih() terdapat perintah T=- 1; yang akan menghapus semua data. Setelah menampilkan data maka akan kembali ke menu awal dengan menggunakan fungsi do - while.


Jika akan menghentikan program dan keluar dari program isi dengan angka 5. Maka perulangan do-while akan berhenti, dan secara otomatis program akan berhenti.

Berlangganan update artikel terbaru via email:

0 Response to "Program Sederhana Stack / Tumpukan dengan Data Angka - Stack C/C++"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel