Chapter 10 Linked List (Senarai Bertaut) Program Studi Ekstensi DTE FTUI Slides©2007.

Slides:



Advertisements
Presentasi serupa
Single linked list.
Advertisements

STRUKTUR DATA (7) single linked list circular
LINKED LIST.
Sekolah Tinggi Manajemen Informatika dan Komputer
Akses File As’ad Djamalilleil
Senarai Berantai Dua Arah
Senarai Berantai Adalah salah satu struktur data dinamis yang paling sederhana (linked list) atau juga disebut senarai satu arah ( one way list).
Pertemuan 3 RECORD.
LINKED LIST Single Linked List.
LINK LIST Latifah Rifani.
Algoritma dan Struktur Data Daniel Riano Kaparang.
STRUKTUR DATA (2) searching array
Modul-8 : Algoritma dan Struktur Data
Chapter 9 SEARCHING ALGORITHM Program Studi Ekstensi DTE FTUI Slides © 2007.
Bab 2 PERINTAH-PERINTAH DASAR (BAG. 1) Program Pendidikan Sarjana Ekstensi DTE FTUI Slide ©2008.
LARIK (ARRAY).
MODUL 3 SENARAI (LIST)…………………. TUMPUKAN (STACK)……………
STRUKTUR DATA LINKED LIST
Chapter 12 Antrian (Queue) Program Studi Ekstensi DTE FTUI Slides©2007.
Bab 2 – b PERINTAH 2 B Percabangan. PERCABANGAN Tidak setiap baris program akan dikerjakan Hanya yang memenuhi syarat (kondisi) Syarat terdiri dari operand-operand,
Algoritma & Struktur Data Linked List Evangs Mailoa.
Double Ended QUEUE (DeQue) 6.3 & 7.3 NESTED LOOP.
Algorithm and Data Structures.
Algoritma dan Struktur Data
Algoritma dan Struktur Data
Pertemuan ketujuh Struktur data st3telkom.ac.id
Struktur Data List Linear : Linked List (Single Linkedlist)
LINKED LIST.
Pertemuan 13 Graph + Tree jual [Valdo] Lunatik Chubby Stylus.
Algoritma dan Struktur Data
Algoritma dan Struktur Data
Algoritma dan Struktur Data
Universitas Budi Luhur
ADT DINAMIS : SINGLY LINKED LIST DAN DOUBLE LINKED LIST
List Dipersiapkan oleh : Y. Palopak SSi., MT.
Stack.
Struktur Data Linked List
STRUKTUR DATA (2) Single Linked List
Chapter 7 Linked List December 2015.
STRUKTUR DATA Linked List
Single Linked List.
STRUKTUR DATA STACK.
Dynamic Array and Linked List
Chapter 9 Linked List (Senarai Bertaut)
Antrian (Queue).
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
Linked List.
Pointer & Linked List.
STRUKTUR DATA STACK.
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
Bab 2B Struktur Dasar 2 Pengulangan
Program Studi Teknik Informatika
Pertemuan – 8 List Berkait (Bab 5) Informatics Engineering Department
Senarai Berantai Ika Menarianti.
As’ad Djamalilleil Akses File As’ad Djamalilleil
Menghapus Simpul dan Travelsal
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
SENARAI BERANTAI (LINKED LIST)
BAB 3 PERINTAH 2 C 7/23/2018 ABR team presentation.
STRUKTUR DATA LINKED LIST
Struktur Data.
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
Variable Static & Linked List
Algoritma dan Struktur Data
Struktur Data.
Kuliah ke-4 Program Studi Ekstensi DTE FTUI Slides©2008
Pointer.
Struktur Data Linear Created by Fifth Group, S3B TI Anggota
SINGLE LINKED LIST (SLL)
Transcript presentasi:

Chapter 10 Linked List (Senarai Bertaut) Program Studi Ekstensi DTE FTUI Slides©2007

What’s linked list?  In computer science, a linked list is one of the fundamental data structures, and can be used to implement other data structures. It consists of a sequence of nodes, each containing arbitrary data fields and one or two references ("links") pointing to the next and/or previous nodes.computer sciencedata structuresnodesfieldsreferences  The principal benefit of a linked list over a conventional array is that the order of the linked items may be different from the order that the data items are stored in memory or on disk, allowing the list of items to be traversed in a different order.array

Keuntungannya?  A linked list is a self-referential datatype because it contains a pointer or link to another datum of the same type. Linked lists permit insertion and removal of nodes at any point in the list in constant time, but do not allow random access. Several different types of linked list exist: singly-linked lists, doubly-linked lists, and circularly-linked lists.random access

Other data structures?  Array OK Array  Stacks Stacks  Queues Next Lect. Queues  Linked lists Now Linked lists  Trees Trees  Graphs Graphs

