SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Oleh Drs KH.BUDI YONO
Stack
 Secara sederhana stack (tumpukan) bisa diartikan
sebagai kumpulan data yang seolah-olah diletakkan di
atas data yang lain.
 Prinsipnya kita hanya bisa menambah data dan
menghapus data pada ujung ya sama.
 Konsep ini dikenal dengan LIFO (Last In First Out).
Stack
 Secara sederhana stack (tumpukan) dapat
diilustrasikan sebagai berikut :
Stack
 Pada gambar di depan dapat dilihat bahwa kotak B
berada diatas kotak A dan dibawah kotak C.
 Gambar di depan juga menunjukkan bahwa tumpukan
hanya bisa ditambah melalui atas.
 Tumpukan di depan juga hanya dapat diambil
(dikurangi) melalui bagian atas.
Operasi Pada Stack
 Ada 2 operasi dasar yang bisa dilakukan pada stack
yaitu :
 Push (menambah/menyisipkan data)
 Pop (menghapus/mengurangi data)
Push
 Ilustrasi operasi Push pada stack adalah sebagai
berikut :
Push
 Pada gambar di depan mula-mula tumpukan berisi
data 17, 41, 20
 Kemudian dilakukan operasi Push data 34 sehingga
tumpukan data pada tumpukan menjadi : 17, 41, 20, 34.
Pop
 Ilustrasi operasi Pop adalah sebagai berikut :
Pop
 Pada gambar di depan mula-mula tumpukan berisi
data : 17, 41, 20
 Kemudian dilakukan operasi Pop sehingga data yang
paling atas dihapus sehingga data pada tumpukan
menjadi : 17, 41
Pemanfaatan Stack
 Salah satu pemanfaatan Stack (tumpukan) adalah
untuk menulis ungkapan dengan menggunakan notasi
tertentu.
 Cara penulisan ungkapan sering disebut dengan notasi
infix, yang artinya bahwa operator ditulis diantara 2
operator.
 Selain notasi infix ada juga notasi prefix dan postfix.
 Pemanfaatan tumpukan bisa diterapkan pada notasi
postfix.
Pemanfaatan Stack
 Contoh notasi postfix : 2 14 + 5 *
Program Stack
 Implementasi Stack (tumpukan) pada C++ dapat
dibuat menggunakan Array atau Linked List.
 Berikut ini implementasi Stack menggunakan Array :
#include <iostream>
#include <conio>
#include <stdlib>
int top,i;
char key,temp;
char stack[10];
void push()
{
clrscr();
if(top<9)
{
cout<<"Masukkan sebuah karakter : ";
cin>>temp;
top++;
stack[top] = temp;
cout<<"Data sudah masuk, tekan enter..";
}
else
{
cout<<"Stack sudah penuh, tekan enter..";
}
getch();
}
void pop()
{
clrscr();
if(top>=0)
{
top--;
cout<<"Data sudah terhapus, tekan enter..";
}
else
{
cout<<"Stack telah kosong, tekan enter..";
}
getch();
}
void print()
{
clrscr();
if(top>=0)
{
cout<<"Isi Stack : "<<endl<<endl;
for(i=top;i>=0;i--)
{
cout<<" "<<stack[i]<<endl;
}
cout<<endl<<"Tekan enter..";
}
else
{
cout<<"Stack masih kosong, tekan enter..";
}
getch();
}
void main()
{
clrscr();
key = ' ';
top = -1;
do
{
do
{
clrscr();
cout<<"Program Stack"<<endl;
cout<<"1. Push"<<endl;
cout<<"2. Pop"<<endl;
cout<<"3. Print"<<endl;
cout<<"4. Exit"<<endl;
cout<<"Masukkan pilihan anda[1/2/3/4] : ";
key=getche();
}
while ((key!='1') && (key!='2') && (key!='3') && (key!='4'));
if(key=='1')
push();
else if(key=='2')
pop();
else if(key=='3')
print();
}
while (key!='4');
getch();
}

Weitere ähnliche Inhalte

Was ist angesagt?

