SlideShare a Scribd company logo
STACK (TUMPUKAN)
Amidatus Sholihat
2
Stack
• Stack bersifat LIFO (Last In First Out)
• “Benda yang terakhir masuk ke dalam
stack akan menjadi yang pertama
keluar dari stack
TV TV
VCD
Compo
TV
VCD
Compo
TV
VCD
Compo
3
Ilustrasi Stack
• Contohnya, karena kita menumpuk Compo di posisi terakhir,
maka Compo akan menjadi elemen teratas dalam tumpukan.
Sebaliknya, karena kita menumpuk Televisi pada saat pertama
kali, maka elemen Televisi menjadi elemen terbawah dari
tumpukan. Dan jika kita mengambil elemen dari tumpukan,
maka secara otomatis akan terambil elemen teratas, yaitu
Compo.
• Operasi-operasi/fungsi Stack
– Push : digunakan untuk menambah item pada stack pada
tumpukan paling atas
– Pop : digunakan untuk mengambil item pada stack pada
tumpukan paling atas
– Clear : digunakan untuk mengosongkan stack
– IsEmpty : fungsi yang digunakan untuk mengecek apakah
stack sudah kosong
– IsFull : fungsi yang digunakan untuk mengecek apakah
stack sudah penuh
4
Stack dengan Struct Array
• Definisikan Stack dengan menggunakan
struct
• Definisikan konstanta MAX_STACK
untuk menyimpan maksimum isi stack
• Buatlah variabel array data sebagai
implementasi stack
• Deklarasikan operasi-operasi/function di
atas dan buat implemetasinya
5
Program Stack
• Deklarasi MAX_STACK
#define MAX_STACK 10
• Deklarasi STACK dengan struct dan array data
typedef struct STACK{
int top;
char data[10][10];
};
• Deklarasi/buat variabel dari struct
STACK tumpuk;
6
Program Stack (2)
Inisialisasi Stack
• Pada mulanya isi top dengan -1, karena array
dalam C dimulai dari 0, yang berarti stack adalah
KOSONG!
• Top adalah suatu variabel penanda dalam
STACK yang menunjukkan elemen teratas Stack
sekarang. Top Of Stack akan selalu bergerak
hingga mencapai MAX of STACK sehingga
menyebabkan stack PENUH!
7
Program Stack (2)
Ilustrasi Stack pada saat inisialisasi!
8
Program Stack (3)
Fungsi IsFull
• Untuk memeriksa apakah stack sudah
penuh?
• Dengan cara memeriksa top of stack, jika
sudah sama dengan MAX_STACK-1
maka full, jika belum (masih lebih kecil
dari MAX_STACK-1) maka belum full
9
Program Stack (4)
• Ilustrasi Stack pada kondisi Full
10
Program Stack (5)
Fungsi IsEmpty
• Untuk memeriksa apakah stack masih kosong?
• Dengan cara memeriksa top of stack, jika masih -1 maka
berarti stack masih kosong!
11
Program Stack (6)
Fungsi Push
• Untuk memasukkan elemen ke stack, selalu
menjadi elemen teratas stack (yang ditunjuk oleh
TOS)
• Tambah satu (increment) nilai top of stack lebih
dahulu setiap kali ada penambahan elemen stack.
• Asalkan stack masih belum penuh, isikan data baru
ke stack berdasarkan indeks top of stack setelah
diincrement sebelumnya.
12
Program Stack (7)
13
Program Stack (8)
Fungsi Pop
• Untuk mengambil elemen teratas (data yang
ditunjuk oleh TOS) dari stack.
• Ambil dahulu nilai elemen teratas stack
dengan mengakses top of stack, tampilkan
nilai yang akan dipop, baru dilakukan
decrement nilai top of stack sehingga jumlah
elemen stack berkurang
14
Program Stack (9)
15
Program Stack (10)
• Fungsi Print
• Untuk menampilkan semua elemen-
elemen stack
• Dengan cara looping semua nilai array
secara terbalik, karena kita harus
mengakses dari indeks array tertinggi
terlebih dahulu baru ke indeks yang
kecil!
16
Program Stack (11)
17
Studi Kasus Stack
• Pembuatan Kalkulator SCIENTIFIC
– Misalkan operasi: 3 + 2 * 5
– Operasi di atas disebut notasi infiks,
notasi infiks tersebut harus diubah lebih
dahulu menjadi
– notasi postfix 3 + 2 * 5
– notasi postfiksnya adalah 2 5 * 3 +
18
Studi Kasus Stack (2)
• Pop Stack Soal:
• Jika berupa operand, maka masukkan ke Stack Hasil
• Jika berupa operator, maka:
– Pop nilai pertama dari Stack Hasil
– Pop nilai kedua dari Stack Hasil
– Lakukan operasi sesuai dengan operator yang didapat.
19
Studi Kasus Stack (3)
Operator * di pop dari Stack Soal, pop Stack Hasil dua kali,
yaitu 5 dan 2 kemudian, simpan 5 ke dalam variabel misalnya
a, dan 2 ke dalam variabel misalnya b.
Lalu lakukan operasi sesuai dengan operatornya,
b <operator> a
Jadi b * a, yaitu 2 * 5 kemudian hasilnya disimpan lagi ke
dalam StackHasil
20
Studi Kasus Stack (4)
• Kemudian lakukan langkah yang sama, sampai selesai.
• Pada contoh: operator + dipop dari Stack Soal, pop Stack
Hasil dua kali, yaitu 3, disimpan pada variabel a, dan 2,
disimpan pada variabel b. Kemudian lakukan operasi
sesuai dengan operatornya, b <operator> a
• Jadi b + a, yaitu 8 + 3 = 11.
21
Notasi Aritmatik
• Notasi INFIX :
– operand operator operand : A + B
• Notasi PREFIX :
– operator operand operand : + A B
• Notasi POSTFIX :
– operand operand operator : A B +
22
Prioritas Pengerjaan Notasi Aritmatik
1. Tanda kurung : ( )
2. Eksponensial atau pangkat : ^
3. Perkalian, Pembagian : *, /
4. Penjumlahan, Pengurangan : +, -
23
Infix ke Prefix Algorithm
Contoh
(A + B) – (C * D)
Untuk pengerjaan infix, perlu diperhatikan urutan
sebagai berikut:
1. Pengerjaan dalam kurung ke-1: (A+B), prefix-
nya adalah +AB
2. Pengerjaan dalam kurung ke-2: (C*D), prefix-
nya adalah *CD
3. Terakhir adalah operator -, +AB - *CD, prefix-
nya adalah -+AB*CD
24
Infix ke Postfix Algoritma
Contoh
(A + B) – (C * D)
Untuk pengerjaan infix, perlu diperhatikan urutan
sebagai berikut:
1. Pengerjaan dalam kurung ke-1: (A+B), postfix-
nya adalah AB+
2. Pengerjaan dalam kurung ke-2: (C*D), postfix-
nya adalah CD*
3. Terakhir adalah operator -, AB+ - CD*, postfix-
nya adalah AB+CD*-
25
Prefix ke Infix Algoritma
Contoh
+/*ABCD
Untuk pengerjaan prefix, perlu diperhatikan urutan sebagai
berikut:
1. Cari operator ke-1: *, ambil dua operand sebelumnya A
dan B, sehingga infix-nya adalah (A * B)
2. Cari operator ke-2: /, ambil dua operand sebelumnya (A
*B) dan C, sehingga infix-nya adalah ((A * B) / C)
3. Cari operator ke-3: +, ambil dua operand sebelumnya
((A * B)/C) dan C, sehingga infix-nya adalah ((A * B) /
C) + D
26
Prefix ke Postfix Algoritma
Contoh
+/*ABCD
Untuk pengerjaan prefix, perlu diperhatikan urutan sebagai
berikut:
1. Cari operator ke-1: *, ambil dua operand sebelumnya A
dan B, sehingga postfix-nya adalah AB*
2. Cari operator ke-2: /, ambil dua operand sebelumnya
AB* dan C, sehingga postfix-nya adalah AB*C/)
3. Cari operator ke-3: +, ambil dua operand sebelumnya
AB*C/ dan D, sehingga postfix-nya adalah AB*C/D+
27
Postfix ke Infix Algoritma
Contoh
ABCD*/-
Untuk pengerjaan postfix, perlu diperhatikan urutan sebagai
berikut:
1. Cari operator ke-1: *, ambil dua operand sebelumnya C
dan D, sehingga infix-nya adalah (C*D)
2. Cari operator ke-2: /, ambil dua operand sebelumnya B
dan (C*D), sehingga infix-nya adalah (B/(C*D))
3. Cari operator ke-3: -, ambil dua operand sebelumnya A
dan (B/(C*D)), sehingga infix-nya adalah A – (B/(C*D))
28
Postfix ke Prefix Algoritma
Contoh
ABCD*/-
Untuk pengerjaan postfix, mencari operator di mulai dari
operan terkini sebagai berikut:
1. Cari operator ke-1: *, ambil dua operand sebelumnya C
dan D, sehingga prefix-nya *CD
2. Cari operator ke-2: /, ambil dua operand sebelumnya B
dan *CD, sehingga prefix-nya adalah /B*CD
3. Cari operator ke-3: -, ambil dua operand sebelumnya A
dan /B*CD, sehingga prefix-nya adalah –A/B*CD

