senarai berantai (linked list)

14
SENARAI BERANTAI (LINKED LIST) Fajrizal

Upload: roxy

Post on 16-Jan-2016

69 views

Category:

Documents


0 download

DESCRIPTION

SENARAI BERANTAI (LINKED LIST). Fajrizal. Senarai / list adalah : Kumpulan linear sejumlah data Atau ; Kumpulan komponen yg disusun secara berurutan dengan bantuan pointer. Masing-masing komponen dinamakan dengan simpul (node). Setiap simpul dalam senarai berantai terbagi menjadi dua, - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: SENARAI BERANTAI (LINKED LIST)

SENARAI BERANTAI(LINKED LIST)

Fajrizal

Page 2: SENARAI BERANTAI (LINKED LIST)

Senarai / list adalah :Kumpulan linear sejumlah dataAtau ;Kumpulan komponen yg disusun secara berurutan dengan bantuan pointer.

Masing-masing komponen dinamakan dengan simpul (node).Setiap simpul dalam senarai berantai terbagi menjadi dua,* bagian pertama disebut medan informasi* bagian kedua disebut medan penyambung (

linked list)

Page 3: SENARAI BERANTAI (LINKED LIST)

Contoh senarai berantai dengan 6 simpul :

Awal

A B C D E F

Medan informasi dari simpul kedua

Medan penyambung dari simpul kedua

Page 4: SENARAI BERANTAI (LINKED LIST)

PENYAJIAN SENARAI BERANTAI

2

C 5

A 6

D 10

B 1

F 0

E 8

INFO SAMBUNGAN

2

1

3

4

5

6

7

8

9

10

Awal

Habis

Page 5: SENARAI BERANTAI (LINKED LIST)

7

Toni Subagio 12345 84/85 L 9

Budiman 6745 86/87 L 6

Purwanto 7001 85/86 L 0

Bambang 12123 83/84 L 11

Estiyati 6501 84/85 P 13

Amir 12211 83/84 L 5

Widodo 12111 83/84 L 0

Danang 12432 84/85 L 1

Jati 7201 86/87 L 4

NAMA NOMOR

2

1

3

4

5

6

7

8

9

10

TEK

ANGK SEX SAMBUNGAN

11

12

13

14

2

EKON

Page 6: SENARAI BERANTAI (LINKED LIST)

OPERASI PADA SENARAI BERANTAI

1. Menambah SimpulMenggunakan Deklarasi Pointer

type simpul = ^Data;Data = record

info : string;Berikut : Simpul;

end;

var Elemen : string; Awal, Akhir, Baru : Simpul;

Page 7: SENARAI BERANTAI (LINKED LIST)

A B C D F

Awal Akhir Baru

A B C D F

Awal Akhir Baru

A B C D F

Awal Akhir Baru

a. Menambah di belakang

Page 8: SENARAI BERANTAI (LINKED LIST)

• Procedure untuk menambah simpul di belakang :

procedure TAMBAH_BELAKANG ( var awal, akhir : simpul;elemen : string);var baru : simpul ;begin

new (baru); baru^.info := elemen ;if awal = nil then senarai masih kosong

awal := baruelse

akhir^.berikut := baru ;akhir := baru;akhir^.berikut := nil

end;

Page 9: SENARAI BERANTAI (LINKED LIST)

A B C D F

Baru Akhir

A B C D F

Baru Akhir

A B C D F

Baru Akhir

b. Menambah di depan

Awal

Awal

Awal

Page 10: SENARAI BERANTAI (LINKED LIST)

• Procedure untuk menambah simpul di depan :

procedure TAMBAH_DEPAN ( var awal, akhir : simpul;elemen : string);var baru : simpul ;begin

new (baru); baru^.info := elemen ;if awal = nil then senarai masih kosong

akhir := baruelse

baru^.berikut := awal ;awal := baru;

end;

Page 11: SENARAI BERANTAI (LINKED LIST)

A B D F

Awal Akhir

c. Menambah di tengah

C

Bantu

Baru

A B D F

Awal Akhir

C

Bantu

Baru

A B D F

Awal Akhir

C

Bantu

Baru

Page 12: SENARAI BERANTAI (LINKED LIST)

• Procedure untuk menambah simpul di tengah :

procedure TAMBAH_TENGAH ( var awal, akhir : simpul;elemen : char);var baru, bantu : simpul ;begin

new (baru); baru^.info := elemen ;if awal = nil then senarai masih kosong

beginawal := baru;akhir := baru

endelse

begin { mencari lokasi yg sesuai }bantu := awal;while elemen > baru^.berikut^.info dobantu := bantu^.berikut;

{ menyisipkan simpul baru}baru^.berikut := bantu^.berikut ;bantu^.berikut := baru;end;

end;

Page 13: SENARAI BERANTAI (LINKED LIST)

2. Menghapus Simpul

A B C D E

Awal Bantu Akhir

B C D E

Awal Akhir

a. Menghapus simpul pertama

A B C D E

Bantu Awal Akhir

Page 14: SENARAI BERANTAI (LINKED LIST)

A B C D E

Awal Bantu Akhir

A B D E

Awal Akhir

b. Menghapus simpul di tengah / terakhir

Hapus

A B C D E

Awal Bantu AkhirHapus