• Tidak ada hasil yang ditemukan

SYSTOOLS DEMO

2.2. Pengertian Analisis Algoritma

Analisis algoritma dilakukan dengan memperhatikan dua hal, yaitu

waktu tempuh dan jumlah memory yang digunakan. Waktu tempuh memiliki

definisi sebagai waktu yang diperlukan suatu algoritma dalam mencari solusi

atas permasalahan yang diberikan. Waktu yang singkat memberi arti bahwa

algoritma yang digunakan efisien. Waktu tempuh yang diperlukan oleh suatu

algoritma menurut Suryadi MT (1996) dipengaruhi oleh beberapa hal, yaitu:

1. banyak langkah

Banyaknya langkah yang digunakan dalam suatu algoritma

akan menentukan cepat lambatnya proses yang dilakukan oleh

tidak sesuai, maka waktu tempuh yang digunakan algoritma

tersebut pun akan membesar (lambat).

Jumlah memory juga perlu diperhatikan dalam menganalisis suatu

algoritma agar suatu proses dapat berjalan lancar tanpa ada hambatan. Hal

yang mempengaruhi dalam pemakaian memory adalah jenis variable dan data

yang digunakan pada suatu algoritma. Oleh karena itu pengalokasian memory

perlu diperhitungan berdasarkan dua hal tersebut agar lambatnya waktu

tempuh yang terjadi karena kekurangan memory dapat dihindari.

Kompleksitas waktu asimtotik algoritma juga merupakan hal yang

peru diperhatikan dalam melakukan analisis terhadap suatu algoritma.

Kompleksitas waktu asimtotik algoritma dinyatakan dalam suatu fungsi F(N)

untuk kebutuhan waktu tempuh dan penyimpanan untuk sejumlah N masukan

data. Fungsi F(N) tersebutlah yang kemudian dinyatakan sebagai Big Oh. Jika

F(N) adalah fungsi Polinomial dalam N dengan derajat (tingkat) m, yang

ditulis dengan notasi:

F(N) = amNm + am-1Nm-1 + . . . + a1N + a0

maka Big Oh dari F(N) adalah Nm yang dinotasikan: F(N) = O(Nm) (Suryadi MT, 1996). Berikut ini adalah pengelompokan algoritma berdasarkan notasi

Big Oh :

Kelompok

Algoritma Nama

O(1) Konstan

berikut ini. Graf ini menggambarkan hubungan dari suatu tempat ke tempat

yang lain. Node menggambarkan suatu tempat dan vertex menggambarkan

bobot atau jarak yang menghubungkan antar tempat.

Gambar 2.1Contoh Graph (Dijkstra)

Langkah pertama yang dilakukan pada strategi ini adalah menentukan

titik awal dan titik tujuan (dalam kasus ini node satu adalah titik awal dan

node sepuluh adalah titik tujuan). Berangkat dari node satu, terdapat tiga jalur

yang dapat ditempuh yakni jalur dengan nilai jarak 300, 200, dan 350. Jalur

yang dipilih adalah jalur dengan nilai jarak 200 karena merupakan nilai yang

paling optimal (rendah) di antara ketiga nilai tersebut. Pemilihan jalur tersebut

menunjukkan bahwa node kedua yang dilalui adalah node tiga. Pada node

tiga, nilai jarak yang kemudian dipilih adalah nilai 280 yang kemudian

membawa menuju node enam dari nilai 350, 280, dan 410. Node delapan

kemudian menjadi tujuan berikutnya setelah melakukan pemilihan nilai jarak

yang paling optimal antara nilai 350 dan 380. Langkah berikutnya adalah

memilih satu-satunya nilai yang membawa ke tujuan akhir (node sepuluh),

yakni memilih jalur dengan nilai 380. Pencarian jalur terpendek menggunakan

7. d (7) = ?

8. d (8) = ?

9. d (9) = ?

10. d (10) = ?

1 - 3

Iterasi II (posisi awal di titik 3)

1. d(2) = min {d(2), d(3) + a(3,2)} = min (300, 200 + ?) = 300

2. d(4) = min {d(4), d(3) + a(3,4)} = min (350, 200 + ?) = 350

3. d(5) = min {d(5), d(3) + a(3,5)} = min (?, 200 + 350) = 550

