MODUL PEMROGRAMAN 2. Queue (Antrian)

dokumen-dokumen yang mirip
Seharusnya. if (antrian.tail==max-1) return 0;

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

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

BAB III QUEUE (ANTRIAN)

Algoritma Dan Struktur Data II. Queue

PRAKTIKUM STRUKTUR DATA QUEUE. SULIDAR FITRI, M.Sc

ARNA FARIZA YULIANA SETIOWATI

LAPORAN PRAKTIKUM IV. Oleh:

STACK DAN QUEUE (Muhammad Fachrie, STMIK Amikom Yogyakarta)

BAB IV Antrian(Queue)

Algoritma dan Struktur Data. Ramos Somya

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

STRUKTUR DATA POKOK BAHASAN - 8 QUEUE ( ANTRIAN)

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

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

# NINE Queue dengan Array

QUEUE (ANTREAN) Pertemuan 6 PENGERTIAN QUEUE (ANTREAN)

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

LAPORAN PRAKTIKUM RESMI QUEUE

ALGORITMA DAN STRUKTUR DATA ARRAY STACK DAN QUEUE

POINTER STACK DAN QUEUE. Institut Teknologi Sumatera

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

Implementasi Queue menggunakan Array. Imam Fahrur Rozi

Struktur Data Array. Rijal Fadilah S.Si

STACK DAN QUEUE. Pengertian Stack Dan Queue. stack & queue. Last saved by KENKEINA Created by KENKEINA

SINGLE LINKED LIST NON CIRCULAR (SENARAI BERANTAI TUNGGAL TIDAK BERPUTAR)

Algoritma Dan Struktur Data II

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

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA QUEUE

Algoritma Pemrograman & Struktur Data

SORTING (Pengurutan)

BAB VIII QUEUE (ANTRIAN)

Algoritma dan Struktur Data. Linked List

LOGO STRUKTUR DATA QUEUE

Praktikum 5. Antrian (Queue)

A. TUJUAN PEMBELAJARAN

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

Lab. Teknik Informatika Struktur Data 1

TIF 4201 Algoritma Dan Struktur Data

MODUL 4. COLLECTIONS ARRAYS, QUEUE, dan STACK

Materi 9 : QUEUE (ANTREAN) Dosen:

Algoritma dan Struktur Data. Queue

05. Double Linked List

Praktikum 4. Tumpukan (Stack)

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

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

E STRUKTUR DATA & E PRAKTIK STRUKTUR DATA. Stack using Array. Alfa Faridh Suni, S.T., M.T. PTIK

A. TUJUAN PEMBELAJARAN

04. Single Linked List

KUM 5 IMPLEMENTASI QUEUE

M Queue Berprioritas. Amin Arifiyani. Struktur Data M

BAB II ANALISIS DAN PERANCANGAN. penggunaan bandwidth. Solusi yang sering dilakukan adalah

ANTRIAN ( QUEUE ) NAMA KELOMPOK : 1.EKA PRIHANTORO 2.FATKHUL ELEKTRIK PSH 3.RIZKY GUMILANG CR

Algoritma dan Struktur Data. Pertemuan 9 Circular Linked List

Pertemuan VI ANTRIAN (Queue)

QUEUE (ANTRIAN) Struktur Data - Queue

Stack. Gambar 1.1 Stack

Pencarian (Searching)

QUEUE (ANTRIAN) Depan=1 Belakang=

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

printf (" ======== Program untuk memilih nama bulan dalam setahun ======== \n \n");

BAB III. Stack. ( Tumpukan )

Praktikum Algoritma dan Struktur Data

5. QUEUE (ANTRIAN) TUJUAN PRAKTIKUM

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

Perulangan, Percabangan, dan Studi Kasus

STRUKTUR DATA Pertemuan 1 s.d 8

STACK atau TUMPUKAN. Pertemuan 5 STACK (TUMPUKAN)

Struktur Data dan Algoritma

# TEN Sorting PENDAHULUAN

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA

PRAKTIKUM ALGORITMA DAN STRUKTUR DATA

Algoritma dan Struktur Data. Pertemuan 7 Linked List

