Anda di halaman 1dari 31

Struktur Data

• Aplikasi Stack
• Queue
Aplikasi Stack:
Pengecekan Tanda Kurung
 Pseudocode:
Example Case
Cek apakah string di bawah ini valid!
1. (a+b)}
2. (h-(j-(k-[l-n]))
3. {x+(y-[a+b])*c-[(d+e)]}
Notasi Infix, Postfix, Prefix
 Cara penulisan operator aritmetik dan logika
 Contoh infix : 2 + 2, (5 + 9) x 2 + 6 x 5
 Contoh postfix : 2 2 +, 5 9 + 2 x 6 5 x +
 Contoh prefix : + 2 2, + x + 5 9 2 x 6 5
 Infix: urutan operasi ditentukan berdasarkan
peringkat operator  terkadang perlu tanda
kurung untuk memprioritaskan operator
tertentu
Notasi Infix, Postfix, Prefix
 Postfix
dan prefix tidak memerlukan tanda
kurung.
 Untuk mengubah urutan operasi, urutan
operand dan operator bisa ditukar.
 Contoh: Ekspresi infix 1 + 2 x 3
 Postfix: 1 2 3 x +
 Prefix: + 1 x 2 3
 Contoh: Ekspresi infix (1 + 2) x 3
 Postfix: 1 2 + 3 x
 Prefix: x + 1 2 3
Postfix
 Postfixadalah bentuk persamaan
matematika dimana operator ditulis
setelah kedua operannya.
 Contoh :
 AB+
 CDE*-
 FG/H+
 Latihan : Ubah ke postfix
 ((A+B)*C – (D – E))^(F+G)
Algoritma Infix  Postfix
 Tambahkan tanda kurung untuk
mengelompokkan operasi.
 Keluarkan operator ke sebelah kanan
tanda kurung untuk setiap kelompok satu
per satu.
 Hilangkan semua tanda kurung.
Algoritma Pemrosesan Ekspresi
Postfix dengan Stack
 Contoh:345*-
 Langkah:
 Baca tiap elemen dari depan.
 Jika ditemukan operand, push ke stack
 Jika ditemukan operator, pop 2 operand dari
stack, lalu operasikan 2 operand tersebut
dengan operator dan push hasil operasi ke
dalam stack
 Ulangi sampai tidak ada lagi elemen yang
dapat dibaca dan isi stack kosong
Prefix
 Prefix
adalah bentuk persamaan
matematika dimana operator ditulis
sebelum kedua operannya.
 Contoh :
 +AB
 -C*DE
 +/FGH
 Latihan : Ubah ke prefix
 ((A+B)*C – (D – E))^(F+G)
Algoritma Infix  Prefix
 Tambahkan tanda kurung untuk
mengelompokkan operasi.
 Keluarkan operator ke sebelah kiri tanda
kurung untuk setiap kelompok satu per
satu.
 Hilangkan semua tanda kurung.
Algoritma Pemrosesan Ekspresi
Prefix dengan Stack
 Contoh:+1*23
 Langkah:
 Baca tiap elemen dari belakang.
 Jika ditemukan operand, push ke stack
 Jika ditemukan operator, pop 2 operand dari
stack, lalu operasikan 2 operand tersebut
dengan operator dan push hasil operasi ke
dalam stack
 Ulangi sampai tidak ada lagi elemen yang
dapat dibaca dan isi stack kosong
Pengecekan Palindrom
 Palindrom: Teks yang jika dibaca dari depan
sama dengan jika dibaca dari belakang
 Contoh:
 ADA
 KATAK
 KODOK
 LEVEL
 KASUR RUSAK
 TACO CAT
Algoritma Pengecekan
Palindrom dengan Stack
 Langkah-langkah:
 Baca teks, karakter per karakter dari array
A (array awal)
 Masukkan tiap karakter yang terbaca
pada stack
 Keluarkan tiap karakter dari stack,
bandingkan dengan tiap karakter dari
array A mulai dari posisi terdepan
 Jika sama, maka teks adalah palindrom
Pengecekan Palindrom
dengan Stack
 Code??
Queue
 Definisi
Queue
 Operasi-operasi dasar Queue
 Insert/ enqueue
 Remove/ dequeue
 Contohprogram operasi dasar Queue
menggunakan array dan linked list
Queue
 Sequence of items.
 Items dimasukkan dari ujung belakang,
dikeluarkan dari ujung depan.
 Bersifat FIFO (First In First Out).
Jenis Queue
 Normal queue (single ended).
 Circular queue.
 DE-que (double ended).
Ex. High and low priority policy
 Priority queue.
Penggunaan Queue
 Waiting list – birokrasi.
 Simulasi sistem antrian.
 Antrian printer jobs.
 Antrian proses multitasking dalam CPU.
 Antrian playlist music player.
Operasi Dasar
 Enqueue
Memasukkan item ke dalam queue. Masuk dari
ujung tail
 Dequeue
Mengeluarkan item dari queue. Keluar dari ujung
head
 Is_Full
Mengecek apakah queue penuh.
 Is_Empty
Mengecek apakah queue kosong.
 Initialize
Membuat queue untuk pertama kali.
 Head
Mengecek elemen pertama pada queue
Basic Queue Operations
Deklarasi Class Queue
Circular queue
Method enqueue(data)
Method dequeue
Method view dan head
Linked List Implementation
 Operasi enqueue identik dengan operasi
append
 Operasi dequeue identik dengan operasi
extract_first
 Operasi head identik dengan operasi
first
Enqueue Operation
Dequeue Operation
Linked List Implementation
???
Summary
 Contoh aplikasi stack: Pengecekan tanda
kurung, notasi infix, prefix, postfix,
pengecekan palindrom
 Queue dan implementasinya dalam
Array dan Linked List
Tes Praktek
 Ubah ekspresi berikut:
((A+B)*C – (D – E))^(F+G)
 Ke postfix (NPM Ganjil)
 Ke prefix (NPM Genap)
 Modifikasi
source code MyFirstQueue.cpp
agar dapat menerima antrian data
Nasabah (pada pertemuan 2)
 Tunjukkan queue Anda dapat melakukan
operasi enqueue dan dequeue data
Nasabah

Anda mungkin juga menyukai