More Related Content

What's hot

Matematika Diskrit - 03 himpunan - 02
Matematika Diskrit - 03 himpunan - 02Matematika Diskrit - 03 himpunan - 02
Matematika Diskrit - 03 himpunan - 02
KuliahKita
 
Bab 5 penyederhanaan fungsi boolean
Bab 5 penyederhanaan fungsi booleanBab 5 penyederhanaan fungsi boolean
Bab 5 penyederhanaan fungsi booleanCliquerz Javaneze
 
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
KuliahKita
 
Soal soal problem-solving dan pembahasannya
Soal soal problem-solving dan pembahasannyaSoal soal problem-solving dan pembahasannya
Soal soal problem-solving dan pembahasannyaHyronimus Lado
 
Matemaika Diskrit - 04 induksi matematik - 03
Matemaika Diskrit - 04 induksi matematik - 03Matemaika Diskrit - 04 induksi matematik - 03
Matemaika Diskrit - 04 induksi matematik - 03
KuliahKita
 
Bab 2 permutasi dan kombinasi
Bab 2 permutasi dan kombinasiBab 2 permutasi dan kombinasi
Bab 2 permutasi dan kombinasi
Mirabela Islami
 
Database Terdistribusi
Database TerdistribusiDatabase Terdistribusi
Database Terdistribusi
Ismi Islamia
 
Bab 01 logika mtk diskrit
Bab 01 logika mtk diskritBab 01 logika mtk diskrit
Bab 01 logika mtk diskrit
KarlFykr
 
Vektor, Aljabar Linier
Vektor, Aljabar LinierVektor, Aljabar Linier
Vektor, Aljabar Linier
SartiniNuha
 
Matematika Diskrit - 06 relasi dan fungsi - 06
Matematika Diskrit - 06 relasi dan fungsi - 06Matematika Diskrit - 06 relasi dan fungsi - 06
Matematika Diskrit - 06 relasi dan fungsi - 06
KuliahKita
 
