SOAL
Jelaskan beberapa hal terkait dengan
Struktur Data jenis Senarai Berantai (Linked List), antara lain meliputi :
A.
Pengertian
B.
Jenis-jenis Linked List
C.
Beberapa jenis operasi yang terdapat
didalamnya
D.
Algoritma dan contoh program untuk
operasi didalamnya.
JAWAB
A.
Pengertian Linked List
Linked List atau dikenal juga dengan
sebutan senarai berantai adalah struktur data yang terdiri dari urutan record
data dimana setiap record memiliki field yang menyimpan alamat/referensi dari
record selanjutnya (dalam urutan). Elemen data yang dihubungkan dengan link
pada Linked List disebut Node. Biasanya didalam suatu linked list, terdapat
istilah head dan tail.
1.
Head
adalah elemen yang berada pada posisi pertama dalam suatu linked list.
2.
Tail
adalah elemen yang berada pada posisi terakhir dalam suatu linked list.
B.
Jenis-jenis Linked List
Ada beberapa macam Linked List, yaitu :
1. Single Linked List
Single
Linked List merupakan suatu linked list yang hanya memiliki satu variabel
pointer saja. Dimana pointer tersebut menunjuk ke node selanjutnya. Biasanya
field pada tail menunjuk ke NULL.
Contoh :
Contoh codingannya :
struct Mahasiswa{
char nama[25];
int usia;
struct Mahasiswa *next;
}*head,*tail;
2. Double Linked List
Double Linked List merupakan suatu
linked list yang memiliki dua variabel pointer yaitu pointer yang menunjuk ke
node selanjutnya dan pointer yang menunjuk ke node sebelumnya. Setiap head dan
tailnya juga menunjuk ke NULL.
Contoh :
Contoh codingannya :
struct Mahasiwa{
char nama[25];
int usia;
struct Mahasiswa *next,*prev;
}*head,*tail;
3. Circular Linked List
Circular
Linked List merupakan suatu linked list dimana tail (node terakhir) menunjuk ke
head (node pertama). Jadi tidak ada pointer yang menunjuk NULL. Ada 2 jenis
Circular Linked List, yaitu :
a. Circular
Single Linked List
b.
Circular Double Linked List
4. Multiple Linked List
Multiple
Linked List merupakan suatu linked list yang memiliki lebih dar 2 buat variabel
pointer. Contoh :
C.
Beberapa jenis operasi yang terdapat
didalamnya
1.
Operasi Pada Single Linked List
a.
Insert = Istilah Insert berarti menambahkan sebuah
simpul baru ke dalam suatu linked list.
b.
Konstruktor = Fungsi ini membuat sebuah linked list yang
baru dan masih kosong.
c.
IsEmpty = Fungsi ini menentukan apakah linked list kosong atau
tidak.
d.
Find
First = Fungsi ini mencari elemen
pertama dari linked list.
e.
Find
Next = Fungsi ini mencari elemen sesudah
elemen yang ditunjuk now.
f.
Retrieve = Fungsi ini mengambil elemen yang
ditunjuk oleh now. Elemen tersebut lalu dikembalikan oleh fungsi.
g.
Update = Fungsi ini mengubah elemen yang ditunjuk oleh
now dengan isi dari sesuatu.
h.
Delete
Now = Fungsi ini menghapus elemen yang ditunjuk oleh now.
Jika yang di hapus adalah elemen pertama dari linked list (head), head
akan berpindah ke elemen berikut.
2. Operasi – operasi pada Double Linked
List
a. Insert Tail = Fungsi insert tail berguna untuk menambah simpul di
belakang (sebelah kanan) pada sebuah linked list.
b. Insert Head = Sesuai dengan namanya, fungsi Insert Head
berguna untuk menambah simpul di depan (sebelah kiri). Fungsi ini tidak berada
jauh dengan fungsi Insert Tail yang telah dijelaskan sebelumnya.
c. Delete Tail = Fungsi Delete Tail berguna untuk menghapus simpul
dari belakang. Fungsi ini merupakan kebalikan dari fungsi Insert Tail yang menambah
simpul di belakang. Fungsi Delete Tail akan mengarahkan Now kepada Tail dan
kemudian memanggil fungsi Delete Now.
d. Delete Head = Fungsi Delete Head merupakan kebalikan
dari fungsi Delete Tail yang menghapus simpul dari belakang, sedangkan
Delete Head akan menghapus simpul dari depan (sebelah kiri).
Fungsi Delete Head akan mengarahkan Now kepada Head
dan kemudian memanggil fungsi Delete Now.
D.
Algoritma dan contoh program untuk
operasi didalamnya.
1.
Contoh
penggunaan malloc:
int *px = (int *) malloc(sizeof(int));
char *pc = (char *) malloc(sizeof(char));
struct Facebook *curr = (structFacebook*)malloc(sizeof(struct
Facebook));
2. Insert dan Delete Node dalam Single
Linked List
Insert (push) dan
delete (pop) node pada linked list dapat dilakukan pada posisi depan (head),
tengah (mid) dan belakang (tail).
a.
Insert (Push)
Contoh codingan
push depan :
Contoh codingan push
belakang :
b.
Delete (Pop)
Contoh codingan pop
depan :
Contoh codingan pop belakang :
3. Insert dan Delete Node dalam Double
Linked List
Insert (push) dan
delete (pop) node pada linked list dapat dilakukan pada posisi depan (head),
tengah (mid) dan belakang (tail).
a.
Insert (Push)
Contoh codingan
push depan :
Contoh codingan push belakang :
b.
Delete (Pop)
Contoh codingan pop
depan :
Contoh codingan pop
belakang :
4. Contoh codingan priority queue :
Referensi :