Anda di halaman 1dari 23

Halaman: 1

TUGAS
PRAKTIKUM BASIS DATA SPASIAL
Dosen : Ir. Rochmad Muryamto, M.Eng.Sc.

Latihan #2, Latihan#3, Latihan#4

oleh :
ROMI FADLY
(11/326527/PTK/07933)

Magister Teknik Geomatika Angkatan XIII


Pascasarjana Universitas Gadjah Mada
Yogyakarta
2012

Praktikum Basis Data Spasial/2012


Oleh: Romi Fadly

Halaman: 2

LATIHAN #2 MEMBUAT BASIS DATA DENGAN PostgreSQL

Tujuan Praktikum
Praktikum ini bertujuan agar mahasiswa dapat membuat basis data dengan
menggunakan program PostgreSQL dan PostGIS sesuai model konseptual yang sudah
dibuat pada awal pelaksanaan praktek. Selanjutnya mahasiswa dapat mencoba
melakukan beberapa perintah query atribut menggunakan bahasa SQL.
Tahapan Praktikum
Praktikum kali ini adalah membuat basis data dengan Postgres dan PostGIS secara
umum tahapan yang dilakukan adalah sebagai berikut.
1. Jalankan program pgAdmin III dengan memilih start All Program
PostgreeSQL 8.3 pgAdmin III.
2. Membuat basis data baru
Pada tahapan ini dapat dilakukan dengan cara klik kanan opsi Database New
Database pada jendela New Database isikan seperti gambar 1a. Setelah
database Latihan dibuat maka akan tampak seperti gambar 1b yang didalam data
base tersebut jika di-expand pada tabel akan terdapat dua tabel , yaitu tabel
Geometry_columns dan Spatial_ref_sys.

(1a
)

(1b
)

Gambar 1. Membuat data base baru


3. Membuat Tabel Basis Data
Setelah basis data dibuat, maka selanjutnya membuat tabel basis data.
Pembuatan tabel dapat dilakukan dua cara yaitu dengan langsung menggunakan
fasilitas yang ada di postgres atau dengan menggunakan perintah SQL.

Pada

latihan ini pendefinisian tabel menggunakan SQL, yang dapat dilihat pada tabel 1.
Tabel 1. Perintah SQL Membuat Tabel Basis Data

Membuat Tabel Jalan


CREATE TABLE jalan
(
id_jalan integer NOT NULL,

Praktikum Basis Data Spasial/2012


Oleh: Romi Fadly

Membuat Tabel Tower


CREATE TABLE tower
(
id_tower integer NOT NULL,

Halaman: 3
nama_jalan character varying(35),
lebar_jalan numeric(4,2),
konstruksi character varying(10),
kondisi character varying(10),
kelas character varying(15),
arah character varying(10),
CONSTRAINT pk_jalan PRIMARY KEY (id_jalan)
)
WITH (OIDS=FALSE);
ALTER TABLE jalan OWNER TO postgres;

tinggi numeric(5,2),
luas_tapak numeric(5,2),
konstruksi character varying(15),
tahun_pembuatan character varying(4),
pt_pembuat character varying(25),
id_provider integer NOT NULL,
CONSTRAINT pk_tower PRIMARY KEY
(id_tower),
CONSTRAINT fk_tower FOREIGN KEY
(id_provider)
REFERENCES provider (id_provider)
MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO
ACTION
)
WITH (OIDS=FALSE);
ALTER TABLE tower OWNER TO postgres;

Membuat Tabel Wilayah


CREATE TABLE wilayah
(
id_wilayah integer NOT NULL,
kabupaten character varying(30),
nama_bupati character varying(25),
CONSTRAINT pk_wilayah PRIMARY KEY
(id_wilayah)
)
WITH (OIDS=FALSE);
ALTER TABLE wilayah OWNER TO postgres;

Membuat Tabel Landuse


CREATE TABLE landuse
(
id_landuse integer NOT NULL,
penggunaan character varying(15),
luas numeric(9,3),
CONSTRAINT pk_landuse PRIMARY KEY
(id_landuse)
)
WITH (OIDS=FALSE);
ALTER TABLE landuse OWNER TO postgres;

Membuat Tabel Provider


CREATE TABLE provider
( id_provider integer NOT NULL,
provider character varying(20),
jns_jaringan character varying,
pemilik_saham character varying(250),
produk character varying(300),
alamat_ktr character varying(150),
CONSTRAINT pk_provider PRIMARY KEY
(id_provider))
WITH (OIDS=FALSE);
ALTER TABLE provider OWNER TO postgres;

Perintah SQL pada tabel diatas setelah di RUN maka akan menghasilkan 5 tabel
yaitu tabel Jalan, Tower, Provider, Landuse, dan Wilayah (seperti gambar 2).

Gambar 2. Tabel-tabel Basis Data Latihan


4. Mengisi Tabel Basis Data
Pada latihan ini pengisian masing-masing tabel basis data menggunakan perintah
SQL, yang dapat dilihat pada tabel 2 berikut.
Praktikum Basis Data Spasial/2012
Oleh: Romi Fadly

Halaman: 4

Tabel 2. Pengisian record tabel basis data


Mengisi Tabel Jalan
INSERT INTO jalan (id_jalan, nama_jalan, lebar_jalan, konstruksi, kondisi, kelas, arah) VALUES
(20, 'Jalan Lintas Timur Sumatera', 15.00, 'Aspal', 'Baik' , 'Jalan Nasional', 'Dua Arah'),
(21, 'Jalan Lintas Tengah Sumatera', 15.00, 'Aspal', 'Sedang', 'Jalan Nasional', 'Dua Arah'),
(22, 'Jalan Sukarno hatta', 15.00, 'Aspal', 'Buruk', 'Jalan Provinsi', 'Dua Arah');

Mengisi Tabel Tower


INSERT INTO tower (id_tower, tinggi, luas_tapak, konstruksi, tahun_pembuatan, pt_pembuat, id_provider) VALUES
(10, 100.20, 150.50, 'Baja Anti Karat', '2000', 'PT.Romi Brother', 104),
(11, 90.50, 170.20, 'Baja Anti Karat', '2005', 'PT.Angin ribut', 100),
(12, 150.00, 300.00, 'Baja Anti Karat', '2001', 'PT.Inti Telekomunikasi', 104),
(13, 155.00, 350.00, 'Baja Anti Karat', '1998', 'PT.Sidik Permana', 101),
(14, 100.25, 150.00, 'Baja Anti Karat', '1997', 'PT.Romi Brothers', 101),
(15, 135.00, 200.00, 'Baja Anti Karat', '2000', 'PT.Buana Asri', 102),
(16, 145.50, 300.00, 'Baja Anti Karat', '1998', 'PT.Permai Grup', 101),
(17, 145.00, 300.00, 'Baja Anti Karat', '2010', 'PT.Metalindo', 103),
(18, 150.25, 325.00, 'Baja Anti Karat', '2009', 'PT.Jaya Kontruksi', 100);

Mengisi Tabel Provider


INSERT INTO provider (id_provider, provider, jns_jaringan, pemilik_saham, produk, alamat_ktr) VALUES
(100, 'TELKOMSEL', 'GSM', 'PT Telkom dengan kepemilikan saham sebesar 65 persen dan SingTel sebesar 35
persen', 'kartuHALO (paska bayar) dan simPATI dan Kartu AS (pra bayar)', 'Wisma Mulia,Lt.Mezzanine ,Jl.Jend
Gatot Subroto N o 42. Jakarta 12710,DKI Jakarta'),
(101, 'INDOSAT', 'GSM', 'Qatar Telecom 65%, Publik 20,1%, serta Pemerintah Republik Indonesia 14,9%',
'Mentari, iM3 Pra bayar dan Matrix Paska Bayar dan StarOne (prabayar dan pascabayar)', 'Gedung Indosat, Jalan
Medan Merdeka Barat, No. 21, Jakarta 10110'),
(102, 'SMARTFREN TELECOM', 'CDMA', 'Grup Sinar Mas', 'Smartfren Local Plus, Smartfren Social, dan
Smartfren Connex', 'Jl.Haji Agus Salim No. 45, Sabang, Jakarta Pusat'),
(103, 'XL AXIATA', 'GSM', 'Saat ini mayoritas dipegang oleh Axiata Group Berhad (Axiata) melalui Indocel
Holding Sdn Bhd (66,7%) dan Emirates Telecommunications Corporation (Etisalat) melalui Etisalat International
Indonesia Ltd. (13,3%)', 'XL prepaid dan XL post paid', 'grha XL Jl. Mega Kuningan Lot. E4-7 No. 1 Kawasan
Mega Kuningan Jakarta 12950 Indonesia'),
(104, 'BAKRIE TELECOM', 'CDMA', 'PT.Bakrie & Brothers Tbk (34,38%) dan kepemilikan publik (65,62%)',
'Esia (pra bayar dan paska bayar), Wifone dan Wimode', 'Wisma Bakrie 3rd Floor, JI. H.R. Rasuna Said Kav. B1
Jakarta Pusat - 12920');

Mengisi Tabel Landuse


INSERT INTO landuse (id_landuse, penggunaan, luas) VALUES
(10, 'Sawah', 32344.507),
(11, 'Sawah', 29911.845),
(12, 'Ladang', 19946.679),
(13, 'Tambak', 39150.566),
(14, 'Perkebunan', 20639.828),
(15, 'Pemukiman', 38702.510),
(16, 'Perkebunan', 14652.080),
(17, 'Sawah', 20301.950),
(18, 'Pemukiman', 18397.774),
(19, 'Sawah', 28539.208),
(20, 'Pemukiman', 13613.326),
(21, 'Perkebunan', 20758.072),
(22, 'Pemukiman', 16419.653),
(23, 'Sawah', 33306.018),
(24, 'Ladang', 28300.195);

Mengisi Tabel Wilayah


INSERT INTO wilayah (id_wilayah, kabupaten, nama_bupati) VALUES
(10, 'Way Kanan', 'Hi.Bustami Zainudin'),
(11, 'Tulang Bawang Barat', 'Bachtiar Basrie'),
(12, 'Mesuji', 'Khamamik'),
(13, 'Tulang Bawang', 'Hi.Abdurachman sarbini'),
(14, 'Lampung Tengah', 'Hi.A.Pairin'),
(15, 'Lampung Utara', 'Hi.Zainal Abidin');

Praktikum Basis Data Spasial/2012


Oleh: Romi Fadly

Halaman: 5
Perintah SQL pada tabel diatas setelah di RUN maka akan mengisi record pada
masing-masing tabel Jalan, Tower, Provider, Landuse, dan Wilayah (seperti gambar
3). Tabel yang telah dibuat dapat dilihat isinya dengan cara Klik kanan pada
tabel yang akan dibuka View data View All Rows (contoh pada gambar
3 menampilkan isi tabel tower)

Gambar 3. Hasil pembuatan dan pengisian tabel basis data


Melakukan Query
Setelah semua tabel beserta recordnya dibuat, maka dicoba menggunakan perintah
SQL untuk melakukan Query atribut.
1. Tampilkan atribut seluruh Tower Indosat

Gambar 4. Hasil Query 1


2. Tampilkan nama bupati Kabupaten Tulang Bawang

Praktikum Basis Data Spasial/2012


Oleh: Romi Fadly

Halaman: 6

Gambar 5. Hasil Query 2


3. Ada berapa jumlah Tower Telkomsel seluruhnya

Gambar 6. Hasil Query 3


4. Tampilkan Seluruh penggunaan lahan dan jumlah lokasi masing-masing

Gambar 7. Hasil Query 4


5. Tapilkan alamat kantor dan pemilik saham provider Bakrie Telecom

Praktikum Basis Data Spasial/2012


Oleh: Romi Fadly

Halaman: 7

Gambar 8. Hasil Query 5

LATIHAN #3 MEMBUAT OBYEK SPASIAL DENGAN PostGIS

Praktikum Basis Data Spasial/2012


Oleh: Romi Fadly

Halaman: 8

Tujuan Praktikum
Praktikum ini bertujuan agar mahasiswa dapat membuat suatu obyek spasial bertipe
geometry (titik, garis dan luasan) pada basis data yang telah dibuat, dan
memanggilnya kembali (retrieval) menggunakan bahasa SQL.
Tahapan Praktikum
1. Jalankan program pgAdmin III dengan memilih start All Program
PostgreeSQL 8.3 pgAdmin III.
2. Membuka basis data yang sudah dibuat
Basis data yang sudah dibuat adalah sebagai berikut.

Gambar 1. Tabel-tabel basis data latihan


3. Menambah Obyek Spasial Bertipe Geometri
Tahapan awal menambah obyek spasial pada suatu tabel terlebih dahulu harus
membuat sebuah kolom spasial yang bertipe geometry. Obyek spasial akan
ditambahkan pada beberapa tabel yang mengandung data spasial yaitu :
- Jalan dengan kolom baru yang akan dibuat diberi nama jalan_geom
- Tower dengan kolom baru yang akan dibuat diberi nama tower_geom
- Landuse dengan kolom baru yang akan dibuat diberi nama landuse_geom
- Wilayah dengan kolom baru yang akan dibuat diberi nama wilayah_geom
Sistem koordinat yang digunakan adalah bertype Geodetik dengan datum WGS
84, maka srid yang digunakan adalah 4326. Berikut adalah perintah SQL untuk
menambahkan kolom obyek spasial pada tabel basis data adalah sebagai berikut.
Tabel 1. Perintah SQL Menambahkan kolom obyek spasial
Menambah kolom spasial jalan

Menambah kolom spasial tower

SELECT AddGeometryColumn
('jalan', 'jalan_geom',
4326,'GEOMETRY', 2);

SELECT AddGeometryColumn
('tower', 'tower_geom',
4326,'GEOMETRY', 2);

Menambah kolom spasial landuse

Menambah

Praktikum Basis Data Spasial/2012


Oleh: Romi Fadly

kolom

spasial

Halaman: 9
wilayah

SELECT AddGeometryColumn
('landuse', 'landuse_geom',
4326,'GEOMETRY', 2);

SELECT AddGeometryColumn
('wilayah', 'wilayah_geom',
4326,'GEOMETRY', 2);

Maka pada tabel Geometri_columns akan terisi definisi kolom spasial masingmasing tabel spasial (lihat gambar 2), dan pada tabel data spasial akan terdapat
kolom baru yaitu kolom geometri (lihat gambar 3).

Gambar 2. Hasil SQL penambahan kolom geometri tiap tabel data spasial

Gambar 3. Hasil penambahan kolom geometri pada tabel jalan


4. Menambahkan Obyek Spasial (titik, garis, dan luasan)
Pada saat menambahkan obyek spasial dengan tipe data yang berbeda akan
menggunakan perintah SQL yang berbeda. Adapun perintah SQL tersebut adalah
sebagai berikut.
- POINT untuk data yang bertipe titik
- LINESTRING untuk data yang bertipe garis
- POLYGON untuk data yang bertipe luasan
perintah SQL yang digunakan untuk membuat obyek spasial bertipe garis, titik
maupun luasan pada latihan ini adalah sebagai berikut.
Tabel 1. Perintah Query Menambahkan Obyek Spasial (Garis, Titik, Luasan)
Menambah obyek spasial jalan (Garis)
UPDATE jalan SET jalan_geom = GeomFromText ('LINESTRING (104.331502 -4.323071136,104.49099
-4.56882,104.571328 -4.859737649,104.8778977 -4.821953122,105.0313 -4.89645,105.21075 -4.87692)',
4326) Where id_jalan = 20;
UPDATE jalan SET jalan_geom = GeomFromText ('LINESTRING (105.0584293
-5.316019053,105.2216923 -4.974085781,105.21075 -4.87692,105.21123 -4.67038,105.26528
-4.47391,105.21998 -4.29567,105.2477023 -4.022700106,105.07797 -3.883972306)', 4326) Where
id_jalan = 21;
UPDATE jalan SET jalan_geom = GeomFromText ('LINESTRING (105.2216923
-4.974085781,105.2808047 -4.960644372,105.4055648 -5.009038393)', 4326) Where id_jalan = 22;

Menambah obyek spasial tower (poit)


UPDATE tower SET tower_geom = GeomFromText ('POINT (104.3990735761 -4.6872338519)', 4326) Where
id_tower = '10';
UPDATE tower SET tower_geom = GeomFromText ('POINT (104.6638642 -4.480742763)', 4326) Where
id_tower = '11';
UPDATE tower SET tower_geom = GeomFromText ('POINT (105.0643802186 -4.1192432129)', 4326) Where
id_tower = '12';

Praktikum Basis Data Spasial/2012


Oleh: Romi Fadly

Halaman: 10
UPDATE tower SET
id_tower = '13';
UPDATE tower SET
id_tower = '14';
UPDATE tower SET
id_tower = '15';
UPDATE tower SET
id_tower = '16';
UPDATE tower SET
id_tower = '17';
UPDATE tower SET
id_tower = '18';

tower_geom = GeomFromText ('POINT (105.4829489767 -3.9956710261)', 4326) Where


tower_geom = GeomFromText ('POINT (105.5149378 -4.338897163)', 4326) Where
tower_geom = GeomFromText ('POINT (105.0861773 -4.506532872)', 4326) Where
tower_geom = GeomFromText ('POINT (104.7122207 -4.964307306)', 4326) Where
tower_geom = GeomFromText ('POINT (105.0249258 -5.090034088)', 4326) Where
tower_geom = GeomFromText ('POINT (105.4665814 -4.754762671)', 4326) Where

Menambah obyek spasial landuse (luasan)


UPDATE landuse SET landuse_geom = GeomFromText ('POLYGON ((104.8467555 -4.439803809,104.9599949
-4.401525705,105.0221968 -4.581751777,104.8866285 -4.663092747,104.8674895 -4.629599407,104.8993879
-4.608865434,104.8467555 -4.439803809))', 4326) Where id_landuse = '10';
UPDATE landuse SET landuse_geom = GeomFromText ('POLYGON ((105.1302462 -4.108903823,105.2634701
-4.107365751,105.2594986 -4.228923872,105.2529041 -4.282998839,105.1104627 -4.282998839,105.1302462 -4.108903823))', 4326)
Where id_landuse = '11';
UPDATE landuse SET landuse_geom = GeomFromText ('POLYGON ((105.2634701 -4.107365751,105.4259002
-4.118354814,105.4177668 -4.174848904,105.3531406 -4.223648265,105.2594986 -4.228923872,105.2634701 -4.107365751))', 4326)
Where id_landuse = '12';
UPDATE landuse SET landuse_geom = GeomFromText ('POLYGON ((105.6399994 -4.099579811,105.7709428
-4.113846353,105.8182614 -4.30737743,105.8511138 -4.401260935,105.8225996 -4.41348301,105.7607233
-4.301293371,105.7296677 -4.311872006,105.65522 -4.264832974,105.6399994 -4.099579811))', 4326) Where id_landuse = '13';
UPDATE landuse SET landuse_geom = GeomFromText ('POLYGON ((105.5894969 -4.445081613,105.7182414
-4.470531108,105.6912948 -4.594784526,105.5595563 -4.567838001,105.5894969 -4.445081613))', 4326) Where id_landuse = '14';
UPDATE landuse SET landuse_geom = GeomFromText ('POLYGON ((104.8744135 -4.923694442,104.972968
-4.76396832,105.1292956 -4.869319592,105.0443349 -4.986565363,104.9984562 -4.949182653,104.9610735
-4.989963791,104.8744135 -4.923694442))', 4326) Where id_landuse = '15';
UPDATE landuse SET landuse_geom = GeomFromText ('POLYGON ((104.988952178 -4.084804642,105.065109771
-3.989607651,105.128574432 -4.053072311,105.077802703 -4.157789001, 104.988952178 -4.084804642))', 4326) Where id_landuse =
'16';
UPDATE landuse SET landuse_geom = GeomFromText ('POLYGON ((105.414165405 -3.938835922,105.541094726
-3.907103592,105.595039687 -4.027686447,105.414165405 -4.027686447, 105.414165405 -3.938835922))', 4326) Where id_landuse =
'17';
UPDATE landuse SET landuse_geom = GeomFromText ('POLYGON ((105.455417434 -4.294238022,105.604559386
-4.294238022,105.674370513 -4.335490051,105.595039687 -4.373568847,105.407818938 -4.341836517,105.401472472
-4.310104187, 105.455417434 -4.294238022))', 4326) Where id_landuse = '18';
UPDATE landuse SET landuse_geom = GeomFromText ('POLYGON ((105.426858337 -4.694065384,105.604559386
-4.65915982,105.601386153 -4.690892151,105.553787658 -4.792435608,105.439551269 -4.827341171, 105.426858337
-4.694065384))', 4326) Where id_landuse = '19';
UPDATE landuse SET landuse_geom = GeomFromText ('POLYGON ((105.055590072 -4.414820877,105.1063618
-4.402127945,105.112708267 -4.462419372,105.150787063 -4.475112305,105.122227966 -4.573482529,105.065109771 -4.573482529,
105.055590072 -4.414820877))', 4326) Where id_landuse = '20';
UPDATE landuse SET landuse_geom = GeomFromText ('POLYGON ((104.601817748 -4.437033508,104.725573837
-4.392608246,104.769999099 -4.398954712,104.779518798 -4.487805237,104.62403038 -4.532230499, 104.601817748
-4.437033508))', 4326) Where id_landuse = '21';
UPDATE landuse SET landuse_geom = GeomFromText ('POLYGON ((104.360652038 -4.621081024,104.455849029
-4.608388092,104.462195495 -4.760703277,104.370171737 -4.754356811, 104.360652038 -4.621081024))', 4326) Where id_landuse =
'22';
UPDATE landuse SET landuse_geom = GeomFromText ('POLYGON ((104.643069778 -4.871766434,104.827117294
-4.855900268,104.823944061 -4.979656357,104.671628875 -5.01456192,104.598644515 -4.960616958, 104.643069778
-4.871766434))', 4326) Where id_landuse = '23';
UPDATE landuse SET landuse_geom = GeomFromText ('POLYGON ((104.909621352 -5.052640716,105.144440597
-4.989176056,105.144440597 -5.005042221,105.109535033 -5.106585678,104.982605712 -5.144664474,104.931833984
-5.160530639, 104.909621352 -5.052640716))', 4326) Where id_landuse = '24';

Menambah obyek spasial wilayah (luasan)


UPDATE wilayah SET wilayah_geom = GeomFromText ('POLYGON ((104.3396454 -4.859068394,104.3251064

Praktikum Basis Data Spasial/2012


Oleh: Romi Fadly

Halaman: 11
-4.481018839,104.632164 -4.232487679,104.9161224 -4.19863224,104.9439333 -4.536999378,104.6239095
-4.817085939,104.5701723 -4.941024989,104.4887677495 -4.912084172,104.3396454 -4.859068394))', 4326) Where id_wilayah = '10';
UPDATE wilayah SET wilayah_geom = GeomFromText ('POLYGON ((104.9161224 -4.19863224,105.0345778
-4.142380253,105.1746483 -4.244659234,105.1485906 -4.580132868,105.1196707 -4.757351754,104.9994385
-4.669526361,104.9439333 -4.536999378,104.9161224 -4.19863224))', 4326) Where id_wilayah = '11';
UPDATE wilayah SET wilayah_geom = GeomFromText ('POLYGON ((105.0345778 -4.142380253,105.2013168
-3.892014027,105.3226547 -3.729402542,105.5425491 -3.882907124,105.7709428 -4.113846353,105.6766245
-4.186956582,105.3598872 -4.126701642,105.1746483 -4.244659234,105.0345778 -4.142380253))', 4326) Where id_wilayah = '12';
UPDATE wilayah SET wilayah_geom = GeomFromText ('POLYGON ((105.1746483 -4.244659234,105.3598872
-4.126701642,105.6766245 -4.186956582,105.7709428 -4.113846353,105.8182614 -4.30737743,105.8511138
-4.401260935,105.8971369 -4.522956692,105.7886707 -4.549995328,105.4810659 -4.488715322,105.2517585
-4.637867933,105.1196707 -4.757351754,105.1485906 -4.580132868,105.1746483 -4.244659234))', 4326) Where id_wilayah = '13';
UPDATE wilayah SET wilayah_geom = GeomFromText ('POLYGON ((105.1196707 -4.757351754,105.2517585
-4.637867933,105.4810659 -4.488715322,105.7886707 -4.549995328,105.7861222 -4.743673464,105.4086757
-4.934950248,105.2632408 -5.160358942,105.0133319 -5.214472635,104.8733401 -5.255804747,104.5778423
-5.069090409,104.7858149 -5.011509145,105.05194 -4.89781,105.1196707 -4.757351754))', 4326) Where id_wilayah = '14';
UPDATE wilayah SET wilayah_geom = GeomFromText ('POLYGON ((104.4887677495 -4.912084172,104.5701723
-4.941024989,104.6239095 -4.817085939,104.9439333 -4.536999378,104.9994385 -4.669526361,105.1196707
-4.757351754,105.05194 -4.89781,104.7858149 -5.011509145,104.5778423 -5.069090409,104.4599842 -4.999190225,104.4887677495
-4.912084172))', 4326) Where id_wilayah = '15';

