Anda di halaman 1dari 10

Sistem Pencarian Rute Alternatif Dinamis Dengan

Smart Routing System Menggunakan A* Algorithm


Berbasiskan Web
M. Zulfikar Eka Prayoga1 , Dr. I Ketut Eddy Purnama, ST., MT.2 , Mochammad Hariadi ST., M.Sc, Ph.D.3

Abstract—This final task try to create a routing system that maka pemakai jalan akan mencari jalan alternatif yang
is applied to search off the roadway on a road network. The dapat dilalui, hal ini mengakibatkan pengalihan kemacetan,
roadway that used to this final task, come from a spatial data, dan sekali lagi akan menimbulkan masalah sama di tempat
where on this case we using Surabaya Map. The spatial data
change into sql format that support access capabilities as a lain. Metode yang kurang efektif ini sudah dilakukan
web GIS. After all of data has been prepared and convert to dalam 10 tahun terakhir, dan tidak dapat menyelesaikan
suitable format, let we try to design web interface. The utilization masalah. Beberapa metode manajemen lalu lintas sudah
MapServer engine as a map and web server as well, already berusaha di terapkan oleh Pemerintah Kota Surabaya dalam
widely used by web GIS creator. System on this final task has mengurangi tingkat kemacetan. Manajemen lalu lintas tersebut
applied in web GIS capabilities that support accessibility with a
variety of mobile devices that already internet network access. meliputi pembangunan alat transportasi massal Kereta Api
This system consists of a server as a provider of information Komuter, pemberlakuan “car free day” pada ruas jalan
required, and the client as a tester system. But on this final task, tertentu, kampanye “bike to work”,pelebaran ruas jalan (salah
the author have done the development of GIS web server only. satunya pada Jln. ahmad yani), dan beberapa metode lain
Kata Kunci—GIS, database spasial, MapServer, routing. yang kesemuanya hanya bersifat sementara dan kurang
mendapat respon yang berkelanjutan dari warga Surabaya.
Sekali lagi, langkah manajemen lalu lintas yang tidak di
I. P ENDAHULUAN barengi dengan kesadaran dari masyarakat setempat. Meskipun
OPULASI penduduk Surabaya pada tahun 2008, menurut
P data Badan Pusat Statistik Jawa Timur, mencapai angka
3,4 juta jiwa. Dengan luas wilayah 374,36 km2 , menempatkan
pada Undang Undang No 14 Tahun 1992 tentang Lalu
Lintas dan Angkutan Jalan sudah di atur pelaksanaannya,
namun keefektifan dan keefisienan dari UU tersebut masih
Surabaya sebagai salah satu kota terpadat di Indonesia. dipertanyakan. Beragam metode berusaha dimunculkan oleh
Data tersebut menunjukkan tingkat kepadatan penduduk tidak Pemerintah daerah maupun pusat untuk mengatasi masalah
merata di tiap kecamatan. Hal ini berpengaruh pada kepadatan ini, tetap saja kurang bisa menyelesaiakan dengan baik.
lalu lintas pada jalan penghubung antar kecamatan. Menurut Salah satu metode yang paling efektif dalam menyelesaikan
Drs. Juli Subianto MM., kepala dinas infokom kota Surabaya, permasalahan kemacetan lalu lintas adalah “Route guidance
tingkat perkembangan jumlah kendaraan roda dua kurang system and method” atau yang biasa disebut dengan sistem
lebih 700.000 buah per tahun, dan kendaraan roda empat routing.
sekitar 290 ribu kendaraan per tahun. Selain berakibat pada Sistem ini pertama kali diperkenalkan tahun 2004 oleh tim
kenaikan tingkat pencemaran udara kota, juga berdampak peneliti yang terdiri dari Ryujiro Fujita, Hiroto Inoue, Naohiko
pada kepadatan kondisi lalu lintas. Merupakan sebuah Ichihara, Takehiko Shioda. Penelitian yang melibatkan tim
hambatan besar bagi aparatur daerah untuk menyeimbangkan peneliti tersebut, di danai oleh Pemerintah Jepang, bertujuan
perkembangan jumlah penduduk dengan ketersediaan sarana untuk mengatasi kepadatan lalu lintas yang terjadi di beberapa
dan prasarana yang memadai, terutama sarana yang menunjang kota besar di Jepang[1]. Sistem ini berfungsi untuk mencari
transportasi dalam aktifitas sehari hari semua rute perjalanan yang dapat dilalui oleh seorang
Berdasarkan fakta tentang kepadatan jumlah penduduk pengendara kendaraan dalam mencapai tempat tujuan. Sistem
dan berkaitan dengan kepadatan lalu lintas, maka harus yang diperkenalkan oleh para peneliti ini menggunakan
segera dicari solusi untuk mengatas kemacetan di jalan – algoritma Dijkstra dalam pencarian rute. Namun seiring
jalan penghubung dalam kota, terutama jalan arteri sebagai dengan perkembangan ilmu pengetahuan, metode Dijkstra
penghubung utama di tiap wilayah. Pihak kepolisian dalam mempunyai kekurangan dalam waktu pencarian yang kurang
hal ini Satuan Lalu Lintas sebagai penanggung jawab untuk efektif dan dinilai lamban.
mengatur lalu lintas, selama ini hanya sebatas melakukan Untuk mengatasi permasalahan, pada penelitian yang
buka tutup jalan untuk mengurangi kemacetan. Namun hal dilakukan oleh penulis, dibahas penerapan sistem routing
ini tidak efektif, karena pada saat sebuah jalan di tutup, menggunakan algoritma A* sebagai alternatif untuk
mempercepat proses pencarian rute. Sistem routing yang
1 Mahasiswa Jurusan Teknik Elektro Bidang Studi Teknik Komputer dan
dikerjakan oleh penulis, di terapkan ke dalam aplikasi
Telematika
2 Dosen Pembimbing I web GIS dengan menggunakan Surabaya sebagai tempat
3 Dosen Pembimbing II implementasi penelitian.
PROCEEDING PENELITIAN JURUSAN TEKNIK ELEKTRO ITS 2

