0% menganggap dokumen ini bermanfaat (0 suara)
152 tayangan

Modul 03 - Stack Dan Queue

Modul ini membahas konsep dan implementasi stack dan queue. Stack bekerja berdasarkan prinsip LIFO sedangkan queue bekerja FIFO. Program demo menunjukkan cara menambahkan, menghapus, dan melihat elemen pada stack dan queue menggunakan Java. Mahasiswa diminta merekam hasil percobaan dan membuat program lengkap stack.

Diunggah oleh

Daffa Tajuddin
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
152 tayangan

Modul 03 - Stack Dan Queue

Modul ini membahas konsep dan implementasi stack dan queue. Stack bekerja berdasarkan prinsip LIFO sedangkan queue bekerja FIFO. Program demo menunjukkan cara menambahkan, menghapus, dan melihat elemen pada stack dan queue menggunakan Java. Mahasiswa diminta merekam hasil percobaan dan membuat program lengkap stack.

Diunggah oleh

Daffa Tajuddin
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 14

UNIVERSITAS PGRI WIRANEGARA PASURUAN

MODUL 03 - STACK DAN QUEUE

KOMPETENSI
1. Mahasiswa mampu memahami konsep dari stack dan queue.
2. Mahasiswa mampu mengetahui perbedaan antara stack dan queue.
3. Mahasiswa mampu mengimplementasikan stack dan queue ke dalam program.

DASAR TEORI
STACK/TUMPUKAN
• Merupakan struktur data dimana semua penyisipan dan penghapusan entri dibuat pada salah
satu ujung yang disebut TOP (puncak) tumpukan.
• Menggunakan prinsip kerja LIFO (Last In First Out)
• Operasi dasar pada stack:
- Inisialisasi (create stack)
Untuk menginisialisasi tumpukan, menyiapkan tempat yang nantinya digunakan untuk
menyimpan tumpukan.
- Cek kosong (isEmpty)
Melakukan pengecekan apakah tumpukan kosong atau tidak.
- Cek penuh (isFull)
Untuk mengecek apakah tumpukan penuh atau tidak.
- Tambah stack (PUSH)
Untuk menambah elemen ke dalam tumpukan.
- Ambil dari tumpukan (POP)
- Untuk mengambil sebuah elemen dari tumpukan.
• Deklarasi Stack

int size;
long stack[];
int top;

Modul Praktikum Algoritma dan Struktur Data - 2022


UNIVERSITAS PGRI WIRANEGARA PASURUAN

• Inisalisasi Stack

public Tumpukan(int s){


size = s;
stack = new long[size];
top = -1;
}

• Fungsi Cek Kosong

public boolean isEmpty(){


return(top == -1);
}

• Fungsi Cek Penuh

public boolean isFull(){


return(top == size-1);
}

• Fungsi PUSH

public void push(long j){


stack[++top] = j;
}

• Fungsi POP

public long pop(){


return stack[top--];
}

PERCOBAAN STACK
1. Buatlah sebuah project pada Netbeans untuk mencoba membuat stack dengan pemrograman
Java.

2. Untuk membuat program stack, kita dapat mengimport library stack dengan cara mengetikkan:

Modul Praktikum Algoritma dan Struktur Data - 2022


UNIVERSITAS PGRI WIRANEGARA PASURUAN

3. Setelah itu kita membuat sebuah objek stack dengan namaStack1 dengan cara mengetikkan:

4. Untuk mengecek apakah objek yang kita buat itu kosong/isi dilakukan dengan cara membuat
suatu variabel yang akan menyimpan dari nilai luaran method isEmpty (bernilai boolean:
true/false). Caranya:

Apabila dijalankan maka akan menghasilkan:

5. Berikutnya kita akan melakukan proses PUSH (memasukkan data ke dalam stack). Misalnya kita
ingin memasukkan elemen angka 8 ke dalam stack dan melihat hasilnya, maka dapat dilakukan
dengan cara mengetikkan perintah di bawah ini:

Hasilnya:

Modul Praktikum Algoritma dan Struktur Data - 2022


UNIVERSITAS PGRI WIRANEGARA PASURUAN

6. Kita coba sekali lagi dengan menambahkan beberapa elemen lain ke dalam stack.

Hasilnya:

Dapat dilihat elemen-elemen yang ada dalam stack, angka 8 yang dimasukkan pertama kali,
akan berada pada urutan paling bawah (bottom) dari stack, sedangkan angka 2 yang
dimasukkan terakhir berada pada tumpukan yang teratas (top).

7. Kemudian kita akan melakukan proses POP (mengeluarkan elemen dari tumpukan stack).
Caranya adalah:

Hasilnya:

Jika diperhatikan, elemen yang hilang adalah angka 2. Hal itu sesuai dengan prinsip dari stack
yaitu LIFO (Last In First Out). Angka 2 berada pada puncak tumpukan, sehingga bila dilakukan
proses POP, maka angka 2 yang akan dihilangkan terlebih dahulu.

8. Selanjutnya kita akan mencoba method PEEK yang digunakan untuk “mengintip” elemen apa
yang berada paling atas dari stack. Caranya:

Hasilnya:

Modul Praktikum Algoritma dan Struktur Data - 2022


UNIVERSITAS PGRI WIRANEGARA PASURUAN

9. Tipe dari stack yang kita buat diatas adalah integer. Berikutnya jika kita ingin membuat stack
dengan tipe string, maka dapat dilakukan dengan cara:

