BAB 2 LANDASAN TEORI

dokumen-dokumen yang mirip
BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI. Algoritma adalah urutan atau deskripsi langkah-langkah untuk memecahkan suatu masalah.

BAB 2 LANDASAN TEORI

BAB II LANDASAN TEORI

Penggunaan Algoritma Dijkstra dalam Penentuan Lintasan Terpendek Graf

BAB 2 LANDASAN TEORI

BAB II LANDASAN TEORI

BAB III ANALISIS KOMPLEKSITAS ALGORITMA

BAB II LANDASAN TEORI

BAB 2 LANDASAN TEORI

BAB II LANDASAN TEORI

BAB 2 LANDASAN TEORI

Representasi Graf dalam Jejaring Sosial Facebook

Aplikasi Algoritma Dijkstra dalam Pencarian Lintasan Terpendek Graf

BAB II LANDASAN TEORI

BAB I PENDAHULUAN. dirasakan peranannya, terutama pada sektor sistem komunikasi dan

BAB 2 LANDASAN TEORI

BAB II KAJIAN PUSTAKA. Sebuah graf G didefinisikan sebagai pasangan himpunan (V,E), dengan V

Aplikasi Pewarnaan Graf Pada Pengaturan Warna Lampu Lalu Lintas

G r a f. Pendahuluan. Oleh: Panca Mudjirahardjo. Graf digunakan untuk merepresentasikan objek-objek diskrit dan hubungan antara objek-objek tersebut.

GRAF. V3 e5. V = {v 1, v 2, v 3, v 4 } E = {e 1, e 2, e 3, e 4, e 5 } E = {(v 1,v 2 ), (v 1,v 2 ), (v 1,v 3 ), (v 2,v 3 ), (v 3,v 3 )}

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

BAB 2 LANDASAN TEORI. yang tak kosong yang anggotanya disebut vertex, dan E adalah himpunan yang

BAB 2 TINJAUAN PUSTAKA

PENDAHULUAN MODUL I. 1 Teori Graph Pendahuluan Aswad 2013 Blog: 1.

TEORI GRAF UNIVERSITAS MUHAMMADIYAH JEMBER ILHAM SAIFUDIN PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK. Selasa, 13 Desember 2016

BAB II LANDASAN TEORI

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

Aplikasi Pohon dan Graf dalam Kaderisasi

MEMBANDINGKAN KEMANGKUSAN ALGORITMA PRIM DAN ALGORITMA KRUSKAL DALAM PEMECAHAN MASALAH POHON MERENTANG MINIMUM

Graf dan Pengambilan Rencana Hidup

Graf. Program Studi Teknik Informatika FTI-ITP

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

Aplikasi Teori Graf dalam Manajemen Sistem Basis Data Tersebar

BAB 2 LANDASAN TEORI

Aplikasi Graf pada Hand Gestures Recognition

BAB 2 TINJAUAN PUSTAKA

BAB 2 LANDASAN TEORI

Aplikasi Graf pada Persoalan Lintasan Terpendek dengan Algoritma Dijkstra

Penerapan Algoritma Greedy untuk Memecahkan Masalah Pohon Merentang Minimum

PENERAPAN GRAF DAN POHON DALAM SISTEM PERTANDINGAN OLAHRAGA

LOGIKA DAN ALGORITMA

LANDASAN TEORI. Bab Konsep Dasar Graf. Definisi Graf

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

Discrete Mathematics & Its Applications Chapter 10 : Graphs. Fahrul Usman Institut Teknologi Bandung Pengajaran Matematika

BAB II TINJAUAN PUSTAKA

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

Pemanfaatan Algoritma Sequential Search dalam Pewarnaan Graf untuk Alokasi Memori Komputer

Graf Sosial Aplikasi Graf dalam Pemetaan Sosial

BAB 2 TINJAUAN PUSTAKA

BAB II LANDASAN TEORI

