Struktur Data. Queue (Antrian)

dokumen-dokumen yang mirip
1. Inggriani Liem Catatan Kuliah Algoritma & Pemrograman, Jurusan Teknik Informatika ITB

Kode MK/ Pemrograman Terstruktur 2. ZK Abdurahman Baizal. KK Algoritma dan Komputasi. Queue (Antrian)

QUEUE Antrian 1. DEFINISI

List Linier. IF2030/Algoritma dan Struktur Data. 11/6/2009 FNA+WDS/IF2030/Sem

1. Inggriani Liem Catatan Kuliah Algoritma & Pemrograman, Jurusan Teknik Informatika ITB

Kode MK/ Pemrograman Terstruktur 2. ZK Abdurahman Baizal. KK Algoritma dan Komputasi. Stack (Tumpukan)

LIST LINIER 1. DEFINISI

Representasi Logic List Linier

IKG2A3/ Pemrograman Terstruktur 2. ZK Abdurahman Baizal. KK Algoritma dan Komputasi. Variasi List Linier

MODUL PRAKTIKUM STRUKTUR DATA Modul ke-1, Pertemuan ke-1 Nama file : P01-XXX (XXX adalah 3 digit terakhir NIM) Deskripsi: Senarai, Traversal

List Linier (Bag. I) IF2121/Algoritma dan Struktur Data Sem. I 2016/ /25/2017 IF2121/Sem I 2017/2018 1

IKG2A3/ Pemrograman Terstruktur 2

GANJIL 2009/2010 NIM: Algoritma dan Struktur Data / CS2014 Nama :

BAB II STACK Atau TUMPUKAN

Games and Quiz PT II. Dr. Putu Harry Gunawan, MSi.,MSc. phg-simulation-laboratory.com

Bagian I. Studi Kasus [82] Tanda tangan:

Variasi List Linier (Bagian 2)

BAB 1 PENGANTAR KE STRUKTUR DATA

5. QUEUE (ANTRIAN) TUJUAN PRAKTIKUM

: Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Linked List. Single Linked List

DIKTAT KULIAH STRUKTUR DATA. Disusun oleh: Sri Primaini A.

Kode : IF2121 NIM :... Matakuliah : Algoritma dan Struktur Data Nama :... Hari, Tanggal : Senin, 13 November 2017 Waktu : 150 Menit

QUEUE (ANTRIAN) Struktur Data - Queue

LOGO STRUKTUR DATA QUEUE

BAB III QUEUE (ANTRIAN)

ALGORITMA & PEMROGRAMAN

POINTER STACK DAN QUEUE. Institut Teknologi Sumatera

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

Kode MK/ Pemrograman Terstruktur 2. ZK Abdurahman Baizal. KK Algoritma dan Komputasi. Tree (Pohon)

3. DOUBLE LINK LIST. Lab. Teknik Informatika Struktur Data 1

Lab. Teknik Informatika Struktur Data 1

Kode MK/ Pemrograman Terstruktur 2

MODUL 6 SINGLE & DOUBLE LINKED LIST

BAB XI Manipulasi Binary Tree

RESUME A B C D. Gambar 1 Double Linked list dengan Empat Simpul

A. Bagian I. Studi Kasus

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

Optimalisasi Algoritma Pencarian Data Memanfaatkan Pohon Biner Terurut

QUEUE (ANTREAN) Pertemuan 6 PENGERTIAN QUEUE (ANTREAN)

Linked List. Bandung 2013

PENCARIAN BERUNTUN (SEQUENTIAL SEARCHING)

1. Traversing Untuk algoritma traversing sama seperti pada single Link List

LAPORAN PRAKTIKUM RESMI QUEUE

ALGORITMA DAN STRUKTUR DATA

BAB IX LINKED LIST (SENARAI BERANTAI)

Memecahkan Puzzle Hidato dengan Algoritma Branch and Bound

Menghapus Pointer Statement yang digunakan untuk menghapus pointer adalah Dispose, yang mempunyai bentuk umum : Dispose(peubah) ;

Double linked list. Gambar 1. Double linket list dengan empat simpul Deklarasi Double Linked List di dalam Pascal :

BAB IX LINKED LIST (SENARAI BERANTAI)

DIG1G3 Implementasi Struktur Data

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

PENGULANGAN Bagian 1 : Notasi. Tim Pengajar KU1071 Sem

Algoritma dan Struktur Data. Pertemuan 9 Circular Linked List

LINKED LIST. Altien Jonathan Rindengan, S.Si, M.Kom

Algoritma Brute Force

Senarai berantai. linked list. Pertemuan keenam Struktur data st3telkom.ac.id. by : tenia wahyuningrum & Sisilia Thya Safitri

SENARAI BERANTAI (LINK LIST)

UJIAN AKHIR SEMESTER GANJIL 2005/2006 ALGORITMA & STRUKTUR DATA / CS2014

A B C D E F. Gambar 1. Senarai berantai dengan 6 simpul

