Stack (bahasa Indonesia = Tumpukan) yang pengertiannya dapat disederhanakan seperti sekumpulan data yang seakan-akan terdapat setelah suatu data, atau seakan-akan terdapat di atas data yang lain. Di dalam tubuh stack, terdapat yang dinamakan sebagai ujung atas tumpukan (top of stack) yang berfungsi sebagai tempat dimana kita bisa menambah dan menghapus data. Fungsi stack ini adalah fungsi yang menggunakan metode LIFO (Last In First Out) pada implementasinya. Karena, data apapun jika data tersebut disimpan/dimasukkan terakhir, maka data tersebutlah yang akan dikeluarkan/dimunculkan pertama.

Di dalam stack terdapat dua operasi yang digunakan, yaitu:
  1. Push = Menyisipkan data pada ujung atas stack.
  2. Pop = Mengeluarkan data pada ujung atas stack.
Penerapan fungsi stack ada pada program palindrom. Palindrom yaitu sebuah kata atau angka yang dapat kita baca dengan sama meskipun pembacaannya mulai dari depan ataupun belakang. Berikut adalah contoh kata palindrom yang paling sederhana.
  • Kasur Ini Rusak
  • Malam Asa
  • Nababan
  • Ada Apa
  • Radar Katak
Semua masing-masing kata di atas dapat kita baca dengan cara pembacaan dan makna yang sama meskipun kita baca mulai dari depan maupun dari belakang. Itulah yang disebut dengan kata Palindrom.

Kemudian, bila kita ingin menerapkan fungsi stack dan palindrom di dalam C++, maka kita dapat menggunakan program pembalik kata menggunakan C++. Program pembalik kata ini sudah lengkap (include) dengan fungsi stack dan palindrom. Berikut ini syntax yang dapat Anda gunakan untuk membuat program pembalik kata.
/*--------------------
Program Design By
URL: lowtekno.blogspot.co.id
Name: LowTekno
---------------------*/
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#define maxstack 200
#include <conio.h>

using namespace std;

struct stack
{
    int atas;
    char data[maxstack];
};

char dta[maxstack];
struct stack stackbaru;

/*--Class inisialisasi--*/
void inisialisasi()
{
    stackbaru.atas=-1;
}

/*--Class untuk mengecek kepenuhan data--*/
bool ispenuh()
{
    if (stackbaru.atas == maxstack-1)return true;
    else return false;
}

/*--Class utnuk mengecek kekosongan data--*/
bool iskosong()
{
    if (stackbaru.atas == -1) return true;
    else return false;
}

/*Class untuk mengisi stack (menyiapkan data)--*/
void push(char dta)
{
    if (ispenuh() == false)
    {
        stackbaru.atas++;
        stackbaru.data[stackbaru.atas]=dta;
    }
    else
    {
        puts("\nMaaf Stack Penuh");
    }
}

/*--Class untuk mengambil isi stack--*/
void pop()
{
    while (iskosong() == false)
    {
        cout<<stackbaru.data[stackbaru.atas];
        stackbaru.atas--;
    }
}

/*--Class untuk mencetak stack--*/
void print()
{
    cout<<"";
    for(int i=0; i<=stackbaru.atas; i++)
    {
        cout<<stackbaru.data[i];
    }
}

/*--Class untuk membersihkan layar--*/
void clear()
{
    stackbaru.atas = -1;
}

/*--Main Program--*/
int main()
{
    char kata[200];

    cout<<"---PROGRAM---"<<endl;
    cout<<"---PEMBALIK---"<<endl;
    cout<<"---KATA---"<<endl;
    cout<<"Masukan kalimat : \n"<<endl;

    gets(kata);

    for(int i=0; kata[i]; i++)
        push(kata[i]);
    cout<<"----------------------------------\n\n"<<endl;

print();
cout<<"   Menjadi   ";
pop();
cout<"\n\n\n";
getche();
}
Output/keluaran dari syntax program diatas bila Anda coba akan menghasilkan seperti di bawah ini:

Stack pada C++ Beserta Contoh Programnya
Output Stack pada C++ Beserta Contoh Programnya

Seperti itulah fungsi Stack pada C++ Beserta Contoh Programnya, yaitu program pembalik kata. Sampai disini perjumpaan kita, semoga kalian senang dengan program yang telah Saya buat.

Post a Comment

Dark Falz

Powered by Blogger.