BAB 2 LANDASAN TEORI 2.1
Pengertian Data Menurut Turban (Turban, 2003, p15), data adalah fakta-fakta mentah atau
deskripsi dasar dari konsep-konsep, kejadian-kejadian, kegiatan-kegiatan, dan transaksi yang dapat ditangkap, direkam, disimpan dan dikelompokkan, tetapi tidak terorganisasi dalam membawakan arti tertentu. Jadi data merupakan bentuk yang masih mentah yang belum dapat bercerita banyak sehingga masih perlu diolah lebih lanjut.
2.2
Pengertian Informasi Informasi adalah kumpulan fakta-fakta (data) yang sudah terorganisasi dalam
suatu cara sehingga dapat berarti bagi penerima (Turban, 2003, p15). Dengan demikian informasi dapat menjadi masukan yang berguna dalam pengambilan keputusan.
2.3
Pengertian Sistem Sistem terdiri dari sejumlah komponen yang saling berinteraksi, yang artinya
saling bekerja sama membentuk satu kesatuan untuk mencapai tujuan tertentu (Prahasta, 2002, p37). Berdasarkan pengertian tersebut maka sistem harus dapat
8
9 dirancang sedemikian rupa agar dapat bekerja secara efisien sehingga apa yang menjadi sasaran dari sistem tersebut dapat tercapai.
2.4
Sistem Informasi Geografi 2.4.1
Pengertian Sistem Informasi Geografi Sistem Informasi Geografi (SIG) didefinisikan sebagai komputer yang
membantu sistem untuk menangkap, menyimpan, mengambil kembali, analisis, dan menampilkan data spasial. (http://www.sli.unimelb.edu.au/gisweb/GISModule/GISTheory.htm). Sistem Informasi Geografi (SIG) adalah perangkat lunak komputer yang menghubungkan informasi geografi (dimana sesuatu berada) dengan informasi deskriptif (apakah sesuatu itu). Tidak seperti peta di kertas datar, dimana “Apa yang kita lihat yang kau dapatkan”, SIG merepresentasikan banyak layer untuk berbagai informasi. (http://www.sli.unimelb.edu.au/gisweb/GISModule/GISTheory.htm).
2.4.2
Komponen Utama SIG
Menurut Marble, ada 4 komponen utama dalam SIG yang benar yaitu: 1.
Sistem Input Data Mengumpulkan dan atau memproses spasial data dari sumber-sumber yang ada, seperti peta, remote sensing data, gambar, dan lain-lain.
10 2.
Penyimpanan dan Pengambilan Kembali Data Mengorganisasikan data spasial dan memperbolehkan untuk pengambilan dan perubahan data dengan cepat.
3.
Analisis dan Manipulasi Data Memperbolehkan untuk perubahan bentuk data, model simulasi, perbandingan spasial sementara.
4.
Hasil/Keluaran Menampilkan basis data spasial dan analisis dalam grafik (misalnya peta) atau dalam bentuk form tabular.
2.4.3
Perbandingan Keuntungan Data Digital Dengan Data Analog Keuntungan dari data digital dengan data analog dijabarkan pada
tabel di bawah ini (http://www.sli.unimelb.edu.au/gisweb/GISModule/GISTheory.htm) :
Digital Mudah diupdate
Analog Harus mengubah seluruh peta jka ada perubahan.
Transfer data mudah dan cepat Transfer data lambat ( harus (melalui internet) Media
penyimpanan
melalui pos) yang Media
penyimpanan
yang
diperlukan adalah relatif kecil (alat- diperlukan adalah relatf besar alat digital)
(perpustakaan peta tradisional)
11 Mudah untuk dipelihara
Peta kertas tidak terintegrasi (sulit untuk dipelihara)
Mudah dianalis dengan automatis
Sulit dan tidak akurat untuk dianalisis
(contohnya
untuk
mengukur area dan jarak) Tabel 2.1 Perbandingan keuntungan antara data digital dan data analog
2.5
Basis Data Spasial 2.5.1
Pengertian Data Geospasial (Geografis) Data geospasial mempunyai komponen spasial dan komponen
tematik. Secara konsep, data geografik bisa dibedakan menjadi 2 elemen yaitu observation / entity dan attribute / variable. Sistem Informasi Geografis dapat mengatur keduanya. Observation mempunyai dua aspek dalam lokalisasinya yaitu lokalisasi berdasarkan sistem koordinat dan hubungan topologikal yang menunjuk ke observation lain. Contohnya : The Department of Geomatics berlokasi di posisi X dan Y tertentu, atau The Department of Geomatics terletak diantara Grattan Street dan Old Engineering Building. SIG berkemampuan memanage kedua-duanya, sementara computer assisted cartography ( komputer pembantu perpetaan ) hanya dapat mengatur salah satunya. Thematic component. Suatu variabel atau atribut bisa dipelajari mengenai aspek tematiknya (untuk ilmu statistika), aspek lokasinya
12 (untuk
analisis
spasial)
atau
kedua-duanya
(SIG).
(http://www.sli.unimelb.edu.au/gisweb/GISModule/GISTheory.htm). Dua tipe dasar di SIG (Sistem Informasi Geografis) yaitu : a.
Spatial data , berguna untuk mendeskripsikan lokasi dan bentuk dari fitur/unsur geografi dan hubungan spasial dengan fitur/unsur lain. Spatial data itu sendiri mencakup : o
locational data, merupakan data yang menginformasikan letak/lokasi fitur-fitur.
o
topological data, merupakan data yang menginformasikan letak fitur dalam hubungannya dengan fitur lain.
b.
Attribute data, berguna untuk mendeskripsikan informasi tentang data spasial.
(http://www.umsl.edu/~campbell/ SPATDAT1_F00.htm).
2.5.2
Pengertian Basis Data Spasial Basis data spasial didefinisikan sebagai kumpulan data-data
geospasial yang saling berhubungan, yang dapat menangani dan memelihara data-data besar yang dapat dibagi antara aplikasi-aplikasi SIG yang berbeda-beda. Syaratnya adalah mengatur data yang berhubungan dengan beberapa ruang. Yang perlu direpresentasikan dalam basis data ini adalah objek di dalam ruang dan ruang itu sendiri.
13 1. Objek di dalam ruang itu sendiri misalnya seperti gambar di bawah ini : kota Jakarta : area kota :
Gambar 2.1 Area Kota sungai : rutenya Sungai Ciliwung
Gambar 2.2. Sungai Ciliwung 2. Ruang Ruang adalah pernyataan tentang setiap titik dalam ruang ( dalam raster image ) misalnya peta pemukiman, peta sarana dan transportasi.
14 2.5.3
SIG dalam Vektor Vektor adalah struktur data, digunakan untuk menyetor data
spasial. Data vektor adalah terdiri dari arc atau rusuk. , yang didefinisikan awal dan akhirnya dengan titik, yang disebut node. Namun bagaimanapun penyimpanan data dalam bentuk vektor hanya menampilkan titik-titik yang mendefinisikan fitur di semua ruang. Di luar fitur-fitur ini tidak ditampilkan. Data berbasiskan vektor didefinisikan sebagai representasi vektor dari data geografis. Berkenaan dengan karakteristik data model itu, objek geografis secara eksplisit direpresentasikan, dan didalam karakteristik spasial, aspek tematik / atribut juga berhubungan. Ada beberapa jalan dalam mengorganisasi basis data ganda (spasial dan tematik/atribut). Umumnya, sistem vektorial dikomposisikan dari 2 komponen: yang satu mengatur data spasial dan yang satu mengatur data tematik. Ini dinamakan hybrid organization system, yang adalah sistem yang menghubungkan data secara relasional untuk atribut dari topologi untuk data spasial. Elemen kunci dari tipe sistem ini adalah identifier(penunjuk) dari setiap objek. Identifier ini bersifat unik dan berbeda untuk setiap object dan mengijinkan
sistem
untuk
menghubungkan
antara
basis
data
(http://www.sli.unimelb.edu.au/gisweb/GISModule/GISTheory.htm).
2.5.3.1 Representasi Vektor dari Data Di
dalam
model
berbasis
vektor,
data
geospasial
direpresentasikan dalam bentuk koordinat. Di dalam vektor data,
15 unit terdasar dari informasi spasial adalah point (titik), line / arc (garis) dan polygon. Line adalah kumpulan dari point yang berelasi, dan polygon adalah kumpulan dari line yang berelasi. Coordinate (koordinat) yaitu sepasang angka yang mengekspresikan jarak horisontal sepanjang sumbu orthogonal dengan angka yang mengukur jarak horisontal dan vertikal, atau n angka yang mengekspresikan lokasi yang akurat dalam bidang n dimensi. Koordinat secara general merepresentasikan lokasi di permukaan bumi relatif ke lokasi lain. Sedangkan point atau titik adalah abstraksi dimensional 0 dari sebuah representasi objek oleh koordinat tunggal X,Y. Point umumnya merepresentasikan fitur geografi yang terlalu kecil ditampilkan sebagai arc atau area. Sebagai contoh, lokasi dari lokasi bangunan di atas peta skala kecil, atau lokasi dari servis dilapisi oleh skala map medium menengah. Arcs adalah sekumpulan dari koordinat tertentu yang merepresentasikan bentuk dari fitur geografik
terlalu terbatas
untuk ditampilkan sebagai area di skala yang diberikan (countour, jalan atau streams) atau fitur linear tanpa area n(county boundary lines). Arc adalah sinonim dari rusuk. Rusuk adalah bagian ARC/INFO
yang digunakan sinonim dengan arc. Sedangkan
polygon adalah fitur digunakan untuk merepresentasikan area. Polygon didefinisikan dengan arcs yang menghiasi boundary dan point di dalam boundary untuk pengidentifikasian. Polygon
16 mempunyai atribut yang mendeskripsikan fitur geografi yang mereka representasikan. Ada beberapa vektor model
untuk menyediakan dan
mengatur vektor informasi. Setiap dari mereka memiliki keuntungan dan kerugian (http://www.sli.unimelb.edu.au/gisweb/GISModule/GISTheory.ht m).
2.5.3.2 Model-Model Vektor 1.
Daftar dari Koodinat “spaghetti” (gambar 2.3)
Gambar 2.3 List of coordinates “spaghetti” Karakteristik dari model verteks List of coordinates “spaghetti” : -
Sederhana
-
Mudah diatur
-
Tidak topologi
17 -
Banyak
duplikasi,
hingga
butuh
untuk
tempat
penyimpanan besar. -
Sering
dipakai
di
CAC
(Computer
Assisted
Cartography)
2. Vektor dictionary (gambar 2.4)
Gambar 2.4 Vertex Dictionary Tidak ada duplikasi, tapi tetap tidak menggunakan topologi.
18 3. Dual independent Map Encoding (DIME) (gambar 2.5)
Gambar 2.5 Dual independent Map Encoding (DIME) -
Dikembangkan oleh US Bureau of the Cencus.
-
node-node (interseksi dari arcs) diidentifikasi dengan code.
-
Menempatkan code langsung di dalam form dari suatu “from node” dan suatu “to node”
-
kedua alamat jalan dan UTM koordinat adalah eksplisit teridentifikasi untuk setiap link.
19 4. arc/node (gambar 2.6)
Gambar 2.6 Arc / Node
Tabel 2.2 Coordinates of nodes and vertex for all the arcs
Tabel 2.3 Arcs Topology
20
Tabel 2.4 Polygons Topology
Tabel 2.5 Nodes Topology
2.5.3.3 Topologi Arc Node Topologi mendefinisikan hubungan spasial antara fiturfitur. Konsep dasar topologi adalah sebagai berikut: 1.
Setiap garis/arc memiliki node awal dan akhir (arah).
2.
Arc yang terhubung ke arc lain pada node - node (koneksi/hubungan).
3.
Arcs yang terhubung yang mengelilingi sebuah area membentuk polygon (mempunya area dan perimeter).
4.
Arc memiliki sisi kiri dan kanan (adjacency).
21 Topologi arc node yaitu hubungan topologikal antara node-node (titik) dan arcs (garis) dispesifikasikan dengan FNODE#
dan
TNODE#.
FNODE#
(from
node
number)
merupakan titik awal dari arc, dan TNODE# (to node number) merupakan titik akhir dari arc. ARC#
FNODE#
TNODE#
1
2
1
2
1
4
3
1
3
4
3
4
Tabel 2.6 Topologi Arc Node
Gambar 2.7 Representasi Topologi Arc Node Topologi polygon arc adalah hubungan topologikal antara arc dan polygon yang dispesifikasikan dengan LPOLY# dan RPOLY#. LPOLY# (left polygon number) merupakan poligon di sebelah kiri arc sedangkan RPOLY# (right polygon number) merupakan polygon di sebelah kanan arc. Untuk menentukan
22 apakah polygon itu kiri atau kanan didasarkan pada arah arc, ARC/INFO
menciptakan
polygon
universal
untuk
merepresentasikan semua area di luar cakupan polygon yang ada. Polygon universal itu biasa disebut POLY#1. Polygon dikatakan berpotongan jika mereka berbagi arc (contoh: polygon 1 dan 2 berpotongan, tapi polygon 3 dan 4 tidak berpotongan). Nilai nol dari sebuah ARC# menunjukkan ada sebuah polygon atau lubang di dalam polygon lain. ARC# FNODE# TNODE# LPOLY# RPOLY# 1
1
2
1
2
2
1
3
2
1
3
3
2
2
4
4
2
4
1
4
5
4
3
1
4
6
5
5
2
3
Tabel 2.7 Topologi polygon arc
POLY# ARC#
1
1,4,5,2
2
1,3,2,0,6
3
6
4
4,5,3
Tabel 2.8 Himpunan Anggota Polygon
23
Gambar 2.8 Representasi Polygon Arc Fitur tabel atribut juga mengandung atribut tambahan sebagai berikut: 1. Point mempunyai Point Atrribute Tables (PAT) yang mengandung kolom : Area
Perimeter
Cover#
Cover-ID
(Area dan Perimeter selalu mempunyai nilai 0) 2. Arc juga mempunyai Arc Attribute Tables (AAT) yang mengandung kolom :
3.
Fnode#
Tnode#
Cover#
Cover-ID
Polygon
mempunyai
Lpoly#
Polygon
Rpoly#
Attribute
Length
Tables
yang
mengandung kolom : Area
Perimeter
Cover#
Cover-ID
Record pertama di tabel atribut polygon merepresentasikan polygon universal. Area di polygon universal adalah jumlah dari
24 semua area di dalam tabel PAT. Perimeter di polygon universal adalah keliling dari semua cakupan polygon yang ada. Data atribut menyediakan informasi yang lebih deskriptif mengenai fitur di peta. Di dalam ArcView dan ARC/INFO, data atribut dihubungkan dengan data spasial oleh kolom penghubung. Di dalam ARC/INFO atribut data file disebut fitur tabel atribut. Feature Coordinates Street #
X, Y Coordinates
1
3,5 5,5
2
5,5 9,5
3
9,5 11,5
4
6,8 6,7 5,6 5,5
5
9,5 9,3
Tabel 2.9 Feature Coordinates
Feature Attributes Street #
Street_type
1
1
2
1
Surface
Asphalt
Asphalt
Width
Name
48
Main St.
48
Main St.
25
3
1
4
2
5
3
Asphalt
Asphalt
Asphalt
48
Main St.
36
Elm Ave.
30
7th St.
Tabel 2.10 Feature Attributes Spasial joins menghubungkan atribut pada tabel di lokasi spasial dengan fitur di sumber dan tujuan tema. Ada 3 landasan untuk spasial joins, bergantung pada tipe fitur dari sumber dan tujuan tema. “Kedekatan” adalah “sepenuhnya di dalam” atau “adalah bagian dari”. Join Type
Source Theme
Destination Theme
Basis for Spatial Join
Point-toPoint
Point
Point
Nearness
Line-to-Point Point
Line
Nearness
Point-to-Line Line
Point
Nearness
Point-inPolygon
Polygon
Point
Are Completely Within
Line-inPolygon
Polygon
Line
Are Completely Within
Polygon-inPolygon
Polygon
Polygon
Are Completely Within
Line-in-Line
Line
Line
Are Part Of
Tabel 2.11 Spatial Joins
26 Untuk point ke point, arc ke point, atau point ke arc spasial join, setiap record di tabel tujuan ditambah dengan kolom dari tabel sumber yang berkoresponden dengan fitur terdekat di tema sumber. Kolom baru berlabel Jarak juga ditambahkan ke tabel tujuan. Kolom baru ini berisikan jarak dari setiap fitur di tabel tujuan ke fitur terdekat di tabel sumber. Polygon ke polygon spasial join mirip dengan menambah atribut dari polygon sumber ke polygon tujuan di dalam polygon sumber. Dikatakan bahwa point ke polygon, arc ke polygon, dan polygon ke polygon spasial joins menjadi ambigu ketika fitur (point, arc, atau polygon) ada di dua atau lebih polygon di tema sumber. Dalam kasus ini, record tujuan menerima kolom atribut kosong sejak dua atau lebih record pada tabel sumber overlap record tujuan. Ada kesamaan ambiguitas ketika sebuah point atau arc terletak tepat di batas antara dua polygon. (http://www.umsl.edu/~campbell/SPATDAT1_F00.htm).
2.5.4
SIG dalam Raster Struktur data raster merepresentasikan data spasial menggunakan
tabular atau struktur grid baris dan kolom. Setiap lokasi di sel bujur sangkar mempunyai baris dan kolom. Fitur-fitur spasial seperti arc dan polygon direpresentasikan dengan kumpulan dari sel dengan nilai yang bersangkutan. Point direpresentasikan dengan satu sel. Sebagai contohnya grid di sebelah kiri di bawah ini digunakan untuk merepresentasikan
27 point, arc, dan polygon di sebelah kanan. Setiap sel di grid mengandung nilai
(atau
tidak
ada
data).
Sebagai
contohnya,
sel
tunggal
direpresentasikan point bisa mempunyai nilai 1. 20 sel merepresentasikan arc bisa mengandung nilai 2, dan 31 sel merepresentasikan polygon bisa mengandung nilai3. Warna yang berbeda dan/atau pola bisa menentukan sel berbeda dari yang ditampilkan.
Gambar 2.9 Representasi point, arc, dan polygon dalam raster
Gambar 2.10 Representasi point, arc, dan polygon dalam vektor Masalah terpenting untuk bekerja dengan data grid adalah ukuran sel. Semakin kecil sel menyediakan lebih akurat, tapi membutuhkan data
28 lebih banyak dan memperlambat analisis. Mengurangi ukuran sel dari 50 meter persegi menjadi 10 meter persegi (a faktor dari 5) menambah jumlah dari sel, dan karena itu banyak data menjadi a faktor dari 25.
2.5.4.1 Representasi data dengan Raster Raster adalah metode untuk penyimpanan, memproses dan menampilkan data spasial. Setiap data dibagi menjadi baris dan kolom, dimana bentuknya struktur grid regular. Setiap sel adalah bentuk persegi panjang, tapi tidak harus bujur sangkat. Setiap sel dalam matriks ini mengandung lokasi koordinat sebaik nilai atribut. Lokasi spasial dari setiap sel adalah secara implisit mengandung dalam order matriks, tidak seperti struktur vektor yang menyimpan topologi secara eksplisit. Area mengandung nilai atribut yang sama , nsmun struktur raster bisa mengidentifikasikan wilayah seperti area dalam polygon. Struktur raster mungkin memulai untuk meningkatkan penyimpanan dalam situasi tertentu, sejak mereka menyimpan setiap sel dalam matriks tanpa menghiraukan apakah itu feature atau hanya tempat kosong. Berbagai tipe analisis adalah memungkinkan dengan banyak grid. Setiap operasi analisis grid memproduksi output grid baru berdasarkan satu atau banyak input grid. Analisis grid bisa dibagi menjadi 4 kategori: operasi lokal, operasi fokal, operasi zonal, dan operasi global. Pada operasi lokal, nilai dari sel di output grid ditentukan dari korespondensi
29 nilai-nilai sel dari grid input. Menambahkan 2 grid sel ke sel, seperti ditunjukkan gambar di bawah ini, adalah operasi lokal.
Gambar 2.11 Operasi Lokal Di operasi fokal, setiap nilai sel di output grid ditentukan menggunakan nilai dari sel tetangga di grid input, seperti yang ditunjukkan gambar di bawah ini:
Gambar 2.12 Operasi Fokal Varietas operasi fokal mengkalkulasi untuk setiap sel nomor di nilai terjadi di setiap sel dan tetangganya, seperti ditunjukkan di bawah ini:
30
Gambar 2.13 Varietas Operasi Fokal Operasi zonal memerlukan 2 grid. 1 grid menjelaskan zona dari nilai yang serupa. Grid yang kedua mengandung nilai untuk analisis. Setiap nilai sel di output grid ditentukan berdasarkan analisis dari nilai dari semua sel di dalam setiap zona. Di contoh berikut ini, grid pertama mengandung 3 zona (ditentukan oleh nilai 1, 2, dan 5) dan output grid mengandung nilai rata-rata untuk setiap zona dari nilai-nilai di grid kedua.
Gambar 2.14 Operasi Zonal Pada operasi global, nilai di setiap sel di output grid adalah fungsi di seluruh grid. Sebagai contoh, grid jarak bisa dikalkulasi dari banyak sumber point, dimana setiap nilai di setiap sel di output grid adalah jarak terdekat ke sel dari point sumber. Di contoh di bawah ini, ada 2 point sumber dan setiap sel adalah
31 panjang dan lebar 1 unit. Jarak adalah dihitung antara sel-sel di tengah.
Gambar 2.15 Contoh Perhitungan Jarak Satu tipe umum dari analisis dengan grid adalah untuk mengidentifikasikan daerah-daerah yang sesuai dengan kriteria tertentu. Ini dapat diistilahkan pemilihan tempat atau analisis kesesuaian.
Sebagai
contohnya,
jika
tujuannya
adalah
mengidentifikasikan tempat yang baik untuk pengenalan kembali serigala, seseorang bisa mengkombinasikan grid ketersediaan makanan dan air, grid serangan serigala, grid persaingan dengan gerombolan serigala yang telah ada, dan grid tempat hidup manusia untuk menghasilkan grid akhir yang sesuai dengan keadaan tersedianya makanan dan minuman, jauh dari predator, bersaing dengan gerombolan serigala dan tempat hidup manusia untuk keberhasilan pengenalan kembali. Biasanya tiap grid individu diubah menjadi grid yang lebih sederhana di mana setiap sel mengandung 0 jika tidak sesuai atau 1 jika sesuai. Grid-grid masing-masing untuk setiap kriteria, bisa lebih mudah dikombinasi dengan pertambahan atau perkalian untuk memproduksi grid akhir yang mengindikasi grid akhir yang
32 sesuai dengan semua kriteria. Sebagai contoh, penambahan 2 grid kesesuaian mengandung 0 atau 1 memproduksi grid kesesuaian akhir dengan nilai 2 menyatakan sel yang cocok dengan kriteria.
Gambar 2.16 Penjumlahan Grid Perkalian 2 grid kesesuaian memproduksi grid kesesuaian akhir seperti di bawah ini dan nilai 1 menyatakan grid yang sesuai.
Gambar 2.17 Perkalian Grid Tipe
analisis
umum
yang
lainnya
adalah
mengkombinasikan grid untuk menentukan biaya keluaran. Sebagai contohnya, jika tujuannya untuk menentukan jalur yang disukai untuk dilewati oleh 2 binatang di antara 2 bidang tanah. Seseorang
mungkin
bisa
mengkombinasikan
antara
jenis
vegetarian, lereng dan aliran sungai. Nilai berbeda di setiap sel grid mengidentifikasikan bedanya derajat kesulitan atau biaya, untuk melewati sel-sel. Sebagai contoh, lereng curam mempunyai biaya yang tinggi, lereng datar mempunyai biaya yang rendah. Untuk beberapa binatang, padang rumput mempunyai biaya yang
33 tinggi untuk hewan pemangsa, sementara untuk beberapa binatang padang rumput mempunyai biaya yang rendah ntuk kemudahan melakukan perjalanan. Untuk mengkombinasikan grid ongkos, grid biaya akhir bisa diperoleh. Dengan grid akhir tersebut, biaya terkecil yang menghubungkan 2 bidang dapat ditentukan (http://www.umsl.edu/~campbell/RASTER1_F00.htm).
2.5.5
Perbandingan struktur data vektor dan struktur data raster Struktur data raster menawarkan beberapa keuntungan dari
struktur data vektor: -
Struktur data raster bekerja dengan lebih sederhana
-
Map overlays (luaran peta) dapat diselesaikan dengan lebih efisien.
-
Permukaan yang terus menerus (kepadatan populasi, lereng, dan sebagainya) bisa direpresentasikan dengan lebih baik.
-
Banyak data yang dibuat dalam format raster (gambar satelit, foto antena, dan lain-lain).
34 Struktur data raster juga mempunyai beberapa kelemahan dibandingkan dengan struktur data vektor: -
Hubungan topologi lebih sukar didirikan dan diatur.
-
Keakuratan dari analisis spasial bisa menjadi masalah. Sebagai contohnya, panjang dari arc, area dari polygon, sulit untuk ditentukan dalam set data raster.
-
Penyimpanan data bisa menjadi tidak efisien, sejak banyaknya sel yang mempunyai nilai yang sama untuk merepresentasikan fitur yang sama. Juga sel yang paling kecil diperlukan untuk meningkatkan keakuratan.
-
Peta raster menjadi menjadi kurang atraktif.
-
Transformasi data dalam struktur raster (rotasi) dan dari raster ke vektor bisa menjadi persoalan. Untuk peta parkir dapat dispasial atau disegmentasi berdasarkan
tempat-tempat yang dapat digunakan parkir mobil dengan data pembobot atau data jarak tempat parkir tersebut dengan pintu gerbang parkir. Data pembobot ini merupakan data prioritas suatu tempat jika mempunyai jarak yang sama, agar bisa dibedakan atau bisa juga prioritas tempat tersebut dapat ditempati secara berurutan atau dengan prasyarat tertentu (http://www.umsl.edu/~campbell/RASTER1_F00.htm).
35 2.6
Basis Data Relasional 2.6.1
Pengertian Basis Data Basis data adalah kumpulan data yang terhubung secara logika
yang bisa dipakai secara bersama dan deskripsi mengenai data tersebut yang didesain untuk memenuhi kebutuhan informasi dari sebuah organisasi (Connolly, 2002, p14).
2.6.2 Basis Data Relasional Di dalam basis data relasional, data dimasukkan ke dalam table yang dimana baris merepresentasikan objek atau entitas dan kolom merepresentasikan atribut/variabel. Basis data biasanya terdiri dari beberapa tabel dan relasi diantara mereka adalah melalui 2 variabel dengan penunjuk (identifiers), satu diantara mereka adalah unik dan korelatif. Bisa jadi angka atau alfabet. Dan yang kedua mungkin diulang dan untuk menolong mengorganisasi tabel atribut. Keuntungan menggunakan basis data model ini adalah : -
Desain ini berdasarkan metodologi dengan basis teroritik berat, dimana menawarkan kepercayaan diri di dalam kapasitasnya untuk dikembangkan.
-
Menjadi sangat mudah untuk mengimplementasikannya, terutama dalam perbandingan dengan model lain seperti hirarikal, jaringan dan object oriented.
-
Menjadi sangat fleksibel. Bisa menambahkan tabel dengan mudah.
36 -
Terakhir, banyak DBMS unggul lainnya menggunakan pendekatan mengandung bahasa query (seperti SQL) ini yang membuat mudah untuk memasukan alat ini ke SIG.
Basis data yang biasa digunakan dalam SIG adalah basis data relational. Penggunaan
SIG
dengan
basis
data
berorientasi
objek
sedang
dikembangkan.
2.6.3
Basis Data Berorientasi Objek Berdasarkan objek, pendekatan ini bisa didefinisikan sebagai
entitas dengan lokalisasi dengan nilai dan dengan operasi grup. Jadi, keuntungan dalam perbandingan dengan basis data relasional berdasarkan inklusi, dalam definisi objek, tidak hanya atribut namun juga metode atau operasi yang dibuat objek. Sebagai tambahan, objek-objek adalah kepunyaan kelas yang dapat mempunyai variabel mereka sendiri dan kelas ini
dapat
merupakan
kepunyaan
dari
super
kelas
(http://www.sli.unimelb.edu.au/gisweb/GISModule/GISTheory.htm).
2.7
Pengertian Manajemen Menurut James A.F. Stoner, manajemen adalah suatu proses perencanaan,
pengorganisasian, kepemimpinan, dan pengendalian upaya dari anggota organisasi serta penggunaan semua sumber daya yang ada pada organisasi untuk mencapai
tujuan
organisasi
yang
telah
ditetapkan
(http://organisasi.org/pengertian_definisi_dari_manajemen).
sebelumnya
37 Manajemen menggolongkan proses memimpin dan mengarahkan semua atau sebagian organisasi (biasanya sebuah bisnis) melalui penyebaran dan media sumber (manusia, finansial, material, intelektual, dan hal-hal lain yang tidak kasat mata). Kata manage berasal dari bahasa Italia maneggiare, yang juga didapatkan dari bahasa Latin manus, tangan. Seseorang dapat juga berpikir tentang manajemen secara fungsional, sebagai sebuah tindakan untuk mengukur suatu kuantitas secara teratur dan tentang menyesuaikan beberapa rencana awal; atau sebagai tindakan yang diambil untuk mencapai tujuan yang dihadapkan seseorang. Ini berlaku bahkan di situasi ketika perencanaan tidak ada. Menurut pendapat Henry Fayol, manajemen terdiri dari lima fungsi yaitu perencanaan, pengorganisasian,
kepemimpinan,
koordinasi,
serta
pengontrolan
(http://en.wikipedia.org/wiki/Management). Sedangkan menurut Kamus Besar Bahasa Indonesia Edisi kedua pada halaman 623, manajemen adalah : 1.
proses penggunaan sumber daya secara efektif untuk mencapai sasaran.
2.
pimpinan yang bertanggung jawab atas jalannya perusahaan dan organisasi.
2.8
Pengertian Parkir Definisi
parkir
adalah
(http://www.thefreedictionary.com/park) :
sebagai
berikut
38 1.
Suatu posisi dimana suatu transmisi otomatis melepaskan gigi persneling dan mengerem sehingga sarana (angkut) itu tidak dapat dipindahkan atau digerakkan.
2.
Untuk meletakkan atau meninggalkan kendaraan untuk beberapa waktu pada lokasi tertentu. Selain itu, pengertian parkir menurut Kamus Besar Bahasa Indonesia
Edisi kedua pada halaman 731 adalah menghentikan atau menaruh (kendaraan bermotor) untuk beberapa saat di tempat yang sudah disediakan.
2.9
Pengertian Algoritma Berdasarkan buku Computer Algorithms/C++ (Horowitz et al, 1998, p1)
terdapat beberapa pengertian mengenai algoritma, antara lain: •
Algoritma adalah metode yang dapat dipakai oleh komputer untuk menyelesaikan suatu masalah. Pengertian ini dikemukakan pertama kali oleh Abu Ja’far Mohammad ibn Musa al Khowarizmi dari Persia pada bukunya yang berjudul Kitab al-jabr w’al-muqabala (Rules of Restoration and Reduction). Dari sinilah istilah algoritma pertama kali dikenal.
•
Algoritma adalah urut-urutan terbatas dari operasi-operasi yang terdefinisi dengan baik yang masing-masing membutuhkan memori dan waktu yang terbatas untuk menyelesaikan suatu masalah.
•
Algoritma adalah sekumpulan instruksi yang harus dijalankan dan harus berakhir prosesnya dengan mengeluarkan suatu keluaran.
39 Dari beberapa pengertian diatas dapat ditarik suatu kesimpulan bahwa algoritma adalah urutan langkah-langkah penyelesaian masalah yang disusun secara sistematis
2.10
Metode Shortest Path 2.10.1 Pengertian Shortest Path Pencarian rute atau path terpendek antar-node yang ada pada graph. Biaya (cost) yang dihasilkan adalah yang paling minimum (Horowitz et al, 1998, p241). Berdasarkan pengertian pada digraph (2.14) dan weighted graph (2.15) di atas maka cost dari shortest path dapat dihitung berdasarkan total nilai minimum yang ada pada edge-nya. Pada penulisan ini nilai pada masing-masing edge merupakan panjang jalan yang harus ditempuh.
2.10.2 Algoritma A* Algoritma A* pertama kali dikemukanan oleh P. E. Hart, N. J. Nilson, dan B.Raphael (1986) dalam karya ilmiah mereka berjudul “A Formal Basis for the Heuristic Deterministic of Minimum Cost Paths”. Menurut Luger dan Stubblefield (1993, p127-133), algoritma A* memiliki fungsi dimana h(h) ≤ biaya minimum suatu rute dari n ke titik tujuan. Sedangkan algoritma A* adalalah algoritma yang menerapkan heuristik untuk melakukan pencarian dan memiliki fungsi f(n) = g(n) + h(n) dimana:
40 •
n adalah titik (node) yang terdapat pada saat pencarian.
•
f(n) adalah fungsi untuk menentukan arah yang dipilih saat melakukan pencarian rute.
•
g(n) adalah fungsi untuk memperkirakan biaya yang diperlukan dari titik sekarang ke titik tujuan.
•
h(n) adalah heuristic untuk memperkirakan biaya yang diperlukan dari titik yang sekarang ke tujuan. Kelebihan algoritma A* adalah karena algoritma ini menggunakan
heuristik dalam memperkirakan seberapa jauh suatu titik dengan tujuan. Dengan teknik ini dapat memandu pencarian rute dalam menentukan arah pencarian terbaik tanpa harus mencari ke segala arah. Bila ternyata arah yang diikuti tidak dapat sampai ke tujuan maka algoritma ini dapat backtrack untuk mencari rute lain yang mempunyai kemungkinan mencapai tujuan. Algoritma ini akan kembali mencari rute dengan biaya terendah dari titik awal hingga akhir.
2.10.3 Heuristik Menurut Silitonga (1993b), heuristik adalah suatu aturan tentang perkiraan secara ilmiah maupun intuitif untuk mengurangi atau membatasi wilayah pencarian yang sulit dilakukan. Menurut Luger dan Stubblefield (1993c, p116), heuristik merupakan aturan–aturan untuk memilih cabang– cabang yang memiliki kemungkinan mengarah pada pemecahan masalah. Karena heuristik menggunakan informasi yang terbatas, maka heuristik
41 jarang dapat memprediksi perilaku yang tepat dalam suatu pencarian. Suatu heuristik dapat berhasil atau gagal memberikan petunjuk untuk suatu algoritma. Algoritma
A*
tanpa
fungsi
heuristik
yang
bagus
akan
memperlambat pencarian dan dapat menghasilkan rute yang bukan terpendek. Jika algoritma ini diharapkan menghasilkan rute yang benar – benar terpendek, maka fungsi heuristiknya harus underestimate terhadap biaya dari suatu titik ke tujuan. Fungsi heuristik yang sempurna akan membuat algoritma ini langsung menuju titik tujuan tanpa harus mengecek seluruh node. Sehingga bisa fungsi heuristiknya terlalu underestimate menyebaban algoritma ini selalu beranggapan bahwa ada rute yang lebih baik dari rute yang ada. Untuk fungsi heuristik yang underestimate bila nilainya terlalu rendah akan menyebabkan algoritma ini seperti algoritma Dijkstra yang mencari ke segala arah yang mungkin. Hal ini dikarenakan tidak cukupnya informasi mengenai masalah yang dihadapi sehingga menyebabkan algoritma A* tidak efektif dan efisien. Jika algoritma ini diharapkan melakukan pencarian rute dengan lebih cepat tanpa mengharuskan memperoleh rute terpendek, maka fungsi heuristiknya suatu saat dapat overestimate terhadap biaya dari suatu titik ke tujuan atau fungsi biaya atas suatu jarak disesuaikan dengan fungsi heuristiknya. Fungsi heuristik yang baik adalah bila lebih rendah dari biaya yang sebenarnya terhadap jarak antara suatu titik dengan tujuan. Fungsi heuristik yang pada umumnya digunakan pada algoritma A* adalah
42 heuristic manhattan distance. Contoh heuristik yang sering digunakan pada pathfinding yaitu : 1.
Manhattan distance adalah heuristik standar untuk algoritma A*, digunakan pada aplikasi yang hanya memiliki 4 arah gerakan dan tidak boleh bergerak secara diagonal. H(n) = b * (abs (n.x – tujuan.x) + abs(n.y – tujuan.y)) Dimana : n
= titik saat ini
h(n) = fungsi heuristic dari titik n b
= fungsi biaya
x, y = kordinat (x, y) abs = fungsi absolute 2.
Diagonal Distance adalah heuristik yang digunakan apabila aplikasinya memiliki 8 arah gerakan atau bila bergerak secara diagonal. Rumusnya : h(n) = b * max (abs(n.x – tujuan.x, abs(n.y– tujuan.y)))
3.
Straighline distance adalah heuristik yang digunakan bila aplikasinya memiliki arah penggerakan menggunakan sudut. Rumusnya :
4.
( n. x − tujuan . x ) 2 + ( n. y − tujuan . y ) 2
Breaking ties adalah heuristik yang menggunakan suatu perkalian silang antara vektor dari titik awal dengan vektor titik tujuan. Heuristik ini digunakan untuk menentukan rute mana yang akan
43 dieksplorasi lebih lanjut bila aplikasi memiliki rute – rute dengan kemungkinan yang sama dalam mencapai titik tujuan. Rumusnya : vector cross product = abs((dx1 * dy2) – (dx2 * dy1)) * 0.001 Dimana : dx 1 = posisi x dari titik sekarang – posisi x dari titik tujuan dy 1 = posisi y dari titik sekarang – posisi y dari titik tujuan dx 2 = posisi x dari titik awal – posisi x dari titik tujuan dy 2 = posisi y dari titik awal – posisi y dari titik tujuan
2.10.4 Algoritma Djikstra’s Algoritma
Djikstra’s
menyelesaikan
masalah
single-source
shortest-paths dalam sebuah weighted directed graph G = (V, E) untuk kasus dimana setiap weight edge tidak negative. Algoritma Djikstra’s membuat sebuah himpunan S dari vertex – vertex mempunyai shortest path yang telah ditentukan dari sumber s. Algoritma ini mengulang pencarian vertex u Є V – S dengan estimasi shortest path minimum. Menambahkan u ke S, dan membiarkan semua edge meninggalkan u. Untuk
implementasi di bawah ini, kami menggunakan sebuah min-
priority queue Q dari vertex – vertex, ditandai dengan nilai d masing – masing. Djikstra(G, w, s) 1
INITIALIZE-SINGLE-SOURCE (G, s)
44 2
SÅØ
3
Q Å V[G]
4
While Q ≠ Ø
5
Do u Å EXTRACT-MIN(Q)
6
S Å S U {u}
7
for each vertex v Є Adj[u]
8
do RELAX (u, v, w)
Baris 1 penunjukkan inisialisasi dari nilai d dan П, dan baris 2 menginisialisasi himpunan S menjadi himpunan kosong. Algoritma ini membuat invariant Q = V – S dalam tiap – tiap awalan iterasi dari perulangan while di baris 4 – 8. Baris 3 menginisialisasi min-priority queue Q berisi semua vertex dalam V; sejak S = Ø, invariant menjadi benar setelah baris 3. Tiap melalui perulangan while di baris 4 – 8, sebuah vertex u diambil dari Q = V – S dan ditambahkan ke dalam himpunan S, dengan cara demikian membuat invariant. (Pertama kali melalui perulangan ini, u = s). Vertex u, oleh karena itu, telah menjadi shortestpath paling kecil estimasi dari beberapa vertex di V – S. Kemudian, baris 7 – 8 melepaskan (relax) tiap – tiap edge (u, v) meninggalkan u, hingga mengubah estimasi d[v] dan predesesor П[v] jika shortest path ke v dapat dikembangkan dengan melalui u. Perhatikan bahwa vertex – vertex tidak pernah ditambahkan ke Q setelah baris 3 dan bahwa tiap – tiap vertex diambil dari Q dan ditambahkan ke S hanya sekali, jadi jika perulangan while di baris 4-8 beriterasi sebanyak |V| kali.
45 2.11
Metode Rekayasa Piranti Lunak Menurut Pressman (Pressman, 1997, p29), metode rekayasa piranti lunak
adalah pengembangan dan penggunaan prinsip untuk memperoleh perangkat lunak secara ekonomis yang reliable dan bekerja secara efisien pada mesin nyata. Dalam usaha untuk mengembangkan perangkat lunak secara memadai, proses perkembangan perangkat lunak harus didefinisikan terlebih dahulu. Semua metode rekayasa perangkat lunak itu memiliki serangkaian tugas yang luas yang menyangkut analisa kebutuhan, desain, konstruksi program, pengujian dan pemeliharaan. Model proses untuk rekayasa piranti lunak dipilih berdasarkan sifat aplikasi, metode dan alat-alat bantu yang akan dipakai serta penyampaian yang dibutuhkan. Jadi ketepatan dalam memilih metode rekayasa pranti lunak harus dilakukan untuk mendapatkan sarana yang diinginkan.
46 2.11.1 Waterfall Model Waterfall model merupakan versi popular dari daur hidup pengembangan sistem untuk rekayasa piranti lunak. Sering dianggap sebagai pendekatan klasik dari daur hidup pengembangan piranti lunak, waterfall model menggambarkan metode pengembangan yang linear dan sekuensial. Pengembangan waterfall memiliki tujuan yang berbeda untuk setiap fase dalam pengembangan. Bayangkan air terjun pada jurang, sekali air telah mengalir ke tepi jurang dan telah memulai perjalanannya menuju sisi gunung, itu tidak dapat kembali lagi. Hal ini sama dengan pengembangan waterfall. Sekali fase pengembangan telah diselesaikan, pengembangan akan dilanjutkan ke fase berikutnya dan tidak ada titik balik. Keuntungan
dari
waterfall
model
adalah
model
ini
memperbolehkan departementalisasi dan pengendalian manajerial. Setiap jadwal dapat dibuat dengan deadline untuk setiap tahap pengembangan dan sebuah produk dapat dihasilkan melalui proses pengembangan seperti sebuah mobil dalam tempat cuci mobil dan secara teoritikal akan dikirimkan pada waktunya. Pengembangan bergerak dari konsep, melalui desain, implementasi, pengujian, instalasi, permasalahan, dan berakhir pada operasi dan pemeliharaan. Setiap fase pada pengembangan berlangsung pada urutan yang tepat, tanpa ada langkah yang saling tumpang tindih atau berulang. Kerugian dari model atau pengembangan ini adalah model ini tidak mengijinkan untuk banyak revisi. Saat sebuah aplikasi sudah berada dalam tahap atau langkah pengujian, ini akan sangat
47 sulit untuk kembali dan mengubah sesuatu yang dipikir tidak terlalu baik pada langkah atau tahap konsep. Daur hidup pengembangan sistem memiliki tahap-tahap sebagai berikut ini: 1.
System/Information Engineering and Modelling Sebagaimana piranti lunak selalu merupakan sistem yang besar (bisnis), kerja dimulai dengan menentukan kebutuhan-kebutuhan untuk semua elemen sistem dan kemudian mengalokasikan beberapa bagian dari kebutuhan ini dalam kebutuhan piranti lunak. Sistem merupakan dasar dan kebutuhan yang sangat kritis untuk keberadaan piranti lunak dalam semua entitas. Jadi, jika sistem tidak berada pada tempatnya, sistem harus diperbaiki dan diletakkan pada tempatnya.
2.
Software Requirement Analysis Ini juga dikenal sebagai pembelajaran mengenai kemungkinan yang terjadi. Pada tahap ini, tim pengembangan mengunjungi pelanggan dan mempelajari sistem mereka. Mereka meneliti kebutuhan akan otomatisasi piranti lunak pada sistem yang diberikan. Pada akhir tahap ini, tim melengkapi dokumen yang berisi rekomendasi khusus yang berbeda-beda untuk calon sistem. Tujuan penting dari fase ini adalah untuk menemukan kebutuhan dan untuk mendefinisikan masalah yang perlu diselesaikan.
3.
System Analysis and Design
48 Pada fase ini, proses pengembangan piranti lunak, struktur piranti lunak keseluruhan dan perbedaan atau nuansanya didefinisikan. Dalam istilah teknologi client/server, banyaknya tier yang dibutuhkan untuk paket arsitektur, desain basis data, desain struktur data, dan sebagainya, semua didesain dalam fase ini. Model pengembangan piranti lunak diciptakan. Analisis dan desain merupakan hal yang sangat penting dalam daur pengembangan. Sistem logikal dari produk dikembangkan dalam fase ini. 4.
Code Generation Desain harus diterjemahkan ke dalam form yang dapat dibaca oleh mesin. Jika desain ditampilkan dengan lebih rinci, penghasilan kode dapat diselesaikan tanpa banyak masalah. Alat - alat untuk programming seperti compilers, interpreters, debuggers digunakan untuk menghasilkan kode. Bahasa pemrograman tingkat tinggi yang berbeda-beda seperti C, C++, Pascal, Java digunakan untuk koding. Dengan penyesuaian terhadap tipe aplikasi, bahasa pemrograman yang tepat dapat dipilih.
49 5.
Testing Sekali koding telah dihasilkan, pengujian program piranti lunak dimulai. Metodologi pengujian yang berbeda-beda tersedia untuk menyelesaikan masalah-masalah yang muncul di langkah-langkah sebelumnya. Alat - alat pengujian yang berbeda dan metodologimetodologi tersedia. Beberapa perusahaan membangun alat - alat sendiri
untuk
menguji
segala
sesuatu
yang
saling
berkesinambungan untuk operasi pengembangan mereka sendiri. 6.
Maintenance Piranti lunak pasti akan mengalami perubahan saat piranti lunak itu dikirim ke pelanggan. Ada banyak alasan untuk perubahan. Perubahan dapat terjadi karena beberapa nilai input yang tidak diharapkan masuk ke dalam sistem. Di samping itu, perubahan dalam sistem dapat dengan langsung mempengaruhi operasi piranti
lunak.
Piranti
lunak
harus
dikembangkan
untuk
menyesuaikan perubahan yang mungkin terjadi selama periodeperiode setelah implementasi.
2.12
UML (Unified Modelling Languange) 2.12.1 Sejarah UML UML adalah sebuah bahasa yang telah menjadi standar dalam industri
untuk
memvisualisasi,
menspesifikasi,
merancang
dan
mendokumentasi sistem piranti lunak (Booch et al, 1999, p14). UML
50 menawarkan sebuah standar untuk merancang model sebuah sistem. Seperti bahasa-bahasa lainnya, UML juga memiliki notasi. Notasi UML merupakan sekumpulan bentuk khusus untuk menggambarkan berbagai diagram piranti lunak. Setiap bentuk memiliki makna tertentu dan UML menjelaskan bagaimana bentuk-bentuk tersebut didefinisikan. Notasi UML terutama diturunkan dari tiga notasi yang telah ada sebelumnya yaitu: Grady Booch OOD (Object-Oriented Design), Jim Rumbaugh OMT (Object Modelling Technique) dan Ivar Jacobson OOSE (Object Oriented Software Engineering). Dimulai pada bulan Oktober 1994, Booch, Rumbaugh dan Jacobson yang merupakan tiga tokoh di mana metodenya banyak digunakan, mempelopori usaha untuk penyatuan pendesainan berorientasi objek (Booch et al, 1999, pXIX). Pada tahun 1995 dirilislah UML (versi 0.8). Sejak tahun 1996 pengembangan tersebut lalu dikoordinasikan oleh Object Management Group (OMG). Sejak itulah UML menjadi standar bahasa pemodelan untuk aplikasi berorientasi objek.
2.12.2 Tujuan UML Melihat dari faktor sejarah dan pendorong terbentuknya UML ini, dapat ditarik suatu kesimpulan mengenai tujuan dibentuknya UML yang terangkum sebagai berikut:
51 •
Memberikan model yang siap pakai, bahasa pemodelan visual yang ekspresif untuk mengembangkan dan saling menukar model dengan mudah dan dapat dimengerti secara umum.
•
Memberikan bahasa pemodelan yang bebas dari berbagai bahasa pemrograman dan proses rekayasa.
2.12.3 Beberapa bagian dari UML A.
Use Case Diagram Use
Case
Diagram
menggambarkan
fungsionalitas
yang
diharapkan dari suatu sistem. Yang ditekankan adalah “apa” yang dilakukan
sistem
dan
bukan
“bagaimana”.
Sebuah
use
case
menggambarkan interaksi antara aktor dengan sistem. Aktor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan tertentu. Di bawah ini dijelaskan bagian use case: a.
Aktor Aktor menggambarkan pengguna aplikasi perangkat lunak (user). Aktor membantu memberikan suatu gambaran jelas tentang apa yang harus dikerjakan aplikasi perangkat lunak. Contohnya, sebuah aktor dapat memberikan input ke dalam dan menerima informasi dari aplikasi perangkat lunak. Aktor berinteraksi dengan use case tetapi tidak mengontrol use case. Sebuah aktor mungkin seorang manusia, perangkat keras atau sistem informasi lain.
52 Notasi aktor dengan nama aktor tersebut dibawahnya:
User Gambar 2.18 Notasi Aktor
b.
Use Case Use case menggambarkan perilaku aplikasi perangkat lunak, termasuk didalamnya interaksi antara aktor dengan aplikasi perangkat lunak tersebut. Dengan kata lain, use case adalah urutan aksi yang dilakukan oleh sistem yang menghasilkan hasil yang bernilai dan dapat dilihat oleh aktor. Use case harus merupakan “apa” yang yang dikerjakan perangkat,
bukan
“bagaimana”
aplikasi
perangkat
lunak
mengerjakannya. Suatu sistem yang kompleks memiliki banyak use case, sehingga perlu diorganisasi. Use case–use case yang saling berhubungan dapat dikelompokkan dalam use case package. Notasi use case:
Gambar 2.19 Notasi Use Case Untuk menghubungkan antara aktor dengan use case digunakan simbol
garis
yang
disebut
sebagai
relationship.
Untuk
menghubungkan use case, maka yang perlu dilakukan adalah menentukan perilaku (behavior) yang terdapat dalam sebuah use case
53 yang menunjukkan interaksi antara aktor dengan sistem. Cara yang dipakai untuk menyatakan hubungan antar use case adalah: <
> Gambar 2.20 Simbol Relationship < Sebuah use case dapat meng-include fungsionalitas dari use case lain sebagai bagian dari proses dalam dirinya. Secara umum diasumsikan bahwa use case yang di-include akan dipanggil setiap kali use case yang meng-include dieksekusi secara normal. <<extends>>
Gambar 2.21 Simbol Relationship <<extends>> Extends relationship berarti memperluas use case dasar dengan menambah behavior-behavior baru tanpa mengubah use case dasar itu sendiri. Titik di mana use case diperluas disebut sebagai extension point. Dengan adanya use case diagram maka akan membantu dalam menyusun kebutuhan sebuah sistem dan mengkomunikasikannya dengan klien.
B.
Activity Diagram Activity diagram memodelkan alur kerja (work flow) sebuah proses
bisnis dan urutan aktivitas dalam suatu proses. Diagram ini sangat mirip dengan sebuah flowchart karena dapat memodelkan sebuah alur kerja dari satu aktivitas ke aktivitas lainnya. Seringkali bermanfaat bila membuat sebuah
54 activity diagram terlebih dahulu dalam memodelkan sebuah proses untuk membantu memahami proses secara keseluruhan. Komponen utama dalam activity diagram adalah: Initial state, yaitu menyatakan awal dimulainya suatu aktivitas. Final
state,
yaitu
menyatakan
berakhirnya suatu aktivitas. State, menggambarkan aktivitas yang Buka koneksi
merepresentasikan kinerja dari suatu operasi. Control Flow, menyatakan relationship diantara
2
state.
Control
flow
mengidentifikansi kontrol yang dikirim dari state pertama ke state kedua setelah aktivitas pada state pertama selesai dijalankan. Decision, menggambarkan kontrol dari aliran yang bersifat kondisional Tabel 2.12 Tabel Komponen Utama Acivity Diagram
55 Contoh penggunaan Activity Diagram:
Activity 1
Activity 2
Gambar 2.22 Contoh Activity Diagram Pembuatan activity diagram akan sangat membantu dalam memahami alir aktivitas dari sistem yang dirancang, bagaimana masing-masing alir berawal, keputusan yang mungkin terjadi dan bagaimana mereka berakhir.
C.
Class Diagram Menunjukkan entitas yang ada pada sistem dan bagaimana entitas
tersebut berhubungan satu sama lain. Entitas tersebut memiliki atribut dan perilaku tertentu. Class diagram memperlihatkan hubungan antarkelas dan penjelasan detail tiap-tiap kelas di dalam logical view dari suatu sistem. Selama proses analisa, class diagram memperlihatkan aturan-aturan dan tanggung jawab entitas yang menentukan perilaku sistem. Selama tahap desain, class diagram berperan dalam menangkap struktur dari semua kelas yang
membentuk
arsitektur
sistem
yang
dibuat.
Class
diagram
direpresentasikan dalam bentuk kotak yang terbagi atas tiga bagian yaitu nama class, atribut dan perilaku (behavior), seperti di bawah ini:
56 Class nama Attribute: Type=Initial Value
Operation(arg list): return type
Gambar 2.23 Contoh Class Diagram
D.
Sequence Diagram Sequence diagram menggambarkan interaksi antar objek di dalam dan
di sekitar sistem (termasuk pengguna, display dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai tanggapan dari sebuah event untukl menghasilkan keluaran tertentu. Diawali dari apa yang memicu aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan keluaran yang dihasilkan. Masing-masing objek memiliki lifeline vertikal sedangkan message digambarkan secara horizontal.
E.
Statechart Diagram Merupakan diagram yang menggambarkan serangkaian state yang
dapat terjadi pada sebuah object. State dapat berubah karena adanya suatu event atau kondisi tertentu. State merupakan kondisi dimana obyek melakukan sebuah kegiatan atau sedang menunggu event. Statechart diagram digunakan
57 untuk menggambarkan behaviour yang penting dari subsistem atau sebuah obyek.
F.
Deployment Diagram Pada UML, deployment diagram menunjuk ke model hardware yang
digunakan dalam implementasi sistem, komponen yang disebarkan pada hardware, dan hubungan di antara komponen-komponen itu. Elemen-elemen yang digunakan dalam deployment diagram adalah node (ditunjukkan dengan gambar kubus), komponen (ditunjukkan dengan gambar kotak persegi panjang, dengan dua persegi panjang menonjol keluar dari sisi kiri) dan associations. Dengan kata lain, deployment diagram menunjukkan hardware untuk sistem Anda, software yang diinstall pada hardware, dan middleware yang digunakan untuk menghubungkan mesin-mesin yang terpisah satu dengan yang lainnya. Deployment/physical diagram menggambarkan detail bagaimana komponen di-deploy dalam infrastruktur sistem, di mana komponen akan terletak (pada mesin, server atau piranti keras apa), bagaimana kemampuan jaringan pada lokasi tersebut, spesifikasi server, dan hal-hal lain yang bersifat fisikal Sebuah node adalah server, workstation, atau piranti keras lain yang digunakan untuk men- deploy komponen dalam lingkungan sebenarnya. Hubungan antar node (misalnya TCP/IP) dan requirement dapat juga didefinisikan dalam diagram ini.
58 2.13
C# C# (dibaca “C Sharp”) merupakan bahasa pemrograman berorientasi objek
yang dikembangkan oleh Microsoft sebagai bagian dari inisiatif .NET, dan akhirnya disetujui sebagai sebuah standar oleh ECMA dan ISO. C# memiliki sintaks yang prosedural, berorientasi objek berdasarkan C++ yang meliputi aspek beberapa bahasa pemrograman lainnya (terutama Delphi, VB, dan Java) dengan penekanan khusus pada penyederhanaan (lebih sedikit kebutuhan simbol dibandingkan dengan C++, dan lebih
sedikit
kebutuhan
dekoratif
dibandingkan
dengan
Java).
(http://en.wikipedia.org/wiki/C_Sharp). Pendapat lain juga mengatakan bahwa C# merupakan bahasa pemrograman berorientasi objek dari Microsoft yang bertujuan untuk mengkombinasikan kekuatan komputer C++ dengan kemudahan programming Visual Basic. C# berdasarkan pada C++ dan mengandung fitur-fitur serupa yang ada pada Java. C# didesain untuk berjalan atau bekerja pada platform Microsoft .NET. Tujuan Microsoft adalah untuk memfasilitasi pertukaran informasi dan layanan melalui Web, dan memungkinkan pengembang untuk membangun aplikasi yang sangat portable. C# menyederhanakan programming melalui kegunaan XML (Extensible Markup Language) dan Simple Object Access Protocol (SOAP) yang memperbolehkan akses ke objek programming atau metode tanpa membutuhkan programmer untuk menulis kode tambahan untuk setiap langkah. Karena programmer dapat membangun dalam kode yang sudah ada, daripada menduplikasikannya secara berulang, C# diharapkannya dapat membuatnya lebih cepat dan tidak terlalu mahal untuk mendapatkan produk baru dan layanan ke pasar. (http//searchwinit.techtarget.com/sDefinition/0,,sid1_gci333873,00.html )
59 Apa itu .NET? Kita dapat menjawab pertanyaan tersebut dengan baik, dengan membandingkannya dengan Windows dan bertanya apa itu Windows kepada pengembangnya. Jawaban hal tersebut ada dua. Pertama, Windows adalah sebuah library, ini merupakan kumpulan semua function calls dalam Windows API, yang tersedia bagi Anda untuk digunakan dalam program. Fungsi ini menyediakan fiturfitur umum seperti menampilkan dialog box, multiple document interface, dan single document interface windows, mengakses fungsi-fungsi dasar seperti fitur keamanan atau komponen layanan dan sebagainya. Kedua, Windows adalah lngkungan dimana aplikasi Anda berjalan, sebaik sistem operasi itu sendiri. Pada cara yang sama, .NET adalah 2 hal. Pertama, library-nya seekstensif Windows API. Anda dapat menggunakannya untuk memanggil semua bentuk fitur yang sama telah ada atau berperan dalam sistem operasi Windows: menampilkan windows dan dialog box, memeriksa atau menguji surat kepercayaan keamanan, menjalankan layanan-layanan yang ada pada sistem operasi, membuat threads, dan sebagainya, sebaik area-area baru seperti mengakses basis data atau menghubungkan internet atau menyediakan web services. Kedua, .NET dapat menyediakan lingkungan (“.NET runtime”) di mana program Anda berjalan. Ketika koding .NET dieksekusi, ini akan menjadi .NET yang memulai koding Anda, mengatur threadthread yang berjalan, menyediakan layanan background yang bermacam-macam. Keuntungan yang diperoleh dari .NET adalah sebagai berikut: programming yang berorientasi objek, desain yang baik, kebebasan bahasa pemrograman, dukungan yang lebih baik untuk Dynamic Web Pages, akses data yang efisien, code sharing, meningkatkan keamanan, mendukung web services.
60
2.14
Java 2.14.1 Sejarah Java Java adalah bahasa pemrogaman serbaguna. Java dapat digunakan untuk membuat suatu program sebagaimana Anda membuatnya dengan bahasa seperti Pascal ataupun C++. Yang lebih menarik, Java juga mendukung sumber daya internet yang saat ini popular, yaitu World Wide Web atau yang sering disebut Web saja. Java juga mendukung aplikasi client/server, baik dalam jaringan lokal (LAN) ataupun jaringan berskala luas (WAN). Java dikembangkan oleh Sun Microsystems pada Agustus 1991, dengan nama semula Oak. Konon OAK adalah pohon semacam Jati yang terlihat dari jendela tempat pembuatnya, James Gosling, bekerja. Ada yang mengatakan bahwa Oak adalah singkatan dari ‘Object Application Kernel’, tetapi ada yang menyatakan hal itu muncul setelah nama Oak diberikan. Pada Januari 1995, karena nama Oak dianggap kurang komersial, maka diganti menjadi Java. Program Java bersifat tidak tergantung pada platform; Artinya, Java dapat dijalankan pada sembarang komputer, bahkan sembarang sistem operasi. Ketidakbergantungan terhadap platform sering dinyatakan dengan istilah portabilitas. Yang menarik, tingkat portabilitas Java tidak hanya sebatas pada program sumber (source kode), melainkan juga pada tingkat kode biner yang disebut bytecode. Dengan demikian bila Anda telah
61 mengkompilasi program Java pada komputer bersistem operasi Windows, Anda dapat menjalankan hasil kompilasi pada Macintosh secara langsung, tanpa harus mengkompile ulang. Kode yang disebut bytecode dapat dijalankan pada berbagai sistem operasi karena kode ini berbeda dengan kode mesin. Kode mesin sangat bergantung pada platform, sedangkan bytecode dapat dimengerti oleh semua platform yang telah dilengkapi interpreter Java. Mengingat bahwa hasil kompilasi Java dapat dijalankan pada sembarang sistem operasi maupun prosesor, Java sering dikatakan bersifat netral terhadap arsitektur komputer.
2.14.2 Java adalah Bahasa Pemrogaman Berorientasi Objek Sebagaimana halnya C++, salah satu bahasa pemrogaman yang mengilhami Java, Java juga merupakan bahasa pemrogaman berorientasi objek (suatu model pengembangan perangkat lunak yang saat ini sangat popular). Sebagai bahasa pemrogaman berorientasi objek, Java menggunakan kelas untuk membentuk suatu objek. Sejumlah kelas sudah tersedia dan Anda dapat
menggunakannya
dengan
mudah,
dan
bahkan
Anda
dapat
mengembangkannya lebih jauh melalui konsep pewarisan. Pewarisan adalah salah satu sifat yang ada pada bahasa pemrogaman berorientasi objek, yang memungkinkan sifat – sifat suatu objek diturunkan dengan mudah ke objek lain.
2.15
Jaringan Client Server
62 Kemunculan dari interkoneksi LAN dan LAN/WAN telah menciptakan suatu kebiasaan baru dimana dua atau lebih komputer dapat bekerja sama untuk memecahkan suatu masalah. dalam hal ini proses client/server terdiri dari suatu proses dimana perangkat keras, perangkat lunak, dan sumber data dari dua atau lebih komputer dikombinasikan untuk menyelesaikan suatu masalah atau untuk memproses suatu aplikasi tunggal. Suatu jaringan client/server memperbolehkan proses client/server; satu sisi untuk berpikir bahwa suatu jaringan client/server adalah dimana jaringan menjadi satu komputer digunakan untuk menyelesaikan suatu problem khusus atau memproses suatu aplikasi. Komputer – komputer yang termasuk dalam jaringan client/server dapat terdiri dari dari microcomputer sampai mainframe (atau bahkan supercomputer). Perangkat lunak dan sumber data yang akan dibagi antara komputer – komputer dalam jaringan client/server ditempatkan dalam suatu komputer yang dinamai server. Server mengatur sumber – sumber tersebut dalam bagian dari komputer lain (yang disebut client) yang dibaginya.