Matematika Diskrit - 07 teori bilangan - 05
Matematika Diskrit - 07 teori bilangan - 05Matematika Diskrit - 07 teori bilangan - 05
Matematika Diskrit - 07 teori bilangan - 05
KuliahKita
 
Matriks & Operasinya Matriks invers
Matriks  & Operasinya Matriks inversMatriks  & Operasinya Matriks invers
Matriks & Operasinya Matriks inversMuhammad Martayuda
 
Belajar netbeans java pemula dari 0 sampai mahir
Belajar netbeans java pemula dari 0 sampai mahirBelajar netbeans java pemula dari 0 sampai mahir
Belajar netbeans java pemula dari 0 sampai mahir
harisonmtd
 
Bahan Ajar Bilangan Berpangkat (Kelas IX)
Bahan Ajar Bilangan Berpangkat (Kelas IX)Bahan Ajar Bilangan Berpangkat (Kelas IX)
Bahan Ajar Bilangan Berpangkat (Kelas IX)
Ana Safrida
 
ALJABAR LINEAR ELEMENTER
ALJABAR LINEAR ELEMENTERALJABAR LINEAR ELEMENTER
ALJABAR LINEAR ELEMENTER
Mella Imelda
 
Intermediate code kode antara
Intermediate code   kode antaraIntermediate code   kode antara
Intermediate code kode antara
Gunawan Manalu
 
UJI PROPORSI DUA SAMPEL
UJI PROPORSI DUA SAMPELUJI PROPORSI DUA SAMPEL
UJI PROPORSI DUA SAMPEL
Aroon Siregar
 
Matematika Diskrit - 07 teori bilangan - 04
Matematika Diskrit - 07 teori bilangan - 04Matematika Diskrit - 07 teori bilangan - 04
Matematika Diskrit - 07 teori bilangan - 04
KuliahKita
 
lkpd soal operasi bentuk aljabar (aisyah turidho)
lkpd soal operasi bentuk aljabar (aisyah turidho)lkpd soal operasi bentuk aljabar (aisyah turidho)
lkpd soal operasi bentuk aljabar (aisyah turidho)
Aisyah Turidho
 
Permutasi dan Kombinasi
Permutasi dan KombinasiPermutasi dan Kombinasi
Permutasi dan Kombinasi
Fahrul Usman
 

What's hot (20)

Matematika Diskrit - 03 himpunan - 02
Matematika Diskrit - 03 himpunan - 02Matematika Diskrit - 03 himpunan - 02
Matematika Diskrit - 03 himpunan - 02
 
Bab 5 penyederhanaan fungsi boolean
Bab 5 penyederhanaan fungsi booleanBab 5 penyederhanaan fungsi boolean
Bab 5 penyederhanaan fungsi boolean
 
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
 
Soal soal problem-solving dan pembahasannya
Soal soal problem-solving dan pembahasannyaSoal soal problem-solving dan pembahasannya
Soal soal problem-solving dan pembahasannya
 
Matemaika Diskrit - 04 induksi matematik - 03
Matemaika Diskrit - 04 induksi matematik - 03Matemaika Diskrit - 04 induksi matematik - 03
Matemaika Diskrit - 04 induksi matematik - 03
 
Bab 2 permutasi dan kombinasi
Bab 2 permutasi dan kombinasiBab 2 permutasi dan kombinasi
Bab 2 permutasi dan kombinasi
 
Database Terdistribusi
Database TerdistribusiDatabase Terdistribusi
Database Terdistribusi
 
Bab 01 logika mtk diskrit
Bab 01 logika mtk diskritBab 01 logika mtk diskrit
Bab 01 logika mtk diskrit
 
Vektor, Aljabar Linier
Vektor, Aljabar LinierVektor, Aljabar Linier
Vektor, Aljabar Linier
 
Matematika Diskrit - 06 relasi dan fungsi - 06
Matematika Diskrit - 06 relasi dan fungsi - 06Matematika Diskrit - 06 relasi dan fungsi - 06
Matematika Diskrit - 06 relasi dan fungsi - 06
 
Matematika Diskrit - 07 teori bilangan - 05
Matematika Diskrit - 07 teori bilangan - 05Matematika Diskrit - 07 teori bilangan - 05
Matematika Diskrit - 07 teori bilangan - 05
 
Matriks & Operasinya Matriks invers
Matriks  & Operasinya Matriks inversMatriks  & Operasinya Matriks invers
Matriks & Operasinya Matriks invers
 
Belajar netbeans java pemula dari 0 sampai mahir
Belajar netbeans java pemula dari 0 sampai mahirBelajar netbeans java pemula dari 0 sampai mahir
Belajar netbeans java pemula dari 0 sampai mahir
 
Bahan Ajar Bilangan Berpangkat (Kelas IX)
Bahan Ajar Bilangan Berpangkat (Kelas IX)Bahan Ajar Bilangan Berpangkat (Kelas IX)
Bahan Ajar Bilangan Berpangkat (Kelas IX)
 
ALJABAR LINEAR ELEMENTER
ALJABAR LINEAR ELEMENTERALJABAR LINEAR ELEMENTER
ALJABAR LINEAR ELEMENTER
 
Intermediate code kode antara
Intermediate code   kode antaraIntermediate code   kode antara
Intermediate code kode antara
 
UJI PROPORSI DUA SAMPEL
UJI PROPORSI DUA SAMPELUJI PROPORSI DUA SAMPEL
UJI PROPORSI DUA SAMPEL
 
Matematika Diskrit - 07 teori bilangan - 04
Matematika Diskrit - 07 teori bilangan - 04Matematika Diskrit - 07 teori bilangan - 04
Matematika Diskrit - 07 teori bilangan - 04
 
