0% menganggap dokumen ini bermanfaat (0 suara)
14 tayangan20 halaman

Contoh Penerapan Struktur Data Stack

Stack adalah struktur data yang mengikuti prinsip Last In First Out (LIFO), di mana elemen hanya dapat ditambahkan atau diambil dari posisi akhir. Dalam Python, stack dapat diimplementasikan menggunakan list, deque, atau LifoQueue, dengan operasi dasar 'push' untuk menambahkan elemen dan 'pop' untuk menghapus elemen. Contoh penerapan stack termasuk fungsi undo-redo, penghitungan rumus matematika, dan navigasi web.

Diunggah oleh

adityapratama310106
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
14 tayangan20 halaman

Contoh Penerapan Struktur Data Stack

Stack adalah struktur data yang mengikuti prinsip Last In First Out (LIFO), di mana elemen hanya dapat ditambahkan atau diambil dari posisi akhir. Dalam Python, stack dapat diimplementasikan menggunakan list, deque, atau LifoQueue, dengan operasi dasar 'push' untuk menambahkan elemen dan 'pop' untuk menghapus elemen. Contoh penerapan stack termasuk fungsi undo-redo, penghitungan rumus matematika, dan navigasi web.

Diunggah oleh

adityapratama310106
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

STACK

ALGORITMA & STRUKTUR DATA 2


Stack
• Stack (tumpukan) adalah sebuah daftar elemen data dimana
penambahan dan pengambilan/penghapusan data hanya dilakukan
pada posisi akhir
• Menggunkan kaidah Last In First Out (LIFO)
• Posisi awal stack disebut sebagai Base
• Posisi akhir stack disebut sebagai Top Data 3 Top

Data 2

Data 1 Base
Stack
• Contoh penerapan stack dalam kehidupan sehari-hari misalanya
tumpukan piring di restoran, dimana tumpukannya dapat ditambah
pada bagian paling atas dan jika mengambilnya pun dari bagian paling
atas
• Contoh lain:

Tumpukan Tumpukan Tumpukan


koin kotak buku
Stack
• Contoh penerapan stack di dunia komputer:
1. Undo – redo
2. Reverse string
3. Tombol Next dan Back pada web browser
4. Penghitungan rumus matematika (dengan memperhatikan
urutan prioritas operator)
Operasi pada Stack
• Terdapat 2 operasi dasar:
1. Push: operasi menambahkan elemen pada urutan
terakhir/paling atas (top)
2. Pop: operasi mengambil sebuah elemen pada urutan terakhir
(top) dan menghapus elemen tersebut dari stack
Operasi pada Stack
• Contoh:

Sumber : [Link]
Stack pada Python
Stack pada Python
• Dalam python stack dapat diimplementasikan dengan beberapa cara
diantaranya:
1. Menggunakan List
2. Menggunakan Modules
Stack Menggunakan List
• Operasi stack menggunakan list dapat dilihat pada tabel berikut:
Operasi Method Keterangan
Push append() Menambah elemen di akhir list (stack)
Pop pop() Menghapus elemen di akhir list (stack)
Stack Menggunakan List
• Contoh 1:
stack = [] #stack kosong Hasil Eksekusi:
print(stack)
[Link](10) #push(10) []
[Link](20) #push(20) [10, 20, 30]
[Link](30) #push(30) Elemen yang dihapus: 30
print(stack) [10, 20]
hapus=[Link]() #pop() Elemen yang dihapus: 20
print("Elemen yang dihapus: ", hapus)
[10]
print(stack)
hapus=[Link]() #pop()
Elemen yang dihapus: 10
print("Elemen yang dihapus: ", hapus) []
print(stack)
hapus=[Link]() #pop()
print("Elemen yang dihapus: ", hapus)
print(stack)
Stack Menggunakan List
• Contoh 2:
stack = []
isEmpty=len(stack)==0 #mengecek apakah list (stack) kosong
print(isEmpty)

