• Tidak ada hasil yang ditemukan

STRUKTUR SISTEM DAN SUB-SISTEM SISTEM MLTM BAB IV. 4.1 Struktur Sistem

N/A
N/A
Protected

Academic year: 2021

Membagikan "STRUKTUR SISTEM DAN SUB-SISTEM SISTEM MLTM BAB IV. 4.1 Struktur Sistem"

Copied!
26
0
0

Teks penuh

(1)

65

STRUKTUR SISTEM

STRUKTUR SISTEM

STRUKTUR SISTEM

STRUKTUR SISTEM

DAN

DAN

DAN

DAN

SUB

SUB

SUB

SUB----SISTEM

SISTEM

SISTEM

SISTEM

MLTM

MLTM

MLTM

MLTM

4.1 Struktur Sistem

erdasarkan masukkan dari analisis lebih lanjut keperluan sistem, struktur sistem dibagi atas lima sub-sistem, yaitu MLTM, MPKPO, POSR, Peta dan Browser dengan kawalan sistem disebut Oil Spill (lihat gambar 4.1). Peta dan Browser adalah sub-sistem yang mendukung ketiga sub-sub-sistem lain dan melayani keperluan lain pemakai. Struktur ini diawali dengan Display Sign-On Screen untuk menjalankan sistem, kemudian diikuti oleh MLTM, MPKPO, POSR, Peta dan Browser. Oil Spill menerima masukkan dari MLTM, MPKPO dan POSR. Masukkan ini oleh Oil Spill dilanjutkan ke Peta dan Browser. Oil Spill memberikan masukkan lintasan ke Peta dan alamat rujukan ke Browser. Selain itu, Peta juga memberi masukkan ke Oil Spill berupa alamat rujukan untuk diteruskan ke Browser.

Dikaitkan dengan rancangan input data, output dan antarmuka sistem (lihat bab sebelumnya), kelima sub-sistem ini berhubungan secara langsung dengan bagian-bagian yang ada. MLTM terkait erat dengan bagian data dan integrasi MLTM. MPKPO terkait erat dengan bagian penyokong OSR. POSR terkait erat dengan bagian pemantau OSR, tempat domino dan menu domino. Peta terkait erat dengan bagian menu peta, tempat peta, plot lokasi minyak dan kawalan layer

(2)

66

peta. Browser terkait erat dengan bagian menu browser dan tempat browser. Hubungan-hubungan itu dapat dilihat pada gambar 5.2.

Gambar 4.1 : Struktur sistem

Gambar 4.2 : Hubungan struktur sistem dengan rancangan Alamat rujukan Lintasan Lintasan Alamat rujukan Lintasan Lintasan Oil Spill Display Sign-On Screen POSR Peta MLTM MPKPO Browser POSR Peta MLTM MPKPO Browser

(3)

67 4.2 Sub-Sistem MLTM

4.2.1 Struktur

Sub-sistem MLTM dibagi atas tiga bagian, yaitu (i) Data Tumpahan Minyak, (ii) Lintasan dan (iii) Pantai (lihat gambar 4.3). Sub-sistem MLTM bekerja setelah menerima masukkan dari Data Tumpahan Minyak berupa parameter MLTM dan data keadaan minyak. Kemudian oleh MLTM, data ini diberikan ke bagian LINTASAN untuk diproses. Hasil pemprosesannya (lintasan dan alamat rujukan) oleh bagian LINTASAN dikembalikan lagi ke MLTM untuk diteruskan ke Oil Spill. Hasil ini dilanjutkan oleh Oil Spill ke sub-sistem Peta dan ke sub-sub-sistem Browser untuk dipaparkan sesuai dengan fungsinya masing-masing, misalnya untuk pemaparan lintasan lapisan minyak dan pantai yang terancam. Untuk memudahkan pemakai memaparkan lagi pantai yang terancam, satu bagian sub-sistem MLTM telah dibentuk, yaitu bagian Pantai. Bagian Pantai ini memberikan data ke MLTM berupa permintaan untuk mengaktifkan (highlight) lagi garis pantai yang terancam. Selanjutnya MLTM melakukan operasi spatial antara lintasan lapisan minyak dan lapisan garis pantai untuk menemukan garis pantai yang terancam dan memberikannya ke bagian Peta untuk dipaparkan.

Gambar 4.3 : Struktur sub-sistem MLTM

4.2.2 Data Objek Pergerakan Lapisan Minyak

Beberapa objek yang diturunkan dari kelas-kelas yang ada di komponen GIS disiapkan untuk memaparkan pergerakan lapisan minyak. Penyiapan data objek tersebut merupakan langkah kedua untuk mewujudkan apa yang dikatakan oleh Mark (2000) dan Radke Pantai Alamat rujukan

Lintasan Parameter MLTM

Data keadaan minyak

MLTM

Data Tumpahan Minyak

LINTASAN

Parameter MLTM Data keadaan minyak

(4)

68

et. al. (2000). Langkah ketiganya adalah pemaparan data objek pergerakan lapisan minyak. Kedua langkah ini diuraikan pada sub-bab berikut.

4.2.2.1 Penyiapan Data Objek

Objek-objek untuk pergerakan lapisan minyak itu meliputi objek : point, points, line, rectangle dan ellipse. Pt dan pt1 adalah nama variabel objek point. Pts dan crossings adalah nama variabel objek points. Ln dan ln1 adalah nama variabel objek line. Kotak dan kotak1 adalah nama variabel objek rectangle. Untuk objek ellipse sebanyak 40 variabel digunakan, yaitu sebar sampai dengan sebar39. Variabel– variabel objek tersebut dinyatakan sebagai variabel global. Pembentukan variabel-variabel objek ini dapat dilihat pada gambar 4.4.

