Rabu, 02 Mei 2018

LINKED LIST ATAU SENARAI BERANTAI


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 :
Sucianti, Novi. 2014. STRUKTUR DATA – Linked List. From http://suciantinovi.blogspot.co.id/2014/03/linked-list-i_14. html. 15 Maret 2014.
Juniawan, Aditia. 2016. Operasi-operasi Dasar Single dan Double Linked List. From http://temanbukuku.blogspot.co.id/2016/ 01/operasi-operasi-dasar-single-dan-double.html. 30 Januari 2016.

0 komentar:

Posting Komentar

Template by:

Free Blog Templates