SEARCHING. Pusat Pengembangan Pendidikan Universitas Gadjah Mada 1

Algoritma Dan Struktur Data II. Queue

Pohon Biner Bagian 2 (Pohon Seimbang, Pohon Biner Terurut, Pembangunan Pohon Biner dari Pita Karakter/String)

Variasi List Linier. Nisa ul Hafidhoh, MT

Algoritma Euclidean dan Struktur Data Pohon dalam Bahasa Pemrograman LISP

List akan disimpan dalam bagian memori komputer yang dinamakan HEAP

Algoritma dan Struktur Data. Pertemuan 7 Linked List

ARRAY DINAMIS. Type. Pengenal = Simpul Simpul = Type. (Nama var) : ( Type data)

Analisis Perbandingan Algoritma Rekursif dan Non-Rekursif secara DFS (Depth First Search) dengan Memanfaatkan Graf

6. TREE / BINARY TREE

BAB 1 KONSEP DASAR. Algoritma adalah urutan langkah-langkah logis untuk menyelesaikan sebuah masalah yang disusun secara sistematis.

BAB 2 LANDASAN TEORI

KERUGIAN DAN KEUNTUNGAN LINKED LIST

4. STACK / TUMPUKAN TEORI PENUNJANG

Aplikasi Graf Breadth-First Search Pada Solver Rubik s Cube

Modul Praktikum Algoritma dan Struktur Data BAB 6 LINKED LIST

Materi 9 : QUEUE (ANTREAN) Dosen:

Penerapan Algoritma DFS dan BFS untuk Permainan Wordsearch Puzzle

AlgoritmaBrute Force. Desain dan Analisis Algoritma (CS3024)

PENGENALAN List merupakan sebuah pemikiran/konsep struktur data yang sangat dasar pada pemrograman agar lebih fleksibel. Setiap elemen akan ditambahka

S T A C K ( T U M P U K A N )

c. Hasil pencarian berupa nilai Boolean yang menyatakan status hasil pencarian. Versi 1 (Pembandingan elemen dilakukan sebagai kondisi pengulangan)

PENERAPAN ALGORITMA BFS PADA CHINESE SLIDE BLOCK PUZZLE (KLOTSKI)

Algoritma Brute Force (Bagian 1) Oleh: Rinaldi Munir

MODUL IV PENCARIAN DAN PENGURUTAN

LATIHAN UTS Tim Pengajar KU1071 Sem

LAPORAN PRAKTIKUM IX. Oleh:

Array (Tabel) Tim Pengajar KU1071 Sem /11/3 TW/KU1071 1

ALGORITMA PENCARIAN SIMPUL SOLUSI DALAM GRAF

Implementasi Struktur Data Stack (Tumpukan) dalam Tower of Hanoi Game

Array dan Matriks. IF2121 / Algoritma dan Struktur Data Sem / /7/2017 IF2121/sem /2018 1

QUEUE ( ANTREAN ) 4.1. PENGERTIAN QUEUE (ANTREAN)

Algoritma dan Struktur Data. Pertemuan 8 Doubly Linked List

BAB 3 STACK (TUMPUKAN)

Struktur Data Array. Rijal Fadilah S.Si

Algoritma Pemrograman & Struktur Data

PRAKTIKUM STRUKTUR DATA QUEUE. SULIDAR FITRI, M.Sc

DIG1G3 Implementasi Struktur Data

{ Kamus Umum } constant IdxMax : integer = 100 constant IdxMin : integer = 1 constant IdxUndef : integer = -999 { indeks tak terdefinisi}

Transkripsi:

Struktur Data Queue (Antrian)

Definisi Queue (Antrian) adalah list linier yang : 1. Dikenali elemen pertama (Head) dan elemen terakhirnya (Tail) 2. Aturan penyisipan dan penghapusan elemennya didefinisikan sebagai berikut : Penyisipan selalu dilakukan setelah elemen terakhir Penghapusan selalu dilakukan pada elemen pertama 3. Satu elemen dengan elemen lain dapat diakses melalui informasi Next

Struktur data ini banyak dipakai dalam informatika misalnya untuk merepresentasi : 1. Antrian job dalam sistem operasi 2. Antrian dalam dunia nyata

Maka secara logik, sebuah Queue dapat digambarkan sebagai list linier yang setiap elemennya adalah : Type ElmtQ = record <Info : InfoType, Next : address >

dengan InfoType terdefinisi yang menentukan informasi yang disimpan pada setiap elemen queue, dan address adalah alamat dari elemen Selain itu alamat elemen Pertama (Head) dan elemen terakhir (Tail) dicatat.

Maka jika Q adalah Queue dan P adalah Address, penulisan untuk Queue adalah : Head(Q) Tail(Q) Next(P) Info(P)

Operasi pada Queue Q : Construct (bentuk) queue Q kosong Tentukan apakah queue Q kosong (empty) Insert item baru pada ekor queue Q Untuk queue Q tidak kosong, remove item dari Q terdepan.

