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

dokumen-dokumen yang mirip
IKG2A3/ Pemrograman Terstruktur 2

Variasi List Linier (Bagian 2)

Representasi Logic List Linier

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

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

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

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

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

Variasi List Linier. Nisa ul Hafidhoh, MT

Struktur Data. Queue (Antrian)

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

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

Bagian I. Studi Kasus [82] Tanda tangan:

LIST LINIER 1. DEFINISI

A. Bagian I. Studi Kasus

Kode MK/ Pemrograman Terstruktur 2

Pengantar List Linier

A. Bagian I. Studi Kasus [82]

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

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

IKG2A3/ Pemrograman Terstruktur 2. ZK Abdurahman Baizal. KK Algoritma dan Komputasi. Mesin Abstrak

Games and Quiz PT II. Dr. Putu Harry Gunawan, MSi.,MSc. phg-simulation-laboratory.com

Kode MK/ Pemrograman Terstruktur 2

4 LINKED LIST. 4.1 Istilah-istilah 1. Simpul Simpul terdiri dari dua bagian, yaitu : Bagian data Bagian pointer yang menunjuk ke simpul berikutnya.

BAB 1 PENGANTAR KE STRUKTUR DATA

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

ALGORITMA & PEMROGRAMAN

CCH1A4 / Dasar Algoritma & Pemrogramanan

Pencarian pada Array. Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang

BAB II STACK Atau TUMPUKAN

CCH1A4 / Dasar Algoritma & Pemrogramanan

CCH1A4 / Dasar Algoritma & Pemrogramanan

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

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

BAB IX LINKED LIST (SENARAI BERANTAI)

BAB XI Manipulasi Binary Tree

CCH1A4 / Dasar Algoritma & Pemrogramanan

LOGO STRUKTUR DATA QUEUE

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

BAB IX LINKED LIST (SENARAI BERANTAI)

Algoritma Euclidean dan Struktur Data Pohon dalam Bahasa Pemrograman LISP

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

QUEUE Antrian 1. DEFINISI

PENGULANGAN Bagian 1 : Notasi. Tim Pengajar KU1071 Sem

RENCANA PEMBELAJARAN SEMESTER (RPS)

Pengantar Struktur Data

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

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

MODUL 6 SINGLE & DOUBLE LINKED LIST

QUEUE (ANTRIAN) Struktur Data - Queue

CCH1A4 / Dasar Algoritma & Pemrogramanan

Linked List. Bandung 2013

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

MODUL PRAKTIKUM PERCABANGAN DAN PENGULANGAN

CCH1A4 / Dasar Algoritma & Pemrogramanan

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

Array (Tabel) Tim Pengajar KU1071 Sem /11/3 TW/KU1071 1

Optimalisasi Algoritma Pencarian Data Memanfaatkan Pohon Biner Terurut

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

GANJIL 2009/2010 NIM: Algoritma dan Struktur Data / CS2014 Nama :

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

Abstract Data Type (ADT)

Array. Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang

Pendahuluan Struktur Data. Nisa ul Hafidhoh

PENCARIAN BERUNTUN (SEQUENTIAL SEARCHING)

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

TOPOLOGICAL SORT dengan DFS dan METODE LAIN

LATIHAN UTS Tim Pengajar KU1071 Sem

Implementasi Struktur Data Stack (Tumpukan) dalam Tower of Hanoi Game

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

CCH1A4 / Dasar Algoritma & Pemrogramanan

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

CCH1A4 / Dasar Algoritma & Pemrogramanan

Modul Praktikum Algoritma dan Struktur Data BAB 6 LINKED LIST

CCH1A4 / Dasar Algoritma & Pemrogramanan

Algoritma dan Struktur Data. Pertemuan 9 Circular Linked List

SENARAI BERANTAI (LINK LIST)

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

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

LIST. Dewi Sartika, M.Kom

Pohon Biner Bagian 2 (Pohon Seimbang, Pohon Biner Terurut, Pembangunan Pohon Biner dari Pita Karakter/String)

Lab. Teknik Informatika Struktur Data 1

DIKTAT KULIAH ALGORITMA dan STRUKTUR DATA II. Tujuan Pembelajaran : Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Stack.

POINTER STACK DAN QUEUE. Institut Teknologi Sumatera

KERUGIAN DAN KEUNTUNGAN LINKED LIST

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

Algoritma dan Struktur Data. Pertemuan 7 Linked List

BAB 1 KONSEP DASAR. Algoritma adalah urutan langkah-langkah logis untuk menyelesaikan sebuah masalah yang disusun secara sistematis.

Pohon Biner. Tim Pengajar IF2030 Semester I/ /8/2009 FNA/IF2030/Sem

Aplikasi Graf Breadth-First Search Pada Solver Rubik s Cube

Pohon Biner (Bagian 1)

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

Double Linked List. Brigida Arie Minartiningtyas, M.Kom

SEARCHING. Pusat Pengembangan Pendidikan Universitas Gadjah Mada 1

UJIAN AKHIR SEMESTER GANJIL 2005/2006 ALGORITMA & STRUKTUR DATA / CS2014