Hasil dari penambahan isi kolom geometri berupa enskrip dari data koordinat
yang dimasukan, sehingga yang terlihat hanya kode-kode kombinasi hurup dan
angka, hasilnya dapat di lihat pada gambar 4.

Gambar 4. Tabel jalan sudah berisi kolom dan data spasialnya


Melakukan Query
Query yang dibuat terhadap basis data spasial bertujuan untuk memanggil
kembali (retrieval) data spasial dengan menggunakan bahasa SQL. Adapun queryquery yang dibuat diantaranya adalah sebagai berikut.
1. Menampilkan nilai dari kolom-kolom spasial
a. Nilai dari kolom spasial yang akan ditampilkan pada tabel Tower

Gambar 5. Menampilkan seluruh atribut tower


Praktikum Basis Data Spasial/2012
Oleh: Romi Fadly

Halaman: 12

b. Memilih kolom-kolom yang akan ditampilkan (id_tower, tower_geom)

Gambar 6. Hasil query 2


c. Berdasarkan gambar 5 dan 6, nilai kolom spasial yang ditampilkan pada
tower_geom adalah sama, tetapi nilai yang ditampilkan tidak sesuai
dengan nilai pada saat melakukan input data koordinat. Agar nilai dari
kolom spasial dapat ditampilkan seperti pada saat melakukan input data
koordinat, maka perintah SQL yang dilakukan adalah menggunakan
perintah AsText atau AsEWKT.

