Skip to content
15 Februari 2009 / Jeffrey Hermanto Halimsetiawan

Stack/Tumpukan dan Queue/Antrian dalam Bahasa Java


Download PDF Version : Stack dan Queue

Stack adalah salah satu struktur data yang memiliki sistem kerja Last In First Out (LIFO), yang terakhir masuk pertama keluar. Dapat di ilustrasikan seperti sebuah tumpukan buku, ketika mengambil sebuah buku di dalam tumpukan itu maka harus diambil satu persatu dari buku yang paling atas dari tumpukan buku tersebut.  Sebuah stack hanya dapat ditambahkan dan dikurangi elemennya hanya dari satu sisi yakni elemen atasnya atau biasa disebut Top Of Stack.

Ilustrasi Stack

Ilustrasi Stack

Fungsi dalam Stack:

  • Fungsi init: fungsi yang digunakan untuk inisialisasi atau membuat stack baru yang masih kosong.
  • Fungsi full: digunakan untuk mengetahui stack penuh atau tidak.
  • Fungsi empty: digunakan untuk mengetahui stack kosong atau tidak.
  • Fungsi clear: digunakan untuk mengosongkan stack. Stack dianggap kosong apabila puncak stack berada pada posisi -1.
  • Fungsi push: digunakan untuk menambahkan data ke dalam stack. Penambahan data tidak bisa dilakukan apabila stack sudah penuh. Urutan perintahnya adalah: menambahkan nilai top dan menambahkan data pada posisi nilai top. Jika dalam Linked List menggunakan method addLast
  • Fungsi pop: digunakan untuk mengeluarkan data teratas stack dengan syarat bahwa stack tidak kosong. Urutan perintahnya adalah : menghapus data pada posisi nilai top dan menurunkan nilai top. Jika dalam Linked List menggunakan method removeLast

Queue adalah kumpulan data dengan penambahan data hanya melalui satu sisi, yaitu belakang (tail) dan penghapusan data hanya melalui sisi depan (head). Berbeda dengan stack yang bersifat LIFO maka queue bersifat FIFO(First In First Out), yaitu data yang pertama masuk akan keluar terlebih dahulu dan data yang terakhir masuk akan keluar terakhir.

Ilustrasi Queue

Ilustrasi Queue

Fungsi dalam Queue:

  • Fungsi init : digunakan untuk membuat queue baru atau kosong, yaitu dengan memberi nilai awal (head) dan nilai akhir (tail) dengan -1.
  • Fungsi full: digunakan untuk mengetahui apakah queue sudah penuh atau belum. Dilakukan dengan memeriksa nilai akhir (tail) apakah sudah sama dengan maksimal queue.
  • Fungsi empty: digunakan untuk mengetahui apakah queue masih kosong atau tidak. Dilakukan dengan memeriksa nilai akhir (tail) bernilai -1 atau tidak.
  • Fungsi enqueue : digunakan untuk menambahkan elemen ke dalam queue.
  • Fungsi dequeue : digunakan untuk mengambil elemen dari queue, dengan cara memindahkan semua elemen satu langkah ke posisi depannya sehingga elemen yang paling depan tertimpa.
  • Fungsi clear : digunakan untuk menghapus semua elemen dalam queue. Ada dua cara yang bisa digunakan, yaitu menuliskan fungsi seperti inisialisasi atau memanggil fungsi remove sampai queue kosong.
  1. hada / Mar 5 2009 23:07

    brother,,,,thanks ya..
    hada minta…..

    • Jeffrey Hermanto / Mar 6 2009 12:39

      ok2..
      sama2..

  2. dee_ / Mar 21 2009 18:52

    makasih ms,..

    • Jeffrey Hermanto / Mar 22 2009 10:50

      o y, sama2..

  3. ariandi / Apr 28 2009 07:12

    maaf mas coding program untuk java nya mana y???

    • Jeffrey Hermanto / Apr 29 2009 20:31

      o y, memang sengaja gk dtulis karena sebenernya stack sama queue kan cuman konsepnya aja..
      dan penerapannya bisa pake linked list yg codingannya udah saya tulis d tulisan sebelumnya..

      stack bisa saja menggunakan linked list :
      push –> addFirst
      pop –> removeFirst

      queue :
      enqueue –> addLast
      dequeue –> removeFirst

  4. rindu ratu / Okt 31 2009 15:29

    wah…wah…kerennnnnnn…page yang laen jg keren

    • Jeffrey Hermanto / Nov 1 2009 12:04

      thx😀

  5. chisya / Jan 20 2010 20:13

    mantap bwt tgs kuliah ni…
    mksih y…

    • Jeffrey Hermanto / Jan 22 2010 23:02

      sama2..
      semoga bermanfaat😀

  6. k zamlahani / Jul 1 2010 08:58

    makasih bos…
    tapi keuntungan n kerugiannya ga ada ya?

    • Jeffrey Hermanto / Sep 9 2010 18:49

      menurut saya, keuntungan dan kerugiannya tentu saja bergantung pada permasalahan yang dihadapi😀

  7. Yan / Jan 7 2011 08:53

    Info yang bagus

    • Jeffrey Hermanto / Jan 7 2011 09:01

      terima kasih, semoga bermanfaat😀

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: