Top Banner
LINKed LIST
34

LINKed LIST - widiastuti.staff.gunadarma.ac.idwidiastuti.staff.gunadarma.ac.id/Downloads/files... · Algoritma data • Elemen dalam bahasa algoritma, seperti berikut : type nilaiMatKul

May 01, 2019

Download

Documents

trankhanh
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: LINKed LIST - widiastuti.staff.gunadarma.ac.idwidiastuti.staff.gunadarma.ac.id/Downloads/files... · Algoritma data • Elemen dalam bahasa algoritma, seperti berikut : type nilaiMatKul

LINKed LIST

Page 2: LINKed LIST - widiastuti.staff.gunadarma.ac.idwidiastuti.staff.gunadarma.ac.id/Downloads/files... · Algoritma data • Elemen dalam bahasa algoritma, seperti berikut : type nilaiMatKul

PENGENALAN

• List merupakan sebuah pemikiran/konsep struktur data yang sangat dasar pada pemrograman agar lebih fleksibel.

• Setiap elemen akan ditambahkan saat dibutuhkan, tidak dialokasikan dengan tempat tertentu dari awal.

Page 3: LINKed LIST - widiastuti.staff.gunadarma.ac.idwidiastuti.staff.gunadarma.ac.id/Downloads/files... · Algoritma data • Elemen dalam bahasa algoritma, seperti berikut : type nilaiMatKul

DEFINISI

• suatu kumpulan elemen data (yang disebut sebagai node) dimana urutannya ditentukan oleh suatu pointer.

• Setiap elemen (node) dari suatu linked list terdiri atas dua bagian, yaitu:

• INFO.

• NEXT (link field/next pointer field).

Page 4: LINKed LIST - widiastuti.staff.gunadarma.ac.idwidiastuti.staff.gunadarma.ac.id/Downloads/files... · Algoritma data • Elemen dalam bahasa algoritma, seperti berikut : type nilaiMatKul

CONTOH

Page 5: LINKed LIST - widiastuti.staff.gunadarma.ac.idwidiastuti.staff.gunadarma.ac.id/Downloads/files... · Algoritma data • Elemen dalam bahasa algoritma, seperti berikut : type nilaiMatKul

KERUGIAN

• Dua hal yang menjadi kerugian, yaitu:

• Diperlukan ruang tambahan untuk menyatakan/tempat field pointer.

• Diperlukan waktu yang lebih banyak untuk mencari suatu node dalam linked list.

Page 6: LINKed LIST - widiastuti.staff.gunadarma.ac.idwidiastuti.staff.gunadarma.ac.id/Downloads/files... · Algoritma data • Elemen dalam bahasa algoritma, seperti berikut : type nilaiMatKul

KEUNTUNGAN

• Jenis data yang berbeda dapat di-

link.

• Operasi REMOVE atau INSERT

hanya dilakukan dengan mengubah

pointer-nya saja .

Page 7: LINKed LIST - widiastuti.staff.gunadarma.ac.idwidiastuti.staff.gunadarma.ac.id/Downloads/files... · Algoritma data • Elemen dalam bahasa algoritma, seperti berikut : type nilaiMatKul

Operasi yang dapat terjadi

• NODE (P), artinya node yang ditunjuk oleh pointer P

• INFO (P), artinya nilai INFO dari node yang ditunjuk pointer P

• NEXT (P), artinya hubungan (link) selanjutnya dari node yang ditunjuk oleh pointer P

Page 8: LINKed LIST - widiastuti.staff.gunadarma.ac.idwidiastuti.staff.gunadarma.ac.id/Downloads/files... · Algoritma data • Elemen dalam bahasa algoritma, seperti berikut : type nilaiMatKul

Tanpa logika linked list

• INSERT E

• DELETE C

• INSERT F

• DELETE E

• INSERT G

Page 9: LINKed LIST - widiastuti.staff.gunadarma.ac.idwidiastuti.staff.gunadarma.ac.id/Downloads/files... · Algoritma data • Elemen dalam bahasa algoritma, seperti berikut : type nilaiMatKul