Gambar 7. Hasil query 3


Gambar 7 maksudnya adalah menampilkan koordinat agar sesuai dengan
koordinat pada saat melakukan input data. Perintah SQL yang digunakan
yaitu (AsText dan AsEWKT). Hasil yang ditunjukkan adalah berbeda, dimana
apabila perintah SQL yang digunakan AsText maka data yang ditampilkan
adalah tipe datanya saja (POINT), sedangkan apabila menggunakan perintah

Praktikum Basis Data Spasial/2012


Oleh: Romi Fadly

Halaman: 13
SQL AsEWKT maka data yang ditampilkan adalah dengan tipe datanya
beserta SRID dari data spasialnya.
d. Apabila nilai dari dari kolom spasial dijadikan sebagai suatu kondisi dalam
suatu query dengan menggunakan perintah SQL AsText ternyata tidak bisa
memunculkan informasi, agar informasi dapat muncul maka SRID perlu
dilibatkan. Penggunaan operator =, ~= dan && hasilnya sama.

SRID
dilibatkan
Gambar 8. Hasil Query 4 (kolom spasial sebagai kondisi)

LATIHAN #4 KONEKSI POSTGIS DENGAN SOFTWARE SIG(ArcView)

TUJUAN PRAKTIKUM
Praktikum ini bertujuan agar mahasiswa dapat melaksanakan koneksi basisdata spasial
yang telah dibuat dalam suatu SDBMS, dalam hal ini PostGIS dengan perangkat lunak SIG
ArcView, sekaligus memvisualkannya.
TAHAPAN
1. Melakukan instalasi Extensi Avpgcon (avpgcon-setup-1.13.1) yang merupakan
Extensi dari software ArcView.

Gambar 1. Instalasi avpgcon

Praktikum Basis Data Spasial/2012


Oleh: Romi Fadly

Halaman: 14
2. Setelah instalasi avpgcon selesai, selanjutnya mengaktifkan extensi avpgcon
tersebut di software ArcView dengan cara:
a. Buka Arcview 3.3 kemudian pilih menu File-Extensions maka akan muncul
jendela Extensions, kemudian aktifkan extensi AV PostGIS Connect dengan
cara check list ekstensi tersebut (lihat Gambar 2)

Gambar 2. Pengaktipan Ekstensi avpgcon


b. Maka ekstensi avpgcon telah diaktipkan, dan pada tampilan software ArcView
akan bertambah menu PostGIS-Connect

3. Melakukan koneksi PostGis dengan ArcView dengan cara:


a. Buka software ArcView dan siapkan lembar kerja View1, kemudial Klik menu
AV PostGIS-Connect-Klik AddPostGIS Theme, maka akan muncul jendela
AddPostGIS Theme (gambar 3).

