• Tidak ada hasil yang ditemukan

FINAL PROJECT PRAKTIKUM BASIS DATA SPASIAL

N/A
N/A
Protected

Academic year: 2021

Membagikan "FINAL PROJECT PRAKTIKUM BASIS DATA SPASIAL"

Copied!
20
0
0

Teks penuh

(1)

FINAL PROJECT PRAKTIKUM BASIS DATA SPASIAL

I. Tujuan

Final Project praktikum ini adalah menyelesaikan query spasial dalam bahasa SQL yang diterapkan pada beberapa studi kasus SIG.

II. Basis Data Spasial

Basis data spasial yang digunakan pada final project ini adalah basis data “Project2012” yang sudah terdapat dalam PostgreSQL Database Server (localhost) pada komputer masing-masing praktikan. Basisdata spasial ini masih dalam sistem koordinat lokal (srid=-1), yang meliputi:

a. Tabel caleg, berisi kolom spasial yang bertipe geometri POLYGON b. Tabel sungai, berisi kolom spasial yang bertipe geometri LINESTRING c. Tabel lahan, berisi kolom spasial yang bertipe geometri MULTIPOLYGON d. Tabel danau, berisi kolom spasial yang bertipe geometri POLYGON e. Tabel usaha, berisi kolom spasial yang bertipe geometri POINT f. Tabel calush, tidak berisi kolom spasial, berfungsi sebagai tabel

relationship antara tabel caleg dengan tabel usaha III. Petunjuk Praktikum

a. Semua luasan dalam basis data spasial tersebut diasumsikan dalam satuan km2, dan besaran panjang dalam satuan km (kilometer)

b. Untuk membantu dalam menjawab Query spasial yang diberikan, gunakan Quantum GIS untuk memvisualisasikan tampilan spasialnya c. Sebagian besar hasil query spasial pada studi kasus yang diberikan,

berupa suatu feature yang bertipe geometri tertentu. Oleh karena itu jawaban yang diberikan bukan hanya perintah SQL-nya saja tetapi juga tampilan dari geometri tersebut di canvas Quantum GIS

(2)

IV. Penyelesaian Studi Kasus 1. Kasus A

Di dalam wilayah seorang caleg bernama “James Sundah” terdapat beberapa lokasi kawasan pemukiman

Pertanyaan:

a. Tampilkan kawasan-kawasan “Pemukiman” yang berada pada wilayah caleg tersebut beserta luasnya

Penyelesaian:

• SQL dengan PostgreSQL

Select jenis, Astext((ST_Dump(geom1)).geom)as geometry, Area(Astext((ST_Dump(geom1)).geom)) as Luas_km2, nama_caleg

From (Select intersection(caleg_geom, lahan_geom) as geom1 From caleg, lahan

where intersects(caleg_geom, lahan_geom)and nama_caleg = 'James Sundah'and

jenis = 'Pemukiman')as mukim_james, lahan, caleg Where jenis='Pemukiman' and nama_caleg='James Sundah';

(3)

Gambar 2. Tampilan di QuantumGIS perintah SQL pertanyaan 1a

b. Jika diasumsikan kepadatan penduduk pada basis data spasial ini adalah 13253.4 jiwa/km2 dan penyebaran penduduknya merata, berapakah jumlah penduduk yang tinggal disetiap kawasan “Pemukiman” tersebut ?

Penyelesaian:

• SQL dengan PostgreSQL

Select nama_caleg, jenis, Astext((ST_Dump(geom1)).geom)as geometry, Area(Astext((ST_Dump(geom1)).geom)) As Luas_km2,

round((Area(Astext((ST_Dump(geom1)).geom)))* 13253.4) asjmlpenduduk_orang From (Select intersection(caleg_geom, lahan_geom) as geom1

From caleg,lahan

where intersects(caleg_geom, lahan_geom)and caleg.nama_caleg = 'James Sundah'and

lahan.jenis = 'Pemukiman')as mukim_james, lahan, caleg

Where jenis='Pemukiman' and

(4)

Gambar 3. Hasil perintah SQL pertanyaan 1b

c. Tampilkan kawasan-kawasan “Pemukiman” yang secara keseluruhan berada di dalam wilayah caleg tersebut, beserta luasnya

Penyelesaian:

• SQL dengan PostgreSQL

Select jenis, within(pemukiman_geom, caleg_geom), astext(pemukiman_geom) as pemukiman_geom From caleg,

(Select ((st_dump(lahan_geom)).geom) as pemukiman_geom From lahan Where jenis='Pemukiman') as Pemukiman, lahan Where nama_caleg ='James Sundah' and jenis='Pemukiman'and within(pemukiman_geom, caleg_geom)= 't';

