SlideShare a Scribd company logo
1 of 12
Download to read offline
Stack / Tumpukan
Akmal, S.Si, MT
Mata Kuliah : Struktur Data
Tujuan
 Mahasiswa dapat : menganalisis
tumpukan dan menyajikannya dengan
operasi push dan pop baik dengan array
maupun dengan list berkait dengan benar
Pokok Bahasan
 Pengertian Tumpukan
 Penyajian tumpukan dengan Array dan List
 Operasi Push dan Pop
 Pemakaian Tumpukan
Pengertian Stack
 Tumpukan / Stack adalah satu set atau urutan elemen data
dimana manipulasi data dari elemen-elemen hanya diperbolehkan
pada tumpukan teratas dari tumpukan tersebut. Hal ini
merupakan perintah pengumpulan data secara linier yang disebut
“Last In, First Out” (LIFO).
 Stack berguna untuk bermacam-macam aplikasi seperti pattern
recognition dan pengkonversian antar notasi infix, postfix dan
prefix.
 Dua operasi yang dihubungkan dengan stack adalah operasi push
dan pop. Push berarti memasukkan data ke dalam stacks yang
paling atas sedangkan pop untuk mengambil data atas tumpukan.
Sementara top digunakan sebagai penunjuk/pointer yang selalu
menunjuk elemen paling atas.
Ilustrasi Stack
 Untuk memahami bagaimana cara kerja stack, pikirkan bagaimana menambah atau
memindahkan sebuah piring dari tumpukan piring. Pikiran kita akan memberitahu
untuk menambah atau memindahkan data hanya pada stack yang paling atas karena
jika menggunakan cara lain, dapat menyebabkan tumpukan stack akan terjatuh
TOP
B
C
D
E
F
G
PUSH POP
0
1
2
3
4
5
6
A
Penyajian Tumpukan Menggunakan Array
 Disajikan tumpukan sebagai record dengan atributnya yaitu atribut pertama untuk
menyimpan elemen tumpukan dan atribut yang kedua suatu nilai integer untuk
mencatat posisi ujung (TOP) tumpukan.
 Fungsi yang perlu dibuat terlebih dahulu adalah fungsi create Stack yaitu
membuat sebuah stack kosong dengan ciri posisi TOP adalah -1:
const int maxElemen = 255;
struct Stack {
int isi[maxElemen];
int TOP;
}
Stack S;
void createStack (Stack& S){
S.TOP = -1;
}
PUSH
Operasi Push adalah fungsi untuk menambahkan elemen ke dalam stack.
Ada 2 kasus yang perlu ditangani yaitu :
1. Stack sudah penuh dengan ciri nilai TOP = maxElemen-1, maka tidak ada
penambahan elemen
2. Stack belum penuh, maka langkah yang dilakukan adalah :
* Menaikkan posisi TOP ke atas (TOP++)
* Menyisipkankan elemen baru ke posisi TOP yang baru tsb
void push(Stack& S, char elemenBaru) {
if (S.TOP == maxElemen-1){
cout<<"Tumpukan sudah penuh “<<endl;
}
else{
S.TOP=S.TOP + 1;
S.isi[S.TOP] = elemenBaru;
}
}
POP
 Operasi Pop adalah fungsi untuk menghapus elemen yang terletak pada posisi paling
atas dari tumpukan.
Ada 2 kasus yang harus ditangani yaitu :
1. Kasus Stack sudah kosong, dengan ciri nilai TOP sama dengan -1 ( TOP < 0), maka
tidak ada penghapusan
2. Stack masih ada isi , maka langkah yang dilakukan adalah :
* Mengamankan elemen pada posisi TOP tsb
* Menurunkan posisi TOP ke bawah (TOP --)
void pop(Stack& S, char& elemenHsl){
if (S.TOP < 0) {
cout<<"Tumpukan sudah kosong "<<endl;
}
else {
elemenHsl= S.isi[S.TOP];
S.TOP=S.TOP - 1;
}
}
Penyajian Tumpukan Menggunakan List Berkait
 Dengan menggunakan List Berkait, maka karakteristik operasi PUSH