PEWARNAAN GRAF SEBAGAI METODE PENJADWALAN KEGIATAN PERKULIAHAN

BAB II LANDASAN TEORI

BAB 2 LANDASAN TEORI

Aplikasi Shortest Path dengan Menggunakan Graf dalam Kehidupan Sehari-hari

Permodelan Pohon Merentang Minimum Dengan Menggunakan Algoritma Prim dan Algoritma Kruskal

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

Pengantar Matematika Diskrit

Pencarian Jalur Terpendek dengan Algoritma Dijkstra

BAB 2 LANDASAN TEORI

LATIHAN ALGORITMA-INTEGER

Graf. Matematika Diskrit. Materi ke-5

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

ALGORITMA PENCARIAN SIMPUL SOLUSI DALAM GRAF

Kode MK/ Matematika Diskrit

BAB 2 LANDASAN TEORI

Aplikasi Algoritma Prim dalam Penentuan Pohon Merentang Minimum untuk Jaringan Pipa PDAM Kota Tangerang

APLIKASI PEWARNAAN GRAF PADA PENGATURAN LAMPU LALU LINTAS

MENENTUKAN LINTASAN TERPENDEK SUATU GRAF BERBOBOT DENGAN PENDEKATAN PEMROGRAMAN DINAMIS. Oleh Novia Suhraeni 1, Asrul Sani 2, Mukhsar 3 ABSTRACT

Aplikasi Pewarnaan Graf untuk Sistem Penjadwalan On-Air Stasiun Radio

BAB 2 LANDASAN TEORI. 2.1 Penugasan Sebagai Masalah Matching Bobot Maksimum Dalam Graf Bipartisi Lengkap Berlabel

BAB 2 LANDASAN TEORI. 2.1 Teori graf Definisi graf

QUEUE (ANTREAN) Operasi Antrean : FIFO (First In First Out) Elemen yang pertama masuk merupakan elemen yang pertama keluar.

ANALISIS JARINGAN LISTRIK DI PERUMAHAN JEMBER PERMAI DENGAN MENGGUNAKAN ALGORITMA PRIM

Aplikasi Graf Berarah dan Pohon Berakar pada Visual Novel Fate/Stay Night

BAB 2 LANDASAN TEORI

Algoritma Brute-Force dan Greedy dalam Pemrosesan Graf

Algoritma Prim sebagai Maze Generation Algorithm

TEORI GRAF DALAM MEREPRESENTASIKAN DESAIN WEB

PENERAPAN ALGOITMA DIJKSTRA DALAM MENCARI LINTASAN TERPENDEK PADA JARINGAN KOMPUTER

Aplikasi Pewarnaan Graf pada Penjadwalan Pertandingan Olahraga Sistem Setengah Kompetisi

Penggunaan Graf Semi-Hamilton untuk Memecahkan Puzzle The Hands of Time pada Permainan Final Fantasy XIII-2

Deteksi Wajah Menggunakan Program Dinamis

BAB 2 TINJAUAN PUSTAKA

A. TUJUAN PEMBELAJARAN

BAB 2 LANDASAN TEORITIS

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

Graph. Politeknik Elektronika Negeri Surabaya

Pencarian Lintasan Hamilton Terpendek untuk Taktik Safe Full Jungle Clear dalam Permainan League of Legends

Aplikasi Graf dalam Formasi dan Strategi Kesebelasan Sepakbola

BAB II LANDASAN TEORI

BAB 2 LANDASAN TEORI

Graf dan Analisa Algoritma. Pertemuan #01 - Dasar-Dasar Teori Graf Universitas Gunadarma 2017

BAB I PENDAHULUAN. himpunan bagian bilangan cacah yang disebut label. Pertama kali diperkenalkan

BAB 2 LANDASAN TEORI

Diktat Algoritma dan Struktur Data 2

BAB II LANDASAN TEORI. Teori graf dikenal sejak abad ke-18 Masehi. Saat ini teori graf telah

