Materi Stack Dan Queue
August 22, 2022 | Author: Anonymous | Category: N/A
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