adalah Operasi Insert First dan Operasi POP adalah Operasi dari Delete
First;
D
C
B
A
TOP
C B A
TOP
D
PUSH POP
PUSH (Insert First)
POP (Delete First)
PUSH
Seperti Insert First pada Singly Linked List maka ada 2 kasus yang perlu
ditangani yaitu
 kasus stack kosong
 kasus stack ada isi
void push(Stack& Top, pointer pBaru){
cout<<"Push Stack "<<endl;
if (Top==NULL) // Stack kosong
Top=pBaru;
else { // Stack ada isi
pBaru->next=Top;
Top=pBaru;
}
}
POP
 Seperti Delete First pada Singly Linked List, maka ada 3 kasus yang perlu ditangani
yaitu :
 Kasus stack kosong
 Kasus Stack dengan isi 1 elemen
 Kasus Stack dengan isi lebih dari 1 elemen
void Pop(Stack& Top, pointer& pHapus){
cout<<"Pop Stack "<<endl;
if (Top==NULL){
cout<<"Stack kosong "<<endl;
pHapus=NULL;
}
else if (Top->next==NULL){
pHapus=Top;
Top=NULL;
}
else {
pHapus=Top;
Top=Top->next;
pHapus->next=NULL;
}
}
Latihan dan Tugas
 Buatlah program untuk membalikkan
kalimat dengan menggunakan operasi
PUSH dan POP suatu Tumpukan.
a. Gunakan Struktur Array
b. Gunakan Struktur List berkait

More Related Content

What's hot

What's hot (20)

Fungsi (function)
Fungsi (function)Fungsi (function)
Fungsi (function)
 
7. Queue (Struktur Data)
7. Queue (Struktur Data)7. Queue (Struktur Data)
7. Queue (Struktur Data)
 
Pertemuan 5 Stack atau Tumpukan
Pertemuan 5 Stack atau TumpukanPertemuan 5 Stack atau Tumpukan
Pertemuan 5 Stack atau Tumpukan
 
Algoritma brute force
Algoritma brute forceAlgoritma brute force
Algoritma brute force
 
Analisis Semantik - P 6 Teknik Kompilasi
Analisis Semantik - P 6 Teknik KompilasiAnalisis Semantik - P 6 Teknik Kompilasi
Analisis Semantik - P 6 Teknik Kompilasi
 
Intermediate code kode antara
Intermediate code   kode antaraIntermediate code   kode antara
Intermediate code kode antara
 
4 diagram relasi antar entitas (ERD)
4 diagram relasi antar entitas (ERD)4 diagram relasi antar entitas (ERD)
4 diagram relasi antar entitas (ERD)
 
Algoritma penjadwalan proses
Algoritma penjadwalan prosesAlgoritma penjadwalan proses
Algoritma penjadwalan proses
 
Structure and pointer
Structure and pointerStructure and pointer
Structure and pointer
 
Pengertian ERD
Pengertian ERDPengertian ERD
Pengertian ERD
 
Notasi Bahasa - P 5,6,7
Notasi Bahasa - P 5,6,7 Notasi Bahasa - P 5,6,7
Notasi Bahasa - P 5,6,7
 
Sistem input output
Sistem input outputSistem input output
Sistem input output
 
Linked List
Linked ListLinked List
Linked List
 
Queue
Queue Queue
Queue
 
Materi Struktur Data Stack
Materi Struktur Data StackMateri Struktur Data Stack
Materi Struktur Data Stack
 
4.2. Operasi Dasar Singly Linked List 2 (primitive list)
4.2. Operasi Dasar Singly Linked List  2 (primitive list)4.2. Operasi Dasar Singly Linked List  2 (primitive list)
4.2. Operasi Dasar Singly Linked List 2 (primitive list)
 
JAWABAN Struktur data soal-latihan-2
JAWABAN Struktur data soal-latihan-2JAWABAN Struktur data soal-latihan-2
JAWABAN Struktur data soal-latihan-2
 
circular linked list
circular linked listcircular linked list
circular linked list
 
Topik 8 Perulangan
Topik 8 PerulanganTopik 8 Perulangan
Topik 8 Perulangan
 
Pengantar Sistem Berkas (Lanjutan)
Pengantar Sistem Berkas (Lanjutan)Pengantar Sistem Berkas (Lanjutan)
Pengantar Sistem Berkas (Lanjutan)
 

Similar to 6. Stack (Struktur Data)

