28
Antrian adalah suatu kumpulan data yang mana penambahan elemen hanya bisa dilakukan pada suatu ujung (disebut dengan sisi belakang atau rear), dan penghapusan (pengambilan elemen) dilakukan lewat ujung lain (disebut dengan sisi depan atau front). ANTRIAN (QUEUE)

Struktur Data Antrian1

  • Upload
    ikkok

  • View
    221

  • Download
    0

Embed Size (px)

Citation preview

8/3/2019 Struktur Data Antrian1

http://slidepdf.com/reader/full/struktur-data-antrian1 1/28

Antrian adalah suatu kumpulan data yangmana penambahan elemen hanya bisa

dilakukan pada suatu ujung (disebut dengansisi belakang atau rear), dan penghapusan(pengambilan elemen) dilakukan lewat ujung

lain (disebut dengan sisi depan atau front).

ANTRIAN (QUEUE)

8/3/2019 Struktur Data Antrian1

http://slidepdf.com/reader/full/struktur-data-antrian1 2/28

Tumpukan menggunakan prinsip "masukterakhir keluar pertama" atau LIFO (Last InFirst Out), maka pada antrian prinsip yangdigunakan adalah "masuk pertama keluarpertama" atau FIFO (First In First Out).

Dengan kata lain, urutan keluar elemenakan sama dengan urutan masuknya.

8/3/2019 Struktur Data Antrian1

http://slidepdf.com/reader/full/struktur-data-antrian1 3/28

Antrian banyak kita jumpai dalam kehidupansehari-hari.

Mobil-mobil yang antri membeli karcis dipintu jalan tol akan membentuk antrian;orang-orang yang membeli karcis untuk

menyaksikan film akan membentuk antrian;para calon mahasiswa yang mendaftarkandiri untuk ikut ujian SPMB akan membentuk

antrian, dan contohcontoh lain yang banyakkita jumpai dalam kehidupdn sehari-hari.

8/3/2019 Struktur Data Antrian1

http://slidepdf.com/reader/full/struktur-data-antrian1 4/28

Contoh lain yang lebih relevan dalam bidang

komputer adalah pemakaian sistemkomputer berbagi waktu (time-sharing computer system) dimana ada sejumlahpemakai yang akan menggunakan sistem

tersebut secara serempak.

Karena sistem ini biasanya menggunakan

sebuah prosesor dan sebuah pengingatutama, maka jika prosesor sedang dipakaioleh seorang pemakai, pemakai-pemakai lain

harus antri sampai gilirannya tiba. 

8/3/2019 Struktur Data Antrian1

http://slidepdf.com/reader/full/struktur-data-antrian1 5/28

 

Antrian ini mungkin tidak akan dilayanisecara FIFO murni, tetapi didasarkan passsuatu prioritas tertentu.

Antrian yang mengandung unsur prioritasdinamakan dengan antrian berprioritas

(priority queue)

8/3/2019 Struktur Data Antrian1

http://slidepdf.com/reader/full/struktur-data-antrian1 6/28

IMPLEMENTASI ANTRIAN DENGAN LARIK

Antrian sebenarnya juga merupakan satu kumpulan data.

Dengan demikian tipe data yang sesuai untuk menyajikanantrian adalah menggunakan larik dan senarai berantai.

Gambar 1. Contoh antrian dengan 6 elemen 

8/3/2019 Struktur Data Antrian1

http://slidepdf.com/reader/full/struktur-data-antrian1 7/28

Gambar 1. Menunjukkan contoh penyajian antrian

menggunakan larik. Antrian di atas berisi 6 elemen,

yaitu A, B, C, D, E, dan F.

Elemen A terletak di bagian depan antrian dan elemen Fterletak di bagian belakang antrian.

Dengan demikian, jika ada elemen baru yang akan masuk,maka ia akan diletakkan di sebelah kanan F (pada gambar diatas). Jika ada elemen yang akan dihapus, maka A akan

dihapus lebih dahulu.

8/3/2019 Struktur Data Antrian1

http://slidepdf.com/reader/full/struktur-data-antrian1 8/28

Gambar 2.a. menunjukkan antrian di atas setelahberturut-turut dimasukkan G dan H. Gambar 2.b.menunjukkan antrian Gambar 2.a. setelah elemen Adan B dihapus

Gambar 2. Contoh penambahan dan penghapusan elemen pada suatu antrian  

8/3/2019 Struktur Data Antrian1

http://slidepdf.com/reader/full/struktur-data-antrian1 9/28

Seperti halnya pada tumpukan, maka dalam antrian jugamengenal ada dua operasi dasar, yaitu menambahelemen baru yang akan kita tempatkan di bagianbelakang antrian dan menghapus elemen yang terletak dibagian depan antrian. Disamping itu seringkali juga perlumelihat apakah antrian mempunyai isi atau dalamkeadaan kosong.

