Tumpukan (struktur data): Perbedaan antara revisi

Konten dihapus Konten ditambahkan
LaninBot (bicara | kontrib)
k Perubahan kosmetik tanda baca
Tidak ada ringkasan suntingan
Baris 1:
Dalam [[ilmu komputer]], '''stack''' atau '''tumpukan''' merupakan sebuah koleksi objek yang menggunakan prinsip '''''LIFO''''' ('''''Last In First Out'''''), yaitu data yang terakhir kali dimasukkan akan pertama kali keluar dari tumpukan tersebut. Operasi untuk memasukkan data biasa disebut ''push'' dan operasi untuk mengeluarkan biasanya disebut ''pop''. Tumpukan dapat diimplementasikan sebagai [[senarai berantai]] atau [[larik]].
{{wikify}}
Stack tergolong [[struktur data linear]] dan operasi ''push'' dan ''pop'' hanya bisa dilakukan di satu ujung struktur yang biasa disebut ''top'' dari stack. Untuk melihat data yang ada di top tanpa mengeluarkannya, biasanya dilakukan menggunakan operasi ''peek''.
Dalam [[ilmu komputer]], '''stack''' atau '''tumpukan''' merupakan sebuah koleksi objek yang menggunakan prinsip
LIFO (Last In First Out), yaitu data yang terakhir kali dimasukkan akan pertama kali keluar dari tumpukan tersebut.
Tumpukan dapat diimplementasikan sebagai representasi berkait atau kontigu (dengan tabel fix).
Ciri tumpukan:
* TOP merupakan sebutan untuk elemen paling atas dari suatu stack
* Elemen TOP merupakan elemen yang paling akhir ditambahkan
* Elemen TOP diketahui
* penambahan dan penghapusan elemen selalu dilakukan di TOP
* LIFO
 
== Pemanfaatan tumpukan:stack ==
*=== Perhitungan ekspresi aritmetika (posfix)dan penguraian sintaks ===
Di kalkulator yang menggunakan [[notasi Polandia terbalik]] (letak operator bersifat posfiks) menggunakan stack untuk menyimpan nilai. Selain itu, kebanyakan [[kompilator]] menggunakan stack untuk menguraikan sintaks ekspresi dan blok program sebelum diterjemahkan ke bahasa level rendah.
* algoritme backtraking (runut balik)
* algoritme rekursif
 
=== ''Backtracking'' ===
Operasi tumpukan:
Stack bisa dimanfaatkan untuk algoritma ''[[backtracking]]''. Misalkan ada sebuah maze. Kita bisa menyimpan daftar lokasi yang kita kunjungi menggunakan stack. Jadi, apabila kita mencapai jalan buntu, kita tinggal melakukan ''pop'' pada stack daftar lokasi lalu mencoba jalan lain. Contoh algoritma ''backtracking'' yang sering digunakan adalah pencarian ''[[depth-first search]]'' pada struktur data [[pohon (stuktur data)|pohon]].
 
{{komputer-stub}}
# InsertFirst () biasa disebut Push (input E: typeelmt, input/output data: stack): menambahkan sebuah elemen ke tumpukan
# DeleteFirst () biasa disebut Pop (output E: typeelmt, input/output data: stack ): menghapus sebuah elemen tumpukan
# IsEmpty (): mengecek apakah stack kosong atau ada elemennya
# IsFull (): mengecek apakah stack telah penuh atau belum
# Clear (): menghapus semua data
# Peek (): melihat data TOP
 
[[Kategori:Struktur data]]