STACK (Tumpukan) Tumpukan Koin. Tumpukan Kotak

Data Structure STRUKTUR DATA QUEUE. Chapter 3. Dahlia Widhyaestoeti, S.Kom

BAB 2 SORTING (PENGURUTAN)

Proses Perulangan (Looping) DASAR PROGRAMMING 1

Algoritma Shell Sort Ascending Dan Binary Sequential Search Menggunakan C

//membuat sebuah tipe data baru yang terdiri dari. //field data bertipe integer //field next merupakan pointer dari list

Algoritma dan Pemrograman. Loop control structures: WHILE. Loop control structures: WHILE Perhatikan potongan program berikut: 12/29/2011

Percabangan. Agus Priyanto, M.Kom

Tutorial - Single Linked List

A. TUJUAN PEMBELAJARAN

Praktikum 5 PERULANGAN PROSES

IF ELSE IF ELSE. BU : if (kondisi1) Statement; else if (kondisi2) Statement;

MODUL PRAKTIKUM STRUKTUR DATA. Dosen Pengampu M.Bahrul Ulum, S.Kom., M.Kom. Asisten Lab Mia Kastina PROGRAM STUDI TEKNIK INFORMATIKA

Algoritma Dan Struktur Data II

PERTEMUAN KE-6. Pertemuan 6

QUEUE ( ANTREAN ) 4.1. PENGERTIAN QUEUE (ANTREAN)

PRAKTIKUM ALGORITMA DAN STRUKTUR DATA DOUBLE LINKED LIST CIRCULAR

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

IT234 - Algoritma dan Struktur Data. Ramos Somya

Struktur Data. Queue (Antrian)

PERTEMUAN III DECISION. Prepared by Vosco

TEORI KONSEP PEMPROGRAMAN 3.1

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

BAGIAN A. PILIHAN GANDA Silanglah Jawaban yang Benar Pada Lembar Jawaban. Jawaban benar bernilai 3, salah atau kosong bernilai 0.

SATUAN ACARA PENGAJARAN

IT234 - Algoritma dan Struktur Data. Ramos Somya

Struktur Data. Stack STMIK AMIKOM YOGYAKARTA. Bayu Setiaji, S.Kom

Transkripsi:

Queue (Antrian) Secara harfiah queue dapat diartikan sebagai antrian. Queue merupakan kumpulan data dengan penambahan data hanya melalui satu sisi, yaitu belakang (tail) dan penghapusan data hanya melalui sisi depan (head). Berbeda dengan stack yang bersifat LIFO maka queue bersifat FIFO(First In First Out), yaitu data yang pertama masuk akan keluar terlebih dahulu dan data yangterakhir masuk akan keluar terakhir. Berikut contoh simulasi proses pada Queue : Queue dalam kehidupan sehari-hari seperti antrian pada penjualan tiket kereta api, dimana orang yang pertama datang adalah orang yang pertama kali dilayani untuk membeli tiket. Jika ada orang baru yang datang akan membali tiket, maka posisinya berada pada urutan paling belakang dalam antrian tersebut. Orang yang berada pada posisi terakhir dalam antrian adalah yang terakhir Siti yuliyanti Page 1

kali dapat dilayani dan memperoleh tiket kereta api (kalau kurang beruntung, maka akan kehabisan tiket). Contoh lain adalah nasabah yang antri di teller bank, paket data yang menunggu untuk ditransmisikan lewat internet, antrian printer dimana terdapat antrian print job yang menunggu giliran untuk menggunakan printer, dsb. Istilah-istilah yang digunakan dalam queue (antrian) Memasukkan data (insert) disebut juga dengan put, add, atau enqueue. Menghapus data (remove) biasa disebut dengan istilah delete, get, atau dequeue. Bagian belakang queue, dimana data bisa dimasukkan disebut dengan back, tail (ekor), atau end (akhir). Sedangkan bagian depan (front) queue dimana data bisa dihapus juga biasa disebut dengan istilah kepala (head). Circular Queue Di dunia nyata apabila seseorang sedang mengantri (misalnya antri tiket kereta api), apabila telah dilayani dan memperoleh tiket, maka ia akan keluar dari antrian dan orang-orang yang berada di belakangnya akan bergerak maju ke dapan. Kita bisa saja menggerakkan setiap item data ke depan apabila kita menghapus data yang terdepan, tetapi hal ini kurang efektif. Sebaliknya kita tetap menjaga setiap item data di posisinya, yang kita lakukan hanyalah merubah posisi front dan rear saja. Yang menjadi permasalahan adalah apabila posisi rear berada pada bagian akhir dari array (atau pada nomor indeks yang terbesar). Meskipun ada bagian yang kosong di awal-awal array karena mungkin data telah dihapus, data baru tidak bisa dimasukkan lagi karena rear-nya sudah tidak bisa bergerak lagi. Atau mungkinkah posisi rear nya bisa berpindah? Situasi seperti itu bisa dilihat seperti gambar berikut: Siti yuliyanti Page 2

