Friday, 12 May 2017

Makalah SISTEM PENDUKUNG KEPUTUSAN (SPK) “STUDY KASUS TOKO ONLINE”

SISTEM PENDUKUNG KEPUTUSAN (SPK)
“STUDY KASUS TOKO ONLINE”


A.    Perancangan Basisdata

Spesifikasi Batabase
Studi Kasus : SI Toko Online
Ø    Di toko online itu memiliki 2 kategori barang yaitu (1) Barang (2) Makanan dengan atribut: kd_kat dan nm_kat.
Ø    Seorang pelanggan dapat membeli barang lebih dari satu dalam satu kategori, tetapi tidak bisa memesan banyak barang dengan banyak kategori.
Ø    Di tiap - tiap kategori memiliki barang yang didalamnya sesuai dengan kategorinya.
Ø    Data utama atau entitas dari data base ini ada 4 yaitu Entitas Kategori , Entitas Barang, Entitas Pelanggan, Entitas Order.
Ø    Pelanggan yang ingin melakukan pembelian harus login terlebih dahulu menggunakan username dan pasword.

1.      Entitas yang terlibat didalam Sistem Informasi Toko Online
a.       Entitas Kategori
b.      Entitas Barang
c.       Entitas Pelanggan
d.      Entitas Order

2.      Atribut dari setiap Entitas

Entity
                                             Atribut
Kategori
kd_kat, nm_kat
Barang
kd_barang, nm_barang, hrg_barang, kd_kat
Pelanggan
Id_pel, username_pel, nama_pel, almt_pel, no_tlp.
Order
kd_tran, kd_brg, kd_pel, jumlah, hrg_byr



3.      Primary key dari tiap entitas

Entity
Primary key
Kategori
kd_kat
Barang
kd_barang
Pelanggan
Id_pel
Order
kd_tran

4.      Relasi antar Entitas
Entity
Relasi
Entity
Barang
Dikelompokkan
Kategori
Pelanggan
Membeli
Barang
Barang
Memiliki
Order

5.      Cardinality Rasio
Entity
Relasi
Entity
Cardinality Rasio
Barang
Dikelompokkan
Kategori
 N : 1
Pelanggan
Membeli
Barang
N : M
Barang
Memiliki
Order
1 : N

6.      Menentukan atribut-atribut dari setiap relationship (jika ada)
Relasi
Atribut
Dikelompokkan
-
Membeli
total_harga, jenis_pembayaran
Memiliki
-
7.      Participation constrains
a.       Setiap barang harus merupakan anggota dari ketegori barang, sehingga Entitas Barang memiliki hubungan total participation dengan entitas Kategori.
b.      Seorang pelanggan tidak harus selalu membeli barang di toko tersebut sehingga antara entitas Pelanggan dengan entitas Barang hanya memiliki hubungan partial participation antar keduanya.
c.       Barang tidak harus selalu memiliki orderan, sehingga antara entitas barang dan entitas Order memiliki hubungan parcial participation


PEMBAGIAN- PEMBAGIAN DIAGRAM SISTEM PENDUKUNG KEPUTUSAN (SPK)



DIAGRAM SISTEM PENDUKUNG KEPUTUSAN (SPK)
SISTEM INFORMASI TOKO ONLINE




Entity Relationship Diagram
SI Toko Online

Thursday, 11 May 2017

MAKALAH SISTEM ANTRIAN / QUEUE DENGAN BAHASA PEMOGRAMAN C++

LAPORAN SISTEM ANTRIAN / QUEUE
DENGAN BAHASA PEMOGRAMAN C++

Diajukan untuk Memenuhi Tugas Mata Kuliah Struktur Data
Program Studi Tenik Informatika


Dosen Pembimbing :
EVA DARNILA,ST,MT
Oleh : Kelompok V
1.      Teuku Basdiansyah (150170060)
2.      Muhammad Zuhriyannur (150170057)
3.      Tri Wulandari
4.      Zulya
5.      Nursanti

JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK
UNIVERSITAS MALIKUSSALEH
LHOKSEUMAWE
2016


ABSTRAK

