asd modul 3 (stack _ queue)

16
7/16/2019 ASD Modul 3 (Stack _ Queue) http://slidepdf.com/reader/full/asd-modul-3-stack-queue 1/16  Dokumen Laboratorium Teknik Informatika UMM @ 2015 –  Modul Praktikum Algoritma dan Struktur Data By. Team Informatika UMM PRAKTIKUM ALGORITMA DAN STRUKTUR DATA MODUL KE-2 STACK DAN QUEUE LABORATORIUM PEMROGRAMAN PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS MUHAMMADIYAH MALANG 2015 

Upload: ade

Post on 05-Jan-2016

120 views

Category:

Documents


3 download

DESCRIPTION

apa aja boleh

TRANSCRIPT

Page 1: ASD Modul 3 (Stack _ Queue)

7/16/2019 ASD Modul 3 (Stack _ Queue)

http://slidepdf.com/reader/full/asd-modul-3-stack-queue 1/16

 

Dokumen Laboratorium Teknik Informatika UMM @ 2015  –  Modul Praktikum Algoritma dan Struktur Data By. Team Informatika UMM 

PRAKTIKUM ALGORITMA DAN STRUKTUR DATA

MODUL KE-2

STACK DAN QUEUE

LABORATORIUM PEMROGRAMAN

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS MUHAMMADIYAH MALANG

2015 

Page 2: ASD Modul 3 (Stack _ Queue)

7/16/2019 ASD Modul 3 (Stack _ Queue)

http://slidepdf.com/reader/full/asd-modul-3-stack-queue 2/16

 

Dokumen Laboratorium Teknik Informatika UMM @ 2015  –  Modul Praktikum Algoritma dan Struktur Data By. Team Informatika UMM 

I. 

TUJUAN 

Mahasiswa mampu :

1.  Memahami garis besar dari konsep stack dan queue.

2.  Mengetahui perbedaan antara stack dan queue.

3. 

Mengimplementasikan stack dan queue kedalam program II.  ALAT YANG DIGUNAKAN 

Peralatan yang digunakan :

1.  Perangkat PC yang terinstall Java

2.  Editor Java

III.  DASAR TEORI 

STACK 

  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).

  Opreasi dasar pada stack

o  Inisialisasi (create stack)

untuk menginisialisasi tumpukan, menyiapkan tempat yang nantinya digunakan

untuk menyimpan tumpukan.

o  Cek kosong (Isempty)

melakukan pengecekan apakah tumpukan kosong atau tidak

o  Cek penuh

untuk mengecek apakah tupukan penuh atau tidak

o  Tambah stack (PUSH)

untuk menambah elemen ke dalam tumpukan

o  Ambil dari tumpukan (POP)

untuk mengambil sebuah elemen dari tumpukan

  Deklarasi Stack

  Inisialisasi Stack

Page 3: ASD Modul 3 (Stack _ Queue)

7/16/2019 ASD Modul 3 (Stack _ Queue)

http://slidepdf.com/reader/full/asd-modul-3-stack-queue 3/16

 

Dokumen Laboratorium Teknik Informatika UMM @ 2015  –  Modul Praktikum Algoritma dan Struktur Data By. Team Informatika UMM 

  Fungsi Cek Kosong

  Fungsi Cek Penuh

  Fungsi PUSH

  Fungsi POP

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.

 –  

Untuk operasi penyisipan (insertion) elemen dilakukan pada posisi belakang (rear)

dari queue.

  Skema pengaksesan : First In, First Out (FIFO) 

  Contoh: 

 –  

Antrian printer

 –  Antrian tiket bioskop

Page 4: ASD Modul 3 (Stack _ Queue)

7/16/2019 ASD Modul 3 (Stack _ Queue)

http://slidepdf.com/reader/full/asd-modul-3-stack-queue 4/16

 

Dokumen Laboratorium Teknik Informatika UMM @ 2015  –  Modul Praktikum Algoritma dan Struktur Data By. Team Informatika UMM 

 –  Antrian nasabah di teller bank, dll

  Seperti halnya stack, queue juga dapat direpresentasikan sebagai array (static

queue) maupun linked list (dynamic queue).

  Deklarasi queue menggunakan Array

  Operasi dasar QUEUE

 –  

