21. Maningar

Post on 03-Mar-2018

228 views 0 download

Transcript of 21. Maningar

  • 7/26/2019 21. Maningar

    1/5

    Pelita Informatika Budi Darma Volume : VI Nomor: 3 April 2014 ISSN 23 1 9425

    Perancangan Aplikasi Pencarian Jalur Terpendek Menggunakan Algoritma A*. Oleh : ManingarSormin

    101

    PERANCANGAN APLIKASI PENCARIAN JALUR TERPENDEK

    MENGGUNAKAN ALGORITMA A*

    Maningar Sormin (0911508)

    Mahasiswa Program Studi Teknik Informatika, STMIK Budidarma MedanJl. Sisingamangaraja No.338 Simpang Limun Medan

    www.stmik-budidarma.ac.id // E-mail : maningarsanrobin@gmail.com

    ABSTRAK

    Dalam Kehidupan sehari-hari kebanyakan orang sering melakukan perjalanan dari suatu tepat ke

    tempat lain yang akan dituju dengan menggunakan jalan yang sama. Untuk mengoptimalkan jarak perjalanan

    maka sangat diperlukan penentuan jalur terpendek dari tempat asal ke tempat tujuan. Pencarian jalur terpendek

    merupakan permasalahan untuk menemukan jalur diantara dua node yaitu node awal dan node tujuan. Node

    akan merepresentasikan lokasi pada peta sedangkan bobotnya akan merepresentasikan jarak yang dibutuhkan

    untuk melakukan perjalanan antara dua tempat tersebut.

    Salah satu metode yang dapat digunakan untuk menyelesaikan permasalahan pada pencarian jalur

    terpendek yaitu dengan menggunakan algoritma A*. Algoritma A* merupakan salah satu algoritma yang

    digunakan untuk memecahkan masalah pencarian jalur terpendek yang penerapannya dilakukan dengan carabertahap. Pada penelitian ini, penulis membuat sebuah aplikasi yang dapat digunakan untuk melakukan

    pencarian jalur terpendek antara beberapa rumah sakit yang ada di kota Medan yang tentunya dengan cara

    menerapkan algoritma A*.

    Kata Kunci : Algoritma A*, Pencarian Jalur Terpendek, Aplikasi,Rumah sakit kota Medan, VB.6.0

    1. Pendahuluan

    1.1 Latar Belakang Masalah

    Hampir setiap orang tentu pernah bepergian kesuatu tempat baik untuk bekerja, rekreasi, atau

    melakukan aktivitas lainnya, pencarian jalur terpendek

    saat melakukan perjalanan merupakan hal yang

    diharapkan, Alasan pencarian jalur terpendek adalah

    untuk meringkas perjalanan dan menghemat biayaperjalanan. Saat melakukan perjalanan ke tempat

    tujuan sering kali seseorang membawa peta sebagaipetunjuk jalan, Penggunaan peta dalam bentuk ini

    secara visual mampu menggambarkan jalur yang akan

    ditempuh dari kota asal ke kota tujuan. Pemakaian

    peta kertas mempunyai kendala secara visual yaituharus dapat mengurutkan jalur-jalur mana saja yang

    harus ditempuh, Selain itu pengguna peta jenis ini juga

    terkadang tidak dapat memberikan suatu saran jalurmana yang paling efektif yang dapat dilalui.

    Untuk menyelesaikan masalah di atas maka

    diperlukan suatu sistem yang dapat membantu dalam

    mencari dan menentukan lintasan terpendek sehingga

    didapat suatu jalur yang paling optimal untukmencapai suatu lokasi. Dalam penelitian ini akan

    dibuat sebuah perangkat lunak yang dapat

    menyelesaikan permasalahan di atas yaitu suatuperangkat lunak yang dapat memberikan rute jarak

    paling optimal pada sebuah peta dengan menggunakan

    Algoritma A*. Pencarian ini akan direpresentasikandalam bentuk graf berbobot di mana setiap vertex

    digambarkan dengan koordinat dua dimensi serta

    bobot edge nya adalah jarak antara vertek yang salingterhubung.

    Algoritma A* adalah algoritma pencarian pada

    graf yang mencari jalur dari satu verteks awal ke

    sebuah verteks akhir yang telah ditentukan. AlgoritmaA* menggunakan pendekatan heuristik yang

    memberikan peringkat ke tiap-tiap verteks yang

    direpresentasikan dengan Rumah Sakit di kota Medan,

    dengan cara memperkirakan rute terbaik yang dapat

    dilalui dari verteks tersebut. Setelah itu tiap-tiapverteks tersebut dicek satu-persatu berdasarkan urutan

    yang dibuat dengan pendekatan heuristik tersebut.

    Perumusan Masalah

    Sesuai dengan penjelasan dan uraian pada latar

    belakang masalah, maka penulis menentukanperumusan masalah sebagai berikut :

    1. Bagaimana proses pencarian jalur terpendek

    menggunakan algoritma A*?2. Bagaimana cara menerapkan algoritma A*

    terhadap pencarian jalur terpendek?

    3. Bagaimana merancang sebuah aplikasi pencarian

    jalur terpendek menggunakan algoritma A*?

    Batasan Masalah

    Agar pembahasan dalam penelitian tidakmenyimpang dari rumusan masalah, maka diberikan

    batasan masalah sebagai berikut :

    1. Perancangan sistem dilakukan denganmenggunakan pemrograman Visual Basic 6.0.

    2. Menggunakan algoritma A* untuk pencarian rutetependek.

  • 7/26/2019 21. Maningar

    2/5

    Pelita Informatika Budi Darma Volume : VI Nomor: 3 April 2014 ISSN

    23 1 9425

    Perancangan Aplikasi Pencarian Jalur Terpendek Menggunakan Algoritma A*. Oleh : ManingarSormin

    102

    2 Landasan Teori

    2.1 Pengertian PencarianMenurut Anita.D, M.Arhami (2006: 24)

    Pencarian adalah suatu proses mencari solusi darisuatu permasalahan melalui sekumpulan kemungkinan

    ruang keadaan (state space). Ruang keadaan maupunruang keadaan yang berisi semua keadaan yangmungkin.

    Secara umum, proses pencarian dapat

    dilakukan sebagai berikut:

    1. Memeriksa keadaan sekarang atau awal2. Mengeksekusi aksi yang dibolehkan untuk

    memindahkan kekeadaan berikutnya.

    3. Memeriksa jika keadaan baru merupakansolusinya. Jika tidak, keadaan baru tersebut

    menjadi keadaan sekarang dan proses ini diulangi

    sampai solusi ditemukan atau ruang keadaan habis

    terpakai.

    Masalah pencarian merupakan pencarian solusi

    yang direncanakan, yang mencari lintasan darikeadaan sekarang sampai keadaan tujuan. Suatu

    masalah pencarian direpresentasikan menggunakangraf . Keadaan yang direpresentasikan sebagai node

    (simpul), sedangkan langkah yang dibolehkan atau

    aksi direpresentasikan dengan arc(busur).

    2.2 Lintasan Terpendek (Shortest Path)

    Lintasan terpendek merupakan salah satupersoalan optimasi. Graf yang digunakan dalam

    pencarian lintasan terpendek adalah graf berbobot

    (weighting graph), yaitu graf yang setiap sisinya

    diberikan nilai atau bobot. Bobot pada sisi graf dapat

    menyatakan jarak antar kota, waktu pengiriman pesan,

    ongkos pembangunan, dan sebagainya. Asumsi yangkita gunakan di sini adalah bahwa semua bobot

    bernilai positif. Kata teroptimal berbeda maknanya

    bergantung pada tipikal persoalan meminimalisasibobot pada suatu lintasan di dalam graf.

    Ada beberapa macam persoalan lintasan

    terpendek, antara lain :a. Lintasan terpendek antara dua simpul tertentu..

    b. Lintasan terpendek antara semua pasangan simpul.c. Lintasan terpendek dari simpul tertentu ke semua

    simpul yang lain.

    d. Lintasan terpendek antara dua buah simpul yangmelalui beberapa simpul tertentu.

    2.3 Algoritma A*

    Algoritma ini merupakan algoritma Best First

    Search yang menggabungkan Uniform Cost Search

    dan Greedy Best-First Search. Biaya yangdiperhitungkan didapat dari biaya sebenarnya

    ditambah dengan biaya perkiraan.

    Dalam notasi matematika dituliskan sebagaiberikut:

    f(n) =g(n)+h(n)

    Keterangan:

    1. g(n) adalah total jarak yang didapat dariverteks awal ke verteks sekarang (halangan).

    2. h(n) adalah perkiraan jarak dar iverteks sekarang(yang sedang dikunjungi) ke vertex tujuan. Sebuah

    fungsi heuristik digunakan untuk membuatperkiraan seberapa jauh lintasan yang akan diambil

    keverteks tujuan.3. f(n) adalah jumlah dari g(n) dan h(n). ini adalah

    perkiraan jalur terpendek sementara. f(n) adalah

    jalur terpendek yang sebenarnya yang tidak

    ditelusuri sampai AlgoritmaA* diselesaikan.

    Sama dengan algortima dasar Best First Search,

    algoritma A* ini juga menggunakan dua senarai :

    OPEN dan CLOSED. Terdapat tiga kondisi bagisetiap suksesor yang dibangkitkan, yaitu: sudah berada

    di OPEN, sudah berada di CLOSED, dan tidak berada

    di OPEN maupun CLOSED. Pada ketiga kondisi

    tersebut diberikan penanganan yang berbeda-beda.

    Jika suksesor sudah pernah berada di OPEN,

    maka dilakukan pengecekan apakah perlu pengubahanparent atau tidak tergantung pada nilai g-nya melalui

    parent lama atau parent baru. Jika melalui parent barumemberikan nilai g yang lebih kecil, maka dilakukan

    pengubahan parent. Jika pengubahan parent dilakukan,

    maka dilakukan juga perbaruan (update) nilai g dan fpada suksesor tersebut. Untuk terpilih sebagai simpul

    terbaik (best node).

    Seperti pada kebanyakan algoritma pencarianinformasi, terlebih dahulu dicari rute yang tampaknya

    mempunyai kemungkinan besar untuk menuju ke arah

    tujuan. Apa yang membuat A * algoritma satu satunya

    pertama yang terbaik dalam proses pencarian adalah

    algoritma ini mengambil jarak perjalanan ke arah

    tujuan (dimana g(n) bagian dari heuristis adalah jarakdari awal, dan tidak sekedar menjadi biaya lokal

    sebelum node diperluas). Beberapa terminologi dasar

    yang terdapat pada algoritma ini adalah starting point,pada simpul (nodes) yang ada di OPEN list, CLOSED

    list.

    3 Pembahasan

    3.1 Analisa Sistem

    Tahap analisa merupakan tahap yang sangatberpengaruh dan menentukan terhadap tahap

    selanjutnya. Kesalahan atau tidak lengkapnya analisa

    sistem akan berakibat tidak tercapainya keinginan

    pemakai atau user sesuai dengan yang diharapkan.

    Tujuan dari analisa sistem antara lain adalah untukmempelajari aktivitas system untuk mendapatkan

    gambaran yang menyeluruh tentang sistem yang

    sedang berjalan dan permasalahan yang terjadi sertaanalisa dari algoritma yang digunakan.

    Hasil penentuan jarak terdekat akan menjadi

    pertimbangan dalam pengambilan keputusan untukmenunjukkan jalur yang akan ditempuh. Algoritma A*

    dipakai untuk mencari jarak terdekat yang menjadi

    solusi terbaik karena cakupan parameter algoritma iniselalu menemukan solusi yang mendekati optimal

  • 7/26/2019 21. Maningar

    3/5

    Pelita Informatika Budi Darma Volume : VI Nomor: 3 April 2014 ISSN

    23 1 9425

    Perancangan Aplikasi Pencarian Jalur Terpendek Menggunakan Algoritma A*. Oleh : ManingarSormin

    103

    untuk semua permasalahan yang mempunyai jumlahtitik atau simpul yang banyak.

    .

    3.2 Analisa dan Logika Metode

    Algoritma A* digunakan dalam menemukan

    lintasan terpendek pada suatu graf dan merupakanpengembangan dari algoritma bestfirstsearch . Samaseperti BFS, algoritmaA* juga menggunakan fungsi

    heuristik

    Graf yang digunakan dalam pencarian lintasan

    terpendek adalah graf berbobot (weighting graph),yaitu graf yang setiap sisinya diberikan nilai atau

    bobot. Bobot pada sisi graf dapat menyatakan jarak

    antar kota. Asumsi yang kita gunakan di sini adalahbahwa semua bobot bernilai positif.

    Untuk memperjelas pemahaman tentang

    algoritmaA*,maka akan diberikan contoh masalah

    pada gambar dibawah ini:

    Gambar 1 : Graf Dari Keterhubungan

    Keseluruhan Verteks

    Dengan menggunakan fungsi heuristic jarak

    Euclidian (jarak garis lurus dari vertex n menuju vertex

    G), maka didapat h(n) masing-masing vertex dalamsatuan meter (m) sebagai berikut:

    Tabel 1 : Jarak Euclidian Masing-masing

    Verteks Terhadap Titik Awal (A)

    Berikut ini adalah urutan langkah-langkahproses pencarian jalur terpendek dari RS Martha

    Friska dengan RS Mitra Sejati menggunakan

    agoritma A*:

    Gambar 2 : Contoh Kasus Algoritma A*

    Langkah Pertama

    Karena pada list OPEN hanya terdapat satu

    verteks, yaitu A. Maka A terpilih sebagai bestnode dandipindahkan ke list CLOSED. Kemudian

    dibangkitkan semua suksesor A, yaitu: B, C dan L.Karena ketiga suksesor tidak ada pada list OPENmaupun list CLOSED, maka ketiganya dimasukkan ke

    list OPEN. Langkah pertama ini menghasilkan list

    OPEN = [B,C,L] dan CLOSED = [A].Fungsi evaluasi:

    f(B)=g(A)+g(A ke B)+h(B)=0+7600 +2200 =29600 m

    f(C)=g(A)+g(A ke C)+h(C)=0+5500 +2000 =25500 m

    f(L)=g(A)+g(A ke L)+h(L)=0+5300 +1600 =21300 m

    Gambar 3 : Graf Dari Langkah Pertama

    Langkah Ke-2

    Selanjutnya, L dengan jarak terkecil, yaitu

    21300 m terpilih sebagai bestnode dan dipindahkan ke

    CLOSED. Lalu, semua suksesor L dibangkitkan,

    yaitu: J dan K . karena J d an K belum pernah ada dilist OPEN maupun list CLOSED, maka J dan K

    dimasukkan ke list OPEN. Langkah ke-2 inimenghasilkan OPEN= [J,K] dan CLOSED = [A,L].

    Fungsi evaluasi:

    f(B)=29600 mf(C)=25500 m

    f(L)=21300 m

    f(J)=g(L)+g(L ke J)+h(J)=5300+4600+1100=20900 m

    f(K)=g(L)+g(L keK)+h(K)=5300+5600+1600=2690m

    Gambar 4 : Graf Dari Langkah Ke-2

    Langkah ke-3

  • 7/26/2019 21. Maningar

    4/5

    Pelita Informatika Budi Darma Volume : VI Nomor: 3 April 2014 ISSN

    23 1 9425

    Perancangan Aplikasi Pencarian Jalur Terpendek Menggunakan Algoritma A*. Oleh : ManingarSormin

    104

    Selanjutnya, J dengan jarak terkecil, yaitu20900 m terpilih sebagai bestnode dan dipindahkan ke

    list CLOSED. Lalu, semua suksesor J dibangkitkan,

    yaitu: H . Karena H belum pernah ada di list OPEN

    maupun list CLOSED, maka H dimasukkan ke lis tOPEN. Langkah ke-3 ini menghasilkan list OPEN =

    [H] dan list CLOSED = [A,L,J].Fungsi evaluasi:

    f(B)=29600 m

    f(C)=25500 m

    f(L)=21300 m

    f(J)=20900 mf(K)=26900 m

    f(H)=g(J)+g(J ke H)+h(H)=9900+5400+6000

    =21300m

    Gambar 5 : Graf Dari Langkah Ke-3

    Langkah ke-4

    Selanjutnya, H dengan jarak terkecil, yaitu

    21300 m terpilih sebagai bestnode dan dipindahkanke l i s t CLOSED. Lalu, semua suksesor H

    dibangkitkan, yaitu: F , G d a n I . Karena F, G dan

    I belum pernah ada di list OPEN maupun listCLOSED, maka ketiganya dimasukkan ke lis t OPEN.

    Langkah ke-4 ini menghasilkan OPEN = [F,G,I] danCLOSED = [A,L,J,H].Fungsi evaluasi

    f(B)=29600 mf(C)=25500 m

    f(L)=21300 m

    f(J)=20900 mf(K)=26900 m

    f(H)=21300 m

    f(F)=g(H)+g(H ke F)+h(F)=15300+5900+0=21200 mf(G)=g(H)+g(H k G)+h(G)=15300+6700+8000

    =30000 m

    f(I)=g(H)+g(H ke I)+h(I)=15300+5300+1100=31600 m

    Gambar 6 : Graf Dari Langkah Ke-4F dengan biaya terkecil, yaitu 21200 m terpilih

    sebagai bestnode. Karena bestnode- nya sama dengan

    goal, berarti solusi telah ditemukan.

    Pada kasus diatas A* membangkitkan dan

    menyimpan 9 (Sembilan) verteks dari12 (dua belas)vertex yang ada pada graf. Hasil pencarian dari

    algoritma diatas didapatkan bahwa rute terpendekyang dilalui dari Rumah Sakit Marta Friska menujuRumah Sakit Mitra Sejati adalah dengan melalui RS

    Sufima Azis RS Advent RS MethodisRS Mitra

    Sejati.

    4. Algoritma Dan Implementasi

    4.1 Algoritma

    Algoritma merupakan suatu metode yang

    digunakan untuk menyelesaikan suatu masalah.Algoritma digunakan sebagai langkahlangkah untuk

    perancangan program yang dinyatakan dalam bahasa

    yang dapat dimengerti oleh manusia. Berikut ini akandijelaskan secara ringkas cara kerja dari sistem yang

    di buat.a. Algoritma Pada Pencarian Jalur TerpendekAdapun algoritma pada pencarian jalur

    terpendek adalah sebagai berikut:

    INPUT

    Asal X

    Tujuan Y

    OUTPUTTerkecil Z

    PROSES

    1. Ambil Node dan Jarak dari setiap Node yangdimulai dari X menuju Y dan masukan dalam

    array node(x)JumNode = Count(Node[XY])For(i=1 to i

  • 7/26/2019 21. Maningar

    5/5

    Pelita Informatika Budi Darma Volume : VI Nomor: 3 April 2014 ISSN

    23 1 9425

    Perancangan Aplikasi Pencarian Jalur Terpendek Menggunakan Algoritma A*. Oleh : ManingarSormin

    105

    Next iNext j

    5 Kesimpulan Dan Saran

    5.1 Kesimpulan

    Adapun kesimpulan yang dapat diambil adalah

    sebagai berikut :1. Dengan menggunakan algoritma A* dalam

    pencarian jalur terpendek sangatlah efisien, A*

    membandingkan nilai dari awal sampai tujuan

    dengan memilih solusi terbaik, sehingga

    meminimalkan waktu dan biaya.2. Berdasarkan jumlah node yang di inputkan

    algoritma A* dapat menemukan jalur yang

    terpendek untuk dilalui.3. Dengan menerapkan sistem komputerisasi pada

    pencarian jalur terpendek dengan menggunakan

    Aplikasi pencarian jarak terpendek menggunakan

    algoritma A* maka proses pencarian akan

    semakin cepat dan lebih baik.

    4. Kecanggihan teknologi komputer dapatdimanfaatkan untuk mengaplikasikan persoalanpencarian jalur terpendek dalam waktu yang cukupsingkat, sehingga mempermudah dalam

    pengambilan keputusan untuk melakukan suatu

    perjalanan.

    5.2 Saran

    Adapun saran-saran yang akan penulis usulkanuntuk meningkatkan kinerja pencarian jalur terpendek

    adalah sebagai berikut :

    1. Untuk memperlihatkan dan membuktikankeefektifan, kelebihan, keakuratan dan kelemahan

    dari algorit A*, maka perlu diadakan sebuah

    penelitian lebih lanjut dengan tujuan untukmembandingkan seluruh algoritma pencarian jalur

    terpendek (shortest path problem) yang ada pada

    berbagai data dengan jumlah titik yang lebihbanyak dari yang saat ini diteliti. Dan juga

    diharapkan agar kinerja proses pencarian jalur

    terpendek dari algoritma tersebut dapat lebihditingkatkan lagi dalam hal kecepatan eksekusi

    pencarian dan dalam penghematan penggunaan

    memori komputer saat melakukan proses iterasi.2. Diharapkan bagi para pembaca agar mencoba

    algoritma lain agar mengetahui algoritma mana

    yang lebih baik dalam pencarian jalur terpendek

    dan apabila tetap menggunakan algoritma A*

    Sebaiknya tidak hanya dengan menggunakanfungsi heuristik jarak Euclidian saja, tetapi juga

    dapat menggunakan fungsi heuristik yang lain.

    3. Sistem ini masih banyak ketebatasannya, sehinggadiharapkan kepada para pembaca untuk dapat

    mengembangkannya menjadi lebih baik lagi

    dengan fasilitas mobile.4. Untuk pengembangan lebih lanjut ada baiknya

    menggunakan fasilitas Google Maps API.

    Daftar Pustaka

    [1].Suyanto. 2006. Artificial Intelligence. Penerbit:Informatika. Bandung.

    [2].Marhaendro, Nurlita, Abdullah. 2006.Optimalisasi Rute Perjalanan Ambulance

    Menggunakan Algoritma A*. Yogyakarta.[3].Jong Jek Siang. 2010. Matematika Diskrit dan

    Aplikasinya pada Ilmu Komputer, Penerbit:Andi.

    [4].Anita, Muhammad. 2010. Konsep KecerdasanBuatan.

    [5].Kurniadi, Adi. 2000. Pemrograman MicrosoftVisual Basic 6.0. Jakarta. Penerbit: ElexmediaKomputindo.

    [6].Jugianto. 2005.Analisis Dan Desain.[7].Hadi, Rahadian. 2001. Pemrograman Windows

    API dengan Microsoft Visual Basic. Jakarta.

    Penerbit: PT Elex Media Komputindo.