Struktur data 03 (stack)
Struktur data 03 (stack)Struktur data 03 (stack)
Struktur data 03 (stack)
Sunarya Marwah
 
Pengenalan Bahasa C
Pengenalan Bahasa CPengenalan Bahasa C
Pengenalan Bahasa C
guestaf3e8f4
 

Was ist angesagt? (20)

Fungsi rekursif, queue, stack
Fungsi rekursif, queue, stackFungsi rekursif, queue, stack
Fungsi rekursif, queue, stack
 
Algoritma dan Struktur Data - Stack
Algoritma dan Struktur Data - StackAlgoritma dan Struktur Data - Stack
Algoritma dan Struktur Data - Stack
 
IPython : Operasi Dasar di Sympy
IPython : Operasi Dasar di SympyIPython : Operasi Dasar di Sympy
IPython : Operasi Dasar di Sympy
 
Text Editor Nano
Text Editor NanoText Editor Nano
Text Editor Nano
 
Stack tumpukan
Stack tumpukan Stack tumpukan
Stack tumpukan
 
Struktur data 03 (stack)
Struktur data 03 (stack)Struktur data 03 (stack)
Struktur data 03 (stack)
 
Algoritma dan Struktur Data - antrian
Algoritma dan Struktur Data - antrianAlgoritma dan Struktur Data - antrian
Algoritma dan Struktur Data - antrian
 
Slide minggu 2 pertemuan 2 (struktur data1)
Slide minggu 2 pertemuan 2 (struktur data1)Slide minggu 2 pertemuan 2 (struktur data1)
Slide minggu 2 pertemuan 2 (struktur data1)
 
6. Stack (Struktur Data)
6. Stack (Struktur Data)6. Stack (Struktur Data)
6. Stack (Struktur Data)
 
Bab viii stack
Bab viii   stackBab viii   stack
Bab viii stack
 
Slide minggu 3 pertemuan 1 (struktur data1) [repariert]
Slide minggu 3 pertemuan 1 (struktur data1) [repariert]Slide minggu 3 pertemuan 1 (struktur data1) [repariert]
Slide minggu 3 pertemuan 1 (struktur data1) [repariert]
 
Materi : Struktur Data (2 Array)
Materi : Struktur Data (2 Array)Materi : Struktur Data (2 Array)
Materi : Struktur Data (2 Array)
 
5 STACK
5 STACK5 STACK
5 STACK
 
Pengenalan Bahasa C
Pengenalan Bahasa CPengenalan Bahasa C
Pengenalan Bahasa C
 
Pert 4 stack
Pert 4   stackPert 4   stack
Pert 4 stack
 
Stack
StackStack
Stack
 
Kelompok 3
Kelompok 3Kelompok 3
Kelompok 3
 
Aray dan recrd
Aray dan recrdAray dan recrd
Aray dan recrd
 
MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )
 
Algoritma dan Struktur Data - Antrian
Algoritma dan Struktur Data - AntrianAlgoritma dan Struktur Data - Antrian
Algoritma dan Struktur Data - Antrian
 

Ähnlich wie Materi kuliah 10 stack

Laporan Praktikum Struktur Data Modul 3
Laporan Praktikum Struktur Data Modul 3Laporan Praktikum Struktur Data Modul 3
Laporan Praktikum Struktur Data Modul 3
azmi007
 
Bab 4 stack (tumpukan)
Bab 4 stack (tumpukan)Bab 4 stack (tumpukan)
Bab 4 stack (tumpukan)
Fahuda E
 

Ähnlich wie Materi kuliah 10 stack (20)

Chapter 4a stack
Chapter 4a   stackChapter 4a   stack
Chapter 4a stack
 
Pert.6 stack
Pert.6 stackPert.6 stack
Pert.6 stack
 
Laporan praktikum modul viii
Laporan praktikum modul viiiLaporan praktikum modul viii
Laporan praktikum modul viii
 
Algorithms and Data Structures
 Algorithms and Data Structures Algorithms and Data Structures
Algorithms and Data Structures
 
STACK .pdf
STACK .pdfSTACK .pdf
STACK .pdf
 
