-->

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


Studi Kasus Praktikum 8.2 (Struktur Data - Modul 8)

#include <iostream>
#include <conio.h>
#include <string.h>
using namespace std;

struct tumpukan  //struktur tumpukan
{
 char data[15][100], max[15];  
 int i, j;
} stack;

void push()  //push untuk mengisi data
{
 stack.i++;
 cout << "Masukan data : ";
 cin >> stack.max;
 strcpy (stack.data[stack.i], stack.max);  //perintah mennyalin data char panjang menggunakan fungsi string
}

void pop()  //pop untuk menggambil data
{
 if (stack.i > 0)
 {
  cout << "data yang terambil : " << stack.data[stack.i] << endl;  //data akan terambil paling atas
  stack.i--; stack.j--;
 }
 else
  cout << "tak ada data yang terambil" << endl;  //jika tidak ada data
}

void view (int n)  //print untuk menampilkan data
{
 if (stack.j > 0)  //menampilkan isi data menggunakan perulangan for
 {
  for (int e = n; e >= 1; e--)
  {
   cout << stack.data[e] << endl;
  }
 }
 else 
  cout << "tak ada data tersimpan" << endl;  //jika tidak ada data
}

void clear()  //clear untuk menghapusdata
{
 stack.j = 0; stack.i = 0;  //perintah untuk menghapus keseluruhan data
}

main (void)
{
 int n, pilih;
 ayo:
  cout << "Contoh program stack (tumpukan)\n";
  stack.data[n];
  stack.i = 0;
  stack.j = 0;
  balik:  //fungsi goto
   
   cout << "\n1. push\n2. pop\n3. view\n4. clear\n5. quit\n";
   cout << "\npilih : ";  cin >> pilih;
   cout << "\n";
   if (pilih == 1)  //pemilihan pilihan menggunakan if
   {
    if (stack.j < n)
    {
     stack.j++;  push();
    }
    else
     {
      cout << "tumpukan penuh" << endl;
      getch();
     }
     goto balik;
   }
   else 
    if (pilih == 2)
    {
     pop ();  getch();  goto balik;
    }
    else 
     if (pilih == 3)
     {
      view (stack.i);  getch();  goto balik;
     }
     else
      if (pilih == 4)
      {
       clear();  getch();  goto balik;
      }
      else 
       if (pilih == 5)
       {
        getch();  goto ayo;
       }
       else
        {
         cout << "Input anda masukan salah !!!";
         getch();  goto ayo;
        }
}

Keterangan & 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 4 buah variabel / anggota yaitu char data[15][100] dengan 2 dimensi untuk menyimpan data kalimat yang bertipe char. Char max[15] untuk membatasi data masukan hingga 15, yang akan dikalborasikan dengan strcpy yang , jadi setiap satu kalimat hitungannya 1. Variabel i untuk perulangan array dimensi ke 1, dan variabel j untuk perulangan array dimensi ke 2.

Pada function terdapat 4 function yang didalamnya memiliki perintah berbeda-beda. Function tersebut adalah void push() digunakan untuk mengisi data, void pop() digunakan untuk mengambil data paling atas, void view (int n) digunakan untuk melihat keseluruhan data yang ada didalamnya, void clear() digunakan untuk menghapus keseluruhan data. Pada fungsi main() didalam nya terdapat fungsi goto gunanya untuk melakukan pengulangan ke menu pilihan apabila kita selesai melakukan salah satu proses. Terdapat juga pemilihan if untuk memilih pilihan menu dengan menggunakan angka.

Cara kerja program ini. Pada inputan akan memasukan 4 nama yaitu reza, asep, ujang, dan supri. Untuk memasukan data nama pilih angka 1, yang kemudian akan masuk ke variabel pilih yang mana didalamnya terdapat penyeleksian menggunakan if, jika sudah terseleksi akan dilakukan penyelesian kembali apakah data masih kosong atau penuh, jika kosong akan melanjutkan ke parameter void push () jika penuh maka akan menampilkan keterangan data penuh. Jika data sudah dimasukan maka akan kembali lagi ke menu awal menggunakan fungsi goto


Untuk melihat data kita pilih angka 3, yang mana angka akan masuk ke variabel pilih yang akan diseleksi menggunakan if. Kemudian akan langsung masuk ke parameter void view() setelah menampilkan data maka akan kembali lagi ke menu awal menggunakan fungsi goto


Untuk mengambil data paling atas kita pilih angka 2, yang mana angka akan masuk ke variabel pilih yang kemudian akan diseleksi menggunakan if. Kemudian akan langsung masuk ke parameter void pop() setelah melakukan proses penghapusan data maka akan kembali ke menu awal menggunakan fungsi goto.


Hasil penghapusan


Jika ingin menghapus keseluruhan data pilih angka 4, yang mana angka akan masuk ke variabel pilih yang kemudian akan diseleksi menggunakan if. Kemudian akan langsung masuk ke parameter void clear() setelah melakukan proses pembersihan data maka akan kembali ke menu awal menggunakan fungsi goto.



Berlangganan update artikel terbaru via email:

1 Response to "Program Sederhana Stack / Tumpukan dengan Data Kalimat - Stack C/C++"

  1. mantap bang materinya sangat membantu, bisa saling tukar backlink gan, silakan agan bisa kunjungi blog saya , salam kenal :')

    ReplyDelete

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel