• Tidak ada hasil yang ditemukan

BAB 3 DESAIN DAN IMPLEMENTASI ANALISIS PENCARIAN JALUR JALAN DALAM BASIS DATA SPASIAL 3D

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 3 DESAIN DAN IMPLEMENTASI ANALISIS PENCARIAN JALUR JALAN DALAM BASIS DATA SPASIAL 3D"

Copied!
30
0
0

Teks penuh

(1)

28

BAB 3

DESAIN DAN IMPLEMENTASI ANALISIS PENCARIAN

JALUR JALAN DALAM BASIS DATA SPASIAL 3D

Bab ini akan menjelaskan tahapan-tahapan desain dan implementasi sistem basis basis data jalur jalan 3D. Tahapan-tahapan tersebut antara lain perancangan basis data (pada subbab 3.1), tahapan struktur jaringan jalur jalan 3D (pada subbab 3.2), tahapan desain dan implementasi Pgrouting untuk basis data spasial 3D jalur jalan (pada subbab 3.3), tahapan implementasi dan uji coba (pada subbab 3.4).

3.1 Perancangan Basis Data Jalur Jalan Kampus ITB

Perancangan basis data merupakan tahap awal pembuatan basis data, termasuk didalamnya penentuan struktur basis data, hubungan antar tabel, isi, dan aplikasi apa saja yang akan dijalankan. Perancangan basis data dalam sistem mempunyai tujuan untuk mempermudah hubungan-hubungan antar tabel satu dengan tabel lainnya. Basis data mempunyai fungsi untuk mencatat, menyimpan, memanipulasi dan menampilkan hasil. Secara garis besar, tahapan pembangunan basis data ini meliputi tahapan eksternal, tahapan konseptual, dan tahap implementasi.

3.1.1 Tahapan eksternal

Pada tahapan eksternal ini, dilakukan identifikasi kebutuhan pengguna (user

requirement) yang berhubungan dengan perancangan basis data jalur jalan

kampus ITB. Dalam mengidentifikasi kebutuhan pengguna ini, dilakukan studi literatur dan pengamatan lapangan mengenai struktur jalur yang berada di dalam kampus ITB.

Hasil dari analisis kebutuhan pengguna dalam tahap eksternal ini kemudian diklarifikasi serta disusun secara sistematik untuk mendapatkan entitas-entitas untuk membangun sistem basis data. Entitas merupakan individu yang mewakili sesuatu yang nyata (eksistensinya) dan dapat dibedakan dari sesuatu lainnya

(2)

29 [Fatahansyah, 1999]. Tiap entitas memiliki informasi yang mendeskripsikan karateristik dari entitas yang disebut sebagai atribut.

Bentuk dan struktur 3D saja belum cukup untuk dapat melakukan analisis pencarian jalur jalan, karena kurangnya informasi mengenai hubungan antar objek di lapangan. Dengan pemodelan graf hal tersebut dapat dilakukan. Pemodelan graf digunakan untuk merepresentasikan bentuk geometri suatu objek, misalkan bentuk bangunan. Bentuk bangunan dapat direpresentasikan dengan garis (edge) dan titik (node), di dalam gedung terdapat ruangan yang dapat direpresentasikan sebagai titik, dan koridor yang dapat direpresentasikan sebagai garis. Dalam membangun struktur graf terdapat beberapa aturan seperti:

Bagian akhir dari jalur selalu node. Jalur penghubung antar objek selalu edge Pertemuan antara jalur penghubung selalu node

Prakteknya dalam dunia nyata, jalur merupakan tempat untuk melakukan pergerakan dari satu tempat ke tempat lainnya. Pergerakan tersebut bisa dilakukan dengan berjalan kaki maupun dengan menggunakan kendaraan seperti mobil maupun motor, sehingga jalur tersebut digambarkan sebagai garis. Sedangkan bagian tempat akhir dari suatu jalur digambarkan sebagai titik dari centroid suatu tempat. Entitas dalam pembentukan basis data jalur jalan kampus ITB dibagi menjadi dua bagian yaitu titik (node) dan garis (edge). Adapun entitas jalur jalan diperlihatkan pada tabel 3.1 dan tabel 3.2.

Node merupakan awal atau terminasi dari suatu jalur. Node diasumsikan

merupakan tempat tujuan akhir dari suatu jalur. Dan edge merupakan aksesibilitas jalur dari tempat-tempat yang direpresentasikan oleh node.

Tabel 3.1 Daftar Entitas Titik

No. Entitas Jenis

Parkiran Titik

(3)

30

Gedung Titik

Ruang Titik

Lantai Titik

Lapangan Titik

Tabel 3.2 Daftar Entitas Garis

No. Entitas Jenis

Jalan kendaraan bermotor

Garis

Jalan Setapak Garis

Koridor garis

Jalur Lift garis

Tangga garis

3.1.2 Tahap Konseptual

Setelah pemilihan entitas yang akan dimasukkan ke dalam basis data, relasi antara data tersebut harus dibuat terlebih dahulu. Dalam perancangan desain konseptual ini, dilakukan pengidentifikasian terhadap entitas basis data jalur jalan kampus ITB. Pada tahap ini juga dilakukan perancangan model relasi antar entitas. Hasil dari tahap konseptual ini sering disebut sebagai model konseptual dan pada umumnya direpresentasikan dengan menggunakan model data Entity Relationship (ER).

Hubungan satu entitas dengan entitas lainnya merupakan formulasi dari enterprise

rule, yaitu suatu aturan yang terjadi pada keterkaitan antara satu entitas dengan

entitas lainnya pada struktur organisasi data. Adapun entitas dan atribut yang digunakan dalam kajian ini dapat dilihat pada tabel 3.3 berikut:

(4)

31 Tabel 3.3 Tabel entitas-entitas basis data jalur jalan kampus ITB beserta

atributnya

No. Entitas Atribut Objek Primitif

1. Node Kampus a. ID Node Kampus Titik

2. Parkiran a. ID parkiran b. keterangan Poligon 3. Taman a. ID taman b. keterangan Poligon 4. Gedung a. ID bangunan b. nama bangunan Poligon 5. Ruang a. ID ruang b. nama ruang Poligon 6. Lapangan a. ID lapangan b. keterangan Poligon 7. Lantai a. ID lantai b. nama lantai Poligon

8. Net Kampus a. ID edge

b. source (from node) c. target (to node)

Garis

9. Jalan a. ID jalan

b. nama jalan

Poligon

10. Jalan Setapak a. ID jalan setapak b. keterangan

Poligon

11. Koridor a. ID koridor b. keterangan

Poligon

12. Jalur Lift a. ID jalur lift b. keterangan

Poligon

13. Tangga a. ID tangga

b. keterangan

(5)

32 3.1.2.1 Entity Relationship

1. Hubungan entitas node kampus dan entitas net kampus

Hubungan antara entitas node kampus dan entitas net kampus termasuk kedalam jenis graf sederhana berarah dan merepresentasikan graf Matriks Bersisian (incidency matrix) karena pada hubungan ini, terdapat informasi yang menyatakan arah tujuan (from node dan to node) dan informasi hubungan garis dengan titik.

a. Enterprise Rules Untuk relasi from

i. Setiap segmen net kampus pasti memiliki satu titik dari (from) node kampus.

ii. Satu titik pada node kampus pasti dapat memiliki lebih dari satu segmen net kampus.

iii. Hubungan kedua entitas tersebut adalah banyak ke satu dan keduanya berkelas obligatori.

Untuk relasi to

i. Setiap segmen net kampus pasti memiliki satu titik menuju (to) node kampus.

ii. Satu titik pada node kampus pasti dapat memiliki lebih dari satu segmen net kampus.

iii. Hubungan kedua entitas tersebut adalah banyak ke satu dan keduanya berkelas obligatori.

b. Diagram ER Node kampus Net kampus to from m m 1 1

(6)

33 c. Tabel Skeleton

