KUM 5 IMPLEMENTASI QUEUE

dokumen-dokumen yang mirip
Struktur Data dan Algoritma

Jika Anda ingin bisa/sukses dalam kuliah SDA ini, rajinlah mengimplementasikan ADT dan mengerjakan soal-soal yang diberikan.

Algoritma Dan Struktur Data II. Queue

KUM 3 IMPLEMENTASI LIST

Algoritma dan Struktur Data. Queue

QUEUE (ANTREAN) Pertemuan 6 PENGERTIAN QUEUE (ANTREAN)

KUM 6 IMPLEMENTASI BINARY TREE

PRAKTIKUM ALGORITMA DAN STRUKTUR DATA MODUL KE-2 STACK DAN QUEUE

STRUKTUR DATA POKOK BAHASAN - 8 QUEUE ( ANTRIAN)

IX. Implementasi ADT : Stacks & Queues. Operasi dasar Contoh kegunaan Implementasi Array-based dan linked list-based

*Sekumpulan elemen yang diatur secara terurut. *Linear List tidak sama dengan Connected-List

ARNA FARIZA YULIANA SETIOWATI

Masukan Judul... Infotype àsebuah tipe terdefinisi yang menyimpan informasi sebuah elemen list

LAPORAN PRAKTIKUM RESMI QUEUE

Implementasi Queue menggunakan Array. Imam Fahrur Rozi

BAB III QUEUE (ANTRIAN)

Pertemuan 7. REVIEW dan QUIS

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA LINKED LIST (BAGIAN 1)

IMPLEMENTASI STRUKTUR DATA LIST, QUEUE DAN STACK DALAM JAVA

BAB IV Antrian(Queue)

QUEUE (ANTRIAN) Struktur Data - Queue

MAKALAH STRUKTUR DATA. DOSEN PEMBIMBING Nisa miftachurohmah, S.kom., M.Si PENYUSUN SITI JAMILATUL MU ADDIBAH ( )

LOGO STRUKTUR DATA QUEUE

ALGORITMA DAN STRUKTUR DATA ARRAY STACK DAN QUEUE

PRAKTIKUM STRUKTUR DATA QUEUE. SULIDAR FITRI, M.Sc

TIF 4201 Algoritma Dan Struktur Data

IF PEMROGRAMAN LANJUT TUGAS 1. Oleh : Andri Heryandi, M.T.

Algoritma dan Struktur Data STACK

05. Double Linked List

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA QUEUE

(3) BAHAN KAJIAN (materi ajar)

QUEUE (ANTREAN) Prinsip Antrean : FIFO (First In First Out) FCFS (First Come First Serve) Yang Tiba lebih awal Maka akan dilayani Terlebih Dahulu

Algoritma dan Struktur Data

Politeknik Elektronika Negeri Surabaya

POINTER STACK DAN QUEUE. Institut Teknologi Sumatera

Struktur Data Array. Rijal Fadilah S.Si

Struktur Data. Tumpukan : Definisi & Operasi. Pertemuan 4 PROBLEM ALGORITHM DATA IMPLEMENTATION. Pert. 4b Struktur Data - FMIPA USD

STACK atau TUMPUKAN. Pertemuan 5 STACK (TUMPUKAN)

QUEUE (ANTRIAN) Depan=1 Belakang=

Antrian (Queue) Susunan koleksi data dimana proses penambahan data (add) dilakukan dari belakang dan penghapusan data (delete) dilakukan dari depan.

STACK DAN QUEUE (Muhammad Fachrie, STMIK Amikom Yogyakarta)

Algoritma Pemrograman & Struktur Data

A. TUJUAN PEMBELAJARAN

Algoritma Dan Struktur Data II

SILABUS STRUKTUR DATA ( TIF-104 ) PROGRAM STUDI TEKNIK INFORMATIKA UNIVERSITAS PEMBANGUNAN JAYA TANGERANG SELATAN

BAB IX LINKED LIST (SENARAI BERANTAI)

DIKTAT KULIAH ALGORITMA dan STRUKTUR DATA II. : Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Queue.

Algoritma Dan Struktur Data II

SATUAN ACARA PENGAJARAN

Praktikum 5. Antrian (Queue)

Gambar 1. Single Linked List

Gambar 1. Single Linked List

Variabel dengan tipe dasar hanya dapat menyimpan sebuah nilai

QUEUE Antrian 1. DEFINISI

MODUL III ARRAYLIST TUGAS PENDAHULUAN

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA LINKED LIST (BAGIAN 2)

KONSEP POINTER DAN LINKED LIST

Stack. Gambar 1.1 Stack

