Apa itu Struktur Data Stack ?


Stack secara bahasa artinya tumpukan.Stack dalam bahasa pemrograman ini mengacu kepada tumpukan di dunia nyata seperti tumpukan buku,tumpukan piring.tumpukan ban,dll.Mungkin sampai sini anda sudah punya Stack itu seperti apa

Misalkan kita punya tumpukan piring dan kita ingin menambahkan piring lagi ke tumpukan itu.Kemana kita akan menempatkannya ? Tentu saja di paling atas bukan yang mudah penempatannya.Nah,operasi menambahkan elemen ke bagian atas ini disebut dengan Push 

Sekarang sebaliknya kalau kita ingin mengambil piring,piring mana yang akan kita ambil ? Tentu saja piring paling atas bukan ? Karena kalau kita mengambil piring yang tidak berada paling atas ,maka piring disekitarnya akan jatuh dan menimbulkan bunyi atau bahkan kasus paling parahnya bisa-bisa piringnya ada yang pecah.Nah,operasi mengambil elemen dari bagian atas disebut dengan Pop

Dalam stack dikenal algoritma LIFO (Last In First Out) maksudnya yang terakhir masuk akan dikeluarkan pertama kali,Untuk contohnya sudah saya contohkan seperti di atas



Operasi Pada Stack

Operasi dasar pada Stack adalah sebagai berikut :

  • push(),menambahkan elemen ke dalam stack 
  • pop(),mengambil elemen dari dalam stack
  • peek(),mendapatkan elemen teratas stack tanpa menghapusnya
  • isEmpty(),mengecek apakah stack kosong
Implementasi Stack dan Operasinya

Kita memakai bahasa Python saja yang lebih simple contoh kodenya sebagai berikut

class Stack(object):
    def __init__(self):
        self.items = []

    def isEmpty(self):
        return len(self)==0
    
    def __len__(self):
        return len(self.items)
    
    def peek(self):
        assert not self.isEmpty(),"Stack sedang kosong"
        return self.items[-1]
    
    def pop(self):
        assert not self.isEmpty(),"Stack sedang kosong"
        return self.items.pop()

    def push(self,data):
        self.items.append(data)
        return self.items
        
    Kita tes dengan menjalankan kode tersebut

Tes stack Python

Kalau untuk bahasa yang lain kurang lebih sama saja tinggal dirubah-rubah sedikit sesuai dengan bahasa pemrograman nya

Mungkin itu saja ya postingan tentang tipe data Stack.Mudah-mudahan anda paham karena Stack ini bukan hal yang berat untuk dipahami.Semoga bisa bermanfaat bagi anda dan bye..





Jangan spam atau promosi di sini jgn juga taruh link aktif kalau mau dapat backlink bisa taruh di profil saja (Name/URL)
EmoticonEmoticon