Minggu, 08 Maret 2020

Data Structures Session 4
Stack & Queue

1. Stack 
Stack atau tumpukan adalah suatu kumpulan elemen dimana elemen yang baru dimasukkan yang dapat diakses. Sebuah stack biasa di implementasikan menggunakan array atau bisa juga dengan linked list. Sebuah stack biasa menggunakan prinsip Last In First Out (LIFO), yang artinya masuk terakhir pertama. Contoh penerapan prinsip LIFO adalah sebuah kumpulan tumpukan buku yang baru saja dimasukkan ke dalam toko dengan jenis buku yang sama, pasti buku yang paling atas yang terjual terlebih dahulu.

Adapun pemanfaatan stack adalah untuk perhitungan ekspresi aritmetika(postfix),algoritma Backtracking(runut balik) dan algoritma rekursif.

Operasi-Operasi dalam Stack
1.Push : Menambahkan sebuah data baru
2.Pop : Menghapus sebuah data
3.Top : Mengambil data yang paling atas
2.Queue
Queue atau antrian merupakan struktur data linear dimana penambahan komponen dilakukan disatu ujung, sementara pengurangan dilakukan diujung lain. Queue sendiri menggunakan prinsip First In First Out (FIFO), yang artinya masuk pertama keluar pertama. Contoh penerapan FIFO di dalam kehidupan sehari-hari adalah antrian di dalam sebuah bank, yang setiap datang nasabah diwajibkan mengambil nomor antrian, dan yang datang lebih dahulu pastilah akan di panggil duluan  oleh teller bank
Operasi-Operasi dalam Queue
1.Fungsi insert atau Enqueue digunakan untuk memasukkan sebuah data atau sebuah nilai ke dalam queue
2.Fungsi delete atau Dequeue digunakan untuk mengapus sebuah data di dalam queue.

Circular Queue
Jika kita menggunakan array untuk queue seperti di atas, maka ketika ada proses pengambilan (dequeue) ada proses pergeseran data. Proses pergeseran data ini pasti memerlukan waktu apalagi jika elemen queue-nya banyak. Oleh karena itu solusi agar proses pergeseran dihilangkan adalah dengan metode circular array


Perbedaan antara Stack dan Queue

Infix, Postfix, and Prefix Notation
Terdapat 2 istilah dalam notasi Infix, Postfix, Prefix
1.Operator : Tanda operasi ('+', '-', '/', '*', '%')
2.Operand : Nilai asal yang digunakan dalam operasi contohnya angka 1-10 dst.
Hal yang penting saat menggunakan notasi ini adalah komputer akan lebih cepat mengeksekusi program, dan lebih mengehemat penggunaan memori komputer.

Infix, Postfix, Prefix 
Keterangan : Opd --> Operand 
                      Opr --> Operator

1.Infiix  : operator ditulis diantara operand --> (opd opr opd)
Contoh :  10  + 3 * 4
2.Postfix : operator ditulis setelah operand --> (opr opr opd)
Contoh :  10 3 4 * +
3.Prefix : operand ditulis sebelum operator-->(opd opr opr)
Contoh : + 10 * 3 4

Contoh lain 
Infix : ((1 + 3) / (100 * 5) ^ 30)
Prefix : / + 1 3 ^ * 100 5 30
Postfix : 1 3 + 100 5 * 30 ^ / 

Breadth First Search and Depth First Search 
1. Breadth First Search 
Metode pencari BFS adalah salah satu metode pencarian yang sederhana, dimana pencarian dimulai dari titik awal, kemudian dilanjutkan ke semua cabang titik tersebut secara berurutan. Jika titik yang dituju belum ditemukan, maka akan ada perulangan ke masing-masing titik cabang dari masing-masing titik, sampai titik tujuan ditemukan.
Source : binusmaya.binus.ac.id
 Visit order : A, B, C, D, E
Untuk kelanjutannya, ada di link dibawah ini : 

2.Depth First Search 
Algoritma ini mirip dengan Algoritma BFS (Breadth First Search) yang sudah dijelaskan sebelumnya. Jika Algoritma BFS (Breadth First Search) melakukan perhitungan secara terurut dari urutan pertama sampai urutan terakhir, maka algoritma ini melakukan kebalikannya, yaitu melakukan perhitungan secara terurut dari urutan terakhir. Setelah menghabiskan semua kemungkinan dari titik terakhir, barulah mundur ke titik-titik sebelumnya sampai pada titik pertama.

visit order : A, C, B, E, D.
Untuk kelanjutannya ada di link dibawah ini 


Tidak ada komentar:

Posting Komentar