Gambar 4.4 : Pembentukan variabel objek pergerakan lapisan minyak

4.2.2.2 Pemaparan Data Objek

Setelah data objek pergerakan lapisan minyak dibentuk dan diatur posisinya sesuai dengan pergerakan lapisan minyak, data objek ini dipaparkan di layar monitor. Untuk memaparkan data objek ini digunakan kejadian AfterTrackingLayerDraw yang diaktifkan dengan perintah TrackingLayer.Refresh True. Di dalam kejadian ini, objek ln1, sebar, ... sebar39 dipaparkan (lihat gambar 4.5). Untuk mengendalikan pemaparan pergerakan horizontal lapisan minyak digunakan variabel jumsebaran. Dengan variabel ini pemaparan objek sebar ... sebar39 hanya dilakukan apabila objek itu telah ada dan tidak mencapai daratan. Nilai variabel jumsebaran menyatakan objek sebar yang akan dipaparkan dan nilainya bertambah satu apabila satu objek sebar dibentuk. Selain itu, ada juga variabel keluar yang berguna untuk menghentikan pergerakan lapisan minyak.

Global pt, pt1 As New MapObjects.Point

Global pts, crossings As New MapObjects.Points Global ln, ln1 As New MapObjects.Line

Global kotak, kotaks As New MapObjects.Rectangle Global sebar, …, sebar39 As New MapObjects.Ellipse

(5)

69

Gambar 4.5 : Perintah yang dibuat pada kejadian AfterTrackingLayerDraw

4.2.3 Langkah-Langkah dalam Menggerakkan Lapisan Minyak Setelah objek-objek pergerakan lapisan minyak dibentuk, dilakukan pemberian nilai awal untuk beberapa data lain. Data tersebut menyangkut: (i) lokasi tumpahan minyak, (ii) waktu terjadinya tumpahan minyak, (iii) selang waktu pergerakan lapisan minyak, (iv) besar parameter angin dan arus, (v) volume minyak tertumpah, (vi) perbandingan selisih berat jenis air laut dan minyak dengan berat jenis minyak, (vii) pemberian nilai properti x dan y dari satu objek Pt untuk pembentukan lokasi awal tumpahan minyak dan (viii) pemberian nilai properti right, left, top dan bottom dari satu objek rectangle untuk pemaparan awal pergerakan horizontal minyak:

Dim sym1 As New MapObjects.Symbol Dim sym3 As New MapObjects.Symbol sym1.SymbolType = moLineSymbol sym1.Style = moSolidLine

sym1.Size = 2

sym1.Color = moWhite If Not ln1 Is Nothing Then Map1.DrawShape ln1, sym1 End If sym3.SymbolType = moFillSymbol sym3.Style = moLightGrayFill sym3.Color = moBlue sym3.Size = 1

If Not sebar Is Nothing Then If Jumsebaran = 1 Then

Set recs3 = Map1.Layers(17).SearchShape(kotak, moAreaIntersect, "")

If recs3.EOF Then

Map1.DrawShape sebar, sym3 Else: keluar = 1

End If

Else: Map1.DrawShape sebar, sym3 End If

(6)

70

Kotak1.right = Pt.X + 200; Kotak1.left = Pt.X – 200; Kotak1.top = Pt.Y + 200; Kotak1.bottom = PtY – 200.

Dengan pembentukan beberapa objek dan pemberian nilai awal data, proses pemaparan pergerakan lapisan minyak yang dinamik untuk sub-sistem MLTM siap dimulai. Langkah pertama yang dilakukan adalah penentuan keberadaan lokasi tumpahan minyak. Apakah lokasi tumpahan minyak itu berada di luar Daratan ? Jika berada di luar Daratan, maka diperiksa pula : apakah lokasi tumpahan minyak itu berada di dalam Grid ? Lihat gambar 4.6 dan 4.7 interaksinya dengan objek-objek yang ada pada komponen GIS. Dotted line yang ada pada gambar 4.6, 4.7, 4.8 dan 4.9 menunjukkan adanya pembentukan objek yang berasal dari komponen GIS. Selanjutnya jika lokasi tumpahan minyak berada di dalam Grid, maka diambil selang waktu untuk pergerakan lapisan minyak. Selagi lokasi lapisan minyak berada di dalam Grid dan keluar = 0, dilakukan hal-hal sebagai berikut:

(i) Penentuan arus dan angin di lokasi lapisan minyak berdasarkan waktu.

(ii) Perkiraan lokasi lapisan minyak selanjutnya.

(iii) Pemberian nilai properti x dan y dari objek Pt1 untuk pembentukan lokasi lapisan minyak selanjutnya dan memasukkan nilai titik ini ke dalam garis Ln.

(iv) Pemeriksaan apakah garis lintasan yang terbentuk itu bersilang dengan kotak di dalam Grid ? Jika bersilang, maka garis yang berada di luar kotak Grid yang pertama dibuang. Garis lintasan lapisan minyak yang benar adalah garis sebelumnya disambung sampai dengan titik silang tersebut. Titik silang menjadi lokasi lapisan minyak selanjutnya (lihat gambar 4.8). (v) Pemeriksaan apakah titik lokasi lapisan minyak selanjutnya

berada di dalam Daratan ? Jika berada di dalam Daratan, maka dicari titik persilangan antara garis lintasan dengan Daratan. Garis yang benar adalah garis yang terbentuk dengan titik silang Daratan. Kemudian dilakukan pemberian nilai properti dari objek Ellipse untuk memaparkan gerakan horizontal lapisan minyak dan kegiatan selanjutnya dihentikan. Lihat gambar 4.9 interaksinya dengan objek-objek pada komponen GIS.

