0% found this document useful (0 votes)
15 views10 pages

Single Stack

Single stack

Uploaded by

lailanitayra
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views10 pages

Single Stack

Single stack

Uploaded by

lailanitayra
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

Universitas Pamulang Teknik Informatika S1

SINGLE STACK

A. TUJUAN PEMBELAJARAN

Pada bab ini akan dijelaskan tentang mampu memahami konsep Single
Stack, dan algoritma PUSH dan POP pada Single Stack
1. Mampu memahami konsep Single Stack, dan algoritma PUSH dan POP pada
Single Stack

B. URAIAN MATERI

Pendahuluan
Stack adalah struktur data linier yang mengikuti urutan tertentu di mana
operasi dilakukan. Urutannya mungkin FILO (First In Last Out) atau LIFO (Last In
First Out).

Gambar 4.1 Single Stack

Struktur Data 34
Universitas Pamulang Teknik Informatika S1

Bagaimana memahami tumpukan secara praktis?


Ada banyak contoh tumpukan di kehidupan nyata. Pertimbangkan contoh
sederhana piring yang ditumpuk satu sama lain di kantin. Pelat yang berada di atas
adalah yang pertama harus dilepas, yaitu pelat yang telah ditempatkan di posisi
paling bawah tetap berada di tumpukan untuk jangka waktu yang paling lama. Jadi,
cukup terlihat mengikuti perintah LIFO / FILO.

Struktur Data 35
Universitas Pamulang Teknik Informatika S1

Opearsi dasar stack


Ada dua operasi yang dasar yang bisa dilakukan dalam stack, yaitu :
1) PUSH
Operasi push terjadi apabila tumpukan dalam kondisi yang tidak dalam kondisi
penuh lalu elemen pada urutan paling atas (terakhir) ditambahkan.

Gambar 4.2 Operasi Push

2) POP
Operasi push terjadi apabila tumpukan dalam kondisi yang tidak dalam kondisi
kosong lalu elemen pada urutan paling atas (terakhir) diambil kemudian
elemen tersebut dihapus dari stack.

Gambar 4.3 Operasi Pop

Operasi lain dalam stack


Selain dari opearsi dasar di atas, ada beberapa operasi yang dapat di pakai
dalam stack :
1. Deklarasi yaitu operasi pendeklarasian suatu stack.
2. IsEmpty yaitu operasi pemeriksa apa kondisi stack kosong.
3. IsFull yaitu operasi pemeriksa apa kondisi stack penuh.
4. Inisialisasi yaitu operasi pembuatan stack awal.

Struktur Data 36
Universitas Pamulang Teknik Informatika S1

SINGLE STACK

Gambar 4.4 Proses dalam Single Stack

Dalam komputasi, stack adalah struktur data yang digunakan untuk


menyimpan sekumpulan objek. Item individual dapat ditambahkan dan disimpan
dalam stack menggunakan operasi push. Objek dapat diambil menggunakan
operasi pop, yang menghapus item dari stack.
Ilustrasi single stack S[n] dengan n = 5.

Kondisi Stack
1. S[n]

Gambar 4.5 Illustrasi Single Stack (a)

Kosong : Top = -1
Bisa Diisi : Top < n -1

Struktur Data 37
Universitas Pamulang Teknik Informatika S1

2. S[n]

Gambar 4.6 Illustrasi Single Stack (b)

Ada isinya : Top > -1


Masih dapat diisi : Top < n -1

3. S[n]

Gambar 4.7 Illustrasi Single Stack (c)

Penuh : Top = n – 1
Ada isinya : Top > n-1

1. PROSES SINGLE STACK

Proses Single Stack ada 3 macam yaitu:


a. AWAL (inisialisasi)
b. PUSH (Masuk atau Insert)
c. POP (Keluar atau Delete)

1) Proses AWAL (Inisialisasi)


Top = -1;
Void AWAL ()
{ Top =-1;
}

Struktur Data 38
Universitas Pamulang Teknik Informatika S1

2) PUSH (Masuk atau Insert)


Void PUSH ()
{
Top = Top +
1;
S[Top] = x ;
}

3) POP (Keluar atau Delete)


Void POP ()
{
X = S[Top] ;
Top = Top - 1;
}

2. KONDISI SINGLE STACK

Tabel 2.1 Kondisi Single Stack

No Kondisi Stack Ciri


1. KOSONG tidak ada Top1 = -1
isinya (empty)
2. PENUH tak bisa diisi Top2 = n - 1
lagi (full)
3. BISA DIISI (kebalikan Top2 < n - 1
dari PENUH) / (not full)
4. ADA ISINYA (kebalikan Top2 > -1
dari KOSONG) / (not
empty)

Struktur Data 39
Universitas Pamulang Teknik Informatika S1

Listing program Menerapkan Stack menggunakan Array