Dalam dunia teknologi informasi, tentu terjadi pengolahan data atau informasi. Pengolahan data atau informasi dibagi berdasarkan struktur dari data atau informasi tersebut. Salah satu bentuk dari pengolahan data adalah antrian atau queue. Queue adalah satu bentuk pengolahan data yang beroperasi dengan prinsip First In First Out (FIFO) yaitu elemen yang pertama masuk merupakan elemen yang pertama keluar. Queue dapat dilakukan dengan beberapa cara yaitu, dengan Linear Array, Circular Array, dan dengan Linked-List.
Kata kunci     : antrian, queue, FIFO, linear array, circular array, lnked-list, enqueue, dequeue.  



            KATA PENGANTAR

Segala puji dan syukur kami hadirkan kepada Allah SWT, yang mana oleh Allah yang telah melimpakan rahmat-Nya sehingga kami dapat menyelesaikan laporan tentang sistem antrian/queue.
Adapun maksud dan tujuan dari penyusunan laporan ini adalah untuk memenuhi tugas mata kuliah Struktur Data prodi Teknik Informtika, memahami sistem antrian, penerapannya dam kehidupan sehari-hari, serta supaya mahasiawa dapat mengimplementasikan sistem antrian ke dalam bahasa pemograman C++. Laporan ini disusun berdasarkan pengetahuan dan hasil kerja penulis.
Dalam kesempatan ini penulis mengucapkan terima kasih yang sebesar-besarnya kepada semua pihak yang telah membantu dan bekerjasama dalam membuat laporan ini.
Penulis menyadari bahwa laporan ini jauh dari kesempurnaan, Hal ini disebabkan karena keterbatasan kemampuan dan pengetahuan penulis. Untuk itu dengan segala kerendahan hati penulis mengharapkan kritik dan saran yang membangun dari pembaca demi kesempurnaan laporan ini. Akhir kata penulis berharap laporan ini bisa bermanfaat bagi pembaca.

                                                                                               
                                                                                            Lhokseumawe, 05 Desember 2016

           
                                        Penulis




BAB I
PENDAHULUAN

1.1.       Latar Belakang Masalah

Dalam terminology pemrogaman berorientasi objek, pada umumnya kita mengenal suatu struktur data bentukan pengguna yang disebut sebagai ADT (Abstrak Data Type), yang merupakan pengganti struktur data primitive yang telah terdefinisi dalam Bahasa pemrograman tertentu (misalnya int,String, dan sebagainya). Dalam bab ini kita akan mempelajari beberapa ADT Statis (ADT yang menggunakan lokasi memory secara tetap) ADT yang kita pelajari bab ini adalah QUEUE atau ANTRIAN.
Antrian dalam ilmu komputer bermakna sama dengan antrian pada kehidupan nyata. Ada antrian konsumen di sebuah bank atau di supermarket, dan ada pula antrian kendaraan di pintu masuk tol. Sama halnya dengan komputer dapat mengirimkan permintaan cetak lebih cepat daripada kemampuan printer dalam mencetak, antrian dokumen sering kali terjadi pada sebuah printer. Aturan umum dalam memproses elemen – elemen sebuah antrian adalah bahwa elemen terdepan antrian dilayani lebih dulu dan elemen yang paling belakang akan dilayani setelah elemen – elemen lain di depannya diproses. Jadi, antrian adalah sebuah struktur data FIFO (First In, First Out). Antrian memiliki banyak aplikasi dalam ilmu komputer. Kapan pun sebuah sistem dimodelkan menggunakan prinsip FIFO, antrian pasti digunakan.
Queue merupakan kasus khusus ordered list. Dengan karakteristik terbatas itu maka kita dapat melakukan optimasi representasi ADT Queue untuk memperoleh kerja paling optimal. Namun sebagai mahasiswa bidang komputer, tentu kita harus bisa mengkomputerkan apapun dari dunia nyata. Untuk itu kita perlu memahami tentang struktur data queue, operasi – operasi pada struktur  data queue, dan bagaimanakah kita bisa mengimplementasikan operasi – operasi struktur data queue tersebut kedalam bahasa pemograman, disini kita bahas bahasa pemograman C++.

