P. 1
Definisi Data, Operasi Data, Stack, Queue

Definisi Data, Operasi Data, Stack, Queue

|Views: 250|Likes:
Dipublikasikan oleh Fajar Andrian

More info:

Published by: Fajar Andrian on Mar 25, 2012
Hak Cipta:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PPTX, PDF, TXT or read online from Scribd
See more
See less

04/20/2014

pdf

text

original

STRUKTUR DATA

SASARAN : 1. Meningkatkan pehamanan pengetahuan tentang teori dasar struktur data dan Penanganan data 2. Meningkatakan pembuatan algoritma dan penggunaan struktur data dalam pemrograman

MATERI : 1. Konsep Tipe data dan definisi data 2. Array 3. Stack 4. Queue 5. Link list 6. Struktur data linear 7. Struktur data non linear 8. Sorting 9. Searching 10. Hashing

REFERENSI : Ir. Wihartinin, M.Eng Ir. Hari Soetanto, MSc Teddy Marcus Zakaria etc

BAB I TIPE DAN DEFINISI DATA
A. DEFINISI DATA : Data adalah fakta atau kenyataan yang tercatat mengenai suatu obyek. Nilai data dapat berbentuk : •Konstanta = digunakan dalam program untuk menyatakan nilai yang tetap •Variabel = digunakan dalam program untuk menyatakan nilai yang berubah. 4 istilah tentang data : 1. Tipe data adalah isi/macam data didalam suatu bahasa program 2. Obyek data adalah set dari elemen data, misal : X set bilangan integer 3. Representasi data adalah mapping dari struktur data , contoh : boolean ( 0 dan 1 ) 4. Struktur data adalah koleksi dari variabel yang dinyatakan dengan sebuah nama, dan dipakai untuk mengelompokkan beberapa informasi yang berkaitan menjadi satu kesatuan. • Struktur data adalah model logika /matematika yang secara khusus mengorganisasikan data.

B. HIERARKI TIPE DATA :

DATA

SEDERHANA

TERSTRUKTUR

POINTER

REAL FLOAT DOUBLE

INTEGER CHAR BOOLEAN

STRING, ARRAY, RECORD, FILE, SET

Keterangan : 1. Tipe data sederhana :
hanya digunakan untuk menyimpan sebuah nilai data dalam sebuah variabel. Ada 5 macam : Tipe Char Int Float Double Void Total bit 8 16 32 64 6 Kawasan -128 s/d 127 -32768 s/d 32767 3.4E-38 s/d 3.4E+38 1.7E-308 s/d 1.7E+308 Keterangan Karakter Bilangan integer Bilangan real Bilangan real Tak bertipe

C. TANDA OPERASI ATAU OPERATOR : 1. Operator logika : Dipakai untuk menghubungkan ungkapan relasi . baik operand 1 ataupun operand 2 : Operand 1 False False True True Operand 2 False True False True Or False True True True And False False False True 2. Tipe data boolean : Mempunyai 2 nilai yaitu True and False Operator && II I And Or Not Maksud .