Jika titik lokasi lapisan minyak tidak berada di dalam Daratan, maka dilakukan penghitungan waktu yang telah digunakan. Jika selang waktu dikurangi waktu yang telah dipakai lebih kecil

(7)

71

atau sama dengan 0, maka dilakukan penghitungan kembali posisi lokasi lapisan minyak selanjutnya dan pemaparan gerakan horizontal lapisan minyak.

(vi) Jika terjadi perpindahan lokasi lapisan minyak dari satu kotak ke kotak selanjutnya di dalam Grid yang ditandai dengan masih adanya waktu untuk pergerakan lapisan minyak, maka dilakukan pengaturan posisi lokasi lapisan minyak ke dalam kotak selanjutnya dengan menggunakan aturan berikut :

Pt.X = Pt1.X + 0.0000001 * deltaX Pt.Y = Pt1.Y + 0.0000001 * deltaY.

Dimana deltaX adalah besarnya pergerakan lapisan minyak setiap jam di dalam kotak terdahulu dengan arah sumbu X. DeltaY adalah besarnya pergerakan lapisan minyak setiap jam di dalam kotak terdahulu dengan arah sumbu Y.

Gambar 4.6 : Pemeriksaan lokasi lapisan minyak di dalam Daratan Y X Search Shape Layer Collection Map Control komponen GIS Map1 Lapisan daratan Pt Object moContained By Point Pt Pemakai

(8)

72

Gambar 4.7 : Pemeriksaan lokasi lapisan minyak di dalam GRID

Gambar 4.8 : Pemeriksaan garis lintasan bersilangan dengan kotak-kotak di dalam Grid

Line Ln 1 Y Remove Pt1 Object Grid Object SearchShape GetCrossing Add Parts Collection Points Add Y X Layer Collection Map Control

komponen GIS

Map1 Lapisan Grid Pt Object moContained By Point MLTM Pt Pt 1 X Ln pts Parts Y X Search Shape Layer Collection Map Control

komponen GIS

Map1 Lapisan Grid Pt Object moContained By Point Pt Pemakai

(9)

73

Gambar 4.9 : Pemeriksaan lokasi lapisan minyak selanjutnya berada di dalam daratan dan pembentukan objek ellipse

4.2.4 Algoritma

Langkah awal untuk mengimplementasikan sub-sistem MLTM di dalam lingkungan Visual Basic/Delphi/Cbuilder adalah mewujudkan rancangan input data, output dan antarmuka pemakai ke dalam satu form Visual Basic/Delphi/Cbuilder. Pewujudan ini melibatkan juga beberapa objek seperti MapObjects, HTML, FlexGrid, Menu, Text, CheckRadio, Toolbar dan botton. Langkah selanjutnya adalah mengisi properti dan metode dari satu objek dengan data dan program Visual Basic/Delphi/Cbuilder yang sesuai dengan langkah-langkah dalam menggerakkan lapisan minyak.

MapObjects Line Ellipse Pt Object moContained By Right, left, top, bottom R Remove Y Pt1 Object daratan Object SearchShape GetCrossing Add Parts Collection Points Add Y X Layer Collection Map Control Map1 Lapisan daratan Point MLTM Pt Pt 1 X pts Part Sebar Ln 1 Ln

komponen GIS

(10)

74

Ada dua fungsi dari sub-sistem MLTM yang perlu diisikan ke dalam metode dari objek botton, yaitu fungsi Lintasan dan Pantai. Fungsi Lintasan mengeluarkan informasi lintasan minyak, sedangkan fungsi Pantai mengeluarkan informasi pantai yang terancam oleh tumpahan minyak dan alamat rujukan dokumen untuk membersihkan pantai tersebut. Algoritma fungsi Lintasan dan Pantai dapat dilihat pada gambar 4.10 dan 4.11. Implementasi algoritma fungsi Lintasan ini diletakkan di dalam metode dari botton Command1_Click(), sedangkan implementasi algoritma fungsi Pantai diletakkan di dalam metode dari botton Command3_Click().

Gambar 4.10 menunjukkan bahwa algoritma fungsi Lintasan MLTM itu terdiri dari banyak modul kecil. Modul-modul kecil ini dibuat supaya kerangka dari algoritma fungsi Lintasan MLTM mudah difahami. Penjelasan fungsi masing-masing modul dapat dilihat pada tabel 4.1 dan 4.2. Selanjutnya tabel 4.3 menunjukkan hubungan antara algoritma fungsi Lintasan dengan langkah-langkah dalam menggerakkan lapisan minyak.

Dalam mengembangkan algoritma dari fungsi Lintasan dan Pantai, ada tiga hal yang dijadikan rujukan utama, yaitu (i) aturan-aturan umum dalam memprogram MLTM pada modul sebelumnya, (ii) penyiapan dan pemaparan data objek pergerakan lapisan minyak dan (iii) langkah-langkah dalam menggerakkan lapisan minyak. Ketiga rujukan ini disesuaikan dengan kemampuan integrasi Visual Basic/Delphi/Cbuilder dengan komponen GIS untuk memungkinkan pemaparan lintasan lapisan minyak secara langsung dengan menggunakan rumus (3), (4) dan (5) di dalam lingkungan Multimedia GIS, terutamanya tentang pemakaian objek point, points, line, rectangle dan ellipse. Listing 1 adalah hasil pemograman dari algoritma fungsi Lintasan MLTM.

(11)