Traversal pada Queue Pada queue, jarang sekali dilakukan traversal, karena keunikan Queue justru pada operasi yang hanya menyangkut elemen pertama dan terakhir. Namun dibutuhkan traversal misalnya untuk mencetak isi Antrian.

Search pada Queue Pada Queue, elemen yang diproses hanyalah elemen pada pertama dan terakhir. Maka hampir tidak pernah dilakukan search.

Operasi dan fungsi dasar pada Queue a. Test Queue kosong Mengetahui bahwa Queue kosong atau tidak sangat penting, sebab semua operasi akan dilakukan berdasarkan kosong atau tidaknya suatu Queue. Realisasi algoritma dari definisi fungsional ini adalah sebuah fungsi yang melakukan test terhadap Queue sebagai berikut :

function IsQEmpty (Q : Queue) Boolean { TEST Queue kosong : Mengirim true, jika antrian kosong, false jika antrian tidak kosong} Deklarasi Deskripsi return ((Head(Q) = Nil) and (Tail(Q) = Nil))

b. Pembuatan Queue kosong Membuat Queue kosong diperlukan untuk memulai memakai Queue. Realisasi algoritma dari definisi fungsional ini adalah sebuah prosedur yang melakukan inisialisasi Queue sebagai berikut : Procedure CreateEmptyQ (Output Q : Queue) {K. Awal : sembarang, K. Akhir : sebuah queue Q yang kosong terbentuk Proses : Membuat queue kosong } Deklarasi Deskripsi Head(Q) Nil Tail(Q) Nil

c.penambahan sebuah elemen pada Queue Penambahan selalu dilakukan pada ekor, dan karena alamat ekor diketahui maka prosesnya sederhana, yaitu hanya InsertLast. Berikut ini akan diberikan skema prosedur penyisipan tersebut.

Realisasi algoritma dari definisi fungsional ini adalah salah satu dari dua buah prosedur yang melakukan penambahan elemen Queue sebagai berikut : Prosedur pertama menambahkan suatu Elemen Queue yang diketahui alamatnya Prosedur kedua menambahkan suatu nilai Elemen queue yang diberikan

procedure InsertQ@ (Input/Output Q : Queue Input P : address) {K.Awal : Queue mungkin kosong, P terdefinisi (berarti terdefinisi informasinya, Next (P) = Nil K.Akhir : P menjadi elemen Tail dari Q dan Tail yang baru adalah P Proses : Insert sebuah elemen beralamat P pada Tail dari antrian Q }

Deklarasi Deskripsi If IsQEmpty(Q) then Head(Q) P Tail(Q) P else Next(Tail(Q)) P Tail(Q) P endif

procedure InsertQ(Input/Output Q : Queue Input E : InfoType) {K.Awal : Queue mungkin kosong, E terdefinisi K.Akhir : Elemen Tail dari Q yang baru bernilai E Proses : Insert sebuah elemen nilai pada Tail dari antrian Q }

Deklarasi Deskripsi Alokasi (P) Info (P) E If IsQEmpty(Q) then Head(Q) P Tail(Q) P else Next(Tail(Q)) P Tail(Q) P endif

d. Penghapusan Elemen Pada QueuE Penghapusan elemen pada queue selalu dilakukan pada elemen pertama, hanya sajaperlu diperhitungkan bahwa mungkin queue menjadi kosong akibat terjadinya penghapusan. Jika queue menjadi kosong, maka harga Tail harus diganti. Jika akibat penghapusan queue tidak kosong, maka elemen terakhir tidak berubah.

Berikut adalah skema penghapusan tersebut : Prosedur pertama melakukan penghapusan ElmtQ yang berada di Head dan yang dicatat adalah alamatnya, yaitu P. Prosedur yang kedua menghapus elemen Head dari queue dan menyimpannya pada suatu elmtq serta membebaskan alamat yang tadinya dipakai oleh elemen Head tersebut.

procedure DeleteQ@(Input/Output Q : Queue Output P : address) {K.Awal : Queue tidak kosong K.Akhir : P bukan lagi elemen dari Q, P Nil, Next(P) = Nil Proses : Menghapus elemen Head dari antrian, antrian tidak boleh kosong dan mungkin menjadi kosong }

Deklarasi Deskripsi P Head(Q) Head(Q) Next(Head(Q)) if (Head(Q) = Nil) then Tail(Q) Nil endif Next(P) Nil

procedure DeleteQ(Input/Output Q : Queue Output E : InfoType) {K.Awal : Queue tidak kosong K.Akhir : Jika P adalah Head(Q). P bukan lagi elemen dari Q, P Nil, Next(P) = Nil Proses : Menghapus elemen Head dari antrian, antrian tidak boleh kosong dan mungkin menjadi kosong }

Deklarasi Deskripsi P Head(Q) E Info(Head(Q)) Head(Q) Next(Head(Q)) if (Head(Q) = Nil) then Tail(Q) Nil endif Next(P) Nil Dealokasi(P)