<. >=. /. Contoh : A > B 5. Contoh : -3 6. Identifier adalah penciri atau pengenal variabel. div. ASSIGNMENT OPERATOR : (:=) Gunanya untuk memberikan nilai pada suatu identifier. < > ) Gunanya untuk membandingkan dua nilai identifier.) .3. +.-) Untuk memberikan suatu tanda pada nilai identifier. Contoh : x:=A + B 4. UNARY OPERATOR : (+. >. lihat tabel di bawah ini : . mod. dimana : + Berarti union ( contoh A + B ) . Binary operator : ( *. RELATIONAL OPERATOR : ( =. <=. .Berarti set difference ( contoh yang tidak ada di set A ) * Perkalian himpunan ( set A di set B ) 8. SET OPERATOR : Gunanya untuk operasi melibatkan set atau himpunan. STRING OPERATOR : (+ ) Gunanya untuk menggabungkan dua buah string Contoh : sangat + jauh = sangat jauh 7.

OPERATOR PENULISAN A B HASIL * A*B Real Integer Real Integer Real Integer Real Integer Real Integer Real Integer Real Integer Integer Integer Real Integer Real Integer Real Real Real Integer div / A DIV B A/B mod A mod B + A+B Real Integer Integer Real Integer Integer Real Integer Real Real Integer Real Real Integer Real Real Integer Real - A-B .

DIV.75 Langkah 4 : 6.D. IN. ( ) 2.-.75 Langkah 3 : 5+1. >. +. *. MOD.75 Cara Penyelesaian : Langakah 1 : 2*3=6 Langkah 2 : 7/4=1.75-6=0.75 . =. NOT 3. OPERATOR PRECEDENCE : Adalah tingkat atau urutan pemakaian dari operator bila operator tersebut dipakai bersama-sama. < CONTOH : 5+7/4-2*3 = 0. OR 5. AND 4. >=. <=.75=6./. < >. 1.

BAB II ARRAY / LARIK A. Array dimensi satu 2. Array dimensi satu adalah array yang dimensinya hanya terdiri dari satu atau index atau subscript pada array hanya satu nilai.20] of char Artinya : X*1+ = ‘A’ X*2+ = ‘B’ dst sampai X*20+ Nilai char Nama array Subscript (index value) . Contoh : type X = array [1. Array dimensi dua 1. DEFINISI Suatu larik (array) adalah tipe terstruktur yang terdiri dari sejumlah komponenkomponen yang mempunyai tipe yang sama. Jenis array : 1. Array diakses melalui suatu index ( subscript)..

. Ekonomis dalam pemakaian memori. Array dimensi dua mewakili sutu bentuk tabel atau matriks yang index pertama dapat menunjukkan baris dan index kedua kolom. Paling mudah pengoperasiannya 2. bila semua elemen terisi 3. Contoh : X := array of [1. .3. baris kolom Keuntungan struktur data array : 1. Array dimensi dua artinya : array yang dimensinya terdiri dari lebih dari satu. Kerugiannya : Memboroskan tempat jika banyak elemen yang tidak digunakan. Akses ke setiap elemen memerlukan waktu yang sama. 1.2] of integer.2..

berapa panjang (jumlah elemen) larik yang disediakan .2005]of integer..400] of char Panjang : array [1. KAMUS DATA ARRAY : Sebelum elemen array dapat digunakan .B.? Jawab = PANJANG = (2005 – 1994) + 1 = 1 Artinya : jumlah elemen array yang diperlukan sebanyak 12 buah. PANJANG ARRAY : Untuk menghitung jumlah elemen suatu array dapat dihitung dengan rumus : PANJANG=(UB – LB) + 1.100] of integer X=array [1. contoh : Nama : array [1. C.... .3] of integer. perlu didefinisikan dahulu dalam kamus Data.1.2.. Penulisan kamus datanya =jual:array[1994. dimana UB = upper bound (index terbesar) LB = lower bound (index terkecil) Contoh : Seoranng pedagang mobil menggunakan array untuk menyimpan data penjualan Dari tahun 1994 sampai dengan tahun 2005.

yang dicari K = index larik yang dicari AWAL(LA) = lokasi awal dari data larik W= jumlah byte untuk menyimpan 1 elemen larik LB = lower bound/batas bawah Contoh : Misalkan AWAL(jual) =100 dan W =4. Rumus : LOK(LA[K])= AWAL(LA) + W(K-LB) LOK(LA[K])= lokasi elemen larik dengan index K. maka LOK(JUAL[1994])=100 LOK(JUAL[19995]=104 LOK(JUAL[1996]=108. berapa lokasi JUAL[2005] ? Jawab = LOK(LA[K])=100+4x(2005-1994)=140 .D. PENGALAMATAN ARRAY : Penyimpanan elemen array di dalam memory komputer disusun berurutan sehingga komputer tidak perlu menentukan setiap elemen array tetapi cukup menyimpan alamat awal/pertamanya.

2]...1].. A[2.2]. A[1.. A[1..3].. Coloum major order/ CMO( disimpan kolom demi kolom) Contoh matriks A ukuuran 2 x3 : A[1.3]. A [2.. Untuk menggambarkan N dimensi dalam satu dimensional.A[2. maka digunakan pernyataan sbb : Ada 2 cara pengalamatan atau penyimpanan elemen matriks di dalam kompputer : 1.1]. A[1. A[2.3].. A [2.jika RMO A[1.1]. A[1. Row major order / RMO ( disimpan baris demi baris) 2. Representasi multidimensional matriks : Memori bisa dipandang sebagai satu dimensional array dengan alamat dari 1 s/d M.... A[2.2]..1]...E.3].2].jika CMO .

6]=400 + ((47) x 4) = 588 1 1 2 400 424 2 404 428 Alamat elemen pertama Angka 14 dari loncatan x[1.5] 3 408 4 412 5 416 6 420 3 4 5 6 7 8 448 . sbb : Contoh ( 1 ): Diketahui : x[1.Untuk menentukan lokasi elemen matriks .1] ke x[3.5]= 400 + ((14) x 4) =456.1] = 400 Lebar (Width) : 1 elemen= 4 byte Maka untuk mencari alamat setiap elemen jika pengalamatan dengan ROM = Untuk alamat X[3. caranya : Untuk alamat x[8.

6] = 400 + ((47) x 4) =588 1 1 2 3 4 5 6 7 8 400 404 408 412 416 420 424 428 2 432 436 3 464 4 5 6 Alamat elemen pertama .5]= 400 + ((14) x 4) =456 Untuk alamat X[8.Maka untuk mencari alamat setiap elemen jika pengalamatan dengan COM = Untuk alamat X[3.

A[5.3].2. A[4.3.4.3. A[4.4.4] A[5.3].4} A[5.1.3.4].2. (4-3+1) = = 2.1.2.1. A[5.4].1.3].4.3.2.A[5.3].Contoh (2): Multidimensional array A(4:5 .3] ada di 1800 H dan L=1 byte Cari : a) jumlah elemen array b) alamat elemen A [5.3.1.4] Dengan menggunakan row major order. A[5.2.1.3].2.2. A[4.2.1.2 =24 .4}.3].2. A[4.4. 3:4) alamat elemen pertama x atau A[4.4.3].2. A[5.3].3.2.3.3].1. A[5. A[4.1.3].2.4] Jumlah elemen = (5-4+1) . elemen disimpan dalam urutan dimemori sbb : JAWAB : a) jumlah elemen array : A[4. A[5. A[5.1. 2:4.1.4] A[4. A[5.2.4.2.2. A[4.4] A[4.2. 1:2.1.3.4}.4] A[5.3. A[4.4.2.2.2. (4-2+1).1.2.1.2. A[4. A[4.3].4.2.3].2. (2-1+1).4].4].

2.2.1.2.3.2 + (2-2).b) alamat elemen A [5.4] : Alamat A[5.1.1}1 =1800 H + {12+0+0+1}1 =1800 H +13 =180DH .3] +{ [5-4).2+(1-1).1.2.2.2+ (4-3).4] = A[4.

00 Listing programnya sbb : . misalkan 3 Nilai data ke 1 = 2 Nilai data ke 2 = 3 Nilai data ke 3 = 4 Jumlah total = 9 Nilai rata-rata = 3. Implementasi array dalam pemrograman : 1) Array dimensi satu.F. Anda input 3 maka ada pengulangan memasukkan data sebanyak 3 x Proses : jumlahkan ke 3 bilangan yang diinput tersebut cari rata-rata = jumlah dibagi banyaknya bilangan yang diinput Output : Masukan data = 3. contoh : Input : masukkan elemen data dengan N sembarang jumlahnya jika .

write ('rata. { menghitung rata-rata } rata_rata := total/n. readln(x[i]). total :=total +x[i]. total :=0. for i:= 1 to n do begin write ('nilai data ke'.program array_dimensi1. end. . total.total:2:0).' = ').rata_rata:4:2). end. var i. n : integer. begin clrscr. x : array [byte] of real.rata = '.i.readln(n). write ('masukkan data = '). writeln ('jumlah total = ' . uses wincrt. rata_rata : real.

tabel[3. i. end. contoh listing : program array_dimensi2.1] :=3. tabel[2.3. tabel[1.2) Array dimensi dua : a) Nilai data array ditentukan . Output : 3 2 1 4 5 6 . writeln. tabel[2. for i := 1 to 3 do begin for j := 1 to 2 do write ( tabel [i.j : integer. end. tabel[3.2] :=4. tabel[1.2] of byte.1] :=5..2] :=2.2] :=6. begin clrscr.j] : 5)..1.1] :=1. var tabel :array [1. uses wincrt.

b) Nilai data array diinput sembarang : Contoh : penjumlahan matriks Input : baris matriks pertama = 2 .1]= Nilai[ 1. misalkan 2 kolom matrisk pertama = 2 Baris matriks kedua = 2 Proses : Output : baris matriks pertama = 2 . misalkan 2 kolom matrisk pertama = 2 Baris matriks kedua = 2 Matriks yang pertama = Nilai[1.1]= Nilai [2.2]= Nilai [2.2]= Jumlahkan ke dua baris tersebut .

1]= Nilai[1.1]= Nilai [2.1]= Nilai [2.Output : baris matriks pertama = 2 .2]= Nilai [2.1]= Nilai[ 1.2]= Listing program sbb : . misalkan 2 kolom matrisk pertama = 2 Baris matriks kedua = 2 Matriks yang pertama = Nilai[1.2]= Matriks yang kedua : Nilai [1.2]= Nilai [2.

readln(l). write ('baris matriks pertama ='). a. uses wincrt. type x=array [1.50..l : byte.. begin clrscr. readln(n). m. write ('kolom matriks pertama=').1. var i. writeln. write ('baris matriks kedua=').Contoh listing : program pertambahan_matriks.c : x.j : byte.n.50] of REAL. readln(m). .b.

readln(a[i. end. end.'.'.']='). for i := 1 to n do begin for j:= 1 to l do begin write('nilai['.j.j]).{input matriks pertama} writeln('matriks yang pertama =').'.']='). end. end.i. .j. for i:= 1 to m do begin for j:= 1 to n do begin write ('nilai['.readln(b[i.'.j]).i. {input matrisk kedua} writeln('matriks yang kedua=').

