Anda di halaman 1dari 105

MODUL

1 BASIS DATA SPASIAL


MODUL 1

BASIS DATA SPASIAL


KEMENRISTEK


MODUL 1 BASIS DATA SPASIAL

KATA PENGANTAR

Modul ini dibuat dalam rangka Pelatihan Open Sources Software Geodatabase, Web Servis,
danGIS (Model Spasial Open Platform) yang dilaksanakan oleh Kementrian RISET dan
Teknologi(MENRISTEK) yang bertujuan untuk melatih daerah untuk menggunakan perangkat
open sources untuk menyimpan dan mengelola data spasialnya dalam rangka mendukung
pembangunan khususya program MP3EI.
PostgreSQL/PostGISadalah Sistem Manajemen Basis Data Spasial (SMBDS atau SDBMS) yang
merupakan merupakan salah satu perangkat lunak open source. Perangkat lunak DBMS ini
menawarkan skalabilitas, keluwesan, dan kinerja yang tinggi khususnya dalam manajemen
basis data spasial. PostgreSQL/PostGIS ini mendukung mendukung bahasa SQL secara luas
yang utamanya berfungsi dalam suatu basis data relasional.
Dalam panduan ini, akan dibahas mengenai konsep dasar basis data spasial dari definisi
hingga perancangan basis data relasional dan juga pengimplementasian hasil rancangan
basis data ke dalam SDBMS PostgreSQL/PostGIS.
Kami mengucapkan terima kasih kepada berbagai pihak yang telah membantu dalam
penyusunan modul ini dan semoga modul ini dapat memberi manfaat bagi pengguna.


Bandung, 9 April 2013

Penyusun


MODUL 1 BASIS DATA SPASIAL

DAFTAR ISI

KATA PENGANTAR .................................................................................................................................. i


DAFTAR ISI ............................................................................................................................................. ii
MATERI 1 - BASIS DATA .......................................................................................................................... 1
1.1 Teori Dasar Basis Data ................................................................................................................. 1
1.1.1 Database Management System (DBMS) .............................................................................. 3
1.1.2 Normalisasi .......................................................................................................................... 5
1.1.3 Pemodelan Entity Relationship (ER-MODEL) ....................................................................... 9
1.1.4 Perancangan Basis Data ..................................................................................................... 15
1.2 Studi Kasus MP3EI ..................................................................................................................... 21
1.3 Latihan Basis Data ...................................................................................................................... 31
1.3.1 Melakukan Normalisasi Tabel ............................................................................................ 31
1.3.2 Membuat Model Entity Relationship (ER-Model) .............................................................. 32
1.4

Studi Kasus MP3EI : Merancang Basis Data ....................................................................... 33

MATERI 2 - PostgreSQL ........................................................................................................................ 42


2.1 Pengantar PostgreSQL ............................................................................................................... 42
2.1.1 Pengenalan PostgreSQL ..................................................................................................... 42
2.1.2 Instalasi PostgreSQL ........................................................................................................... 45
2.1.3 Pengenalan PgAdmin pada PostgreSQL ............................................................................. 48
2.1.4 SQL (Structured Query Language) ...................................................................................... 52
2.1.5 Model Data Relasional ....................................................................................................... 53
2.2 Bahasa SQL ................................................................................................................................ 53
2.2.1 Tipe Data dalam SQL .......................................................................................................... 55
2.2.2 Implementasi DDL pada PostgreSQL .................................................................................. 57
Create ....................................................................................................................................... 57
Create Database ................................................................................................................... 57
Create Index ......................................................................................................................... 59
Create View .......................................................................................................................... 59
Drop ......................................................................................................................................... 60
Drop Table ............................................................................................................................ 60
Drop Index ........................................................................................................................... 60
Drop View ............................................................................................................................ 61
Alter ......................................................................................................................................... 61
ii


MODUL 1 BASIS DATA SPASIAL
2.2.3 Implementasi DML pada PostgreSQL ................................................................................. 61
Select ....................................................................................................................................... 61
Simple Select ........................................................................................................................ 61
Joins ..................................................................................................................................... 62
Aggregate Operators ............................................................................................................ 63
Aggregation by Groups ........................................................................................................ 63
Union, Intersect, Except ....................................................................................................... 64
Insert into ................................................................................................................................. 65
Update ..................................................................................................................................... 66
Delete ....................................................................................................................................... 67
2.3 Latihan Implementasi Bahasa SQL pada Model Data Relasional ............................................... 67
2.3.1 Mengimplementasikan Model Data ER pada PostgreSQL ................................................. 67
2.3.2 Menambahkan Data ke Model .......................................................................................... 74
2.3.3 Query ................................................................................................................................. 76
MATERI 3 - PostGIS .............................................................................................................................. 77
3.1 Pengantar PostGIS ..................................................................................................................... 77
3.1.1. Pengenalan PostGIS ........................................................................................................... 77
3.1.2 Instalasi PostGIS ................................................................................................................. 79
3.2 Manajemen Data Spasial di PostGIS .......................................................................................... 82
3.2.1 Membuat Geodatabase ..................................................................................................... 82
Menggunakan createlang plpgsql ............................................................................................ 82
Menggunakan Template PostGIS ............................................................................................. 84
3.2.2 Pengelolaan Data Vektor ................................................................................................... 85
Objek Geometry, OGC Simple Feature for SQL ........................................................................ 85
Tipe Data Geography ............................................................................................................... 86
Membuat Table Spatial ............................................................................................................ 86
Memuat Data Vektor (Loading Spatial Data) ........................................................................... 88
Menggunakan SQL ............................................................................................................... 88
Menggunakan Loader .......................................................................................................... 89
Menampilkan Data Vektor (Retrieving Spatial Data) ............................................................... 89
Menggunakan SQL ............................................................................................................... 89
Menggunakan Dumper ........................................................................................................ 90
Membuat Indeks Data Vektor (Building Indexes) .................................................................... 91
Spatial Query (Spatial SQL) ...................................................................................................... 91
iii


MODUL 1 BASIS DATA SPASIAL
3.3 Aplikasi Desktop GIS (QuantumGIS) .......................................................................................... 93
3.4 Latihan Implementasi PostGIS pada Basis Data Spasial ............................................................. 95
3.4.1 Penyusunan Tabel Spasial .................................................................................................. 95
3.4.2 Preview Data Spasial dari Basis data Spasial ...................................................................... 97

iv

MODUL 1 BASIS DATA SPASIAL


MATERI 1 - BASIS DATA



1.1 Teori Dasar Basis Data
Menurut wikipedia Indonesia Basis data (database) adalah kumpulan informasi yang
disimpan di dalam komputer secara sistematik sehingga dapat diperiksa menggunakan
suatu program komputer untuk memperoleh informasi dari basis data tersebut.
Perangkat lunak atau software yang digunakan untuk mengelola dan memanggil query
basis data disebut sistem manajemen basis data (database management system,
DBMS).
Beberapa Definisi tentang basis data (database) :
1) Menurut Gordon C. Everest : Basis data adalah koleksi atau kumpulan data yang
mekanis, terbagi / shared, terdefinisi secara formal dan dikontrol terpusat pada
organisasi.
2) Menurut Toni Fabbri :Basis data adalah sebuah sistem file-file yang terintegrasi yang
mempunyai minimal primary key untuk pengulangan data.
3) Menurut S. Attre :Basis data adalah koleksi data-data yang saling berhubungan
mengenai suatu organisasi / enterprise dengan macam-macam pemakaiannya.

Komponen penyusun utama dari sebuah basis data terdiri dari :
Hardware
Biasanya berupa perangkat komputer standar, media penyimpan sekunder, dan
media komunikasi untuk sistem jaringan.
Operating System
Merupakan perangkat lunak yang memfungsikan, mengendalikan seluruh sumber
daya dan melakukan operasi dasar dalam sistem komputer. Harus sesuai dengan
DBMS yang digunakan.
Database
Yakni basis data yang mewakili sistem tertentu untuk dikelola. Sebuah sistem basis
data bias terdiri dari lebih dari satu basis data.
DBMS (Database Management System)
Perangkat lunak yang digunakan untuk mengelola basis data. Contoh kelas
sederhana: dBase, Foxbase, Rbase, MS. Access, MS. Foxpro, Borland Paradox. Contoh
kelas kompleks: Borland-Interbase, MS. SQL Server, Oracle, Informix, Sybase.
User (pengguna sistem basis data)
Orang-orang yang berinteraksi dengan sistem basis data, mulai dari yang merancang
sampai yang menggunakan di tingkat akhir.
Optional Software
Perangkat lunak pelengkap yang mendukung. Bersifat opsional.

1


MODUL 1 BASIS DATA SPASIAL

Abstraksi data pada sebuah basis data merupakan level dalam bagaimana melihat data
dalam sebuah sistem basis data. Biasanya pengguna hanya tau bagaimana data itu
terlihat tanpa tahu bagaimana data tersebut disimpan dan dipelihara. Abstraksi data
pada basis data terdiri dari 3 level yaitu level eksternal, level konseptual, dan level
internal.


Penjelasan dari gambar diatas adalah :
Physical view merupakan bentuk implementasi dari conceptual view, yaitu
pandangan tentang bagaimana data disimpan dalam media penyimpanan data. Yang
merupakan level terendah untuk merepresentasikan basis data. Record disimpan
dalam media penyimpanan seperti hardisk dalam format byte.
Conceptual view merupakan pandangan yang berkaitan dengan permasalahan data-
data apa saja yang diperlukan untuk disimpan dalam basis data dan penjelasan
mengenai hubungan antar data yang satu dengan lainnya. Keberadaannya tidak
perlu memperhitungkan kekurangan perangkat keras maupun perangkat lunak
pembangun aplikasi basis data.
User view dalah level basis data yang berhubungan dengan representasi data dari
sisi setiap pengguna dan merupakan level pengguna/programmer atau pandangan
tentang bagaimana data ditampilkan.
Manfaat dari pembentukan basis data ini sendiri adalah sebagai berikut:
Sebagai komponen utama atau penting dalam sistem informasi, karena merupakan
dasar dalam menyediakan informasi.
Menentukan kualitas informasi yaitu cepat, akurat, dan relevan, sehingga infromasi
yang disajikan tidak basi. Informasi dapat dikatakan bernilai bila manfaatnya lebih
efektif dibandingkan dengan biaya mendapatkanya.
Mengatasi kerangkapan data (redundancy data).
Menghindari terjadinya inkonsistensi data.
Mengatasi kesulitan dalam mengakses data.
Menyusun format yang standar dari sebuah data.
2


MODUL 1 BASIS DATA SPASIAL

Penggunaan oleh banyak pemakai (multiple user). Sebuah basis data bisa
dimanfaatkan sekaligus secara bersama oleh banyak pengguna (multiuser).
Melakukan perlindungan dan pengamanan data. Setiap data hanya bisa diakses atau
dimanipulasi oleh pihak yang diberi otoritas dengan memberikan login dan password
terhadap masing-masing data.
Agar pemakai mampu menyusun suatu pandangan (view) abstraksi dari data. Hal ini
bertujuan menyederhanakan interaksi antara pengguna dengan sistemnya dan basis
data dapat mempresentasikan pandangan yang berbeda kepada para pengguna,
programmer dan administratornya.
1.1.1 Database Management System (DBMS)
Menurut Wikipedia DBMS adalah suatu sistem atau perangkat lunak yang dirancang
untuk mengelola suatu basis data dan menjalankan operasi terhadap data yang
diminta banyak pengguna. DBMS merupakan perangkat lunak yang dirancang untuk
dapat melakukan utilisasi dan mengelola koleksi data dalam jumah yang besar.
DBMS juga dirancang untuk dapat melakukan masnipulasi data secara lebih mudah.
Beberapa pengertian DBMS menurut para ahli adalah :
1) Menutut C.J. Date : DBMS adalah merupakan software yang menghandel
seluruh akses pada basis data untuk melayani kebutuhan user.
2) Menurut S, Attre : DBMS adalah software, hardware, firmware dan prosedur-
prosedur yang memanage basis data. Firmware adalah software yang telah
menjadi modul yang tertanam pada hardware (ROM).
3) Menurut Gordon C. Everest : DBMS adalah manajemen yang efektif untuk
mengorganisasi sumber daya data.
DBMS juga memiliki beberapa fungsi, diantaranya adalah :
Data Definition: DBMS harus dapat mengolah pendefinisian data.
Data Manipulation: DBMS harus dapat menangani permintaan-permintaan dari
pemakai untuk mengakses data.
Data Security & Integrity: DBMS harus dapat memeriksa security dan integrity
data yang didefinisikan oleh DBA.
Data Recovery & Concurency
DBMS harus dapat menangani kegagalan-kegagalan pengaksesan basis data
yang dapat disebabkan oleh kesalahan sistem, kerusakan disk, dsb.
DBMS harus dapat mengontrol pengaksesan data yang konkuren yaitu bila
satu data diakses secara bersama-sama oleh lebih dari satu pemakai pada
saat yang bersamaan.
Data Dictionary: DBMS harus menyediakan data dictionary.
Performance: DBMS harus menangani unjuk kerja dari semua fungsi seefisien
mungkin.


MODUL 1 BASIS DATA SPASIAL

DBMS merupakan perantara bagi pemakai dengan basis data. Untuk merinteraksi
dengan DBMS (basis data) menggunakan bahasa basis data yang telah ditentukan
oleh perusahaan DBMS. Bahasa basis data biasanya terdiri atas perintah-perintah
yang di formulasikan sehingga perintah tersebut akan diproses olah DBMS. Perintah-
perintah biasanya ditentukan oleh user. Ada dua bahasa basis data yang sering
digunakan :
a) Data Definition Language (DDL)
DDL digunakan untuk menggambarkan desain basis data secara keseluruhan.
DDL digunakan untuk membuat tabel baru, menuat indeks, ataupun mengubah
tabel. Hasil kompilasi DDL disimpan di kamus data.
b) Data Manipulation Language (DML)
DML digunakan untuk melakukan menipulasi dan pengambilan data pada suatu
basis data seperti penambahan data baru ke dalam basis data, menghapus data
dari suatu basis data dan pengubahan data di suatu basis data.
Tiga komponen utama yang terdapat dalam DBMS adalah :
v Kamus Data
Atau biasa disebut repositori, adalah dokumen atau file yang menyimpan definisi
data dan deskripsi struktur data yang digunakan dalam basis data. Kamus data
tidak memuat data aktual basis data, namun hanya informasi untuk
mengelolanya. Tanpa kamus data, DBMS tidak dapat mengakses data dari basis
data. Kamus data menentukan pengaturan dasar basis data dan memuat daftar
semua file ke dalam basis data, jumlah record setiap file, dan nama serta tipe
masing-masing field. Kamus data juga membantu melindungi keamanan basis
data dengan mengindikasikan siapa saja yang memiliki hak untuk mengaksesnya.
v Utilitas
Adalah program yang membantu Anda untuk dapat memperoleh basis data
dengan cara menciptakan, mengedit, dan menghapus data, record dan file.
Dengan utilitas ini Anda dapat memonitor jenis data yang dimasukkan dan
memilah basis data Anda berdasarkan key field; melakukan pencarian serta
mengatur informasi juga menjadi lebih mudah.
v Penghasil Laporan
Adalah program untuk menghasilkan dokumen yang terlihat pada layar atau
yang dicetak dari semua atau sebagian basis data.
Keuntungan dari Database Management System (DBMS)adalah:
Pengulangan Data Berkurang
Pengulangan data atau repetisi berarti bahwa field data yang sama (misal:
alamat seseorang) muncul berkali-kali dalam file yang berbeda dan terkadang
dalam format yang berbeda. Dalam sistem pemrosesan yang lama, file-file yang


MODUL 1 BASIS DATA SPASIAL

berbeda akan mengulang data yang sama sehingga memboroskan ruang


penyimpanan.
Integritas Data Meningkat
Integritas data berarti data itu akurat, konsisten dan terbaru. Dalam sistem
lama, ketika ada perubahan dalam sebuah file, perubahan ini tidak perlu dibuat
dalam file lain. Akibatnya, beberapa laporan memiliki informasi yang tidak
akurat. Dalam DBMS, berkurangnya pengulangan berarti meningkatkan
kesempatan integritas data, karena semua perubahan hanya dilakukan di satu
tempat.
Keamanan Meningkat
Meskipun berbagai departemen bisa berbagi pakai data, namun akses ke
informasi bisa dibatasi hanya untuk pengguna tertentu. Hanya dengan
menggunakan password maka informasi finansial, medis, dan nilai mahasiswa
dalam basis data sebuah universitas tersedia hanya bagi mereka yang memiliki
hak untuk mengetahuinya.
Kemudahan Memelihara Data
DBMS menawarkan prosedur standar untuk menambahkan, mengedit dan
menghapus rekaman, juga untuk memvalidasi pemeriksaan untuk memastikan
bahwa data yang tepat sudah dimasukkan dengan benar dan lengkap ke dalam
masing-masing jenis field. Utilitas backup data membantu memastikan
tersedianya data jika terjadi kegagalan sistem primer.
1.1.2 Normalisasi
Proses normalisasi adalah proses pengelompokan data elemen menjadi tabel-tabel
yang menunjukkan entity dan relasinya. Pada proses normalisasi dilakukan pengujian
pada beberapa kondisi apakah ada kesulitan pada saat menambah/menyisipkan,
menghapus, mengubah dan mengakses pada suatu basis data. Bila terdapat
kesulitan pada pengujian tersebut maka perlu dipecahkan relasi pada beberapa tabel
lagi atau dengan kata lain perancangan basis data belum optimal.
Beberapa pengertian mengenai normalisasi :
Istilah Normalisasi berasal dari E. F.Codd, salah seorang perintis teknologi basis
data. selain dipakai sebagai metodologi tersendiri untuk menciptakan struktur
tabel 9 relasi) dalam basis data (dengan tujuan untuk mengurangi kemubaziran
data) , normalisasi terkadang hanya diipakai sebagai perangkat verifikasi
terhadap tabel-tabel yang dihasilkan oleh metodologi lain ( misalnya E-R).
Normalisasi memberikan panduan yang sangat membantu bagi pengembang
untuk mencegah penciptaan struktur tabel yang kurang fleksibel atau
mengurangi keflekxibelan.
Kroenke mendefinisikan normalisasi sebagai proses untuk mengubah suatu
relasi yang memiliki masalah tertentu ke dalam dua buah relasi atau lebih yang


MODUL 1 BASIS DATA SPASIAL

tidak memiliki masalah tersebut. Masalah yang dimaksud oleh kroenke ini sering
disebut dengan istilah anomali.
Normalisasi merupakan sebuah teknik dalam logical desain sebuah basis data,
teknik pengelompokkan atribut dari suatu relasi sehingga membentuk struktur
relasi yang baik (tanpa redudansi).
Normalisasi adalah suatu proses memperbaiki/membangun dengan model data
relasional, dan secara umum lebih tepat dikoneksikan dengan model data logika.

Tujuan dari normalisasi itu sendiri adalah untuk menghilangkan kerangkapan data,
mengurangi kompleksitas, dan untuk mempermudah pemodifikasian data.
Proses normalisasi ini memiliki beberapa tahapan, yaitu :


Secara detail, tahapan-tahapan normalisasi diatas dimulai dari tahapan yang
pertama hingga tahapan akhir adalah :
1) Bentuk Normal Kesatu (1 NF/First Normal Form)
Bentuk normal kesatu mempunyai ciri yaitu setiap data dibentuk dalam file flat,
data dibentuk dalam satu record demi satu record dan nilai dari field berupa
atomic value. Tidak ada set atribut yang berulang ulang atau atribut bernilai
ganda (multi value). Tiap field hanya satu pengertian, bukan merupakan
kumpulan data yang mempunyai arti mendua. Hanya satu arti saja dan juga
bukanlah pecahan kata kata sehingga artinya lain.
Contoh tabel yang belum normal :




6


MODUL 1 BASIS DATA SPASIAL

NIM

Nama

Hobi

15113008

Nina

Memasak, berenang, membaca

15113009

Raditya

Membaca, melukis

15113010

Galuh

Membaca komik, menonton film

Tabel diatas menjadi Tabel Normal 1NF apabila untuk setiap baris dan kolom
hanya memiliki satu nilai (value). Sehingga untuk membuat tabel diatas menjadi
normal 1NF, maka untuk kolom hobi harus dibuat dalam beberapa baris baru.














NIM

Nama

Hobi

15113008

Nina

Memasak

15113008

Nina

Berenang

15113008

Nina

Membaca

15113009

Raditya

Membaca

15113009

Raditya

Melukis

15113010

Galuh

Membaca komik

15113010

Galuh

Menonton film

2) Bentuk Normal Kedua (2NF)


Bentuk normal 2NF mempunyai syarat yaitu bentuk data telah memenuhi
kriteria bentuk normal 1NF. Atribut bukan kunci haruslah bergantung secara
fungsi pada kunci utama (primary key), sehingga untuk membentuk normal 2NF
haruslah sudah ditentukan kunci-kunci field (primary key). Kunci field harus unik
dan dapat mewakili atribut lain yang menjadi anggotanya.

Contoh tabel yang sudah memenuhi normal 1NF, tetapi belum memenuhi
normal kedua (2NF):

mhs_nr mhs_na mhs_alam mk_kod
mk_nama mk_sks nihuruf
p
ma
at
e
Tabel diatas belum memenuhi normal 2NF karena kolom {mhs_nrp dan
mk_kode} yang dianggap sebagai primary key, sedangkan untuk kolom-kolom
lain {mhs_nama, mhs_alamat, mk_nama, mk_sks} tidak semuanya bergantung
7


MODUL 1 BASIS DATA SPASIAL

kepada kedua kolom primary key tersebut. Hanya kolom {nihuruf} yang
bergantung kepada kedua kolom primary key tersebut.
{mhs_nrp dan mk_kode} --/->{mhs_nama}
{mhs_nrp dan mk_kode} --/->{mhs_alamat}
{mhs_nrp dan mk_kode} --/->{mk_nama}
{mhs_nrp dan mk_kode} --/->{mk_sks}
{mhs_nrp dan mk_kode} ---> {nihuruf}

Sehingga tabel diatas harus didekomposisi menjadi beberapa tabel yang
memenuhi syarat tabel normal 2NF, yang terdiri dari :
Tabel Nilai {mhs_nrp, mk_kode, nihuruf}
Tabel Mahasiswa {mhs_nrp, mhs_nama, mhs_alamat}
Tabel Matakuliah {mk_kode, mk_nama, mk_sks}

3) Bentuk Normal Ketiga (3NF)
Untuk menjadi bentuk Normal Ketiga (3NF) maka relasi haruslah dalam bentuk
Normal Kedua (2NF) dan semua atribut bukan primer (non primary key) tidak
punya hubungan yang transitif. Artinya setiap atribut non primary key harus
bergantung hanya pada atribut primary key secara menyeluruh.
Contoh tabel yang memenuhi 2NF, tetapi tidak memenuhi 3NF:
Tabel Mahasiswa :

nrp
nama alm_jalan alm_kota alm_provinsi alm_kodepos
Karena masih terdapat atribut non primary key {alm_kota dan alm_provinsi}
yang masih memiliki ketergantungan terhadap atribut non primary key
{alm_kodepos}:
alm_kodepos {alm_provinsi, alm_kota}
Sehingga tabel diatas harus didekomposisi menjadi :
Tabel Mahasiswa {nrp, nama, alm_jalan, alm_kodepos}
Tabel kodepos {alm_kodepos, alm_provinsi, alm_kota}

4) Boyce-Code Normal Form (BCNF)
Bentuk BCNF terpenuhi dalam sebuah tabel, jika untuk setiap ketergantungan
fungsional (functional dependency) terhadap setiap atribut atau gabungan
atribut dalam bentuk: X Y maka X adalah super key . Tabel tersebut harus
didekomposisi berdasarkan functional dependency yang ada, sehingga X menjadi
super key dari tabel-tabel hasil dekomposisi.
Setiap tabel dalam BCNF merupakan 3NF. Akan tetapi setiap 3NF belum tentu
termasuk BCNF. Perbedaannya, untuk functional dependency X A, BCNF tidak
membolehkan A sebagai bagian dari primary key. Jika kriteria ketiga BCNF tidak
8


MODUL 1 BASIS DATA SPASIAL

dapat terpenuhi, maka paling tidak tabel tersebut tidak melanggar bentuk
normal 3NF.
5) Bentuk Normal Keempat (4NF)
Bentuk normal 4NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk
BCNF, dan tabel tersebut tidak boleh memiliki lebih dari sebuah multivalued
atribut. Untuk setiap multivalueddependencies (MVD) juga harus merupakan
functional dependencies. Biasanya jika sebuah tabel sudah memenuhi normal
3NF maka bisa dikatan tabel tersebut sudah normal. Namun kadang masih ada
tabel normal 3NF yang memiliki multivalued sehingga harus dilakukan normal
4NF.

6) Bentuk Normal Kelima (5NF)
Bentuk normal 5NF terpenuhi jika tidak dapat memiliki sebuah lossless
decomposition menjadi tabel-tabel yg lebih kecil. Jika 4 bentuk normal
sebelumnya dibentuk berdasarkan functional dependency, 5NF dibentuk
berdasarkan konsep join dependence. Yakni apabila sebuah tabel telah
didekomposisi menjadi tabel-tabel lebih kecil, harus bisa digabungkan lagi (join)
untuk membentuk tabel semula.

Sebuah tabel dikatakan baik (efisien) atau normal jika memenuhi tiga kriteria sebagai
berikut:
Jika ada dekomposisi (penguraian) tabel, maka dekomposisinya harus dijamin
aman (Lossless-Join Decomposition). Artinya, setelah tabel tersebut
diuraikan/didekomposisi menjadi tabel-tabel baru, tabel-tabel baru tersebut bisa
menghasilkan tabel semula dengan sama persis.
Terpeliharanya ketergantungan fungsional pada saat perubahan data
(Dependency Preservation).
Tidak melanggar Boyce-Code Normal Form (BCNF)

1.1.3 Pemodelan Entity Relationship (ER-MODEL)
Model data Entity-Relationship (E-R) terdiri dari sekumpulan objek-objek yang
disebut dengan entitas dan hubungan yang terjadi diantara objek-objek tersebut.
Model data E-R terbagi menjadi tiga konsep dasar, yaitu himpunan entitas,
himpunan relasi, dan atribut.
Entitas (Entity) dan Himpunan Entitas (Entity Set)
Suatu entitas merupakan suatu objek dasar atau individu yang mewakili sesuatu yang
nyata eksistensinya dan dapat dibedakan dari objek-objek lain. Suatu entitas
mempunyai sekumpulan sifat, dan nilai beberapa sifat tersebut adalah unik yang
dapat mengidentifikasi entitas tersebut. Contoh entitas adalah mahasiswa pada
9


MODUL 1 BASIS DATA SPASIAL

suatu perguruan tinggi dengan NIM secara unik dapat menjadi identitas dari setiap
mahasiswa.
Sekumpulan entitas yang mempunyai tipe yang sama (sejenis) dan berada dalam
lingkup yang sama membentuk suatu himpunan entitas. Contohnya sekumpulan
orang yang menjadi mahasiswa pada suatu perguruan tinggi dapat difenisikan
sebagai sebagai himpunan entitas mahasiswa. Sehingga dapat dikatakan bahwa
entitas merujuk ke suatu objek, sedangkan himpunan merujuk kepada rumpun atau
kelompok dari objek tersebut. Setiap entitas memiliki atribut. Artibut merupakan
sifat atau properti yang dimiliki oleh entitas. Atribut inilah yang membedakan antara
satu entitas dengan entitas lainnya. Sebagai contoh entitas mahasiswa memiliki
atribut berupa NIM, nama mahasiswa, alamat mahasiswa, dan tanggal lahir dari
mahasiswa tersebut.
Tabel entitas mahasiswa :
NIM
Nama_mhs
Alamat_mhs
Tgl_lahir
15107001
Arini
Cisitu Lama
12/04/1989
15107012
Dianrina
Tubagus Ismail
15/08/1989
15107032
Fandrio
Plesiran
25/01/1990

Untuk setiap atribut, terdapat sekumpulan nilai yang disebut dengan domain, atau
himpunan dari nilai dari suatu atribut tersebut. Misalnya domain dari atribut NIM
dapat berupa himpunan integer dengan panjang yang telah ditentukan. Dengan
demikian suatu basis data terdiri dari sekumpulan himpunan entitas yang masing-
masing terdiri dari sejumlah entitas dengan tipe yang sama. Sehingga suatu atribut
dari suatu himpunan entitas merupakan fungsi pemetaan dari entitas ke domain.
Dibawah ini merupakan beberapa tipe atau karekteristik dari atribut antara lain :
Atribut sederhana yaitu atribut yang tidak dapat diuraikan lagi menjadi sub
atribut atau atribut yang lainnya. Pada contoh tabel entitas mahasiswa diatas,
atribut nama_mhs merupakan atribut sederhana karena tidak bisa diuraikan lagi
menjadi sub atribut.
Atribut komposit yaitu atribut yang dapat diuraikan menjadi beberapa sub
atribut. Pada contoh tabel entitas mahasiswa diatas, yang merupakan atribut
komposit adalah atribut alamat_mhs karena masih dapat diuraikan lagi menjadi
beberapa sub atribut misalnya nama_kota, kodepos, dll.
Atribut bernilai tunggal (single-valued attribute) yaitu atribut yang mempunyai
paling banyak satu nilai untuk setiap baris data. Pada contoh entitas mahasiswa
diatas semua atribut merupakan atribut bernilai tunggal.
Atribut bernilai banyak (multivalued attribute) yaitu atribut yang berisi lebih dari
satu nilai, tetapi mepunyai jenis yang sama. Contohnya atribut hobi yang isinya
lebih dari satu hobi.

10


MODUL 1 BASIS DATA SPASIAL

Atribut null adalah ketika suatu entitas tidak mempunyai suatu nilai untuk suatu
atribut. Null juga menandakan bahwa suatu niali atribut tidak ada atau tidak
diketahui.
Atribut turunan adalah atribut yang nilainya diperoleh dari pengolahan atau
turunan dari atribut atau tabel yang lain yang berhubungan. Misalnya untuk
mengetahui angkatan dari seorang mahasiswa kita bisa mengetahui dari NIM
mahasiswa tersebut.
Relasi (Relationship) dan Himpunan Relasi (Relationship Set)
Relasi menunjukkan adanya hubungan diantara sejumlah entitas yang berasal dari
sejumlah himpunan entitas yang berbeda. Penguhubung antara himpunan relasi
dengan himpunan entitas dan himpunan entitas dengan himpunan entitas, pada
diagram Entity Relationship Diagram (ERD) dinyatakan dalam bentuk garis. Untuk
lebih jelas lihat contoh diagram ER di bawah ini.



Kardinalitas Relasi (Mapping Cardinalities)
Kardinalitas merupakan jumlah maksimum entitas dimana entitas tersebut dapat
berelasi dengan entitas pada himpunan entitas yang lain. Adapun kardinalitas relasi
yang bisa terjadi antara suatu himpunan A dengan suatu himpunan B adalah :
Satu ke satu (One to one)
Satu entitas dalam himpunan entitas A dihubungkan paling banyak terhdap satu
entitas pula pada himpunan entitas B, dan entitas dalam himpunan entitas B
dihubungkan dengan paling banyak satu entitas dalam himpunan entitas A. Untuk
lebih jelasnya lihat gambar di bawah.

11


MODUL 1 BASIS DATA SPASIAL


Satu ke banyak (One to many)
Suatu entitas dalam himpunan entitas A dihubungkan dengan lebih dari satu
entitas dalam himpunan entitas B, dan entitas dalam himpunan entitas B hanya
dapat dihubungkan dengan paling banyak satu entitas dalam himpunan entitas
himpunan B. Untuk lebih jelasnya, lihat gambar di bawah ini.


Banyak ke satu (Many to one)
Suatu entitas dalam himpunan entitas A dihubungkan dengan paling banyak satu
entitas dalam himpunan entitas B, dan entitas dalam himpunan entitas B dapat
dihubungkan dengan lebih dari satu entitas dalam himpunan entitas A. Untuk
lebih jelasnya, lihat gambar di bawah ini.


Banyak ke banyak (Many to many)
Semua entitas dalam himpunan entitas A dapat dihubungkan dengan lebih dari
satu entitas dalam himpunan entitas B, dan entitas dalam himpunan entitas
himpunan B dapat dihubungkan dengan lebih dari satu entitas dalam himpunan
entitas A. Untuk lebih jelasnya, lihat gambar di bawah ini.

12


MODUL 1 BASIS DATA SPASIAL


Kelas Keanggotaan
Kelas keanggotaan menunjukkan apakah semua anggota entitas memiliki hubungan
dengan anggota entitas lagi secara pasti atau tidak. Kelas keanggotaan terdiri dari
dua jenis, yaitu obligatori dan non obligatori.
Obligatory adalah jika semua anggota entitas secara pasti berhubungan
dengan anggota entitas lainnya.
Non-obligatory adalah jika semua anggota entitas secara pasti berhubungan
dengan anggota entitas lainnya.
Berikut beberapa contoh penggunaan kelas keanggotaan.
1. Obligatori dan Obligatori
Enterprise rules :
Seorang guru pasti mengajar mata pelajaran
Satu mata pelajaran pasti diajar oleh guru

2. Obligatori dan Non Obligatori
Enterprise rules :
Seorang guru pasti mengajar mata pelajaran
Satu mata pelajaran belum tentu diajar oleh guru

3. Non Obligatori dan Non Obligatori


Enterprise rules :
Seorang guru belum tentu mengajar mata pelajaran
Satu mata pelajaran belum tentu diajar oleh guru

Kunci (Key)
Kunci (key) adalah satu atau gabungan dari beberapa atribut yang dapat
membedakan semua baris data dengan unik. Jika suatu atribut menjadi kunci, maka
tidak boleh ada dua atau lebih baris data dengan nilai yang sama. Adapun macam-
macam kunci tersebut adalah :
13


MODUL 1 BASIS DATA SPASIAL

1) Superkey
Adalah suatu himpunan yang terdiri dari satu atau lebih atribut yang dapat
membedakan setiap baris data dalam sebuah tabel secara unik. Contohnya
kumpulan atribut (NIM, nama_mhs, alamat_mhs, tgl_lahir) dan (NIM,
nama_mhs, alamat_mhs).
2) Candidate key
Adalah himpunan atribut minimal yang dapat membedakan setiap baris data
dalam sebuah tabel secara unik. Misalnya atribut (NIM) dan (nama_mhs).
3) Primary key
Adalah kunci yang paling unik diantara semua atribut yang ada. Biasanya juga
yang paling ringkas dan dijadikan sebagai acuan. Contohnya atribut yang paling
sering digunakan sebagai primary keyadalah (NIM).

Diagram Entity Relationship (Diagram E-R)
Sebuah basis data bisa digambarkan secara grafik dengan menggunakan diagram E-R.
Adapun komponen-komponen dari suatu diagram E-R adalah sebagai berikut :
o Persegi panjang, menggambarkan himpunan entitas.

o Belah ketupat, menggambarkan himpunan relasi.

o Elips, menggambarkan atribut-atribut.


o Garis, menggambarkan hubungan atribut ke entitas dan himpunan entitas ke
himpunan relasi.

o Kardinalitas relasi dapat digambarkan dengan banyaknya garis atau cabang atau
dengan memaki angka, 1 untuk relasi satu dan n untuk relasi banyak.

14


MODUL 1 BASIS DATA SPASIAL


1.1.4 Perancangan Basis Data
Dalam melakukan perancangan basis data, terdapat beberapa tujuan yaitu :
Untuk memenuhi kebutuhan akan informasi dari pengguna dan aplikasi yang
digunakan.
Menyediakan struktur informasi yang natural dan mudah dimengerti oleh
pengguna.
Mendukung kebutuhan pemrosesan dan objektifitas kinerja (waktu respon,
waktu pemrosesan, dan ruang penyimpanan)
Pada kegiatan perancangan basis data, terdapat beberapa tahapan yang harus
dilakukan untuk memperoleh basis data yang sesuai dengan yang diinginkan. Adapun
tahapannya adalah sebagai berikut :
1) Perencanaan basis data. Untuk melakukan perencanaan basis data ini hal yang
harus dilakukan adalah :
Evaluasi sistem yang ada,
Pengembangan standardisasi dari pengumpulan data, format data, proses
perancangan dan implementasi,
Mempertimbangkan kelayakan secara teknologi, operasional, dan secara
ekonomi.
2) Pendefinisian sistem. Ada beberapa hal yang harus didefinisikan sebelum
merancang basis data, diantaranya :
Pendefinisian ruang lingkup sistem basis data yang akan dibuat, para
pengguna, dan aplikasi yang digunakan,
Pendefinisian pengguna dan aplikasi untuk masa yang akan datang (jangka
panjang),
Pendefinisian batasan dari sistem basis data dan hubungan dengan bagian
dari sistem informasi secara organisasi.
3) Pengumpulan dan analisis data
Menentukan kelompok pengguna dan bidang-bidang aplikasinya,
Peninjauan dokumentasi yang berhubungan dengan aplikasi,
Analisis lingkungan operasi dan pemrosesan data.

15


MODUL 1 BASIS DATA SPASIAL


Perancangan basis datamerupakan proses menciptakan perancangan untuk basis
data yang akan mendukung operasi dan tujuan perusahaan (Connolly, 2002:p279).
Dalam merancang suatu basis data, digunakan metodologi-metodologi yang
membantu dalam tahap perancangan basis data. Metodologi perancangan adalah
pendekatan struktur dengan menggunakan prosedur, teknik, alat, serta bantuan
dokumen untuk membantu dan memudahkan dalam proses perancangan. Dengan
menggunakan teknik metode disain ini dapat membantu dalam merencanakan,
mengatur, mengontrol, dan mengevaluasi database development project. (Connolly,
2002:p418).
Proses dalam metodologi perncangan dibagi menjadi tiga tahap :
Conseptual Database Design
Logical Database Design
Physical Database Design

Conseptual Database Design
Conceptual database design adalah proses membangun suatu model berdasarkan
informasi yang digunakan oleh perusahaan atau organisasi, tanpa pertimbangan
perencanaan fisik (Connolly, 2002:p419).
Pada tahap conceptual model, langkah-langkah yang dilakukan adalah sebagai
berikut :
a) Mengidentifikasi entity types.
Bertujuan untuk menentukan entity types utama yang dibutuhkan. Menentukan
entitas dapat dilakukan dengan memeriksa users requirement specification.
Setelah terdefinisi, entitas diberikan nama yang tepat dan jelas seperti
mahasiswa, dosen, mata_kuliah.
b) Mengidentifikasikan relationship types.
16


MODUL 1 BASIS DATA SPASIAL

c)

d)

e)

f)

g)

h)

Bertujuan untuk mengidentifikasi suatu relasi yang penting yang ada antar
entitas yang telah diidentifikasi. Nama dari suatu relasi menggunakan kata kerja
seperti mempelajari, memiliki mempunyai dan lain-lain.
Mengidentifikasi dan menghubungkan atribut dengan entitas atau relationship
types.
Bertujuan untuk menghubungkan atribut dengan entitas atau relasi yang tepat.
Atribut yang dimiliki setiap entitas atau relasi memiliki identitas atau
karakteristik yang sesuai dengan memperhatikan atribut berikut:
simple/composite attribute, single/multi-valued attribute dan derived attribute.
Menentukan attribute domain.
Bertujuan untuk menentukan attribute domain pada model data konseptual.
Contohnya yaitu menentukan nilai atribut jenis_kelamin pada entitas mahasiswa
dangan M atau F atau nilai atribut sks pada entitas mata_kuliah dengan 1,
2, 3 dan 4.
Menentukan atribut yang merupakan candidate key dan primary key.
Bertujuan untuk mengidentifikasi candidate key pada setiap entitas dan memilih
primary key jika ada lebih dari satu candidate key. Pemilihan primary key
didasari pada panjang dari atribut dan keunikan kunci di masa datang.
Mempertimbangkan penggunaan enhance modeling concepts (pilihan).
Pada langkah ini bertujuan untuk menentukan specialization, generalization,
aggregation, composition. Dimana masing-masing pendekatan dapat dilakukan
sesuai dengan kebutuhan yang ada.
Specialization dan generalization adalah proses dalam mengelompokan
beberapa entitas dan menghasilkan entitas yang baru. Beda dari keduanya
adalah cara prosesnya, dimana spesialisasi menggunakan proses top-down dan
generalisasi menggunakan proses bottom-up. Aggregation menggambarkan
sebuah entity types dengan sebuah relationship types dimana suatu relasi hanya
akan ada jika telah ada relasi lainnya.
Mengecek redundansi.
Bertujuan untuk memeriksa conceptual model untuk menghindari dari adanya
informasi yang redundan. Yang dilakukan pada langkah ini adalah :
Memeriksa kembali one-to-one relationship.
Setelah entitas diidentifikasikan maka kemungkinan ada dua entitas yang
mewakili satu objek. Untuk itu dua entitas tersebut harus di-merger
bersama. Dan jika primary key-nya berbeda maka harus dipilih salah satu
dan lainnya dijadikan alternate key.
Menghilangkan relasi yang redundansi.
Untuk menekan jumlah model data, maka relasi data yang redundan harus
dihilangkan.
Memvalidasi conceptual model dengan transaksi user.

17


MODUL 1 BASIS DATA SPASIAL

Bertujuan untuk menjamin bahwa conceptual data model mendukung


kebutuhan transaksi. Dengan menggunakan model yang telah divalidasi
tersebut, dapat digunakan untuk melaksanakan operasi secara manual. Ada dua
pendekatan yang mungkin untuk menjamin bahwa local conceptual data model
mendukung kebutuhan transaksi yaitu :
Mendeskripsikan transaksi.
Memeriksa seluruh informasi (entitas, relasi, dan atribut) yang diperlukan
pada setiap transaksi yang disediakan oleh model dengan
mendokumentasikan penggambaran dari tiap kebutuhan transaksi.
Mengunakan transaksi pathways.
Pendekatan kedua, untuk memvalidasi data model dengan keperluan
transaksi yang melibatkan diagram yang mewakili pathways diambil dari
tiap transaksi secara langsung yang terdapat pada diagram E-R
menggambarkan komponen-komponen dari entitas dan relasi yang masing-
masing dilengkapi dengan atribut yang merepresentasikan seluruh fakta dari
real-world yang kita tinjau (Fathansyah,1999:p79). Sedangkan menurut
Silberschartz (2002:p42), diagram E-R dapat menyatakan keseluruhan
struktur logika dari basis data dengan menggunakan bagan.
i) Melihat kembali conceptual data model dengan pengguna.
Bertujuan untuk melihat kembali model konseptual dan memastikan bahwa data
model tersebut sudah benar.

Logical Database Design
Logical database design adalah proses pembuatan suatu model informasi yang
digunakan pada perusahan berdasarkan pada model data yang spesifik, tetapi tidak
tergantung dari Database Management System (DBMS) yang khusus dan
pertimbangan fisik yang lain (Connolly, 2002L:p441).
Logical design merupakan proses pembuatan model data dengan menggunakan
informasi yang diperoleh dari perusahaan serta berdasarkan pada model data
spesifik. Model data yang telah diperoleh dalam conceptual database design diubah
dalam bentuk model logikal dimana data yang ada dipengaruhi oleh model data yang
menjadi tujuan basis data.
Hal ini dilakukan untuk menerjemahkan representasi konseptual ke dalam bentuk
struktur logic dalam basis data yang akan dijadikan sumber informasi dalam
merancang physical database design serta memberikan sarana yang membantu para
perancang basis datadalam merancang physical database. Hasil akhir dari logical
database design ini berupa sebuah kamus data yang berisi atribut-atribut beserta
key-nya (primary key, alternate key, dan foreign key) dan ERD keseluruhan dengan
atribut key-nya.
Langkah-langkah untuk membuat logical database design dapat digambarkan
sebagai berikut :
18


MODUL 1 BASIS DATA SPASIAL

a) Membuat dan memvalidasikan data model lokal yang logikal untuk setiap view.
Aktivitas pada logical database design langkah pertama adalah membangun
pandangan (view) tertentu dari perusahaan dan kemudian mengesahkan model
ini untuk memastikan strukturnya telah benar atau menggunakan teknik
normalisasi.
Pindahkan fitur-fitur yang tidak kompatibel dengan model relational
(langkah optional)
Ambil hubungan untuk data model lokal yang logikal
Validasikan hubungan menggunakan normalisasi
Validasikan hubungan terhadap transaksi user
Tentukan batasan integrity
Tinjau kembali model data logikal lokal dengan user
b) Membuat dan memvalidasikan model data logikal global Aktivitas pada logical
database design langkah kedua adalah untuk mengkombinasikan model data
logikal lokal individual ke dalam sebuah model data logikal global tunggal yang
menggambarkan perusahaan.
Gabungkan model data logikal lokal menjadi model global
Validasikan model data logikal global
Periksa untuk pengembangan mendatang
Tinjau kembali model data logikal global dengan user

Physical Database Design
Physical design merupakan proses pembuatan deskripsi dari suatu impelmentasi
basis data pada secondary storge. Hal ini mendeskripsikan base relation, organisasi
file, dan indeks yang digunakan untuk mencapai efisiensi akses kedalam data, dan
associated integrity constraints yang lainnya dan security measures. Physical
database design merupakan fase ketiga dan terakhir dalam desain basis data.
Tujuan utama dari physical database design adalah untuk mendeskripsikan
bagaimana desainer bermaksud untuk mengimplementasikan secara fisik dari
logical database design.
Langkah-langkah dalam pembuatan physical databse design adalah sebagai berikut
:
a) Terjemahkan model data logikal global target DBMS
Desain hubungan dasar
Desain representasi dari data yang dihasilkan
Desain batasan-batasan perusahaan
b) Desain reprensentasi fisikal
Analisa transaksi-transaksi
Pilih organisasi file
Pilih indeks-indeks
19


MODUL 1 BASIS DATA SPASIAL

c)
d)
e)
f)

Perkirakan kebutuhan tempat penyimpanan


Desain user view
Desain mekanisme keamanan
Pertimbangkan pengenalan dari redundansi terkontrol
Awasi dan atur sistem operasional


Gambar di atas merupakan metodologi Perancangan Basis Data menurut Connoly
dan Begg.
Keterangan gambar :
1) Database planning
Yakni kegiatan perencanaan, agar kegiatan di tiap-tiap stage pada siklus hidup
dapat direalisasikan seefektif dan seefisien mungkin.
2) System Definition
Yakni kegiatan menentukan ruang lingkup dan batasan pada aplikasi basis data,
pengguna, dan area aplikasi.
3) Requirements collection and analysis
Yakni kegiatan pengumpulan dan analisis informasi mengenai bagian dari
perusahaan yang akan didukung oleh aplikasi basis data.
4) Database design
20


MODUL 1 BASIS DATA SPASIAL

Yakni kegiatan perancangan konseptual, logikal, dan fisikal pada basis data.
5) DBMS selection (optional)
Yakni kegiatan menyeleksi DBMS yang cocok untuk diterapkan pada aplikasi
basis data.
6) Application design
Yakni kegiatan perancangan user interface dan program aplikasi yang akan
digunakan dan akan memproses basis data.
7) Prototyping (optional)
Yakni kegiatan membangun model pekerjaan atau kegiatan pada aplikasi basis
data, yang memungkinkan perancang atau pengguna untuk memvisualisasikan
dan mengevaluasi bagaimana tampilan dan kegunaan dari sistem yang
dihasilkan.
8) Implementation
Membuat bagian luar (external), konseptual, dan mendefinisikan basis data
internal, serta program aplikasi.
9) Data conversion and loading
Yaitu peralihan dengan pemuatan sistem lama ke sistem yang baru.
10) Testing
Dengan menguji coba kesalahan atau error pada aplikasi basis data dan
memvalidasikan penentuan kebutuhan pengguna.
11) Operational maintenance
Pada stage ini aplikasi basis data secara penuh diterapkan, dimana sistem secara
terus menerus diawasi dan dipelihara. Akan sangat penting apabila kebutuhan
yang baru tergabung pada aplikasi basis data melalui stage sebelumnya pada
siklus hidup.
1.2 Studi Kasus MP3EI
Pembangunan Indonesia tidak lepas dari posisi Indonesia dalam dinamika regional dan
global. Secara geografis Indonesia terletak di jantung pertumbuhan ekonomi dunia.
Selaras dengan visi pembangunan nasional sebagaimana tertuang dalam Undang-
Undang no. 17 tahun 2007 Tentang Rencana Pembangunan Jangka Panjang Nasional
2005 2025, maka visi Percepatan dan Perluasan Pembangunan Ekonomi Indonesia
adalah : Mewujudkan Masyarakat Indonesia yang Mandiri, Maju, Adil, dan Makmur.
Percepatan dan perluasan pembangunan ekonomi Indonesia menetapkan sejumlah
program utama dan kegiatan ekonomi utama yang menjadi fokus pengembangan
strategi dan kebijakan. Fokus dari pengembangan MP3EI ini diletakkan pada 8 program
utama, yaitu pertanian, pertambangan, energi, industri, kelautan, pariwisata, dan
telematika, serta pengembangan kawasan strategis.
1.2.1 Latar Belakang Masalah

21


MODUL 1 BASIS DATA SPASIAL

Sektor pariwisata memiliki peranan yang sangat penting dalam perekonomian


Indonesia, baik sebagai salah satu penerimaan devisa maupun membuka kesempatan
kerja dan kesempatan berusaha. Selain itu berkembangnya sektor pariwisata di suatu
daerah dapat memicu perkembangan di sektor lainnya seperti bidang pertanian,
peternakan, perkebunan, kerajinan dan lainnya. Hal ini tidaklah berlebihan mengingat
potensi kepariwisataan yang dimiliki Indonesia cukup besar, bahkan banyak diantaranya
yang belum dimanfaatkan secara optimal terutama menyangkut wisata alam.

Provinsi Jawa Barat merupakan salah satu daerah tujuan wisata alam nasional yang
ditetapkan oleh pemerintah pusat. Penetapan ini tidak terlepas dari pertimbangan
kekayaan potensi alam sebagai daya tarik wisata di Propinsi Jawa Barat. Keadaan ini
ditunjang oleh beberapa faktor geografis seperti keadaan topografi, iklim, flora, fauna,
dan kekayaan alam. Hal ini mendorong meningkatnya jumlah wisatawan mancanegara
datang ke daerah-daerah tujuan wisata di Indonesia termasuk di Jawa Barat dengan
karakteristik wisata alam yang berbeda-beda. Tujuan daerah wisata alam yang ada di
Jawa Barat diantaranya adalah Gunung Tangkuban Perahu, Kawah Putih, Pemandian Air
Panas Ciater, Puncak, Lembang, Maribaya, dll.

Objek wisata alam yang menarik diharapkan dapat menambah minat wisatawan
berkunjung ke Jawa Barat. Strategi menarik wisatawan berkunjung ialah dengan
meningkatkan keamanan, kenyamanan, dan kemudahan akses objek wisata alam.
Aspek-aspek penilaian dilihat dari sisi stakeholder seperti wisatawan, pengelola objek
wisata setempat, dan pemerintahan setempat.

Untuk meningkatkan kenyamanan dan kemudahan akses, maka dilakukan beberapa
analisis spasial dengan menilai beberapa aspek seperti lokasi-lokasi fasilitas umum dan
fasilitas sosial yang tersedia, yaitu apakah fasilitas umum dan fasilitas sosial ini telah
cukup memadai? Analisis spasial informasi akomodasi seperti hotel dan penginapan dan
transportasi seperti jalan umum, angkutan umum, bandara dan stasiun.

Analisis studi kasus ini juga mengambil aspek feedback dari wisatawan dan pengelola
objek wisata. Hal ini bertujuan untuk mendapatkan sudut pandang wisatawan dan
pengelola objek wisata. Karena disadari bahwa wisatawan pengelola wisata merupakan
hilir dari implementasi kebijakan.

Analisis ini diharapkan dapat menjadi dasar-dasar menentukan pengambilan keputusan
pengembangan objek wisata alam. Sehingga pembangunan infrastruktur, strategi
promosi dan marketing dapat tepat sasartan dan efisien.



22


MODUL 1 BASIS DATA SPASIAL

1.2.2 Tujuan dan Batasan Masalah


Studi kasus industri pariwisata di Jawa Barat ini bertujuan melakukan analisis spasial
untuk memberikan informasi spasial dan membantu dalam pengambilan keputusan
program-program yang akan dilakukan dalam rangka peningkatan jumlah wisatawan
objek wisata alam Jawa Barat.

Batasan masalah dalam studi kasus industri objek wisata alam Jawa Barat adalah:
Data premier yang digunakan adalah Peta Jawa Barat 1 : 250.000.
Data-data sekunder yang digunakan merupakan data dummy atau bukan data
yang sebenarnya, studi kasus ini hanya sebagai contoh.
Studi kasus ini menampilkan informasi hasil analisis dalam bentuk informasi
spasial.
Analisis statistik disajikan dengan bentuk informasi spasial. Dan data statistik
yang digunakan merupakan data dummy atau data rekayasa.

1.2.3 Wisata Alam di Jawa Barat
Jawa Barat memiliki banyak objek wisata antara lain wisata pegunungan, pantai, hutan
sungai danau, gua, mata air, dll. Beberapa keindahan alam wisata di Jawa Barat antara lain
dijabarakan sebagai berikut:
Wisata Pegunungan
Gunung Riung

Terletak pada ketinggian 1500 m, Riung Gunung
menawarkan panorama alam daerah puncak
yang indah dengan hamparan perkebunan teh
yang luas. Tambahkan suasana nyaman dengan
udara segar khas pegunungan. Selain
panoramaalam, juga dapat berkunjung ke salah
satu vila di daerah ini tempat Soekarno pernah
menginap dan memohon kepada Tuhan demi kemajuan dan kesejahteraan Bangsa
dan Negara Republik Indonesia. Kegiatan lain yang dapat dilakukan di sini juga adalah
paralayang.

Lokasi: tepi jalur Puncak (40 km dari Kota Bogor)
Koordinat : 6 42' 6" S, 106 59' 34" E
Arah: 17 km dari pintu tol Ciawi
Fasilitas: tempat parkir, kios, toilet


23


MODUL 1 BASIS DATA SPASIAL




Gunung Tangkuban Perahu
Duduk dengan anggunnya mendominasi
panorama Bandung utara, Gunung Tangkuban
Perahu adalah salah satu gunung berapi yang
masih aktif di Jawa Barat. Berada di ketinggian
2084 m dpl, gunung berbentuk unik ini telah
menarik banyak pengunjung selama puluhan
tahun yang datang untuk melihat lebih dekat
kawahnya, menikmati panorama lembah
sekelilingnya, serta lebih akrab dengan cerita rakyatnya yang terkenal, Sangkuriang.
Berdasarkan legendanya, gunung ini terbentuk akibat kemarahan Sangkuriang yang
merasa gagal dalam mengabulkan permintaan pembuatan danau dan perahu besar
dari Dayang Sumbi (merupakan kisah cinta terlarang antara seorang anak dengan ibu
kandungnya sendiri). Maka ditendangnya perahu yang telah dibuat dan jatuh
tertelengkup (dalam Basa Sunda nangkub) di lokasinya sekarang yang menjadi asal
mula nama Gunung Tangkuban Perahu. Menurut sejarah geologinya, Gunung
Tangkuban Parahu terbentuk dari aktifitas letusan berulang Gunung Api Sunda di
jaman prasejarah. Catatan letusan dalam 2 abad terakhir adalah tahun 1829, 1846,
1862, 1887, 1896, 1910, dan 1929.
Dari puncak menara Gedung Sate di Kota Bandung, Anda dapat melihat dengan
sangat jelas bentuk fisik Gunung Tangkuban Parahu yang benar-benar menyerupai
perahu terbalik.

Koordinat : 6 46' 12" S, 107 36' 0" E
Arah: 30 km arah utara Kota Bandung, atau 31 km arah selatan Kota Subang
Fasilitas: kios makanan & cinderamata, toilet

Gunung Papandayan

Luas kawasan objek ini secara keseluruhan
7132 Ha, yang terdiri dari Cagar Alam dengan
luas 6807 Ha dan Taman Wisata Alam 225 Ha.
Adapun pengelola objek tersebut adalah
BKSDA Jabar II. Sedangkan status kepemilikan
tanahnya dikuasai oleh Departemen
Kehutanan.
Adapun jenis gunung ini adalah jenis gunung berapi yang memiliki ketinggian 2622 m
dari permukaan laut. Di gunung Papandayan ini terdapat banyak kawah yang aktif,
24


MODUL 1 BASIS DATA SPASIAL

yang diantaranya ada 4 kawah yang meletus pada tahun 2002. Topografi Gunung
Papandayan berada di ketinggian 2170 m di atas permukaan laut dengan konfigurasi
umum lahannya bergunung, berbukit, dataran dan lembah.
Daya tarik Gunung Papandayan yang utama berupa kawah, panorama, pegunungan
dan perkemahan, semuanya ini ada di dalam kawasan Taman Wisata Alam. Daya
tarik yang potensial berupa hutan terdapat di Cagar Alam (CA) yang sifatnya khusus
untuk penelitian dan pendidikan. Selain itu terdapat perkebunan di luar kawasan
berupa kebun teh milik PTPNVIII Sedep, Bandung.
Aktivitas utama yang dapat dilakukan yaitu trekking, hiking, fotografi dan rekreasi
hutan yang semua ini dapat dilakukan di TWA. Sedangkan aktivitas penunjangnya
ialah penelitian fauna dan flora di CA serta untuk piknik dan berkemah dapat di
lakukan di TWA.
TWA memiliki flora yang dominan yaitu Hiur, Puspa, Pasang Hura, Saninten, Jamaju,
Sega, Suwagi dan Kiteke sedangkan fauna yang dominan yaitu babi hutan, macan
kumbang, macan tutul dan burung. Flora yang dominan ialah sedangkan untuk fauna
dominan adalah babi hutan, jenis burung, macan kumbang dan tutul. Flora langka di
Cagar Alam yaitu Saninten dan untuk faunanya rusa, elang Jawa, Lutung dan Surili.
Kegiatan konservasi hewan dan tumbuhan dilakukan di Cagar Alam.
Lokasi: Desa Sirna Jaya dan Desa Keramat Wangi, Kecamatan Cisurupan, Kabupaten
Garut
Koordinat : 7 18' 25" S, 107 42' 51" E
Kawah Putih
Di ketinggian Gunung Patuha, tersembunyi
keindahan bekas kawah tua yang unik. Bau
belerang akan menyambut Anda begitu tiba di
tebing kawah, menjadi sajian yang tidak
terpisahan ketika mengagumi kawah berwarna
hijau muda yang dikelilingi oleh pasir putih serta
riak air dalam kawah yang bertabur asap tipis
serta sesekali letupan lumpur hidup,
menjadikannya sebuah atraksi alam yang tiada duanya. Sebagai tambahan, warna air
Kawah Putih selalu berubah-ubah bila terkena sinar matahari.
Pertama kali terungkap pada tahun 1837 oleh seorang ilmuwan asal Belanda yang
bernama Dr. Franz Wilhelm Junghun, danau di ketinggian 2194 m dpl dengan suhu
sekitar 15-22 derajat Celcius ini sangat memesona. Karena keunikannya itu, Kawah
Putih menjadi objek wisata bagi wisatawan nusantara dan mancanegara, serta latar
belakang favorit bagi para fotografer dan sineas film.

25


MODUL 1 BASIS DATA SPASIAL

Secara geologis, Kawah Putih terbentuk dari aktifitas letusan Gunung Patuha yang
terjadi di abad ke-XII. Nama Patuha sendiri berasal dari nama awal gunung ini,
Gunung Sepuh (Bahasa Sunda untuk tua).
Koordinat : 07 10.021 S, 107 24.279 E
Arah: 44 km arah selatan Kota Bandung melalui Soreang, Ciwidey dan Cimanggu
Gunung Galunggung

Salah satu keajaiban Gunung Galunggung, yaitu
danau yang terdapat di dalam kawahnya.
Uniknya, dari danau berair dingin itu tidak
tercium bau belerang dan hal ini berbeda
dengan gunung-gunung berapi lainnya di
Indonesia. Pada saat cuaca yang cerah,
keajaiban alam lainnya berupa sungai-sungai yang turun dari bukit Gunung
Galunggung yang terlihat seolah-olah dari langit.
Di kaki gunung ini terdapat pemandian air panas yang mengandung mineral
berkhasiat untuk penyembuhan penyakit kulit maupun kesehatan dan kesegaran
jasmani. Di samping itu, Anda juga dapat mendaki kawah Gunung Galunggung
melalui tangga 1000 dan tangga biru dan langsung turun ke bawah kawah untuk
dapat melihat dari dekat danau dengan pulau kecil di tengah-tengannya.
Wisata Air Terjun
Curug Caweni
Terletak di Kampung Cilutung, Desa Cidolog, Kecamatan
Cidolog, Kabupaten Sukabumi, Propinsi Jawa Barat
Curug Caweni memiliki ketinggian terjunan air sekitar 15
m. Salah satu ciri khas Curug Caweni adalah adanya
sebuah batu setinggi 7 m yang terdapat di tengah-tengah
air terjun. Konon batu tersebut adalah Arca Caweni, putri
yang pernah berkuasa di Cidolog. Nama Caweni atau
cawene dalam bahasa sunda berarti 'randa bengsrat',
janda yang masih suci karena berpisah sebelum
melakukan hubungan intim dengan suaminya.
Fasilitas yang tersedia sudah ada seperti, lokasi parkir dan WC serta tempat ganti
pakaian, tetapi sayangnya pemeliharaannya tidak ada bahkan dibiarkan tak terurus.

26


MODUL 1 BASIS DATA SPASIAL

Selain itu ketiadaan, warung atau toko penjual makanan dan minuman pun sulit
ditemui. Satu-satunya penjual makanan dan minuman berada di jalan raya Cidolog,
sekitar 200 meter sebelum ke Curug Caweni. Oleh karena itu disarankan membawa
bekal jika ingin berwisata ke tempat ini.
Curug Muarajaya

Seperti namanya, curug merupakan air terjun yang
tumpahan airnya mengalir deras membelah di
puncak bukit. Tumpahan air itu menyajikan
panorama indah pada birunya langit, sejuknya
udara, dan hijaunya pepohonan yang menyelimuti
suasana wisata yang berada di Kecamatan
Argapura. Selain itu terdapat pula lapangan sebagai areal untuk camping bagi para
pengunjung, tempat ini dapat dijadikan alternatif bagi pengunjung yang memiliki
hobi berpetualang. Selain menjanjikan ketenangan dan ketenteraman, juga
kedamaian menjadi perpaduan yang kompak untuk menunjang daya tarik tersendiri,
tetapi pada saat ini area camping tersebut belum begitu berkembang.
Curug Muara Jaya berada di Desa Argamukti, Kecamatan Argapura yang dikelola
pada tahun 1999. Dimana jarak yang harus ditempuh untuk menuju curug ini yaitu
+20.1 km dari pusat kota Majalengka. Luas Curug Muara Jaya sebesar +2 Ha. Jarak
dari tempat parkir menuju curug tersebut yaitu +300 m berupa jalan setapak yang
telah menggunakan paping blok. Objek Wisata Curug Muara Jaya menawarkan
keindahan alam dengan panorama air terjun setinggi 73 m yang terdiri dari tiga
umpak. Udara yang sejuk dengan hamparan sayur mayur dan pohon kesemek
menjadi daya tarik bagi peminat wisata alam. Kawasan ini merupakan jalur alternatif
pendakian ke puncak Gunung Ciremai, disamping itu dilokasi ini pada setiap
tahunnya digelar upacara pareresan yang dilakukan setelah panen raya. Objek wisata
ini banyak diminati oleh pengunjung, dengan rata-rata jumlah pengunjung pada hari
libur sebanyak +200 pengunjung, dan pada hari biasa +20 pengunjung dengan harga
tiket masuk sebesar Rp. 4.000/orang. Sedangkan Jumlah pengunjung pada tahun
2007 berjumlah 15.782 pengunjung dan pada tahun 2005 berjumlah 32.300
pengunjung, dari tahun 2005 tahun 2007 mengalami penurunan tingkat kunjungan.
Fasilitas yang terdapat di Curug Muara Jaya yaitu tempat parkir, tempat bermain
anak-anak, bale pertemuan, toilet, warung, shelter, mushola, camping ground, dan
loket (karcis). Jalan menuju objek wisata, dari pasar Maja sudah cukup baik dengan
konstruksi aspal, kondisinya sudah lebar sehingga dapat dilewati oleh kendaraan
mobil dua arah dengan lancar tetapi disebagian wilayah terdapat jalan yang masih
rusak tidak adanya sarana transportasi berupa angkutan umum yang menuju ke
curug tersebut, melainkan hanya mobil bak terbuka dan ojek.
27


MODUL 1 BASIS DATA SPASIAL

Lokasi: Gunung Ceremai, Desa Argamukti, Kecamatan Argapura


Koordinat : 6 55' 1.39" S 108 21' 1.24" E
Wisata Pantai
Pantai Tanjung Baru
Pantai Tanjung Baru berada di ujung Utara
sebelah Timur, pantai ini hampir tidak jauh
berbeda dengan pantai lainnya yang ada di
Kabupaten Karawang, Pantai Tanjung Baru
terletak pada teluk di semenanjung antara
Kabupaten Subang dan Kabupaten Karawang. Di
pantai ini telah tersedia Warung Makan
Tradisional dengan Menu Ikan Bakar terhampar disepanjang pantai ini, tersedia pula
Panggung Hiburan, Pasar Tradisional dan Penginapan dengan fasilitas sederhana,
tersedia pula penyewaan perahu tradisional dan sarana bilas air bersih setelah puas
berenang di laut. Lokasi Pantai Tanjung Baru terletak di Kecamatan Cilamaya 45 km
dari Ibu Kota Kabupaten Karawang.

Pantai Samudera Baru
Pantai Samudera Baru merupakan pantai wisata
andalan Kabupaten Karawang setelah Tanjung
Pakis, di pantai ini telah tersedia sarana - sarana
Wisata Pantai, pantai dengan pasir putih dan
ombak mengalun tenang, indah dan asri. Di pantai
ini telah tersedia Warung Makan Tradisional
dengan Manu Ikan Bakar terhampar di sepanjang
pantai ini, tersedia pula Panggung Hiburan dengan
Live Show Dangdut pada hari libur besar, penyewaan perahu tradisional dan sarana
bilas air bersih setelah puas berenang di laut. Lokasi Pantai Samudera Baru terletak
di Kecamatan Pedes 30 km dari Ibu Kota Kabupaten Karawang.
Wisata Danau
Situ Patenggang
Terletak di ketinggian 1600 m dpl di kaki Gunung Patuha, Situ Patenggang adalah
danau alami dengan panorama alam memukau serta dapat digunakan untuk
rekreasi. Dapat berperahu sambil menikmati hamparan danau seluas 150 ha dengan
sebuah pulau di tengahnya serta latar belakang perbukitan. Tambahkan hawa sejuk
28


MODUL 1 BASIS DATA SPASIAL

setempat (17-23 C). Keunikan lain Situ Patengang yang dibuka sebagai taman wisata
sejak 1981 ini adalah legenda klasik dari kerajaan masa lampau. Adalah seorang
pangeran keponakan Prabu Siliwangi, Ki Santang, dan seorang putri gunung cantik
jelita, Dewi Rengganis, yang saling jatuh cinta. Namun perjalanan cinta mereka tidak
semulus dan seindah yang dibayangkan oleh keduanya karena dipisahkan oleh
keadaan. Konon, air mata yang mengalir dari keduanyalah yang membentuk danau
ini, sehingga dinamai patenggang yang diambil dari kata pateangan-teangan
(Bahasa Sunda untuk saling mencari). Pada akhirnya, mereka dapat berkumpul
kembali di sebuah batu setempat yang diberi nama Batu Cinta. Konon siapapun yang
pernah berkunjung dengan pasangannya ke batu ini, maka cinta mereka akan abadi.
Yang tidak kalah menarik adalah kondisi jalan menuju Situ Patenggang yang
menawarkan hamparan hutan dan perkebunan teh yang hijau, serta kebun-kebun
sayuran dan strawberry khas setempat yang dapat Anda petik sendiri.
Alamat: Desa Patengan, Kecamatan Rancabali, Kabupaten Bandung
Koordinat : 07 09.815 S, 107 21.476 E
Telaga Warna

Taman Wisata menawarkan panorama alam
yang khas dan unik, serta fenomena alam yang
penuh dengan misteri dan nuansa mistik.
Alam pegunungan Puncak yang sejuk dan
berkabut, dengan panorama bukit dan tebing
serta perkebunan teh yang menghampar di
sepanjang jalan masuk ke lokasi telaga,
menciptakan pesona alam yang jarang dapat
Anda temukan di tempat lain. Selain itu, nuansa mistiknya tersendiri terbentuk
menurut masyarakat sekitar, tentang dua ekor ikan purba yang tinggal di danau dan
apabila ada orang yang mampu melihat ikan tersebut berenang dan meloncat ke atas
permukaan telaga, maka segala cita-citanya akan tercapai dan terkabul. Banyak
kegiatan yang bisa dilakukan di area ini seperti photo hunting, bird watching,
tracking, dan camping.

Koordinat : 6 42' 2" S, 106 59' 41" E



29


MODUL 1 BASIS DATA SPASIAL

Wisata Gua
Gua Jepang

Goa yang terletak di Bandung utara yang
dapat ditelusuri adalah Goa Jepang.
Dibangun di kawasan Taman Hutan Raya
(TAHURA) Ir. H. Juanda, goa ini dibangun
pada tahun 1942 dengan panjang lorong
keseluruhan
sekitar
350
meter.
Pembangunan Goaa Jepang dilakukan oleh
orang-orang pribumi melalui kerja paksa
atau dikenal dengan Romusha, dengan tujuan sebagai benteng pertahanan
tentara jepang.
Lokasi: Taman Hutan Raya Ir. H. Djuanda
Koordinat : 651,379'S 10737,943'E

Goa Lalay
Siapa yang tidak kenal sebuah goa wisata
di Sukabumi dengan jutaan kelelawar
yang hidup di dalamnya? Lokasi Goa Lalay
yang dekat dengan pantai wisata
Palabuhanratu ini menyimpan berbagai
keunikan tersendiri. Sebuah kunjungan
ilmiah pernah dilakukan di lokasi gua ini,
tepatnya 7 November 1937, oleh seorang
ilmuwan Belanda. Sedangkan foto Goa Lalay pertama kali dipublikasikan tahun
1938 dalam sebuah jurnal de Tropische Natuur. Ketika itu, Palabuhanratu lebih
dikenal dengan Wijnkoopsbaai dan dalam kunjungan ilmiah waktu itu lebih
banyak mengupas tentang vegetasi di sekitar kawasan tersebut. Barisan ratusan
ribu kelelawar yang meliuk-liuk, menyerupai awan hidup yang keluar dari Goa
Lalai, merupakan atraksi yang sangat menarik di waktu sore hari untuk Anda
saksikan dan hanya dapat dilihat sekitar pukul 17.00.
Lokasi: Kecamatan Palabuhanratu
Koordinat : 71,128'S 10632,599'E

30

MODUL 1 BASIS DATA SPASIAL


1.3 Latihan Basis Data


1.3.1 Melakukan Normalisasi Tabel
Latihan 1
NIM
Nm_mahasiswa Almt_mhs
email
hobi
Kd_matkul Nm_matkul sks
151 13 001
Dullie
Cisitu Baru dullie@kampus.com
Membaca, menonton, menulis
Kul111
Kalkulus
4
151 13 001
Dullie
Cisitu Baru dullie@kampus.com
Membaca, menonton, menulis
Kul112
Fisika
4
151 13 060
Asep
Cisitu Lama asep@kampus.com Panjat tebing, membaca, menyanyi Kul111
Kalkulus
4
Bagaimana bentuk normalisasi dari tabel di atas ?
Latihan 2
NI Nam Alam
Email
No_Te Id_Jabat
P
a
at
lp
an
A1 Inez Cima inez@kantor.co 26513
J1
1
hi
m
B6 Gunt Cisitu guntur@kantor. 78964
J2
7
ur
com
C1 Nila Dago nila@kantor.co 65423
J1
3
m
Bagaimana bentuk normalisasi dari tabel di atas ?

Jenis_jaba
tan
Manager

Id_departe
men
D1

Supervisor

D1

Manager

D5

Nm_departe
men
Teknologi
Energi
Teknologi
Energi
HRD

Latihan 3
No_Faktur Kode_Supp Nm_Suppl Kode_Barang Nm_barang
Tgl
Jatuh_Tempo
111
A151
A-Comp
DR128
DRAM
05/01/2013 05/02/2013
222
B123
C-Comp
GF52
Gforce
13/01/2013 13/02/2013
222


Ath25
Ath25


Bagaimana bentuk normalisasi dari tabel di atas ?

Id_caba Nm_caba
ng
ng
C1
Dago

Qty
10
10
10

Id_pe
nd
P2

Tk_Pe
nd
S2

C1

Dago

P1

S1

C4

Antapani

P2

S2

Harga
200
500
700

Jumlah
2000
5000
7000

Total
2000
5000
7000

31

MODUL 1 BASIS DATA SPASIAL


1.3.2 Membuat Model Entity Relationship (ER-Model)


Latihan 1
Basis data Kepegawaian sebuah Perusahaan.
Tentukan entitas dari kasus di atas.

Latihan 2
Perusahaan memiliki beberapa Departemen, dan Departemen dapat
berlokasi di beberapa tempat
Perusahaan memiliki banyak Pegawai yang tersebar di beberapa Departemen
Pegawai dapat terlibat dalam beberapa Project yang dikontrol oleh
Departemen dimana dia bekerja
Supervisor merupakan Pegawai yang bertugas mengontrol Pegawai
Pegawai memiliki Pekerjaan.
Tentukan entitas, atribut, dan relasi dari deskripsi di atas dengan
menggambarkan ERD-nya.

Latihan 3
Seperti Latihan 2 namun ada beberapa tambahan informasi :
Perusahaan memiliki banyak Departemen
Departemen memiliki banyak Pegawai, namun 1 Pegawai bekerja di 1
Departemen
Departemen mengontrol banyak Project
Pegawai dapat terlibat dalam beberapa Project
Supervisor dapat mengontrol Banyak Pegawai, namun 1 Pegawai hanya
memiliki 1 Supervisor
Pegawai hanya memiliki 1 Pekerjaan
Gambarkan ERD-nya.

Latihan 4
Seperti Latihan 3 namun ada beberapa tambahan informasi :
Perusahaan pasti memiliki banyak Departemen
Departemen pasti memiliki banyak Pegawai, dan setiap Pegawai pasti hanya
boleh bekerja di 1 Departemen.
Setiap Departemen belum tentu mengontrol banyak Project
Tidak semua Pegawai terlibat dalam beberapa Project
Setiap Supervisor pasti mengontrol banyak Pegawai
Semua Pegawai pasti memiliki Pekerjaan.
Gambarkan ERD-nya.



32


MODUL 1 BASIS DATA SPASIAL


1.4 Studi Kasus MP3EI : Merancang Basis Data

Seperti yang telah dipaparkan pada Sub bab di atas Propinsi Jawa Barat merupakan
salah satu propinsi yang memiliki aset berupa objek-objek pariwisata yang perlu
dikembangkan potensinya. Dalam rangka mensosialisasikan seputar keindahan dan
kekayaan Propinsi Jawa Barat, baik itu kekayaan alam, budaya dan lainnya maka
akan dibuat Sistem Informasi Geografis Pariwisata Jawa Barat.

Dengan deskripsi :
Objek Wisata;
Objek wisata pada daerah Jawa Barat memiliki macam yang sangat beragam,
seperti danau, air panas, pantai, flora&fauna, pegunungan, dll. Data spasial ini
memberikan informasi objek wisata apa saja yang berada di lokasi propinsi Jawa
Barat.

Lokasi akomodasi:
Akomodasi merupakan tempat tinggal sementara di tempat atau di daerah
tujuan yang akan dikunjungi, yaitu penginapan, hotel, losmen, dan lain-lain.
Dibeberapa daerah, perkembangan pariwisata diawali dengan tumbuhnya hotel
dan penginapan untuk melayani pelaku perjalanan. Ada yang didirikan
disepanjang pantai untuk akomodasi wisatawan yang akan menikmati keindahan
alam dan rekreasi pantai. Ada pula hotel yang dibangun di lokasi strategis untuk
akomodasi wisatawan yang perlu transit (singgah) sebelum sampai ke tujuannya.

Lokasi transportasi umum;
Transportasi umum dalam hal industri pariwisata merupakan lokasi transportasi
yang akan membawa wisatawan dari dan kearah tujuan yang ingin diketahui.
Transportasi umum dapat dibedakan menjadi 3 yakni transportasi darat (misal:
kereta api, mobil, bus pariwisata) , laut (kapal, kapal pesiar) dan udara (pesawat
terbang).

Jalur transportasi;
Jalur transportasi memberikan informasi jalur akses yang dapat dilewati untuk
mencapai tempat tujuan wisata. Informasi yang diberikan dari jalur transportasi
ini adalah informasi dengan melalui transportasi darat dan laut.

Lokasi rumah makan
Fasilitas makan dan minum (restauran, cafe) memberikan daya tarik tersendiri
untuk wisatawan mengunjungi lokasi wisata. Lokasi tempat wisata ini dapat
memberikan informasi bagi wisatawan untuk singgah di rumah makan yang
sebagian besar menyediakan jenis makanan khas daerah.
33


MODUL 1 BASIS DATA SPASIAL




Lokasi fasilitas sosial dan fasilitas umum
Fasilitas sosial dan fasilitas umum yang terdapat pada daerah wisata sebagian
besar terdiri dari tempat peribadatan, SPBU, Rumah sakit, rest area, toilet
umum, dll. Informasi lokasi ini akan sangat membantu para wisatawan untuk
memenuhi kebutuhan yang mendesak.


Batas administrasi
Lingkup kajian pada studi kasus industri pariwisata adalah pada daerah Provinsi
Jawa Barat, sehingga dalam hal ini batas administrasi hanya disekitar Jawa Barat.
Batas administrasi ini merupakan informasi mengenai lokasi dimana tempat
wisata berada.

Lokasi bank/ATM
Bank/ATM merupakan kebutuhan yang vital bagi para wisatawan. Informasi
lokasi bank/ATM yang tersebar di daerah wisata akan sangat membantu para
wisatawan untuk mengetahui bank/ATM apa yang memiliki jarak terdekat
sehingga mudah untuk diakses.

Lokasi pusat perbelanjaan
Daerah wisata pada umumnya memiliki pusat perbelanjaan dimana selain
pemandangan alamnya, wisatawan banyak yang mengunjungi pusat
perbelanjaan untuk berbelanja barang-barang yang khas pada daerah wisata.
Informasi lokasi pusat perbelanjaan akan sangat membantu para wisatawan
untuk mengakses pusat perbelanjaan dengan mudah.

Lokasi pusat kerajinan
Selain lokasi pusat perbelanjaan, ada pula lokasi pusat kerajinan, yakni dimana
sebagian besar masyarakat dalam suatu daerah memiliki industri kerajinan
tertentu. Industri ini dapat berupa industri rumah tangga, atau industri kecil.
Untuk membangun Sistem Informasi Geografis Pariwisata Jawa Barat, memerlukan
beberapa tahapan, diantaranya :
a. Identifikasi kebutuhan.
d. Implementasi
antarmuka
b. Perancangan basis data
berbasis web
c. Pembangunan basis data
e. Uji coba aplikasi web





34


MODUL 1 BASIS DATA SPASIAL

Peta dan
Informasi

Pencarian Data
Wisata

Sistem Informasi
Geografis
Pariwisata Jawa
Barat

Data Wisata
Data Wisatawan
Data Rumah Makan
Data Lokasi ATM / Bank
Data Lokasi Pusat
Perbelanjaan
Data Lokasi Pusat
Kerajinan
Data Akomodasi
Data Transportasi



Dimana data yang dibutuhkan dari hasil identifikasi kebutuhan yaitu sebagai berikut :
Data Wisata
Data lokasi Pusat Perbelanjaan
Data Wisatawan
Data lokasi Pusat Kerajinan
Data Rumah Makan
Data Akomodasi
Data Lokasi ATM/Bank
Data Transportasi
Dengan data spasial pendukung berupa :
Data spasial lokasi wisata di Jawa Barat
Data Spasial Batas Administrasi Kabupaten/Kota Jawa Barat sebagai peta dasar

Sedangkan, kebutuhan transaksi yang diperoleh dari hasil identifikasi kebutuhan,
yaitu sebagai berikut :
Pencarian data wisata
Informasi lokasi wisata berupa peta
Informasi fasilitas pendukung seperti rumah makan, transportasi, akomodasi.

Berdasarkan analisis kebutuhan yang telah dilakukan untuk pembangunan Sistem
Informasi Geografis Pariwisata Jawa Barat di atas, bagaimanakah rancangan basis
data-nya ?

Jawab :
Berikut merupakan alur kerja (workflow) dari perancangan basis data untuk Sistem
Informasi Geografis Pariwisata Jawa Barat.
1. Pertama, anda perlu membuat Desain Konseptual untuk Sistem Informasi
Geografis Pariwisata Jawa Barat, yaitu membangun representasi konseptual dari
basis data, dimana terdiri atas identifikasi entitas.
Jadi, tentukan entitas apa saja yang dibutuhkan berdasarkan informasi analisis
kebutuhan.
35


MODUL 1 BASIS DATA SPASIAL

Entitas
Wisata

Deskripsi
Entitas Wisata merupakan lokasi
berbagai objek wisata yang terdapat
di Jawa Barat
Kabupaten
Entitas Kabupaten merupakan batas
administrasi kabupaten di Jawa
Barat.
Rumah Makan Entitas Rumah Makan merupakan
merupakan fasilitas pendukung
pariwisata berupa tempat makan
terdekat dari lokasi objek wisata
Akomodasi
Entitas Akomodasi merupakan
fasilitas pendukung pariwisata
berupa tempat beristirahat yang
dekat dari lokasi objek wisata
Pusat
Entitas
Pusat
Perbelanjaan
Perbelanjaan merupakan fasilitas pendukung
pariwisata
berupa
tempat
perbelanjaan yang dekat dengan
objek pariwisata
Pusat
Entitas Pusat Kerajinan merupakan
Kerajinan
fasilitas pendukung pariwisata
berupa tempat produksi dan
penjualan kerajinan khas daerah
terkait
Atm/Bank
Entitas Atm/Bank merupakan
fasilitas pendukung pariwisata
berupa atm/Bank
Transportasi Entitas Transportasi merupakan
fasilitas pendukung pariwisata
berupa stasiun kereta, travel, dll
Fasum Fasos
Entitas Fasum Fasos merupakan
lokasi fasilitas sosial dan fasilitas
umum
Jalur
Entitas
Jalur
Transportasi
Transportasi merupakan fasilitas pendukung
pariwisata berupa stasiun kereta,
travel, dll

Objek Spasial
Point

Polygon

Point

Point

Point

Point

Point

Point

Point

Line


2. Kedua, anda perlu membuat Desain Logikal, yaitu menerjemahkan representasi
konseptual (desain konseptual) ke dalam struktur logikal dari basis data, dimana
terdiri dari desain antar hubungan. Model penyimpanan basis data yang digunakan,
yaitu model relasional, dimana basis data yang dibagi ke dalam beberapa tabel
yang saling berhubungan (relationship). Tahapan ini perlu dilakukan untuk
keperluan transaksi atau updating.
36


MODUL 1 BASIS DATA SPASIAL

Jadi, pada tahapan ini anda akan mencoba membuat Model Entity Relationship
(ER-Model), berupa derajat hubungan/relasi, kelas keanggotaan, dan Diagram ER.
Model Entity Relationship (ER-Model) :
1. Hubungan entitas Kabupaten dan Wisata :
Derajat hubungan/relasi :
Sebuah kabupaten di Jawa Barat (1) memiliki beberapa objek Wisata (n).
Satu objek Wisata (1) berada di sebuah kabupaten wilayah Jawa Barat
(m).
Kelas Keanggotaan :
Tidak setiap kabupaten di wilayah Jawa Barat memiliki objek Wisata,
tetapi Objek Wisata pasti terletak di sebuah kabupaten wilayah Jawa
Barat.
Hubungan kedua entitas ini adalah non obligatory - obligatory.
Diagram ER :
m
n

Kabupaten

memiliki

Wisata


2. Hubungan entitas Kabupaten dan Pusat Perbelanjaan :
Derajat hubungan/relasi :
Sebuah kabupaten di Jawa Barat (1) memiliki beberapa Pusat
Perbelanjaan (n).
Satu Pusat Perbelanjaan (1) berada di sebuah kabupaten wilayah Jawa
Barat (1).
Kelas Keanggotaan :
Setiap kabupaten di wilayah Jawa Barat belum tentu memiliki Pusat
Perbelanjaan, dan sebuah Pusat Perbelanjaan pasti terletak di sebuah
kabupaten wilayah Jawa Barat.
Hubungan kedua entitas ini adalah non obligatory - obligatory.
Diagram ER :

1
n
Pusat
Kabupaten

memiliki

Perbelanjaan

3. Hubungan entitas Kabupaten dan Pusat Kerajinan :
Derajat hubungan/relasi :
Sebuah kabupaten di Jawa Barat (1) memiliki beberapa Pusat Kerajinan
(n).
Satu Pusat Kerajinan (1) berada di sebuah kabupaten wilayah Jawa Barat
(1).
Kelas Keanggotaan :

37


MODUL 1 BASIS DATA SPASIAL

Setiap kabupaten di wilayah Jawa Barat belum tentu memiliki Pusat


Kerajinan, dan sebuah Pusat Kerajinan pasti terletak di sebuah
kabupaten wilayah Jawa Barat.
Hubungan kedua entitas ini adalah non obligatory - obligatory.
Diagram ER :

1
n

Kabupaten

Pusat Kerajinan

memiliki


4. Hubungan entitas Kabupaten dan Bank_ATM :
Derajat hubungan/relasi :
Sebuah kabupaten di Jawa Barat (1) memiliki beberapa Bank/ATM (n).
Satu Bank/ATM (1) berada di sebuah kabupaten wilayah Jawa Barat (1).
Kelas Keanggotaan :
Setiap kabupaten di wilayah Jawa Barat memiliki Bank/ATM, dan sebuah
Bank/ATM pasti terletak di sebuah kabupaten wilayah Jawa Barat.
Hubungan kedua entitas ini adalah obligatory - obligatory.
Diagram ER :
1
n

Kabupaten
Bank_ATM
memiliki


5. Hubungan entitas Kabupaten dan Fasilitas Umum Fasilitas Sosial (Fasum Fasos):
Derajat hubungan/relasi :
Sebuah Kabupaten (1) memiliki banyak Fasum Fasos (n).
Seorang Fasum Fasos (1) terletak pada satu kabupaten (1).
Kelas Keanggotaan :
Setiap Kabupaten pasti memiliki Fasum Fasos, dan setiap Fasum Fasos
pasti terletak pada satu Kabupaten.
Hubungan kedua entitas ini adalah obligatory - obligatory.
Diagram ER :
n
m

Kabupaten
Fasum Fasos
memiliki


6. Hubungan entitas Kabupaten dan Akomodasi :
Derajat hubungan/relasi :
Sebuah Kabupaten (1) memiliki beberapa Akomodasi (n).
Satu Akomodasi (1) dimiliki satu Kabupaten (1).
Kelas Keanggotaan :
Setiap Kabupaten pasti memiliki Akomodasi, dan sebuah Akomodasi
belum tentu terdapat di Kabupaten.
Hubungan kedua entitas ini adalah obligatory non obligatory.
Diagram ER :
1

n
38


MODUL 1 BASIS DATA SPASIAL


Kabupaten

Akomodasi
memiliki


7. Hubungan entitas Wisata dan Rumah Makan :
Derajat hubungan/relasi :
Sebuah objek Wisata (1) memiliki beberapa Rumah Makan (n).
Satu Rumah Makan (1) dimiliki satu objek Wisata (1).
Kelas Keanggotaan :
Setiap objek Wisata belum tentu dimiliki Rumah Makan, dan sebuah
Rumah Makan belum tentu terdapat di objek Wisata.
Hubungan kedua entitas ini adalah non obligatory non obligatory.
Diagram ER :
1
n

Rumah_Ma
Wisata

memiliki

kan

8. Hubungan entitas Wisata dan Transportasi :
Derajat hubungan/relasi :
Sebuah objek Wisata (1) memiliki beberapa Transportasi (n).
Satu Transportasi (1) dimiliki satu objek Wisata (1).
Kelas Keanggotaan :
Setiap objek Wisata belum tentu memiliki Transportasi, dan sebuah
Transportasi belum tentu terdapat di objek Wisata.
Hubungan kedua entitas ini adalah non obligatory non obligatory.


Diagram ER :
1
n

Wisata

Transportas
memiliki

i

9. Hubungan entitas Wisata dan Jalur Transportasi :
Derajat hubungan/relasi :
Sebuah objek Wisata (1) dapat diakses oleh beberapa Jalur Transportasi
(n).
Satu Jalur Transportasi (1) dapat mengakses banyak objek Wisata (n).
Kelas Keanggotaan :
Setiap objek Wisata belum tentu diakses oleh Jalur Transportasi, dan
sebuah Jalur Transportasi belum tentu mengakses objek Wisata.
Hubungan kedua entitas ini adalah non obligatory non obligatory.
Diagram ER :
n
m

Jalur
Wisata


memiliki

Transportas
i

39


MODUL 1 BASIS DATA SPASIAL


10. Hubungan entitas Transportasi Umum dan Jalur Transportasi :
Derajat hubungan/relasi :
Sebuah Transportasi Umum (1) dapat melewati beberapa Jalur
Transportasi (n).
Satu Jalur Transportasi (1) dapat dilewati banyak Transportasi Umum
(n).
Kelas Keanggotaan :
Setiap Transportasi Umum pasti melewati Jalur Transportasi, dan
sebuah Jalur Transportasi belum tentu dilewati oleh Transportasi
Umum.
Hubungan kedua entitas ini adalah obligatory non obligatory.
Diagram ER :
n
m

Transportasi
Jalur

melewat

Umum
Transportas
i

i
11. Hubungan entitas Wisata dan Fasilitas Umum Fasilitas Sosial (Fasum Fasos):
Derajat hubungan/relasi :
Sebuah Objek Wisata (1) memiliki banyak Fasum Fasos (n).
Seorang Fasum Fasos (1) terletak pada satu objek wisata (1).
Kelas Keanggotaan :
Setiap Objek Wisata belum tentu memiliki Fasum Fasos, dan setiap
Fasum Fasos belum tentu terletak pada satu Objek Wisata.
Hubungan kedua entitas ini adalah non obligatory non obligatory.

Diagram ER :
n
m

Wisata

Fasum Fasos
memiliki