Tistrukdat4
Tistrukdat4Tistrukdat4
Tistrukdat4
 
Tipe data Stack magi mahasiswa Teknik Informatika.ppt
Tipe data Stack magi mahasiswa Teknik Informatika.pptTipe data Stack magi mahasiswa Teknik Informatika.ppt
Tipe data Stack magi mahasiswa Teknik Informatika.ppt
 
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
 
Laporan praktikum modul ix
Laporan praktikum modul ixLaporan praktikum modul ix
Laporan praktikum modul ix
 
Stack Linier
Stack LinierStack Linier
Stack Linier
 
Pertemuan 4 ok
Pertemuan 4 okPertemuan 4 ok
Pertemuan 4 ok
 
Stack tumpukan
Stack tumpukan Stack tumpukan
Stack tumpukan
 
Stack tumpukan
Stack tumpukan Stack tumpukan
Stack tumpukan
 
Bab 3 stack (tumpukan)
Bab 3 stack (tumpukan)Bab 3 stack (tumpukan)
Bab 3 stack (tumpukan)
 
Laporan Praktikum Struktur Data Modul 3
Laporan Praktikum Struktur Data Modul 3Laporan Praktikum Struktur Data Modul 3
Laporan Praktikum Struktur Data Modul 3
 
Stack_Queue.pdf
Stack_Queue.pdfStack_Queue.pdf
Stack_Queue.pdf
 
Bab 4 stack (tumpukan)
Bab 4 stack (tumpukan)Bab 4 stack (tumpukan)
Bab 4 stack (tumpukan)
 
Stack
StackStack
Stack
 
Stack
StackStack
Stack
 

Mehr von Budi Yono

Materi kuliah 14 pernyataan dasar part 3
Materi kuliah 14   pernyataan dasar part 3Materi kuliah 14   pernyataan dasar part 3
Materi kuliah 14 pernyataan dasar part 3
Budi Yono
 
Materi kuliah 01 array part 1
Materi kuliah 01   array part 1Materi kuliah 01   array part 1
Materi kuliah 01 array part 1
Budi Yono
 
Materi kuliah 04 pointer part 2
Materi kuliah 04   pointer part 2Materi kuliah 04   pointer part 2
Materi kuliah 04 pointer part 2
Budi Yono
 
Materi kuliah 05 pointer part 3
Materi kuliah 05   pointer part 3Materi kuliah 05   pointer part 3
Materi kuliah 05 pointer part 3
Budi Yono
 
Materi kuliah 08 sort part 3
Materi kuliah 08   sort part 3Materi kuliah 08   sort part 3
Materi kuliah 08 sort part 3
Budi Yono
 
Materi kuliah 02 array part 2
Materi kuliah 02   array part 2Materi kuliah 02   array part 2
Materi kuliah 02 array part 2
Budi Yono
 
Materi kuliah 23 pointer part 3
Materi kuliah 23   pointer part 3Materi kuliah 23   pointer part 3
Materi kuliah 23 pointer part 3
Budi Yono
 
Materi kuliah 19 fungsi part 2
Materi kuliah 19   fungsi part 2Materi kuliah 19   fungsi part 2
Materi kuliah 19 fungsi part 2
Budi Yono
 
01 pengenalan algoritma
01   pengenalan algoritma01   pengenalan algoritma
01 pengenalan algoritma
Budi Yono
 
Materi kuliah 04 sekilas c++
Materi kuliah 04   sekilas c++Materi kuliah 04   sekilas c++
Materi kuliah 04 sekilas c++
Budi Yono
 
05 pengenalan c++
05   pengenalan c++05   pengenalan c++
05 pengenalan c++
Budi Yono
 
08 elemen dasar c++ part 3
08   elemen dasar c++ part 308   elemen dasar c++ part 3
08 elemen dasar c++ part 3
Budi Yono
 
10 operator dan ungkapan part 2
10   operator dan ungkapan part 210   operator dan ungkapan part 2
10 operator dan ungkapan part 2
Budi Yono
 
09 operator dan ungkapan part 1
09   operator dan ungkapan part 109   operator dan ungkapan part 1
09 operator dan ungkapan part 1
Budi Yono
 
