STRUKTUR DATA LINKED LIST

Slides:



Advertisements
Presentasi serupa
STRUKTUR DATA (10) tree manipulation
Advertisements

LINKED LIST.
Sekolah Tinggi Manajemen Informatika dan Komputer
Senarai Berantai Adalah salah satu struktur data dinamis yang paling sederhana (linked list) atau juga disebut senarai satu arah ( one way list).
PERTEMUAN KE-7 Kamis, 14 Oktober QUEUE (Antrian) Queue (Antrian) adalah suatu bentuk khusus dari List Linier dengan operasi penyisipan (insertion)
Algoritma dan Struktur Data Daniel Riano Kaparang.
Sekolah Tinggi Manajemen Informatika dan Komputer
Chapter 10 Linked List (Senarai Bertaut) Program Studi Ekstensi DTE FTUI Slides©2007.
PERTEMUAN KE-11 Kamis, 28 Oktober LINKED LIST LAINNYA List dengan hirarki (koreksi) Struktur Sisir (??) START ANAK SAUDARA START ANAK SAUDARA ORTU.
STRUKTUR DATA LINKED LIST
BY YOHANA N Sumber Kepustakaan : yohananugraheni.files.wordpress.com/.../linked- lis... 1 LINKED LIST.
QUEUE / ANTRIAN Queue / antrian adalah sebuah bentuk list dengan operasi penyisipan hanya dapat dilakukan pada satu sisi yang disebut belakang (REAR) dan.
4 QUEUE (ANTREAN) BAB Definisi Queue (antrean)
Algoritma & Struktur Data Linked List Evangs Mailoa.
Linked List DELETE 6.3 & 7.3 NESTED LOOP.
LINKED LIST by Yohana N.
Double Ended QUEUE (DeQue) 6.3 & 7.3 NESTED LOOP.
Struktur Data List Linear : Linked List (Double Linkedlist)
Linear Data Structures (Linked List). Node Link atau pointer data field.
Algoritma dan Struktur Data
Algoritma dan Struktur Data
Algoritma dan Struktur Data
Dasar Struktur Data.
Pertemuan ketujuh Struktur data st3telkom.ac.id
Linear List.
Struktur Data List Linear : Linked List (Single Linkedlist)
STRUKTUR DATA tree manipulation
Linked List.
Algoritma dan Struktur Data
Rahmady Liyantanto liyantanto.wordpress.com S1 Teknik Informatika Universitas Trunojoyo Struktur Data.
Pertemuan Linked list jual [Valdo] Lunatik Chubby Stylus.
Struktur Data Linked List
STRUKTUR DATA Linked List
4. Linked List (List Linier)
Tim struktur data IF UNIKOM
LINKED LIST by Yohana N.
Tim struktur data IF UNIKOM
Algoritma dan Struktur Data
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
Defri Kurniawan DOUBLE LINKED LIST Defri Kurniawan
STRUKTUR DATA Tree (Struktur Pohon).
Linked List BEBERAPA CONTOH SOAL 6.3 & 7.3 NESTED LOOP.
Linked List DELETE 6.3 & 7.3 NESTED LOOP.
Linked List.
Linked List Eko Riyanto.
MATAKULIAH : STRUKTUR DATA
Linked List INSERT KIRI 6.3 & 7.3 NESTED LOOP.
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
STRUKTUR DATA.
LINKED LIST Oleh: Tim Algoritma & Pemrograman IF Circular Linked List.
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
Tim struktur data IF UNIKOM
LINKED LIST GANDA Linked list ganda (doubly linked list) adalah linked list yang setiap simpul-nya (node) memiliki dua buah pointer, masing-masing berada.
IMPLEMENTASI LINKED LISTMENGGUNAKAN ARRAY
LINKED LIST by Yohana N Sumber Kepustakaan : yohananugraheni.files.wordpress.com/.../linked-lis...
Oleh Shoffin Nahwa Utama, S.Kom
Tim struktur data IF UNIKOM
Struktur Data.
Defri Kurniawan VARIASI LIST Defri Kurniawan
Linear Doubly INSERT KIRI
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
Linear Doubly Linked List
Tim struktur data IF UNIKOM
Variable Static & Linked List
Algoritma dan Struktur Data
Struktur Data.
STRUKTUR DATA QUEUE.
Linked List DELETE TENGAH 6.3 & 7.3 NESTED LOOP.
Struktur Data Linear Created by Fifth Group, S3B TI Anggota
Transcript presentasi:

STRUKTUR DATA LINKED LIST Pertemuan 7

LINEAR LIST (Daftar Linier) Daftar linier (Linear List) adalah suatu struktur data umum yang terbentuk dari barisan hingga (yang terurut) dari satuan data, atau pun dari record. Elemen dari daftar linier disebut simpul atau node. Daftar ini disebut linier karena susunan elemennya adalah linier, yaitu bahwa bagi setiap elemen selalu ada elemen setelah dan sebelumnya, kecuali pada elemen pertama dan terakhir. Banyaknya simpul dalam suatu daftar linier dapat berubah-ubah, berbeda dengan array yang jumlah elemennya selalu tetap.

Struktur mana yang Linier? B C

LINKED LIST (Daftar Berkait) Daftar berkait  setiap elemen memiliki pointer (penunjuk) ke satu atau beberapa elemen lain. Pointer/Penunjuk = penyimpan alamat Singly Linked List atau One-Way List  setiap elemen memiliki pointer (penunjuk) ke satu elemen lain, biasanya elemen setelahnya. Doubly Linked List  setiap elemen memiliki pointer (penunjuk) ke 2 elemen lain, biasanya elemen sebelum dan sesudahnya.

LINKED LIST LAINNYA START Daftar Berkait Tunggal Sirkuler (Circular Singly-Linked List) START Daftar Berkait Ganda Sirkuler (Circular Doubly-Linked List)

LINKED LIST LAINNYA List dengan hirarki Struktur Pohon START START ANAK ORTU ANAK ANAK ANAK ANAK

LINKED LIST LAINNYA List dengan hirarki START START ANAK SAUDARA ORTU START ANAK SAUDARA ORTU ANAK SAUDARA ANAK SAUDARA SAUDARA Struktur Sisir (??)

Single atau Double Link? Perbandingan Single Link: - Keuntungan: Hemat memori, sederhana - Kerugian: Menelusuri list hanya satu arah Double link: - Keuntungan: Dapat menelusuri list secara bolak-balik - Kerugian: Perlu memori lebih, penanganan lebih rumit Pertanyaan: Kapan menggunakan struktur yang Single Link (One way) dan Double Link (Two way)? Jawaban: Jika proses perlu melakukan banyak kunjungan list dengan arah fleksibel (bolak-balik) maka sebaiknya gunakan double link agar proses lebih cepat. Jika proses hanya melakukan penelusuran satu arah terhadap list, gunakan single list untuk menghemat memori.

Implementasi Linked-List dengan Array Single link list Di sebuah RS terdapat 14 kamar. Dokter setiap hari akan memeriksa mulai dari pasien yg termuda. START = 4 Kamar 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Nama D A C B F E Usia 24 19 15 26 25 Link A 9 B 7 C 3 D 11 F 4 E 10

Penelusuran Linked List Penelusuran linked list (daftar berkait) berarti mengunjungi simpul demi simpul dalam list sampai seluruh simpul terkunjungi. Algoritma: begin ptr  START while ptr <> 0 do Proses INFO(ptr) ptr  LINK(ptr) end while end

Pencarian dalam Linked List Pencarian dalam list berarti menelusuri list dan berhenti saat elemen yang dicari ditemukan atau sampai pada akhir list. Berikut adalah algoritma pencarian pada list yang tidak terurut. Algoritma: begin ptr  START while ptr<>0 and ITEMCARI<>INFO(ptr) do ptr  LINK(ptr) end while if ITEMCARI = INFO(ptr) then Proses INFO(ptr) else Tidak ditemukan endif end

Algortima penelusuran yang baik?

Multi List dalam Satu Array Beberapa list dapat memanfaatkan array yang sama. Yang perlu dijaga adalah START-nya tidak mulai dari lokasi yang sama; dan LINK ke lokasi berikutnya tidak menunjuk ke lokasi dalam list lain.

3 List dalam 1 Array TEST LINK 1 16 2 74 14 3 4 82 5 84 12 6 78 7 8 5 84 12 6 78 7 8 100 13 9 76 10 56 11 88 62 93 15 3 List dalam 1 Array Kimia 11 Matematika 5 Fisika 9

Free Storage List Free storage list berarti pengelolaan daftar lokasi memori yang tidak terpakai. Lokasi memori yang tidak dipakai dimungkinkan karena adanya elemen yang dihapus/keluar dari list.

TEST LINK 1 16 2 74 14 3 4 82 5 84 12 6 78 7 8 100 13 9 10 11 88 62 93 15 Algoritma 11 Geometri 5 Kosong 9 Lokasi yang tidak digunakan oleh list lain digabungkan dalam List Kosong/Sampah

INSERTION (Penyisipan Simpul) Penyisipan simpul berarti menambah suatu simpul/elemen baru ke dalam sebuah list. Kamar 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Nama G D A C B F E Usia 21 24 19 15 26 25 Link A 9 B 7 C 1 D 11 F 4 E 10 G 3

