Sunday, April 28, 2013

Stack

Stack


Pengertian Stack
Salah satu konsep yang efektif untuk menyimpan dan mengambil data adalah terakhir masuk sebagai yang pertama keluar (Last In First Out / LIFO). Dengan konsep ini, pengambilan data akan berkebalikan urutannya dengan penyimpanan data.
Stack adalah sebuah kumpulan data dimana data yang diletakkan di atas data yang lain. Dengan demikian stack adalah struktur data yang menggunakan konsep LIFO. Dengan demikian, elemen terakhir yang disimpan dalam stack menjadi elemen pertama yang  diambil.  Dalam  proses komputasi, untuk  meletakkan  sebuah  elemen  pada  bagian atas dari  stack,  maka  kita  melakukan  push. Dan untuk  memindahkan  dari  tempat  yang atas tersebut, kita melakukan pop. 


Ada beberapa  cara untuk  menyajikan  sebuah  stack  tergantung  pada permasalahan yang akan  kita  selesaikan.  Dalam  bab  ini  kita  akan  menggunakan  cara  yang  paling  sederhana,  tipe  data yang  sudah  kita  kenal,  yaitu  array. Kita  dapat  menggunakan  array  untuk  menyajikan  sebuah stack, dengan  anggapan  bahwa banyaknya  elemen  maksimum  dari  stack tersebut  tidak akan  melebihi  batas maksimum banyaknya elemen dalam array. Pada  saat  ukuran  stack,  kalau  kita  teruskan  menambah  data  lagi,  akan  terjadi overflow.
Dengan  demikian  perlu  data  tambahan  untuk  mencatat  posisi  ujung  stack. Dengan  kebutuhan seperti  ini,  kita  dapat  menyajikan  stack  dengan  menggunakan  tipe data  struktur  (struct)  yang terdiri  dari  dua  field. Field  pertama  bertipe  array  untuk menyimpan  elemen  stack,  medan  kedua bertipe  integer  untuk  mencatat  posisi  ujung stack


Gambar 3.1 Ilustrasi Sebuah Stack
      Penyajian Stack
Ada beberapa cara untuk menyajikan sebuah stack tergantung pada permasalahan yang akan kita selesaikan. Kita dapat menggunakan array untuk menyajikan sebuah stack, dengan anggapan bahwa banyaknya elemen maksimum dari stack tersebut tidak akan melebihi batas maksimum banyaknya elemen dalam array.
Pada saat ukuran stack, kalau kita teruskan menambahkan data lagi, akan terjadi overflow. Dengan demikian perlu data tambahan untuk mencatat posisi ujung stack. Dengan kebutuhan seperti itu, kita dapat menyajikan stack dengan menggunakan tipe data struktur (struct) yang terdiri dari dua field. Field pertama bertipe array untuk menyimpan elemen stack, medan kedua bertipe integer untuk mencatat posisi ujung stack.


     Operasi Pada Stack
Operasi-operasi dasar pada stack adalah sebagai berikut :
1.      Push : digunakan untuk menambah item pada stack pada tumpukan paling atas
2.      Pop : digunakan untuk mengambil item pada stack pada tumpukan paling atas
3.      Clear : digunakan untuk mengosongkan stack
4.      IsEmpty : fungsi yang digunakan untuk mengecek apakah stack sudah kosong
5.      IsFull : fungsi yang digunakan untuk mengecek apakah stack sudah penuh


      Notasi POLISH
Salah satu pemanfaatan stack adalah untuk menulis ungkapan menggunakan notasi tertentu. Seperti kita ketahui, dalam penulisan ungkapan, khususnya ungkapan numeris, kita selalu menggunakan tanda kurung untuk mengelompokkan bagian mana yang akan dikerjakaan lebih dahulu. Sebagai contoh, dalam ungkapan :
        (A + B) * (C – D)
Suku (A + B) akan dikerjakan lebih dahulu, kemudian suku (C – D), dan terakhir mengalikan hasil yang diperoleh dari dua suku tersebut. Cara penulisan ungkapan tersebut sering disebut dengan notasi infix, yang artinya adalah bahwa operator ditulis diantara dua operand.
Seorang ahli matematika mengembangkan satu cara penulisan ungkapan numeris yang selanjutnya disebut notasi polish atau notasi prefix, yang artinya adalah operator ditulis sebelum kedua operand yang akan disajikan. Sebagai contoh :
                    Infix                                                    Prefix
                    A – B / (C * D ^ E)                             -A/B*C^DE
                Notasi lain, yang merupakan kebalikan notasi prefix, adalah notasi postfix atau notasi suffix, atau lebih dikenal dengan notasi Polish Terbalik (Reverse Polish Notation atau RPN). Dalam hal ini operator ditulis sesudah operand. Sebagai contoh :
                    Infix                                                    Postfix
                    A – B / (C * D ^ E)                             ABCDE^*/-


Selengkapnya download disini DOWNLOAD

0 komentar:

Post a Comment

Contact

Talk to us

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores iusto fugit esse soluta quae debitis quibusdam harum voluptatem, maxime, aliquam sequi. Tempora ipsum magni unde velit corporis fuga, necessitatibus blanditiis.

Address:

9983 City name, Street name, 232 Apartment C

Work Time:

Monday - Friday from 9am to 5pm

Phone:

595 12 34 567

Followers

I'am at Malang University

free counters

Chatroom

Clock