Materi kuliah 12 pernyataan dasar part 1
Materi kuliah 12   pernyataan dasar part 1Materi kuliah 12   pernyataan dasar part 1
Materi kuliah 12 pernyataan dasar part 1
Budi Yono
 
02 flowchart
02   flowchart02   flowchart
02 flowchart
Budi Yono
 
Materi kuliah 14 pernyataan dasar part 3
Materi kuliah 14   pernyataan dasar part 3Materi kuliah 14   pernyataan dasar part 3
Materi kuliah 14 pernyataan dasar part 3
Budi Yono
 
07 elemen dasar c++ part 2
07   elemen dasar c++ part 207   elemen dasar c++ part 2
07 elemen dasar c++ part 2
Budi Yono
 
Fungsi part 4
Fungsi part 4Fungsi part 4
Fungsi part 4
Budi Yono
 
Materi kuliah 21 pointer part 1
Materi kuliah 21   pointer part 1Materi kuliah 21   pointer part 1
Materi kuliah 21 pointer part 1
Budi Yono
 

Mehr von Budi Yono (20)

Materi kuliah 14 pernyataan dasar part 3
Materi kuliah 14   pernyataan dasar part 3Materi kuliah 14   pernyataan dasar part 3
Materi kuliah 14 pernyataan dasar part 3
 
Materi kuliah 01 array part 1
Materi kuliah 01   array part 1Materi kuliah 01   array part 1
Materi kuliah 01 array part 1
 
Materi kuliah 04 pointer part 2
Materi kuliah 04   pointer part 2Materi kuliah 04   pointer part 2
Materi kuliah 04 pointer part 2
 
Materi kuliah 05 pointer part 3
Materi kuliah 05   pointer part 3Materi kuliah 05   pointer part 3
Materi kuliah 05 pointer part 3
 
Materi kuliah 08 sort part 3
Materi kuliah 08   sort part 3Materi kuliah 08   sort part 3
Materi kuliah 08 sort part 3
 
Materi kuliah 02 array part 2
Materi kuliah 02   array part 2Materi kuliah 02   array part 2
Materi kuliah 02 array part 2
 
Materi kuliah 23 pointer part 3
Materi kuliah 23   pointer part 3Materi kuliah 23   pointer part 3
Materi kuliah 23 pointer part 3
 
Materi kuliah 19 fungsi part 2
Materi kuliah 19   fungsi part 2Materi kuliah 19   fungsi part 2
Materi kuliah 19 fungsi part 2
 
01 pengenalan algoritma
01   pengenalan algoritma01   pengenalan algoritma
01 pengenalan algoritma
 
Materi kuliah 04 sekilas c++
Materi kuliah 04   sekilas c++Materi kuliah 04   sekilas c++
Materi kuliah 04 sekilas c++
 
05 pengenalan c++
05   pengenalan c++05   pengenalan c++
05 pengenalan c++
 
08 elemen dasar c++ part 3
08   elemen dasar c++ part 308   elemen dasar c++ part 3
08 elemen dasar c++ part 3
 
10 operator dan ungkapan part 2
10   operator dan ungkapan part 210   operator dan ungkapan part 2
10 operator dan ungkapan part 2
 
09 operator dan ungkapan part 1
09   operator dan ungkapan part 109   operator dan ungkapan part 1
09 operator dan ungkapan part 1
 
Materi kuliah 12 pernyataan dasar part 1
Materi kuliah 12   pernyataan dasar part 1Materi kuliah 12   pernyataan dasar part 1
Materi kuliah 12 pernyataan dasar part 1
 
02 flowchart
02   flowchart02   flowchart
02 flowchart
 
Materi kuliah 14 pernyataan dasar part 3
Materi kuliah 14   pernyataan dasar part 3Materi kuliah 14   pernyataan dasar part 3
Materi kuliah 14 pernyataan dasar part 3
 
07 elemen dasar c++ part 2
07   elemen dasar c++ part 207   elemen dasar c++ part 2
07 elemen dasar c++ part 2
 
