Queue dan Stack
October 17, 2018
Add Comment
1. Queue (Antrian)
Queue atau Antrian sebenarnya juga merupakan suatu list. Salah satu sifat yang membedakan queue dengan stack adalah bahwa pada queue penambahan elemen dilakukan pada salah satu ujung (ujung depan) dan pengambilan dilakukan pada ujung yang lain (ujung belakang) . Dengan demikian queue menggunakan prinsip FIFO (First In First Out), yaitu elemen yang pertama masuk akan pertama kali pula dikeluarkan.
Seperti pada stack, operasi-operasi dasar pada queue adalah operasi penambahan elemen (Sebut "ADDQ") dan operasi pengambilan elemen (sebut DELQ). Di bawah ini diberikan contoh pemakaian operasi PUSH dan POP dan isi stack untuk setiap selesai eksekusi satu operasi.
Di bawah ini isi queue tidak dituliskan secara bertumpuk, tetapi dengan kesepakatan:
2. Stack (Tumpukan)
Queue atau Antrian sebenarnya juga merupakan suatu list. Salah satu sifat yang membedakan queue dengan stack adalah bahwa pada queue penambahan elemen dilakukan pada salah satu ujung (ujung depan) dan pengambilan dilakukan pada ujung yang lain (ujung belakang) . Dengan demikian queue menggunakan prinsip FIFO (First In First Out), yaitu elemen yang pertama masuk akan pertama kali pula dikeluarkan.
Seperti pada stack, operasi-operasi dasar pada queue adalah operasi penambahan elemen (Sebut "ADDQ") dan operasi pengambilan elemen (sebut DELQ). Di bawah ini diberikan contoh pemakaian operasi PUSH dan POP dan isi stack untuk setiap selesai eksekusi satu operasi.
Di bawah ini isi queue tidak dituliskan secara bertumpuk, tetapi dengan kesepakatan:
- Elemen paling kanan adalah elemen yang ada pada ujung belakang (yang terakhir kali masuk)
- Queue yang dipakai bernama Q
- ADDQ(Q,B) berarti memasukkan elemen B ke dalam queue Q
- DELQ(B,Q) berarti mengambil elemen dari queue Q dan menaruhnya ke dalam variabel B
Operasi yang dilakukan
|
Isi Queue
|
Keterangan
|
Kondisi Awal
|
kosong
|
-
|
ADDQ('A',Q)
|
A
|
-
|
ADDQ('B',Q)
|
AB
|
-
|
ADDQ('C',Q)
|
ABC
|
-
|
DELQ(Data,Q)
|
BC
|
Variabel Data berisi 'A'
|
ADDQ('D',Q)
|
BCD
|
-
|
DELQ(Data,Q)
|
CD
|
Data berisi 'B'
|
POP(Data,S)
|
D
|
Data berisi 'C'
|
2. Stack (Tumpukan)
Stack atau Tumpukan sebenarnya secara mudah dapat diartikan sebagai list (urutan) dimana penambahan dan pengambilan elemen hanya dilakukan pada satu sisi yang disebut top (puncak) dari stack.
Dengan melihat definisi tersebut maka jelas bahwa pada stack berlaku aturan LIFO (Last In First Out), yaitu elemen yang terakhir masuk akan pertama kali diambil atau dilayani. Salah satu analogi yang dapat dikemukakan di sini adalah tumpukan piring atau barang lain.
Pada saat kita hendak menumpuk piring-piring tersebut tentulah yang kita lakukan adalah meletakkan piring pertama pada tempatnya, selsnjutnya meletakkan piring kedua di atas piring pertama dan demikian seterusnya. Pada saat kita hendak mengambil satu piring dari tumpukan tersebut, tentu yang diambil adalah piring teratas (yang terakhir kali ditaruh), bukan yang terbawah (yang pertama kali diletakkan).
Dua operasi dasar pada stack adalah PUSH (operasi pemasukan elemen ke dalam stack) dan POP (operasi pengambilan satu elemen dari dalam stack). Di bawah ini diberikan contoh pemakaian operasi PUSH dan POP dan isi stack untuk setiap selesai eksekusi satu operasi.
Di bawah ini isi stack tidak dituliskan secara bertumpuk, tetapi dengan kesepakatan:
- Elemen paling kanan adalah elemen yang ada pada TOS (Top Of the Stack)
- Stack yang dipakai bernama S
- PUSH(S,B) berarti memasukkan elemen B ke dalam stack S
- POP(B,S) berarti mengambil elemen dari stack S dan menaruhnya ke dalam variabel B
Operasi yang dilakukan
|
Isi Stack
|
Keterangan
|
Kondisi Awal
|
kosong
|
-
|
PUSH('A',S)
|
A
|
-
|
PUSH('B',S)
|
AB
|
-
|
PUSH('C',S)
|
ABC
|
-
|
POP(Data,S)
|
AB
|
Variabel Data berisi 'C'
|
PUSH('D',S)
|
ABD
|
-
|
POP(Data,S)
|
AB
|
Data berisi 'D'
|
POP(Data,S)
|
A
|
Data berisi 'B'
|
0 Response to "Queue dan Stack"
Post a Comment