Struktur data STACK
PENGERTIAN STACK
Stack (tumpukan) adalah suatu urutan elemen yang elemennya dapat ditambah dan diambil hanya pada posisi akhir (data yang ditunjuk oleh variabel Top) saja dikenal dengan istilah LIFO (Last In First Out). Contohnya tumpukan koin, tumpukan dus, tumpukan buku, dll.
Bagian-bagian STACK
Suatu Stack yang direpresentasikan menggunakan tipe data array memiliki beberapa bagian yang harus dipahami yaitu:
Top sebagai variabel yang menunjuk posisi data terakhir pada Stack.
Elemen yang berisi data dalam Stack. Bagian inilah yang berbentuk array.
MaxStack yaitu variabel yang menampung maksimal banyaknya elemen dalam Stack.
Pendeklarasian Stack (Array)
Kamus:
Const
MaxStack = ……
Type
ArrayStack= array [1..MaxStack] of tipedata
Stack : ArrayStack Top : Integer {penunjuk Stack}
Pendeklarasian Stack (List)
Kamus:
Type
PointerStack = Stack ↑
Stack = Record
MedanData : tipedata,
MedanSambungan : PointerStack
EndRecord
Top : PointerStack {penunjuk Stack}
Contoh Pendeklarasian Stack (List)
Contoh deklarasi list Stack pada single linked list
Kamus:
Type
PointerStack = Stack ↑
Stack = Record
Info : integer,
Next : PointerStack
EndRecord
Top : PointerStack {penunjuk Stack}
OPERASI UTAMA
STACK:
- PUSH
STACK
Operasi
mengambil /
mengeluarkan
sebuah data dari
stack
OPERASI UTAMA
-POP
Operasi
menambahkan/
memasukkan
sebuah data ke
dalam stack
OPERASI STACK (Array)
Inisialisasi Stack (Array)
Proses menyiapkan Stack dengan cara memberi harga 0 (nol) pada variabel penunjuk Stack (Top), jika elemen pertama Stack diawali dari indeks kesatu (berlaku untuk algoritma dan bhs. Pascal). Tetapi jika elemen pertama Stack dimulai dari indeks ke nol (contoh bahasa C), maka variabel Top diberi harga - 1.
Operasi Kosong (Array)
Jika variabel Top bernilai 0 (untuk elemen yang indeksnya dimulai dari 1) atau variabel Top bernilai -1 (untuk elemen yang indeksnya dimulai dari 0), maka Stack dalam keadaan kosong sehingga akan mengembalikan nilai true (atau 1 pada bhs. C). Jika tidak, maka stack tidak kosong (berarti ada datanya) sehingga akan mengembalikan nilai false (atau 0 pada bhs. C).
Catatan:
“Operasi ini akan digunakan saat operasi Pop”
Algoritma Subrutin Operasi Kosong
Function Kosong (Input Top : integer) Boolean
{I.S. : Penunjuk Stack (Top) sudah terdefinisi}
{F.S. : menghasilkan keadaan Stack kosong atau tidak}
Kamus:
Algoritma:
Kosong false
If (Top = 0)
Then
Kosong true
EndIf
EndProcedure
Operasi Penuh (Array)
Catatan:
“Operasi ini akan digunakan saat operasi Push”
Algoritma Subrutin Operasi Penuh
Function Penuh(Input Top : integer) Boolean
{I.S. : Penunjuk Stack (Top) sudah terdefinisi}
{F.S. : menghasilkan keadaan Stack pebuh atau belum penuh}
Kamus:
Algoritma:
Penuh false
If (Top = MaxStack)
Then
Penuh true
EndIf
EndProcedure
Push (Array)
Langkah operasi push menggunakan tipe data array adalah dengan cara :
Stack dapat ditambah jika Stack belum penuh
Tambahkan penunjuk Stack (Top) dengan 1
Elemen Stack pada posisi Top diisi dengan data baru
Ingat! Setiap kali operasi Push dilakukan, maka hanya satu data yang akan ditambahkan kedalam Stack
Stack (tumpukan) adalah suatu urutan elemen yang elemennya dapat ditambah dan diambil hanya pada posisi akhir (data yang ditunjuk oleh variabel Top) saja dikenal dengan istilah LIFO (Last In First Out). Contohnya tumpukan koin, tumpukan dus, tumpukan buku, dll.
Bagian-bagian STACK
Suatu Stack yang direpresentasikan menggunakan tipe data array memiliki beberapa bagian yang harus dipahami yaitu:
Top sebagai variabel yang menunjuk posisi data terakhir pada Stack.
Elemen yang berisi data dalam Stack. Bagian inilah yang berbentuk array.
MaxStack yaitu variabel yang menampung maksimal banyaknya elemen dalam Stack.
Pendeklarasian Stack (Array)
Kamus:
Const
MaxStack = ……
Type
ArrayStack= array [1..MaxStack] of tipedata
Stack : ArrayStack Top : Integer {penunjuk Stack}
Pendeklarasian Stack (List)
Kamus:
Type
PointerStack = Stack ↑
Stack = Record
MedanData : tipedata,
MedanSambungan : PointerStack
EndRecord
Top : PointerStack {penunjuk Stack}
Contoh Pendeklarasian Stack (List)
Contoh deklarasi list Stack pada single linked list
Kamus:
Type
PointerStack = Stack ↑
Stack = Record
Info : integer,
Next : PointerStack
EndRecord
Top : PointerStack {penunjuk Stack}
OPERASI UTAMA
STACK:
- PUSH
STACK
Operasi
mengambil /
mengeluarkan
sebuah data dari
stack
OPERASI UTAMA
-POP
Operasi
menambahkan/
memasukkan
sebuah data ke
dalam stack
OPERASI STACK (Array)
- Inisialisasi
- Operasi Kosong
- Operasi Penuh
- PUSH
- POP
Inisialisasi Stack (Array)
Proses menyiapkan Stack dengan cara memberi harga 0 (nol) pada variabel penunjuk Stack (Top), jika elemen pertama Stack diawali dari indeks kesatu (berlaku untuk algoritma dan bhs. Pascal). Tetapi jika elemen pertama Stack dimulai dari indeks ke nol (contoh bahasa C), maka variabel Top diberi harga - 1.
Operasi Kosong (Array)
Jika variabel Top bernilai 0 (untuk elemen yang indeksnya dimulai dari 1) atau variabel Top bernilai -1 (untuk elemen yang indeksnya dimulai dari 0), maka Stack dalam keadaan kosong sehingga akan mengembalikan nilai true (atau 1 pada bhs. C). Jika tidak, maka stack tidak kosong (berarti ada datanya) sehingga akan mengembalikan nilai false (atau 0 pada bhs. C).
Catatan:
“Operasi ini akan digunakan saat operasi Pop”
Algoritma Subrutin Operasi Kosong
Function Kosong (Input Top : integer) Boolean
{I.S. : Penunjuk Stack (Top) sudah terdefinisi}
{F.S. : menghasilkan keadaan Stack kosong atau tidak}
Kamus:
Algoritma:
Kosong false
If (Top = 0)
Then
Kosong true
EndIf
EndProcedure
Operasi Penuh (Array)
Operasi ini akan memberikan nilai True (atau 1 pada
bhs. C) jika nilai dari variabel Top sama dengan
maksimum array (untuk array yang elemennya
dimulai dari posisi 1) atau variabel Top sama dengan
maksimum array-1 (untuk array yang elemennya
dimulai dari posisi 0). Jika nilai variabel Top tidak
sama dengan maksimum array,maka operasi Penuh
akan mengembalikan nilai False (atau 0 pada bhs.
C).
Catatan:
“Operasi ini akan digunakan saat operasi Push”
Algoritma Subrutin Operasi Penuh
Function Penuh(Input Top : integer) Boolean
{I.S. : Penunjuk Stack (Top) sudah terdefinisi}
{F.S. : menghasilkan keadaan Stack pebuh atau belum penuh}
Kamus:
Algoritma:
Penuh false
If (Top = MaxStack)
Then
Penuh true
EndIf
EndProcedure
Push (Array)
Langkah operasi push menggunakan tipe data array adalah dengan cara :
Stack dapat ditambah jika Stack belum penuh
Tambahkan penunjuk Stack (Top) dengan 1
Elemen Stack pada posisi Top diisi dengan data baru
Ingat! Setiap kali operasi Push dilakukan, maka hanya satu data yang akan ditambahkan kedalam Stack
0 Response to "Struktur data STACK"
Post a Comment