75 INISIAL_OBJEK; BACA_DATA_TUMPAHAN_MINYAK DISPLAY_POSISI_MINYAK Set recs1=map1.Layers(17).SearchShape(pt,moContainedBy,””) If recs1.EOF Then INISIAL_WAKTU

Set recs = Map1.Layers(18).SearchShape(pt,moContainedBy,””) If Not recs.EOF Then

Keluar=0

While Not recs.EOF and Keluar = 0 AMBIL_ISI_GRID

TENTUKAN_KEBENARAN_POSISI_MINYAK_BERIKUT PEMBUATAN_GARIS_BARU; Set recs1=

Map1.layers(17).SearchShape(pt1,moContainedBy,””) If Not recs1.EOF then

TENTUKAN_TITIK_POTONG_WAKTU_TERPAKAI DISPLAY_PENYEBARAN_MINYAK; Keluar = 1 Else TENTUKAN_WAKTU_TERPAKAI; Xinterval2 = Xinterval2-waktu If Xinterval2 <= 0 then TENTUKAN_POSISI_MINYAK DISPLAY_PENYEBARAN_MINYAK; Xinterval = Xinterval2

TENTUKAN_WAKTU; Waktuke = Waktuke+1 Xinterval2 = Interval; Pt.X = pt1.X; Pt.Y = pt1.Y Else

Xinterval = Waktu; TENTUKAN_WAKTU

Ln1.Parts.Add pts

Pt.X = pt1.X + (0.0000001 * deltaX) Pt.Y = pt1.Y + (0.0000001 * deltaY) End if

Map1.TrackingLayer.Refresh True; Set recs =

Map1.Layers(18).SearchShape (pt,moContainedBy,””) End if

End While End if

End if

(12)

76

Gambar 4.11 : Algoritma fungsi Pantai

Tabel 4.1 : Modul-modul pemberi nilai awal

Modul-Modul Fungsi

INISIAL_OBJEK 1. Destroy objek line dan ellipse. 2. Mengatur kembali pengaktifan

lapisan-lapisan yang ada. 3. Mengaktifkan

Map1.TrackingLayer.Refresh BACA_DATA_TUMPAHAN_

MINYAK

Membaca data tumpahan minyak, seperti lokasi, waktu terjadi, selang waktu, volume minyak tertumpah, besar parameter angin dan arus, serta perbandingan selisih berat jenis air laut dan minyak dengan berat jenis minyak.

DISPLAY_POSISI_MINYAK 1. Mengatur kembali properti X dan Y dari satu objek point untuk lokasi minyak yang tertumpah.

2. Mengatur kembali objek rectangle yang menggambarkan lokasi minyak yang tertumpah. INISIAL_WAKTU 1. Mengatur variabel Xinterval2

dengan selang waktu.

2. Mengatur variabel waktuke untuk pengulangan Xinterval2.

If Not Kotak is Nothing then

Set recs3 = Map1.Layers(12).SearchShape (Kotak, moAreaIntersect,””)

If Not recs3.EOF then

Set shp = recs3(“shape”).Value Map1.FlashShape shp, 5

End if End if

(13)

77

Tabel 4.2 : Modul-modul proses

Modul-Modul Fungsi

AMBIL_ISI_GRID Mengatur deltaX dan deltaY dari data atribut angin dan arus berdasarkan waktu.

TENTUKAN_POS ISI_MINYAK_BE RIKUT

1. Mengatur objek point selanjutnya berdasarkan :

Pt1.X = pt.X + deltaX * interval Pt1.Y = pt.Y + deltaY * interval.

2. Mengatur objek line dengan menambahkan titik selanjutnya yang dibuat oleh fungsi (1). KEBENARAN_PO

SISI_MINYAK_BE RIKUT

Mencari titik silang dari garis lintasan lapisan minyak dan Grid. Titik silang yang pertama yang diambil, jika ada titik silang.

PEMBUATAN_G ARIS_BARU

Memperbaiki kembali garis lintasan lapisan minyak berdasarkan persilangan dengan Grid. TENTUKAN_TITI

K_POTONG_DG N_DARATAN

Mencari titik silang dari garis lintasan lapisan minyak dan Daratan sebagai pembatas gerakan lapisan minyak.

TENTUKAN_WA KTU_TERPAKAI

1. Mengatur properti X, Y dari pt1, jika terjadi persilangan garis dengan Daratan.

2. Menghitung waktu yang terpakai dengan memperhatikan pt, pt1, waktuke, interval dan Xinterval2.

DISPLAY_PENYE BARAN_MINYAK

1. Menghitung jari-jari lapisan minyak. 2. Menyiapkan objek kotak untuk paparan

lapisan minyak.

3. Mengaktifkan Map1.TrackingLayer.Refresh. TENTUKAN_POS

ISI_MINYAK

1. Mengatur kembali Xinterval2 dengan menjumlahkannya dengan waktu. 2. Mengatur objek point selanjutnya :

Pt1.X = pt.X + deltaX * interval Pt1.Y = pt.Y + deltaY * interval.

3. Mengatur objek line ln, ln1 berdasarkan titik selanjutnya yang dibuat oleh fungsi (2). TENTUKAN_WA

KTU

Menentukan jam, menit, saat pergerakan lapisan minyak.

(14)

78

Tabel 4.3 : Hubungan antara langkah-langkah dalam menggerakkan lapisan minyak dengan algoritma fungsi Lintasan

Langkah-langkah dalam

menggerakkan lapisan minyak

Algoritma fungsi lintasan

Setelah objek-objek dari komponen GIS dibentuk, dilakukan pemberian nilai awal

INISIAL_OBJEK

BACA_DATA_TUMPAHA N_MINYAK

