Contoh Program Algoritma Stack di C++ Beserta Penjelasan – Stack merupakan salah satu algoritma struktur data yang sering diajarkan sewaktu kuliah, algoritma ini sering diimplementasikan pada kehidupan sehari hari, tanpa banyak bicara mari kita mulai membahas struktur data stack
baca juga: apa itu bahasa C++
Pengertian Algoritma Stack
Stack adalah sekumpulan data yang terorganisasi dan bersifat bertumpuk. salah merupakan satu struktur data yang sering digunakan untuk keperluan antrian.
stack dikenal dengan istilah LIFO(Last In First Out) dimana data yang terakhir kali masuk akan keluar terlebih dahulu. hal ini terbalik dengan algoritma queue yang menerapkan prinsip FIFO(First In First Out).
algoritma ini sering digunakan dalam kehidupan sehari hari contoh, berikut beberapa contoh kasusnya:
- Tumpukan buku pada perpustakaan
- Tumpukan baju
- Tumpukan kripik kentang pada bungkus pringles
- Tumpukan piring
- dll
Baca juga : Contoh algoritma sequential search pada bahasa C++
Penjelasan Algoritma Stack
sebelum kita mulai koding, ada baiknya kita memahami bagaimana Algoritma Stack dapat bekerja.

ada 2 operasi dasar yang harus ada dalam algoritma stack yaitu
- Push() – Memasukan data
- Pop() – menghapus data
pada gambar diatas terlihat illustrasi cara kerja algoritma stack, dimana ketika awal pembuatan list, list tersebut tidak memiliki nilai, namun ketika kita melakukan perintah push maka data baru akan ditambahkan diujung list tersebut.
dan ketika kita menjalankan perintah pop maka data terakhir dari sebuah list akan dihapus.

push bekerja dengan cara mencari nilai top atau nilai ujung dari suatu list dan menambahkan data baru di depan data top tersebut.
pop pun sama, ia bekerja dengan cara mencari nilai top atau nilai ujung dari suatu list dan menghapus data tersebut
untuk mencari nilai top kita hanya perlu melakukan looping hingga ditemukan data bernilai null pada sebuah list.
baca juga : Contoh algoritma bubble sort pada bahasa c++
Implementasi Algoritma Stack pada Bahasa C++
kali ini MID Teknologi akan mencontohkan 2 kasus stack yaitu stack menggunakan array dan stackk menggunakan liked list.
Contoh algoritma Stack menggunakan Array
penjelasan
Line 5-9 : disini kita membuat struct untuk menampung data yang akan dimasukan oleh user, ada 2 data di dalam struct tersebut, yaitu s[] sebagai penyimpanan data dan top sebagai parameter pencarian data teratas.
Line 10-19 : disini adalah algoritma untuk proses push dimana kita memerlukan parameter data yang merupakan data yang ingin dimasukan ke dalam stack. pertama tama kita akan mengecek apakah stack sudah penuh, jika belum maka kita akan menambahkan data tersebut array s di index ke top+1
Line 20-28 : disini adalah algoritma untuk proses pop dimana jika top bukan sama dengan -1 (stack kosong) maka kita akan melakukan operasi matematika top -1. kita tidak perlu menghapus isi data di dalam array karena data tersebut bisa langsung ditimpa dengan data baru.
Line 30-39 : ini adalah fungsi untuk menampilkan data, pertama kita akan mengecek apakah top bukan sama dengan -1(stack kosong) jika iya maka kita akan melakukan print data dari array index ke 0 hingga array index ke top (batas atas stack)
Line 40-51 : ini adalah fungsi main dimana kita hanya perlu mendeklarasikan top = -1 kemudian memanggil fungsi top untuk menambahkan data dan pop untuk mengurangi data, jika sudah maka kita bisa menampilkan stack tersebut dengan fungsi show
note: kenapa top awal di definisikan sebagai -1? karena array dimulai dari index ke 0, jadi untuk mendefinisikan bahwa data kosong harus dimulai dari 0-1 alias -1
Hasil
bagaimana, mudah bukan implementasi stack menggunakan array? sekarang kita lanjut ke level berikutnya dimana kita bisa memiliki list tak terhingga menggunakan linked list.
Contoh Algoritma Stack Menggunakan Linked List
sebelum masuk ke dalam implementasi menggunakan linked list saya sarankan agar kamu memahami terlebih dahulu cara kerja dari algoritma linked list.
Penjelasan
Line 3-6 : pertama kita akan membuat struct sebagai linked list yang akan digunakan, struct ini berisi variable x sebagai data dan pointer next yang akan digunakan untuk menunjuk list berikutnya
Line 8-17 : disini kita membuat class Linked yang berisi variable private head yang berisi linked list dan top yang akan digunakan sebagai penunjuk data terakhir serta berisi beberapa function public yaitu push,pop dan show
Line 19-22 : disini kita membuat konstruktor untuk class Linked dimana ketika class Linked dipanggil maka secara otomatis akan menset head menjadi null dan top menjadi -1.
Line 23-49 : disini kita membuat fungsi push dimana kita memerlukan parameter data yang akan dimasukan ke dalam stack jika top = -1 maka kita hanya perlu memasukan parameter tersebut ke dalam head->x dan menset head->next menjadi null dengan bantuan variable bantu
namun jika top != -1 maka kita akan melakukan looping head hingga ditemukan head->next == null kemudian kita akan memasukan data diujung list tersebut dengan bantuan variable baru. jangan lupa untuk menambahkan data top (top +1)
Line 50-57 : disini kita membuat fungsi pop dimana pertama kita akan mengecek apakah top !=-1 jika iya maka kita hanya perlu melakukan operasi matematika top-1.
Line 59-67 : disini kita membuat fungsi show, dimana kita hanya perlu melakukan looping dan menampilkan data di dalam list sebanyak variable top.
Line 68-77 : ini adalah fungsi main dimana kita hanya perlu mendeclare class dan menjalankan fungsi push dan pop, jika dirasa cukup, kita bisa menampilkan datanya dengan fungsi show.
Hasil

Sekian tutorial yang dapat MID Teknologi sampaikan mengenai Contoh Program Algoritma Stack di C++ semoga bermanfaat.

Adinata is a tech expert and content creator experience more than 5 years on networking, coding and managed cloud vps server