• Tidak ada hasil yang ditemukan

Linked List 1 - Repository UNIKOM

N/A
N/A
Protected

Academic year: 2019

Membagikan "Linked List 1 - Repository UNIKOM"

Copied!
44
0
0

Teks penuh

(1)

LINKED LIST

LINKED LIST

Oleh:

(2)

PENGERTIAN

LINKED LIST

 berisi kumpulan data (node) yang tersusun

secara sekuensial, saling sambung-menyambung, dinamis dan tidak terbatas.

Linked List sering disebut juga Senarai Berantai

Linked List saling terhubung dengan bantuan

variabel pointer

 Masing-masing data dalam Linked List disebut

(3)
(4)

Bentuk

Linked List

Single Linked List

Double Linked List

Circular Linked List

(5)

Single Linked List

Linked list dengan simpul berisi satu link / pointer yang mengacu ke simpul berikutnya

Medan Data

(Info) Medan Sambungan (next)

(6)

Deklarasi Linked List

(Algoritma)

Type

Nama_pointer = Simpul↑ Simpul = Record

medan_data : tipedata,

medan_sambungan : Nama_pointer EndRecord

(7)

Contoh Deklarasi Linked

List

Type

Point = Data↑

Data = Record

Info : char , Next : Point

Endrecord

(8)

Operasi – operasi Single Linked List

1. Penciptaan (create) 2. Penyisipan

3. Penghapusan

4. Traversal

5. Pencarian (searching) 6. Pengurutan (sorting)

(9)

Penciptaan

Pointer awal dan akhir diberi harga nil/

NULL

awal akhi

r

(10)

Penyisipan di Depan

- Jika List kosong {

awal = nil

}

baru

baru 1

baru 1

awal akhi

r

alloc(baru)

baru .next ↑  nil

baru .info

1

awal  baru

(11)

Penyisipan di Depan

(lanjutan)

- Jika List tidak kosong {Awal ≠ Nil}

baru 1

akhi r

awal

2 3

Misalkan mula-mula keadaan List memiliki dua simpul:

Satu simpul akan disisipkan di depan

alloc(baru)

(12)

Penyisipan di Depan

(lanjutan)

baru 1

awal

2

akhi r

3

baru .next ↑  awal

(13)

Penyisipan di Depan

(lanjutan)

awal

2 3

baru 1

akhi r

awal  baru

(14)

Penyisipan di Depan

(lanjutan)

baru 1

awal

2 3

akhi r

(15)
(16)

Penyisipan di Belakang

- Jika List kosong {awal = nil}

{sama seperti pada penyisipan di depan}

awal

3 2

akhir

baru 1

- Jika List tidak kosong {awal ≠ nil}

Misalkan mula-mula List memiliki dua simpul:

Simpul yang akan disisipkan:alloc(baru)

baru .next ↑  nil

(17)

Penyisipan di Belakang (lanjutan)

baru 1

akhi r

awal

3 2 akhir .next↑ baru

(18)

Penyisipan di Belakang (lanjutan)

akhir  baru

akhi r

awal

3 2

baru 1

(19)

Penyisipan di Belakang (lanjutan)

aw al

3 2

baru

1

akhi r

(20)
(21)

Penyisipan di Tengah

baru 1

awal

2 5

4

akhi r

3

Misal akan menyisipkan angka 1 setelah angka 4

- Jika List kosong {awal = nil}

{sama seperti pada penyisipan di depan}

- Jika List tidak kosong {awal ≠ Nil}

alloc(baru)

(22)

Penyisipan di Tengah

(lanjutan)

Angka 4 ditemukan dengan cara mencari mulai dari simpul pertama sampai simpul yang ada angka 4 ditemukan (metode sequential search).

bant u

Misalkan pointer yang mencari angka 4 adalah pointer bantu, berarti pointer bantu akan menunjuk simpul ke-2 karena simpul tersebut berisi data yang dicari.

baru .next ↑  bantu .next↑

(23)

Penyisipan di Tengah

(lanjutan)

bantu .next ↑  baru

Setelah simpul baru terhubung ke simpul setelah simpul yang ada angka 4, maka sambungkan medan sambungan (next) dari simpul yang ditunjuk pointer bantu ke simpul baru

(24)

Penyisipan di Tengah

(lanjutan)

Keadaan Linked List setelah terjadi penyisipan satu simpul di tengah:

bant u

baru 1

2

akhi r

5

awal

(25)

Penghapusan di Depan

Proses menghapus satu simpul di depan/di awal Linked List (menghapus simpul yang ditunjuk oleh pointer awal)

- Keadaan List memiliki satu simpul {awal = akhir}

awa l

akhir

(26)

Penghapusan di Depan

(lanjutan)

awal akhir phapus elemen 1 phapus

phapus

awal

elemen

phapus .info ↑

dealloc(phapus)

awal nil akhir nil

1

awal akhir

(27)

Penghapusan di Depan

(lanjutan)

- Keadaan List memiliki lebih dari satu simpul {awal ≠ akhir}