Kasus Penyisipan Simpul INSERT FIRST Yaitu kasus penyisipan simpul baru pada awal list. Simpul baru menjadi ujung pertama list. INSERT AFTER Yaitu kasus penyisipan simpul baru setelah sebuah simpul tertentu. INSERT SORT Yaitu kasus penyisipan simpul baru ke dalam list sedemikian sehingga simpul-simpul dalam list tetap dalam keadaan terurut.

Implementasi Linked-List dengan Array Double link list Di sebuah RS terdapat 14 kamar. Dokter setiap hari akan memeriksa mulai dari pasien yg termuda. START = 4 Next = kamar berikutnya Prev = kamar sebelumnya Kamar 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Nama D A C B F E Usia 24 19 15 26 25 Next Prev

Implementasi Linked-List dengan Array Single link list Di sebuah RS terdapat 14 kamar. Dokter setiap hari akan memeriksa mulai dari pasien yg termuda. START = 4 Kamar 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Nama D A C B F E Usia 24 19 15 26 25 Link A 9 B 7 C 3 D 11 F 4 E 10

Implementasi Linked-List dengan Array Double link list sirkuler START = 4 Next = kamar berikutnya; Prev = kamar sebelumnya Kamar 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Nama D A C B E Usia 24 19 15 25 Next Prev START A 11 9 B 4 7 C 3 D E

Implementasi Linked-List dengan Array Struktur Pohon (Tree) INFO KIRI KANAN 1 E 2 3 B 4 5 A 6 C 8 7 D 9 A B C D E Struktur Pohon START START

Implementasi Linked-List dengan Array Struktur Sisir (??) INFO OR AK SR 1 E 7 2 3 B 5 8 6 4 A C F D 9 B A C E START F ANAK SAUDARA D ORTU START

Free Storage List Free storage list berarti pengelolaan daftar lokasi memori yang tidak terpakai. Lokasi memori yang tidak dipakai dimungkinkan karena adanya elemen yang dihapus/keluar dari list.

TEST LINK 1 G 5 2 4 3 B 10 11 H 7 6 E 12 K 8 13 9 D C F 14 15 16 Terisi 3 Kosong 8 Lokasi yang tidak digunakan oleh list lain digabungkan dalam List Kosong/Sampah

Proses-Proses terhadap Linked List TRAVERSING (PENELUSURAN) INSERTION (PENYISIPAN) REMOVE (PENGHAPUSAN) SEARCHING (PENCARIAN)

TRAVERSING Penelusuran terhadap Linked List Penelusuran linked list (daftar berkait) berarti mengunjungi simpul demi simpul dalam list sampai seluruh simpul terkunjungi. Algoritma: begin ptr  START while ptr <> 0 do Proses INFO(ptr) ptr  LINK(ptr) end while end

SEARCHING Pencarian dalam Linked List Pencarian dalam list berarti menelusuri list dan berhenti saat elemen yang dicari ditemukan atau sampai pada akhir list. Berikut adalah algoritma pencarian pada list yang tidak terurut. Algoritma: begin ptr  START while ptr<>0 and ITEMCARI<>INFO(ptr) do ptr  LINK(ptr) end while if ITEMCARI = INFO(ptr) then Proses INFO(ptr) else Tidak ditemukan endif end

INSERTION (Penyisipan Simpul) Penyisipan simpul berarti menambah suatu simpul/elemen baru ke dalam sebuah list. Kamar 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Nama G D A C B F E Usia 21 24 19 15 26 25 Link A 9 B 7 C 1 D 11 F 4 E 10 G 3

PRIORITY QUEUE with One-Way List XXX 2 START AAA 1 BBB 2 CCC 2 DDD 4 EEE 4 FFF 4 GGG 5 X Slide Pertemuan ke-7

Kasus Penyisipan Simpul INSERT FIRST Yaitu kasus penyisipan simpul baru pada awal list. Simpul baru menjadi ujung pertama list. INSERT AFTER Yaitu kasus penyisipan simpul baru setelah sebuah simpul tertentu.

Penyisipan dalam List INSERT FIRST Sisipkan Elemen Baru ke awal list Algoritma: If AVAIL=NULL then Overflow Exit Endif New  AVAIL AVAIL  LINK(AVAIL) INFO(New)  ITEM LINK(New)  START START  New

Penyisipan dalam List INSERT AFTER Sisipkan Elemen yang ditunjuk oleh ptrY setelah elemen yg ditunjuk oleh ptrX. Algoritma: INFO(ptrY) = ITEM LINK(ptrY) = LINK(ptrX) LINK(X) = ptrY