Anda di halaman 1dari 7

Modul 6

Stack (Tumpukan) dan Queue (Antrian)


Praktikum Algoritma dan Struktur Data
Jurusan Matematika Fakultas Sains dan Teknologi
TA. 2020/2021
UIN Sunan Gunung Djati Instruktur/ Asisten:
Bandung

A. Tujuan
1. Mahasiswa memahami implementasi Stack (tumpukan) dan Queue (antrian) pada ADT
yang telah dikenal.
2. Mahasiswa dapat mengimplementasikan Stack dan Queue pada array dan list dengan
bahasa Java.

B. Pokok Bahasan
Stack (Tumpukan) dan Queue (Antrian).

C. Tugas Pendahuluan

Misalkan array A = [2, 3, -1, 4, 0, 6] yang memiliki indeks dimulai dari nol.
1. Berikan ilustasi untuk menambahkan entri x = 7 pada array A.
2. Berikan ilustasi dan algoritma untuk menghapus -1 dan menggeser semua elemen-
elemen agar array A tidak memiliki entri kosong di tengah. (Hint: menggeser entri
pada ruang ke-i menjadi entri pada ruang ke-(i-1)).
3. Berikan ilustrasi dan algoritma untuk menambahkan elemen x=10 pada A[0], tanpa
menghapus elemen-elemen A yang telah ada sebelumnya. (Hint: entri ke-1 digeser
ke-(i+1)).

Misalkan dimiliki sebuah list B, sebagai berikut:

4. Berikan ilustasi dan algoritma untuk menambahkan node x = 10 setelah tail pada
List B.
5. Berikan ilustrasi dan algoritma untuk menembahkan node y = 3 sebelum head pada
List B.
6. Berikan ilustrasi dan algoritma untuk menambahan node z = 8 diantara node 2 dan
node 3 pada List B.

D. Materi

Stack (Tumpukan)
Stack (tumpukan) adalah metode penyimpanan data yang hanya mengizinkan
mengakses data yang terakhir diinput. Stack menganut LIFO (Last In, First Out), artinya
data yang terakhir diinput menjadi data yang pertama diproses. Elemen yang memiliki
nama hanya elemen paling atas, yakni top.

1|M o d u l 6 : S t a c k ( T u m p u k a n ) d a n Q u e u e ( A n t r i a n )
Operasi utama pada stack, yaitu:
 Push: menambahkan elemen pada stack.
 Pop: menghapus elemen pada stack.
 IsEmpty: menghapus isi stack.
 Peek: melihat data top.

Gambar 1. Ilustrasi Stack (Tumpukan).

Queue (Antrian)
Queue (Antrian) adalah metode penyimpanan data yang hanya mengizinkan
mengakses data yang pertama diinput. Queue menganut prinsip FIFO (First In, First
Out), artinya data yang paling awal diinput akan diproses lebih dulu. Elemen yang
memiliki nama pada queue adalah elemen paling depan yang disebut front dan elemen
paling belakang yang disebut rear. Operasi utama pada queue adalah:
 Enqueue: menambahkan elemen pada queue.
 Dequeue: menghapus elemen pada queue.
 IsEmpty: menghapus isi queue.
 Peek: melihat data front.

Gambar 2. Ilustrasi Queue (Antrian).

2|M o d u l 6 : S t a c k ( T u m p u k a n ) d a n Q u e u e ( A n t r i a n )
E. Praktikum

1. Tuliskan ilustrasi dan algoritma untuk menambahkan node pada bagian depan list, serta
menghapus bagian depan list (menghapus head).
Ilustrasi tambahDepan

Ilustrasi hapusDepan

2. Perhatikan naskah java berikut.


class LinkStack {
private LinkList List;
//--------------------------------------
public LinkStack(){
List = new LinkList();
}
//--------------------------------------------
public Node isEmpty(){
return List.hapusList();
}

public void push(int id){


List.tambahDepan(id);
}
//-------------------------------------------
public Node pop(){
return List.hapusDepan();
}
3|M o d u l 6 : S t a c k ( T u m p u k a n ) d a n Q u e u e ( A n t r i a n )
//----------------------------------
public void displayStack(){
System.out.print("Stack (top --> bottom): ");
List.displayList();
}
}
a. Apa saja atribut kelas LinkStack di atas?