1.2.       Rumusan Masalah

Dari uraian latar belakang diatas, penulis merumuskan beberapa masalah yang akan dijelaskan melalui laporan ini, yaitu sebagai berikut:
1.      Apakah struktur data queue itu
2.      Apa saja operasi-operasi stuktur data queue
3.      Bagaimana mengimplementasikan struktur data queue dalam bahasa C++
4.      Apa saja contoh aplikasinya dalam kehidupan sehari-hari

1.3.       Tujuan Penulisan

Tujuan pembuatan laporan ini adalah agar mahasiswa memahami tentang struktur data queue, dan mengerti bagaimana cara mengimplemetasikan dalam bahasa pemograman. Dan sebagai syarat pemenuhan tugas dalam mata kuliah Struktur Data, sekaligus bisa memberikan pendidikan dasar bagi penulis agar lebih banyak tahu tentang struktur data queue.

1.4.       Manfaat Penulisan

Penulisan makalah ini diharapkan dapat memberikan manfaat kepada semua pihak, khususnya kepada mahasiswa untuk menambah pengetahuan dan wawasan. Adapaun manfaat penulisan makalah ini adalah sebagai berikut :
1.      Dapat memahami pengertian struktur data queue
2.      Dapat memahami cara pengoperasian struktur data queue
3.      Dapat mengimplementasikan struktur data queu ke dalam bahasa C++
4.      Dapat mengetahui aplikasi struktur data queue dalam kehidupan.





BAB II
PEMBAHASAN

2.1.      Pengertian Queue

Queue jika diartikan secara harfiah, queue berarti antrian, Queue merupakan suatu struktur data linear. Konsepnya hampir sama dengan Stack, perbedaannya adalah operasi penambahan dan penghapusan pada ujung yang bebeda. Pada Stack atau tumpukan menggunakan prinsip “Masuk terakhir keluar pertama”atau LIFO (Last In First Out), Maka pada Queue atau antrian prinsip yang digunakan adalah “Masuk Pertama Keluar Pertama” atau FIFO (First In First Out). Data-data di dalam antrian dapat bertipe integer, real, record dalam bentuk sederhana atau terstruktur.
https://pythonschool.net/data-structures-algorithms/images/queue.jpg
sumber

Queue (antrian) adalah salah satu list linier dari struktur data yang beroperasi dengan cara First In First Out (FIFO) yaitu elemen pertama yang masuk merupakan elemen yang pertama keluar. Contohnya, ialah dalam sebuah antrian pembelian tiket bagi yang pertama masuk maka dia pulalah yang pertama keluar/selesai. Untuk penyisipan (INSERT) hanya dapat dilakukan pada satu sisi yaitu sisi belakang (REAR), sedangkan untuk penghapusan (REMOVE) pada sisi depan (FRONT) dari list.      
Queue/antrian adalah ordered list dengan penyisipan di satu ujung, sedang penghapusan di ujung lain. Ujung penyisipan biasa disebut rear/tail, sedang ujung penghapusa disebut front/head. Fenomena yang muncul adalah elemen yang lebih dulu disisipkan akan juga lebih dulu diambil. Queue merupakan kasus khusus ordered list. Dengan karakteristik terbatas itu maka kita dapat melakukan optimasi representasi ADT Queue untuk memperoleh kerja paling optimal.
Misalnya Queue Q= (a1,a2,a3…,an), maka:
1.      Elemen a1 adalah elemen paling depan
2.      Elemen ai adalah diatas elemen ai-1, di mana 1<i<n.
3.      Elemen an adalah elemen paling belakang.
Head (Front) menunjuk ke awal antrian Q (elemen terdepan), sedangkan tail (rear) menunjuk akhir antrian Q (elemen paling belakang). Disiplin FIFO pada Queue berimplikasi jika elemen A, B, C, D, E dimasukkan ke Queue, maka penghapusan/ pengambilan elemen akan terjadi dengan urutan A, B, C, D, E.
Sebagai gambaran, cara kerja queue dapat disamakan pada sebuah antrean di suatu loket dimana berlaku prinsip ‘Siapa yang duluan antre dia yang akan pertama kali dilayani‘, sehingga dapat dikatakan prinsip kerja queue sama dengan prinsip sebuah antrean.
Karakteristik Queue
Karakteristik penting antrian sebagai berikut:
1.      Elemen antrian yaitu item-item data yang terdapat di elemen antrian.
2.      Head/Front (elemen terdepan dari antrian).
3.      Tail/Tear (elemen terakhir dari antrian).
4.      Jumlah elemen pada antrian (count).
Ada beberapa kondisi yang bisa kita temukan dalam queue. Kondisi antrian yang menjadi perhatian adalah:
1.      Penuh
Bila elemen di antrian mencapai kapasitas maksimum antrian. Pada kondisi ini, tidak mungkin dilakukan penambahan ke antrian. Penambahan elemen menyebabkan kondisi kesalahan Overflow.
2.      Kosong
Bila tidak ada elemen di antrian. Pada kondisi ini, tidak mungkin dilakukan pengambilan elemen dari antrian. Pengambilan elemen menyebabkan kondisi kesalahan Underflow.

