Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

STRUKTUR DATA Queue atau Antrian. Pengertian Queue Queue/antrian adalah ordered list dengan penyisipan di satu ujung, sedang penghapusan di ujung lain.

Presentasi serupa


Presentasi berjudul: "STRUKTUR DATA Queue atau Antrian. Pengertian Queue Queue/antrian adalah ordered list dengan penyisipan di satu ujung, sedang penghapusan di ujung lain."— Transcript presentasi:

1 STRUKTUR DATA Queue atau Antrian

2 Pengertian Queue Queue/antrian adalah ordered list dengan penyisipan di satu ujung, sedang penghapusan di ujung lain. Ujung penyisipan disebut rear/tail. Ujung penghapusan disebut front/head. Head/front menunjuk ke awal antrian(elemen terdepan), sedangkan tail/rear menunjuk ke akhir antrian (elemen paling belakang). Bersifat FIFO (First In First Out) yaitu Elemen yang pertama kali masuk ke antrian akan keluar pertama kalinya.

3 Simulasi antrian di dunia nyata, antara lain : Lalu lintas udara, tinggal landas(take-off) dan pendaratan(landing) Antrian pembelian tiket di depan loket untuk bis, kereta api, bioskop Antrian mobil di depan gerbang jalan tol Antrian kendaraan di jalan umum. Penggunaan Queue

4 Operasi Queue Create : membuat queue baru yang masih kosong EnQueue: Memasukkan/menyisipkan data baru pada tail (queue) DeQueue: Mengeluarkan/menghapus data terdepan/pertama dari antrian (di front), jika queue tidak kosong Clear: Menghapus seluruh antrian Empty/IsEmpty: Memeriksa apakah antrian kosong(mengembalikan nilai true jika queue kosong) Full/IsFull: Memeriksa apakah antrian penuh (mengembalikan nilai true jika queue penuh) getfront: mengambil data pertama (di front), jika queue tidak kosong.

5 Operasi Queue dengan Array Create Empty Enqueue Full Dequeue getfront

6 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

7 Deklarasi Queue Operasi-operasi: Create() – Untuk menciptakan dan menginisialisasi Queue – Dengan cara membuat Head dan Tail = -1

8 Create()

9 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

10

11 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) berarti sudah penuh

12 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

13

14 Dequeue() – Digunakan untuk menghapus elemen terdepan/pertama (head) dari Antrian – Dengan cara menggeser semua elemen antrian kedepan dan mengurangi Tail dgn 1 atau bisa menambah head dgn 1

15

16 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

17

18 Tampil() – Untuk menampilkan nilai-nilai elemen Antrian – Menggunakan looping dari head s/d tail

19 Queue dengan Array #include #define MAX 10 //ukuran maksimum queue void enqueue(int queue[], int *tail, int nilai); void dequeue(int queue[], int *head, int *tail, int *nilai); int main() { int queue[MAX]; int head, tail; int n, nilai; head = tail = (-1);

20 do { { cout<<"Masukkan Nilai Elemen : "; cin>>nilai; enqueue(queue,&tail,nilai); cout<>n; } while (n == 1); cout<>n; cout<>n;

21 while(n == 1) { dequeue(queue,&head,&tail,&nilai); cout<<"Nilai telah dihapus : "<>n; } cout<>n; } while (n == 1); getch(); return 0; }

22 void enqueue(int queue[], int *tail, int nilai) { if(*tail < MAX-1) { *tail = *tail + 1; queue[*tail] = nilai; } else { cout<<"Queue Penuh, enqueue Tidak Dapat Dilakukan"<

23 void dequeue(int queue[], int *head, int *tail, int *nilai) { if(*head == *tail) { cout<<"Queue Kosong, dequeue Tidak Dapat Dilakukan"<

24 Tampilan Program


Download ppt "STRUKTUR DATA Queue atau Antrian. Pengertian Queue Queue/antrian adalah ordered list dengan penyisipan di satu ujung, sedang penghapusan di ujung lain."

Presentasi serupa


Iklan oleh Google