QUEUE (ANTREAN) Operasi Antrean : FIFO (First In First Out) Elemen yang pertama masuk merupakan elemen yang pertama keluar.

Struktur Data dan Algoritma

Arrays, Collections and Generics. Sisilia Thya Safitri, MT Agus Priyanto, MKom

2. Mahasiswa dapat membuat dan menggunakan array dan linked list dalam suatu kasus.

MODUL 6 SINGLE & DOUBLE LINKED LIST

1. E = a + 2b d + dh f g. Ubah ke dalam notasi postfix: a. Menggunakan Algoritma b. Secara manual c. Dari pohon biner menggunakan Stack

BAB VIII QUEUE (ANTRIAN)

Algoritma Pemrograman [BS204]

Modul Praktikum Bahasa Pemrograman 1

STRUKTUR DATA. Literatur

STACK (TUMPUKAN) Tumpukan uang koin Tumpukan kotak Tumpukan Buku. Gambar 1. Macam-macam tumpukan

5. QUEUE (ANTRIAN) TUJUAN PRAKTIKUM

Gambar 1. Single Linked List

Pemrograman Berorientasi. Class dan Obyek 2

BAB IV QUEUE ATAU ANTREAN

Pertemuan 4. Single Linked List non Circular Menggunakan Head dan Tail

Gambar 1. Single Linked List

Review. Struktur Data & Algoritme (Data Structures & Algorithms) Objectives. Outline. Stacks & Queues

Algoritma dan Struktur Data. Ramos Somya

PRAKTIKUM ALGORITMA & PEMROGRAMAN III MODUL_06 Stack (Tumpukan)

Data structure :Metode LINK LIST. Kusnawi, S.Kom, M.Eng STMIK AMIKOM Yogyakarta

MODUL PEMROGRAMAN 2. Queue (Antrian)

BAB III METODE PENELITIAN. transmisi data streaming menggunakan Zigbee wireless network dengan

Modul Praktikum 4 Pemograman Berorientasi Objek

STACK dan QUEUE MODUL PRAKTIKUM STRUKTUR DATA 09 UNIVERSITAS KRISTEN DUTA WACANA. Daftar Isi: Stack dan Queue. Latihan soal. Guided.

LAPORAN PRAKTIKUM IX. Oleh:

LIST. Dewi Sartika, M.Kom

Gambar 17.1Representasi Sebuah Node di Double Linked List. Gambar 17.2 Double Linked List

Pertemuan 3. Perubah Dinamis (Dinamic variable) Suatu perubah yang akan dialokasikan hanya pada saat diperlukan, yaitu setelah program dieksekusi.

Materi 9 : QUEUE (ANTREAN) Dosen:

Pemrograman Berorientasi. Array dan Collections

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

Double Linked List. Double Linked List

MODUL PRAKTIKUM STRUKTUR DATA

Pemrograman Berorientasi Obyek Lanjut (IT251) Ramos Somya, S.Kom., M.Cs.

BAB 2 LANDASAN TEORI

Single Linked List. Single Linked List

Ujian Tengah Semester Struktur Data dan Algoritma Fakultas Ilmu Komputer, Universitas Indonesia 9 November 2006

Linked List dan Implementasinya dalam Bahasa Java

INTERAKSI ANTAR OBJECT

1. Kompetensi Mengenal dan memahami struktur data Stack (tumpukan) dan Queue (antrian).

KONSEP POINTER DAN LINKED LIST

Transkripsi:

PRAKTIKUM KUM 5 IMPLEMENTASI QUEUE TUJUAN PEMBELAJARAN: 1. Mengimplementasikan struktur data Queue menggunakan array. 2. Mampu mengimplementasikan struktur data Queue dengan Linked List 3. Mampu memanfaatkan struktur data Queue untuk menyelesaikan permasalahan. PENGANTAR: Queue Queue (antrian) adalah barisan elemen yang apabila elemen ditambah maka penambahannya berada di posisi belakang (rear) dan jika dilakukan pengambilan elemen dilakukan di elemen paling depan (front). Oleh karena itu, queue bersifat FIFO (first in first out).operasi-operasi dasar dari sebuah queue adalah : Enqueue : proses penambahan elemen di posisi belakang Dequeue : proses pengambilan elemen di posisi depan Selain operasi dasar di atas, ada pula operasi-operasi lain yang dapat dilakukan terhadap sebuah queue yaitu : Operasi pemeriksaan queue kosong (fungsi kosong) Operasi pemeriksaan queue penuh (fungsi penuh). Operasi inisialisasi queue (fungsi inisialisasi) Representasi antrian secara sekuen relatif lebih sulit dibanding stack. Seperti dijelaskan di atas bahwa antrian juga merupakan satu kumpulan data. Dengan demikian tipe data yang sesuai untuk menyajikan antrian adalah menggunakan array atau linked list. Implementasi Queue dengan Array Struktur data queue dapat diimplementasikan dengan menggunakan sebuah array. Pada praktikum kali ini anda diminta untuk mencoba 3 versi implementasi queue, yakni: Versi 1: Implementasi queue dengan 1 variabel index, yani back untuk memantain jumlah elemen queue. Setiap ada proses dequeu harus dilakukan penggeseran elemen sebanyak jumlah elemen array-1. Versi 2: Implementasi queue dengan 2 variabel index, yakni back untuk memaintain elemen paling belakang dan front untuk memantain elemen paling depan. Abdul Aziz, Jurusan Informatika FMIPA UNS 2012 1

