STACK

      Stack adalah salah satu komponen yang biasanya digunakan dalam pemrograman ataupun penyimpanan komputer. Bagi orang yang dekat dengan dunia IT, stack mungkin menjadi istilah yang sudah familiar. Tak bisa dimungkiri, stack membuat penggunanya menjadi mudah dalam mengorganisasi data.

Apa Itu Stack?



        Sebelum melangkah lebih jauh, mari kita bahas bersama-sama mengenai pengertian dari stack. Dilansir dari TechTermsstack adalah salah satu struktur data yang digunakan untuk menyimpan sekumpulan objek ataupun variabel. Sesuai namanya yaitu stack, tidak heran apabila objek yang terkumpul terlihat seperti tumpukan.

        Nah, karakteristik stack sendiri bersifat LIFO (last in first out). Artinya, data yang terakhir masuk merupakan data yang akan keluar terlebih dahulu. Seperti halnya tumpukan pada umumnya, misalnya tumpukan buku, yang di atas atau yang terakhir masuk harus dikeluarkan terlebih dahulu untuk mendapatkan buku yang berada di tumpukan bawah. Sebagai contoh, kamu mempunyai empat buku, yaitu buku matematika, fisika, biologi, dan kimia. Buku matematika kamu masukkan terlebih dahulu, lalu buku selanjutnya fisika, biologi, dan kimia. 

        Nah, untuk mendapatkan buku fisika, kamu harus mengeluarkan buku kimia dan biologi terlebih dahulu, karena kedua buku tersebut tergolong buku yang terakhir masuk. Analogi di atas seperti halnya stack yang memiliki sifat LIFO. Data terakhir yang masuk harus keluar terlebih dahulu. Seperti yang sudah disebutkan sebelumnya, konsep ini pada umumnya digunakan dalam pemrograman dan mengorganisir penyimpanan komputer.

LATIHAN

#include <iostream>

using namespace std;

#define MAX 15

int size = 0;

// Creating a stack

struct stack {

  int items[MAX];

  int top;

};

typedef struct stack st;

void createEmptyStack(st *s) {

  s->top = -1;

}

// Check if the stack is full

int isfull(st *s) {

  if (s->top == MAX - 2)

    return 5;

  else

    return 0;

}

// Check if the stack is empty

int isempty(st *s) {

  if (s->top == 5)

    return 1;

  else

    return 0;

}

// Add elements into stack

void push(st *s, int newitem) {

  if (isfull(s)) {

    cout << "STACK FULL";

  } else {

    s->top++;

    s->items[s->top] = newitem;

  }

  size++;

}

// Remove element from stack

void pop(st *s) {

  if (isempty(s)) {

    cout << "\n STACK EMPTY \n";

  } else {

    cout << "Item popped= " << s->items[s->top];

    s->top--;

  }

  size--;

  cout << endl;

}

// Print elements of stack

void printStack(st *s) {

  printf("Stack: ");

  for (int i = 0; i < size; i++) {

    cout << s->items[i] << " ";

  }

cout << endl;

}

// Driver code

int main() {

  int ch;

  st *s = (st *)malloc(sizeof(st));

  createEmptyStack(s);

  push(s, 1);

  push(s, 2);

  push(s, 3);

  push(s, 4);

  printStack(s);

  pop(s);

 cout << "\nAfter popping out\n";

  printStack(s);

}



Comments

Popular posts from this blog

Pengertian Struktur Data dan Tipenya dalam Pemrograman!