Rabu, 08 April 2015

Algoritma modul 9

Untitled Document

MODUL 9
ANTRIAN (QUEUE)

I. Dasar Teori

Antrian (queue) adalah duatu kumpulan data yang penambahan elemennya hanya bisa dilakukan pada suatu ujung ( disebut dengan sisi belakang atau rear ), dan penghapusan atau pengambilan elemen dilakukan lewat ujung yang lain ( disebut atau sisi depan atau front ) . antrian ( queue ) mempunyai prinsip FIFO ( First In First Out ) bahwa yang pertama masuk yang pertama keluar.
Operasi dasar queue

  1. Create Queue
    - Untuk menciptakan dan menginisialisasi queue
    - Dengan cara membuat Head dan Tail = -1
    - Bentuk umum :

    Void create ( )
    {
    Antrian.Head = -1;
    Antrian.head = -1;
    }

  2. Empty Queue
    - Untuk memeriksa apakah antrian sudah penuh atau belum
    - Dengan 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
    - Peergerakan pada antrian terjadi dengan penambahan elemen antria kebelakang, yaitu menggunakan nilai Tail.
    - Bentuk umum :

    Void IsEmpty ( )
    {
    If (antrian.tail = -1)
    Return 1;
    Else
    Return 0;
    }

    1. Full Queue
      - 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
      - Bentuk umum :

      void isfull ( )
      {
      if (antrian.tail = max-1)
      return 1;
      else
      return 0;
      }

      • Enqueue
        - Untuk menambahkan elemen kedalam antrian, penambahan elemen selalu ditambahkan di elemen paling belakang
        - Penambahan selalu menggerakan variabel tail dengan cara increment counter tail terlebih dahulu
        - Bentuk umum :

        void enqueue (int data)
        {
        if (isempty ( ) = 1) {
        antrian.head=antrian.tail=0;
        antrian.data[antrin.tail] =data;
        printf(“%d,masuk”,antrian.data[antrian.tail] );
        }
        else
        if (isfull ( ) = 0) {
        antrian.tail++;
        antrian.data[antrian.tail]=data;
        printf(“%d,masuk”,antrian.data[antrian.tail] );
        }

        • Dequeue
          - Digunakan untuk menghapus elemen terdepan/pertama (head) dari antrian
          - Dengan cara menggeser semua elemen antrian kedepan dan mengurangi tail dengan 1
          - Pergeseran dilakukan dengan menggunakan looping
          - Bentuk umum :

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

          • Clear queue
            - Untuk menghapus elemen elemen antrian dengan cara membuat tail dan Head = -1
            - Penghapusan elemen-elemen antrian sebenarnya tidak menghapus arraynya, namun hamya mengeset indeks pengaksesannya ke nilai -1 sehingga elemen-elemen antrian tidak    lagi terbaca
            - Bentuk umum :

            void clear (  )
            {
            antrian.head = -1;
            antrian.tail = -1;
            printf(“data clear”);
            }

            • Tampil queue
              - Untuk menampilkan elemen elemen antrian
              - Menggunakan looping dan head s/d tail
              - Bentuk umum :

              Void clear (  )
              {
              Antrian.head = -1;
              Antrian.tail = -1;
              Printf(“data clear”);
              }

     

    II. Praktikum

    Untuk praktikum, klik aja link di bawah ini :

    https://www.scribd.com/doc/261308241/Praktikum-modul9

     

    III. Tugas Modul 6

    Untuk tugas, klik aja link di bawah ini :

    https://www.scribd.com/doc/261308340/Tugas-Modul9



    Catatan : Jangan asal CoPas aja ya,,,harus dipelajari lebih dalam...!!!hehe...

Tidak ada komentar:

Posting Komentar