Tumpukan (stack) adalah salah satu struktur data yang sangat penting dalam ilmu komputer. Bayangkan tumpukan piring di dapur. Piring terakhir yang kita masukkan akan menjadi piring pertama yang kita ambil saat ingin menggunakannya.
Prinsip inilah yang mendasari konsep tumpukan dalam pemrograman.
Konsep Dasar Tumpukan
-
- LIFO (Last In, First Out): Elemen yang terakhir dimasukkan ke dalam tumpukan akan menjadi elemen pertama yang dikeluarkan.
- Operasi Dasar:
- Push: Menambahkan elemen ke atas tumpukan.
- Pop: Menghapus elemen teratas dari tumpukan.
- Peek: Melihat elemen teratas tanpa menghapusnya.
- IsEmpty: Mengecek apakah tumpukan kosong.
- IsFull: Mengecek apakah tumpukan penuh (jika menggunakan array dengan ukuran terbatas).
Implementasi Tumpukan
Tumpukan dapat diimplementasikan menggunakan berbagai cara, antara lain:
Array :
-
-
-
- Menggunakan array untuk menyimpan elemen tumpukan.
- Indeks array digunakan untuk menunjuk ke elemen teratas.
-
-
Linked List :
-
-
-
- Setiap node dalam linked list merepresentasikan satu elemen tumpukan.
- Elemen baru ditambahkan di awal list (menjadi elemen teratas).
-
-
Aplikasi Tumpukan dalam Kehidupan Nyata
-
- Panggilan Fungsi: Ketika sebuah fungsi memanggil fungsi lain, alamat kembalinya disimpan dalam tumpukan.
- Ekspresi Matematika: Konversi ekspresi infix ke postfix menggunakan tumpukan.
- Backtracking: Algoritma backtracking seperti pemecahan soal Sudoku menggunakan tumpukan untuk menyimpan konfigurasi sementara.
- Browser History: Sejarah kunjungan pada browser web seringkali menggunakan prinsip tumpukan (tombol “Back”).