Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

QUEUE hms_sept.

Presentasi serupa


Presentasi berjudul: "QUEUE hms_sept."— Transcript presentasi:

1 QUEUE hms_sept

2 Definisi Queue secara harfiah dapat di artikan sebagai sebuah antrian.
Merupakan kumpulan data dimana penambahan data hanya melalui satu sisi yaitu belakang dan penghapusan data hanya melalui sisi depan.

3 Sifat Queue Sifat queue adalah FIFO(Firs in first out). Artinya data yang masuk pertama akan keluar pertama juga dan data yang terakhir masuk akan keluar terakhir juga. Elemen yang pertama masuk ke queue disebut elemen depan (front/head of queue), sedangkan elemen yang terakhir masuk ke queue disebut dengan elemen belakang (rail of queue).

4 Stack vs Queue Perbedaan stack dan queue terdapat pada aturan penambahan dan penghapusan elemen. Pada stack, operasi penambahan dan penghapusan dilakukan pada ujung yang sama, dimana elemen yang terakhir masuk akan pertama keluar (LIFO). Pada queue operasi penambahan dan penghapusan dilakukan di ujung yang berbeda. Penambahan dilakukan pada ujung belakang, sedangkan penghapusan dilakukan pada ujung depan atau pada elemen yang masuk paling awal (FIFO).

5 Ilustrasi

6 Operasi Standar 1. Membuat queue atau inisialisasi
2. Mengecek apakah queue penuh (full) 3. Mengecek apakah queue kosong(empty) 4. Memasukan elemen ke dalam queue atau InQueue(insert queue). 5. Menghapus elemen dari queue atau DeQueue(Delete Queue).

7 void init(void) { antri.awal=0; antri.akhir=0; }

8 2. Fungsi Full Berguna untuk mengecek apakah queue sudah penuh atau belum. Dengan cara mengecek nilai akhir (tail) sudah sama dengan maksimal queue. Jika nilai akhir sama dengan nilai maximum maka fungsi akan mengembalikan nilai 1 dan jika tidak sama dengan nilai maksimum, maka fungsi akan mengembalikan nilai 0.

9 int full(void) { if (antri
int full(void) { if (antri.akhir==max) return(true); else return(false); }

10 3. Fungsi Empty Berguna untuk mengecek apakah queue masih kosong atau sudah berisi data. Dengan mengeceknapakah nilai akhir (tail) bernilai 0 atau tidak. Jika nilai akhir(tail)=0 maka fungsi ini akan mengembalikan nilai 1 dan jika tidak nol, maka fungsi akan mengembalikan nilai 0.

11 int empty(void) { if (antri.akhir==0) return(true); else return(false); }

12 4. Fungsi InQueue Berguna untuk memasukan elemen ke dalam queue
4. Fungsi InQueue Berguna untuk memasukan elemen ke dalam queue. Jika tidak kosong dan antrian belum penuh maka nilai akhir (tail) ditambah 1.

13 void inQueue(char elemen) { if(empty()==true) antri. awal=1; antri
void inQueue(char elemen) { if(empty()==true) antri.awal=1; antri.akhir=1; antri.info[antri.awal]=elemen; } else if(full()!=true) antri.akhir++; antri.info[antri.akhir]=elemen; printf("QUEUE overflow");

14 5. Fungsi DeQueue Berguna untuk mengambil elemen dari queue, dengan cara memindahkan semua elemen satu langkah ke posisi depannya, sehingga elemen yang paling depan tertimpa.

15 char deQueue() { char isi; int i; if(empty(). =true) isi=antri
char deQueue() { char isi; int i; if(empty()!=true) isi=antri.info[antri.awal]; for(i=antri.awal;i<=antri.akhir;i++) antri.info[i]=antri.info[i+1]; antri.akhir--; return(isi); } else printf("queue underflow.\n");

16 6. Fungsi Clear Berguna untuk menghapus semua elemen dalam queue.
Ada dua cara yaitu menuliskan fungsi seperti inisialisasi atau memanggil fungsi DeQueue sampai queue kosong. procedure Clear; begin while empty=0 do DeQueue; end;


Download ppt "QUEUE hms_sept."

Presentasi serupa


Iklan oleh Google