CONTOH

• Misal…

membuat sebuah elemen data nilai mahasiswa yang terdiri dari NRP, nama, dan nilai, maka representasinya adalah sebagai berikut:

94410

NRP

iffa

nama

A

nilai next Penunjuk

ke elemen

berikutnya

Page 10: LINKed LIST - widiastuti.staff.gunadarma.ac.idwidiastuti.staff.gunadarma.ac.id/Downloads/files... · Algoritma data • Elemen dalam bahasa algoritma, seperti berikut : type nilaiMatKul

Algoritma data • Elemen dalam bahasa algoritma, seperti berikut :

type nilaiMatKul :

< NRP : string,

nama : string,

nilai : string >

• Elemen ditambah dengan pengait/penunjuk:

type elemen :

< elmt : nilaiMatKul,

next : elemen >

• Deklarasi listnya sebagai berikut:

type list :

< first : elemen >

Page 11: LINKed LIST - widiastuti.staff.gunadarma.ac.idwidiastuti.staff.gunadarma.ac.id/Downloads/files... · Algoritma data • Elemen dalam bahasa algoritma, seperti berikut : type nilaiMatKul

JENIS LINK LIST • Single Linked List

dapat juga ditulis NULL

• Double Linked List

10 15 20

10 15 20

head

head

prev next

Page 12: LINKed LIST - widiastuti.staff.gunadarma.ac.idwidiastuti.staff.gunadarma.ac.id/Downloads/files... · Algoritma data • Elemen dalam bahasa algoritma, seperti berikut : type nilaiMatKul

OPERASI PADA LIST

Page 13: LINKed LIST - widiastuti.staff.gunadarma.ac.idwidiastuti.staff.gunadarma.ac.id/Downloads/files... · Algoritma data • Elemen dalam bahasa algoritma, seperti berikut : type nilaiMatKul

MEMBUAT ELEMEN LINKED LIST

• Membuat suatu elemen linked list berarti memesan tempat di memori untuk menyimpan sebuah list.

Page 14: LINKed LIST - widiastuti.staff.gunadarma.ac.idwidiastuti.staff.gunadarma.ac.id/Downloads/files... · Algoritma data • Elemen dalam bahasa algoritma, seperti berikut : type nilaiMatKul

PENAMBAHAN ELEMEN POSISI AWAL

• Penambahan elemen di posisi awal adalah menambahkan data baru pada posisi awal, sehingga data baru tersebut akan menjadi awal.

• Ada 2 hal yang harus diperhatikan, yaitu :

• kondisi linked list sedang kosong, atau

• kondisi linked list sudah mempunyai elemen.

Page 15: LINKed LIST - widiastuti.staff.gunadarma.ac.idwidiastuti.staff.gunadarma.ac.id/Downloads/files... · Algoritma data • Elemen dalam bahasa algoritma, seperti berikut : type nilaiMatKul

Kondisi Linked List Sedang Kosong

• Ketika linked list masih kosong, maka variable awal dan akhir akan diisi dengan variable baru.

Page 16: LINKed LIST - widiastuti.staff.gunadarma.ac.idwidiastuti.staff.gunadarma.ac.id/Downloads/files... · Algoritma data • Elemen dalam bahasa algoritma, seperti berikut : type nilaiMatKul

NULL

head

1. List masih kosong (head=NULL)

2. Masukkan data baru, misal 10

10

head

Page 17: LINKed LIST - widiastuti.staff.gunadarma.ac.idwidiastuti.staff.gunadarma.ac.id/Downloads/files... · Algoritma data • Elemen dalam bahasa algoritma, seperti berikut : type nilaiMatKul

Kondisi Linked List ada Elemen.

• Proses penambahannya adalah dengan mengisikan field next milik elemen baru dengan posisi awal linked list, kemudian posisi awal berubah ke posisi baru.

