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

dokumen-dokumen yang mirip
IKG2A3/ Pemrograman Terstruktur 2

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

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

LIST LINIER 1. DEFINISI

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

Representasi Logic List Linier

Variasi List Linier (Bagian 2)

Struktur Data. Queue (Antrian)

Bagian I. Studi Kasus [82] Tanda tangan:

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

QUEUE Antrian 1. DEFINISI

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

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

BAB IX LINKED LIST (SENARAI BERANTAI)

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

A. Bagian I. Studi Kasus

Variasi List Linier. Nisa ul Hafidhoh, MT

BAB 1 PENGANTAR KE STRUKTUR DATA

A. Bagian I. Studi Kasus [82]

Algoritma Euclidean dan Struktur Data Pohon dalam Bahasa Pemrograman LISP

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

Pengantar List Linier

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

BAB II STACK Atau TUMPUKAN

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

Kode MK/ Pemrograman Terstruktur 2

ALGORITMA & PEMROGRAMAN

Lab. Teknik Informatika Struktur Data 1

MODUL 6 SINGLE & DOUBLE LINKED LIST

Optimalisasi Algoritma Pencarian Data Memanfaatkan Pohon Biner Terurut

BAB IX LINKED LIST (SENARAI BERANTAI)

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

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

PENGULANGAN Bagian 1 : Notasi. Tim Pengajar KU1071 Sem

LOGO STRUKTUR DATA QUEUE

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

BAB XI Manipulasi Binary Tree

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

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

MODUL PRAKTIKUM PERCABANGAN DAN PENGULANGAN

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

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

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

LATIHAN UTS Tim Pengajar KU1071 Sem

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

CCH1A4 / Dasar Algoritma & Pemrogramanan

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

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

CCH1A4 / Dasar Algoritma & Pemrogramanan

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

{ Kamus Umum } constant IdxMax : integer = 100 constant IdxMin : integer = 1 constant IdxUndef : integer = -999 { indeks tak terdefinisi}

Pendahuluan Struktur Data. Nisa ul Hafidhoh

Array dan Matriks. IF2121 / Algoritma dan Struktur Data Sem / /7/2017 IF2121/sem /2018 1

Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort

MATRIKS. Dapat disimpan secara linier dan kontigu dengan dua alternatif sebagai berikut : a. Per baris

Array (Tabel) bagian 2

Linked List. Bandung 2013

QUEUE (ANTRIAN) Struktur Data - Queue

PENCARIAN BERUNTUN (SEQUENTIAL SEARCHING)

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

LIST. Dewi Sartika, M.Kom

CCH1A4 / Dasar Algoritma & Pemrogramanan

Aplikasi Graf Breadth-First Search Pada Solver Rubik s Cube

CCH1A4 / Dasar Algoritma & Pemrogramanan

PENCARIAN SOLUSI TTS ANGKA DENGAN ALGORITMA RUNUT BALIK BESERTA PENGEMBANGANNYA

Analisis Perbandingan Algoritma Rekursif dan Non-Rekursif secara DFS (Depth First Search) dengan Memanfaatkan Graf

CCH1A4 / Dasar Algoritma & Pemrogramanan

TOPOLOGICAL SORT dengan DFS dan METODE LAIN

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

Modul Praktikum Algoritma dan Struktur Data BAB 6 LINKED LIST

ALGORITMA PENCARIAN SIMPUL SOLUSI DALAM GRAF

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

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

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

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

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

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

STACK Tumpukan TOP TOP BOTTOM BOTTOM

POINTER STACK DAN QUEUE. Institut Teknologi Sumatera

DASAR PEMROGRAMAN. Institut Teknologi Sumatera

ALGORITMA DAN STRUKTUR DATA

Algoritma Pemrograman & Struktur Data

PERBANDINGAN APLIKASI ALGORITMA BRUTE-FORCE DAN KOMBINASI ALGORITMA BREADTH FIRST SEARCH DAN GREEDY DALAM PENCARIAN SOLUSI PERMAINAN TREASURE HUNT

PENGULANGAN SKEMA PEMROSESAN SEKUENSIAL. Tim Pengajar KU1071 Sem

PRAKTIKUM ALGORITMA & PEMROGRAMAN III MODUL_06 Stack (Tumpukan)

Algoritma dan Struktur Data. Pertemuan 9 Circular Linked List

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

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

ARRAY/LARIK. 3/25/2010 Materi Array - RIE 1

Analisis Pengimplementasian Algoritma Greedy untuk Memilih Rute Angkutan Umum

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

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

(3) BAHAN KAJIAN (materi ajar)