4. d(6) = min {d(6), d(3) + a(3,6)} = min (?, 200 + 280) = 480

5. d(7) = min {d(7), d(3) + a(3,7)} = min (?, 200 + 410) = 610

6. d(8) = min {d(8), d(3) + a(3,8)} = min (?, 200 + ?) = ?

7. d(9) = min {d(9), d(3) + a(3,9)} = min (?, 200 + ?) = ?

8. d(10) = min {d(10), d(3) + a(3,10)} = min (?, 200 + ?) = ?

1 – 2

Iterasi III (posisi awal di titik 2)

1. d(4) = min {d(2), d(2) + a(2,4)} = min (350, 300 + ?) = 350

2. d(5) = min {d(5), d(2) + a(2,5)} = min (550, 300 + 320) = 550

3. d(6) = min {d(6), d(2) + a(2,6)} = min (480, 300 + 350) = 480

4. d(7) = min {d(7), d(2) + a(2,7)} = min (610, 300 + 400) = 610

Iterasi VI (posisi awal di titik 5)

1. d(7) = min {d(7), d(5) + a(5,7)} = min (550, 550 + ?) = 550

2. d(8) = min {d(8), d(5) + a(5,8)} = min (830, 550 + 210) = 760

3. d(9) = min {d(9), d(5) + a(5,9)} = min (860, 550 + 230) = 780

4. d(10) = min {d(10), d(5) + a(5,10)} = min (?, 550 + ?) = ?

1 – 4 – 7

Iterasi VII (posisi awal di titik 7)

1. d(8) = min {d(8), d(7) + a(7,8)} = min (760, 550 + 210) = 760

2. d(9) = min {d(9), d(7) + a(7,9)} = min (780, 550 + 290) = 780

3. d(10) = min {d(10), d(7) + a(7,10)} = min (?, 550 + ?) = ?

1 – 3 – 5 – 8

Iterasi VIII (posisi awal di titik 8)

1. d(9) = min {d(9), d(8) + a(8,9)} = min (780, 760 + ?) = 780

2. d(10) = min {d(10), d(8) + a(8,10)} = min (?, 760 + 380) = 1140

1 – 3 – 5 – 9

Iterasi IX (posisi awal di titik 9)

1. d(10) = min {d(10), d(9) + a(9,10)} = min (1140, 780 + 280) =

1060

1 – 3 – 5 – 9 – 10

nilai yang terdapat pada vertex-vertex tersebut menggambarkan nilai jarak

antara satu node ke node yang lain.

Gambar 2.2 Contoh Graph (Pemrograman Dinamis)

Langkah pertama yang dilakukan adalah ambil salah satu node sebagai

tujuan, dalam hal ini node dengan label sepuluh adalah tujuan yang ingin

dicapai. Berangkat dari hal tersebut dapat dilihat bahwa untuk mencapai node

sepuluh tersebut perlu melalui node delapan atau sembilan. Berdasarkan hal

tersebut maka dihasilkanlah sebuah table berikut ini yang menggambarkan

langkah pertama. Langkah I Node Nilai Jarak Jalur yang Ditempuh 8 380 8-10 9 280 9-10

Tabel 2.2 Langkah I Strategi Pemrograman Dinamis

Langkah yang dilakukan berikutnya adalah menentukan jalur

terpendek untuk menuju node delapan dan sembilan yang kemudian menuju

ke node tujuan. Jika berangkat melalui node lima maka nilai jarak yang

870 (200+670). Oleh karena itu, nilai jarak yang dipilih kemudian adalah 810.

Tabel yang menggambarkan hasil dari langkah ini adalah tabel 2.4:

Langkah III Node Nilai Jarak Jalur yang Ditempuh 2 830 2-5-9-10 3 860 3-5-9-10 4 810 4-5-9-10

Tabel 2.4Langkah III Strategi Pemrograman Dinamis

Langkah keempat yang juga merupakan langkah terakhir untuk kasus

ini adalah menentukan nilai jalur terpendek jika melalui node satu. Nilai-nilai

jarak yang dihasilkan adalah 1130 (300+830), 1060 (200+860), dan 1160

(350+810). Berdasarkan nilai-nilai yang dihasilkan tersebut maka 1060 adalah