Pengantar Jenis struktur data berdasarkan pemesanan ukuran dan jumlah:  struktur data statis: –ditentukan sebelumnya  struktur data dinamis: –ukuran ditentukan saat kompilasi, –dibentuk saat program dijalankan, sesuai kebutuhan. Contoh: senarai bertaut

KONSEP Senarai Bertaut  Sejumlah elemen yang saling bertaut  Setiap elemen dibedakan atas: –bagian yang berisi data yang diinginkan –bagian yang berisi alamat elemen berikutnya, disebut petunjuk (pointer) –elemen pertama: kepala (variabel tertentu) data berikut a1 a2a3 kepala a1a2a3

Kelebihan Senarai bertaut  Struktur dinamis –memori lebih fleksibel dan hemat  Representasi struktur data yang kompleks –representasi dunia nyata dengan mudah  ketelitian memelihara petunjuk  mengamati setiap elemen digunakan/tidak –LISP: bahasa pemrograman memudahkan pengolahan senarai bertaut Kekurangan Senarai bertaut

Skema lojik berkas, larik dan senarai bertaut Dodi Sudiana … Ratna Dodi Sudiana... Ratna 1 2 n berkaslarik Dodi kepala Sudiana Ratna... Senarai bertaut

Membangun Senarai Bertaut(SB)  Mendefinisikan Struktur Elemen SB –data : ruas berisi data yang disimpan –berikut : ruas berisi alamat elemen berikutnya def senarai: record data: string berikut:^senarai erecord edef

 Menciptakan Satu Elemen SB –elemen diciptakan dengan identitas,  alamat –alamat diciptakan dalam variabel  penunjuk def p: ^senarai //p petunjuk ke elemen SB edef –menciptakan elemen SB baru: new(p) // menggunakan informasi pendefinisian variabel p untuk menciptakan elemen baru Membangun Senarai Bertaut(SB)

 Mengisi Data ke Suatu Elemen SB Membangun Senarai Bertaut(SB) data berikut p Dodi p new (p) p^data:=‘Dodi’ Dodi pp^berikut:=q q Dodi p q^data:=‘Sudiana’ q^berikut:=nul (selesai) q

 Membebaskan Satu Elemen SB –Elemen yang tidak digunakan, dibebaskan dan digunakan kembali dispose (p) // p tidak dapat diakses  Merangkai elemen-elemen SB –Definisi strutur elemen-elemen SB –Menciptakan satu elemen –Mengisi data –Menciptakan elemen berikutnya –Mengisi dengan data –Merangkaikannya dengan elemen sebelumnya Membangun Senarai Bertaut(SB)

new(p) kepala:=p p^data:=‘Dodi’ q:=p new(p) q^berikut:=p p^data:=‘Sudiana’ q:=p new(p) q^berikut:=p p^data:=‘Ratna’ q:=p new(p) q^berikut:=p p^data:=‘Astha’ p^berikut:=nil // simpan alamat pertama pada kepala // amankan isi p pada q // rangkai elemen SB sebelumnya dengan yang baru // isi p diamankan dalam q, kemudian q digeser // SB diakhiri dengan nil // ciptakan elemen baru beralamatkan p //isi ruas data p dengan Aritonang //isi sebelumnya hilang, disimpan dalam q

Membangun Senarai Bertaut(SB)  Menelusuri Elemen-elemen SB –Penelusuran dilakukan melalui pointer –Penulusuran hanya mungkin dimulai dari kepala –berhenti jika nil p:=kepala while p <> nil do write (p^data) p:=p^berikut ewhile //penelusuran mulai dari kepala //berhenti jika nil // tulis data elemen p // ganti alamat berikut

Program membangun senarai bertaut dan memperagakannya di layar komputer prog BuatDanPeragakanSB() def senarai: record data: string berikut:^senarai erecord kepala, p, q: ^senarai edef {Definisi struktur elemen-elemen SB dan tiga variabel berjenis pointer}

new(p) kepala:=p p^data:=‘Dodi’ q:=p new(p) q^berikut:=p p^data:=‘Sudiana’ q:=p new(p) q^berikut:=p p^data:=‘Ratna’ q:=p new(p) q^berikut:=p p^data:=‘Astha’ p^berikut:=nil Merangkai senarai bertaut p:=kepala while p <> nil do write (p^data) p:=p^berikut ewhile Memeragakan semua elemen SB ke layar

Membangun Senarai Bertaut (SB)  Membangun SB dengan data dari berkas –isi berkas disimpan dalam senarai bertaut dan –urutan dalam berkas =urutan dalam senarai bertaut  Algoritmanya: membaca berkas dan menyimpan ke SB yang ditunjuk kepala Algoritma progBacaBerkasKeSB(b, kepala) new(p) kepala:=p read (b, marga) while not eof (b) do p^data:=marga q:=p new (p) q^berikut:=p read (b, marga) ewhile