II. DASAR TEORI yang berbeda di lingkungan web maka dibutuhkan sebuah
A. GIS web server. Karena standart dari data geografis berbeda beda
dan sangat spesifik, maka pengembangan arsitektur sistem web
GIS atau yang lebih dikenal dengan Geographic Information
GIS mengikuti arsitektur “Client Server” (Gambar 2)
System atau Sistem Informasi Geografi (SIG) merupakan
sistem yang dirancang untuk bekerja dengan data yang
tereferensi secara spasial atau koordinat-koordinat geografi.
GIS memiliki kemampuan untuk melakukan pengolahan data
dan melakukan operasi-operasi tertentu dengan menampilkan
dan menganalisa data. Aplikasi GIS saat ini tumbuh
tidak hanya secara jumlah aplikasi namun juga bertambah
Gambar 2. Arsitektur GIS
dari jenis keragaman applikasinya. Pengembangan aplikasi
GIS kedepannya mengarah kepada aplikasi berbasis web
yang dikenal dengan web GIS. Hal ini disebabkan
karena pengembangan aplikasi di lingkungan jaringan telah Gambar 2 menunjukan arsitektur minimum sebuah sistem
menunjukan potensi yang besar dalam kaitannya dengan web GIS. Aplikasi berada disisi client yang berkomunikasi
geo informasi. Sebagai contoh adalah adanya peta online dengan server sebagai penyedia data melalui web Protokol
sebuah kota dimana pengguna dapat dengan mudah mencari seperti HTTP (Hyper Text Transfer Protocol). Aplikasi seperti
lokasi yang diinginkan secara online melalui jaringan ini bisa dikembangkan dengan web browser (Mozzila Firefox,
intranet/internet tanpa mengenal batas geografi penggunanya. Opera, Internet Explorer, dll). Untuk menampilkan dan
Secara umum Sistem Informasi Geografis dikembangkan berinteraksi dengan data GIS, sebuah browser membutuhkan
berdasarkan pada prinsip masukan data, manajemen, analisis, Plug-In atau Java Applet atau bahkan keduanya. Web
dan representasi data. Komponen utama GIS adalah sistem server bertanggung jawab terhadap proses permintaan dari
komputer, data geospasial dan pengguna, seperti diperlihatkan client dan mengirimkan tanggapan terhadap respon tersebut.
pada Gambar 1. Dalam arsitektur web, sebuah web server juga mengatur
komunikasi dengan server side GIS Komponen. Server side
GIS Komponen bertanggung jawab terhadap koneksi kepada
database spasial seperti menterjemahkan query kedalam SQL
dan membuat representasi yang diteruskan ke server. Dalam
kenyataannya Side Server GIS Komponen berupa software
libraries yang menawarkan layanan khusus untuk analisis
spasial pada data. Selain komponen hal lain yang juga sangat
penting adalah aspek fungsional yang terletak di sisi client atau
Gambar 1. Komponen Utama GIS di server. Gambar 3dapat diamati adanya dua pendekatan yang
menunjukan kemungkinan distribusi fungsional pada sistem
client / server berdasarkan konsep pipeline visualization [2].
Sistem GIS terdiri dari :
1) Perangkat keras (hardware), perangkat lunak (software)
dan prosedur untuk penyusunan pemasukkan data,
pengolahan, analisis, pemodelan (modelling), dan
penayangan data geospatial.
2) Sumber-sumber data geospasial adalah peta digital, foto
udara, citra satelit, tabel statistik dan dokumen lain yang
berhubungan. Data geospasial dibedakan menjadi data Gambar 3. Pendekatan Fungsional “Client Server”
grafis (stau disebut juga data geometris) dan data atribut
(data tematik). Data grafis mempunyai tiga elemen : titik
(node), garis (arc) dan luasan (poligon) dalam bentuk
vektor ataupun raster yang mewakili geometri topologi, Pendekatan-1 : Thin Client : Memfokuskan diri pada sisi
ukuran, bentuk, posisi dan arah. server. Hampir semua proses dan analisa data dilakukan
3) Pengguna merupakan spesifikasi pembeda dari berdasarkan request disisi server. Data hasil pemrosesan
fungsionalitas dari GIS itu sendiri. Beberapa contoh dikirimkan ke client dalam format HTML, yang didalamnya
fungsionalitas GIS antara lain : Desain web GIS, terdapat file gambar sehingga dapat dilihat dengan browser.
updating GIS, analisa spatial, dan lain sebagainya. Pada pendekatan ini interaksi pengguna terbatas dan tidak
1) Arsitektur GIS: GIS merupakan suatu sistem yang saling fleksibel.
terintegrasi satu sama lain, dan tidak dapat berdiri sendiri. Pada Pendekatan-2 : Thick / Fat Client : Pemrosesan data
penelitian ini, penulis menggabungkan sistem GIS dengan dilakukan disisi client, data dikirim dari server ke client
komponen dalam web untuk membangun sebuah web GIS. dalam bentuk data vektor yang disederhanakan. Pemrosesan
Untuk dapat melakukan komunikasi dengan komponen lain dan penggambaran kembali dilakukan disisi client. Cara ini
PROCEEDING PENELITIAN JURUSAN TEKNIK ELEKTRO ITS 3

menjadikan pengguna dapat berinteraksi lebih interaktif dan 1) Database Spasial: Yang dimaksud database spasial
fleksibel. disini adalah database yang mempunyai kemampuan untuk
Pada penelitian ini, sistem dibangunt dengan pendekatan menyimpan data spasial. Database spasial yang dinilai paling
thin client, dimana server bertanggung jawab penuh terhadap handal dan banyak dipakai saat ini adalah PostgreSQL
pengolahan data, dan pengguna sebagai client cukup dengan tambahan modul postGIS, namun akhir – akhir ini
menggunakan data dari server sesuai dengan maksud yang pengembang mySQL sudah meluncurkan produk mereka yaitu
diinginkan. mySQL spatial. PostGIS merupakan modul yang mendukung
kompatibilitas postgreSQL untuk menyimpan tipe data spasial.
B. Data Spasial PostGIS dikembangkan oleh Refractions Research Inc.
Data spasial adalah data yang memiliki referensi ruang PostGIS memberi dukungan terhadap semua fungsi dan
kebumian (georeference) dimana berbagai data atribut objek yang telah ditetapkan pada konferensi Open Geospatial
terletak dalam berbagai unit spasial. Saat ini data spasial Consortium dalam sebuah traktat “spesifikasi fitur tertentu
menjadi media penting untuk perencanaan pembangunan dan yang sederhana untuk SQL”. Penggunaan berbagai fungsi
pengelolaan sumber daya alam yang berkelanjutan pada spasial dalam postgre, dimungkinkan dilakukan melalui
cakupan wilayah continental, nasional, regional maupun lokal. library postgis yang telah ter - include di dalamnya, sehingga
Secara spasial, obyek (entities) dapat dibedakan menjadi dapat dilakukan proses pengolahan data spasial yang lebih
tiga yaitu titik (point), garis (line), dan area (polygon). Titik lanjut, dan dapat dilakukan query data sepenuhnya melalui
(point) merupakan representasi dari X,Y yang membentuk SQL command line [3].
satu koordinat. Garis (lines) merupakan kumpulan dari X,Y Bahasa pemrograman data spasial seperti Oracle,
koordinat yang membentuk sebuah garis. Sedangkan Area DB2 Spatial, SQL Server, dan Tata Ruang berbeda
(polygon) adalah kumpulan garis yang membentuk suatu area dengan kemampuan yang dimiliki oleh postGIS. PostGIS
tertentu. Stasiun curah hujan merupakan salah satu contoh titik memiliki tambahan kemampuan khusus yaitu sebagai mesin
(point). Garis kontur, daerah aliran sungai adalah contoh dari penghubung database, dalam hal ini PostgreSQL. Bahkan,
garis (line). Sedangkan unit penggunaan tanah (landuse) dan PostGIS dapat dinamakan sebagai "PostgreSQL Spatial",
unit geologi merupakan contoh area (polygon). karena memiliki fungsi yang sama seperti ekstensi database
Secara digital, titik, garis dan area tersebut di spasial. Fungsi - fungsi tersebut antara lain:
representasikan menjadi dua model data yaitu vektor dan 1) PostGIS menambahkan jenis data “geometri” ke jenis
raster. Dalam data vektor, posisi suatu obyek di definisikan data yang biasa (mis. "varchar", "char", "integer",
oleh koordinat (X,Y). Kenampakan spasial dalam data "tanggal", dll).
vektor dihadirkan dan disimpan dalam bentuk kode kode 2) PostGIS menambahkan fungsi baru yang berlangsung
tertentu atau label. Dalam data raster, data spasial disusun dalam jenis “geometri”, dan memberikan informasi
dan disimpan dalam bentuk piksel yang merupakan elemen ulang (misalnya ST_Distance (geometri, geometri),
terkecil suatu gambar. Pada gambar 4 dan 5 terdapat contoh ST_Area (geometri), ST_Length (geometri),
untuk membedakan data vektor dan raster. ST_Intersects (geometri, geometri), dll).
3) PostGIS menambahkan suatu mekanisme untuk
memungkinkan pengindeksian query spasial dengan
batasan (dengan kalimat “bounding dalam kotak”)
untuk mencatat kembali dengan cepat dari tabel data
yang sangat besar.

Gambar 4. Data Vektor C. Algoritma A*


Algoritma ini pertama kali diperkenalkan pada 1968 oleh
Peter Hart, Nils Nilsson, dan Bertram Raphael[6]. Dalam ilmu
komputer, A*(yang diucapkan dengan “A star”) merupakan
salah satu algoritma pencarian graph terbaik yang mampu
menemukan jalur dengan biaya pengeluaran paling sedikit dari
titik permulaan yang diberikan sampai ke titik tujuan yang
diharapkan (dari satu atau lebih mungkin tujuan)[7]. Algoritma
ini menggunakan fungsi distance - plus - cost (biasanya di
notasikan dengan f(x)) untuk menentukan urutan kunjungan
Gambar 5. Data Raster
pencarian node di dalam tree. Gabungan jarak - plus - biaya
merupakan penjumlahan dari dua fungsi, yaitu fungsi path -
cost (selalu dinotasikan dengan g(x), dimungkinkan bernilai
Pada penelitian ini, penulis menggunakan peta Surabaya heuristik ataupun tidak), dan sebuah kemungkinan penerimaan
sebagai peta dasar pengolahan. Dan untuk maksud tersebut, atas “perkiraan heuristis” jarak ke titik tujuan (dinotasikan
penulis mempersiapkan data spasial yang mempunyai format dengan h(x)). Fungsi path - cost g(x) adalah jumlah biaya yang
shapefile dengan kombinasi vektor dan raster. harus dikeluarkan dari node awal menuju node yang akan di
PROCEEDING PENELITIAN JURUSAN TEKNIK ELEKTRO ITS 4

tuju. Dengan h(x) bagian dari fungsi f(x) yang harus dapat dan dimasukkan ke dalam closed list. Jika terdapat simpul
heuristis, yang mana tidak diperbolehkan untuk terlalu jauh lain yang bertetangga dengan A (yang sudah berpindah)
memperkirakan jarak ke arah tujuan. Oleh karena itu untuk namun belum termasuk kedalam anggota open list, maka
aplikasi seperti routing, h(x) mungkin mewakili garis lurus masukkan simpul-simpul tersebut ke dalam open list. Setelah
jarak ke titik tujuan, karena hal ini secara nyata dimungkinkan itu, bandingkan nilai G yang ada dengan nilai G sebelumnya
adanya jarak terpendek diantara dua titik. Jika keadaan (pada langkah awal, tidak perlu dilakukan perbandingan nilai
heuristis dari h(x) memenuhi kondisi h(x) ≤ d(x,y) + h(y) G). Jika nilai G sebelumnya lebih kecil maka A kembali ke
untuk setiap edge x,y dari graph (dengan d mempresentasikan posisi awal. Simpul yang pernah dicoba dimasukkan ke dalam
lebar dari edge tersebut), maka h tersebut dikatakan konsisten closed list. Hal terebut dilakukan berulang- ulang hingga
pada nilainya. pada kasus ini, A* dapat diimplementasikan terdapat solusi atau tidaka ada lagi simpul lain yang berada
lebih efisien, karena tidak ada titik / node yang diproses berkali pada open list. Deskripsi A* dalam sebuah graph dapat diamati
kali. Dan pada kenyataannya, hasil pencarian dari algoritma pada gambar 7. Berikut ini gambaran kerja dari algoritma A*
A* adalah sama dengan hasil dari pencarian menggunakan (gambar 6):
algoritma Dijkstra, dengan adanya tambahan pengkhususan
pada pengurangan biaya yang dikeluarkan d’(x,y):= d(x,y) −
h(x) + h(y)[7].
1) Deskripsi Algoritma: Seperti pada kebanyakan
algoritma pencarian informasi, terlebih dahulu dicari rute
yang tampaknya mempunyai kemungkinan besar untuk Gambar 6. Proses pelacakan jalur pada algoritma A*
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 (x) bagian dari heuristis adalah biaya dari
awal, dan tidak sekedar menjadi biaya lokal sebelum node
diperluas).
Beberapa terminologi dasar yang terdapat pada algoritma
ini adalah starting point, simpul (nodes), A, open list, closed
list, harga (cost), halangan (unwalkable).
• Starting point adalah sebuah terminologi untuk posisi
awal sebuah benda.
• A adalah simpul yang sedang dijalankan dalam algortima
pencarian jalan terpendek.
• Simpul adalah petak-petak kecil sebagai representasi
dari area pathfinding. Bentuknya dapat berupa persegi, Gambar 7. Proses pencarian jalur terpendek menggunakan A* pada sebuah
lingkaran, maupun segitiga. graph
• Open list adalah tempat menyimpan data simpul yang
mungkin diakses dari starting point maupun simpul yang
sedang dijalankan. Pada gambar 7, sebuah graph memiliki 7 buah simpul, yang
• Closed list adalah tempat menyimpan data simpul
masing - masing simpul mempunyai nilai G dan H, starting
sebelum A yang juga merupakan bagian dari jalur point berada pada simpul paling pojok kiri atas (simpul
terpendek yang telah berhasil didapatkan. berwarna hijau), dan simpul tujuan berada di pojok kanan
• Harga (F) adalah nilai yang diperoleh dari penjumlahan,
bawah (simpul berwarna biru). Hasil pelacakan jalur terpendek
nilai G merupakan jumlah nilai tiap simpul dalam jalur menggunakan A* menghasilkan garis tebal warna orange
terpendek dari starting point ke A, dan H adalah jumlah dengan simpul d, dan e dikunjungi, sehingga menghasilkan
nilai perkiraan dari sebuah simpul ke simpul tujuan. jalur terpendek yang menghubungkan starting point menuju
Sehingga dapat diformulasikan f(x) = g(x)+h(x). simpul tujuan.
• Simpul tujuan yaitu simpul yang dituju.
• Halangan adalah sebuah atribut yang menyatakan bahwa
sebuah simpul tidak dapat dilalui oleh A. D. MapServer
Prinsip algoritma ini adalah mencari jalur terpendek dari MapServer merupakan aplikasi freeware dan open source
sebuah simpul awal (starting point) menuju simpul tujuan yang memungkinkan seorang web GIS creator untuk
dengan memperhatikan harga (F) terkecil. Diawali dengan menampilkan data spasial (peta) di web. Aplikasi ini pertama
menempatkan A pada starting point, kemudian memasukkan kali dikembangkan di Universitas Minesotta, Amerika Serikat
seluruh simpul yang bertetangga dan tidak memilik atribut untuk projek ForNet (sebuah projek untuk manajemen sumber
rintangan dengan A ke dalam open list. Kemudian mencari daya alam) yang disponsori NASA (National Aeronautics and
nilai H terkecil dari simpul-simpul dalam open list tersebut. Space Administration). Support NASA dilanjutkan dengan
Kemudian memindahkan A ke simpul yang memiliki nilai H dikembangkan projek TerraSIP untuk manajemen data lahan.
terkecil. Simpul sebelum A disimpan sebagai parent dari A Saat ini, karena sifatnya yang terbuka (open source),
PROCEEDING PENELITIAN JURUSAN TEKNIK ELEKTRO ITS 5

pengembangan MapServer dilakukan oleh pengembang dari dari MapServer dalam pengembangan webserver. Dengan
berbagai negara. dukungan Javascript untuk bahasa pemrogramannya, dan
Pada bentuk paling dasar, MapServer berupa sebuah PHP sebagai pendukungnya, MapServer yang dibangun oleh
program CGI (Common Gateway Interface) yang terpasang penulis terasa lebih dinamis dan mudah untuk beradaptasi
dan berjalan tapi tidak aktif dalam server (aktif hanya saat dengan lingkungan interface apapun.
dipanggil). Saat rekues/permintaan dikirimkan ke mapserver, MapServer bekerja selain sebagai web server, juga sebagai
maka akan digunakan informasi yang dikirimkan lewat URL kontrol map file yang mengatur konfigurasi dari suatu peta dan
dan mapfile untuk membuat (generate) peta yang diinginkan. penampakannya di dalam interface web. Sebuah peta digital,
Permintaan ini bisa juga termasuk permintaan untuk membuat merupakan data spasial yang terdiri dari titik - titik, simbol,
legenda, peta referensi, batang skala, dan variabel lain yang atribut, dan poligon. Pada saat di tampilkan di komputer,
dikirimkan ke CGI tadi. Program tersebut akan mengeksekusi seorang pembuat peta menggunakan kombinasi dari beberapa
melalui web server, dan berdasarkan beberapa parameter komponen tersebut untuk menampakkan bentuk rupa sebuah
tertentu (terutama konfigurasi dalam bentuk file *.map) akan daerah di lihat dari udara.
menghasilkan data yang kemudian akan dikirim ke web Untuk dapat menggunakan engine MapServer, user terlebih
browser, baik dalam bentuk gambar peta ataupun bentuk lain. dahulu di haruskan untuk memenuhi beberapa requirement
1) Cara Kerja MapServer: MapServer bekerja secara yang di butuhkan, antara lain:
berdampingan dengan aplikasi web server. Web Server • Microsoft Visual Studio (atau program compiler C lain)
menerima request peta melalui MapServer. MapServer • Tidak ada service apache yang terinstall maupun sedang
mengenerate request terhadap peta dan mengirimkannya ke berjalan di dalam komputer user
web server seperti pada gambar 8. Seorang user yang bermaksud untuk membangun web
GIS, seharusnya membutuhkan database terdistribusi yang
mendukung kemampuan penyimpanan data spasial (dalam hal
ini adalah peta digital). Untuk database yang sesuai dengan
kemampuan penyimpanan data spasial, digunakan postGIS
yang merupakan modul tambahan dari PostgreSQL. Untuk
dapat mengakses data spasial yang tersimpan dalam postGIS,
maka harus dibentuk koneksi antara MapServer dengan
postgreSQL. Pada MapServer terdapat sebuah tools yang
diberi nama phpPgAdmin. Proses query database spasial yang
sudah berupa mapfile tersebut, membutuhkan otentifikasi user
untuk menjamin keamanan. Diagram proses query database
Gambar 8. Diagram kerja MapServer
hingga menampilkan peta melalui interface web, dapat di
ilustrasikan pada gambar 9.

Fungsi utama dari MapServer adalah melakukan pembacaan


data dari banyak sumber dan menempatkannya kedalam layer-
layer secara bersamaan menjadi file graphic. Salah satu
layernya bisa saja berupa gambar satelit. Setiap layer saling
overlay satu dengan lainnya dan ditampilkan kedalam web
browser. Dari gambar yang kita peroleh tersebut, kita bisa
melihat sebuah foto satelit (diperoleh dari remote server),
garis-garis jalan, lokasi perkotaan, dan label-label kota yang di
tampilkan secara generic oleh MapServer. Proses pengambaran
peta (rendering) muncul setiap kali permintaan terhadap peta
baru yang dilakukan oleh MapServer termasuk ketika user
melakukan level zoom terhadap tampilan peta 8.

Gambar 9. Proses Query Data pada postGIS


III. D ESAIN SISTEM
A. Pra Desain Sistem Dalam pembuatan web GIS, terdapat beberapa hal yang
Pada penelitian ini, penulis menggunakan engine MapServer harus dipersiapkan sebelum memulai desain interface, antara
for Windows (MS4W) 4 versi 1.6, yang merupakan engine lain adalah file peta digital dari daerah yang digunakan (dalam
MapServer khusus untuk platform Microsoft Windows. Tugas Akhir kali ini, penulis menggunakan peta Surabaya),
Package MS4W terdiri dari Apache server 2.2.3, PHP versi postgreSQL dan postGIS yang sudah terinstal, dan MapServer
4.4.4, MapServer CGI 4.10.0, MapScript 4.10.0 (CSharp, yang sudah terinstal. Setelah semua perlengkapan penunjang
Java, PHP, Python), dan kelengkapan lain untuk membangun di penuhi, dilakukan beberapa langkah desain web GIS sebagai
sebuah kombinasi mapserver dengan webserver. Penulis berikut :
memanfaatkan framework gmap yang merupakan bawaan 1) Mempersiapkan dan mengolah data yang digunakan
PROCEEDING PENELITIAN JURUSAN TEKNIK ELEKTRO ITS 6

Data yang digunakan pada penelitian ini adalah data peta berikut:
digital kota Surabaya yang mempunyai format shapefile. 1. Mendefinisikan file yang dapat di support oleh
File ekstensi dari shapefile yang terdiri dari shp, shx, aplikasi MapServer yang sedang dikerjakan.
dan dbf, berperan besar dalam pembuatan tampilan 2. Mengatur status dari layer yang di tampilkan.
peta dalam sistem. Data shapefile merupakan data 3. Mengatur ukuran dari peta
mentah yang harus di olah lagi untuk dapat digunakan 4. Menentukan aksi pada saat user mengaktifkan sebuah
dalam web GIS. Data shapefile peta Surabaya yang layer dalam peta.
penulis gunakan mempunyai beberapa layer penyusun, 5. Menyimpan sebuah fungsi yang di panggil ketika
namun untuk penelitian ini tidak semua layer di terjadi perubahan pada peta, misal saat dilakukan proses
gunakan. Layer – layer yang digunakan oleh penulis zooming.
antara lain layer wilayah, kecamatan, dan jalan_baru. 6. Menggambar ulang peta saat terjadi perubahan
Layer – layer tersebut tersusun mirip dengan stack tampilan peta yang dilakukan oleh user, misal mengaktif
untuk membentuk sebuah tampilan peta yang memiliki atau menon aktifkan layer, dan zooming.
komponen poligon, garis, dan titik. Komponen poligon Sebuah file phtml memiliki struktur yang mirip
di representasikan oleh layer kecamatan, komponen dengan file berformat HTML biasanya. Namun pada
garis di representasikan pada layer kelurahan, dan format phtml, hampir semua variabel yang digunakan,
komponen titik di representasikan oleh layer jalan_baru. merupakan variabel yang menyatakan penskalaan
Susunan layer tersebut kemudian di konversi ke ukuran peta. Isi file ini terdiri dari proses pemanggilan
dalam format sql yang nantinya akan disimpan dalam modul, yaitu file inc.php, dan file .map; serta
postGIS. Pada penelitian ini, penulis memberi nama pendefinisian tampilan peta dilengkapi dengan atribut
databasenya dengan “TUTORIAL”. Proses konversi pendukungnya.
shapefile menjadi database file melibatkan fungsi 3) Melakukan proses routing
shp2pgsql yang dimiliki oleh postgreSQL. Proses routing pada penelitian ini menggunakan engine
pgRouting, yang merupakan engine routing milik
database postgreSQL. Metode yang digunakan untuk
mendapatkan jalur terpendek adalah metode A*.
Proses routing menggunakan engine pgRouting,
didasarkan pada lokasi point awal (source_id), dan
lokasi point tujuan (target_id). Proses pencarian
rute bermula dengan pembuatan virtual graph pada
peta yang menghubungkan antara source_id dengan
target_id. Setelah graph terbentuk, dicari lintasan
Gambar 10. Alur Proses Pengolahan Data terpendek dari kedua titik tersebut. Pada saat lintasan
sudah di perolah, maka virtual graph secara otomatis
Pada gambar 10 terdapat suatu secure connection yang menghilang dari peta.
membutuhkan otentifikasi. Otentifikasi ini digunakan
untuk mengakses database file yang tersimpan dalam
database “TUTORIAL”. Proses otentifikasi ini di tandai
dengan pendefinisian fungsi “CONNECTION” pada
mapfile dengan menuliskan host, database, username,
password, dan port. Di dalam mapfile, seorang web GIS
creator harus meng – konfigurasi penampakan layer, dan
ukuran yang akan di tampilkan ke halaman HTML, serta
status default layer.
2) Mendesain tampilan web GIS
Terdapat dua file utama untuk desain web GIS, antara
lain file .inc.php, dan .phtml. Kedua file ini sangat
berpengaruh dalam menampilkan sebuah peta digital ke
dalam web. Web GIS menggunakan dasar pemrograman
Javascript yang berguna untuk menciptakan lingkungan Gambar 11. Virtual Graph yang dibentuk oleh sistem
web yang dinamis. Dengan bantuan MapServer,
pembuatan web GIS ini akan menjadi semakin mudah.
Selain itu, MapServer menyediakan layanan web server
dengan menggunakan apache. Serta kemudahan berkat IV. I MPLEMENTASI SISTEM
adanya dukungan pada mapscript yang menggunakan Pada bagian implementasi kali ini, di tampilkan hasil
bahasa pemrograman PHP, Java, C#, dan python. File desain sistem yang telah dibahas pada bagian 3 proceeding
ektensi inc.php merupakan modul untuk membantu ini. Implemetasi ini akan menjelaskan konektifitas yang
kinerja file phtml. Isi dari file ini antara lain sebagai menghubungkan antar tools, dan proses ketersediaan data di
PROCEEDING PENELITIAN JURUSAN TEKNIK ELEKTRO ITS 7

dalam sistem yang dibangun. Untuk lebih jelas, dapat kita sql yang telah dibuat. Namun dilihat dari fungsionalitas,
amati pada flowchart gambar 12. phpPgAdmin lebih tepat hanya sebatas modul untuk mengecek
ketersambungan antara MapServer dengan postgre. Jika kita
menggunakan phpPgAdmin untuk mengolah database, maka
masih di temukan banyak sekali bugs di dalam prosesnya.
Konektifitas yang dibangun antara MapServer dengan
postgre sebenarnya terletak tentang bagaimana cara sebuah
web server mengakses map server yang tersimpan di dalam
postgre. Hal inilah yang menentukan apakah database
terkoneksi atau tidak? Aksesibilitas MapServer untuk
mengakses postgre sebenarnya terletak pada script yang
mendefinisikan letak data didalam postgre dan atribut apa saja
yang akan di akses. Script ini di masukkan kedalam mapfile
yang menjadi jantung tampilan peta pada MapServer. Pada
kode 1akan di tuliskan bagaimana cara MapServer mengakses
database postgre.

Algorithm 1 Kode akses PostgreSQL melalui mapfile


CONNECTIONTYPE POSTGIS
CONNECTION "user=[nama user] dbname=[nama database]
host=[host database] port=[port database : 5432]
password=[password anda]"
DATA "[nama kolom geometry] FROM [nama table] USING
UNIQUE [unique index / primary key]"
Gambar 12. Diagram Alir Sistem
FILTER "[kondisi / persyaratan]"

Pada gambar 12, sistem di bagi menjadi tiga bagian Kode 1 memiliki pemanggilan database melalui fungsi
besar, yaitu database file, halaman HTML, dan proses CONNECTION. Jika kode 1 menghasilkan pesan error, berarti
routing. Meskipun fungsi utama sistem adalah routing, namun proses konektifitas MapServer dengan postgre mengalami
keberjalanan dari routing ini tidak akan lepas dari partisipasi kegagalan. Periksa bagian kode yang berusaha mengambil
dari dua proses sebelumnya. data dari tabel di database tersebut, apakah pengambilan
tersebut sudah sesuai dengan komponen tabel dari database
A. Database File file yang akan di koneksikan. Jika sudah merasa benar
Database file, merupakan konversi dari data spasial yang dengan pengambilan database file, langkah selanjutnya yang
berupa vektor dan raster, yang kemudian di konversi dapat ditempuh adalah dengan mengecek isi tabel pada sql
menjadi format sql agar dapat dipergunakan dalam database file. Biasanya isi tabel pada sql file yang akan di akses
server postgreSQL. Database file ini tersimpan dalam memiliki perbedaaan dengan isi shapefile yang sebenarnya.
database yang diberi nama “TUTORIAL” dan memiliki Dengan kata lain, proses konversi yang dilakukan mengalami
fungsi GeometryColoum1 . Untuk dapat menghubungkan kesalahan. Oleh karena itu, sebelum di konversi ke sql file,
MapServer dengan postgreSQL, pada MapServer terdapat shapefile seyogyanya di cek atribut - nya dengan menggunakan
modul tambahan untuk mengakses postgre, yaitu phpPgAdmin software pengolahan shapefile (seperti ArcView, Ilwis, atau
(gambar 13). MapWindow).

B. Halaman HTML
Halaman HTML menjadi user interface utama yang
menghubungkan sistem dengan pengguna sistem. Pada
halaman HTML, data spasial yang sudah berbentuk sql di
tampilkan. Pada halaman ini juga di tampilkan atribut dan
simbol pendukung yang terdapat dalam peta. Penghubung
Gambar 13. phpPgAdmin halaman HTML dengan data spasial, terdapat pada mapfile. Di
dalam mapfile di definisikan map apa yang akan di tampilkan
dan layer apa saja yang akan di gunakan untuk mendukung
Melalui phpPgAdmin, seorang web GIS creator dapat tampilan map, serta penjelasan bagaimana cara MapServer
secara langsung mengedit content dari database dan tabel mengakses database file.
Yang tidak kalah pentingnya juga yaitu proses desain dari
1 Fungsi penyimpan data spasial pada postGIS halaman HTML itu sendiri. Halaman HTML yang di buat
PROCEEDING PENELITIAN JURUSAN TEKNIK ELEKTRO ITS 8

untuk Tugas Akhir ini menyediakan fungsi untuk query layer Algorithm 3 Kode file phtml
yang mendukung peta tersebut, fungsi pan, fungsi zoom, serta <HTML>
fungsi information yang merupakan penghasil dari proses <?php
routing. Halaman HTML yang dibuat memiliki memiliki tiga if (PHP_OS == "WINNT" || PHP_OS == "WIN32")
komponen utama, yaitu .php, .phtml, .map. Untuk .php berisi {
script query - query halaman web untuk mengakses database $dlext = "dll";
file, dimana pada file ini terdapat status dari tiap layer yang }
akan di tampilkan pada halaman web, dan cara bagaimana else
layer tersebut ditampilkan. File .phtml merupakan file ekstensi {
untuk halaman web yang mendukung ketersediaan web GIS. $dlext = "so";
Pada file .phtml di konfigurasi tampilan dari halaman web, }
yang mana terdapat setting letak dari tiap komponen, simbol if (!extension_loaded("MapScript"))
yang di gunakan, bentuk font yang mendasari tampilan web, {
serta template yang digunakan. Sedangkan file ekstensi .map, dl("php_mapscript.$dlext");
mendefinisikan peta dan layer yang akan di tampilkan. Berikut }
algoritma halaman web yang sudah penulis buat. if (!extension_loaded("dbase"))
{
dl("php_dbase.$dlext");
Algorithm 2 Kode file php
}
function zulmapDrawMap()
include("zulmap.inc.php");
{
if ($HTTP_FORM_VARS["MAP_NAME"])
GLOBAL $gpoMap, $gbShowQueryResults;
$gpoMap =
GLOBAL $gbIsHtmlMode;
ms_newMapObj(strval($HTTP_FORM_VARS["MAP_NAME"]));
GLOBAL $gszCommand, $gszZoomBoxExt;
else
GLOBAL $gAppletImgFmt, $gImagesFmt;
$gpoMap = ms_newMapObj("zulmap.map");
if ($gbShowQueryResults)
{
$img = $gpoMap->drawQuery();
} Algorithm 4 Kode file map
else $img = $gpoMap->draw(); MAP NAME ’View1’
$url = $img->saveWebImage($gAppletImgFmt, 0, 0, -1); SIZE 550 400
echo "\n".$gszZoomBoxExt."\n"; EXTENT 112.61434931 -7.36576481 112.84500312
printf("<INPUT TYPE=HIDDEN NAME=minx -7.18872129
VALUE=\"%f\">", $gpoMap->extent->minx); UNITS dd
printf("<INPUT TYPE=HIDDEN NAME=miny RESOLUTION 72
VALUE=\"%f\">", $gpoMap->extent->miny); CONFIG PROJ_LIB ’C:/Proj/’ DATAPATTERN ”
printf("<INPUT TYPE=HIDDEN NAME=maxx TEMPLATEPATTERN ”
VALUE=\"%f\">", $gpoMap->extent->maxx); SHAPEPATH ’C:\ms4w\apps\zulmap\data’
printf("<INPUT TYPE=HIDDEN NAME=maxy SYMBOLSET ’C:\ms4w\apps\zulmap\etc\symbols.sym’
VALUE=\"%f\">", $gpoMap->extent->maxy); FONTSET ’C:\ms4w\apps\zulmap\etc\fonts.txt’
printf("<INPUT TYPE=HIDDEN NAME=imagewidth STATUS on
VALUE=\"%d\">", $gpoMap->width); IMAGECOLOR 255 255 255
printf("<INPUT TYPE=HIDDEN NAME=imageheight IMAGETYPE png24
VALUE=\"%d\">", $gpoMap->height); STATUS on
} DEBUG false

mengirimkan query kepada database file yang berupa nama


jalan untuk di cocokkan pada database nama jalan yang
dikenali sistem. Jika jalan dikenali, barulah proses routing
terdapat tiga file komponen utama dalam pembuatan web dapat dijalankan, namun jika nama jalan tidak dikenali, maka
GIS yang penulis kerjakan, antara lain file php, phtml, dan akan muncul pesan error. Berikut kode 5 proses routing
map, dimana ketiganya harus terdapat konektifitas antara satu yang di gunakan dalam Tugas Akhir. Algoritma tersebut
dengan yang lain. menjelaskan fungsi routing yang di dasarkan pada koordinat
titik nama jalan pada peta.
C. Proses Routing
Proses routing tidak jauh berbeda dengan proses query
pada database file. Namun pada proses routing, sistem akan
PROCEEDING PENELITIAN JURUSAN TEKNIK ELEKTRO ITS 9

Algorithm 5 Kode engine pgRouting dengan algoritma A*


CREATE OR REPLACE FUNCTION shortest_path_astar
(sql text, source_id integer, target_id integer, directed
boolean, has_reverse_cost boolean)
RETURNS SET OF path_result
SELECT id, source, target, cost, x1, y1, x2, y2 FROM
edge_table
SELECT * FROM shortest_path_astar
(’SELECT gid AS id, source::int4, target::int4,
length::double precision
AS cost, x1, y1, x2, y2 FROM dourol’,3, 7, false, false); Gambar 14. GUI Sistem
SELECT * FROM shortest_path_astar
(’SELECT gid AS id, source::int4, target::int4, dan pengujian kemampuan engine pgRouting.
length::double precision
1) Pengujian pengenalan nama jalan titik awal dan titik
AS cost,length::double precision AS reverse_cost, x1, y1, x2,
akhir
y2 FROM dourol’, 3, 7, true, true);
Pengujian ini digunakan untuk mendeteksi apakah nama
jalan yang di input user terdapat pada peta yang di
tampilkan (baik pada field lokasi awal maupun pada
V. E KSPERIMEN DAN HASIL
lokasi tujuan). Jika nama jalan tidak terdapat pada peta,
Hasil pengerjaan berupa tampilan web yang mendukung maka akan muncul pesan error seperti pada gambar 15.
pemanfaatan GIS, atau disebut dengan web GIS. Web GIS Jika nama jalan terdapat pada peta, maka sistem secara
yang penulis kerjakan, menampilkan peta Surabaya dan otomatis melakukan fungsi routing (hasil pengujian pada
mendukung kemampuan routing untuk pencarian jalur tercepat kasus ini terdapat pada gambar 16).
yang dapat dilalui oleh user. Tampilan peta Surabaya dalam
web ini, mempunyai beberapa batasan, antara lain:
1) Menampilkan tiga layer, meliputi layer wilayah,
kecamatan, dan jalan baru.
Data shapefile kota Surabaya memiliki banyak
sekali layer, namun tidak semua layer di gunakan
dalam pembuatan sistem ini. Pemilihan layer
wilayah, kecamatan, dan jalan baru di dasarkan
pada fungsionalitas dari web GIS ini sendiri untuk
menjalankan fungsi routing.
2) Tidak semua nama jalan di kota Surabaya di
tampilkan Kota Surabaya memiliki banyak sekali jalan
penghubung. Gambar 15. Hasil Error Pengujian Pengenalan Nama Jalan
Dalam pembuatan sistem ini, penulis mengalami
kesulitan dalam pengolahan data, karena atribut jalan 2) Pengujian kemampuan engine pgRouting
yang saling berdempetan sehingga menyebabkan engine Pengujian ini merupakan inti dari penelitian yang
routing kesulitan dalam proses penjejakan. Oleh karena dikerjakan penulis. Pada pengujian ini, menghasilkan
itu, nama jalan yang ditampilkan hanya jalan dengan rute yang dapat dilalui pengguna dengan pertimbangan
letak atribut yang saling berjauhan. parameter jarak tempuh terpendek dari lokasi awal
3) Pencarian rute ditujukan untuk semua jenis kendaraan menuju lokasi tujuan. Sistem memberikan nama –
Sistem routing ini ditujukan untuk semua jenis nama jalan yang harus dilalui pengguna agar dapat
kendaraan. Atau dengan kata lain, sistem ini sampai dengan waktu yang lebih singkat. Pengujian
mengecualikan jln.tol yang hanya dapat dilewat awal dilakukan pada satu lokasi jalan tertentu (dalam
oleh jenis kendaraan tertentu. hal ini jln. kyai abdul karim) ke semua lokasi jalan.
4) Parameter yang digunakan adalah jarak tempuh Hasil pengujian menghasilkan routing table (pada tabel
Penentuan jalur tercepat didasarkan pada jarak tempuh I). Salah satu contoh hasil pengujian yang dilakukan
dari lokasi awal hingga lokasi tujuan. penulis terdapat pada gambar 16.
Pada gambar 14 di jelaskan GUI2 dari web GIS yang di buat Sistem ini masih mempunyai kekurangan di bagian
pada penelitian ini. query data pada database TUTORIAL. Ketika pengguna
mencoba untuk memasukkan lokasi awal dengan nama
jalan lain (selain Jln. Kyai Abdul Karim), maka terjadi
Pengujian yang dilakukan pada sistem, terdiri dua dua kesalahan pada sistem. Kesalahan yang terjadi adalah
macam, yaitu pengujian pengenalan titik awal dan titik akhir, sistem menampilkan keseluruhan hasil penjejakan rute
pada peta, beserta perhitungan jarak tempuh yang di
2 Graphical User Interface kalkulasi berdasarkan koordinat nama jalan pada peta.
PROCEEDING PENELITIAN JURUSAN TEKNIK ELEKTRO ITS 10