isEmpty=not stack #mengecek apakah list (stack) kosong


print(isEmpty)

[Link](10)
[Link](20)
[Link](30)
print("Top: ",stack[-1]) #melihat elemen top (elemen di posisi paling akhir)

Hasil Eksekusi:
True
True
Top: 30
Stack Menggunakan Modules
• Pada python terdapat beberapa modul yang dapat digunakan untuk
mengimplementasikan stack:
1. Collection (menggunakan Deque (Double Ended Queue) Class)
2. Queue (menggunakan LifoQueue Class)
Stack Menggunakan Deque Class
• Operasi stack menggunakan deque class dapat dilihat pada tabel
berikut:
Operasi Method Keterangan
Push append() Menambah elemen di akhir stack
Pop pop() Menghapus elemen di akhir stack
Stack Menggunakan Deque Class
• Contoh 1:
import collections Hasil Eksekusi:
stack = [Link]()
print(stack) #stack kosong deque([])
[Link](10) #push(10) deque([10, 20, 30])
[Link](20) #push(20) Elemen yang dihapus: 30
[Link](30) #push(30) deque([10, 20])
print(stack) Elemen yang dihapus: 20
hapus=[Link]() #pop()
deque([10])
print("Elemen yang dihapus: ",hapus)
print(stack)
Elemen yang dihapus: 10
hapus=[Link]() #pop() deque([])
print("Elemen yang dihapus: ",hapus)
print(stack)
hapus=[Link]() #pop()
print("Elemen yang dihapus: ",hapus)
print(stack)
Stack Menggunakan Deque Class
• Contoh 2:
import collections Hasil Eksekusi:
stack = [Link]()
True
isEmpty=len(stack)==0 #mengecek apakah stack kosong True
print(isEmpty) Top: 30

isEmpty=not stack #mengecek apakah stack kosong


print(isEmpty)

[Link](10)
[Link](20)
[Link](30)
print("Top: ",stack[-1]) #melihat elemen top
(elemen di posisi paling akhir)
Stack Menggunakan LifoQueue Class
• Operasi stack menggunakan LifoQueue class dapat dilihat pada tabel
berikut:
Operasi Method Keterangan
Push put() Menambah elemen di akhir stack
Pop get() Menghapus elemen di akhir stack
Stack Menggunakan LifoQueue Class
• Contoh 1:
import queue Hasil Eksekusi:
stack = [Link]()
print([Link]) #stack kosong []
[Link](10) #push(10) [10, 20, 30]
[Link](20) #push(20) Elemen yang dihapus: 30
[Link](30) #push(30) [10, 20]
print([Link]) Elemen yang dihapus: 20
hapus=[Link]() #pop()
[10]
print("Elemen yang dihapus: ",hapus)
print([Link])
Elemen yang dihapus: 10
hapus=[Link]() #pop() []
print("Elemen yang dihapus: ",hapus)
print([Link])
hapus=[Link]() #pop()
print("Elemen yang dihapus: ",hapus)
print([Link])
Stack Menggunakan LifoQueue Class
• Contoh 2:
import queue
stack = [Link](3) #menentukan jumlah maksimal elemen
print([Link]()) #mengecek apakah stack kosong
[Link](10)
[Link](20)
[Link](30)
print([Link])
print([Link]()) #mengecek apakah stack penuh
print([Link][-1]) #melihat elemen top (elemen di posisi paling akhir)

Hasil Eksekusi:
True
[10, 20, 30]
True
30
Stack pada Python
• Selain menggunakan list dan modules, implementasi stack pada
python dapat juga dilakukan menggunakan Linked List (menggunakan
class buatan sendiri)
• Implementasi stack menggunakan linked list adalah dengan cara
melakukan penambahan dan penghapusan elemen yang hanya
dilakukan di node depan
• Node paling depan dapat diberi nama Top
TERIMA KASIH

Anda mungkin juga menyukai