PEMBUATAN DATABASE DENGAN PENDEKATAN
EVENT-BASED SPATIOTEMPORAL
MIRNA SITI MARYAM
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
PEMBUATAN DATABASE DENGAN PENDEKATAN
EVENT-BASED SPATIOTEMPORAL
MIRNA SITI MARYAM
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
ABSTRACT
MIRNA SITI MARYAM. Database Design with an Event-based Spatiotemporal Approach. Under direction of ANNISA.
The need of information about geographical changes is increasing. Therefore we need a concept for storing data to represent dynamic geographical phenomena especially the spatial object evolution. An Event-based Spatiotemporal approach is propose to overcome this problem (Wang 2005). The new definitions about version, process, and event allow us to describe how an object evolves during its evolution period. This research aims to implement an Event-based Spatiotemporal approach into Microsoft Access. As a result, we can get the information about an object evolution from spatiotemporal query such as show the location of Forest A at a given time and show the soil type of Forest A at a given time. These queries make analyze a spatial object easier.
Keywords: object evolution, geographical changes, version, database design, event-based spatiotemporal
Judul : Pembuatan Database dengan Pendekatan Event-based Spatiotemporal Nama : Mirna Siti Maryam
NIM : G64052240
Menyetujui: Pembimbing
Annisa, S.Kom., M.Kom. NIP 197907312005012
Mengetahui,
Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Pertanian Bogor
Dr. Drh. Hasim, DEA NIP 196103281986011002
PRAKATA
Puji dan syukur penulis panjatkan kepada Allah SWT atas segala rahmat dan hidayah-Nya sehingga tugas akhir dengan judul Pembuatan Database dengan Pendekatan Event-based
Spatiotemporal dapat terselesaikan. Penelitian ini dilaksanakan mulai Maret 2009 sampai dengan Juli
2009, bertempat di Departemen Ilmu Komputer.
Terima kasih penulis ucapkan kepada pihak-pihak yang telah membantu dalam penyelesaian tugas akhir ini, antara lain kepada Ibu Annisa, S.Kom., M.Kom. selaku pembimbing yang telah banyak memberi arahan selama penulis menjalankan penelitian. Ucapan terimakasih juga diberikan kepada mama, papa, teh Intan, teh Resti, aa Budhi, Luthfi serta seluruh keluarga atas doa, dukungan, dan kasih sayangnya. Terakhir, ungkapan terimakasih juga diberikan kepada teman-teman seperjuangan dan sahabat, Mega, Kurni, Karin, Agnes, Fuad, Lena, Medri, Fitri, Ovie, Adet, Prita, Huda, Nila, Indra, Ijun, dan Regi atas semangat dan dukungannya, serta pihak lain yang turut membantu baik secara langsung maupun tidak langsung dalam penyelesaian tugas akhir ini. Semoga karya ilmiah ini bermanfaat.
Bogor, Juli 2009
RIWAYAT HIDUP
Penulis dilahirkan di Bogor pada tanggal 27 November 1986 dari ayah H.M Hasir Hardjawinata dan Ibu Tini Rukmini. Penulis merupakan anak ketiga dari tiga bersaudara.
Tahun 2005, penulis lulus dari SMUN 1 Bogor dan pada tahun yang sama penulis diterima di Institut Pertanian Bogor (IPB) melalui jalur USMI. Tahun 2007, penulis diterima sebagai mahasiswa di Departemen Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam, IPB. Tahun 2008, penulis menjalankan kegiatan praktik lapangan di Lembaga Penerbangan dan Antariksa Nasional (Lapan).
iv DAFTAR ISI Halaman DAFTAR TABEL ...v DAFTAR GAMBAR...v DAFTAR LAMPIRAN...v PENDAHULUAN Latar Belakang ...1 Tujuan Penelitian...1 Ruang Lingkup ...1 Manfaat...1 TINJAUAN PUSTAKA Spatiotemporal Database ...1
Pendekatan Event-Based Spatiotemporal ...2
METODE PENELITIAN Perancangan Konseptual ...5
Perancangan Logika ...6
Perancangan Fisik atau Implementasi ...6
Analisis dan Kueri ...9
HASIL DAN PEMBAHASAN Model Data ...9
Proses Modifikasi ...9
Analisis dan Kueri ...10
KESIMPULAN DAN SARAN Kesimpulan...12
Saran...12
DAFTAR PUSTAKA...12
v DAFTAR TABEL
Halaman
1 Contoh Data Tabel BaseMap...8
2 Contoh Data Tabel SpatialInfo ...8
3 Contoh Data Tabel ThematicInfo ...8
4 Contoh Data Tabel Version ...8
5 Contoh Data Tabel Process...8
6 Contoh Data Tabel Event...9
7 Modifikasi pada Event-based Spatiotemporal ...9
8 Contoh Kesalahan Penulisan pada Tabel Version ...10
9 Hasil Kueri Evolusi Semak A...11
DAFTAR GAMBAR Halaman 1 Proses-proses Spatiotemporal...2
2 Proses Pendekatan Event-Based Spatiotemporal...3
3 Proses Evolusi Objek...4
4 Skema Data Relasional untuk Memodelkan Evolusi Entitas...4
5 Diagram Alir...4
6 Entity Relationship Diagram (ERD) dengan Pendekatan Event-based Spatiotemporal...6
7 Skema Data Relasional dengan Pendekatan Event-based Spatiotemporal...6
8 Diagram Alir Proses Insert ...9
9 Diagram Alir Proses Delete ...10
10 Diagram Alir Proses Update...10
DAFTAR LAMPIRAN Halaman 1 Penjelasan Atribut dan Tipe Data ...15
1 PENDAHULUAN
Latar Belakang
Kebutuhan informasi mengenai perubahan geografis saat ini sangatlah meningkat. Oleh karenanya dibutuhkan model penyimpanan data yang sesuai agar dapat menyimpan cukup informasi untuk merepresentasikan perubahan tersebut.
Penelitian terdahulu umumnya fokus terhadap perubahan geografis yang bersifat seketika seperti perubahan batas wilayah dua negara akibat adanya suatu kesepakatan. Hal ini berbeda dengan perubahan geografis seperti evolusi objek. Contoh evolusi objek adalah hutan yang berubah menjadi padang pasir akibat adanya kebakaran hutan. Hutan tersebut melakukan berbagai proses yang membutuhkan waktu sebelum ia menjadi objek lain.
Model pada penelitian terdahulu kurang tepat untuk menggambarkan evolusi objek karena hanya menyimpan keadaan objek sebelum dan sesudah evolusi sehingga informasi di antaranya hilang. Model tersebut tidak dapat menerangkan bagaimana suatu objek tersusun saat dia berevolusi.
Evolusi objek dalam dunia nyata dapat disebabkan oleh berbagai kejadian. Penyimpanan berbagai kejadian tersebut juga diperlukan agar dapat menjawab pertanyaan tentang penyebab evolusi objek. Oleh karena itu dibuat model penyimpanan dengan pendekatan
event-based spatiotemporal yang menyimpan
kejadian penyebab evolusi. Selain itu model tersebut dapat menggambarkan bagaimana objek tersusun saat dia berevolusi dengan melihat berbagai proses yang menghubungkan objek sebelum berevolusi dan objek setelah berevolusi
Tujuan Penelitian
Tujuan dari penelitian ini adalah menerapkan konsep event-based spatiotemporal dalam pembuatan database sehingga dapat menyimpan cukup informasi untuk menggambarkan proses penyusunan evolusi objek akibat adanya suatu kejadian.
Ruang Lingkup
Ruang lingkup penelitian ini difokuskan pada penggunaan pendekatan event-based
spatiotemporal untuk menggambarkan perubahan geografis dalam Microsoft Access.
Manfaat Penelitian
Setelah menerapkan konsep event-based
spatiotemporal pada database diharapkan
konsep ini dapat diaplikasikan pada data sebenarnya untuk menjawab kebutuhan informasi mengenai evolusi objek yang merepresentasikan perubahan geografis.
TINJAUAN PUSTAKA Spatiotemporal Database
Suatu objek spasial mempunyai informasi spasial seperti titik koordinat, ataupun informasi luas dan informasi tematik yang dapat berubah sepanjang waktu. Hal inilah yang mendasari spatiotemporal database.
Spatiotemporal database berasal dari spatial database. Spatial database adalah database
yang menyimpan data yang berhubungan dengan ruang (Han & Kamber 2001). Jenis data ini sering disebut dengan data spasial. Fokus dalam suatu spatial database adalah merepresentasikan objek yang berada dalam suatu ruang dengan lokasi dan luas yang terdefinisi dengan jelas (Guting & Scheneider 2005).
Spatiotemporal database juga berasal dari
temporal database yang menyediakan dukungan khusus untuk dimensi waktu.
Temporal database menyediakan fasilitas
khusus untuk menyimpan, melakukan kueri, dan memperbaharui data lampau atau mendatang. Sistem database pada umumnya bersifat nontemporal yang hanya menyimpan data saat ini (current data) (Date et al. 2003). Terdapat dua dimensi waktu pada temporal
database. Pertama adalah valid time yaitu
waktu yang merujuk pada waktu saat suatu fakta terjadi sebenarnya dalam dunia nyata. Kedua adalah transaction time yang merujuk pada waktu saat data disimpan ke dalam
database atau waktu saat perubahan disimpan
dalam database. Database yang menggunakan
valid time dan transaction time adalah database
dengan tabel bitemporal (Guting & Scheneider 2005).
Pada database temporal terdapat istilah
NOW dan UC. NOW adalah waktu yang
digunakan untuk valid time end jika data tersebut masih valid di dunia nyata sampai saat ini, sedangkan UC (Until Change) adalah nilai dari transaction time end yang menjadi tanda jika data pada tuple tersebut masih berlaku atau benar.
2 Pada temporal database dapat digambarkan
perkembangan dari data sepanjang waktu. Oleh karena itu pada spatiotemporal database tidak hanya menyimpan keadaan saat ini dari data spasial tetapi menyimpan juga seluruh sejarah dari perkembangan data spasial tersebut (Guting & Scheneider 2005).
Pendekatan Event-Based Spatiotemporal Perancangan database dengan pendekatan
event-based spatiotemporal dilakukan dengan
lebih menekankan pada tiga hal penting seperti
version, proses dan event. Version atau versi
sebelumnya digunakan untuk merepresentasikan objek yang menyusun suatu keadaan (state). Konsep terdahulu menganggap
version sebagai representasi statis (static version) yang digunakan untuk merepresentasikan versi objek yang berbeda.
Static version hanya menggambarkan keadaan
stabil versi objek sebelum dan objek sesudah berevolusi (Wang et al. 2005)
Dynamic version merupakan konsep baru
untuk version dimana version diartikan sebagai evolusi atau keadaan stabil (stability) dari suatu objek selama periode tertentu. Untuk membedakannya dengan static version, dynamic version tidak hanya merepresentasikan state stabil tetapi juga dapat merepresentasikan state saat objek berevolusi. Version baru
muncul tepat ketika version sebelumnya hancur. Untuk selanjutnya istilah version yang digunakan merujuk pada istilah dynamic
version (Wang et al. 2005).
Suatu objek dalam periode version-nya digambarkan dengan proses. Proses adalah aksi yang dilakukan suatu objek selama atau setelah kejadian terjadi padanya. Suatu objek version dapat mempunyai beberapa proses untuk menggambarkannya. Terdapat dua kelas dari proses spatiotemporal dasar yaitu:
• Evolusi dari single objek yang merepresentasikan perubahan dasar seperti
appearance, disappearance, contraction, expansion, dan perubahan tematik objek.
• Evolusi antara multiple objek yang melibatkan interaksi proses spatiotemporal dari beberapa objek seperti union, split, dan
replacement. Proses-proses ini dapat diikuti
dengan appearance dan disapparance (Wang et al. 2004).
Gambar 1 menjelaskan contoh proses-proses spatiotemporal. Pada Gambar 1 terdapat objek A dan objek B pada t1. Akibat sesuatu hal kedua objek tersebut menjadi bersatu pada t2. Pada gambar bagian atas waktu t2, objek B menyatu dengan A dan menjadi objek A dengan versi yang baru dan objek B hilang. Pada gambar di bawah, objek A dan B bersatu menjadi objek C pada t2. Objek A dan B hilang diganti dengan munculnya objek baru. Proses bersatunya kedua objek tersebut digambarkan dengan proses union yang melibatkan dua objek berbeda sedangkan untuk proses hilangnya objek A dan B juga munculnya objek C digambarkan dengan proses disappearance dan
appearance yang hanya melibatkan objek itu
sendiri.
Gambar 1 Proses-proses Spatiotemporal (Sumber : Wang et al. 2005). Seperti yang telah disampaikan sebelumnya suatu perubahan dapat terjadi karena adanya suatu kejadian (event). Event menyebabkan objek berubah menjadi versi lain bahkan menjadi objek lain. Event menyebabkan satu atau beberapa proses kepada version (Wang et
al. 2005).
Pada Gambar 2 dapat dilihat gambaran umum dari proses perancangan database menggunakan pendekatan event-based spatiotemporal. Gambar tersebut menjelaskan
3 Gambar 2 Proses Pendekatan Event-Based Spatiotemporal ( Sumber: Wang et al. 2005). Pada Gambar 2 dapat dilihat suatu event m
terjadi dan menyebabkan dua buah objek yaitu objek A dan objek B berevolusi. Version awal (V0) dari kedua objek tersebut hancur sehingga muncul version baru (Vi). Proses merepresentasikan bagaimana kedua objek tersebut tersusun saat periode evolusi Vi.
Gambar 3 dapat menjelaskan lebih detail bagaimana suatu proses digambarkan dengan pendekatan event-based spatiotemporal dengan suatu contoh kasus. Gambar tersebut menjelaskan suatu event gempa bumi yang menyebabkan dua objek yaitu objek A dan B berevolusi. Akibat gempa bumi tersebut munculah version baru yang menggambarkan periode evolusi pada objek A dan B. Pada periode version tersebut objek A mengalami proses perubahan yang digambarkan dengan
split sedangkan objek B mengalami proses
perubahan yang digambarkan dengan split dan
appearance. Proses split menggambarkan
bahwa event gempa bumi yang menimpa objek A menyebabkan objek A tersebut terbagi dengan munculnya objek B sedangkan proses
appearance menjelaskan suatu objek B baru
muncul dari ketiadaan(VNull). Objek B berasal dari objek A yang terkena gempa bumi.
Setelah proses perubahan pada kedua objek tersebut selesai, objek A dan B masuk ke dalam keadaan stabil yang digambarkan dengan proses
stability dimana tidak terdapat event apapun.
Selanjutnya event banjir terjadi dan menyebabkan tiga objek yaitu objek A, B, dan C masuk ke version baru. Dapat dilihat pada gambar, banjir mempengaruhi objek A dan menyebabkan objek tersebut hilang. Disini terlihat bahwa valid time dari objek A version ke-3 (V3) lebih pendek dibandingkan event banjir dan bukan event-lah yang mengidentifikasi suatu objek version tetapi aksi dari objek version itu sendiri yaitu proses. Proses, event, version inilah yang akan disimpan dalam database sehingga dapat menggambarkan suatu perubahan objek akibat terjadinya suatu event.
Pada Gambar 4 terdapat model skema yang diajukan untuk pembuatan database dengan pendekatan event-based spatiotemporal. Pada model tersebut dijelaskan bahwa BaseMap dan Version masing-masing mempunyai SpatialInfo dan ThematicInfo. Version dapat terkena Event dan sebagai reaksi atas Event tersebut, Version melakukan beberapa Process.
4 Gambar 3 Proses Evolusi Objek (Sumber : Wang et al 2005).
Gambar 4 Skema Data Relasional untuk Memodelkan Evolusi Entitas (Sumber : Wang et al 2005). METODE PENELITIAN
Tahapan-tahapan dalam pembuatan sistem
database menggunakan pendekatan event-based spatiotemporal sama dengan pembuatan database pada umumnya. Tahapan-tahapan
tersebut dapat dilihat pada Gambar 5 yang merupakan gambar diagram alir untuk pembuatan sistem database dengan pendekatan
event-based spatiotemporal.
Tahap pertama adalah studi pustaka. Tahap selanjutnya adalah merancang model konseptual, merancang model logika, fisik dan implementasi, juga melakukan analisis dengan menggunakan kueri.
5 Perancangan Konseptual
Suatu objek mempunyai keadaan awal dan dapat berevolusi menjadi versi baru atau bahkan menjadi objek baru akibat terkena suatu event.
Event menyebabkan objek tersebut melakukan
berbagai proses saat ia berevolusi, seperti
expansion, contraction, union, split dan
sebagainya. Objek tersebut mempunyai informasi spasial dan juga tematik yang dapat berubah ketika ia berevolusi.
Pada Gambar 6 digambarkan model konseptual berupa Entity Relationship Diagram (ERD). Gambar tersebut menjelaskan hubungan antara entitas. Berikut penjelasan mengenai definisi entitas-entitas tersebut:
• BaseMap
BaseMap merupakan objek dengan keadaan awal. Objek tersebut berada dalam peta awal. BaseMap adalah objek dengan versi ke-0 (V0) (Wang S et al. 2004). Objek tersebut belum mengalami evolusi. • SpatialInfo
SpatialInfo merupakan informasi spasial dan luas dari setiap objek.
• ThematicInfo
ThematicInfo merupakan informasi tematik. Informasi tematik yang diberikan disini berupa informasi mengenai tipe tanah (soil type) dari objek.
• Version
Version merupakan versi dari suatu objek saat atau setelah berevolusi (Vi; i = 1,2,3…n). Setiap objek dapat mempunyai beberapa versi dikarenakan objek tersebut mengalami perubahan geografis akibat terkena event tertentu. VNull juga merupakan suatu Version yang merepresentasikan ketiadaan objek. • Process
Procces merupakan aksi yang dilakukan suatu Version saat atau setelah terkena
event tertentu. Proses menggambarkan
bagaimana objek tersebut tersusun selama periode Version-nya sehingga periode Process dan Version sama.
• Event
Event merupakan suatu kejadian. Kejadian tersebut dapat menyebabkan objek berevolusi.
Entitas-entitas tersebut saling berhubungan. Hubungan antarentitas tersebut direpresentasikan dengan relasi-relasi. Berikut penjelasan mengenai relasi-relasi tersebut. • BaseMap berhubungan dengan SpatialInfo.
Setiap BaseMap pasti mempunyai satu SpatialInfo yang memberikan informasi spasial pada BaseMap sebagai informasi spasial awal objek sebelum berevolusi. BaseMap juga berhubungan dengan ThematicInfo. Setiap BaseMap mempunyai satu ThematicInfo yang memberikan informasi tematik awal.
• Version berelasi dengan tabel SpatialInfo dan ThematicInfo. Setiap Version mempunyai satu SpatialInfo dan ThematicInfo yang memberikan informasi spasial dan luas, berikut tipe tanah dari Version tersebut. Tidak semua objek Version ada di dalam BaseMap. Hal ini dikarenakan mungkin saja muncul objek baru akibat evolusi objek lain sehingga objek tersebut tidak terdapat di peta awal. Version juga berelasi dengan Process, satu Version dapat melakukan satu atau beberapa Process dalam berevolusi. • Process berelasi dengan Version. Satu
Version dapat dijelaskan oleh beberapa Process. Process juga berelasi dengan Event, satu Event dapat menyebabkan beberapa Process terjadi pada Version. Tetapi mungkin saja tidak ada Process yang disebabkan oleh suatu Event, yaitu ketika objek Version sudah dalam keadaan stabil.
6 Gambar 6 Entity Relationship Diagram (ERD) dengan Pendekatan Event-based Spatiotemporal.
Gambar 7 Skema Data Relasional dengan Pendekatan Event-based Spatiotemporal. Perancangan Logika
Pada perancangan database ini, penulis menggunakan model database relasional. Pada Gambar 7 digambarkan skema data relasional yang menjelaskan hubungan antarrelasi dan juga atribut-atributnya.
Perancangan Fisik atau Implementasi Perancangan fisik dilakukan dengan mengimplementasikan relasi-relasi yang telah dibuat di atas ke dalam DBMS relasional yaitu Microsoft Acces 2007, Windows XP sebagai sistem operasi, dan Microsoft Visual Basic 2005 sebagai development environment.
Tabel-tabel yang dihasilkan dan penjelasan masing-masing atributnya beserta tipe datanya
dapat dilihat pada Lampiran 1. Berikut ini adalah penjelasan dari masing-masing tabel beserta beberapa hal penting yang harus diperhatikan.
• BaseMap
Pada tabel BaseMap terdapat Vs dan Ve yang merupakan nilai valid time awal dan akhir dengan satuan waktu yang digunakan adalah hari. Satuan waktu terkecil yang digunakan dalam hari dianggap cukup merepresentasikan keadaan objek pada waktu tertentu karena suatu keadaan stabil maupun masa perubahan objek umumnya mempunyai durasi yang cukup lama. Pada tabel BaseMap juga terdapat nilai Ts dan Te yang merupakan nilai transaction time awal dan akhir. Nilai-nilai tersebut dimasukkan
7 secara otomatis oleh sistem dengan satuan
waktu terkecil berupa detik. Hal ini dikarenakan data terbaru bisa saja dimasukkan dengan selisih waktu beberapa detik saja dari data sebelumnya. Nilai transaction time berguna untuk penelusuran kesalahan (error querying) (Annisa 2002). Adapun beberapa hal penting dari tabel BaseMap yaitu:
1 BaseMap hanya menyimpan objek yang berada dalam peta awal area tertentu. 2 Objek yang disimpan dalam BaseMap
hanya objek yang belum atau tidak terkena
event. Hal ini yang menyebabkan objek
dalam BaseMap tidak digambarkan dengan proses. Ini juga yang menjadi alasan mengapa tabel BaseMap dipisahkan dari tabel Version.
3 Tidak semua objek terdapat dalam tabel BaseMap dikarenakan adanya kemungkinan objek tersebut baru muncul ketika objek lain berevolusi.
• SpatialInfo
Pada Tabel SpatialInfo terdapat nilai ((x1,y1), (x2,y2), (x3,y3), (x4,y4)) yang merupakan nilai titik-titik koordinat batas dari poligon untuk mewakili nilai lokasi. Selain lokasi, terdapat informasi mengenai luas wilayah dalam meter persegi. Informasi luas wilayah ini diperlukan karena evolusi objek dapat diihat dari perubahan ukurannya (Claramunt et al. 1998). Adapun beberapa hal penting dari tabel SpatialInfo yaitu:
1 SpatialInfo hanya menyediakan informasi spasial dan luas dari setiap objek yang berada dalam BaseMap atau Version atau keduanya.
2 Objek yang mempunyai satu SpatialInfo adalah objek yang tidak mengalami perubahan geografis atau mengalami perubahan tetapi perubahan tersebut menyangkut tematik saja. Sebaliknya objek yang mempunyai beberapa SpatialInfo adalah objek yang mengalami perubahan geografis yang menyebabkan luas dari objek tersebut berubah-ubah.
• ThematicInfo
Pada tabel ThematicInfo terdapat atribut SoilType yang menyimpan informasi mengenai tipe tanah. Proses perubahan tipe tanah merupakan proses perubahan tematik yang membutuhkan waktu dalam proses perubahannya (Jin et al. 2007). Adapun hal
yang harus diperhatikan dari tabel ThematicInfo yaitu:
1 ThematicInfo hanya menyediakan informasi tematik BaseMap atau Version atau keduanya.
2 Objek yang mempunyai satu ThematicInfo adalah objek yang tidak mengalami perubahan geografis atau perubahan tersebut hanya menyangkut perubahan spasialnya saja. Sebaliknya objek yang mempunyai beberapa ThematicInfo adalah objek yang mengalami perubahan tipe tanahnya.
3 Satu tabel ThematicInfo hanya menyimpan satu jenis informasi tematik saja.
• Version
Pada tabel Version juga disimpan Vs, Ve, Ts, Te dengan satuan waktu yang sama dengan tabel BaseMap. Ts dan Te disini juga berguna untuk error querying. Adapun hal-hal yang harus diperhatikan dari Version yaitu :
1 Version hanya menyimpan objek-objek yang mengalami perubahan geografis pada area tertentu.
2 Tabel ini tidak hanya menyimpan versi objek yang statis atau keadaan stabil setelah proses perubahan selesai tetapi juga menyimpan versi objek dimana objek tersebut tidak stabil atau sedang mengalami perubahan.
3 Version hanya menyimpan versi-versi dari objek saat dan setelah objek tersebut terkena event.
• Process
Pada tabel Process terdapat atribut Parent agar kita dapat mengetahui asal mula Version-nya secara eksplisit. Atribut Parent dapat menjelaskan hubungan kebergantungan antarobjek. Pada tabel Process disimpan berbagai macam jenis proses yang dapat menggambarkan perubahan geografis dari Version-nya. Berikut adalah ruang lingkup proses-proses yang mungkin terjadi:
1 Expansion: Proses perubahan ukuran (luas) objek menjadi lebih besar.
2 Contraction: Proses perubahan ukuran (luas) objek menjadi lebih kecil.
3 Appearance : Proses kemunculan suatu objek baru dari objek version VNull menjadi V1. Proses ini juga menandakan
8 bahwa objek tersebut sebelumnya tidak
terdapat dalam BaseMap.
4 Disappearance : Proses hilangnya suatu objek dimana suatu objek version Vi berubah menjadi VNull.
5 Split: Proses objek terbagi menjadi beberapa objek lagi. Proses ini diikuti dengan proses Appearance kerena proses ini selalu menghasilkan objek baru. 6 Union: Proses dua atau lebih objek bersatu
menjadi satu objek. Proses ini diikuti dengan proses Disappearance karena salah satu objek menghilang akibat bersatu dengan objek lainnya.
7 Stability: Objek berada dalam keadaan yang sudah stabil setelah terkena event tertentu. Pada saat ini juga tidak ada event apapun yang menyebabkan terjadinya suatu proses.
8 Thematic Changes : Proses perubahan tematik dalam hal ini adalah perubahan tipe tanah.
• Event
Tabel Event merupakan tabel yang menyimpan kejadian yang dapat menyebabakan objek berevolusi. Pada Event disimpan waktu sampai satuan terkecil berupa menit hal ini dikarenakan suatu Event mungkin saja terjadi hanya dalam beberapa menit (kurang dari satu jam).
Untuk lebih jelasnya mengenai tabel-tabel di atas berikut diberikan contoh data dari masing-masing tabel untuk kasus berkurangnya area Hutan A akibat terjadi kebakaran yang digambarkan dengan proses contraction. Tabel 1 adalah tabel BaseMap, Tabel 2 adalah tabel SpatialInfo, Tabel 3 adalah tabel ThematicInfo, Tabel 4 adalah tabel Version, Tabel 5 adalah tabel Process, dan Tabel 6 adalah tabel Event.
Pada tabel yang yang mengandung aspek waktu berupa valid time dan transaction time terdapat beberapa modifikasi dalam proses
insert, delete, dan update sedangkan pada relasi
selainnya, proses insert, delete, dan update data dilakukan seperti biasa. Pada Tabel 7 terdapat keterangan mengenai modifikasi yang dilakukan pada tabel bitemporal.
Tabel 1 Contoh Data Tabel BaseMap
ObjectId SpatialInfoId ThematicInfoId Vs Ve Ts Te
Hutan A 1 1 2/10/2008 11/1/2008 6/6/2009
10:12:11PM UC
Tabel 2 Contoh Data Tabel SpatialInfo
ObjectId SpatialInfoId x1 y1 x2 y2 x3 y3 x4 y4 Luas
Hutan A 1 11 7.5 12.4 7.5 12.5 7.8 12.2 7.9 822289
Hutan A 2 11 7.6 12.4 7.7 12.4 7.7 12.2 7.9 512234
Tabel 3 Contoh Data Tabel ThematicInfo
ObjectId ThematicInfoId SoilType
Hutan A 1 Irigated meadow soil
Tabel 4 Contoh Data Tabel Version
ObjectId VersionId SpatialInfoId ThematicInfoId Vs Ve Ts Te
Hutan A V1 1 1 11/1/2008 12/11/2008 6/6/2009
10:34:24PM UC
Hutan A V2 2 1 12/11/2008 NOW 6/6/2009
10:40:22PM UC
Tabel 5 Contoh Data Tabel Process
ObjectId VersionId ProcessId ProcessInfo EventId Parent
Hutan A V1 C Contraction 1 Hutan A.V0
9 Tabel 6 Contoh Data Tabel Event
EventId EventInfo StartDate StartTime EndDate EndTime
1 Kebakaran 11/1/2008 11:22 12/11/2008 20:45
Tabel 7 Modifikasi pada Event-based
Spatiotemporal
Tabe Bitemporal Basemap, Version
Insert Dilakukan jika
primary key belum terdapat dalam tabel
Delete Append only (tidak
mendukung
penghapusan data secara fisik)
Update Dilakukan jika terjadi
kesalahan penulisan
Analisis dan Kueri
Analisis objek dilakukan dengan menggunakan kueri. Berikut adalah contoh-contoh kueri yang dapat digunakan:
• Mendaftar keadaan (luas wilayah dan tipe tanah) objek spasial tertentu pada waktu tertentu.
• Mendaftar keadaan objek spasial tertentu dari waktu ke waktu.
• Mendaftar penyebab evolusi objek spasial tertentu.
• Mendaftar proses-proses yang dilakukan objek spasial tertentu saat ia berevolusi akibat terkena event tertentu.
• Mendaftar objek apa saja yang belum pernah mengalami evolusi
HASIL DAN PEMBAHASAN Model Data
Data yang dapat disimpan dalam database dengan pendekatan event-based spatiotemporal ini adalah data spasial dan tematik suatu wilayah dari waktu ke waktu sebelum dan setelah satu atau beberapa event terjadi pada wilayah tersebut. Data tersebut terdiri dari data titik-titik koordinat poligon wilayahnya, luas poligon wilayahnya, dan data tentang tipe tanahnya dari waktu ke waktu. Selain data spasial dan tematik suatu wilayah dari waktu ke waktu, disimpan pula data event yang terjadi pada wilayah tersebut beserta waktu terjadi dan berakhirnya event tersebut.
Data tentang proses-proses yang terjadi pada wilayah tersebut saat atau setelah event terjadi juga disimpan. Waktu terjadi dan berakhirnya proses-proses pun harus dicatat sehingga dapat diidentifikasi lamanya periode suatu version. Dari data tersebut dapat dilihat evolusi objek spasial dengan melihat data spasial wilayah sebelum terjadi event dan sesudah terjadi event dilengkapi dengan proses-proses perubahannya. Proses Modifikasi
Terdapat modifikasi pada perancangan relasi-relasi yang mengandung aspek waktu berupa valid time dan transaction time (tabel bitemporal). Modifikasi dilakukan pada saat
insert, delete, dan update data.
Gambar 8 menjelaskan tentang proses
insert pada tabel bitemporal. Pada saat data baru
dimasukkan, sistem otomatis memasukkan
transaction time start (Ts) yaitu waktu pada
saat data dimasukkan ke dalam database dan
transaction time end (Te) yang bernilai UC.
Gambar 8 Diagram Alir Proses Insert. Proses delete pada tabel bitemporal dilakukan dengan mengganti nilai Te pada
record yang ingin dihapus menjadi nilai waktu
yang bukan UC. Nilai Te diganti menjadi nilai waktu saat data dihapus. Gambar 9 menjelaskan proses delete tersebut.
Proses update dilakukan jika terjadi kesalahan penulisan pada record yang sudah tersedia dalam database atau dengan kata lain
update hanya bisa dilakukan pada saat kunci
primer sudah ada dalam database. Kesalahan penulisan terjadi pada field yang bukan kunci
10 primer. Pada Gambar 10 dapat dilihat diagram
alir proses update.
Gambar 9 Diagram Alir Proses Delete.
Gambar 10 Diagram Alir Proses Update. Pada implementasinya nilai UC ataupun
NOW tidak terdapat pada tipe data date and time dalam database relasional. Oleh karena itu
nilai UC ataupun NOW tadi dikonversi ke nilai 12/31/9999 11:59:59. Nilai tersebut dianggap mewakili nilai NOW dan UC karena sama-sama dapat mewakili nilai sekarang sampai batas waktu yang tidak ditentukan nilainya (Annisa 2002).
Seperti telah dijelaskan sebelumnya, nilai
transaction time berguna untuk penelusuran
kesalahan (error querying) pada penulisan data. Contoh kesalahan tersebut dapat dilihat pada Tabel 8. Misal untuk kasus penentuan jenis pupuk yang bergantung pada tipe tanahnya.
Pada Tabel 8 tersebut terdapat Sawah A pada periode V1 yang awalnya ditulis mempunyai ThematicInfoId 1 dengan tipe tanah X yang berarti diberi pupuk A, tetapi ternyata baru diketahui pada tanggal 10/6/2008 bahwa data tersebut salah dan dimasukkan data baru dengan nilai ThematicInfoId yang benar yaitu 2 dengan tipe tanah Y yang berarti diberi pupuk B. Jika terdapat suatu kasus saat ini dimana tanah di Sawah A menjadi tandus, dari tabel tersebut dapat dilihat bahwa pada Sawah A yang seharusnya diberi pupuk B telah diberi pupuk A selama periode waktu 6/6/2008 sampai 10/6/2008 karena pada periode tersebut data dianggap benar pada periode tersebut.
Analisis dan Kueri
Data objek yang berada dalam database ini dapat dianalisis sesuai kebutuhan dengan menggunakan kueri. Pada Tabel 9 dapat dilihat hasil kueri yang dapat digunakan untuk menganalis objek. Kueri untuk melihat evolusi yang dialami Semak A.
Kueri SQL:
Select v.ObjectId, v.VersionId, Luas, SoilType, ProcessInfo, Parent, v.Vs, v.Ve from Version v, Process p, SpatialInfo s, ThematicInfo t where v.ObjectId = p.ObjectId and v.VersionId = p.VersionId and v.ObjectId = s.ObjectId and v.ObjectId = t.ObjectId and v.SpatialInfoId =
s.SpatialInfoId and
v.ThematicInfoId = t.ThematicInfoId and v.ObjectId='Semak A' and v.Te = #12/31/9999 11:59:59 PM#
Pada tabel hasil tersebut dapat dilihat bahwa Semak A.V1 mengalami proses
appearance dan split pada periode 1/3/2007
sampai 2/5/2007. Proses appearance dengan Parent Semak A.VNull ini menandakan bahwa Semak A baru muncul dan tidak terdapat dalam BaseMap sedangkan proses split dengan Parent Sawah A.V0 menandakan Semak A muncul dari Sawah A yang mengalami split akibat terkena suatu event.
Tabel 8 Contoh Kesalahan Penulisan pada Tabel Version
ObjectId VersionId SpatialInfoId ThematicInfoId Vs Ve Ts Te
Sawah A V1 1 1 11/1/2008 12/31/9999 6/6/2008
10:34:24PM 10/6/2008 10:34:24PM
Sawah A V1 1 2 11/1/2008 12/31/9999 10/6/2008
11 Tabel 9 Hasil Kueri Evolusi Semak A
ObjectId VersionId Luas SoilType ProcessInfo Parent Vs Ve
Semak A V1 0 Nothing Appearance Semak
A.VNull 1/3/2007 2/5/2007
Semak A V1 0 Nothing Split Sawah
A.V0 1/3/2007 2/5/2007 Semak A V2 100986.35 Irigated-meadow soil Stability Semak A.V1 2/5/2007 11/10/2007 Semak A V3 100986.35 Irigated-meadow soil Contraction Semak A.V2 11/10/2007 11/17/2007 Semak A V4 100222.35 Irigated-meadow soil Stability Semak A.V3 11/17/2007 1/18/2008 Semak A V5 100222.35 Irigated-meadow soil Disappearance Semak A.V4 1/18/2008 1/23/2008 Semak A V5 100222.35 Irigated-meadow soil Union Semak A.V4, Rawa A.V0 1/18/2008 1/23/2008
Pada saat objek sedang berevolusi atau tidak dalam keadaan stabil (stability), informasi tematik maupun spasialnya mengacu pada
version sebelumnya yang stabil. Hal ini
dikarenakan pada saat objek berevolusi keadaannya masih berubah-ubah secara kontinyu dan untuk mendapatkan informasi pada keadaan tersebut sangatlah sulit. Oleh karena itu untuk mengetahui suatu keadaan
version tertentu, perlu dilihat juga proses apa
yang terjadi padanya. Sebagai contoh, luas Semak A.V2 dalam keadaan stabil adalah 100986.35 meter persegi, sama seperti luas Semak A.V3 yang sedang mengalami evolusi dengan proses contraction. Walaupun keduanya mempunyai luas yang sama tapi memiliki arti yang berbeda. Pada periode V2, Semak A mempunyai luas tepat 100986.35 meter persegi sedangkan pada periode V3, Semak A yang mempunyai 100986.35 meter persegi sedang mengalami proses penyusutan dan nantinya luas tersebut akan berkurang. Hasil dari proses
contraction tersebut dapat dilihat pada version
selanjutnya ketika keadaan sudah stabil yaitu Semak A.V4.
Pada objek yang baru muncul dan version sebelumnya adalah VNull maka informasi spasial yang berupa nilai koordinat batas ( (x1, y1) , (x2, y2), (x3, y3), (x4, y4)) adalah ( (0,0), (0,0), (0,0), (0,0)) dan luasnya adalah 0 meter persegi sedangkan informasi tematiknya adalah SoilType yang bernilai nothing. Nilai-nilai tersebut dianggap telah mewakili ketiadaan suatu objek (VNull).
Pada Semak A.V5 dapat dilihat bahwa objek tersebut mengalami proses union dengan Parent
Semak A.V4 dan Rawa A.V0 dan proses
disappearance dengan Parent Semak A.V4.
Proses-proses ini menandakan bahwa objek tersebut sedang dalam proses menghilang. Proses disappearance berakhir pada tanggal 1/23/2008, ini berarti objek tersebut hilang pada tanggal tersebut. Proses union menandakan bahwa objek Semak A hilang akibat Semak A bersatu dengan Rawa A karena suatu event.
Berdasarkan hasil kueri di atas dapat dijelaskan bahwa Semak A mengalami beberapa evolusi. Semak A muncul melalui proses appearance akibat Sawah A terbagi wilayahnya melalui proses split. Semak A juga mengalami pengurangan luas melalui proses
contraction. Akhirnya Semak A menghilang
karena bersatu dengan Rawa A yang digambarkan dengan proses union dan
disappearance.
Berikut kueri-kueri lain yang dapat digunakan untuk analisis objek. Hasil dari kueri-kueri tersebut dapat dilihat pada Lampiran 2:
• Mendaftar keadaan (luas wilayah dan tipe tanah) objek spasial tertentu pada waktu tertentu.
Kueri:
Bagaimana keadaan Sawah A pada tanggal 7 Januari 2008.
• Mendaftar penyebab evolusi objek spasial tertentu.
Kueri :
12 • Mendaftar proses-proses yang dilakukan
objek spasial tertentu saat ia berevolusi akibat terkena event tertentu.
Kueri:
Daftarkan evolusi apa saja yang sudah dialami Sawah B beserta penyebab dia berevolusi.
• Mendaftar objek apa saja yang belum perah mengalami evolusi
Kueri:
Daftarkan objek dari BaseMap yang nilai Ve nya adalah NOW atau (12/31/9999) • Mendaftar keadaan objek setiap tahunnya
Kueri:
Daftarkan luas seluruh Hutan setiap tahun Selain menggunakan kueri untuk analisis objek, dapat juga menggunakan kueri untuk mengetahui informasi mengenai event yang terjadi. Berikut adalah contoh-contoh kuerinya: • Mendaftar event yang terjadi selama tahun
tertentu Kueri
Daftarkan event apa saja yang terjadi selama tahun 2007.
• Mendaftar event yang terjadi di tahun tertentu dan mengenai objek apa saja Kueri :
Daftarkan event apa saja yang terjadi tahun 2008 dan objek apa saja yang dipengaruhinya.
Berdasarkan kueri-kueri diatas, informasi mengenai bagaimana objek berevolusi dan apa penyebab ia berevolusi bisa didapat. Informasi-informasi ini dapat membantu analisis objek spasial menjadi lebih mudah.
KESIMPULAN DAN SARAN Kesimpulan
Penggunaan konsep event-based spatiotemporal yang diimplementasikan pada database relasional dapat menjawab kebutuhan
informasi akan perubahan geografis mengenai evolusi objek spasial. Tetapi penerapan konsep ini pada database relasional juga memiliki beberapa keterbatasan seperti pada database relasional tidak mendukung tipe data untuk data spasial sehingga tidak dapat menyimpan data untuk berbagai shape dari suatu wilayah objek.
Penerapan konsep event-based spatiotemporal ini membutuhkan ukuran database yang lebih besar. Hal ini dikarenakan database menyimpan semua versi objek dari
waktu ke waktu dan pada beberapa tabel menggunakan konsep tabel bitemporal yang tidak mengizinkan penghapusan data secara fisik.
Saran
Saran-saran yang dapat diberikan untuk pengembangan database dengan pendekatan
event-based spatiotemporal ini agar lebih baik
adalah sebagai berikut:
• Penggunaan data nyata dalam membuat
database, sehingga dapat diketahui
proses-proses yang sebenarnya terjadi ketika objek tersebut berevolusi akibat event tertentu. • Penggunaan database yang dapat
menangani tipe data spasial dan mendukung aspek temporal.
• Visualisasi keadaan objek sebelum, saat dan setelah berevolusi sehingga proses perubahan dapat digambarkan dengan lebih jelas.
DAFTAR PUSTAKA
Annisa. 2002. Penerapan Konsep Basis Data Temporal pada Basis Data Relasional [skripsi]. Bogor: Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Pertanian Bogor.
Claramunt C, Theriault, Parent C.1998. A Qualitative Representasion of evolving Spatial Entities in Two- dimensional Topological Spaces. Innovations in
GIS:119-129.
Date CJ, Darwen H, Lorentzos NA. 2003.
Temporal Data and The Relational Model.
Amsterdam : Morgan Kaufmann Publisher. Guting RH, Schneider M. 2005. Moving
Objects Databases. San Fransisco: Morgan
Kaufmann Publisher.
Han J, Kamber M. 2001. Data Mining Concept
and Design. San Fransisco: Morgan
Kaufmann Publisher.
Hoffer JA., Prescott, MB., and McFadden, FR. 2007. Modern Database Management. Upper Saddle River, NJ: Pearson Education.
Jin P, Wan S, Yue L.2007.Semantic Framework for Spatiotemporal Data Representasion.
13
Third International IEEE Conference on Signal-Image Technologies and Internet-Based System :10-17
Nugroho A. 2004. Konsep Pengembangan
Sistem Basis Data. Bandung: Informatika.
Shekhar S, Chawla S. 2003. Spatial Databases:
A Tour. New Jersey: Prentice Hall.
Wang S, Nakayama K, Kobayashi Y, Maekawa M. 2005. An Event-based Spatiotemporal Approach.. ECTI Transaction on Computer
and Information Theory. 1: 15-23
Wang S, Nakayama K, Kobayashi Y, Maekawa M. 2004. Considering events and Process within GIS: An Event-based Spatiotemporal Data Model. International
Symposium on Communication and Information Technologies 2004. 2: 770-773
Wang S, Nakayama K, Kobayashi Y, Maekawa M. 2005. A Data Schema and Its Query for Modeling Dynamic Geographical World.
International Symposium on Communication and Information Technologies 2005. 1: 632-635.
14
15 Lampiran 1 Penjelasan Atribut dan Tipe Data
Tabel BaseMap
Field Keterangan Tipe Data
ObjectId Primary Key sekaligus Foreign key
dari tabel SpatialInfo dan Thematic Info
Text (50)
SpatialInfoId Foreign key dari relasi SpatialInfo Text(7)
ThematicInfo Foreign key dari relasi
ThematicInfo Text(7)
Vs ValidTime start, atau waktu objek
tersebut mulai berada di dunia nyata.
Satuan waktu terkecil berupa hari.
Date (MM/dd/yyy)
Ve ValidTime end, atau waktu objek
tersebut berakhir di dunia nyata. Satuan waktu terkecil berupa hari.
Date (MM/dd/yyy)
Ts Transaction Time start adalah
waktu data tersebut disimpan dalam
database.
Satuan waktu terkecil berupa detik.
Date (MM/dd/yyyy
HH:mm:ss )
Te Transaction Time end adalah
waktu saat data yang disimpan dalam database tersebut tidak berlaku lagi.
Satuan waktu terkecil berupa detik.
Date (MM/dd/yyyy
HH:mm:ss )
Tabel ThematicInfo
Field Keterangan Tipe Data
Objectid Primary key dari relasi ini Text (50)
Thematicinfoid Primary key untuk relasi ini Text(7)
SoilType Memberikan informasi tipe tanah Text (100)
Tabel Event
Field Keterangan Tipe Data
EventId Primary Key untuk relasi ini Text (5)
EvetInfo Memberikan informasi event Text (100)
StartDate Waktu hari event dimulai Date (MM/dd/yyyy)
StartTime Waktu event dimulai.
Satuan waktu terkecil berupa menit
Date (HH/mm)
16 Tabel Event (Lanjutan)
Field Keterangan Tipe Data
EndTime Waktu event berakhir.
Satuan waktu terkecil berupa menit
Date (HH/mm)
Tabel SpatialInfo
Field Keterangan Tipe Data
ObjectId Primary key untuk tabel ini Text (50)
SpatialInfoId Primary key untuk tabel ini, Id ini juga bisa mmeberikan informasi berapa kali objek mengalami perubahan spasial
Text(7)
x1 Memberikan keterangan absis batas
dari masing-masing wilayah objek Double y1 Memberikan keterangan ordinat batas
dari masing-masing wilayah objek Double x2 Memberikan keterangan absis batas
dari masing-masing wilayah objek Double y2 Memberikan keterangan ordinat batas
dari masing-masing wilayah objek Double x3 Memberikan keterangan absis batas
dari masing-masing wilayah objek Double y3 Memberikan keterangan ordinat batas
dari masing-masing wilayah objek Double x4 Memberikan keterangan absis batas
dari masing-masing wilayah objek Double y4 Memberikan keterangan ordinat batas
dari masing-masing wilayah objek Double Luas Memberikan keterangan luas
masing-masing wilayah objek Double
Table Process
Field Keterangan Tipe Data
ObjectId Primary Key sekaligus Foreign key
dari relasi Version Text (50) VersionId Primary Key sekaligus Foreign key
dari relasi Version Text (7) ProcessId Primary Key untuk relasi ini Text (5)
ProcessInfo Memberikan Informasi mengenai proses apa yang sedang dijalankan suatu objek
Text (100)
EventId Foreign Key dari relasi Event Text (5)
Parent Memberikan informasi dari objek Version manakah objek Version tertentu berasal.
17 Tabel Version
Field Keterangan Tipe Data
ObjectId Primary Key sekaligus Foreign key
dari relasi SpatialInfo dan Thematic Info
Text (50)
VersionId Primary Key yang menandakan
versi ke Vi dari suatu objek (i=1,2,3….)
Text (7)
SpatialInfoId Foreign key dari relasi SpatialInfo Text(7)
ThematicInfo Foreign key dari relasi
ThematicInfo Text(7)
Vs ValidTime start, atau waktu objek
tersebut mulai berada di dunia nyata.
Satuan waktu terkecil berupa hari.
Date (MM/dd/yyyy)
Ve ValidTime end, atau waktu objek
tersebut berakhir di dunia nyata. Satuan waktu terkecil berupa hari.
Date (MM/dd/yyyy)
Ts Transaction Time start adalah
waktu data tersebut disimpan dalam database.
Satuan waktu terkecil berupa detik.
Date (MM/dd/yyyy
HH:mm:ss )
Te Transaction Time end adalah
waktu saat data yang disimpan dalam database tersebut tidak berlaku lagi.
Satuan waktu terkecil berupa detik.
Date (MM/dd/yyyy
18 Lampiran 2 Hasil Kueri
Hasil Kueri
1 Bagaimana keadaan Sawah A pada tanggal 7 Januari 2008.
select v.ObjectId, v.VersionId, t.SoilType, s.Luas, p.ProcessInfo from Version v, ThematicInfo t, SpatialInfo s, Process p where v.ObjectId='Sawah A' and v.Vs <= #1/7/2008# and v.Ve >= #1/7/2008# and v.Te=#12/31/9999 11:59:59 PM# and v.ThematicInfoId = t.ThematicInfoId and v.SpatialInfoId = s.SpatialInfoId and v.ObjectId = p.ObjectId and v.VersionId = p.VersionId and v.ObjectId = t.ObjectId and v.ObjectId = s.ObjectId
Tabel Hasik Kueri 1
ObjectId VersionId SoilType Luas ProcessInfo Sawah A V4 Semi-desert automorf 100986.35 Stability 2 Kenapa Sawah B bisa hilang.
Select EventInfo from Event e where e.EventId in (select EventId from Process p where p.ObjectId='Semak A' and p.ProcessInfo='disappearance') Tabel Hasik Kueri 2
EventInfo Banjir
3 Daftarkan evolusi apa saja yang sudah dialami Hutan B beserta penyebab dia berevolusi.
select p.ObjectId, p.VersionId,p.ProcessInfo, p.Parent, e.EventInfo from Process p, Event e where p.ObjectId='Hutan B' and e.EventId=p.EventId Tabel Hasik Kueri 3
ObjectId VersionId ProcessInfo Parent EventInfo Hutan B V1 Contraction Hutan B.V0 Kebakaran Hutan B V3 Contraction Hutan B.V2 Penebangan Liar Hutan B V4 Contraction Hutan B.V3 Penebangan Liar Hutan B V5 Contraction Hutan B.V4 Penebangan Liar Hutan B V4 Expansion Hutan B.V3 Penanaman Pohon 4 Daftarkan objek yang belum pernah berevolusi
select * from BaseMap where Ve=#12/31/9999# Tabel Hasik Kueri 4
ObjectId SpatialInfo ThematicInfo Vs Ve Ts Te Hutan A 1 1 1/1/2007 12/31/9999 6/22/2009
12:15:50PM 12/31/9999 11:59:59 PM 5 Daftarkan event apa saja yang terjadi selama tahun 2007 (selesai dan berakhir di tahun 2007) select * from Event where StartDate>=# 1/1/2007# and EndDate<=# 31/12/2007#
19 Tabel Hasik Kueri 5
EventId EventInfo StartDate StartTime EndDate EndTime 1 Gempa bumi 1/3/2007 11:00 1/3/2007 11:49 2 Banjir 11/10/2007 05:00 11/17/2007 05:45 6 Daftarkan event apa saja yang terjadi tahun 2008 dan objek apa saja yang dipengaruhinya. select EventInfo, ProcessInfo, StartDate,StartTime, EndDate,EndTime,
ObjectId, VersionId from Event e, Process p where e.EndDate>=#1/1/2008# and e.StartDate<=#31/12/2008# and e.EventId=p.EventId
Tabel Hasik Kueri 6
EventInfo ProcessInfo StartDate StartTime EndDate EndTime ObjectId VersionI
d
Banjir Union 1/18/2008 01:00 1/23/2008 04:45 Semak A V5
Banjir Union 1/18/2008 01:00 1/23/2008 04:45 Rawa A V1
Banjir Disappeareance 1/18/2008 01:00 1/23/2008 04:45 Semak A V5
kebakaran Contraction 6/18/2008 09:00 6/20/2008 22:45 Hutan B V1
Penebangan
liar Contraction 12/3/2008 12:00 12/31/9999 23:45 Hutan B V3
penebangan
liar Contraction 12/3/2008 12:00 12/31/9999 23:59 Hutan B V4
penebangan
liar Contraction 12/3/2008 12:00 12/31/9999 23:59 Hutan B V5
Kueri untuk contoh kasus proses perubahan split dan perubahan tematik yang dialami Sawah A 7 Bagaimana keadaan awal Sawah A
Select b.ObjectId,Luas,SoilType, b.Vs, b.Ve from BaseMap b, SpatialInfo s, ThematicInfo t where b.ObjectId=s.ObjectId and b.ObjectId=t.ObjectId and b.SpatialInfoId=s.SpatialInfoId and b.ThematicInfoId=t.ThematicInfoId and b.ObjectId='Sawah A' and b.Te=#12/31/9999 11:59:59 PM#
Tabel Hasik Kueri 7
ObjectId Luas SoilType Vs Ve
Sawah A 201972.71 Irigated meadow soil 1/1/2007 1/3/2007 8 Bagaimana keadaan Sawah A setelah berevolusi
Select v.ObjectId, v.VersionId, Luas, SoilType, ProcessInfo, Parent, v.Vs, v.Ve from Version v, Process p, SpatialInfo s, ThematicInfo t where v.ObjectId = p.ObjectId and v.VersionId= p.VersionId and v.ObjectId=s.ObjectId and v.ObjectId= t.ObjectId and v.SpatialInfoId= s.SpatialInfoId and
v.ThematicInfoId= t.ThematicInfoId and v.ObjectId='Sawah A' and v.Te= #12/31/9999 11:59:59 PM#
20 Tabel Hasik Kueri 8
ObjectId VersonId Luas SoilType ProscessInfo Parent Ve Ve Sawah A V1 201972.71 Irigated meadow soil Split Sawah A.V0 1/3/2007 2/5/2007 Sawah A V2 100986.35 Irigated meadow soil Stability Sawah A.V1 2/5/2007 11/10/2007 Sawah A V3 100986.35 Irigated meadow soil Thematic
Changes Sawah A.V2 11/10/2007 22/17/2007 Sawah A V4 100986.35
Semi-desert automorf
Stability Sawah
A.V3 11/17/2007 12/31/9999
9 Daftarkan luas hutan tiap tahunnya select * from
(select sum(Luas) as 2007 from (
Select Luas from ( select b.ObjectId, b.Vs ,b.Ve,Luas from Version b, SpatialInfo s where b.ObjectId like 'Hutan%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2007# and Vs<=#31/12/2007# order by b.Vs desc
union select b.ObjectId, b.Vs ,b.Ve,Luas from BaseMap b, SpatialInfo s where b.ObjectId like 'Hutan%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2007# and Vs<=#31/12/2007# ) as T, (SELECT ObjectId, Max(Vs) AS tanggal
FROM (select b.ObjectId, b.Vs ,b.Ve,Luas from Version b, SpatialInfo s where b.ObjectId like 'Hutan%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2007# and Vs<=#31/12/2007# order by b.Vs desc
union select b.ObjectId, b.Vs ,b.Ve,Luas from BaseMap b, SpatialInfo s where b.ObjectId like 'Hutan%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2007# and Vs<=#31/12/2007#)
GROUP BY ObjectId) as P where T.ObjectId=P.ObjectId and T.Vs=P.tanggal)) as 2007,
(select sum(Luas) as 2008 from (Select Luas from ( select b.ObjectId, b.Vs ,b.Ve,Luas from Version b, SpatialInfo s where b.ObjectId like 'Hutan%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2008# and Vs<=#31/12/2008# order by b.Vs desc
union select b.ObjectId, b.Vs ,b.Ve,Luas from BaseMap b, SpatialInfo s where b.ObjectId like 'Hutan%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2008# and Vs<=#31/12/2008# ) as T,
21 (SELECT ObjectId, Max(Vs) AS tanggal
FROM (select b.ObjectId, b.Vs ,b.Ve,Luas from Version b, SpatialInfo s where b.ObjectId like 'Hutan%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2008# and Vs<=#31/12/2008# order by b.Vs desc
union select b.ObjectId, b.Vs ,b.Ve,Luas from BaseMap b, SpatialInfo s where b.ObjectId like 'Hutan%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2008# and Vs<=#31/12/2008#)
GROUP BY ObjectId) as P where T.ObjectId=P.ObjectId and T.Vs=P.tanggal )) as 2008,
(select sum(Luas) as 2009 from (
Select Luas from ( select b.ObjectId, b.Vs ,b.Ve,Luas from Version b, SpatialInfo s where b.ObjectId like 'Hutan%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2009# and Vs<=#31/12/2009# order by b.Vs desc
union select b.ObjectId, b.Vs ,b.Ve,Luas from BaseMap b, SpatialInfo s where b.ObjectId like 'Hutan%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2009# and Vs<=#31/12/2009# ) as T, (SELECT ObjectId, Max(Vs) AS tanggal
FROM (select b.ObjectId, b.Vs ,b.Ve,Luas from Version b, SpatialInfo s where b.ObjectId like 'Hutan%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2009# and Vs<=#31/12/2009# order by b.Vs desc
union select b.ObjectId, b.Vs ,b.Ve,Luas from BaseMap b, SpatialInfo s where b.ObjectId like 'Hutan%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2009# and Vs<=#31/12/2009#)
GROUP BY ObjectId) as P where T.ObjectId=P.ObjectId and T.Vs=P.tanggal)) as 2009
Tabel Hasil Kueri 9
2007 2008 2009
8231514.39 8201514.39 7861514.39
10 Daftarkan luas setiap objek tiap tahunnya select * from
(select sum(Luas) as 2007 from (
Select Luas from ( select b.ObjectId, b.Vs ,b.Ve,Luas from Version b, SpatialInfo s where b.ObjectId like 'Rawa%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2007# and Vs<=#31/12/2007# order by b.Vs desc
22 union select b.ObjectId, b.Vs ,b.Ve,Luas from BaseMap b, SpatialInfo s where b.ObjectId like 'Rawa%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2007# and Vs<=#31/12/2007# ) as T, (SELECT ObjectId, Max(Vs) AS tanggal
FROM (select b.ObjectId, b.Vs ,b.Ve,Luas from Version b, SpatialInfo s where b.ObjectId like 'Rawa%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2007# and Vs<=#31/12/2007# order by b.Vs desc
union select b.ObjectId, b.Vs ,b.Ve,Luas from BaseMap b, SpatialInfo s where b.ObjectId like 'Rawa%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2007# and Vs<=#31/12/2007#)
GROUP BY ObjectId) as P where T.ObjectId=P.ObjectId and T.Vs=P.tanggal)) as 2007,
(select sum(Luas) as 2008 from (Select Luas from ( select b.ObjectId, b.Vs ,b.Ve,Luas from Version b, SpatialInfo s where b.ObjectId like 'Rawa%' and s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2008# and Vs<=#31/12/2008# order by b.Vs desc
union select b.ObjectId, b.Vs ,b.Ve,Luas from BaseMap b, SpatialInfo s where b.ObjectId like 'Rawa%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2008# and Vs<=#31/12/2008# ) as T, (SELECT ObjectId, Max(Vs) AS tanggal
FROM (select b.ObjectId, b.Vs ,b.Ve,Luas from Version b, SpatialInfo s where b.ObjectId like 'Rawa%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2008# and Vs<=#31/12/2008# order by b.Vs desc
union select b.ObjectId, b.Vs ,b.Ve,Luas from BaseMap b, SpatialInfo s where b.ObjectId like 'Hutan%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2008# and Vs<=#31/12/2008#)
GROUP BY ObjectId) as P where T.ObjectId=P.ObjectId and T.Vs=P.tanggal )) as 2008,
(select sum(Luas) as 2009 from (
Select Luas from ( select b.ObjectId, b.Vs ,b.Ve,Luas from Version b, SpatialInfo s where b.ObjectId like 'Rawa%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2009# and Vs<=#31/12/2009# order by b.Vs desc
union select b.ObjectId, b.Vs ,b.Ve,Luas from BaseMap b, SpatialInfo s where b.ObjectId like 'Rawa%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2009# and Vs<=#31/12/2009# ) as T, (SELECT ObjectId, Max(Vs) AS tanggal
23 FROM (select b.ObjectId, b.Vs ,b.Ve,Luas from Version b, SpatialInfo s where b.ObjectId like 'Rawa%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2009# and Vs<=#31/12/2009# order by b.Vs desc
union select b.ObjectId, b.Vs ,b.Ve,Luas from BaseMap b, SpatialInfo s where b.ObjectId like 'Rawa%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2009# and Vs<=#31/12/2009#)
GROUP BY ObjectId) as P where T.ObjectId=P.ObjectId and T.Vs=P.tanggal)) as 2009
union
select * from
(select sum(Luas) as 2007 from (
Select Luas from ( select b.ObjectId, b.Vs ,b.Ve,Luas from Version b, SpatialInfo s where b.ObjectId like 'Hutan%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2007# and Vs<=#31/12/2007# order by b.Vs desc
union select b.ObjectId, b.Vs ,b.Ve,Luas from BaseMap b, SpatialInfo s where b.ObjectId like 'Hutan%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2007# and Vs<=#31/12/2007# ) as T, (SELECT ObjectId, Max(Vs) AS tanggal
FROM (select b.ObjectId, b.Vs ,b.Ve,Luas from Version b, SpatialInfo s where b.ObjectId like 'Hutan%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2007# and Vs<=#31/12/2007# order by b.Vs desc
union select b.ObjectId, b.Vs ,b.Ve,Luas from BaseMap b, SpatialInfo s where b.ObjectId like 'Hutan%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2007# and Vs<=#31/12/2007#)
GROUP BY ObjectId) as P where T.ObjectId=P.ObjectId and T.Vs=P.tanggal)) as 2007,
(select sum(Luas) as 2008 from (Select Luas from ( select b.ObjectId, b.Vs ,b.Ve,Luas from Version b, SpatialInfo s where b.ObjectId like 'Hutan%' and s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2008# and Vs<=#31/12/2008# order by b.Vs desc
union select b.ObjectId, b.Vs ,b.Ve,Luas from BaseMap b, SpatialInfo s where b.ObjectId like 'Hutan%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2008# and Vs<=#31/12/2008# ) as T, (SELECT ObjectId, Max(Vs) AS tanggal
FROM (select b.ObjectId, b.Vs ,b.Ve,Luas from Version b, SpatialInfo s where b.ObjectId like 'Hutan%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2008# and Vs<=#31/12/2008# order by b.Vs desc
24 union select b.ObjectId, b.Vs ,b.Ve,Luas from BaseMap b, SpatialInfo s where b.ObjectId like 'Hutan%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2008# and Vs<=#31/12/2008#)
GROUP BY ObjectId) as P where T.ObjectId=P.ObjectId and T.Vs=P.tanggal )) as 2008,
(select sum(Luas) as 2009 from (
Select Luas from ( select b.ObjectId, b.Vs ,b.Ve,Luas from Version b, SpatialInfo s where b.ObjectId like 'Hutan%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2009# and Vs<=#31/12/2009# order by b.Vs desc
union select b.ObjectId, b.Vs ,b.Ve,Luas from BaseMap b, SpatialInfo s where b.ObjectId like 'Hutan%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2009# and Vs<=#31/12/2009# ) as T, (SELECT ObjectId, Max(Vs) AS tanggal
FROM (select b.ObjectId, b.Vs ,b.Ve,Luas from Version b, SpatialInfo s where b.ObjectId like 'Hutan%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2009# and Vs<=#31/12/2009# order by b.Vs desc
union select b.ObjectId, b.Vs ,b.Ve,Luas from BaseMap b, SpatialInfo s where b.ObjectId like 'Hutan%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2009# and Vs<=#31/12/2009#)
GROUP BY ObjectId) as P where T.ObjectId=P.ObjectId and T.Vs=P.tanggal)) as 2009
union
select * from
(select sum(Luas) as 2007 from (
Select Luas from ( select b.ObjectId, b.Vs ,b.Ve,Luas from Version b, SpatialInfo s where b.ObjectId like 'Sawah%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2007# and Vs<=#31/12/2007# order by b.Vs desc
union select b.ObjectId, b.Vs ,b.Ve,Luas from BaseMap b, SpatialInfo s where b.ObjectId like 'Sawah%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2007# and Vs<=#31/12/2007# ) as T, (SELECT ObjectId, Max(Vs) AS tanggal
FROM (select b.ObjectId, b.Vs ,b.Ve,Luas from Version b, SpatialInfo s where b.ObjectId like 'Sawah%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2007# and Vs<=#31/12/2007# order by b.Vs desc
union select b.ObjectId, b.Vs ,b.Ve,Luas from BaseMap b, SpatialInfo s where b.ObjectId like 'Sawah%' and
25 s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2007# and Vs<=#31/12/2007#)
GROUP BY ObjectId) as P where T.ObjectId=P.ObjectId and T.Vs=P.tanggal)) as 2007,
(select sum(Luas) as 2008 from (Select Luas from ( select b.ObjectId, b.Vs ,b.Ve,Luas from Version b, SpatialInfo s where b.ObjectId like 'Sawah%' and s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2008# and Vs<=#31/12/2008# order by b.Vs desc
union select b.ObjectId, b.Vs ,b.Ve,Luas from BaseMap b, SpatialInfo s where b.ObjectId like 'Sawah%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2008# and Vs<=#31/12/2008# ) as T, (SELECT ObjectId, Max(Vs) AS tanggal
FROM (select b.ObjectId, b.Vs ,b.Ve,Luas from Version b, SpatialInfo s where b.ObjectId like 'Sawah%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2008# and Vs<=#31/12/2008# order by b.Vs desc
union select b.ObjectId, b.Vs ,b.Ve,Luas from BaseMap b, SpatialInfo s where b.ObjectId like 'Sawah%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2008# and Vs<=#31/12/2008#)
GROUP BY ObjectId) as P where T.ObjectId=P.ObjectId and T.Vs=P.tanggal )) as 2008,
(select sum(Luas) as 2009 from (
Select Luas from ( select b.ObjectId, b.Vs ,b.Ve,Luas from Version b, SpatialInfo s where b.ObjectId like 'Sawah%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2009# and Vs<=#31/12/2009# order by b.Vs desc
union select b.ObjectId, b.Vs ,b.Ve,Luas from BaseMap b, SpatialInfo s where b.ObjectId like 'Sawah%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2009# and Vs<=#31/12/2009# ) as T, (SELECT ObjectId, Max(Vs) AS tanggal
FROM (select b.ObjectId, b.Vs ,b.Ve,Luas from Version b, SpatialInfo s where b.ObjectId like 'Sawah%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2009# and Vs<=#31/12/2009# order by b.Vs desc
union select b.ObjectId, b.Vs ,b.Ve,Luas from BaseMap b, SpatialInfo s where b.ObjectId like 'Sawah%' and
s.ObjectId=b.ObjectId and s.SpatialInfoId=b.SpatialInfoId and b.Te= #12/31/9999 11:59:59 PM# and Ve>=#1/1/2009# and Vs<=#31/12/2009#)
GROUP BY ObjectId) as P where T.ObjectId=P.ObjectId and T.Vs=P.tanggal)) as 2009