Perbandingan Fungsionalitas dan Kinerja Spatial-DBMS (PostgreSQL/PostGIS dan MonetDB/Spatial)
PERBANDINGAN FUNGSIONALITAS DAN KINERJA SPATIAL-DBMS
(POSTGRESQL/POSTGIS DAN MONETDB/SPATIAL)
ANGGI PUTRANTIO JUNIARD
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2013
PERBANDINGAN FUNGSIONALITAS DAN KINERJA SPATIAL-DBMS
(POSTGRESQL/POSTGIS DAN MONETDB/SPATIAL)
ANGGI PUTRANTIO JUNIARD
Skripsi
sebagai salah satu syarat untuk memperoleh gelar
Sarjana Komputer pada
Departemen Ilmu Komputer
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2013
ABSTRACT
ANGGI PUTRANTIO JUNIARD. Comparison of Functionality and Performance of SpatialDBMS (PostgreSQL/PostGIS and MonetDB/Spatial). Supervised by HARI AGUNG
ADRIANTO.
Spatial-DBMS is a software module that can work with an underlying database management
system and support multiple spatial data models, spatial indexing, and spatial function. Several
examples of spatial-DBMS is PostgreSQL, MYSQL, IBM DB2, Oracle, SQL Server, and
MonetDB. PostgreSQL as a well-known spatial-DBMS has been widely used all over the world.
Meanwhile, MonetDB is still in the phase of system development and has many rooms for
improvement. This research compared the two spatial-DBMS in terms of functionality and
performance. The results showed that PostgreSQL has more complete spatial function compared to
MonetDB. From their performance, it was found that MonetDB is better than PostgreSQL in
handling simple non-spatial queries. As for the simple and complex spatial queries, PostgreSQL
has shown better performance compared to MonetDB.
Keywords: spatial data, PostgreSQL, MonetDB, functionality, performance
Judul Skripsi
Nama
NRP
: Perbandingan Fungsionalitas dan Kinerja Spatial-DBMS (PostgreSQL/PostGIS
dan MonetDB/Spatial)
: Anggi Putrantio Juniard
: G64080103
Menyetujui:
Pembimbing
Hari Agung Adrianto, S.Kom., M.Si.
NIP. 19760917 200501 1 001
Mengetahui:
Ketua Departemen Ilmu Komputer
Dr. Ir. Agus Buono, M.Si., M.Kom.
NIP. 19660702 199302 1 001
Tanggal Lulus :
KATA PENGANTAR
Segala puji dan syukur penulis panjatkan ke hadirat Allah subhanahu wata’ala atas segala
limpahan rahmat serta karunia-Nya sehingga penulis mampu menyelesaikan tugas akhir dengan
baik. Shalawat dan salam penulis sampaikan kepada Nabi Muhammad shallallahu ‘alaihi
wasallam serta kepada keluarganya, sahabatnya, serta para pengikutnya yang selalu berpegang
kepada Al-Quran dan As-Sunnah.
Penulis juga menyampaikan terima kasih kepada seluruh pihak yang telah berperan dalam
penelitian ini, antara lain:
1
Ayahanda Katiya, Ibunda Dian Etika Sari, Kakak Putri Anggraeni, serta Adik Rachma
Alfazdilla atas doa, kasih sayang, dukungan, serta motivasi kepada penulis untuk
penyelesaian penelitian ini.
2
Bapak Hari Agung Adrianto, S.Kom., M.Si. selaku dosen pembimbing yang telah memberi
banyak ide, saran, bantuan, serta dukungan sampai selesainya penelitian ini.
3
Shaila, Adisty Dewi Kania, dan Resti Indrias atas doa, nasihat, dukungan, serta motivasi
kepada penulis untuk penyelesaian penelitian ini.
4
Rekan-rekan seperjuangan di Ilmu Komputer IPB angkatan 45 atas segala kebersamaan,
bantuan, dukungan, serta kenangan bagi penulis selama menjalani masa studi. Semoga kita
bisa berjumpa kembali kelak sebagai orang-orang sukses.
5
Hafizhia Dhikrul Anugrah, Ryantie Octaviani, Melki Hasali, Catur Purbo, Jaka Ahmad,
Rian Senja, Irvan Ahadi, Fulsi Wiyata, Asrori, dan sahabat lainnya yang telah menjadi
mitra dan menemani penulis dalam menjalani kehidupan sebagai mahasiswa.
6
Rekan satu bimbingan, Mitha Rachmawati, Praditya Pamungkas, dan Ilman Dwi Santoso.
7
Sahabat satu kontrakan, Abdul Rahman Halim, Nanda Ichsan Pratama, Ahmad Bagus
Diponegoro, Ryan Satria Nugroho, yang telah memberikan dukungan untuk segera
menyelesaikan studi.
Penulis berharap semoga penelitian ini dapat memberikan manfaat, khususnya bagi umat
Islam di Indonesia dan masyarakat pada umumnya.
Bogor, Februari 2013
Anggi Putrantio Juniard
RIWAYAT HIDUP
Penulis dilahirkan di Jakarta pada tanggal 13 Juni 1990. Penulis merupakan anak kedua dari
pasangan Katiya dan Dian Etika Sari. Pada Tahun 2008, penulis menamatkan pendidikan di SMA
Negeri 67 Jakarta. Pada tahun yang sama, penulis diterima menjadi mahasiswa di Institut Pertanian
Bogor (IPB) melalui jalur Seleksi Nasional Masuk Perguruan Tinggi Negeri (SNMPTN). Penulis
menjadi mahasiswa di Departemen Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan
Alam.
Pada bulan Juli-Agustus 2011 penulis melaksanakan kegiatan Praktik Kerja Lapangan di PT.
Aquanur Powerindo. Selama aktif sebagai mahasiswa, penulis pun turut aktif dalam kegiatan
kepanitian di Departemen Ilmu Komputer, yaitu Masa Perkenalan Departemen (MPD) dan IT
Today 2010.
DAFTAR ISI
Halaman
DAFTAR TABEL ............................................................................................................................vi
DAFTAR GAMBAR .......................................................................................................................vi
PENDAHULUAN
Latar Belakang .............................................................................................................................. 1
Tujuan ........................................................................................................................................... 1
Ruang Lingkup ............................................................................................................................. 1
TINJAUAN PUSTAKA
Struktur Data Spasial .................................................................................................................... 2
Shapefile ....................................................................................................................................... 2
PostgreSQL ................................................................................................................................... 2
Arsitektur PostgreSQL.................................................................................................................. 2
PostGIS ......................................................................................................................................... 3
MonetDB ...................................................................................................................................... 3
Spesifikasi MonetDB dan PostgreSQL ......................................................................................... 4
R-Tree ........................................................................................................................................... 4
Hash .............................................................................................................................................. 5
METODE PENELITIAN
Identifikasi Masalah...................................................................................................................... 5
Pengumpulan Data ........................................................................................................................ 5
Pembangunan Database menggunakan PostgreSQL .................................................................... 5
Pembangunan Database menggunakan MonetDB ....................................................................... 5
Input dan Hasil Query .................................................................................................................. 5
Analisis Hasil ................................................................................................................................ 5
HASIL DAN PEMBAHASAN
Pengumpulan Data ........................................................................................................................ 6
Pembangunan Database menggunakan PostgreSQL .................................................................... 7
Pembangunan Database menggunakan MonetDB ....................................................................... 9
Input dan Hasil Query ................................................................................................................ 10
Analisis Hasil .............................................................................................................................. 15
SIMPULAN DAN SARAN
Simpulan ..................................................................................................................................... 16
Saran ........................................................................................................................................... 16
DAFTAR PUSTAKA ..................................................................................................................... 16
v
DAFTAR TABEL
Halaman
1
2
3
4
5
6
Query non-spasial sederhana…………………………………………………………………… 11
Hasil eksekusi query non-spasial sederhana………………………………………………...…. 11
Query spasial sederhana………………………………………………………………………... 12
Hasil eksekusi query spasial sederhana………………………………………………………… 12
Query spasial kompleks……………………………………………………………………...… 14
Hasil eksekusi query spasial kompleks………………………………………………………… 14
DAFTAR GAMBAR
Halaman
1 Architecture PostgreSQL (Matthew & Stones 2005)……………………………………………. 2
2 Binary Association Table MonetDB (MonetDB 2012)………………………………………….. 3
3 Struktur dari R-Tree (Guttman 1984)……………………………………………………………. 4
4 Tahapan Penelitian………………………………………………………………………………. 5
5 Persentase populasi kulit hitam………………………………………………………………….. 6
6 Neighborhood dari New York…………………………………………………………………… 6
7 Jalan Kota New York……………………………………………………………………………. 7
8 Titik lokasi subway station............................................................................................................. 7
9 Pembangunan database pada PostgreSQL………………………………………………………. 7
10 Antarmuka PostGIS…………………………………………………………………………….. 8
11 Syntax untuk implementasi Minimum Bounding Rectangle……………………………………. 9
12 Perbandingan waktu eksekusi untuk query non-spasial sederhana…………………………... 11
13 Perbandingan waktu eksekusi untuk query spasial sederhana………………………………... 13
14 Perbandingan waktu eksekusi untuk query spasial kompleks………………………………… 14
15 Perbandingan waktu eksekusi untuk tabel yang memiliki jumlah baris berbeda……………... 15
vi
1
PENDAHULUAN
Latar Belakang
Seiring dengan kemajuan teknologi saat
ini, aplikasi yang menggunakan data spasial
terus dikembangkan. Oleh karena itu,
dibutuhkan sarana penyimpanan data spasial
yang baik guna menghasilkan aplikasi yang
andal. Data spasial dapat disimpan dalam
sebuah file, misalnya disimpan dalam format
shapefile, yaitu format data spasial yang
dikeluarkan oleh Environmental System
Resource Institute (ESRI). Akan tetapi,
menyimpan dalam file memiliki permasalahan
seperti pengelolaan file, concurrency control,
bulk loading, storage, dan keamanan.
Untuk
menangani
permasalahan
penyimpanan data spasial berbasis file, dapat
digunakan Database Management System
(DBMS). Banyak DBMS yang dapat
digunakan sebagai sarana penyimpanan data
spasial seperti PostgreSQL, MYSQL, IBM
DB2, Oracle, SQL Server, dan MonetDB.
Masing-masing DBMS tersebut memiliki
kemampuan untuk menyimpan dan mengolah
data spasial dengan didukung oleh berbagai
fasilitas lainnya.
PostgreSQL atau sering disebut Postgres
merupakan salah satu dari sejumlah DBMS
yang telah digunakan secara luas. Hal ini
dikarenakan PostgreSQL merupakan open
source database system yang telah teruji
kemampuannya. Berdasarkan situs resmi
PostgreSQL1,
PostgreSQL
telah
memenangkan banyak penghargaan dan juga
telah sukses digunakan oleh berbagai
perusahaan. PostGIS menjadikan PostgreSQL
sebagai spatial-DBMS dengan didukung oleh
tiga fasilitas yang dimiliki oleh PostGIS, yaitu
mendukung berbagai tipe data spasial seperti
point, line, dan polygon, kemampuan untuk
pengindeksan data spasial, dan terakhir
tersedianya fungsi spasial yang digunakan
untuk mengeksekusi query spasial. Berbagai
perusahaan atau kelompok pengembang
aplikasi di bidang Sistem Informasi Geografis
(SIG) menggunakan PostgreSQL sebagai
DBMS. Sebagai contoh adalah MapServer
yang mendukung PostgreSQL sebagai sarana
penyimpanan data spasial.
Namun untuk menangani data yang besar,
PostgreSQL memiliki kelemahan di dalam hal
kinerja akses data. Model penyimpanan data
pada PostgreSQL adalah row-store database.
1
http://www.postgresql.org
Andurkar (2012) menyatakan bahwa pada
row-store DBMS, saat kita ingin mencari data
hanya pada beberapa kolom dari sebuah tabel
dengan kolom yang banyak, maka hal ini
dapat
mengurangi
kecepatan
untuk
pengaksesan data. Hal tersebut disebabkan
setiap kali data dibaca dalam row-store
DBMS, kolom yang tidak relevan akan ikut
diakses karena row-store DBMS merupakan
DBMS dengan model penyimpanan yang
menyimpan seluruh kolom dari suatu tabel
secara satu kesatuan yang saling terkait di
dalam disk drive.
Di sisi lain, CWI (Centrum Wiskunde and
Informatica) mengembangkan column-store
DBMS yang dapat digunakan untuk
menangani data yang besar. Pada tahun 2004
untuk pertama kalinya, CWI merilis
produknya dengan nama MonetDB yang
merupakan open source database system.
Column-store DBMS dapat mengakses hanya
atribut yang dibutuhkan saja. Hal ini
dikarenakan column-store DBMS menyimpan
atribut secara terpisah. Vermeij et al. (2008)
menyatakan bahwa column-store approach
memiliki keuntungan untuk spatial query.
Alasan utamanya adalah field geometri yang
tidak relevan dalam eksekusi spatial query
tidak ikut diakses.
Saat ini MonetDB masih dalam tahap awal
pengembangan sistem. Mengingat banyaknya
potensi yang dimiliki oleh MonetDB, maka
perlu
dilakukan
perbandingan
antara
MonetDB dengan PostgreSQL. Oleh sebab
itu,
pada
penelitian
ini
dilakukan
perbandingan dari sisi fungsionalitas dan
kinerja dua DBMS, yaitu PostgreSQL dan
MonetDB.
Tujuan
Tujuan dari penelitian ini adalah
membandingkan PostgreSQL dan MonetDB
dalam hal fungsionalitas dan kinerja untuk
data spasial.
Ruang Lingkup
1 Sistem operasi yang digunakan terbatas
hanya
pada
Windows,
khususnya
Windows Seven 32-bit.
2 Query yang diujikan hanya mencakup dari
tiga kelompok ini, yaitu query non-spasial
sederhana (menggunakan non-fungsi
spasial),
query
spasial
sederhana
(menggunakan fungsi spasial), dan query
spasial kompleks (menggunakan fungsi
spasial dan join table).
2
TINJAUAN PUSTAKA
Struktur Data Spasial
Dalam kerangka kerja SIG, data dibagi
menjadi dua kategori, yaitu data spasial dan
data tekstual (atribut). Data spasial merupakan
data yang memiliki informasi lokasi atau data
yang bereferensi geografis dan data atribut
merupakan data yang memiliki fitur spasial
(Chang 2008).
Shapefile
Menurut
Chang
(2008),
shapefile
merupakan sebuah format data spasial yang
menyimpan lokasi geografis berupa informasi
atribut titik (point), garis (line), dan poligon
(polygon). Bentuk geometri yang tersimpan
adalah dalam bentuk koordinat vektor. Format
ini adalah format yang dikeluarkan oleh
Environmental System Resource Institue
(ESRI) yang merupakan salah satu vendor
SIG terkemuka. ESRI shapefile terdiri atas:
1 Main file (.shp)
Merupakan file yang dapat diakses secara
langsung dan panjang dari record variabel
dalam file mendeskripsikan bentuk vertex.
2 Index file (.shx)
Pada file indeks, tiap record terdiri atas
proses cetakan offset yang berhubungan
dengan record file utama.
3 Tabel dBASE (.dbf)
Pada tabel dBASE terdapat fitur atribut
dengan record pada setiap fiturnya.
PostgreSQL
PostgreSQL
adalah
open
source
ORDBMS (Object Relational Database
Management System) dengan reputasi yang
baik dalam keandalan, integritas data, dan
correctness.
PostgreSQL
mulai
diimplementasikan
sejak
tahun
1986.
PostgreSQL dapat berjalan pada sistem
operasi Linux, UNIX, maupun Windows.
PostgreSQL mendukung penuh ACID
(atomicity, consistency, isolation, durability)
dan sebagian besar standar ANSI SQL
92/2003. PostgreSQL sangat scalable, mampu
menangani kuantitas data yang besar dan
mengakomodasi banyak pengguna secara
konkuren. Ada banyak procedural languages
yang didukung oleh PostgreSQL, juga ada
banyak library interface yang membuat
beragam bahasa tersebut dapat compiled dan
interpreted ke interface pada PostgreSQL.
Ada interface untuk Java (JDBC), ODBC,
Perl, Python, Ruby, C, C++, PHP, Lisp,
Scheme, dan Qt yang dapat digunakan pada
PostgreSQL (PostgreSQL 2012).
Arsitektur PostgreSQL
PostgreSQL terdiri atas proses (program)
yang saling terkait, yaitu proses server untuk
mengelola database file, menerima koneksi ke
database dari client application, dan
mengeksekusi permintaan dari client dan
progam client user application (front-end)
yang berfungsi untuk melakukan operasi
database. Client dan server dapat berada pada
host yang berbeda. Server PostgreSQL dapat
menangani koneksi bersamaan dari client.
Untuk dapat mengkoneksikan client secara
bersamaan, PostgreSQL memulai dengan
membuat proses (program) yang baru untuk
masing-masing koneksi. Maka, client dan
proses server yang baru dapat berkomunikasi
tanpa adanya intervensi oleh proses
PostgreSQL yang asli. Dengan demikian,
proses dari master server masih tetap berjalan
dan menunggu koneksi client (PostgreSQL
Global Development Group 2009).
Pada Gambar 1, dapat kita lihat beberapa
client terhubung ke server melalui sebuah
jaringan. Pada PostgreSQL, jaringan yang
dibutuhkan seperti TCP/IP, Local Area
Network (LAN) atau mungkin jaringan
internet.
Masing-masing
client
menghubungkan ke database server utama
(postmaster). Postmaster dapat membuat
proses server baru yang spesifik untuk
melayani permintaan client tersebut (Matthew
& Stones 2005).
Gambar
1
Architecture PostgreSQL
(Matthew & Stones 2005).
Eksekusi query pada PostgreSQL menurut
PostgreSQL Global Development Group
(2009) terdiri atas beberapa tahapan sampai
dengan mendapatkan hasilnya.
3
1 Sebuah koneksi dari application program
ke server dari PostgreSQL terlebih dahulu
harus dibuat. Application program
mengirimkan query dari pengguna ke
server dan menunggu untuk menerima
hasil yang dikirim kembali oleh server ke
application program.
2 Tahap berikutnya adalah parser yang
berfungsi
memeriksa
query
yang
dikirimkan oleh application program
untuk mengkoreksi syntax dan membuat
sebuah query tree. Syntax diperiksa agar
sistem dapat mengetahui apakah syntax
yang dituliskan oleh pengguna tersebut
benar.
3 Kemudian rewrite system mengambil
query tree yang telah dibuat pada tahap
parser dan memeriksa setiap aturan yang
sesuai (disimpan dalam katalog sistem)
untuk diterapkan pada query tree. Rewrite
system melakukan transformasi yang
dimasukkan ke dalam sebuah aturan
syntax dan menulis ulang query dari
pengguna ke dalam sebuah query yang
nantinya akan mengakses ke tabel dasar.
4 Planner atau optimizer mengambil query
tree yang telah ditulis ulang dan membuat
query plan yang akan dimasukkan ke
dalam eksekutor. Planner atau optimizer
melakukannya dengan terlebih dahulu
menciptakan
semua
path
yang
memungkinkan dan akhirnya mengarah ke
hasil yang sama. Pertama adalah
sequential scan dan yang lainnya
menggunakan pengindeksan. Selanjutnya
biaya untuk eksekusi dari masing-masing
path diestimasikan dan dipilih path yang
biayanya paling murah. Path yang
termurah diperluas ke dalam complete
plan yang kemudian eksekutor dapat
menggunakannya.
5 Eksekutor akan mengulangi langkah di
atas dengan kembali melewati plan tree
dan mengambil baris-baris dengan cara
yang diwakili oleh plan. Eksekutor
memanfaatkan sistem penyimpanan ketika
melakukan scaning tabel, melakukan sort
dan join, mengevaluasi kualifikasi dan
akhirnya baris-baris yang sesuai dengan
query akan diproses sebagai output.
PostGIS digunakan untuk menyimpan tipe
data geografis pada PostgreSQL (PostGIS
Team 2010).
MonetDB
MonetDB adalah open source columnoriented database management system yang
dikembangkan oleh CWI (Centrum Wiskunde
and Informatica). MonetDB sebagai pelopor
dari column-store yang merupakan solusi
untuk kinerja yang tinggi dari data warehouse
untuk business intelligence dan eScience sejak
tahun 1993. Inovasi yang dikembangkan oleh
MonetDB untuk semua lapisan dari DBMS
adalah model penyimpanan yang berdasarkan
vertical fragmentation, sebuah arsitektur
untuk eksekusi query yang modern dengan
CPU-tuned, otomatis dan adaptif untuk
indexing, run-time query optimization, dan
software architecture yang standar. MonetDB
juga mendukung penuh ACID dan SQL yang
digunakan oleh MonetDB berdasarkan standar
SQL 2003. MonetDB sudah diuji pada Linux
(Fedora, RedHat Enterprise Linux, Debian,
Ubuntu), Gentoo, Mac OS, SUN Solaris,
Open Solaris, dan Windows. Antarmuka
pemograman yang didukung oleh MonetDB
adalah JDBC, ODBC, PHP, Python, RoR, C,
C++, dan Perl (MonetDB 2012).
Model penyimpanan yang dikembangkan
pada MonetDB secara signifikan berbeda
dengan traditional database system. Ini
digambarkan dengan tabel baru yang
merupakan hasil fragmentation secara vertikal
dari entitas dalam arti menyimpan masingmasing kolom (atribut) dari entitasnya pada
tabel secara terpisah. Pada tabel baru yang
merupakan hasil dari fragmentation, terdiri
atas dua kolom. Ini disebut dengan Binary
Association Table (BAT) yang dapat dilihat
pada Gambar 2.
PostGIS
PostGIS merupakan sebuah software yang
open source yang menjadikan PostgreSQL
sebagai spatial DBMS dengan menambahkan
dukungan tiga fasilitas, yaitu dukungan untuk
semua tipe data spasial, pengindeksan data
spasial, dan tersedianya fungsi spasial.
Gambar
2
Binary Association Table
MonetDB (MonetDB 2012).
4
Kolom yang sebelah kiri adalah surrogate
atau object-identifier (OID) yang disebut head
dan kolom sebelah kanan adalah value yang
disebut tail (MonetDB 2012).
Manfaat column-store ini berasal dari
penyederhanaan yang lebih baik untuk aliran
data yang berasal dari disk melewati memori
yang masuk ke CPU cache. Keuntungan yang
didapat dari column-store database adalah
hanya data yang relevan yang akan diproses
dan diambil dari disk. MonetDB terdiri atas
arsitektur dua lapis, yaitu sebuah database
server dan beberapa front-end. Saat ini frontend yang tersedia adalah SQL dan XQuery
yang berfungsi sebagai antarmuka ke
database server. Server diprogram dalam
bahasa pemrograman yang disebut MonetDB
Association Language (MAL). MAL adalah
bahasa aljabar relational yang mendukung
koleksi besar dari relational yang primitif,
fungsi-fungsi, dan hubungan yang mudah
dengan fungsi yang didefinisikan pengguna
(Vermeij et al. 2008).
yang juga berisi pointer ke objek data.
Struktur dari R-Tree didesain agar pencarian
untuk spasial hanya mengunjungi jumlah node
yang sedikit. Untuk proses insert dan delete
dapat dibarengi dengan proses search dan
tidak perlu reorganisasi secara periodik.
Indeks tersebut merupakan proses yang
dinamis. Leaf node di dalam R-Tree berisi
masukan pencatatan indeks dari bentuk:
(I,
tuple-indentifier)
menunjuk ke tuple di
dalam database dan I adalah sebuah ndimensional rectangle yang merupakan
bounding box dari objek spasial yang
diindeks. Non-leaf node berisi masukan dari
bentuk:
Tuple-identifier
(I,
child-pointer)
Child-pointer merupakan alamat dari node
yang berada di bawahnya di dalam R-Tree dan
I meliputi semua rectangle masukan node di
bawahnya.
Spesifikasi MonetDB dan PostgreSQL
Spesifikasi pada MonetDB yang pertama
adalah memiliki arsitektur sebagai relation
model.
MonetDB tidak memiliki GUI
(Graphical User Interface). Rilis pertama
untuk umum pada tahun 2004. Untuk
pengindeksan data menggunakan hash index.
Untuk limit pada MonetDB seperti berapa
batas ukuran maksimal sebuah tabel di dalam
disk, kemudian batas maksimal ukuran sebuah
database, dan yang lainnya tidak diketahui.
Hanya terdapat keterangan bahwa maksimal
kolom per baris tidak memiliki batasan untuk
ukuran pada disk. Sedangkan spesifikasi pada
PostgreSQL yang pertama adalah memiliki
arsitektur sebagai object-relational model.
PostgreSQL
memiliki
GUI
untuk
mempermudah pengguna. Rilis pertama untuk
umum pada tahun 1989. Untuk pengindeksan
data PostgreSQL memiliki banyak cara, yaitu
bitmap, expression, full-text, GIN, GiST,
hash, partial, R-/R+ Tree, dan reverse. Pada
PostgreSQL maksimum kolom per baris
adalah 250-1600 bergantung pada tipenya.
Ukuran maksimum untuk database adalah
tidak terbatas. Ukuran maksimum untuk baris
adalah 1.6 TB dan ukuran maksimum untuk
tabel adalah 32 TB (Findthebest 2012).
R-Tree
R-tree merupakan sebuah height-balanced
tree yang serupa dengan B-Tree dengan
pencatatan indeks di dalam setiap leaf node
Gambar 3
Struktur dari R-Tree (Guttman
1984).
Gambar 3 merupakan sebuah hirarki dari RTree
dan
mengilustrasikan
sebuah
pengkotakan dan tumpang tindih dari sebuah
relasi yang ada di antara rectangle tersebut
(Guttman 1984).
5
Hash
Identifikasi Masalah
Salah satu cara yang digunakan untuk
implementasi metode himpunan abstract data
type (ADT) adalah dengan menggunakan tabel
hash. Proses search pada tabel hash
merupakan exact search. Ide utama yang
melatarbelakangi semua implementasi tabel
hash adalah menyimpan sebuah himpunan
dari n = |S| elemen di dalam array (tabel
hash) A dengan panjang m ≥ n. Oleh karena
itu, kita perlu sebuah fungsi yang memetakan
elemen-elemen x tersebut ke dalam lokasi
dari array. Fungsi ini disebut dengan fungsi
hash h dan nilai dari h(x) disebut nilai hash
dari x. Elemen x dapat disimpan pada lokasi
array A[h(x)]. Banyak implementasi dari
tabel hash didasarkan dengan integer universe
assumption (Mehta & Sahni 2005).
Identifikasi masalah merupakan tahap
awal dari penelitian ini. Masalah yang
diidentifikasi adalah berkaitan dengan waktu
eksekusi query, output dari proses eksekusi
query dan juga ketersedian fungsi spasial pada
kedua DBMS, yaitu PostgreSQL dan
MonetDB. Oleh karena itu, dalam penelitian
ini dilakukan perbandingan pada kedua
DBMS tersebut untuk masalah tersebut.
METODE PENELITIAN
Secara umum metode penelitian yang
digunakan tersusun dalam suatu diagram alur
penelitian yang dapat dilihat pada Gambar 4.
Mulai
Identifikasi Masalah
Pengumpulan Data
Pembangunan
Database
menggunakan
MonetDB
Pembangunan
Database
menggunakan
PostgreSQL
Pengumpulan Data
Pada tahap ini dilakukan pengumpulan
data yang akan digunakan untuk pengujian.
Data terdiri atas dua jenis data, yaitu data
spasial dan data non-spasial. Data spasial
didapat dalam format shapefile. Sedangkan
data non-spasial didapat dari sebuah file
dengan ekstensi *.sql. File tersebut berisi
baris-baris SQL yang memuat keseluruhan isi
data non-spasial.
Pembangunan
PostgreSQL
Database
menggunakan
Setelah semua data diperoleh, maka tahap
selanjutnya adalah memasukkan data ke
dalam DBMS. Data yang dimasukkan terdiri
atas empat data spasial dengan format
shapefile dan satu data non-spasial dalam
sebuah file dengan ekstensi *.sql. Oleh karena
itu, diperlukan sebuah database baru pada
PostgreSQL.
Pembangunan
MonetDB
Database
menggunakan
Untuk MonetDB, data spasial yang akan
dimasukkan harus terlebih dahulu diubah ke
dalam baris-baris SQL yang disimpan dalam
file dengan ekstensi *.sql. Kemudian
dilanjutkan dengan membuat database baru
pada MonetDB.
Input dan Hasil Query
Input dan Hasil Query
Input dan Hasil Query
Analisis Hasil
Selesai
Gambar 4 Tahapan Penelitian.
Query yang akan digunakan untuk
pengujian DBMS dikelompokkan menjadi
tiga kelompok, yaitu query non-spasial
sederhana, spasial sederhana, dan spasial
kompleks.
Analisis Hasil
Hasil pengujian berupa pencatatan waktu
dan output dari setiap query yang diuji pada
masing-masing
DBMS.
Selain
itu,
kemampuan kedua DBMS untuk menjalankan
fungsi spasial yang terdapat di dalam query
perlu dibandingkan untuk dapat dianalisis
lebih lanjut.
6
Spesifikasi Perangkat Keras
Untuk spesifikasi perangkat keras yang
digunakan di dalam penelitian ini adalah
processor Intel core i5, memori DDR3 2 GB,
dan harddisk 500 GB.
HASIL DAN PEMBAHASAN
Pengumpulan Data
Data yang akan digunakan untuk
pengujian
DBMS
terlebih
dahulu
dikumpulkan. Data terbagi menjadi dua jenis,
yaitu data spasial dan data non-spasial. Data
didapat dari workshop PostGIS yang
disediakan oleh situs OpenGeo2. Data terdiri
atas empat data spasial dalam format shapefile
dan satu data non-spasial dalam sebuah file
dengan ekstensi *.sql. Empat data shapefile
ini
adalah
nyc_census_blocks,
nyc_neighborhoods,
nyc_streets,
dan
nyc_subway_stations. Satu data non-spasial
adalah nyc_census_sosiodata.
‘popn_nativ’ (populasi penduduk asli
Amerika), ‘popn_asian’ (populasi penduduk
Asia), ‘popn_other’ (populasi penduduk
lainnya),
‘hous_total’
(total
rumah),
‘hous_own’ (total rumah pribadi), ‘hous_rent’
(total rumah yang disewakan), dan
‘boroname’ (nama sektor).
Data spasial nyc_neighborhoods ini
adalah pemetaan per sektor wilayah. Setiap
sektor memiliki beberapa neighborhood. Di
New York, neighborhood merupakan suatu
konstruksi sosial yang tidak mengikuti garis
yang ditetapkan oleh pemerintah. Untuk
contoh, neighborhood dari Brooklyn, yaitu
Carrol Gardens, Red Hook, dan Cobble Hill
yang diketahui sebagai Brooklyn selatan.
Nyc_neighborhoods memiliki dua atribut,
yaitu ‘name’ yang berisikan nama dari
neighborhood dan ‘boroname’ yang berisikan
nama dari sektor-sektor yang ada di New
York, yaitu Manhattan, The Bronx, Brooklyn,
Staten Island, dan Queens. Gambar 6
merupakan pemetaan untuk neighborhood
pada Kota New York.
Data
spasial
nyc_census_blocks
merupakan daerah pemetaan terkecil (per
blok) dari sensus penduduk yang berada di
Kota New York. Gambar 5 merupakan contoh
pemetaan dari persentase populasi kulit hitam
dari total populasi.
Gambar 6 Neighborhood dari New York.
Gambar 5 Persentase populasi kulit hitam.
Data spasial nyc_census_blocks memiliki
atribut yang memberikan keterangan untuk
data geometrinya, yaitu ‘blkid’ (identitas
blok),
‘popn_total’
(total
populasi),
‘popn_white’
(populasi
kulit
putih),
‘popn_black’
(populasi
kulit
hitam),
2
http://workshops.opengeo.org
Data spasial nyc_streets ini adalah
pemetaan centerline street dari jaringan
transportasi kota. Jalan-jalan ini ditandai
dengan berbagai tipe untuk membedakan
antara jalan umum yang ada seperti gang-gang
belakang gedung atau rumah yang sempit,
jalan arteri, jalan raya, dan jalan-jalan kecil.
Data ini memiliki tiga atribut, yaitu ‘name’
(nama jalan), ‘oneway’ (satu arah atau tidak),
dan ‘type’ (jenis jalan). Gambar 7
memberikan gambaran dari pemetaan jalan
yang berada di Kota New York.
7
Gambar 7 Jalan Kota New York.
Data
spasial
yang
terakhir adalah
Pemetaan stasiun
kereta bawah tanah ini tersimpan di data
spasial nyc_subway_stations. Lokasi stasiun
ini memudahkan orang dalam menggunakan
transportasi kereta bawah tanah. Data ini
memiliki atribut ‘name’ (nama stasiun),
‘borough’ (nama sektor), ‘routes’ (rute),
‘transfers’ (jalur transfer), dan ‘express’
(stasiun untuk kereta ekspres atau tidak).
Gambar 8 merupakan pemetaan dari subway
station di Kota New York.
nyc_subway_stations.
pekerja pada grup blok), ‘transit_public’ (total
pekerja
dengan
transportasi
umum),
‘transit_private’ (total pekerja dengan
kendaraan pribadi), ‘transit_other’ (total
pekerja dengan berjalan kaki atau bersepeda),
‘transit_time_mins’ (total waktu dalam menit
untuk bekerja), ‘family_count’ (jumlah
keluarga
di
grup
blok),
‘family_income_median’ (median pendapatan
keluarga
dalam
US
dolar),
‘family_income_aggregate’ (total pendapatan
dari seluruh keluarga), ‘edu_total’ (total orang
dengan
sejarah
pendidikan),
‘edu_no_highschool_dipl’ (total orang tanpa
ijazah sekolah tinggi), ‘edu_highschool_dipl’
(total orang dengan ijazah sekolah tinggi dan
tidak
diteruskan
pendidikannya),
‘edu_college_dipl’ (total orang dengan ijazah
perguruan tinggi dan tidak dilanjutkan
pendidikannya), dan ‘edu_graduate_dipl’
(total orang dengan ijazah lulusan sekolah).
Pembangunan
PostgreSQL
Database
menggunakan
Setelah semua data diperoleh, proses
selanjutnya adalah memasukkan data ke
database
dalam
DBMS
PostgreSQL.
PostgreSQL yang digunakan adalah versi 8.4
dengan PostGIS versi 1.5. Tahap pertama
dalam proses pembangunan database
PostgreSQL adalah membuat database baru
pada PostgreSQL melalui pgAdmin III yang
merupakan antarmuka dari PostgreSQL.
Subway station
Gambar 8 Titik lokasi subway station.
Data non-spasial nyc_census_sociodata
yang didapat adalah data sosial ekonomi yang
dikumpulkan selama proses sensus. Data ini
berisikan beberapa atribut, yaitu ‘tractid’
(identitas grup blok), ‘transit_total’ (total
Gambar 9
Pembangunan database pada
PostgreSQL.
Gambar 9 merupakan proses pembangunan
database baru pada PostgreSQL dengan
8
menggunakan pgAdmin
III.
Database
tersebut diberi nama ‘sig’. Karena sebelumnya
telah dilakukan instalasi PostGIS, template
yang dipakai dalam database ini adalah
template PostGIS. Hal ini bertujuan agar data
spasial format shapefile (*.shp) dapat
dikonversi menjadi format PostGIS (*.sql)
dan dapat langsung menyimpan hasil konversi
ke dalam database. Selain itu, dengan
menggunakan template PostGIS, kita memilki
tiga fasilitas yang dimiliki oleh PostGIS
seperti dapat menerima masukan untuk semua
tipe data spasial, pengindeksan data spasial,
dan fungsi spasial. Setelah database yang
baru selesai dibuat, di dalam database tersebut
sudah tersedia dua tabel, yaitu tabel
‘geometry_columns’ dan ‘spatial_ref_sys’.
Tabel-tabel ini secara otomatis dibuat oleh
PostgreSQL karena kita menggunakan
template PostGIS sebagai database template.
Tahap yang kedua adalah melakukan
konversi data spasial format shapefile ke
dalam format PostGIS. Konversi dilakukan
dengan menggunakan PostGIS. PostGIS
menyediakan antarmuka seperti pgAdmin III
pada PostgreSQL yang memberi kemudahan
bagi pengguna untuk mengkonversi data
spasial dengan format shapefile ke dalam
format PostGIS. Gambar 10 merupakan
antarmuka dari PostGIS. Dengan adanya
antarmuka dari PostGIS kita tidak perlu
menggunakan program shp2pgsql.
Antarmuka dari PostGIS yang akan secara
otomatis menjalankan program shp2pgsql.
Shp2pgsql merupakan sebuah program untuk
mengubah format shapefile (*.shp) ke dalam
format PostGIS (*.sql), sedangkan cara
manual untuk mengkonversi data spasial
menggunakan shp2pgsql adalah dengan
mengetikan syntax seperti di bawah ini:
shp2pgsql
[option]
[schema.table_name]
>
*.sql]
[shapefile]
[file_name
Sebelum dilakukan konversi data dari
format shapefile menjadi format PostGIS,
salin semua data yang akan digunakan ke
folder directory ‘bin’ seperti di bawah ini:
C:\Program Files\PostgreSQL\8.4\bin
Kemudian data dimasukkan satu per satu
menggunakan PostGIS. Selanjutnya data
dikonversi oleh PostGIS dan hasil konversi
langsung masuk ke dalam tabel database
‘sig’. Tabel-tabel tersebut dibuat otomatis
oleh PostGIS dengan nama tabel yang sama
seperti nama data spasialnya. Untuk data nonspasial nyc_census_sociodata, data didapat
dalam sebuah file dengan ekstensi *.sql. Data
dimasukkan dengan memuat ke dalam SQL
queries PostgreSQL yang ada pada pgAdmin
III PostgreSQL.
Setelah semua data dikonversi dan telah
dimuat, database ‘sig’ akan memiliki lima
tabel baru, yaitu tabel ‘nyc_census_blocks’,
‘nyc_neighborhoods’,
‘nyc_streets’,
‘nyc_subway_stations’,
dan
‘nyc_census_sociodata’. Tahap yang terakhir
adalah melakukan vacuum analyze pada
setiap tabel. Hal ini perlu dilakukan karena
diperkirakan jumlah baris pada masingmasing tabel menyimpang jauh dari jumlah
baris yang sebenarnya. Oleh sebab itu, kita
harus menjalankan vacuum analyze pada
masing-masing tabel agar tidak mengurangi
kinerja database. Kita dapat melakukan
vacuum analyze dengan menggunakan menu
maintenance pada pgAdmin III. Cara lainnya
adalah menggunakan Command
Prompt
PostgreSQL dengan mengeksekusi:
VACUUM ANALYZE [tbl_name] (the_geom);
Gambar 10 Antarmuka PostGIS.
Database ‘sig’ pada PostgreSQL memiliki
ukuran di dalam disk sebesar 30 MB. Ukuran
database ‘sig’ sesuai dengan ukuran data
spasial yang dimasukkan ke dalam
PostgreSQL. Cara untuk mengetahui ukuran
dari database adalah dengan mengeksekusi
perintah seperti di bawah ini ke dalam sql
shell pada PostgreSQL:
9
SELECT pg_size_pretty(pg_database_size
('sig'));
Pembangunan
MonetDB
Database
menggunakan
Proses pembangunan database pada
MonetDB berbeda dengan PostgreSQL karena
MonetDB tidak memiliki program shapefile
loader seperti PostGIS. Format data yang
didukung oleh MonetDB adalah CSV, SQL,
TAB, RAW dan XML. Oleh karena itu, untuk
memasukkan data spasial format shapefile ke
dalam MonetDB, tahap pertama yang harus
dilakukan adalah mengubah data spasial
format shapefile (*.shp) menjadi baris-baris
SQL yang disimpan dalam sebuah file dengan
ekstensi *.sql.
ArcView adalah software yang dapat
digunakan untuk mengubah data spasial
(shapefile) menjadi baris-baris SQL yang
disimpan dalam sebuah file dengan ekstensi
*.sql. Dengan tersedianya extension Gix
Export Tool pada ArcView, maka shapefile
dapat diubah menjadi baris-baris SQL.
Data dimasukkan satu per satu kemudian
dilakukan konversi menggunakan Gix Export
Tool. Setelah semua data dikonversi, perlu
dilakukan penyesuaian struktur syntax SQL
yang sesuai dengan standar SQL MonetDB.
Oleh karena itu, dilakukan pengeditan agar
MonetDB dapat memuat SQL tersebut.
Tahap selanjutnya adalah membuat
database baru pada MonetDB yang dimulai
dengan membuat database kosong yang baru.
MonetDB tidak memiliki antarmuka bagi
pengguna seperti PostgreSQL. MonetDB
menggunakan Command Prompt (CMD)
sebagai
program
antarmuka.
Dalam
menggunakan MonetDB, kita harus terlebih
dahulu mengaktifkan server MonetDB.
Pengaktifan
server
dilakukan
dengan
menggunakan CMD. Pada CMD, directory
yang akan digunakan ke folder directory ‘bin’
diubah seperti berikut:
C:\Program Files\MonetDB\MonetDB5\bin
Dilanjutkan dengan
seperti berikut:
mengetikkan
mserver5
–-dbname=sig
dbfarm=C:\skripsi
syntax
--
Syntax –-dbname adalah syntax yang
digunakan untuk membuat database baru atau
menjalankan database yang telah dibuat. Jika
kita sudah mengetikkan itu, server sudah aktif
dan database baru telah kita buat. Syntax -dbfarm merupakan syntax yang digunakan
untuk membuat folder directory penyimpanan
data ke database dalam MonetDB dan juga
digunakan untuk memuat directory yang telah
kita buat sebelumnya.
Setelah server aktif, kita baru dapat
menjalankan
client
MonetDB.
Cara
menjalankan client sama seperti menjalankan
server. Perbedaannya hanya syntax yang kita
ketik seperti berikut:
mclient –u monetdb –d sig
Syntax –u adalah nama pengguna dan –d
adalah database yang telah dijalankan oleh
server.
Tahap
yang
berikutnya
adalah
memasukkan semua data SQL ke dalam
MonetDB. Jadi ada lima data yang akan
dimasukkan, empat data hasil konversi
menggunakan ArcView dan satu data nonspasial dalam sebuah file dengan ekstensi
*.sql. Cara memasukkan data tersebut dengan
mengeksekusi perintah ini pada Command
Prompt MonetDB pada client MonetDB:
\
(POSTGRESQL/POSTGIS DAN MONETDB/SPATIAL)
ANGGI PUTRANTIO JUNIARD
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2013
PERBANDINGAN FUNGSIONALITAS DAN KINERJA SPATIAL-DBMS
(POSTGRESQL/POSTGIS DAN MONETDB/SPATIAL)
ANGGI PUTRANTIO JUNIARD
Skripsi
sebagai salah satu syarat untuk memperoleh gelar
Sarjana Komputer pada
Departemen Ilmu Komputer
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2013
ABSTRACT
ANGGI PUTRANTIO JUNIARD. Comparison of Functionality and Performance of SpatialDBMS (PostgreSQL/PostGIS and MonetDB/Spatial). Supervised by HARI AGUNG
ADRIANTO.
Spatial-DBMS is a software module that can work with an underlying database management
system and support multiple spatial data models, spatial indexing, and spatial function. Several
examples of spatial-DBMS is PostgreSQL, MYSQL, IBM DB2, Oracle, SQL Server, and
MonetDB. PostgreSQL as a well-known spatial-DBMS has been widely used all over the world.
Meanwhile, MonetDB is still in the phase of system development and has many rooms for
improvement. This research compared the two spatial-DBMS in terms of functionality and
performance. The results showed that PostgreSQL has more complete spatial function compared to
MonetDB. From their performance, it was found that MonetDB is better than PostgreSQL in
handling simple non-spatial queries. As for the simple and complex spatial queries, PostgreSQL
has shown better performance compared to MonetDB.
Keywords: spatial data, PostgreSQL, MonetDB, functionality, performance
Judul Skripsi
Nama
NRP
: Perbandingan Fungsionalitas dan Kinerja Spatial-DBMS (PostgreSQL/PostGIS
dan MonetDB/Spatial)
: Anggi Putrantio Juniard
: G64080103
Menyetujui:
Pembimbing
Hari Agung Adrianto, S.Kom., M.Si.
NIP. 19760917 200501 1 001
Mengetahui:
Ketua Departemen Ilmu Komputer
Dr. Ir. Agus Buono, M.Si., M.Kom.
NIP. 19660702 199302 1 001
Tanggal Lulus :
KATA PENGANTAR
Segala puji dan syukur penulis panjatkan ke hadirat Allah subhanahu wata’ala atas segala
limpahan rahmat serta karunia-Nya sehingga penulis mampu menyelesaikan tugas akhir dengan
baik. Shalawat dan salam penulis sampaikan kepada Nabi Muhammad shallallahu ‘alaihi
wasallam serta kepada keluarganya, sahabatnya, serta para pengikutnya yang selalu berpegang
kepada Al-Quran dan As-Sunnah.
Penulis juga menyampaikan terima kasih kepada seluruh pihak yang telah berperan dalam
penelitian ini, antara lain:
1
Ayahanda Katiya, Ibunda Dian Etika Sari, Kakak Putri Anggraeni, serta Adik Rachma
Alfazdilla atas doa, kasih sayang, dukungan, serta motivasi kepada penulis untuk
penyelesaian penelitian ini.
2
Bapak Hari Agung Adrianto, S.Kom., M.Si. selaku dosen pembimbing yang telah memberi
banyak ide, saran, bantuan, serta dukungan sampai selesainya penelitian ini.
3
Shaila, Adisty Dewi Kania, dan Resti Indrias atas doa, nasihat, dukungan, serta motivasi
kepada penulis untuk penyelesaian penelitian ini.
4
Rekan-rekan seperjuangan di Ilmu Komputer IPB angkatan 45 atas segala kebersamaan,
bantuan, dukungan, serta kenangan bagi penulis selama menjalani masa studi. Semoga kita
bisa berjumpa kembali kelak sebagai orang-orang sukses.
5
Hafizhia Dhikrul Anugrah, Ryantie Octaviani, Melki Hasali, Catur Purbo, Jaka Ahmad,
Rian Senja, Irvan Ahadi, Fulsi Wiyata, Asrori, dan sahabat lainnya yang telah menjadi
mitra dan menemani penulis dalam menjalani kehidupan sebagai mahasiswa.
6
Rekan satu bimbingan, Mitha Rachmawati, Praditya Pamungkas, dan Ilman Dwi Santoso.
7
Sahabat satu kontrakan, Abdul Rahman Halim, Nanda Ichsan Pratama, Ahmad Bagus
Diponegoro, Ryan Satria Nugroho, yang telah memberikan dukungan untuk segera
menyelesaikan studi.
Penulis berharap semoga penelitian ini dapat memberikan manfaat, khususnya bagi umat
Islam di Indonesia dan masyarakat pada umumnya.
Bogor, Februari 2013
Anggi Putrantio Juniard
RIWAYAT HIDUP
Penulis dilahirkan di Jakarta pada tanggal 13 Juni 1990. Penulis merupakan anak kedua dari
pasangan Katiya dan Dian Etika Sari. Pada Tahun 2008, penulis menamatkan pendidikan di SMA
Negeri 67 Jakarta. Pada tahun yang sama, penulis diterima menjadi mahasiswa di Institut Pertanian
Bogor (IPB) melalui jalur Seleksi Nasional Masuk Perguruan Tinggi Negeri (SNMPTN). Penulis
menjadi mahasiswa di Departemen Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan
Alam.
Pada bulan Juli-Agustus 2011 penulis melaksanakan kegiatan Praktik Kerja Lapangan di PT.
Aquanur Powerindo. Selama aktif sebagai mahasiswa, penulis pun turut aktif dalam kegiatan
kepanitian di Departemen Ilmu Komputer, yaitu Masa Perkenalan Departemen (MPD) dan IT
Today 2010.
DAFTAR ISI
Halaman
DAFTAR TABEL ............................................................................................................................vi
DAFTAR GAMBAR .......................................................................................................................vi
PENDAHULUAN
Latar Belakang .............................................................................................................................. 1
Tujuan ........................................................................................................................................... 1
Ruang Lingkup ............................................................................................................................. 1
TINJAUAN PUSTAKA
Struktur Data Spasial .................................................................................................................... 2
Shapefile ....................................................................................................................................... 2
PostgreSQL ................................................................................................................................... 2
Arsitektur PostgreSQL.................................................................................................................. 2
PostGIS ......................................................................................................................................... 3
MonetDB ...................................................................................................................................... 3
Spesifikasi MonetDB dan PostgreSQL ......................................................................................... 4
R-Tree ........................................................................................................................................... 4
Hash .............................................................................................................................................. 5
METODE PENELITIAN
Identifikasi Masalah...................................................................................................................... 5
Pengumpulan Data ........................................................................................................................ 5
Pembangunan Database menggunakan PostgreSQL .................................................................... 5
Pembangunan Database menggunakan MonetDB ....................................................................... 5
Input dan Hasil Query .................................................................................................................. 5
Analisis Hasil ................................................................................................................................ 5
HASIL DAN PEMBAHASAN
Pengumpulan Data ........................................................................................................................ 6
Pembangunan Database menggunakan PostgreSQL .................................................................... 7
Pembangunan Database menggunakan MonetDB ....................................................................... 9
Input dan Hasil Query ................................................................................................................ 10
Analisis Hasil .............................................................................................................................. 15
SIMPULAN DAN SARAN
Simpulan ..................................................................................................................................... 16
Saran ........................................................................................................................................... 16
DAFTAR PUSTAKA ..................................................................................................................... 16
v
DAFTAR TABEL
Halaman
1
2
3
4
5
6
Query non-spasial sederhana…………………………………………………………………… 11
Hasil eksekusi query non-spasial sederhana………………………………………………...…. 11
Query spasial sederhana………………………………………………………………………... 12
Hasil eksekusi query spasial sederhana………………………………………………………… 12
Query spasial kompleks……………………………………………………………………...… 14
Hasil eksekusi query spasial kompleks………………………………………………………… 14
DAFTAR GAMBAR
Halaman
1 Architecture PostgreSQL (Matthew & Stones 2005)……………………………………………. 2
2 Binary Association Table MonetDB (MonetDB 2012)………………………………………….. 3
3 Struktur dari R-Tree (Guttman 1984)……………………………………………………………. 4
4 Tahapan Penelitian………………………………………………………………………………. 5
5 Persentase populasi kulit hitam………………………………………………………………….. 6
6 Neighborhood dari New York…………………………………………………………………… 6
7 Jalan Kota New York……………………………………………………………………………. 7
8 Titik lokasi subway station............................................................................................................. 7
9 Pembangunan database pada PostgreSQL………………………………………………………. 7
10 Antarmuka PostGIS…………………………………………………………………………….. 8
11 Syntax untuk implementasi Minimum Bounding Rectangle……………………………………. 9
12 Perbandingan waktu eksekusi untuk query non-spasial sederhana…………………………... 11
13 Perbandingan waktu eksekusi untuk query spasial sederhana………………………………... 13
14 Perbandingan waktu eksekusi untuk query spasial kompleks………………………………… 14
15 Perbandingan waktu eksekusi untuk tabel yang memiliki jumlah baris berbeda……………... 15
vi
1
PENDAHULUAN
Latar Belakang
Seiring dengan kemajuan teknologi saat
ini, aplikasi yang menggunakan data spasial
terus dikembangkan. Oleh karena itu,
dibutuhkan sarana penyimpanan data spasial
yang baik guna menghasilkan aplikasi yang
andal. Data spasial dapat disimpan dalam
sebuah file, misalnya disimpan dalam format
shapefile, yaitu format data spasial yang
dikeluarkan oleh Environmental System
Resource Institute (ESRI). Akan tetapi,
menyimpan dalam file memiliki permasalahan
seperti pengelolaan file, concurrency control,
bulk loading, storage, dan keamanan.
Untuk
menangani
permasalahan
penyimpanan data spasial berbasis file, dapat
digunakan Database Management System
(DBMS). Banyak DBMS yang dapat
digunakan sebagai sarana penyimpanan data
spasial seperti PostgreSQL, MYSQL, IBM
DB2, Oracle, SQL Server, dan MonetDB.
Masing-masing DBMS tersebut memiliki
kemampuan untuk menyimpan dan mengolah
data spasial dengan didukung oleh berbagai
fasilitas lainnya.
PostgreSQL atau sering disebut Postgres
merupakan salah satu dari sejumlah DBMS
yang telah digunakan secara luas. Hal ini
dikarenakan PostgreSQL merupakan open
source database system yang telah teruji
kemampuannya. Berdasarkan situs resmi
PostgreSQL1,
PostgreSQL
telah
memenangkan banyak penghargaan dan juga
telah sukses digunakan oleh berbagai
perusahaan. PostGIS menjadikan PostgreSQL
sebagai spatial-DBMS dengan didukung oleh
tiga fasilitas yang dimiliki oleh PostGIS, yaitu
mendukung berbagai tipe data spasial seperti
point, line, dan polygon, kemampuan untuk
pengindeksan data spasial, dan terakhir
tersedianya fungsi spasial yang digunakan
untuk mengeksekusi query spasial. Berbagai
perusahaan atau kelompok pengembang
aplikasi di bidang Sistem Informasi Geografis
(SIG) menggunakan PostgreSQL sebagai
DBMS. Sebagai contoh adalah MapServer
yang mendukung PostgreSQL sebagai sarana
penyimpanan data spasial.
Namun untuk menangani data yang besar,
PostgreSQL memiliki kelemahan di dalam hal
kinerja akses data. Model penyimpanan data
pada PostgreSQL adalah row-store database.
1
http://www.postgresql.org
Andurkar (2012) menyatakan bahwa pada
row-store DBMS, saat kita ingin mencari data
hanya pada beberapa kolom dari sebuah tabel
dengan kolom yang banyak, maka hal ini
dapat
mengurangi
kecepatan
untuk
pengaksesan data. Hal tersebut disebabkan
setiap kali data dibaca dalam row-store
DBMS, kolom yang tidak relevan akan ikut
diakses karena row-store DBMS merupakan
DBMS dengan model penyimpanan yang
menyimpan seluruh kolom dari suatu tabel
secara satu kesatuan yang saling terkait di
dalam disk drive.
Di sisi lain, CWI (Centrum Wiskunde and
Informatica) mengembangkan column-store
DBMS yang dapat digunakan untuk
menangani data yang besar. Pada tahun 2004
untuk pertama kalinya, CWI merilis
produknya dengan nama MonetDB yang
merupakan open source database system.
Column-store DBMS dapat mengakses hanya
atribut yang dibutuhkan saja. Hal ini
dikarenakan column-store DBMS menyimpan
atribut secara terpisah. Vermeij et al. (2008)
menyatakan bahwa column-store approach
memiliki keuntungan untuk spatial query.
Alasan utamanya adalah field geometri yang
tidak relevan dalam eksekusi spatial query
tidak ikut diakses.
Saat ini MonetDB masih dalam tahap awal
pengembangan sistem. Mengingat banyaknya
potensi yang dimiliki oleh MonetDB, maka
perlu
dilakukan
perbandingan
antara
MonetDB dengan PostgreSQL. Oleh sebab
itu,
pada
penelitian
ini
dilakukan
perbandingan dari sisi fungsionalitas dan
kinerja dua DBMS, yaitu PostgreSQL dan
MonetDB.
Tujuan
Tujuan dari penelitian ini adalah
membandingkan PostgreSQL dan MonetDB
dalam hal fungsionalitas dan kinerja untuk
data spasial.
Ruang Lingkup
1 Sistem operasi yang digunakan terbatas
hanya
pada
Windows,
khususnya
Windows Seven 32-bit.
2 Query yang diujikan hanya mencakup dari
tiga kelompok ini, yaitu query non-spasial
sederhana (menggunakan non-fungsi
spasial),
query
spasial
sederhana
(menggunakan fungsi spasial), dan query
spasial kompleks (menggunakan fungsi
spasial dan join table).
2
TINJAUAN PUSTAKA
Struktur Data Spasial
Dalam kerangka kerja SIG, data dibagi
menjadi dua kategori, yaitu data spasial dan
data tekstual (atribut). Data spasial merupakan
data yang memiliki informasi lokasi atau data
yang bereferensi geografis dan data atribut
merupakan data yang memiliki fitur spasial
(Chang 2008).
Shapefile
Menurut
Chang
(2008),
shapefile
merupakan sebuah format data spasial yang
menyimpan lokasi geografis berupa informasi
atribut titik (point), garis (line), dan poligon
(polygon). Bentuk geometri yang tersimpan
adalah dalam bentuk koordinat vektor. Format
ini adalah format yang dikeluarkan oleh
Environmental System Resource Institue
(ESRI) yang merupakan salah satu vendor
SIG terkemuka. ESRI shapefile terdiri atas:
1 Main file (.shp)
Merupakan file yang dapat diakses secara
langsung dan panjang dari record variabel
dalam file mendeskripsikan bentuk vertex.
2 Index file (.shx)
Pada file indeks, tiap record terdiri atas
proses cetakan offset yang berhubungan
dengan record file utama.
3 Tabel dBASE (.dbf)
Pada tabel dBASE terdapat fitur atribut
dengan record pada setiap fiturnya.
PostgreSQL
PostgreSQL
adalah
open
source
ORDBMS (Object Relational Database
Management System) dengan reputasi yang
baik dalam keandalan, integritas data, dan
correctness.
PostgreSQL
mulai
diimplementasikan
sejak
tahun
1986.
PostgreSQL dapat berjalan pada sistem
operasi Linux, UNIX, maupun Windows.
PostgreSQL mendukung penuh ACID
(atomicity, consistency, isolation, durability)
dan sebagian besar standar ANSI SQL
92/2003. PostgreSQL sangat scalable, mampu
menangani kuantitas data yang besar dan
mengakomodasi banyak pengguna secara
konkuren. Ada banyak procedural languages
yang didukung oleh PostgreSQL, juga ada
banyak library interface yang membuat
beragam bahasa tersebut dapat compiled dan
interpreted ke interface pada PostgreSQL.
Ada interface untuk Java (JDBC), ODBC,
Perl, Python, Ruby, C, C++, PHP, Lisp,
Scheme, dan Qt yang dapat digunakan pada
PostgreSQL (PostgreSQL 2012).
Arsitektur PostgreSQL
PostgreSQL terdiri atas proses (program)
yang saling terkait, yaitu proses server untuk
mengelola database file, menerima koneksi ke
database dari client application, dan
mengeksekusi permintaan dari client dan
progam client user application (front-end)
yang berfungsi untuk melakukan operasi
database. Client dan server dapat berada pada
host yang berbeda. Server PostgreSQL dapat
menangani koneksi bersamaan dari client.
Untuk dapat mengkoneksikan client secara
bersamaan, PostgreSQL memulai dengan
membuat proses (program) yang baru untuk
masing-masing koneksi. Maka, client dan
proses server yang baru dapat berkomunikasi
tanpa adanya intervensi oleh proses
PostgreSQL yang asli. Dengan demikian,
proses dari master server masih tetap berjalan
dan menunggu koneksi client (PostgreSQL
Global Development Group 2009).
Pada Gambar 1, dapat kita lihat beberapa
client terhubung ke server melalui sebuah
jaringan. Pada PostgreSQL, jaringan yang
dibutuhkan seperti TCP/IP, Local Area
Network (LAN) atau mungkin jaringan
internet.
Masing-masing
client
menghubungkan ke database server utama
(postmaster). Postmaster dapat membuat
proses server baru yang spesifik untuk
melayani permintaan client tersebut (Matthew
& Stones 2005).
Gambar
1
Architecture PostgreSQL
(Matthew & Stones 2005).
Eksekusi query pada PostgreSQL menurut
PostgreSQL Global Development Group
(2009) terdiri atas beberapa tahapan sampai
dengan mendapatkan hasilnya.
3
1 Sebuah koneksi dari application program
ke server dari PostgreSQL terlebih dahulu
harus dibuat. Application program
mengirimkan query dari pengguna ke
server dan menunggu untuk menerima
hasil yang dikirim kembali oleh server ke
application program.
2 Tahap berikutnya adalah parser yang
berfungsi
memeriksa
query
yang
dikirimkan oleh application program
untuk mengkoreksi syntax dan membuat
sebuah query tree. Syntax diperiksa agar
sistem dapat mengetahui apakah syntax
yang dituliskan oleh pengguna tersebut
benar.
3 Kemudian rewrite system mengambil
query tree yang telah dibuat pada tahap
parser dan memeriksa setiap aturan yang
sesuai (disimpan dalam katalog sistem)
untuk diterapkan pada query tree. Rewrite
system melakukan transformasi yang
dimasukkan ke dalam sebuah aturan
syntax dan menulis ulang query dari
pengguna ke dalam sebuah query yang
nantinya akan mengakses ke tabel dasar.
4 Planner atau optimizer mengambil query
tree yang telah ditulis ulang dan membuat
query plan yang akan dimasukkan ke
dalam eksekutor. Planner atau optimizer
melakukannya dengan terlebih dahulu
menciptakan
semua
path
yang
memungkinkan dan akhirnya mengarah ke
hasil yang sama. Pertama adalah
sequential scan dan yang lainnya
menggunakan pengindeksan. Selanjutnya
biaya untuk eksekusi dari masing-masing
path diestimasikan dan dipilih path yang
biayanya paling murah. Path yang
termurah diperluas ke dalam complete
plan yang kemudian eksekutor dapat
menggunakannya.
5 Eksekutor akan mengulangi langkah di
atas dengan kembali melewati plan tree
dan mengambil baris-baris dengan cara
yang diwakili oleh plan. Eksekutor
memanfaatkan sistem penyimpanan ketika
melakukan scaning tabel, melakukan sort
dan join, mengevaluasi kualifikasi dan
akhirnya baris-baris yang sesuai dengan
query akan diproses sebagai output.
PostGIS digunakan untuk menyimpan tipe
data geografis pada PostgreSQL (PostGIS
Team 2010).
MonetDB
MonetDB adalah open source columnoriented database management system yang
dikembangkan oleh CWI (Centrum Wiskunde
and Informatica). MonetDB sebagai pelopor
dari column-store yang merupakan solusi
untuk kinerja yang tinggi dari data warehouse
untuk business intelligence dan eScience sejak
tahun 1993. Inovasi yang dikembangkan oleh
MonetDB untuk semua lapisan dari DBMS
adalah model penyimpanan yang berdasarkan
vertical fragmentation, sebuah arsitektur
untuk eksekusi query yang modern dengan
CPU-tuned, otomatis dan adaptif untuk
indexing, run-time query optimization, dan
software architecture yang standar. MonetDB
juga mendukung penuh ACID dan SQL yang
digunakan oleh MonetDB berdasarkan standar
SQL 2003. MonetDB sudah diuji pada Linux
(Fedora, RedHat Enterprise Linux, Debian,
Ubuntu), Gentoo, Mac OS, SUN Solaris,
Open Solaris, dan Windows. Antarmuka
pemograman yang didukung oleh MonetDB
adalah JDBC, ODBC, PHP, Python, RoR, C,
C++, dan Perl (MonetDB 2012).
Model penyimpanan yang dikembangkan
pada MonetDB secara signifikan berbeda
dengan traditional database system. Ini
digambarkan dengan tabel baru yang
merupakan hasil fragmentation secara vertikal
dari entitas dalam arti menyimpan masingmasing kolom (atribut) dari entitasnya pada
tabel secara terpisah. Pada tabel baru yang
merupakan hasil dari fragmentation, terdiri
atas dua kolom. Ini disebut dengan Binary
Association Table (BAT) yang dapat dilihat
pada Gambar 2.
PostGIS
PostGIS merupakan sebuah software yang
open source yang menjadikan PostgreSQL
sebagai spatial DBMS dengan menambahkan
dukungan tiga fasilitas, yaitu dukungan untuk
semua tipe data spasial, pengindeksan data
spasial, dan tersedianya fungsi spasial.
Gambar
2
Binary Association Table
MonetDB (MonetDB 2012).
4
Kolom yang sebelah kiri adalah surrogate
atau object-identifier (OID) yang disebut head
dan kolom sebelah kanan adalah value yang
disebut tail (MonetDB 2012).
Manfaat column-store ini berasal dari
penyederhanaan yang lebih baik untuk aliran
data yang berasal dari disk melewati memori
yang masuk ke CPU cache. Keuntungan yang
didapat dari column-store database adalah
hanya data yang relevan yang akan diproses
dan diambil dari disk. MonetDB terdiri atas
arsitektur dua lapis, yaitu sebuah database
server dan beberapa front-end. Saat ini frontend yang tersedia adalah SQL dan XQuery
yang berfungsi sebagai antarmuka ke
database server. Server diprogram dalam
bahasa pemrograman yang disebut MonetDB
Association Language (MAL). MAL adalah
bahasa aljabar relational yang mendukung
koleksi besar dari relational yang primitif,
fungsi-fungsi, dan hubungan yang mudah
dengan fungsi yang didefinisikan pengguna
(Vermeij et al. 2008).
yang juga berisi pointer ke objek data.
Struktur dari R-Tree didesain agar pencarian
untuk spasial hanya mengunjungi jumlah node
yang sedikit. Untuk proses insert dan delete
dapat dibarengi dengan proses search dan
tidak perlu reorganisasi secara periodik.
Indeks tersebut merupakan proses yang
dinamis. Leaf node di dalam R-Tree berisi
masukan pencatatan indeks dari bentuk:
(I,
tuple-indentifier)
menunjuk ke tuple di
dalam database dan I adalah sebuah ndimensional rectangle yang merupakan
bounding box dari objek spasial yang
diindeks. Non-leaf node berisi masukan dari
bentuk:
Tuple-identifier
(I,
child-pointer)
Child-pointer merupakan alamat dari node
yang berada di bawahnya di dalam R-Tree dan
I meliputi semua rectangle masukan node di
bawahnya.
Spesifikasi MonetDB dan PostgreSQL
Spesifikasi pada MonetDB yang pertama
adalah memiliki arsitektur sebagai relation
model.
MonetDB tidak memiliki GUI
(Graphical User Interface). Rilis pertama
untuk umum pada tahun 2004. Untuk
pengindeksan data menggunakan hash index.
Untuk limit pada MonetDB seperti berapa
batas ukuran maksimal sebuah tabel di dalam
disk, kemudian batas maksimal ukuran sebuah
database, dan yang lainnya tidak diketahui.
Hanya terdapat keterangan bahwa maksimal
kolom per baris tidak memiliki batasan untuk
ukuran pada disk. Sedangkan spesifikasi pada
PostgreSQL yang pertama adalah memiliki
arsitektur sebagai object-relational model.
PostgreSQL
memiliki
GUI
untuk
mempermudah pengguna. Rilis pertama untuk
umum pada tahun 1989. Untuk pengindeksan
data PostgreSQL memiliki banyak cara, yaitu
bitmap, expression, full-text, GIN, GiST,
hash, partial, R-/R+ Tree, dan reverse. Pada
PostgreSQL maksimum kolom per baris
adalah 250-1600 bergantung pada tipenya.
Ukuran maksimum untuk database adalah
tidak terbatas. Ukuran maksimum untuk baris
adalah 1.6 TB dan ukuran maksimum untuk
tabel adalah 32 TB (Findthebest 2012).
R-Tree
R-tree merupakan sebuah height-balanced
tree yang serupa dengan B-Tree dengan
pencatatan indeks di dalam setiap leaf node
Gambar 3
Struktur dari R-Tree (Guttman
1984).
Gambar 3 merupakan sebuah hirarki dari RTree
dan
mengilustrasikan
sebuah
pengkotakan dan tumpang tindih dari sebuah
relasi yang ada di antara rectangle tersebut
(Guttman 1984).
5
Hash
Identifikasi Masalah
Salah satu cara yang digunakan untuk
implementasi metode himpunan abstract data
type (ADT) adalah dengan menggunakan tabel
hash. Proses search pada tabel hash
merupakan exact search. Ide utama yang
melatarbelakangi semua implementasi tabel
hash adalah menyimpan sebuah himpunan
dari n = |S| elemen di dalam array (tabel
hash) A dengan panjang m ≥ n. Oleh karena
itu, kita perlu sebuah fungsi yang memetakan
elemen-elemen x tersebut ke dalam lokasi
dari array. Fungsi ini disebut dengan fungsi
hash h dan nilai dari h(x) disebut nilai hash
dari x. Elemen x dapat disimpan pada lokasi
array A[h(x)]. Banyak implementasi dari
tabel hash didasarkan dengan integer universe
assumption (Mehta & Sahni 2005).
Identifikasi masalah merupakan tahap
awal dari penelitian ini. Masalah yang
diidentifikasi adalah berkaitan dengan waktu
eksekusi query, output dari proses eksekusi
query dan juga ketersedian fungsi spasial pada
kedua DBMS, yaitu PostgreSQL dan
MonetDB. Oleh karena itu, dalam penelitian
ini dilakukan perbandingan pada kedua
DBMS tersebut untuk masalah tersebut.
METODE PENELITIAN
Secara umum metode penelitian yang
digunakan tersusun dalam suatu diagram alur
penelitian yang dapat dilihat pada Gambar 4.
Mulai
Identifikasi Masalah
Pengumpulan Data
Pembangunan
Database
menggunakan
MonetDB
Pembangunan
Database
menggunakan
PostgreSQL
Pengumpulan Data
Pada tahap ini dilakukan pengumpulan
data yang akan digunakan untuk pengujian.
Data terdiri atas dua jenis data, yaitu data
spasial dan data non-spasial. Data spasial
didapat dalam format shapefile. Sedangkan
data non-spasial didapat dari sebuah file
dengan ekstensi *.sql. File tersebut berisi
baris-baris SQL yang memuat keseluruhan isi
data non-spasial.
Pembangunan
PostgreSQL
Database
menggunakan
Setelah semua data diperoleh, maka tahap
selanjutnya adalah memasukkan data ke
dalam DBMS. Data yang dimasukkan terdiri
atas empat data spasial dengan format
shapefile dan satu data non-spasial dalam
sebuah file dengan ekstensi *.sql. Oleh karena
itu, diperlukan sebuah database baru pada
PostgreSQL.
Pembangunan
MonetDB
Database
menggunakan
Untuk MonetDB, data spasial yang akan
dimasukkan harus terlebih dahulu diubah ke
dalam baris-baris SQL yang disimpan dalam
file dengan ekstensi *.sql. Kemudian
dilanjutkan dengan membuat database baru
pada MonetDB.
Input dan Hasil Query
Input dan Hasil Query
Input dan Hasil Query
Analisis Hasil
Selesai
Gambar 4 Tahapan Penelitian.
Query yang akan digunakan untuk
pengujian DBMS dikelompokkan menjadi
tiga kelompok, yaitu query non-spasial
sederhana, spasial sederhana, dan spasial
kompleks.
Analisis Hasil
Hasil pengujian berupa pencatatan waktu
dan output dari setiap query yang diuji pada
masing-masing
DBMS.
Selain
itu,
kemampuan kedua DBMS untuk menjalankan
fungsi spasial yang terdapat di dalam query
perlu dibandingkan untuk dapat dianalisis
lebih lanjut.
6
Spesifikasi Perangkat Keras
Untuk spesifikasi perangkat keras yang
digunakan di dalam penelitian ini adalah
processor Intel core i5, memori DDR3 2 GB,
dan harddisk 500 GB.
HASIL DAN PEMBAHASAN
Pengumpulan Data
Data yang akan digunakan untuk
pengujian
DBMS
terlebih
dahulu
dikumpulkan. Data terbagi menjadi dua jenis,
yaitu data spasial dan data non-spasial. Data
didapat dari workshop PostGIS yang
disediakan oleh situs OpenGeo2. Data terdiri
atas empat data spasial dalam format shapefile
dan satu data non-spasial dalam sebuah file
dengan ekstensi *.sql. Empat data shapefile
ini
adalah
nyc_census_blocks,
nyc_neighborhoods,
nyc_streets,
dan
nyc_subway_stations. Satu data non-spasial
adalah nyc_census_sosiodata.
‘popn_nativ’ (populasi penduduk asli
Amerika), ‘popn_asian’ (populasi penduduk
Asia), ‘popn_other’ (populasi penduduk
lainnya),
‘hous_total’
(total
rumah),
‘hous_own’ (total rumah pribadi), ‘hous_rent’
(total rumah yang disewakan), dan
‘boroname’ (nama sektor).
Data spasial nyc_neighborhoods ini
adalah pemetaan per sektor wilayah. Setiap
sektor memiliki beberapa neighborhood. Di
New York, neighborhood merupakan suatu
konstruksi sosial yang tidak mengikuti garis
yang ditetapkan oleh pemerintah. Untuk
contoh, neighborhood dari Brooklyn, yaitu
Carrol Gardens, Red Hook, dan Cobble Hill
yang diketahui sebagai Brooklyn selatan.
Nyc_neighborhoods memiliki dua atribut,
yaitu ‘name’ yang berisikan nama dari
neighborhood dan ‘boroname’ yang berisikan
nama dari sektor-sektor yang ada di New
York, yaitu Manhattan, The Bronx, Brooklyn,
Staten Island, dan Queens. Gambar 6
merupakan pemetaan untuk neighborhood
pada Kota New York.
Data
spasial
nyc_census_blocks
merupakan daerah pemetaan terkecil (per
blok) dari sensus penduduk yang berada di
Kota New York. Gambar 5 merupakan contoh
pemetaan dari persentase populasi kulit hitam
dari total populasi.
Gambar 6 Neighborhood dari New York.
Gambar 5 Persentase populasi kulit hitam.
Data spasial nyc_census_blocks memiliki
atribut yang memberikan keterangan untuk
data geometrinya, yaitu ‘blkid’ (identitas
blok),
‘popn_total’
(total
populasi),
‘popn_white’
(populasi
kulit
putih),
‘popn_black’
(populasi
kulit
hitam),
2
http://workshops.opengeo.org
Data spasial nyc_streets ini adalah
pemetaan centerline street dari jaringan
transportasi kota. Jalan-jalan ini ditandai
dengan berbagai tipe untuk membedakan
antara jalan umum yang ada seperti gang-gang
belakang gedung atau rumah yang sempit,
jalan arteri, jalan raya, dan jalan-jalan kecil.
Data ini memiliki tiga atribut, yaitu ‘name’
(nama jalan), ‘oneway’ (satu arah atau tidak),
dan ‘type’ (jenis jalan). Gambar 7
memberikan gambaran dari pemetaan jalan
yang berada di Kota New York.
7
Gambar 7 Jalan Kota New York.
Data
spasial
yang
terakhir adalah
Pemetaan stasiun
kereta bawah tanah ini tersimpan di data
spasial nyc_subway_stations. Lokasi stasiun
ini memudahkan orang dalam menggunakan
transportasi kereta bawah tanah. Data ini
memiliki atribut ‘name’ (nama stasiun),
‘borough’ (nama sektor), ‘routes’ (rute),
‘transfers’ (jalur transfer), dan ‘express’
(stasiun untuk kereta ekspres atau tidak).
Gambar 8 merupakan pemetaan dari subway
station di Kota New York.
nyc_subway_stations.
pekerja pada grup blok), ‘transit_public’ (total
pekerja
dengan
transportasi
umum),
‘transit_private’ (total pekerja dengan
kendaraan pribadi), ‘transit_other’ (total
pekerja dengan berjalan kaki atau bersepeda),
‘transit_time_mins’ (total waktu dalam menit
untuk bekerja), ‘family_count’ (jumlah
keluarga
di
grup
blok),
‘family_income_median’ (median pendapatan
keluarga
dalam
US
dolar),
‘family_income_aggregate’ (total pendapatan
dari seluruh keluarga), ‘edu_total’ (total orang
dengan
sejarah
pendidikan),
‘edu_no_highschool_dipl’ (total orang tanpa
ijazah sekolah tinggi), ‘edu_highschool_dipl’
(total orang dengan ijazah sekolah tinggi dan
tidak
diteruskan
pendidikannya),
‘edu_college_dipl’ (total orang dengan ijazah
perguruan tinggi dan tidak dilanjutkan
pendidikannya), dan ‘edu_graduate_dipl’
(total orang dengan ijazah lulusan sekolah).
Pembangunan
PostgreSQL
Database
menggunakan
Setelah semua data diperoleh, proses
selanjutnya adalah memasukkan data ke
database
dalam
DBMS
PostgreSQL.
PostgreSQL yang digunakan adalah versi 8.4
dengan PostGIS versi 1.5. Tahap pertama
dalam proses pembangunan database
PostgreSQL adalah membuat database baru
pada PostgreSQL melalui pgAdmin III yang
merupakan antarmuka dari PostgreSQL.
Subway station
Gambar 8 Titik lokasi subway station.
Data non-spasial nyc_census_sociodata
yang didapat adalah data sosial ekonomi yang
dikumpulkan selama proses sensus. Data ini
berisikan beberapa atribut, yaitu ‘tractid’
(identitas grup blok), ‘transit_total’ (total
Gambar 9
Pembangunan database pada
PostgreSQL.
Gambar 9 merupakan proses pembangunan
database baru pada PostgreSQL dengan
8
menggunakan pgAdmin
III.
Database
tersebut diberi nama ‘sig’. Karena sebelumnya
telah dilakukan instalasi PostGIS, template
yang dipakai dalam database ini adalah
template PostGIS. Hal ini bertujuan agar data
spasial format shapefile (*.shp) dapat
dikonversi menjadi format PostGIS (*.sql)
dan dapat langsung menyimpan hasil konversi
ke dalam database. Selain itu, dengan
menggunakan template PostGIS, kita memilki
tiga fasilitas yang dimiliki oleh PostGIS
seperti dapat menerima masukan untuk semua
tipe data spasial, pengindeksan data spasial,
dan fungsi spasial. Setelah database yang
baru selesai dibuat, di dalam database tersebut
sudah tersedia dua tabel, yaitu tabel
‘geometry_columns’ dan ‘spatial_ref_sys’.
Tabel-tabel ini secara otomatis dibuat oleh
PostgreSQL karena kita menggunakan
template PostGIS sebagai database template.
Tahap yang kedua adalah melakukan
konversi data spasial format shapefile ke
dalam format PostGIS. Konversi dilakukan
dengan menggunakan PostGIS. PostGIS
menyediakan antarmuka seperti pgAdmin III
pada PostgreSQL yang memberi kemudahan
bagi pengguna untuk mengkonversi data
spasial dengan format shapefile ke dalam
format PostGIS. Gambar 10 merupakan
antarmuka dari PostGIS. Dengan adanya
antarmuka dari PostGIS kita tidak perlu
menggunakan program shp2pgsql.
Antarmuka dari PostGIS yang akan secara
otomatis menjalankan program shp2pgsql.
Shp2pgsql merupakan sebuah program untuk
mengubah format shapefile (*.shp) ke dalam
format PostGIS (*.sql), sedangkan cara
manual untuk mengkonversi data spasial
menggunakan shp2pgsql adalah dengan
mengetikan syntax seperti di bawah ini:
shp2pgsql
[option]
[schema.table_name]
>
*.sql]
[shapefile]
[file_name
Sebelum dilakukan konversi data dari
format shapefile menjadi format PostGIS,
salin semua data yang akan digunakan ke
folder directory ‘bin’ seperti di bawah ini:
C:\Program Files\PostgreSQL\8.4\bin
Kemudian data dimasukkan satu per satu
menggunakan PostGIS. Selanjutnya data
dikonversi oleh PostGIS dan hasil konversi
langsung masuk ke dalam tabel database
‘sig’. Tabel-tabel tersebut dibuat otomatis
oleh PostGIS dengan nama tabel yang sama
seperti nama data spasialnya. Untuk data nonspasial nyc_census_sociodata, data didapat
dalam sebuah file dengan ekstensi *.sql. Data
dimasukkan dengan memuat ke dalam SQL
queries PostgreSQL yang ada pada pgAdmin
III PostgreSQL.
Setelah semua data dikonversi dan telah
dimuat, database ‘sig’ akan memiliki lima
tabel baru, yaitu tabel ‘nyc_census_blocks’,
‘nyc_neighborhoods’,
‘nyc_streets’,
‘nyc_subway_stations’,
dan
‘nyc_census_sociodata’. Tahap yang terakhir
adalah melakukan vacuum analyze pada
setiap tabel. Hal ini perlu dilakukan karena
diperkirakan jumlah baris pada masingmasing tabel menyimpang jauh dari jumlah
baris yang sebenarnya. Oleh sebab itu, kita
harus menjalankan vacuum analyze pada
masing-masing tabel agar tidak mengurangi
kinerja database. Kita dapat melakukan
vacuum analyze dengan menggunakan menu
maintenance pada pgAdmin III. Cara lainnya
adalah menggunakan Command
Prompt
PostgreSQL dengan mengeksekusi:
VACUUM ANALYZE [tbl_name] (the_geom);
Gambar 10 Antarmuka PostGIS.
Database ‘sig’ pada PostgreSQL memiliki
ukuran di dalam disk sebesar 30 MB. Ukuran
database ‘sig’ sesuai dengan ukuran data
spasial yang dimasukkan ke dalam
PostgreSQL. Cara untuk mengetahui ukuran
dari database adalah dengan mengeksekusi
perintah seperti di bawah ini ke dalam sql
shell pada PostgreSQL:
9
SELECT pg_size_pretty(pg_database_size
('sig'));
Pembangunan
MonetDB
Database
menggunakan
Proses pembangunan database pada
MonetDB berbeda dengan PostgreSQL karena
MonetDB tidak memiliki program shapefile
loader seperti PostGIS. Format data yang
didukung oleh MonetDB adalah CSV, SQL,
TAB, RAW dan XML. Oleh karena itu, untuk
memasukkan data spasial format shapefile ke
dalam MonetDB, tahap pertama yang harus
dilakukan adalah mengubah data spasial
format shapefile (*.shp) menjadi baris-baris
SQL yang disimpan dalam sebuah file dengan
ekstensi *.sql.
ArcView adalah software yang dapat
digunakan untuk mengubah data spasial
(shapefile) menjadi baris-baris SQL yang
disimpan dalam sebuah file dengan ekstensi
*.sql. Dengan tersedianya extension Gix
Export Tool pada ArcView, maka shapefile
dapat diubah menjadi baris-baris SQL.
Data dimasukkan satu per satu kemudian
dilakukan konversi menggunakan Gix Export
Tool. Setelah semua data dikonversi, perlu
dilakukan penyesuaian struktur syntax SQL
yang sesuai dengan standar SQL MonetDB.
Oleh karena itu, dilakukan pengeditan agar
MonetDB dapat memuat SQL tersebut.
Tahap selanjutnya adalah membuat
database baru pada MonetDB yang dimulai
dengan membuat database kosong yang baru.
MonetDB tidak memiliki antarmuka bagi
pengguna seperti PostgreSQL. MonetDB
menggunakan Command Prompt (CMD)
sebagai
program
antarmuka.
Dalam
menggunakan MonetDB, kita harus terlebih
dahulu mengaktifkan server MonetDB.
Pengaktifan
server
dilakukan
dengan
menggunakan CMD. Pada CMD, directory
yang akan digunakan ke folder directory ‘bin’
diubah seperti berikut:
C:\Program Files\MonetDB\MonetDB5\bin
Dilanjutkan dengan
seperti berikut:
mengetikkan
mserver5
–-dbname=sig
dbfarm=C:\skripsi
syntax
--
Syntax –-dbname adalah syntax yang
digunakan untuk membuat database baru atau
menjalankan database yang telah dibuat. Jika
kita sudah mengetikkan itu, server sudah aktif
dan database baru telah kita buat. Syntax -dbfarm merupakan syntax yang digunakan
untuk membuat folder directory penyimpanan
data ke database dalam MonetDB dan juga
digunakan untuk memuat directory yang telah
kita buat sebelumnya.
Setelah server aktif, kita baru dapat
menjalankan
client
MonetDB.
Cara
menjalankan client sama seperti menjalankan
server. Perbedaannya hanya syntax yang kita
ketik seperti berikut:
mclient –u monetdb –d sig
Syntax –u adalah nama pengguna dan –d
adalah database yang telah dijalankan oleh
server.
Tahap
yang
berikutnya
adalah
memasukkan semua data SQL ke dalam
MonetDB. Jadi ada lima data yang akan
dimasukkan, empat data hasil konversi
menggunakan ArcView dan satu data nonspasial dalam sebuah file dengan ekstensi
*.sql. Cara memasukkan data tersebut dengan
mengeksekusi perintah ini pada Command
Prompt MonetDB pada client MonetDB:
\