Gambar 3. Menampilkan kotak dialog AddPostGIS Theme


b. Pada jendela AddPostGIS Theme isikan Theme apa saja yang akan di
tambahkan (penambahan Theme dilakukan berulang satu persatu),
pengisiannya dapat dilihat pada gambar 4. Setelah pengisian lengkap klik OK.

Praktikum Basis Data Spasial/2012


Oleh: Romi Fadly

Halaman: 15

Username di
Postgres
Password di
Postgres

Nama
database
Nama tabel
spasial

Kolom geometri

Gambar 4. Pengisian Theme yang akan


ditambahkan ke arcview
c. Hasil koneksi postgis dengan arcview untuk penambahan theme dapat dilihat
pada gambar 5.

Gambar 5. Hasil penambahan theme dengan cara koneksi


PostGIS dengan Arcview
4. Pengecekan sistem koordinat (termasuk jenis proyeksi) dari theme-theme yang
ditampilkan dari hasil penambahan dengan ektensi Avpgcon dengan cara : Klik
menu File ArcViewProjection Utility, maka akan muncul jendela ArcView
Projection Utility, dapat dilihat koordinat systemnya masih Unknown akan tetapi
karena sitem koordinat yang digunakan adalah geodetik (, ) ini sama dengan
system koordinat tampilan dari arcview maka koordinat peta yang diinsertkan
kedalam tampilan arcview akan langsung terbaca. Untuk melihat dan merubah
sistem koordinat dari petanya dapat dilihat dengan ekstensi ArcView Projection
Utility (seperti gambar 6).

Praktikum Basis Data Spasial/2012


Oleh: Romi Fadly

Halaman: 16

Gambar 6. Melihat sistem proyeksi yang digunakan


Agar sitem koordinat sesuai dengan yang kita definisikan
menggunakan ekstensi ArcView Projection Utility, caranya:

maka

dapat

Dari jendela ArcView Projection Utility klik Next Next Yes- pilih Sistem
koordinat yang diinginkan Next simpan dengan nama file baru (.shp), dan
ok/yes, maka file baru akan ditambahkan ke layer arcview.

Gambar 7. Proses merubah sistemkoordinat


5. Pengecekan dilakukan juga pada tabel atribut masing-masing theme, setelah
dicek isi tabel atribut dari theme-theme yang dibuka maka isi dari tabelnya tidak
ada yang berubah hanya kolom geometri yang tidak ditampilkan.

Gambar 8. Isi tabel theme di ArcView


6. Melakukan updating objek-objek spasial
Menambah objek spasial landuse dan atributnya. Setelah dilakukan penambahan
lalu disimpan, hasil updating tidak terjadi perubahan pada tabel postgres (gambar
9)

Praktikum Basis Data Spasial/2012


Oleh: Romi Fadly

Halaman: 17

Gambar 9. Penambahan objek spasial beserta atributnya di ArcView


7. Merubah nama kolom primary key (contoh id_jalan) menjadi oid, setelah dilakukan
perubahan kolom dengan perintah :
ALTER TABLE jalan RENAME id_jalan TO oid
Hasil yang didapat kolom id_jalan berubah menjadi kolom oid dengan isi sama
seperti kolom id_jalan semula (gambar 10)

Gambar 10. Hasil perubahan kolom id_jalan menjadi oid


8. Kemudian dilakukan kembali koneksi dengan ArcView dan dilakukan proses
updating kembali, hasil yang diperoleh masih tetap sama yaitu: hasil updating di
arcview tidak merubah isi tabel di postgres.
9. Penggunaan Identify for PostGIS DB Themes akan berdampak perubahan
pada tabel arcview (setelah di refresh PostGIS Theme) dan pada tabel spasial di
postgres (gambar 11).

Gambar 11. Hasil perubahan data atribut menggunakan


Identify for PostGIS DB Themes

Praktikum Basis Data Spasial/2012


Oleh: Romi Fadly

Halaman: 18
Agar fungsi Identify for PostGIS DB Themes dapat digunakan maka harus ada
kolom dengan nama oid, karena kalo tidak ada maka Identify for PostGIS DB
Themes tidak berfungsi dan jika digunakan akan muncul pesan error seperti
gambar 12.

Gambar 12. Pesan error penggunaan Identify for PostGIS DB Themes


10. Walaupun kolom primary key sudah diubah menjadi oid tetap saja updating data
spasial di Arcview tidak secara otomatis merubah isi tabel spasial di postgres.
11. Menu Upload Theme to PostGIS Table berfungsi untuk mengupload data
spasial beserta atributnya menjadi tabel data spasial baru di postgres yang telah
memiliki kolom geometri (gambar 12), sedangkan untuk updating tidak bisa
dilakukan dengan menu ini.

Gambar 13. Hasil upload dari arcview ke Postgres