Penerapan Algoritma DFS dan BFS untuk Permainan Wordsearch Puzzle

Algoritma Pemrograman & Struktur Data

Algoritma dan Struktur Data. Pertemuan 7 Linked List

Transkripsi:

Pertemuan Ke 6 : Representasi Fisik List Linier Referensi: 1. Inggriani Liem. 2003. Catatan Kuliah & Pemrograman, Jurusan Teknik Informatika ITB 2. Rinaldi Munir. 2003. dan Pemrograman II. Bandung : Penerbit Informatika I. Lanjutan Operasi Primitif List 1.1. Menyisipkan elemen di akhir List Menyisipkan sebuah elemen beralamat P sebagai elemen terakhir sebuah list linier. List yang akan disisipkan elemen padanya, bisa kosong atau tidak. Contoh kasus insert after dengan List tidak kosong seperti gambar di bawah. K-Awal K-Akhir 1

Procedure InsertLast1(Input/Output L: List, Input P : address) {K. Awal : List L mungkin kosong, P sudah dialokasi, P Nil, Next (P) = Nil K. Akhir : P adalah elemen terakhir list L Proses : Insert sebuah elemen beralamat P sbg elemen terakhir dari list linier L yg mungkin kosong } Kamus/Deklarasi Nama Last : address { address untuk traversal} If (First (L) = Nil) then { insert sebagai elemen pertama} InsertFirst(L, P) Else { Traversal list sampai address terakhir} Last First (L) While (Next (Last ) Nil ) do Last Next (Last ) {Next ( Last) = Nil, Last adalah elemen terakhir insert P after last } InsertAfter (P, Last) II. List Berkait Representai lojik list linier L dengan P Adalah Address telah didefinisikan yaitu dengan cara: First (L), Next (P) dan info P. Modul ini akan membahas representasi list secara fisik, yaitu implementasi struktur data list yang dapat ditangani oleh pemroses bahasa pemrogaman. Tidak semua bahasa pemrograman mungkin dapat merepresentasikan representasi list yang dibahas dalam modul ini. Penulisan algoritma representasi fisik list linier pada dasarnya adalah menterjemahkan struktur lojik yang sudah dibahas sebelumnya. 2

Representasi fisik list linier dapat berupa BERKAIT maupun KONTIGU. Representasi BERKAIT dapat diimplementasikan dalam dua struktur yaitu pointer dan tebel. Sedangkan kontigu hanya dapat diimplementasikan dengan tabel. 2. Representasi Fisik List Liner dengan BERKAIT 2.1. Representasi Fisiki List linier BERKAIT dengan pointer. Contoh representasi list liner berkait dengan pointer : Kamus/Deklarasi Nama Type InfoType =...{tipe terdefinisi} Type ElmtList : <Info : Infotype, Next : address> Address : Pointer to ElmtList Type List : <First : address> L : List {Elemen list pertama} {Penggunaan dalam algoritma} P : Address {Address yang digunakan untuk traversal, maka penulisan untuk mengaksesnya adalah Next(P) menjadi P^. Next Info(P) menjadi P^.Info } 2.2. Representasi Fisiki List linier BERKAIT dengan tabel. Jika Bahasa Pemrograman tidak menyediakan struktur data pointer (dengan primitif Allocate, Freee, Saturate), maka kita bisa melakukan implementasi fisik alamat dengan index tabel. Dengan demikian sebenarnya yang disebut pengelolaan memori dalam hal ini adalah dengan alamat memori yang sebenarnya diacu melalui tabel. Dengan demikian kita harus mendefinisikan tabel Global yang setiap elemennya adalah emelen list yang diacu sebagai alamat. 3

Kamus/Deklarasi Nama Type InfoType =...{tipe terdefinisi} Type ElmtList : <Info : Infotype, Next : address> Address : integer [IndexMin...IndexMax] {Tabel ini mengacu pada memori global} Constant IndexMing : Integer = 1 Constant Index Max : Integer = 100 Constant Nil : Integher = 0 {Nil address tak terdefinisi di luar Index Min dan IndexMax} TabElmt: array[indexmin...indexmax] of ElmtList FirstAvail: Address {alamat pertama list siap digunakan } {Maka penulisan First(L) menjadi First, Next(P) menjadi TabElemList[P].Next, dan Info(P) menjadi TabElmList[P].Info} Function MemFull {mengirimkan true, jika memori sudah habis, FirstAvail == Nil} Procedure InitTab {Inisiasi tabel yang akan digunakan sebagi memori list linier} {IS sembarang, FS TabElmList[IndexMin..IndexMax] siap digunakan sebagai elemen list berkait. Elemen pertama yang abailabel adalah FirstAvail=1, Next(i) = i+1 untuk i di dalam [IndexMin...IndexMax], Next(IndexMax) ==Nil} Procedure AllocTab (Output: P : Address) {Mengambil sebuah elemen P Siap pakai pada awal list FirstAvail} {IS FirstAvail mungkin kosong, FS jika FirstAvail tidak Nil, P adalah FirstAvail, dan FirstAvail yang baru adalah Next(FirstAvail)} {Jika FirstAvail == Nil, P == Nil, tulis pesan Tidak tersedia lagi elemen siap pakai} Procedure DeAllocTab (Input: P : Address) 4

{Mengembalikan sebuah elemen P pada awal list FirstAvail} {IS FirstAvail mungkin kosong, P tidak kosong. FS FirstAvail =P adalah FirstAvail, dan FirstAvail yang baru adalah Next(FirstAvail)} 2.3. Menguji ketersediaan memori Function MemFull {Mengirimkan true jika memori habis, FirstAvail == Nil} Kamus/Deklarasi - (FirstAvail == NIL){ambil elemen pertama} 2.4. Procedure InitTab Procedure InitTab {Inisiasi tabel yang akan digunakan sebagi memori list linier} {IS sembarang, FS TabElmList[IndexMin..IndexMax] siap digunakan sebagai elemen list berkait. Elemen pertama yang abailabel adalah FirstAvail=1, Next(i) = i+1 untuk i di dalam [IndexMin...IndexMax], Next(IndexMax) ==Nil} Kamus/Deklarasi P : address { address untuk traversal, type terdefenisi } U traversal [IndexMin...IndexMax-1] TabElmList[P].Next P+ 1 TabElmList[IndexMax].Next Nil FirstAcail IndexMin 2.5. Procedure AllocTab Procedure AllocTab (Output: P : Address) {Mengambil sebuah elemen P Siap pakai pada awal list FirstAvail} 5

{IS FirstAvail mungkin kosong, FS jika FirstAvail tidak Nil, P adalah FirstAvail, dan FirstAvail yang baru adalah Next(FirstAvail)} {Jika FirstAvail == Nil, P == Nil, tulis pesan Tidak tersedia lagi elemen siap pakai} Kamus/Deklarasi - If (not MemFull) then P TabElmList[FirstAvail] Else Output( Tidak Tersedia lagi elemen memori siap pakai ) P Nil 2.6. Procedure DeAllocTab Procedure DeAllocTab (Input: P : Address) {Mengembalikan sebuah elemen P pada awal list FirstAvail} {IS FirstAvail mungkin kosong, P tidak kosong. FS FirstAvail =P adalah FirstAvail, dan FirstAvail yang baru adalah Next(FirstAvail)} Kamus/Deklarasi - TabElmList[P].Next FirstAvail FirstAvail P Ilustrasi berikut menggambarkan beberapa keadan List berkait dengan tabel 6

3. Representasi Fisik List Liner secara kontigu Representasi list secara kontigu hanya dapat diimplementasikan dengan menggunakan tabel, karena hanya tabel yang dapat merepresentasikan struktur dat asecara kontigu. Setiap elemen tabel mengandung informasi info, sedangkan informasi mengenai Next tidak perlu disimpan secara eksplisit kerena secara implisit sudah ada dalam struktur data. Elemen terakhir tidak dapat dikenali dengan NEXT, karena Next tidak disimpan secara eksplisit. Elemen terakhir dikenai dari alamatnya P = N, N adalah lokasi pada tabel tempat peyimpanan elemen terakhir. Representasi list linier secara kontigu dengan tabel adalah : 7

Kamus/Deklarasi Nama Constant IndexMin : Integer = 1 Constant Index Max : Integer = 100 Constant Nil : Integer = 0 {Nil address tak terdefinisi di luar Index Min dan IndexMax} Type InfoType =...{tipe terdefinisi} Info : Infotype {tidak perlu mengandung Next} TabElmtList: array[indexmin...indexmax] of Info Type Address : integer [IndexMin...IndexMax] {Deklarasi nama untuk variabel kerja} N : address {alamat elemen terakhir. Karena field NEXT tidak ada secaa eksplisit, maka satu = satunya jalan untuk mengenali elemen terekahir adalah dengan addressnya} Type List : Address First : Address {alamat pertama list siap digunakan } P : Address {Maka First(L)...Last (L) adaah index efektif elemen tabel anggota list. Next(P) menjadi P P + 1; dan Info(P) menjadi TabElmList[P].Info} 8