Untuk menghindari permasalahan seperti itu (tidak bisa memasukkan data baru) meskipun queue-nya belum penuh, maka front danrear-nya berputar (kembali) ke bagian awal array. Kejadian seperti ini dinamakan dengan circular queue (atau kadang-kadang disebut juga dengan istilah ring buffer). Kejadian seperti ini seperti terlihat pada gambar disamping : Perhatikan bahwa setelah rear berputar (kembali) ke bagian awal array, posisinya sekarang di bawah front, kebalikan dari posisi aslinya (front berada di bawah rear). Coba hapus beberapa data sehingga pada suatu saat front juga akan berputar (balik) ke bagian awal array, sehingga front dan rear akan ke susunan aslinya (front di bawah rear). head X tail Dalam Queue, dikenal istilah head yaitu : data paling awal atau pertama diinput, dan tail : data yang paling akhir diinput atau terakhir dimasukan. Berikut contoh source code queue : #include <stdio.h> #include <conio.h> main() { int queue[5]; int depan = -1; int belakang = -1; int pilihan, data, i; do{ printf("\n--menu--\n"); printf("1. ENQUEUE\n2. DEQUEUE\n3. VIEW\n4. EXIT\n\n\n"); printf("pilihan = "); scanf("%d", &pilihan); Siti yuliyanti Page 3

switch (pilihan) { case 1: //enqueue //apakah queue belum penuh? if (belakang < 4 ) { printf("data Masuk = "); scanf("%d", &data); queue[belakang+1] = data; belakang++; if (belakang == 0) depan = 0; else printf("queue penuh!\n");break; case 2: //dequeue //apakah queue belum kosong? if (depan <= belakang) { printf("data keluar = %d\n", queue[depan]); depan++; else printf("queue kosong!\n");break; case 3: printf("\nisi QUEUE : "); for(i=depan; i<=belakang; i++) printf("%d ", queue[i]); printf("\n\n");break; while (pilihan!= 4); LATIHAN BuatlahpProgram shift yaitu, menjadikan sebuah bilangan desimal inputan menjadi bilangan biner, lalu setelah menjadi biner, akan dilakukan dequeue lalu di enqueue sebanyak shift. Siti yuliyanti Page 4

contoh : bilangan desimal : 25 di shift : 3 maka hasilnya adalah : 7 Kenapa kok bisa 7?????? nah, caranya seperti ini!!! dari bilangan desimal 25 dikonversikan menjadi biner menjadi 11001 setelah dikonversikan, maka program di shift sebanyak 3x 11001 > shift pertama, angka 1 yang terakhir di dequeue lalu di enqueue sehingga menjadi11100 11100 > shift kedua, angka 0 yang terakhir di dequeue lalu di enqueue sehingga menjadi01110 01110 > shift ketiga, angka 0 yang terakhir di dequeue lalu di enqueue sehingga menjadi 00111 setelah selesai menjadi bilangan biner 00111 akan dikonversikan menjadi desimal 1 > 20 x 1 = 1 1 > 21 x 1 = 2 1 > 22 x 1 = 4 0 > 23 x 0 = 0 0 > 24 x 0 = 0 + 7 Siti yuliyanti Page 5