Fungsi part 4
Fungsi part 4Fungsi part 4
Fungsi part 4
 
Materi kuliah 21 pointer part 1
Materi kuliah 21   pointer part 1Materi kuliah 21   pointer part 1
Materi kuliah 21 pointer part 1
 

Materi kuliah 10 stack

  • 2. Stack  Secara sederhana stack (tumpukan) bisa diartikan sebagai kumpulan data yang seolah-olah diletakkan di atas data yang lain.  Prinsipnya kita hanya bisa menambah data dan menghapus data pada ujung ya sama.  Konsep ini dikenal dengan LIFO (Last In First Out).
  • 3. Stack  Secara sederhana stack (tumpukan) dapat diilustrasikan sebagai berikut :
  • 4. Stack  Pada gambar di depan dapat dilihat bahwa kotak B berada diatas kotak A dan dibawah kotak C.  Gambar di depan juga menunjukkan bahwa tumpukan hanya bisa ditambah melalui atas.  Tumpukan di depan juga hanya dapat diambil (dikurangi) melalui bagian atas.
  • 5. Operasi Pada Stack  Ada 2 operasi dasar yang bisa dilakukan pada stack yaitu :  Push (menambah/menyisipkan data)  Pop (menghapus/mengurangi data)
  • 6. Push  Ilustrasi operasi Push pada stack adalah sebagai berikut :
  • 7. Push  Pada gambar di depan mula-mula tumpukan berisi data 17, 41, 20  Kemudian dilakukan operasi Push data 34 sehingga tumpukan data pada tumpukan menjadi : 17, 41, 20, 34.
  • 8. Pop  Ilustrasi operasi Pop adalah sebagai berikut :
  • 9. Pop  Pada gambar di depan mula-mula tumpukan berisi data : 17, 41, 20  Kemudian dilakukan operasi Pop sehingga data yang paling atas dihapus sehingga data pada tumpukan menjadi : 17, 41
  • 10. Pemanfaatan Stack  Salah satu pemanfaatan Stack (tumpukan) adalah untuk menulis ungkapan dengan menggunakan notasi tertentu.  Cara penulisan ungkapan sering disebut dengan notasi infix, yang artinya bahwa operator ditulis diantara 2 operator.  Selain notasi infix ada juga notasi prefix dan postfix.  Pemanfaatan tumpukan bisa diterapkan pada notasi postfix.
  • 11. Pemanfaatan Stack  Contoh notasi postfix : 2 14 + 5 *
  • 12. Program Stack  Implementasi Stack (tumpukan) pada C++ dapat dibuat menggunakan Array atau Linked List.  Berikut ini implementasi Stack menggunakan Array :
  • 13. #include <iostream> #include <conio> #include <stdlib> int top,i; char key,temp; char stack[10]; void push() { clrscr(); if(top<9) { cout<<"Masukkan sebuah karakter : "; cin>>temp; top++; stack[top] = temp; cout<<"Data sudah masuk, tekan enter.."; } else { cout<<"Stack sudah penuh, tekan enter.."; } getch(); } void pop() { clrscr(); if(top>=0) { top--; cout<<"Data sudah terhapus, tekan enter.."; } else { cout<<"Stack telah kosong, tekan enter.."; } getch(); } void print() { clrscr(); if(top>=0) { cout<<"Isi Stack : "<<endl<<endl; for(i=top;i>=0;i--) { cout<<" "<<stack[i]<<endl; } cout<<endl<<"Tekan enter.."; } else { cout<<"Stack masih kosong, tekan enter.."; } getch(); } void main() { clrscr(); key = ' '; top = -1; do { do { clrscr(); cout<<"Program Stack"<<endl; cout<<"1. Push"<<endl; cout<<"2. Pop"<<endl; cout<<"3. Print"<<endl; cout<<"4. Exit"<<endl; cout<<"Masukkan pilihan anda[1/2/3/4] : "; key=getche(); } while ((key!='1') && (key!='2') && (key!='3') && (key!='4')); if(key=='1') push(); else if(key=='2') pop(); else if(key=='3') print(); } while (key!='4'); getch(); }