nilai yang dipilih. Tabel yang dihasilkan dari langkah ini adalah tabel 2.5:

Langkah IV Node Nilai Jarak Jalur yang Ditempuh 1 1060 1-3-5-9-10

Tabel 2.5Langkah IV Strategi Pemrograman Dinamis

Nilai tersebut merupakan nilai akhir yang didapat dari kasus ini. Nilai

1060 juga merupakan nilai jarak terpendek yang dihasilkan untuk mencapai

node sepuluh dari node satu. Hal tersebut menunjukkan bahwa jalur

1-3-5-9-10 merupakan jalur yang harus ditempuh agar hasil yang dicapai adalah

optimal (jalur terpendek).

Salah satu algoritma pencarian jalur terpendek yang menggunakan

strategi pemrograman dinamis dalam cara penyelesaiannya adalah algoritma

9 ? ? ? ? ? ? ? ? 0 280

10 ? ? ? ? ? ? ? ? ? 0

Tabel 2.7Iterasi I Algoritma Floyd – Warshall

Iterasi II 1 2 3 4 5 6 7 8 9 10 1 0 300 200 350 620 650 700 ? ? ? 2 ? 0 ? ? 320 350 400 ? ? ? 3 ? ? 0 ? 350 280 410 ? ? ? 4 ? ? ? 0 300 250 200 ? ? ? 5 ? ? ? ? 0 ? ? 210 230 ? 6 ? ? ? ? ? 0 ? 350 380 ? 7 ? ? ? ? ? ? 0 290 400 ? 8 ? ? ? ? ? ? ? 0 ? 380 9 ? ? ? ? ? ? ? ? 0 280 10 ? ? ? ? ? ? ? ? ? 0

Tabel 2.8 Iterasi II Algoritma Floyd – Warshall

Iterasi III 1 2 3 4 5 6 7 8 9 10 1 0 300 200 350 550 480 610 ? ? ? 2 ? 0 ? ? 320 350 400 ? ? ? 3 ? ? 0 ? 350 280 410 ? ? ? 4 ? ? ? 0 300 250 200 ? ? ? 5 ? ? ? ? 0 ? ? 210 230 ? 6 ? ? ? ? ? 0 ? 350 380 ?

SYSTOOLS DEMO

5 ? ? ? ? 0 ? ? 210 230 ? 6 ? ? ? ? ? 0 ? 350 380 ? 7 ? ? ? ? ? ? 0 290 400 ? 8 ? ? ? ? ? ? ? 0 ? 380 9 ? ? ? ? ? ? ? ? 0 280 10 ? ? ? ? ? ? ? ? ? 0

Tabel 2.11Iterasi V Algoritma Floyd – Warshall

Iterasi VI 1 2 3 4 5 6 7 8 9 10 1 0 300 200 350 550 480 550 760 780 ? 2 ? 0 ? ? 320 350 400 530 550 ? 3 ? ? 0 ? 350 280 410 560 580 ? 4 ? ? ? 0 300 250 200 510 530 ? 5 ? ? ? ? 0 ? ? 210 230 ? 6 ? ? ? ? ? 0 ? 350 380 ? 7 ? ? ? ? ? ? 0 290 400 ? 8 ? ? ? ? ? ? ? 0 ? 380 9 ? ? ? ? ? ? ? ? 0 280 10 ? ? ? ? ? ? ? ? ? 0

Tabel 2.12Iterasi VI Algoritma Floyd – Warshall

Iterasi VII

1 2 3 4 5 6 7 8 9 10

1 0 300 200 350 550 480 550 760 780 ? 2 ? 0 ? ? 320 350 400 530 550 ?

1 0 300 200 350 550 480 550 760 780 1060 2 ? 0 ? ? 320 350 400 530 550 830 3 ? ? 0 ? 350 280 410 560 580 860 4 ? ? ? 0 300 250 200 490 530 810 5 ? ? ? ? 0 ? ? 210 230 510 6 ? ? ? ? ? 0 ? 350 380 660 7 ? ? ? ? ? ? 0 290 400 670 8 ? ? ? ? ? ? ? 0 ? 380 9 ? ? ? ? ? ? ? ? 0 280 10 ? ? ? ? ? ? ? ? ? 0

Tabel 2.15Iterasi IX Algoritma Floyd – Warshall