Transkripsi:

6 BAB 2 LANDASAN TEORI 2.1 Pengertian Algoritma Menurut (Suarga, 2012 : 1) algoritma: 1. Teknik penyusunan langkah-langkah penyelesaian masalah dalam bentuk kalimat dengan jumlah kata terbatas tetapi tersusun secara logis dan sistematis. 2. Suatu prosedur yang jelas untuk menyelesaikan suatu persoalan dengan menggunakan langkah-langkah tertentu dan terbatas jumlahnya. 3. Susunan langkah yang pasti, yang bila diikuti maka akan mentransformasi data input menjadi output yang berupa informasi. 2.1.1 Sifat Algoritma Menurut (Suarga, 2012 : 4) sifat utama suat algortima adalah sebagai berikut: 1. Input: suatu algoritma memiliki input atau kondisi awal sebelum dilaksanakan, bisa berupa nilai-nilai peubah yang diambil dari himpunan khusus. 2. Output: suatu algoritma akan menghasilkan output setelah dilaksanakan, atau algoritma akan mengubah kondisi awal menjadi kondisi akhir, di mana nilai output diperoleh dari nilai input yang telah diperoses melalui algoritma. 3. Definiteness: langkah-langkah yang dituliskan dalam algoritma terdefinisi dengan jelas sehingga mudah dilaksanakan oleh pengguna algoritma. 4. Finiteness: suatu algoritma harus memberi kondisi akhir atau output setelah sejumlah langkah yang terbatas jumlahnya dilakukan terhadap setiap kondisi awal atau input yang diberikan. 5. Effectiveness: setiap langkah dalam algoritma bisa dilaksanakan dalam suatu selang waktu tertentu sehingga pada akhirnya didapatkan solusi sesuai yang diharapkan.

7 6. Generality: langkah-langkah algoritma berlaku untuk setiap himpunan input yang sesuai dengan persoalan yang diberikan, tidak hanya untuk himpunan tertentu. 2.2 Teori Dasar Graf Graf digunakan untuk merepresentasikan objek-objek diskrit dan hubungan antara objek-objek tersebut. Representasi visual dari graf adalah dengan menyatakan objek dinyatakan sebagai noktaf, bulatan, atau titik, sedangkan hubungan antara objek dinyatakan dengan garis (Munir, Rinaldi. 2007 : 353). 2.2.1 Definisi Graf Graf didefinisikan sebagai berikut: 1. Menurut (Suarga, 2012 : 224): Graf adalah struktur data yang terdiri atas kumpulan vertex (V) dan edge (E), bisa ditulis sebagai G=(V, E), di mana vertex adalah simpul pada graf, dan edge adalah rusuk/jaring yang menghubungkan dua simpul. 2. Menurut (Munir, Rinaldi. 2007 : 356): Graf G didefinisikan sebagai pasangan himpunan (V, E), dituliskan dengan notasi G = (V, E), yang dalam hal ini V adalah himpunan tidak kosong dari simpul-simpul (vertices atau node) dan E adalah himpunan sisi (edges atau arcs) yang menghubungkan sepasang simpul. 3. Menurut (Fournier, Jean-Claude. 2009 : 23): Sebuah Graf G (tak berarah) adalah definisi dari dua himpunan terbatas, himpunan X tidak kosong dari elemen-elemen yang dinamakan (vertices), himpunan E (dimana boleh kosong) dari elemen-elemen yang dinamakan (edge), dengan setiap edge e terhubungan dengan 2 vertices, x dan y, berbeda atau tidak, yang dinamakan endvertices dari e. Beberapa istilah yang sering digunakan dalam masalah graf antara lain: 1. Adjacent vertex: adalah dua node berdekatan, terhubung langsung oleh vertex. 2. Path: jalur melalui edge yang menghubungkan suatu vertex ke vertex yang lain, panjang suatu jalur ditentukan oleh jumlah jaring (edge) yang menghubungkan dua vertex. 3. Complete graph: adalah graf di mana semua vertex terhubung langsung satu dengan yang lain.