{Berikan nil sebagai tanda akhir SB} if p:=kepala then {tidak ada data didalam berkas b, SB kosong} kepala:=nil else q^berikut:=nil eif dispose (p) {elemen yang ditunjuk oleh p tidak diperlukan lagi} eproc

Membangun Senarai Bertaut(SB)  Membangun SB dengan Susunan Data Terbalik  Algoritmanya: read (b, marga) while not eof (b) do p^data:=marga p^berikut:=q q:=p new (p) read (b, marga) ewhile procSusunTerbalikBerkasKeSB( b, kepala) {Baca data dari berkas b dan susun secara terbalik ke SB yang ditunjuk kepala } q:=nil {elemen terakhir SB} new(p) {elemen SB siap diisi}

{Tentukan harga kepala, nil jika berkas kosong} if q:=nil then {tidak ada data didalam berkas b, SB kosong} kepala:=nil else kepala:=q eif dispose (p) {elemen yang ditunjuk oleh p tidak diperlukan lagi} eproc

Penelusuran dan Pencarian Elemen SB  Penulisan Semua Elemen SB –penelusuran mulai dari kepala sampai ditemukan nil p:=kepala while p <> nil do write (p^data) p:=p^berikut ewhile proc TulisSB() //Tulis semua elemen SB yang berisi eproc

 Pencarian Berdasarkan Data –cari data d dalam SB –catat alamat elemen d dalam variabel p dan alamat sebelumnya dalam variabel q –Isi p dengan nil jika d tidak ditemukan p:=kepala q:=nil while p <> nil and p^data <> d do q:=p p:=p^berikut ewhile proc CariData(d,p,q) eproc data

 Pencarian Berdasarkan Nomor Elemen –cari alamat elemen ke- n SB didalam variabel p  simpan dalam p –cari alamat elemen ke n-1 didalam variabel q p:=kepala q:=nil for i:=1 to n do q:=p p:=p^berikut efor proc CariAlamatElemenKe(n,p,q) eproc

 Pencarian Berdasarkan Alamat Elemen –alamat suatu elemen diketahui di dalam variabel p –cari alamat elemen sebelumnya, catat di dalam variabel q q:=nil r:=kepala while r <> nil and r <> p do q:=r r:=r^berikut ewhile proc CariSebelum(p,q) eproc

 Pencarian Alamat Elemen Terakhir –cari elemen terakhir dari suatu SB  simpan didalam variabel p  simpan alamat sebelumnya pada variabel q q:=nil p:=nil r:=kepala while r <> nil do q:=p p:=r r:=r^berikut ewhile proc CariTerakhir(p,q) eproc

Penghapusan Elemen Senarai Bertaut  memberi tanda elemen yang dihapus  menimpa elemen yang dihapus dengan menggeser seluruh elemen di bawahnya Keadaan yang perlu diperhatikan –SB kosong –SB hanya terdiri dari satu elemen –SB lebih dari satu elemen

 Hapus sesudah p –hapus elemen yang ditunjuk p –jika q, alamat elemen sesudah p, algoritmanya menjadi: if p^berikut =nil then write (‘HapusSesudah gagal, p adalah elemen terakhir’) else q:=p^berikut p^berikut:=q^berikut dispose (q) eif proc HapusSesudah(p) eproc

 Hapus Yang Pertama –jika hanya satu elemen SB  kepala =nil –jika SB lebih dari satu elemen  kepala =elemen ke- 2 if kepala^berikut =nil then dispose (kepala) kepala:=nil else pertama:=kepala kepala:=kepala^berikut dispose (pertama) eif proc HapusPertama() eproc

 Hapus Yang Terakhir –jika hanya satu elemen SB  kepala =nil –jika SB lebih dari satu elemen  alamat elemen ke- 2 terakhir ditentukan dahulu if kepala^berikut =nil then dispose (kepala) kepala:=nil else CariTerakhir (p.q) //mencari alamat elemen terakhir q^berikut:=nil dispose (p) eif proc HapusTerakhir() eproc

Penyisipan Elemen Senarai Bertaut  Sisip Sesudah p q –menyisipkan elemen baru, yang ditunjuk oleh q sesudah elemen yang ditunjuk oleh p q^berikut:=p^ber ikut p^berikut:=q proc SisipSesudah(p.q) eproc

 Sisip di awal –harga kepala harus diubah  Sisip di awal –harga kepala harus diubah q^berikut:=kepala kepala:=p proc SisipDiawal(p) eproc p^berikut:=nil r^berikut:=q proc SisipDiakhir(p) eproc

Jenis-jenis Senarai Bertaut  SB Berekor  SB Sirkuler  SB Dobel  SB Bertingkat Ganda  Pohon  Graph

Penyunting Naskah (Text Editor)  Penyisipan baris baru  Menghapus suatu baris  Penggantian baris  Struktur data untuk menyimpan naskah pada saat pengeditan

Video: Creating a simple link-list

Video: Programming a link-list