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 seolah-
olah diletakkan di atas data yang 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 atas
E
D
C
B
A
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).
34
9 9
25 25
3 3
Prosesnya dari opersi push dapat dilihat pada penggalan program berikut ini :
Procedure PUSH (var T : Tumpukan; X : integer);
begin
if T.Atas = MaxElemen then
writeln (‘TUMPUKAN SUDAH 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. 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’)
else
T.Atas := T.Atas – 1
end;
Posisi Depan
Posisi
Belakang
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 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 – 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.