Hasilnya:

10. Diberikan juga perintah POP dan PEEK untuk stack yang kedua ini:

Hasilnya:

11. Method search pada stack digunakan untuk mencari lokasi dari item/elemen tertentu di dalam
stack.

Modul Praktikum Algoritma dan Struktur Data - 2022


UNIVERSITAS PGRI WIRANEGARA PASURUAN

Hasilnya:

QUEUE
• Aturan queue:
- Penambahan elemen dilakukan di sisi yang berbeda dengan penghapusan elemen.
- Elemen yang dapat dihapus adalah elemen yang berada di posisi terdepan (front) dari
queue.
• Skema pengaksesan: First In, First Out (FIFO).
• Contoh:
- Antrian printer
- Antrian tiket bioskop
- Antrian nasabah di teller bank, dll

• Seperti halnya stack, queue juga dapat direpresentasikan sebagai array (static queue) maupun
linked list (dynamic queue).
• Deklarasi queue:

int size;
long queue[];
int rear;
int front;
int jumItem;

Modul Praktikum Algoritma dan Struktur Data - 2022


UNIVERSITAS PGRI WIRANEGARA PASURUAN

• Operasi dasar queue:


- Inisalisasi
Untuk menginisialisasi antrian, menyiapkan tempat yang nantinya digunakan untuk
menyimpan antrian.

public Antrian(int s){


size = s;
queue = new long[size];
rear = -1;
front = 0;
jumItem = 0;
}

- Cek kosong (isEmpty)


Melakukan pengecekan apakah antrian kosong atau tidak;

public boolean isEmpty(){


return(jumItem == 0);
return(rear == -1)
}

- Cek penuh (isFull)


Untuk mengecek apakah tumpukan penuh atau tidak.

public boolean isFull(){


return(rear == size-1);
}

- Enqueue
Untuk menambah elemen ke dalam antrian.

public void enqueue(long j){


if (!isFull()){
queueu[++rear] = j;
jumItem++;
}
}

- Dequeue
Untuk mengambil sebuah elemen dari antrian

Modul Praktikum Algoritma dan Struktur Data - 2022


UNIVERSITAS PGRI WIRANEGARA PASURUAN

public long dequeue(){


long temp = queue[0]; //temp = queue[front];
if(!isEmpty()){
for(int i = 0; i<jumItem; i++)
queue[i] = queue[i+1];
jumItem--;
rear--;
}
return temp;
}

PERCOBAAN QUEUE
1. Buatlah sebuah project pada Netbeans untuk program queue kita.
2. Import semua library java dengan perintah:

3. Untuk membuat sebuah queue, kita perlu membuat objek dari interface queue. Caranya adalah
dengan menggunakan Linked List, yaitu:

4. Untuk menambahkan data ke dalam queue (antrian) dengan cara:

Hasilnya:

Modul Praktikum Algoritma dan Struktur Data - 2022


UNIVERSITAS PGRI WIRANEGARA PASURUAN

5. Kita coba tambahkan lagi data ke dalam antrian:

Hasilnya:

6. Untuk mengeluarkan data dari antrian kita dapat menggunakan perintah POLL, yaitu:

Hasilnya:

7. Cara lain untuk mengeluarkan data dari antrian adalah dengan menggunakan perintah
REMOVE, yaitu:

Hasilnya:

Perbedaan perintah POLL dan REMOVE:


POLL:

Modul Praktikum Algoritma dan Struktur Data - 2022


UNIVERSITAS PGRI WIRANEGARA PASURUAN

Hasilnya:

REMOVE:

Hasilnya akan muncul error exception berikut:

8. Untuk melihat elemen paling depan (atas) dari queue adalah dengan perintah PEEK, yaitu:

Hasilnya:

Modul Praktikum Algoritma dan Struktur Data - 2022


UNIVERSITAS PGRI WIRANEGARA PASURUAN

9. Cara lain untuk melihat elemen paling depan (atas) dari queue adalah dengan perintah
ELEMENT, yaitu:

Hasilnya:

Perbedaan perintah PEEK dan ELEMENT adalah ketika dihadapkan pada antrian yang kosong:
PEEK:

Hasilnya:

ELEMENT:

Modul Praktikum Algoritma dan Struktur Data - 2022


UNIVERSITAS PGRI WIRANEGARA PASURUAN

Hasilnya akan muncul error exception berikut:

10. Untuk mengukur size dari queue:

Hasilnya:

11. Untuk menghapus atau membersihkan seluruh antrian dapat dilakukan dengan cara:

Hasilnya:

Modul Praktikum Algoritma dan Struktur Data - 2022


UNIVERSITAS PGRI WIRANEGARA PASURUAN

TUGAS
1. Lakukan percobaan diatas. Capture seluruh listing program dan hasil running program.
Tampilkan hasil capture tersebut dalam laporan praktikum anda.
2. Buatlah program stack yang lengkap dan dapat dijalankan berdasarkan informasi berikut ini:
Main Method:

Library:

Method tulisData():

Method inputData():

Modul Praktikum Algoritma dan Struktur Data - 2022


UNIVERSITAS PGRI WIRANEGARA PASURUAN

Method bacaData():

Method bacaData():

Modul Praktikum Algoritma dan Struktur Data - 2022

Anda mungkin juga menyukai