Linear Data Model(Stack)


Stack dan Queue adalah contoh dari ADT. Stack dan Queue vs Array, array merupakan penyimpanan data terstruktur saat stack dan queue digunakan oleh programmer sebagai alat. Stack (tumpukan) merupakan wadah yang mengijinkan untuk mendorong dan menarik data sedangkan Queue (antrian) merupakan wadah yang mengijinkan untuk mengantri dan membatalkan antrian. Tidak ada penjelasan lebih  detail tetapi, dalam array data dapat diakses selama akses struktur data tidak diijinkan dan sifat mereka lebih abstrak daripada array biasa.

 

Stack (Tumpukan)

Stack berarti tumpukan. Konsep Stack digunakan dalam struktur data

Stack merupakan suatu susunan koleksi data di mana data dapat ditambahkan dan dihapus yang mana selalu dilakukan pada bagian akhir data, yang biasa disebut dengan top of stack. Stack bersifat LIFO (Last In Fist Out) yang artinya Elemen yang terakhir masuk ke dalam stack akan menjadi yang pertama keluar dari stack.

 

Penerapan Stack

Stack merupakan struktur data yang sangat penting. Stack banyak digunakan secara internal oleh sistem operasi saat komputer mengalami interupsi, contoh:

  • Berasal dari komputer: contohnya interupsi waktu
  • Berasal dari pengguna: contohnya saat pengguna menekan tombol mouse

Saat terjadi interupsi, sistem operasi biasanya akan menyimpan nilai peubah-peubah yang sedang berjalan dalam stack dengan tujuan agar jika interupsi itu selesai, sistem operasi akan bisa melanjutkan keadaan yang mana keadaan sebelum interupsi itu terjadi.

 

Operasi Stack

  • Push: fungsi ini digunakan untuk menambah item pada stack di tumpukan paling atas
  • Pop: fungsi ini digunakan untuk mengambil item pada stack di tumpukan paling atas
  • Clear: fungsi ini digunakan untuk mengosongkan item pada stack
  • isEmpty: merupakan sebuah fungsi yang digunakan untuk mengecek apakah item pada stack kosong atau tidak
  • isFull: merupakan sebuah fungsi yang digunakan untuk mengecek apakah item pada stach sudah penuh atau belum

 

Fungsi Push

  • Untuk memasukkan elemen ke stack, elemen yang dimasukkan selalu menjadi elemen teratas pada stack
  • Setiap kali terdapat penambahan elemen stack maka, nilai top of stack ditambah satu terlebih dahulu (increment) asalkan stack masih belum penuh, kemudian isikan nilai baru ke stack berdasarkan indeks top of stack setelah ditambah satu (di-increment)

 

Fungsi Pop

  • Untuk mengambil elemen dari stack, maka yang akan diambil adalah elemen teratas dari stack
  • Setiap kali ingin mengambil elemen dari stack, maka nilai dari elemen teratas diambil terlebih dahulu dengan mengakses top of stack, lalu menampilkan nilai yang akan diambil, setelah itu baru nilai dari top of stack di-decrement sehingga jumlah elemen pada stack berkurang

 

Fungsi isEmtpy

Fungsi ini digunakan untuk memeriksa apakah stack kosong atau tidak, dengan cara memeriksa top of stack, jika masih -1 maka berarti stack masih kosong, jika tidak -1 maka stack tidak kosong.

 

Fungsi isFull

Fungsi ini digunakan untuk memeriksa apakah stack sudah penuh atau belum, dengan  cara memeriksa top of stack, jika sudah sama dengan maximal dari stack maka stack full, dan jika belum (top of stack masih lebih kecil dari maximal stack) maka stack belum full.

 

Stack dan Rekursif

  • Kebanyakan kompiler/interpreter (termasuk interpreter Java) mengimplementasikan metode rekursif menggunakan stack
  • Saat metode dipangggil, mereka memasukkan (push) argumen-argumen untuk metode yang bersangkutan bersama dengan alamat kembali (return address)-nya (ke mana kendali akan menuju) ke dalam stack dan kemudian sistem operasi akan menyerahkan kendali program ke metode
  • Saat metode berakhir, mereka mengeluarkan kembali (pop) argumen-argumen untuk metode yang bersangkutan bersama dengan alamat kembali dari stack. Argumen-argumen tersebut akan terhapus dari stack, dan kendali program akan menuju ke alamat kembali

Belum ada Komentar untuk "Linear Data Model(Stack)"

Posting Komentar

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel