Anda di halaman 1dari 37
BAB2 LANDASAN TEORI Dalam bab ini dibahas mengenai beberapa teori pendukung yang digunakan dalam penulisan skripsi ini, antara tain : 21. Graph Menurut Wiitala (1987, p178), graph adalah pasangen berurutan dari (V5), dimana V adalah kumpulan vertex (nodes) dan E adalah kompulan edgefare atau kumpulan dari garis yang menghubungkan antara vertex yang satu dengan yang lain. Gambar 2.1. Veriex dan Bége pada Graph Lipschutz (1986, p277) menyebutkan bahwa graph terdiri dari dua bagian, yaitu (). Kumpulan elemen 7 yang disebut dengan nodes (atau point atau vertice) (2), Kumpulan clemen yang berisi edge, dimana setiap edge e dalam £ ‘ diidentifikasikan deagan pasangan uaik (tidak berurutan) [x,6] dari node dalam V, itutisken dengan e~[u, v}. Gambar 2.2. merupaken contoh graph dengan : V=(ABCDE} E={el,e2,€3,e4,e5,e6} Pada gambar 2.2, edge e adalah pasangan verter [A.B], edge ¢2 adalah pasangan vertex [B,C], edge e3 adalah pasangan vertex [C,D], demikian seterusnya sampai edge e6 adalah pasangan vertex (BE} Gambar 2.2. Graph Graph juga dapat diartikan sebagai suatu struktur data yang berbentuk Jaringan (network) dimana hubungan antara elemen — elemennya adalah hubungan ‘many to many. ‘Terkadzng bagian deri graph dapat ditaliskan G = (V, E). Asumsikan bahwa e = /u, vj. Maka nodes u dan v disebut dengan endpoints dari e, kemudian u dan v disebut dengan adjacent nodes atau neighbors. Derajat dari sebuah node 1, ditulis dengan deg(u), adaizh banyaknya edge yang terhubung dengan u. Jika deg(y) = 0 maka u tidek mempunyai edge ~ maka u disebut dengan isolated node. Path adalah rangkaian vertex pada graph dimana setiap pasangan vertex yang saling bersambungan adalah egde dati graph. Path P dengan panjang N dari node w ke node v didefinisikan dengan uutan n + I node, © Sebuah cycle adalah path sederhana tertutup dengan panjang 3 atau lebih. Sebuah cycle dengan panjang k disebut k-cyele, © Simple path adalah path dimana tidak ada edge yang berulang dalam path © Elementary path adalah path yang tidak mempunyai vertex yang berulang, © Circuit adalah path yang dimulai dan diakhiri pada vertex yang sama, © Walk adalah lintasan yang mungkin dilalui dati vertex awal ke vertex tujuan, © Trail adalah walk yang semua edge-nya berbeda. Sebuah graph dikataken multigraph jika pada graph tersebut terdapat loop atau terdapat lebih dari satu edge yang menghubungkan sepasang vertex. Sebuah graph G dikatakan terubung jika setiap node mempunyai path ke node lain. Graph G dikatakan lengkap jika semua node u dalam G berkubungan dengan setiap node ‘ain v dalam G. Graph lengkap mempunyai edge sebanyak : N (N-1) /2 node. 10 24.1. Penggolongan Graph 2.1.1.1 Undirected Graph (Graph tidak berarah) Undirected graph adatah graph yang edge-nya tidak mempunyai arah. Sika (¥;w) adalah undirected edge, maka (v,w) = (,y) Gambar 23 Undirected Graph Pada gambar 2.3 adalah graph tidak berarah. Edge el dapat merupakan pasangan vertex [4,3] atau [BA], edge ¢3 dapat merupakan pasangan vertex [A,C} atau [C,A], hal ini dikarenakan edge-nya tidak mempunyai informasi arah. 2 Directed Graph ( Graph berarab) Directed graph adalah graph yang edge-nye mempunyai arah. Menucut Aho, Hoporoft, Uliman(1983, p198), directed graph adalah graph yang arc/edge-nya merupakan pasangan vertex yang berurutan dari (&,w); v disebut tail dan w adalah head dari edge, edge (0,1) dickspresikan dengan » > w dan digambarkan sebagai berilcut : u Oo Gambar 24 Directed Graph Pada gambar 2.5 arah yang dimiliki tiap edge ditunjukkan oleh anak panah, Edge ef ditunjukkan oleh pasanga verter (ABI, edge e2 oleh pasangan verter [B,C], demikian seterusnya sampai edge e5 yang ditunjukkan oleh pesangan vertex [C/A] Gambar 2,5 Directed Graph ‘Menurut Lipsohutz (1986, p279), sebuah directed graph G atau disebut juga digraph sama seperti multigraph kecuali setiap edge e dalam G diberi arah, Dengan kata lain, ¢ digambarkan dengan pasangan node berurut (14, ). Bukan sebagai pasangin tidak berurut {u,v}. Asumsikan G adalah directed graph dengan directed edge e = (u, v) maka e disebut juga dengan arc dan aturan-aturan di bawah ini berlaku (2. ¢ dimulai pada w dan berakhir pads v, (2). wadalah tempat awal atau initial point dari e, dan v adalah tujuan atau titik terminal dari e, (2). w adalah predecessor v, dan p adalah successor atau neighbor dari u. (4). 1 berbubungan dengan y, dan v bechubungan dengan w Outdegree dari sebuah node u pada G, dituliskan sebagai outdeg(u), adalah jumlah edge yang dimulai pada u, disebut juge sebagai banyaknya edge yang keluar dari suatu node . Gambar 26 Outdepree Pada gambar 2.6, banyaknya outdegree dari node A adalah 3, dapat ditulis outdeg(3) atau outdeg(A) =3 Serupa dengan itu, indegree dari, dituliskan tndeg(y), adalah jumlah edge yang berakhir pada u, atau dikatakan juga sebagai banyaknya edge yang diterima suatu node, Pade gambar 2.6, indegree dari node C adalah 3 dan dapat dituliskan indeg(3) atau indeg/C) =3 12 Sebuah node dikataken source jika outdegreenye positif dan indegree-nya nol. Sebaliknya, sebuah node dikatakan sink, jika ia mempunyai indegree positif, namun ouldegree-nya nol Pada gambar 2.5, diatas terlihat balnwa node A disebut source karena ouldeg(3) yang artinya positif tetapi indeg(0). Sementara node C adalah sink karena indeg(3) tetapi outdeg{(0) Konsep path, simple path, dan cycle path diambil dari undirected graph ke directed graph, ixecuali kini arah dari masing-masing edge di dalam sebuah path harus sesuai dengan arah path tersebut. Sebuah node v dikatakan reachable dari sebuah node u apabila ada sebuah directed path Gari u ke v. Directed groph G dikatekan connected atau terhubung strongly connected jica wntuk tiap pasangan (u,v) dari node dalam graph G terdapat sebuah path dari w ke v dan juga terdapat path dari v ke u. Di lain pihak, G dikatakan unilaterally connected jika uatuk tiap pasang (u, v) dari node datam graph G terdapat sebuah path dari u ke v atau ada sebuah path dari y ke u. Connected graph adaleh graph yang vertex-verternya terhubung dalam path (Johnsonbangh, 2001, p274), Subgraph daci suata graph (V,E) adalah graph (VE) diana V" adalah subset dari V dan 2" terdiri dari edges pada E yang terhubung oleh vertex V" Vertex pada digraph dapat digunakan untuk merepresentasikan objek, dan edge sebagai hubungan antar objek tersebut. Sebagai contoh : vertex B 22 untuk merepresentasikan kota dan edge untuk merepresentasikan jalur penerbangan antar kota tersebut, Queue Queue adalah sebuah list yang mempunyai banyak efemen diana penghapusan dilakukan dilakukan di depan dan penambaban dilakukan di belakang (Lipschutz, 1986, p188). Istilah depan dan belakang hanya dipakai pada list ketika diimplementasikan pada queue. Queue juga disebut First In First Out (FIFO) list Karena elemen pertama dalam quewe akan dikeluarkan pertama. dengan kata lain, urutan suatu olemen masuk ke dalam quewe adalah uruten clemen ity meninggalican queve. Ini kebalikan dengan stack yang menggunakan Last In First Out (L1FQ). Queue banyak dipakai dalam Kehidupan sehari-hari, Mobil-mobil yang memunggu lampu merah di persimpangan membentuk queue, dimana mobil paling depan akan berjaian terlebih debulu. Contoh penting dalam ilma komputer mengenai queue muncul dalam sistem pembagian waktu, dimana program yang mempunyai prioritas yang sama akan meminggu dalam quewe untuk dikerjakan. Queue dapat direpresentasikan dalam komputer dengan betbagai cara, biasanya dengan sarana list satu arah atau array linear. Kecuali disebutkan, masing-masing queue akan diatur oles sebuah array linear dan dua variabel pointer: FRONT, verisi tokasi clemen pertama dari queue; dan REAR, berisi lokasi elemen terakhir dari queue. Kondisi dimana FRONT = NULL menunjukkan bbahwa quewe tersebut kosong 14 15 Ada 2 cara untuk mengimplementasikan queue yaitu : © Implementasi dengan Array Dua hal yang paling penting dalam implementasi quewe dengan array adalah : 1, Queue bergerak dari indeks kecil ke indeks besar. 2. Perlu adanya 2.buah pointer (head dan tail. VAR queue : ARRAY []..pjg_max] of Elemen Type; Queve Tersi | Tempat Kosong A a A Hose Ta Pig-max Gambar2.7 — Kondist I Quews Fika dilakukan beberapa kali enqueue dan dequeue maka menjadi (Gambar 2.8) : Tempatesong | Queue Tenis! | Tempat Koseng a 4 Aa A 1 Hess Tea Pig max Gambar 2,8 Kondisi II Queue ‘Akan tetapi cara implementasi quewe dengan array punya kkelemahan yaitu jika tail dari queue telah mencapai posisi pjg_max maka queue tidak dapet diisi lagi meskipun sesuagguhnya queue mesih ada ‘tempat kosong (area 1 sampai head sebenarnya kosong) 16 Terpanowore | GueweTes | i A 4 vet 1 Gambar29 Koadisi TH Queue Untuk mengatasinya dengan menggunakan circular array, yaitu array yang dibulatkan seolah menjadi sebuah lingkaran (Gamber 2.10) Dengan cara mengisi tempat Kosong (jika tersedia) yang berada pada awal array bila tail sudah mencapai pje_max sehingga pemakainnya lebih efisien Dengan circular array menjadi : Camber 2.10 Clrewlar Array © Implementasi dengan Link List Cara ini dilakukan untuk menghindari masalah alokasi memori seperti yang terjadi pada implementasi dengan array biasa, Dengan cara ini alokesi memori sifatnya dinamis dan memerlukan 2 pointer yaitu : head (untuk menvnjukan posisi awal quewe) dan fail (anutk menunjukkan posisi akhir) 23 Priority Queue Priority queue adalah queue dengan sifat Highest Priority In First Out (HPIVO) yaitu mengambil (enqueue) atau menghapus (dequeue) elemen dengan- prioritas tertinggi. Namun jika yang jadi prioritas adalah waktu kedatangan maka priority queue ini akan menjadi sama dengan queue biasa. Priority queue dibedaken menjadi dua yaitu : 1. Ascending Priority Queue yaitu queue yang diurutkan dengan prioritas menaik, 2. Descending Priority Queue yaitu queue yeug diurutkan dengan prioritas menurin, Cara untuk merepresentasikan priority queve ada dua macam : = Set Dengan cara memasukkan data ke dalam quexe menurut waktu kedatangan, sementara waktu pengambilannya adalah berdasarkan prioritas. Keuntuagan dari cara set ini adalah proses enqueue menjadi sangat cepat dan sederhana, tetapi sebaliknya proses dequeue menjadi lambat Karena kompleks dan memerlukan pencarian elemen dengan prioritas tertinggi wv 18 Enguewe (123 Engucve (19) Eqn 2) Bogu0v0() C2 2 @ | ® o a © Gamber 211 Representasi Set = List Dengan cara memasukkan data (enqueue) berdasarkem prioritas. Kelebihan cara ini adalah operasi dequeve menjadi lebih wudah Karena date sudah iurutkan berdasarkan prioritas. Sementara proses enqueue menjadi lambat karena memeriukan wal unutk menempatian data dalam memori berdasarian prioritas, Ene (12) Enqueua(t17 Enquve 25) 47 1 7 1 2 @ 2 a ® © @ Gambar 212 Representasi List 24 25 Linked List List adalah tipe data yang fleksibel karena dapat membesar dan mengecil sesuai dengan kebutuhan, Semua elemen, di manapun tempatnya dapat dibaca, ditambah, dan dihapus selama masih terdapat di daiam list. ‘Menurut Lipschutz linked list adalah tipe data yang menyerupai mata rantai dengan elemen berisi data dan pointer. Linked list atau one-way list adalah kumpulan elemen data secara linier yang disebut node dan urutannya ditunjukkan dengan pointer (Lipschutz,1986, p15). ‘Masing- masing node dibagi dua bagian yaitu : * — Bagian pertama yang berisi informasi elemen. © agian dua yang disebut link field / nextpointer field yang berisi alamat node berikutnya dalam list. Array Array adalah tipe data struktur yang terdiri dari beberapa data items yang saling berhubungan dan mempunyai jenis yang sama (Deitel, 2001, p197). Array ini merupakan tipe data tinier. Pada umumnya Ietak clemen array secara logical dan physical (dalam memori) adalah sama, Dva bagian utama array adalah index dan komponen. Setiap index selalu berisi hanya satu komponen (one to one relationship) 19 26 27 Array dapat diskses secara positional Access yaitu pengambilan clemen berdasarkan posisi index. Jika pengambilan elemen dilakukan secara acak maka disebut random access Stack Stack adalah list spesial di mana semua penambahan dan penghapusan data dilokukan di ujung akhir dari list yang disebut dengan fop. Nama lain dari stack adalah pushdown list atau Last In First Out (LIFO). Algoritma Pencarian Pada dasarnya algoritma pencarian jarak ada dua macam yaitu : © Uninformed Search Algorithm yaitu algoritms yang tidak memiliki keterangan fentang jarak atau biaya dari path dan tidak memiliki pertimbangan akai path mana yang lebih baik. Algoritma ini hanya dapat membedakan yang mana goa! dan mana yang bukan goal. Karena itu algoritma ini disebut juga Blind-Search Algorithm (Algoritma Pencarian Buta) Strategi pencarian dengan menggunakan algoritma uninformed search, antara lain : breadth-first search, uninform cost search * Informed Search Algorithm adalah algoritma yang memiliki keterangan tentang jarek atau blaya dari path dan menggunakan pertimbangan berdasarkan pengetahuan ekan path mana yang lebih 20 28 baik. Yang termasuk strategi pencarian dengan menggunakan algoritma informed search adalah greedy search dan A Star search Breadth First Search Breaclih-First Search (BFS) merapakan sebuah strategi sederhana dimana titik akar (root node) ditelusuri lebih dahulu, baru kemudian node di bawab root node aken ditelusuri. Secara umun, semua node pada suatu level tertentu akan ditelusuri lebih dahulu sebeium menelusuri node pada level berikutnya, BFS dapat diimplementasiken dengan menggunaken node pada tree yang merupakan tipe antrian FIFO, dengan anggapan bahwa node yang pertama kali ikunjungi aken ditelusuri pertama, Dengan kata lain BFS menggunakan metode yang sama dengan metode pencarian pada tree (Russel, Norvig, 2003, p73) Breadth-First Search (BFS) adalah algoritma yang digunakan untuk mencari jarak pada suatu graph, Ide dasar di balik breadth first search yang dimulai deri node a adalah sebagai berikut. Pertama node a diperiksa terlebih dahulu. Lalu Giperiksa semua node yang berhubungan dengan a, dan seteusnya. Pada dasamya, semua node tetangga dari a harus dicatat, dan dipastikan bahwa tidak ada satu node yang diproses lebih dari satu kali. Ini dilakukan dengan cara menggunakan quewe untuk menampung node yang akan diproses berikutaya, dan menggunakan STATUS yang menyatakan status dari setiap node, Algoritma sebagai berikut an 29 1. Set senma status node menjadi ready stare (Status 2), 2, Taruh node a di dalam quene dan ubah statusnya menjadi waiting state (Status 2) 3, Ulangi langkah 4 dan 5 sampai queue empry. 4, Hapus node N paling atas dari quewe. Proses N dan ubsh status N jadi processed state (Status 3). 5, Tambahkan di belakang queue semua neighbor dari N yang berada pada ready state (Status 1) dan ubah statusnya menjadi waiting (Status 2). 6. Exit, Depth First Search Depth-First Search adalah algoritma yang cara kerjanya mirip dengan BFS yang dimulai dari node a adalah sebagai berikut: Pertama node a diperiksa terlebih dahulu. Kemudian kita memeriksa masing- masing node N sepanjang path P yang dimulai dari A; yaitu, kite memeriksa neighbor dari A, lalu neighbor dari neighbor A, dan seterusaya, Setelah tiba pada Jalan buntu, yaitu sampai akhir dari path P, kita mundur sepanjang path P sampai dapat menemukan path P’, dan seterusnya. Algoritmanya sangat mirip dengan Breadth First Search, namun kita ekan menggunakan Stack daripada Queue. Field STATUS juga dibutuhkan untuk menyatakan status sementara node. 2 210 Algoritmanya sebagai berikut : L 2 6, Set semua status node rienjadi ready state (Status 1). Taruh node a di dalam stack dan ubah statusnya menjadi waiting state (Status 2) Ulangi langkab 4 dan 5 sampai queue empty, Hapus node N paling atas dari stack. Proses N dan ubah status N jadi processed state (Status 3). Tambabkan ke dalam stack semua neighbor dari N yang berstatus not processed (Status 1) dan ubah statusnya menjadi waiting (Status 2). Exit. DFS selalu menelusuri node di level yang terdalam dari semua node dalam suatu tree, Proses ini akan langsung menuju node dengan level paling dalam yang tidak memiliki child node atau node dengan level di bawalnya Setelah ditelusuri, proses pencarian bergerak naik ke level di atesnya (Russel, Norvig, 2003, p75). Heuristic Menurut George Polya, heuristic adalah suatu ilmu mengenai metode dan aturan pencarian (Urger, 1993). Dalam konteks pencarian path, heuristic dapat diartiken sebagai aturan untuk memilih cabang-cabang dalam suatu kemungkinan- Kemungkinan yang paling mendekati solusi masalah yang dapat diterima. 23 Dalam masalah intelegensia semu, heuristic diterapkan dalam dua konsisi dasar, yaitn 1. Suatu masaleh yang mungkin tidak memiliki solusi yang pasti disebabkan ketidakjelasan dalam pemyataan masalah atau data yang tersedia. 2. Suatu masaizh yang memiliki solusi yang tepat, aamun biaya yang Gipertukan tinggi, Dalam banyak masalah(seperti catur), pertumbuban Kemungkinan-kemungkinan bersifat eksponensial. Dalam kasus ini, metode-metode pencarian sepanjang path yang paling “menjanjikan” adalah melalui node-node. Dengan mengeliminasi node dan turunannya dari pencarian, algoritma heuristic dapat mengurangi \edakan eksponensial inj dam menemukan solusi yang dapat diterima. ‘Nammun, seperti semua aturan dan metode pencarian, heuristic dapat gagal. Hal ini disebabkan Karena heuristic hanya menginformasikan perkiraan langkah selanjutnya yong perlu diamba dalam menyelesaikan permasalahan. Heuristic seringkali berdasarkan pengalaman atau intuisi. Hal ini dikarenakan heuristic menggunakan informasi yang terbatas, schingge heuristic jarang sckali dapat menduga sifat node yang tepat sepanjang pencarian. Jadi heuristic dapat mengarahkan algoritma pencarian ke solusi yang cukup optimal atau gagal untuk ‘menemukan solusi apa saja. 24 25 Ada tiga macam heuristic yang wnum dipakai : Manhattan Distance Heuristic yang dapat digunakan untuk pergerakan 4 arah {atas, bawah, kiri, kanan). Tidek ada gerakan diagonal. H(p) = * (abs (Xn — Xgoal) + abs (Yn - Yeoal)) C= fungsi biaya N=node saat ini X dan Y =Posisi dalam koordinat = Diagonal Distance Heuristic yang dapat digunakan untuk pergerakan 8 arab, (atas, bawah, kiri, kanan, dan 4 arah diagonal). (a) = b * mex (abs(Xn - Xgoal) , abs (Yn — Ygcal)) - Straight line distance Heuristic yang dapat digunakan untuk segala arah / segala sudut (a) = sqrt((Xn - Xgoal)? + (¥n+ Ygoal)?) 211 Algoritma A Star Algoritma A Star ini edalah pengembangan Algoritma Djikstra dan merupakan salah satu contoh algoritma Depth-First Search (DFS). Ditemuken pertama keli oleh Hart, Nilsson dan Raphael pada tahun 1968. Fungsi A Star adalah fungsi yang menggsbungkan fumgsi heuristic dan uniform- cost search dengan greedy search. —— Fungsi uniform cost search menggunaken nilai yang pasti dan sudah dixetahui, digunaken dalam A Star unk menghituag jalur yang sudah dilabui (c(a)). Fungi heuristic adatah fungsi perkiraan, digunaken untuk meaghitung jarak deri node sekarang ie node akhir (h(a). Dengan di ketahui kedua jarak di atas, iperkirakan jarak total dari titi awal ke titik akhir melalui node yang sekarang sedang dilalui adalah f{n). Dengan perhitungan : fa) = ofa) + ha) st " O en #o FEenensaatastsistaeetseuasaasiaiaiann] Fo Gambar 2.13 Beuriate F(n) adalah nilai yang dibandingkan di dalam perhitungan A Star. Jalur yang mempunyai F(n) terkeeil dianggap sebagai jalur terbaik. Nilai h(n) mungkin salah, arena ita hanya nilsi perkiraan. Maka untuk mendapatkan hasil yang terbaik, digunakan underestimate, Underestimate beranggapan babwa h(n) yang dihitung sclalu lebih keeil daripada jalan yang seherusnya dilewati. Jarak terdekat antara ua titik adatah suatu garis, sehingga dalam algoritma ini digunakan Straight-line distance heuristic, Dengan menggunakan Herp, maka heuristic yang didapat selalu terkecil atau setidaknya sama dengan jarak yang seharusnya ditempuh. Dengan menggunakan underestimate, maka dapat dihasilkan jalur yang optimal, Ada 2 List yang digunakan pada A Star, yaitu 26 7 ia © Open list , berisi node yang telah ditelusuri dan telah di hitung : nilai fungsi heuristic-nya, tetapi belum diperiksa (misalnya successor suata node). © Close list , berisi node-node dari open list yang telah diperiksa. 2111 Care Kerja Algoritma A Star Contoh penerapan algorima A Star : Berikut ini adalah contoh kasus dari suate node, angeap bahwa node awal adalah A dan node tujuan adalab L. Gambar 2.16 Contoh Kasus Rute Koordinat dari masing-masing node adalah Perhitungan nilai b(n) atau heuristic secara Straight line dari setiap node ke node ‘Tabel 2.1 Tabel Keordinat Awal note [ x | ¥ Ae | a a | mes ee 0 | | ams = [as | as F[ws | me ce eae 1 ers | 2325 | Tas «| #8 | ams ee ‘ujuan adalah sebagai berikut (x) = sqrt (power(Ks — Xtujuan) + power( Yn ~ Ytujuan)) ‘Tabel 2.2 Tabel Nilai Heuristic Heute roe) | A 89.51257 } 2 meas e resem r 3 60,20797 = wo F asa ¢ wom | H 5297405 | 1 mea r soe K vee | t 8 28 ‘Tabap inisialisasi dalam mengerjakan aigorima A Star adalah memasukan ode awal ke dalam open list. Set semua C menjadi 0 (nol) dan set H dengan heuristic nya masing-masing. Sehingga data akan menjadi seperti berikut “Tabel23 Tabet Data Inisiatsas pesca ta sla all] eae [sm [ol | { ec [elofofoj{oj/o|ojolefofao|o # 89.51 | 7832 | 76.69 | 6021 | 535 | 42.7 | a1 | S297 | 2462 | 50.25 | 27.04] 0 [sect [asst | 7602 | ras0 [e021 | sas | azsr| at | szer | 2482 | 5025 [2708] 0 | Keterangan status : - = Open, menandakan node ada di dalam apert fist. C= Close , menandakan node ada di dalam close list. (empty) = Menandakan node belum di proses. Perulangan Pertama : Ambil node terbaik dari Opes list, kerena baru ada satu node, maka node terbaik pasti node awal, sehingga ambi! node tersebut dan ubah status nya menjadi close list, Ambil semua node anak dari A, yaitu node B, Masukan node B ke dalam Open list dan hitung C nya, Sehingga hasil akhir dari perulangan pertama adalah 29 30 : ‘abel 2.4 Yabe Data Hail Pertngan Porta : we Tatelelelelele[*] | tle om [ele Jee) c of t4se} 0 ° ° 0 o ° o lo o o + [on [nse |ne [on] as [es|« [aa |me|aas|aa| 0 Feces [wor |ooa [rm |ma| ms [aa] a [ear] nr [mz [arer] 0 Perulengan Kedua : Ambil node terbaik dari ozen fist, karena hanya ada satu node di dalam open list, maka node terbaik adalah B, Ganti status node B menjadi close. Ambil semua node anak dari B yaitu node C dan D. Node C belum ada di dalam list sehingga masulcken ke dalam open list. Node D belum ade di dalam list sehingga masukkcan ke dalam /ist. Hasilaya adalah : ‘Tabel 2.§ Tabel Data Has Perulangan Kedua we [alelelolel[rlelnl[1[s[«|e ses ee er eed rt | H | e051 76.32 | 76.60 | 60.25} 53.5 | 42.57| 41 | s297 | 2462 | 5025 | 27.08] 0 jee) es os es ||| cess a Perulangan Ketiga Ambil node terbaik dari open list, yeitu node D, karena node D ‘mempunyai F yang lebih kecil dibandingkan dengan node C. Ganti status node D menjadi close. Ambil semua node anak dari D yaitu E dan F, Node # belum ada di list sebingga masukan node E ke dalam list. Node F belum ada di dalam list, sehingga masukan node F ke dalam list. Hasil nya adalah : ‘Tabel2.5 Yabel Dats Basil Perulangan Ketiga [me [alelelolel[rle wlilsfxle Soni ee ace eee inee seated ea] eee co | 0 |xse|aias| sor | sone |mss| 0 | o | o | 2 |e | 0 (wma rex | me [ext] os [ew [awrlae fossa | [pros [ons | wos | 0 [102 [soma] m2] « [eorme orm [zor] 0 Perulangan Keempat : Node terbaik adalah node E. Masukan E ke dalam close list. Ambil semua node anak dari node E. Node G belum ada di list sehingga masukan node G ke dalam list, Node H belum ada di list sehingea masukan node H ke dalam list. Hasil nya adalak : ‘Tabel2.7 Tabet Data as Perlangea Keema nme [atelelolelriolulsl[slxfe su [eleloieleleoleoleo! | ce _| 0 | rss | eras | oer |ccse| mas| romeo) o | o | o | [sr | rose | re0e | oo2r| sos |ecor| a | seer | 2nez [so2s| zroe] 0 reer | onsr| 009 | to» | soa tona | 202 13 | za | ater |soas [2200 | 0 31 Perulangan Kelima Node terbaik: adalah node C. Masukan node C ke dalam close ist. Ambil semua anak dari node C yaitu node H. Node H sudch pemah ada di dalam Close Hist, Sehingga harus dibandingkan manzkab yang lebih baik, apakah node H yang melalui node C atau melalui node E. Ternyata basil nya lebih baik melalui nade Tabel2.8 Tabel Date Hasil Perulangan Kelima wo |afelelojelriel|e[s[s| «le sae [elelelel/elol|oie, | e | 2 [see |se35] wor sone| res maa sor) o | o | o | © #_[ma|mn|mmlen| as ler] « [aw [malan|ao| 0 1 | Feeen east] aoe | ve | 203] 003 | oz | ta we | arco| eaas| zor 0 Perulangan Keenam Node terbaik adalah node H. Masukan node H ke dalam close list. Ambit semua anak dari Node Hi. Yaitu node E , G dan J, Node B ada di dalam cfosed list, sehingge check nilai flo) yang bart apakah lebih baik dari ffm) yang lama. ‘Temyata nilai yang baru lebih besar, schingga biarkan nilai node E. Node G ada 4i open list, bandingkan nilei fa) yang baru dengan yang lama, Ternyata nilei yang lama lebih baik, sehingga biarkan nilai dalam node G. Node J tidak ada di dalam list, masukan node J ke dalam open fist. Hasil nya adalah 32 ‘Fabel 29 Tabet Data Hasil Perulangan Keenam me [alojelofelrele[wls selec sae | cje|ele|cle|o|e ° { © | 0 | 2e|stas) aor| sae | res | raa[ssor| © mar] a |e [ees] re20 | ro00 feoa | sus [aaar| a [soer| seen was] azar] o ea aa nat ot [a le lle oes Peculangen Ketujuh : Node terbaik adalah node G. Masukan node G ke dalam close list. Ambil semua anak dari node G, yaitu node I dan F, Node I belum ada di list, masukan node 1 ke dalam open list. Node F sudah ada di dalam open list, check dan bandingkan. Hasiinya adalab : ‘Tabel 2,10 Tabel Data Hasil Perulangan Ketujuh ae oe wm [elelelele|elelelo|o c | © | ress |ares coor | seme! mss 7002 | sear | s2ae | zsr| 0 | 9 | east | re2e | r6e0 | oo2r | sas [aasr| a | s2er| 2x2) soas |zr0¢| 0 [recom [esr] 909 | sm fre0a) ea | ana | seca oo | re ra [zro| ol Perulangan Kedelapan Node terbaik adalah Node {. Masukan node I ke dalam close list. Ambil semue node anak dari 1, Node K belum ada di list, masukan node K ke dalam open list. Node 1, behum ada di fist, masukan node [. ke dalam open list, Hasilnya adalah : 34 + Tabel 2.11 Tabel Data Hasil Perulangan Kedelapan mo [atele|olelelel# [+ [ef«fe ma [efele|elele|el{elelel|eole co | sass | 2195 | coor | s2ee | 7708 | rox2| ssor | soeo| res] se [are | east | rece | 7600] ozs | sas | aasr| a | sasr | asee| 25) arm| 0 Lorcoon [esi | sos | 100 | ona toes | az lari | ses | ze tare | vas [7s Perulangan Kesembilan : Node terbaik adalah node L. Dan L adalah node tujuan, schingga takuken, back tracking sampai ke node semula dan laporkan bahwa hasil sudah di temukan. Jalur yang ditempuh A Star adalah : Gambar 2.15 Gambar Rute Hest Pencarian dengan A Star 35 2.112 Prosedur A Star 1 Inisialisasi Masukken node awal ke dalam open list. Set semua cost menjadi 0 (nol). Hitung semua heuristic dari masing-masing node. Hingga node tujuan ditemmukan, viangi : ‘Tika tidak ada node pada opentist, maka laporankan error. Jika tidak ada lagi node pada open dist, maka laporkan jalan tidak ketemu. Jka tidak Yekukan hal di bawah ini = Ambil node terbaik dari open dist. Node terbaik adalah node yang mempunyai jarak yang sudah dilalui (cost) di tambah dengan jarak perhitungan perkiraan dari node sekarang ke node rijuan (heuristic) yang teckeeil, sehingga jarak yang diperhitungkan adalah jarak perkiraan dari node awal ke node tujuan melalui node sekarang. - Jika node terbaik ini adalah node tujuannya maka hentikan pencarian an lakuken bal ini © Ulangi sampai node mencapai node awal ® Letalckan 1D node ini ke dalam stack. ® Mundur satu node dengan menggunaken pointer ‘yang menuju node sebelumaya (back pointer). © Keluarkan dan tampilian semua isi dari stack. Ini adelah hasil pencerian jalan terpendek. ©. Keluar dari module penearian. + Masukkan node ini ke dalam closed list. 36 = Periksa semua node anak dari node tersebut. Untuk setiap node anak Iakukaa hal di bawah ini © Jika node anak tersebut ade di list make eek, apabila cost dati node yang sudah ada di list lebih baik, maka ‘Jangan lakukan apa-apa. Tetapi jika cost dari node anak lebih baik, maka hapus node itu dari fist dem masulkkan node anak yang baru. ©. Sika tidak ada di dalam fist maka masukkan node ini ke dalam open list. © Cost dati node anak adalah cost parent di tambah dengan jarak dari parent ke anaknya, © Heuristic di hitung dari node sekarang ke node akbhir. Dipakai sebagai jarak perkiraan yang masih harus di tempuh sampai mencapai tujuannya © Back pointer di set ke arah parent dari node ini. 2.12 Algoritma Dijkstra Algoritma Dijkstra ditemukan oleh Edger Wybe Dijkstra. Algoritma ini merupakan pengembangan dari Breadth First Search, dimana setiap edge-nya memiliki nilai dan nilainya selalu positif ( Stout, 1997, pl). Perbedaan algoritwa Dijkstra dengan aigoritma lain terletak pada open list-nya. Open list pada Dijkstra merupakan priority queue, dimana veriex dengan prioritas tertinggi akan diproses terlebik dafulu, yaity vertex yang memiliki nilai terkecil pada open fist. Jadi pengaturan priority queue pada Dijkstra dipengarchi oleh nilai edge kumulatif dari vertex awal sampai vertex ke n. Algoritma ini merupakan jenis algoritma greedy vang berart jika terdapat pilihan, maka akan beroperasi dengan memilih piithan yang nilainya paling baik, Algoritma Dijkstra dibuat uctuk menemukan pash dengan nilai terkecil dari vertex awal tunggal ke semua vertex pada graph. Algoritma Dijkstra ekan melihat vertex yang terdekat dengan vertex awal lalu melibat successor dari vertex tersebut, kemudian memperbaharui jaraknya dari awal, demikian seterusnya sampai ditemnkan verte tujuan. 212.41 Cara Kerja Algoritma Dijkstra Algoritma Dijkstra menelusuri path dengan vertex awal S, ke semua vertex dalam graph (V-1). V adalah semua vertex yang terdapat dalam graph. Algoritma Dijkstra membagi vertex-vertex yang pemah ditelusuri menjadi S dan F. S terdiri dari vertex-vertex yang path terpendeknye belum ditemukan. Sedangkan vertex ‘yang tidal termasuk dalam $ dan F adalah vertex yang belum ditelosuri. Algoritma, terbaru dari § ke masing-masing vertex. Jka sebuah vertex v termasukdalam S, stra terus meng-update D, yang berisi jarak terpendek yang make d{v] sudah pasti merupakan jarak terpendek menuju ke vertex tersebut. Jka y termasuk F, maka untuk sejauh ini, d{p] masin merupaken jarak terpendek(masih bisa berubah). Selain itu, jika v tidak termasuk $ maupun F, maka d[v] belum bernilai. Di bawah ini adalah pseudocode dari algoritina Dijkstra. L{u,v) adalah panjang edge dari wke vy. Procedure Dijkstra S= (s}7 F = our(s); for V in OUT(S) {a[¥) = lengtn(s,v)7} white F is not empty ( V=U such that d{U] is minimum ancng V in F 37 . PePr- wie ‘ s-st (ir for Win OUT(Y) { : if Wis not ins { new_dist = a{V] +L (v,w): ix Wis in F ( iw) = min(atw), new dist);) else { DW] ~ new_dists Fer? (we i 1 ) Algoritma Dijkstra dimulai dari $ = {S} dan V = OUT(S), sclanjutnya memindahkan verter V dalam F yang mempunyai jarak terpendek ke dalam S. Bdge yang keluar desi V menuju verrex-vertex W akan ditelusuri dan jarak meauju W aken dicupdate sesuai dengan kondisi, jika W termasuk $ maka d[W] sudah merupakan jarak terpendek menuju W Karena it d{W] tidak peclu di- update, jika. W tennasuk F maka jika jarak menuju W yang baru ditemukan lebib pendek dari d[W] maka é[W} akan di-update, dan jika W tidak termasulk $ maupun F maka W ditambahkan ke F dan df W] diisi dengan jarak menujn W yang baru didapatkan. 2.13 Perbandingsn Algoritma A Star dengan Algoritma Dijkstra Kelebihan algoritma A Star dibandingkan Dijkstra (Wijaya & Gunawan, 2001, p372) adalah sebagai berikut : 1, Waktu pencarian algoritma A Star dalam menemukan rute lebih cepat dari algeritma Djikstra. 2. Sumlah logy AA Star lebih sedikit dari algoritma Dfikstra, 3. Rute yang ditemukan berbeda tapi mempunyai biaya yang sama, 38 39 : 2.14 Relational Database Database adalah kumpulan data-data yang terintegrasi dan saling behubungen sat dengan yang lain (Richard,1996). Apabila diberi spesifikasi data item maka struktur deri database akan memfasilitasi akses ke data-data yang, berhubungan denganrya, Menurut Conolly (2002, p14), database adalah sekumpulan data yang terirubung secara logis dan dapat digunaken bersama (shared data}, didesain ‘unfuk memenuhi kebutuhan informasi dari suatu organisasi, Relational Database merupakan tipe database yang didasarkan pada relational model dimana semua data yang terlihat oleh pengguna disusun dalam Bentuk tabel-tabel dan semua operasi pada database bekerja pada tabel-tabel tersebut, Relational database merupakan sekempulen tabel dengan nama-nama yang berbeda. Beberapa istilah dalam relational database (Connoly,2002,pp72-74), antara lain © relation, yaitu tabel yang terdiri dari baris dan kolom, © attribute atau atribut, yaitu kolom pada pada tabel. © domain, yaitu nilei-nilai yang diperbolehkan pada satu atau lebih attribute © tuple, yaitt baris pada tabel. © dogree, yaitu jumlah attribute, © cardinality, yaita jumtah tuple. Dalam relational database perlu wtuk mengidentifikasikan attribute-ateribute yang ada, Beberapa istilab yang digunakan untuk mengidentifikesikan attribute {Connoly, 2002, pp78-79) adalah : © candidate key, yaitu key yang dicalonkan untuk cipilih menjadi primary key. © primary key, yaitu candidate key yavg terpilin untak mengidentifikasikan baris secara unik pada suatu tabel, Setiap tabel hanya memiliki satu primary key den primary key digunakan sebagai identifier sehingga haros ada nileinya (tidak boleh null) © foreign key, yaita svate atribut atau kumpulan atribut dalam suatu relasi yang sama dengan candidate key dari beberapa relasi © alternate key, yaitu candidate key yang tidak terpilih menjadi primary key. ‘Ada tiga jenis relasi dalam bubungan antar record dalam table yaitw : a. One to One yaitu relasi antara satu record dengan record yang lain dalam tabel yang berhubungan. b. One to Many yaitu relasi antara satu record dengan lebih dari satu record dalam tabel yang saling berhubungan. ©. Many to Many yaitu relasi antara banyak record dengan lebih dari satu record dalam tabel yang saling berhubungan. 218 SQL 40 216 SOL (Structured Query Language) adalah stander bahasa pemrograman yang interaitif’ untuk mengambii informasi dari dan update ke sebuah database, Wolaupun SQL memenuhi standar ANS? da ISO, tetapi banyak produsen database yang menambahkan fungsi-fungsi di Iuar dari fungsi, Untuk mengoperasiken database digunakan bahasa periutah yang memungkinkan untuk memasukan data (insert), menghapus datz (delete), mengubah isi date (update), mengambil data dari database (select), dan masih banyak lagi. Model Tradisional Pengembangen Sistem Siklus peagembangan sistem model tradisional ini merupakan sebuah metodologi pengembangan sistem dengan pendekatan yang sistematis, berurutan, don dimatat dari tingkat sistem awal, melalui proses anclisis, perancangan serta coding, pengujian, den perawatan (Pressman, 2001, p25). Adapun aktivitas yang dilakuken dalam siidus ini yaitu + 1. System Engineering Melakukan pengumpulan kebutuban - kebutuhan dari sistem yang sedang berjalan untuk menentukan rancangan sistem yang baru 2. Software Requirement Analysis Membuat dokumentasi dasi kebutulan sistem dan perangkat lunak yang ada, dan melakukan pembabasan bersama dengan pengguna. 3. Design Langkah ini berfokus pada pembuatan struktur data, perancangan arsitektur perangkat lunak, detail prosedur, dan karakterisasi fungsi 4 a2 antar-muke. Secara detil, sistem perancangan menggambarkan bagaimana memenuhi kebutuban untuk pembangunan yang telah ditentukan pada saat melakukan software requirement analysis. 4 Coding ‘Membuat dan menghasilkan program yang dibutuhkan oleh sistem baru, 5. Testing Secara rinci implementasi melakukan user testing tethadap program yang telah dibuat, file database convertion, user taining, dan melakukan pengenalan terhadap sistem bara. Serta memastikan bahwa output sistem telah sesuai dengen yang dikehendaki, 6. Maintencnce Melakukan review terbadap sistem yang sudah jadi, melakukan modifikasi sejauh diperlukan, dan langkah ini bisa mengacu pada kelima angkeh yang sudah dilakukan di atas tergantung perubahan — perubahan yang terjadi. 27 State Transition Diagram STD merupakan sebuah sarana / alat untuk mengetahui perilaku sistem ari waktu ke waktu (Yourdon,1989, p259), Diagram ini menunjukkan bagaimana proses-proses dalam sebuah sistem berhubungan satu dengan yang Iainaya dalam Kurun wakte tertentu, 43 a STD menunjukkan bagaimana sistem bertindak sebagai akibat dari event eksternal. STD mewakili bermacam ~macam tipe tindaken yang disebut state dari sistem dan perubahan — perubahan yang terjadi sebagai akibat tindakan yang disebut transition dari state ke state (Pressman, 2001, 9302). Sebuah state transition diagram secara umum terdiri atas tiga komponen, yaitu : I States States menyatakan kondisi dari sistem pada suatu wakt (biasa dilambangkan dengan sebuah segi empet). 2. Events Events menjelaskan peristiwa apa yang terjadi pada saat perpindahan status sistem, biasanya diletakkan di sebelah garis transition. Dua hal yang diperlukan saat perpindskan status adalah kondisi yang menyebabkan terjadinya perubahan pada state, dan aksi sebagai alcibat atau reaksi yang dilakukan state techadap kondisi yang terjadi 3. Transitions Transitions menyatakan jalannya suatu sistem dan dilambangkan dengan anak panah yang menunjukkan kemana arah sistem tersebut berlaku. Secara umum dapat diguaakan dua buah cara untuk menggambarkan STD, yang pertama adalah dengan penclusuran jelannya sistem dari awal sistem tersebut, sedangkan yang kedua dengan ditelusuri dari hasil akhir keadaan sistem yang ingin dicapai, lalu meningkat ke keadaan di atasnya sampai pada keadaan awal sistem.

Anda mungkin juga menyukai