Similar to 6. Stack (Struktur Data) (20)

Algoritma dan Struktur Data - tumpukan
Algoritma dan Struktur Data - tumpukanAlgoritma dan Struktur Data - tumpukan
Algoritma dan Struktur Data - tumpukan
 
Algoritma dan Struktur Data - Stack
Algoritma dan Struktur Data - StackAlgoritma dan Struktur Data - Stack
Algoritma dan Struktur Data - Stack
 
Tistrukdat4
Tistrukdat4Tistrukdat4
Tistrukdat4
 
Chapter 4a stack
Chapter 4a   stackChapter 4a   stack
Chapter 4a stack
 
STACK .pdf
STACK .pdfSTACK .pdf
STACK .pdf
 
Stack & queue by stanly maarende
Stack & queue by stanly maarendeStack & queue by stanly maarende
Stack & queue by stanly maarende
 
Stack
StackStack
Stack
 
ppt_stack_kelompok_5_ppt.ppt
ppt_stack_kelompok_5_ppt.pptppt_stack_kelompok_5_ppt.ppt
ppt_stack_kelompok_5_ppt.ppt
 
ppt_stack_kelompok_5_ppt.ppt
ppt_stack_kelompok_5_ppt.pptppt_stack_kelompok_5_ppt.ppt
ppt_stack_kelompok_5_ppt.ppt
 
Pert 4 stack
Pert 4   stackPert 4   stack
Pert 4 stack
 
Pertemuan 5 revisijan2013-mhs
Pertemuan 5 revisijan2013-mhsPertemuan 5 revisijan2013-mhs
Pertemuan 5 revisijan2013-mhs
 
Bab viii stack
Bab viii   stackBab viii   stack
Bab viii stack
 
Stack_Queue.pdf
Stack_Queue.pdfStack_Queue.pdf
Stack_Queue.pdf
 
STACK.pptx
STACK.pptxSTACK.pptx
STACK.pptx
 
Makalah stack ramadhani
Makalah stack ramadhaniMakalah stack ramadhani
Makalah stack ramadhani
 
Stack tumpukan
Stack tumpukan Stack tumpukan
Stack tumpukan
 
3 stack2
3 stack23 stack2
3 stack2
 
Bab 4 stack_tumpukan_
Bab 4 stack_tumpukan_Bab 4 stack_tumpukan_
Bab 4 stack_tumpukan_
 
Presentasi lifo
Presentasi lifoPresentasi lifo
Presentasi lifo
 
Chapter 4 stack and queue
Chapter 4   stack and queueChapter 4   stack and queue
Chapter 4 stack and queue
 

More from Kelinci Coklat

More from Kelinci Coklat (20)

Bab 7 integrasi numerik
Bab 7 integrasi numerikBab 7 integrasi numerik
Bab 7 integrasi numerik
 
Bab 6 turunan numerik
Bab 6 turunan numerikBab 6 turunan numerik
Bab 6 turunan numerik
 
Bab 5 interpolasi newton lanjutan
Bab 5 interpolasi newton lanjutanBab 5 interpolasi newton lanjutan
Bab 5 interpolasi newton lanjutan
 
Bab 5 interpolasi
Bab 5 interpolasiBab 5 interpolasi
Bab 5 interpolasi
 
Bab 4 sistem persamaan linear
Bab 4 sistem persamaan linearBab 4 sistem persamaan linear
Bab 4 sistem persamaan linear
 
Bab 3 penyelesaian persamaan tak linear
Bab 3 penyelesaian persamaan tak linearBab 3 penyelesaian persamaan tak linear
Bab 3 penyelesaian persamaan tak linear
 
Bab 2 perhitungan galat
Bab 2  perhitungan galatBab 2  perhitungan galat
Bab 2 perhitungan galat
 
Bab 1 pendahuluan
Bab 1 pendahuluanBab 1 pendahuluan
Bab 1 pendahuluan
 
Bab 8 persamaan differensial-biasa
Bab 8 persamaan differensial-biasaBab 8 persamaan differensial-biasa
Bab 8 persamaan differensial-biasa
 
8. Multi List (Struktur Data)
8. Multi List (Struktur Data)8. Multi List (Struktur Data)
8. Multi List (Struktur Data)
 
