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

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

Lab. Teknik Informatika Struktur Data 1

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

KERUGIAN DAN KEUNTUNGAN LINKED LIST

BAB IX LINKED LIST (SENARAI BERANTAI)

Double Linked List. Brigida Arie Minartiningtyas, M.Kom

List akan disimpan dalam bagian memori komputer yang dinamakan HEAP

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

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

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

4. STACK / TUMPUKAN TEORI PENUNJANG

6. TREE / BINARY TREE

BAB VII SENARAI BERANTAI (List)

BAB IX LINKED LIST (SENARAI BERANTAI)

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

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

5. QUEUE (ANTRIAN) TUJUAN PRAKTIKUM

Algoritma dan Struktur Data

List Linear (Linked List) Farah Zakiyah Rahmanti 2014

BAB III QUEUE (ANTRIAN)

ALGORITMA & PEMROGRAMAN

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

Double Linked List DIKTAT KULIAH. Pertemuan 6

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

STRUKTUR DATA. Literatur

LAPORAN PRAKTIKUM IX. Oleh:

MODUL 6 SINGLE & DOUBLE LINKED LIST

Struktur Data. Queue (Antrian)

Bagian I. Studi Kasus [82] Tanda tangan:

LOGO STRUKTUR DATA QUEUE

Linked List. Bandung 2013

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

QUEUE (ANTRIAN) Struktur Data - Queue

LIST BERKAIT(LINKED LIST)

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

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

2 SENARAI/LIST BERANTAI GANDA

Pertemuan VI ANTRIAN (Queue)

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

MODUL PRAKTIKUM STRUKTUR DATA

BAB II STACK Atau TUMPUKAN

Algoritma dan Struktur Data. Pertemuan 9 Circular Linked List

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

KONSEP POINTER DAN LINKED LIST

Perancangan Perangkat Ajar Visualisasi Eksekusi Flowchart dan Konversinya ke Dalam Algoritma. Ahmad Suryan. Politeknik Telkom.

KONSEP POINTER DAN LINKED LIST

KONSEP POINTER DAN LINKED LIST

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

KONSEP POINTER DAN LINKED LIST

A. TUJUAN PEMBELAJARAN

BAB XI Manipulasi Binary Tree

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

Single Linked List. Single Linked List

BAB II STACK (TUMPUKAN)

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

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

SINGLE LINKED LIST (NON CIRCULAR)

Queue. Implementasi Queue dengan Array

PERTEMUAN VI POINTER 6.1 Tujuan Praktikum 6.2 Teori Penunjang Pointer

SATUAN ACARA PERKULIAHAN MATA KULIAH PEMROGRAMAN PASCAL * (TK) KODE / SKS: KK /2 SKS

Universitas gunadarma. pascal. Bab 4- bab 10. Hana Pertiwi S.T

LIST. Dewi Sartika, M.Kom

Praktikum Algoritma dan Struktur Data

KONSEP POINTER DAN LINKED LIST

Variasi List Linier. Nisa ul Hafidhoh, MT

Data Structure STRUKTUR DATA QUEUE. Chapter 3. Dahlia Widhyaestoeti, S.Kom

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

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

M Queue Berprioritas. Amin Arifiyani. Struktur Data M

Single Linked List (1)

Teori Algoritma. Struktur Algoritma

SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah : Struktur Data Kode : TIS3213 Semester : III Waktu : 1 x 3 x 50 Menit Pertemuan : 9

Algoritma dan Struktur Data. Pertemuan 7 Linked List

MODUL PRAKTIKUM PERCABANGAN DAN PENGULANGAN

SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah : Struktur Data Kode : TIS3213 Semester : III Waktu : 2 x 3 x 50 Menit Pertemuan : 4 & 5

STRUKTUR DATA (2) Single Linked List

BAB II Senarai Berantai (Linked List)

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

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

ALGORITMA DAN STRUKTUR DATA

BAB 1 PENGANTAR KE STRUKTUR DATA

A. TUJUAN PEMBELAJARAN

Praktikum 3. Konsep double linked list Struktur double linked list Implementasi double linked list dalam Bahasa C

SENARAI BERANTAI (LINK LIST)

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

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

Algoritma Pemrograman & Struktur Data

LIST LINIER 1. DEFINISI

05. Double Linked List

S T A C K ( T U M P U K A N )

Algoritma Pemrograman

STACK/TUMPUKAN. R. Denny Ari Wibowo, S.Kom STMIK BINA NUSANTARA JAYA LUBUKLINGGAU

IKG2A3/ Pemrograman Terstruktur 2

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

VARIABEL, TIPE DATA, KONSTANTA, OPERATOR DAN EKSPRESI. Pemrograman Dasar Kelas X Semester 2

Praktikum Stuktur Data [MODUL]

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

Perulangan Muh. Izzuddin Mahali, M.Cs. Pertemuan 3. Algoritma dan Struktur Data. PT. Elektronika FT UNY

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

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

Transkripsi:

3. DOUBLE LINK LIST TUJUAN PRAKTIKUM Setelah mengenal tipe data single link list maka : 1. Praktikan diharapkan dapat menggunakan double link list. 2. Praktikan diharapkan mengerti perbedaan antara single link list dan double link list serta jenis-jenis double link list yang lainnya. 3. Praktikan mampu membuat program pascal dengan menggunakan tipe data double link list. TEORI PENUNJANG 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 baru dan penghapusan simpul. Link list seperti ini disebut dengan Seranai Beranai Ganda (Double linked list). Juga disebut dengan Two Way List. 3.1. Double Link 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: Lab. Teknik Informatika Struktur Data 1

