bab 3 desain dan implementasi analisis pencarian jalur ... · b. diagram er net kampus node kampus...

of 30 /30
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

Author: donhu

Post on 27-Jun-2018

216 views

Category:

Documents


0 download

Embed Size (px)

TRANSCRIPT

  • 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

  • 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

    Taman Titik

  • 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:

  • 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

    Poligon

  • 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 kampusNet kampus

    to

    from

    m

    m 1

    1

  • 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 kampusparkiran

    11

    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 kampustaman

    11

  • 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 kampusgedung

    11

    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 kampusruang

    11

    c. Tabel Skeleton

    i. node_kampus (#gid, id_node)

    ii. ruang (#id_ruang, nm_ruang)

  • 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 kampuslantai

    11

    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 kampusmemilikijalan

    11

    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.

  • 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 kampusmemilikijalan setapak

    11

    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 kampusmemilikikoridor

    11

    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

    lift.

  • 37

    iii. Hubungan kedua entitas tersebut adalah satu ke satu dan

    berkelas non obligatori dan obligatori.

    b. Diagram ER

    net kampusmemilikijalur lift

    11

    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 kampusmemilikitangga

    11

    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.

  • 38

    2. Diagram ER

    lantaigedung memiliki1 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

    ruanglantai memiliki1 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.

  • 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

    1m

    m 1

    11

    1

    1

    1

    1

    1 1 1

    1

    1

    1 1 1

    1

    1

    1

    1

    1

    1

    1

    m

    m

    1

    1

    1

    Gambar 3.1 Relasi antara Entitas-entitas

  • 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"

    TEMPLATE = "template_postgis";

  • 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

  • 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

    KonturKoordinat base

    Bangunan dan jalan

    Quantum GIS

    ArcScene

    ArcScene

    AutoCad

    DXF converter

    Gambar 3.2 Skematik Pengumpulan dan Pengolahan Data

  • 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)

  • 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

  • 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.

  • 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

  • 47

    Gambar 3.8 Pendijitasian Jalur Jalan di Autocad

    Gambar 3.9 Hasil Pendijitasian Jalur pada Gedung Labtek IXC

  • 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

    Gambar 3.10 Aplikasi Koverter dengan Menggunakan Visual Basic

  • 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

  • 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)';

  • 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

  • 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

    mili

    sec

  • 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.

  • 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.

  • 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 DepanKanan

    Depan

    00

    900

    1800

    2700

    300

    2100

    2400

    3000 60

    0

    1500

    1200

    3300

    Gambar 3.15 Besaran Selisih Sudut dan Deskripsi Arah

    00 - 30

    0

    300 - 60

    0

    600 - 90

    0

    Mendatar

    Menaik/

    menurun

    Curam menaik /

    Curam menurun

    Gambar 3.16 Besaran Arah Vertikal

  • 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.

  • 57

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

    Gambar 3.18 Contoh Hasil Atribut Pencarian Jalur (Labtex III ke Labtex IX C)