lkpd soal operasi bentuk aljabar (aisyah turidho)
lkpd soal operasi bentuk aljabar (aisyah turidho)lkpd soal operasi bentuk aljabar (aisyah turidho)
lkpd soal operasi bentuk aljabar (aisyah turidho)
 
Permutasi dan Kombinasi
Permutasi dan KombinasiPermutasi dan Kombinasi
Permutasi dan Kombinasi
 

Viewers also liked

MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )
istiqlal
 
Tugas mandiri struktur data
Tugas mandiri struktur dataTugas mandiri struktur data
Tugas mandiri struktur data
Asep Jaenudin
 
Makalah Kunjungan Binary Tree
Makalah Kunjungan Binary TreeMakalah Kunjungan Binary Tree
Makalah Kunjungan Binary Tree
Muhammad Iqbal
 
Stack
StackStack
Manajemen Memori
Manajemen MemoriManajemen Memori
Manajemen MemoriAnwar Uddin
 
Stack
StackStack
Infix postfixcoversion
Infix postfixcoversionInfix postfixcoversion
Infix postfixcoversion
Pdr Patnaik
 
Karya ilmiah by salsa
Karya ilmiah by salsaKarya ilmiah by salsa
Karya ilmiah by salsa
salsabila lindh caca
 
Class dan object
Class dan objectClass dan object
Class dan objectHardini_HD
 
Sd pertemuan 5 & 6
Sd   pertemuan 5 & 6Sd   pertemuan 5 & 6
Sd pertemuan 5 & 6
biedoen
 
Struktur data pertemuan 1 & 2
Struktur data   pertemuan 1 & 2Struktur data   pertemuan 1 & 2
Struktur data pertemuan 1 & 2biedoen
 
Pemrograman C++ - Operasi Berkas
Pemrograman C++ - Operasi BerkasPemrograman C++ - Operasi Berkas
Pemrograman C++ - Operasi Berkas
KuliahKita
 
Sd pertemuan 3 & 4 (edited)
Sd   pertemuan 3 & 4 (edited)Sd   pertemuan 3 & 4 (edited)
Sd pertemuan 3 & 4 (edited)
biedoen
 
02 linked list_20160217_jintaekseo
02 linked list_20160217_jintaekseo02 linked list_20160217_jintaekseo
02 linked list_20160217_jintaekseo
JinTaek Seo
 
Linked List
Linked ListLinked List
Linked List
said zulhelmi
 
Algoritma dan Struktur Data - Konstruktor dan Destruktor
Algoritma dan Struktur Data - Konstruktor dan DestruktorAlgoritma dan Struktur Data - Konstruktor dan Destruktor
Algoritma dan Struktur Data - Konstruktor dan Destruktor
KuliahKita
 
Predavanja 06 Konstruktori i destruktori
Predavanja 06  Konstruktori i destruktoriPredavanja 06  Konstruktori i destruktori
Predavanja 06 Konstruktori i destruktori
Goran Igaly
 
9.double linked list circular
9.double linked list circular9.double linked list circular
9.double linked list circularHitesh Wagle
 
Gerbang Logika Dasar
Gerbang Logika DasarGerbang Logika Dasar
Gerbang Logika Dasar
Arif Hakim
 
Stack atau tumpukan
Stack atau tumpukanStack atau tumpukan
Stack atau tumpukan
Tenia Wahyuningrum
 

Viewers also liked (20)

MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )
 
Tugas mandiri struktur data
Tugas mandiri struktur dataTugas mandiri struktur data
Tugas mandiri struktur data
 
Makalah Kunjungan Binary Tree
Makalah Kunjungan Binary TreeMakalah Kunjungan Binary Tree
Makalah Kunjungan Binary Tree
 
Stack
StackStack
Stack
 
Manajemen Memori
Manajemen MemoriManajemen Memori
Manajemen Memori
 
Stack
StackStack
Stack
 
Infix postfixcoversion
Infix postfixcoversionInfix postfixcoversion
Infix postfixcoversion
 
Karya ilmiah by salsa
Karya ilmiah by salsaKarya ilmiah by salsa
Karya ilmiah by salsa
 
Class dan object
Class dan objectClass dan object
Class dan object
 
Sd pertemuan 5 & 6
Sd   pertemuan 5 & 6Sd   pertemuan 5 & 6
Sd pertemuan 5 & 6
 
Struktur data pertemuan 1 & 2
Struktur data   pertemuan 1 & 2Struktur data   pertemuan 1 & 2
Struktur data pertemuan 1 & 2
 
Pemrograman C++ - Operasi Berkas
Pemrograman C++ - Operasi BerkasPemrograman C++ - Operasi Berkas
Pemrograman C++ - Operasi Berkas
 
Sd pertemuan 3 & 4 (edited)
Sd   pertemuan 3 & 4 (edited)Sd   pertemuan 3 & 4 (edited)
Sd pertemuan 3 & 4 (edited)
 
02 linked list_20160217_jintaekseo
02 linked list_20160217_jintaekseo02 linked list_20160217_jintaekseo
02 linked list_20160217_jintaekseo
 
Linked List
Linked ListLinked List
Linked List
 
Algoritma dan Struktur Data - Konstruktor dan Destruktor
Algoritma dan Struktur Data - Konstruktor dan DestruktorAlgoritma dan Struktur Data - Konstruktor dan Destruktor
Algoritma dan Struktur Data - Konstruktor dan Destruktor
 
Predavanja 06 Konstruktori i destruktori
Predavanja 06  Konstruktori i destruktoriPredavanja 06  Konstruktori i destruktori
Predavanja 06 Konstruktori i destruktori
 
9.double linked list circular
9.double linked list circular9.double linked list circular
9.double linked list circular
 