2.2.      Operasi – Operasi dalam Queue dan Deklarasinya Dalam Program

Sebuah queue di dalam program komputer dideklarasikan sebagai sebuah tipe bentukan baru, di dalam Bahasa C, biasa disebut struct. Sebuah struktur data dari sebuah queue setidaknya harus mengandung tiga variabel, yakni:
1.      Variabel head yang akan berguna sebagai penanda bagian depan antrian,
2.      Variabel tail yang akan berguna sebagai penanda bagian belakang antrian.
3.      Array data dari yang akan menyimpan data-data yang dimasukkan ke dalam queue tersebut.

Berikut adalah syntax untuk mendeklarasikan struktur data dari sebuah queue:
typedef struct {
int HEAD, TAIL;
int data[max];
   }Queue;  
Queue antrian;
Dimana, nilai MAX didefinisikan sebagai jumlah tumpukan maksimum yang dapat disimpan dalam queue. Setelah struktur data dari queue didefinisikan dengan syntax di atas, maka setelah itu dapat dibuat variabel-variabel baru yang mengacu pada tipe data Queue di atas, misalkan membuat sebuah variabel bernama antrian yang bertipe Queue: Queue antrian; 8.
Berikut adalah ilustrasi dari sebuah queue kosong dengan ukuran nilai MAX = 8:
Pada dasarnya, operasi-operasi dasar pada queue mirip dengan operasi-operasi dasar pada stack. Perbedaannya hanya pada prosedur push dan pop saja. Pada queue, prosedur yang berfungsi untuk memasukkan data/ nilai ke dalam antrian adalah enqueue, sedangkan prosedur untuk mengeluarkan data/ nilai dari antrian adalah dequeue. Berikut adalah operasi – operasi dasar dalam Queue:
1.      Prosedur Create
Sama pada stack, prosedur ini berfungsi untuk mengosongkan queue dengan cara meletakkan HEAD dan TAIL pada indeks array ke-(-1).
Berikut deklarasi prosedur create pada queue:
void create()
{
   antrian.HEAD = -1;
   antrian.TAIL = -1;
}
2.      Fungsi IsEmpty
Sama seperti fungsinya pada stack, fungsi ini berfungsi untuk melakukan pengecekan terhadap queue, apakah queue tersebut kosong atau tidak. Jika queue tersebut kosong (artinya, HEAD dan TAIL berada pada posisi -1, atau bisa juga ketika HEAD > TAIL), maka fungsi akan mengembalikan nilai 1 (true), tetapi jika queue tersebut tidak kosong/ berisi (artinya, HEAD dan TAIL tidak berada pada posisi -1), maka fungsi akan mengembalikan nilai 0 (false).
Berikut deklarasi fungsi IsEmpty:
int IsEmpty(){
   if(antrian.HEAD=antrian.TAIL==-1)
return 1;
   else
return 0;
}
3.      Fungsi IsFull
Fungsi ini berfungsi untuk melakukan pengecekan terhadap queue, apakah queue tersebut penuh atau tidak. Jika queue tersebut penuh (artinya, TAIL berada pada posisi MAX), maka fungsi akan mengembalikan nilai 1 (true), tetapi jika queue tersebut tidak penuh (artinya, TAIL tidak berada pada posisi MAX), maka fungsi akan mengembalikan nilai 0 (false).
Berikut deklarasi fungsi IsFull dalam Bahasa C:
int IsFull(){
   if (antrian.TAIL == max-1)
return 1;
   else
return 0;
}
4.       Prosedur EnQueue
Prosedur ini digunakan untuk memasukkan sebuah data / nilai ke dalam queue. Sebelum sebuah data / nilai dimasukkan ke dalam queue, maka prosedur ini terlebih dahulu melakukan pengecekan terhadap posisi HEAD dan TAIL. Jika posisi HEAD dan TAIL masih berada pada indeks ke-(-1) (artinya queue masih kosong), maka prosedur ini akan menempatkan HEAD dan TAIL pada indeks ke-0 terlebih dahulu, baru setelah itu memasukkan data / nilai ke dalam array data queue. Namun, jika posisi HEAD dan TAIL tidak berada pada posisi ke-(-1), maka posisi TAIL yang akan dinaikkan satu level. Jadi, pada proses enqueue, TAIL-lah yang berjalan seiring masuknya data baru ke dalam antrian, sedangkan HEAD akan tetap pada posisi ke-0.
Berikut deklarasi prosedur EnQueue:
void enqueue()
{
   if (IsEmpty()){
     antrian.HEAD=antrian.TAIL=0;
     cout<<”Masukkan data : “;
     cin>>antrian.data[antrian.TAIL];
   }
   else
   if(IsFull()){
     cout<<”ANTRIAN SUDAH PENUH!”;
   }
}
5.      Prosedur DeQueue
Prosedur ini digunakan untuk mengeluarkan atau membuang sebuah data/ nilai yang paling awal masuk (yang berada pada posisi HEAD, yakni yang paling depan dari antrian) ke dalam queue. Pekerjaan yang dilakukan oleh prosedur ini adalah menaikkan nilai HEAD satu level. Jadi, setiap satu kali data dikeluarkan, maka posisi HEAD naik bertambah satu level. Misalkan HEAD berada pada indeks ke-0, maka ketika akan mengeluarkan/ menghapus data pada posisi paling depan (pada posisi HEAD), prosedur ini akan menaikkan posisi HEAD ke indeks array ke-1. Atau dengan cara menggeser semua elemen antrian kedepan dan mengurangi TAIL dengan 1 penggeseran dilakukan dengan menggunakan looping.
Berikut deklarasi prosedur DeQueue:
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;
}
6.       Prosedur Clear
Untuk menghapus elemen-elemen queue dengan cara membuat Tail dan Head= -1. Penghapusan elemen-elemen queue sebenarnya tidak menghapus arraynya, namun hanya mengeset indeks pengaksesan-nya ke nilai -1 sehingga elemen-elemen queue tidak lagi terbaca. Berikut deklarasi prosedur clear:
void clear(){
   antrian.HEAD = -1;
   antrian.TAIL = -1
        cout<<"Antrian sudah dikosongkan! ";
     }
