Sie sind auf Seite 1von 5

HANDOUT 10 (LAB) – LINKED LIST

Thursday, June 27th 2019


1.30 pm – 3.10 pm
Lecturer: Agnes I.S (agnesirenes@ieee.org)

Data Next

menyimpan data node menyimpan alamat node berikutnya

I. SIMPUL (NODE)

Simpul / node dibentuk mendefinisikan simpul (node) ke dalam bentuk structure


struct Node
{
char data;
Node *next;
};

II. DEKLARASI POINTER HEAD

Pointer head digunakan untuk menunjuk simpul awal (head). Pointer head dideklarasikan dengan
tipe data structure node yang telah didefiniskan sebelumnya. Pointer head didefinisikan dengan
nilai NULL.

Node *head = NULL;

III. INSERT ELEMEN DI AWAL

Prosedur insertFirst (input d : data)

Definisi variabel
ptr : pointer

Rincian langkah
New (ptr)
ptr.data  d
ptr.next  head
head  ptr

Page 1 of 5
IV. INSERT ELEMEN DI TENGAH

Prosedur insertPosition (input p: position, d : data)

Definisi variabel
previous, current, new_nose : pointer

Rincian langkah
New (previous)
New (current)
New (new_node)
current  head
for i 1 to less than position
previous  current
current  current.next
end for
new_node.data  d
previous.next  new_node
new_node.next  current

V. INSERT ELEMEN DI AKHIR

Prosedur insertLast (input d : data)

Definisi variabel
temp, ptr : pointer

Rincian langkah
New (ptr)
ptr.data  d
ptr.next  NULL

if head equals to NULL


head  ptr
else
New (temp)  head
while temp.next is not NULL
temp  temp.next
temp.next  ptr
end if

VI. CETAK ELEMEN LIST

Prosedur Print

Definisi variabel
ptr : pointer
sum : integer

Page 2 of 5
Rincian langkah
if head equals to NULL
then write (“List is empty”)
else
New (ptr)
ptr  head
sum  0
for i  1 to ptr is not NULL
then write ptr.data
ptr  ptr.next
sum++
end for
write ("List size : ")
write sum
end if

LATIHAN 1
Buatlah sebuah program linked list dalam bahasa pemrograman C++ dengan fungsi yang dapat
menambah elemen di awal, di tengah, dan di akhir, dan kemudian mencetak elemen tersebut.
(Gunakan langkah 1 – 5) yang telah dijelaskan di atas.

VII. DELETE ELEMEN DI AWAL

Prosedur deleteFirst (input d : data)

Definisi variabel
ptr : pointer

Rincian langkah
if head equals to NULL
then write ("List kosong")
else
New (ptr)  head
head  head.next
free(ptr)
end if

VIII. DELETE ELEMEN DI TENGAH

Prosedur deletePosition (input p : position)

Definisi variabel
previous, current : pointer

Rincian langkah
New (previous)
New (current)
current  head
for i  1 to less than position
previous  current
current  current.next
end for
Page 3 of 5
previous.next  current.next

IX. DELETE ELEMEN DI AKHIR

Prosedur deleteLast

Definisi variabel
ptr, prev : pointer

Rincian langkah
if head equals to NULL
then write (“List kosong”)
else if head.next is equals to NULL
ptr  head
head  NULL
free ptr
else
New(prev)
ptr  head
while ptr.next is not NULL
prev  ptr
ptr  ptr.next
end while
prev.next  NULL
free ptr
end if

LATIHAN 2
Buatlah sebuah program linked list dalam bahasa pemrograman C++ dengan fungsi yang dapat
menambah dan menghapus elemen di awal, di tengah, di akhir, dan kemudian mencetak elemen
tersebut. (Gunakan langkah 1 – 9) yang telah dijelaskan di atas.

LATIHAN 3 (KISI – KISI UAS)


Buatlah sebuah program C++ yang menghitung rata – rata kumpulan bilangan pada setiap
penambahan bilangan dan penghapusan bilangan menggunakan konsep linked list. Apabila
program dijalankan maka akan menghasilkan output berikut.

Page 4 of 5
Page 5 of 5