IKG2A3/ Pemrograman Terstruktur 2

dokumen-dokumen yang mirip
1. Inggriani Liem Catatan Kuliah Algoritma & Pemrograman, Jurusan Teknik Informatika ITB

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

Representasi Logic List Linier

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

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

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. Queue (Antrian)

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

Pengantar List Linier

Variasi List Linier (Bagian 2)

LIST LINIER 1. DEFINISI

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

Struktur Data. Queue (Antrian)

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

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

Bagian I. Studi Kasus [82] Tanda tangan:

A. Bagian I. Studi Kasus

Kode MK/ Pemrograman Terstruktur 2

A. Bagian I. Studi Kasus [82]

CCH1A4 / Dasar Algoritma & Pemrogramanan

BAB IX LINKED LIST (SENARAI BERANTAI)

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

CCH1A4 / Dasar Algoritma & Pemrogramanan

Variasi List Linier. Nisa ul Hafidhoh, MT

QUEUE Antrian 1. DEFINISI

Pengantar Struktur Data

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

BAB IX LINKED LIST (SENARAI BERANTAI)

Lab. Teknik Informatika Struktur Data 1

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

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

ALGORITMA & PEMROGRAMAN

BAB 1 PENGANTAR KE STRUKTUR DATA

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

CCH1A4 / Dasar Algoritma & Pemrogramanan

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

CCH1A4 / Dasar Algoritma & Pemrogramanan

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

CCH1A4 / Dasar Algoritma & Pemrogramanan

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

LOGO STRUKTUR DATA QUEUE

BAB II STACK Atau TUMPUKAN

Kode MK/ Pemrograman Terstruktur 2

MODUL 6 SINGLE & DOUBLE LINKED LIST

Optimalisasi Algoritma Pencarian Data Memanfaatkan Pohon Biner Terurut

LIST. Dewi Sartika, M.Kom

Algoritma Euclidean dan Struktur Data Pohon dalam Bahasa Pemrograman LISP

Pendahuluan Struktur Data. Nisa ul Hafidhoh

Array (Tabel) bagian 2

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

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

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

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

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

CCH1A4 / Dasar Algoritma & Pemrogramanan

LATIHAN UTS Tim Pengajar KU1071 Sem

BAB XI Manipulasi Binary Tree

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

MODUL PRAKTIKUM PERCABANGAN DAN PENGULANGAN

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

RENCANA PEMBELAJARAN SEMESTER (RPS)

PENCARIAN BERUNTUN (SEQUENTIAL SEARCHING)

PERTEMUAN 8 MATRIX. Introduction Definition How is matrix stored in memory Declaration Processing

Algoritma dan Struktur Data. Pertemuan 7 Linked List

Modul Praktikum Algoritma dan Struktur Data BAB 6 LINKED LIST

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

Linked List. Bandung 2013

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

Single Linked List (1)

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

QUEUE (ANTRIAN) Struktur Data - Queue

SINGLE LINKED LIST (NON CIRCULAR)

PENCARIAN SOLUSI TTS ANGKA DENGAN ALGORITMA RUNUT BALIK BESERTA PENGEMBANGANNYA

FUNGSI DAN PROCEDURE

KONSEP POINTER DAN LINKED LIST

Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort

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

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

Abstract Data Type (ADT)

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

Algoritma dan Struktur Data. Pertemuan 9 Circular Linked List

STRUKTUR DATA. Pengajar. Jaidan Jauhari, M.T. Alamat

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

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

PENGULANGAN Bagian 1 : Notasi. Tim Pengajar KU1071 Sem

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

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

MODUL PRAKTIKUM STRUKTUR DATA

Modul Praktikum Algoritma dan Struktur Data

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

TOPOLOGICAL SORT dengan DFS dan METODE LAIN

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

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

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

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

Algoritma dan Struktur Data. Linked List

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

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

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

ALGORITMA DAN STRUKTUR DATA

Transkripsi:

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

Pendahuluan Setelah representasi logic, perlu dilakukan represntasi fisik untuk implementasi Representasi list linier secara "fisik", artinya implementasi list linier dalam struktur data yang nantinya dapat ditangani oleh pemroses bahasabahasa pemrograman 2 8/25/2015 IKG2A3 Pemrograman Terstruktur 2

Pendahuluan Representasi fisik : Kontigu Keterurutan elemen list secara eksplisit, berdasarkan urutan indeks tabel Implementasi : tabel Alokasi memory : statis (dalam C dan pascal) Berkait : Keterurutan elemen list secara implisit, perlu didefinisikan Implementasi : tabel, pointer Alokasi memory : dinamis 3 8/25/2015