Gerbang Logika Dasar
Gerbang Logika DasarGerbang Logika Dasar
Gerbang Logika Dasar
 
Stack atau tumpukan
Stack atau tumpukanStack atau tumpukan
Stack atau tumpukan
 

Similar to Stack tumpukan

Bab 3 stack (tumpukan)
Bab 3 stack (tumpukan)Bab 3 stack (tumpukan)
Bab 3 stack (tumpukan)
Fahuda E
 
Bab 4 stack (tumpukan)
Bab 4 stack (tumpukan)Bab 4 stack (tumpukan)
Bab 4 stack (tumpukan)
Fahuda E
 
Bab 4 stack_tumpukan_
Bab 4 stack_tumpukan_Bab 4 stack_tumpukan_
Bab 4 stack_tumpukan_
arii_manroe
 
Stack_Queue.pdf
Stack_Queue.pdfStack_Queue.pdf
Stack_Queue.pdf
DikkySuryadiSKomMKom
 
TI-struktur_data-stack_n_queue
TI-struktur_data-stack_n_queueTI-struktur_data-stack_n_queue
TI-struktur_data-stack_n_queue
Monica Indah Habsari
 
5 STACK
5 STACK5 STACK
Pertemuan 5 Stack atau Tumpukan
Pertemuan 5 Stack atau TumpukanPertemuan 5 Stack atau Tumpukan
Pertemuan 5 Stack atau Tumpukan
Endang Retnoningsih
 
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)
Setia Juli Irzal Ismail
 
Tugas
TugasTugas
Tugas
TugasTugas
Tugas
yusriren
 
STACK.pptx
STACK.pptxSTACK.pptx
STACK.pptx
Ajipangestu66
 
Algoritma dan Struktur Data - tumpukan
Algoritma dan Struktur Data - tumpukanAlgoritma dan Struktur Data - tumpukan
Algoritma dan Struktur Data - tumpukan
Georgius Rinaldo
 
Algoritma dan Struktur Data - Stack
Algoritma dan Struktur Data - StackAlgoritma dan Struktur Data - Stack
Algoritma dan Struktur Data - Stack
KuliahKita
 
Fungsi rekursif, queue, stack
Fungsi rekursif, queue, stackFungsi rekursif, queue, stack
Fungsi rekursif, queue, stack
Icha Dicaprio
 

Similar to Stack tumpukan (20)

Bab 3 stack (tumpukan)
Bab 3 stack (tumpukan)Bab 3 stack (tumpukan)
Bab 3 stack (tumpukan)
 
Bab 4 stack (tumpukan)
Bab 4 stack (tumpukan)Bab 4 stack (tumpukan)
Bab 4 stack (tumpukan)
 
Bab 4 stack_tumpukan_
Bab 4 stack_tumpukan_Bab 4 stack_tumpukan_
Bab 4 stack_tumpukan_
 
Stack_Queue.pdf
Stack_Queue.pdfStack_Queue.pdf
Stack_Queue.pdf
 
Stack tumpukan
Stack tumpukan Stack tumpukan
Stack tumpukan
 
Tistrukdat4
Tistrukdat4Tistrukdat4
Tistrukdat4
 
TI-struktur_data-stack_n_queue
TI-struktur_data-stack_n_queueTI-struktur_data-stack_n_queue
TI-struktur_data-stack_n_queue
 
5 STACK
5 STACK5 STACK
5 STACK
 
Pertemuan 5 Stack atau Tumpukan
Pertemuan 5 Stack atau TumpukanPertemuan 5 Stack atau Tumpukan
Pertemuan 5 Stack atau Tumpukan
 
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)
 
Tugas
TugasTugas
Tugas
 
Tugas
TugasTugas
Tugas
 
Bab viii stack
Bab viii   stackBab viii   stack
Bab viii stack
 
STACK.pptx
STACK.pptxSTACK.pptx
STACK.pptx
 
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
 
4 queue2
4 queue24 queue2
4 queue2
 
Pertemuan 4 ok
Pertemuan 4 okPertemuan 4 ok
Pertemuan 4 ok
 
3 stack2
3 stack23 stack2
3 stack2
 
Fungsi rekursif, queue, stack
Fungsi rekursif, queue, stackFungsi rekursif, queue, stack
Fungsi rekursif, queue, stack
 

Recently uploaded

Materi matriks dan determinan matriks.pptx
Materi matriks dan determinan matriks.pptxMateri matriks dan determinan matriks.pptx
Materi matriks dan determinan matriks.pptx
BanjarMasin4
 
A.Ekhwan Nur Fauzi_2021 B_ Analisis Kritis Jurnal
A.Ekhwan Nur Fauzi_2021 B_ Analisis Kritis JurnalA.Ekhwan Nur Fauzi_2021 B_ Analisis Kritis Jurnal
A.Ekhwan Nur Fauzi_2021 B_ Analisis Kritis Jurnal
Ekhwan2
 
LAPORAN OPERATOR DAPODIK dfffffffffffffffffffff
LAPORAN OPERATOR DAPODIK dfffffffffffffffffffffLAPORAN OPERATOR DAPODIK dfffffffffffffffffffff
LAPORAN OPERATOR DAPODIK dfffffffffffffffffffff
acehirfan
 
bahan belajar Application Programming Interface (API) Gateway
bahan belajar Application Programming Interface (API) Gatewaybahan belajar Application Programming Interface (API) Gateway
bahan belajar Application Programming Interface (API) Gateway
subbidtekinfo813
 
Transformasi Desa Vokasi Tata Kelola dan Penguatan Pera Pendidikan
Transformasi Desa Vokasi Tata Kelola dan Penguatan Pera PendidikanTransformasi Desa Vokasi Tata Kelola dan Penguatan Pera Pendidikan
Transformasi Desa Vokasi Tata Kelola dan Penguatan Pera Pendidikan
deamardiana1
 
