• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
6
0
0

Teks penuh

(1)

BAB 2

LANDASAN TEORI

2.1. Pengertian Algoritma

Algoritma adalah urutan atau deskripsi langkah-langkah untuk memecahkan suatu masalah. Algoritma merupakan jantung ilmu komputer atau informatika. Banyak cabang dari ilmu komputer yang diacu dalam terminologi algoritma, misalnya algoritma perutean (routing) pesan di dalam jaringan komputer, algoritma bresenham untuk menggambar garis lurus (bidang grafika komputer), algoritma Knuth-Morris-Pratt untuk mencari suatu pola di dalam teks (bidang information retrievel), dan sebagainya (Munir, 2011).

2.2.Shortest Path (Jarak Terpendek)

Persoalan mencari jarak terpendek di dalam graf merupakan salah satu persoalan optimisasi.Graf yang digunakan dalam pencarian jarak terpendek adalah graf berbobot (weighted graph), yaitu graf yang setiap sisinya diberikan suatu nilai atau bobot. Kata terpendek berbeda-beda maknanya bergantung pada tipikal persoalan yang akan diselesaikan. Namun, secara umum terpendek berarti meminimisasi bobot pada suatu lintasan dalam graf (Triansyah, 2013).

2.3.Teori Dasar Graf

Teori graf merupakanpokok bahasan yang sudah tua usianya namun memiliki banyak terapan dalam kehidupan sehari-hari sampai saat ini. Graf digunakan untuk merepresentasikan objek-objek diskrit dan hubungan antarampai saat ini. Graf digunakan untuk merepresentasikan objek-objek diskrit dan hubungan antara objek-objek tersebut. Banyak persoalan pada dunia nyata yang sebenarnya merupakan representasi visual dari graf. Contoh salah satu representasi visual dari graf adalah peta. Banyak hal yang dapat digali dari representasi tersebut, diantaranya adalah menentukan jarak terpendek dari satu tempat ke tempat lain (Pradhana, 2006).

Suatu graf G didefenisikan sebagai pasangan himpunan (V,E)yang dalam hal ini : V = himpunan tidak kosong dari simpul-simpul (vertices atau node): {V1,V2,...,Vn}

(2)

E = himpunan sisi (edges atau arcs) yang menghubungkan sepasang simpul: {E1,E2,...,En}

Atau dapat ditulis singkat notasi G = (V,E)

2.3.1. Grafsederhana dan Graftak-sederhana

Graf sederhana (simple graph) yaitu graf yang tidak memiliki gelang maupun sisi-ganda. Sedangkan Graf tidak sederhana (unsimple graph) yaitu graf yang memiliki gelang maupun sisi ganda. Ada dua macam graf tak-sederhana, yaitu graf ganda (multigraph) dan graf semu (pseudograph). Graf ganda adalah graf yang memiliki sisi ganda, sedangkan graf semu adalah graf yang memiliki gelang.

Sebagai contoh definisi dari graf pada gambar 1 berikut

(a) (b) (c)

Gambar 2.1Beberapa Graf a)GrafSederhana, b)Graf Ganda, c)Graf Semu

2.3.2. Graf berarah dan Graf tak-berarah

Graf berarah (directed graph) merupakan graf yang setiap sisinya diberikan orientasi arah. Pada graf berarah, (vj, vk) dan (vk, vj) menyatakan dua busur yang berbeda, dengan kata lain (vj, vk) tidak sama dengan (vk, vj). Untuk busur (vj, vk), simpul vj disebut simpul asal (initial vertex) dan untuk simpul vk disebut simpul terminal (terminal vertex).

Graf tak-berarah (undirected graph) merupakan graf yang sisinya tidak memiliki orientasi arah. Pada graf tidak berarah, urutan pasangan simpul yang dihubungkan oleh sisi tidak diperhatikan, dengan kata lain: (vj, vk) = (vk, vj)

(3)

Gambar 2.2 Graf Berarah

2.4.Algoritma L-Deque

Antrian berakhir ganda (Deque) merupakan daftar yang menggabungkan sifat-sifat baik antrian dan tumpukan.Sebuah deque adalah daftar dimana penambahan dan penghapusan yang mungkin di kedua ujung, deque digunakan dalam algoritma D’Esopo – Pape, biasanya disebut Algoritma L-Deque (Gallo & Pallotino, 1986).

Algoritma deque (double-ended antrian) adalah daftar penambahan dan penghapusan yang mungkin di kedua ujung. Sebuah deque dapat dilihat sebagai tumpukan dan antrian dihubungkan secara seri di sedemikian rupa sehingga ekor poin stack untuk kepala antrian. Deque digunakan untuk mengimplementasikan dua arah kriteria ide dikaitkan dengan D'Esopo dan Pape.Metode ini yang disebut L-Deque, menambahkan node di kepala Q jika sudah muncul di daftar sebelum node atau ditambahkan pada ekornya begitu juga sebaliknya.Node selalu dihapus dari kepala node yang layak pemindaian daftar. Ketika semua node memiliki label yang terbatas, metode berperilaku seperti algoritma yang menggunakan stack (Mondou et al, 1991).

Deque menggunakan dua pointer penunjuk 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 (leftdan right).

2. Output-Restricted-Deque

Adalahdeque yang operasi pemasukan elemen datanya dapat dilakukan melalui kedua ujungnya (left danright), tetapi hanya dapat menghapus dari ujung kanannya(right).

(4)

2.5.Algoritma Bellman-Ford