c. Hasil pencarian berupa nilai Boolean yang menyatakan status hasil pencarian. Versi 1 (Pembandingan elemen dilakukan sebagai kondisi pengulangan)

ALGORITMA PENCARIAN SIMPUL SOLUSI DALAM GRAF

BAB III QUEUE (ANTRIAN)

MODUL PRAKTIKUM STRUKTUR DATA

AlgoritmaBrute Force. Desain dan Analisis Algoritma (CS3024)

Transkripsi:

IKG2A3/ Pemrograman Terstruktur 2 ZK Abdurahman Baizal KK Algoritma dan Komputasi Variasi List Linier 1 8/25/2015

Pendahuluan Pada Bab ini kita akan membahas tentang beberapa di antara variasi list linier, dimana masing-masing variasi mempunyai tujuan tertentu Variasi list yang ada tidak terbatas pada beberapa variasi yang dibahas dalam bab ini, silakan anda mencari variasi yang lain dari textbook yang lain Untuk memperdalam pemahaman, silakan anda coba buat ADT dari beberapa variasi list linier 2 8/25/2015 IKG2A3 Pemrograman Terstruktur 2

1. List linier yang dicatat alamat elemen pertama dan elemen akhir Elemen pertama : First(L) Elemen terakhir : Last(L)=P List kosong : First(L) = Nil List ini dibutuhkan jika seringkali dilakukan operasi terhadap elemen terakhir, misalnya penambahan elemen yang selalu dilakukan di akhir. 3 8/25/2015

1. List linier yang dicatat alamat elemen pertama dan elemen akhir Kamus : {List direpresentasi dg pointer} Address : ^ElmtList type InfoType :.{terdefinisi} type ElmtList : <Info: InfoType, Next: address> type List : <First, Last: address> {Deklarasi nama untuk variable keja} P: address {address untuk traversal} {Maka penulisan First(L) menjadi L.First Next(P) menjadi P^.Next Info(P) menjadi P^.Info} 4 8/25/2015

2. List yang elemen terakhir menunjuk pada diri sendiri : Elemen pertama : First(L) Elemen terakhir : Last(L ) = P, dengan Next(P)=P List kosong : First(L) = Nil List dengan representasi ini dipilih jika tidak dikehendaki mendapatkan suatu alamat P yang bernilai Nil pada akhir traversal 5 8/25/2015

3. List dengan elemen fiktif pada ekor : Elemen pertama : First(L) Elemen terakhir : Last(L) = dummy@ List kosong : First(L) = dummy@ dengan dummy@ yang terdefinisi pada saat list kosong dibuat List dengan elemen fiktif dibuat agar list kosong tidak berbeda dengan list biasa sehingga semua test terhadap list kosong dapat dihapuskan 6 8/25/2015

4. List dengan elemen fiktif pada kepala Elemen pertama : First(L) Elemen terakhir : First(L) = dummy@ List kosong : First(L) = dummy@ dengan dummy@ yang terdefinisi pada saat list kosong dibuat Dengan elemen fiktif pada kepala, maka insertlast pada list kosong menjadi sama dengan insertlast pada list biasa. First(L) tidak pernah Nil, melainkan selalu terdefinisi, pada saat CreateList. 7 8/25/2015

5. List dengan elemen fiktif pada kepala dan ekor Elemen pertama : First(L)= dummyfirst@ Elemen terakhir : Last(L) = dummylast@ List kosong : First(L)=dummyFirst@ dengan dummyfirst@, DummyLast@ yang terdefinisi pada saat list kosong dibuat List ini dipilih jika operasi penambahan dan penghapusan sebagai elemen pertama dan terakhir ingin dihindari. Dengan representasi semacam ini, semua operasi penambahan dan penghapusan menjadi operasi di tengah (After). 8 8/25/2015

6. List sirkuler Elemen pertama : First(L)= P, Elemen terakhir : Last(L)= P, Next(P)= First List kosong : First(L) = Nil Representasi ini dipakai jika dilakukan proses terus menerus terhadap anggota list (misalnya dalam round robin services pada sistem operasi). 9 8/25/2015

6. List sirkuler Kamus : {List direpresentasi dg pointer} Address : ^ElmtList type InfoType :.{terdefinisi} type ElmtList : <Info: InfoType, Next: address> type List : <First: address> {Deklarasi nama untuk variable keja} P: address {address untuk traversal} {Maka penulisan First(L) menjadi L.First Next(P) menjadi P^.Next Info(P) menjadi P^.Info} 10 8/25/2015

7. List dengan pointer ganda Elemen pertama : First(L) Elemen terakhir : Last(L)=P, Next(P)= Nil List kosong : First(L) = Nil 11 8/25/2015

7. List dengan pointer ganda List dengan pointer ganda dibutuhkan jika banyak operasi terhadap elemen predesesor, untuk menghindari pencatatan Prec pada beberapa algoritma yang pernah didefinisikan 12 8/25/2015

7. a. ADT List dengan pointer ganda Kamus : {List direpresentasi dg pointer} Address : ^ElmtList type InfoType :.{terdefinisi} type ElmtList : <Info: InfoType, Next: address, Prev: address> type List : <First: address> {Deklarasi nama untuk variable keja} P: address {address untuk traversal} {Maka penulisan First(L) menjadi L.First Next(P) menjadi P^.Next Info(P) menjadi P^.Info} 13 8/25/2015

7.a. ADT List dengan pointer ganda function DoubleEmpty (input L: ListGanda) boolean {ListDoubleEmpty memeriksa apakah list dengan penunjuk ganda L kosong atau tidak. Menghasilkan true jika L kosong, false jika tidak kosong } Kamus : P : address Algoritma : L.First = Nil 14 8/25/2015

7. a. ADT List dengan pointer ganda procedure doubleinsertafter (input P:Address, input Prec:address) {menyisipkan elemen P sesudah elemen Prec} {I.S. : P sudah terdefinisi, P Nil, P^.Next=Nil, P^.Prev=Nil Prec adalah address elemen di dalam list F.S. : P^.Next=Prec^.Next, Prec^.Next^.Prev=P, Prec^.Next=P P^.Prev=Prec} Kamus : Algoritma : P^.Next Prec^.Next Prec^.Next^.Prev P Prec^.Next P P^.Prev Prec 15 8/25/2015

7. a. ADT List Pointer Ganda procedure DoubleInsertLast (input/ouput L: ListGanda, input P:Address) {menyisipkan elemen P sebagai elemen terakhir list L} {I.S. : L mungkin kosong, P sudah terdefinisi, P Nil, P^.Next=Nil, dan P^.Prev = Nil F.S. : P adalah elemen terakhir list L. Jika L kososng, L.First=P} Kamus : Last : address Algoritma : if L.First = Nil then {List kosong} {sisip P sebagai elemen pertama} L.First P else {cari elemen terakhir} Akhir L.Head while Last^.Next <> Nil do akhir akhir^.next {Last^.Next=Nil} P^.Prev Last Last^.Next P 16 8/25/2015

7. a. ADT List Pointer Ganda procedure DoubleDeleteFirst(input/output L:Listganda, output P:address) {Menghapus elemen pertama list dengan pointer ganda L} { I.S. : L tidak kosong, minimal satu buah elemen F.S. : P berisi address elemen pertama L } Kamus : Algoritma : P L.First L.First L.Head^.Next if L.First <> Nil then L^.First^.Prev Nil P^.Next Nil 17 8/25/2015

7.a. ADT List Pointer Ganda procedure DoubleDeleteAfter(input Prec:Address, output P:Address) {Menghapus elemen sesudah elemen Prec} { I.S. : Prec adalah alamat elemen list L, Prec^.Next Nil F.S. : P berisi alamat elemen yang dihapus dari L } Kamus : Algoritma : P Prec^.Next Prec^.Next Prec^.Next^.Next if Prec^.Next <> Nil then Prec^.Next^.Prev Prec P^.Next Nil P^.Prev Nil 18 8/25/2015

procedure DoubleDeleteLast(input/output L:Listganda, output P:address) {Menghapus elemen terakhir list dengan pointer ganda L} { I.S. : L tidak kosong, minimal satu buah elemen F.S. : P adalah elemen terakhir list L sebelum penghapusan P^.Next=Nil dan P^.Prev=Nil } Kamus : Last : address Algoritma : {Cari alamat elemen terakhir} Last L.First while last^.next <> Nil do Last last^.next {last^.next=nil} P last {ambil alamat elemen yang dihapus} if Last^.Prev=Nil then {Last adalah elemen satu-satunya} L.First Nil else Last^.Prev^.Next Nil P^.Prev Nil 19 8/25/2015

7. a. ADT List dengan pointer ganda procedure DoubleInsertFirst (input/ouput L: ListGanda, input P:Address) {menyisipkan elemen P sebagai elemen pertama list L} {I.S. : L mungkin kosong, P sudah terdefinisi, P Nil, P^.Next=Nil, dan P^.Prev = Nil F.S. : P adalah elemen pertama list L sehingga L.First = P} Kamus : Algoritma : if L.First <> Nil then {L tidak kosong} L.First^.Prev P P^.Next L.Head L.First P 20 8/25/2015

8. List pointer ganda dengan pencatatan elemen pertama dan terakhir First Last 21 8/25/2015

8. List pointer ganda dengan pencatatan elemen pertama dan terakhir Kamus : {List direpresentasi dg pointer} Address : ^ElmtList type InfoType :.{terdefinisi} type ElmtList : <Info: InfoType, Next: address, Prev: address> type List : <First, Last: address> {Deklarasi nama untuk variable keja} P: address {address untuk traversal} {Maka penulisan First(L) menjadi L.First Next(P) menjadi P^.Next Info(P) menjadi P^.Info} 22 8/25/2015

Latihan Buatlah ADT untuk minimal 3 variasi list yang telah dipelajari 23 8/25/2015

Referensi Diktat Kuliah IF2181 Struktur Data, Inggriani Liem, ITB, 2003. 24 8/25/2015

8/25/2015 THANK YOU