3. Ketiga, yang juga merupakan langkah terakhir dalam perancangan basis data, anda
perlu membuat Desain Fisikal, yaitu menampilkan bagaimana struktur logikal
menjadi implementasi fisik dalam bentuk tabel di DBMS. Tahapan ini
memperlihatkan tabel skeleton dengan atribut yang sesuai.
Jadi, pada tahapan ini Anda akan mencoba membuat tabel skeleton beserta
atribut-nya. Dimana tabel-tabel beserta atribut akan dimasukkan ke dalam DBMS.
(Dalam pelatihan ini digunakan DBMS PostgreSQL/PostGIS)
Berdasarkan tahapan hubungan antar entitas yang telah ditentukan, maka
dihasilkan tabel skeleton sebagai berikut :
a. Kabupaten (#id_kab, nm_kab, luas, geom)
b. Wisata (#kd_wisata, nm_objek, jenis, dy_tarik, fasility, skala, kondisi, geom)
c. Pusat_Belanja (#id_pusblj, kategori, nm_obyk, #id_kab, geom)
40


MODUL 1 BASIS DATA SPASIAL

d.
e.
f.
g.
h.
i.
j.

Pusat_Kerajinan (#id_puskrjn, kategori, nm_obyk, #id_kab, geom)


Bank_ATM (#id_bankatm, kategori, nm_bank, #id_kab, geom)
Fasum_Fasos (#id_fasumsos, kategori, nm_obyk, #id_kab)
Kabupaten_wisata (#kd_wisat, #id_kab)
Rumah_Makan (#id_rmh_mkn, nm_rmh_mkn, jenis_mkn, #kd_wisat, geom)
Akomodasi (#id_hotel, nm_hotel, kelas, fas, id_kab, geom)
Transportasi (#id_trans, nm_pool, jenis_trans, dy_penumpa, fas_trans
#kd_wisata, geom)
k. Jalur Transportasi (#id_jal, nm_jal, geom)
l. Jalur Transportasi_Wisata (#kd_wisat, #id_jal)
m. Jalur Transportasi_Transportasi Umum (#id_jal, #id_trans)
n. Fasum Fasos_Wisata (#id_fasumfasos, #kd_wisat)


41


MODUL 1 BASIS DATA SPASIAL

MATERI 2 - PostgreSQL
2.1 Pengantar PostgreSQL
2.1.1 Pengenalan PostgreSQL
PostgreSQL merupakan sebuah Object-Relational Database Management System
(ORDBMS) berdasarkan pada PostgreSQL Versi 4.2 yang dikembangkan di Universitas
California pada Berkeley Computer Science Department. PostgreSQL sebagi pelopor
bagi banyak software DBMS lain yang kemudian menjadi komersial.
PostgreSQL memiliki lisensi GPL (General Public License) dan oleh karena itu
PostgreSQL dapat digunakan, dimodifikasi dan didistribusikan oleh setiap orang
tanpa perlu membayar lisensi (free of charge) baik untuk keperluan pribadi,
pendidikan maupun komersil. PostgreSQL merupakan DBMS yang open-source yang
mendukung bahasa SQL secara luas dan menawarkan beberapa fitur-fitur modern
seperti :
Complex Queries
Foreign Keys
Triggers
Views
Transactional Integrity
Multiversion Concurrency Control
Selain itu, PostgreSQL telah mendukung teknologi lama dengan menambahkan fitur-
fiturbaru pada :
Data Types
Functions
Operators
Aggregate Functions
Index Methods
Procedural Languages
Adapun sejarah singkat perkembangan PostgreSQL adalah sebagai berikut :
1986 : Dikembangkan pertama kali oleh Professor Michael Stonebraker, yang
disponsori oleh the Defense Advanced Research Projects Agency (DARPA).
Tahun ini merupakan inisialisasi konsep untuk pengembangan sistem.
1987 : Dikembangkan definisi dari model data, pembuatan aturan main,
konvensi rasional dan arsitektur dari media penyimpanan.
1989 : Postgre versi 1 dilaunching dengan banyak kelemahan pada konsep
aturan main.
1990 : Postgre versi 2 dilaunching dengan perbaikan pada aturan main.
1991 : Postgre versi 3 dilaunching dengan dukungan multiple storage managers,
peningkatan pada pengeksekusi query , dan ditulis ulangnya aturan main sistem.

42


MODUL 1 BASIS DATA SPASIAL

1993 : Postgre versi 4.2 dilaunching yang merupakan cikal bakal DBMS masa
depan dengan fitur yang lengkap.
1994 : Postgre berubah nama menjadi Postgres95. Andrew Yu dan Jolly Chen,
menambahkan sebuah interpreter untuk bahasa SQL.
1996 : Postgres95 berubah nama menjadi PostgreSQL. Dan versi ini telah
mencapai PostgreSQL versi 6.0 dengan kemampuan yang lebih baik dan ditandai
dengan dimulainya proyek Postgres pada Berkeley Research.
1997 Sekarang : PostgresSQL telah berkembang dan terus dikembangkan
sebagai basis data relasional dengan lisensi GPL. Hingga saat ini April 2013 versi
terakhir dari PostgreSQL adalah 9.2.4.
PostgreSQL atau sering disebut Postgres merupakan salah satu dari sejumlah basis
data besar yang menawarkan skalabilitas, keluwesan, dan kinerja yang tinggi.
Penggunaannya begitu meluas di berbagai platform dan didukung oleh banyak
bahasa pemrograman. Bagi masyarakat TI (teknologi informasi) di Indonesia,
Postgres sudah digunakan untuk berbagai aplikasi seperti web, billing system, dan
sistem informasi besar lainnya.
SQL di Postgres tidaklah seperti yang kita temui pada RDBMS umumnya. Perbedaan
penting antara Postgres dengan sistem relasional standar adalah arsitektur Postgres
yang memungkinkan user untuk mendefinisikan sendiri SQL-nya, terutama pada
pembuatan function atau biasa disebut sebagai stored procedure. Hal ini
dimungkinkan karena informasi yang disimpan oleh Postgres bukan hanya tabel dan
kolom, melainkan tipe, fungsi, metode akses, dan banyak lagi yang terkait dengan
tabel dan kolom tersebut. Semuanya terhimpun dalam bentuk class yang bisa diubah
user. Arsitektur yang menggunakan class ini lazim disebut sebagai object oriented.
Karena Postgres bekerja dengan class1, berarti Postgres lebih mudah dikembangkan
di tingkat user, dan Anda bisa mendefinisikan sebuah tabel sebagai turunan dari
tabel lain. Sebagai perbandingan bahwa sistem basis data konvensional hanya dapat
diperluas dengan mengubah source codenya, atau menggunakan modul tambahan
yang ditulis khusus oleh vendor, maka dengan Postgres memungkinkan user untuk
membuat sendiri object file atau shared library yang dapat diterapkan untuk
mendefinisikan tipe data, fungsi, bahkan bahasa yang baru.
Dengan demikian Postgres memiliki dua kekuatan besar: source code dan arsitektur
yang luwes, tentunya di samping feature penting lainnya seperti dokumentasi yang
lengkap, dsb. Disamping itu Postgres juga didukung oleh banyak antarmuka ke
berbagai bahasa pemrograman seperti C++, Java, Perl, PHP, Python, dan Tcl. ODBC
dan JDBC juga tersedia yang membuat Postgres lebih terbuka dan dapat diterapkan
secara meluas.
Arsitektur Pada PostgreSQL
PostgreSQL merupakan RDBMS yang berbasis client/server. Setiap sesi pada
PostgreSQL terdiri dari beberapa proses, yaitu :
43


MODUL 1 BASIS DATA SPASIAL

Proses pada server. Adapun proses ini meliputi mengatur file basis data,
menerima koneksi dari client ke basis data, serta melakukan kegiatan yang
diminta oleh client. Program pada sisi server ini disebut postgres.
Aplikasi user/client yang ingin melakukan operasi-operasi basis data. Aplikasi
client terdiri dari beragam aplikasi, diantaranya: aplikasi yang berisi text, aplikasi
grafik, webserver yang mengakses basis data untuk menampilkan halaman web,
atau perangkat khusus untuk basis data. Beberapa alplikasi client didukung oleh
distribusi PostgreSQL, tetapi sebagian besar dikembangkan oleh pengguna
sendiri.
Karena berbasis client/server, maka klien dan server terdapat pada host yang
berbeda pada saat komunikasi jaringan TCP/IP. Server PostgreSQL dapat
menjalankan beberapa koneksi klien sekaligus pada waktu yang bersamaan. Pada
saat hal tersebut terjadi, maka PostgreSQL menjalankan proses baru pada setiap
koneksi yang diminta oleh klien. Sehingga klien dan proses server yang baru jalan
akan berkomunikasi tanpa intervensi proses postgres yang sebenarnya.

Kelebihan PostgreSQL
Adapun beberapa kelebihan dalam menggunakan PostgreSQL adalah sebagai berikut
:
1) PostgreSQL memiliki arsitektur multiproses (forking) yang berarti memiliki
stabilitas yang lebih tinggi, sebab satu proses anak yang mati tidak akan
menyebabkan seluruh daemon matimeskipun pada kenyataannya, dulu ini
sering terjadi.
2) Dalam kondisi load tinggi (jumlah koneksi simultan besar), kecepatan
PostgreSQL sering mengalahkan MySQL untuk query dengan klausa JOIN yang
kompleks, hal ini dikarenakan PostgreSQL mendukung locking di level yang lebih
rendah, yaitu row.
3) PostgreSQL memiliki fitur OO seperti pewarisan tabel dan tipe data, atau tipe
data array yang kadang praktis untuk menyimpan banyak item data di dalam
satu record. Dengan adanya kemampuan OO ini maka di PostgreSQL, kita dapat
mendefinisikan sebuah tabel yang mewarisi definisi tabel lain.
4) PostgreSQL menyediakan hampir seluruh fitur-fitur basis data seperti yang
terdapat dalam produk basis data komersial pada umumnya.
5) PostgreSQL pun memiliki tipe data geometri (seperti titik, garis, lingkaran,
poligon) yang mungkin berguna bagi aplikasi ilmiah tertentu.
6) PostgreSQL memberikan kita kemampuan mendefinisikan sebuah field sebagai
array.
7) PostgreSQL memiliki hampir semua fasilitas standar yang biasanya diinginkan:
view (tabel virtual), trigger, subselect, stored procedure (dalam beberapa
bahasa), dan foreign key constraint.
8) PostgreSQL juga memiliki apa yang disebut rule, yaitu tindakan custom yang bisa
kita definisikan dieksekusi saat sebuah tabel di-INSERT, UPDATE, atau DELETE.
44


MODUL 1 BASIS DATA SPASIAL

9) PostgresSQL juga mempunyai kemampuan untuk membuat konektifitas dengan


basis data lain seperti pgdump, Interbase, pgaccess dan hampir semua basis
data pada Linux.
10) Kemampuannya menampung data spasial, sehingga ia bisa digunakan dalam
pembuatan situs yang berbasis Web GIS untuk pemetaan dan sebagainya.
11) PostgreSQL memiliki lisensi GPL (General Public License) dan oleh karena itu
postgreSQL dapat digunakan, dimodifikasi dan didistribusikan oleh setiap orang
tanpa perlu membayar lisensi (free of charge) baik untuk keperluan pribadi,
pendidikan maupun komersil.
12) PostgreSQL mendukung banyak jenis bahasa pemrograman, antara lain: SQL, C,
C++, Java, PHP, dll.
13) PostgreSQL juga merupakan alternatif untuk sistem basis data.

2.1.2 Instalasi PostgreSQL
Setelah mengunduh file installer PostgreSQL, ekstrak file tersebut hingga berubah
kedalam bentuk .exe kemudian double klik file tersebut. Kemudian akan tampil
halaman awal instalasi postgresql. Lanjutkan proses hingga selesai menginstalasi.
1. Tampilan awal proses instalasi PostgreSQL. Kemudian klik tombol Next.



2. Pilih direktori tempat penginstalan, biarkan saja defaultnya atau ganti sesuai
keinginan. Kemudian klik tombol Next.

45


MODUL 1 BASIS DATA SPASIAL



3. Pilih direktori tempat penyimpanan data, disarankan untuk menggunakan
default saja. Kemudian klik tombol Next.



4. Kemudian isikan password yang akan digunakan untuk koneksi ke basis data
PostgreSQL setelah proses instalasi selesai. Disarankan untuk menggunakan
password yang mudah untuk diingat. Misalnya 1234.

46


MODUL 1 BASIS DATA SPASIAL

5. Pada jendela setup port biarkan saja menggunakan default yaitu 5432.
Kemudian klik tombol Next.



6. Dijendela setup advance option biarkan saja secara default seperti yang terlihat
pada gambar. Kemudian klik tombol Next.


7. Pada jendela setup ready to install klik tombol Next. Kemudian akan muncul
jendela yang menunjukkan proses instalasi sedang berlangsung, tunggu
beberapa saat hingga proses instalasi selesai.

47


MODUL 1 BASIS DATA SPASIAL

8. Proses instalasi selesai. Uncheck kotak Launch Stack Builder, sebab jika diberi
tanda check maka proses instalasi akan dilanjutkan dengan mengunduh
beberapa program pendukung lainnya. Klik tombol Finish.


9. Untuk menjalankan PostgreSQL, pada menu Start klik all program, lalu pilih
PostgreSQL 9.x.x. Lalu klik pgAdmin III. Kemudian akan muncul jendela kerja
PostgreSQL.


10. Untuk memulai klik database pada bagian kiri, kemudian klik kanan pada
database tersebut pilih conect, kemudian masukkan password yang pada bagian
sebelumnya telah dibuat. Setelah itu PostgreSQL siap untuk digunakan.

2.1.3 Pengenalan PgAdmin pada PostgreSQL
PgAdmin merupakan merupakan tool yang disediakan PostgreSQL dan terinstal
otomatis ketika kita meng-instal PostgreSQL. PgAdmin ini mempermudah user dalam
manajemen basis data dengan tampilan visualnya. Sehingga tanpa harus menguasai
bahasa SQL, user dapat membuat basis data dan tabel-tabel juga memanipulasinya
dengan hanya menggunakan menu dan tools yang tersedia di PgAdmin.
Berikut merupakan tampilan awal PgAdmin yang dapat kita buka melalui Start >
Program Files > PostgreSQL 9.1 > pgAdmin III.

48


MODUL 1 BASIS DATA SPASIAL

Anatomi PostgreSQL Database Object


Pada database di PgAdmin, terdapat beberapa fitur objek yang memiliki fungsinya
masing-masing. Di bawah ini merupakan gambar tampilan fitur objek yang terdapat
di semua database yang dibuat di PostgreSQL.


Berikut penjelasan untuk masing-masing fitur objek.
Catalogs merupakan tempat dimana sebuah sistem manajemen basis data
relasional menyimpan metadata skema, seperti informasi tentang tabel dan
informasi basis data internal.
Extensions merupakan ekstensi yang mendukung kompabilitas penuh terhadap
standar bahasa SQL maupun bahasa pemrograman C untuk menciptakan
beberapa fungsi atau prosedur untuk beberapa kebutuhan.
Schemas merupakan tempat menyimpan tabel, dan objek lainnya seperti tipe
data, function, dan operator.Dengan adanya schemas ini, banyak pengguna
dapat mengakses basis data yang sama tanpa mengganggu satu sama lain.
Selain itu juga digunakan untuk mengorganisir objek basis data ke dalam
49


MODUL 1 BASIS DATA SPASIAL

logical groups sehingga lebih teratur. Di dalam schemas ini terdapat Tables
sebagai tempat menyimpan tabel relasi.
Slony Replication merupakan master untuk sistem replikasi beberapa perintah
dengan kemampuan cascading dan failover. Dengan adanya Slony Replication
ini, user dapat melakukan pengamanan data, kemampuan standby / failover
basis data, mengoptimalkan proses transaksi online, permintaan BI, melakukan
backup dan restore basis data, dan migrasi sistem.

Membuat basis data baru di PgAdmin
Kita dapat membuat basis data pada server yang telah tersedia di PgAdmin, yaitu
Server PostgreSQL 9.1. Untuk membuat basis data baru dengan nama Latihan,
lakukan langkah berikut.
1. Klik 2 kali pada PostgreSQL 9.1 (localhost : 5432).
2. Kemudian klik kanan pada Databases lalu pilih New Database. Dan kemudian
akan muncul window New Database, dimana disini Anda akan melakukan
pengaturan awal pada basis data yang akan dibuat.
3. Selanjutnya lakukan pengaturan pada tab Properties dengan ketentuan pada
Name isi dengan Latihan, dan pada Owner tekan drop-down arrow dan pilih
postgres sebagai user dari basis data.
4. Kemudian pilih tab Definition dan lakukan pengaturan dengan ketentuan :
- Encoding diisi dengan UTF8. Maksudnya adalah kodifikasi penyimpanan data
dalam basis data Pelatihan akan menggunakan UTF-8 yang merupakan sistem
penyimpanan yang paling umum.
- Template diisi dengan postgres. Maksudnya adalah template basis data yang
digunakan yaitu template postgres dimana dengan template ini kita hanya
bisa menyimpan tabel non spasial. (Untuk spasial gunakan
template_postgis_20, namun harus menginstal PostGIS terlebih dahulu)
- Tablespace diisi dengan pg_default. Tablespace ini merupakan sebuah
tempat penyimpanan tabel di dalam basis data yang memiliki proteksi karena
adanya konfigurasi priviledge / hak akses dan juga memungkinkan admin
untuk menentukan lokasi dimana data yang mewakili objek basis data dapat
disimpan. Dengan mengisi bagian Tablespace ini dengan pg_default, maka
tabel akan disimpan di lokasi default yang disediakan PostgreSQL.
- Collation dikosongkan. Collation ini merupakan seperangkat aturan untuk
menyimpan, menyortir, dan membandingkan data teks. Biasanya collation ini
berpengaruh pada saat menggunakan sintaks ORDER BY dan pada kasus ini
kita gunakan yang default, jadi dikosongkan.
- Character type juga dikosongkan. Character type ini merupakan pilihan
pengaturan karakter untukmenyimpan nilai atribut. Misalkan penulisan huruf
e dapat berbeda-beda tergantung dengan bahasa yang digunakan, seperti
bahasa latin. Disini kita isi dengan default jadi dikosongkan.
50


MODUL 1 BASIS DATA SPASIAL

5. Klik OK.

Membuat tabel baru pada basis data Latihan
Setelah membuat basis data baru, kita dapat memasukkan tabel ke dalam basis data
yang telah dibuat. Caranya dengan masuk ke fitur objek Schemas kemudian pilih
privileges public dan pada Tables kita dapat menyimpan tabel. Untuk membuat tabel
dengan nama Peserta, lakukan langkah-langkah berikut.
1. Lakukan klik kanan pada Tables, kemudian pilih New Table... Dan kemudian akan
muncul window New Table, dimana disini Anda akan melakukan pengaturan
awal pada basis data yang akan dibuat.
2. Selanjutnya lakukan pengaturan pada tab Properties dengan ketentuan pada
Name isi dengan Peserta, dan pada Owner tekan drop-down arrow dan pilih
postgres sebagai user dari tabel. Lalu pada tab Definition untuk Tablespace pilih
pg_default.
3. Lalu pada tab Columns, kita dapat memasukkan beberapa kolom baru ke dalam
tabel Peserta. Caranya dengan meng-klik tombol Add, kemudian ikuti langkah
berikut.
- Pada tab Properties, isi Namedengan id_peserta. Pada Data type pilih
character varying dan Length untuk panjang karakter isi dengan 10.
- Kemudian pada tab Definition, lakukan checklist pada Not NULL yang artinya
atribut id_peserta tidak boleh kosong.
- Klik OK.
Buat juga kolom baru dengan nama Nama_Peserta (Text) dan Nilai (Integer).
4. Setelah memasukkan semua kolom / field baru, selanjutnya ke tab Constraints.
Disini kita mengatur field yang mana yang akan dijadikan primary key dan key
lainnya.
- Pilih drop-down arrow kemudian pilih Primary Key, lalu klik tombol Add.
- Kemudian pada window New Primary Key, kita akan menentukan kolom yang
mana yang akan dijadikan primary key. Pilih tab Columns, kemudian pada
Column pilih kolom id_peserta lalu klik tombol Add. Klik OK.
5. Klik OK.
Maka tabel Peserta telah dibuat dan disimpan dalam basis data Latihan. Jika Anda
ingin mengeceknya, silahkan lakukan expand atau klik tanda + pada Tables, maka
Anda dapat melihat tabel yang baru Anda buat. Untuk melihat bentuk tabel, klik
pada tabel Peserta, kemudian pilih Selanjutnya lakukan pengaturan pada tab
Properties dengan ketentuan pada Name isi dengan Latihan, dan pada Owner tekan
drop-down arrow dan pilih postgres sebagai user dari View Data > View All Rows.

51


MODUL 1 BASIS DATA SPASIAL

2.1.4 SQL (Structured Query Language)


SQL merupakan sebuah bahasa komputer yang mengikuti standar ANSI (American
National Standard Institute), yaitu bahasa standar yang digunakan untuk mengakses
dan melakukan manipulasi data pada sebuah DBMS. Statemen dalam SQL dapat
digunakan untuk mengakses data atau meng-update data pada suatu database. SQL
utamanya berfungsi dalam suatu relational database seperti misalnya
PostgreSQL/PostGIS, Oracle, SQL Server, MS Acces, MySQL, Firebird dan masih
banyak lagi yang lainnya. SQL terdiri dari Data Definition Language (DDL) dan Data
Manipulation Language (DML).

Mengenal DDL pada SQL
DDL atau Data Definition Language merupakan sintaks-sintaks yang berfungsi untuk
melakukan manipulasi struktur dari basis data. Definisi lain dari DDL yaitu bahasa
dalam DBMS yang digunakan untuk membuat atau mendefinisikan objek-objek
dalam basis data. Secara umum, DDL digunakan untuk membuat tabel dan view. Dan
secara khusus dalam DBMS tertentu, DDL digunakan untuk membuat trigger,
membuat stored procedure, juga membuat database, index, rule, schema, dan lain-
lain tergantung DBMS. Berikut penjelasan singkat beberapa sintaks yang sering
dijumpai dalam DDL.
CREATE DATABASE, yang digunakan untuk membuat basis data.
CREATE TABLE, yang digunakan untuk membuat tabel.
ALTER TABLE, yang digunakan untuk merubah struktur suatu tabel.
DROP TABLE, yang digunakan untuk menghapus suatu tabel.
CREATE INDEX, yang digunakan untuk membuat suatu index dalam tabel.
DROP INDEX, yang digunakan untuk menghapus suatu index dalam tabel.

Mengenal DML pada SQL
DML atau Data Manipulation Language merupakan sintaks-sintaks yang berfungsi
untuk melakukan manipulasi data ataupun objek-objek yang ada di dalam tabel.
Definisi lain dari DML yaitu sintaks-sintaks untuk memanipulasi data pada basis data,
misalnya sintaks untuk memilih data, menyisipkan, mengubah, dan menghapus data
dalam basis data. Berikut merupakan penjelasan singkat dari sintaks-sintaks DML.
SELECT, yang digunakan untuk mengakses data dari suatu tabel dalam basis
data.
UPDATE, yang digunakan untuk melakukan update data dalam suatu tabel pada
basis data.
DELETE, yang digunakan untuk menghapus data dari suatu tabel dalam basis
data.
INSERT, yang digunakan untuk menambahkan data ke dalam suatu tabel dalam
basis data.

52


MODUL 1 BASIS DATA SPASIAL

2.1.5 Model Data Relasional


Seperti yang disebutkan sebelumnya, SQL merupakan bahasa relasional. Artinya, SQL
berbasis pada model data relasional yang pertama dikembangkan oleh E.F.Codd
pada tahun 1970. Model data relasional adalah suatu model basis data yang
menggunakan tabel dua dimensi, yang terdiri dari baris dan kolom untuk
menggambarkan sebuah berkas data. Model data relasional merupakan model data
yang saat ini paling banyak digunakan oleh DBMS komersial. Keuntungan dari
penggunaan model data relasional yaitu bentuknya yang sederhana dan mudah
untuk melakukan manipulasi data (query, update, dan lain-lain).
Model data relasional mendefinisikan kumpulan baris dari setiap tabel, namun tidak
mendefinisikan urutan baris secara khusus. Setiap baris yang disebut record
menentukan nilai dari setiap kolom atau field pada tabel. Setiap nilai dalam suatu
record merupakan satu nilai yang utuh dan tidak dapat dipecah menjadi komponen-
komponen yang lebih kecil.
Tabel-tabel yang dibentuk dari model data relasional tentunya harus memiliki relasi
antar tabel, sehingga dapat dilakukan query. Karakteristik relasi yaitu sebagai
berikut.
1. Semua elemen data pada suatu record dan atribut tertentu harus memiliki
nilai tunggal.
2. Semua elemen data pada suatu atribut tertentu dalam sebuah relasi harus
memiliki tipe dan ukuran yang sama.
3. Masing-masing atribut dalam relasi memiliki nama yang unik.
4. Pada sebuah relasi tidak ada dua atau lebih record yang sama persis.
Pada SQL terdapat dua aspek yaitu pendefinisian data untuk mendeklarasikan skema
basis data dan manipulasi data untuk melakukan query dan modifikasi basis data.
Aspek-aspek inilah yang digunakan untuk mengimplementasikan model data
relasional dalam DBMS.

2.2 Bahasa SQL
SQL di PostgreSQL tidaklah seperti yang kita temui pada RDBMS umumnya. Perbedaan
penting antara PostgreSQL dengan sistem relasional standar adalah arsitektur
PostgreSQL yang memungkinkan user untuk mendefinisikan sendiri SQL-nya, terutama
pada pembuatan function atau biasa disebut sebagai stored procedure. Hal ini
dimungkinkan karena informasi yang disimpan oleh PostgreSQL bukan hanya tabel dan
kolom, tetapi juga tipe, fungsi, metode akses, dan banyak lagi yang terkait dengan tabel
dan kolom tersebut yang terhimpun dalam bentuk class yang dapat diubah olehuser.
Arsitektur yang menggunakan class disebut denganobject oriented. Karena Postgres
bekerja dengan class, berarti PostgreSQL lebih mudah dikembangkan di tingkat user, dan
Anda bisa mendefinisikan sebuah tabel sebagai turunan dari tabel lain.
Memulai penggunaan bahasa SQL di PostgreSQL
53


MODUL 1 BASIS DATA SPASIAL

Penggunaan bahasa SQL di PostgreSQL dilakukan di Command Prompt. Jadi sebelum


memulai, kita perlu membuka command prompt dengan cara pilih tombol Start
kemudian ketik cmd kemudian tekan Enter, kemudian muncul windowCommand Prompt
seperti gambar di bawah ini.


Selanjutnya Anda perlu memindahkan directory default di command prompt ke direktori
dimana psql berada. Psql merupakan tool yang disediakan PostgreSQL untuk
mendefinisikan dan memanipulasi data dengan menggunakan bahasa SQL. Caranya
adalah dengan mengetikkan cd <direktori dimana terdapat tool psql>, yang umumnya
berada diC:\Program Files\PostgreSQL\9.1\bin. Jadi, Anda ketik di command prompt
dengan perintah cd C:\Program Files\PostgreSQL\9.1\bin. Lalu ketika psql h localhost
U postgres untuk masuk ke dalam user postgres. Untuk lebih jelasnya lihat gambar di
bawah ini.


Perintah yang berhubungan dengan SQL dan PSQLCommand
Berikut ini merupakan daftar sintaks yang tersedia di PostgreSQL 9.1 jika kita
menggunakan command prompt. Jika kita perlu menggunakan salah satu sintaks namun
kita lupa bagaimana aturan penulisan sintaks-nya, maka kita dapat menggunakan sintaks
\h dan kemudian PostgreSQL melalui command prompt akan menampilkan daftar
sintaks.
54


MODUL 1 BASIS DATA SPASIAL


Berikut ini merupakan daftar perintah yang berhubungan dengan penggunaan PSQL
(Procedural SQL) pada PostgreSQL 9.1. Sintaks-sintaks yang ditampilkan bertujuan untuk
memudahkan database administrator dalam mengelola basis data dengan PostgreSQL.
Caranya dengan mengetikkan \?.

2.2.1 Tipe Data dalam SQL


Untuk melihat tipe data apa saja yang didukung oleh PostgreSQL, maka Anda dapat
mengetikkan perintah berikut ini pada console PostgreSQL.
List of data types
-------------------------------------------------------------------------
55


MODUL 1 BASIS DATA SPASIAL

Schema|Name|Description
------------+------------------+-----------------------------------------
pg_catalog | "any"|
pg_catalog | "char"| single character
pg_catalog | "trigger"|
pg_catalog | "unknown"|
pg_catalog | abstime| absolute, limited-range date and time
pg_catalog | aclitem| access control list
pg_catalog | anyarray|
pg_catalog | anyelement|
pg_catalog | bigint| ~18 digit integer, 8-byte storage
pg_catalog | bit| fixed-length bit string
pg_catalog | bit varying| variable-length bit string
pg_catalog | boolean| boolean, 'true'/'false'
pg_catalog | box| geometric box '(lower left,upper right)'
pg_catalog | bytea| variable-length string, binary values
pg_catalog | character| char(length), blank-padded string,fixed storage length
pg_catalog| character varying| varchar(length), non-blank-paddedstring,
variable storage length
pg_catalog | cid| command identifier type, sequence in transaction id
pg_catalog | cidr| networkIP address/netmask,networkaddress
pg_catalog | circle| geometric circle '(center,radius)'
pg_catalog | cstring|
pg_catalog | date| ANSI SQL date
pg_catalog | double precision | double-precision floating pointnumber, 8-byte
storage
pg_catalog | inet| IP address/netmask, host address,netmask optional
pg_catalog | int2vector| array of int2, used in system tables
pg_catalog | integer| -2 billion to 2 billion integer, 4-byte
pg_catalog | interval| @ <number><units>, time interval
pg_catalog | language_handler |
pg_catalog | line| geometric line (not implemented)'
pg_catalog | lseg| geometric line segment '(pt1,pt2)'
pg_catalog | macaddr| XX:XX:XX:XX:XX:XX, MAC address
pg_catalog | money| monetary amounts, $d,ddd.cc
pg_catalog | name| 63-character type for storing system id
pg_catalog | numeric| numeric(precision, decimal), arbitrary
pg_catalog | oid| object identifier(oid), maximum 4billion
pg_catalog | oidvector| array of oids, used in system tables
pg_catalog | path| geometric path '(pt1,...)'
pg_catalog | point| geometric point '(x, y)'
56


MODUL 1 BASIS DATA SPASIAL

pg_catalog | polygon| geometric polygon '(pt1,...)'


pg_catalog | real| single-precision floating pointnumber, 4-byte storage
pg_catalog | record|
pg_catalog | refcursor| reference cursor (portal name)
pg_catalog | regclass| registered class
pg_catalog | regoper| registered operator
pg_catalog | regoperator| registered operator (with args)
pg_catalog | regproc| registered procedure
pg_catalog | regprocedure| registered procedure (with args)
pg_catalog | regtype| registered type
pg_catalog | reltime| relative, limited-range time interval
pg_catalog | smallint| -32 thousand to 32 thousand, 2-byte
pg_catalog | smgr| storage manager
pg_catalog | text| variable-length string, nolimitspecified
pg_catalog | tid| (Block,offset),physical location oftuple
pg_catalog | time with time zone| hh:mm:ss, ANSI SQL time
pg_catalog | time without time zone| hh:mm:ss, ANSI SQL time
pg_catalog | timestamp with time zone| date and time with time zone
pg_catalog | timestamp without time zone | date and time
pg_catalog | tinterval| (abstime,abstime), time interval
pg_catalog | void|
pg_catalog | xid| transaction id
(61 rows)
Terlihat bahwa tipe data yang didukung oleh PostgreSQL berjumlah 61 buah. Tipe
data di atas merupakan tipe data tambahan dari tipe data default yang didukung
PostgreSQL berdasarkan standar ANSI 92. Jadi tidak terlihat tipe data seperti
VARCHAR, VARCHAR[], atau INT. Karena secara default, PostgreSQL telah
menyediakan hampir seluruh tipe data yang umum digunakan pada DBMS.

2.2.2 Implementasi DDL pada PostgreSQL
Create
Create Database
Sintaks ini digunakan untuk membuat basis data dalam PostgreSQL. Dimana
langkah membuat basis data dengan menggunakan sintaks create yaitu sebagai
berikut :
Buka command prompt.
Pindahkan direktori ke tempat dimana terdapat tools psql, yaitu di C:\Program
Files\PostgreSQL\9.1\bin. Caranya yaitu dengan mengetikkan cd C:\Program
Files\PostgreSQL\9.1\bin di command prompt.

57


MODUL 1 BASIS DATA SPASIAL

Sekarang kita sudah bisa membuat basis data baru di PostgreSQL. Caranya
dengan mengetikkan sintaks createdb h localhost U postgres <nm_basis
data>.Jadi jika anda ingin membuat basis data dengan nama pelatihan, maka
sintaks yang harus anda ketikkan yaitu createdb h localhost U postgres
pelatihan.
Maka basis data pelatihan pun telah dibuat. Anda dapat mengeceknya di
PgAdmin.
Selanjutnya Anda perlu masuk ke dalam basis data pelatihan jika ingin membuat
tabel ataupun manipulasi data, dengan cara mengetikkan :
psql h localhost U postgres pelatihan

Create Table
Tabel merupakan wadah dimana data tersimpan. Setiap tabel memiliki field atau
kolom dan record atau baris. Terdapat beberapa ketentuan dalam membuat
tabel, yaitu :
1. Harus memiliki field yang dapat dijadikan identitas bagi field lainnya. Jadi isi
field yang menjadi identitas harus unik atau tidak ada yang sama, field
identitas ini disebut dengan primary key.
2. Primary key tidak boleh bernilai null (kosong), maka Anda harus
mendeklarasikan field yang menjadi primary key sebagai not null. Jika Anda
tidak mendeklarasikan sebagai not null, maka PostgreSQL secara default akan
menganggapnya nullable (boleh kosong).
Sintaks untuk membuat tabel yaitu :
create table<nama_tabel>(<nama field1><tipe
data1><modifikasi1><constraint1>, <nama field2><tipe
data2><modifikasi2><constraint2>, ........dst);
Disini Anda akan mencoba membuat tabel di dalam basis data pelatihan dengan
ketentuan sebagai berikut.
Nama Tabel : Peserta
Field/kolom yang harus dibuat :
Nama Field
Tipe Data
Contraint
Modifikasi
id
integer
Primary key
Not null
nama
Varchar(50)
-
-

Maka untuk membuat tabel dengan ketentuan di atas, yaitu dengan mengetikkan
sintaks berikut.
Create table peserta(id integer not null primary key, nama varchar(50));
Selanjutnya untuk melihat tabel yang telah dibuat , ketik \dt
Jika anda ingin melihat definisi dari tabel peserta, ketik \d peserta
Untuk lebih jelasnya, lihat gambar di bawah ini.

58


MODUL 1 BASIS DATA SPASIAL


Buat juga tabel dengan nama daftar_pelatihan, yang berisi kolom sebagai berikut.
Nama Field
Kd_pelatihan
Nm_pelatihan
Id_peserta

Tipe Data
Varchar(5)
Varchar(50)
integer

Contraint
Primary key
-
Foreign key

Modifikasi
Not null
Not null
Not null


Jadi, ketikkan sintaks berikut :
create table daftar_pelatihan(kd_pelatihan varchar(5) not null primary key,
nm_pelatihan varchar(50) not null, id_peserta integer not null, constraint
daftar_pelatihan foreign key (id_peserta) references peserta (id));

Sekarang coba buat tabel jadwal yang berisi kolom sebagai berikut.
Nama Field
Tipe Data
Contraint
Modifikasi
Kd_pelatihan
Varchar(5)
Primary key
Not null
jadwal
Varchar(50)
-
-
setelah membuat ketiga tabel di atas, selanjutnya coba anda isi tabel-tabel
tersebut melalui PgAdmin.
Create Index
Indeks digunakan untuk mempercepat akses pencarian nilai atau data dalam basis
data. Dalam suatu kasus ketika mengakses sebuah tabel, biasanya DBMS akan
membaca seluruh tabel baris perbaris hingga selesai. Ketika baris sangat banyak
dan hasil query hanya sedikit, maka hal ini sangat tidak efisien. Dengan adanya
indeks ini, maka kita tinggal membuka indeks, kita dapat segera menemuka nilai
atau data yang kita butuhkan. Cara penulisan sintaks untuk membuat index
adalah sebagai berikut.
create index <nama_indeks> on <nama_tabel> (<nama_atribut>);
Jika kita ingin mencari nama-nama peserta secara cepat, kita dapat membuat
sebuah indeks (index) pada kolom nama pada tabel peserta. Maka sintaks yang
harus dimasukkan, yaitu :
create index indeks_peserta on peserta (nama);
Create View
View dapat dianggap sebagai tabel virtual/maya, dengan kata lain tabel view tidak
benar-benar ada secara fisik di basis data, tetapi dapat dilihat oleh user sebagai
59


MODUL 1 BASIS DATA SPASIAL

tabel pada umumnya. Cara penulisan sintaks untuk membuat view adalah sebagai
berikut.
create view <nama_view> as select <nama_atribut> from <nama_tabel>;
View ini biasanya berupa tabel yang terdiri dari beberapa atribut, dimana atribut-
atribut pembentuknya berasal dari beberapa tabel yang memiliki relasi.
Sebagai contoh Anda akan membuat tabel view dimana terdapat atribut nama
dari tabel peserta dan atribut nm_pelatihan pada tabel daftar_pelatihan. Jadi
sintaks yang harus anda ketik, yaitu :
create view view_pelatihan as select nama, nm_pelatihan from peserta,
daftar_pelatihan;
Kemudian untuk melihat struktur tabel view view_pelatihan, ketik \d
view_pelatihan. Dan untuk melihat isi tabel view_pelatihan, ketik sintaks berikut
:
select* from view_pelatihan where nama=<nama_anda>;
Untuk lebih jelasnya, lihat gambar di bawah ini.


Drop
Drop Table
Sintaks ini digunakan untuk menghapus tabel yang telah kita buat dalam basis
data. Aturan penulisan sintaks ini yaitu :
drop table <nama_tabel>;
Sekarang coba Anda hapus tabel jadwal, maka sintaks yang harus Anda ketik,
yaitu :
drop table jadwal;
Drop Index
Sintaks ini digunakan untuk menghapus indeks tabel yang telah kita buat dalam
basis data. Aturan penulisan sintaks ini yaitu :
drop index <nama_indeks>;
Sekarang coba Anda hapus indeks tabel indeks_peserta, maka sintaks yang harus
Anda ketik, yaitu :
drop index indeks_peserta;
60


MODUL 1 BASIS DATA SPASIAL

Drop View
Sintaks ini digunakan untuk menghapus tabel view yang telah kita buat dalam
basis data. Aturan penulisan sintaks ini yaitu :
drop view <nama_view>;
Sekarang coba Anda hapus tabel view view_pelatihan, maka sintaks yang harus
Anda ketik, yaitu :
drop view view_pelatihan;

Alter
Alter merupakan sintaks yang digunakan untuk merubah struktur tabel, baik itu
menambah field/kolom ataupun menghapus field/kolom. Aturan penulisan sintaks
untuk menambah kolom pada tabel, yaitu :
alter table <nama_tabel> add <nama_field><tipe_data>;
Jadi, jika Anda ingin menambahkan field tgl_lahir dengan tipe data DATE ke dalam
tabel peserta, maka sintaks yang harus Anda masukkan, yaitu :
alter table peserta add tgl_lahir date;
Sedangkan aturan penulisan sintaks untuk menghapus kolom pada tabel, yaitu :
alter table <nama_tabel> drop <nama_field>;
Jadi, jika Anda ingin menghapus field tgl_lahir, maka sintaks yang harus Anda
masukkan :
alter table peserta drop tgl_lahir;
sekarang coba Anda tambahkan field nilai dengan tipe data integer pada tabel
peserta !


2.2.3 Implementasi DML pada PostgreSQL
Select
Simple Select
Simple select merupakan sintaks yang digunakan secara umum untuk memilih
data. Berikut beberapa contoh penggunaan sintaks select yang umum.
1. Memilih data dari tabel daftar_pelatihan, dimana yang akan ditampilkan yaitu
kode pelatihan dan pelatihan apa saja yang diikuti oleh peserta dengan id=1.
Select* from daftar_pelatihan where id_peserta=1;
61


MODUL 1 BASIS DATA SPASIAL


2. Memilih data dari tabel peserta, dimana yang akan ditampilkan yaitu nama
peserta dengan id = 2.
Select nama from peserta where id=2;


Penggunaan sintaks kondisi WHERE juga dapat dihubungkan secara logis dengan
menggunakan kata kunci OR, AND, dan NOT seperti contoh 3.
3. Memilih data tabel daftar_pelatihan, dimana yang akan ditampilkan yaitu
nm_pelatihan yang tidak diikuti oleh peserta dengan id_peserta=2. Berarti
dalam kasus ini digunakan kata kunci NOT.
Select nm_pelatihan from daftar_pelatihan where not id_peserta=2;


Joins
Penggunaan joins pada sintaks select dimaksudkan untuk memilih data atribut
dari dua atau lebih tabel yang kemudian ditampilkan dalam sebuah tabel view.
Dengan catatan tabel-tabel yang digunakan harus memiliki relasi yang jelas. Untuk
lebih jelasnya, lihat contoh di bawah ini.
1. Memilih data dari tabel peserta dan daftar_pelatihan, dimana yang akan
ditampilkan yaitu atribut id dan nama dari tabel peserta dan nm_pelatihan
dari tabel daftar_pelatihan untuk peserta dengan id=2.
Select id, nama, nm_pelatihan from peserta, daftar_pelatihan where
id=id_peserta and id=2;
62


MODUL 1 BASIS DATA SPASIAL

2.


Memilih data dari tabel peserta dan daftar_pelatihan, dimana yang akan
ditampilkan yaitu atribut id dan nama dari tabel peserta dan kd_pelatihan
dan nm_pelatihan dari tabel daftar_pelatihan untuk peserta dengan id=1
atau id=2.
Select id, nama, kd_pelatihan, nm_pelatihan from peserta, daftar_pelatihan
where id=id_peserta and (id=1 or id=2);


Aggregate Operators
SQL menyediakan aggregate operators (seperti AVG, COUNT, SUM, MIN, MAX)
yang menggunakan nama atribut sebagai sebuah argumen. Nilai aggregate
operator dihitung dari keseluruhan nilai dari atribut yang ditentukan dari seluruh
tabel. Jika kelompok yang dispesifikasikan dalam query perhitungan dilakukan
hanya pada seluruh nilai pada kelompok tertentu lihat contoh aggregation by
groups.
Contoh : Menghitung nilai rata-rata dari nilai para peserta, dilihat dari atribut nilai
di tabel peserta.
Select avg(nilai) as avg_nilai from peserta;


Aggregation by Groups
SQL memungkinkan pembagian record dari sebuah tabel ke dalam kelompok-
kelompok yang disebut dengan aggregation by groups. Dengan cara ini kita dapat
melakukan perhitungan berdasarkan pengelompokkan atribut.
63


MODUL 1 BASIS DATA SPASIAL

Pembagian record ke dalam beberapa kelompok dilakukan dengan menggunakan


kata kunci GROUP BY diikuti dengan daftar atribut yang mendefinisikan
pengelompokkan.
Contoh : Anda akan mencoba menampilkan jumlah pelatihan yang diikuti oleh
masing-masing peserta yang dikelompokkan berdasarkan id dan nama.
select id, nama, count(id_peserta) from peserta, daftar_pelatihan where
id=id_peserta group by id,nama;


Union, Intersect, Except
Operasi ini menghitung union, intersect, dan menetapkan perbedaan teoritis
record diturunkan dari dua subqueri.
Berikut merupakan contoh query untuk UNION :
Select nama, nilai from peserta where id=1 UNION select nama, nilai from
peserta where id=2;


Perintah di atas memiliki arti bahwa kita ingin menampilkan nilai atribut nama
dan nilai dari tabel peserta untuk id=1 dan digabung dengan nilai atribut nama
dan nilai dari tabel peserta untuk id=2.
Selanjutnya, berikut contoh query untuk INTERSECT :
Select id, nama, nilai from peserta where nilai > 75 INTERSECT select id, nama,
nilai from peserta where nilai > 85;

64


MODUL 1 BASIS DATA SPASIAL

Perintah di atas memiliki arti bahwa kita ingin menampilkan nilai atribut id,
namadan nilai dari tabel peserta untuk nilai lebih besar dari 75 dan di-intersect
dengan yang nilai lebih besar dari 85.
Dan terakhir, berikut contoh query untuk EXCEPT :
Select id, nama, nilai from peserta where nilai > 75 EXCEPT select id, nama, nilai
from peserta where nilai > 85;


Perintah di atas memiliki arti bahwa kita ingin menampilkan nilai atribut id,
namadan nilai dari tabel peserta untuk nilai lebih besar dari 75, KECUALI yang
nilai-nyalebih besar dari 85.

Insert into
Perintah insert into digunakan untuk memasukkan nilai record atau baris ke dalam
field atau kolom atribut. Kita dapat melakukan pengisian record untuk semua field
ataupun sebagian field pada sebuah tabel.
Aturan penulisan sintaks untuk memasukkan nilai record dengan insert into yaitu :
INSERT INTO <nama_tabel> (<nama_atribut1>,< nama_atribut2>, ....dst) VALUES
(<nilai_atribut1>, <nilai_atribut2>, ....dst);
Berikut merupakan contoh penggunaan sintaks insert into.
1. Memasukkan nilai atribut untuk atribut id, nama, dan nilai pada tabel peserta.
Dimana nilai yang ingin dimasukkan id = 10, nama = denaz, nilai = 78. Maka
sintaks yang harus dimasukkan, yaitu :
Insert into peserta (id, nama, nilai) values (10, denaz, 78);


Kemudian untuk mengecek hasil record yang dimasukkan, ketik sintaks select*
from peserta where id=10; (id=10 merupakan id dari record yang baru
dimasukkan).

65


MODUL 1 BASIS DATA SPASIAL

2. Memasukkan nilai atribut untuk atribut id dan nama pada tabel peserta.Dimana
nilai yang ingin dimasukkan id = 12 dan nama = citra. Maka sintaks yang harus
dimasukkan, yaitu :
Insert into peserta (id, nama) values (12, citra);


Kemudian untuk mengecek hasil record yang dimasukkan, ketik sintaks select*
from peserta where id=12; (id=12 merupakan id dari record yang baru
dimasukkan).

Update
Perintah UPDATE ini digunakan untuk merubah satu atau beberapa atribut ataupun
record. Perubahan yang dilakukan tidak hanya bisa dilakukan pada nilai atribut,
tetapi juga bisa digunakan untuk merubah cara penulisan nilai atribut.
Aturan penulisan sintaks untuk memasukkan nilai record dengan update yaitu :
UPDATE <nama_tabel> SET <nama_atribut> = <nilai_baru> [,<nama_atribut1> =
<nilai_baru1>] WHERE <kondisi>;
Berikut merupakan contoh penggunaan sintaks update :
1. Melakukan update pada tabel peserta dimana nilai atribut nilai untuk peserta
dengan nama = citra, dari nilai yang masih kosong menjadi 88. Maka sintaks
yang harus dimasukkan, yaitu :
Update peserta set nilai=88 where nama=citra;


Kemudian untuk mengecek hasil record yang sudah di-update, ketik sintaks
select* from peserta where nama=citra; .
2. Melakukan update pada tabel peserta dimana seluruh nilai field nama akan
diubah penulisannya menjadi huruf besar atau huruf kapital. Maka sintaks yang
harus dimasukkan, yaitu :
Update peserta set nama = UPPER (nama);

66


MODUL 1 BASIS DATA SPASIAL


Kemudian untuk mengecek tabel setelah seluruh nilai atribut untuk atribut nama
diubah menjadi huruf kapital, maka ketik sintaks select* from peserta;
Delete
Kita dapat menggunakan perintah DELETE untuk menghapus record atau baris.
Aturan penulisan sintaks untuk menghapus record dengan delete yaitu :
DELETE FROM <nama_tabel> WHERE <kondisi>;
Untuk menggunakan sintaks ini, kita tidak boleh lupa menuliskan kondisi, jika tidak
maka seluruh record akan terhapus.
Sebagai contoh, jika kita ingin menghapus record pada tabel peserta untuk peserta
dengan id = 10. Maka sintaks yang harus dimasukkan, yaitu :
Delete from peserta where id=10;


Kemudian untuk mengecek tabel setelah record untuk peserta dengan id = 10
dihapus, maka ketik sintaks select* from peserta;

2.3 Latihan Implementasi Bahasa SQL pada Model Data Relasional
2.3.1 Mengimplementasikan Model Data ER pada PostgreSQL
Pada Materi I, kita telah membahas teori dasar Basis Data, mulai dari definisi basis
data, DBMS, normalisasi, Model ER, hingga perancangan basis data. Disini kita akan
mencoba mengimplementasikan model data ER yang telah kita buat pada latihan
perancangan basis data Sistem Informasi Geografis Pariwisata Jawa Barat. Dimana
didalamnya terdapat pembuatan model ER yang akan kita implementasikan dalam
basis data PostgreSQL.

67


MODUL 1 BASIS DATA SPASIAL

Berikut merupakan Model Entity Relationship (ER-Model) untuk Sistem Informasi


Geografis Pariwisata Jawa Barat.
1. Hubungan entitas Kabupaten dan Wisata :
Derajat hubungan/relasi :
Sebuah kabupaten di Jawa Barat (1) memiliki beberapa objek Wisata (n).
Satu objek Wisata (1) berada di sebuah kabupaten wilayah Jawa Barat
(m).
Kelas Keanggotaan :
Tidak setiap kabupaten di wilayah Jawa Barat memiliki objek Wisata,
tetapi Objek Wisata pasti terletak di sebuah kabupaten wilayah Jawa
Barat.
Hubungan kedua entitas ini adalah non obligatory - obligatory.
Diagram ER :
m
n

Kabupaten

memiliki

Wisata



2. Hubungan entitas Kabupaten dan Pusat Perbelanjaan :
Derajat hubungan/relasi :
Sebuah kabupaten di Jawa Barat (1) memiliki beberapa Pusat
Perbelanjaan (n).
Satu Pusat Perbelanjaan (1) berada di sebuah kabupaten wilayah Jawa
Barat (1).
Kelas Keanggotaan :
Setiap kabupaten di wilayah Jawa Barat belum tentu memiliki Pusat
Perbelanjaan, dan sebuah Pusat Perbelanjaan pasti terletak di sebuah
kabupaten wilayah Jawa Barat.
Hubungan kedua entitas ini adalah non obligatory - obligatory.
Diagram ER :

1
n
Pusat
Kabupaten

memiliki

Perbelanjaan

3. Hubungan entitas Kabupaten dan Pusat Kerajinan :
Derajat hubungan/relasi :
Sebuah kabupaten di Jawa Barat (1) memiliki beberapa Pusat Kerajinan
(n).
Satu Pusat Kerajinan (1) berada di sebuah kabupaten wilayah Jawa Barat
(1).
Kelas Keanggotaan :

68


MODUL 1 BASIS DATA SPASIAL

Setiap kabupaten di wilayah Jawa Barat belum tentu memiliki Pusat


Kerajinan, dan sebuah Pusat Kerajinan pasti terletak di sebuah
kabupaten wilayah Jawa Barat.
Hubungan kedua entitas ini adalah non obligatory - obligatory.
Diagram ER :

1
n

Kabupaten

memiliki

Pusat Kerajinan


4. Hubungan entitas Kabupaten dan Bank_ATM :
Derajat hubungan/relasi :
Sebuah kabupaten di Jawa Barat (1) memiliki beberapa Bank/ATM (n).
Satu Bank/ATM (1) berada di sebuah kabupaten wilayah Jawa Barat (1).
Kelas Keanggotaan :
Setiap kabupaten di wilayah Jawa Barat memiliki Bank/ATM, dan sebuah
Bank/ATM pasti terletak di sebuah kabupaten wilayah Jawa Barat.
Hubungan kedua entitas ini adalah obligatory - obligatory.
Diagram ER :
1
n

Kabupaten
Bank_ATM
memiliki


5. Hubungan entitas Kabupaten dan Fasilitas Umum Fasilitas Sosial (Fasum Fasos):
Derajat hubungan/relasi :
Sebuah Kabupaten (1) memiliki banyak Fasum Fasos (n).
Seorang Fasum Fasos (1) terletak pada satu kabupaten (1).
Kelas Keanggotaan :
Setiap Kabupaten pasti memiliki Fasum Fasos, dan setiap Fasum Fasos
pasti terletak pada satu Kabupaten.
Hubungan kedua entitas ini adalah obligatory - obligatory.
Diagram ER :
n
m

Kabupaten
Fasum Fasos
memiliki


6. Hubungan entitas Kabupaten dan Akomodasi :
Derajat hubungan/relasi :
Sebuah Kabupaten (1) memiliki beberapa Akomodasi (n).
Satu Akomodasi (1) dimiliki satu Kabupaten (1).
Kelas Keanggotaan :
Setiap Kabupaten pasti memiliki Akomodasi, dan sebuah Akomodasi
belum tentu terdapat di Kabupaten.
Hubungan kedua entitas ini adalah obligatory non obligatory.

69


MODUL 1 BASIS DATA SPASIAL

Diagram ER :
1
n

Kabupaten

Akomodasi
memiliki


7. Hubungan entitas Wisata dan Rumah Makan :
Derajat hubungan/relasi :
Sebuah objek Wisata (1) memiliki beberapa Rumah Makan (n).
Satu Rumah Makan (1) dimiliki satu objek Wisata (1).
Kelas Keanggotaan :
Setiap objek Wisata belum tentu dimiliki Rumah Makan, dan sebuah
Rumah Makan belum tentu terdapat di objek Wisata.
Hubungan kedua entitas ini adalah non obligatory non obligatory.
Diagram ER :
1
n

Rumah_Ma
Wisata


memiliki

kan

8. Hubungan entitas Wisata dan Transportasi :
Derajat hubungan/relasi :
Sebuah objek Wisata (1) memiliki beberapa Transportasi (n).
Satu Transportasi (1) dimiliki satu objek Wisata (1).
Kelas Keanggotaan :
Setiap objek Wisata belum tentu memiliki Transportasi, dan sebuah
Transportasi belum tentu terdapat di objek Wisata.
Hubungan kedua entitas ini adalah non obligatory non obligatory.
Diagram ER :
1
n

Wisata
Transportas

memiliki

i

9. Hubungan entitas Wisata dan Jalur Transportasi :
Derajat hubungan/relasi :
Sebuah objek Wisata (1) dapat diakses oleh beberapa Jalur Transportasi
(n).
Satu Jalur Transportasi (1) dapat mengakses banyak objek Wisata (n).
Kelas Keanggotaan :
Setiap objek Wisata belum tentu diakses oleh Jalur Transportasi, dan
sebuah Jalur Transportasi belum tentu mengakses objek Wisata.
Hubungan kedua entitas ini adalah non obligatory non obligatory.
Diagram ER :
n
m

Jalur

Wisata

memiliki

Transportas

i
70


MODUL 1 BASIS DATA SPASIAL

10. Hubungan entitas Transportasi Umum dan Jalur Transportasi :


Derajat hubungan/relasi :
Sebuah Transportasi Umum (1) dapat melewati beberapa Jalur
Transportasi (n).
Satu Jalur Transportasi (1) dapat dilewati banyak Transportasi Umum
(n).
Kelas Keanggotaan :
Setiap Transportasi Umum pasti melewati Jalur Transportasi, dan
sebuah Jalur Transportasi belum tentu dilewati oleh Transportasi
Umum.
Hubungan kedua entitas ini adalah obligatory non obligatory.
Diagram ER :
n
m

Transportasi
Jalur

melewat

Umum
Transportas
i

i
11. Hubungan entitas Wisata dan Fasilitas Umum Fasilitas Sosial (Fasum Fasos):
Derajat hubungan/relasi :
Sebuah Objek Wisata (1) memiliki banyak Fasum Fasos (n).
Seorang Fasum Fasos (1) terletak pada satu objek wisata (1).
Kelas Keanggotaan :
Setiap Objek Wisata belum tentu memiliki Fasum Fasos, dan setiap
Fasum Fasos belum tentu terletak pada satu Objek Wisata.
Hubungan kedua entitas ini adalah non obligatory non obligatory.
Diagram ER :
n
m

Wisata
Fasum Fasos

memiliki


Berdasarkan model ER di atas, maka kita harus membuat basis data dengan nama
SIG_Pariwisata yang terdiri dari 5 tabel skeleton, yaitu :
1) Kabupaten (#id_kab, nm_kab, luas, geom)
2) Wisata (#kd_wisata, nm_objek, jenis, dy_tarik, fasility, skala, kondisi, geom)
3) Pusat_Belanja (#id_pusblj, kategori, nm_obyk, #id_kab, geom)
4) Pusat_Kerajinan (#id_puskrjn, kategori, nm_obyk, #id_kab, geom)
5) Bank_ATM (#id_bankatm, kategori, nm_bank, #id_kab, geom)
6) Fasum_Fasos (#id_fasumsos, kategori, nm_obyk, #id_kab)
7) Kabupaten_wisata (#kd_wisat, #id_kab)
8) Rumah_Makan (#id_rmh_mkn, nm_rmh_mkn, jenis_mkn, #kd_wisat, geom)
9) Akomodasi (#id_hotel, nm_hotel, kelas, fas, id_kab, geom)
10) Transportasi (#id_trans, nm_pool, jenis_trans, dy_penumpa, fas_trans
#kd_wisata, geom)
71


MODUL 1 BASIS DATA SPASIAL

11) Jalur Transportasi (#id_jal, nm_jal, geom)


12) Jalur Transportasi_Wisata (#kd_wisat, #id_jal)
13) Jalur Transportasi_Transportasi Umum (#id_jal, #id_trans)
14) Fasum Fasos_Wisata (#id_fasumfasos, #kd_wisat)

Membuat basis data
Sekarang Anda akan mencoba membuat basis data terlebih dahulu dengan nama
SIG_Pariwisata.Langkahnya adalah sebagai berikut :
Buka command prompt.
Kemudian pindah direktori dengan mengetikkan cd C:\Program
Files\PostgreSQL\9.1\bin di command prompt.
Sekarang kita sudah bisa membuat basis data baru di PostgreSQL. Caranya
dengan mengetikkan sintaks createdb h localhost U postgres <nm_basis
data>.
Anda dapat memverifikasi keberadaan basis data baru Anda dengan menggunakan
sintaks :
psql h localhost U postgres -l

Membuat tabel dalam basis data SIG_Pariwisata


Sekarang Anda akan membuat tabel dalam basis data SIG_Pariwisata, dimana
sintaks untuk membuat tabel yaitu :
create table<nama_tabel>(<nama field1><tipe
data1><modifikasi1><constraint1>, <nama field2><tipe
data2><modifikasi2><constraint2>, ........dst);
Berikut tabel-tabel non spasial yang harus dibuat dalam basis data SIG_Pariwisata
dengan ketentuan sebagai berikut.
Tabel Pusat_Belanja. Field/kolom yang harus dibuat :
Nama Field
Tipe Data
Contraint
Modifikasi
Id_pusblj
Varchar(10)
Primary key
Not null
72


MODUL 1 BASIS DATA SPASIAL

Kategori
Nm_obyk
Id_kab
Geom

Varchar(50)
Varchar(50)
Varchar(20)
oid

-
-
Foreign key
-

-
-
Not null
-


Tabel Pusat_Kerajinan. Field/kolom yang harus dibuat :
Nama Field
Tipe Data
Contraint
Modifikasi
Id_puskrjn
Varchar(10)
Primary key
Not null
Kategori
Varchar(50)
-
-
Nm_obyk
Varchar(50)
-
-
Id_kab
Varchar(20)
Foreign key
Not null
Geom
oid
-
-

Tabel Bank_ATM. Field/kolom yang harus dibuat :
Nama Field
Tipe Data
Contraint
Modifikasi
Id_bankatm
Varchar(10)
Primary key
Not null
Kategori
Varchar(50)
-
-
Nm_obyk
Varchar(50)
-
-
Id_kab
Varchar(20)
Foreign key
Not null
Geom
oid
-
-

Tabel Fasum Fasos_Kabupaten. Field/kolom yang harus dibuat :
Nama Field
Tipe Data
Contraint
Modifikasi
Id_fasumsos
Varchar(10)
Primary key
Not null
Kategori
Text
-
-
Nm_obyk
Varchar(50)
-
-
Id_kab
Varchar(10)
Foreign key
Not null
Geom
oid
-
-

Tabel Wisata_Kabupaten. Field/kolom yang harus dibuat :
Nama Field
Tipe Data
Contraint
Modifikasi
Kd_wisat
Varchar(10)

Not null
Id_kab
Varchar(10)

Not null

Tabel Rumah_Makan. Field/kolom yang harus dibuat :
Nama Field
Tipe Data
Contraint
Modifikasi
Id_rm_mkn
Varchar(10)
Primary key
Not null
Nm_rm_mkn
Varchar(50)
-
-
jenis_rm
Varchar(50)
-
-
Kd_wisata
Varchar(10)
Foreign key
Not null
Geom
oid
-
-

Tabel Akomodasi. Field/kolom yang harus dibuat :
Nama Field
Tipe Data
Contraint
Modifikasi
73


MODUL 1 BASIS DATA SPASIAL

Id_hotel
Varchar(10)
Primary key
Nm_hotel
Varchar(50)
-
Kelas
Text
-
Fas
Varchar(50)
-
Id_kab
Varchar(10)
Foreign key
Geom
oid
-
Tabel Transportasi. Field/kolom yang harus dibuat :
Nama Field
Tipe Data
Contraint
Id_trans
Varchar(10)
Primary key
Nama_pool
Varchar(50)
-
Jenis_tran
Text
-
Dy_penumpa
Varchar(50)
-
Fas_trans
xml
-
Kd_wisata
Varchar(10)
Foreign key
Geom
oid
-

Not null
-
-
-
Not null
-
Modifikasi
Not null
-
-
-
-
Not null
-

Tabel Fasum Fasos_Wisata. Field/kolom yang harus dibuat :


Nama Field
Tipe Data
Contraint
Modifikasi
Id_fasumsos
Varchar(10)
Primary key
Not null
Kd_wisata
Varchar(10)
Foreign key
Not null
Geom
oid
-
-


Tabel Jalur Transportasi_Transportasi Umum. Field/kolom yang harus dibuat :
Nama Field
Tipe Data
Contraint
Modifikasi
Id_jal
Varchar(10)
Primary key
Not null
Id_trans
Varchar(10)
Foreign key
Not null
Geom
oid
-
-

2.3.2 Menambahkan Data ke Model
Model yang telah dibuat, sekarang perlu diisi dengan data yang sesuai dengan
maksud pembuatannya.

Menambahkan data ke dalam tabel
Untuk menambahkan data ke dalam tabel-tabel yang telah kita buat sebelumnya,
kita harus menggunakan sintaks INSERT, dimana aturan penulisan sintaks insert yaitu
:
INSERT INTO <nama_tabel> (<nama_atribut1>,< nama_atribut2>, ....dst) VALUES
(<nilai_atribut1>, <nilai_atribut2>, ....dst);
Terdapat beberapa hal yang perlu Anda perhatikan saat memasukkan nilai atribut ke
dalam tabel :
Setelah nama tabel (Rumah_Makan), Anda ketikkan nama field yang akan Anda
isi (id_rmh_mkn).
Kemudian setelah Anda mengetikkan values, masukkan daftar nilai field.
74


MODUL 1 BASIS DATA SPASIAL

Untuk atribut yang memiliki tipe data text, varchar, character, dan string, nilai
field harus dikutip dengan menggunakan kutip tunggal. Misal untuk
memasukkan nama kabupaten, maka Bogor Barat.
Anda perhatikan bahwa kita tidak memasukkan nilai untuk kolom id
dikarenakan nilai kolom id akan ditulis secara otomatis dan berurutan.
Untuk field yang menjadi primary key harus bersifat unik dan tidak ada nilai
yang kosong (null value).
Anda harus melihat INSERT 0 1 jika Anda telah berhasil memasukkan nilai atribut ke
dalam tabel.
Anda dapat melihat hasil pemakaian insert dengan menampilkan semua data dalam
tabel, misal :
Select* from Rumah_Makan;
Sekarang Anda coba gunakan perintah/sintaks INSERT untuk menambahkan record
ke dalam tabel Rumah_Makan, Akomodasi, Transportasi.

Memilih Data
Pada pengenalan bahasa SQL, telah dijelaskan kepada Anda sintaks untuk memilih
record. Mari kita melihat beberapa contoh berikut :
Select nm_rm from Rumah_Makan;
Select* from Akomodasi;
Select* from Akomodasi where jns_akomodasi=hotel;
Dalam sesi selanjutnya, akan dibahas lebih detail tentang cara memilih dan
menyaring data.

Memperbaharui Data
Sekarang Anda akan mencoba meng-update data dimana sintaks yang digunakan
yaitu :
UPDATE <nama_tabel> SET <nama_atribut> = <nilai_baru> [,<nama_atribut1> =
<nilai_baru1>] WHERE <kondisi>;
Berhati-hatilah pada saat menggunakan pernyataan update tersebut, karena jika
terdapat lebih dari 1 record yang sesuai dengan kondisi yang didefinisikan pada kata
kunci WHERE, maka semua record yang sesuai akan diperbaharui secara otomatis.
Solusi yang lebih baik adalah dengan menggunakan primary key dari tabel untuk
menunjuk secara pasti pada record yang ingin di-update.
Jika Anda berhasil melakukan update data, maka seharusnya Anda melihat UPDATE
1.

Menghapus Data
Pada saat memasukkan data, mungkin ada beberapa kali Anda melakukan kesalahan
yang menyebabkan Anda perlu menghapus data yang Anda masukkan. Untuk kasus
ini, Anda perlu menggunakan sintaks delete.
75


MODUL 1 BASIS DATA SPASIAL

Misal Anda ingin menghapus record pada tabel Rumah_Makan yang memiliki
id_rm=10.
Delete from Rumah_Makan where id_rm=10;
Sekarang Anda lihat tabel Rumah_Makan :
Select* from Rumah_Makan where id_rm=rm10;
Maka akan muncul seperti gambar di bawah ini.


Kesimpulan
Sekarang Anda telah mengetahui cara untuk menambahkan data ke dalam model
basis data yang telah Anda buat sebelumnya. Harap diingat jika Anda ingin
menambahkan jenis data baru, maka Anda perlu melakukan modifikasi dan/atau
membuat model baru untuk menampung data baru tersebut.

2.3.3 Query
Sekarang Anda akan mencoba melakukan query pada tabel.

Mengurutkan hasil (ordering)
Sekarang Anda akan mencoba melihat daftar nama fasilitasi trasnportasi
(nm_fastrans) dari tabel Transportasi yang diurut berdasarkan jenis transportasi.
Select* from Transportasi order by jns_transport;

Menyaring hasil (filtering)
Sering kali Anda tidak akan ingin melihat satu per satu semua record dalam basis
data- terutama jika terdapat ribuan record dan Anda hanya tertarik melihat satu atau
dua saja. Anda dapat mengatasinya dengan melakukan filtering.
Berikut contoh dari penyaringan atau filtering.
Select nm_akomodasi, jns_akomodasi, alamat from Akomodasi where
nm_kec=Bogor Barat;

Kesimpulan
Anda telah mencoba melakukan query yang digunakan untuk menghasilkan data dari
basis data Anda sehingga Anda dapat menggali informasi yang berguna.


76


MODUL 1 BASIS DATA SPASIAL

MATERI 3 - PostGIS

3.1 Pengantar PostGIS
3.1.1.
Pengenalan PostGIS
PostGIS adalah spatial extension untuk platformdatabase (spatial) PostgreSQL.
Spatial Database dapat menyimpan dan mengelola (manipulation) objek-objek
spasial, seperti halnya pengelolaan data pada Database umumnya. Aspek yang
berkaitan dengan Spatial Database, mencakup:
1. Spatial Data Types; mengacu pada bentuk primitiv geometri: point, line,
polygon.
2. Spatial Indexing; diterapkan untuk efisiensi proses operasi-operasi spasial.
3. Spatial Function; digunakan untuk proses query spasial, baik atribut objek
maupun relasi antar objek spasial.
Spatial Database (Geodatabase) merupakan evolusi terkini dari Arsitektur GIS,
dimana objek spasial terintegrasi dengan data objek relasional database. Illustrasi
berikut ini menunjukkan perkembangan evolusi Arsitektur GIS terkait paradigma
penyimpanan dan pengelolaan data GIS, lihat Gambar di bawah ini.


Spatial Database memiliki tipe data bentukan, yaitu tipe data Geometry untuk
mengelola dan menyajikan objek-objek spasial (geometri). Spatial ADT (Abstract
Data Type) mengenkapsulasi struktur spasial, mencakup: boundary dan dimensi.
Spatial ADT, selanjutnya dikenal juga sebagai objek shapes. Spatial ADT
dikelompokkan secara hirarki dimana sub-type merupakan turunan dari type
induknya yang mewarisi Atribut dan Properti (methode|functions) dari masing-
77


MODUL 1 BASIS DATA SPASIAL

masing objek induknya. Illustrasi berikut ini menunjukkan hirarki objek Spatial ADT,
lihat Gambar berikut ini.


Seperti halnya Database umum, spatial database memiliki metode pengindeksan
untuk objek-objek spasial yang bermanfaat untuk mempercepat proses-proses
spatial query, baik pencarian maupun pemilihan data, misal: objek mana saja yang
berada di dalam suatu area bounding box tertentu. Bounding Box adalah kotak
persegi yang memuat koordinat titik maksimum dan minimum yang mencakup
objek-objek spasial yang dipilih.


Bounding Box digunakan untuk dapat menjawab apakah suatu objek terdapat di
dalam objek yang lain. Objek dapat berbentuk geometri: polygon-polygon, line-
polygon, line-line. Metode spatialindex yang umum digunakan adalah R-tree, metode
lainnya: Quadtrees dan grid-based indexes.
Spatial Database menyediakan kumpulan Fungsi untuk menganalisis elemen
geometrik, menentukan relasi antar objek, dan manipulasi geometri objek.
Kumpulan fungsi tersebut dapat dikelompokkan kedalam 5 (lima) kategori, berikut
ini:
1. Conversion;fungsi untuk mengkonversi objek-objek geometri dengan format
data eksternal.
2. Management;fungsi yang mengelola informasi tentang tabel-tabel spasial dan
Administrasi PostGIS.
3. Retrieval;fungsi yang memanggil kembali properti dan pengukuran-
pengukuran objek Geometri.
78


MODUL 1 BASIS DATA SPASIAL

4. Comparison;fungsi yang membandingkan antara dua objek Geometri mengacu


pada relasi spasial diantar kedua objek geometri tersebut.
5. Generation; fungsi untuk membuat atau menghasilkan objek Geometri baru
dari objek yang sudah ada.
3.1.2
Instalasi PostGIS
Instalasi PostGIS dapat dilakukan saat instalasi PostgreSQL atau terpisah; setelah
PostgreSQL, tergantung pada sumber installer dan OperatingSystem yang
digunakan. Saat ini, sudah banyak site yang menyediakan paket installer
PostgreSQL/PostGIS. Oleh karena PostGIS adalah ekstensi dari PostgreSQL maka
terlebih dahulu harus dilakukan instalasi PostgreSQL.
Instalasi dengan Operating System MS-Windows, sumber dapat diperoleh dari:
http://postgis.refractions.net/download/windows/pg92/postgis-pg92-setup-2.0.1-
1.exe
Tahapan instalasi PostGIS dengan paket installer seperti sumber tersebut di atas,
sebagai berikut:
1. Double Click file installer, klik I Agree


2. Muncul dialog Choose Component, klik Next

79


MODUL 1 BASIS DATA SPASIAL


3. Muncul dialog Choose Install Location, klik Next


4. Muncul dialog Database Connection, isi: User, Password; sesuaikan dengan
saat instalasi PostgreSQL dilakukan, klik Next


80


MODUL 1 BASIS DATA SPASIAL

5. Muncul dialog Database Name, klik Install


6. Muncul dialog progres Installing, tunggu sampai dengan selesai proses instalasi


7. Muncul dialog Installation Complete, klik Close

81


MODUL 1 BASIS DATA SPASIAL



3.2 Manajemen Data Spasial di PostGIS
3.2.1 Membuat Geodatabase
Pengelolaan database PostgreSQL/PostGIS dapat dilakukan dengan bantuan (tools)
Database Manager for PostgreSQL, misal: pgAdmin III. Untuk membuat
Geodatabase, terlebih dahulu lakukan create database (PostgreSQL) selanjutnya
tambahkan ekstensi PostGIS. Penambahan ekstensi PostGIS dapat dilakukan dengan
cara, seperti uraian berikut ini.

Menggunakan createlang plpgsql
Langkah-langkahnya adalah sebagai berikut:
1. Jalankan aplikasi pgAdmin III
2. Lakukan koneksi ke Server Database (user, password)


3. Membuat database baru (create database)

82


MODUL 1 BASIS DATA SPASIAL


4. Lakukan koneksi ke database yang baru dibuat
5. Aktifkan jendela SQL Editor
6. Menambahkan ekstensi spasial (PostGIS) ke database tersebut, caranya:
Eksekusi file: postgis.sql
Eksekusi file: spatial_ref_sys.sql


83


MODUL 1 BASIS DATA SPASIAL

7. Periksa hasil eksekusi 2 file sql tersebut; yang akan menghasilkan:


tabel Metadata, yaitu: geometry_columns dan spatial_ref_sys
terdapat 2 indeks, yaitu: pk_geometry_columns dan pk_spatial_ref_sys
tambahan fungsi-fungsi spasial dan tipe data spatial (geometry)


Menggunakan Template PostGIS
Langkah-langkahnya adalah sebagai berikut:
1. Jalankan aplikasi pgAdmin III
2. Lakukan koneksi ke Server Database (user, password)
3. Membuat database baru (create database)
4. Muncul dialog New Database, setting properti Template isikan dengan
template_postgis

84


MODUL 1 BASIS DATA SPASIAL

5. Lakukan koneksi ke database yang baru dibuat


6. Periksa hasil langkah 4; yang akan menghasilkan:
tabel Metadata, yaitu: geometry_columns dan spatial_ref_sys
terdapat 2 indeks, yaitu: pk_geometry_columns dan pk_spatial_ref_sys
tambahan fungsi-fungsi spasial dan tipe data spatial (geometry)

3.2.2 Pengelolaan Data Vektor
Setelah Geodatabase terbangun maka selanjutnya kita sudah siap untuk
menggunakan Geodatabase tersebut sebagai Spatial DBMS. Pada sub bab ini akan
diuraikan tentang pengelolaan data GIS, khususnya format Vektor, mulai dari:
memasukan dan menampilkan data, membuat indeks, dan operasi-operasi query
spasial.
Objek Geometry, OGC Simple Feature for SQL
Untuk dapat mengelola data GIS dengan tepat maka perlu difahami tentang format
objek geometry yang didukung oleh platform Spatial Database. PostGIS mendukung
sepenuhnya pengelolaan data dengan format standard yang diterbitkan resmi oleh
OGC (OpenGIS Consortium). Lembaga OGC mendefinisikan objek geometri sebagai
Simple Feature yang dispesifikasikan dalam dokumen Simple Feature
Specification for SQL. OGC mendefinisikan format standard objek geometri kedalam
2 (dua) format, yaitu: WKT (Well-Known Text) dan WKB (Well-Known Binary).
Contoh format WKT, seperti pada illustrasi di bawah ini.
POINT(0 0)
LINESTRING(0 0,1 1,1 2)
POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1))
MULTIPOINT(0 0,1 2)
MULTILINESTRING((0 0,1 1,1 2),(2 3,3 2,5 4))
MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2,-2 -2,-2 -1,-1
-1)))
GEOMETRYCOLLECTION(POINT(2 3),LINESTRING(2 3,3 4))
Selain itu, OGC juga mendefinisikan spatial reference system identifier (SRID),
dimana SRID ini diperlukan ketika membuat objek spasial yang akan dimasukkan ke
database. Input/Output untuk format tersebut dapat juga dituliskan seperti berikut
ini.
bytea WKB = ST_AsBinary(geometry);
text WKT = ST_AsText(geometry);
geometry = ST_GeomFromWKB(bytea WKB, SRID);
geometry = ST_GeometryFromText(text WKT, SRID);