Iterasi X 1 2 3 4 5 6 7 8 9 10 1 0 300 200 350 550 480 550 830 860 1060 2 ? 0 ? ? 320 350 400 530 550 830 3 ? ? 0 ? 350 280 410 560 580 860 4 ? ? ? 0 300 250 200 490 530 810 5 ? ? ? ? 0 ? ? 210 230 510 6 ? ? ? ? ? 0 ? 350 380 660 7 ? ? ? ? ? ? 0 290 400 670 8 ? ? ? ? ? ? ? 0 ? 380 9 ? ? ? ? ? ? ? ? 0 280 10 ? ? ? ? ? ? ? ? ? 0

Tabel 2.16Iterasi X algoritma Floyd – Warshall

Hasil jalur terpendek yang dihasilkan oleh algoritma ini untuk jalur

terpendek yang ditempuh dari node satu ke node sepuluh adalah 1060.

1. Jalur 1A

Tempat-tempat yang dilalui oleh jalur ini adalah Candi

Prambanan - Bandar Udara Adisutjipto - Jembatan Layang

Janti - Ambarrukmo Plaza - UIN Sunan Kalijaga - Saphir

Square - Bioskop XXI, Jl. Solo - Rumah Sakit Bethesda, Toko

Buku Gramedia, Hotel Novotel - Hotel Santika, Pizza Hut

Tugu Jogja - Kantor Kedaulatan Rakyat - Stasiun Tugu –

Jogjakarta - Jalan Malioboro (ada 3 buah halte) - Kantor Pos

Besar, Kraton, Alun-Alun Utara, Monumen 1 Maret, Benteng

Vredeburg - Taman Pintar, Taman Parkir Bank - Indonesia,

Pasar Beringhardjo, Gondomanan - Pasar Sentul (Jl. Taman

Siswa) - Taman Makan Pahlawan Kusumanegara - Balaikota

Jogjakarta - Kebun Binatang - Gembira Loka - Jogja Expo

Center - Jembatan Janti (kembali ke arah Kalasan, Bandar

Udara Adisutjipto sampai Terminal Prambanan)

2. Jalur 1B

Tempat-tempat yang dilalui oleh jalur ini adalah Terminal

Prambanan – Kalasan - Bandara Adisucipto – Maguwoharjo -

Janti (lewat bawah) - Blok O – JEC - Babadan Gedongkuning -

Gembira Loka – SGM - Pasar Sentul – Gondomanan - Kantor

Pos Besar - RS.PKU Muhammadiyah - Pasar Kembang –

Badran - Bundaran SAMSAT – Pingit – Tugu – Gramedia -

5. Jalur 3A

Tempat-tempat yang dilalui oleh jalur ini adalah Terminal

Giwangan – Tegalgendu - HS-Silver - Jl. Nyi Pembayun -

Pegadaian Kotagede – Basen – Rejowinangun - Babadan

Gedongkuning – JEC - Blok O - Janti (lewat atas) – Janti –

Maguwoharjo - Bandara ADISUCIPTO – Maguwoharjo -

Ringroad Utara - Terminal Condongcatur – Kentungan - MM

UGM – MirotaKampus – Gondolayu – Tugu – Pingit -

Bundaran SAMSAT – Badran – PasarKembang - Stasiun

TUGU – Malioboro - Kantor Pos Besar - RS PKU

Muhammadiyah – Ngabean - Jokteng Kulon - Plengkung

Gading - Jokteng Wetan – Tungkak – Wirosaban – Tegalgendu

- Terminal Giwangan.

6. Jalur 3B

Tempat-tempat yang dilalui oleh jalur ini adalah Terminal

Giwangan – Tegalgendu – Wirosaban – Tungkak - Jokteng

Wetan - Plengkung Gading - Jokteng Kulon – Ngabean - RS

PKU Muhammadiyah - Pasar Kembang – Badran - Bundaran

SAMSAT – Pingit – Tugu – Gondolayu - Mirota Kampus -

MM UGM – Kentungan - Terminal Condong Catur - Ringroad

Utara – Maguwoharjo - Bandara Adisucipto – Maguwoharjo -

JANTI (lewat bawah) - Blok O – JEC - Babadan

BAB III

Dokumen terkait