Minggu, 30 Maret 2014

Stack and Implementation

Stack.

  Atau Tumpukan, adalah kumpulan dari elemen-elemen data yang disimpan dalam sebuah jalur linear, yang hanya dapat diakses melalui 1 jalan saja (pintu masuk dan keluar sama).

  Sebagai contoh Kotak Bola Tennis. Jalan tersebut dinamakan sebagai TOP, yaitu Posisi paling atas dari suatu tumpukkan. Misalnya kotak tersebut memiliki kondisi maksimal berisi 3 buah bola, kotak tersebut dalam keadaan terbuka, dan kosong. Kotak tersebut masih kosong, posisi TOP tadi berada di dasar kotak sehingga TOP. Jika kita memasukkan 1 bola ke dalamnya, maka posisi TOP tersebut akan naik dan berada di atas bola 1. Jika kita masukkan bola hingga bola ke-3, maka posisi TOP sekarang berada di posisi tutup kotak bola tennis(Posisi MAX), artinya kotak bola tennis sudah tidak mampu untuk menampung bola lainnya.
Di dalam Struktur Data, Stack dapat digunakan untuk Parsing, Evaluation, dan Backtrack. Elemen-elemen yang ditumpukkan dapat berupa Integer, Char, String, dan lain sebagainya.

   Konsep utama dari Stack adalah LIFO (Last In First Out) atau disebut sebaga FILO(First In Last Out). Benda terakhir yang dimasukkan ke dalam tumpukkan akan menjadi benda pertama yang keluar di dalam Stack. Memasukkan elemen baru ke dalam Stack disebut PUSH dan Mengeluarkan elemen lama dari dalam Stack disebut POP. Dengan konsep LIFO/FILO yang digunakan, maka suatu element yang di PUSH terakhir kali adalah elemen yang dapat di POP untuk pertama kali.

Contoh :



Beberapa Fungsi yang dapat digunakan dalam Stack :
 1. isEmpty : Digunakan untuk mengecek kosong atau tidaknya suatu Stack.
 2. isFull : Digunakan untuk mengecek penuh atau tidaknya suatu Stack.
 3. Size : Digunakan untuk mengetahui jumlah data pada Stack.
 4. Top / Peek / Pick : Digunakan untuk mengambil data TOP dari suatu Stack.
 5.Clear : Digunakan untuk mengosongkan Stack.


Representasi pada Array.

   Nilai Index digunakan untuk mengetahui letak dari suatu elemen di dalam suatu Stack. Sehingga elemen pertama kali yang dimasukkan nilai indexnya adalah 0 (dalam bahasa C), dan nilai TOP akan berpindah menjadi nomor index 1. Dari hal ini dapat disimpulkan bahwa data dalam suatu stack penuh, jika :
TOP == MAX(total data) - 1.

Jika TOP == NULL ,
maka Stack dinyatakan kosong.

Contoh Representasi pada Array :



Representasi pada Linked List.
  
    Setiap yang node yang ada di sini memiliki 2 fungsi, yaitu
  1. Menyimpan nilai.
  2. Menyimpan alamat pointer Node berikutnya.

   Pointer TOP bergerak, untuk menambah atau menghapus data yang ada.

Contoh :

   


Infix, Prefix, and Postfix.

   Salah satu bentuk konkrit penggunaan Stack adalah mengubah Infix, menjadi Prefix atau Postfix.
Infix = Operator di antara Operand.
Prefix = Operator di depan Operand.
Postfix = Operator di belakang Operand.


   Operator adalah angka, ataupun variabel yang digunakan untuk menyatakan sebuah nilai. sedangkan Operand adalah %, x, /, +, -,  atau alat yang digunakan untuk membantu memanipulasi sebuah nilai.
Ketika melakukan suatu Compute, atau menghitung suatu permasalahan matematika dalam kehidupan sehari-hari, kita menggunakan Infix. Di dalam perhitungan Infix, mengetahui Precedense-nya sangat penting untuk memecahkan permasalahan matematika. Precedense adalah operand dari suatu permasalahan matematika yang harus diprioritaskan terlebih dahulu pengerjaannya.

Depth First Search and Breadth First Search.

   DFS dan BFS adalah 2 jenis metode pencarian suatu data dalam Tree atau Graph. Terdapat perbedaan diantara keduanya :


*Urutan berdasarkan Angka

*Urutan berdasarkan Angka

Giga Dharmawan Goeij
1701327806
42 PFT

www.binus.ac.id ||www.skyconnectiva.com

Tidak ada komentar:

Posting Komentar