Variasi List Linier. Nisa ul Hafidhoh, MT

dokumen-dokumen yang mirip
Variasi List Linier (Bagian 2)

Kode : IF2121 NIM :... Matakuliah : Algoritma dan Struktur Data Nama :... Hari, Tanggal : Senin, 13 November 2017 Waktu : 150 Menit

List Linier. IF2030/Algoritma dan Struktur Data. 11/6/2009 FNA+WDS/IF2030/Sem

IKG2A3/ Pemrograman Terstruktur 2. ZK Abdurahman Baizal. KK Algoritma dan Komputasi. Variasi List Linier

List Linear (Linked List) Farah Zakiyah Rahmanti 2014

MODUL 6 SINGLE & DOUBLE LINKED LIST

BAB IX LINKED LIST (SENARAI BERANTAI)

Bagian I. Studi Kasus [82] Tanda tangan:

1. Inggriani Liem Catatan Kuliah Algoritma & Pemrograman, Jurusan Teknik Informatika ITB

PENGENALAN List merupakan sebuah pemikiran/konsep struktur data yang sangat dasar pada pemrograman agar lebih fleksibel. Setiap elemen akan ditambahka

List Linier (Bag. I) IF2121/Algoritma dan Struktur Data Sem. I 2016/ /25/2017 IF2121/Sem I 2017/2018 1

BAB IX LINKED LIST (SENARAI BERANTAI)

Representasi Logic List Linier

IKG2A3/ Pemrograman Terstruktur 2

LIST LINIER 1. DEFINISI

1. Inggriani Liem Catatan Kuliah Algoritma & Pemrograman, Jurusan Teknik Informatika ITB

Modul Praktikum Algoritma dan Struktur Data BAB 6 LINKED LIST

Double linked list. Gambar 1. Double linket list dengan empat simpul Deklarasi Double Linked List di dalam Pascal :

Masukan Judul... Infotype àsebuah tipe terdefinisi yang menyimpan informasi sebuah elemen list

Pada kondisi ini proses penghapusan tidak bisa dilakukan Kondisi linked list memiliki hanya 1 data{satu simpul} Akhir. Akhir

STRUKTUR DATA. Literatur

Gambar 3.1. Circular Single Linked List. Deklarasi bisa dilihat kembali di Single Linked List atau Double Linked List.

LIST. Dewi Sartika, M.Kom

Lab. Teknik Informatika Struktur Data 1

Bab 4 Pointer dan Struktur Data Dinamik 16 BAB IV POINTER DAN STRUKTUR DATA DINAMIK TUJUAN PRAKTIKUM TEORI PENUNJANG

Jadi satu simpul di double linked list adalah sebagai berikut : Info. Kiri. Kanan

Algoritma dan Struktur Data. Pertemuan 9 Circular Linked List

ALGORITMA DAN STRUKTUR DATA

Algoritma dan Struktur Data

RESUME A B C D. Gambar 1 Double Linked list dengan Empat Simpul

Struktur Data. Queue (Antrian)

Kode MK/ Pemrograman Terstruktur 2. ZK Abdurahman Baizal. KK Algoritma dan Komputasi. Stack (Tumpukan)

KERUGIAN DAN KEUNTUNGAN LINKED LIST

A. Bagian I. Studi Kasus

1. Traversing Untuk algoritma traversing sama seperti pada single Link List

: Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Linked List. Single Linked List

Linked List 6.3 & 7.3 NESTED LOOP

3. DOUBLE LINK LIST. Lab. Teknik Informatika Struktur Data 1

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA LINKED LIST (BAGIAN 1)

(3) BAHAN KAJIAN (materi ajar)

DIG1G3 Implementasi Struktur Data

A. Bagian I. Studi Kasus [82]

LINKED LIST. TUJUAN UMUM Memahami konsep linked list TUJUAN KHUSUS

Tree (Struktur Data) Nisa ul Hafidhoh, MT

BAB II STACK Atau TUMPUKAN

Linked List dan Implementasinya dalam Bahasa Java

BAB II Senarai Berantai (Linked List)

PERTEMUAN KE 11. Linked List. Apa Itu Linked List?

LAPORAN PRAKTIKUM IX. Oleh:

Data structure :Metode LINK LIST. Kusnawi, S.Kom, M.Eng STMIK AMIKOM Yogyakarta

KONSEP POINTER DAN LINKED LIST

Algoritma dan Struktur Data. Pertemuan 7 Linked List

Kode MK/ Pemrograman Terstruktur 2. ZK Abdurahman Baizal. KK Algoritma dan Komputasi. Queue (Antrian)

SINGLE LINKED LIST (NON CIRCULAR)

Senarai berantai. linked list. Pertemuan keenam Struktur data st3telkom.ac.id. by : tenia wahyuningrum & Sisilia Thya Safitri

Pertemuan 3. Perubah Dinamis (Dinamic variable) Suatu perubah yang akan dialokasikan hanya pada saat diperlukan, yaitu setelah program dieksekusi.

Algoritma Pemrograman & Struktur Data

Review : Sifat Implementasi Linear List dengan Array

A B C D E F. Gambar 1. Senarai berantai dengan 6 simpul

ALGORITMA & PEMROGRAMAN

LINKED LIST. Altien Jonathan Rindengan, S.Si, M.Kom

Algoritma Pemrograman & Struktur Data

A. TUJUAN PEMBELAJARAN

Struktur. Bab 4: Linked LIst 4/8/2015

03 LINKED LIST. Slide 0 voice. Slide 1 voice. Slide 2 voice. Thompson Susabda Ngoen 1 P a g e

Praktikum Algoritma dan Struktur Data

Menghapus Pointer Statement yang digunakan untuk menghapus pointer adalah Dispose, yang mempunyai bentuk umum : Dispose(peubah) ;

Single Linked List (1)

KONSEP POINTER DAN LINKED LIST

QUEUE (ANTRIAN) Struktur Data - Queue

POINTER STACK DAN QUEUE. Institut Teknologi Sumatera

LOGO STRUKTUR DATA QUEUE

STRUKTUR DATA. Pengajar Jaidan Jauhari,, MT. Alamat Halaman 1

STRUKTUR DATA. Pengajar Jaidan Jauhari,, MT. Alamat Halaman 1

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA LINKED LIST (BAGIAN 2)

KUM 3 IMPLEMENTASI LIST

KONSEP POINTER DAN LINKED LIST

KONSEP POINTER DAN LINKED LIST

KONSEP POINTER DAN LINKED LIST

DOUBLE LINKED LIST. Danang Wahyu Utomo Danang Wahyu Utomo, M.Kom, M.CS

Cara Membuat Mail Merge di Word 2010

ARRAY DINAMIS. Type. Pengenal = Simpul Simpul = Type. (Nama var) : ( Type data)

MODUL PRAKTIKUM STRUKTUR DATA Modul ke-1, Pertemuan ke-1 Nama file : P01-XXX (XXX adalah 3 digit terakhir NIM) Deskripsi: Senarai, Traversal

Linked List. Bandung 2013

List akan disimpan dalam bagian memori komputer yang dinamakan HEAP

SINGLE LINKED LIST NON CIRCULAR (SENARAI BERANTAI TUNGGAL TIDAK BERPUTAR)

TOPOLOGICAL SORT dengan DFS dan METODE LAIN

Double Linked List. Brigida Arie Minartiningtyas, M.Kom

STACK (TUMPUKAN) Tumpukan uang koin Tumpukan kotak Tumpukan Buku. Gambar 1. Macam-macam tumpukan

STRUKTUR DATA (2) Single Linked List

Cara Membuat Mail Merge di Word 2007

QUEUE Antrian 1. DEFINISI

DIKTAT KULIAH STRUKTUR DATA. Disusun oleh: Sri Primaini A.

MODUL PRAKTIKUM STRUKTUR DATA

//membuat sebuah tipe data baru yang terdiri dari. //field data bertipe integer //field next merupakan pointer dari list

BAB 1 PENGANTAR KE STRUKTUR DATA

TUGAS PENDAHULUAN MODUL 12 PENGENALAN DAN IMPLEMENTASI STRUKTUR DATA STACK

Algoritma dan Struktur Data. Pertemuan 8 Doubly Linked List

PRAKTIKUM ALGORITMA DAN STRUKTUR DATA DOUBLE LINKED LIST CIRCULAR

DIG1G3 Implementasi Struktur Data

Transkripsi:

Variasi List Linier Nisa ul Hafidhoh, MT nisa@dsn.dinus.ac.id

Variasi Variasi List dengan Dummy Circular List Double Linked list

Variasi List dengan Dummy Elemen fiktif / elemen dummy : elemen yang sengaja dialokasi untuk mempermudah operasi, namun sebenarnya bukan elemen list. List dengan elemen fiktif dibuat agar list kosong tidak berbeda dengan list biasa sehingga semua tes terhadap list kosong dapat dihapuskan. Dummy bisa berupa address yang tetap, bisa sebuah address yang berbeda (setiap kali dummy tersebut dipakai sebagai elemen list, dialokasi dummy yang baru). Representasi ini dipakai jika dummy dikehendaki sebagai sentinel.

Variasi List dengan Dummy List 1 elemen Elemen pertama : First(L) Elemen terakhir : Last(L); = dummy@ First(L) Last(L) Elemen List Dummy@ 3 Menunjuk NIL List 1 element

Variasi List dengan Dummy List kosong First(L) = Last(L) = dummy@ First(L) Last(L) Elemen List Dummy@ Menunjuk NIL List Kosong

Variasi List dengan Dummy First(L) Last(L) 3 8 List 2 element Elemen List Menunjuk NIL Dummy@

Circular List

Circular List Circular list adalah list dengan elemen terakhir dalam list menunjuk pada elemen pertama list Node node pada linked list terhubung menggunakan field next, dimana menyimpan alamat dari node berikutnya pada field next (node sebelumnya) dan node terakhir mengarah / menuju ke node pertama Representasi ini dipakai jika dilakukan proses terus menerus terhadap anggota list (misalnya dalam round robin services pada sistem operasi).

Circular List 3 9 7 5 Operasi dasar : - Insert - Delete - Find - Print

Circular List First(L)= Nil First(L) Nil Elemen List 9 First(L)

Ciri Circular List List dengan representasi ini sebenarnya tidak mempunyai First. First adalah Current Pointer. Jika L adalah sebuah list, dan P adalah alamat elemen list, maka ciri circular list: Elemen pertama : First(L)= P, dengan P adalah address salah satu elemen list Elemen terakhir : Last(L)= P, Next(P)= First List kosong : First(L) = Nil

Find Mencari apakah ada elemen list yang beralamat di P Atur Pt menunjuk pada *First(L) Jika address Pt sama dengan P maka fungsi akan mengembalikan nilai true. Jika tidak, Tranversalkan Pt menuju P hingga kembali ke First(L)

Find First(L) Pt P 9 1 7 Elemen List

Find First(L) Pt P 9 1 7 Elemen List

Find First(L) Pt P 9 1 7 Elemen List True ketika Pt == P

Insert Menambah Elemen Ber-addres P sebagai Elemen Pertama pada Circuler List Jika List dalam keadaan kosong maka First(L) dan Next(P) adalah P Jika list tidak dalam keadaan kosong maka Next(P) adalah First(*L); First(L) adalah P; Next(Last) adalah First(*L);

Insert P First(*L) Last (*L) 9 9 Elemen List

Insert P First(*L) Last (*L) 9 9 Elemen List

Insert P First(*L) Last (*L) 9 9 Elemen List

Insert P First(*L) Last (*L) 9 9 Elemen List

