senarai berantai (linked list)
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 PresentationTRANSCRIPT
SENARAI BERANTAI(LINKED LIST)
Fajrizal
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)
Contoh senarai berantai dengan 6 simpul :
Awal
A B C D E F
Medan informasi dari simpul kedua
Medan penyambung dari simpul kedua
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
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
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;
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
• 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;
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
• 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;
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
• 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;
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
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