Melakukan QUERY
1. Mencari kabupaten yang seluruh sisinya berbatasan dengan kabupaten lain
Proses yang dilakukan melalui beberapa tahapan, yaitu:
a. Membuat file baru hasil penggabungan seluruh objek wilayah sehingga
diperoleh objek baru dengan isi satu poligon hasil penggabungan objek-objek
kabupaten, Caranya: Klik Menu View GeoProcessing Wizard akan
muncul jenela GeoProcessing pilih Dissolve Next Pilih theme
wilayah dengan no sebagai kolom kondisi untuk penggabungan
Next Finish maka akan diperoleh Theme baru hasil dissolve seluruh
kabupaten (gambar 14)

Praktikum Basis Data Spasial/2012


Oleh: Romi Fadly

Halaman: 19

Gambar 14. Proses dissolve dan hasilnya


b. Setelah itu melakukan buffer theme hasil disslove, buffer hanya dilakukan
pada sisi luar dengan jarak misalkan 10000 (jarak bisa sembarang), lihat
gambar 15.

Gambar 15. Proses Buffring

Praktikum Basis Data Spasial/2012


Oleh: Romi Fadly

Halaman: 20
Gambar 16. Hasil buffer

c. Kemudian dilakukan seleksi objek-objek kabupaten yang menyentuh objek


hasil buffer dengan perintah Select By Theme, proses ini memilih objekobjek kabupaten yang sebagian sisinya bersinggungan dengan objek hasil
buffer, sehingga dapat diartikan objek kabupaten yang terpilih merupakan
objek yang tidak semua sisinya berbatasan langsung dengan kabupaten
laiinya (lihat gambar 17 dan 18)

Gambar 17. Menggunakan perintah Select By Theme

Klik

Praktikum Basis Data Spasial/2012


Oleh: Romi Fadly

Halaman: 21
Gambar 18. Hasil seleksi

d. Setelah terpilih maka hasil seleksi ini di balik dengan Switch Selection
sehingga objek yang tidak terpilih menjadi terpilih dan sebaliknya objek yang
tadinya terpilih menjadi tidak terpilih (lihat gambar 19)

Klik

Gambar 19. Hasil Switch Selection


2. Tampilkan nama Kabupaten yang berbatasan dengan kabupaten Mesuji.
Proses yang dilakukan dengan cara:
a. Memilih kabupaten Mesuji, hal ini dapat dilakukan dengan memanfaatkan
fasilitas query

Gambar 20. Memilih Objek kab.Tulang Bawang Barat


b. Setelah kabupaten Mesuji terpilih, selanjutnya menyimpan hasil seleksi
tersebut menjadi theme baru dengan nama mesuji. Proses ini dapat dilakukan
dengan perintah Convert to Shapefile

Gambar 21. Jendela convert to shapefile


Praktikum Basis Data Spasial/2012
Oleh: Romi Fadly

Halaman: 22
c. Mencari kabupaten yang berbatasan dengan kabupaten tersebut, hal ini dapat
dilakukan dengan perintah Select By Theme (kondisi intersect), sehingga
diperoleh hasil seperti gambar 22.

Gambar 22. Hasil select by theme


3. Tampilkan tower yang berjarak paling dekat dengan jalan-jalan yang terdapat
dalam basisdata tersebut? Tampilkan juga nama provider, pemilik sahamnya.
a. Tampilkan tabel Tower dan tabel Provider, kemudian lakukan penggabungan
tabel provider ke dalam tabel tower berdasarkan field yang sama yaitu
id_provider. Proses penggabungan ini menggunakan perintah joint (icon
)
Sehingga diperoleh tabel tower dengan tambahan isi dari tabel provider
(gambar 23dan 24)

Gambar 23. Tabel tower dan provider

Gambar 24. Tabel tower hasil proses joint


Praktikum Basis Data Spasial/2012
Oleh: Romi Fadly

Halaman: 23
b. Untuk menghitung jarak dari masing-masing tower ke
jalan terdekat dilakukan dengan memenfaatkan Edit Tools
3.1.
Klik Geoprocessing , maka akan muncul jendela ET
Geoprocessing , pada bagian bawah terdapat fasilitas
Point Distance yaitu untuk menghitung jarak dari satu
theme point ke theme lainnya. Caranya: Klik Point Distance pilih
Tower_point.shp pilih Jalan_arc.shp , maka pada tabel tower akan ada
kolom baru dengan nama ET_Dist yang merupakan hasil perhitungan jarak
tower ke jalan terdekat.

Gambar 25. Proses menghitung jarak tower ke jalan terdekat


c. Urutkan isi tabel tower tersebut berdasarkan kolom ET_Dist dari urutan
terkecil ke besar, maka akan diperoleh urutan paling atas adalah jarak
terpendek sehingga akan diketahui tower yang paling dekat dengan jalan
(id_tower, provider, dan pemilik sahamnya) lihat gambar 26.

Gambar 26. Hasil pencarian jarak tower ke jalan terdekat

Praktikum Basis Data Spasial/2012


Oleh: Romi Fadly

Anda mungkin juga menyukai