Apakah lokasi tumpahan minyak itu berada di luar Daratan ?

If pertama Apakah lokasi tumpahan minyak itu

berada di dalam Grid ?

If kedua Selagi lokasi lapisan minyak berada di

dalam Grid dan keluar = 0, dilakukan hal-hal sebagai berikut :

While

(i) Penentuan arus dan angin di lokasi lapisan minyak berdasarkan waktu.

AMBIL_ISI_GRID

(ii) Perkiraan lokasi lapisan minyak selanjutnya.

(iii) Pengubahan nilai properti x dan y dari objek Pt1 untuk pembentukan lokasi lapisan minyak selanjutnya dan memasukkan nilai titik ini ke dalam garis Ln.

(iv) Pemeriksaan apakah garis lintasan yang terbentuk itu bersilang dengan kotak-kotak di dalam Grid ?

TENTUKAN_

KEBENARAN_POSISI_MI NYAK_BERIKUT

(v) Pemeriksaan apakah titik lokasi lapisan minyak selanjutnya berada di dalam Daratan ?... Jika benar .... Jika tidak ... If ketiga TENTUKAN_TITIK_POTO NG_DGN_DARATAN Else ketiga,

(vi) Jika terjadi perpindahan lokasi lapisan minyak dari satu kotak ke kotak selanjutnya di dalam Grid yang ditandai dengan masih adanya waktu untuk pergerakan lapisan minyak, ...

Else keempat

(15)

79

Listing 1 : Pemograman fungsi Lintasan MLTM ‘ Inisialisasi objek

GarisBersihkan InisialSebaran NormalkanMap

Map1.TrackingLayer.Refresh True

‘ Pembacaan data tumpahan minyak lokasiX = Val(Text3.Text) lokasiY = Val(Text4.Text) hari = CDate(Text1.Text) jam = CDate(Text2.Text) Ujam = Val(Mid(Text2.Text, 1, 2)) Umenit = Val(Mid(Text2.Text, 4, 2)) Udetik = Val(Mid(Text2.Text, 7, 2)) interval = CDbl(Text11.Text) / 60 f_angin = CDbl(Text7.Text) f_pasang = CDbl(Text8.Text) volum = CDbl(Text10.Text) deltarho = CDbl(Text9.Text) pt.X = lokasiX pt.Y = lokasiY kotak1.Right = pt.X + 200 kotak1.Left = pt.X - 200 kotak1.Top = pt.Y + 200 kotak1.Bottom = pt.Y – 200

‘ Titik tumpahan berada di dalam layer daratan ? Set recs1 = Map1.Layers(17).SearchShape (pt, moContainedBy, "") If recs1.EOF Then ‘ Inisialisasi waktu waktuke = 0 xinterval2 = interval keluar = 0

' Titik tumpahan berada di dalam layer grid ? Set recs = Map1.Layers(18).SearchShape (pt, moContainedBy, "")

(16)

80 Lanjutan listing 1

If Not recs.EOF Then

Set shp = recs("shape").Value While Not recs.EOF And keluar = 0 AmbilIsiGrid

‘ Tentukan posisi minyak berikut pt1.X = pt.X + deltaX

pt1.Y = pt.Y + deltaY pts.Add pt

pts.Add pt1 ln.Parts.Add pts pts.Remove 0 pts.Remove 0

‘ Cek kebenaran posisi minyak berikut Set crossings = ln.GetCrossings(shp) If crossings.Count >= 1 Then pt1.X = crossings.Item(0).X pt1.Y = crossings.Item(0).Y If pt.X = pt1.X Then MsgBox Str(pt.X) + " " + Str(pt1.X) End If Else

' MsgBox " tidak berpotongan" End If

‘ Pembuatan garis lintasn tumpahan minyak ln.Parts.Remove 0

pts.Add pt pts.Add pt1 ln.Parts.Add pts

' Titik minyak berikutnya berada di dalam layer daratan ? Set recs1 = Map1.Layers(17).SearchShape

(pt1, moContainedBy, "") If Not recs1.EOF Then

‘ Tentukan titik potong dengan layar daratan pts.Remove 0

(17)

81 Lanjutan listing 1

pts.Remove 0

Set shp1 = recs1("shape").Value

Set crossings = ln.GetCrossings(shp1) If crossings.Count >= 1 Then pt1.X = crossings.Item(0).X pt1.Y = crossings.Item(0).Y End If ln.Parts.Remove 0 pts.Add pt pts.Add pt1 ln.Parts.Add pts ln1.Parts.Add pts

‘ Tentukan waktu terpakai If deltaX <> 0 Then

waktu = Abs((pt1.X - pt.X) / deltaX) Else

waktu = Abs((pt1.Y - pt.Y) / deltaY) End If

xinterval2 = xinterval2 - waktu

waktu = (waktuke + 1) * interval * 60 - xinterval2

‘ Paparan lintasan dan sebaran minyak

angin = Sqr((deltaX * deltaX + deltaY * deltaY)) / 360

luas = 2.27*(deltarho^0.6667)*(volum^0.6667)* (waktu^0.5) luas = luas + 40 * (deltarho ^ 0.3333) * (volum ^ 0.333) * (angin ^ 1.3333) * waktu

jari = Sqr(luas / 3.14) kotak.Right = pt1.X + jari kotak.Left = pt1.X - jari kotak.Top = pt1.Y + jari kotak.Bottom = pt1.Y - jari SetSebaran Map1.TrackingLayer.Refresh True pts.Remove 0 pts.Remove 0 keluar = 1 Else

(18)

82 Lanjutan listing 1

‘ Tentukan waktu terpakai If deltaX <> 0 Then