Operasi penambahan elemen baru selalu bisa dilakukankarena tidak ada pembata'n banyaknya elemen darisuatu antrian.

Tetapi untuk menghapus elemen, maka kita harus

melihat apakah antrian dalam keadaan kosong atautidak. Tentu saja tidak mungkin menghapus elemen dansuatu antrian yang sudah kosong.

8/3/2019 Struktur Data Antrian1

http://slidepdf.com/reader/full/struktur-data-antrian1 10/28

Untuk menyajikan antrian menggunakan larik,maka kita membutuhkan deklarasi antrian,misalnya, sebagai berikut:

const Max_Elemen = 100;type Antri = array[1..Max_Elemen] of integer;

var Antrian : Antri;

Depan, Belakang : integer;

Dalam deklarasi di atas, elemen antriandinyatakan dalam tipe integer. PerubahDepan menunjukkan posisi elemen pertama

8/3/2019 Struktur Data Antrian1

http://slidepdf.com/reader/full/struktur-data-antrian1 11/28

Dengan menggunakan larik, maka kejadian overflow sangatmungkin, yakni jika antrian telah penuh, sementara kita

masih ingin menambah terns.Dengan mengabaikan kemungkinan adanya overflow, makapenambahan elemen baru, yang dinyatakan oleh perubahx, bisa kita implementasikan dengan statemen:

Belakang := Belakang + 1;Antrian[Belakang] := X;

Operasi penghapusannya bisa diimplementasikan dengan:

X := Antrian[Depan];

Depan := Depan + 1;

8/3/2019 Struktur Data Antrian1

http://slidepdf.com/reader/full/struktur-data-antrian1 12/28

Pada saat permulaan, Belakang dibuat sama dengan 0

dan Depan dibuat sama dengan 1, dan antrian dikatakan

kosong jika Belakang < Depan.

Banyaknya elemen yang ada dalam antrian dinyata-

kan sebagai Belakang - Depan + 1.Sekarang marilah kita tinjau implementasi menambah dan

menghapus elemen seperti diperlihatkan di atas.

Gambar 3. menunjukkan larik dengan 6 elemen untuk

menyajikan sebuah antrian (dalam hal ini Max_Elemen =

6). Pada saat permulaan (Gambar 3.a.), antrian dalamkeadaan kosong.

8/3/2019 Struktur Data Antrian1

http://slidepdf.com/reader/full/struktur-data-antrian1 13/28

Pada Gambar 3.b. terdapat 4 buah elemen yang telahditambahkan.

Dalam hal ini nilai Depan 1 dan Belakang = 4.

Gambar 3.c. menunjukkan antrian setelah dua elemendihapus.

Gambar 3.d. menunjukkan antrian setelah dua elemen

baru ditambahkan.

Banyaknya elemen dalam antrian adalah 6 - 3 + 1 = 4elemen.

Karena larik terdiri dari 6 elemen, maka sebenarnya kitamasih bisa, menambah elemen lagi. Tetapi, jika kita inginmenambah elemen baru, maka nilai Belakang harusditambah satu, menjadi 7.

8/3/2019 Struktur Data Antrian1

http://slidepdf.com/reader/full/struktur-data-antrian1 14/28

Padahal larik Antrian hanya terdiri dari 6 elemen,sehingga tidak mungkin ditambah lagi, meskipunsebenarnya larik tersebut masih kosong di duatempat.

Bahkan dapat terjadi suatu situasi dimana sebe-narnya antriannya dalam keadaan kosong, tetapitidak ada elemen

yang bisa tambahkan kepadanya. Dengan demikian,

penyajian di atas tidak dapat diterima.

8/3/2019 Struktur Data Antrian1

http://slidepdf.com/reader/full/struktur-data-antrian1 15/28

Gambar 3. Ilustrasi penambahan dan penghapusan

elemen pada sebuah antrian

8/3/2019 Struktur Data Antrian1

http://slidepdf.com/reader/full/struktur-data-antrian1 16/28

Salah satu penyelesaiannya adalah dengan mengubahprosedur untuk menghapus elemen, sedemikian rupa sehingga

 jika ada elemen yang dihapus, make semua elemen laindigeser sehingga antrian selalu dimulai dari Depan = 1.

Dengan cara ini, maka sebenarnya perubah Depan ini tidak

diperlukan lagi hanya perubah Belakang saja yang diperlukan,karena nilai Depan selalu sama dengan 1.

8/3/2019 Struktur Data Antrian1

http://slidepdf.com/reader/full/struktur-data-antrian1 17/28

Berikut adalah rutin penggeserannya (denganmengabaikan kemungkinan adanya under flow).

X Antrian[1];

for x := 1 to Belakang - 1 do

Antrian[I]:= Antrian[I+1];

Belakang := Belakang - 1;