7.      Prosedur Tampil
Untuk menampilkan nilai-nilai elemen queue menggunakan looping dari HEAD sampai dengan TAIL. Berikut deklarasi prosedur tampil:
            void Tampil(){
   if(IsEmpty()){
          cout<<"Antrian kosong! ";
        }
        else {
          for(i=antrian.HEAD;i<=antrian.TAIL;i++)
         cout<<"Data pada antrian ke "<<i<<" = "<<antian.data[i]<<endl;
        }
     }

2.3.      Macam – Macam Queue dan Representasinya

1.    Queue dengan Linear Array
Linear array adalah suatu array yang dibuat seakan-akan merupakan suatu garis lurus dengan satu pintu masuk dan satu pintu keluar. Berikut ini diberikan deklarasi kelas QueueLinear sebagai implementasi dari Queue menggunakan linear array. Dalam prakteknya, kita dapat menggantinya sesuai dengan kebutuhan kita. Data dikses dengan field data, sedangkan indeks item pertama dan terakhir disimpan dalam variabel Head dan Tail. Konstruktor akan menginisialisasi nilai Head dan Tail dengan -1 untuk menunjukkan bahwa antrian masih kosong dan mengalokasikan data sebanyak MAX_QUEUE yang ditunjuk oleh data. Destruktor akan mengosongkan antrian kembali dan mendealokasikan memori yang digunakan oleh antrian.


    hapus elemen              1         2       ……..      ke – n                      sisip elemen