PERATURAN BUPATI TENTANG KODE KLASIFIKASI ARSIP
PERATURAN BUPATI TENTANG KODE KLASIFIKASI ARSIPPERATURAN BUPATI TENTANG KODE KLASIFIKASI ARSIP
PERATURAN BUPATI TENTANG KODE KLASIFIKASI ARSIP
Pemdes Wonoyoso
 
SURAT KEPUTUSAN TENTANG KAMPUNG BERKUALITAS
SURAT KEPUTUSAN TENTANG KAMPUNG BERKUALITASSURAT KEPUTUSAN TENTANG KAMPUNG BERKUALITAS
SURAT KEPUTUSAN TENTANG KAMPUNG BERKUALITAS
Pemdes Wonoyoso
 
Kisi-Kisi Asesmen Madrasah Akidah Akhlak MTs Arridho Tahun Pelajaran 2023-202...
Kisi-Kisi Asesmen Madrasah Akidah Akhlak MTs Arridho Tahun Pelajaran 2023-202...Kisi-Kisi Asesmen Madrasah Akidah Akhlak MTs Arridho Tahun Pelajaran 2023-202...
Kisi-Kisi Asesmen Madrasah Akidah Akhlak MTs Arridho Tahun Pelajaran 2023-202...
mtsarridho
 
manajer lapangan pelaksana gedung SKK JENJANG 6
manajer lapangan pelaksana gedung SKK JENJANG 6manajer lapangan pelaksana gedung SKK JENJANG 6
manajer lapangan pelaksana gedung SKK JENJANG 6
MhdFadliansyah1
 
M. Fattahillah Ajrun Azhiima_2021B_Analisis Kritis Jurnal.pdf
M. Fattahillah Ajrun Azhiima_2021B_Analisis Kritis Jurnal.pdfM. Fattahillah Ajrun Azhiima_2021B_Analisis Kritis Jurnal.pdf
M. Fattahillah Ajrun Azhiima_2021B_Analisis Kritis Jurnal.pdf
AjrunAzhiima
 
654Bagan akun standar Kep 331 Tahun 2021
654Bagan akun standar Kep 331 Tahun 2021654Bagan akun standar Kep 331 Tahun 2021
654Bagan akun standar Kep 331 Tahun 2021
renprogarksd3
 
Modul Ajar Seni Rupa - Melukis Pemandangan - Fase B.pdf
Modul Ajar Seni Rupa - Melukis Pemandangan  - Fase B.pdfModul Ajar Seni Rupa - Melukis Pemandangan  - Fase B.pdf
Modul Ajar Seni Rupa - Melukis Pemandangan - Fase B.pdf
MiliaSumendap
 
Apa itu data dan pengertian data by manajemen 22.pptx
Apa itu data dan pengertian data by manajemen 22.pptxApa itu data dan pengertian data by manajemen 22.pptx
Apa itu data dan pengertian data by manajemen 22.pptx
AssyifaFarahDiba1
 
Analisis Korelasi dan penjelasannya juga bedanya dengan korelasi
Analisis Korelasi dan penjelasannya juga bedanya dengan korelasiAnalisis Korelasi dan penjelasannya juga bedanya dengan korelasi
Analisis Korelasi dan penjelasannya juga bedanya dengan korelasi
afaturooo
 

Recently uploaded (14)

Materi matriks dan determinan matriks.pptx
Materi matriks dan determinan matriks.pptxMateri matriks dan determinan matriks.pptx
Materi matriks dan determinan matriks.pptx
 
A.Ekhwan Nur Fauzi_2021 B_ Analisis Kritis Jurnal
A.Ekhwan Nur Fauzi_2021 B_ Analisis Kritis JurnalA.Ekhwan Nur Fauzi_2021 B_ Analisis Kritis Jurnal
A.Ekhwan Nur Fauzi_2021 B_ Analisis Kritis Jurnal
 
LAPORAN OPERATOR DAPODIK dfffffffffffffffffffff
LAPORAN OPERATOR DAPODIK dfffffffffffffffffffffLAPORAN OPERATOR DAPODIK dfffffffffffffffffffff
LAPORAN OPERATOR DAPODIK dfffffffffffffffffffff
 
bahan belajar Application Programming Interface (API) Gateway
bahan belajar Application Programming Interface (API) Gatewaybahan belajar Application Programming Interface (API) Gateway
bahan belajar Application Programming Interface (API) Gateway
 
Transformasi Desa Vokasi Tata Kelola dan Penguatan Pera Pendidikan
Transformasi Desa Vokasi Tata Kelola dan Penguatan Pera PendidikanTransformasi Desa Vokasi Tata Kelola dan Penguatan Pera Pendidikan
Transformasi Desa Vokasi Tata Kelola dan Penguatan Pera Pendidikan
 
PERATURAN BUPATI TENTANG KODE KLASIFIKASI ARSIP
PERATURAN BUPATI TENTANG KODE KLASIFIKASI ARSIPPERATURAN BUPATI TENTANG KODE KLASIFIKASI ARSIP
PERATURAN BUPATI TENTANG KODE KLASIFIKASI ARSIP
 
SURAT KEPUTUSAN TENTANG KAMPUNG BERKUALITAS
SURAT KEPUTUSAN TENTANG KAMPUNG BERKUALITASSURAT KEPUTUSAN TENTANG KAMPUNG BERKUALITAS
SURAT KEPUTUSAN TENTANG KAMPUNG BERKUALITAS
 