b. Sebutkan kelas lain yang secara langsung maupun tidak langsung, dilibatkan dalam
class LinkStack.

c. Berdasarkan class LinkStack di atas, ilustrasikan siapakah “top” dalam stack.

d. Apakah semua method yang dipanggil oleh class LinkStack telah tersedia? (Ya/
Tidak)
e. Cobalah untuk meng-compile class di atas, apa yang terjadi? (Jika error, cobalah
atasi)

3. Pada 2.d, error dapat disebabkan karena tidak tersedianya method yang dipanggil. Method
apakah yang belum tersedia? ________________________.
Di class manakah seharusnya method tersebut ditambahkan? ____________________
*) Method yang hilang
//contoh
//Anda dapat membuatnya sesuai selera Anda.
public Node hapusList(){
if (head == null)
System.out.println("List kosong. ");
else
head = null;
return head;
}

4|M o d u l 6 : S t a c k ( T u m p u k a n ) d a n Q u e u e ( A n t r i a n )
4. Buatlah program utama untuk memanggil class LinkStack, dan isi List Stack menjadi [20,
40, 60, 80, 100].
*) Main program
//contoh
//Anda dapat membuatnya sesuai selera Anda.
class LinkStackApp {
public static void main(String[] arg){
LinkStack Stack = new LinkStack(); // membuat stack
Stack.push(20);
Stack.push(40);
Stack.push(60);
Stack.displayStack();

Stack.push(80);
Stack.push(100);
System.out.println(" ");
System.out.println("Pushing :");
Stack.displayStack();

Stack.pop();
System.out.println(" ");
System.out.println("Popping :");
Stack.displayStack();
Stack.pop();
System.out.println(" ");
System.out.println("Popping :");
Stack.displayStack();

System.out.println(" ");
System.out.println("Menghapus Stack:");
Stack.isEmpty();
Stack.displayStack();
}
}

5. Ilustrasikan proses yang dilakukan oleh method-method berikut.


a. push(80)

b. pop()

5|M o d u l 6 : S t a c k ( T u m p u k a n ) d a n Q u e u e ( A n t r i a n )
c. isEmpty()

F. Kesimpulan
Tuliskan kesimpulan yang Anda peroleh dari hasil praktikum pada modul ini.

G. Laporan
Laporan yang disusun harus menjawab pertanyaan berikut. Jika perlu, sertakan gambar
dan tabel. Jawablah pertanyaan berikut ini.
1. Jelaskan kembali pengertian dan perbedaan antara stack dan queue.
2. Ilustrasikan operasi-operasi yang dilakukan pada stack dan queue, berdasarkan kode
yang Anda miliki.
Ket:
 Gambar boleh mengambil dari internet dan sertakan referensi yang digunakan.
 Gambar dicetak dan ditempel pada laporan tugas.
 Penulisan judul tabel diletakkan di atas tabel, sedangkan judul gambar diletakkan di
bawah gambar.

H. Latihan
Buatlah class LinkQueue.java beserta LinkQueueApp.java yang menggunakan operasi
enqueue, dequeue, isEmpty, dengan node front adalah head, dan rear adalah tail.Tuliskan pula
ilustrasi setiap operasi.

I. Tugas
Buatlah stack dan queue pada array, dengan top dan front merupakan entri pada indeks
nol, dan bottom serta rear pada indeks ke-n. Tuliskan pula ilustrasi bagi setiap operasi.

J. Materi Selanjutnya
Double Link-List (DLL).

6|M o d u l 6 : S t a c k ( T u m p u k a n ) d a n Q u e u e ( A n t r i a n )
K. Referensi
Arief Fatchul Huda. 2013. Modul: Praktikum Algoritma Komputer. Bandung: Jurusan
Matematika FST UIN Sunan Gunung Djati.
Arief F.H dan Qonita U.S. 2019. Modul: Praktikum Dasar-dasar Pemrograman. Bandung:
Matematika, FST, UIN Sunan Gunung Djati.
Siti Rofiqoh Fitriyani. 2016. Modul Praktikum Algoritma dan Struktur Data. Bandung:
FST, UIN Sunan Gunung Djati
Berbagai sumber.

7|M o d u l 6 : S t a c k ( T u m p u k a n ) d a n Q u e u e ( A n t r i a n )

Anda mungkin juga menyukai