• Tidak ada hasil yang ditemukan

07 Struktur Data linier SDL - Linked List

N/A
N/A
Protected

Academic year: 2018

Membagikan "07 Struktur Data linier SDL - Linked List"

Copied!
53
0
0

Teks penuh

(1)

Algoritma Struktur Data

3 sks

(2)

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)

(3)

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

(4)

Linked List

Linked List (List Berkait ) biasa juga disebut list

List t ermasuk kedalam himpuan dinamik, t etapi

berbeda dengan stack dan queue

(5)

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

(6)

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

(7)

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 au

st 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 obyek

lainnya, diperlukan paling t idak sebuah variabel yang bert ipe point er

(8)

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

(9)

1. Linear Single Linked List

M erupakan linked list lurus dengan

point er t unggal

(10)

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

(11)

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

(12)

1. Linear Single Linked List

Prosesnya

(13)

1. Linear Single Linked List

Prosesnya

(14)

1. Linear Single Linked List

Prosesnya

(15)

1. Linear Single Linked List

Prosesnya

(16)
(17)
(18)
(19)
(20)
(21)
(22)

2. Linear Double Linked List

A

head tail

prev

next LEFT

INFO

(23)

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

(24)

2. Linear Double Linked List

Proses DLLL (Double Linked List Linear), adalah

1. 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

(25)

2. Linear Double Linked List

Proses DLLL (Double Linked List Linear), adalah

1. Inisialisasi linked list

2. Pembuat an sebuah simpul

.

(26)

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

(27)

2. Linear Double Linked List

Proses DLLL (Double Linked List Linear), adalah

5. M elakukan insert kiri / sisip elemen awal

6. M elakukan insert t engah / sisip elemen t engah

(28)

2. Linear Double Linked List

Proses DLLL (Double Linked List Linear), adalah

7. M elakukan delet e kanan / hapus elemen akhir

8. M elakukan delet e kiri / hapus elemen awal

(29)

2. Linear Double Linked List

Proses DLLL (Double Linked List Linear),

adalah

(30)

3. Circular Single Linked List

22 28 66 63

I NFO

(31)

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

(32)

3. Circular Single Linked List

Proses SLLC (Single Linked List Circular), adalah

1. 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

(33)

3. Circular Single Linked List

• Proses SLLC (Single Linked List Circular), adalah

1. Pembuat an sebuah simpul

2. Pembuat an simpul awal

(34)

3. Circular Single Linked List

Proses SLLC (Single Linked List Circular), adalah

3. M elakukan insert kanan / sisip elemen t erakhir

4. M elakukan insert kiri / sisip elemen awal

(35)

3. Circular Single Linked List

Proses SLLC (Single Linked List Circular), adalah

5. M elakukan insert t engah / sisip elemen t engah

(36)

3. Circular Single Linked List

Proses SLLC (Single Linked List Circular), adalah

7. M elakukan delet e kiri / hapus elemen awal

8. M elakukan delet e t engah / hapus elemen t engah

(37)

4. Circular Double Linked List

A

head tail

prev

next LEFT

INFO

(38)

66

4. Circular Double Linked List

Circular Double Linked List adalah doubly linked list

(39)

4. 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

(40)

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

(41)

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

(42)

4. Circular Double Linked List

Head

Dibut uhkan sat u buah variabel point er :

head

(43)

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 masih

kosong), 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 baru

t ersebut sehingga head akan t et ap selalu menjadi dat a t erdepan. Unt uk menghubungkan node t erakhir dengan

(44)

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

5.

M elakukan insert t engah / sisip elemen t engah

6.

M elakukan delet e kiri / hapus elemen awal

(45)

4. Circular Double Linked List

Proses DLLC (Double Linked List

Circular), adalah

(46)

4. Circular Double Linked List

Proses DLLC (Double Linked List Circular), adalah

(47)

4. Circular Double Linked List

Proses DLLC (Double Linked List Circular),

adalah

(48)

4. Circular Double Linked List

Proses DLLC (Double Linked List Circular),

adalah

(49)

4. Circular Double Linked List

Proses DLLC (Double Linked List Circular), adalah

5.

M elakukan insert t engah / sisip elemen

(50)

4. Circular Double Linked List

(51)

4. Circular Double Linked List

Proses DLLC (Double Linked List Circular),

adalah

(52)

4. Circular Double Linked List

Proses DLLC (Double Linked List Circular),

adalah

(53)

Referensi

Dokumen terkait