Struktur Data & Algoritme (Data Structures & Algorithms)

dokumen-dokumen yang mirip
Struktur Data dan Algoritme. Struktur Data & Algoritme (Data Structures & Algorithms) Struktur Data dan Algoritme. Objectives.

IKI 20100: Struktur Data & Algoritma

FAKULTAS TEKNOLOGI KOMUNIKASI DAN INFORMATIKA UNIVERSITAS NASIONAL

SATUAN ACARA PERKULIAHAN UNIVERSITAS GUNADARMA

Outline. Struktur Data & Algoritme (Data Structures & Algorithms) Pengantar. Definisi. 2-3 Trees

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

Fakultas Teknologi Informasi

Objectives. Struktur Data & Algoritme (Data Structures & Algorithms) Sort. Outline. Bubble Sort: idea. Bubble Sort. Sorting

Sub Pokok Bahasan dan Sasaran Belajar

SILABUS MATAKULIAH. Indikator Pokok Bahasan/Materi Aktivitas Pembelajaran

SATUAN ACARA PERKULIAHAN UNIVERSITAS GUNADARMA

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Analisis Kecepatan Sorting Dengan Notasi Big O

IKI 20100: Struktur Data & Algoritma

Buku Rancangan Pengajaran. Struktur Data dan Algoritma. Fakultas Ilmu Komputer Universitas Indonesia

Design and Analysis Algorithm. Ahmad Afif Supianto, S.Si., M.Kom. Pertemuan 08

KKKF33110 STRUKTUR DATA

Review. Struktur Data & Algoritme (Data Structures & Algorithms) Objectives. Outline. Stacks & Queues

Algoritma Sorting. Ahmad Kamsyakawuni, S.Si, M.Kom. Jurusan Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Jember

Struktur Data & Algoritme (Data Structures & Algorithms)

Program Studi Pendidikan Ilmu Komputer Fakultas Ilmu Pendidikan Universitas Ubudiyah Indonesia

Objectives. Struktur Data & Algoritme (Data Structures & Algorithms) Outline. Apa itu Recursion? Recursion

Algoritma dan Struktur Data 2

SATUAN ACARA PERKULIAHAN PERANCANGAN DAN ANALISIS ALGORITMA ** (S1/TEKNIK INFORMATIKA) PTA 2010/2011

BAB 2 TINJAUAN PUSTAKA

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

RENCANA PROGRAM KEGIATAN PERKULIAHAN SEMESTER (RPKPS)

=il= ''#i&kwi. ' "*-ttt-{ut%:* lj %"q:dlrulrfi iil fl RENCANA PROGRAM DAN KEGIATAN PEMBELAJARAN SEMESTER (RPKPS) STRUKTUR DATA DISUSUN OLEH:

Algoritma dan Struktur Data. Searching dan Sorting

BAB 2 LANDASAN TEORI

Sorting. Struktur Data dan Algoritma. Suryana Setiawan, Ruli Manurung & Ade Azurat (acknowledgments: Denny) Fasilkom UI

Outline STRUKTUR DATA. VII. Sorting

SATUAN ACARA PENGAJARAN

Setelah mempelajari topik Analisis Algoritma di kuliah SDA, ada beberapa kompetensi yang perlu Anda kuasai:

SILABUS STRUKTUR DATA ( TIF-104 ) PROGRAM STUDI TEKNIK INFORMATIKA UNIVERSITAS PEMBANGUNAN JAYA TANGERANG SELATAN

Algoritma dan Struktur Data

STRUKTUR DATA SORTING ARRAY

PROPOSAL HIBAH PENGEMBANGAN DAN PENYELENGGARAAN PEMBELAJARAN ONLINE BERBASIS E-LEARNING

2. Mahasiswa dapat membuat dan menggunakan array dan linked list dalam suatu kasus.

BUANA. Distribusi 01 September 2017

Struktur Data & Algoritme (Data Structures & Algorithms)

Penerapan Pohon Dalam Heap Sort

ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT

Pendahuluan Struktur Data STRUKTUR DATA. JULIO ADISANTOSO Departemen Ilmu Komputer IPB. Pertemuan 1 : 20 Juni 2016