8/3/2019 Struktur Data Antrian1

http://slidepdf.com/reader/full/struktur-data-antrian1 18/28

Gambar 4. Ilustrasi penambahan dan penghapusan elemenpada sebuah antrian dengan penggeseran

8/3/2019 Struktur Data Antrian1

http://slidepdf.com/reader/full/struktur-data-antrian1 19/28

POHON (TREE)

Materi Kuliah ini akan membahas tipe strukturdata pohon atau tree.

Contoh umum dimana struktur pohon sering

ditemukan adalah pada penyusunan silsilahkeluarga, hirarki suatu organisasi, daftar isisuatu buku, dan lain sebagainya.

Berikut ini diberikan suatu struktrur pohon yangdigunakan pada silsilah keluarga dan baganorganisasi dari suatu perusahaan.

8/3/2019 Struktur Data Antrian1

http://slidepdf.com/reader/full/struktur-data-antrian1 20/28

Contoh

Gambar berikut ini menggambarkan silsilah keluargaleluhur dari Hardi.

Siisilah ini berbentuk pohon,dimana arah pohon yang adamenunjukan garis keturunan langsung

8/3/2019 Struktur Data Antrian1

http://slidepdf.com/reader/full/struktur-data-antrian1 21/28

Hierarki organisasi perusahaan

Contoh

Selanjutnya diberikan struktur organisasi PT. Maju Terusyang dipimpin oleh seorang direktur yang dibantu olehbeberapa direktur, sampai dengan tingkat manajer,manager bagian dan supervisor.

8/3/2019 Struktur Data Antrian1

http://slidepdf.com/reader/full/struktur-data-antrian1 22/28

Secara informal, sebuah pohon adalahstruktur dari sekumpulan elemen, dengansalah satu elemennya merupakan akarnya

atau root, dan sisanya yang lain merupakanbagian-bagian pohon yang terorganisasidengan susunan berhirarki. dengan rootsebagai puncaknya

8/3/2019 Struktur Data Antrian1

http://slidepdf.com/reader/full/struktur-data-antrian1 23/28

Salah satu tipe pohon yang paling banyak dipelajari adalahpohon biner.

Pohon biner adalah pohon yang setiap simpulnya memiliki

paling banyak dua buah cabang/anak. Berikut ini adalahilustrasi dan beberapa pohon biner yang mungkin terjadi.

Pada penggambaran diatas , menurut definisi pohonterurut, pohon biner (2) dan (3) adalah berbeda.

Pohon biner (2) memiliki cabang kiri kosong.

8/3/2019 Struktur Data Antrian1

http://slidepdf.com/reader/full/struktur-data-antrian1 24/28

Traversal pohon biner 

adalah proses mengunjungi setiap simpul dari pohonsecara sistematik masing-masing satu kali.

Pada setiap simpul yang dikunjungi dilakukan suatuproses pengolahan data yang tersimpan pada simpultersebut.

Proses yang dilakukan dalam mengunjugi simpul dapathanya sekedar mencetak informasi yang ada padasimpul tersebut atau melakukan perhitungan

matematika terhadap informasi yang tersimpan.

Proses traversal hanya diperhatikan dari arah sebelahkiri.

8/3/2019 Struktur Data Antrian1

http://slidepdf.com/reader/full/struktur-data-antrian1 25/28

Untuk itu proses traversal dapat dilakukan 3 cara :

1. Preorder ( SLR / Simpul Left Right )

2. Postorder ( LRS / Left Right Simpul )

3. Inorder ( LSR / Left Simpul Right )

Selain itu ada proses kunjungan yang bekerjaberdasarkan tingkat dari simpul yang dilalui.

Traversal ini dinamakan Level Order

8/3/2019 Struktur Data Antrian1

http://slidepdf.com/reader/full/struktur-data-antrian1 26/28

Contoh : Pohon berikut akan ditelusuri secara preorder,postorder, inorder dan level order

Preorder : A B D E C F I K J

Postorder : D E B K I J F C A

Inorder : D B E A K I F J C

Level Order : A B C D E F I J K

8/3/2019 Struktur Data Antrian1

http://slidepdf.com/reader/full/struktur-data-antrian1 27/28

Notasi ini jugs dapat digunakan untuk menuliskan ekspresimatematika dalam notasi prefix, infix, postfix. 

Contoh : Ekspresi Matematika : (A x B + C ) /( D ^ E)

Pohon Biner untuk ungkapan Matematika

Maka traversal dari potion tsb akan mengahasilkan :Preorder atau prefix : / + x A B C ^ D E

Postorder atau postfix : A B x C + D E ^ / 

Inorder atau Infix : A x B + C / D ^ E

Level order : / + ^ x C D E A B

8/3/2019 Struktur Data Antrian1

http://slidepdf.com/reader/full/struktur-data-antrian1 28/28

.