Page 18: LINKed LIST - widiastuti.staff.gunadarma.ac.idwidiastuti.staff.gunadarma.ac.id/Downloads/files... · Algoritma data • Elemen dalam bahasa algoritma, seperti berikut : type nilaiMatKul

15 10

head baru

15 10

head

Masukkan data baru dari depan, misal 15

10

head

15

baru

Page 19: LINKed LIST - widiastuti.staff.gunadarma.ac.idwidiastuti.staff.gunadarma.ac.id/Downloads/files... · Algoritma data • Elemen dalam bahasa algoritma, seperti berikut : type nilaiMatKul

Penambahan Elemen Di Posisi Terakhir

• Penambahan data baru dimana data baru disimpan di posisi terakhir.

• Setelah proses penambahan selesai, maka variabel menunjuk ke data baru tersebut.

Page 20: LINKed LIST - widiastuti.staff.gunadarma.ac.idwidiastuti.staff.gunadarma.ac.id/Downloads/files... · Algoritma data • Elemen dalam bahasa algoritma, seperti berikut : type nilaiMatKul

10 15

bantu head

10 15

head

baru

Masukkan data baru dari belakang, misal 15

10

head

15

baru

Page 21: LINKed LIST - widiastuti.staff.gunadarma.ac.idwidiastuti.staff.gunadarma.ac.id/Downloads/files... · Algoritma data • Elemen dalam bahasa algoritma, seperti berikut : type nilaiMatKul

15 21

bantu

10

15

head baru

Masukkan data baru dari belakang, misal 21

21

baru

10

head

10 15

head

21

Page 22: LINKed LIST - widiastuti.staff.gunadarma.ac.idwidiastuti.staff.gunadarma.ac.id/Downloads/files... · Algoritma data • Elemen dalam bahasa algoritma, seperti berikut : type nilaiMatKul

MENGHAPUS ELEMEN LIST

• Menghapus elemen list berarti menghilangkan alokasi memori sebuah list yang telah ada di memori.

• Fungsi: agar data yang tidak diperlukan benar-benar terhapus di memori sehingga penggunaan memori dapat optimal karena data-data yang tidak diperlukan dihilangkan.

Page 23: LINKed LIST - widiastuti.staff.gunadarma.ac.idwidiastuti.staff.gunadarma.ac.id/Downloads/files... · Algoritma data • Elemen dalam bahasa algoritma, seperti berikut : type nilaiMatKul

PENGHAPUSAN DATA AWAL

• Penghapusan elemen pertama (awal), menyebabkan variabel awal akan berpindah ke elemen data berikutnya.

• 3 kondisi yang perlu diperhatikan yaitu:

• kondisi linked list masih kosong

• kondisi linked list hanya memiliki 1 data

• kondisi linked list yang memiliki data lebih dari 1 elemen.

Page 24: LINKed LIST - widiastuti.staff.gunadarma.ac.idwidiastuti.staff.gunadarma.ac.id/Downloads/files... · Algoritma data • Elemen dalam bahasa algoritma, seperti berikut : type nilaiMatKul

• Kondisi linked list masih kosong

• Pada kondisi ini proses penghapusan tidak bisa dilakukan.

• Kondisi linked list hanya memiliki 1 data

• Langkah yang dilakukan adalah menghapus data yang ada di posisi awal kemudian akhir dan awal di-NULL-kan.

Page 25: LINKed LIST - widiastuti.staff.gunadarma.ac.idwidiastuti.staff.gunadarma.ac.id/Downloads/files... · Algoritma data • Elemen dalam bahasa algoritma, seperti berikut : type nilaiMatKul

• Kondisi linked list memiliki data lebih dari 1 data:

• Alamat data awal diisikan ke suatu variabel pembantu (phapus).

• Setelah itu pindahkan awal ke data berikutnya.

• Setelah itu hapus/hancurkan data di posisi phapus.

