๐งญ 1. Pengertian Stack
6
๐ Definisi
Stack adalah struktur data linear yang bekerja berdasarkan prinsip LIFO (Last In First Out), yaitu elemen yang terakhir masuk akan menjadi elemen pertama yang keluar.
๐ง Narasi Konseptual
Bayangkan tumpukan piring:
- Piring pertama diletakkan di bawah
- Piring berikutnya ditumpuk di atasnya
- Saat mengambil piring, kita selalu mengambil dari atas
โก๏ธ Itulah konsep Stack dalam komputer.
๐ฏ 2. Karakteristik Stack
๐ Tabel Karakteristik
| Karakteristik | Penjelasan |
|---|---|
| Prinsip | LIFO (Last In First Out) |
| Akses | Hanya dari satu sisi (Top) |
| Struktur | Linear |
| Operasi utama | Push, Pop, Peek |
๐ง Narasi
Stack hanya memiliki satu pintu akses:
- Semua operasi terjadi di bagian atas (TOP)
- Tidak bisa mengakses elemen tengah atau bawah langsung
โ๏ธ 3. Operasi Dasar Stack
6
๐ A. Push (Menambah Data)
Menambahkan elemen ke atas stack.
๐ B. Pop (Menghapus Data)
Menghapus elemen paling atas.
๐ C. Peek/Top (Melihat Data)
Melihat elemen paling atas tanpa menghapus.
๐ Tabel Operasi
| Operasi | Fungsi | Kompleksitas |
|---|---|---|
| Push | Menambah data | O(1) |
| Pop | Menghapus data | O(1) |
| Peek | Melihat top | O(1) |
๐งฑ 4. Representasi Stack
๐น A. Array Based Stack
7
- Menggunakan array statis
- Ukuran terbatas
๐น B. Linked List Based Stack
6
- Menggunakan linked list
- Ukuran dinamis
- Lebih fleksibel
๐ง 5. Cara Kerja Stack (Step by Step)
๐ Contoh Proses Push
Stack kosong โ push 10 โ push 20 โ push 30
TOP โ 30
20
BOTTOMโ10
๐ Proses Pop
- Pop โ 30 keluar
- Pop โ 20 keluar
๐งฎ 6. Ilustrasi Operasi Stack
6
โ ๏ธ 7. Kondisi Error pada Stack
๐ Tabel Error
| Error | Penyebab |
|---|---|
| Overflow | Stack penuh (push melebihi kapasitas) |
| Underflow | Stack kosong tapi pop dilakukan |
๐ง Narasi
- Overflow terjadi pada array stack
- Underflow terjadi saat pop dari stack kosong
๐ 8. Aplikasi Stack dalam Dunia Nyata
๐ Contoh Penggunaan
| Bidang | Penggunaan Stack |
|---|---|
| Browser | History back/forward |
| Editor | Undo/Redo |
| Sistem | Call stack fungsi |
| Compiler | Parsing ekspresi |
๐ป 9. Stack dalam Pemrograman
๐ Implementasi Array (C++)
#include <iostream>
using namespace std;#define MAX 5class Stack {
int top;
int arr[MAX];public:
Stack() { top = -1; } void push(int x){
if(top >= MAX-1){
cout << "Overflow\n";
return;
}
arr[++top] = x;
} void pop(){
if(top < 0){
cout << "Underflow\n";
return;
}
top--;
} int peek(){
return arr[top];
}
};
๐ 10. Stack vs Struktur Data Lain
๐ Tabel Perbandingan
| Struktur | Pola | Akses |
|---|---|---|
| Stack | LIFO | Top saja |
| Queue | FIFO | Front & Rear |
| Array | Random | Index |
| Linked List | Sequential | Node |
๐ง 11. Stack vs Queue (Perbandingan Konsep)
7
๐ Penjelasan
- Stack โ seperti tumpukan piring (LIFO)
- Queue โ seperti antrian (FIFO)
๐ 12. Stack dalam Rekursi (Call Stack)
๐ง Narasi
Saat fungsi dipanggil:
- Sistem menyimpan pemanggilan di stack
- Fungsi terakhir dipanggil akan selesai lebih dulu
โก๏ธ Ini disebut Call Stack
๐งช 13. Studi Kasus
๐ Kasus: Undo pada Editor
- Setiap aksi disimpan ke stack
- Undo = pop dari stack
๐ 14. Kelebihan dan Kekurangan Stack
๐ Tabel
| Kelebihan | Kekurangan |
|---|---|
| Operasi cepat O(1) | Akses terbatas |
| Implementasi mudah | Tidak fleksibel |
| Efisien untuk sistem | Overflow bisa terjadi |
๐ 15. Ringkasan Materi
- Stack adalah struktur data LIFO
- Operasi utama: push, pop, peek
- Bisa diimplementasikan dengan array atau linked list
- Digunakan dalam banyak sistem komputer
- Penting dalam pemahaman rekursi dan fungsi
๐ 16. Latihan / Diskusi
โ๏ธ Soal Teori
- Jelaskan konsep LIFO
- Apa itu overflow dan underflow?
- Bedakan stack dan queue
๐ป Soal Praktikum
- Implementasikan stack sederhana
- Buat program undo sederhana
- Simulasikan push dan pop
๐ฏ Penutup
Stack adalah struktur data fundamental yang wajib dipahami karena digunakan dalam hampir semua sistem komputasi modern, terutama:
- Pemanggilan fungsi
- Compiler
- Undo/Redo sistem
- Parsing ekspresi