j]:2:0).j].j]:=a[i. {cetak hasil} writeln('hasil pertambahan matrks =').j] +b[i. end. . writeln. end. end. end. for i := 1 to m do begin for j := 1 to n do write (c[i.{pertambahan matriks} for i:= 1 to m do begin for j := 1 to n do begin c[i.

Kumpulan elemen-elemen data yang disimpan dalam satu lajur linier c. Aplikasi penggunaan Array : 1.Iihat gambar : .BAB III STACK (TUMPUKAN) A. Adalah suatu list atau senarai yang semua operasi penambahan (insertion) dan penghapusan (deletion) elemennya dialokasikan /dilaksanakan pada satu ujung atas(top). sehingga disebut : LIFO (last in first out). Stack (tumpukan) 2. Stack ( tumpukan) a. d. Adalah data yang seolah-olah diletakkan di atas data lain. Queue (antrian) 1. b. Berlaku elemen yang akan dihapus adalah elemen terakhir yang disisipkan.

Top Dasar = 0 x2 x1 Bila top=0. berarti stack Kosong & top berimpit dgn dasar D C B A A Contoh tumpukan N elemen Contoh tumpukan 1 elemen Contoh tumpukan kosong .

. cara mem push data adalah : 1. Isikan data ke dalam elemen yang di tunjuk oleh top.Kondisi stack : Ada 3 kondisi stack : awal top=0 kosong top =0 penuh top=N Operasi atau proses pada stack : a. Proses : bila dialokasikan suatu array dengan N elemen yang akan digunakan sebagai stack. Operasi push data Artinya : Menyimpan/memasukkan/menyisipkan data ke dalam stack. Lalu naikkan top dengan 1 3. Periksa apakah top < N 2.

Penjelasan : Untuk menyisipkan tempat untuk X yang akan di push ke dalam tumpukan. Yaitu dengan menambah nilai medan T. Isi (T. Isi Jika nilai T. X : integer). kita push lagi maka akan terjadi overflow. Isi ( banyak elemen larik tidak mencukupi ) . Begin T.Atas) :=X.Atas := T.Atas +1.CONTOH : Procedure push (var T : tumpukan .Atas dengan 1 & kemudian menyisipkan X ke dalam larik T. Atas = maxelemen. T. End. yaitu = pada larik T.

Atas = maxelemen. Isi ( banyak elemen larik tidak mencukupi ) Pencegahan nya : Procedure push (var T : tumpukan. End.Jika nilai T. yaitu = pada larik T. End. T. Isi (F. Atas):=X.Atas = T.Atas + 1. kita push lagi maka akan terjadi overflow.X: integer). . Atas = max elemen then writeln(‘tumpukan sudah penuh’) else T. Begin if T.

b. 3. Lalu copy data dari elemen yang variabel. Periksa dulu apakah top > 0 2. Operasi pop : Mengambil data dari stack atau disebut deletion (penghapusan elemen yang terletak paling atas dari sebuah tumpukan Cara pengambilan data : 1. Turunkan top ditunjuk top kedalam suatu Push pop Stack .

7. dengan jumlah elemen kosong b) Makenull(S) adalah mengosongkan tumpukan S. 9. 3. jika ada elemen maka semua elemen dihapus. POP(S) A 1 .S) PUSH(‘B’.B ABC AB ABD ABDE ABD AB 0 1 2 3 2 3 4 3 2 NILAI TOP 10.Operasi dasar tumpukan : a) Createstack(S) adalah membuat tumpukan baru S.S) POP(S) PUSH(‘D’. 6. 4. OPERASI CREATESTTACK(S) PUSH(‘A’. 8. c) Empty adalah tumpukan kosong d) Push(X.S) POP(S) POP(S) ISI TUMPUKAN KOSONG A A. 5.S) PUSH(‘C’.S) PUSH(‘E’.S) adalah memasukkan elemen baru X ke dalam tumpukan S e) Pop (S) adalah mengeluarkan elemen posisi atas pada tumpukan S NO 1. 2.