3. Pointer dan List Berkait Singly
3. Pointer dan List Berkait Singly3. Pointer dan List Berkait Singly
3. Pointer dan List Berkait Singly
 
1. Algoritma, Struktur Data dan Pemrograman Terstruktur
1. Algoritma, Struktur Data dan Pemrograman Terstruktur1. Algoritma, Struktur Data dan Pemrograman Terstruktur
1. Algoritma, Struktur Data dan Pemrograman Terstruktur
 
2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)
 
Anuitas Biasa (Matematika Keuangan)
Anuitas Biasa (Matematika Keuangan)Anuitas Biasa (Matematika Keuangan)
Anuitas Biasa (Matematika Keuangan)
 
Bunga Majemuk (Matematika Keuangan)
Bunga Majemuk (Matematika Keuangan)Bunga Majemuk (Matematika Keuangan)
Bunga Majemuk (Matematika Keuangan)
 
Bunga Sederhana dan Tingkat Diskon (Matematika Keuangan)
Bunga Sederhana dan Tingkat Diskon (Matematika Keuangan)Bunga Sederhana dan Tingkat Diskon (Matematika Keuangan)
Bunga Sederhana dan Tingkat Diskon (Matematika Keuangan)
 
Anuitas Tumbuh dan Variabel (Matematika Keuangan)
Anuitas Tumbuh dan Variabel (Matematika Keuangan)Anuitas Tumbuh dan Variabel (Matematika Keuangan)
Anuitas Tumbuh dan Variabel (Matematika Keuangan)
 
Anuitas di Muka dan Ditunda (Matematika Keuangan)
Anuitas di Muka dan Ditunda (Matematika Keuangan)Anuitas di Muka dan Ditunda (Matematika Keuangan)
Anuitas di Muka dan Ditunda (Matematika Keuangan)
 
Amortisasi dan Penyusutan (Matematika Keuangan)
Amortisasi dan Penyusutan (Matematika Keuangan)Amortisasi dan Penyusutan (Matematika Keuangan)
Amortisasi dan Penyusutan (Matematika Keuangan)
 
Obligasi (Matematika Keuangan)
Obligasi (Matematika Keuangan)Obligasi (Matematika Keuangan)
Obligasi (Matematika Keuangan)
 

Recently uploaded

Laporan RHK PMM Observasi Target Perilaku.docx
Laporan RHK PMM Observasi Target Perilaku.docxLaporan RHK PMM Observasi Target Perilaku.docx
Laporan RHK PMM Observasi Target Perilaku.docx
Jajang Sulaeman
 
Kisi kisi Ujian sekolah mata pelajaran IPA 2024.docx
Kisi kisi Ujian sekolah mata pelajaran IPA 2024.docxKisi kisi Ujian sekolah mata pelajaran IPA 2024.docx
Kisi kisi Ujian sekolah mata pelajaran IPA 2024.docx
FitriaSarmida1
 
AKSI NYATA DISIPLIN POSITIF MEMBUAT KEYAKINAN KELAS_11zon.pptx
AKSI NYATA DISIPLIN POSITIF MEMBUAT KEYAKINAN KELAS_11zon.pptxAKSI NYATA DISIPLIN POSITIF MEMBUAT KEYAKINAN KELAS_11zon.pptx
AKSI NYATA DISIPLIN POSITIF MEMBUAT KEYAKINAN KELAS_11zon.pptx
cupulin
 
