Minggu, 08 Maret 2020

Stack and Queue


A. Apa yang dimaksud dengan Stack and Queue?
  • Stack (Tumpukan) adalah kumpulan elemen-elemen data yang disimpan dalam satu lajur linear.  Elemen-elemen di dalam tumpukan dapat bertipe integer, real, record dalam bentuk sederhana atau terstruktur.
  • Konsep utamanya adalah LIFO (Last In First Out), benda yang terakhir masuk dalam stack akan menjadi benda pertama yang dikeluarkan dari stack.
  • Queue merupakan suatu struktur data linear. Konsepnya hampir sama dengan Stack, perbedaannya adalah operasi penambahan dan penghapusan pada ujung yang berbeda.  Elemen-elemen di dalam antrian dapat bertipe integer, real, record dalam bentuk sederhana atau terstruktur.
  • Sistem pada pengaksesan pada Queue menggunakan sistem FIFO (First In First Out), artinya elemen yang pertama masuk itu yang akan pertama dikeluarkan dari Queue.
B.  Operasi dalam Stack
  • Cek posisi Teratas (Peek)
Operasi peek digunakan untuk mengecek posisi teratas dalam stack.
  •  Operasi Pop 
Operasi pop dalam stack adalah operasi untuk mengambil/menghapus elemen yang terletak pada posisi paling atas dari sebuah tumpukan.
  • Operasi Push 
Operasi push dalam stack adalah operasi yang memasukkan elemen yang akan diletakkan pada posisi teratas dari tumpukan.
  •  Cek Stack kosong (Isempty) 
Fungsi yang melakukan pengecekan apakah stack dalam kondisi kosong.
  • Cek Stack penuh (full)
Fungsi yang melakukan pengecekan apakah stack dalam kondisi penuh atau tidak.

C. Operasi dalam Queue

  • Prosedur enqueue
Prosedur ini digunakan untuk memasukkan sebuah data/ nilai ke dalam queue. Sebelum sebuah data/ nilai dimasukkan ke dalam queue, maka prosedur ini terlebih dahulu melakukan pengecekan terhadap posisi HEAD dan TAIL. Jika posisi HEAD dan TAIL masih berada pada indeks ke-0 (artinya queue masih kosong), maka prosedur ini akan menempatkan HEAD dan TAIL pada indeks ke-1 terlebih dahulu, baru setelah itu memasukkan data/ nilai ke dalam array data queue. Namun, jika posisi HEAD dan TAIL tidak berada pada posisi ke-0, maka posisi TAIL yang akan dinaikkan satu level. Jadi, pada proses enqueue, TAIL-lah yang berjalan seiring masuknya data baru ke dalam antrian, sedangkan HEAD akan tetap pada posisi ke-1.
  • Prosedur dequeue
Prosedur ini digunakan untuk mengeluarkan atau membuang sebuah data/ nilai yang paling awal masuk (yang berada pada posisi HEAD, yakni yang paling depan dari antrian) ke dalam queue. Pekerjaan yang dilakukan oleh prosedur ini adalah menaikkan nilai HEAD satu level. Jadi, setiap satu kali data dikeluarkan, maka posisi HEAD naik bertambah satu level.
  • Tampil()
Untuk menampilkan nilai-nilai elemen
  • Clear()
Untuk menghapus elemen-elemen Antrian
  • IsFull
Untuk mengecek apakah Antrian sudah penuh atau belum
  • IsEmpty()
Untuk memeriksa apakah Antrian sudah penuh atau belum
  • Create()
Untuk menciptakan dan menginisialisasi Queue 
 


D. Prefix, Infix, and Postfix

 
Prefix, infix dan postfix merupakan suatu cara penulisan atau notasi suatu operasi perhitungan / matematika berdasarkan operan dan operatornya. 
  • Operan adalah bilangan/angka yang kita akan hitung
  • Operator adalah lambang perhitungan yang kita gunakan untuk mengoperasikan operan, misalnya +, -, /, *, ^, dsb.
  • Prefix   : Operator diletakan sebelum operan. 
  • Infix     : Operator diletakan diantara operan.
  • Posfix  : Operator diletakan setelah operan.

berikut contohnya :

E. Mengapa Kita Menggunakan Notasi Prefix / Postfix?

Mungkin banyak orang bertanya mengapa kita memerlukan notasi prefix dan postfix, padahal sudah ada notasi infix yang secara manual lebih mudah untuk dibaca dan digunakan. Berikut manfaat menggunakan notasi prefix/postfix :
  • Prefix/Postfix tidak memerlukan bracket/tanda kurung ( ) untuk memprioritaskan presedensi operator.
  • Prefix/Postfix lebih mudah dievaluasi komputer. 





Tidak ada komentar:

Posting Komentar

Rangkuman Data Structure