S) dilakukan sepuluh kali. .Apa yang terjadi bila POP(S) dilakukan dua kali ? Terjadi Underflow. Sehingga pada PUSH harus dicek dahulu apakah jumlah elemen sudah mencapai maksimum atau belum. Apa yang terjadi apabila PUSH(X. terjadi Overflow. artinya tumpukan kosong tidak ada elemen yang dapat diambil. sedang pada POP harus dicek apakah ada elemen yang hendak dikeluarkan atau tidak. artinya tumpukan penuh tidak ada elemen yang dapat dimasukkan dalam tumpukan. jika kapasitas tumpukan adalah 5 lagi.

End. Atas := T. End. Begin T.Atas :=T. .Contoh listing : Procedure pop (var T: tumpukan). Begin T. maka tidak mungkin dipop lagi. Atas := 0 then Writeln (‘tumpukan sudah kosong’). Else T. Kendala : Bagaimana kalau tumpukan sudah kosong. lalu apa yang dipop? (karena tumpukan sudah kosong.Atas-1.Atas-1. maka : Pencegahannya : Procedure pop (var T: tumpukan).

Penulisan ungkapan numeris : Manfaat dari tumpukan adalah dapat menulis ungkapan dengan notasi tertentu. biasa diubah kedalam notasi prefix atau postfix saat kompilasi. hanya saja perlu diperhatikan precedence operator atau tingkatan pengoperasiannya. Postfix/suffix/polish terbalik (operator ditulis sesudah operan) Contoh : INFIX : ubah ke 1.A/B * C $ D E 4.+ ABC 3. + AB 2. A – B/(C * D $ E ) 4. Notasi numerik biasa ditulis oleh manusia. A + B 2. Jenis : 1. . (A + B) * (C – D) PREFIX (POLISH) 1. Notasi infix mudah dimengerti oleh manusia. Prefix ( operator ditulis sebelum ke 2 operan disajikan) 3. * + AB . . A + B –C 3. Notasi prefix dan postfix akan lebih mudah dikerjakan oleh komputer. Notasi infix untuk penulisan aritmatik. Infix (operator ditulis diantara 2 operan) 2.B.CD .

ABCDE$*/- Proses : NOTASI SUFIX KE PREFIX A+B-C (A + B) * (C-D) +AB . AB+C2.INFIX : 1. (A + B) * (C-D) 3. A = B – C 2.+ ABC (+ A B) * (. A – B /(C * D $ E) ubah ke POSTFIX : 1. AB+CD .* 3.CD) Mis : p * * pq Mis : q Atau * +AB-CD .

lalu ambil dua operan sebelumnya AB*C dan D. sehingga hasilnya AB* b) Cari operator ke 2: yaitu : /. sehingga hasilnya ((A*B)/C)+D 2. sehingga hasilnya AB*C/ c) Cari operataor ke 3: +. Ubah notasi prefix ke postfix : +/*ABCD : Cara : (cari opertor dimulai dari operan terkanan sbb ): a) Cari perator ke 1: yaitu *. yaitu : A dan B. lalu ambil dua operan sebelumnya (A*B) dan C. lalu ambil dua operand sebelumnya . lalu ambil dua operand sebelumnya . sehingga hasilnya (A*B) b) Cari operator ke 2: yaitu : /. lalu ambil dua operan sebelumnya ((A*B)/C) dan D. lalu ambil dua operan sebelumnya AB* dan C. sehingga hasilnya AB*C/D+ . sehingga hasilnya ((A*B)/C) c) Cari operataor ke 3: +. yaitu : A dan B.1. Ubah notasi prefix ke infix : +/*ABCD : Cara : (cari opertor dimulai dari operan terkanan sbb ): a) Cari perator ke 1: yaitu *.

sehingga hasilnya (C*D) b) Cari operator ke 2: yaitu : /. lalu ambil dua operan sebelumnya . sehingga hasilnya (B/(C*D)) c) Cari operataor ke 3:-. lalu ambil dua operan sebelumnya B DAN *CD . lalu ambil dua operan sebelumnya A DAN (B/(C*D)) . lalu ambil dua operan sebelumnya A DAN /B*CD .3. sehingga hasilnya /B*CD c) Cari operataor ke 3: -. sehingga hasilnya *CD b) Cari operator ke 2: yaitu : /. sehingga hasilnya –A/B*CD . lalu ambil dua operan sebelumnya . sehingga hasilnya (A-(B/(C*D)) 4. lalu ambil dua operan sebelumnya B DAN (C*D) . yaitu : C dan D. Ubah notasi postfix ke prefix : ABCD*/Cara : (cari opertor dimulai dari operan terkanan sbb ): a) Cari operator ke 1: yaitu *. Ubah notasi postfix ke infix : ABCD*/Cara : (cari opertor dimulai dari operan terkiri sbb ): a) Cari operator ke 1: yaitu *. yaitu : C dan D.

maka ada kesalahan pada notasi tersebut. diubah ke postfix : 243*-1+ 2 4 4 2 2 3 3 4 2 * Op 2 12 Op 2 2 Op 1 -10 1 1 -10 + Op 2 Op 1 -9 Op 1 Algoritmanya : 1. Hasilnya dimasukkan ke tumpukan (jika tidak ada 2 operan dalam tumpukan. Ambil elemen satu persatu b. Bila elemen dari notasi tersebut habis. maka nilai yang tertinggal (teratas dalam tumpukan) . Contoh nilai postfix menggunakan tumpukan : Notasi infix : 2-4*3+1 . lalu hitung dengan operator tersebut. ulangi langkah sampai elemen habis.5. 3. Buatlah tumpukan kosong 2. Jika elemen itu adalah operan. masukkan ke dalam tumpukan dan jika operator maka keluarkan dua nilai teratas dari tumpukan (op 1) dan (op 2). a.

Buat tumpukan kosong 2.6. ambil elemen satu persatu dari aritmatika b. Jika elemen itu adalah operan. op2) . Op2=operand kekanan (kanan) Algoritmanya : 1. Contoh nilai prefix menggunakan tumpukan : Notasi infix : 2-4*3+1 . Ulangi langkah berikut sampai elemen habis a. diubah ke prefix : +-2431 1 3 3 1 1 4 4 3 1 * Op 1 2 2 12 Op1 12 1 Op 2 1 - + -10 1 Op 1 Op 2 -9 Op1 Op 2 Op2 Op1=operand ke 1(kiri). Hasilnya dimasukkan ke tumpukan (jika tidak ada operan dalam tumpukan maka ada kesalahan pada notasi tersebut) . lalu hitung dengan opeartor ybs. kebalikan dari postfix). masukkan kedalam tumpukan dan jika operator maka keluarkan dua nilai teratas dari tumpukan ( (op1.

ANTRIAN ( QUEUE ) a) Suatu kumpulan antrian data dimana penambahan elemen hanya bisa dilakukan pada satu ujung (=Rear/sisi belakang ) dan penghapusan (pengambilan elemen dilakukan lewat ujung lain (front = sisi depan). artinya yang pertama masuk itu yang akan pertama dikeluarkan. b) Menggunakan prinsip FIFO ( first in fisrt out). • Implementasi antrian dengan array / larik : Operasi dalam antrian : 1) Mengambah elemen baru yang akan ditempatkan di bagian belakang antrian 2) Menghapus elemen yang terletak dibagian depan antrian A KELUAR DEPAN B C D MASUK BELAKANG .2.

