Daftar Isi:
Definisi - Apa yang dimaksud dengan Stack?
Tumpukan adalah struktur konseptual yang terdiri dari satu set elemen homogen dan didasarkan pada prinsip last in first out (LIFO). Ini adalah tipe data abstrak yang umum digunakan dengan dua operasi besar, yaitu push dan pop. Push dan pop dilakukan pada elemen paling atas, yang merupakan item yang paling baru ditambahkan ke stack. Operasi push menambahkan elemen ke stack sementara operasi pop menghilangkan elemen dari posisi atas. Konsep tumpukan digunakan dalam pemrograman dan organisasi memori di komputer.
Techopedia menjelaskan Stack
Tumpukan mewakili urutan objek atau elemen dalam format struktur data linier. Tumpukan terdiri dari dasar terikat dan semua operasi dilakukan pada posisi teratas. Setiap kali elemen ditambahkan ke stack oleh operasi push, nilai teratas bertambah satu, dan ketika sebuah elemen muncul dari stack, nilai teratas dikurangi oleh satu. Pointer ke posisi teratas stack juga dikenal sebagai stack pointer.
Tumpukan mungkin diperbaiki dalam ukuran atau mungkin memiliki implementasi dinamis di mana ukuran diizinkan untuk berubah. Dalam kasus tumpukan kapasitas terbatas, mencoba menambahkan elemen ke tumpukan yang sudah penuh menyebabkan pengecualian stack overflow. Demikian pula, kondisi di mana operasi pop mencoba untuk menghapus elemen dari tumpukan yang sudah kosong dikenal sebagai underflow.
Tumpukan dianggap sebagai struktur data terbatas karena hanya sejumlah operasi yang diizinkan. Selain operasi push dan pop, implementasi tertentu dapat memungkinkan untuk operasi lanjutan seperti:
- Peek - Lihat item paling atas di tumpukan.
- Duplikat - Salin nilai item teratas ke dalam variabel dan dorong kembali ke tumpukan.
- Tukar - Tukar dua item teratas dalam tumpukan.
- Putar - Memindahkan elemen paling atas dalam tumpukan seperti yang ditentukan oleh angka atau bergerak secara berputar.
Implementasi perangkat lunak dari konsep stack dilakukan menggunakan array dan daftar tertaut di mana posisi teratas dilacak menggunakan variabel atau header pointer masing-masing. Banyak bahasa pemrograman menyediakan fitur bawaan untuk mendukung implementasi stack.
Tumpukan perangkat keras diimplementasikan untuk tujuan alokasi dan akses memori menggunakan sumber dan ukuran tetap. Stack register digunakan untuk menyimpan nilai dari stack pointer.