(5)

Gambar 5. Tampilan di QuantumGIS perintah SQL pertanyaan 1c

d. Tampilkan kawasan-kawasan “Pemukiman” yang tidak secara keseluruhan berada pada wilayah caleg tersebut, beserta luasnya

Penyelesaian:

• SQL dengan PostgreSQL

SELECT astext(mukimall_geom) as pemukiman, Area(mukimall_geom) as luas_km2 FROM (Select (ST_Dump(geom1)).geom as mukimall_geom

From (Select intersection(caleg_geom, lahan_geom) as geom1 From caleg, lahan

where intersects(caleg_geom, lahan_geom) and nama_caleg = 'James Sundah' and

jenis = 'Pemukiman')as mukim_james, lahan, caleg

Where jenis='Pemukiman' and nama_caleg='James Sundah') as pemukiman_all, (Select pemukiman_geom as mukimfull_geom

From caleg,(Select ((st_dump(lahan_geom)).geom)as pemukiman_geom From lahan

Where jenis='Pemukiman')as Pemukiman, lahan Where nama_caleg ='James Sundah' and

jenis='Pemukiman' and

within(pemukiman_geom, caleg_geom)= 't') as pemukiman_full WHERE not equals(mukimall_geom, mukimfull_geom)= 't' ;

(6)

Gambar 6. Hasil perintah SQL pertanyaan 1d

Gambar 7. Tampilan di QuantumGIS perintah SQL pertanyaan 1d

2. Kasus B

Sungai “Code” sebagai salah satu sungai yang terdapat dalam basis data spasial ini mengalir melewati beberapa daerah pemilihan caleg dan juga melewati beberapa kawasan “Pemukiman”. Pada suatu ketika, sungai “Code” tersebut banjir dan airnya meluap selebar 5 km.

Pertanyaan:

Sebagai ahli SIG dan Basis data Saudara diminta untuk mengidentifikasi dan menampilkan:

a. Kawasan “Pemukiman” yang terkena dampak meluapnya sungai “Code” tersebut, terletak pada daerah penguasaan caleg siapa saja, dan berapa luas kawasan “Pemukiman” yang tergenang pada masing-masing caleg tersebut.

(7)

Penyelesaian:

• SQL dengan PostgreSQL

SELECT astext(intersection(caleg_geom,(select intersection(lahan_geom, (Select buffer(sungai_geom, 5)as sungai_buffer_5m

from sungai where nama_sungai ='Code'))as sungai_lahan from lahan where jenis ='Pemukiman'))) as Pemukiman, area(intersection(caleg_geom,(select intersection(lahan_geom, (Select buffer(sungai_geom, 5)as sungai_buffer_5m

from sungai where nama_sungai ='Code'))as sungai_lahan from lahan where jenis ='Pemukiman')))as luas_m2,

nama_caleg as daerah_caleg FROM caleg

WHERE intersects(caleg_geom,(select intersection(lahan_geom, (Select buffer(sungai_geom, 5)as sungai_buffer_5m

from sungai where nama_sungai ='Code'))as sungai_lahan from lahan where jenis ='Pemukiman'));

Gambar 8. Hasil perintah SQL pertanyaan 2a

(8)

b. Kawasan “Pemukiman yang tidak terkena dampak meluapnya sungai “Code” tersebut (pemukiman yang aman), terletak pada daerah penguasaan caleg siapa saja, dan berapa luas kawasan “Pemukiman” yang aman pada masing-masing caleg tersebut.

Penyelesaian:

• SQL dengan PostgreSQL SELECT nama_caleg as daerah_caleg,

Astext(intersection(caleg_geom,(Select difference(lahan_geom,

(select intersection(lahan_geom, (Select buffer(sungai_geom, 5)assungai_buffer_5m from sungai where nama_sungai ='Code')) from lahan where jenis='Pemukiman')) from lahan Where jenis='Pemukiman'))) as Pemukiman_aman,

Area(intersection(caleg_geom,(Select difference(lahan_geom,(select intersection

(lahan_geom, (Select buffer(sungai_geom, 5)as sungai_buffer_5m from sungai where nama_sungai ='Code')) from lahan where jenis='Pemukiman')) from lahan

Where jenis='Pemukiman')))as Luas_km2 FROM caleg, lahan

WHERE intersects(caleg_geom,(Select difference(lahan_geom,(select intersection(lahan_geom, (Select buffer(sungai_geom, 5)as sungai_buffer_5m from sungai

where nama_sungai ='Code')) from lahan where jenis='Pemukiman')) from lahan Where jenis='Pemukiman'))and jenis='Pemukiman';

