Algoritma dan Pemrograman Pendekatan Pemrograman Modular

dokumen-dokumen yang mirip
BAB II TINJAUAN PUSTAKA

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

MATEMATIKA DISKRIT II ( 2 SKS)

UNIVERSITAS GUNADARMA

BAB II LANDASAN TEORI

Studi Algoritma Optimasi dalam Graf Berbobot

Aplikasi Algoritma Dijkstra dalam Pencarian Lintasan Terpendek Graf

Mata Kuliah Penelitian Operasional II OPERATIONS RESEARCH AN INTRODUCTION SEVENTH EDITION BY HAMDY A. TAHA BAB 6.

Sirkuit Euler & Sirkuit Hamilton SISTEM INFORMASI UNIVERSITAS GUNADARMA 2012/2013

LANDASAN TEORI. Bab Konsep Dasar Graf. Definisi Graf

IKI 20100: Struktur Data & Algoritma

BAB 1 PENDAHULUAN. 1.1 Latar belakang

SATUAN ACARA PERKULIAHAN MATA KULIAH GRAPH & ANALISIS ALGORITMA (SI / S1) KODE / SKS : KK / 3 SKS

Penggunaan Algoritma Greedy dalam Membangun Pohon Merentang Minimum

Graf. Bekerjasama dengan. Rinaldi Munir

Pencarian Jalur Terpendek dengan Algoritma Dijkstra

MateMatika Diskrit Aplikasi TI. Sirait, MT 1

BAB 2 LANDASAN TEORI

Konsep. Graph adalah suatu diagram yang memuat informasi tertentu. Contoh : Struktur organisasi

BAB 2 LANDASAN TEORI

Kode MK/ Matematika Diskrit

BAB 2 LANDASAN TEORI

TEKNIK INFORMATIKA. Teori Dasar Graf

Matematika Diskret (Graf II) Instruktur : Ferry Wahyu Wibowo, S.Si., M.Cs.

Struktur dan Organisasi Data 2 G R A P H

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

x 6 x 5 x 3 x 2 x 4 V 3 x 1 V 1

PENDISTRIBUSIAN BARANG FARMASI MENGGUNAKAN ALGORITMA DIJKSTRA (STUDI KASUS : PT. AIR MAS CHEMICAL)

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Create PDF with GO2PDF for free, if you wish to remove this line, click here to buy Virtual PDF Printer

BAB II LANDASAN TEORI

Aplikasi Shortest Path dengan Menggunakan Graf dalam Kehidupan Sehari-hari

Penggunaan Algoritma Dijkstra dalam Penentuan Lintasan Terpendek Graf

BAB 2 LANDASAN TEORI

Dwiprima Elvanny Myori

Aplikasi Pohon Merentang Minimum dalam Rute Jalur Kereta Api di Pulau Jawa

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Permodelan Pohon Merentang Minimum Dengan Menggunakan Algoritma Prim dan Algoritma Kruskal

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

Course Note Graph Hamilton

SATUAN ACARA PERKULIAHAN MATA KULIAH LOGIKA DAN ALGORITMA (MI/D3) KODE: IT SKS: 3 SKS. Kemampuan Akhir Yang Diharapkan

Algoritma Brute-Force dan Greedy dalam Pemrosesan Graf

Aplikasi Graf dalam Rute Pengiriman Barang

GRAF. Graph seperti dimaksud diatas, ditulis sebagai G(E,V).

