Friday, March 28, 2014

Session 5: Stack and Application

3/28/2014 10:02:00 PM Posted by Unknown No comments
Stack adalah tumpukan dari suatu data.
Dalam kehidupan stack bisa dinyatakan seperti tumpukan buku yg memiliki konsep:
- LIFO (Last in First Out) : buku yang terakir masuk akan pertama kali keluar
- FILO (First in Last Out) : buku yang pertama kali masuk akan keluar terakir

Dalam stack ada 2 variabel ;
TOP : untuk menunjukan data teratas pada stack
MAX : untuk menujukan jumlah data pada stack

Jika Top = NULL maka stack kosong
jika Top = Max - 1 berarti stack penuh.
Pada stack, jika menambah data maka TOP akan naik dan jika menghapus data TOP akan turun.

Operasi pada stack :
- is_empty(); = untuk mengecek stack kosong
- is_full(); = untuk mengecek stack penuh
- top(); atau peek(); = untuk kembali ke index top
- push(isi); = untuk menambah isi pada TOP didalam stack
- pop(); = untuk menghapus data dari TOP dalam stack

Queue adalah barisan/antrian dari suatu data

Queue memiliki 2 konsep
FIFO (First in First Out) : data yang pertama masuk akan keluar pertama
LILO (Last in Last Out) : data yang terakir masuk akan keluar terakir

Tipe Queue:
Preority Queue : antrian yang suatu datanya ada yang didahulukan
Circular Queue : antrian yang bersika sirkular

Depth First Search (DFS) dan Breadth First Search (BFS)

DFS : pencarian solusi dengan menelusuri lebih dahulu akar - akarnya,jika tidak ketemu pencarian akan dipindah ke node yang lain pada level yang sama

Keuntungan menggunakan metode DFS:
- Membutuhkan memori yang relative kecil, karena hanya node-node pada lintasan yang aktif saja yang disimpan.
- Secara kebetulan, metode depth-first search akan menemukan solusi tanpa harus menguji lebih banyak lagi.

Kekurangan dari metode DFS ini yaitu:
- Memungkinkan tidak ditemukannya tujuan yang diharapakan.
- Hanya akan menemukan 1 solusi pada setiap pencarian.

BFS : pencarian solusi dimana semua node pada level n akan ditelusuri terlebih dahulu

Keuntungan yang didapat apabila menggunakan metode BFS ini yaitu:
- Tidak akan menemui jalan buntu.
- Menjamin ditemukannya solusi (jika solusinya memang ada) dan solusi yang ditemukan pasti yang paling baik.
- Jika ada satu solusi maka bread-first search akan menemukannya.

Dan kekurangan dari metode BFS ini yaitu:
- Membutuhkan memori yang cukup banyak.
- Membutuhkan waktu yang cukup lama.

0 komentar:

Post a Comment