Representasi Fisik List Linier secara KONTIGU Setiap elemen tabel mengandung informasi info, sedangkan informasi mengenai Next tidak perlu lagi disimpan secara eksplisit, karena secara implisit sudah tersirat dalam struktur data yang menjadi tempat penyimpanannya 4 8/25/2015

{List direpresentasi pada tabel secara kontigu} Kamus : constant IndexMin : integer = 1 constant IndexMax : integer = 100 constant Nil : integer = 0 type InfoType :... {ElmType : terdefinisi } TabElmtList : array[indexmin..indexmax] of Info type address : integer [IndexMin..IndexMax,Nil] {Deklarasi nama untuk variabel kerja} N : address {alamat elemen terakhir. Karena field NEXT tidak ada secara eksplisit, maka satu-satunya jalan untuk mengenali elemen terakhir adalah dengan @-nya} {Deklarasi alamat} P : address {address untuk traversal} {Maka First(L)..Last(L) adalah indeks efektif elemen tabel anggota list. Next(P) menjadi P P + 1, Next(P) tidak terdefinisi untuk P=N, Info(P) menjadi TabElmtList[P].Info} 5 8/25/2015

Representasi Fisik List Linier BERKAIT dengan Pointer 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} 6 8/25/2015

Representasi Fisik List Linier BERKAIT dengan Pointer procedure CreateNewElmt (input X: InfoType; output P: address) {Mengalokasi sebuah tempat di memori untuk menyimpan X} {I.S. Terdefinisi X} {F.S. Telah dialokasi sebuah tempat di memori dengan alamat P, X telah ditempatkan di P} Kamus : Algoritma : new(p) P^.Info X P^.Next nil 7 8/25/2015

Representasi Fisik List Linier BERKAIT dengan tabel Jika bahasa pemrograman tidak menyediakan struktur pointer (dengan primitif Allocate, Free, Saturate), maka kita dapat melakukan implementasi fisik alamat dengan indeks tabel. Representasi berkait pada dasarnya menggunakan alokasi memory dinamis. Dalam beberapa bahasa pemrograman, alokasi memory pada tabel adalah statis Oleh karena itu kita harus mendefinisikan suatu tabel GLOBAL, yang setiap elemennya adalah elemen list yang diacu oleh alamat supaya alokasi memory jadi dinamis 8 8/25/2015

Representasi Fisik List Linier BERKAIT dengan tabel Kamus : {List direpresentasi secara berkait dg tabel} type InfoType :... { terdefinisi } type ElmtList : <info: InfoType, Next: address > type Address : integer [IndeksMin..IndexMax, Nil] {TABEL MEMORI LIST, GLOBAL} constant IndexMin : integer = 1 constant IndexMax : integer = 100 constant Nil : integer = 0 {Nil:address tak terdefinisi, di luar [IndexMin..IndexMax]} TabElmt : array[indexmin..indexmax] of ElmtList FirstAvail : Address {alamat pertama list siap pakai} {Maka penulisan First(L) menjadi First Next(P) menjadi TabElmtList[P].Next Info (P) menjadi TabElmtList[P].Info } 9 8/25/2015

Representasi Fisik List Linier BERKAIT dengan tabel Kamus (lanjutan): procedure InitTab {Inisialisasi tabel yang akan dipakai sebagai memori list} procedure AllocTab (Output P : address) : {Mengambil sebuah elemen siap pakai P pada awal list FirstAvail} procedure DeAllocTab(Input P : address) : {Mengembalikan sebuah elemen P pada awal list FirstAvail} 10 8/25/2015

Representasi Fisik List Linier BERKAIT dengan tabel procedure InitTab {Inisialisasi tabel yang akan dipakai sebagai memori list} {I.S. Sembarang} {F.S. TabElmt[IndexMin..IndexMax] siap dipakai sebagai elemen list berkait, Elemen pertama yang available adalah FirsAvail=1. Next[i]=i+1 untuk i [IndexMin..IndexMax-1], Next[IndexMax]=Nil} Kamus P: address Algoritma : P traversal [IndexMin..IndexMax-1] TabElmt[P.Next] P + 1 TabElmt[IndexMax].Next Nil FirstAvail IndexMin 11 8/25/2015

Representasi Fisik List Linier BERKAIT dengan tabel procedure AllocTab(Output P: address) {Mengambil sebuah elemen siap pakai P pada awal list FirstAvail} {I.S. FirstAvail mungkin kosong} {F.S. Jika FirstAvail tidak Nil, P adalah FirstAvail dan FirstAvail yang baru adalah Next[FirstAvail] Jika FirstAvail =Nil, tuliskan pesan Tidak tersedia lagi elemen siap pakai,p=nil } Kamus : Algoritma : if (not MemFull) then P TabElmt[FirstAvail] FirstAvail TabElmt[FirstAvail].Next else Output ( Tidak tersedia lagi elemen siap pakai ) P Nil 12 8/25/2015

Representasi Fisik List Linier BERKAIT dengan tabel procedure DeAllocTab(Input P: address) {Mengembalikan sebuah elemen P pada awal list FirstAvail} {I.S. FirstAvail mungkin kosong. P Nil} {F.S. FirstAvail = P} Kamus : Algoritma : TabElmtp.Next FirstAvail FirstAvail P 13 8/25/2015

Ilustrasi dari urut-urutan pemanggilan dan status pemakaian memori list tersebut dapat dilihat pada gambar berikut FirstAvail FirstAvail FirstAvail 1 1 2 2 3 4 5 6 3 4 5 6 First 2 1 7 7 8 8 9 9 10 10 Keadaan Awal Keadaan Akhir 14 8/25/2015

Studi Kasus 1 Terdefinisi sebuah list L, mungkin kosong. Jika L tidak kosong elemen-elemen L unik, artinya tidak ada 2 atau lebih elemen yang sama. Akan disisipkan sebuah info baru X ke dalam list L sebagai elemen terakhir jika pada L belum ada elemen dengan info X. 15 8/25/2015

procedure InsertX1 (input/output L: List; input X: InfoType) {I.S. Terdefinisi X dan L, mungkin kosong. Jika L tidak kosong, L terurut membesar berdasar info} {F.S. Jika sebelumnya X belum ada di L maka X disisipkan menjadi di L sebagai elemen terakhir, L tetap terurut membesar berdasar info} Kamus P,Pt: address Algoritma : if IsEmpty(L) then CreateNewElement(X,P) InsertFirst(L,P) else Pt L.First while (Pt^.info<>X)and(Pt^.next<>NIL) do Pt Pt^. next {(Pt^.info=X) or (Pt^.next=NIL) } if Pt^.info<>X then P alokasi(x) Pt^.next P 16 8/25/2015

Studi Kasus 1 procedure CreateNewElmt (input X: InfoType; output P: address) {Mengalokasi sebuah tempat di memori untuk menyimpan X} {I.S. Terdefinisi X} {F.S. Telah dialokasi sebuah tempat di memori dengan alamat P, X telah ditempatkan di P} Kamus : Algoritma : new(p) P^.Info X P^.Next nil 17 8/25/2015

Studi Kasus 2 Terdefinisi sebuah list L, mungkin kosong. Jika L tidak kosong elemen-elemen L terurut membesar berdasar info. Akan disisipkan sebuah info baru X ke dalam list L. Setelah penyisipan X, list L tetap terurut membesar berdasarkan info 18 8/25/2015

procedure InsertX2 (input/output L: List; input X: InfoType) {I.S. Terdefinisi X dan L, mungkin kosong. Jika L tidak kosong, L terurut membesar berdasar info} {F.S. X telah disisipkan di L, L tetap terurut membesar berdasar info} Kamus Prec, Pt, P : address Algoritma : CreateNewElmt(X,P) if IsEmpty(L) then InsertFirst(L,P) else Prec NIL Pt L.First while (Pt^.info<=X)and(Pt^.next<>NIL) do Prec Pt Pt Pt^.next {(Pt^.info > X) or (Pt^.next=NIL) } if Pt^.info<=X then {Pt Elemen terakhir} Insert-After(Pt,P) {P menjadi elemen terakhir} else if Prec=NIL then {Pt Elemen pertama} InsertFirst(L,P) {P menjadi elemen pertama} else Insert-After(Prec,P) {P disisipkan di tengah } 19 8/25/2015

Latihan Misal diketahui 2 list L1 dan L2 yang tidak terurut. Buatlah sebuah algoritma untuk membuat sebuah list baru L3 yang elemen-elemennya merupakan irisan dari elemen L1 dan L2 (Elemen L3 unik) Misal diketahui 2 list L1 dan L2 yang tidak terurut. Buatlah sebuah algoritma untuk membuat sebuah list baru L3 yang elemen-elemennya merupakan union dari elemen L1 dan L2 (Elemen L3 unik) 20 8/25/2015

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

22 8/25/2015 THANK YOU