Inisialisasiuntuk menginisialisasi antrian, menyiapkan tempat yang nantinya digunakan

untuk menyimpan antrian.

 –  Cek kosong (Isempty)

melakukan pengecekan apakah antrian kosong atau tidak

 –  Cek penuh

untuk mengecek apakah tupukan penuh atau tidak

int size; 

long queue[]; 

int rear; 

int front; 

int jumItem; 

public Antrian(int s){ 

size = s; 

queue = new long[size]; 

rear = -1; 

front = 0; 

jumItem = 0; 

public boolean isEmpty(){ 

return(jumItem == 0); //

return(rear == -1);} 

Page 5: ASD Modul 3 (Stack _ Queue)

7/16/2019 ASD Modul 3 (Stack _ Queue)

http://slidepdf.com/reader/full/asd-modul-3-stack-queue 5/16

 

Dokumen Laboratorium Teknik Informatika UMM @ 2015  –  Modul Praktikum Algoritma dan Struktur Data By. Team Informatika UMM 

 –  Enqueue

untuk menambah elemen ke dalam antrian

 –  Dequeue

untuk mengambil sebuah elemen dari antrian

IV.  PROSEDUR PELAKSANAAN 

Prosedur pelaksanaan praktikum adalah sebagai berikut :

1.  Mahasiswa mencoba latihan yang ada pada modul praktikum

2.  Mahasiswa menganalisa hasil dari program pada latihan yang telah dijalankan

public boolean isFull(){ 

return (rear == size-1); 

public void enqueue (long j){ 

if(!isFull()){ 

queue[++rear]=j; 

jumItem++; 

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; 

Page 6: ASD Modul 3 (Stack _ Queue)

7/16/2019 ASD Modul 3 (Stack _ Queue)

http://slidepdf.com/reader/full/asd-modul-3-stack-queue 6/16

 

Dokumen Laboratorium Teknik Informatika UMM @ 2015  –  Modul Praktikum Algoritma dan Struktur Data By. Team Informatika UMM 

3.  Mahasiswa mengerjakan tugas latihan dan praktikum yang diberikan

4.  Mahasiswa mendemonstrasikan program tugas praktikum yang telah dikerjakan

pada dosen/assisten

5.  Mahasiswa membuat laporan dari tugas yang telah dikerjakan

6. 

Upload laporan melalui e-labit.umm.ac.id. 

Page 7: ASD Modul 3 (Stack _ Queue)

7/16/2019 ASD Modul 3 (Stack _ Queue)

http://slidepdf.com/reader/full/asd-modul-3-stack-queue 7/16

 

Dokumen Laboratorium Teknik Informatika UMM @ 2015  –  Modul Praktikum Algoritma dan Struktur Data By. Team Informatika UMM 

V. 

LATIHAN 

STACK

1. Buatlah class StackArray seperti dibawah ini : (untuk nama package bebas)

2.  Tambahkan fungsi cetak() dan main() untuk menampilkan isi stack berikut ini :

Page 8: ASD Modul 3 (Stack _ Queue)

7/16/2019 ASD Modul 3 (Stack _ Queue)

http://slidepdf.com/reader/full/asd-modul-3-stack-queue 8/16

 

Dokumen Laboratorium Teknik Informatika UMM @ 2015  –  Modul Praktikum Algoritma dan Struktur Data By. Team Informatika UMM 

3.  Ubah fungsi main() sehingga didapatkan hasil sebagai berikut :

4. 

Buatlah class StackLinkedList  seperti dibawah ini : (untuk nama package sama

dengan class StackArray dan class Node boleh menggunakan Single Linked List atau

Double Linked List)

Page 9: ASD Modul 3 (Stack _ Queue)

7/16/2019 ASD Modul 3 (Stack _ Queue)

http://slidepdf.com/reader/full/asd-modul-3-stack-queue 9/16

 

Dokumen Laboratorium Teknik Informatika UMM @ 2015  –  Modul Praktikum Algoritma dan Struktur Data By. Team Informatika UMM 

Page 10: ASD Modul 3 (Stack _ Queue)

7/16/2019 ASD Modul 3 (Stack _ Queue)

http://slidepdf.com/reader/full/asd-modul-3-stack-queue 10/16

 

Dokumen Laboratorium Teknik Informatika UMM @ 2015  –  Modul Praktikum Algoritma dan Struktur Data By. Team Informatika UMM 

5. 

Tambahkan fungsi cetak() dan main() untuk menampilkan isi stack berikut ini :

6.  Ubah fungsi main() sehingga didapatkan hasil sebagai berikut :

QUEUE

1.  Buatlah class QueueArray seperti dibawah ini : (untuk nama package bebas)

Page 11: ASD Modul 3 (Stack _ Queue)

7/16/2019 ASD Modul 3 (Stack _ Queue)

http://slidepdf.com/reader/full/asd-modul-3-stack-queue 11/16

 

Dokumen Laboratorium Teknik Informatika UMM @ 2015  –  Modul Praktikum Algoritma dan Struktur Data By. Team Informatika UMM 

2.  Tambahkan fungsi cetak() dan main() untuk menampilkan isi Queue berikut ini :

3.  Ketika fungsi main() ditambahkan perintah berikut :

didapatkan hasil sebagai berikut :

a.dequeue();

a.enqueue(200);a.dequeue();

a.dequeue();a.enqueue(30);

Page 12: ASD Modul 3 (Stack _ Queue)

7/16/2019 ASD Modul 3 (Stack _ Queue)

http://slidepdf.com/reader/full/asd-modul-3-stack-queue 12/16

 

Dokumen Laboratorium Teknik Informatika UMM @ 2015  –  Modul Praktikum Algoritma dan Struktur Data By. Team Informatika UMM 

Seharusnya yang ditampilkan adalah 54, 55, 200, dan 30. Kenapa nilai 200 muncul

pada elemen terakhir? Jelaskan! Jawaban ditulis di kertas dan kumpulkan pada akhir

praktikum

Page 13: ASD Modul 3 (Stack _ Queue)

7/16/2019 ASD Modul 3 (Stack _ Queue)

http://slidepdf.com/reader/full/asd-modul-3-stack-queue 13/16

 

Dokumen Laboratorium Teknik Informatika UMM @ 2015  –  Modul Praktikum Algoritma dan Struktur Data By. Team Informatika UMM 

4.  Buatlah class QueueLinkedList  seperti dibawah ini : (untuk nama package sama

dengan class QueueArray dan class Node boleh menggunakan Single Linked List atau

Double Linked List)

Page 14: ASD Modul 3 (Stack _ Queue)

7/16/2019 ASD Modul 3 (Stack _ Queue)

http://slidepdf.com/reader/full/asd-modul-3-stack-queue 14/16

 

Dokumen Laboratorium Teknik Informatika UMM @ 2015  –  Modul Praktikum Algoritma dan Struktur Data By. Team Informatika UMM 

5.  Tambahkan fungsi cetak() dan main() untuk menampilkan isi Queue berikut ini :

6.  Ubah fungsi main() sehingga didapatkan hasil sebagai berikut :

VI. TUGAS PRAKTIKUM

1.  Impelementasikan class stack yang ada pada latihan diatas untuk membuat program

“konversi bilangan desimal ke bilangan biner”, dengan algoritma sebagai berikut :

Konversi Bilangan Desimal ke Biner

a.  Simpan inputan user ke dalam variable decimal 

 b.  Bagi variable decimal dengan angka 2 

c. 

Ambil sisa pembagian variable decimal, lalu simpan dalam variable sisa. Kemudian

simpan isi variable sisa ke dalam stack.

d.  Ulangi langkah 1 dan 2 selama decimal tidak bernilai 0. Jika variable decimal telah

 bernilai 0 maka lanjutkan ke langkah 5

e.  Ambil (pop) nilai yang ada di stack. Kemudian tambahkan/simpan (append) hasilnya

 pada variable biner.

f.  Tampilkan isi variable biner ke layar .

g.  Selesai.

Contoh tampilan program konversi desimal ke biner :

Input : 25

Hasil biner : 11001 

Page 15: ASD Modul 3 (Stack _ Queue)

7/16/2019 ASD Modul 3 (Stack _ Queue)

http://slidepdf.com/reader/full/asd-modul-3-stack-queue 15/16

 

Dokumen Laboratorium Teknik Informatika UMM @ 2015  –  Modul Praktikum Algoritma dan Struktur Data By. Team Informatika UMM 

2.  Buatlah flowchart dan program implementasi dari penggabungan konsep stack dan

queue. Program berupa menu untuk memilih operasi yang dilakukan pada stack

maupun queue. Program akan berakhir jika user memilih menu “selesai”.

Aturan :

a.  Jika operasi “remove”, maka akan menghapus item yang ada pada stack maupun

queue (sesuai dengan konsep masing-masing struktur data tersebut).

 b.  Jika operasi “add”, maka akan menambahkan item pada stack maupun linked list.

c.  Jika operasi “peek”, maka akan menampilkan 1 item pada masing-masing struktur

data (stack dan queue).

d.  Jika operasi “peer to peer”, maka akan dilakukan pertukaran data pada stack dan

queue. Item yang ditunjuk oleh top pada stack akan menempati posisi item yang

ditunjuk oleh front pada queue. Sebaliknya, item yang ditunjuk oleh front pada

queue akan menempati posisi item yang ditunjuk oleh top pada stack. (Gunakan

Array untuk impelementasi program)

Contoh tampilan program :

Program Penggabungan Konsep Stack dan Queue

====================================

Menu Pilihan Operasi:

1. 

Add

2.  Remove

3.  Peek

4. 

Peer to Peer5.  Selesai

Masukkan Pilihan : 1

Masukkan item : A

Masukkan Pilihan : 1

Masukkan item : B

Masukkan Pilihan : 1

Masukkan item : C

Masukkan Pilihan : 4

Sebelum :

Queue : A B C

Stack : A B C

Setelah ditukar :

Queue : C B C

Stack : A B A

Masukkan Pilihan : 3

Queue : C

Stack : A

Masukkan Pilihan : 2

Remove Queue : C

Remove Stack : A

Masukkan Pilihan : 5

=============================

Page 16: ASD Modul 3 (Stack _ Queue)

7/16/2019 ASD Modul 3 (Stack _ Queue)

http://slidepdf.com/reader/full/asd-modul-3-stack-queue 16/16

 

Dokumen Laboratorium Teknik Informatika UMM @ 2015  –  Modul Praktikum Algoritma dan Struktur Data By. Team Informatika UMM 

3.  Ubahlah notasi infix yang dimasukkan oleh user menjadi notasi postfix dengan

memanfaatkan stack dan queue.

Contoh tampilan aplikasi :

Notasi infix : A * ( B + C ) / D ^ E – F

Notasi postfix : A B C + * D E ^ / F – 

Keterangan :

1.  Tugas praktikum dikerjakan sendiri, jika ketahuan mengcopas, mencontoh, mereplika,

menjiplak dll akan dikenakan sanksi nilai x ½.

2.  Tidak ada demo susulan, sesuai dengan jadwal yang telah ditentukan, kecuali ada alasan

yang logis dan dapat di maklumi.3.

 

Kriteria penilaian praktikum:

a. 25% Absensi.

 b. 50% demo tugas.

c. 25% laporan praktikum.

d. Tambahan nilai (sesuai kebijakan aslab masing-masing), misal keaktifan dll.

4.  Kriteria penilaian laporan:

a.  Menggunakan template yang sudah disediakan.

 b.  Melampirkan hasil praktikum (latihan dan tugas modul) dan screenshot hasil

 programdan penjelasannya.

c. 

Dikerjakan sendiri, jika ketahuan mengcopas, mencontoh, mereplika, menjiplak dll akan

dikenakan sanksi pengosongan nilai laporan.

Penting!Tetap semangat, jangan menyerah dan pasti bisa jika mau berusaha, jangan lupa juga untuk

terus berdoa agar dapat mencapai hasil yang maksimal, jangan pernah takut untuk bertanya jika masih ada kebingungan yang melanda, diselingi terus berolah raga, makan yang banyak

dan sehat sesuai 4 sehat 5 sempurna serta minum multivitamin agar tetap bugar :D,