Single Stack
Single Stack
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).
Struktur Data 34
Universitas Pamulang Teknik Informatika S1
Struktur Data 35
Universitas Pamulang Teknik Informatika S1
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.
Struktur Data 36
Universitas Pamulang Teknik Informatika S1
SINGLE STACK
Kondisi Stack
1. S[n]
Kosong : Top = -1
Bisa Diisi : Top < n -1
Struktur Data 37
Universitas Pamulang Teknik Informatika S1
2. S[n]
3. S[n]
Penuh : Top = n – 1
Ada isinya : Top > n-1
Struktur Data 38
Universitas Pamulang Teknik Informatika S1
Struktur Data 39
Universitas Pamulang Teknik Informatika S1
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;
}
Kelebihan:
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