Versi 3: Implementasi queue dengan circular array dengan mengorbankan 1 field array yang digunakan untuk definisi queue kosong atau queue penuh. Berikut penjelasan implementasi queue versi 1: Elemen Queue disimpan dalam array A Variabel back digunakan untuk memantain index setelah elemen queue paling belakang A[back] Elemen paling depan dari queue berada pada index 0 A[0] Proses enqueue (penambahan elemen) dilakukan dengan cara memasukkan data kedalam elemen array index back A[back]=data, dan kemudian menaikkan nilai back back++; Proses dequeue (pengambilan elemen) dilakukan dengan cara mengambil elemen paling depan A[0], kemudian jika ada elemen yang lain lakukan penggeseran kekiri satu langkah dari A[1] sampai dengan A[back]. Terdapat setidaknya 6 method/operasi dalam implementasi versi 1, yakni isempty, isfull, makeempty, dequeue, enqueue, dan doublearray. LANGKAH PERCOBAAN 1: Langkah 2: Mengkonversi kedalam coding untuk setiap operasinya pada kerangka class di public class queue_array1<t> private T[] A;// tipe elemen queue private int back;//untuk memaintain index setelah elemen paling blk. private static final int DEFAULT_CAPACITY = 10;//length daripada queue public queue_array1()...//konstruktor untuk menciptakan queue kosong public boolean isempty()...//memeriksa apakah queue kosong public boolean isfull()...//memeriksa apakah queue penuh public void makeempty()...//mengosongkan queue //mengambil 1 elemen dari queue, dan mengembalikan nilai yang diambil public T dequeue()... public void enqueue(t x)...//menambah 1 elemen ke dalam queue //mendobel-kan array dan melakukan copy, jika queue penuh private void doublearray()... diimplementasikan (kurung yang kosong). Langkah 3: Simpan implementasi queue yang anda buat dengan nama queue_array1.java Abdul Aziz, Jurusan Informatika FMIPA UNS 2012 2

Berikut penjelasan implementasi queue versi 2: Elemen Queue disimpan dalam array A Variabel back digunakan untuk memantain index setelah elemen queue paling belakang A[back] Variabel front digunakan untuk memantain index elemen queue paling depan A[front] Proses enqueue (penambahan elemen) dilakukan dengan cara memasukkan data kedalam elemen array index back A[back]=data, dan kemudian menaikkan nilai back back++; Proses dequeue (pengambilan elemen) dilakukan dengan cara mengambil elemen paling depan A[front], kemudian naikkan nilai variabel front. Terdapat setidaknya 6 method/operasi dalam implementasi versi 2, yakni isempty, isfull, makeempty, dequeue, enqueue, dan doublearray. LANGKAH PERCOBAAN 2: Langkah 2: Mengkonversi kedalam coding untuk setiap operasinya pada kerangka class di public class queue_array2<t> private T[] A;// tipe elemen queue private int back;//untuk memaintain index setelah elemen paling blk. private static final int DEFAULT_CAPACITY = 10;//length daripada queue public queue_array2()...//konstruktor untuk menciptakan queue kosong public boolean isempty()...//memeriksa apakah queue kosong public boolean isfull()...//memeriksa apakah queue penuh public void makeempty()...//mengosongkan queue //mengambil 1 elemen dari queue, dan mengembalikan nilai yang diambil public T dequeue()... public void enqueue(t x)...//menambah 1 elemen ke dalam queue //mendobel-kan array dan melakukan copy, jika queue penuh private void doublearray()... diimplementasikan (kurung yang kosong). Langkah 3: Simpan implementasi queue yang anda buat dengan nama queue_array2.java Abdul Aziz, Jurusan Informatika FMIPA UNS 2012 3