Kisi-Kisi Asesmen Madrasah Akidah Akhlak MTs Arridho Tahun Pelajaran 2023-202...
Kisi-Kisi Asesmen Madrasah Akidah Akhlak MTs Arridho Tahun Pelajaran 2023-202...Kisi-Kisi Asesmen Madrasah Akidah Akhlak MTs Arridho Tahun Pelajaran 2023-202...
Kisi-Kisi Asesmen Madrasah Akidah Akhlak MTs Arridho Tahun Pelajaran 2023-202...
 
manajer lapangan pelaksana gedung SKK JENJANG 6
manajer lapangan pelaksana gedung SKK JENJANG 6manajer lapangan pelaksana gedung SKK JENJANG 6
manajer lapangan pelaksana gedung SKK JENJANG 6
 
M. Fattahillah Ajrun Azhiima_2021B_Analisis Kritis Jurnal.pdf
M. Fattahillah Ajrun Azhiima_2021B_Analisis Kritis Jurnal.pdfM. Fattahillah Ajrun Azhiima_2021B_Analisis Kritis Jurnal.pdf
M. Fattahillah Ajrun Azhiima_2021B_Analisis Kritis Jurnal.pdf
 
654Bagan akun standar Kep 331 Tahun 2021
654Bagan akun standar Kep 331 Tahun 2021654Bagan akun standar Kep 331 Tahun 2021
654Bagan akun standar Kep 331 Tahun 2021
 
Modul Ajar Seni Rupa - Melukis Pemandangan - Fase B.pdf
Modul Ajar Seni Rupa - Melukis Pemandangan  - Fase B.pdfModul Ajar Seni Rupa - Melukis Pemandangan  - Fase B.pdf
Modul Ajar Seni Rupa - Melukis Pemandangan - Fase B.pdf
 
Apa itu data dan pengertian data by manajemen 22.pptx
Apa itu data dan pengertian data by manajemen 22.pptxApa itu data dan pengertian data by manajemen 22.pptx
Apa itu data dan pengertian data by manajemen 22.pptx
 
Analisis Korelasi dan penjelasannya juga bedanya dengan korelasi
Analisis Korelasi dan penjelasannya juga bedanya dengan korelasiAnalisis Korelasi dan penjelasannya juga bedanya dengan korelasi
Analisis Korelasi dan penjelasannya juga bedanya dengan korelasi
 

