Materi Stack Dan Queue

August 22, 2022 | Author: Anonymous | Category: N/A
Share Embed Donate


Short Description

Download Materi Stack Dan Queue...

Description

 

PERTEMUAN 13 STACK DAN QUEUE A.  TUJUAN PEMBELAJARAN Setelah mempelajari materi pertemuan 13, mahasiswa mampu: 1.1 Mahasiswa dapat memahami Definisi Stack 1.2 Mahsaiswa dapat memahami Operasi Push dan Pop 1.3 Mahasiswa dapat memahami Definisi Queue 1.4 Mahasiswa dapat Implementasi Queue

B.  URAIAN MATERI 1.1 Pengenalan Stack Secara sederhana stack atau tumpukan bias diartikan sebagai kumpulan data yang seolaholah diletakkan di atas data yang lain. lain . Satu hal yang perlu diingat bahwa kita bisa menambah (menyisipkan) data dan mengambil (menghapus) data melalui ujung yang sama, yang disebut  sebagai ujung atas stack . Secara sederhana, sebuah stack bisa diillustrasikan seperti gambar dibawah ini :

F E D C B A

atas

Dari gambar diatas, bisa di lihat bahwa kotak B terletak di atas kotak A dan di bawah kotak C. Kotak D terletak diatas kotak C, kotak E terletak diatas kotak D dan seterusnya sampai kotak terakhir. Dari gambar diatas menunjukkan bahwa kotak lewat satu ujung, yaitu bagian atas. Apabila ada kotak lain yang akan disisipkan, maka kotak tersebut akan diletakkan diatas kotak F, dan jika ada kotak yang akan diambil, maka kotak F yang pertama yang akan diambil. Ada 2 operasi dasar yang bisa dilaksanakan pada sebuah stack, yaitu operasi menyisipkan data (push) dan operasi menghapus data (pop).   1.2 Operasi Push dan Pop Operasi push  digunakan untuk memasukkan data ke dalam stack Untuk lebih jelasnya  perhatikan ilustrasi berikut ini. Misalkan kita mempunyai data-data 3, 25 dan 9 dalam stack dengan posisi 3 paling bawah dan 9 paling atas. Dan kita akan memasukkan data 34 ke dalam stack tersebut. Tentu saja data 34 akan diletakkan diatas data 9.

 

Push (34) 34

9

9

25

25

3

3

Prosesnya dari opersi push dapat dilihat pada penggalan pen ggalan program berikut ini :  Procedure PUSH (var T : Tumpukan; X : integer); begin if T.Atas = MaxElemen MaxElemen then writeln (‘TUMPUKAN SUDAH PENUH’)  PENUH’)  else begin T.Atas := T.Atas + 1; T.Isi[T.Atas] := X end end;

 

Operasi pop  adalah operasi untuk menghapus elemen yang terletak pada posisi paling atas dari sebuah tumpukan. tumpukan. Sama halnya dengan operasi push, maka dengan deklarasi tumpukan seperti diatas, prosedur untuk operasi pop bisa dengan mudah kita implementasikan, yaitu :  Procedure POP (var T : Tumpukan);

begin if T.Atas = 0 then writeln (‘TUMPUKAN SUDAH KOSOSNG’)  KOSOSNG’)  else T.Atas := T.Atas –  T.Atas –   1 1 end; 1.3 Definisi Queue.

Queue merupakan suatu struktur data linier. Konsepnya hampir sama dengan stack,  perbedaannya adalah operasi penambahan dan penghapusan pada ujung yang berbeda. Penghapusan dilakukan pada bagian DEPAN (FRONT) dan penambahan dilakukan pada  bagian BELAKANG (REAR). Elemen-elemen didalam queue dapat bertipe data integer, real, record dalam bentuk sederhana atau terstruktur.

 

