LINKED LIST Linked list atau senatai berantai adalah kunpulan liniar sejumlah data , atau kumpulan komponen yang disusun secara berurutan pointer. Masing-masing komponen dinamakan dengan simpul (node). Simpul dalam suatu Linked list terbagi menjadi dua bagian yaitu medan informasi yang berisi informasi yang akan disimpan dan diolah, dan medan penyambung (Link field) yang berisi simpul berikutnya. Ada sejumlah operasi yang bisa kita lakukan pada sebuah Linked list yaitu membaca isi link, menambah simpul, menghapus simpul dan mencari informasi pada Linked list . 1. Menambah simpul Operasi menambah simpul bisa dipecah berdasarkan posisi simpul dabu yang akan di sisipkan, yaitu simpul baru selalu diletakkan sebagai simpul pertama, dan simpul baru menyisip diantara kedua simpul yang sudah ada. Berikut contohnya : type Simpul = ^Data ; Data = record Info : char ; Berikut : Simpul ; end ; var Element : char ; Awal, Akhir, Baru : Simpul ; 2. Menambah di Belakang 1 Edwin Wirencius - 52007012 – Struktur Data - Senerai
18
Embed
Linked List Atau Senatai Berantai Adalah Kunpulan Liniar Sejumlah Data
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
LINKED LIST
Linked list atau senatai berantai adalah kunpulan liniar sejumlah data , atau kumpulan
komponen yang disusun secara berurutan pointer. Masing-masing komponen
dinamakan dengan simpul (node). Simpul dalam suatu Linked list terbagi menjadi dua
bagian yaitu medan informasi yang berisi informasi yang akan disimpan dan diolah,
dan medan penyambung (Link field) yang berisi simpul berikutnya. Ada sejumlah
operasi yang bisa kita lakukan pada sebuah Linked list yaitu membaca isi link,
menambah simpul, menghapus simpul dan mencari informasi pada Linked list .
1. Menambah simpul
Operasi menambah simpul bisa dipecah berdasarkan posisi simpul dabu yang akan
di sisipkan, yaitu simpul baru selalu diletakkan sebagai simpul pertama, dan simpul
baru menyisip diantara kedua simpul yang sudah ada. Berikut contohnya :
type Simpul = ^Data ;
Data = record
Info : char ;
Berikut : Simpul ;
end ;
var Element : char ;
Awal, Akhir, Baru : Simpul ;
2. Menambah di Belakang
Operasi penambahan simpul pada Linked list adalah penambahan suatu Linked list.
Simpul-simpul abru yang ditambahkan selalu menjadi sipmpul terakhir.
Prosedur yang bisa dipanggil dengan memanggil prosedur :
TAMBAH_BELAKANG (Awal, Akhir, Elemen);
Program selengkapnya adalah :
procedure TAMBAH_BELAKANG (var Awal, Akhir : Simpul ;
Elemen : char ) ;
var Baru : Simpul ;
1Edwin Wirencius - 52007012 – Struktur Data - Senerai
begin
new (Baru) ; Baru^.Info :=Elemen;
if Awal = nil then
Awal := Baru
else
Akhir^.Berikut := Baru;
Akhir := Baru;
Akhir^.Berikut := nil
end ;
Senarai Berantai Biasa (Tambah diakhir)
3. Menambah didepan
Operasi penambahan simpul baru akan selalu diletakkan diawal link. Prosedur
untuk menambah simpul bisa dipanggil dengan menggunakan :
TAMBAH_DEPAN (Awal, Akhir, Elemen);
Program selengkapnya adalah :
procedure TAMBAH_DEPAN (var Awal, Akhir : Simpul ;
Elemen : char ) ;
var Baru : Simpul ;
begin
new (Baru) ; Baru^.Info :=Elemen;
if Awal = nil then
Akhir := Baru
else
Baru^.Berikut := Awal;
2Edwin Wirencius - 52007012 – Struktur Data - Senerai
Awal := Baru;
end ;
Senarai Berantai Biasa (Tambah depan)
4. menambah ditengah
Untuk menembah ditengan linked list memerlukan memerlukan bantuan pointer
misalnya bantu, perhatikan contoh program berikut ;
procedure TAMBAH_TENGAH(var Awal, Akhir : Simpul ;
Elemen : char ) ;
var Baru, Bantu : Simpul ;
begin
new (Baru) ; Baru^.Info :=Elemen;
if Awal = nil then
begin
Awal := Baru;
Akhir := Baru;
end;
else
begin
Bantu := Awal;
while Elemen > Baru^.Berikut^.Info do
Bantu := Bantu^.Berikut;
Baru^.Berikut := Bantu^.Berikut;
Bantu^.Berikut := Baru;
end;
3Edwin Wirencius - 52007012 – Struktur Data - Senerai
end ;
Senarai Berantai Biasa (Tambah ditengah)
5. Menghapus Simpul
Operaasi kedua yang akan dijelaskan adalah operasi menghapus simpul. Dalam
menghapus simpul ada suatu hal yang perlu diperhatikan, yaitu bahwa simpul yang bias
dihapus adalah simpul yang berada sesudah simpul yang ditunjukan oleh suatu pointer,
kecuali untuk simpul pertama. Dengan demikian kita tidak bias menghapus simpul yang
ditunjuk oleh suatu pointer atau simpul sebelumnya.
6. Menghapus simpul pertama
Untuk menghapus simpul pertama, maka pointer bantu kita dibuat sama dengan
pointer awal. Kemudian pointer awal kita pindah kesimpul yang ditunjuk oleh pointer
pada simpul yang ditunjuk oleh pointer Bantu. Selanjutnya, simpul yng ditunjuk oleh
pointer Bantu kita dispose.
7. Menghapus simpul ditengah atau terakhir.
Untuk menghapus simpul yang berada di tengah senarai berantai, pertama kali
kita letakan pointer Bantu pada simpul di sebelah kiri simpul yang akan dihapus. Simpul
yang akan dihapus kita tunjuk dengan pointer lain. Kemudian, pointer pada simpul yang
ditunjuk oleh Bantu kita tunjukan pada simpul yang ditunju oleh pointer pada simpul
yang akan dihapus. Selanjutnya simpul yang ditunjuk oleh pointer hapus kita dispose.
4Edwin Wirencius - 52007012 – Struktur Data - Senerai
8. Senarai berantai berkepala
Suatu saat kita perlu meletakan sebuah simpul sebagai simpul pertama dari
sebuah senarai berantai untuk maksud-maksud tertentu. Simpul ini tidak berisi
informasi seperti halnya simpul-simpul lain dalam senarai berantai, tapi keberadaannya
sangat diperlukanuntuk lebih mempercepat proses eksekusi. Simpul yang demikian
disebut dengan simpul kepala (Header Lode) sehingga senarai berantai disebut senarai
berantai berkepala (Headed Linked-List)
Senarai Berantai Berkepala
9. Senarai berantai sebagai tumpukan.
Operasi penambahan simpul baru diawal suatu senarai berantai, sehingga
simpul baru adalah sebagai simpul pertama (harap dibedakan antara simpul kepala dan
simpul pertama), serupa dengan operasi mempush (memasukan elemen kedalam
suatu tumpukan. Dalam kedua kasus ini, elemen baru yang ditambahkan adalah satu-
satunya elemen dalam kumpulan elemen yang bisa segera dimasuk. Tumpukan hanya
bisa dimasuk lewat elemen pertama yang menempati posisi teratas dalam tumpukan,
dan senarai berantai hanya bisa dimasuk lewat pointer yang menuju ke elemen
pertama. Demikian juga halnya dengan operasi POP (menghapus elemen dari suatu
tumpukan). Dalam kedua kasus ini hanya elemen pertama yang bisa dimasuk
(dihapus), dan elemen berikutnya menjasi elemen baru yang bisa segera dimasuk
setelah elemen sebelumnya di POP.
Dengan demikian kita bisa menyejikan tumpukan dengan cara lain, yaitu dengan
senarai berantai linear. Elemen pertama dalam senarai berantai diperlakukan sebagai
elemen teratas dari tumpukan. Dengan mengacu pada prosedur PUSH dan POP kita
5Edwin Wirencius - 52007012 – Struktur Data - Senerai
bisa menyusun prosedur PUSH dan POP yang baru dengan mengingat bahwa kita
ingin menyajikan tumpukan menggunakan senarai berantai.