Tail D Gambar 3.1 Double Link list dengan empat simpul Deklarasi Double Linked List di dalam Pascal : Type Var PSimpul = ^Simpul Simpul = Record Info : Tipe Data; Prev : PSimpul; Next : PSimpul;, Tail : PSimpul; Ada 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. 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, Belakang dan Tengah). c. Menghapus Simpul (di Depan, Belakang dan Tengah). d. Membaca isi link list (Membaca maju dan mundur). Lab. Teknik Informatika Struktur Data 2

3.2. Circular er Double Link list Jenis link list ini merupakan jenis double link list yang memiliki simpul kepala dan tidak mempunyai tail ( = Tail). Fungsi simpul kepala dapat digunakan untuk menyimpan informasi tambahan pada list. Berikut ini merupakan ilustrasi dari circular header double link list. Gambar 3.2 Circular Double Link list dengan tiga simpul 3.3. Operasi Pada Circular er Double Link list Ada empat jenis operasi pada link list, yaitu : 1. Inisialisasi Proses ini dilakukan untuk mendefinisikan Circular double link list untuk pertama kalinya atau dengan kata lain ingin membuat. Pada proses ini kita menginginkan agar pointer kiri (Prev) dan kanan (Next) dari simpul kepala tidak bernilai NIL, sehingga simpul kepala pada saat inisialisasi bisa kita gambarkan sebagai berikut : Gambar 3.3 Inisialisasi Circular Double Link list Procedure inisialisasi dari gambar diatas dapat kita susun sebagai berikut : Procedure Inisialisasi(Var : PSimpul); New(); ^.Prev := ; ^.Next := ; Lab. Teknik Informatika Struktur Data 3

2. Menambah Simpul Menambah simpul pada double link list ada tiga macam yaitu menambah di depan, belakang dan tengah, tapi hanya penambahan yang umum dipakai saja oleh double link list yang akan dibahas yaitu penambahan simpul di belakang. Penambahan di belakang maksudnya menambahkan simpul-simpul baru pada posisi Tail. Gambar 3.4 ini merupakan ilustrasi penambahan simpul di belakang. Selanjutnya disertakan pula procedure untuk menambah simpul baru pada posisi belakang (Tail). a. b. c. d. e. Gambar 3.4 Ilustrasi penambahan simpul pada circular header double link list Lab. Teknik Informatika Struktur Data 4

Procedure Menambah dari gambar diatas dapat kita susun sebagai berikut : Procedure Tambah(Var : PSimpul; Elemen : Char); Var : PSimpul; New(); ^.Info := Elemen; ^.Prev := ^.Prev; ^.Next := ; ^.Prev^.Next := ; ^.Prev := ; 3. Menghapus Simpul Operasi menghapus simpul juga ada tiga macam yaitu menghapus simpul di depan, belakang dan tengah. Tapi dengan menggunakan double link list proses pencarian simpul yang akan dihapus menjadi semakin cepat. Untuk menghapus sebuah simpul diperlukan satu buah tambahan variabel pointer yaitu variabel bantu yang berguna untuk menunjukkan simpul manakah yang akan dihapus. Procedure Hapus selengkapnya adalah sebagai berikut : Procedure Hapus(Var : PSimpul; Elemen : Char); Var : PSimpul; If ^.Next = Then { Jika Link list Masih Kosong } Writeln( Double Link list Masih Kosong ) Else {Menghapus simpul tengah / } {Akhir } := { Memulai proses pencarian elemen yang akan dihapus } Repeat := ^.Next; Until (^.Info=Elemen) or (Bantu = ); If ^.Info = Elemen Then { Jika simpul ketemu } ^.Prev^.Next := ^.Next; ^.Next^.Prev := ^.Prev; Dispose(); := ; End Else { Simpul yang akan dihapus tidak ketemu } Lab. Teknik Informatika Struktur Data 5

Writeln( Simpul Tidak di ketemukan! ); 4. Membaca Isi Double Link list Dengan menggunakan double link list proses pembacaan simpul dapat dilakukan dua arah tanpa harus dilakukan prosedur membalik simpul. Kita hanya menggunakan satu prosedur bantu yang pointer next-nya kita gunakan jika kita ingin membaca mundur atau pointer prev-nya jika kita ingin melakukan pembacaan secara maju. Procedure membaca isi double link list selengkapnya adalah sebagai berikut : Procedure BacaMaju( : PSimpul); Var : PSimpul; := ^.Prev; Repeat Write(^.Info, ); := ^.Prev; Until (=); Procedure BacaMundur( : PSimpul); Var : PSimpul; := ^.Next; Repeat Write(^.Info, ); := ^.Next; Until (=); Lab. Teknik Informatika Struktur Data 6

LAPORAN PENDAHULUAN 1. Sebutkan jenis-jenis double link list beserta penjelasannya. 2. Bagaimana cara pendefinisian Circular double link list. 3. Jelaskan mengenai operasi pada circular double link list. (penggambaran proses penginputan, penyisipan dan penghapusan simpul). MATERI PRAKTIKUM 1. Praktikan mengetahui double link list beserta jenisnya terutama mengenai circular double link list. 2. Praktikan dapat menerangkan jenis-jenis double link list (keseluruhan jenisnya) minimal dengan menggunakan bagan/gambar atau juga dapat dengan program sederhana. 3. Praktikan dapat membuat program-program sederhana dari pendefinisan double link list dan operasi-operasi double link list. LAPORAN AKHIR Buat Algoritma dari program sebelumnya ditambah dengan ringkasan materi Double Link list. Lab. Teknik Informatika Struktur Data 7