Chapter 7 Linked List December 2015.

Slides:



Advertisements
Presentasi serupa
DISUSUN OLEH : SITI MUTHOHAROH HENDRA ELIA DWI CHANDRA RINDHY ANTHIKA N. YOHANES.
Advertisements

Metode Alokasi Berkas.
Single linked list.
STRUKTUR DATA (7) single linked list circular
STRUKTUR DATA (8.1) double linked list non circular
bentuknya, yang dapat berubah pada saat runtime.
LINKED LIST.
Sekolah Tinggi Manajemen Informatika dan Komputer
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 2 STRUKTUR DATA LINKED LIST
Pertemuan 3 RECORD.
LINKED LIST (List linier)
LINKED LIST Single Linked List.
LINKED LIST.
LINK LIST Latifah Rifani.
Algoritma dan Struktur Data Daniel Riano Kaparang.
SENARAI BERANTAI TUNGGAL
Single Linked List.
Rahmady Liyantanto liyantanto.wordpress.com S1 Teknik Informatika Universitas Trunojoyo 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)……………
Chapter 10 Linked List (Senarai Bertaut) Program Studi Ekstensi DTE FTUI Slides©2007.
STRUKTUR DATA (6) single linked list non circular
Single Linked List Yuliana Setiowati, S.Kom.
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.
Struktur Data List Linear : Linked List (Double Linkedlist)
Pertemuan ketujuh Struktur data st3telkom.ac.id
Struktur Data List Linear : Linked List (Single Linkedlist)
LINKED LIST.
Struktur Data (Data Structure) – IS 2313
1 Pertemuan 3 Data Komposit Linked list Matakuliah: T0026/Struktur Data Tahun: 2005 Versi: 1/1.
BAB 5 LINKED LIST Linked list adalah struktur berupa rangkaian elemen saling berkait dimana tiap elemen dihubungkan ke elemen lain melalui pointer. Keterhubungan.
ADT DINAMIS : SINGLY LINKED LIST DAN DOUBLE LINKED LIST
List Dipersiapkan oleh : Y. Palopak SSi., MT.
Stack.
SENARAI BERANTAI TUNGGAL
Struktur Data Linked List
STRUKTUR DATA (2) Single Linked List
STRUKTUR DATA Linked List
Single Linked List.
Chapter 9 Linked List (Senarai Bertaut)
Antrian (Queue).
Algoritma dan Struktur Data
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
Linked List.
Pointer & Linked List.
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
Pertemuan – 8 List Berkait (Bab 5) Informatics Engineering Department
Senarai Berantai Ika Menarianti.
LINKED LIST Oleh: Tim Algoritma & Pemrograman IF Circular Linked List.
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.
LINKED LIST GANDA Linked list ganda (doubly linked list) adalah linked list yang setiap simpul-nya (node) memiliki dua buah pointer, masing-masing berada.
STRUKTUR DATA LINKED LIST
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
LINKED LIST (SENARAI BERANTAI)
9 ALGORITMA PEMROGRAMAN DAN STRUKTUR DATA (LAB) OLEH :
Variable Static & Linked List
Kuliah ke-4 Program Studi Ekstensi DTE FTUI Slides©2008
Kode MK/ Pemrograman Terstruktur 2
Pointer.
SINGLE LINKED LIST (SLL)
Transcript presentasi:

Chapter 7 Linked List December 2015

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: linked list

PENDAHULUAN Struktur data statis memori (a) Struktur data dinamis (b)

Contoh tabel pengalokasian memori dengan menggunakan Larik Gbr.9.2 (a). Tabel pengalokasian (b). Memori Program Kebutuhan memori Memori yang diperoleh dari sampai A 3 1 B 2 4 5 C 6 8 D 9 E 10 1 2 3 4 5 6 7 8 9 10 A B C D E

Contoh tabel pengalokasian memori dengan menggunakan Larik (c). Tabel pengalokasian Memori Program Kebutuhan memori Daftar Blok yang diperoleh A 3 1, 2, 3 B C 6, 7, 8 D E 1 10 F 4, 5, 9 A 1 2 3 4 5 6 7 8 9 10 A A F F C C C Mencari yg kosong F E (d)

Contoh Tabel Pengalokasian memori menggunakan Linked List Program Keb. Memori Daftar blok memori yg diperoleh A 3 B C D E 1 F (a) Nomor blok Berikut 1 2 3 6 7 8 Gambar 9.3 10 4 5 9

Tabel pengalokasian A 3 1 2 3 B C 3 6 7 8 D E 1 10 9 F 3 4 5 (b). Tabel pengalokasian A 3 1 2 3 B C 3 6 7 8 D E 1 10 9 F 3 4 5

