0% menganggap dokumen ini bermanfaat (0 suara)
4 tayangan19 halaman

Stack Dan Queue

Stack dan queue merupakan salah satu jenis struktur data. Stack dan queue dapat diimplementasikan dengan array maupun linked list.
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
4 tayangan19 halaman

Stack Dan Queue

Stack dan queue merupakan salah satu jenis struktur data. Stack dan queue dapat diimplementasikan dengan array maupun linked list.
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 19

STACKS

DAN
▸ ASHRI SHABRINA AFRAH, M.T

QUEUES
STRUKTUR DATA LINEAR
▸ Adalah struktur data yang merupakan kumpulan elemen
yang tersusun dalam garis linear.
▸ Stack: merupakan struktur data linear dimana penambahan
dan pengurangan komponen dilakukan di satu ujung saja.
▸ Queue: merupakan struktur data linear dimana
penambahan komponen dilakukan di satu ujung, dan
pengurangan komponen dilakukan di ujung lainnya.
▸ Stacks dan Queue dapat dibuat dengan list, baik array
maupun linked-list.
STACKS
▸ Stacks: Struktur data linear dimana penambahan dan
pengurangan komponen dilakukan pada satu ujung saja,
sesuai dengan prinsip LIFO.

▸ Semua akses dibatasi pada elemen yang paling akhir


disisipkan.

▸ Contoh:
Tumpukan kertas atau piring dimana lembaran/piring yang
diletakkan terakhir (paling atas) akan diambil terlebih dahulu.
STACKS
▸ Impelementasi dari stacks dapat menggunakan list, baik
berbentuk array maupun linked-list.

▸ Operasi-operasi dasar yang dapat dilakukan:


1. Push: menambahkan elemen
2. Pop: mengurangi elemen
3. Top: elemen yang ada di puncak tumpukan

▸ Semua operasi dasar memiliki waktu yang konstan


STACKS
Proses pada setiap operasi dasar Stacks digambarkan melalui bagan di bawah ini.
STACKS
▸ Waktu O(1) per operasi stack. Dengan kata lain, waktu
konstan per operasi. Tidak bergantung pada berapa item
yang tersimpan.

▸ Contoh aplikasi Struktur Data Stacks:


1. Aplikasi pembalik String
2. Mengkonversi bilangan dari sistem desimal ke sistem biner
3. Aplikasi Balanced Symbol
APLIKASI PEMBALIK STRING (CONTOH
APLIKASI STACKS)
▸ Suatu String diproses dimulai dari
yang paling kiri dan ditaruh ke
dalam sebuah Stack karakter per
karakter. Karakter yang paling awal
akan berada di posisi paling bawah
pada Stack.
▸ Selanjutnya, bila String dikeluarkan
satu demi satu mulai dari puncak
Stack ke paling bawah, String yang
baru akan tersusun berkebalikan
dari String aslinya.
KONVERSI BILANGAN DESIMAL KE BINER
(CONTOH APLIKASI STACK)
▸ Aplikasi konversi bilangan Tumpukan ← kosong
WHILE Bilangan > 0
decimal ke biner dapat Digit ← Sisa pembagian Bilangan dengan
2
dibuat dengan sebuah Stack. push(Tumpukan, Digit)
Bilangan ← pembagian bulat Bilangan
Tahap-tahap algoritma dengan 2
END-WHILE
aplikasi tersebut dijelaskan WHILE (Tumpukan tidak kosong)
Digit ← pop(Tumpukan)
dalam algoritma di sebelah Tampilkan Digit
END-WHILE
kanan.
APLIKASI BALANCED SYMBOL (CONTOH
APLIKASI STACK)
▸ Stack dapat digunakan untuk memeriksa pasangan tanda kurung, dimana
setiap kurung buka harus memiliki pasangan berupa kurung tutup dalam
jenis dan lokasi yang tepat (Balanced Symbol).

▸ Contoh: [ { ( ) } ] dianggap benar, sedangkan [ ( { ) ] } dianggap salah.

▸ Penyelesaian masalah ini tidak dapat dilakukan hanya dengan


menghitung jumlah tanda kurung buka dan kurung tutupnya.

▸ Sebuah kurung tutup harus berpasangan dengan sebuah kurung buka


yang paling terakhir ditemukan.
APLIKASI BALANCED SYMBOL (CONTOH
APLIKASI STACK)
Tahapan algoritma Balanced Symbol:

1. Buat Stack kosong

2. Secara berulang baca deretan simbol tanda kurung dari kerakter paling kiri ke kanan:
▸ Apabila simbol yang terbaca adalah kurung buka, maka push simbol tersebut ke
dalam Stack.
▸ Apabila simbol yang terbaca adalah kurung tutup, maka:
- If Stack kosong Then laporkan error
- Else pop Stack, dan periksa apakah simbol yang di-pop merupakan pasangannya
(jika tidak, laporkan error)

3. Di akhir file, jika Stack tidak kosong, laporkan error.


APLIKASI BALANCED SYMBOL (CONTOH
APLIKASI STACK)
Contoh kasus Balanced Symbol:
▸ Input: [ { } ]

Penyelesaian:
1. Stack kosong
2. Baca simbol pertama, yaitu [. Simbol tersebut adalah tanda kurung buka, maka push ke
dalam Stack.
3. Baca simbol kedua, yaitu {. Simbol tersebut adalah tanda kurung buka, maka push ke
dalam Stack.
4. Baca simbol ketiga, yaitu }. Stack tidak kosong, maka pop isi stack yang ada di puncak
(top), yaitu {. Tanda { merupakan pasangan dari }, maka tidak menghasilkan error.
5. Baca simbol keempat, yaitu ]. Stack tidak kosong, maka pop isi stack yang ada di
puncak (top), yaitu [. Tanda [ merupakan pasangan dari ], maka tidak menghasilkan
error.
6. End of file. Stack sudah kosong. Maka input benar.
CONTOH KODE PROGRAM STACKS (JAVA)

Modifikasi kode program tersebut menjadi


program konversi bilangan desimal ke
bilangan biner!
CONTOH KODE PROGRAM STACKS
(PYTHON)
QUEUES
▸ Pada sebuah queue, penambahan elemen dilakukan pada satu ujung,
sedangkan pengurangan elemen dilakukan pada ujung lainnya.

▸ Operasi dasar pada Queue:


1. Enqueue: menambahkan 1 elemen ke dalam queue
2. Dequeue: mengurangi 1 elemen dari queue
3. getFront: posisi lemen yang paling depan

▸ Setiap operasi memiliki kompleksitas yang konstan, yaitu O(1) (mirip


seperti Stacks).
QUEUES
QUEUES

Contoh implementasi Queues:


1. Buffer pada alat keyboard menampung setiap karakter yang
diketikkan sesuai dengan urutan menurut waktu. Artinya,
karakter yang diketikkan terlebih dahulu akan muncul
dahulu di layer monitor.
2. Paket data yang menuju ke sebuah mesin server akan
melewati buffer, yang menampung setiap paket data secara
berurutan (mirip dengan antrian secara fisik).
CONTOH KODE PROGRAM QUEUES (JAVA)

Buatlah fungsi main untuk menjalankan


semua fungsi pada program di atas!
CONTOH KODE PROGRAM QUEUES
(PYTHON)
REVIEW MATERI

1. Jelaskan prinsip LIFO yang diterapkan pada Struktur


Data Stacks!
2. Jelaskan prinsip FIFO yang diterapkan pada Struktur
Data Queues!
3. Sebutkan contoh implementasi Stacks dan Queues!

Anda mungkin juga menyukai