8 4. Weighted graph: graf yang setiap edge memiliki bobot/nilai. 5. Cycle: adalah jalur yang mulai dari suatu vertex dan berakhir pada vertex yang sama (Suarga, 2012 : 225-226). 2.2.2 Jenis-Jenis Graf Graf dapat dikelompokkan menjadi beberapa kategori (jenis) bergantung pada sudut pandang pengelompokannya. Pengelompokan graf dapat dipandang berdasarkan ada tidaknya sisi ganda atau sisi kalang (loop), berdasarkan jumlah simpul, atau berdasarkan orientasi arah pada sisi. Berdasarkan ada tidaknya gelang atau sisi ganda pada suatu graf, maka secara umum graf dapat digolongkan menjadi dua jenis (Munir, Rinaldi. 2007 : 357). 1. Graf sederhana (simple graph). Graf yang tidak mengandung gelang maupun sisi-ganda dinamakan graf sederhana. Pada graf sederhana, sisi adalah pasangan tak-terurut (unordered pairs). Jadi, menuliskan sisi (u, v) sama saja dengan (v, u). Gambar 2.1 Graf sederhana Pada Gambar 2.1 adalah graf dengan himpunan simpul V dan himpunan sisi E adalah: V = {1,2,3,4} E = {(1,2),(1,3),(2,3),(2,4),(3,4)} 2. Graf tak-sederhana (unsimple-graph). Graf yang mengandung sisi ganda atau gelang dinamakan graf tak-sederhana (unsimple-graph). Ada dua macam graf tak-sederhana, yaitu graf ganda (multigraph) dan graf semu (pseudograph). Graf ganda adalah graf yang mengandung sisi ganda.