Stack tumpukan

  • 2. 2 Stack • Stack bersifat LIFO (Last In First Out) • “Benda yang terakhir masuk ke dalam stack akan menjadi yang pertama keluar dari stack TV TV VCD Compo TV VCD Compo TV VCD Compo
  • 3. 3 Ilustrasi Stack • Contohnya, karena kita menumpuk Compo di posisi terakhir, maka Compo akan menjadi elemen teratas dalam tumpukan. Sebaliknya, karena kita menumpuk Televisi pada saat pertama kali, maka elemen Televisi menjadi elemen terbawah dari tumpukan. Dan jika kita mengambil elemen dari tumpukan, maka secara otomatis akan terambil elemen teratas, yaitu Compo. • Operasi-operasi/fungsi Stack – Push : digunakan untuk menambah item pada stack pada tumpukan paling atas – Pop : digunakan untuk mengambil item pada stack pada tumpukan paling atas – Clear : digunakan untuk mengosongkan stack – IsEmpty : fungsi yang digunakan untuk mengecek apakah stack sudah kosong – IsFull : fungsi yang digunakan untuk mengecek apakah stack sudah penuh
  • 4. 4 Stack dengan Struct Array • Definisikan Stack dengan menggunakan struct • Definisikan konstanta MAX_STACK untuk menyimpan maksimum isi stack • Buatlah variabel array data sebagai implementasi stack • Deklarasikan operasi-operasi/function di atas dan buat implemetasinya
  • 5. 5 Program Stack • Deklarasi MAX_STACK #define MAX_STACK 10 • Deklarasi STACK dengan struct dan array data typedef struct STACK{ int top; char data[10][10]; }; • Deklarasi/buat variabel dari struct STACK tumpuk;
  • 6. 6 Program Stack (2) Inisialisasi Stack • Pada mulanya isi top dengan -1, karena array dalam C dimulai dari 0, yang berarti stack adalah KOSONG! • Top adalah suatu variabel penanda dalam STACK yang menunjukkan elemen teratas Stack sekarang. Top Of Stack akan selalu bergerak hingga mencapai MAX of STACK sehingga menyebabkan stack PENUH!
  • 7. 7 Program Stack (2) Ilustrasi Stack pada saat inisialisasi!
  • 8. 8 Program Stack (3) Fungsi IsFull • Untuk memeriksa apakah stack sudah penuh? • Dengan cara memeriksa top of stack, jika sudah sama dengan MAX_STACK-1 maka full, jika belum (masih lebih kecil dari MAX_STACK-1) maka belum full
  • 9. 9 Program Stack (4) • Ilustrasi Stack pada kondisi Full
  • 10. 10 Program Stack (5) Fungsi IsEmpty • Untuk memeriksa apakah stack masih kosong? • Dengan cara memeriksa top of stack, jika masih -1 maka berarti stack masih kosong!
  • 11. 11 Program Stack (6) Fungsi Push • Untuk memasukkan elemen ke stack, selalu menjadi elemen teratas stack (yang ditunjuk oleh TOS) • Tambah satu (increment) nilai top of stack lebih dahulu setiap kali ada penambahan elemen stack. • Asalkan stack masih belum penuh, isikan data baru ke stack berdasarkan indeks top of stack setelah diincrement sebelumnya.
  • 13. 13 Program Stack (8) Fungsi Pop • Untuk mengambil elemen teratas (data yang ditunjuk oleh TOS) dari stack. • Ambil dahulu nilai elemen teratas stack dengan mengakses top of stack, tampilkan nilai yang akan dipop, baru dilakukan decrement nilai top of stack sehingga jumlah elemen stack berkurang
  • 15. 15 Program Stack (10) • Fungsi Print • Untuk menampilkan semua elemen- elemen stack • Dengan cara looping semua nilai array secara terbalik, karena kita harus mengakses dari indeks array tertinggi terlebih dahulu baru ke indeks yang kecil!
  • 17. 17 Studi Kasus Stack • Pembuatan Kalkulator SCIENTIFIC – Misalkan operasi: 3 + 2 * 5 – Operasi di atas disebut notasi infiks, notasi infiks tersebut harus diubah lebih dahulu menjadi – notasi postfix 3 + 2 * 5 – notasi postfiksnya adalah 2 5 * 3 +
  • 18. 18 Studi Kasus Stack (2) • Pop Stack Soal: • Jika berupa operand, maka masukkan ke Stack Hasil • Jika berupa operator, maka: – Pop nilai pertama dari Stack Hasil – Pop nilai kedua dari Stack Hasil – Lakukan operasi sesuai dengan operator yang didapat.
  • 19. 19 Studi Kasus Stack (3) Operator * di pop dari Stack Soal, pop Stack Hasil dua kali, yaitu 5 dan 2 kemudian, simpan 5 ke dalam variabel misalnya a, dan 2 ke dalam variabel misalnya b. Lalu lakukan operasi sesuai dengan operatornya, b <operator> a Jadi b * a, yaitu 2 * 5 kemudian hasilnya disimpan lagi ke dalam StackHasil
  • 20. 20 Studi Kasus Stack (4) • Kemudian lakukan langkah yang sama, sampai selesai. • Pada contoh: operator + dipop dari Stack Soal, pop Stack Hasil dua kali, yaitu 3, disimpan pada variabel a, dan 2, disimpan pada variabel b. Kemudian lakukan operasi sesuai dengan operatornya, b <operator> a • Jadi b + a, yaitu 8 + 3 = 11.
  • 21. 21 Notasi Aritmatik • Notasi INFIX : – operand operator operand : A + B • Notasi PREFIX : – operator operand operand : + A B • Notasi POSTFIX : – operand operand operator : A B +
  • 22. 22 Prioritas Pengerjaan Notasi Aritmatik 1. Tanda kurung : ( ) 2. Eksponensial atau pangkat : ^ 3. Perkalian, Pembagian : *, / 4. Penjumlahan, Pengurangan : +, -
  • 23. 23 Infix ke Prefix Algorithm Contoh (A + B) – (C * D) Untuk pengerjaan infix, perlu diperhatikan urutan sebagai berikut: 1. Pengerjaan dalam kurung ke-1: (A+B), prefix- nya adalah +AB 2. Pengerjaan dalam kurung ke-2: (C*D), prefix- nya adalah *CD 3. Terakhir adalah operator -, +AB - *CD, prefix- nya adalah -+AB*CD
  • 24. 24 Infix ke Postfix Algoritma Contoh (A + B) – (C * D) Untuk pengerjaan infix, perlu diperhatikan urutan sebagai berikut: 1. Pengerjaan dalam kurung ke-1: (A+B), postfix- nya adalah AB+ 2. Pengerjaan dalam kurung ke-2: (C*D), postfix- nya adalah CD* 3. Terakhir adalah operator -, AB+ - CD*, postfix- nya adalah AB+CD*-
  • 25. 25 Prefix ke Infix Algoritma Contoh +/*ABCD Untuk pengerjaan prefix, perlu diperhatikan urutan sebagai berikut: 1. Cari operator ke-1: *, ambil dua operand sebelumnya A dan B, sehingga infix-nya adalah (A * B) 2. Cari operator ke-2: /, ambil dua operand sebelumnya (A *B) dan C, sehingga infix-nya adalah ((A * B) / C) 3. Cari operator ke-3: +, ambil dua operand sebelumnya ((A * B)/C) dan C, sehingga infix-nya adalah ((A * B) / C) + D
  • 26. 26 Prefix ke Postfix Algoritma Contoh +/*ABCD Untuk pengerjaan prefix, perlu diperhatikan urutan sebagai berikut: 1. Cari operator ke-1: *, ambil dua operand sebelumnya A dan B, sehingga postfix-nya adalah AB* 2. Cari operator ke-2: /, ambil dua operand sebelumnya AB* dan C, sehingga postfix-nya adalah AB*C/) 3. Cari operator ke-3: +, ambil dua operand sebelumnya AB*C/ dan D, sehingga postfix-nya adalah AB*C/D+
  • 27. 27 Postfix ke Infix Algoritma Contoh ABCD*/- Untuk pengerjaan postfix, perlu diperhatikan urutan sebagai berikut: 1. Cari operator ke-1: *, ambil dua operand sebelumnya C dan D, sehingga infix-nya adalah (C*D) 2. Cari operator ke-2: /, ambil dua operand sebelumnya B dan (C*D), sehingga infix-nya adalah (B/(C*D)) 3. Cari operator ke-3: -, ambil dua operand sebelumnya A dan (B/(C*D)), sehingga infix-nya adalah A – (B/(C*D))
  • 28. 28 Postfix ke Prefix Algoritma Contoh ABCD*/- Untuk pengerjaan postfix, mencari operator di mulai dari operan terkini sebagai berikut: 1. Cari operator ke-1: *, ambil dua operand sebelumnya C dan D, sehingga prefix-nya *CD 2. Cari operator ke-2: /, ambil dua operand sebelumnya B dan *CD, sehingga prefix-nya adalah /B*CD 3. Cari operator ke-3: -, ambil dua operand sebelumnya A dan /B*CD, sehingga prefix-nya adalah –A/B*CD