i. node_kampus (#gid)

ii. net_kampus (#gid, id_edge, source, target) 2. Hubungan entitas parkiran dan entitas node kampus

a. Enterprise Rules

i. Satu wilayah parkiran hanya memiliki satu centroid (node kampus).

ii. Satu centroid (node kampus) hanya bisa memiliki satu wilayah parkiran.

iii. Hubungan kedua entitas tersebut adalah satu ke satu dan berkelas non obligatori dan obligatori.

b. Diagram ER

memiliki Node kampus parkiran

1 1

c. Tabel Skeleton

i. node_kampus (#gid, id_node) ii. parkiran (#id_parkiran, keterangan) 3. Hubungan entitas taman dan entitas node kampus

a. Enterprise Rules

i. Satu wilayah taman hanya memiliki satu ke satu centroid (node kampus).

ii. Satu centroid (node kampus) hanya bisa memiliki satu wilayah taman.

iii. Hubungan kedua entitas tersebut adalah satu ke satu dan berkelas non obligatori dan obligatori.

b. Diagram ER

memiliki Node kampus taman

1 1

(7)

34 c. Tabel Skeleton

i. node_kampus (#gid, id_node) ii. taman (#id_taman, keterangan)

4. Hubungan entitas gedung dan entitas node kampus a. Enterprise Rules

i. Satu gedung hanya memiliki satu centroid (node kampus). ii. Satu centroid (node kampus) hanya bisa memiliki satu gedung. iii. Hubungan kedua entitas tersebut adalah satu ke satu dan

berkelas non obligatori dan obligatori b. Diagram ER

memiliki Node kampus gedung

1 1

c. Tabel Skeleton

i. node_kampus (#gid, id_node) ii. gedung (#id_gedung, nm_gedung) 5. Hubungan entitas ruang dan entitas node kampus

a. Enterprise Rules

i. Satu ruang hanya memiliki satu centroid (node kampus). ii. Satu centroid (node kampus) hanya bisa memiliki satu ruang. iii. Hubungan kedua entitas tersebut adalah satu ke satu dan

berkelas non obligatori dan obligatori. b. Diagram ER

memiliki Node kampus ruang

1 1

c. Tabel Skeleton

i. node_kampus (#gid, id_node) ii. ruang (#id_ruang, nm_ruang)

(8)

35 6. Hubungan entitas lantai dan entitas node kampus

a. Enterprise Rules

i. Satu lantai hanya memiliki satu centroid (node kampus). ii. Satu centroid (node kampus) hanya bisa memiliki satu lantai. iii. Hubungan kedua entitas tersebut adalah satu ke satu dan

berkelas non obligatori dan obligatori. b. Diagram ER

memiliki Node kampus lantai

1 1

c. Tabel Skeleton

iii. node_kampus (#gid, id_node) iv. lantai (#id_lantai, nm_lantai) 7. Hubungan entitas jalan dan entitas net kampus

a. Enterprise Rules

i. Satu segmen jalan hanya memiliki satu segmen net kampus. ii. Satu segmen net kampus hanya bisa memiliki satu segmen

jalan.

iii. Hubungan kedua entitas tersebut adalah satu ke satu dan berkelas non obligatori dan obligatori.

b. Diagram ER net kampus memiliki jalan 1 1 c. Tabel Skeleton

i. net_kampus (#gid, id_edge) ii. jalan (#id_jalan, nm_jalan)

8. Hubungan entitas jalan setapak dan entitas net kampus a. Enterprise Rules

i. Satu segmen jalan setapak hanya memiliki satu segmen net kampus.

(9)

36 ii. Satu segmen net kampus hanya bisa memiliki satu segmen

jalan setapak.

iii. Hubungan kedua entitas tersebut adalah satu ke satu dan berkelas non obligatori dan obligatori.

b. Diagram ER net kampus memiliki jalan setapak 1 1 c. Tabel Skeleton

i. net_kampus (#gid, id_edge)

ii. jalan_setapak (#id_jalan_setapak, keterangan) 9. Hubungan entitas koridor dan entitas net kampus

a. Enterprise Rules

i. Satu segmen koridor hanya memiliki satu segmen net kampus. ii. Satu segmen net kampus hanya bisa memiliki satu segmen

koridor.

iii. Hubungan kedua entitas tersebut adalah satu ke satu dan berkelas non obligatori dan obligatori.

b. Diagram ER net kampus memiliki koridor 1 1 c. Tabel Skeleton

iii. net_kampus (#gid, id_edge) iv. koridor (#id_koridor, keterangan) 10. Hubungan entitas jalur lift dan entitas net kampus

a. Enterprise Rules

i. Satu segmen jalur lift hanya memiliki satu segmen net kampus. ii. Satu segmen net kampus hanya bisa memiliki satu segmen jalur

(10)

37 iii. Hubungan kedua entitas tersebut adalah satu ke satu dan

berkelas non obligatori dan obligatori. b. Diagram ER net kampus memiliki jalur lift 1 1 c. Tabel Skeleton

i. net_kampus (#gid, id_edge)

ii. jalur lift (#id_jalur_lift, keterangan) 11. Hubungan entitas tangga dan entitas net kampus

1. Enterprise Rules

i. Satu segmen tangga hanya memiliki satu segmen net kampus. ii. Satu segmen net kampus hanya bisa memiliki satu segmen

tangga.

iii. Hubungan kedua entitas tersebut adalah satu ke satu dan berkelas non obligatori dan obligatori

2. Diagram ER net kampus memiliki tangga 1 1 3. Tabel Skeleton

i. net_kampus (#gid, id_edge) ii. tangga (#id_tangga, keterangan) 12. Hubungan entitas gedung dan entitas lantai

1. Enterprise Rules

i. Satu gedung pasti memiliki lebih dari satu lantai. ii. Satu lantai pasti memiiki satu gedung.

iii. Hubungan kedua entitas tersebut adalah satu ke banyak dan berkelas obligatori dan obligatori.

(11)

38 2. Diagram ER

lantai

gedung 1 memiliki m

3. Tabel Skeleton

i. gedung (#id_gedung, nm_gedung) ii. lantai (#id_lantai, id_gedung) 13. Hubungan entitas lantai dan entitas ruang

1. Enterprise Rules

i. Satu lantai pasti memiliki lebih dari satu ruang. ii. Satu ruang pasti memiliki satu lantai.

iii. Hubungan kedua entitas tersebut adalah satu ke banyak dan berkelas obligatori dan obligatori

2. Diagram ER

ruang

lantai 1 memiliki m

3. Tabel Skeleton

i. lantai (#id_lantai, id_gedung, nm_lantai) ii. ruang (#id_ruang, id_lantai)

keterangan :

= non obligatori

= Obligatori

Diagram ER dari basis data batas secara keseluruhan akan diperlihatkan dalam gambar 3.1.

(12)

39 3.1.2.2 Tabel Skeleton

Berikut ini adalah tabel-tabel skeletonnya secara keseluruhan: 1. node_kampus (#id_node, id_node)

2. parkiran (#id_parkiran, keterangan) 3. taman (#id_taman, keterangan) 4. gedung (#id_gedung, nm_gedung) 5. ruang (#id_ruang, id_lantai, nm_ruang) 6. lantai (#id_lantai, id_gedung, nm_lantai) 7. lapangan (#id_lapangan, keterangan) 8. net_kampus (#gid, id_edge)

9. jalan (#id_jalan, nm_jalan, keterangan) 10. jalan_setapak (#id_setapak, keterangan) 11. koridor (#id_koridor, keterangan) 12. jalur lift (#id_jalur_lift, keterangan) 13. tangga (#id_tangga, keterangan)

node kampus parkiran taman gedung ruang lantai lapangan

net kampus jalan

jalan setapak koridor jalur lift tangga 1 m m 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 m m 1 1 1

(13)

40 3.1.3 Tahap Implementasi

Tahap implementasi merupakan tahapan untuk membuat perancangan fisik bagaimana menerapkan data dan model basis data sesuai dengan perangkat lunak yang digunakan. Tahap implementasi ini mengacu kepada tahapan eksternal dan tahapan konseptual yang dikerjakan sebelumnya.

3.1.3.1 Perangkat Pembangun

Dalam tugas akhir ini, perangkat lunak yang digunakan untuk membangun aplikasi adalah sebagai berikut:

a. Autodesk Land Desktop 2004 b. ArcGIS 9.2

c. ArcScene 9.2

d. Postgresql versi 8.1.5 e. postgis-pg81 versi 1.2.1-1 f. pgRouting versi 1.0.1 win32

Sedangkan perangkat keras yang digunakan untuk membangun aplikasi ini adalah sebagai berikut:

a. Processor : Intel(R) Pentium(R) 2.4 GHz b. Hardisk : 80 Gb

c. Monitor : GIC 15"

d. RAM : 768 Mb

e. VGA Card : 128 Mb 3.1.3.2 Pembuatan Basis Data

Pembuatan basis data dilakukan dengan menggunakan perangkat lunak PostgreSQL 8.2.7 ditambah dengan fungsi PostGIS. Pembuatan basis data dilakukan dengan perintah :

CREATE DATABASE "kampus_3D" WITH OWNER = "ginziro"

(14)

41 3.1.3.3 Pembuatan Tabel-tabel

Pembuatan tabel-tabel dapat dilakukan dengan menggunakan command prompt atau dengan menggunakan aplikasi 3rd party (EMS SQL Manager for Postgresql)

pendukung postgresql. Perintah dalam command prompt : psql –U ginziro kampus_3D

proses pembuatan tabel dan penyusunan hubungan antar tabel dilakukan dengan menggunakan bahasa SQL data definition Language (DDL). Daftr DDL dapat dilihat pada lampiran A.

CREATE TABLE "public"."net_kampus" ( "gid" SERIAL,

"the_geom" "public"."geometry", "id_edge" INTEGER,

"source" INTEGER, "target" INTEGER,

"length" DOUBLE PRECISION, "x1" DOUBLE PRECISION, "y1" DOUBLE PRECISION, "z1" DOUBLE PRECISION, "x2" DOUBLE PRECISION, "y2" DOUBLE PRECISION, "z2" DOUBLE PRECISION,

CONSTRAINT "enforce_dims_the_geom" CHECK (ndims(the_geom) = 3), CONSTRAINT "enforce_geotype_the_geom" CHECK

((geometrytype(the_geom) = 'MULTILINESTRING'::text) OR (the_geom IS NULL)),

CONSTRAINT "enforce_srid_the_geom" CHECK (srid(the_geom) = -1) ) WITH OIDS;

3.2 Pengolahan Data 3.2.1 Pengumpulan data

Data awal yang digunakan berupa basis data peta kampus ITB (http://petakampus.itb.ac.id) dan data kontur Kampus ITB dalam format *.DWG yang masing-masing mempunyai sistem koordinat proyeksi UTM zona 48S dengan ellipsoid WGS84. Dari basis data peta kampus ITB, dilakukan query sesuai dengan entitas-entitas yang ada pada tahapan konseptual yang kemudian dilakukan konversi dari format *.SQL ke format *.SHP dengan menggunakan aplikasi Qgis (Quantum GIS 0.10.0), sedangkan untuk data kontur dilakukan konversi di Autocad kemudian dikonversi menjadi format TIN dengan

(15)

42 menggunakan aplikasi ArcScene (ArcGIS 9.2). Dengan menggunakan aplikasi ArcScene ini pula, dilakukan proses pembuatan 3D shapefile dari flie-file hasil konversi (*.SHP) dari basis data peta kampus dan TIN. Data 3D shapefile ini kemudian di konversi kedalam format *.DWG yang kemudian akan dilakukan pendijitasian jalur jalan dengan menggunakan aplikasi Autocad Land Desktop 2004. Hasil dijitasi jalur jalan ini kemudian di rubah ke dalam format *.DFX dan kemudian di konversi ke dalam format *.SQL untuk dimasukan kedalam basis data. Untuk lebih jelasnya dapat dilihat pada gambar 3.2 skematik langkah pengumpulan data. Basis Data Peta Kampus Titik-titik ketinggian (*.shp) TIN Query Entitas (sql) Konversi *.SQL ke *.SHP Pembuatan 3D shapefile Konversi 3d shapefile ke *.DWG No Yes Dijitasi jalur jalan Konversi *.DXF ke *.SQL Data Base 3D

Kontur Bangunan dan jalanKoordinat base

Quantum GIS

ArcScene

ArcScene

AutoCad

DXF converter

(16)

43 1. Konversi basis data (*.sql) ke shapefile (*.shp)

Tahapan ini adalah proses untuk mengambil data entitas beserta atributnya yang ada pada basis data peta kampus ITB. Proses yang dilakukan menggunakan aplikasi Quantum GIS dibantu dengan bahasa SQL (Structure Query Language). Untuk dapat terhubung dengan server basis data peta kampus ITB, terlebih dahulu mengisikan data seperti user, password, dan alamat host. Gambar 3.3 untuk melakukan hubungan dengan basis data peta kampus ITB, dan gambar 3.4 hasil query dari basis data peta kampus ITB.

Gambar 3.3 Koneksi dengan Server Basis Data Peta Kampus ITB (http://petakampus.itb.ac.id)

(17)

44 Gambar 3.4 Hasil Query pada Aplikasi Quantum GIS

Proses selanjutnya adalah melakukan query terhadap data yang ada di basis data peta kampus ITB. Query yang dilakukan berdasarkan entitas-entitas yang ada pada tahapan konseptual, yaitu parkiran, taman, gedung, ruang, lantai, jalan, dan koridor. Untuk entitas-entitas yang tidak terdapat pada server basis data kampus ITB sepert node kampus, net kampus, jalan setapak, jalur lift dan tangga, dilakukan pendijitasian yang dilakukan di aplikasi AutoCad Land Desktop 2004.

Setelah mendapatkan query yang diinginkan, dengan aplikasi Quantum GIS ini, akan dilakukan juga konversi ke format shapefile (*.shp). Konversi ke format

shapefile dilakukan berdasarkan query entitas yang dilakukan, sehingga nanti

akan didapat file-file entitas yang berformat shapefile. 2. Pembuatan TIN (Triangulated Irregular Network)

Tahapan ini adalah tahapan untuk mendapatkan data TIN dengan melakukan

intersection antara kontur ITB dengan bangunan dan jalan proses ini

menggunakan aplikasi Autocad Land Desktop 2004. Kemudian data hasil

intersection tersebut, diekstrak berupa titik setiap 2 meter. Hal ini dilakukan untuk

mendapatkan titik-titik ketinggian. Titik-titik ketinggian tersebut kemudian di konversi ke dalam format shapefile. Kemudian format shapefile tersebut di

(18)

45 konversi menjasi format TIN dengan cara diinterpolasi proses ini menggunakan aplikasi ArcScene. Gambar 3.5 merupakan representasi titik-titik tinggi dalam format shapefile, dan gambar 3.6 adalah TIN dalam aplikasi ArcScene

Gambar 3.5 Titik-titik Tinggi dalam Format Shapefile

Gambar 3.6 TIN Kampus ITB

3. Pembuatan 3D shapefile

Pada tahapan ini akan dilakukan pembuatan objek 3D yang berasal dari 2D shapefile (x,y) yang kemudian digabungkan dengan data TIN untuk mendapatkan data ketinggian (z). Pada pembuatan objek 3D ini, dilakukan proses interpolasi pencarian nilai ketinggian (z) data 2D shapefile (x,y) terhadap TIN yang mempuyai informasi ketinggian (z), sehingga akan didapatkan 3D shapefile yang mempunyai format (x,y,z). Gambar 3.7 merupakan betuk 3D shapefile jalan dan TIN.

(19)

46 Gambar 3.7 Overlay Layer data Jalan dan TIN

4. Konversi 3D shapefile ke autocad

Tahap ini adalah tahapan untuk melakukan konversi dari 3D shapefile ke format

AutoCad (*.DWG). Tahapan ini menggunakan aplikasi toolbox yang berada pada ArcScene.

3.2.2 Dijitasi jalur jalan

Tahapan ini adalah tahapan untuk mendapatkan data jalur jalan yang berasal dari data-data Autocad (*.dwg) hasil konversi. Pembuatan jalur jalan ini harus sesuai dengan tahapan konseptual yang telah dibuat, yaitu hanya berupa objek node(tititk) dan garis (edge). Pendijitasian dilakukan terhadap as (tengah) jalur jalan dan gedung (Gambar 3.8 dan gambar 3.9). Dalam melakukan pendijitasian, terdapat beberapa aturan seperti:

Bagian akhir dari jalur selalu node Jalur penghubung antar objek selalu edge Pertemuan antara jalur penghubung selalu node

(20)

47 Gambar 3.8 Pendijitasian Jalur Jalan di Autocad

(21)

48 3.2.3 Konversi *.dxf ke format *.sql

Tahap ini adalah tahapan untuk melakukan konversi dari format Autocad (*.dxf) ke basis data (*.sql). Tahapan ini menggunakan dxf converter yang dibuat dengan menggunakan bahasa pemograman Visual Basic. Langkah yang digunakan aplikasi koverter ini adalah membaca file *.dxf dari awal sampai akhir dengan mengenali beberapa kata kunci seperti POLYLINE, VERTEX, TEXT, dan ENDSEC. Kata-kata kunci ini mengandung informasi-informasi mengenai bentuk geometri dari suatu objek. Setelah dibaca, kemudian ditulis kembali dalam format SQL. Format SQL inilah nanti yang akan menjadi data untuk basis data yang sedang dibangun. Gambar 3.10 Aplikasi Konverter dengan menggunakan Visual Basic. Contoh Input masukan data *.dxf data jalan

VERTEX 5 94 8 JALAN 10 788240.42017730419 20 9238219.4996079318 30 756.436279296875 0

(22)

49 Contoh output hasil dalam format *.sql

INSERT INTO jalan (the_geom) VALUES (GeomFromEWKT('SRID=-1;POLYGON((788235.3142944054 9238211.3602182511

756.436279296875))'));

3.3 Implementasi PgRouting dalam basis data 3D 3.3.1 Aplikasi PgRouting

Pgrouting merupakan fungsi untuk melakukan pencarian lintasan terpendek dalam postgis/postgresql. Pgrouting merupakan bagian dari postlib, dimana postlib merupakan inti aplikasi untuk Location Based Services (LBS) yang bersifat Open

Source Software (OSS). Pgrouting mempunyai beberapa algoritma dalam

memecahkan masalah mengenai pencarian jalur jalan, diantaranya:

1. Shortest Path Search

a) Dijkstra b) A*

c) Shooting*

Pgrouting menggunakan fungsi yang dibangun dengan menggunakan bahasa C++, yang kemudian di-compile menjadi library khusus yang akan dibaca oleh Postgresql untuk melakukan query. Untuk lebih jelasnya ada pada gambar 3.11

Gambar 3.11 Cara kerja Pgrouting

(http://pgrouting.postlbs.org/wiki/WorkshopFOSS4G2007)

Fungsi-fungsi yang terdapat dalam Pgrouting telah menjadi satu kesatuan dalam format library (librouting.dll) yang disimpan di tempat peng-installan postgresql. Dalam tugas akhir ini disimpan di “C : \Program Files\PostgreSQL \8.2 \lib

(23)

50 \librouting.dll”. Di dalam library ini disimpan algoritma-algoritma pencarian lintasan terpendek antara lain :

a. shortest_path fungsi utama pencarian lintasan terpendek dengan

menggunakan algoritma Dijkstra.

b. shortest_path_astar fungsi utama pencarian lintasan terpendek dengan

menggunakan algoritma A*.

c. shortest_path_shooting_star fungsi utama pencarian terpendek dengan

menggunakan algoritma Shooting*.

Di dalam library ini pula, terdapat fungsi untuk pembuatan topologi jaringan yaitu fungsi assign_vertex_id. Fungsi assign_vertex_id ini membuat dua tabel, yaitu tabel kumpulan edge dan tabel kumpulan node. Proses yang dilakukan oleh fungsi

assign_vertex_id ini adalah melakukan inisialisasi terhadap semua edge dalam

tabel jaringan, yaitu menginisialisasi from node dan to node dengan toleransi tertentu. Toleransi ini berfungsi untuk mengetahui apakah edge tersebut berhubungan atau tidak, apabila dua edge tersebut mempunyai jarak kurang dari toleransi, maka kedua edge tersebut berhubungan, sebaliknya apabila melebihi nilai toleransi, maka kedua edge tersebut tidak mempunyai hubungan.

3.3.2 Memodifikasi fungsi-fungsi Pgrouting

Tahap ini adalah tahapan memodifikasi fungsi pgrouting yang sudah ada untuk dapat membaca data 3D yang telah dibuat. Tahapan-tahapan tersebut adalah (daftar DDL berada pada lampiran A) :

1. Memodifikasi fungsi “assign_vertex_id”

Fungsi ini bertujuan untuk pembuatan topologi jaringan yang nantinya dipakai sebagai data inti dalam melakukan query spasial analisis jalur (routing). Adapun scripts yang dirubah adalah

EXECUTE 'SELECT addGeometryColumn(''vertices_tmp'', ''the_geom'', '||srid||', ''POINT'', 2)';

Menjadi

EXECUTE 'SELECT addGeometryColumn(''vertices_tmp'', ''the_geom'', '||srid||', ''POINT'', 3)';

(24)

51 Perubahan yang dilakukan adalah dengan merubah dimensi yang pada awalnya 2D hanya untuk memproses data koordinat XY menjadi 3D untuk koordinat XYZ. 2. Pembuatan fungsi “distance3d”

Fungsi ini bertujuan untuk mencari jarak antara dua titik dalam 3D. Fungsi ini sebagai penghitungan jarak untuk pembuatan topologi. Berikut ini scripts perhitungan jarak antara dua titik dalam 3D.

DECLARE x1 DOUBLE PRECISION; y1 DOUBLE PRECISION; z1 DOUBLE PRECISION; x2 DOUBLE PRECISION; y2 DOUBLE PRECISION; z2 DOUBLE PRECISION;

dist3d DOUBLE PRECISION; BEGIN x1 := x(pnt1); y1 := y(pnt1); z1 := z(pnt1); x2 := x(pnt2); y2 := y(pnt2); z2 := z(pnt2); dist3d := sqrt((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1) + (z2-z1)*(z2-z1)); RETURN dist3d; END;

3. Modifikasi fungsi “point_to_id”

Fungsi ini bertujuan untuk mencari hubungan antar node-node. Apakah node-node saling berhubungan atau tidak sesuai dengan toleransi yang diberikan.

distance(the_geom, point) < tolerance;

menjadi

distance3d(the_geom, point) < tolerance;

perubahan yang dilakukan adalah dengan merubah fungsi pembacaan jarak (distance) yang asalnya untuk 2D menjadi 3D.

3.3.3 Uji coba perbandingan algoritma

Uji coba perbandingan ketiga algoritma (Dijkstra, A*, dan Shooting*) dilakukan terhadap data yang mempunyai 23216 edge dan 7857 node. Uji coba ini dilakukan untuk mengetahui perbandingan ketiga algoritma tersebut dari banyaknya node terhadap waktu untuk melakukan query.

Dari hasil uji coba tersebut didapat, untuk algoritma Dijkstra dan A*, perbandingan banyaknya node pencarian terhadap waktu hampir sama. Untuk

(25)

52 algoritma Shooting* merupakan algoritma yang paling lama dibandingkan dengan algoritma yang lain. Untuk lebih jelasnya ada pada gambar 3.12.

Gambar 3.12 Perbandingan Algoritma Dijkstra, A*, dan Shooting*

3.3.4 Pembuatan topologi

Tahapan ini menggunakan fungsi-fungsi pgrouting yang sudah dimodifikasi untuk dapat membuat topologi jalur jalan. Adapun langkahnya adalah sebagao berikut : 1. Menambahkan tabel

Tabel-tabel tersebut adalah source, target, dan length. Tabel source berisi data point titik awal segmen (from node), tabel target berisikan data point akhir segmen (to node), dan length berisikan data jarak segmen tersebut. Adapun scripts tersebut adalah

ALTER TABLE as_kampus ADD COLUMN source integer; ALTER TABLE as_kampus ADD COLUMN target integer;

ALTER TABLE as_kampus ADD COLUMN length double precision;

2. Proses topologi jaringan jalur jalan

Proses tersebut dengan menggunakan fungsi “assign_vertex_id”. Dalam proses ini tabel-tabel yang dibuat dalam langkah (1) akan terisi.

SELECT assign_vertex_id('net_kampus', 0.001, 'the_geom', 'gid'); UPDATE as_kampus SET length = length(the_geom);

3. Membuat index untuk tabel source, target, dan the_geom

Tahapan ini bertujuan untuk mempercepat proses dalam melakukan analisis jalur jalan dan proses query lainnya.

CREATE INDEX source_idx ON as_kampus(source); CREATE INDEX target_idx ON as_kampus(target);

0 500 1000 1500 2000 10 20 30 40 50 60 70 80 97 A* Dijkstra Shooting* Node m ili s ec

(26)

53

CREATE INDEX geom_idx ON as_kampus USING GIST(the_geom GIST_GEOMETRY_OPS);

4. Menjalankan fungsi “short_path” Dijkstra query Scritpts fungsi short path adalah

SELECT * FROM shortest_path('SELECT gid as id, source::integer, target::integer, length::double precision as cost FROM

net_kampus', 735,660, false, false);

Hasil query ada pada gambar 3.13.

Gambar 3.13 Hasil Query Shortest Path

3.4 Uji coba desain dan implementasi PgRouting untuk analisis pencarian jalur jalan 3D

3.4.1 Query deskripsi

Tahapan ini bertujuan untuk mendapatkan hasil query yang diinginkan. Untuk tugas akhir ini, query tersebut diharapkan dapat memberikan informasi deskriptif mengenai hasil analisis jalur yang dihasilkan. Seperti jarak antar segmen dan arah belok (kiri atau kanan). Untuk mendapatkan hasil deskriptif tersebut, dilakukan pembuatan fungsi dengan menggunakan bahasa pgsql. Pada gambar 3.14 merupakan diagram alur penentuan deskripsi arah.

(27)

54 awal akhir Fungsi short_path Awal ke akhir 3300 ≤ X < 300

Sdt_jur1 = sudut jurusan sebelum Sdt_jur2 = sudut jurusan tujuan

30 ≤ X < 600 600 ≤ X < 1200 3000 ≤ X < 3300 1200 ≤ X < 1500 1500 ≤ X < 2100 2100 ≤ X < 2400 2400 ≤ X < 3000 Lurus Kiri Depan Samping Kiri Kanan Lurus Kiri Belakang Belakang Kanan Belakang Samping Kanan Yes No X=sdt_jur1 – sdt_jur2

Gambar 3.14 Diagram Alur Penentuan Deskripsi Arah

Dari fungsi short_path didapat query analisis jalur berupa id_vertex, edge_id, dan

cost. Hasil query tersebut kemudian akan menjadi variable untuk mendapatkan

atribut sudut jurusan masing node awal dan node akhir dari tabel net_kampus. Untuk mendapatkan informasi deskripsi horisontal dari setiap node, dihitung dengan mengambil selisih antara sudut jurusan pada node sebelum dikurangi dengan sudut jurusan pada node tujuan. Besar selisih antara kedua sudut jurusan tersebut akan menjadi variabel untuk menentukan deskripsi arah (belok kiri atau belok kanan) terhadap node tujuan. Pada gambar 3.15 merupakan gambar besaran sudut dan deskripsi arah.

Untuk mendapatkan informasi deskripsi vertikal dari setiap node, dihitung dari perhitungan sudut secara vertikal di setiap node. Sudut vertikal tersebut di dapat dari perhitugan:

,

dimana

delta H = selisih tinggi antara node akhir – node awal jarak = jarak antara dua node dalam 3D.

(28)

55 Besar sudut tersebut akan menjadi variabel untuk menentukan deskripsi arah (menaik atau menurun) terhadap node tujuan. Pada gambar 3.16 merupakan besaran sudut terhadap arah vertikal.

Lurus Samping Kiri Samping Kanan Belakang Kiri Belakang Kanan Belakang Kiri Depan Kanan Depan 00 900 1800 2700 300 2100 2400 3000 600 1500 1200 3300

Gambar 3.15 Besaran Selisih Sudut dan Deskripsi Arah

00 - 300 300 - 600 600 - 900 Mendatar Menaik/ menurun Curam menaik / Curam menurun

(29)

56 3.4.2 Query dengan menggunakan fungsi shortest path

Query dilakukan untuk mendapatkan seluruh informasi mengenai analisis penelusuran jalur. Informasi-informasi tersebut berupa informasi grafis (koordinat XYZ) dan informasi deskriptif (deskriptif arah tujuan). Secara lengkap informasi yang dihasilkan adalah vertex_id, gid, the_geom, jarak, a_jur, arah, dan deskripsi. Query dilakukan berdasarkan (daftar SQL ada pada lampiran B):

1. Query antar gedung

a. dari gedung Labtex IX C ke Labtex III b. dari gedung Labtex III ke Labtex IX C

c. dari ruang tamu lantai dasar gedung Labtex III ke Ruang seminar lantai 6 gedung Labtex IX C

d. dari ruang laboratorium lantai 4 gedung labtex IX C ke dapur lantai 4 gedung Labtex III

e. dari gerbang depan ITB ke ruang sistech lantai 3 gedung Labtex IX C 2. Query dalam gedung

a. dari Perpustakaan lantai 6 ke ruang 3105 lantai 1 gedung Labtex IX C b. dari ruang dosen lantai 2 ke Labkom lantai 4 gedung Labtex III 3. Query jarak dekat

a. dari Tugu Soekarno ke Plaza Widya

b. dari parkiran Aula Timur ke Tugu Soekarno 4. Query jarak jauh

a. dari parkiran Aula Timur ke gedung Labtex III b. dari parkiran Aula Barat ke gerbang belakang ITB

Gambar 3.17 merupakan contoh untuk analisis pencarian jalur jalan dari gedung Labtek III ke gedung Labtek IXC dengan mempergunakan aplikasi ArcScene dalam menampilkan hasil analisisnya. Kemudian gambar 3.18 merupakan suatu deskripsi dalam bentuk tabel mengenai informasi-informasi hasil analisis jalur terpendek dari gedung Labtek III ke gedung Labtek IXC. Daftar grafis dan deskripsi ada pada lampiran C.

(30)

57 Gambar 3.17 Contoh Hasil Pencarian Jalur Jalan (Labtex III ke Labtex IX C)

Gambar

Tabel 3.2 Daftar Entitas Garis
Diagram  ER  dari  basis  data  batas  secara  keseluruhan  akan  diperlihatkan  dalam  gambar 3.1
Gambar 3.1 Relasi antara Entitas-entitas
Gambar 3.2 Skematik Pengumpulan dan Pengolahan Data
+7

Referensi

Dokumen terkait