BAB 1 PENDAHULUAN. minimum secara langsung didasarkan pada algoritma MST (Minimum Spanning

Pada perkembangannya ternyata model transportasi ini dapat juga digambarkan dan diselesaikan dalam suatu bentuk jaringan

8/29/2014. Kode MK/ Nama MK. Matematika Diskrit 2 8/29/2014

APLIKASI PEWARNAAN SIMPUL GRAF UNTUK MENGATASI KONFLIK PENJADWALAN MATA KULIAH DI FMIPA UNY

BAB II KAJIAN PUSTAKA. Pada bab kajian pustaka berikut ini akan dibahas beberapa materi yang meliputi

Airline Shortest Path Software

INTRODUCTION TO GRAPH THEORY LECTURE 2

ALGORITMA RUTE FUZZY TERPENDEK UNTUK KONEKSI SALURAN TELEPON

Pohon (Tree) Universitas Gunadarma Sistem Informasi 2012/2013

Graf. Matematika Diskrit. Materi ke-5

Bagaimana merepresentasikan struktur berikut? A E

ANALISIS JARINGAN LISTRIK DI PERUMAHAN JEMBER PERMAI DENGAN MENGGUNAKAN ALGORITMA PRIM

PERBANDINGAN ALGORTIMA PRIM DAN KRUSKAL DALAM MENENTUKAN POHON RENTANG MINIMUM

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

BAB 1 PENDAHULUAN 1.1 LATAR BELAKANG

PEWARNAAN GRAF SEBAGAI METODE PENJADWALAN KEGIATAN PERKULIAHAN

1. Minimal spanning tree 2. Shortest-route algorithm 3. Maximum flow algorithm

Penerapan Algoritma Greedy untuk Memecahkan Masalah Pohon Merentang Minimum

BAB 1 PENDAHULUAN. 1.1 Pendahuluan

Penerapan Sirkuit Hamilton dalam Perencanaan Lintasan Trem di ITB

Pertemuan 11 GRAPH, MATRIK PENYAJIAN GRAPH

NASKAH UJIAN UTAMA. JENJANG/PROG. STUDI : DIPLOMA TIGA / MANAJEMEN INFORMATIKA HARI / TANGGAL : Kamis / 18 FEBRUARI 2016

STUDI OPTIMALISASI JUMLAH PELABUHAN TERBUKA DALAM RANGKA EFISIENSI PEREKONOMIAN NASIONAL

ALGORITMA GREEDY : MINIMUM SPANNING TREE. Perbandingan Kruskal dan Prim

PRESENTASI TUGAS AKHIR KI IMPLEMENTASI ALGORITMA PENCARIAN K JALUR SEDERHANA TERPENDEK DALAM GRAF

ANALISIS JARINGAN LISTRIK DI PERUMAHAN JEMBER PERMAI DENGAN MENGGUNAKAN ALGORITMA PRIM

SISTEM INFORMASI UNIVERSITAS GUNADARMA 2012/2013. Graf Berarah

Pemanfaatan Algoritma Hybrid Ant Colony Optimization dalam Menyelesaikan Permasalahan Capacitated Minimum Spanning Tree. Tamam Asrori ( )

Journal of Informatics and Technology, Vol 1, No 1, Tahun 2012, p

Model Jaringan. Ahmad Sabri, MSi, Riset Operasional 2, Universitas Gunadarma

TEORI DASAR GRAF 1. Teori Graf

Model Arus Jaringan. Riset Operasi TIP FTP UB Mas ud Effendi

Representasi Graph Isomorfisme. sub-bab 8.3

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB 2 LANDASAN TEORI

Graf digunakan untuk merepresentasikan objek-objek diskrit dan hubungan antara objek-objek tersebut. Demak Semarang. Kend al. Salatiga.

Program Dinamis (Dynamic Programming)

Diktat Algoritma dan Struktur Data 2

Matematika dan Statistika

KONTRAK PEMBELAJARAN (KP) MATA KULIAH. Algoritma dan Pemrograman

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB II LANDASAN TEORI

8. Algoritma Greedy. Oleh : Ade Nurhopipah

BAB 2 TINJAUAN PUSTAKA

BAB 2 LANDASAN TEORITIS

BAB I PENDAHULUAN. adalah dengan menyatakan objek dinyatakan dengan sebuah titik (vertex),

RANCANG BANGUN APLIKASI MINIMUM SPANNING TREE (MST) MENGGUNAKAN ALGORITMA KRUSKAL

IMPLEMENTASI GRAF DENGAN MENGGUNAKAN STRATEGI GREEDY

Aplikasi Algoritma Greedy pada Optimasi Pelaksanaan Misi dalam Permainan Assassins Creed : Revelations

Algoritma Greedy (lanjutan)

Aplikasi Teori Graf dalam Manajemen Sistem Basis Data Tersebar

PENDISTRIBUSIAN BARANG FARMASI MENGGUNAKAN ALGORITMA DIJKSTRA (STUDI KASUS : PT. AIR MAS CHEMICAL)

BAB 2 LANDASAN TEORI. Definisi Graf G didefinisikan sebagai pasangan himpunan (V, E), yang dalam hal ini:

BAB II LANDASAN TEORI

BAB 2 LANDASAN TEORI

Transkripsi:

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO Algoritma dan Pemrograman Pendekatan Pemrograman Modular Oky Dwi Nurhayati, ST, MT email: okydn@undip.ac.id

Pendahuluan Teknik Pemrograman Penekanan pada pemrograman terstruktur Struktur dasar Menggunakan flow chart dan pseudocode Menggunakan sistem modular. Program dibuat dalam bentuk modul-modul untuk fungsi tertentu maupun subroutine tertentu. Modul-modul dikendalikan oleh modul utama (program utama)

Pendahuluan Teknik Pemrograman Modul bersifat independen (tidak ada modul yang dapat akses langsung ke modul lain, kecuali modul pemanggil dan submodulnya sendiri) Modul dapat diubah secara radikal tanpa mempengaruhi modul lain sejauh fungsi modul tidak berubah..

Pendahuluan Teknik Pemrograman Implementasi pemrograman modul menggunakan subroutine-subroutine digambarkan sebagai berikut;

Pendahuluan Bentuk sub module Internal subroutine; berupa bagian dari program yang menggunakannya External subroutine; bukan bagian dari program yang menggunakan modul itu. Modul tersimpan dalam library dalam bentuk object module yang siap digunakan oleh modul-modul yang akan menggunakan. Modul dapat digunakan untuk tugas lebih dari satu program Dalam menggunakan, pemrograman perlu mengetahui di mana diperoleh, namanya, bagaimana mengirim data padanya, dan jabawan baliknya.

MODEL TOP-DOWN modul utama tunggal sub modul dari suatu modul minimum dua. Bila hanya satu ditijau kembali seperti contoh berikut ;

Masalah path minimum (Shortest path problem) Masalah aliran maksimum (maximum flow problem) Masalah pencariah dalam graph (graph searching problem) Masalah pengurutan topologis (topological ordering problem) Masalah jaringan tugas (Task Network Problem) Masalah pencarian pohon rentang minimum (Minimum Spanning Tree Problem) Travelling Salesperson Problem Four-color problem mencari route dengan jarak terpendek dalam suatu jaringan transportasi. menghitung volume aliran BBM dari suatu reservoir ke suatu titik tujuan melalui jaringan pipa. mencari langkah-langkah terbaik dalam program permainan catur komputer. menentukan urutan pengambilan mata-mata kuliah yang saling berkaitan dalam hubungan prasyarat (prerequisite). membuat penjadwalan pengerjaan suatu proyek yang memungkinkan waktu penyelesaian tersingkat. mencari rentangan kabel listrik yang totalnya adalah minimal untuk menghubungkan sejumlah kota. tukang pos mencari lintasan terpendek melalui semua alamat penerima pos tanpa harus mendatangi suatu tempat lebih dari satu kali. dalam menggambar peta, memberikan warna yang berbeda pada setiap propinsi yang saling bersebelahan.

Teori Graf Siklus Hamilton (Hamiltonian cycle) adalah siklus dalam graf G yang mengandung setiap verteks di G tepat satu kali. Contoh 10.1 : Untuk graf G = (V,E) dalam Gambar 10.1, carilah sebuah siklus Hamilton. a g Penyelesaian : b d Sebuah siklus Hamilton untuk graf G adalah siklus (a, b, c, d, e, f, g, a). e c f

Masalah Perjalanan Wiraniaga Soal perjalanan wiraniaga berkaitan dengan masalah pencarian siklus Hamilton dengan panjang minimum dalam sebuah graf berbobot G. Jika kita menganggap verteks-verteks dalam graf berbobot sebagai kota dan bobot rusuk sebagai jarak, masalah perjalanan wiraniaga adalah mencari sebuah rute terpendek sehingga wiraniaga tersebut dapat mengunjungi setiap kota satu kali, berawal dan berakhir pada kota yang sama. Contoh 10.2 : Selesaikanlah masalah perjalanan wiraniaga untuk graf berikut.

a d 2 11 2 3 3 Penyelesaian : 11 Siklus Hamilton (a, b, c, d, a) (a, b, d, c, a) (a, c, b, d, a) (a, c, d, b, a) (a, d, b, c, a) (a, d, c, b, a) b c Kita lihat bahwa siklus Hamilton (a, b, c, d, a) dan (a, d, c, b, a) merupakan siklus Hamilton dengan panjang minimum untuk G. Panjang 2+3+3+2 = 10 2+11+3+11 = 27 11+3+11+2 = 27 11+3+11+2 = 27 2+11+3+11 = 27 2+3+3+2 = 10

GRAPH Graph terdiri dari simpul-simpul dan lintasan-lintasan. Simpul VERTEX : dapat mewakili peristiwa kata, sasaran, dan sebagainya. Lintasan Lintasan i j : menghubungkan simpul i dan j Lintasan bearah ij : menunjujkkan lintasan yang dilewati 9ditunjukan dengan anak panah) dari simpul i menuju j Lintasan langsung i j: lintasan dari i ke j tanpabmelewati simpul yang lain. Lintasan tak langsung ij : lintasan dari I ke j dengan melewati simpul lain.