waktu = Abs((pt1.X - pt.X) / deltaX) Else

If deltaY <> 0 Then

waktu = Abs((pt1.Y - pt.Y) / deltaY) End If

End If

xinterval2 = xinterval2 - waktu If xinterval2 <= 0 Then

‘ Tentukan posisi minyak xinterval2 = xinterval2 + waktu pts.Remove 0

pts.Remove 0 ln.Parts.Remove 0

pt1.X = pt.X + (xinterval2 * deltaX) pt1.Y = pt.Y + (xinterval2 * deltaY) pts.Add pt

pts.Add pt1 ln.Parts.Add pts ln1.Parts.Add pts

‘ Paparan lintasan dan sebaran minyak

angin = Sqr((deltaX * deltaX + deltaY * deltaY)) / 360 luas = 2.27 * (deltarho ^ 0.6667) * (volum ^ 0.6667) * (((waktuke + 1) * interval * 60) ^ 0.5)

luas = luas + 40 * (deltarho ^ 0.3333) * (volum ^ 0.333) * (angin ^ 1.3333) * ((waktuke + 1)* interval * 60) jari = Sqr(luas / 3.14)

kotak.Right = pt1.X + jari kotak.Left = pt1.X - jari kotak.Top = pt1.Y + jari kotak.Bottom = pt1.Y - jari SetSebaran

xinterval = xinterval2 TentukanWaktu

(19)

83 Lanjutan listing 1 xinterval2 = interval Else xinterval = waktu TentukanWaktu ln1.Parts.Add pts End If pts.Remove 0 pts.Remove 0 ln.Parts.Remove 0

If xinterval2 = interval Then pt.X = pt1.X

pt.Y = pt1.Y Else

pt.X = pt1.X + (0.0000001 * deltaX) pt.Y = pt1.Y + (0.0000001 * deltaY) End If

Map1.TrackingLayer.Refresh True

' Tumpahan minyak berada di dalam layer grid ? Set recs = Map1.Layers(18).SearchShape

(pt, moContainedBy, "") If Not recs.EOF Then

Set shp = recs("shape").Value PauseTime = 0.2 ' Set duration. Start = Timer ' Set start time.

Do While Timer < Start + PauseTime Loop

End If End If Wend

‘ Tampilan dokumen pantai terancam tumpahan minyak Set recs3 = Map1.Layers(12).SearchShape

(kotak, moAreaIntersect, "") If Not recs3.EOF Then

Set shp = recs3("shape").Value If Len(recs3("htm").Value) > 0 Then

(20)

84 Lanjutan listing 1 Else WebBrowser1.Navigate2 ("f:\oilspill\data\htm\sorry.htm") End If Map1.FlashShape shp, 5 End If End If End If ‘---akhir listing 1...

(21)

85 4.3 Sub-sistem Peta

4.3.1 Struktur

Sub-sistem Peta merupakan satu kelompok fungsi yang ditujukan untuk mengendalikan peta atau data spatial. Sub-sistem ini menampung fungsi-fungsi yang melakukan operasi spatial analisis untuk melayani keperluan lain pemakai. Ada sebelas fungsi yang berada di bawah sub-sistem ini (lihat gambar 4.12). Kesebelas fungsi itu adalah (i) Display, (ii) Normalize, (iii) Plot, (iv) Minimize, (v) Print, (vi) Zoom, (vii) Grab, (viii) HyperMap, (ix) Oil Location, (x) Info dan (xi) FullExtent.

Gambar 4.12 : Struktur sub-sistem Peta

Fungsi Display, Normalize, Minimize dan Print adalah fungsi yang terletak pada bagian kawalan layer peta. Kelompok fungsi ini menjawab keperluan pemakai yang diungkapkan oleh NOAA (2000), yaitu (i) mengenal pasti makhluk hidup atau sumber yang terancam secara on-the-fly, (ii) pertanyaan biologi dan (iii) menghasilkan peta. Fungsi Display memberikan masukkan ke Peta berupa data lapisan yang dapat dipaparkan. Fungsi Normalize memberikan masukkan ke Peta berupa data semua lapisan dapat dipaparkan. Fungsi Minimize memberikan masukkan berupa data lapisan : Daratan, Grid dan Garis Pantai yang dapat dipaparkan. Fungsi Print adalah untuk mencetak peta yang ada di dalam bagian tempat peta.

print Full extent X,Y X2,Y2 X1,Y1 X,Y X,Y X,Y

Lapisan Lapisan Lapisan

X,Y

Peta

Display Normalize Plot Minimize Print

HyperMap Oil Location Info Full Extent Grab Zoom

(22)

86

Fungsi Zoom, Grab, HyperMap, Oil Location, Info dan FullExtent adalah fungsi yang berada pada bagian menu peta. Fungsi HyperMap dan Info menjawab keperluan pemakai rujukan dokumen. Fungsi Oil Location menjawab keperluan pemakai penentuan lokasi tumpahan.

Fungsi Plot adalah fungsi yang terletak pada bagian plot lokasi minyak. Fungsi ini bersama fungsi Oil Location menjawab keperluan pemakai penentuan lokasi tumpahan minyak dan manajemen kejadian. Keperluan pemakai lain berupa manajemen kejadian juga dilakukan oleh bagian Data Tumpahan Minyak yang ada pada sub-sistem MLTM, MPKPO dan POSR. Data Tumpahan Minyak ini terletak pada bagian data dan integrasi MLTM.

4.3.2 Fungsi

4.3.2.1 Fungsi Display

Peta yang dapat dipaparkan adalah fungsi dari objek CheckBox. Jika CheckBox bernilai 1 atau true, maka peta yang berhubungan dengan CheckBox tersebut akan dipaparkan. Pemaparan ini merupakan pemberian nilai 1 atau true pada properti visible dari lapisan di mana peta itu diletakkan. Sebagai contoh : jika Checkbox1 yang berhubungan dengan lapisan pertama bernilai 1, maka Map1.layers(0).visible bernilai True atau sebaliknya Map1.layers(0).visible bernilai False. Dengan perintah Map1.Refresh, lapisan pertama akan dipaparkan atau dipadamkan tergantung kepada nilai dari Map1.layers(0).visible. Untuk mewujudkan fungsi ini, tiga belas CheckBox telah dibuat (lihat bab sebelumnya). Fungsi Display ini dilaksanakan di dalam metode dari botton Command7_ Click().

4.3.2.2 Fungsi Normalize

Fungsi Normalize adalah fungsi untuk memaparkan semua lapisan kecuali lapisan Hidrografi. Perintah-perintah yang digunakan adalah semua lapisan, mulai lapisan = 0 sampai dengan lapisan = 18 diberi nilai true : Map1. Layers(layer).visible true, khusus untuk lapisan = 14 diberi nilai false : Map1.Layers(14).visible false, sedangkan CheckBox yang terkait dengan masing-masing lapisan diberi nilai 1. Implementasi fungsi ini diletakkan di dalam metode dari botton Command6_Click().

(23)

87 4.3.2.3 Fungsi Minimize

Fungsi Minimize adalah fungsi untuk memaparkan peta Negeri Perak yang tidak dilengkapi dengan sumber-sumber yang ada di lingkungan pantai. Lapisan yang diberi nilai satu properti visible-nya adalah lapisan 11,13,15,16 dan 17 (lihat gambar 4.13). Lapisan lain properti visible-nya diberi nilai 0, sedangkan CheckBox yang terkait dengan masing-masing lapisan 11,13,15,16 dan 17 diberi nilai 1. Implementasi fungsi ini diletakkan di dalam metode dari botton Command4_Click().

Gambar 4.13 : Pemberian nilai properti visible lapisan 11, .... 17

4.3.2.4 Fungsi Print

Fungsi Print adalah fungsi untuk mencetak apa yang dipaparkan di tempat peta. Apa yang dipaparkan di tempat peta adalah lapisan-lapisan yang properti visible-nya bernilai satu. Dengan perintah berupa : Map1.PrintMap “MyMap””, ””, True sebuah peta yang terdiri dari lapisan yang properti visible-nya bernilai satu akan dicetak. Implementasi fungsi ini diletakkan di dalam metode dari botton Command8_Click().

4.3.2.5 Fungsi-Fungsi pada Menu Peta

Ada enam fungsi yang ada pada menu Peta. Keenam fungsi ini diimplementasikan di dalam satu objek ToolBar. ToolBar yang pertama digunakan untuk implementasi fungsi Zoom. ToolBar yang kedua digunakan untuk implementasi fungsi Grab. ToolBar yang ketiga digunakan untuk implementasi fungsi HyperMap. ToolBar yang keempat digunakan untuk implementasi fungsi OilLocation. ToolBar yang kelima digunakan untuk implementasi fungsi Info. ToolBar yang keenam digunakan untuk implementasi fungsi FullExtent. Pengaktifan

Map1.Layers(11).visible = true Map1.Layers(13).visible = true Map1.Layers(15).visible = true Map1.Layers(16).visible = true Map1.Layers(17).visible = true

(24)

88

fungsi-fungsi ini dilakukan dengan menggunakan metode MouseDown dari Map1. Jika mouse ditekan, dilakukan pemeriksaan nilai dari masing-masing botton yang ada pada ToolBar. Jika botton tersebut bernilai satu, maka perintah yang ada di dalam botton tersebut dijalankan. Lihat gambar 4.14 enam fungsi pada menu peta.

Gambar 4.14 : Enam fungsi pada menu Peta

Fungsi HyperMap adalah fungsi untuk mengaktifkan objek yang dipilih oleh pemakai dan memaparkan rujukan dokumennya. Fungsi ini dilaksanakan dengan menggunakan algoritma berikut:

1. Pembentukan titik dari objek yang akan dicari. Set p = Map1.ToMapPoint (X,Y).

2. Penentuan lapisan aktif, tempat mencari objek yang diinginkan oleh pemakai. Untuk menentukan lapisan yang aktif dilakukan pemeriksaan nilai=1 dari objek OptionBox masing-masing lapisan yang ada pada bagian kawalan layer peta. Kemudian dilakukan pencarian objek di dalam lapisan yang aktif tersebut. 3. Jika ditemukan objek yang diinginkan oleh pemakai, rujukan

dokumen dari objek itu dipaparkan dengan menggunakan objek HTML.

WebBrowser1.Navigate2 recs(“htm”).value.

Kemudian objek yang diinginkan oleh pemakai diaktifkan. Map1.FlashShape shp,7.

If ToolBar1.Button(1).value = 1 then

Map1.Extent = Map1.TrackingRectangle Else If ToolBar1.Button(2).value = 1 then Map1.Pan

If ToolBar1.Button(3).value = 1 then HyperMap

Else If ToolBar1.Button(4).value = 1 then Set pt = Map1.ToMapPoint (X,Y) Text3.Text = pt.X

Text4.Text = pt.Y

Map1.TrackingLayer.Refresh True Else If ToolBar1.Button(5).value = 1 then Info

Else If ToolBar1.Button(6).value = 1 then Map1.Extent = Map1.FullExtent End If

(25)

89

