Makalah ini membahas tentang stack, termasuk definisi, karakteristik, jenis, operasi dasar seperti push dan pop, serta representasi proses stack menggunakan array dan pointer. Stack merupakan struktur data yang menerapkan prinsip LIFO dan sering digunakan dalam aplikasi pengolahan data modern.
1. STACK
Disusun dan diajukan sebagai salah satu syarat melengkapi tugas mata kuliah
Struktur Data
Dosen Pengampu : Sundari Retno Andani
Disusun Oleh :
Kelompok 2
RIZAL EFENDI (2202116)
ISNI NADIKA RATI (2202100)
MUHAMMAD RAFLI
MAULANA
(2202106)
PROGRAM STUDI S1 SISTEM
INFORMASIAMIK STIKOM TUNAS
BANGSA PEMATANG SIANTAR
2023/2024
2. KATA PENGANTAR
Kami sebagai kelompok penulis dengan penuh rasa syukur dapat menyajikan
makalah mengenai Struktur Data Stack. Dalam mata kuliah Struktur Data, Stack
merupakan salah satu topik yang penting untuk dipelajari. Stack sendiri merupakan
struktur data yang digunakan untuk menyimpan data dalam suatu urutan yang
spesifik, yaitu Last In First Out (LIFO).
Makalah ini bertujuan untuk memberikan pemahaman yang lebih dalam mengenai
konsep Stack, mulai dari definisi, hingga operasi-operasi dasar pada stack.
Kami berharap makalah ini dapat menjadi sumber referensi yang bermanfaat bagi
pembaca dalam memahami konsep Stack secara lebih komprehensif. Kami juga
ingin mengucapkan terima kasih kepada dosen pengampu mata kuliah Struktur Data
yang telah memberikan kesempatan kepada kami untuk mempelajari konsep Stack
dan membuat makalah ini.
Semoga makalah ini dapat memberikan manfaat dan inspirasi bagi pembaca. Terima
kasih atas perhatian dan dukungannya.
Salam hangat,
Kelompok 2.
3. DAFTAR ISI
KATA PENGANTAR..................................................................................................................1
DAFTAR ISI ................................................................................................................................3
I. Pendahuluan ..........................................................................................................................4
A. Latar Belakang...............................................................................................................4
A. Tujuan ............................................................................................................................4
B. Ruang Lingkup...............................................................................................................4
II. Pengertian Stack ................................................................................................................5
A. Definisi Stack.................................................................................................................5
B. Karakteristik Stack.........................................................................................................5
C. Jenis-jenis Stack.............................................................................................................5
III. Operasi Dasar Pada Stack..................................................................................................6
A. Create.............................................................................................................................6
B. IsEmpty..........................................................................................................................6
C. IsFull ..............................................................................................................................6
D. Push................................................................................................................................7
E. Pop .................................................................................................................................7
F. Clear...................................................................................................................................7
G. Retrieve..........................................................................................................................8
IV. Pointer Sebagai Penunjuk Stack........................................................................................9
A. Membuat Stack Dengan Pointer ....................................................................................9
B. Proses Push ....................................................................................................................9
C. Proses Pop....................................................................................................................10
V. Representasi Proses Stack ...............................................................................................10
VI. Kesimpulan......................................................................................................................12
A. Ringkasan.....................................................................................................................12
B. Saran ............................................................................................................................12
4. I. Pendahuluan
A. Latar Belakang
Pada zaman sekarang, penggunaan komputer semakin meningkat dan membutuhkan
pengolahan data yang efisien dan efektif. Salah satu struktur data yang umum
digunakan dalam pengolahan data adalah stack. Stack merupakan struktur data yang
sederhana namun sering digunakan dalam aplikasi pengolahan data modern.
A. Tujuan
Makalah ini bertujuan untuk memberikan pemahaman yang jelas mengenai
pengertian stack dan operasi-operasi yang dapat dilakukan pada stack.
B. Ruang Lingkup
Makalah ini akan membahas pengertian stack, karakteristik, struktur stack, operasi-
operasi pada stack, dan contoh kasus penggunaan stack.
5. II. Pengertian Stack
A. Definisi Stack
Stack merupakan sebuah kumpulan data yang diletakkan di atas data lainya, seperti
sebuah tumpukan. Dengan demikian, stack merupakan salah satu struktur data yang
menerapkan prinsip LIFO (Last In First Out). Dimana elemen yang terakhir
disimpan dalam stack, menjadi elemen yang pertama diambil. Untuk meletakkan
sebuah elemen pada bagian atas dari stack, maka dilakukan operasi push. Sedangkan
untuk memindahkan sebuah elemen dari tempat atas tersebut dalam sebuah stack,
maka dilakukan operasi pop.
B. Karakteristik Stack
Stack memiliki beberapa karakteristik, seperti LIFO (Last In First Out), push dan
pop, serta top dan bottom.
C. Jenis-jenis Stack
Terdapat beberapa jenis stack, seperti stack statis, stack dinamis, dan stack
implementasi array atau linked list.
6. struct STACK {
int top;
float data[5];
};
float dta;
struct STACK stackbaru;
bool isempty() {
if (stackbaru.top==-1) return true;
else return false;
}
bool isfull() {
if (stackbaru.top==maxstack) return
true;
else return false;
}
III. Operasi Dasar Pada Stack
A. Create
Merupakan operator yang berfungsi untuk membuat sebuah stack kosong.
B. IsEmpty
Merupakan operator yang berfungsi untuk menentukan apakah suatu stack
merupakan stack kosong. Tanda bahwa sebuah stack kosong adalah Top bernilai
kurang dari nol (-1).
C. IsFull
Merupakan operator yang digunakan untuk memeriksa apakah stack yang ada sudah
penuh. Stack akan penuh jika puncak stack terletak tepat dibawah jumlah
7. void push(float dta) {
if (isfull()==false) {
puts("stack penuh");
} else {
stackbaru.top++;
stackbaru.data[top]=dta;
}
}
void pop() {
if (isempty()==false) {
cout<<"data kosong";
} else {
cout<<"data yang terambil :
"<<stackbaru.data[top]<<endl;
stackbaru.top--;
}
}
maksimum yang dapat ditampung stack (Top = MAX_STACK-1).
D. Push
Merupakan operator yang berfungsi untuk menambahkan satu elemen ke dalam
stack dan tidak dapat dilakukan jika stack dalam keadaan penuh.
E. Pop
Merupakan operator yang berfungsi untuk mengeluarkan satu elemen teratas dari
dalam stack dengan syarat stack tidak dalam kondisi kosong.
F. Clear
Fungsi yang digunakan untuk mengosongkan stack dengan cara mengeset Top
dengan -
Jika Top bernilai kurang dari nol maka stack dianggap kosong.
8. void clear () {
top=-1
}
void print() {
for (int i=0; i<=top; i++) {
cout<<stackbaru.data[i]<<"
";
}
}
G. Retrieve
fungsi yang digunakan untuk melihat nilai yang berada pada posisi tumpukan
teratas.
9. int S[10], *Top, *BatasAtas
Top = &S[-1];
BatasAtas = &S[10];
if (Top < BatasAtas)
Top++;
*Top = X;
else
printf(“Stack Penuh”);
IV. Pointer Sebagai Penunjuk Stack
Selain menggunakan indeks, untuk menunjuk sebuah Top atau posisi teratas dari
stack, dapat juga digunakan pointer sebagai berikut.
A. Membuat Stack Dengan Pointer
B. Proses Push
10. if (Top > &A[-1])
X= *Top;
Top --;
else
printf(“Stack Kosong”);
C. Proses Pop
V. Representasi Proses Stack
Stack adalah salah satu dari contoh struktur data yang terdiri dari satu collection,
yang juga menerapkan prinsip LIFO. Bila stack tersebut menggunakan array satu
dimensi, maka stack tersebut dapat diilustrasikan sebagai berikut :
Ilustrasi sebuah stack 1 Dimensi menggunakan indeks array
Pada gambar diatas diilustrasikan ada sebuah indeks array yang masih kosong pada
awal pembuatan stcak dimana n[10], variabel Top berada pada -1 yang
menunjukkan indeks masih dalam keadaan kosong.
11. Ilustrasi Stack ketika sudah diisi data
Pada gambar adalah keadaan ketika stack sudah diisi data. Pada kondisi ini data
pertama yang diinputkan adalah S[0]=11, data kedua S[1]=7, data ketiga S[2]=15,
data keempat S[23]=23. Kondisi Top sudah berubah menjadi data yang terakhir
diinputkan (data keempat) sehingga Top[3] X=23.
Variabel Top digunakan sebagai indeks untuk menunjuk nomor elemen array yang
berisi nilai stack yang berada paling kanan atau Top, yang ditunjukan dengan angka
3. Variabel X bertipe integer digunakan sebagai perantara, dimana data yang akan
disimpan kedalam stack harus berasal dari X. Demikian juga data yang baru diambil
dari dalam stack harus diterima terlebih dahulu oleh variabel X, kemudian baru
diberikan ke variabel lain untuk diolah.
Oleh karena itu, jika ada instruksi PUSH, maka data baru (yang diambil dari isi
variabel X) akan disimpan dalam elemen S[4] sehingga indeks Top harus diarahkan
ke posisi no.4. Artinya, Top maju terlebih dahulu satu langkah ke S[4], kemudian
baru mengisi nilai pada S[4]. Sedangkan jika ada instruksi Pop, maka yang akan
diambil adalah isi dari S[3] dan datanya akan disimpan terlebih dahulu dalam
variabel X, kemudian indeks Top menjadi mundur satu langkah sehingga akan
menunjuk S[2].
12. VI. Kesimpulan
A. Ringkasan
Stack merupakan struktur data yang sederhana namun sering digunakan dalam
aplikasi pengolahan data modern. Stack memiliki beberapa karakteristik, seperti
LIFO (Last In First Out), push dan pop. Stack dapat diimplementasikan
menggunakan array. Operasi-operasi pada stack meliputi Create, IsEmpty, IsFull,
Push, Pop, Clear, Retrive.
B. Saran
Penggunaan stack dapat mempercepat proses pengolahan data, namun penggunaan
yang kurang tepat dapat menimbulkan kesalahan. Oleh karena itu, disarankan untuk
mempelajari lebih lanjut tentang stack dan memahami implementasi dan operasi-
operasinya sebelum menggunakannya dalam aplikasi pengolahan data.