Queue disebut juga “waiting line” yaitu penambahan pena mbahan elemen baru dilakukan pada BELAKANG dan penghapusan elemen dilakukan pada bagian DEPAN. Sistem pengaksesan pada data queue menggunakan sistem FIFO, artinya elemen yang pertama masuk itu akan keluar pertama dari queue. Implementasi queue dapat ditemukan antara lain : a.  Penjualan karcis kereta api, bioskop  b.  Penjadualan pencetakan (spooling system) c.  Penjadualan pemakaian CPU, pada clien server. d.  Pemakaian jalur I/O (input/output) pada sistem komputer e.  Penyimpanan barang di Apotik, dll.

Posisi Depan

Posisi Belakang  

1.4 ImplementasI Queue a.

Kamus Data Queue  Sebelum struktur data ini bisa digunakan, harus dideklarsikan dahulu dalam bentuk kamus data. Ada beberapa cara mendeklarasikan struktur data ini, salah satunya adalah dengan menggunakan tata susunan linier (larik) dan dua buah variabel yang dikemas dalam tipe data record

b.

Operasi Dasar Queue 

Operasi-operasi dasar yang dapat diterapkan adalah sebagai berikut :   CreateQueue(Q) : Membuat queue baru Q, dengan jumlah elemen kosong   MakeNullQ(Q) : Mengosongkan queue Q, jika ada elemen maka semua elemen dihapus.   EmptyQ : Queue kosong ?, menguji apakah queue Q kosong   FullQ : Antian penuh?, menguji apakah queue Q penuh 

  

TambahQ(a,Q) : Memasukkan elemen baru pada x kedalam Ambil (Q,x) : Mengeluarkan elemen depan queuequeue Q

 

c.  Sirkuler Queue

Pada queue diatas perlu dilakukan penggeseran untuk menghindari sela kosong didepan queue, agar queue bisa diisi kembali. Dengan queue sirkuler penggeseran tidak perlu dilakukan. Berikut ilustrasi mengenai queue sirkuler. 1 2 3 4 5 6 7 8 Atrian sirkuler, prinsipnya sama dengan queue biasa, untuk mempermudah penggambaran lajur linier digambarkan dalam bentuk lingkaran. Untuk penambahan elemen baru pada queue sirkulasi ini, jika BELAKANG = MaksQ = 8, maka BELAKANG diset menjadi 1 (bila queue belum penuh) Berikut persamaan dan beberapa perbedaan pe rbedaan sirkulasi sirkuler :   Kamus data queue sirkuler sama dengan queue biasa   Kondisi kosong, 1 elemen dan penuh No KONDISI 1 Kosong DEPAN = 0 dan BELAKANG = 0 2 1 elemen DEPAN = NELAKANG dan DEPAN 0 3 Penuh DEPAN = 1 dan BELAKANG = MaksQ atau DEPAN –  DEPAN  –  BELAKANG  BELAKANG = 1 d. Representasi Queue

Didalam komputer suatu queue biasanya direpresentasikan dalam bentuk array queue dari dua variabel pointer FRONT (lokasi elemen depan) dan REAR (lokasi elemen belakang). Keadaan FRONT = Null menunjukkan queue kosong. Jika suatu elemen dihapsu dari queue, harga REAR bertambah satu.

C.  LATIHAN/TUGAS 1.  Buatlah salah satu contoh program sederhana dari STACK ATAU QUEUE  dan  jalankan di program java, dengan ketentuan sebagai berikut?

  Buat Project ditulis dengan (PSD_NamaAnda_NIM)



  Buat Package ditulis dengan (NamaAnda_Kelas)



  Buat Class Java, Ditulis (ContohStack/Queue)



  Hasil Program di ScreenShoot/Capture



D.  REFERENSI  

Munir Algortitma, dan Struktur data dalam bahasa java, Adi Nugroho, Penerbit Andi Offset, Yogyakarta, 2008   CRC Algoritm and Data Structure inC++, Alan Parker, CRC Press, 1993   Konsep dan Implementasi Struktur Data, Teddy Agus, Agus Projono, Penerbit Informatika, Bandung, 2006.

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF