Algoritma Struktur Data
3 sks
Materi
Materi
Pengantar Struktur Data
Abstract Data Type (ADT)
Rekursif : Fibonacci
Sorting (Selection, Insertion, Bubble, Shell, Merge, Quick)
Struktur Data Linier (Linked List, Stack, Queu)
Struktur Data Hirarki (Tree, Graph, Hash Tables)
Lit erat ur :
1. H.M Deit el, P.J Deit el, Small J ava How t o Program-sixt h
Edit ion, Pear son Pr ent ice Hall, 2005
2. Elliot B. Kof f man, Paul A.T. Wolf gang, Obj ect s, Abst ract ion,
Dat a St ruct ures and Design Using J ava, J ohn Wiley & Sons.I nc, 2005
3. Mar k Allen Weiss, Dat a St ruct ures & Algorit hm Analysis in
J ava, Addison-Wesley, 1999
4. Moh.Sj ukani, Algorit ma & St rukt ur Dat a dengan C, C++ dan
Yogyakar t a, 2001
9. Wir t h, Niklaus, Algorit hmic + Dat a St ruct ures Programs,
Pr ent ice-Hall, 1976
10. Thompson Susabda Ngoen , Algorit ma dan St rukt ur Dat a
Bahasa C, Mit r a Wacana Media, 2009
ALGORI TMA
Linked List
•
Linked List (List Berkait ) biasa juga disebut list
•
List t ermasuk kedalam himpuan dinamik, t etapi
berbeda dengan stack dan queue
Linked List
•
List digunakan unt uk menyimpan sekumpulan
data yang bert ipe sama (berupa: bilangan, st ring)
•
Jumlah elemen list t idak t erbatas, t etapi secara
fisik hanya dibatasi oleh jumlah memori yang
t ersedia
•
Sebuah list akan mempunyau 2 bagian, yait u
bagian:
–
Head (Kepala)• Yang t erut am a digunakan unt uk m enyim pan lam at elem en pert am a at au elem en t erakhir sebuah list
Linked List
•
Linked list merupakan Array Dinamis.
Variabel bert ipe Array merupakan
suat u t ipe data yang bersifat stat is
dimana ukuran dan urutannya sudah
past i.
•
Selain it u ruang memori yang dipakai
olehnya t idak dapat dihapus bila
variabel bert ipe array tersebut sudah
t idak digunakan lagi pada saat
Linked List
•
Linked list adalah sejumlah obyek yang di link at au dihubungkan sat u dengan yang lainnya sehingga membent uk suat u list•
Obyek adalah merupakan gabungan beberapa elemen dat a (variabel) yang dijadikan sat u kelompok at aust ruct ureat au recordyang dibent uk dengan perint ah struct
•
Tiap-t iap elemen dapat memiliki t ipe dat a t ersendiri yang berbeda dengan t ipe dat a lemen lain•
Unt uk menghubungkan obyek sat u dengan obyeklainnya, diperlukan paling t idak sebuah variabel yang bert ipe point er
Linked List
•
St rukt ur Linked List terbagi menjadi 4
macam, yait u :
1. Linear Single Linked List
2. Linear Double Linked List
3. Circular Single Linked List
1. Linear Single Linked List
•
M erupakan linked list lurus dengan
point er t unggal
1. Linear Single Linked List
•
Ada 4 simpul no (1) s.d. (4)
•
Set iap simpul (record) t erdiri dari dua elemen (field)
–
Field INFO
bert ipe int eger unt uk menyimpan nilai 22–
Field LINK
bert ipe point er unt uk menyimpan alamat simpul•
Simpul pertama no (1) dit unjuk oleh point er FIRST
•
Smpul t erakhir no (4) dit unjuk oleh point er LAST
I NFO
FI RST LI NK I NFO LI NK I NFO LI NK I NFO LI NK LAST
1. Linear Single Linked List
•
Prosesnya
1.
Inisialisasi, yait u persiapan pembuat an
Linked List
2.
M embuat simpul awal
3.
M embuat simpul baru
4.
M enambahkannya (Insert ) kedalam
linked list
22 28 66 63
I NFO
1. Linear Single Linked List
•
Prosesnya
1. Linear Single Linked List
•
Prosesnya
1. Linear Single Linked List
•
Prosesnya
1. Linear Single Linked List
•
Prosesnya
2. Linear Double Linked List
A
head tail
prev
next LEFT
INFO
66
2. Linear Double Linked List
•
Linear Double Linked List adalah doubly
linked list lurus dengan point er ganda,
yait u ada dua buah point er. Jadi dalam
st rukt ur simpul ada dua
elemen/ field/ variabel yang bert ipe
point er. Yang pertama menunjuk atau
berisi alamat simpul sebelumnya atau
perivious node, dan yang kedua
2. Linear Double Linked List
•
Proses DLLL (Double Linked List Linear), adalah1. Inisialisasi linked list
2. Pembuat an sebuah simpul 3. Pembuat an simpul awal
4. M elakukan insert kanan / sisip elemen t erakhir 5. M elakukan insert kiri / sisip elemen awal
6. M elakukan insert t engah / sisip elemen t engah 7. M elakukan delet e kanan / hapus elemen akhir
8. M elakukan delet e kiri / hapus elemen awal
2. Linear Double Linked List
•
Proses DLLL (Double Linked List Linear), adalah1. Inisialisasi linked list
2. Pembuat an sebuah simpul
.
2. Linear Double Linked List
•
Proses DLLL (Double Linked List Linear), adalah
3. Pembuat an simpul aw al
4. M elakukan insert kanan / sisip elemen t erakhir
2. Linear Double Linked List
•
Proses DLLL (Double Linked List Linear), adalah5. M elakukan insert kiri / sisip elemen awal
6. M elakukan insert t engah / sisip elemen t engah
2. Linear Double Linked List
•
Proses DLLL (Double Linked List Linear), adalah7. M elakukan delet e kanan / hapus elemen akhir
8. M elakukan delet e kiri / hapus elemen awal
2. Linear Double Linked List
•
Proses DLLL (Double Linked List Linear),
adalah
3. Circular Single Linked List
22 28 66 63
I NFO
3. Circular Single Linked List
•
Circular Single Linked List adalah Single
List List dimana link simpul t erakhir
bukan diisi dengan null, melainkan diisi
dengan alamat simpul pert ama yait u
simpul yang dit unjuk oleh point er
FIRST, sehingga mencipt akan efek
melingkar “ sesuai arah jarum jam”
22 28 66 63
I NFO
3. Circular Single Linked List
•
Proses SLLC (Single Linked List Circular), adalah1. Pembuat an sebuah simpul 2. Pembuat an simpul awal
3. M elakukan insert kanan / sisip elemen t erakhir 4. M elakukan insert kiri / sisip elemen awal
5. M elakukan insert t engah / sisip elemen t engah 6. M elakukan delet e kanan / hapus elemen akhir
7. M elakukan delet e kiri / hapus elemen awal
3. Circular Single Linked List
• Proses SLLC (Single Linked List Circular), adalah
1. Pembuat an sebuah simpul
2. Pembuat an simpul awal
3. Circular Single Linked List
•
Proses SLLC (Single Linked List Circular), adalah3. M elakukan insert kanan / sisip elemen t erakhir
4. M elakukan insert kiri / sisip elemen awal
3. Circular Single Linked List
•
Proses SLLC (Single Linked List Circular), adalah5. M elakukan insert t engah / sisip elemen t engah
3. Circular Single Linked List
•
Proses SLLC (Single Linked List Circular), adalah7. M elakukan delet e kiri / hapus elemen awal
8. M elakukan delet e t engah / hapus elemen t engah
4. Circular Double Linked List
A
head tail
prev
next LEFT
INFO
66
4. Circular Double Linked List
•
Circular Double Linked List adalah doubly linked list4. Circular Double Linked List
•
Double Linked List Circular adalah linked list
dengan menggunakan point er, dimana
set iap node memiliki 3 field/ elemen, yait u 1
field point er yang menunjuk point er
berikut nya (next / right ), 1 field menunjuk
point er sebelumnya (prev/ left ), sert a
sebuah field yang berisi dat a unt uk node
t ersebut
4. Circular Double Linked List
•
Pengert ian Double Linked List Circular
–
Double: art inya field point ernya t erdiri dari dua
buah dan dua arah, yait u prev/ left dan next / right
–
Linked List : art inya node-node t ersebut saling
t erhubung sat u sama lain
4. Circular Double Linked List
•
Node
–
Set iap node pada linked list mempunyai field
yang berisi dat a dan point er ke node
berikut nya dan ke node sebelumnya
–
Unt uk pembent ukan node baru, mulanya
point er next / right dan prev/ left akan
menunjuk ke dirinya sendiri
–
Jika sudah lebih dari sat u node, maka point er
prev/ left akan menunjuk ke node
4. Circular Double Linked List
•
Head
–
Dibut uhkan sat u buah variabel point er :
head
4. Circular Double Linked List
•
Fungsi unt uk mengetahui kosong t idaknya DLLC
(Double Linked List Circular)
•
Penamahan elemen/ data didepan/ diawal
–
Penambahan node baru akan dikait an di node paling depan, namun pada saat pert ama kali (dat a masihkosong), maka penambahan dat a dilakukan pada head nya
–
Pada prinsipnya adalah mengkait kan dat a baru dengan head, kemudian head akan menunjuk pada dat a barut ersebut sehingga head akan t et ap selalu menjadi dat a t erdepan. Unt uk menghubungkan node t erakhir dengan
4. Circular Double Linked List
•
Proses DLLC (Double Linked List Circular), adalah
1. Pembuat an sebuah simpul
2. Pembuat an simpul aw al.b (simpulyang sudah dibuat , dijadikan sebagai simpul aw al)
3. M elakukan insert kanan / sisip elemen t erakhir 4. M elakukan insert kiri / sisip elemen aw al