85


MODUL 1 BASIS DATA SPASIAL

Sebagai contoh, statement insert untuk memasukan objek spasial OGC, ditulis
sebagai berikut.
INSERT INTO geotable ( the_geom, the_name )
VALUES ( ST_GeomFromText(POINT(-126.4 45.32), 312), A Place);
Tipe Data Geography
Untuk data spasial yang menggunakan sistem koordinat geodetik (Lintang, Bujur),
PostGIS menyediakan tipe data spasial baru, yaitu: Geography. Beda antara tipe
Geometry dengan Geography adalah bahwa Geometry memperlakukan objek berada
pada bidang datar sehingga untuk operasi-operasi matematis dapat diterapkan
matematika kartesian dan vektor garis lurus.
Sedangkan tipe Geography; objek spasial berada pada bidang lengkung/bola
(spheroid) dan unit ukuran yang digunakan adalah dalam derajat. Saat ini, tipe
Geography baru diterapkan untuk objek spasial yang menggunakan sistem WGS 84
long lat (SRID:4326). Objek spasial Geometry yang menggunakan SRID:4326 akan
dikonversi menjadi tipe Geography. Berikut ini illustrasi penerapan tipe Geography.

CREATE TABLE testgeog(gid serial PRIMARY KEY, the_geog geography(POINT,4326) );
CREATE TABLE global_points (
id SERIAL PRIMARY KEY,
name VARCHAR(64),
location GEOGRAPHY(POINT,4326)
);
INSERT INTO global_points (name, location) VALUES (Town,
ST_GeographyFromText(SRID=4326;POINT(-110 30)) );
INSERT INTO global_points (name, location) VALUES (Forest,
ST_GeographyFromText(SRID=4326;POINT(-109 29)) );
INSERT INTO global_points (name, location) VALUES (London,
ST_GeographyFromText(SRID=4326;POINT(0 49)) );
Membuat Table Spatial
Untuk membuat Table Spatial dapat dilakukan dalam satu tahapan. Illustrasi berikut
ini adalah membuat table spatial (roads), dimana tabel tersebut memuat objek
geometri linestring 2 dimensi dengan SRID: WGS 84 long lat.
CREATE TABLE ROADS ( ID int4, ROAD_NAME varchar(25), geom
geometry(LINESTRING,4326) );
Untuk memodifikasi struktur tabel gunakan perintah standard ALTER TABLE, seperti
illustrasi berikut.
ALTER TABLE roads ADD COLUMN geom2 geometry(LINESTRINGZ,4326);
Selain itu, membuat Table Spatial juga dapat dilakukan dengan 2 tahapan, sebagai
berikut:
86