A KELUAR B C D E MASUK Proses tambah elemen C KELUAR D E MASUK Proses hapus elemen .

Contoh : a) Penjualan karcis kereta.Q) adalah mengeluarkan elemen depan pada antrian Q . bioskop b) Penjadwalan pemakaian printer atau cpu pada client server c) Penyimpanan barang di apotek Operasi dasar pada antrian : 1) Createqueue(Q) adalah membuat antrian baru Q dengan jumlah elemen kosong 2) Makenull(Q) adalah mengosongkan antrian Q. jika ada elemen maka semua elemen dihapus 3) Empty Q adalah antrian kosong 4) fullQ adalah antrian penuh 5) tambahQ(X.

OPERASI CREATEQ(Q) TAMBAHQ(‘a’. 9. 3. AMBILQ(Q.Q) ISI ANTRIAN KOSONG a ab abc DEPAN 0 1 1 1 BELAKANG 0 1 2 3 5.x) AMBILQ(Q.x) TAMBAHQ(‘d’.x) AMBILQ(Q.Q) AMBILQ(Q. 4.x) bc bcd bcde cde de e 2 2 2 3 4 5 3 4 5 5 5 5 . 2. 10.Q) TAMBAHQ(‘b’. 8.Q) TAMBAHQ(‘c’. 7. 6.Q) TAMBAHQ(‘e’.Ilustrasi operasi TAMBAHQ dan AMBILQ terhadap antrian : NO 1.

artinya antrian kosong tidak ada elemen yang dapat di ambil. Pada proses TAMBAHQ harus diperiksa apakah jumlah elemen sudah maksimum atau tidak.X) sebanyak dua kali lagi? Terjadi underflow.Apa yang terjadi apabila AMBILQ (Q. artinya antrian penuh tidak ada elemen yang dapat dimasukkan ke dalam antrian.Q) sebanyak sepuluh kali lagi. Apa yang terjadi apabila TAMBAHQ(X. jika tidak ada maka underflow. jika sudah maka overflow. jika kapasitas antrian adalah 5 lagi? Terjadi overflow. . sedangkan AMBILQ antrian harus diperiksa apakah ada elemen yang hendak dikeluarkan atau tidak.

LINKED LIST Link list ( daftar berkait / senarai berantai ) Perbedaannya array dengan linked list: Array Variabelnya statis Penambahan/penghapusan Data terbatas Random access Penghapusan array tidak Mungkin Linked list Variabelnya dinamis Penambahan/penghapusan Tidak terbatas Sequential access Penghapusan linked list mudah .

1 atau lebih filed yang berisi data di daftar berkait 2. Adalah suatu node minimal yang harus mempunyai 2 komponen : 1. node link node link node link . 1 atau lebih field berupa pointer yang menunjuk ke node lainnya. Adalah suatu simpul (node) yang dapat berupa suatu struktur data record. Field yang berupa poinnter ini disebut kait( link).Link list ( daftar berkait / senarai berantai ) Adalah : Pengolahan memory secara dinamis artinya tidak perlu mengalokasikan memori lebih awal secara tetap. Suatu simpul (node) yang menunjuk ke simpul lain / berikutnya di dalam suatu Urutan.

You're Reading a Free Preview

Mengunduh
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->