Gambar 10. Hasil perintah SQL pertanyaan 2b

(9)

3. Kasus C

Ada wilayah seorang caleg yang didalamnya terdapat jenis usaha “Mall”. Adanya Mall tersebut telah menyebabkan banyak orang ingin mendirikan pemukiman di sekitarnya. Sebagai caleg yang wilayahnya terdapat Mall, caleg tersebut membuat ketentuan tentang pembentukan zona wilayah pemukiman baru di daerahnya dengan kriteria sebagai berikut:

a. Kawasan pemukiman baru yang akan dibuat tidak boleh berada pada kawasan “Perdagangan”, dan

b. Berada pada jarak 4 km dari Mall Pertanyaan:

Sebagai ahli SIG dan basisdata spasial, saudara diminta bantuan caleg tersebut untuk menentukan lokasi pemukiman baru di wilayah caleg yang terdapat Mall tersebut, dan berapa luasnya.

Penyelesaian:

• SQL dengan PostgreSQL SELECT nama_caleg as daerah_caleg,

Astext((ST_Dump((select difference(intersection(caleg_geom,buffer(usaha_geom, 4)), lahan_geom)as lokasi_geom from caleg, lahan, usaha

where within(usaha_geom,caleg_geom) and overlaps(caleg_geom,lahan_geom) and

jenis_usaha = 'Mall' and jenis='Perdagangan'))).geom) as Lokasi_PemukimanBaru, Area((ST_Dump((select difference(intersection(caleg_geom,buffer(usaha_geom, 4)), lahan_geom)as lokasi_geom from caleg, lahan, usaha

where within(usaha_geom,caleg_geom) and overlaps(caleg_geom,lahan_geom) and

jenis_usaha = 'Mall' and jenis='Perdagangan'))).geom)as luas FROM caleg, usaha, lahan

WHERE within(usaha_geom,caleg_geom) and overlaps(caleg_geom,lahan_geom) and jenis_usaha = 'Mall' and jenis='Perdagangan';

(10)

Gambar 13. Tampilan di QuantumGIS perintah SQL pertanyaan 3

4. Kasus D

Jika sungai “Code” banjir dan airnya meluap selebar 2 km, dan sungai “Winongo” juga banjir dengan luapan 3 km.

Pertanyaan:

Sebagai ahli SIG dan basisdata spasial, Saudara diminta untuk mengidentifikasi dan menampilkan:

a. Daerah yang terletak pada pertampalan luapan 2 buah sungai tersebut (sebagai daerah sangat rawan banjir)

i. Berapa luas dari daerah tersebut?

ii. Identifikasi apakah ada kawasan “Pemukiman” yang secara keseluruhan terletak pada daerah tersebut, berapa luasnya dan kawasan

“Pemukiman” tersebut terletak pada daerah penguasaan caleg siapa ? Penyelesaian:

a(i). SQL dengan PostgreSQL

selectdistinct(astext(intersection((select buffer(sungai_geom, 2)

from sungai where nama_sungai='Code'),(select buffer(sungai_geom,3) from sungai where nama_sungai='Winongo'))))as Daerah_Rawan_Banjir, area(intersection((select buffer(sungai_geom, 2)

from sungai where nama_sungai='Code'),(select buffer(sungai_geom, 3) from sungai where nama_sungai='Winongo')))as Luas_km2

(11)

Gambar 14. Hasil perintah SQL pertanyaan 4ai

Gambar 15. Tampilan di QuantumGIS perintah SQL pertanyaan 4ai

Penyelesaian:

a(ii). SQL dengan PostgreSQL

SELECT jenis, within(pemukiman_geom,RawanBanjir_geom), astext(pemukiman_geom)as Pemukiman_TerkenaDampak, area(pemukiman_geom)as luas_km2

FROM (select intersection((select buffer(sungai_geom, 2)

from sungai where nama_sungai='Code'),(select buffer(sungai_geom, 3) from

sungai where nama_sungai='Winongo'))as RawanBanjir_geom from sungai Where nama_sungai='Code') as RawanBanjir,

(select ((st_dump(lahan_geom)).geom) as pemukiman_geom from lahan where jenis='Pemukiman') as Pemukiman,

lahan

(12)

Gambar 16. Hasil perintah SQL pertanyaan 4aii

Gambar 17. Tampilan di QuantumGIS perintah SQL pertanyaan 4aii

b. Carilah daerah diluar pertemuan luapan 2 buah sungai tersebut, tetapi masih merupakan daerah luapan masing-masing sungai (daerah kurang rawan). Ada berapa kawasan “Perdagangan” yang terletak pada daerah tersebut ? Penyelesaian:

(b).

- SQL dengan PostgreSQL (area kurang rawan)

Select Astext(difference((select st_union((select buffer(sungai_geom, 2) from sungai where nama_sungai='Code'),(select buffer(sungai_geom,3) from sungai

where nama_sungai='Winongo'))),(select intersection((select buffer(sungai_geom, 2) from sungai where nama_sungai='Code'),(select buffer(sungai_geom, 3)

from sungai where nama_sungai='Winongo')))))as Kurang_Rawan, Area(difference((select st_union((select buffer(sungai_geom, 2) from sungai where nama_sungai='Code'),(select buffer(sungai_geom, 3) from sungai

where nama_sungai='Winongo'))),(select intersection((select buffer(sungai_geom, 2)

from sungai where nama_sungai='Code'),(select buffer(sungai_geom, 3)

(13)

Gambar 18. Hasil perintah SQL pertanyaan 4b (daerah kurang rawan)

Gambar 18. Tampilan di QuantumGIS perintah SQL pertanyaan 4b (daerah kurang rawan)

- SQL dengan PostgreSQL (kawasan “Perdagangan” pada area kurang rawan)

SELECT count (lokasi) as jml_lokasi_perdagangan_kurang_rawan

FROM (select astext((st_dump(astext(intersection(kurangrawan_geom, perdagangan_geom)))).geom)as kurangRawan_geom

from (Select Astext(difference((select st_union((select buffer(sungai_geom,2)

from sungai where nama_sungai='Code'),(select buffer(sungai_geom,3)

from sungai where nama_sungai='Winongo'))),(select intersection((select buffer(sungai_geom,2) from sungai where nama_sungai='Code'),

(select buffer(sungai_geom,3)from sungai where nama_sungai='Winongo'))))) as Kurangrawan_geom)as kurang_rawan,

(select lahan_geom as perdagangan_geom from lahan where jenis='Perdagangan')as perdagangan)as lokasi;

(14)

Gambar 19. Hasil perintah SQL pertanyaan 4b (jumlah daerah perdagangan yang kurang rawan)

Untuk melihat daerah perdagangan yang masuk dalam area kurang rawan dapat menggunakan SQL berikut:

SELECT KurangRawan_geom as Perdagangan_KurangRawan

FROM (select astext((st_dump(astext(intersection(kurangrawan_geom, perdagangan_geom)))).geom)as kurangRawan_geom

from (Select Astext(difference((select st_union((select buffer(sungai_geom,2) from sungai where nama_sungai='Code'),(select buffer(sungai_geom,3) from sungai where nama_sungai='Winongo'))),(select intersection((select buffer(sungai_geom,2) from sungai where nama_sungai='Code'),

(select buffer(sungai_geom,3)from sungai where nama_sungai='Winongo'))))) as Kurangrawan_geom)as kurang_rawan,

(select lahan_geom as perdagangan_geom from lahan where jenis ='Perdagangan') as perdagangan)as lokasi

Gambar 20. Hasil perintah SQL pertanyaan 4b (daerah perdagangan yang kurang rawan) Ada 3daerah perdagangan

(15)

Gambar 21. Tampilan di QuantumGIS perintah SQL pertanyaan 4b (daerah perdagangan yang kurang rawan)

5. Kasus E

Telah disebutkan diatas bahwa basis data spasial yang digunakan pada final project ini masih dalam sistem koordinat lokal (Srid = -1).

Pertanyaan:

Sebagai ahli SIG dan basisdata spasial yang juga menguasai ilmu proyeksi peta, Saudara diminta:

a. Rubahlah sistem koordinat dari tabel spasial caleg menjadi sistem koordinat lintang bujur (lat-lon) yang bereferensi pada datum WGS’84 (srid = 4326). Penyelesaian:

• SQL dengan PostgreSQL

Pada saat membuat tabel caleg nilai dimensi=2 dan srid=-1 telah dilakukan, sehingga nilai srid=-1 sudah ada dalam tabel spasial caleg, berikut SQL membuat tabel caleg dengan srid=-1

CREATE TABLE caleg (

no_ktp integer NOT NULL,

nama_caleg character varying(25), umur integer,

gender character(1), caleg_geom geometry,

CONSTRAINT pk_caleg PRIMARY KEY (no_ktp),

CONSTRAINT enforce_dims_Caleg_geom CHECK (ndims(caleg_geom) = 2), CONSTRAINT enforce_srid_Caleg_geom CHECK (srid(caleg_geom) = -1) )

WITH (OIDS=FALSE);

(16)

Untuk merubah srid caleg menjadi 4326 perintah SQL dengan PostgreSQL adalah:

SELECT UpdateGeometrySRID(’caleg’,’caleg_geom’, 4326);

Gambar 22. Hasil perintah SQL pertanyaan 5a (merubah SRID)

Maka pada record caleg pada tabel geometry_column yaitu pada kolom srid akan berubah menjadi 4326, begitu juga pada tabel caleg CONSTRAINT srid nya akan berubah menjadi 4326

(17)

b. Setelah tabel spasial caleg memiliki srid = 4326 , tampilkan wilayah penguasaan caleg yang bernama “Suhartini, SE” dalam sistem koordinat UTM (datum WGS’84), berdasarkan nomer zone dimana sebagian besar wilaya caleg tersebut berada. Berubah tidak luas wilayah caleg tersebut setelah ditampilkan dalam sistem koordinat UTM ?

Melihat koordinat lat-lon caleg Suhartini, SE:

Gambar 24. Melihat koordinat lat-lon caleg Suhartini, SE Dari gambar 24 dapat dilihat nilai koordinat caleg yang bernama

“Suhartini, SE” yaitu (0 0, 10 0, 10 10, 0 10, 0 0) dengan srid=4326, kalo kita menganggap nilai bujur nya adalah bujur timur (BT) maka dapat diketahui pada sistem koordinat UTM koordinat tersebut sebagian besar berada pada zone 31(0o – 6o) dan sebagian kecil berada pada zone 32 (6o – 12o), karena

sebagian besar wilayah berada pada Zone 31 maka semua wilayah akan ditranformasi ke dalam koordinat UTM zone 31 dengan datum WGS’84.

Penyelesaian:

• SQL dengan PostgreSQL

SELECT nama_caleg,ST_AsEWKT(ST_Transform(suhartini_geom, 32631)),

Area(ST_AsEWKT(ST_Transform(suhartini_geom, 32631)))/1000000as luas_km2 FROM (select AsEWKT(caleg_geom) as suhartini_geom from caleg where

nama_caleg='Suhartini, SE')as suhartini, caleg

WHERE nama_caleg='Suhartini, SE';

Koordinat hasil tranformasi tersebut adalah :

"SRID=32631;POLYGON((166021.443096078 0,1280882.93698276 0,1268980.13080329 1113599.92954483,171071.26395235 1106908.85424251,166021.443096078 0))" Luas = 1228380.46909075 km2

(18)

Gambar 25. Hasil dari tranformasi koordinat lat-lon menjadi UTM Zone 31 (bujur timur) dengan datum yang sama (wgs’84)

Gambar 26. Tampilan daerah caleg Suhartini, SE pada QuantumGIS dengan sistem proyeksi UTM Zone 31

Gambar 27. Meta data daerah caleg Suhartini, SE

Setelah dilakukan tranformasi koordinat dari koordinat Lat-Lon menjadi koordinat UTM Zone 31 (wilayah timur) luas daerah caleg Suhartini, SE menjadi berubah dari 100 km2 (srid=4326) menjadi 1228380.46909075 km2 (srid=32631)

(19)

DAFTAR PUSTAKA

Obe, R.O., Hsu, L. S. , 2011, PostGIS in Action, by Manning Publications Co., Stamford

PostGIS 2.0.2 Manual, SVN Revision (10793) di download pada situs:

http://download.osgeo.org/postgis/source/postgis-2.0.2.tar.gz, tanggal

akses 7 Desember 2012

PostgreSQL 8.2.22 Documentation di download pada situs:

http://www.postgresql.org/files/documentation/pdf/8.2/postgresql-8.2-A4.pdf, tanggal akses 7 Desember 2012

(20)

TUGAS PRAKTIKUM

BASIS DATA SPASIAL

Dosen : Ir. Rochmad Muryamto, M.Eng.Sc.     

 

 

 

  (Final Project Basis Data Spasial)   

 

 

oleh :

ROMI FADLY (11/326527/PTK/07933)              

 

Magister Teknik Geomatika Angkatan XIII

Pascasarjana Universitas Gadjah Mada

Yogyakarta

2012

Gambar

Gambar 1. Hasil perintah SQL pertanyaan 1a
Gambar 2. Tampilan di QuantumGIS perintah SQL pertanyaan 1a
Gambar 4. Hasil perintah SQL pertanyaan 1c
Gambar 5. Tampilan di QuantumGIS perintah SQL pertanyaan 1c
+7

Referensi

Dokumen terkait

Kesimpulan dari penelitian ini adalah dengan menggunakan sistem yang ditunjang dengan basis data spasial dan metode shortest path pada aplikasinya dapat menghemat waktu dan