280 likes | 519 Views
Queue. Operasi pada Queue. Deklarasi Inisialisasi Cek kosong Cek penuh Penambahan Pengambilan Pengaksesan. (1) Deklarasi. Proses yang harus dilakukan pertama kali adalah deklarasi/menyiapkan tempat. Langkah yang harus dilakukan adalah : Deklarasi class
E N D
Operasi pada Queue • Deklarasi • Inisialisasi • Cek kosong • Cek penuh • Penambahan • Pengambilan • Pengaksesan
(1) Deklarasi • Proses yang harus dilakukan pertama kali adalah deklarasi/menyiapkan tempat. • Langkah yang harus dilakukan adalah : • Deklarasi class • Deklarasi struktur data (menggunakan array atau linked list) • Deklarasi pointer front dan rear
Deklarasi Queue dengan Linked-list • Pembuatan class queue contoh : 2. Pembuatan class Node 3. Pembuatan variabel head, tail, front dan rear bertipe Node. Ketiga variabel ini dideklarasikan pada class queue Node head,tail,front, rear;
(2) Inisialisasi • Pada Linked List: Proses inisialisasi dilakukan dengan memberikan nilai awal pada variabel head, tail front dan rear dengan nilai null. head = tail = front=rear= null;
(3) Cek Kosong • Operasi yang digunakan untuk mengecek kondisi queue dalam keadaan kosong. • Pada linked list : dapat menggunakan pengecekan front atau rear jika nilainya null berarti queue kosong. • Operasi ini harus dapat mengembalikan nilai true jika queue kosong dan false jika sebaliknya.
Program “isEmpty” Queue (Linked List) booleanisEmpty(){ return (rear==null); }
(6) Operasi Dequeue • Dequeue adalah proses pengambilan data pada queue. • Ketika dequeue terjadi, element pada queue akan berkurang, yaitu element yang pertama kali ditambahkan. • Pada linked list : front akan menunjuk pada node yang ditunjuk oleh head setelah operasi remove.
(5) Operasi POP...........(lanjutan) • Langkah-langkah : • Pengecekan queue dalam kondisi kosong dengan memanggil method isEmpty(). • Data dari element yang diambil akan menjadi return value (nilai yang dikembalikan) • Perubahan nilai pada variabel front dan rear
(6) Operasi Enqueue • Enqueue adalah proses penambahan element pada queue. • Ketika enqueue terjadi, element pada queue akan bertambah 1. • Posisi pointer rear akan bergeser menunjuk pada element baru yang ditambahkan. • Pada linked list : rear akan menunjuk ke node baru yang ditunjuk oleh tail.
(6) Operasi Enqueue...........(lanjutan) • Langkah-langkah : • Penambahan element baru pada bagian belakang queue. • Perubahan posisi rear.
(7) Operasi peek • Peek pada queue adalah proses pengaksesan element yang ditunjuk oleh front (yaitu element yang pertama kali ditambahkan). • Operasi ini berbeda dengan enqueue karena tidak disertai dengan penghapusan data yang ada hanya pengaksesan (pengembalian data saja).
PRIORITY QUEUE(AntrianBerprioritas) AntrianBerprioritasadalahhimpunanelemen yang setiapelemennyadiberikantingkatprioritastertentu, danurutanpemrosesanelemennyadidasarkanatasprioritastersebutsbb: • Elemen yang prioritasnyalebihtinggidiproseslebihdulu. • Duaelemendenganprioritas yang samadiprosesberdasarkanurutankedatangannya, yaitu yang datanglebihduludiproseslebihdulu (FIFO).
PRIORITY QUEUE denganONE-WAY LIST Representasiantrianberprioritasantara lain dilakukandengan one-way list, sbb: • Setiapsimpulmemiliki 2 field, yaitu: INF (informasi)danPRN (nomorprioritas) • Simpul X mendahuluisimpul Y dalam list : - jikaprioritas X lebihtinggidaripadaprioritas Y - jikaprioritaskeduanyasama, tetapi X lebihdulumasukkedalamantrian.
PRIORITY QUEUE with One-Way List Urutankedatangan START 4
Tugas • Buatlahsimulasiantrian teller di bank . Apabila bank mempunyai 2 teller yang bertugasmelayaninasabah. Setiapadanasabahbarumasukakanmengambilnomerantrian yang disesuaikanantrian paling pendekantara teller 1 atau teller 2. apabilajumlahantriansamamakaakanmengantridi teller 1.Kalau misalnyanasabahmempunyai priority card makanasabahtersebutharusdidahulukan.