Politeknik Tanah Laut Teknik Informatika Semester 2

Senin, 11 Maret 2019

CodeBlocks C++ : Queue

By Maret 11, 2019
“Queue”
Yo sobat Mahasiswa, mari kita lanjutkan materi koding yaitu "Queue". Silahkan juga lihat Stacks pada postingan sebelumnya.

  • Queue
Antrian adalah struktur data yang dirancang untuk beroperasi dalam konteks FIFO (First in First out). Elemen antrian dimasukkan dari ujung belakang dan dikeluarkan dari ujung depan. Kelas antrian adalah wadah aktif. Wadah adalah objek yang menyimpan data dari jenis yang sama. Antrian dapat dibuat dari wadah urutan yang berbeda. Wadah aktif tidak mendukung iterator karena itu kita tidak dapat menggunakannya untuk manipulasi data. Namun mereka mendukung fungsi anggota push () dan pop () untuk memasukkan dan menghapus data masing-masing.
  • Operasional Queue
Fungsi yang terkait dengan antrian adalah:
  1. Clear() - Mengembalikan antrian menjadi kosong Contoh:
    void Clear()
    {
        antrian.head = antrian.tail = -1;
        printf("Data Clear");
    }
  2. Tampil() - Menampilkan antrian Contoh:
    void Tampil()
    {
        if (IsEmpty()==0)
        {
            for (int i=antrian.head;i<=antrian.tail; i++)
            {
                printf("%d ",antrian.data[i]);
            }
        }
        else
        {
            printf("Data Kosong\n");
        }
    }
  3. Enqueue() - Menambahkan elemen Contoh:
    void Enqueue(int data)//menginput sebah dta
    {
        if(IsEmpty() == 1)
        {
            antrian.head = antrian.tail = 0;
            antrian.data[antrian.tail] = data;
            printf("%d Data Telah Masuk !", antrian.data[antrian.tail]);
        }
        else if(IsFull() == 0)
        {
            antrian.tail = antrian.tail + 1;
            antrian.data[antrian.tail] = data;
            printf("%d masuk !", antrian.data[antrian.tail]);
        }
    }
  4. Dequeue() - Menghapus elemen terakhir dari antrian Contoh:
    int Dequeue()
    {
        int i;
        int e = antrian.data[antrian.head];
    
        for(i=antrian.head;i<=antrian.tail-1;i++)
        {
            antrian.data[i] = antrian.data[i+1];
        }
        antrian.tail--;
        return e;
    }
  • Contoh Program
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define MAX 5
#include <iostream>

using namespace std;

typedef struct
{
    int data [MAX];
    int head;
    int tail;
}Queue;

Queue antrian;

void Create()
{
    antrian.head = antrian.tail = -1;
}

int IsEmpty()
{
    if(antrian.tail == -1)
        return 1;
    else
        return 0;
}

int IsFull()
{
    if(antrian.tail == MAX-1)
        return 1;
    else
        return 0;
}

void Enqueue(int data)//menginput sebah dta
{
    if(IsEmpty() == 1)
    {
        antrian.head = antrian.tail = 0;
        antrian.data[antrian.tail] = data;
        printf("%d Data Telah Masuk !", antrian.data[antrian.tail]);
    }
    else if(IsFull() == 0)
    {
        antrian.tail = antrian.tail + 1;
        antrian.data[antrian.tail] = data;
        printf("%d masuk !", antrian.data[antrian.tail]);
    }
}

int Dequeue()
{
    int i;
    int e = antrian.data[antrian.head];

    for(i=antrian.head;i<=antrian.tail-1;i++)
    {
        antrian.data[i] = antrian.data[i+1];
    }
    antrian.tail--;
    return e;
}

void Clear()
{
    antrian.head = antrian.tail = -1;
    printf("Data Clear");
}

void Tampil()
{
    if (IsEmpty()==0)
    {
        for (int i=antrian.head;i<=antrian.tail; i++)
        {
            printf("%d ",antrian.data[i]);
        }
    }
    else
    {
        printf("Data Kosong\n");
    }
}

int main()
{
    int pil;
    int data;
    Create();

    do
    {
        system("cls");
        printf ("\n MENU PILIHAN PROGRAM QUEUE\n");
        printf ("1. Enqueue\n");
        printf ("2. Dequeue\n");
        printf ("3. Tampil\n");
        printf ("4. Clear\n");
        printf ("5. Keluar\n");
        printf ("Masukkan Pilihan Anda : ");
        scanf("%d",&pil);

    switch(pil)
    {
        case 1:
            printf("Data : ");
            scanf("%d",&data);
            Enqueue(data);
            break;

        case 2:
            printf("Elemen yang keluar : %d", Dequeue());
            break;

        case 3:
            Tampil();
            break;

        case 4:
            Clear();
            break;
        case 5:
            return 0;
            break;
    }
    getch();
    } while(pil!=5);
}


Sobat bisa mencoba kodingan diatas dan memahaminya. Contoh programnya sendiri memiliki banyak variasi tergantung dari kreativitas oleh penulis program.


Sekian dari postingan blog kali ini. Semoga artikel ini dapat bermanfaat bagi sobat baik untuk mengerjakan tugas, menambah ilmu, maupun untuk sekedar menambah wawasan untuk media pembelajaran koding.

0 komentar:

Posting Komentar