GRAPH 3. Derajat simpul (vertex) : k : menunujukkan cacah lintasan yang terhubung dengan simpul yang bersangkutan. Derajat simpul masuk k1 : menunjukkan cacah lintasan yang masuk menuju simpul Derajat simpul keluar k2 : cacah lintasan yang keluar

GRAPH Graph dapat mewakili : jaringan transportasi jaringan kegiatan suatu proyek dan lain-lain Lintasan dapat mewakili : biaya operasi, jarak antara simpul (kota), profit, dan sebagainya. Besaran dalam dimensinya masing-masing

GRAPH Graph dapat direpresentasikan dalam bentuk matrik lintasan 1 = ada lintasan 0 = tidak ada simpul y Graph dapat direpresentasikan dalam bentuk matrik lintasan ang bersangkutan 1 = TRUE 0 = FALSE

GRAPH Graph dengan lintasan berarah = directed graph = diagraph Graph dengan lintasan tak berarah = undirect graph = undiagraph Disini hanya muncul ada atau tidak hubungan antara dua vertex ( dalam undirect graph (undiagraph) lintasan tak berarah, matriks lintasannya simetris)

GRAPH Matrik lintasan tak berarah 1 = ada hubungan 0 = tidak ada hubungan atau vertex itu sendir

GRAPH bobot lintasan menunjukkan harga besaran yang diwakilinya. Dalam banyak kasus nilai dalam lintasan menunjukkan harga besaran yang diwakilikinya. Misalnya untuk masalah transportasi ada unsur-unsur matriks lintasan menunjukkan biaya ( dalam satuan mata uang). Untuk vertex i ke j bila tidak ada lintasannya, biaya = dan bila i biaya = 0 Nilai 0 dan ~ Tak ditulis

