Daftar Isi :

  1. Mengenal Konsep Stack dalam Struktur Data Beserta Ilustrasi Dan Contoh Pemrogramannya
  2. Contoh Konsep Stack dalam Kehidupan Nyata
  3. Konsep Stack dalam Struktur Data
  4. Ilustrasi Proses Stack Dalam Objek Nyata
  5. Proses Konsep Stack pada Struktur Data
  6. Ilustrasi Inisialisasi Stack pada Struktur Data
  7. Ilustrasi Fungsi isFull dalam Proses Konsep Stack
  8. Ilustrasi FungsiPush pada Proses Konsep Stack
  9. Ilustrasi FungsiPop pada Proses Konsep Stack
  10. Contoh Single Stack Menggunakan Array
  11. Tabel Kondisi pada Proses Tahap Inisialisasi Konsep Stack
  12. Algoritma PUSH pada Pemrograman CPP
  13. Algoritma POP pada Pemrograman CPP
  14. Full Source Code Konsep Single Stack pada Pemrograman CPP

Dalam Struktur Data Kita Mengenal Konsep Stack. Apa Itu Stack? Stack artinya tumpukan.. jadi dalam Struktur data diartikan sebagai kumpulan data yang seolah – olah diletakkan di atas data lainnya. Maka Stack adalah suatu urutan elemen yang elemennya dapat diambil dan ditambah hanya pada posisi akhir ( top ) saja.
 Jadi Konsep Stack menggunakan Metode LIFO ( Last In First Out ). Jika Diilustrasikan dalam Kehidupan nyata sehari – hari seperti tumpukan piring sebuah restoran yang tumpukannya dapat ditambah pada bagian paling atas dan jika kita ingin mengambilnya pun tentu dari bagian paling atas pula. Selain itu adapun Contoh – Contoh lain seperti gambar berikut :

Kalau dalam Struktur Data Ilustrasi Stack Seperti Berikut :

Dan berikut Ilustrasi Proses Stack pada sebuah Element :

Dari Ilustrasi tersebut jika kita ingin Operasikan Konsep Stack tentu ada hal yang perlu disiapkan berikut Operasi pada Stack yang perlu anda ketahui :

IsFull
Mengecek apakah STACK sudah penuh

IsEmpty
Mengecek apakah STACK sudah kosong

Push
Menambahkan data pada STACK pada tumpukan paling atas

Pop
mengambil data pada STACK pada tumpukan paling atas

Print
mencetak semua data dalam tumpukan

Semua Operasi Stack Akan digunakan dalam Konsep Stack berikut gambaran Umum Penggunaan Operasi Stack :

Dalam Implementasi ke Bahasa Pemrograman Tentu Tahap Awalnya yaitu Inisialisasi Stack. Jadi Pada Mulanya Isi Top dengan nilai -1, Kenapa -1? Itu karena array dalam Bahasa C++ dimulai dari 0 yang berarti stack adalah Kosong. Kemudian pada Ilustrasi diatas ada istilah Top. 
Jadi Top itu adalah suatu variabel penanda dalam stack yang menunjukkan elemen yang paling teratas saat ini pada Stack. Dari Top itu akan selalu bergerak / bertambah hingga mencapai batas maksimum ( Max of Stack) yang menyebabkan Stack Penuh. Jadi Jika Dilistrasikan Inisialisasi Stack dalam Pemrograman C++ seperti berikut :

Setelah Memahami Inisialisasi Stack Selanjutnya adalah menyiapkan Fungsi IsFull. Untuk apa IsFull itu? Jadi Fungsi IsFull itu untuk memeriksa apakah stack sudah penuh.

Jadi dapat dilakukan dengan cara memeriksa Top Stack Saat Ini Jika Sudah sama dengan nilainya dengan Max_Stack -1 maka dinyatakan FULL, Jika Belum maka Stack Dapat Diisi. Berikut Ilustrasi fungsi IsFull :

Setelah Memahami fungsi IsFull dalam stack ada Fungsi Push. Fungsi Push ini untuk memasukkan elemen ke dalam Stack, dan akan selalu menjadi elemen teratas pada stack. Jadi Cara Kerjanya yaitu Nilai Top Of Stack Tambah Satu ( Increment ) Terlebih dahulu. 

Dan kemudia melakukan penambahan ke elemen stack. Tentu Push Ini akan berfungsi apabila Stack masih belum penuh. Jadi Proses penambahan ke Element Stack berdasarkan Indek Top ofo Stack yang sudah di Increment ( ditambah Satu ) sebelumnya. Jika Diilustrasikan seperti gambar berikut :

Tentu Jika Sudah Memahami Fungsi Push dalam penambahan elemen ke Stack tentu Elemen Tersebut bisa diambil juga kan? Fungsi Pop lah yang berperan. 

Fungsi Pop adalah fungsi untuk mengambil elemen teratas dari Stack. Cara Kerja Fungsi Pop. Jadi Mengecek Nilai Top of Stack yang sekarang kemudian mengambil Elemen pada Index Top Of Stacknya.. Jika sudah Diambil kemudian Nilai Top of Stacknya akan dilakukan Decrement ( pengungana -1 ) sehingga jumlah elemen stack akan berkurang. Berikut Ilustrasi Tentang Fungsi Pop :

Demikianlah Penjelasan Konsep Stack dalam Strukur Data. Dari Penjelasan tersebut pada Stack ada Jenis- Jenisnya Juga. Dalam Stack ada 2 Jenis yaitu :

1.      Single Stack
2.      Double Stack

Dimulai dari Single Stack. Single Stack dapat direpresentasikan menggunakan Array 1 dimensi. Berikut Ilustrasi Terkait Single Stack :

Konsep Pada Single Stack yaitu Sama menggunakan Metode LIFO ( Last In First Out ). Jadi Proses pada Single Stack terdiri dari :

1. AWAL (Inisialisasi)
2. PUSH (Insert, Masuk, Simpan, Tulis)
3. POP (Delete, Keluar, Ambil, Baca/Hapus)

Jadi Pada Tahap Awal adalah Insiialisasi dan Juga menyediakan Fungsi Untuk Mengecek Kondisi Stack. Adapun Tabel Kondisi pada Stack sesuai penjelasan Konsep Stack Sebelumnya seperti berikut :

Setelah Tahap Awal Diselesaikan Proses Kedua adalah Tahap PUSH. Tahap PUSH ini dalam Single Stack dalam Pemrograman C++ ada Algoritmanya. Berikut Algoritma Push dalam Pemrograman C++:

Setelah Tahap PUSH Diselesaikan Proses Ketiga adalah Tahap POP. Tahap POP ini dalam Single Stack dalam Pemrograman C++ ada Algoritmanya. Berikut Algoritma POP dalam Pemrograman C++

Dan Berikut Full Source Code Konsep Single Stack dalam Pemrograman C++

Demikian Mengenai Pengenalan Konsep Stack dalam Struktur data Semoga bermanfaat

Referensi :

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