VI. K ESIMPULAN DAN SARAN


A. Kesimpulan
Setelah melalui tahapan implementasi dan melewati tahap
pengujian sistem, maka diperoleh beberapa kesimpulan antara
lain :
1) Hasil pengujian mendapatkan hasil routing untuk satu
lokasi awal menuju ke semua lokasi tujuan yang terdapat
pada peta dan dilengkapi dengan jarak tempuh dari
kedua lokasi tersebut.
2) Hasil pengujian gagal dilakukan untuk lokasi awal lain
Gambar 16. Hasil Pengujian Proses Routing
(selain Jln, Kyai Abdul Karim), karena pada data peta
terdapat cross intersection sehingga engine pgRouting
mengalami kegagalan pembentukan virtual graph.
Untuk lebih mengetahui kesalahan yang terjadi pada 3) Routing yang didasarkan pada parameter jarak tempuh,
sistem, dapat diamati gambar 17. mempunyai hasil query lebih tepat dibandingkan dengan
parameter waktu, dengan kondisi pengambilan data
melalui database dan tidak dilakukan update data secara
online.

B. Saran
Dari kesimpulan dan hasil eksperimen yang telah di lakukan,
maka saran yang dapat penulis berikan:
1) Pemanfaatan web GIS harus dapat dirasakan oleh
masyarakat luas, dan salah satu caranya adalah dengan
kemampuan akses melalui jaringan internet.
2) Memperkuat kestabilan di server, mengingat sistem akan
sangat mengalami beban yang sangat berat, dikarenakan
Gambar 17. Permasalahan kesalahan query sistem kinerja dari MapServer yang sanggup menerima query
setiap saat, dan ketika sistem ini sudah di akses oleh
banyak client melalui internet.
3) Melengkapi database file, terutama database nama
Tabel I jalan. Hal ini akan sangat berpengaruh pada jangkauan
TABEL H ASIL ROUTING kemampuan routing pada sistem.
Lokasi awal Lokasi tujuan Hasil routing Jarak 4) Membuat fungsi yang terpisah, antara fungsi pengenalan
K A Karim Pandugo k a karim,pandugo 4km nama jalan dengan fungsi routing, sehingga proses
K A Karim Barata Jaya k a karim,pandugo, 7km pencarian bisa lebih cepat, dan dapat memberikan hasil
barata jaya
K A Karim Menur k a karim,barata jaya, 7km
yang tepat.
Pumpungan menur pumpungan 5) Penambahan parameter pemilihan jalur tercepat selain
K A Karim Raya k a karim,pandugo,barata jaya, 15km jarak tempuh, mungkin bisa di gunakan untuk
Mulyorejo menur pumpungan,raya mulyorejo menghitung biaya perjalanan, alternatif angkutan umum,
K A Karim Cumpat k a karim,pandugo, 17km
barata jaya, menur pumpungan, dan lain sebagainya.
raya mulyorejo,cumpat
K A Karim Kali k a karim,pandugo, 16km
Kedinding barata jaya, menur pumpungan, DAFTAR P USTAKA
raya mulyorejo,kali kedinding [1] Japanese Patent Application No. 2004-106186 filed on Mar. 31, 2004.
K A Karim Sarwajala k a karim,pandugo, 20km [2] Charter, Denny. 2004. Desain dan Applikasi GIS. Jakarta: PT. Elex Media
barata jaya,menur pumpungan, Komputindo
raya mulyorejo,sarwajala [3] Introduction to PostGIS by Refraction Inc RESEARCH, The Geospatial
K A Karim Banyu Urip k a karim,banyu urip 17km Experts
K A Karim Raya k a karim,pandugo, 12km [4] Ira Pohl, Bi-directional Search, in Machine Intelligence, vol. 6, eds.
Prada Indah raya prada indah Meltzer and Michie, Edinburgh University Press, 1971, pp. 127–140.
K A Karim Pagesangan k a karim,pagesangan 7km [5] MapServer Documentation
K A Karim Bangkingan kyai abdul karim, 9km [6] Hart, P. E.; Nilsson, N. J.; Raphael, B. (1968). "A Formal Basis
pagesangan,bangkingan for the Heuristic Determination of Minimum Cost Paths". IEEE
K A Karim Raya k a karim, 10km Transactions on Systems Science and Cybernetics SSC4 4 (2): 100–107.
Menganti pagesangan,raya menganti doi:10.1109/TSSC.1968.300136
K A Karim Alas k a karim,banyu urip,alas malang 19km [7] Pearl, Judea (1984). Heuristics: Intelligent Search Strategies for Computer
Malang Problem Solving. Addison-Wesley. ISBN 0-201-05594-5.
K A Karim Sememi k a karim,banyu urip,sememi 19km

Anda mungkin juga menyukai