MODUL 1 BASIS DATA SPASIAL

1. Buat tabel normal Non Spatial


CREATE TABLE ROADS ( ID int4, ROAD_NAME varchar(25) )
2. Tambahkan kolom ( field) baru (geometry) pada tabel tersebut dengan
menggunakan fungsi AddGeometryColumn
AddGeometryColumn(
<schema_name>,
<table_name>,
<column_name>,
<srid>,
<type>,
<dimension>
)
SELECT AddGeometryColumn(public, roads, geom, 423, LINESTRING, 2)
SELECT AddGeometryColumn( roads, geom, 423, LINESTRING, 2)
Illustrasi berikut ini adalah membuat tabel baru dan menambahkan field geometry
dan SRID=128.
CREATE TABLE parks (
park_id INTEGER,
park_name VARCHAR,
park_date DATE,
park_type VARCHAR
);
SELECT AddGeometryColumn(parks, park_geom, 128, MULTIPOLYGON, 2 );
Illustrasi lain, menggunakan tipe Geometry yang generik dan SRID default.
CREATE TABLE roads (
road_id INTEGER,
road_name VARCHAR
);
SELECT AddGeometryColumn( roads, roads_geom, 0, GEOMETRY, 3 );

Illustrasi berikut ini, SQL statement membuat Table Spatial yang dieksekusi pada SQL
Editor.

