Double Stack Merupakan Lanjutan dari Pemahaman Stack. Pada Double Stack Sering disebut Juga Stack Ganda. Jadi Double Stack adalah sebagai kumpulan data yang seolah — olah diletakkan di atas data lainnya secara ganda. Jika diilustrasikan seperti gambar berikut :

Dari Ilustrasi diatas dapat diperhatikan pada Double Stack Menggunakan 2 TOP yang berbeda dengan Single Stack hanya menggunakan 1 TOP. Konsep Double Stack masih sama menggunakan Prinsip Proses LIFO ( Last In First Out ) Baik pada Stack 1 maupun Stack 2 Namun Ada Tambahan Dalam Proses Double Stack. Proses Pada Double Stack seperti berikut :

AWAL (Inisialisasi)

PUSH1 (Push untuk Stack1)

POP1 (Pop untuk Stack1)

PUSH2 (Push untuk Stack2)

POP2 (Pop untuk Stack2)

Dalam Proses Tersebut maka Secara Kondisi juga berbeda dengan Single Stack. Kondisi Double Stack ada penambahan. Dan berikut Penambahakan Kondisi pada Double Stack seperti tabel Berikut :

Dengan adanya Proses AWAL ( Inisalisasi ), tahap selanjutnya adalah proses PUSH1. Pada Tahap PUSH1 ini merupakan Tahap untuk melakukan Pengisian Data pada Stack 1. Adapun Algoritma Untuk proses PUSH 1 seperti berikut :

Dari Algoritma PUSH1 bisa dipahami bahwa algoritma PUSH1 ini melakukan Pengecekan berdasarkan Kondisi Stack 1 apabila Tidak Penuh maka baru akan dapat diisi data. Tentu dalam Input Data pasti ada Output Data / Pengambilan Data yang disebut Proses POP.

Pada tahap POP 1 ini merupakan Proses untuk melakukan pengambilan Data pada Stack 1. Adapun Algoritma untuk POP 1 seperti berikut :

Pada Algoritma POP1 bisa dipahami Algoritma tersebut mengecek Data pada Stack1 apabila ada Data pada stack1 maka barulah Data bisa diambil apabila tidak ada data maka secara otomatis menampilkan output Stack Kosong.

Perbedaan Antara Single Stack dengan Double Stack yaitu jumlahnya. Jadi jika menggunakan Single Stack maka untuk Prosesnya hanya 3 tahapan yaitu : Inisialisasi Awal, PUSH dan POP sedangkan yang dibahas ini adalah Double STACK yang menggunakan 2 Stack maka Otomatis ada 2 algoritma PUSH dan POP.

Jadi setelah melakukan Tahapan PUSH1 dan POP1 maka Selanjutnya adalah PUSH2 dan POP2. Secara Algoritma Hampir sama dengan PUSH1 dan POP1 tetapi bisa dilihat perbedaannya terkait pada proses UPDATE nilai TOPnya. Seperti gambar berikut :

Pada Double Stack ini sudah dijelaskan Proses — Proses dan Perbedaan dengan Single Stack. Jika Diimplementasikan dalam Bahasa Pemrograman C++ dapat dibuat dengan salah satu contoh Source Code seperti berikut :

Demikian Mengenai Pengenalan Konsep Stack dalam Struktur data Semoga bermanfaat

Referensi :

  • Antony Pranata, Pemrograman Borland C++, Andi Offset, Yogyakarta
  • Moh. Sjukani, Algoritma dan Struktur data dengan C, C++, dan Java, Mitra Wacana Media , 2005
  • Walter Savitch , Problem Solving With C++: The Object of Programming, forth edition, Addison Wesley
  • Lamhot Sitorus & David J.M. Sembiring, Konsep dan Implementasi Struktur Data dengan C++, Andi Offset, Yogyakarta
  • Online Reading, www://cplusplus.com

https://daismabali.com/artikel_detail/65/1/Mengenal-Lebih-Dalam-Tentang-Stack-di-Struktur-Data-yaitu-Double-Stack.html

--

--

Daisma Bali
Daisma Bali

Written by Daisma Bali

Daisma Bali (daismabali.com) adalah media digital yang ditujukan untuk para melenial dan orang-orang yang mengejar ilmu pengetahuan

No responses yet