Pengertian Stack Dan Penggunaannya Pada Pemrograman Python

Selamat datang kembali di Celcios. Pada kali ini saya akan membuat materi pemrograman dasar-dasar struktur data dan disini saya akan memulai membahas dari Stack terlebih dahulu.


Selain materi stack, ada juga yang dimaksud Queue. Ibaratkan saja ada sekelompok orang yang menunggu untuk mendapatkan sesuatu secara bergantian, sehingga cara kerjanya itu orang yang sudah berada di garis terdepan dan memanjang tak terhingga. Orang yang ada di garis depan maju, sedangkan orang yang ada di posisi kedua maju satu langkah menggantikkan posisi orang pertama. Nah mungkin pengenalan dari queue sampai sini saja dulu. Kita masuk ke materi pertama yaitu Stack.


Oke langsung kita masuk materi. Apa itu stack? Stack adalah suatu susunan koleksi data, dimana data tersebut dapat ditambahkan dan dihapus pada bagian akhir data (top of stack). Stack bisa kita artikan tumpukan, data seolah-olah diletakan diatas data yang lain. Konsep menurut saya pribadi bahwa stack seperti tumpukan objek di dalam kehidupan nyata. Kita juga bisa menempatkan elemen di atas dan kita memiliki akses yang begitu mudah untuk menghapus maupun melihat suatu elemen diatas atau yang terbaru.


Contoh simpelnya seperti berikut. Pejamkan kedua mata kita untuk sementara, lalu tarik nafas sedalam-dalamnya dan keluarkan secara perlahan-lahan. Bayangkan nih ada sebuah gudang yang penuh barang, dimana-mana dipenuhi barang hingga berantakan tidak karuan. Setiap barang nantinya akan ditumpuk diatas barang yang lain agar terlihat rapi.


Sudah ada yang bisa membayangkan isi pikiran masing-masing?


Nah kembali ke pengertian stack diatas tadi, ada yang masih inget?


Yak betul.. Susunan koleksi data, dimana data tersebut dapat ditambahkan dan dihapus. Stack ini bersifat Last In First Out. Objek yang terakhir masuk dalam stack akan menjadi yang pertama keluar dari stack. Ada beberapa cara efisien untuk mengimplementasikan stack di komputer.


Gambaran Stack

Perhatikan beberapa contoh ilustrasi yang saya buat disini.

  • Ilustrasi Stack Kosong
  • Gambaran Stack
  • Ilustrasi Stack Tidak Kosong dengan 3 Elemen
  • Gambaran Stack

Di bagian ini saya akan menunjukkan cara menggunakan array sederhana untuk mengimplementasikannya masing-masing. Operasi Insert pada stack ini sering disebut dengan PUSH dan POP. Nama ini adalah sebuah kiasan untuk tumpukan fisik. Beberapa operasi stack antara lain : Push, Pop, IsEmpty, Len. Berikut Implementasi stack ke dalam bahasa python.

Implementasi Stack

Apa Itu Push?

Push adalah memasukkan elemen ke list (array) stack. Setiap elemen yang akan diinputkan menjadi elemen teratas dari stack. Contoh operasinya bisa dilihat di tabel implementasi stack diatas. Misalnya seperti berikut : L.push(e) yang artinya menambah sebuah elemen e ke dalam sebuah list L. Nah, dalam python, realisasinya penambahan elemennya menggunakan append.


Contohnya saya akan memasukkan elemen d ke dalam list (array) L.


L.append('d').


L = []
L.append('d')
print(L)


Berikut adalah gambaran lengkapnya.

Contoh Push Append

Masih kurang paham? Oke saya kasih contoh lain lagi. Silahkan disimak baik-baik.

  • Memasukkan elemen e ke list (array) L
L = []
L.append('d')
L.append('e')
print(L)

Perhatikan penjelasan gambarnya.

Contoh Push Append Lanjut

Penjelasannya sebagai berikut.

  • append() untuk menambahkan elemen ke akhir list L
  • Dalam kasus stack, elemen paling belakang dianggap sebagai elemen teratas

Apa Itu POP?

Pop adalah menghapus elemen teratas list (array) stack. Jika stack itu kosong, maka program tersebut akan error. Contoh operasinya adalah L.pop() yang artinya menghapus elemen teratas dari list. Misalnya seperti berikut :


L = [1, 2, 3]
L.pop()

Contoh dari POP adalah sebagai berikut.

  • Menghapus elemen teratas list (array) L: e
L = []
L.append('a')
L.append('b')
L.append('c')
L.append('d')
L.append('e')
print(L)
out = L.pop()
print(out)
print(L)

Penjelasannya adalah...

  • pop() secara otomatis akan menghapus elemen paling belakang
  • Dalam kasus stack, elemen paling belakang akan merepresentasikan elemen teratas

Apa Itu is_empty()?

IsEmpty digunakan untuk mengecek apakah stack itu kosong. IsEmpty akan mengembalikan nilai (return) True jika stack kosong (tidak berisi elemen). Namun, akan sedikit berbeda jika hasilnya itu False jika stack tidak kosong (masih terisi elemen). Contohnya seperti berikut.


def is_empty():
    return
L == []

Contoh dari is_empty adalah sebagai berikut.

  • Mengecek list L kosong atau tidak
L = []
L.append('a')
L.append('b')
L.append('c')
print(L)
def is_empty():
    return L == []
L.pop()
L.pop()

#panggil is_empty
print(is_empty())

Perhatikan gambar berikut

Gambaran Stack
  • Mengecek list L kosong atau tidak
L = []
L.append('a')
L.append('b')
L.append('c')
print(L)
def is_empty():
    return L == []
L.pop()
L.pop()
L.pop()

#panggil is_empty
print(is_empty())

Gambaran Stack

Apa Itu Len?

Len ini digunakan untuk menampilkan jumlah elemen di dalam list. Fungsi dari len ini untuk mengetahui jumlah elemen stack yang dimasukkan. Contoh implementasi pada python sebagai berikut.

L = [1, 2, 3]
print(len(L))

Berikut adalah rangkuman lengkap program full version-nya.


mystack.py
# buat list L
# set list L kosong
L = []
# tambah elemen
L.append('a')
L.append('b')
L.append('c')
print(L)

# POP elemen
out = L.pop()
print("data terhapus : ",out)
print("data terbaru : ",L)
print("Panjang Stack : ",len(L))
def is_empty():
    return L == []
print()

Nah itu dia gan.. ulasan saya mengenai stack dan implementasinya. Sebenernya ini merupakan materi kuliah Struktur Data yang pernah saya dapatkan di semester 3 dulu. Jadi saya buat artikel ini mumpung saya masih inget dengan materi tersebut😁


Semoga artikel tadi bisa bermanfaat buat agan semua yang membutuhkan referensi mengenai materi struktur data ini.


LihatTutupKomentar