Page 26: LINKed LIST - widiastuti.staff.gunadarma.ac.idwidiastuti.staff.gunadarma.ac.id/Downloads/files... · Algoritma data • Elemen dalam bahasa algoritma, seperti berikut : type nilaiMatKul

10 15

head

21

15

head

21

Proses penghapusan data 10 dari depan

Page 27: LINKed LIST - widiastuti.staff.gunadarma.ac.idwidiastuti.staff.gunadarma.ac.id/Downloads/files... · Algoritma data • Elemen dalam bahasa algoritma, seperti berikut : type nilaiMatKul

• Penghapusan node tidak boleh dilakukan jika keadaan node sedang ditunjuk oleh pointer.

• Sebelum data terdepan dihapus, head harus ditunjukkan ke node sesudahnya terlebih dahulu agar list tidak putus, sehingga node setelah head lama akan menjadi head baru (data terdepan yang baru).

Page 28: LINKed LIST - widiastuti.staff.gunadarma.ac.idwidiastuti.staff.gunadarma.ac.id/Downloads/files... · Algoritma data • Elemen dalam bahasa algoritma, seperti berikut : type nilaiMatKul

PENGHAPUSAN DATA AKHIR • Penghapusan data akhir adalah proses

menghilangkan/menghapus data yang ada di

posisi terakhir.

• Ada 3 kondisi yang harus diperhatikan ketika

akan melakukan proses penghapusan data akhir

yaitu:

• Kondisi linked list masih kosong,

• Kondisi linked list hanya berisi 1 data, dan

• Kondisi linked list berisi data lebih dari 1

buah.

Page 29: LINKed LIST - widiastuti.staff.gunadarma.ac.idwidiastuti.staff.gunadarma.ac.id/Downloads/files... · Algoritma data • Elemen dalam bahasa algoritma, seperti berikut : type nilaiMatKul

10 15

head

21

Proses menghapus data 34 dari belakang

34

10 15

head

21 34

bantu hapus

10 15

head

21

bantu

bantu

Page 30: LINKed LIST - widiastuti.staff.gunadarma.ac.idwidiastuti.staff.gunadarma.ac.id/Downloads/files... · Algoritma data • Elemen dalam bahasa algoritma, seperti berikut : type nilaiMatKul

dengan logika linked list

• INSERT E

• DELETE C

• INSERT F

• DELETE E

• INSERT G

Page 31: LINKed LIST - widiastuti.staff.gunadarma.ac.idwidiastuti.staff.gunadarma.ac.id/Downloads/files... · Algoritma data • Elemen dalam bahasa algoritma, seperti berikut : type nilaiMatKul

Pembacaan Linked List No. Info Link

1 Santi 0

2 Ani 4

3 6

4 Budi 5

5 Rudi 0

6 9

7 Karin 1

8 Dita 7

9 0

1

Avail

2

Page 32: LINKed LIST - widiastuti.staff.gunadarma.ac.idwidiastuti.staff.gunadarma.ac.id/Downloads/files... · Algoritma data • Elemen dalam bahasa algoritma, seperti berikut : type nilaiMatKul

Latihan • Dilakukan Insert “Leni”

• Dilakukan Delete “Budi”

• Dilakukan Insert “Cita”

• Dilakukan Delete “Dita”

Page 33: LINKed LIST - widiastuti.staff.gunadarma.ac.idwidiastuti.staff.gunadarma.ac.id/Downloads/files... · Algoritma data • Elemen dalam bahasa algoritma, seperti berikut : type nilaiMatKul

latihan 2

Page 34: LINKed LIST - widiastuti.staff.gunadarma.ac.idwidiastuti.staff.gunadarma.ac.id/Downloads/files... · Algoritma data • Elemen dalam bahasa algoritma, seperti berikut : type nilaiMatKul

Latihan 2 • Dilakukan Insert “Dimas”

• Dilakukan Delete “Galih”

• Dilakukan Insert “Marsha”

• Dilakukan Delete “Jeni”