STACK C++
A. Pengertain
Stack
Stack
adalah sebuah kumpulan data dimana data yang diletakkan di atas data yang lain. Dengan demikian stack adalah
struktur data yang menggunakan konsep LIFO(Last In First Out). Dengan demikian,
elemen terakhir yang disimpan dalam stack menjadi elemen pertama yang diambil.
Dalam proses komputasi, untuk meletakkan sebuah elemen pada bagian atas dari
stack, maka dilakukan operasi push. Dan untuk memindahkan dari tempat yang atas
tersebut, maka dilakukan operasi pop.
Pada
gambar diatas, jika kita ingin mengambil sesuatu dari tumpukan maka kita harus
mengambilnya dari tumpukan yang paling atas dahulu. Misalkan jika kita
mengambil yang A terlebih dahulu maka yang B akan jatuh. Dalam program
c++ ada 2 cara penerapan prinsip stack ini yakni dengan array dan linked list .
operasi-operasi dalam stack :
1. Push (Menambahkan data kedalam stack)
Langkah - langkah operasi push
diantaranya.
1.1
Memeriksa
apakah tumpukan(stack) penuh
1.2 Proses penambahan data ke dalam
stack disebut operasi Push.
1.3
Jika
tumpukan penuh, maka sudah tidak ada ruang untuk memasukkan data ke tumpukan,
jadi cukup tampilkan pesan bahwa tumpukan sudah penuh.
1.4
Jika
masih ada ruang, tambahkan satu nilai pada atas(top) tumpukan untuk menunjukkan
ke ruang kosong selanjutnya
1.5
Menambahkan
data dimana ruang kosong yang telah ditunjuk oleh top.
2.
Pop (Mengambil data
bersamaan dengan menghapus data dari stack)
Elemen
pada stack tidak benar - benar terhapus hanya saja penunjuk ruang(top) di
kurangi nilainya dengan satu. Tapi pada implementasi stack sendiri pop akan
benar-benar menghapus data tersebut dari tumpukan.
Langkah -
langkah operasi pop diantaranya.
2.1
Memeriksa
apakah tumpukan kosong.
2.2
Jika
tumpukan kosong, maka sudah tidak ada lagi data untuk dihapus, maka cukup
tampilkan pesan bahwa tumpukan kosong.
2.3
Jika
masih ada data pada tumpukan, maka akses data yang paling atas (top)
2.4
kemudian
mengurangi nilai penunjuk top.
3.
Clear : untuk
mengosongkan stack
4.
IsEmpty : fungsi yang
digunakan untuk mengecek apakah stack sudah kosong
5.
IsFull : fungsi yang
digunakan untuk mengecek apakah stack sudah penuh
B. Stack Dengan Array of Struct
1. Definisikan
Stack dengan menggunakan suatu struct
2. Definisikan
konstanta MAX_STACK untuk menyimpan maksimum isi stack
3. Elemen
struct Stack adalah array data dan top untuk menadakan posisi data teratas
4. Buatlah
variabel tumpuk sebagai implementasi dari struct Stack
5. Deklarasikan
operasi-operasi/function di atas dan buat implemetasinya.
C. Kode Program Stack
1. Preprocessor dan Headerfile
Disini
kita hanya menggunakan dua baris preprocessor untuk mendefinisikan header file
iostream untuk standard input/output stream dan MAX untuk maksimum data array
pada stack/tumpukan.
2.
Struct data
Pada struct kita mendeklarasikan top
untuk menunjukkan data teratas pada tumpukan dan array data[] dengan jumlah
array dari data maksimum yang telah di definisikan sebelumnya yaitu MAX.
3.
Inisialisasi Nilai top
Untuk memastikan penunjuk (top)
berada pada posisi indeks ke 0 pada saat menambahkan data ke tumpukan maka
disini kita perlu memberikan nilai awal yaitu -1.
4.
Memeriksa Tumpukan
Kedua fungsi ini akan digunakan
untuk memeriksa apakah tumpukan penuh isFull() (fungsi pertama) dan tumpukan
kosong isEmpty(), keduanya mengembalikan nilai boolean, jadi kita cukup
mengembalikan nilai perbandingan pada fungsi masing - masing.
1. Pada fungsi isEmpty() akan
mengembalikan nilai true jika nilai Tumpukan.top sama dengan -1, atau false
jika tidak sama.
2. Pada fungsi isFull() akan
mengembalikan nilai true jika nilai Tumpukan.top sama dengan maksimum data
array yang telah ditentukan dikurang satu MAX-1, atau false jika tidak sama.
5.
Menambahkan Data ke Tumpukan
Untuk menginputkan data ke tumpukan hal utama yang perlu
kita lakukan adalah memeriksa apakah tumpukan penuh atau tidak, jika penuh,
maka kita tidak dapat menambahkan data ke tumpukan karena sudah tidak ada ruang
lagi yang tersedia. Jadi cukup tampilkan pesan bahwa Tumpukannya penuh.
Jika masih ada ruang maka tambahkan
nilai Tumpukan.top dengan 1. Kemudian masukkan data ke ruang yang ditunjukkan
oleh top.
6.
Mengambil Data dari Tumpukan
Sebelum mengambil data, kita perlu memeriksa apakah tumpukan
kosong atau tidak, karena kita tidak dapat mengambil data yang tidak ada pada
tumpukan.
Jika tumpukan kosong maka cukup
tampilkan pesan bahwa tidak ada data di tumpukan tersebut.
Jika masih ada data pada tumpukan
maka Tampilkan data dengan mengambil data teratas dari tumpukkan dan menghapus
data tersebut dengan mengurangi nilai top.
7.
Menampilkan data pada tumpukan
Sama halnya pada saat mengambil data
dari tumpukan, kita juga perlu memeriksa apakah tumpukan tersebut kosong atau
tidak.
Jika tidak ada data di tumpukan maka
tampilkan pesan bahwa Tumpukan kosong dan data tidak dapat di tampilkan.
Jika masih ada data maka tampilkan
data satu -persatu dari tumpukan dengan menggunakan perulangan.
8.
Menampilkan Menu
Setelah semua data, variabel dan
fungsi selesai kita deklarasikan dan di inisialisasikan, selanjutnya kita bisa
membuat menu dengan do ... while dengan switch di dalamnya.
Sebelum menampilkan menu disini kita
menampilkan data yang ada di stack menggunakan printStack(), sehingga user
dapat melihat data pada tumpukan.
Selanjunya menampilkan pilihan menu,
jika user memilih pilihan pertama maka jalankan fungsi push() dan pilihan kedua
akan menjalankan fungsi pop(). Selama pilihan user tidak sama dengan 3 yaitu
pilihan ketiga maka fungsi printStack() dan menu akan terus ditampilkan. Jika
user memilih pilihan ketiga, maka while akan berhenti menampilkan menu dan
aplikasi akan ditutup.
DAFTAR PUSTAKA
Ridho Ramadhan
1801301095
TERIMAKASIH!
Kunjungi blog
kita yang lain gaessssss!!!!!
Tidak ada komentar:
Posting Komentar