head                                tail

Di bawah ini diperlihatkan suatu queue yang akan menempati N elemen array memori, serta cara pengurangan (delete) dan penambahan (added) elemen pada queue tersebut. 

A
B
C
D



.....

Head   : 1
Tail      : 4
                        1          2          3          4        5         6          7        .....       N
REMOVE(Q)

B
C
D



.....

Head   : 2
Tail      : 4
                        1          2          3          4          5          6       7       .....       N
INSERT(INSERT(E),F)

B
C
D
E
F

.....

Head   : 2
Tail      : 6
                        1          2          3          4          5          6       7       .....        N
REMOVE(Q)


C
D
E
F

.....

Head   : 3
Tail      : 6
                        1          2          3          4          5          6          7          .....       N
Dapat dilihat bahwa setiap terjadi penghapusan elemen pada queue nilai (index) dari Head bertambah satu (1) ; dapat ditulis HEAD = HEAD+1. Begitu pula bila terjadi penambahan elemen pada queue nilai (index) Tail bertambah satu (1); dapat ditulis TAIL = TAIL + 1.
Akan terjadi ketidakefisienan bila penambahan elemen sudah pada posisi index N (Tail = N) maka tidak dapat lagi dilakukan penambahan elemen, sedangkan dilokasi memori yang lain (nilai di bawah N) masih terdapat memori array yang kosong. Untuk mengatasi hal tersebut maka kita bayangkan bahwa memori dari queue tersebut berbentuk melingkar dimana kedua ujungnya saling bertemu atau disebut juga dengan Circular Queue.
Contoh Program :

2.    Queue dengan Circular Array
Circular array adalah suatu array yang dibuat seakan-akan merupakan sebuah lingkaran dengan titik awal (head) dan titik akhir (tail) saling bersebelahan jika array tersebut masih kosong. Jika menggunakan array untuk queue seperti di atas, maka ketika ada proses pengambilan (dequeue) ada proses pergeseran data. Proses pergeseran data ini pasti memerlukan waktu apalagi jika elemen queue-nya banyak. Oleh karena itu solusi agar proses pergeseran dihilangkan adalah dengan metode circular array. Kelebihan jenis ini adalah alokasi penyimpanan data yang optimal dan dinamis. Hal ini disebabkan penambahan maupun pengurangan data/ item antrian yang baru selalu menempati pos kosong yang disediakan sistem.
Queue dengan circular array dapat dibayangkan sebagai berikut:
5
6
7
9

Front   =1       
Tail      =4
                                                                                1              2              3              4              5
Atau agar lebih jelas, array di atas dapat dibayangkan ke dalam bentuk seperti lingkaran di bawah ini:







Aturan-aturan dalam queue yang menggunakan circular array adalah:
1.      Proses penghapusan dilakukan dengan cara nilai depan (front) ditambah 1: front=front+1.
2.      Proses penambahan elemen sama dengan linear array yaitu nilai belakang ditambah 1: tail=tail + 1.
3.      Jika front = maks dan ada elemen yang akan dihapus, maka nilai front = 1.
4.      Jika tail = maks dan front tidak 1 maka jika ada elemen yang akan ditambahkan, nilai tail = 1
5.      Jika hanya tinggal 1 elemen di queue (front = tail), dan akan dihapus maka front diisi 0 dan tail diisi dengan 0 (queue kosong).
Front dan Tail akan bergerak maju, jika:
1.      Untuk penambahan.
2.      Tail sudah mencapai elemen terakhir array akan memakai elemen pertama array yang telah dihapus.
3.      Untuk pngahapusan.
6.      Front telah mencapai elemen terakhir array, maka akan menuju elemen pertama jika antrian masih berisi elemen.