Algoritma bellman-ford merupakan salah satu algoritma yang menangani kasus pencarian lintasan dengan bobot terkecil.Algoritma ini memungkinkan apabila di dalam system yang dibangun terdapat pencilan.Seperti yang sudah dicobakan sebelumnya, apabila simpul yang dituju ataupun simpul asal merupakan sebuah pencilan maka hasil yang didapatkan adalah infinity.Tidak hanya itu bahkan apabila ternyata tidak ada lintasan yang menghubungkan antara simpul awal dan simpul tujuan, maka bobot yang dihasilkan juga berupa infinity (Utami, 2009).

Algoritma Bellman-Ford menghitung jarak terpendek (dari satu sumber) pada sebuah diagraf berbobot.Maksudnya dari satu sumber ialah bahwa algoritma Bellman-Ford menghitung semua jarak terpendek yang berawal dari satu titik node. Algoritma Bellman-Ford menggunakan waktu sebesar O(V.E), di mana V dan E adalah menyatakan banyaknya vertex dan edge (Pradhana, 2006).

Gambar 2.3 Graf Berbobot untuk Algoritma Bellman-Ford

2.5.1. PSEUDOCODE

Pseudocode Algoritma Bellman-Ford

function Bellman Ford (list vertices, list edges, vertex source)

: :distance [ ],predecessor [ ]

// Step 1: initialize graph for each vertex v in vertices:

(5)

Predecessor[v] := null distance[source] := 0

// Step 2: relax edges repeatedly for i from 1 to size (vertices) -1 :

for each edge (u, v) with weight w in edges: if distance [u] + w < distance[v]:

distance[v] := distance[u] +w predecessor[v] := u

// Step 3: check for negative weight cycles for each edge (u, v) with weight w in edges: if distance[u] + w < distance [v] :

error “Graph contains a negative-weight cycle” return distance[ ],

predecessor[ ]

2.6.Kompleksitas Algoritma

Algoritma tidak selalu memberikan hasil yang terbaik yang mungkin diperoleh maka diharapkan adanya suatu evaluasi mutu hasil dari algoritma tersebut. Sekali sebuah algoritma diberikan kepada sebuah permasalahan dan dijamin akan memberikan hasil yang diharapkan, maka langkah penting selanjutnya adalah menentukan waktu tempuh yang diperlukan algoritma tersebut untuk memperoleh hasil itu. Proses inilah yang disebut analisis algoritma. Dua buah algoritma yang berberda dapat digunakan memecahkan masalah yang sama dan mungkin saja mempunyai kompleksitas waktu (time complexity) yang sangat berbeda. Kompleksitas waktu algoritma terbaik untuk memecahkan masalah tersebut dinamakan sebagai kompleksitas waktu (time complexity of problem) (Putra, 2014).

Teori komputasi pada dasarnya dibagi menjadi tiga bagian karakter yang berbeda.Pertama, pengertian yang tepat dari algoritma, waktu, kapasitas penyimpanan,

(6)

dan-lain-lain harus diperkenalkan. Untuk ini, perbedaan model mesin matematika hatus digambarkan,waktu dan penyimpanan kebutuhan perhitungan dilakukan pada kebutuhan ini harus diperjelas (umumnya diukur sebagai fungsi dari ukuran input). Yang paling mendasar pada kompleksitas adalah memberikan kalsifikasi penting dari masalah yang timbul dalam praktek, bahkan timbul di daerah matematika klasik.Kedua, kita harus menentukan kebutuhan sumber daya dari algoritma yang paling penting dalam berbagai bidang matematika, dan memberikan algoritma yang efesien untuk membuktikan bahwa masalah tertentu memiliki kompleksitas tertentu.Ketiga, harus menemukan metode yang membuktikan “hasil negatif” yaitu untuk bukti beberapa masalah sebenarnya terpecahkan di bawah pembatasan sumber daya tertentu (Gács & Lovász, 1999).

Terdapat beberapa jenis notasi asimtotik, tetapi peneliti hanya akan menggunakan dan membahas satu notasi saja, yaitu notasi Big-Theta. Big Theta dipilih karena merupakan notasi untuk menentukan kompleksitas suatu algoritma.

Gambar

Gambar 2.1Beberapa Graf a)GrafSederhana, b)Graf Ganda, c)Graf Semu
Gambar 2.3 Graf Berbobot untuk Algoritma Bellman-Ford

Referensi

Dokumen terkait

Model estimasi biaya ini direkomendasikan digunakan untuk mengesti- masi biaya tahap konseptual pada bangunan gedung dengan luas lantai lebih besar dari 650 m 2 ,

Pendahuluan - Mengucapkan Mengucapkan salam salam -- Berdo¶a Berdo¶a -- Absensi Absensi -- Apresiasi Apresiasi -- Memotivasi Memotivasi Siswa Siswa -- Menyampaikan Menyampaikan

Penerapan sistem pengelolaan kehadiran berbasis sidik jari (Finger Print Time Attendance) yang telah dilakukan di lokasi mitra pengabdian dapat menyelesaikan

Penerapan hukum terhadap harta dalam perjanjian perkawinan adalah berlaku saat perkawinan dilangsungkan yang bertujuan untuk melakukan proteksi terhadap harta

Petani yang memiliki umur yang semakin tua (&gt;50 tahun) biasanya semakin lamban mengadopsi ilmu baru atau inovasi baru yang dijelaskan oleh penyuluh dan cenderung hanya

penelitian menunjukkan bahwa keterlibatan kerja memainkan peran yang bermacam-macam dan kompleks dalam mempengaruhi reaksi dari para karyawan sistem informasi kepada

Karena proses pendataan yang dipakai di PT.Kharisma Prima Abadi sela ma ini masih menggunakan proses manual dan menggunakan Microsoft Office Excel, maka penulis ingin membuat

Produk yang diharapkan akan dihasilkan melalui penelitian pengembangan berupa model sarana pembelajaran atletik alat lempar cakram melalui modifikasi ukuran berat,