07 Struktur Data linier SDL - Linked List

  3 sks By. Sri Rezeki Candra Nursari

  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) Search (Sequential, Fibonacci, Interpolation, Binary)

  3 3 sks sks ALGORI TMA STRUKTUR ALGORI TMA STRUKTUR DATA DATA -- 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 J ava, Mit r a Wacana Media, Agust us 2005

  5. Andr i Kr ist ant o, St rukt ur Dat a dengan C, Gr aha I lmu, 2003

  6. Bambang Wahyudi, Pengant ar St rukt ur Dat a dan Algorit ma, Andi, 2004

  7. Ema Ut ami, St rukt ur Dat a, Gr aha I lmu, 2007

  8. Yat ini B, I ndr a, Pemrograman Terst rukt ur, J &J Lear ning Yogyakar t a, 2001

  9. Wir t h, Niklaus, Algorit hmic + Dat a St ruct ures Programs, Pr ent ice-Hall, 1976

  Linked List

  • Linked List (List Berkait ) biasa juga disebut list

  • List t ermasuk kedalam himpuan dinamik, t etapi berbeda dengan stack dan queue
  • Pada ada perat uran :
    • – Penyisipan elemen

  • Diawal
  • Dit engah
  • Diakhir
    • – Penghapusan elemen

  • Diawal
  • Dit engah

  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 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
  • Variabel point er t ersebut merupakan salah sat u variabel

  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

  4. Circular Double Linked List

1. Linear Single Linked List

  • M erupakan linked list lurus dengan point er t unggal
  • Dalam st rukt ur simpul hanya ada

    sat u elemen/ field/ variabel yang

    bert ipe point er yang isinya adalah

    alamat sim[ul berikut nya at au next node

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

  I NFO FI RST LI NK I NFO LI NK

  I NFO LI NK

  I NFO LI NK LAST

  22

  28

  66

  63

  • – 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

1. Linear Single Linked List LAST

  I NFO FI RST LI NK I NFO LI NK

  I NFO LI NK

  I NFO LI NK

  22

  28

  66

  63

  • 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

1. Linear Single Linked List

  • Prosesnya

  1. Inisialisasi, yait u persiapan pembuat an Linked List

1. Linear Single Linked List

  • Prosesnya

2. M embuat simpul awal

1. Linear Single Linked List

  • Prosesnya

3. M embuat simpul Baru

1. Linear Single Linked List

  • Prosesnya

  4. M enambahkannya (Insert ) kedalam linked list

  Contoh : Linear Single Linked List (versi 1)

  Contoh : Linear Single Linked List (versi 1)

  Contoh : Linear Single Linked List (versi 1)

  Contoh : Linear Single Linked List (versi 2)

  Contoh : Linear Single Linked List (versi 2)

  Contoh : Linear Single Linked List (versi 2)

2. Linear Double Linked List

INFO RIGHT

  A head tail prev next LEFT

2. Linear Double Linked List

  T T T T

  LAST

  H T O H H H T O T T O O

FI RST

  F F F F F F F F

  IG

  IG E

  IG

  IG E E E L

  IN R L

  IN

  IN

  IN R L R L R

  22

  28

  63

  66

  • 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), 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

  

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

2. Linear Double Linked List

  • Proses DLLL (Double Linked List Linear), adalah

  1. 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), adalah

  5. 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), adalah

  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), adalah

  7. M elakukan delete tengah / hapus elemen tengah

3. Circular Single Linked List

  22

  28

  66

  63 I NFO FI RST LI NK I NFO LI NK

  I NFO LI NK

  I NFO LI NK LAST

3. Circular Single Linked List LAST

  I NFO FI RST LI NK I NFO LI NK

  I NFO LI NK

  I NFO LI NK

  22

  28

  66

  63

  • 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

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

  

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

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), adalah

  3. 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), adalah

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

  6. M elakukan delet e kanan / hapus elemen akhir .

  . . .

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

.

  , ,

4. Circular Double Linked List

INFO RIGHT

  A head tail prev next LEFT

4. Circular Double Linked List

  T T T T

  LAST

  H T H O H H T O T O T O

FI RST

  F F F F F F F F

  IG

  IG

  IG

  IG E E E E

  IN L R

  IN

  IN

  IN L R L R L R

  22

  28

  63

  66

  • Circular Double Linked List adalah doubly linked list

    dimana point er RIGHT simpul paling kanan berisi alamat

    simpul paling kiri, dan point er LEFT simpul paling kiri berisi

    alamat simpul paling kanan, sehingga mencipt akan efek

    melingkar baik menurut ‘arah jarum jam’ maupun ‘arah

    kebalikannya’

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

  • Double Linked List Circular point er next dan prev nya menunjuk ke dirinya sendiri secara circular

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
    • – Circular: art inya point er next dan prev-nya menunjuk ke dirinya sendiri

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

      sebelumnya, dan point er next / right akan

      menunjuk ke node sesudahnya.

4. Circular Double Linked List

  • Head
    • – Dibut uhkan sat u buah variabel point er :

  head

  • – Head akan selalu menunjuk pada node

  pert ama

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 node t erdepan dibut uhkan point er bant u .

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

  7. M elakukan delet e kanan / hapus elemen akhir

4. Circular Double Linked List

  • Proses DLLC (Double Linked List Circular), adalah

1. Pembuatan sebuah simpul

4. Circular Double Linked List

  • Proses DLLC (Double Linked List Circular), adalah

  2. Pembuat an simpul aw al.b (simpulyang sudah dibuat , dijadikan sebagai simpul aw al)

4. Circular Double Linked List

  • • Proses DLLC (Double Linked List Circular),

  adalah

  3. M elakukan insert kanan / sisip elemen t erakhir

4. Circular Double Linked List

  • • Proses DLLC (Double Linked List Circular),

  adalah

4. M elakukan insert kiri / sisip elemen awal

4. Circular Double Linked List

  • Proses DLLC (Double Linked List Circular), adalah

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

4. Circular Double Linked List

  • Proses DLLC (Double Linked List Circular), adalah

6. M elakukan delet e kiri / hapus elemen awal

4. Circular Double Linked List

  • Proses DLLC (Double Linked List Circular), adalah

  7. M elakukan delet e kanan / hapus elemen akhir

4. Circular Double Linked List

  • Proses DLLC (Double Linked List Circular), adalah

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