ALGORITMA PENGURUTAN. Oleh : S. Thya Safitri, MT

Struktur Data & Algoritme (Data Structures & Algorithms)

Jurnal Mahajana Informasi, Vol.1 No 2, 2016 e-issn: SIMULASI PENGURUTAN DATA DENGAN ALGORITMA HEAP SORT

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

IKI 20100: Struktur Data & Algoritma

STRUKTUR DATA (3) sorting array. M.Cs

SILABUS MATAKULIAH. Indikator Pokok Bahasan/Materi Aktifitas Pembelajaran

Pohon Biner Sebagai Struktur Data Heap dan Aplikasinya

Sorting Algorithms. Algoritma dan Struktur Data. Sorting algorithms

Quick Sort dan Merge Sort. Arna Fariza Yuliana Setiowati

sistem basis data ti ti ukdw Indexing Materi Minggu ke-10 Teknik Informatika Universitas Kristen Duta Wacana Yogyakarta 04/07/13 budi susanto 1

Ujian Tengah Semester Struktur Data dan Algoritma Fakultas Ilmu Komputer, Universitas Indonesia 9 November 2006

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

Ujian Akhir Semester Ganjil 2013/2014

Representasi Graph Isomorfisme. sub-bab 8.3

PENCARIAN KITAB BESERTA PASAL PADA ALKITAB BERDASARKAN KATA DENGAN MENGGUNAKAN STRUKTUR DATA TRIE

UNIVERSITAS GUNADARMA

Gambar 13.1 Ilustrasi proses algoritma sorting

Sorting Algorithms. Divide and Conquer

Pohon dan Pohon Biner

CRITICAL PATH. Menggunakan Graph berbobot dan mempunya arah dari Critical Path: simpul asal : 1 simpul tujuan : 5. Graph G. Alternatif

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

BAHASA PEMROGRAMAN 1 (PERTEMUAN 3)

Struktur Data & Algoritma

ALGORITMA PENGURUTAN & PENCARIAN

BAB 2 LANDASAN TEORI

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

HEAP. Heap dan Operasinya. Oleh Andri Heryandi

SORTING ARRAY FAKULTAS TEKNOLOGI INFORMASI UNISBANK SEMARANG : ANDY KRISTIANTO : Disusun Oleh :

Penyelesaian Barisan Rekursif dengan Kompleksitas Logaritmik Menggunakan Pemangkatan Matriks

Kode MK/ Pemrograman Terstruktur 2

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya

RENCANA PEMBELAJARAN SEMESTER (RPS)

Data Structures. Class 3 Pengenalan Struktur Data dan ADT. Copyright 2006 by The McGraw-Hill Companies, Inc. All rights reserved.

DESAIN & ANALISIS ALGORITMA

Struktur Data & Algoritma

Penggunaan Algoritma Dijkstra dalam Penentuan Lintasan Terpendek Graf

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT

STRUKTUR DATA. Literatur

Denny Setyo R. Masden18.wordpress.com

Analisis Kompleksitas Waktu Untuk Beberapa Algoritma Pengurutan

ANALISIS PERBANDINGAN ALGORITMA BUBBLE SORT, MERGE SORT, DAN QUICK SORT DALAM PROSES PENGURUTAN KOMBINASI ANGKA DAN HURUF

Struktur Data dan Algoritma

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Kompleksitas Algoritma Dalam Algoritma Pengurutan

Tree (Struktur Data) Nisa ul Hafidhoh, MT

PERTEMUAN 15 REVEW/QUIZ

Heap Tree dan Kegunaannya dalam Heap Sort

Aplikasi Algoritma Dijkstra dalam Pencarian Lintasan Terpendek Graf

(3) BAHAN KAJIAN (materi ajar)

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

PROPOSAL HIBAH PENGEMBANGAN DAN PENYELENGGARAAN PEMBELAJARAN ONLINE BERBASIS E-LEARNING

BAB 2 LANDASAN TEORI

Struktur Data dan Analisa Algoritma

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT

Transkripsi:

Struktur Data & Algoritme (Data Structures & Algorithms) Wrap Up Denny (denny@cs.ui.ac.id) Suryana Setiawan (setiawan@cs.ui.ac.id) Fakultas Ilmu Komputer Universitas Indonesia Semester Genap - 2004/2005 Version 2.0 - Internal Use Only Objectives Mengulas kembali dan merangkum konsep-konsep penting dalam kuliah Struktur Data dan Algoritme SDA/WRAP-UP/V2.0/2 1

Struktur Data dan Algoritme Data structure (aka ADT Abstract Data Type) = representation + operations operation allowed may vary between data structure insert delete access (find / get) update Algoritme Suatu set instruksi yang harus diikuti oleh computer untuk memecahkan suatu masalah. Program harus berhenti dalam batas waktu yang wajar (reasonable) Tidak terikat pada programming language atau bahkan paradigma pemrograman (mis. Procedural vs Object-Oriented) SDA/WRAP-UP/V2.0/3 Struktur Data dan Algoritme Mengapa dalam penyimpanan data diperlukan sebuah struktur? Supaya lebih mudah/efisien dalam pengaksesan/pemrosesan data tersebut Mengapa struktur data penting? Bukankan hanya algoritme saja yang menentukan running time? Problem: mencari sebuah integer dalam data-data yang terurut Algoritme: binary search!!! Struktur data: binary search pada array? binary search pada linked list? doubly linked list? Struktur data mana yang lebih efisien? SDA/WRAP-UP/V2.0/4 2

Struktur Data dan Algoritme Contoh Lain: Problem: mengevaluasi ekspresi: (5 + 2) * 7 menggunakan struktur data Stack struktur data + algoritme = program Algorithms require the use of a proper representation of data to achieve efficiency Struktur data membantu tercapainya Component Reusability. Menerapkan konsep OO paradigm: encapsulation, information-hiding dan abstraction. SDA/WRAP-UP/V2.0/5 Analisa Algoritme: what? Mengukur jumlah sumber daya (time dan space) yang diperlukan oleh sebuah algoritme Waktu yang diperlukan (running time) oleh sebuah algoritme cenderung tergantung pada jumlah input yang diproses. Running time dari sebuah algoritme adalah fungsi dari jumlah inputnya Selalu tidak terikat pada platform (mesin + OS), bahasa pemrograman, kualitas kompilator atau bahkan paradigma pemrograman (mis. Procedural vs Object-Oriented) SDA/WRAP-UP/V2.0/6 3

Analisa Algoritme: how? Notasi O (sering disebut sebagai notasi big-oh ) Digunakan sebagai bahasa untuk membahas efisiensi dari sebuah algoritme: log n, linier, n log n, n 2, n 3,... Big Oh digunakan untuk merepresentasikan laju pertumbuhan (growth rate) Dominant Term Mengapa hanya suku yang memiliki pangkat tertinggi/dominan saja yang diperhatikan? Untuk n yang besar, suku dominan lebih mengindikasikan perilaku dari algoritme. Untuk n yang kecil, suku dominan tidak selalu mengindikasikan perilakunya, tetapi program dengan input kecil umumnya berjalan sangat cepat sehingga kita tidak perlu perhatikan. SDA/WRAP-UP/V2.0/7 Orde Fungsi Running-Time Function Name c Constant log N Logarithmic log 2 N Log-squared N Linear N log N N log N N 2 Quadratic N 3 Cubic 2 N Exponential N! Factorial SDA/WRAP-UP/V2.0/8 4

Fungsi Running-Time Untuk input yang sedikit, beberapa fungsi lebih cepat dibandingkan dengan yang lain. SDA/WRAP-UP/V2.0/9 Fungsi Running-Time (2) Untuk input yang besar, beberapa fungsi runningtime sangat lambat - tidak berguna. SDA/WRAP-UP/V2.0/10 5

