-->

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)

  1. Inisialisasi
  2. Operasi Kosong
  3. Operasi Penuh
  4. PUSH
  5. 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

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel