1.11k likes | 2.49k Views
QUEUE. QUEUE (ANTRIAN). Adalah antrian data yang seolah-olah ada data yang mengantri dari yang terawal sampai yang terakhir Suatu metode untuk Input dan hapus di dalam memori komputer Konsep utama dalam Queue FIFO ( First In First Out ) Contoh :
E N D
QUEUE (ANTRIAN) • Adalahantrian data yang seolah-olahada data yang mengantridari yang terawalsampai yang terakhir • Suatumetodeuntuk Input danhapusdidalammemorikomputer • Konseputamadalam Queue FIFO ( First In First Out ) • Contoh: • 1.Siswa1, 2.Siswa2, 3.Siswa3 ,4.Siswa4 ,5.Siswa5 • Data nomor1(satu) datang/masukduluan, data nomor1(satu) juga yang keluarterlebihdahulu.
QUEUE (ANTRIAN) • DEQUEUE adalah mengeluarkan satu elemen dari suatu Antrian • Antrian dapat dibuat dengan menggunakan: Liniear Array dan Circular Array • Contoh: 1.Siswa1, 2.Siswa2, 3.Siswa3 ,4.Siswa4 ,5.Siswa5 1.Siswa1 2.Siswa2, 3.Siswa3 ,4.Siswa4 ,5.Siswa5 Loket Loket
QUEUE (ANTRIAN) • Dikenalielemenpertama (Head) danelementerakhirnya(Tail) • Aturanpenyisipandanpenghapusanelemennyadisefinisikansebagaiberikut: • Penyisipanselaludilakukansetelahelementerakhir • Penghapusanselaludilakukanpadaelemenpertama • Satuelemendenganelemen lain dapatdiaksesmelaluiinformasi Next
Algoritma • Input/tambah data Jikaada input makanomor queue/nomorantrian yang semula 0 akan tambah 1(satu) demi 1(satu) sampai maksimal antrian. • Pengambilan data Jikaadapengambilan data maka data dipindahkan di variabel lain contohnya temp. Dan posisiantriannya yang semulamaksimalakanberkurang1(satu) demi1(satu) sampaiposisi 0 kembali.
Queue Linier Array • Terdapat satu buah pintu masuk di suatu ujung dan satu buah pintu keluar di ujung satunya • Sehingga membutuhkan 2 variabel: Head dan Tail
Queue Linier Array • Pendeklarasian Queue bisadilakukandenganmenggunakan Struck
Operasi-operasiPada Queue • Create() • Untuk menciptakan dan menginisialisasi Queue • Dengan cara membuat Head dan Tail = -1 (karena menggunakan array dimana indek dimulai dari 0, sehingga saat antrian tidak ada artinya indek 0 tidak ada isinya Head&Tail = -1)
Operasi-operasiPada Queue • IsEmpty() • Untuk memeriksa apakah Antrian sudah penuh atau belum • Dengan cara memeriksa nilai Tail, jika Tail = -1 maka empty • Kita tidak memeriksa Head, karena Head adalah tanda untuk kepala antrian (elemen pertama dalam antrian) yang tidak akan berubah-ubah • Pergerakan pada Antrian terjadi dengan penambahan elemen Antrian kebelakang, yaitu menggunakan nilai Tail
Operasi-operasiPada Queue • IsEmpty()
Operasi-operasiPada Queue • IsFull() • Untuk mengecek apakah Antrian sudah penuh atau belum • Dengan cara mengecek nilai Tail, jika Tail >= MAX-1 (karena MAX-1 adalah batas elemen array pada C) berarti sudah penuh
Operasi-operasiPada Queue • Enqueue • Untuk menambahkan elemen ke dalam antrian, penambahan elemen selalu ditambahkan di elemen paling belakang • Penambahan elemen selalu menggerakan variabel Tail dengan cara increment counter Tail terlebih dahulu
Operasi-operasiPada Queue • Enqueue
Operasi-operasiPada Queue • Dequeue() • Digunakan untuk menghapus elemen terdepan/pertama (head) dari Antrian • Dengan cara menggeser semua elemen antrian kedepan dan mengurangi Tail dgn 1 • Penggeseran dilakukan dengan menggunakan looping
Operasi-operasiPada Queue • Dequeue()
Operasi-operasiPada Queue • Clear() • Untuk menghapus elemen-elemen Antrian dengan cara membuat Tail dan Head = -1 • Penghapusan elemen-elemen Antrian sebenarnya tidak menghapus arraynya, namun hanya mengeset indeks pengaksesan-nya ke nilai -1 sehingga elemen-elemen Antrian tidak lagi terbaca
Operasi-operasiPada Queue • Clear()
Operasi-operasiPada Queue • Tampil() • Untuk menampilkan nilai-nilai elemen Antrian • Menggunakan looping dari head s/d tail