Sorting Sorting = pengurutan Sorted = terurut menurut kaidah tertentu Sorting umumnya dipakai dalam pre-processing untuk mempercepat proses-proses berikutnya. misalnya: mencari elemen binary search menghilangkan duplikasi SDA/WRAP-UP/V2.0/11 Bubble Sort Idea: Gelembung udara (ringan) dalam air akan naik ke atas, air (berat) yang di atasnya akan turun. Worst case: O(n 2 ) Best case: O(n) -- when? why? SDA/WRAP-UP/V2.0/12 6

Selection sort & Insertion sort Incremental approach 2 array: terurut dan tidak terurut Awalnya array yang terurut kosong. Kosong sorted Ambil 1 elemen dari array yang tidak terurut, masukkan ke array yang terurut sedemikian rupa sehingga tetap menjaga keterurutan data (invariant). Lakukan sebanyak n kali. Selection: Ambil 1 element yang terkecil dari array yang tidak terurut O(n) letakkan di paling belakang di array yang terurut O(1) Insertion: Ambil 1 element (yang mana saja) dari array yang tidak terurut O(1) sisipkan di posisi yang benar dalam array yang terurut supaya array tetap terurut O(n) SDA/WRAP-UP/V2.0/13 Merge Sort & Quick sort Divide and Conquer approach Recursive Merge sort: Divide: bagi array menjadi 2 bagian yang sama besar O(1) Conquer: kalau panjang array 0 atau 1 sudah terurut menggabungkan (merge) dua array yang sudah terurut O(n) Dilakukan log n kali (best case dan worst case) Quick sort: Divide: bagi array menjadi 2 bagian O(n) bagian 1 berisi elemen < pivot bagian 2 berisi elemen >= pivot Conquer: menyambungkan bagian 1 dan bagian 2 O(1) Dilakukan log n kali (best case), n kali (worst case) tergantung cara pemilihan pivot. SDA/WRAP-UP/V2.0/14 7

Other Sorting Algorithms Shell Sort Heap Sort Menggunakan struktur data heap Heapify O(n) Percolate Down O(log n) dilakukan n kali Total: O(n log n) Bucket Sort / Postman Sort Tukang Pos mengurutkan surat berdasarkan kode pos (5 digit). Running time: O(nk) k = jumlah digit External Sorting Algorithms Jumlah data >>> jumlah memory yang tersedia SDA/WRAP-UP/V2.0/15 Struktur Data Linked List vs. Array representation/storage: contiguous vs. non-contiguous growable (dynamic size) vs. static overhead? Access? Stack vs. Queue Access? Implementation of Stack and Queue Linked List vs. Array SDA/WRAP-UP/V2.0/16 8

Struktur Data Tree Binary Tree Representation? Traversing: DFS: Pre-Order, In-Order, Post-Order BFS: Level-Order Binary Search Tree (BST) Balanced BST AVL Tree: Height as balancing information Red-Black Tree: Colour as balancing information n-ary Tree Balanced n-ary Tree Complete Tree: but node can have x children or y children 2-3 Tree, a-b Tree External Data Structure: B Tree, B+Tree Trie SDA/WRAP-UP/V2.0/17 Struktur Data Hash Table Hash Function: map key to address Collition resolution: Closed Hashing (aka Open addressing) Linear Probing primary clustering Quadratic Probing secondary clustering Double Hashing Open Hasing (aka Separate Chaining) Priority Queue Implemented using Heap Insert: Percolate Up O(log n) Delete: Percolate Down O(log n) Heapify SDA/WRAP-UP/V2.0/18 9

Graph Terminology vertices/nodes (simpul) edges (sisi/busur) adjacent vertices undirected vs. directed graph degree (of a vertex), for directed graph: in-degree, outdegree unweighted vs. weighted graph path, simple path, cycle DAG (Directed Acyclic Graph) connected graph subgraph SDA/WRAP-UP/V2.0/19 Graph Representation Edge List Adjancency List Adjancency Matrix Which representation is the best? Graph Problem: Topological Sorting Shortest Path: Djikstra Minimum Spanning Tree: Prim, Kruskal SDA/WRAP-UP/V2.0/20 10

Selamat Ujian! SDA/WRAP-UP/V2.0/21 11