Anda di halaman 1dari 9

Fakultas Komputer Agung Kurniman Putra

SECTION 3

Single Linked List


Agung Kurniman Putra
185100036
Fakultas Komputer
agungkurnimanputra.student@umitra.ac.id

Abstract

Single Linked List

Linked List adalah salah satu bentuk struktur data, berisi kumpulan data
(node) yang tersusun secara sekuensial, saling sambungmenyambung,
dinamis dan terbatas.
- Linked List sering disebut juga Senarai Berantai
- Linked List saling terhubung dengan bantuan variabel pointer
- Masing-masing data dalam Linked List disebut dengan node (simpul) yang
menempati alokasi memori secara dinamis dan biasanya berupa struct
yang terdiri dari beberapa field.

Single Linked List adalah sebuah LINKED LIST yang menggunakan sebuah variabel
pointer saja untuk menyimpan banyak data dengan metode LINKED LIST, suatu
daftar isi yang saling berhubungan.
Single Linked List adalah sekumpulan dari node yang saling terhubung dengan node
lain melalui sebuah pointer.
Single Linked List hanya memiliki satu arah dan tidak memiliki dua arah atau bulak
balik, dua arah tersebut disebut dengan double linked list.

Pada Implementasinya, Single Linked List terdapat dua variasi yaitu circular dan non-
circular.

Kata Kunci : Single Linked List

1
Fakultas Komputer Agung Kurniman Putra
SECTION 3

A. PENDAHULUAN Non Linier : Pohon Biner dan


Graph
Apabila setiap kali anda ingin Pemakaian struktur data yang
menambahkan data anda selalu tepat di dalam proses
menggunakan pointer yang pemrograman akan
baru, anda akan membutuhkan menghasilkan algoritma yang
banyak sekali variable pointer lebih jelas dan tepat, sehingga
(penunjuk). Oleh karena itu, menjadikan program secara
ada baiknya jika anda hanya keseluruhan lebih efisien dan
menggunakan satu variabel sederhana. Struktur data yang
pointer saja untuk menyimpan ″standar″ yang biasanya
banyak data dengan metode digunakan dibidang
yang kita sebut linked list. Jika informatika adalah :
kita terjemahkan, ini berarti
suatu daftar isi yang saling  List linier (Linked List)
berhubungan. dan variasinya
Struktur data adalah cara  Multilist
menyimpan atau  Stack (Tumpukan)
merepresentasikan data di  Queue (Antrian)
dalam komputer agar bisa  Tree ( Pohon )
dipakai secara efisien  Graph ( Graf )
Sedangkan data adalah
representasi dari fakta dunia
nyata. Fakta atau keterangan Salah satu bentuk struktur data
tentang kenyataan yang yang berisi kumpulan data
disimpan, direkam atau yang tersusun secara
direpresentasikan dalam bentuk sekuensial, saling
tulisan, suara, gambar, sinyal bersambungan, dinamis dan
atau symbol. Secara garis terbatas adalah linked list
besar type data dapat (senarai berkait). Suatu linked
dikategorikan menjadi : list adalah suatu simpul (node)
1. Type data sederhana yang dikaitkan dengan simpul
a. Type data sederhana yang lain dalam suatu urutan
tunggal, misalnya Integer, real, tertentu. Suatu simpul dapat
boolean dan karakter berbentuk suatu struktur atau
b. Type data sederhana class. Simpul harus mempunyai
majemuk, misalnya String satu atau lebih elemen struktur
2. Struktur Data, meliputi atau class yang berisi data.
a. Struktur data sederhana, Secara teori, linked list adalah
misalnya array dan record sejumlah node yang
b. Struktur data majemuk, dihubungkan secara linier
yang terdiri dari Linier : Stack, dengan bantuan pointer.
Queue, serta List dan Multilist

2
Fakultas Komputer Agung Kurniman Putra
SECTION 3

B. PEMBAHASAN / STUDI
KASUS

Single Linked List

Linked List adalah salah satu


bentuk struktur data, berisi
kumpulan data
(node) yang tersusun secara
sekuensial, saling
sambungmenyambung,
dinamis dan terbatas.
- Linked List sering disebut Pada gambar di atas, data
juga Senarai Berantai terletak pada sebuah lokasi
- Linked List saling terhubung dalam sebuah memory, tempat
dengan bantuan variabel yang disediakan memory untuk
pointer menyimpan data disebut node ?
- Masing-masing data dalam simpul, setiap node memiliki
Linked List disebut dengan pointer ( penunjuk ) yang
node (simpul) yang menunjuk ke node berikutnya
menempati alokasi memori sehingga terbentuk suatu
secara dinamis dan biasanya untaian yang disebut single
berupa struct LINKED LIST. Bila dalam
yang terdiri dari beberapa field. single LINKED LIST pointer
hanya dapat bergerak ke satu
Single Linked List adalah arah saja, maju / mundur,
sebuah LINKED LIST yang kanan / kiri, sehingga
menggunakan sebuah variabel pencarian datanya juga hanya
pointer saja untuk menyimpan satu arah saja.
banyak data dengan metode
LINKED LIST, suatu daftar isi SINGLE LINKED LIST
yang saling berhubungan. MENGGUNAKAN HEAD
Ilustrasi single LINKED LIST: DAN TAIL
- Dibutuhkan dua buah variabel
pointer: head dan tail
- Head akan selalu menunjuk
pada node pertama, sedangkan
tail akan
selalu menunjuk pada node
terakhir.