3.    Queue dengan Linked-List
Selain menggunakan array, queue juga dapat dibuat dengan linked list. Metode linked list yang digunakan adalah double linked list. Operasi-operasi Queue dengan Double Linked List:
1.      IsEmpty
Fungsi IsEmpty berguna untuk mengecek apakah queue masih kosong atau sudah berisi data. Hal ini dilakukan dengan mengecek apakah head masih menunjukkan pada Null atau tidak. Jika benar berarti queue masih kosong.
2.      IsFull
Fungsi IsFull berguna untuk mengecek apakah queue sudah penuh atau masih bias menampung data dengan cara mengecek apakah Jumlah Queue sudah sama dengan MAX_QUEUE atau belum. Jika benar maka queue sudah penuh.
3.      EnQueue
Fungsi EnQueue berguna untuk memasukkan sebuah elemen ke dalam queue (head dan tail mula-mula meunjukkan ke NULL).
4.      DeQueue
Procedure DeQueue berguna untuk mengambil sebuah elemen dari queue. Hal ini dilakukan dengan cara menghapus satu simpul yang terletak paling depan (head).


2.4.      Penerapan Aplikasi Queue

Meski Queue sangat sederhana, namun Queue merupakan kakas dasar penyelesaian masalah-masalah besar. Penggunaan Queue yang utama adalah untuk simulasi fenomena antrian di dunia nyata, serta fenomena antrian di pengolahan data.

2.4.1.      Penerapan Queue dalam Kehidupan Sehari – hari

1.      Pada Pembelian Tiket
Dalam kehidupan sehari-hari kita bisa dapati melalui penerapan pembelian tiket kereta api, tiket pesawat, tiket kapal laut, pembayaran tiket tol, pembayaran listrik, pembayaran air, dan lain sebagainya. Saat mengantri di loket untuk membeli tiket. Istilah yang cukup sering dipakai seseorang masuk dalam sebuah antrian adalah enqueue. Dalam suatu antrian, yang datang terlebih dahulu akan dilayani lebih dahulu. Istilah yang sering dipakai bila seseorang keluar dari antrian adalah dequeue. Walaupun berbeda implementasi, tapi pada prinsipnya sama saja. Aplikasi dalam pembelian tiket kereta api:
a.         Enqueue       : Seseorang membeli tiket melalui tempat pembayaran tiket yang disediakan.
b.        Dequeue       : Setelah membeli tiket, langsung menuju tempat penungguan kereta, dengan sebelumnya petugas memeriksa cek tiket tersebut.
c.         Clear            : Pembeli tiket tersebut telah terhapus dari antrian karena sudah melewati pembayaran administrasi tersebut.
d.        IsEmpty       : Petugas tiket Kereta melihat tidak ada lagi yang ingin membeli tiket kereta.
e.         IsFull            : Petugas Tiket Kereta melihat masih ada pembeli tiket kereta.
2.      Antrian Mobil di Pintu Tol
sumber disini

Ketika sebuah mobil datang, dari belakang akan menuju kedepan dari antrian. Setelah mobil mendapatkan karcis tol, antrian yang berada didepan akan maju. Pada saat menempatkan data pada ujung (tail) dari queue disebut dengan enqueue. Pada saat memindahkan data dari kepala (head) sebuah queue disebut dengan dequeue.

2.4.2.      Penerapan Aplikasi Queue dalam Aplikasi Komputer