GRAPH Dalam lintasan berarah, bobot lintasan yang dicantumkan dalam matrik lintasan hanya bila ada lintasan ( matrik lintasan mungkin tidak simetris). matrik lintasan mungkin tidak simetris

GRAPH Contoh kasus : mencari lintasan terpendek atau biaya termurah dari suatu perjalanan perjalanan diawali dari salah satu vertex, menuju kepada semua vertex lain

GRAPH Algoritma untuk menemukan lintasan terpendek dikenalkan oleh E.Dijkstra 3. Awali pada lintasan (i) pada simpul (vo), lintasan terpendek dari vo-v1. lingkup S Vo. 5. Pilih vertex (v-s) sedemikian sehingga lintasan (v) minimu dari semua lintasan dalam (v-s) 6. Untuk setiap u dalam 1-s, diperbarui lintasan (u) = min, lintasan u, lintasan w, lintasan (v,w) 7. Ulangi langkah 2

GRAPH

GRAPH Representasi dalam linklist

GRAPH COLORING Graph coloring adalah problem klasik algoritma tentang bagaimana caranya mewarnai graph dengan warna berbeda untuk setiap node yang berdekatan Berdekatan berarti ada edge yang menghubungkan kedua node tersebut Nilai adjacency-nya lebih besar dari 0 Tantangan dari problem ini adalah bagaimana caranya mengusahakan agar jumlah warna yang diperlukan seminimal mungkin.