/* Program C ++ untuk mengimplementasikan operasidasar pada Stack */
#include <bits/stdc++.h>
using namespace std;
#define MAX 1000
class Stack {
int top;
public:
int a[MAX]; // Ukuran maksimum Stack
Stack() { top = -1; }
bool push(int x);
int pop();
int peek();
bool isEmpty();
};
bool Stack::push(int x)
{
if (top >= (MAX - 1)) {
cout << "Stack Overflow";
return false;
}
else {
a[++top] = x;
cout << x << " didorong ke dalam tumpukan\n";
return true;
}
}

int Stack::pop()
{
if (top < 0) {
cout << "Stack Underflow";
return 0;
}
else {
int x = a[top--];
return x;
}
}
int Stack::peek()
{
if (top < 0) {
cout << "Tumpukan Kosong";
return 0;

Struktur Data 40
Universitas Pamulang Teknik Informatika S1

}
else {
int x = a[top];
return x;
}
}

bool Stack::isEmpty()
{
return (top < 0);
}
// Program untuk menguji fungsi di atas
int main()
{
class Stack s;
s.push(10);
s.push(20);
s.push(30);
cout << s.pop() << " Dikeluarkan dari tumpukan\n";

return 0;
}

Hasil dari program diatas yaitu


10 didorong ke dalam tumpukan
20 didorong ke dalam tumpukan
30 didorong ke dalam tumpukan
30 Dikeluarkan dari tumpukan

Kelebihan:

- Mudah diimplementasikan. Memori disimpan karena penunjuk tidak terlibat.

Kekurangan:

- Ini tidak dinamis. Itu tidak tumbuh dan menyusut tergantung pada kebutuhan
pada waktu proses

Struktur Data 41
Universitas Pamulang Teknik Informatika S1

C. SOAL LATIHAN/TUGAS

Latihan 1.
1. Susunlah sebuah program C++ untuk menyiapkan array 1 dimensi yang
digunakan sebagai Stack S sebanyak 10 elemen, bertipe integer.
Kemudian lakukan proses simpan data ke stack (PUSH) atau proses
mengeluarkan isi stack (POP) dengan proses sebagai berikut:
1) Inputkan data dari keyboard. Bila data yang diinputkan bernilai 999,
maka proses selesai.
2) Bila data yang diinput bernilai >= 60, maka periksa kondisi stack. Bila
stack masih bisa diisi, maka simpan data tersebut (PUSH) kedalam
stack, dan proses diulang kembali mulai no 1. Tapi bila stack sudah
penuh, data tidak jadi disimpan, kemudian cetak perkataan “Stack
Penuh”, dan proses selesai.
3) Bila data yang diinputkan <60, maka periksa kondisi stack. Bila stack
ada isinya, maka ambil isi stack dan cetak ke layar, kemudian proses
diulang kembali mulai no. 1. Bila stack taka da isinya, maka cetak
perkataan “ Stack Kosong”, dan proses selesai.

2. Mengisi (PUSH) stack sampai PENUH, dan mengambil (POP) isi stack
sampai KOSONG> Susunlah program C++ untuk menyiapkan array 1
dimensi yang digunakan sebagai Stack S sebanyak 10 elemen bertipe
integer. Kemudian inputkan data (nilai numerik) dan simpan (PUSH) ke
stack S. Proses input dan PUSH selesai bila data yang diinputkan bernilai
= 999, atau Stack S Penuh. (Nilai 999 dipakai sebagai end of data, tidak
ikut diPush ke stack S). Setelah itu keluarkan (POP) isi stack dan cetak ke
layar satu per satu sampai stack menjadi kosong.
3. Tulis program (potongan program) untuk menginput data melalui keyboard
satu persatu dan mem Push data tersebut ke Stack sampai stack penuh
tak bisa diisi lagi
4. Tulis program (potongan program) untuk mengeluarkan (POP) isi Stack
satu persatu dan mencetaknya sampai stack menjadi kosong.
5. Tulislah ciri dari single stack untuk kondisi sebagai berikut:
a. Kosong
b. Penuh
c. Bisa diisi
d. Ada isinya

Struktur Data 42
Universitas Pamulang Teknik Informatika S1

D. REFERENSI

Drozdek, A. (2012). Data Structures and Algorithms in C++, Fourth Edition. United
States: Changeage Learning.
Goodrich, M. T., Tamassia, R., & Mount, D. M. (2011). Data Structures and Algorithms
in C++, Second Edition. United States: John Wiley & Sons, Inc.
Jain, H. (2016). Problem Solving in Data Structures & Algorithms Using C++ First
Edition. CreateSpace Independent Publishing Platform.
Karumanchi, N. (2017). Data Structures And Algorithms Made Easy. Bombay:
CareerMonk Publications.
Weiss, M. A. (2014). Data structures and algorithm analysis in C++, Fourth Edition.
Florida: Addison Wesley.

Struktur Data 43

You might also like