pertemuan ke - 5linked list mempunyai komponen node dan link. representasi linked list adalah...

34
Pertemuan Ke - 5

Upload: others

Post on 11-Feb-2021

26 views

Category:

Documents


0 download

TRANSCRIPT

  • Pertemuan Ke - 5

  • Linked List

    • Linked list atau biasa disebut senarai berantaiadalah suatu kumpulan data yang salingterhubung antar 1 data dengan databerikutnya. Suatu element (disebut dengannode) dalam linked list selalu mempunyaihubungan dengan data berikutnya. Agar lebihjelas perhatikan contoh di bawah ini :

  • Linked List

    Dalam gambar1 di atas, terlihat bahwa ada 4 buah data. Setiapdata mempunyai anggota yang menunjuk ke data berikutnya,kecuali elemen terakhir yang berisi NULL. NULL berarti bahwaelemen tersebut tidak menunjuk ke posisi apapun. Selain ituelemen pertama ditunjuk oleh variable Awal dan elementerakhir ditunjuk oleh variable Akhir.

  • Linked List

    • Setiap elemen dari linked list mempunyai 2bagian yaitu bagian data (info) yang bernilaidengan angka, dan sebagian lagi adalahpenunjuk ke data berikutnya (pointer).

    • Linked list merupakan suatu penyimpanandata yang dinamis.

  • Linked ListStruktur data linier, dengan alokasi dinamis. Linked list mempunyai komponennode dan link.

    Representasi linked list adalah struktur data record yang terdiri daribeberapa field informasi yang terhubung dengan link.

    Sedangkan linked adalah data dengan tipe data pointer.

    Jenis – jenis linked list :

    1. LINEAR SINGLY LINKED LIST2. CIRCULAR SINGLY LINKED LIST3. LINEAR DOUBLY LINKED LIST4. CIRCULAR DOUBLY LINKED LIST

    Linked List mempunyai beberapa operasi, yaitu :1. Menyisip di belakang2. Menyisip di tengah3. Menyisip di depan4. Menghapus di belakang5. Menghapus di tengah6. Menghapus di depan

  • Jenis-Jenis Senarai (List)

    • Singly Linked List

    – Linear Singly Linked List

    – Circular Singly Linked List

    • Double Linked List

    – Linear Doubly Linked List

    – Circular Doubly Linked List

  • Singly Linked List

    • List tunggal adalah list yang elemennya hanyamenyimpan informasi elemen stelahnya(next), sehingga jalannya pengaksesan listhanya dapat dilakukan secara maju. Listtunggal terbagi menjadi 3 jenis yaitu listtunggal dengan kepala (first), list tunggaldengan kepala(first) dan ekor (tail), serta listtunggal yang berputar

  • Singly Linked List• Representasi dari ketiga list tersebut dapat

    dilihat pada gambar berikut:

    'A' 'B' 'C' 'D'

    Ciri – Cir Linear Singly Linked List :

    1. Mempunyai satu anak panah yang mengarah dari field Next ke field Info

    2. Satu node terdiri dari dua field, info dan next

    3. Mempunyai elemen terakhir

    4. Elemen terakhir adalah elemen yang field next bernilai NULL

  • PENELUSURAN PADALINEAR SINGLY LINKED LIST

    'A' 'B' 'C' 'D'

    ff00 'C'

    ff01 ff0e

    ff04 'A'

    ff05 ff08

    ff08 'B'

    ff09 ff00

    ff0e 'D'

    ff0f NULL

    Data

    Next

    Data

    Next

    Data

    Next

    Data

    Next

    ff04 Headff3f

    Penelusuran :

    Awal = ff04, maka info dari ff04 = ‘A’

    Next ff04 = ff08, maka info dari ff08 = ‘B’

    Next ff08= ff00, maka info dari ff00 = ‘C’

    Next ff00= ff0e, maka info dari ff0e = ‘D’

    Next ff0e = NULL, akhir list

    List = ‘ABCD’

  • Operasi Menyisip di Belakang pada Linear Singly Linked List

    1. Operasi menyisip di belakang adalah operasimenambah data dibelakang linear singly linked list.

    2. Berikut ini adalah langkah – langkah untukmenyisip dibelakang:a. Elemen baru akan menjadi elemen terakhir

    b. Field next elemen baru = NULL

    c. Field next elemen terakhir dari list awal berubah= Predeseseor elemen baru

  • PENYISIPAN NODELINEAR SINGLY LINKED LIST

    'A' 'B' 'C' 'D'

    'A' 'B' 'C' 'D'

    ?

    ff00 'C'

    ff01 ff0e

    ff04 'A'

    ff05 ff08

    ff08 'B'

    ff09 ff00

    ff0e 'D'

    ff0f NULL ff0b

    Data

    Next

    Data

    Next

    Data

    Next

    Data

    Next

    ff04 Headff3f

    NULL

    ff0e

    Node Baru

    ff0b

    ff0c

    ff0b

    Penunjuk

    Menyisip di belakang :

    1. Elemen baru akan menjadi elemen terakhir

    2. Field next elemen baru = NULL

    3. Field next elemen terakhir dari list awal berubah =

    Predeseseor elemen baru

  • Operasi Menyisip di Tengah pada Linear Singly Linked List

    1. Operasi menyisip dibelakang adalah operasi menambahelemen baru pada linear singly linked list.

    2. Untuk dapat menyisip ditengah linear singly linked list,operasi ini memerlukan elemen bantu sebagai penunjukposisi elemen baru, karena setelah diketahui elemen apayang jadi bantu, elemen baru akan disisipkan disisi kananelemen bantu.

    3. Berikut ini adalah langkah – langkah untuk menyisip ditengah pada linear singly linked list :a. Memerlukan elemen bantub. Elemen baru akan diletakan di sisi kanan elemen bantuc. Field next elemen bantu field info elemen barud. Field next elemen baru field info elemen berikutnya

  • PENYISIPAN NODELINEAR SINGLY LINKED LISTff00 'C'

    ff01 ff0e

    ff04 'A'

    ff05 ff08

    ff08 'B'

    ff09 ff00

    ff0e 'D'

    ff0f NULL

    Data

    Next

    Data

    Next

    Data

    Next

    Data

    Next

    ff04 Headff3f

    Node Baru

    ff0b

    ff0c

    ff0b

    Penunjuk

    'A' 'B' 'C' 'D'

    'A' 'B' 'C' 'D'

    'A' 'B' 'C' 'D'

    ?Menyisip di tengah

    1. Memerlukan elemen bantu

    2. Elemen baru akan diletakan di sisi kanan elemen bantu

    3. Field next elemen bantu field info elemen baru

    4. Field next elemen baru field info elemen berikutnya

  • Operasi Menyisip di Depan pada Linear Singly Linked List

    1. Operasi menyisip di depan adalah operasimenambah elemen baru dengan menggeserelemen paling kiri. Untuk menambah didepanmaka nilai predesesor elemen baru sama dengannilai awal list.

    2. Berikut ini adalah langkah – langkah untukmenyisip di depan pada linear singly linked list :a. Predesesor elemen baru = nilai awal listb. Elemen baru akan jadi elemen pertamac. Field next elemen baru field info elemen

    berikutnya

  • PENYISIPAN NODELINEAR SINGLY LINKED LIST

    'A' 'B' 'C' 'D'

    'A' 'B' 'C' 'D'

    ff00 'C'

    ff01 ff0e

    ff04 'A'

    ff05 ff08

    ff08 'B'

    ff09 ff00

    ff0e 'D'

    ff0f NULL

    Data

    Next

    Data

    Next

    Data

    Next

    Data

    Next

    ff04 Headff3f

    Node Baru

    ff0b

    ff0c

    ff0b

    Penunjuk

    Menyisip di depan

    1. Predesesor elemen baru = nilai awal list

    2. Elemen baru akan jadi elemen pertama

    3. Field next elemen baru field info elemen berikutnya

  • Operasi Menghapus di Belakang pada Linear Singly Linked List

    1. Operasi menghapus di belakang pada linear singly linked listadalah operasi yang menghilangkan elemen paling kanan.

    2. Berikut ini adalah langkah – langkah untuk menghapuselemen terakhir pada linear singly linked list :a. Memerlukan elemen bantub. Elemen bantu di sisi kiri elemen yang akan dihapusc. Setelah dihapus, elemen bantu jadi elemen terakhird. Field next elemen bantu berubah menjadi NULL

  • PENGHAPUSAN NODELINEAR SINGLY LINKED LIST

    ff00 'C'

    ff01 ff0e NULL

    ff04 'A'

    ff05 ff08

    ff08 'B'

    ff09 ff00

    ff0e 'D'

    ff0f NULL

    Data

    Next

    Data

    Next

    Data

    Next

    Data

    Next

    ff04 Headff3f

    ff00 Penunjuk

    'A' 'B' 'C' 'D'

    'A' 'B' 'C'

    'A' 'B' 'C'

    Menghapus di belakang :

    1. Memerlukan elemen bantu

    2. Elemen bantu di sisi kiri elemen yang akan dihapus

    3. Setelah dihapus, elemen bantu jadi elemen terakhir

    4. Field next elemen bantu berubah menjadi NULL

  • Operasi Menghapus di Tengah pada Linear Singly Linked List

    1. Operasi menghapus di tengah pada linear singly linked listhamper sama dengan operasi menyisip di tengah pada linearsingly linked list, yaitu untuk memerlukan elemen bantu.

    2. Berikut ini adalah langkah – langkah untuk menghapuselemen di tengah linear singly linked list :a. Memerlukan elemen bantub. Elemen bantu di sisi kiri elemen yang akan di hapusc. Setelah dihapus, field next elemen bantu field info

    Elemen berikutnya

  • PENGHAPUSAN NODELINEAR SINGLY LINKED LIST

    ff00 'C'

    ff01 ff0e

    ff04 'A'

    ff05 ff08

    ff08 'B'

    ff09 ff00 ff0e

    ff0e 'D'

    ff0f NULL

    Data

    Next

    Data

    Next

    Data

    Next

    Data

    Next

    ff04 Headff3f

    ff08 Penunjuk

    ff00 Node hapus

    'A' 'B' 'C' 'D'

    'A' 'B' 'C' 'D'

    'A' 'B' 'D'

    Menghapus di tengah :

    1. Memerlukan elemen bantu

    2. Elemen bantu di sisi kiri elemen yang akan di hapus

    3. Setelah dihapus, field next elemen bantu field info

    Elemen berikutnya

  • Operasi Menghapus di Depan pada Linear Singly Linked List

    1. Operasi menghapus di depan pada linear singly linked listadalah operasi menghilangkan elemen paling kiri.

    2. Berikut ini adalah langkah – langkah untuk menghapuselemen didepan pada linear singly linked list :a. Memerlukan elemen bantub. Elemen bantu di sisi kanan elemen yang akan di hapusc. Setelah dihapus, awal list field info elemen bantud. Setelah di hapus, elemen bantu jadi elemen pertama

  • PENGHAPUSAN NODELINEAR SINGLY LINKED LISTff00 'C'

    ff01 ff0e

    ff04 'A'

    ff05 ff08

    ff08 'B'

    ff09 ff00 ff0e

    ff0e 'D'

    ff0f NULL

    Data

    Next

    Data

    Next

    Data

    Next

    Data

    Next

    ff04 Headff3f

    ff08 Penunjuk

    ff00 Node hapus

    'A' 'B' 'C' 'D'

    'A' 'B' 'C' 'D'

    'B' 'D''C'

    Menghapus di depan :

    1. Memerlukan elemen bantu

    2. Elemen bantu di sisi kanan elemen yang akan di hapus

    3. Setelah dihapus, awal list field info elemen bantu

    4. Setelah di hapus, elemen bantu jadi elemen pertama

  • Contoh Soal1. Perhatikan table berikut :

    Predesesor Info Next

    Awal = 1 3 2

    3 1 NULL

    2 2 3

    a. Gambarkan list awal

    b. Buat penelusuran

    c. Tambahkan elemen berikut dari list awal :

    Predesesor Info Next

    4 4 NULL

  • Contoh Soal2. Perhatikan table berikut :

    Predesesor Info Next3 1 NULL

    Awal = 4 2 3

    a. Gambarkan list awalb. Tambahkan elemen berikut dari list awal :

    Predesesor Info Next3 1 5

  • Contoh Soal3. Perhatikan table berikut :

    Predesesor Info NextAwal = 2 X NULL

    a. Gambarkan list awalb. Buat penelusuranc. Tambahkan elemen berikut dari list awal :

    Predesesor Info Next2 Y 1

  • Contoh Soal4. Perhatikan table berikut :

    Predesesor Info Next 2 O NULL

    Awal = 3 L 11 M 2

    a. Gambarkan list awalb. Hapus elemen O dari list awal

  • Contoh Soal5. Perhatikan table berikut :

    Predesesor Info Next3 2 4

    Awal = 2 4 11 3 34 1 NULL

    a. Gambarkan list awalb. Hapus elemen ‘3’ dari list awalc. Hapus elemen pertama dari list bd. Hapus elemen terakhir dari list c

  • Contoh Soal6. Perhatikan table berikut :

    Predesesor Info NextAwal = 5 2 7

    9 5 NULL7 3 9

    a. Gambarkan list awalb. Hapus elemen pertama dari list awal

  • Latihan SoalPredesesor Info Next

    4 C 1

    Awal = 3 A 2

    1 D 6

    6 E NULL

    2 B 4

    Perhatikan table berikut :

    1. Gambarkan list awa

    2. Buat penelusuran

  • Latihan Soal

    Predesesor Info Next

    Awal = 1 A 2

    3 M NULL

    2 T 3

    Perhatikan table berikut :

    1.Gambarkan list awal

    2.Buat penelusuran

    3.Tambahkan elemen berikut dari list awal :

    Predesesor Info Next

    4 A NULL

  • Latihan Soal

    Predesesor Info Next

    3 1 NULL

    Awal = 4 2 3

    Perhatikan table berikut :

    1. Gambarkan list awal

    2. Tambahkan elemen berikut dari list awal :

    Predesesor Info Next

    3 1 5

    Predesesor Info Next

    7 2 NULL

    3. Tambahkan elemen berikut dari list b :

    Predesesor Info Next

    4 1 6

    4. Tambahkan elemen berikut dari list c :

  • Latihan Soal

    Predesesor Info Next

    3 2 4

    Awal = 2 4 1

    1 3 3

    4 1 NULL

    Perhatikan table berikut :

    1.Gambarkan list awal

    2.Hapus elemen ‘3’ dari list awal

    3.Hapus elemen ‘2’ dari list b

  • Latihan Soal

    Perhatikan permintaan soal berikut :

    1.Buat list awal dengan hasil : ‘UDANG’

    2.Operasikan menjadi : ‘BUDANG’

    3.Operasikan menjadi : ‘BDANG’

    4.Operasikan menjadi : ‘BADANG’

    5.Operasikan menjadi : ‘BADNG’

    6.Operasikan menjadi : ‘BADUNG’

  • Latihan Soal

    Perhatikan permintaan soal berikut :

    1.Buat list awal dengan hasil : ‘SISTEM’

    2.Operasikan menjadi : ‘ISTEM’

    3.Operasikan menjadi : ‘HISTEM’

    4.Operasikan menjadi : ‘HITEM’

    5.Operasikan menjadi : ‘HITM’

    6.Operasikan menjadi : ‘HITAM’

  • • Ada pertanyaan ???