awal

2 3

akhi r

(28)

Penghapusan di Depan

(lanjutan)

phapu s awal 2 3 akhir eleme n awa l 2 3 phapus akhir

phapus

awal elemen phapus .info

awal

awal .next↑

(29)

Penghapusan di Depan

(lanjutan)

Keadaan Linked List setelah terjadi penghapusan di depan/di awal

phapus

awa l

3

akhir

(30)

Penghapusan di Belakang

- Keadaan List memiliki satu simpul (awal = akhir)

awal

1 3

2

akhir

Proses menghapus satu simpul di belakang/di akhir Linked List (menghapus simpul yang ditunjuk oleh pointer akhir)

- Keadaan List memiliki lebih dari satu simpul {awal ≠ akhir}

{sama seperti penghapusan di depan}

(31)

Penghapusan di Belakang (lanjutan)

phap us

awal

1 3

akhir

2

eleme n

phapus

(32)

Penghapusan di Belakang (lanjutan) phap us phapu s akhir awa l 1 3 2

phapus

phapus .next ↑

phapus

phapus .next ↑

akhir

phapus

while (phapus .next ≠ ↑

(33)

Penghapusan di Belakang (lanjutan)

awal

1 3

phapu s

2

akhi r

akhir .next ↑

nil

(34)

Penghapusan di Belakang (lanjutan)

Keadaan Linked List setelah terjadi penghapusan di belakang/di akhir

phap us

phapu s

akhir

3 awa

l

(35)

Penghapusan di Tengah

- Keadaan List memiliki satu simpul (awal = akhir) awal 2 5 4 akhi r 3

Proses menghapus satu simpul di tengah Linked List (menghapus simpul yang ditunjuk oleh pointer phapus)

{sama seperti penghapusan di depan}

- Keadaan List memiliki lebih dari satu simpul (awal ≠ akhir)

(36)

phapus

posisihapus=2

Penghapusan di Tengah (lanjutan)

awal

2 5

4

akhir

3

(37)

bantu awa l 2 5 4 phapus akhir 3 posisihapus=3 eleme n

Penghapusan di Tengah (lanjutan)

elemen

phapus .info ↑

while (bantu .next ≠ ↑

phapus) do bantu bantu .next ↑

endwhile

(38)

awal 2 5 4 phapus akhir 3 posisihapus=3 bantu

Penghapusan di Tengah (lanjutan)

awal 2 5 4 phapus akhir 3 posisihapus=3 bantu

bantu .next ↑  phapus .next ↑

(39)
(40)

Latihan

Terdapat linked list nama: Ana, Budi, Joko

ingin disisipkan nama “Caca” setelah nama “Budi”

(41)

TUGAS KELOMPOK

Buat program menggunakan tipe data pointer dalam bentuk single linked list.

Operasi-operasi yang harus ada:

 Operasi Penciptaan

 Operasi Penyisipan di Depan

 Operasi Penyisipan di Belakang

 Operasi Penghapusan di Depan

 Operasi Penghapusan di Belakang

(42)

TUGAS KELOMPOK

Contoh program:

Menu Pilihan:

1. Penyisipan 2. Penghapusan

Menu penyisipan: Menu Penghapusan:

3. Penyisipan di depan 1. Penghapusan di depan 4. Penyisipan di belakang 2. Penghapusan di

belakang

5. Penyisipan di tengah 3. Penghapusan di

(43)
(44)

Referensi

Dokumen terkait

Penulis menyadari banyak pihak yang telah membantu dalam penyusunan makalah ini.. Maka dengan rendah hati, penulis

Penelitian ini bertujuan untuk mengetahui bagaimana pelaksanaan pemungutan pajak hotel kategori rumah kos di wilayah Kecamatan Jebres, dimana telah dilaksanakan

Peneliti : Selain berdasarkan nilai ulangan harian, apakah ada informasi lain yang digunakan dalam menetapkan peserta didik yang harus mengikuti program remedi?. Guru : Tidak

Otitis media akut dapat dise#a#kan invasi virus Campak ke dalam telin$a ten$a!% Gendan$ telin$a #iasana !peremia pada fase prodormal dan stadium erupsi% 4ika terjadi invasi

positi untuk (at bermuatan negati !anoda#. 3lektrolit dalam jam lemon bertenaga adalah asam sitrat. erakan elektron dimulai ketika lapisan seng pada salah satu paku

Dalam rancangan tampilan ini terdapat 2 button yang dapat dipilih oleh pengguna, yaitu button1 merupakan tombol informasi yang berfungsi untuk masuk ke dalam halaman

Ide dalam penelitian ini berawal dari Sistem Informasi Sinode Wilayah GKI (SISWA GKI) yang akan menggunakan banyak platform pada sistem tersebut, seperti web, desktop,

Q: Nilai rata-rata UN murni saya kurang dari yang disyaratkan dan saya tidak memiliki sertifikat JLPT, apakah saya bisa tetap mendaftar?. A: