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

dokumen-dokumen yang mirip
RESUME A B C D. Gambar 1 Double Linked list dengan Empat Simpul

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

BAB IX LINKED LIST (SENARAI BERANTAI)

KERUGIAN DAN KEUNTUNGAN LINKED LIST

Double Linked List. Brigida Arie Minartiningtyas, M.Kom

Lab. Teknik Informatika Struktur Data 1

BAB IX LINKED LIST (SENARAI BERANTAI)

List Linear (Linked List) Farah Zakiyah Rahmanti 2014

List akan disimpan dalam bagian memori komputer yang dinamakan HEAP

Double Linked List DIKTAT KULIAH. Pertemuan 6

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

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

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

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

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

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

KONSEP POINTER DAN LINKED LIST

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

KONSEP POINTER DAN LINKED LIST

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

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

KONSEP POINTER DAN LINKED LIST

KONSEP POINTER DAN LINKED LIST

KONSEP POINTER DAN LINKED LIST

MODUL 6 SINGLE & DOUBLE LINKED LIST

BAB III QUEUE (ANTRIAN)

5. QUEUE (ANTRIAN) TUJUAN PRAKTIKUM

STRUKTUR DATA. Literatur

SINGLE LINKED LIST (NON CIRCULAR)

ALGORITMA & PEMROGRAMAN

M Queue Berprioritas. Amin Arifiyani. Struktur Data M

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

BAB VII SENARAI BERANTAI (List)

LAPORAN PRAKTIKUM IX. Oleh:

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

STRUKTUR DATA single linked list non circular

A. TUJUAN PEMBELAJARAN

STRUKTUR DATA (2) Single Linked List

4. STACK / TUMPUKAN TEORI PENUNJANG

Linked List. Bandung 2013

LIST. Dewi Sartika, M.Kom

POINTER PADA PASCAL. <nama_var> : ^<tipe_data>; <nama_var> : pointer;

Struktur Data II. Single Linked List - Non circular

Praktikum Algoritma dan Struktur Data

Variasi List Linier. Nisa ul Hafidhoh, MT

Array VS Linked List

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

Algoritma dan Struktur Data

Tugas Studi Kasus. Linked List SLLNC dengan Head & Tail

6. TREE / BINARY TREE

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

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

BAB XI Manipulasi Binary Tree

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

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

LIST BERKAIT(LINKED LIST)

ALGORITMA DAN STRUKTUR DATA

Ujian Tengah Semester Struktur Data dan Algoritma Fakultas Ilmu Komputer, Universitas Indonesia 9 November 2006

DOUBLY LINKED LIST PROGRAM : DOUBLY LINKED LIST (TAMBAH SIMPUL DI BELAKANG)

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

Pertemuan 4. Single Linked List non Circular Menggunakan Head dan Tail

Struktur Data. Queue (Antrian)

Linked List dan Implementasinya dalam Bahasa Java

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

QUEUE (ANTRIAN) Struktur Data - Queue

LOGO STRUKTUR DATA QUEUE

Algoritma dan Struktur Data. Pertemuan 9 Circular Linked List

SENARAI BERANTAI (LINK LIST)

A. TUJUAN PEMBELAJARAN

MODUL PRAKTIKUM STRUKTUR DATA

BAB II Senarai Berantai (Linked List)

Pertemuan 3 RECORD. Contoh penggunaan record (dalam program PASCAL) : Type Siswa = record Nama : string[25]; Kelas : 1..6; Nilai : real; end;

Algoritma Pemrograman & Struktur Data

STACK (TUMPUKAN) Secara sederhana, sebuah tumpukan bisa kita ilustrasikan seperti gambar berikut.

BAB II STACK Atau TUMPUKAN

Algoritma dan Struktur Data. Ramos Somya, S.Kom., M.Cs.

Algoritma dan Struktur Data. Pertemuan 7 Linked List

Pointer. Pengertian. Struktur Data Pascal

DIKTAT KULIAH ALGORITMA dan STRUKTUR DATA II. : Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Queue.

ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

Linked List 6.3 & 7.3 NESTED LOOP

05. Double Linked List

Modul Praktikum Algoritma dan Struktur Data BAB 6 LINKED LIST

Algoritma dan Struktur Data. Ramos Somya

BAB II STACK (TUMPUKAN)

DIG1G3 Implementasi Struktur Data

Bagian I. Studi Kasus [82] Tanda tangan:

List Berkait(Linked List) Overview. Tujuan Instruksional

Single Linked List (1)

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

Single Linked List. Single Linked List

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

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

Tutorial - Single Linked List

LINKED LIST. TUJUAN UMUM Memahami konsep linked list TUJUAN KHUSUS

PRAKTIKUM ALGORITMA DAN STRUKTUR DATA DOUBLE LINKED LIST CIRCULAR

BAB IV Antrian(Queue)

MAKALAH STRUKTUR DATA. DOSEN PEMBIMBING Nisa miftachurohmah, S.kom., M.Si PENYUSUN SITI JAMILATUL MU ADDIBAH ( )

PERTEMUAN VI POINTER 6.1 Tujuan Praktikum 6.2 Teori Penunjang Pointer

Queue. Implementasi Queue dengan Array

Transkripsi:

Double linked list Link list yang kita pelajari sebelumnya hanya mempunyai sebuah pointer pada setiap simpulnya. Hal ini merupakan kelemahan bahwa link list tersebut hanya bisa dibaca dalam satu arah saja, yaitu dari kiri ke kanan. Hal yang seperti ini kurang cepat jika kita ingin mencari data di dalam link list Untuk itulah kita memerlukan link list yang setiap simpulnya mempunyai 2 buah pointer, dengan pointer pertama menunjuk ke simpul sebelumnya (sebelah kiri) dan pointer kedua menunjuk ke simpul sesudahnya (disebelah kanan). Hal ini akan mempermudah pembacaan (bisa dilakukan dari kiri ke kanan dan dari kanan ke kiri), begitu juga untuk penambahan simpul dan penghapusan simpul. Link list seperti ini disebut dengan Seranai eranai Ganda (Double linked list). Juga disebut dengan Two Way List Secara garis besar Double link list adalah link list yang memiliki dua buah pointer yang menunjuk ke simpul sebelumnya (Prev) dan yang menunjuk ke simpul sesudahnya (Next). Gambar berikut menunjukkan gambaran Double Link list C D Gambar 1. Double linket list dengan empat simpul Deklarasi Double Linked List di dalam Pascal : Type Var PSimpul =^Simpul Simpul = Record Info : char; Prev : PSimpul; Next : PSimpul; Head, Tail : PSimpul; da beberapa hal yang harus diketahui mengenai Double link list, diantaranya adalah : 1. Double Link list selalu memiliki pointer petunjuk yang selalu menunjuk pada awal dari list yang disebut Head 2. Double Link list juga selalu memiliki pointer petunjuk menunjuk pada akhir dari list yang disebut Tail.

3. Setiap simpul yang terbentuk selalu memiliki nilai NIL, kecuali jika simpul tersebut sudah ditunjuk oleh simpul yang lainnya (Double Link list belum terhubung). 4. Posisi simpul terakhir pada Doube link list selalu bernilai NIL karena ia tidak menunjuk pada simpul yang lainnya, kecuali bentuk circular. 5. Operasi yang dapat dilakukan pada DoubleLink list diantaranya adalah : a. Inisialisasi. b. Menambah Simpul (di Depan, elakang dan Tengah). c. Menghapus Simpul (di Depan, elakang dan Tengah). d. Membaca isi link list. 1. Membuat Simpul aru Untuk membuat node digunakan keyword new. Perintah ini digunakan untuk mempersiapkan sebuah node dengan alokasi memorinya. Selanjutnya medan informasi pada node tersebut diisi dengan data tertentu. Terakhir pointer dan diisi dengan NILL. New(aru); aru^.info := Elemen; aru^.next := Nil; aru^.prev := Nil; 2. Menambah Simpul di wal Penambahan node yang akan diletakkan di node paling depan, perlu diperhatikan saat pertama kali (data masih kosong), maka saat penambahan data dilakukan / ditunjukkan ke node tersebut. Sedangkan jika tidak kosong, data akan ditambahkan didepan, kemudian node akan berubah menjadi.

Procedure TDep(Var Head, Tail : PSimpul; Elemen : Char); Var aru : PSimpul; egin New(aru); aru^.info := Elemen; aru^.next := Nil; aru^.prev := Nil; if = nil then := ; := aru^.next := Head; Head^.Prev := aru; Head := aru 3. Menambah Simpul di elakang Penambahan node di belakang akan selalu dikaitkan dengan dan kemudian node tersebut akan menjadi.

Procedure Tel(Var Head, Tail : PSimpul; Elemen : Char); Var aru : PSimpul; egin New(aru); aru^.info := Elemen; aru^.next := Nil; aru^.prev := Nil; if = nil then := ; := Tail^.Next := aru; aru^. := Tail; Tail := aru 4. Menghapus Simpul di wal Menghapus node tidak boleh dilakukan jika keadaan node sedang ditunjuk oleh pointer, maka harus dilakukan penggunakan suatu pointer lain yang digunakan untuk menunjuk node yang akan dihapus, misalnya pointer hapus. Kemudian harus ditunjukkan ke node sesudahnya terlebih dahulu agar list tidak putus, sehingga node setelah lama akan menjadi. Setelah itu lah kemudian menghapus pointer hapus dengan menggunakan perintah delete. Jika masih NIL maka berarti data masih kosong!

C D hapus C D Procedure HDepan(Var Head, Tail : PSimpul); Var Hapus : PSimpul; egin if = nil then Write('List Kosong') if Head^.Next = Nil Then Hapus := Head; Head := Nil; Tail := Nil; Dispose(Hapus) egin Hapus := Head; Head := Hapus^.Next; Head^.Prev := Nil; Dispose(Hapus); End 5. Menghapus Simpul di elakang Menghapus simpul di belakang dibutuhkan satu buah pointer bantuan, misal pointer hapus, tidak perlu melakukan perulangan untuk mencari node terakhir seperti pada single linked list. Pointer hapus hanya perlu menunjuk pada pointer saja. Sebelum penghapusan node, harus dipindahkan pada node sebelumnya. Selanjutnya pointer dari diberi nilai NILL. Kemudian langkah terakhir simpul hapus di-delete

C D hapus C Procedure Hel(Var Head, Tail : PSimpul); Var Hapus : PSimpul; egin if = nil then Write('List Kosong') if Head^.Next = Nil Then Hapus := Head; Head := Nil; Tail := Nil; Dispose(Hapus) egin Hapus := Tail; Tail := Hapus^.Prev; Tail^.Next := Nil; Dispose(Hapus); End