Inisialisasi LinkedList

18
Fakultas Komputer Agung Kurniman Putra
SECTION 3

Penambahan Data di belakang


TNode *head, *tail; Pada penambahan data di
belakang, data akan selalu
Fungsi Inisialisasi LinkedList dikaitkan dengan tail, karena
tail terletak di node paling
void init(){ belakang. Setelah dikaitkan
head = NULL; dengan node baru, maka node
tail = NULL; baru tersebut akan menjadi tail.
}
void tambahBelakang(int
Function untuk mengetahui databaru){ TNode *baru;
kosong tidaknya LinkedList baru = new TNode;
baru->data = databaru;
int isEmpty(){ baru->next = baru;
if(tail == NULL) return 1; if(isEmpty()==1){
else return 0; head=baru;
} tail=baru;
head->next=head;
PENAMBAHAN DATA tail->next=tail;
Pengkaitan node baru ke linked }
list di depan else
Penambahan data baru di depan {
akan selalu menjadi head. tail->next = baru;
tail = baru;
void insertDepan(int tail->next = head;
databaru){ }
TNode *baru; cout<<"Data masuk\n";
baru = new TNode; }
baru->data = databaru;
baru->next = baru; Kelebihan dari Single Linked
if(isEmpty()==1){ List dengan Head & Tail
head=baru; adalah pada penambahan data
tail=baru; di belakang, hanya dibutuhkan
head->next=head; tail yang mengikat node baru
tail->next=tail; saja tanpa harus menggunakan
} perulangan pointer bantu.
else {
baru->next = head; Function untuk menampilkan
head = baru; isi linked list:
tail->next = head;
} void tampil(){ TNode *b;
cout<<"Data masuk\n"; b = head; if(isEmpty()==0)
} {
do
{ cout<data<<" ";

19
Fakultas Komputer Agung Kurniman Putra
SECTION 3

b=b->next; menghapus variabel hapus


} dengan menggunakan perintah
while(b!=tail->next); delete.
cout<<<"Masih kosong\n"; - Jika tail masih NULL maka
} berarti data masih kosong!

Pada prinsipnya sama dengan Function untuk menghapus


function tampil sebelumnya. data di belakang:

Function untuk menghapus Dengan menggunakan Single


data di depan Linked List ber-Head dan Tail,
pengahapusan data di belakang
void hapusDepan(){ TNode akan mudah dilakukan, tidak
*hapus; seperti pada Single Linked List
if (isEmpty()==0){ int d; hanya ber-Head saja.
hapus = head;
d = head->data; void hapusBelakang(){ TNode
if(head != tail){ *hapus,*bantu;
hapus = head; if (isEmpty()==0){ int d;
head = head->next; if(head == tail){ d = tail->data;
tail->next = head; head = NULL;
delete hapus; tail = NULL;
}else{ }
head=NULL; else
tail=NULL; {
} bantu = head;
cout<<<" terhapus\n"; while(bantu->next != tail){
} bantu = bantu->next;
else cout<<"Masih kosong\n"; }
} hapus = tail;
tail = bantu;
- Function di atas akan d = hapus->data;
menghapus data terdepan tail->next = head;
(pertama) yang ditunjuk oleh delete hapus;
head pada linked list }
- Penghapusan node tidak cout<<<" terhapus\n";
boleh dilakukan jika keadaan }
node sedang ditunjuk oleh else cout<<"Masih kosong\n";
pointer, maka harus dilakukan }
penunjukkan terlebih dahulu
dengan variabel hapus pada - Function di atas akan
head, kemudian dilakukan menghapus data terbelakang
pergeseran ke node berikutnya (terakhir) yang ditunjuk oleh
sehingga data setelah head tail pada linked list
menjadi head baru, kemudian

20
Fakultas Komputer Agung Kurniman Putra
SECTION 3

- Penghapusan node tidak - Pada saat pointer hapus


boleh dilakukan jika keadaan menunjuk pada node yang akan
node sedang ditunjuk oleh dihapus, pointer
pointer, maka harus dilakukan bantu akan bergerak ke node
penunjukkan terlebih dahulu selanjutnya, dan kemudian
dengan variabel hapus pada pointer hapus
tail, kemudian dibutuhkan akan di delete.
pointer bantu untuk membantu
pergeseran dari head ke node Dikatakan single (singly)
berikutnya sampai sebelum tail, linked apabila hanya ada satu
sehingga tail dapat ditunjukkan pointer yang menghubungkan
ke bantu tersebut, dan bantu setiap node. single artinya field
tersebut akan menjadi tail yang pointer-nya hanya satu buah
baru. Setelah itu hapus variabel saja dan satu arah.
hapus dengan menggunakan Linked list adalah struktur data
perintah delete. yang paling dasar. Linked list
- Jika tail masih NULL maka terdiri atas sejumlah unsur-
berarti data masih kosong! unsur dikelompokkan, atau
terhubung, bersama-sama di
Function untuk menghapus suatu deret yang spesifik.
semua elemen LinkedList Linked list bermanfaat di
dalam memelihara koleksi-
void clear(){ TNode koleksi data, yang serupa
*bantu,*hapus; dengan array.
if(isEmpty() == 0){ bantu = Bagaimanapun juga, linked list
head; dan array mempunyai
while(bantu->next!=head){ perbedaan. Memakai Linked
hapus = bantu; list lebih bagus dibandingkan
bantu = bantu->next; dengan array/larik baik dalam
delete hapus; banyak hal. Secara rinci, linked
} list lebih efisien di dalam
head = NULL; melaksanakan penyisipan-
tail = NULL; penyisipan dan penghapusan-
} penghapusan. Linked list juga
} menggunakan alokasi
penyimpanan secara dinamis,
- Menggunakan pointer bantu yang merupakan penyimpanan
yang digunakan untuk bergerak yang dialokasikan pada
sepanjang runtime. Karena di dalam
list, dan menggunakan pointer banyak aplikasi, ukuran dari
hapus yang digunakan untuk data itu tidak diketahui pada
menunjuk saat kompile, hal ini bisa
node-node yang akan dihapus. merupakan suatu atribut yang
baik juga. Setiap node akan
berbentuk struct dan memiliki

21
Fakultas Komputer Agung Kurniman Putra
SECTION 3

satu buah field bertipe struct


yang sama, yang berfungsi C. ID SECURITY
sebagai pointer. Dalam QWTD4452377-ASP-5244107
menghubungkan setiap node,
kita dapat menggunakan cara D. KESIMPULAN
first-create-first-access ataupun
first-create-last-access. Yang Simpul adalah semacam tipe
berbeda dengan deklarasi struct data yang kita buat sendiri
sebelumnya adalah satu field sebagaimanan nama tipe yang
bernama next, yang bertipe telah disediakan oleh bahasa
struct tnode. Hal ini sekilas pemrograman.
dapat membingungkan. Info adalah tempat
Namun, satu hal yang jelas, penyimpanan data dengan tipe
variabel next ini akan yang berbeda-beda sesuai
menghubungkan kita dengan keinginan.
node di sebelah kita, yang juga Link adalah tempat
bertipe struct tnode. penyimpanan alamat simpulnya
(pointer).
•Single : artinya field pointer- Linked list adalah sebuah
nya hanya satu buah saja dan struktur untuk menyimpan data
satu arah serta pada akhir node, yang bersifat dinamik
pointernya menunjuk NULL Beberapa operasi dapat
•Linked List : artinya node- diterapkan pada linked list
node tersebut saling terhubung seperti
satu sama lain. sisip(insert),hapus(delete)
•Setiap node pada linked list Operasi-operasi yang ada
mempunyai field yang berisi pada linked list relatif lebih
pointer ke node berikutnya, dan sulit jika dibandingkan dengan
juga memiliki field yang berisi operasi-operasi pada struktur
data. yang statis
•Node terakhir akan menunjuk Null adalah suatu kondisi
ke NULL yang akan digunakan khusus dimana pointer itu
sebagai kondisi berhenti pada belum di set dengan sebuah
saat pembacaan isi linked list.. address tertentu, artinya pointer
tidak mrnunjuk ke alamat
manapun.

22
Fakultas Komputer Agung Kurniman Putra
SECTION 3

E. DISKUSI [5] A. S. Putra,


“COMPREHENSIVE SET OF
Apakah artikel ini sangat PROFESSIONAL FOR
membantu ? DISTRIBUTE COMPUTING.”
[6] A. S. Putra, “DATA
Dwi : Ya sangat membantu ORIENTED RECOGNITION
karna artikel ini sudah cukup IN BORLAND DELPHI 7.0.”
lengkap [7] A. S. Putra, “EMBARCADERO
DELPHI XE 2 IN GPU-
Dwi : Kalo begitu saya akan POWERED FIREMONKEY
bertanya tentang pengertian APPLICATION.”
single linked list? [8] A. S. Putra, “HAK ATAS
KEKAYAAN INTELEKTUAL
Saya; single linked list adalah DALAM DUNIA
salah satu bentuk struktur data, TEKNOLOGY BERBASIS
berisi kumpulan data REVOLUSI INDUSTRI 4.0.”
(node) yang tersusun secara [9] A. S. Putra, “IMPLEMENTASI
sekuensial, saling sambung PERATURAN
menyambung, PERUNDANGAN UU. NO 31
dinamis dan terbatas. TAHUN 2000 TENTANG
DESAIN INDUSTRI
BERBASIS INFORMATION
TECHNOLOGY.”
[10] A. S. Putra,
F. REFERENCE “IMPLEMENTATION OF
PARADOX DBASE.”
[11] A. S. Putra,
[1] O. M. Febriani and A. S. Putra, “IMPLEMENTATION OF
“Sistem Informasi Monitoring TRADE SECRET CASE
Inventori Barang Pada Balai STUDY SAMSUNG MOBILE
Riset Standardisasi Industri PHONE.”
Bandar Lampung,” J. Inform., [12] A. S. Putra,
vol. 13, no. 1, pp. 90–98, 2014. “IMPLEMENTATION
[2] A. S. Putra, “Paperplain: PATENT FOR APPLICATION
Execution Fundamental Create WEB BASED CASE STUDI
Application With Borland WWW. PUBLIKLAMPUNG.
Delphi 7.0 University Of Mitra COM.”
Indonesia,” 2018. [13] A. S. Putra,
[3] A. S. Putra, “2018 Artikel “IMPLEMENTATION
Struktur Data, Audit Dan SYSTEM FIRST TO INVENT
Jaringan Komputer,” 2018. IN DIGITALLY INDUSTRY.”
[4] A. S. Putra, “ALIAS [14] A. S. Putra, “MANUAL
MANAGER USED IN REPORT & INTEGRATED
DATABASE DESKTOP DEVELOPMENT
STUDI CASE DB DEMOS.” ENVIRONMENT BORLAND

23
Fakultas Komputer Agung Kurniman Putra
SECTION 3

DELPHI 7.0.” Online Application in PDAM


[15] A. S. Putra, “PATENT AS Lampung Province,” in
RELEVAN SUPPORT Prosiding International
RESEARCH.” conference on Information
[16] A. S. Putra, “PATENT FOR Technology and Business
RESEARCH STUDY CASE (ICITB), 2018, pp. 181–187.
OF APPLE. Inc.” [26] A. S. Putra, O. M. Febriani, and
[17] A. S. Putra, “PATENT B. Bachry, “Implementasi
PROTECTION FOR Genetic Fuzzy System Untuk
APPLICATION INVENT.” Mengidentifikasi Hasil Curian
[18] A. S. Putra, “QUICK REPORT Kendaraan Bermotor Di Polda
IN PROPERTY Lampung,” SIMADA (Jurnal
PROGRAMMING.” Sist. Inf. dan Manaj. Basis
[19] A. S. Putra, “REVIEW Data), vol. 1, no. 1, pp. 21–30,
CIRCUIT LAYOUT 2018.
COMPONENT [27] A. S. Putra, H. Sukri, and K.
REQUIREMENT ON ASUS Zuhri, “Sistem Monitoring
NOTEBOOK.” Realtime Jaringan Irigasi Desa
[20] A. S. Putra, “REVIEW (JIDES) Dengan Konsep
TRADEMARK PATENT FOR Jaringan Sensor Nirkabel,”
INDUSTRIAL IJEIS (Indonesian J. Electron.
TECHNOLOGY BASED 4.0.” Instrum. Syst., vol. 8, no. 2, pp.
[21] A. S. Putra, “TOOLBAR 221–232.
COMPONENT PALLETTE IN [28] D. P. Sari, O. M. Febriani, and
OBJECT ORIENTED A. S. Putra, “Perancangan
PROGRAMMING.” Sistem Informasi SDM
[22] A. S. Putra, “WORKING Berprestasi pada SD Global
DIRECTORY SET FOR Surya,” in Prosiding Seminar
PARADOX 7.” Nasional Darmajaya, 2018, vol.
[23] A. S. Putra, “ZQUERY 1, no. 1, pp. 289–294.
CONNECTION
IMPLEMENTED
PROGRAMMING STUDI
CASE PT. BANK BCA Tbk.”
[24] A. S. Putra, D. R. Aryanti, and
I. Hartati, “Metode SAW
(Simple Additive Weighting)
sebagai Sistem Pendukung
Keputusan Guru Berprestasi
(Studi Kasus: SMK Global
Surya),” in Prosiding Seminar
Nasional Darmajaya, 2018, vol.
1, no. 1, pp. 85–97.
[25] A. S. Putra and O. M. Febriani,
“Knowledge Management

24

Anda mungkin juga menyukai