Berikut penjelasan implementasi queue versi 3: Elemen Queue disimpan dalam array A Variabel back digunakan untuk memantain index setelah elemen queue paling belakang A[back] Variabel front digunakan untuk memantain index elemen queue paling depan A[front] Proses enqueue (penambahan elemen) dilakukan dengan cara memasukkan data kedalam elemen array index back A[back]=data, dan kemudian menaikkan nilai back back++, apabila nilai back berada diluar panjang array (>=A.length) dan queue tidak penuh, reset nilai back menjadi 0. Proses dequeue (pengambilan elemen) dilakukan dengan cara mengambil elemen paling depan A[front], kemudian naikkan nilai variabel front, apabila nilai front berada diluar panjang array (>=A.length), reset nilai front menjadi 0. Queue dikatakan penuh apabila front=back-1. Queue dikatakan kosong apabila front=back. Terdapat setidaknya 6 method/operasi dalam implementasi versi 3, yakni isempty, isfull, makeempty, dequeue, enqueue, dan doublearray. LANGKAH PERCOBAAN 3: Langkah 2: Mengkonversi kedalam coding untuk setiap operasinya pada kerangka class di public class queue_array3<t> private T[] A;// tipe elemen queue private int back;//untuk memaintain index setelah elemen paling blk. private static final int DEFAULT_CAPACITY = 10;//length daripada queue public queue_array3()...//konstruktor untuk menciptakan queue kosong public boolean isempty()...//memeriksa apakah queue kosong public boolean isfull()...//memeriksa apakah queue penuh public void makeempty()...//mengosongkan queue //mengambil 1 elemen dari queue, dan mengembalikan nilai yang diambil public T dequeue()... public void enqueue(t x)...//menambah 1 elemen ke dalam queue //mendobel-kan array dan melakukan copy, jika queue penuh private void doublearray()... diimplementasikan (kurung yang kosong). Langkah 3: Simpan implementasi queue yang anda buat dengan nama queue_array3.java Abdul Aziz, Jurusan Informatika FMIPA UNS 2012 4

Implementasi Queue dengann Linked List Struktur data queue dapat juga diimplementasikan dengan menggunakan linked list. Berikut penjelasan detail mengenai implementasi queue dengan linked list: Menggunakan 2 variabel reference objek yakni front dan back.. Queue dikatakan kosong apabila front=back=null. Proses enqueue dilakukan dengan cara: o Buat node baru N, kemudian masukkan data baru X ke dalam N. o Jika queue dalam keadaan kosong, atur nilai front=back=n. o Jika queue tidak kosong, tambahkan N dan update nilai back. Prosess dequeue dilakukan dengan cara menghapus elemen pertama (yang diacu oleh variabel front).. Gambar 1. Ilustrasi Implementasi Queue dengan Linked List Dalam gambar1 di atas, terlihat bahwa ada 4 buah data. Setiap data mempunyai anggota yang menunjuk ke data berikutnya, kecuali elemen yang paling belakang menunjuk ke NULL. NULL berarti bahwa elemen tersebut tidak menunjuk ke posisi apapun. Elemen paling depan ditunjuk oleh variabel front, sedangkan elemen paling belakang ditunjuk oleh variabel back. Setiap elemen dari queue mempunyai 2 bagian yaitu bagian data yang bernilai dengan data, dan sebagian lagi adalah penunjuk ke data berikutnya (next). Terdapat setidaknya 4 method/operasi dalam implementasi queue dengan linked list, yakni isempty, makeempty, dequeue, enqueue. LANGKAH PERCOBAAN 4: Langkah 2: Mengkonversi kedalam coding untuk setiap operasinya padaa kerangka kelas di Abdul Aziz, Jurusan Informatika FMIPA UNS 2012 5

class ListNode<T> // Data member private Object data; //menyimpan data queue private ListNode next; // Reference ke node berikutnya // Konstruktor, nextnode di set null ListNode(Object d, ListNode nextnode)... public class queue_linkedlist<t> private ListNode<T> front;//menunjuk node paling depan private ListNode<T> back;//menunjuk node paling belakang public queue_linkedlist()...//konstruktor public boolean isempty()...//memeriksa apakah queue kosong public void makeempty()...//mengosongkan isi queue public T dequeue()...//mengambil 1 elemen dari queue public void enqueue(t x)...//menambah 1 elemen ke dalam queue diimplementasikan (kurung yang kosong) sesuai dengan definisi sebelumnya. Langkah 3: Simpan implementasi queue yang anda buat dengan nama queue_linkedlist.java LAPORAN PRAKTIKUM BERISI PEMBAHASAN LATIHAN PERCOBAAN DAN SOAL. DIKUMPULKAN MINGGU DEPAN. Abdul Aziz, Jurusan Informatika FMIPA UNS 2012 6