Contoh Program Algoritma Stack di C++ Beserta Penjelasan

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.

Contoh Program Algoritma Stack di C++ Beserta Penjelasan

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.

Pengertian dan penjelasan Algoritma Stack

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

Implementasi Algoritma Stack pada Bahasa C++

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

Contoh Algoritma Stack Menggunakan Linked List

Sekian tutorial yang dapat MID Teknologi sampaikan mengenai Contoh Program Algoritma Stack di C++ Beserta Penjelasan kamu juga bisa melihat tutorial lain seputar c++ disini Tutorial c++, semoga bermanfaat.

Some of the links in this article may be affiliate links, which can provide compensation to us at no cost to you if you decide to purchase a paid plan. These are products we’ve personally used and stand behind. This site is not intended to provide financial advice.

Leave a Comment


Cari Provider Internet Terbaik?
Pakai Indihome
Diskon 70%
Daftar Indihome