Delete Menghapus Elemen Pertama Pada Circular List Cek apakah list dalam keadaan kosong Jika List hanya berisi satu elemen maka atur First(L) menjadi NIL Jika List Lebih dari satu elemen maka : Atur Next(First(L)) menjadi First(L) Atur First(L) menjadi P Atur Next(P) menjadi NIL

Delete First(L) P P = First(L) 9 1 7 Elemen List

Delete P Next(First(L)) = First(L) 9 1 7 Elemen List

Delete P First(L) 9 1 7 Next(P)=NIL Elemen List

Circular List Fungsi Print : - Jika pointer = first, tidak ada elemen dalam list - Cetak nilai data dari node (pointer -> data) dan pindah ke node next secara recursive dengan pointer -> next

Double Linked List

Double Linked List Ada kelemahan dalam single lingked list, yaitu: pengaksesan hanya dilakukan satu arah. Jika harus dilakukan banyak operasi terhadap elemen suksesor dan juga predesesor (Tidak perlu memorisasi Prec). Perlu fasilitas untuk memudahkan pengaksesan data secara bolak balik untuk pencarian dan pengurutan data

Double Linked List terdiri dari tiga bagian: Info (isi linked list) Prev (menunjuk alamat sebelum) Next (menunjuk alamat sesudah) PREV INFO NEXT

Ciri Double Linked List Elemen pertama : First(L) Elemen terakhir : Last(L)=P dan Next(P)= Nil List kosong : First(L) = Nil; Last(L) = Nil; Untuk sebuah address P yang merupakan address elemen list, maka didefinisikan Next(P) Prev(P) Info(P)

List dengan elemen kosong First(L) = Last(L) = Nil First Last

List dengan 1 elemen First(L)=Last(L) Next(First(L))=Nil Prev(First(L))=Nil First Last

List dengan lebih dari 1 elemen First Last Next(First(L))!= Nil Prev(First(L)) = Nil Next(Last(L)) = Nil Prev(Last(L))!= Nil

Insert First Menambah Elemen Ber-address P sebagai Elemen Pertama pada List Double Pointer Jika List Kosong Maka atur First(L) = P dan Last(L) =P Jika List Tidak dalam keadaan kosong maka : posisikan Next(P) menunjuk pada First(L) posisikan Prev(First(L)) menunjuk pada P Maka First(L) berpindah ke P

Insert First First Last 3 4 P

Insert First First Last 3 4 Next(P) = First (L) P

Insert First First Last Prev(First (L)) = P 3 4 Next(P) = First (L) P

Insert First Last First(L) = P 3 4 P

Delete First Menghapus Elemen Pertama pada List Double Pointer Cek Apakah Link tersebut kosong Jika list hanya terdapat satu elemen maka atur first(l) dan Last(L) menjadi NIL Jika list lebih dari satu elemen maka : Atur First(L) ke Next(First(L)) dimana P = First(L). Atur Prev(First(L)) menjadi NIL sehingga memutus hubungan First(L) menuju P. Atur Next(P) menjadi NIL sehingga memutus hubungan P menuju First(L).

Delete First First Last P 2 4 3 First(L)=P

Delete First First First(L)=Next(First(L)) Last P 2 4 3

Delete First First Last P 2 4 3 Prev(First(L))=NIL

Delete First First Last P 2 4 3 Next(P)=NIL

Tugas 1 Diberikan suatu linked list dengan elemen berikut: Data 5 3 21 17 Alamat 101 102 104 105 Buatlah ilustrasi linked list kemudian insert sebanyak 2 elemen baru dan delete 3 kali dengan : Circular List Double Linked List

Tugas 2 Sebagai seorang programmer harus dapat menganalisis masalah dan membuat pemecahannya. Lihatlah masalah yang ada di sekitar, kemudian rancanglah solusi untuk menyelesaikan masalah tersebut! Deskripsikan ide / gagasan yang dapat diimplementasikan.

Deliverable Tugas Tugas perorangan tulis tangan Dikumpulkan maksimal hari Jum at, 8 Desember 2017