87


MODUL 1 BASIS DATA SPASIAL


Memuat Data Vektor (Loading Spatial Data)
Setelah berhasil membuat Table Spatial, selanjutnya kita siap untuk meng-upload
data GIS ke tabel tersebut. Saat ini, ada 2 (dua) cara untuk memasukkan data
kedalam database PostgreSQL/PostGIS, yaitu: menggunakan format statement SQL
atau dengan loader/dumper Shape file.
Menggunakan SQL
Syntax: INSERT INTO [table][fields] VALUES ()
Contoh berikut adalah memuat data GIS menggunakan format SQL.
BEGIN;
INSERT INTO roads (road_id, roads_geom, road_name)
VALUES (1,ST_GeomFromText(LINESTRING(191232 243118,191108 243242),-1),Jeff
Rd);
INSERT INTO roads (road_id, roads_geom, road_name)
VALUES (2,ST_GeomFromText(LINESTRING(189141 244158,189265 244817),-
1),Geordie Rd);
INSERT INTO roads (road_id, roads_geom, road_name)
VALUES (3,ST_GeomFromText(LINESTRING(192783 228138,192612 229814),-
1),Paul St);
INSERT INTO roads (road_id, roads_geom, road_name)
VALUES (4,ST_GeomFromText(LINESTRING(189412 252431,189631 259122),-
1),Graeme Ave);
INSERT INTO roads (road_id, roads_geom, road_name)
VALUES (5,ST_GeomFromText(LINESTRING(190131 224148,190871 228134),-
1),Phil Tce);
INSERT INTO roads (road_id, roads_geom, road_name)
VALUES (6,ST_GeomFromText(LINESTRING(198231 263418,198213 268322),-
1),Dave Cres);
COMMIT;
88


MODUL 1 BASIS DATA SPASIAL

Menggunakan Loader
PostGIS menyediakan fungsi shp2pgsql; merupaka data loader untuk mengkonversi
objek spasial format ESRI Shapefile kedalam format SQL yang sesuai untuk transaksi
insert data kedalam database PostgreSQL/PostGIS, baik tipe Geometry maupun
Geography. Illustrasi berikut ini menunjukkan syntax memuat data GIS dengan
menggunakan data loader fungsi shp2pgsql.Hasil dari data loader disimpan sebagai
file *.sql yang siap dieksekusi pada SQL Editor menggunakan aplikasi Database
Manager; pgAdmin III.


Menampilkan Data Vektor (Retrieving Spatial Data)
Data GIS yang sudah disimpan di Geodatabase dapat dipanggil kembali. Untuk
menampilkan kembali data tersebut dapat dilakukan, baik dengan format SQL
maupun shape file loader/dumper.
Menggunakan SQL
Syntax: SELECT [fields] FROM [table]
ASTEXT(geometry_field); format WKT
ASBINARY(geometry_field); format WKB
Contoh berikut adalah menampilkan data GIS menggunakan statement SQL; format
WKT dan WKB.

89


MODUL 1 BASIS DATA SPASIAL


Menggunakan Dumper
Syntax:
pgsql2shp [<options>] <database> [<schema>.]<table>
pgsql2shp [<options>] <database><query>
Option dari commandline tersebut, adalah:
-f <filename>nama file untuk menyimpan data.
-h <host>nama host koneksi ke database.
-p <port>port ke host koneksi database.
-P <password>password koneksi database.
-u <user>username koneksi ke database.
90


MODUL 1 BASIS DATA SPASIAL

-g <geometry column>nama field geometry.


-bmenggunakan cursor biner.
-rRaw mode. Do not drop the gid field, or escape column names.
-dFor backward compatibility: write a 3-dimensional shape file when dumping
from old (pre-1.0.0) postgis databases (thedefault is to write a 2-dimensional
shape file in that case). Starting from postgis-1.0.0+, dimensions are fully
encoded.
Membuat Indeks Data Vektor (Building Indexes)
Penggunaan indeks dimaksudkan untuk mempercepat proses pencarian. Tanpa
menggunakan indeks maka pencarian akan dilakukan secara sekuensial di setiap
record database. Hal ini akan sangat lambat jika sudah melibatkan data spasial dalam
ukuran yang sangat besar. Oleh karena itu, indeks diterapkan untuk efisiensi
pencarian dengan mengorganisasi data kedalam suatu tree pencarian yang mana
akan mempercepat penelusuran untuk menemukan record data tertentu sesuai
kriteria pencarian.
PostgreSQL mendukung 3 (tiga) jenis Indeks, yaitu:
1. B-Trees are used for data which can be sorted along one axis; for example,
numbers, letters, dates. GIS data cannot be rationallysorted along one axis (which
is greater, (0,0) or (0,1) or (1,0)?) so B-Tree indexing is of no use for us.
2. R-Trees break up data into rectangles, and sub-rectangles, and sub-sub
rectangles, etc. R-Trees are used by some spatialdatabases to index GIS data, but
the PostgreSQL R-Tree implementation is not as robust as the GiST
implementation.
3. GiST (Generalized Search Trees) indexes break up data into "things to one side",
"things which overlap", "things which areinside" and can be used on a wide range
of data-types, including GIS data. PostGIS uses an R-Tree index implemented on
topof GiST to index GIS data.
Syntax untuk menambahkan indeks pada field Geometry:
CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometryfield] );
Syntax di atas, secara default, akan membuat indeks 2 Dimensi, untuk indeks yang n-
Dimensi, syntax:
CREATE INDEX [indexname] ON [tablename] USING GIST ([geometryfield]
gist_geometry_ops_nd);
Spatial Query (Spatial SQL)
Penggunaan indeks akan sangat terasa pada saat unjuk kerja dalam melakukan
proses query spasial. Sebagai contoh; berikut ini terdapat 2 table spasial, yaitu: jalan
(roads) dan kabupaten (municipality), dimana jalan direpresentasikan sebagai
geometri linestring (garis) dan kabupaten dengan geometri polygon (area).
91


MODUL 1 BASIS DATA SPASIAL

Struktur table spasial jalan (bc_roads):


Column

| Type

| Description

------------------------+----------------------------------+------------------------------------------
gid

| integer

| Unique ID

name

| character varying | Road Name

the_geom

| geometry

| Location Geometry (Linestring)

Struktur table spasial kabupaten (bc_municipality):


Column

| Type

| Description

------------------------+----------------------------------+-----------------------------------------
gid

| integer

| Unique ID

code

| integer

| Unique ID

name

| character varying | City / Town Name

the_geom

| geometry

| Location Geometry (Polygon)

Berikut ini adalah beberapa contoh Spatial Query.


1. Berapa total panjang jalan (dalam Kilometer)?
SELECT sum(ST_Length(the_geom))/1000 AS km_roads FROM bc_roads;
km_roads
------------------
70842.1243039643
(1 row)
2. Berapa luas kabupaten XXX (dalam Hektar)?
SELECT
ST_Area(the_geom)/10000 AS hectares
FROM bc_municipality
WHERE name = XXX;
hectares
------------------
32657.9103824927
(1 row)
Contoh lain: Berapa total panjang jalan yang melewati setiap kabupaten.

92


MODUL 1 BASIS DATA SPASIAL



3.3 Aplikasi Desktop GIS (QuantumGIS)
Untuk menampilkan data spasial dari database PostgreSQL/PostGIS dapat digunakan
perangkat lunak Desktop GIS freeware, yaitu: QuantumGIS (QGis). Dengan QGis ini kita
dapat melakukan operasi-operasi spasial, seperti: query, analisis, lay out, editing, dll.
Untuk menampilkan data PostGIS di QGis, caranya adalah:
1. Jalankan aplikasi Quantum GIS
2. Menu: Layer > Add PostGIS layer

93


MODUL 1 BASIS DATA SPASIAL


3. Definisikan koneksi database

4. Lakukan koneksi database


5. Add Layer (Spatial Table)
6. Layer akan ditampilkan pada panel MapViewer

94


MODUL 1 BASIS DATA SPASIAL

3.4 Latihan Implementasi PostGIS pada Basis Data Spasial


3.4.1 Penyusunan Tabel Spasial
Sekarang Anda akan mencoba membuat tabel spasial dari data shapefile Jawa Barat
dengan batas administrasi kabupaten dan objek wisata di Jawa Barat. Anda akan
membuatnya langsung di PgAdmin. Ikuti langkah di bawah ini untuk membuat tabel
spasial.
95


MODUL 1 BASIS DATA SPASIAL

1. Buka PgAdmin. Kemudian lakukan expand pada server PostgreSQL hingga ke fitur
objek Tables.
2. Kemudian pilih menu Plugins, dan pilih PostGIS Shapefile and DBF loader 2.0


3. Selanjutnya akan muncul window PostGIS Shapefile Import/Export Manager
yang akan kita gunakan untuk meng-import data shp ke dalam basis data. Pilih
tab Import, lalu tekan tombol Add File untuk memilih data yang ingin di-import.


4. Selanjutnya Anda lakukan pencarian data yang dibutuhkan ke direktori tempat
data disimpan, kemudian pilih Jabar_Kabu.shp. Klik Open.

96


MODUL 1 BASIS DATA SPASIAL


5. Klik Import.

Hasilnya dapat kita lihat di basis data SIG_Pariwisata, seperti gambar di bawah ini


3.4.2 Preview Data Spasial dari Basis data Spasial
Kita akan mencoba melihat preview data spasial shp yang baru kita impor ke dalam
DBMS PostgreSQL/PostGIS. Caranya dengan mengikuti langkah berikut.
1. Buka Quantum GIS. Kemudian pilih tombol Add PostGIS Layer seperti gambar di
bawah ini.

97


MODUL 1 BASIS DATA SPASIAL


2. Selanjutnya, atur koneksi terlebih dahulu ke basis data SIG_Pariwisata yang
disimpan di DBMS PostgreSQL/PostGIS. Tekan tombol Baru atau New
(tergantung setting bahasa yang digunakan). Kemudian atur koneksi.


3. Setelah melakukan pengaturan koneksi, lakukan tes koneksi terlebih dahulu
untuk memastikan Quantum GIS dapat terkoneksi dengan PostGIS. Pastikan
terlihat seperti gambar di bawah ini.

98


MODUL 1 BASIS DATA SPASIAL


4. Sekarang setelah membuat pengaturan koneksi, selanjutnya kita lakukan koneksi
ke basis data SIG_Pariwisata dengan menekan tombol Koneksikan atau Connect.
Dan jika berhasil terkoneksi, maka akan muncul data spasial di dalam skema
seperti gambar di bawah ini.


5. Selanjutnya, untuk menampilkan data spasial yang sudah terkoneksi, lakukan
select pada data yang ingin ditampilkan, kemudian pilih tombol Add. Maka data
spasial jabar_kab pun akan muncul di aplikasi desktop Quantum GIS.

99


MODUL 1 BASIS DATA SPASIAL

100

Anda mungkin juga menyukai