1.      Pada Aplikasi Download Manager IDM
Queue juga dipakai sebagai salah satu fitur dari Internet Download Manager atau yang biasa disebut dengan IDM. Fitur ini sangat membantu bagi para pecinta download. Fitur ini akan membantu pengguna untuk mendownload file yang anda pilih satu-persatu, jadi sebanyak apapun anda mendownload, tetapi akan tetap dibuat antrian atau istilahnya queueing. Sistem yang diterapkan dalam fitur ini adalah pada saat download file, maka IDM akan mendownload satu per satu, hingga download file selesai maka baru akan secara otomatis mendownload file berikutnya.
2.      Printer Sharing
Pada suatu jaringan terdapat beberapa aplikasi yang dapat membantu kita untuk mempermudah pekerjaan kita untuk melakukan cetak hanya dengan menggunakan 1 printer yang dapat dipakai oleh banyak orang yaitu dengan cara printer sharing. Aplikasi ini menggunakan cara kerja queue atau juga disebut dengan antrian, untuk mencetak suatu document yang hanya menggunakan 1 printer yang dapat diakses oleh orang banyak, penggunaan queue diperlukan untuk mengatur sistem jaringan agar tidak terjadi error, dengan cara siapa yang terlebih dahulu mencetak suatu dokumen, dia akan dilayani terlebih dahulu untuk mencetak dokumen dan jika ada seseorang yang ingin mencetak dokumen dia akan dimasukan kedalam antirian dan menunggu untuk dapat mencetak sebuah document.

2.4.3.      Penerapan Aplikasi Queue dalam Sistem Produksi

Dalam sistem produksi terdapat banyak sekali aplikasi antrian, misalnya pada mesin pengisi (filling) botol minuman otomatis di pabrik. Mesin ini digunakan agar mempermudah pekerjaan, meminimalisir waktu, dan masih banyak lagi manfaat lainnya. Cara kerja dari mesin filling otomatis ini yaitu :
1.      Beberapa botol disiapkan pada tempatnya.
2.      Kemudian mesin akan mengisi air kedalam botol sesuai dengan posisinya.
3.      Botol yang diletakkan paling depan akan diisi oleh mesin paling awal, setelah botol paling depan terisi baru akan berjalan ke botol yang dibelakangnya, dan seterusnya.
Prinsip queue atau antrian digunakan dalam mesin ini, karena FIFO (First In First Out). Jadi botol yang paling awal/depan sampai pada pengisi air, maka botol itu juga yang akan pertama keluar/diisi.


BAB III
PENUTUP

3.1.      Kesimpulan

Queue (antrian) adalah salah satu list linier dari struktur data yang beroperasi dengan cara First In First Out (FIFO) yaitu elemen pertama yang masuk merupakan elemen yang pertama keluar. Data-data di dalam antrian dapat bertipe integer, real, record dalam bentuk sederhana atau terstruktur. Queue dilakukan dengan cara penyisipan di satu ujung, sedang penghapusan di ujung lain. Ujung penyisipan biasa disebut rear/tail, sedang ujung penghapusa disebut front/head
Sebuah queue dalam program setidaknya harus mengandung tiga variabel, yakni: head untuk penanda bagian depan antrian, tail unttuk penanda bagian belakang antrian, dan array data untuk menyimpan data-data yang dimasukkan ke dalam queue tersebut.
Pada queue ada operasi – operasi dasar, yaitu: prosedur create untuk membuat queue baru yang kosog, fungsi IsEmpty untuk mengecek queue tersebut kosong atau tidak, fungsi IsFull untuk mengecek queue tersebut penuh atau tidak, prosedur EnQueue untuk memasukkan data kedalam queue, prosedur DeQueue untuk mengeluarkan sebuah elemen pada posisi head dari queue, fungsi clear untuk menghapus elemen queue, dan prosedur tampil untuk menampilakn elemen yang ada pada queue.
Ada beberapa queue, yaitu: queue dengan linear array yaitu queue yang dibuat seakan-akan merupakan suatu garis lurus dengan satu pintu masuk dan satu pintu keluar, queue dengan circular array yaitu queue yang dibuat seakan-akan merupakan sebuah lingkaran dengan titik awal (head) dan titik akhir (tail) saling bersebelahan jika array tersebut masih kosong, dan queue dengan linked-list.

3.2.      Saran






DAFTAR PUSTAKA


Sianipar, R.H. 2015. Struktur Data C++ dengan Pemograman Generik. Yogyakarta: ANDI YOGYAKARTA.
Kristanto, Andri. 2013. ALGORITMA DAN PEMROGRAMAN DENGAN C++ (edisi II).


Powered by Blogger.

Beauty

Follow by Email

Breaking News