VARIASI PROBLEM Edge coloring Bukan node yang diwarnai melainkan edge-nya. Sejumlah edge yang bertemu di node tertentu tidak boleh diberi warna yang sama. Region coloring Mewarnai sebidang wilayah yang terbagi atas sub-wilayah kecil. Setiap sub-wilayah yang memiliki perbatasan tidak boleh diberi warna yang sama. Problem ini lebih terkenal dengan sebutan map coloring. Map coloring dapat diselesaikan dengan mengubahnya menjadi graph, mewarnai graph, kemudian dipetakan kembali.

CHROMATIC NUMBER Diperlukan 3 warna untuk mewarnai graph di atas Jumlah warna minimal yang harus dipakai untuk mewarnai sebuah graph disebut chromatic number.

MAP COLORING

KONVERSI MAP KE GRAPH

ALGORITMA WELSH & POWELL 1. Urutkan node dalam sebuah graph berdasarkan jumlah edge yang terhubung padanya, secara descending (dari besar ke kecil) 2. Berdasarkan urutan di atas, warnai semua node dalam graph dengan warna 1 jika sebuah node tidak berbatasan dengan node yang sudah berwarna 1 3. Ulangi proses ini untuk warna 2, warna 3, dst hingga semua node telah diberi warna Merupakan salah satu contoh algoritma Metode Greedy Hasilnya belum tentu optimal Penyelesaian secara optimal adalah NP-Complete problem Baca bab 6.6 di buku untuk penjelasan detil langkah per langkah jalannya algoritma Welsh & Powell

HASIL GRAPH COLORING

MAP COLORING

Algoritma Prim Sebuah algoritma dalam teori graf untuk mencari pohon rentang minimum untuk sebuah graf berbobot yang saling terhubung. Ini berarti bahwa sebuah himpunan bagian dari edge yang membentuk suatu pohon yang mengandung node, di mana bobot keseluruhan dari semua edge dalam pohon diminimalisasikan. Bila graf tersebut tidak terhubung, maka graf itu hanya memiliki satu pohon rentang minimum untuk satu dari komponen yang terhubung. Algoritma ini ditemukan pada 1930 oleh matematikawan V.Jarnik dan kemudian secara terpisah oleh computer scientist Robert C.Prim pada 1957 dan ditemukan kembali oleh Dijkstra pada 1959. Karena itu algoritma ini sering dinamai algoritma DJP atau algoritma Jarnik.

Algoritma Prim Untuk menentukan minimum spanning tree Algoritmanya: Inisialisasi tree T T diperbaharui bila lintasan adalah minimum yang menghubungkan vertex, dan vertex tak di T, maka T T+e Bila E(T) = p 1 (p= cacah vertex maka output adalah E(T)). Bila tidak, ke langkah 2.

Algoritma Prim. Contoh :

Algoritma Prim. Contoh :

Algoritma Prim. Contoh :

Algoritma Bouruvka Untuk menentukan minimum spanning tree Algoritmanya: 4. Inisialisasi spanning Forest. F Fp 5. Forest F diperbaharui. Untuk tiap komponen F dari hubungan vertex F ke vertex lain dari F dengan lintasan minimum. Set lintasan adalah S, sehingga F F+ S 7. Lintasan E(F) =p-1 [ p cacah vertex maka output E(F), sebaliknya ke langkah 2.

Algoritma Bouruvka Contoh

Algoritma Bouruvka Contoh