asd modul 3 (stack _ queue)

Download ASD Modul 3 (Stack _ Queue)

Post on 05-Jan-2016

84 views

Category:

Documents

2 download

Embed Size (px)

DESCRIPTION

apa aja boleh

TRANSCRIPT

  • 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

  • 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

  • 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

  • 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

    Inisialisasi

    untuk 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);

    }

  • 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

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

  • 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 :

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

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

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

  • 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);

  • 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

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

  • 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

  • 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 Peer 5. 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