Linked List Dalam Bahasa C++
I. Pengertian
Dalam
masa sekarang ini kita dituntut untuk berpikir cerdas dalam menentukan
metode yang kita butuhkan sebelum merancang sebuah program, termasuk
dalam hal pengefisienan data. Kebutuhan yang kompleks menuntut semakin
bertambahnya data pada sebuah system. jika diumpamakan, pada sebuah
system yang memiliki jumlah record yang banyak, dan setiap record
memiliki data yang cukup besar,kita tidak mungkin mengedit satu data
kedata lainnya, cara tersebut sangat rumit dan banyak menghabiskan waktu
user, maka dari itu diperlukan suatu metode dalam mengurutkan jumlah
data agar menjadi satu kesatuan dan tentunya saling berhubungan,salah
satu metodenya ialah linked list. Linked List atau yang sering dikenal
dengan senari berantai merupakan salah satu metode pembelajaran dalam
bahasa C,linked list dapat diartikan sebagai rantai data yang saling
berhubungan antara satu dengan yang lainnya agar mempermudah dalam
mengedit field data yang tersimpan dalam jumlah yang sangat kompleks.
Dalam linked list terdapat istilah node” yang berarti kumpulan
elemen-elemen dan terkait yang terdapat pada linked list. Sebelum
memahami linked list kita hendaknya terlebih dahulu memahami apa itu
node, node pada linked list dibagi menjadi 2 bagian yaitu bagian data
dan penghantar data atau yang di kenal dengan nama pointer”. Untuk lebih jelasnya, node terlihat pada gambar di bawah ini:
Dari
gambar diatas diilustrasikan beberapa node, setiap node memiliki
masing-masing data dan terdapat pointer yang dijadikan sebagai
penghubung atau penunjuk arah dari satu data ke data yang lainnya. Null
berarti menunjukan suatu elemen tidak menunjukan kondisi apapun.
II. Perancangan Linked list
a. 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 .
Contoh Rancangan sintaknya seperti berikut :
struct tnode
{
int cobalink;
struct tnode *next;
}
Penjelasannya :
*Pendeklrasian next sebagai pointer yang dijadikan penghubung antar node yang saling berkaitan.
Tahapan
selanjutnya mendeklarasikan variable yang bertype struct tnode yang
berfungsi sebagai head,node aktif, linked list,dan node sementara.
Pendeklrasiannya sbb:
struct tnode *head=NULL, *curr=NULL,
*node=NULL;
Untuk membuat single linked list,kita terlebih dahulu harus mengisikan field dengan nilai tertentu(cobalink),
Sintaknya sbb :
for (i=0; i<6;>
{
node = (struct tnode *)
malloc (sizeof(struct tnode));
node -> cobalink = i;
if (head == NULL)
{
head = node;
curr = node;
}else
{
curr -> next = node;
curr = node;
}
}
curr -> next = NULL;
curr = head;
while (curr != NULL)
{
printf(“%d “, curr -> cobalink);
curr = curr -> next;
}
printf(“\n”);
#include
#include
int main()
{
struct tnode
{
int cobalink;
struct tnode *next;
};
struct tnode *head=NULL,
*curr=NULL, *node=NULL;
int i;
for (i=0; i<5;>
{
node = (struct tnode *)
malloc (sizeof(struct tnode));
node -> x = i;
if (head == NULL)
{
head = node;
curr = node;
}else
{
curr -> next = node;
curr = node;
}
}
curr -> next = NULL;
curr = head;
while (curr != NULL)
{
printf(“%d “, curr -> x);
curr = curr -> next;
}
printf(“\n”);
return 0;
}
Penjelasannya :
Kita
membuat perulangan dari 0 – 5,perulangan tersebut akan membentuk 6 node
yang setiap fieldnya (cobalink) akan bernilai 0 – 5,pada sintak
tersebut terdapat perintah “malloc” ,fungsi dari perintah tersebut ialah
memesan alokasi penempatan memori pada program. Setelah itu program
akan menguji apakah head bernilai null (bernilai Null jika head hanya
memiliki satu node), jika keadanya lain ( else ) maka kita akan
menghubungkan pointer next dari node aktif ke node yang baru
(menghubungkan node lama dengan node baru), tahapan berikutnya ialah
menghubungkan pointer next terakhir ke Null,jika sintak sucses di
jalankan maka terbentuklah single list baru, agar lebih jelas dari
pembuktian dari kode tersebut kita mengeceknya dilihat dengan kode yang
berisikan perintah print’.pada sintak tersebut dijelaskan node aktif
diletakkan pada posisi head,setelah itu node aktif di pindahkan ke
posisi sebelumnya dan tahap terakhir kita hanya menambahkan sintak
pemanggilan untuk melakukan dealokasi (ditunjukan dengan sintak à#include …dst hingga selesai..
b. 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 ,
contoh sintak dari metode double linked list ialah sebagai berikut :
struct tnode
{
int cobalink;
struct tnode *prev;
struct tnode *next;
};
struct tnode *head=NULL,
*curr=NULL, *node=NULL,
*tail=NULL;
int i;
for (i=0;i<6;i++)
{
node = (struct tnode *)
malloc (sizeof(struct tnode));
node -> cobalink = i;
if (head == NULL)
{
head = node;
head -> prev = NULL;
curr = node;
}else
{
curr -> next = node;
node -> prev = curr;
curr = node;
}
}
curr -> next = NULL;
tail = curr;
if (head == NULL)
{
head = node;
head -> prev = NULL;
curr = node;
}else
{
curr -> next = node;
node -> prev = curr;
curr = node;
}
curr = head;
while (curr != NULL)
{
printf(“%d “, curr -> cobalink);
curr = curr -> next;
}
printf(“\n”);
curr = tail;
while (curr != NULL)
{
printf(“%d “, curr -> cobalink);
curr = curr -> prev;
}
printf(“\n”);
#include
#include
int main()
{
struct tnode
{
int cobalink;
struct tnode *prev;
struct tnode *next;
};
struct tnode *head=NULL,
*curr=NULL, *node=NULL,
*tail=NULL;
int i;
for (i=0;i<6;i++)
{
node = (struct tnode *)
malloc (sizeof(struct tnode));
node -> cobalink = i;
if (head == NULL)
{
head = node;
head -> prev = NULL;
curr = node;
}else
{
curr -> next = node;
node -> prev = curr;
curr = node;
}
}
curr -> next = NULL;
tail = curr;
curr = head;
while (curr != NULL)
{
printf(“%d “, curr -> cobalink);
curr = curr -> next;
}
printf(“\n”);
curr = tail;
while (curr != NULL)
{
printf(“%d “, curr -> cobalink);
curr = curr -> prev;
}
printf(“\n”);
return 0;
}
Perintah yang ada pada linked list :
- Free
Yaitu
sintak yang berfungsi untuk mengosongkan memori yang telah
teralokasikan sebelumnya, sehingga dalam keadaan tersebut keadaan memori
telah terbebas.
- Malloc
Yaitu salah satu sintak yang berfungsi untuk meminta pengalokasian memori pada sebuah system.
Beberapa operasi yang ada pada linked list :
- Insert
Menambahkan suatu simpul baru ke dalam suatu linked list
- IsEmpty
Menentukan apakah linked list kosong atau masih berisi data
- Find First
Pencaharian elemen pertama dari sebuah linked list
- Find Next
Pencaharian elemen sesudah elemen yang muncul sebelumnya
- Retrieve
Mengambil elemen yang ditunjukan
- Update
Menambah isi dari elemen yang ada sebelumnya
- Delete head
Menghapus elemen yang ditunjukan oleh head
- Clear
sumber : http://erick-roezbiantara.blogspot.com/
1 Komentar untuk "Linked List Dalam Bahasa C/C++"
artikelnya bermanfaat kak, ini sya jga punya artikel tentang Linked List Dalam Bahasa C, smoga dpt saling melengkapi
Linked List Dalam Bahasa C
Kumpulan Materi Bahasa C, Lengkap dengan contoh program