Asimilasi Masyarakat Cina Dengan Orang Melayu di Kelantan (Cina Peranakan Kel...
Asimilasi Masyarakat Cina Dengan Orang Melayu di Kelantan (Cina Peranakan Kel...Asimilasi Masyarakat Cina Dengan Orang Melayu di Kelantan (Cina Peranakan Kel...
Asimilasi Masyarakat Cina Dengan Orang Melayu di Kelantan (Cina Peranakan Kel...
luqmanhakimkhairudin
 
443016507-Sediaan-obat-PHYCOPHYTA-MYOPHYTA-dan-MYCOPHYTA-pptx.pptx
443016507-Sediaan-obat-PHYCOPHYTA-MYOPHYTA-dan-MYCOPHYTA-pptx.pptx443016507-Sediaan-obat-PHYCOPHYTA-MYOPHYTA-dan-MYCOPHYTA-pptx.pptx
443016507-Sediaan-obat-PHYCOPHYTA-MYOPHYTA-dan-MYCOPHYTA-pptx.pptx
ErikaPutriJayantini
 

Recently uploaded (20)

Laporan RHK PMM Observasi Target Perilaku.docx
Laporan RHK PMM Observasi Target Perilaku.docxLaporan RHK PMM Observasi Target Perilaku.docx
Laporan RHK PMM Observasi Target Perilaku.docx
 
Topik 4_Eksplorasi Konsep LK Kelompok_Pendidikan Berkelanjutan
Topik 4_Eksplorasi Konsep LK Kelompok_Pendidikan BerkelanjutanTopik 4_Eksplorasi Konsep LK Kelompok_Pendidikan Berkelanjutan
Topik 4_Eksplorasi Konsep LK Kelompok_Pendidikan Berkelanjutan
 
Webinar 1_Pendidikan Berjenjang Pendidikan Inklusif.pdf
Webinar 1_Pendidikan Berjenjang Pendidikan Inklusif.pdfWebinar 1_Pendidikan Berjenjang Pendidikan Inklusif.pdf
Webinar 1_Pendidikan Berjenjang Pendidikan Inklusif.pdf
 
RENCANA + Link2 MATERI Training _"SISTEM MANAJEMEN MUTU (ISO 9001_2015)".
RENCANA + Link2 MATERI Training _"SISTEM MANAJEMEN MUTU (ISO 9001_2015)".RENCANA + Link2 MATERI Training _"SISTEM MANAJEMEN MUTU (ISO 9001_2015)".
RENCANA + Link2 MATERI Training _"SISTEM MANAJEMEN MUTU (ISO 9001_2015)".
 
Informatika Latihan Soal Kelas Tujuh.pptx
Informatika Latihan Soal Kelas Tujuh.pptxInformatika Latihan Soal Kelas Tujuh.pptx
Informatika Latihan Soal Kelas Tujuh.pptx
 
PPT kerajaan islam Maluku Utara PPT sejarah kelas XI
PPT kerajaan islam Maluku Utara PPT sejarah kelas XIPPT kerajaan islam Maluku Utara PPT sejarah kelas XI
PPT kerajaan islam Maluku Utara PPT sejarah kelas XI
 
Kegiatan Komunitas Belajar dalam sekolah .pptx
Kegiatan Komunitas Belajar dalam sekolah .pptxKegiatan Komunitas Belajar dalam sekolah .pptx
Kegiatan Komunitas Belajar dalam sekolah .pptx
 
BAB 1 BEBATAN DAN BALUTAN DALAM PERTOLONGAN CEMAS
BAB 1 BEBATAN DAN BALUTAN DALAM PERTOLONGAN CEMASBAB 1 BEBATAN DAN BALUTAN DALAM PERTOLONGAN CEMAS
BAB 1 BEBATAN DAN BALUTAN DALAM PERTOLONGAN CEMAS
 
PPT PENDIDIKAN KELAS RANGKAP MODUL 3 KELOMPOK 3.pptx
PPT PENDIDIKAN KELAS RANGKAP MODUL 3 KELOMPOK 3.pptxPPT PENDIDIKAN KELAS RANGKAP MODUL 3 KELOMPOK 3.pptx
PPT PENDIDIKAN KELAS RANGKAP MODUL 3 KELOMPOK 3.pptx
 
SISTEM SARAF OTONOM_.SISTEM SARAF OTONOM
SISTEM SARAF OTONOM_.SISTEM SARAF OTONOMSISTEM SARAF OTONOM_.SISTEM SARAF OTONOM
SISTEM SARAF OTONOM_.SISTEM SARAF OTONOM
 
MODUL AJAR SENI MUSIK KELAS 6 KURIKULUM MERDEKA.pdf
MODUL AJAR SENI MUSIK KELAS 6 KURIKULUM MERDEKA.pdfMODUL AJAR SENI MUSIK KELAS 6 KURIKULUM MERDEKA.pdf
MODUL AJAR SENI MUSIK KELAS 6 KURIKULUM MERDEKA.pdf
 
Kisi kisi Ujian sekolah mata pelajaran IPA 2024.docx
Kisi kisi Ujian sekolah mata pelajaran IPA 2024.docxKisi kisi Ujian sekolah mata pelajaran IPA 2024.docx
Kisi kisi Ujian sekolah mata pelajaran IPA 2024.docx
 
Detik-Detik Proklamasi Indonesia pada Tahun 1945
Detik-Detik Proklamasi Indonesia pada Tahun 1945Detik-Detik Proklamasi Indonesia pada Tahun 1945
Detik-Detik Proklamasi Indonesia pada Tahun 1945
 
AKSI NYATA DISIPLIN POSITIF MEMBUAT KEYAKINAN KELAS_11zon.pptx
AKSI NYATA DISIPLIN POSITIF MEMBUAT KEYAKINAN KELAS_11zon.pptxAKSI NYATA DISIPLIN POSITIF MEMBUAT KEYAKINAN KELAS_11zon.pptx
AKSI NYATA DISIPLIN POSITIF MEMBUAT KEYAKINAN KELAS_11zon.pptx
 
Asimilasi Masyarakat Cina Dengan Orang Melayu di Kelantan (Cina Peranakan Kel...
Asimilasi Masyarakat Cina Dengan Orang Melayu di Kelantan (Cina Peranakan Kel...Asimilasi Masyarakat Cina Dengan Orang Melayu di Kelantan (Cina Peranakan Kel...
Asimilasi Masyarakat Cina Dengan Orang Melayu di Kelantan (Cina Peranakan Kel...
 
MODUL AJAR MATEMATIKA KELAS 3 KURIKULUM MERDEKA.pdf
MODUL AJAR MATEMATIKA KELAS 3 KURIKULUM MERDEKA.pdfMODUL AJAR MATEMATIKA KELAS 3 KURIKULUM MERDEKA.pdf
MODUL AJAR MATEMATIKA KELAS 3 KURIKULUM MERDEKA.pdf
 
443016507-Sediaan-obat-PHYCOPHYTA-MYOPHYTA-dan-MYCOPHYTA-pptx.pptx
443016507-Sediaan-obat-PHYCOPHYTA-MYOPHYTA-dan-MYCOPHYTA-pptx.pptx443016507-Sediaan-obat-PHYCOPHYTA-MYOPHYTA-dan-MYCOPHYTA-pptx.pptx
443016507-Sediaan-obat-PHYCOPHYTA-MYOPHYTA-dan-MYCOPHYTA-pptx.pptx
 
Aksi Nyata profil pelajar pancasila.pptx
Aksi Nyata profil pelajar pancasila.pptxAksi Nyata profil pelajar pancasila.pptx
Aksi Nyata profil pelajar pancasila.pptx
 
Materi Asuransi Kesehatan di Indonesia ppt
Materi Asuransi Kesehatan di Indonesia pptMateri Asuransi Kesehatan di Indonesia ppt
Materi Asuransi Kesehatan di Indonesia ppt
 
Skenario Lokakarya 2 Pendidikan Guru Penggerak
Skenario Lokakarya 2 Pendidikan Guru PenggerakSkenario Lokakarya 2 Pendidikan Guru Penggerak
Skenario Lokakarya 2 Pendidikan Guru Penggerak
 

6. Stack (Struktur Data)

  • 1. Stack / Tumpukan Akmal, S.Si, MT Mata Kuliah : Struktur Data
  • 2. Tujuan  Mahasiswa dapat : menganalisis tumpukan dan menyajikannya dengan operasi push dan pop baik dengan array maupun dengan list berkait dengan benar
  • 3. Pokok Bahasan  Pengertian Tumpukan  Penyajian tumpukan dengan Array dan List  Operasi Push dan Pop  Pemakaian Tumpukan
  • 4. Pengertian Stack  Tumpukan / Stack adalah satu set atau urutan elemen data dimana manipulasi data dari elemen-elemen hanya diperbolehkan pada tumpukan teratas dari tumpukan tersebut. Hal ini merupakan perintah pengumpulan data secara linier yang disebut “Last In, First Out” (LIFO).  Stack berguna untuk bermacam-macam aplikasi seperti pattern recognition dan pengkonversian antar notasi infix, postfix dan prefix.  Dua operasi yang dihubungkan dengan stack adalah operasi push dan pop. Push berarti memasukkan data ke dalam stacks yang paling atas sedangkan pop untuk mengambil data atas tumpukan. Sementara top digunakan sebagai penunjuk/pointer yang selalu menunjuk elemen paling atas.
  • 5. Ilustrasi Stack  Untuk memahami bagaimana cara kerja stack, pikirkan bagaimana menambah atau memindahkan sebuah piring dari tumpukan piring. Pikiran kita akan memberitahu untuk menambah atau memindahkan data hanya pada stack yang paling atas karena jika menggunakan cara lain, dapat menyebabkan tumpukan stack akan terjatuh TOP B C D E F G PUSH POP 0 1 2 3 4 5 6 A
  • 6. Penyajian Tumpukan Menggunakan Array  Disajikan tumpukan sebagai record dengan atributnya yaitu atribut pertama untuk menyimpan elemen tumpukan dan atribut yang kedua suatu nilai integer untuk mencatat posisi ujung (TOP) tumpukan.  Fungsi yang perlu dibuat terlebih dahulu adalah fungsi create Stack yaitu membuat sebuah stack kosong dengan ciri posisi TOP adalah -1: const int maxElemen = 255; struct Stack { int isi[maxElemen]; int TOP; } Stack S; void createStack (Stack& S){ S.TOP = -1; }
  • 7. PUSH Operasi Push adalah fungsi untuk menambahkan elemen ke dalam stack. Ada 2 kasus yang perlu ditangani yaitu : 1. Stack sudah penuh dengan ciri nilai TOP = maxElemen-1, maka tidak ada penambahan elemen 2. Stack belum penuh, maka langkah yang dilakukan adalah : * Menaikkan posisi TOP ke atas (TOP++) * Menyisipkankan elemen baru ke posisi TOP yang baru tsb void push(Stack& S, char elemenBaru) { if (S.TOP == maxElemen-1){ cout<<"Tumpukan sudah penuh “<<endl; } else{ S.TOP=S.TOP + 1; S.isi[S.TOP] = elemenBaru; } }
  • 8. POP  Operasi Pop adalah fungsi untuk menghapus elemen yang terletak pada posisi paling atas dari tumpukan. Ada 2 kasus yang harus ditangani yaitu : 1. Kasus Stack sudah kosong, dengan ciri nilai TOP sama dengan -1 ( TOP < 0), maka tidak ada penghapusan 2. Stack masih ada isi , maka langkah yang dilakukan adalah : * Mengamankan elemen pada posisi TOP tsb * Menurunkan posisi TOP ke bawah (TOP --) void pop(Stack& S, char& elemenHsl){ if (S.TOP < 0) { cout<<"Tumpukan sudah kosong "<<endl; } else { elemenHsl= S.isi[S.TOP]; S.TOP=S.TOP - 1; } }
  • 9. Penyajian Tumpukan Menggunakan List Berkait  Dengan menggunakan List Berkait, maka karakteristik operasi PUSH adalah Operasi Insert First dan Operasi POP adalah Operasi dari Delete First; D C B A TOP C B A TOP D PUSH POP PUSH (Insert First) POP (Delete First)
  • 10. PUSH Seperti Insert First pada Singly Linked List maka ada 2 kasus yang perlu ditangani yaitu  kasus stack kosong  kasus stack ada isi void push(Stack& Top, pointer pBaru){ cout<<"Push Stack "<<endl; if (Top==NULL) // Stack kosong Top=pBaru; else { // Stack ada isi pBaru->next=Top; Top=pBaru; } }
  • 11. POP  Seperti Delete First pada Singly Linked List, maka ada 3 kasus yang perlu ditangani yaitu :  Kasus stack kosong  Kasus Stack dengan isi 1 elemen  Kasus Stack dengan isi lebih dari 1 elemen void Pop(Stack& Top, pointer& pHapus){ cout<<"Pop Stack "<<endl; if (Top==NULL){ cout<<"Stack kosong "<<endl; pHapus=NULL; } else if (Top->next==NULL){ pHapus=Top; Top=NULL; } else { pHapus=Top; Top=Top->next; pHapus->next=NULL; } }
  • 12. Latihan dan Tugas  Buatlah program untuk membalikkan kalimat dengan menggunakan operasi PUSH dan POP suatu Tumpukan. a. Gunakan Struktur Array b. Gunakan Struktur List berkait