Fungsi Info adalah fungsi untuk menampilkan isi medan name dari atribut satu lapisan yang aktif. Fungsi ini menggunakan algoritma yang hampir sama dengan algoritma fungsi HyperMap. Perbedaan kedua algoritma ini terletak pada langkah ketiga. Fungsi HyperMap menggunakan objek HTML untuk menampilkan rujukan dokumen. Fungsi Info dapat menggunakan perintah MSGBOX recs(“name”). value, jika mengunakan VB.

4.3.2.6 Fungsi Plot

Fungsi plot adalah fungsi untuk menentukan lokasi minyak yang tertumpah. Data lokasi minyak yang tertumpah itu dimasukkan oleh pemakai. Kemudian fungsi ini akan membuat satu objek titik di peta. Adapun algoritma fungsi ini dapat dilihat pada gambar 4.15. Bentuk lengkap fungsi ini dimasukkan ke dalam metode dari botton Command10_Click().

Gambar 4.15 : Algoritma fungsi Plot

4.4 Sub-Sistem Browser 4.4.1 Struktur

Sub-sistem Browser adalah sub-sistem yang berfungsi untuk memaparkan rujukan dokumen. Sub-sistem ini terdiri dari lima bagian, yaitu (i) Enter, (ii) Next, (iii) Previous, (iv) Home dan (v) Search (lihat gambar 4.16). Bagian ini adalah fungsi-fungsi dasar dari satu penjelajah laman web. Fungsi Enter berguna untuk pergi ke alamat dokumen. Fungsi Next berguna untuk pergi ke lembaran selanjutnya. Fungsi Previous berguna untuk kembali ke lembaran terdahulu. Fungsi Home berguna untuk kembali ke lembaran awal Browser. Fungsi Search berguna untuk mencari rujukan dokumen di Internet. Fungsi-fungsi ini semua terletak pada bagian rancangan input data, output dan antarmuka sistem : menu browser.

LokasiX = Val(Text6.text) LokasiY = Val (Text12.text) Pt1.X = lokasiX

Pt1.Y = lokasiY

(26)

90

Gambar 4.16 : Struktur sub-sistem Browser

4.4.2 Fungsi

Sub-sistem Browser yang dibuat menggunakan librari HTML. Beberapa fungsi dasar dari satu browser Internet diambil. Fungsi yang diambil itu meliputi Enter, Next, Previous, Home dan Search. Dengan kemampuan yang ada pada librari HTML, satu lingkungan Multimedia didapatkan. Kemampuan yang didapati itu meliputi (i) manajemen HTML dan (ii) manajemen ActiveX meliputi perangkat lunak Ms PowerPoint, PDF, Macromedia Flash dan lain-lain. Dengan kemampuan ini, keperluan rujukan dokumen sistem sudah terpenuhi.

Beberapa perintah dari librari HTML ini digunakan. Perintah WebBrowser1.Navigate2 (Text13.Text) digunakan untuk implementasi fungsi Enter. Perintah : WebBrowser1. GoBack digunakan untuk implementasi fungsi Previous. Perintah: WebBrowser1.GoForward digunakan untuk implementasi fungsi Next. Perintah: WebBrowser1.GoHome digunakan untuk implementasi fungsi Home. Perintah: WebBrowser1.GoSearch digunakan untuk implementasi fungsi Search. Masing-masing perintah tersebut dimasukkan ke dalam metode dari botton Command13_Click(), Command14_Click(), … , dan Command17_Click().

Next

Enter Previous Home Search

Browser

Gambar

Gambar 4.1 : Struktur sistem
Gambar 4.3 : Struktur sub-sistem MLTM
Gambar 4.5 : Perintah yang dibuat pada kejadian  AfterTrackingLayerDraw
Gambar 4.6 : Pemeriksaan lokasi lapisan minyak di dalam Daratan Y X Search Shape Layer Collection Map Control komponen GISMap1 Lapisan daratan Pt Object moContained By Point Pt Pemakai
+7

Referensi

Dokumen terkait

Penelitian ini menggunakan model DEA CCR primal input-oriented, dimana model ini bertujuan untuk mengurangi jumlah input yang digunakan agar dapat mendapatkan hasil output

Berdasarkan hasil pembahasan tersebut dapat disimpulkan bahwa perlakuan permukaan dengan teknik nitridasi ion pada material AlSiCu dengan rentang tekanan 0,8 mbar sampai dengan

Semenjak didirikan HS Silver sudah menjadi anggota Koperasi Produksi dan Pengusaha Perak Yogyakarta (KP3Y). Pada tahun 1965 HS Silver membuka artshop di Jl. Untuk

1) Tahu (Know) di artikan sebagai mengingat suatu materi yang telah dipelajari sebelumnya.masuk ke dalam pengetahuan tingkat ini adalah mengingat kembali (recall) sesuatu

Banyaknya industri yang berdiri dan asam asetat yang merupakan bahan yang banyak digunakan dalam industri membuat kebutuhan akan asam asetat tiap tahunnya

Setelah melalui tahap kedua, maka langkah selanjutnya adalah pembuatan graf, kata benda yang dipilih sebagai konsep akan diberi label dan digunakan sebagai verteks

Antara khidmat yang beliau berikan kepada karya tasawuf ialah mentakhrijkan hadis-hadis kitab Ihya’ ‘Ulum al-Din oleh Imam al- Ghazali.. Namun, al-Zirikli hanya menyebut

Pengelolaan Keuangan Badan Layanan Umum (Lembaran Negara Republik Indonesia Tahun 2005 Nomor 48 Tambahan Lembaran Negara Republik Indonesia Nomor 4502) sebagaimana telah