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

dokumen-dokumen yang mirip
3. DOUBLE LINK LIST. Lab. Teknik Informatika Struktur Data 1

Lab. Teknik Informatika Struktur Data 1

KERUGIAN DAN KEUNTUNGAN LINKED LIST

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

BAB IX LINKED LIST (SENARAI BERANTAI)

Double Linked List. Brigida Arie Minartiningtyas, M.Kom

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) ;

List akan disimpan dalam bagian memori komputer yang dinamakan HEAP

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.

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

4. STACK / TUMPUKAN TEORI PENUNJANG

BAB III QUEUE (ANTRIAN)

Double Linked List DIKTAT KULIAH. Pertemuan 6

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

List Linear (Linked List) Farah Zakiyah Rahmanti 2014

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

Bagian I. Studi Kasus [82] Tanda tangan:

ALGORITMA & PEMROGRAMAN

5. QUEUE (ANTRIAN) TUJUAN PRAKTIKUM

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

2 SENARAI/LIST BERANTAI GANDA

Pertemuan VI ANTRIAN (Queue)

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

6. TREE / BINARY TREE

Algoritma dan Struktur Data

MODUL 6 SINGLE & DOUBLE LINKED LIST

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

Queue. Implementasi Queue dengan Array

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

Struktur Data. Queue (Antrian)

LOGO STRUKTUR DATA QUEUE

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

LIST. Dewi Sartika, M.Kom

Linked List. Bandung 2013

BAB II STACK Atau TUMPUKAN

LAPORAN PRAKTIKUM IX. Oleh:

LIST BERKAIT(LINKED LIST)

QUEUE (ANTRIAN) Struktur Data - Queue

STRUKTUR DATA. Literatur

BAB XI Manipulasi Binary Tree

BAB II STACK (TUMPUKAN)

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

Algoritma dan Struktur Data. Pertemuan 9 Circular Linked List

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

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

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

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

Variasi List Linier. Nisa ul Hafidhoh, MT

MODUL PRAKTIKUM STRUKTUR DATA

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

KONSEP POINTER DAN LINKED LIST

M Queue Berprioritas. Amin Arifiyani. Struktur Data M

KONSEP POINTER DAN LINKED LIST

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

KONSEP POINTER DAN LINKED LIST

Single Linked List. Single Linked List

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

KONSEP POINTER DAN LINKED LIST

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

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

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

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

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

Praktikum Algoritma dan Struktur Data

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

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

BAB 1 PENGANTAR KE STRUKTUR DATA

A. Bagian I. Studi Kasus [82]

05. Double Linked List

KONSEP POINTER DAN LINKED LIST

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

Pointer. Pengertian. Struktur Data Pascal

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

Teori Algoritma. Struktur Algoritma

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

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

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

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

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

Struktur Data. Belajar Struktur Data Menggunakan Pascal Pertemuan-1

MODUL PRAKTIKUM PERCABANGAN DAN PENGULANGAN

Algoritma dan Struktur Data. Pertemuan 7 Linked List

SINGLE LINKED LIST (NON CIRCULAR)

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

KONSEP DASAR BAHASA PASCAL

Modul Praktikum Algoritma dan Struktur Data BAB 6 LINKED LIST

A. TUJUAN PEMBELAJARAN

ANTRIAN ( QUEUE ) NAMA KELOMPOK : 1.EKA PRIHANTORO 2.FATKHUL ELEKTRIK PSH 3.RIZKY GUMILANG CR

Algoritma Pemrograman

Algoritma dan Struktur Data. Pertemuan 8 Doubly Linked List

Algoritma Pemrograman & Struktur Data

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

IKG2A3/ Pemrograman Terstruktur 2

Pertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN

Struktur Data II. Single Linked List - Non circular

{ Program Pointer Pertama } { Program Pointer Single Linklist }

LIST LINIER 1. DEFINISI

Transkripsi:

RESUME Linked list yang kita pelajari sebelumnya hanya mempunyai sebuah pointer pada setiap simpulnya. Hal ini merupakan kelemahan bahwa linked 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 linked list. Untuk itulah kita memerlukan linked 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. Linked list seperti ini disebut dengan Seranai Beranai Ganda (Double linkeded list). Double Linked list Secara garis besar Double linked list adalah linked list yang memiliki dua buah pointer yang menunjuk ke simpul sebelumnya (Prev) dan yang menunjuk ke simpul sesudahnya (Next). Gambar berikut menunjukkan gambaran Double Linked list: Tail D Gambar 1 Double Linked 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 linked list, diantaranya adalah : 1. Double Linked list selalu memiliki pointer petunjuk yang selalu menunjuk pada awal dari list yang disebut. 2. Double Linked 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 Linked list belum terhubung). 4. Posisi simpul terakhir pada Doube linked list selalu bernilai NIL karena ia tidak menunjuk pada simpul yang lainnya, kecuali bentuk circular. 5. Operasi yang dapat dilakukan pada Double Linked list diantaranya adalah : a. Inisialisasi. b. Menambah Simpul (di Depan, Belakang dan Tengah). c. Menghapus Simpul (di Depan, Belakang dan Tengah). d. Membaca isi linked list (Membaca maju dan mundur).

Circular er Double Linked list Jenis linked list ini merupakan jenis double linked 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 linked list. Gambar 2 Circular Double Linked list dengan tiga simpul Operasi Pada Circular er Double Linked list Ada empat jenis operasi pada linked list, yaitu : 1. Inisialisasi Proses ini dilakukan untuk mendefinisikan Circular double linked 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 Inisialisasi Circular Double Linked list Procedure inisialisasi dari gambar diatas dapat kita susun sebagai berikut : Procedure Inisialisasi(Var : PSimpul); New(); ^.Prev := ; ^.Next := ;

2. Menambah Simpul Menambah simpul pada double linked list ada tiga macam yaitu menambah di depan, belakang dan tengah, tapi hanya penambahan yang umum dipakai saja oleh double linked 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 4 Ilustrasi Penambahan Simpul pada Circular er Double Linked List

Procedure Menambah dari gambar di atas 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 linked 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 Linked list Masih Kosong } Writeln( Double Linked 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 } Writeln( Simpul Tidak di ketemukan! ); 4. Membaca Isi Double Linked list Dengan menggunakan double linked 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 linked 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 (=);