PENGERTIAN LINKED LIST
Linked list adalah sejumlah simpul (node) yang dikaitkan dengan
simpul yang lain dengan bantuan pointer dalam suatu urutan tertentu. Suatu
linked list dikatakan single linked list apabila hanya ada satu pointer yang
menghubungkan setiap node (satu arah “next”).
ATURAN LINKED LIST
Linked list mempunyai aturan:
1. Data harus memiliki hubungan dengan yang lain.
2. Data yang terhubung tidak boleh bercabang.
PERANCANGAN LINKED LIST
1. Single Linked List
Tahapan pertama ialah membuat struct (karena setiap node akan
berbentuk struct) Dan memiliki satu buah fungsi pointer juga bertype struct
yang akan menghubungkan setiap node .
2. Double Linked List
Lain Halnya dengan single List, double Linked List adalah suatu
linked list yang mempunyai 2 penunjuk ke data sebelumnya dan berikutnya,
memiliki 2 buah pointer, setiap node akan terhubung dengan pointer kanan dan
kiri.
PENJELASAN MENYIMPAN DATA PADA LINKED LIST
1 → 3 → 5 → 6 → 2 → 7
Pada linked list di atas, masing-masing data mempunyai hubungan
dengan data lain. Untuk bisa benar-benar menggunakan metode linked list, kita
harus mematuhi peraturan linked list. Setelah itu, kita harus menetapkan di
mana posisi head dan null berada.
Head merupakan data yang tidak memiliki hubungan di belakang, sedangkan null
merupakan data yang paling terakhir atau yang tidak memiliki hubungan di
depannya. Setiap data harus memiliki hubungan dengan data yang lain.
struct node
{
int data;
node* next;
};
PENJELASAN MENYISIPAKAN DATA PADA LINKED LIST
1 → 3 → 5 → 6 → 2 → 7
Melakukan penyisipan data pada linked list di atas, dilakukan
dengan cara menghapus rantai hubungan terlebih dahulu lalu memberikan angka
baru dan selanjutnya memberikan rantai hubungan baru.
Jika data di tambahkan di tengah.
Misal kita akan memberi angka 2 di antara angka 1 dan 3. Maka
mula-mula kita harus memutus rantai hubungan antara angka 1 dan 3. Setelah itu
kita memberikan rantai hubungan baru dari angka satu menuju angka 2, dan dari
angka 2 menuju angka 3.
1è 2 è 3 → 5 → 6 → 2 → 7
Jika data di tambahkan di awal.
Misal kita akan memberi angka 8 di awal. Maka mula-mula kita
harus menambahkan angka 8 di awal. Lalu setelah itu memindah posisi head ke
angka 8 karena angka 8 merupakan data yang pertama. Selanjutnya kita harus
menghubungkan angka 8 dengan angka 1 dengan menambahkan rantai hubungan antara
angka 8 dan angka 1.
8 è 1 → 3 → 5 → 6 →
2 → 7
Jika data di tambahkan di akhir.
Misal kita akan memberi angka 9 di akhir. Maka kita perlu
melakukan pemindahan null, karena null
merupakan penanda akhir data.
Jadi mula-mula kita harus memberikan angka 9 setelah angka 7.
Lalu menggeser posisi null ke posisi 9. Terakhir kita
harus menghubungkan angka 9 dengan angka 7 dengan memberikan rantai hubungan
antara angka 9 dan angka 7.
1 → 3 → 5 → 6 → 2 → 7è 9
MENGHAPUS DATA PADA
LINKED LIST
4 → 1 → 3 → 5 → 6 → 8 → 10 → 2 → 7 → 0 → 11
Misal kita akan pelakukan penghapusan pada angka 5, angka 4, dan
angka 11. Maka yang kita lakukan tidaklah menghapus angka-angka tersebut secara
fisik, melainkan hanya melakukan pembelokkan arah sehingga angka-angka tersebut
tidak memiliki hubungan dengan angka sebelum atau sesudahnya.
Pertama kita akan menghapus angka 5. Jadi yang kita lakukan
cukup melakukan pembelokkan arah pada angka 5. Maksudnya, rantai hubungan yang
menuju angka 5 ( setelah angka 3 ) di buat berbelok dan tidak menuju angka 5.
Kita buat rantai tersebut menuju langsung ke angka setelah 5 yaitu angka 6.
Lalu rantai hubungan setelah angka 5 kita hapus.
Dengan begitu angka 5 masih ada secara fisik, tetapi tidak ada
secara tampilan. Karena memang angka 5 berubah sifatnya menjadi hidden atau
tersembunyi. Itu disebabkan angka 5 tidak di deklarasikan oleh rantai hubungan.
Kedua kita akan menghapus angka 4. Untuk menghapus angka 4,
caranya masih sama seperti menghilangkan angka 5. Tetapi pada angka 4 kita
mempunyai tambahan langkah. Yakni memindah posisi head ke
angka selanjutnya yaitu angka 1.
Setelah memindah head, kita cukup
menghilangkan rantai penghubung setelah angka 4 yang menuju angka 1. Dengan
begitu angka 4 kini sama dengan angka 5, yaitu tersembunyi dan tidak di
deklarasikan.
Ketiga kita akan menghapus angka 11. Untuk menghapus angka 11,
caranya mirip dengan menghapus angka 4. Tetapi yang kita pindah bukanlah head tapi null yang
berada di angka 11. Itu dikarenakan angka 11 merupakan angka terakhir dan
mempunyai null sebagai penanda.
Setelah memindah null ke angka
sebelumnya yakni 0. Maka kita harus menghapus rantai penghubung sebelum angka
11 yaitu setelah angka 0. Dengan begitu angka 11 menjadi tidak terdeklarasikan
dan tersembunyi.
Begitulah bagaimana cara menghapus angka yang berada di awal,
tengah, dan juga akhir. Secara fisik angka-angka tersebut tidak terhapus, hanya
saja angka tersebut dibuat tersembunyi dan tidak dideklarasikan.
MENGHAPUS DATA PADA
LINKED LIST
3 → 5 → 10 → 7 → 0
Misal kita akan melakukan pembelokkan pada data di atas. Maka
kita harus melakukan proses
menghapus / memutuskan
node 10 ke 7 dan 7 ke 0.
Kemudian membelokan
node dari 10 ke 0.
Kemudian membelokan
node 0 ke 7, blok 7 menjadi NULL karena data terakhir.