9 Sisi ganda yang menghubungkan sepasang simpul bisa lebih dari dua buah. Sisi ganda dapat diasosisiasikan sebagai pasangan tak-terurut yang sama. Gambar 2.2 Graf ganda Pada Gambar 2.2 adalah graf dengan himpunan simpul V dan himpunan sisi E adalah: V = {1,2,3,4} E = {(1,2),(2,3),(1,3),(1,3),(2,4),(3,4),(3,4 Pada sisi e 3 = (1,3) dan sisi e 4 = (1,3) dinamakan sisi-ganda (multiple edges atau paralel edges) karena kedua sisi ini menghubungi dua buah simpul yang sama, yaitu simpul 1 dan simpul 3. Graf semu adalah graf yang mengandung gelang (loop). Graf semu lebih umum daripada graf ganda, karena sisi pada graf semu dapat terhubung ke dirinya sendiri. Gambar 2.3 Graf semu Graf semu adalah graf dengan himpunan simpul V dan himpunan sisi E adalah: V = {1,2,3,4} E ={(1,2),(2,3),(1,3),(1,3),(2,4),(3,4),(3,4),(3,3)}

10 Pada sisi e 8 = (3,3) dinamakan gelang atau kalang (loop) karena ia berawal dan berakhir pada simpul yang sama. Sisi pada graf dapat mempunyai orientasi arah. Berdasarkan orientasi arah pada sisi, maka secara umum graf dibedakan menjadi 2 jenis (Munir, Rinaldi. 2007 : 358). 1. Graf tak-berarah (undirected graph) Graf yang sisinya tidak mempunyai orientasi arah disebut graf tak-berarah. Urutan pasangan simpul yang dihubungkan oleh sisi tidak diperhatikan. Jadi, (u, v) = (v, u) adalah sisi yang sama. 2. Graf berarah (directed graph atau digraph) Graf yang setiap sisinya diberikan orientasi arah disebut sebagai graf berarah. Pada graf berarah, (u, v) dan (v, u) menyatakan dua buah busur yang berbeda, dengan kata lain (u, v) (v, u). Untuk busur (u, v), simpul u dinamakan simpul asal (initial vertex) dan simpul v dinamakan simpul terminal (terminal vertex). Pada graf berarah, gelang diperbolehkan, tetapi sisi ganda tidak. Gambar 2.4 Graf berarah Defini graf dapat diperluas sehingga mencakup graf-ganda berarah (directed multigraph) Pada graf berarah, gelang dan sisi ganda diperbolehkan ada. Gambar 2.5 Graf-ganda berarah

11 2.3 Lintasan Terpendek (Shortest Path) Graf yang digunakan dalam pencarian lintasan terpendek adalah graf berbobot (weighted graph), yaitu graf yang setiap sisinya diberikan suatu nilai atau bobot. Bobot pada sisi graf dapat menyatakan jarak antar kota, waktu pengiriman pesan, ongkos pembangunan, dan sebagainya (Munir, Rinaldi. 2007 : 412 ). Ada beberapa macam persoalan lintasan terpendek, antara lain: 1. Lintasan terpendek antara dua buah simpul tertentu. 2. Lintasan terpendek antara semua pasangan simpul. 3. Lintasan terpendek dari simpul tertentu ke semua simpul yang lain. 4. Lintasan terpendek antara dua buah simpul yang melalui beberapa simpul tertentu. 2.4 Algoritma L-Deque Linked list merupakan struktur data dinamis yang paling sederhana yang berlawanan dengan array, yang merupakan struktur statis. Masing-masing data dalam Linked list disebut dengan node (simpul) yang menempati alokasi memori secara dinamis dan biasanya berupa struktur (struct) yang terdiri dari beberapa field (Setyaningsih, E. 2012 : 47). Stack (tumpukan) adalah sebuah list yang semua penambahan dan penghapusan dilakukan pada bagian depan dari list. Algoritma jarak terpendek yang mana Q telah diimplementasikan sebagai sebuah stack yang tidak dibatasi jumlahnya. Deque (double-ended queue atau antrian ganda) adalah sebuah list dimana penambahan dan penghapusan dapat dilakukan pada kedua sisi ujungnya. Deque mungkin terlihat sebagai sebuah stack dan antrian (queue) yang terhubung dalam rangkain yang sedemikian rupa pada bagian belakang (tail) dari stack hingga bagian terdepan pada antrian. Metode ini disebut ldeque, penambahan sebuah simpul pada bagian terdepan dari Q jika simpul tersebut sudah muncul dalam list sebelumnya, dimana simpul ditambahkan pada bagian belakang (tail) jika perlu. Ketika semua simpul mempunyai sebuah label terbatas, metode ini bereaksi seperti sebuah algoritma yang digunakan sebagai struktur data (Mondou, J-F., 1991 : 4-5).

12 FRONT (Q) REAR (Q) Keluar Masuk Masuk Keluar Gambar 2.6 Struktur Umum DEQUE Deque menggunakan dua pointer petunjuk yaitu left petunjuk untuk elemen pada posisi kiri dan right petunjuk untuk elemen pada posisi kanan. Ada dua jenis deque: 1. Input-Restricted-Deque Adalah deque yang operasi pemasukan elemen datanya hanya dapat dilakukan di satu ujung kanannya (right), tetapi dapat menghapus dari kedua ujungnya (left dan right). 2. Output-Restricted-Deque Adalah deque yang operasi pemasukan elemen datanya dapat dilakukan melalui kedua ujungnya (left dan right), tetapi hanya dapat menghapus dari ujung kanannya (right). 2.5 Asimtotik Notasi yang digunakan untuk menentukan waktu tempuh (running time) asimtotik dari suatu algoritma didefinisikan dalam hal fungsi yang mana domainnya adalah himpunan bilangan N = {0, 1, 2,...}. Notasi tersebut mudah untuk menggambarkan keadaan terburuk (worst-case) waktu tempuh fungsi T(n) yang biasanya diartikan hanya pada ukuran integer. Fungsi yang diterapkan notasi asimtotik biasanya akan mencirikan waktu tempuhnya algoritma. Tapi notasi asimtotik dapat berlaku pada fungsi yang menjadi ciri beberapa aspek lain dari algortima (misalnya jumlah ruang yang digunakan) bahkan untuk fungsi yang sama sekali tidak dapat dilakukan oleh algoritma (Cormen et al., 2009 : 43-44).

13 2.6 Kompleksitas Algoritma Suatu masalah dapat mempunyai banyak algoritma penyelesaian. Algoritma yang digunakan tidak saja harus benar, namun juga harus efisien. Efisiensi suatu algoritma dapat diukur dari waktu eksekusi algoritma dan kebutuhan ruang memori. Algoritma yang efisien adalah algoritma yang meminimumkan kebutuhan waktu dan ruang. Dengan menganalisis beberapa algoritma untuk suatu masalah, dapat diidentifikasi sutu algoritma yang paling efisien. Besaran yang digunakan untuk menjelaskan waktu dan ruang ini adalah kompleksitas algoritma. Kompleksitas dari suatu algoritma merupakan ukuran seberapa banyak komputasi yang dibutuhkan algoritma tersebut untuk menyelesaikan masalah. Secara informal, algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang singkat memiliki kompleksitas yang rendah, sementara algoritma yang membutuhkan waktu yang lama untuk menyelesaikan masalahnya mempunyai kompleksitas yang tinggi. (Azizah, U. N., 2013). 2.6.1 Kompleksitas Waktu dan Ruang Kompleksitas algoritma terdiri dari dua macam yaitu kompleksitas waktu dan kompleksitas ruang. 1. Kompleksitas waktu, dinyatakan oleh T(n), diukur dari jumlah tahapan komputasi yang dibutuhkan untuk menjalankan algoritma sebagai fungsi dari ukuran masukan n, di mana ukuran masukan (n) merupakan jumlah data yang diproses oleh sebuah algoritma. 2. Kompleksitas ruang, dinyatakan oleh S(n), diukur dari memori yang digunakan oleh struktur data yang terdapat di dalam algoritma sebagai fungsi dari masukan n. Dengan menggunakan kompleksitas waktu dan kompleksitas ruang, dapat ditentukan laju peningkatan waktu atau ruang yang diperlukan algoritma, seiring dengan meningkatnya ukuran masukan (n) (Munir, Rinaldi. 2007 : 499-500). Untuk menentukan kompleksitas waktu suatu algoritma, diperlukan ukuran masukan n serta waktu tempuh (running time) algoritma tersebut. Pada umumnya,

14 running time algoritma meningkat seiring dengan dengan bertambahnya ukuran n. Sehingga, running time suatu algoritma dapat dinyatakan sebagai fungsi dari n. Running Time algoritma pada masukan n tertentu merupakan jumlah operasi atau langkah yang dieksekusi. Selanjutnya, jumlah waktu yang konstan diperlukan untuk mengeksekusi setiap baris pseudocode (kode semu). Satu baris dapat memiliki jumlah waktu yang berbeda dari baris lain. Namun asumsikan bahwa setiap pelaksanaan baris ke-i membutuhkan waktu sebesar c 1, di mana c 1 adalah konstanta. Dalam menentukan running time suatu baris pada pseudocode (kode semu), kalikan konstanta c 1 dengan jumlah waktu yang diperlukan untuk mengeksekusi baris tersebut. Untuk kasus di mana terdapat perintah loop while atau for dengan panjang n, maka perintah tersebut dieksekusi dengan waktu n + 1. Sedangkan untuk baris berisi komentar, dinyatakan sebagai baris yang tidak dieksekusi, sehingga jumlah waktu untuk baris tersebut adalah nol (Azizah, U. N., 2013).