Anda di halaman 1dari 10

MODUL PRAKTIKUM

PERTEMUAN 4
IMPLEMENTASI STACK DI BAHASA C

STRUKTUR DATA DAN ALGORITMA

PENYUSUN

Tim Dosen Struktur Data dan Algoritma


Program Studi Sistem Informasi Program Sarjana
UPN VETERAN JAKARTA

2
Stack
Stack merupakan salah satu jenis struktur data berbentuk tumpukan yang memiliki sistem kerja LIFO
(last in first out), yang terakhir masuk adalah yang pertama keluar. Contohnya adalah jika kita
mempunyai tumpukan baju, agar tumpukan baju tidak ambruk, maka jika ingin mengambil selembar
baju dari tumpukan tersebut, kita harus mengambilnya satu persatu dari baju yang paling atas. Proses
memasukkan dan mengeluarkan data pada stack dilakukan pada satu “pintu” yang sama. Pehatikan
ilustrasi stack di bawah ini:

top

Sebuah stack hanya dapat ditambahkan dan dikurangi elemennya hanya dari satu sisi. Elemen paling
atas disebut top. Semua operasi dalam stack diawali dari elemen atas. Sebuah stack dapat
diimplementasikan dengan representasi statis dengan menggunakan array dan representasi dinamis
dengan menggunakan pointer. Elemen pada stack dapat diisi dengan data sesuai dengan kebutuhan.

Operasi pada Tumpukan (Stack)

1. Operasi Push
Operasi push yaitu suatu operasi yang bertujuan untuk menambahkan elemen baru pada sebuah
stack. Sebagai kondisi awal ada sebuah stack yang telah memiliki beberapa elemen dengan elemen
paling atas sebagai top.

3
top

Kemudian dibuat elemen baru yang akan dimasukan ke dalam stack.

Elemen baru
top

Elemen baru telah dimasukan ke dalam stack

top
Elemen baru

4
Kemusian penunjuk top dipindahkan ke elemen yang baru

top

Elemen baru

2. Operasi Pop
Operasi pop adalah suatu operasi untuk mengambil sebuah elemen dari sebuah stack. Aturan untuk
mengambil sebuah elemen dimulai dari kondisi awal sebuah stack yang telah memiliki beberapa
elemen dengan elemen paling atas sebagai top.

top

Penunjuk top diubah menjadi menunjuk elemen di bawah elemen top.

5
top

Kemudian elemen top diambil dari stack

Elemen
dikeluarkan
top

6
Stack Representasi Statis
Stack representasi statis diimplementasikan dengan menggunakan array. Sebuah array
memiliki tempat yang dialokasikan di awal. Sehingga elemen yang dimasukan terbatas pada
tempat yang ada pada array. Karena menggunakan array maka stack representasi statis ini
memungkinkan terjadinya kondisi stack penuh. Ilustrasi stack dengan representasi statis adalah
sebagai berikut:

6
top : 4

5
4
3
2
1
0

Tempat pada array tidak harus diisi semua seperti elemen diatas. Stack kosong ditandai
dengan diisi niali -1. Sedangkan queue yang terisi akan ditandai dengan diisi indeks dari elemen
dan datanya. Berikut merupakan implementasi Stack di Bahasa C.

1. Mendeklarasikan Struktur data nilai mata kuliah yang menjadi elemen stack

1
2. Mendeklarasikan stack menggunakan array
3. Mendeklarasikan prosedur createEmpty yang membuat sebuah stack kosong

4. Mendeklarasikan fungsi isEmpty yang mengembalikan nilai true jika stack kosong

5. Mendeklarasikan fungsi isFull yang mengembalikan nilai true jika stack penuh

6. Mendeklarasikan prosedur push yang memasukan elemen ke dalam stack

2
7. Mendeklarasikan prosedur pop yang mengeluarkan elemen keluar stack

8. Mendeklarasikan prosedur printStack yang menampilkan isi stack ke layer

3
9. Mendeklarasikan algoritma program utama yang menggunakan operasi stack.

4
TUGAS 1

Buatlah program dengan menggunakan struktur data stack untuk membalik kalimat dan
menentukan sebuah kalimat termasuk palindrom atau bukan. Palindrom adalah sebuah kata,
frasa, angka maupun susunan lainnya yang dapat dibaca dengan sama baik dari depan maupun
belakang (spasi antara huruf-huruf biasanya diperbolehkan), Contoh :

Masukkan kalimat : algoritma dan struktur data

Hasil = atad rutkurts nad amtirogla

Bukan palindrom

Masukkan kalimat : kasur rusak

Hasil = kasur rusak

Palindrom

REFERENSI
Goodrich, M. T., Tamassia, R., & Mount, D. M. (2011). Data structures and algorithms in C++.
John Wiley & Sons.

Sukamto, Rosa Ariani. (2016). Modul Pembelajaran Struktur Data menggunakan Bahasa C, C+
+, dan Java. Bandung: Modula.

https://www.tutorialspoint.com/data_structures_algorithms/dsa_queue.htm

Anda mungkin juga menyukai