KONSEP Linked List 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)

KONSEP Linked List Data berikut Kepala a1 a2 a2 a3 a1 a2 a3

Skema logik linked list PENDAHULUAN Head a2 a3 a4 a1 a2 a3 a4 Gambar (c) Skema logik linked list

Contoh bentuk Linked list PENDAHULUAN Node Kepala Berikut / next Sakura Shaoran Toya Yukito Data Node Ekor Gambar Tomoyo Eriol Contoh bentuk Linked list

Kekurangan Linked List Kelebihan Linked List 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 linked list Kekurangan Linked List

Skema lojik berkas, larik dan senarai bertaut kepala berkas larik Senarai bertaut Sakura Shoaran … Eriol Sakura 1 Sakura 2 Shaoran ... Shaoran n Eriol ... ... Eriol Skema lojik berkas, larik dan senarai bertaut

Membangun Linked List (LL) Mendefinisikan Struktur Elemen LL data: ruas berisi data yang disimpan berikut: ruas berisi alamat elemen berikutnya def senarai: record data: string berikut:^senarai erecord edef

Membangun Linked list(SB) 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 Linked List(SB) Mengisi Data ke Suatu Elemen SB data berikut p p Sakura p^data:=‘Sakura’ new (p) Sakura p p^berikut:=q q Sakura Shaoran p q^data:=‘Shaoran’ q^berikut:=nul (selesai) q

Membangun Senarai Bertaut(SB) 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

Merangkai Elemen-Elemen Linked List kepala kepala berikut data (a) (b) (c) Sakura p p p kepala kepala (d) Sakura (e) Sakura q p q p Gambar 9.7. Proses Perangkaian Elemen-Elemen Linked List

Merangkai Elemen-Elemen Linked List kepala (f) Sakura q p kepala Sakura Shaoran (g) q p

Merangkai Elemen-Elemen Linked List kepala Sakura Shaoran (h) q p kepala (i) Sakura Shaoran q p AAP Ratna

Merangkai Elemen-Elemen Linked List kepala (J) Sakura Shaoran ……….. kepala Shaoran Toya Yukito Sakura

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

Membangun Linked List (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 Linked Listb dan memperagakannya di layar komputer prog BuatDanPeragakanSB() {Definisi struktur elemen-elemen SB dan tiga variabel berjenis pointer} def senarai: record data: string berikut:^senarai erecord kepala, p, q: ^senarai edef

Memeragakan semua elemen SB ke layar new(p) kepala:=p p^data:=‘Sakura’ q:=p new(p) q^berikut:=p p^data:=‘Shaoran’ q:=p new(p) q^berikut:=p p^data:=‘Toya’ q:=p new(p) q^berikut:=p p^data:=‘Yukito’ p^berikut:=nil Merangkai Linked List Memeragakan semua elemen SB ke layar p:=kepala while p <> nil do write (p^data) p:=p^berikut ewhile

Membangun Linked List (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 Linked List(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 proc CariSebelum(p,q) q:=nil r:=kepala while r <> nil and r <> p do q:=r r:=r^berikut ewhile eproc

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

Penghapusan Elemen Linked List 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: proc HapusSesudah(p) if p^berikut =nil then write (‘HapusSesudah gagal, p adalah elemen terakhir’) else q:=p^berikut p^berikut:=q^berikut dispose (q) eif eproc

Hapus Sesudah P q := p^berikut Simpan alamat elemen sesudah p pada q (b) p^berikut := q^berikut Buat penunjuk melompati q (c) Dispose (q) Bebaskan elemen q (d)

Hapus Sesudah P (a) …. … p (b) …. … p q

Hapus Sesudah P … … (c) p q (d) … … p q Proses Penghapusan Suatu elemen SB

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

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

Penyisipan Elemen Linked List Sisip Sesudah p q menyisipkan elemen baru, yang ditunjuk oleh q sesudah elemen yang ditunjuk oleh p proc SisipSesudah(p.q) q^berikut:=p^berikut p^berikut:=q eproc

Sisip sesudah P, Q (a) …. … p q (b) …. … p q

Sisip sesudah P, Q Gambar 9.11 Proses Penyisipan Suatu elemen SB (c) …. … p q Gambar 9.11 Proses Penyisipan Suatu elemen SB

Sisip di awal Sisip di awal harga kepala harus diubah q^berikut:=kepala kepala:=p proc SisipDiawal(p) eproc Sisip di awal harga kepala harus diubah 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

SELESAI