LAMPIRAN A : LISTING PROGRAM
0-Daerah Tsunami 'Membuat label button '----------------------aDialogDoc = av.GetProject.FindDoc("Kontrol Pencarian Rute") aGraphicList = aDialogDoc.GetGraphics teksline1 = aGraphicList.FindByName("tekslineradius") cteksline1 = teksline1.GetControl nilairadius= cteksline1.GetText if(nilairadius.IsNumber) then cteksline1.SetEnabled(false) '-----------------------------------------------------' 'Memproses/mendapatkan daerah/titik yg terkena tsunami' '-----------------------------------------------------' Av.Run("FngsSelectDaerahTsunami",nilairadius) theView objJalanEvakuasi objJalanEvakuasiVTab fieldName
= = = =
av.GetProject.FindDoc("Peta Daerah Belawan") theView.FindTheme("Titik kumpul.shp") objjalanevakuasi.GetFTab objJalanEvakuasiVTab.FindField("Name")
listDaerahBahaya = List.Make objBitmap = objJalanEvakuasiVTab.GetSelection objEkspresi = "([Status]=""bahaya"")" objJalanEvakuasiVTab.Query(objEkspresi,objBitmap, #VTAB_SELTYPE_NEW) objJalanEvakuasiVTab.UpdateSelection for each i in objJalanEvakuasiVTab.GetSelection kawasan = objJalanEvakuasiVTab.ReturnValue(fieldName, i) listDaerahBahaya.Add(kawasan) end jumlahDaerahBahaya = listDaerahBahaya.Count teks1 = aGraphicList.FindByName("teks1") cteks1 = teks1.GetControl cteks1.SetLabel("Daerah yang rawan nilairadius++" km dari titik acuan")
terkena
tsunami
"++
teks2 = aGraphicList.FindByName("teks2") cteks1 = teks2.GetControl cteks1.SetLabel("Daerah yang rawan terkena tsunami") '-----------------------------------------------' 'Menampilkan button untuk mencari jalur evakuasi' '-----------------------------------------------' layY = -82.59 '2.60 layButX = -0.50 '0.28 layLabX = -0.565 '0.06
Universitas Sumatera Utara
for each isi in 0..(jumlahDaerahBahaya-1) nilaiisi
= listDaerahBahaya.Get(isi)
namaLabBut = "Cari Rute Kawasan "++nilaiisi aLabelButton = LabelButton.Make aLabelButton.SetLabel(namaLabBut) aLabelButton.SetClick("0-FngsClickButton") aGraphicControl = GraphicControl.Make(aLabelButton, Rect.Make(layButX@layY,
[email protected])) aGraphicList.AddName(aGraphicControl) aGraphicControl.SetEditable(false) '---------------------------------------------------' ' Mengambil nama labelbutton dan memasukkan ke list ' '---------------------------------------------------' clabelBut = aGraphicControl.GetControl namaLabelBut = "lab"+nilaiisi clabelButName = clabelBut.GetName namaLab = "Daerah"++nilaiisi aTextLabel = TextLabel.Make aTextLabel.SetLabel(namaLab) aGraphicControl2 = GraphicControl.Make(aTextLabel, Rect.Make(layLabX@layY,
[email protected])) aGraphicList.AddName(aGraphicControl2) namaLabTeks cteks cteksName
= "Kawasan "+nilaiisi
= aGraphicControl2.GetControl = cteks.GetName
System.RefreshWindows PropWin.The.Update(aGraphicList,aGraphicControl) PropWin.The.Update(aGraphicList,aGraphicControl2) layY = layY - 0.027 end else MsgBox.Error("Radius tsunami angka","Kesalahan Input Data") end
yang
diinputkan
harus
berupa
0-DetailsButtonRute aDialogDoc = Av.GetProject.FindDoc("Kontrol Pencarian Rute") dialGraphic = aDialogDoc.GetGraphics namaButton = SELF.Get(1) labButton = SELF.Get(0) pemisah = " " listlabButtonLabel = labButton.AsTokens(pemisah) cGraphic koordinat bawahK kiriK
= = = =
dialGraphic.FindByName(namaButton) cGraphic.GetBounds koordinat.GetBottom koordinat.GetLeft
Universitas Sumatera Utara
luas
= cGraphic.GetExtent
namaLabBut = "Detail "+listlabButtonLabel.Get(1)++listlabButtonLabel.Get(2)++listlabButton Label.Get(3) aLabelButton = LabelButton.Make aLabelButton.SetLabel(namaLabBut) aLabelButton.SetClick("0-FngsClickDetail") aGraphicControl = GraphicControl.Make(aLabelButton,koordinat) dialGraphic.AddName(aGraphicControl) aGraphicControl.SetEditable(false)
0-DetailsComboBoxlegend adial = Av.GetProject.FindDoc("Legenda") dial = adial.GetGraphics comboBox1 = dial.FindByName("box_legenda") labelKeterangan = dial.FindByName("labelketerangan") labelKtrnganDetail = dial.FindByName("labelktrnganDetail") viewpeta = Av.GetProject.FindDoc("Peta Daerah Belawan") theTheme = viewpeta.GetActiveThemes for each i in theTheme i.SetActive(false) end cBox1 = comboBox1.GetControl lKet = labelketerangan.GetControl lKetDet = labelKtrnganDetail.GetControl legenda = cBox1.GetSelection if (legenda = "Titik Kumpul") then lKet.SetLabel("Titik awal pencarian rute terpendek untuk digunakan "+ NL+"sebagai jalur evakuasi tsunami") lKetDet.SetLabel(" ") themeAktif = viewpeta.FindTheme("Titik kumpul.shp") themeAktif.SetActive(true) elseif (legenda = "Titik Potong") then lKet.SetLabel("Titik yang berfungsi sebagai titik tujuan dari pencarian rute"+NL+"terpendek sebagai jalur evakuasi tsunami") lKetDet.SetLabel(" ") themeAktif = viewpeta.FindTheme("Titik potong.shp") themeAktif.SetActive(true) elseif (legenda = "Pusat Radius Tsunami") then lKet.SetLabel("Titik yang berfungsi sebagai acuan radius tsunami ke daratan") lKetDet.SetLabel(" ") themeAktif = viewpeta.FindTheme("Pusat radius tsunami.shp") themeAktif.SetActive(true) elseif (legenda = "Jalan Pilihan") then lKet.SetLabel("Jalan yang diproses dalam pencarian rute terpendek "+NL+"untuk jalur evakuasi tsunami") lKetDet.SetLabel(" ") themeAktif = viewpeta.FindTheme("Jalan Pilihan.shp") themeAktif.SetActive(true) elseif (legenda = "Bangunan" ) then lKet.SetLabel("Daerah yang didiami oleh penduduk "+NL+"baik itu perkampungan/perumahan ataupun "+NL+"kawasan industri")
Universitas Sumatera Utara
lKetDet.SetLabel(" ") themeAktif = viewpeta.FindTheme("Bangunan.shp") themeAktif.SetActive(true) elseif (legenda = "Ruang Hijau" ) then lKet.SetLabel("Daerah yang masih belum didiami oleh penduduk") lKetDet.SetLabel(" ") themeAktif = viewpeta.FindTheme("Ruang hijau.shp") themeAktif.SetActive(true) elseif (legenda = "Batas Luar" ) then lKet.SetLabel("Daerah yang berada diluar kawasan kerja sistem") lKetDet.SetLabel(" ") themeAktif = viewpeta.FindTheme("Batas luar.shp") themeAktif.SetActive(true) end
0-FngsClickButton aDialogDoc = Av.GetProject.FindDoc("Kontrol Pencarian Rute") dialGraphic = aDialogDoc.GetGraphics labButtonLabel = SELF.GetLabel namaButtonLabel = SELF.GetName '------------------------------------' 'Membuat Iterasi dengan tabel iterasi' '------------------------------------' tabelIterasi = Av.GetProject.FindDoc("iterasi.dbf").GetVTab fieldIterasi = tabelIterasi.FindField("iterasi") iterasi iterasi
= tabelIterasi.ReturnValue(fieldIterasi,0) = iterasi + 1
tabelIterasi.SetEditable(true) tabelIterasi.SetValue(fieldIterasi, 0, iterasi) tabelIterasi.SetEditable(false) pemisah = " " listlabButtonLabel = labButtonLabel.AsTokens(pemisah) titikAwal = listlabButtonLabel.Get(3) listInput = {titikAwal, iterasi} keputusanAkhir = Av.Run("Script14",listInput) finalDecision = keputusanAkhir.Get(0) if(finalDecision = 1) then '------------------------' 'Mengaktifkan button cari' '------------------------' 'SELF.SetEnabled(false) '---------------------' 'membuat Button Detail' '---------------------' listProButton = {labButtonLabel,namaButtonLabel} Av.Run("0-DetailsButtonRute",listProButton) '---------------------' 'Membuat Teks berhasil'
Universitas Sumatera Utara
'---------------------' cGraphic = dialGraphic.FindByName(namaButtonLabel) koordinat bawahK kiriK
= cGraphic.GetBounds = koordinat.GetBottom = koordinat.GetLeft
kiriTeks = kiriK + 0.138 bawahTeks = bawahK + 0.005 teks = TextLabel.Make teks.SetLabel("berhasil") aGraphicControl2 = Rect.Make(kiriTeks@bawahTeks,
[email protected])) dialGraphic.AddName(aGraphicControl2)
GraphicControl.Make(teks,
'---------------------------------------' 'Membuat cloning untuk theme yg berhasil' '---------------------------------------' Av.Run("FngsCloningTheme",iterasi) '-----------------------------' 'Menzoom ke rute yang terpilih' '-----------------------------' Av.Run("FngsZoomToRute", iterasi) '--------------------------------------' 'Membuat lingkaran warna untuk berhasil' '--------------------------------------' mycolorlist = Av.Run("FngsListWarna",nil) b = mycolorlist.Get(iterasi) warna = Color.Make warna.SetRGBList(b) titikX titikY titik gratitik
= = = =
kiriTeks + 0.065 bawahTeks + 0.01 Point.Make(titikX,titikY) GraphicShape.Make(titik)
dialGraphic.Add(gratitik) simboltitik = Symbol.Make(#SYMBOL_MARKER) simboltitik.SetStyle(#BASICMARKER_STYLE_PATTERN) simboltitik.SetCharacter(7) simboltitik.SetColor(warna) simboltitik.SetSize(26) gratitik.SetSymbol(simboltitik) aDialogDoc.Invalidate '---------------------------‘ 'Buat button ulang pencarian' '---------------------------' namalabelulang = "Ulangi "+listlabButtonLabel.Get(3) kiriTeks = kiriK + 0.132 bawahTeks = bawahK + 0.001 labelUlang = LabelButton.Make labelUlang.SetLabel(namalabelulang) labelUlang.SetClick("0-FngsClickUlang")
Universitas Sumatera Utara
aGraphicControl3 = GraphicControl.Make(labelUlang, Rect.Make(kiriTeks@bawahTeks,
[email protected])) dialGraphic.AddName(aGraphicControl3) aGraphicControl3.SetEditable(false) System.RefreshWindows PropWin.The.Update(dialGraphic,aGraphicControl2) else '------------------' 'Mengurangi iterasi' '------------------' iterasi = tabelIterasi.ReturnValue(fieldIterasi,0) iterasi = iterasi - 1 tabelIterasi.SetEditable(true) tabelIterasi.SetValue(fieldIterasi, 0, iterasi) tabelIterasi.SetEditable(false) MsgBox.Info("Rute tidak ditemukan, coba sekali lagi ","Informasi") end
0-FngsClickDetail labButtonLabel pemisah listlabButtonLabel titikAwal
= = = =
titikAwal titikAwal
= titikAwal.AsString = titikAwal.Quote
tabelHasilRute fieldList = fieldNama = fieldPanjang = fieldRute = objBitmap
SELF.GetLabel " " labButtonLabel.AsTokens(pemisah) listlabButtonLabel.Get(3)
= Av.GetProject.FindDoc("tabelhasillist.dbf").GetVTab tabelHasilRute.FindField("List") tabelHasilRute.FindField("name") tabelHasilRute.FindField("panjang") tabelHasilRute.FindField("Rute")
= tabelHasilRute.GetSelection
objEkspresi = "([Name]="+titikAwal+")" tabelHasilRute.Query(objEkspresi,objBitmap, #VTAB_SELTYPE_NEW) tabelHasilRute.UpdateSelection for each i in tabelHasilRute.GetSelection nilailist = tabelHasilRute.ReturnValue(fieldList, i) nilaipanjang = tabelHasilRute.ReturnValue(fieldPanjang, i) nilairute = tabelHasilRute.ReturnValue(fieldRute, i) end titikAwal = titikAwal.Unquote 'Theme Rute__ '-----------theView themeRute
= Av.GetProject.FindDoc("Peta Daerah Belawan") = "Rute"++nilailist.AsString
Universitas Sumatera Utara
tabelRute = Av.GetProject.FindDoc("Peta Belawan").FindTheme(themeRute).GetFTab
Daerah
'Menonaktifkan dan menginvisiblekan theme rute_ yang lain dan jalan pilihan, lalu mengaktifkan theme rute_ dan '----------------------------------------------------theTheme = theView.GetActiveThemes tabeliterasi = Av.GetProject.FindDoc("iterasi.dbf").GetVTab fielditerasi = tabeliterasi.FindField("iterasi") iterasi = tabeliterasi.ReturnValue(fielditerasi,0) for each i in 1..iterasi namathemeRuteLain = "Rute"++i.AsString themeRutenya = theView.FindTheme(namathemeRuteLain) themeRutenya.SetVisible(false) themeRutenya.SetActive(false) end themeJalanpilihan = theView.FindTheme("Jalan pilihan.shp") themeJalanpilihan.SetVisible(false) for each j in theTheme namathemeLain = j.AsString themeLainnya = theView.FindTheme(namathemeLain) themeLainnya.SetActive(false) end themeJalanBaku = theView.FindTheme("Jalan pilihan baku.shp") themeJalanBaku.SetVisible(true) namathemeRute themeRute
= "Rute"++nilailist.AsString = theView.FindTheme(namathemeRute)
themeRute.SetVisible(true) themeRute.SetActive(true) theView.Invalidate teks = "Kawasan "+titikAwal+NL+"Rute Terpendek "+nilairute+NL+"Panjang Rute = "+nilaipanjang.AsString+" meter"
=
MsgBox.Info(teks,"Data Rute Terpendek") '-----------------------'Membuat textbox keterangan '-----------------------adial = Av.GetProject.FindDoc("Kontrol Pencarian Rute") dial = adial.GetGraphics labelKtrnganDetail = dial.FindByName("textboxket") lKetDet = labelKtrnganDetail.GetControl lKetDet.SetText(teks)
0-FngsClickUlang
Universitas Sumatera Utara
nilaiBox = MsgBox.YesNo("Ingin rute?","Pernyataan",false)
mengulang
pencarian
if(nilaiBox=true) then Av.Run("0-FngsUlangPencarianHapus",nil) else MsgBox.Info("true "+nilaiBox.AsString,"") Av.Run("0-FngsUlangHapusButton", nil) end
0-FngsUlangHapusButton '------------------------------------------' 'Menghapus label berhasil dan bulatan warna' '------------------------------------------' aDialogDoc = Av.GetProject.FindDoc("Kontrol Pencarian Rute") dialGraphic = aDialogDoc.GetGraphics jml = dialGraphic.Count for each isi in (jml-1)..(jml-3) by (-1) componentGraphic = dialGraphic.Get(isi) dialGraphic.RemoveGraphic(componentGraphic) end
0-FngsUlangPancarianHapus theView
= Av.GetProject.FindDoc("Peta Daerah Belawan")
tabelIterasi = Av.GetProject.FindDoc("iterasi.dbf").GetVtab fielditerasi = tabelIterasi.FindField("iterasi") nilaiIterasi = tabelIterasi.ReturnValue(FieldIterasi,0) '-----------------' 'Hapus Theme Rute_' '-----------------' namaTheme = "Rute "+nilaiIterasi.AsString theTheme = theView.FindTheme(namaTheme) theView.DeleteTheme(theTheme) '-----------------------' 'menolkan nilai kolon f_' '-----------------------' tabelJalanPilihan = Av.GetProject.FindDoc("Jalan pilihan.dbf").GetVtab namaField = "f"+nilaiIterasi.AsString fieldnama = tabelJalanPilihan.FindField(namaField) tabelJalanPilihan.SetEditable(true) for each i in tabelJalanPilihan tabelJalanPilihan.SetValue(fieldnama, i, 0) end fieldflag = tabelJalanPilihan.FindField("flag") objBitmap = tabelJalanPilihan.GetSelection objEkspresi = "([flag]= "+nilaiIterasi.asString+")" tabelJalanPilihan.Query(objEkspresi,objBitmap, #VTAB_SELTYPE_NEW) tabelJalanPilihan.UpdateSelection
Universitas Sumatera Utara
for each j in tabelJalanPilihan.GetSelection tabelJalanPilihan.SetValue(fieldflag, j, 0) end tabelJalanPilihan.SetEditable(false) '----------------------------' 'Menolkan tabel titik simpang' '----------------------------' tabelTS = Av.GetProject.FindDoc("titik simpang.dbf").GetVtab fieldflagTS = tabelTS.FindField("Flag") objBitmap3 = tabelTS.GetSelection objEkspresi3 = "([flag]= "+nilaiIterasi.asString+")" tabelTS.Query(objEkspresi3,objBitmap3, #VTAB_SELTYPE_NEW) tabelTS.UpdateSelection tabelTS.SetEditable(true) for each o in tabelTS.GetSelection tabelTS.SetValue(fieldflagTS, o, 0) end tabelTS.SetEditable(false) '----------------------------' 'Menolkan tabel titik potong ' '----------------------------' tabelTP = Av.GetProject.FindDoc("Titik potong.dbf").GetVtab fieldflagTP = tabelTP.FindField("Flag") objBitmap4 = tabelTP.GetSelection objEkspresi4 = "([flag]= "+nilaiIterasi.asString+")" tabelTP.Query(objEkspresi4,objBitmap4, #VTAB_SELTYPE_NEW) tabelTP.UpdateSelection tabelTP.SetEditable(true) for each p in tabelTP.GetSelection tabelTP.SetValue(fieldflagTP, p, 0) end tabelTP.SetEditable(false) '---------------------' 'kurangi nilai iterasi' '---------------------' nilaiakhiriterasi = nilaiIterasi-1 tabelIterasi.SetEditable(true) tabelIterasi.SetValue(fieldIterasi,0,nilaiakhiriterasi) tabelIterasi.SetEditable(false) '-------------------------------------------------'Hapus isi tabel hasillist dan rute hasil pencarian '-------------------------------------------------tabelhasillist = Av.GetProject.FindDoc("tabelhasillist.dbf").GetVTab tabelruteHasil = Av.GetProject.FindDoc("Rute Hasil Pencarian.dbf").GetVtab tabelhasillist.SetEditable(true) tabelruteHasil.SetEditable(true)
Universitas Sumatera Utara
objBitmap2 = tabelhasillist.GetSelection objEkspresi2 = "([List]= "+nilaiIterasi.asString+")" tabelhasillist.Query(objEkspresi2,objBitmap2, #VTAB_SELTYPE_NEW) tabelhasillist.UpdateSelection for each k in tabelhasillist.GetSelection tabelhasillist.RemoveRecord(k) end objBitmap3 = tabelruteHasil.GetSelection objEkspresi3 = "([No]= "+nilaiIterasi.asString+")" tabelruteHasil.Query(objEkspresi3,objBitmap3, #VTAB_SELTYPE_NEW) tabelruteHasil.UpdateSelection for each l in tabelruteHasil.GetSelection tabelruteHasil.RemoveRecord(l) end tabelhasillist.SetEditable(false) tabelruteHasil.SetEditable(false) '------------------------------------------' 'Menghapus label berhasil dan bulatan warna' '------------------------------------------' aDialogDoc = Av.GetProject.FindDoc("Kontrol Pencarian Rute") dialGraphic = aDialogDoc.GetGraphics jml = dialGraphic.Count for each isi in (jml-1)..(jml-4) by (-1) componentGraphic = dialGraphic.Get(isi) dialGraphic.RemoveGraphic(componentGraphic) end '-----------------------'Mengkosongkan textbox keterangan '-----------------------labelKtrnganDetail = dialGraphic.FindByName("textboxket") lKetDet = labelKtrnganDetail.GetControl lKetDet.SetText(" ") '--------------------'Menggambar ulang rute '--------------------Av.Run("FngsGambarRute",nilaiakhiriterasi ) theView.Invalidate 'gf theView.InvalidateTOC( nil )
0-GetDetailsLegend adial = Av.GetProject.FindDoc("Legenda") dial = adial.GetGraphics comboBox1 = dial.FindByName("box_legenda") listLegenda = {"Pusat Radius Tsunami","Titik Kumpul","Titik Potong","Jalan Pilihan", "Bangunan","Ruang Hijau","Batas Luar"} cBox1 = comboBox1.GetControl cBox1.DefineFromList(listLegenda)
Universitas Sumatera Utara
0-GetResetDetailsLegend adial = Av.GetProject.FindDoc("Legenda") dial = adial.GetGraphics comboBox1 = dial.FindByName("box_legenda") labelKeterangan = dial.FindByName("labelketerangan") labelKtrnganDetail = dial.FindByName("labelktrnganDetail") listLegenda = {""} cBox1 = comboBox1.GetControl lKet = labelketerangan.GetControl lKetDet = labelKtrnganDetail.GetControl lKet.SetLabel("KETERANGAN LEGENDA") lKetDet.SetLabel(" ") cBox1.DefineFromList(listLegenda) '-----------------------------------------------------' 'Memilih seluruh theme yang aktif dan menonaktifkannya' '-----------------------------------------------------' viewpeta = Av.GetProject.FindDoc("Peta Daerah Belawan") theTheme = viewpeta.GetActiveThemes for each i in theTheme i.GetFTab.GetSelection.ClearAll i.SetActive(false) end viewpeta.Invalidate
0-Reset Daerah Tsunami theView = Av.GetProject.FindDoc("Peta Daerah Belawan") objgrafik = theView.GetGraphics objgrafik.Empty aDialogDoc = Av.GetProject.FindDoc("Kontrol Pencarian Rute") dialGraphic = aDialogDoc.GetGraphics jmlGraphic = dialGraphic.Count teksline1 = dialGraphic.FindByName("tekslineradius") cteksline1 = teksline1.GetControl cteksline1.SetText("none") cteksline1.SetEnabled(true) teks1 = dialGraphic.FindByName("teks1") cteks1 = teks1.GetControl cteks1.SetLabel("inputkan nilai radius tsunami") tabelIterasi = Av.GetProject.FindDoc("iterasi.dbf").GetVTab fieldIterasi = tabelIterasi.FindField("iterasi") '-------------------------------' 'Mengaktifkan theme titik kumpul' '-------------------------------' themeTitikKumpul = theView.FindTheme("Titik kumpul.shp") themeTitikkumpul.SetActive(true) '-----------------------'
Universitas Sumatera Utara
'Menghapus theme Rute __' '-----------------------' Av.Run("FngsHapusTheme", nil) '------------------------' 'Me-nol-kan tabel iterasi' '------------------------' tabelIterasi.SetEditable(true) tabelIterasi.SetValue(fieldIterasi,0,0) tabelIterasi.SetEditable(false) '-------------------------'-------------------------' 'Warna untuk Single Symbol' ‘-------------------------' colora = {237,28,36} warna = Color.Make warna.SetRGBList(colora) '--------------------------------' 'Me-nol-kan flag di jalan pilihan' '--------------------------------' Av.Run("FngsHapusTabelList", nil) themeJalanPilihan = theView.FindTheme("Jalan Pilihan.shp") legendthemeJalanPilihan = themeJalanPilihan.GetLegend legendthemeJalanPilihan.SingleSymbol legendthemeJalanPilihan.GetSymbols.Get(0).SetColor(warna) legendthemeJalanPilihan.GetSymbols.Get(0).SetSize(2) themeJalanPilihan.UpdateLegend themeJalanPilihan.SetVisible(true) '--------------------------------' 'Me-nol-kan flag di titik simpang' '--------------------------------' themeTitik = theView.FindTheme("titik simpang.shp") tabelTitik = Av.GetProject.FindDoc("titik simpang.dbf").GetVTab fieldFlagTitik = tabelTitik.FindField("Flag") legendthemeTitik = themeTitik.GetLegend tabelTitik.SetEditable(true) for each record in tabelTitik tabelTitik.SetValue(fieldFlagTitik,record,0) end tabelTitik.SetEditable(false) tabelTitik.Refresh legendthemeTitik.SingleSymbol legendthemeTitik.GetSymbols.Get(0).SetColor(Color.GetRed) legendthemeTitik.GetSymbols.Get(0).SetSize(7) themeTitik.SetVisible(false) themeTitik.SetActive(false) themeTitik.UpdateLegend '-----------------------------' 'Menolkan flag di titik potong'
Universitas Sumatera Utara
'-----------------------------' themeTitikPotong = theView.FindTheme("Titik potong.shp") tabelTitikPotong = Av.GetProject.FindDoc("titik potong.dbf").GetVTab fieldFlagTitikPotong = tabelTitikPotong.FindField("Flag") legendthemeTitikPotong = themeTitikPotong.GetLegend tabelTitikPotong.SetEditable(true) for each record in tabelTitikPotong tabelTitikPotong.SetValue(fieldFlagTitikPotong,record,0) end tabelTitikPotong.SetEditable(false) tabelTitikPotong.Refresh legendthemeTitikPotong.SingleSymbol legendthemeTitikPotong.GetSymbols.Get(0).SetColor(Color.GetBlue) legendthemeTitikPotong.GetSymbols.Get(0).SetSize(7) '------------------------------------------------------' 'Meng-unselect all tabel titik kumpul dan titik simpang' '------------------------------------------------------' tabeltitikSimpang = Av.GetProject.FindDoc("Attributes Simpang.shp").GetVTab tabeltitikSimpang.GetSelection.ClearAll tabeltitikSimpang.UpdateSelection tabeltitikKumpul = Av.GetProject.FindDoc("Attributes Kumpul.shp").GetVTab tabeltitikKumpul.GetSelection.ClearAll tabeltitikKumpul.UpdateSelection
of
Titik
of
Titik
theView.Invalidate '-----------------------'Mengkosongkan textbox keterangan '-----------------------adial = Av.GetProject.FindDoc("Kontrol Pencarian Rute") dial = adial.GetGraphics labelKtrnganDetail = dial.FindByName("textboxket") lKetDet = labelKtrnganDetail.GetControl lKetDet.SetText(" ") '-----------------------------' 'Menghapus Komponen di Kontrol' '-----------------------------' if (jmlGraphic <= 75) then 'MsgBox.Info("Sudah Terhapus","Info") else for each isi in (jmlGraphic-1)..75 by (-1) componentGraphic = dialGraphic.Get(isi) '-----------------' 'Menghapus graphic' '-----------------' dialGraphic.RemoveGraphic(componentGraphic) end end
Universitas Sumatera Utara
1-OpenLegenda peta = Av.GetProject.FindDoc("Peta Daerah Belawan") kontrol = Av.GetProject.FindDoc("Kontrol Pencarian Rute") legenda = Av.GetProject.FindDoc("Legenda") winpeta = peta.GetWin winkontrol = kontrol.GetWin winlegenda = legenda.GetWin winlegenda.Open winpeta.Open winkontrol.Close winlegenda.MoveTo(960,0) winlegenda.Resize(321, 643) winpeta.MoveTo(0,0) winpeta.Resize(960, 643) Av.Run("0-Reset Daerah Tsunami", nil) Av.Run("0-GetResetDetailsLegend", nil) themeTitikKumpul = peta.FindTheme("Titik kumpul.shp") themeTitikkumpul.SetActive(true) Av.Run("FngsZoomThemeAktif",nil) themeTitikkumpul.SetActive(false)
1-FngsOpenCreator theDialogEditor = av.GetProject.FindDoc("Dialog3") theDialogEditor.GetDialog.Open
1-FngsOpenParameter theDialogEditor = av.GetProject.FindDoc("Dialog2") theDialogEditor.GetDialog.Open dialogP = av.GetProject.FindDialog("Dialog2")
1-OpenPencarian peta = Av.GetProject.FindDoc("Peta Daerah Belawan") kontrol = Av.GetProject.FindDoc("Kontrol Pencarian Rute") legenda = Av.GetProject.FindDoc("Legenda") winpeta = peta.GetWin winkontrol = kontrol.GetWin winlegenda = legenda.GetWin winkontrol.Open winpeta.Open winlegenda.Close winkontrol.MoveTo(960,0) winkontrol.Resize(321, 643)
Universitas Sumatera Utara
winpeta.MoveTo(0,0) winpeta.Resize(960, 643) Av.Run("0-Reset Daerah Tsunami", nil) Av.Run("0-GetResetDetailsLegend", nil) themeTitikKumpul = peta.FindTheme("Titik kumpul.shp") themeTitikkumpul.SetActive(true) Av.Run("FngsZoomThemeAktif",nil)
1-OpenTabelDetails tabeldetails = Av.GetProject.FindDoc("Rute Hasil Pencarian.dbf") tabeldetailsVTab = tabeldetails.GetVTab jumlah = tabeldetailsVTab.GetNumRecords if (jumlah=0) then MsgBox.Info("Data masih kosong, lakukan terpendek terlebih dahulu","Informasi") else tabeldetails.GetWin.Open end
proses
pencarian
rute
1-TabelthemeAktif theView lebar
= av.GetProject.FindDoc("Peta Daerah Belawan" ) = theView.GetTOCWidth
if (lebar = 0) then theView.SetTOCWidth(183) else MsgBox.Info("Tabel theme sudah terbuka","Informasi") end
1-ZoomTampilanUtuh ‘---------------------------------------------------------------'Menonaktifkan theme rute_ yang lain dan jalan pilihan diaktifkan '---------------------------------------------------------------theView
= Av.GetProject.FindDoc("Peta Daerah Belawan")
themeTitikKumpul = theView.FindTheme("Titik kumpul.shp") themeTitikKumpul.SetVisible(true) themeTitikKumpul.SetActive(true) theView.Invalidate
'-------------------------' 'Menzoom theme titi kumpul' '-------------------------' Av.Run("FngsZoomThemeAktif",nil) theView.Invalidate
Universitas Sumatera Utara
1-TampilSeluruhJalur tabeldetails = Av.GetProject.FindDoc("Rute Hasil Pencarian.dbf") tabeldetailsVTab = tabeldetails.GetVTab jumlah = tabeldetailsVTab.GetNumRecords if (jumlah=0) then MsgBox.Info("Data masih kosong, lakukan terpendek terlebih dahulu","Informasi")
proses
pencarian
rute
else 'Menonaktifkan theme rute_ yang lain dan jalan pilihan diaktifkan '----------------------------------------------------theView = Av.GetProject.FindDoc("Peta Daerah Belawan") tabeliterasi = Av.GetProject.FindDoc("iterasi.dbf").GetVTab fielditerasi = tabeliterasi.FindField("iterasi") iterasi = tabeliterasi.ReturnValue(fielditerasi,0) for each i in 1..iterasi namathemeRuteLain = "Rute"++i.AsString themeRutenya = theView.FindTheme(namathemeRuteLain) themeRutenya.SetVisible(false) end themeJalanpilihan = theView.FindTheme("Jalan pilihan.shp") themeJalanpilihan.SetVisible(true) themeJalanPilihan.SetActive(true) theView.Invalidate end themeJalanPilihan.SetActive(true) theView.Invalidate
1-TabelthemeNonAktif theView lebar
= av.GetProject.FindDoc("Peta Daerah Belawan" ) = theView.GetTOCWidth
if (lebar = 0) then MsgBox.Info("Tabel theme sudah terbuka","Informasi") else theView.SetTOCWidth(0) end
1-TampilDokumenProject pass = MsgBox.Password if (pass = nil) then MsgBox.Info("Password Anda Kosong","Informasi") else if(pass = "081401034") then viewJJ = Av.GetProject jendelaviewJJ = viewJJ.GetWin jendelaviewJJ.Open jendelaviewJJ.Resize(269,380) jendelaviewJJ.MoveTo(0,0) else MsgBox.Info("Password Anda Salah","Informasi")
Universitas Sumatera Utara
end end
1-SembunyikanDokumenProject viewJJ = Av.GetProject jendelaviewJJ = viewJJ.GetWin jendelaviewJJ.Open jendelaviewJJ.Resize(269,380) jendelaviewJJ.MoveTo(1500,0)
2-IdentityMap theView = av.GetProject.FindDoc("Peta Daerah Belawan") theTheme = theView.GetActiveThemes found = FALSE
for each t in theTheme p = theView.GetDisplay.ReturnUserPoint t.SelectByPoint(p, #VTAB_SELTYPE_NEW) tabelt = t.GetFTab objbitmap1 = tabelt.GetSelection FeatureList = t.FindByPoint(p) for each f in FeatureList t.BlinkRecord(f) found = TRUE 'MsgBox.Info("theme = "++t.AsString,"info") fieldName fieldPanjang fieldV1 fieldV2
= = = =
tabelt.FindField("Name") tabelt.FindField("Panjang") tabelt.FindField("V1") tabelt.FindField("V2")
if(t.AsString = "Jalan pilihan.shp") then for each i in tabelt.GetSelection nilaiPanjang = tabelt.ReturnValue(fieldPanjang, i) nilaiV1 = tabelt.ReturnValue(fieldV1, i) nilaiV2 = tabelt.ReturnValue(fieldV2, i) a = "Panjang ="++nilaiPanjang.AsString++"meter"+NL+"Menghubungkan titik"++nilaiV1++"dengan"++nilaiV2
Jalan
end elseif((t.AsString = "Titik potong.shp")) then for each i in tabelt.GetSelection nilaiName = tabelt.ReturnValue(fieldName, i) a = "Nama Titik ="++nilaiName+NL+"Titik sebagai titik tujuan rute terpendek" end
ini
digunakan
Universitas Sumatera Utara
elseif((t.AsString = "Titik kumpul.shp")) then for each i in tabelt.GetSelection nilaiName = tabelt.ReturnValue(fieldName, i) a = "Nama Titik ="++nilaiName+NL+"Titik sebagai titik awal pencarian rute terpendek" end
ini
digunakan
else for each i in tabelt.GetSelection nilaiPanjang = tabelt.ReturnValue(fieldPanjang, i) nilaiV1 = tabelt.ReturnValue(fieldV1, i) nilaiV2 = tabelt.ReturnValue(fieldV2, i) b = "Panjang ="++nilaiPanjang.AsString++"meter"+NL+"Menghubungkan titik"++nilaiV1++"dengan"++nilaiV2 MsgBox.Info(b,"Keterangan") adial2 = Av.GetProject.FindDoc("Kontrol
Jalan
Pencarian
Rute") dial2 = adial2.GetGraphics labelKtrnganDetail = dial2.FindByName("textboxket") lKetDet = labelKtrnganDetail.GetControl ketAwal = lKetDet.GetText ketAkhir = ketAwal +NL+"-----------"+NL+ b lKetDet.SetText(ketAkhir) break end break end MsgBox.Info(a,"Keterangan") adial = Av.GetProject.FindDoc("Legenda") dial = adial.GetGraphics labelKtrnganDetail = dial.FindByName("labelktrnganDetail") lKetDet = labelKtrnganDetail.GetControl lKetDet.SetLabel(a) end end if (not found) then System.Beep adial = Av.GetProject.FindDoc("Legenda") dial = adial.GetGraphics labelKtrnganDetail = dial.FindByName("labelktrnganDetail") lKetDet = labelKtrnganDetail.GetControl lKetDet.SetLabel(" ") end
2-IdentityMapClick Universitas Sumatera Utara
theView = av.GetProject.FindDoc("Peta Daerah Belawan") theTheme = theView.GetActiveThemes if (theTheme.Count=0) then MsgBox.Info("Pilih Detail Legenda Terlebih Dahulu","Informasi") aToolMenu = av.GetActiveGUI.GetToolBar.GetControls.Get(1) aToolMenu.Select end
2-TabelClick tabelPencarian = Av.GetProject.FindDoc("Rute Pencarian.dbf").GetVTab jumlah = tabelpencarian.GetNumRecords if (jumlah=0) then MsgBox.Info("Data masih kosong, lakukan terpendek terlebih dahulu","Informasi")
proses
pencarian
Hasil
rute
aToolMenu = av.GetActiveGUI.GetToolBar.GetControls.Get(1) aToolMenu.Select end
FngsAturanTrans 'PARAMETER FUNGSI ATURAN TRANSISI '-------------------------------q0 = 0.9 listTitik = Av.Run("FngsTitiktoList", nil) bobot = (-1)
'parameter 0<=q0<=1
'-------------------------------'NILAI YG DIKIRIM OLEH SCRIPT MAIN '---------------------------------objtitikAwal = SELF 'Memanggil script generate random dan disimpan di q '-------------------------------------------------objRandomScript = "FngsRand" q = Av.Run(objRandomScript, Nil) 'parameter 0<=q<=1 objFTab = Av.GetProject.FindDoc("tablecek.dbf").GetVTab objFieldPanjang = objFTab.FindField("panjang") objFieldTho = objFTab.FindField("tho") objBitmap = objFTab.GetSelection objSelect = objtitikAwal objSelect = objSelect.Quote numrecord = objFtab.GetNumRecords objV1 = objFTab.FindField("V1") objV2 = objFTab.FindField("V2") objTabelPers1 = "C:/percobaan/Table10.Dbf".AsFileName objTabelPers2 = "C:/percobaan/Table8.Dbf".AsFileName
Universitas Sumatera Utara
tabelSem = Av.GetProject.FindDoc("table14.dbf").GetVTab fieldTetangga = tabelSem.FindField("Tetangga") fieldV = tabelSem.FindField("V") fieldProb = tabelSem.FindField("Prob") tabelSem.SetEditable(true) for each indeks10 in tabelSem tabelSem.SetValue(fieldV, indeks10, 0) tabelSem.SetValue(fieldProb, indeks10, 0) end tabelSem.SetEditable(false) numList = listTitik.Count totalvkiri = 0 totalvkanan = 0 nilaiPanjang = 0 v=0 'KIRI objEkspresi = "([V1]="+objSelect+")" '([V2]="+objSelect+") objFTab.Query(objEkspresi,objBitmap, #VTAB_SELTYPE_NEW) objFTab.UpdateSelection for each i in objFTab.GetSelection nilaiPanjang = objFTab.ReturnValue(objFieldPanjang, i) nilaiTho = objFTab.ReturnValue(objFieldTho, i) nilaiTetangga = objFTab.ReturnValue(objV2,i) visibilitas = (1/nilaiPanjang)^bobot v = nilaiTho * visibilitas objBitmap2 = tabelSem.GetSelection nilaiTetangga = nilaiTetangga.Quote nilaiTetangga = nilaiTetangga.Quote objEkspresi2 = "([Tetangga]="+nilaiTetangga+") " tabelSem.Query(objEkspresi2,objBitmap2, #VTAB_SELTYPE_NEW) tabelSem.UpdateSelection tabelSem.SetEditable(true) for each sama in tabelSem.GetSelection tabelSem.SetValue(fieldV, sama, v) tabelSem.SetValue(fieldProb, sama, 0) end tabelSem.SetEditable(false) totalvkiri = totalvkiri + v end 'KANAN objEkspresi = "([V2]="+objSelect+")" '([V2]="+objSelect+") objFTab.Query(objEkspresi,objBitmap, #VTAB_SELTYPE_NEW) objFTab.UpdateSelection for each i in objFTab.GetSelection nilaiPanjang = objFTab.ReturnValue(objFieldPanjang, i) nilaiTho = objFTab.ReturnValue(objFieldTho, i)
Universitas Sumatera Utara
nilaiTetangga = objFTab.ReturnValue(objV1,i) visibilitas = (1/nilaiPanjang)^bobot v = nilaiTho*visibilitas objBitmap2 = tabelSem.GetSelection nilaiTetangga = nilaiTetangga.Quote nilaiTetangga = nilaiTetangga.Quote objEkspresi3 = "([Tetangga]="+nilaiTetangga+") " tabelSem.Query(objEkspresi3,objBitmap2, #VTAB_SELTYPE_NEW) tabelSem.UpdateSelection tabelSem.SetEditable(true) for each sama in tabelSem.GetSelection tabelSem.SetValue(fieldV, sama, v) tabelSem.SetValue(fieldProb, sama, 0) end tabelSem.SetEditable(false) tabelSem.Refresh totalvkanan = totalvkanan + v end if (nilaiPanjang <> 0) then totalv = totalvkiri + totalvkanan else totalv = 0 end if(totalv =0) then 'MsgBox.Info("Kosong","info") nilaiTetangga = "0" nilaiPanjang = 0 objHasilAturanTrans = {nilaiTetangga, nilaiPanjang} Return objHasilAturanTrans else '--------------------------------------------------------------'Aturan Transisi Status Persamaan 1 '--------------------------------------------------------------if(q <= q0) then fieldV = tabelSem.FindField("V") maxi = nil for each rec in tabelSem semvalue = tabelSem.ReturnValueNumber(fieldV, rec) if(maxi = nil) then maxi = semvalue else maxi = maxi max semvalue end end for each k in tabelSem nilaiV = tabelSem.ReturnValue(fieldV, k) if(nilaiV = maxi) then nilaiTetangga2 = tabelSem.ReturnValue(fieldTetangga, k)
Universitas Sumatera Utara
objEkspresi = "(([V1]="+objSelect+") ([V2]="+nilaiTetangga2+")) or (([V1]="+nilaiTetangga2+") ([V2]="+objSelect+"))" objFTab.Query(objEkspresi,objBitmap, #VTAB_SELTYPE_NEW) objFTab.UpdateSelection for each i in objFTab.GetSelection nilaiPanjang = objFTab.ReturnValue(objFieldPanjang, 'ambil nilai kolom panjang titik yang terpilih end end
and and
i)
end nilaiTetangga2 = nilaiTetangga2.Unquote objHasilAturanTrans = {nilaiTetangga2, nilaiPanjang} Return objHasilAturanTrans '------------------------------------------------------'Aturan Transisi Status Persamaan 2 '------------------------------------------------------else 'Hanya yang ada nilai V saja yg terpilih untuk diberi nilai prob '---------------------------------------------------objPilih = tabelSem.GetSelection objEks = "([V] <> 0)" tabelSem.Query(objEks, objPilih, #VTAB_SELTYPE_NEW) tabelSem.UpdateSelection for each indeks2 in tabelSem.GetSelection nilaiV = tabelSem.ReturnValue(fieldV, indeks2) prob = nilaiV / totalv tabelSem.SetEditable(true) tabelSem.SetValue(fieldProb,indeks2,prob) tabelSem.SetEditable(false) tabelSem.Refresh end listProbKum = List.Make listTitikProb = List.Make a=0 for each indeks3 in tabelSem.GetSelection nilaiProb = tabelSem.ReturnValue(fieldProb, indeks3) nilaiTetangga = tabelSem.ReturnValue(fieldTetangga, indeks3) a = a + nilaiProb if (a > 1) then a = 1 end listProbKum.Add(a) listTitikProb.Add(nilaiTetangga) end indeksTetangga = 0 r = Av.Run(objRandomScript, Nil)
Universitas Sumatera Utara
b = listProbKum.Count-1 for each indeks4 in 0..b if (r<=listProbKum.Get(indeks4)) then indeksTetangga = indeks4 break end end nilaiTetangga2 = listTitikProb.Get(indeksTetangga) objEkspresi = "(([V1]="+objSelect+") ([V2]="+nilaiTetangga2+")) or (([V1]="+nilaiTetangga2+") ([V2]="+objSelect+"))" objFTab.Query(objEkspresi,objBitmap, #VTAB_SELTYPE_NEW) objFTab.UpdateSelection
and and
for each i in objFTab.GetSelection nilaiPanjang = objFTab.ReturnValue(objFieldPanjang, i) end nilaiTetangga2= nilaiTetangga2.Unquote objHasilAturanTrans = {nilaiTetangga2, nilaiPanjang} Return objHasilAturanTrans end end
FngsClickParameter theDialogEditor = av.GetProject.FindDialog("Dialog2") tabelParameter = Av.GetProject.FindDoc("parameter.dbf").GetVTab fieldSemut = tabelParameter.FindField("jmlSemut") fieldSiklus = tabelParameter.FindField("jmlSiklus") cjmlSemut cjmlSiklus
= theDialogEditor.FindByName("jmlSemut") = theDialogEditor.FindByName("jmlSiklus")
nilaijmlSemut nilaijmlSiklus
= cjmlSemut.GetText = cjmlSiklus.GetText
if ((nilaijmlSemut.IsNumber) AND (nilaijmlSiklus.IsNumber)) then a = MsgBox.YesNo("Anda akan mengganti nilai ="++nilaijmlSemut++"dan nilai jumlah ="++nilaijmlSiklus.AsString,"Informasi",false) if (a=true) then
jumlah
semut siklus
nilaijmlSemut = nilaijmlSemut.AsNumber nilaijmlSiklus = nilaijmlSiklus.AsNumber tabelParameter.SetEditable(true) tabelParameter.SetValue(fieldSemut,0,nilaijmlSemut) tabelParameter.SetValue(fieldSiklus,0,nilaijmlSiklus) tabelParameter.SetEditable(false) theDialogEditor.Close else end else
Universitas Sumatera Utara
MsgBox.Info("Inputan harus angka","Informasi") end
FngsCloningTheme theView = av.GetProject.FindDoc("Peta Daerah Belawan" ) theThemes = theView.GetThemes JalanPilihan = theView.FindTheme("Jalan pilihan.shp") '------------------------------------' 'Menonaktifkan seluruh theme yang ada' '------------------------------------' for each i in theThemes i.SetActive(false) end JalanRute = JalanPilihan.Clone iterasi = SELF JalanRute.SetName("Rute"++iterasi.AsString) theView.AddTheme (JalanRute) JalanRute.SetVisible(TRUE) JalanRute.SetActive(true) namafield = "f"+iterasi.AsString legendRute = JalanRute.GetLegend legendRute.SetLegendType(#LEGEND_TYPE_UNIQUE) legendRute.Unique(JalanRute, namafield.AsString) 'Ubah urutan theme '------------------theThemes.Shuffle(JalanRute,2) theView.InvalidateTOC( nil ) 'Memberi warna legend '-------------------mycolorlist = Av.Run("FngsListWarna",nil) for each i in 0..1 b = mycolorlist.Get(iterasi) warna = Color.Make warna.SetRGBList(b) if (i = 1) then warna.SetTransparent(false) legendRute.GetSymbols.Get(i).SetColor(warna) legendRute.GetSymbols.Get(i).SetSize(3) else warna.SetTransparent(true) legendRute.GetSymbols.Get(i).SetColor(warna) legendRute.GetSymbols.Get(i).SetSize(3) end end
FngsColor theView = av.GetProject.FindDoc("Peta Daerah Belawan") objJalan = theView.FindTheme("jalan umum.shp") objJalanLe = objJalan.GetLegend
Universitas Sumatera Utara
namafield = "Flag" objJalanLe.SetLegendType(#LEGEND_TYPE_UNIQUE) objJalanLe.Unique(objJalan, namafield.AsString)
for each n in 1..jmlRute objJalanLe.GetSymbols.Get(1).SetColor(Color.GetBlue) objJalanLe.GetSymbols.Get(0).SetColor(Color.GetGreen) objJalanLe.GetSymbols.Get(2).SetColor(Color.GetBlack) end objJalan.UpdateLegend
FngsCopi1 tabelAsal = Av.GetProject.FindDoc("tableupdate.dbf").GetVTab tabelCopi = Av.GetProject.FindDoc("tablecek.dbf").GetVTab fieldV1Asal fieldV2Asal fieldthoUpdateAsal fieldidAsal fieldlineAsal fieldpanjangAsal
= = = = = =
tabelAsal.FindField("V1") tabelAsal.FindField("V2") tabelAsal.FindField("Tho Update") tabelAsal.FindField("Id") tabelAsal.FindField("Line") tabelAsal.FindField("Panjang")
fieldV1Copi fieldV2Copi fieldthoCopi fieldidCopi fieldlineCopi fieldpanjangCopi
= = = = = =
tabelCopi.FindField("V1") tabelCopi.FindField("V2") tabelCopi.FindField("tho") tabelCopi.FindField("Id") tabelCopi.FindField("Line") tabelCopi.FindField("Panjang")
tabelAsal.SetEditable(true) tabelCopi.SetEditable(true) for each rec in tabelAsal v1 = tabelAsal.ReturnValue(fieldV1Asal, rec) v2 = tabelAsal.ReturnValue(fieldV2Asal, rec) tho = tabelAsal.ReturnValue(fieldthoUpdateAsal, rec) id = tabelAsal.ReturnValue(fieldidAsal, rec) panjang = tabelAsal.ReturnValue(fieldpanjangAsal, rec) tabelCopi.SetValue(fieldV1Copi, rec, v1) tabelCopi.SetValue(fieldV2Copi, rec, v2) tabelCopi.SetValue(fieldthoCopi, rec, tho) tabelCopi.SetValue(fieldidCopi, rec, id) tabelCopi.SetValue(fieldpanjangCopi, rec, panjang) end tabelAsal.SetEditable(false) tabelCopi.SetEditable(false)
FngsCopi2 tabelAsal = Av.GetProject.FindDoc("tabletrans.dbf").GetVTab tabelCopi = Av.GetProject.FindDoc("tableupdate.dbf").GetVTab fieldV1Asal
= tabelAsal.FindField("V1")
Universitas Sumatera Utara
fieldV2Asal = tabelAsal.FindField("V2") fieldthoAsal = tabelAsal.FindField("tho") fieldidAsal = tabelAsal.FindField("Id") fieldlineAsal = tabelAsal.FindField("Line") fieldpanjangAsal = tabelAsal.FindField("Panjang") fieldV1Copi fieldV2Copi fieldthoAwalCopi fieldthoUpdateCopi fieldidCopi fieldlineCopi fieldpanjangCopi
= = = = = = =
tabelCopi.FindField("V1") tabelCopi.FindField("V2") tabelCopi.FindField("Tho Awal") tabelCopi.FindField("Tho Update") tabelCopi.FindField("Id") tabelCopi.FindField("Line") tabelCopi.FindField("Panjang")
tabelAsal.SetEditable(true) tabelCopi.SetEditable(true) for each rec in tabelAsal v1 = tabelAsal.ReturnValue(fieldV1Asal, rec) v2 = tabelAsal.ReturnValue(fieldV2Asal, rec) tho = tabelAsal.ReturnValue(fieldthoAsal, rec) id = tabelAsal.ReturnValue(fieldidAsal, rec) panjang = tabelAsal.ReturnValue(fieldpanjangAsal, rec) tabelCopi.SetValue(fieldV1Copi, rec, v1) tabelCopi.SetValue(fieldV2Copi, rec, v2) tabelCopi.SetValue(fieldthoAwalCopi, rec, tho) tabelCopi.SetValue(fieldthoUpdateCopi, rec, tho) tabelCopi.SetValue(fieldidCopi, rec, id) tabelCopi.SetValue(fieldpanjangCopi, rec, panjang) end tabelAsal.SetEditable(false) tabelCopi.SetEditable(false)
FngsCopi3 tabelAsal = Av.GetProject.FindDoc("jalan pilihan.dbf").GetVTab tabelCopi = Av.GetProject.FindDoc("tabletrans.dbf").GetVTab fieldV1Asal = tabelAsal.FindField("V1") fieldV2Asal = tabelAsal.FindField("V2") fieldthoAsal = tabelAsal.FindField("Tho") fieldidAsal = tabelAsal.FindField("Id") fieldlineAsal = tabelAsal.FindField("Line") fieldpanjangAsal = tabelAsal.FindField("Panjang") fieldV1Copi = tabelCopi.FindField("V1") fieldV2Copi = tabelCopi.FindField("V2") fieldthoCopi = tabelCopi.FindField("Tho") fieldidCopi = tabelCopi.FindField("Id") fieldlineCopi = tabelCopi.FindField("Line") fieldpanjangCopi = tabelCopi.FindField("Panjang") tabelAsal.SetEditable(true) tabelCopi.SetEditable(true) for each rec in tabelAsal v1 = tabelAsal.ReturnValue(fieldV1Asal, rec) v2 = tabelAsal.ReturnValue(fieldV2Asal, rec)
Universitas Sumatera Utara
tho = tabelAsal.ReturnValue(fieldthoAsal, rec) id = tabelAsal.ReturnValue(fieldidAsal, rec) panjang = tabelAsal.ReturnValue(fieldpanjangAsal, rec) tabelCopi.SetValue(fieldV1Copi, rec, v1) tabelCopi.SetValue(fieldV2Copi, rec, v2) tabelCopi.SetValue(fieldthoCopi, rec, tho) tabelCopi.SetValue(fieldidCopi, rec, id) tabelCopi.SetValue(fieldpanjangCopi, rec, panjang) end tabelAsal.SetEditable(false) tabelCopi.SetEditable(false)
FngsCopiTblTitiktoProb tabelTitik = Av.GetProject.FindDoc("titik temu.dbf").GetVTab tabelProb = Av.GetProject.FindDoc("table14.dbf").GetVTab fieldName = tabelTitik.FindField("Name") fieldTetangga = tabelProb.FindField("Tetangga") tabelTitik.SetEditable(true) tabelProb.SetEditable(true) jum = tabelProb.GetNumRecords for each record in tabelTitik 'A = tabelTitik.ReturnValue(fieldName, record) 'B = tabelProb.AddRecord 'tabelProb.SetValue(fieldTetangga, B, A) end MsgBox.Info("jumlah di tabel prob "++jum.AsString,"")
FngsGambarRute theView = av.GetProject.FindDoc("Peta Daerah Belawan") ThemeJalan = theView.FindTheme("Jalan pilihan.shp") theLegend = ThemeJalan.GetLegend themeTitik = theView.FindTheme("titik simpang.shp") legendTitik = ThemeTitik.GetLegend themeTitikPotong = theView.FindTheme("titik potong.shp") legendTitikPotong = ThemeTitikPotong.GetLegend iterasi = SELF 'Buat warna hanya bisa satu field '-------------------------------namafield = "flag" theLegend.SetLegendType(#LEGEND_TYPE_UNIQUE) theLegend.Unique(ThemeJalan, namafield.AsString) legendTitik.SetLegendType(#LEGEND_TYPE_UNIQUE) legendTitik.Unique(themeTitik, namafield.AsString) legendTitikPotong.SetLegendType(#LEGEND_TYPE_UNIQUE)
Universitas Sumatera Utara
legendTitikPotong.Unique(themeTitikPotong, namafield.AsString) 'list warna mycolorlist = Av.Run("FngsListWarna",nil) for each a in 0..iterasi b = mycolorlist.Get(a) warna = Color.Make warna.SetRGBList(b) if(a=0) then theLegend.GetSymbols.Get(a).SetColor(warna) theLegend.GetSymbols.Get(a).SetSize(2) else theLegend.GetSymbols.Get(a).SetColor(warna) theLegend.GetSymbols.Get(a).SetSize(3) end if(a=0) then warna.SetTransparent(true) legendTitik.GetSymbols.Get(a).SetColor(warna) legendTitik.GetSymbols.Get(a).SetSize(3) else legendTitik.GetSymbols.Get(a).SetColor(warna) legendTitik.GetSymbols.Get(a).SetSize(12) end if(a=0) then legendTitikPotong.GetSymbols.Get(0).SetColor(Color.GetBlue) legendTitikPotong.GetSymbols.Get(0).SetSize(7) else legendTitikPotong.GetSymbols.Get(a).SetColor(Color.GetYellow) legendTitikPotong.GetSymbols.Get(a).SetSize(7) end end themeTitik.UpdateLegend themeTitik.SetVisible(true) ThemeJalan.UpdateLegend
FngsHapusTabelList tabelPenyimpanan = Av.GetProject.FindDoc("tabelhasillist.dbf").GetVTab tabeldetails = Av.GetProject.FindDoc("Rute Hasil Pencarian.dbf").GetVTab tabelJalan = Av.GetProject.FindDoc("jalan pilihan.dbf").GetVTab fieldflag = tabelJalan.FindField("flag") 'Hapus tabelhasillist '-------------------tabelPenyimpanan.SetEditable(true) tabelJalan.SetEditable(true) 'Menghapus isi tabel hasillist '----------------------------for each i in tabelPenyimpanan tabelPenyimpanan.RemoveRecord(i) end
Universitas Sumatera Utara
'Menghapus isi tabel hasil details '--------------------------------tabeldetails.SetEditable(true) for each j in tabeldetails tabeldetails.RemoveRecord(j) end tabeldetails.SetEditable(false) 'Menolkan kolom flag di tabel jalan pilihan '-----------------------------------------for each j in tabelJalan tabelJalan.SetValue(fieldflag, j, 0) end 'Menolkan kolom F1-F16 di tabel jalan pilihan '-------------------------------------------for each k in 1..16 namaField = "F"+k.AsString fieldnama = tabelJalan.FindField(namaField) for each l in tabelJalan tabelJalan.SetValue(fieldnama, l, 0) end end tabelPenyimpanan.SetEditable(false) tabelJalan.SetEditable(false)
FngsHapusTheme theView tabelIterasi fieldIterasi iterasi
= = = =
av.GetProject.FindDoc("Peta Daerah Belawan" ) Av.GetProject.FindDoc("iterasi.dbf").GetVTab tabelIterasi.FindField("iterasi") tabelIterasi.ReturnValue(fieldIterasi,0)
if (iterasi <> 0) then for each i in 1..iterasi namaTheme = "Rute"++iterasi.AsString ruteTheme = theView.FindTheme(namaTheme) theView.DeleteTheme(ruteTheme) end end theView.InvalidateTOC( nil )
FngsInputDaerahBahaya tabeltitik = Av.GetProject.FindDoc("titik kumpul.dbf").GetVTab fieldName = tabeltitik.FindField("Name") objListtitik = List.Make objBitmap = tabeltitik.GetSelection objEkspresi = "([Status]=""bahaya"")" tabeltitik.Query(objEkspresi, objBitmap, #VTAB_SELTYPE_NEW) tabeltitik.UpdateSelection
Universitas Sumatera Utara
for each record in tabeltitik.GetSelection titik = tabeltitik.ReturnValue(fieldName, record) objListtitik.Add(titik) end Return objListtitik
FngsInputTabelHasil listHasil = SELF tabelPenyimpanan Av.GetProject.FindDoc("tabelhasillist.dbf").GetVTab fieldlist = tabelPenyimpanan.FindField("List") fieldname = tabelPenyimpanan.FindField("Name") fieldrute = tabelPenyimpanan.FindField("Rute") fieldpanjang = tabelPenyimpanan.FindField("Panjang")
=
tabelPenyimpanan.SetEditable(true) record = tabelPenyimpanan.AddRecord tabelPenyimpanan.SetValue(fieldlist, record, listHasil.Get(0)) tabelPenyimpanan.SetValue(fieldname, record, listHasil.Get(1)) tabelPenyimpanan.SetValue(fieldrute, record, listHasil.Get(2)) tabelPenyimpanan.SetValue(fieldpanjang, record, listHasil.Get(3)) tabelPenyimpanan.SetEditable(false) tabelPenyimpanan.Refresh
FngsListWarna colora colorb colorc colord colore colorf colorg colorh colori colorj colork colorl colorm colorn coloro colorp
= = = = = = = = = = = = = = = =
{237,28,36} {122,0,38} '{0,255,0} {99,4,96} '{ 242,101,34} {0,74,128} '{141,198,63} {0,88,38} {0,114,54} '{0, 174,239} {0,84,166} {102,45,145} {158,0,57} '{236,0,140} {0,0,255} {96,57,19} {149,149,149} {161,161,161} '{255,0,255} {253,198,137} {158,11,15} {255,0,255}
mycolorlist = {colora,colorb,colorc,colord,colore,colorf,colorg,colorh,colori,color j,colork,colorl,colorm,colorn,coloro,colorp} Return mycolorlist
FngsOpenTabelHasil tabeldetails = Av.GetProject.FindDoc("Rute Hasil Pencarian.dbf") tabeldetailsVTab = tabeldetails.GetVTab fieldlist = tabeldetailsVTab.FindField("No")
Universitas Sumatera Utara
fieldname = tabeldetailsVTab.FindField("Nama Kawasan") fieldrute = tabeldetailsVTab.FindField("Rute Terpendek") fieldpanjang = tabeldetailsVTab.FindField("Panjang Rute") listHasil = SELF tabeldetailsVTab.SetEditable(true) record = tabeldetailsVTab.AddRecord tabeldetailsVTab.SetValue(fieldlist, record, listHasil.Get(0)) tabeldetailsVTab.SetValue(fieldname, record, listHasil.Get(1)) tabeldetailsVTab.SetValue(fieldrute, record, listHasil.Get(2)) tabeldetailsVTab.SetValue(fieldpanjang, record, listHasil.Get(3)) tabeldetailsVTab.SetEditable(false) tabeldetailsVTab.Refresh
FngsPemPerGlo tabelSiklus fieldSemut fieldRute fieldPjgRute
= = = =
av.GetProject.FindDoc("tabelsiklus.dbf").GetVTab tabelSiklus.FindField("Semut") tabelSiklus.FindField("Rute") tabelSiklus.FindField("PjgRute")
'Mengambil nilai minimum dari field panjang di tabel siklus '---------------------------------------------------------mini = nil for each rec in tabelSiklus sikvalue = tabelSiklus.ReturnValue(fieldPjgRute, rec) sikvalue.SetFormatPrecision(3) 'MsgBox.Info("jhh"++sikvalue.AsString,"halo") if(sikvalue = 0) then continue else if(mini = nil) then mini = sikvalue else mini = mini min sikvalue end end end '-------------------------------------------if(mini = nil) then rute = "0" mini = 0 objRutePendekSiklus = {rute, mini} Return objRutePendekSiklus else objBitmap = tabelSiklus.GetSelection rutePendek = mini.AsString MsgBox.Info(rutePendek,"has") objEkspresi = "([PjgRute]= "+rutePendek+" )" tabelSiklus.Query(objEkspresi,objBitmap,#VTAB_SELTYPE_NEW) tabelSiklus.UpdateSelection for each i in tabelSiklus.GetSelection
Universitas Sumatera Utara
rute = tabelSiklus.ReturnValue(fieldRute,i) end 'membuat list yang isinya rute terpendek '--------------------------------------pemisah = " " objRuteList = List.Make objRuteList = rute.AsTokens(pemisah) jumRuteList = objRuteList.Count tabelasal = av.GetProject.FindDoc("tableupdate.dbf").GetVTab tabeltujuan = av.GetProject.FindDoc("tabletrans.dbf").GetVTab fieldThoAwalasal fieldThotujuan
= tabelasal.FindField("Tho Awal") = tabeltujuan.FindField("Tho")
deltaTho = 0 alpha = 0.1 tabeltujuan.SetEditable(True) for each i in tabelasal tho = tabelasal.ReturnValue(fieldThoAwalasal,i) updateTho = ((1-alpha) * tho) + (alpha * deltaTho) tabeltujuan.SetValue(FieldThotujuan, i, updateTho) end for each j in 0..(jumRuteList-2) awal = objRuteList.Get(j) akhir = objRuteList.Get(j+1) awal = awal.Quote akhir = akhir.Quote objBitmap = tabelasal.GetSelection objEkspresi ="(([V1]="+awal+") and ([V2]="+akhir+")) (([V1]="+akhir+") and ([V2]="+awal+"))" tabelasal.Query(objEkspresi,objBitmap,#VTAB_SELTYPE_NEW) tabelasal.UpdateSelection
or
for each k in tabelasal.GetSelection tho = tabelasal.ReturnValue(fieldThoAwalasal,k) deltaTho = 1/mini updateTho = ((1-alpha) * tho) + (alpha * deltaTho) tabeltujuan.SetValue(FieldThotujuan, k, updateTho) end end tabeltujuan.SetEditable(False) objRutePendekSiklus = {rute, mini} Return objRutePendekSiklus end
Universitas Sumatera Utara
FngsPemPerLoc objListData = SELF 'PARAMETER---------tetapanPenguapan = 0.9 banyakKota = 298 gamma = 0.1
'5
'-----------------------------' 'nilai tho diambil dari tabel2' '-----------------------------' tabelawal = av.GetProject.FindDoc("tableupdate.dbf").GetVTab tabelpheromone = av.GetProject.FindDoc("tableupdate.dbf").GetVTab titikAwal = objListData.Get(0) titikHasil = objListData.Get(1) panjang = objListData.Get(2) titikAwal = titikAwal.Quote titikHasil = titikHasil.Quote '-------------------------------------------------------------' 'mendapatkan nilai tho dari tabel2(tableupdate) ' 'dan mendapatkan nilai tho paling max dari tabel2(tableupdate)' '-------------------------------------------------------------' objBitmap2 = tabelawal.GetSelection objEkspresi1 = "([V1]="+titikAwal+") or ([V2]="+titikAwal+")" tabelawal.Query(objEkspresi1,objBitmap2, #VTAB_SELTYPE_NEW) tabelawal.UpdateSelection theMaximum = nil nilaitho = nil fieldthoUpdate = tabelawal.FindField("Tho Update") for each k in tabelawal.GetSelection theValue = tabelawal.ReturnValue(fieldthoUpdate,k) if (theMaximum = nil) then theMaximum = theValue else theMaximum = theMaximum max theValue end nilaithoMax = theMaximum end objBitmap = tabelpheromone.GetSelection objEkspresi = "(([V1]="+titikAwal+") and ([V2]="+titikHasil+")) or (([V1]="+titikHasil+") and ([V2]="+titikAwal+"))" tabelpheromone.Query(objEkspresi,objBitmap, #VTAB_SELTYPE_NEW) tabelpheromone.UpdateSelection '------------------------------------------------------' 'field tho yg ada di tabel pheromone yang akan diupdate' '------------------------------------------------------' fieldthoPUpdate = tabelpheromone.FindField("Tho Update") '-----------------------------------' 'Update tho di table2 ' '-----------------------------------' for each i in tabelpheromone.GetSelection nilaitho = tabelpheromone.ReturnValue(fieldthoUpdate, i)
Universitas Sumatera Utara
updateP = ((1-tetapanPenguapan)*nilaitho) (tetapanPenguapan*(gamma*nilaithoMax))
+
tabelpheromone.SetEditable(true) tabelpheromone.SetValue(fieldthoPUpdate, i, updateP) tabelpheromone.SetEditable(false) tabelpheromone.Refresh end
FngsRand k=0 for each i in 0..2 a = Number.MakeRandom(25, 256) if(a=25) then a=0 end k=k/256+a end objNumber = k/256 Return objNumber
FngsRuteToList listHasilPencarian = SELF flag = listHasilPencarian.Get(0) ruteSiklus = listHasilPencarian.Get(1) iterasi = listHasilPencarian.Get(2) pemisah = " " objlistRute = ruteSiklus.AsTokens(pemisah) jmllist = objlistRute.Count tabelJalan = Av.GetProject.FindDoc("jalan pilihan.dbf").GetVTab objBitmap = tabelJalan.GetSelection fieldflag = tabelJalan.FindField("flag") 'field yang diisi sesuai iterasi iterasiString = iterasi.AsString iterasiFString = "F"+iterasiString fieldIterasiFString = tabelJalan.FindField(iterasiFString) 'Tabel Titik Simpang tabelTitik = Av.GetProject.FindDoc("titik simpang.dbf").GetVTab objBitmapTitik = tabelTitik.GetSelection fieldflagTitik = tabelTitik.FindField("flag") 'Tabel Titik Potong tabelTitikPotong potong.dbf").GetVTab objBitmapTitikPotong fieldflagTitikPotong
=
Av.GetProject.FindDoc("titik
= tabelTitikPotong.GetSelection = tabelTitikPotong.FindField("Flag")
tabelJalan.SetEditable(true) tabelTitik.SetEditable(true) tabelTitikPotong.SetEditable(true)
Universitas Sumatera Utara
'----------------------------------------------' 'Memberi tanda iterasi apada tabeltitik simpang' '----------------------------------------------' jmlTitik = objlistRute.Count awalSiklus = objlistRute.Get(0).Quote akhirSiklus= objlistRute.Get(jmlTitik-1).Quote objEkspresiAwal ="([Name]="+awalSiklus+")" tabelTitik.Query(objEkspresiAwal, objBitmapTitik, #VTAB_SELTYPE_NEW) tabelTitik.UpdateSelection for each p in tabelTitik.GetSelection tabelTitik.Setvalue(fieldflagTitik, p, iterasi) end objEkspresiAkhir ="([Name]="+akhirSiklus+")" tabelTitik.Query(objEkspresiAkhir, objBitmapTitik, #VTAB_SELTYPE_NEW) tabelTitik.UpdateSelection for each p in tabelTitik.GetSelection tabelTitik.Setvalue(fieldflagTitik, p, iterasi) end '------------------------------------------' 'Memberi nilai flag pada tabel titik potong' '------------------------------------------' for each r in 0..(jmllist-1) rute = objlistRute.Get(r).Quote objEkspresiPotong ="([Name]="+rute+")" tabelTitikPotong.Query(objEkspresiPotong, #VTAB_SELTYPE_NEW) tabelTitikPotong.UpdateSelection
objBitmapTitikPotong,
for each s in tabelTitikPotong.GetSelection tabelTitikPotong.Setvalue(fieldflagTitikPotong, s, iterasi) end end '-----------------------------------' 'Memberi nilai flag pada tabel jalan' '-----------------------------------' for each n in 0..(jmllist-2) awal = objlistRute.Get(n).Quote akhir = objlistRute.Get(n+1).Quote objEkspresi ="(([V1]="+awal+") and ([V2]="+akhir+")) (([V1]="+akhir+") and ([V2]="+awal+"))" tabelJalan.Query(objEkspresi, objBitmap, #VTAB_SELTYPE_NEW) tabelJalan.UpdateSelection for each m in tabeljalan.GetSelection tabelJalan.Setvalue(fieldflag, m, iterasi) tabelJalan.Setvalue(fieldIterasiFString, m, iterasi) end end tabelTitik.SetEditable(false) tabelJalan.SetEditable(false)
or
FngsSelectDaerahTsunami nilairadius
= SELF 'P
Universitas Sumatera Utara
nilairadius rad
= nilairadius.AsNumber = nilairadius * 1000
theView = av.GetProject.FindDoc("Peta Daerah Belawan") objJalanEvakuasi = theView.FindTheme("Titik kumpul.shp") objtitikSimpang = theView.FindTheme("Titik simpang.shp") objpusat = theView.FindTheme("Pusat Radius Tsunami.shp") objPusatFTab = objpusat.GetFTab objBitmap = objpusatFTab.GetSelection jarak = rad 'P 'jarak = 6000 fieldShapepusat = objPusatFTab.FindField("Shape") objgrafik = theView.GetGraphics objgrafik.Empty objJalanEvakuasiFTab = objJalanEvakuasi.GetFTab fieldStatus = objJalanEvakuasiFTab.FindField("Status") objtitikSimpangFTab = objtitikSimpang.GetFTab fieldStatustS = objtitikSimpangFTab.FindField("Status") objJalanEvakuasiFTab.SetEditable(true) for each id in objJalanEvakuasiFTab objJalanEvakuasiFTab.SetValue(fieldStatus, id, "aman") end objtitikSimpangFTab.SetEditable(true) for each id in objtitikSimpangFTab objtitikSimpangFTab.SetValue(fieldStatustS, id, "aman") end
for each rec in objPusatFTab titik = objPusatFTab.ReturnValue(fieldShapepusat, rec) absis = titik.GetX ordinat = titik.GetY pusat = Point.Make(absis, ordinat) lingkaran = Circle.Make(pusat, jarak) simbolL = GraphicShape.Make(lingkaran) objgrafik.Add(simbolL)
'(poliling)
end objJalanEvakuasi.SelectByTheme(objPusat,#FTAB_RELTYPE_ISWITHINDISTANC EOF,jarak, #VTAB_SELTYPE_NEW) objtitikSimpang.SelectByTheme(objPusat,#FTAB_RELTYPE_ISWITHINDISTANCE OF,jarak, #VTAB_SELTYPE_NEW) objBitmap = objJalanEvakuasiFTab.GetSelection fieldStatus = objJalanEvakuasiFTab.FindField("Status") objJalanEvakuasiFTab.SetEditable(true) for each id in objJalanEvakuasiFTab.GetSelection objJalanEvakuasiFTab.SetValue(fieldStatus, id, "bahaya")
Universitas Sumatera Utara
end objtitikSimpangFTab.SetEditable(true) for each id in objtitikSimpangFTab.GetSelection objtitikSimpangFTab.SetValue(fieldStatustS, id, "bahaya") end
objJalanEvakuasiFTab.UpdateSelection objtitikSimpangFTab.UpdateSelection tabeltitikSimpang = Av.GetProject.FindDoc("Attributes Simpang.shp").GetVTab tabeltitikSimpang.GetSelection.ClearAll tabeltitikSimpang.UpdateSelection
of
Titik
'--------------------------------------' 'Memberi Label pada titik yang terpilih' '--------------------------------------' fieldNama = objJalanEvakuasiFTab.FindField("Name") objJalanEvakuasi.SetLabelField(fieldNama) kotak = theView.GetDisplay.ReturnVisExtent objLbl = Labeler.Make(kotak) objLbl.SetFeatureWeight(#LABEL_WEIGHT_NO) objLbl.SetLabelWeight(#LABEL_WEIGHT_HIGH) objLbl.RemoveDuplicates(true) objTekslabel = TextSymbol.Make objTekslabel.SetFont(Font.Make("Arial","Bold")) objTekslabel.SetSize(14) objTekslabel.SetColor(color.GetBlack) objJalanEvakuasi.SetLabelTextSym(objTekslabel) objLbl.Load(objJalanEvakuasi) theView.GetAutoLabels(objLbl,false) objJalanEvakuasi.UpdateLegend
FngsTitiktoList tabeltitik = Av.GetProject.FindDoc("titik simpang.dbf").GetVTab fieldName = tabeltitik.FindField("Name") objListtitik = List.Make for each record in tabeltitik titik = tabeltitik.ReturnValue(fieldName, record) objListtitik.Add(titik) end Return objListtitik
FngsUnselectTabelRute theView = tabeliterasi fielditerasi iterasi
Av.GetProject.FindDoc("Peta Daerah Belawan") = Av.GetProject.FindDoc("iterasi.dbf").GetVTab = tabeliterasi.FindField("iterasi") = tabeliterasi.ReturnValue(fielditerasi,0)
for each i in 1..iterasi themeRute = "Rute"++i.AsString
Universitas Sumatera Utara
tabelJalanPilihan = Av.GetProject.FindDoc("Peta Belawan").FindTheme(themeRute).GetFTab
Daerah
tabelJalanPilihan.GetSelection.ClearAll tabelJalanPilihan.UpdateSelection end
FngsZoomThemeAktif av.GetProject.SetModified(true) theView = av. GetProject.FindDoc("Peta Daerah Belawan") theThemes = theView.GetActiveThemes r = Rect.MakeEmpty for each t in theThemes r = r.UnionWith(t.ReturnExtent) end if (r.IsEmpty) then return nil elseif ( r.ReturnSize = (0@0) ) then theView.GetDisplay.PanTo(r.ReturnOrigin) else theView.GetDisplay.SetExtent(r.Scale(1.5)) end
FngsZoomToRute av.GetProject.SetModified(true) theView = av.GetProject.FindDoc("Peta Daerah Belawan") iterasi = SELF rute = "Rute"++iterasi.AsString 'MsgBox.Info(rute,"info") fieldRute = theView.FindTheme(rute).GetFTab objBitmap = fieldRute.GetSelection iterasi = iterasi.AsString kolom
= "f"+iterasi.AsString
objEkspresi = "(["+kolom+"]= "+iterasi+")" fieldRute.Query(objEkspresi,objBitmap, #VTAB_SELTYPE_NEW) fieldRute.UpdateSelection r = Rect.MakeEmpty for each t in theView.GetActiveThemes if (t.CanSelect) then r = r.UnionWith(t.GetSelectedExtent) end end if (r.IsEmpty) then return nil elseif ( r.ReturnSize = (0@0) ) then theView.GetDisplay.PanTo(r.ReturnOrigin) else theView.GetDisplay.SetExtent(r.Scale(2)) end fieldRute.GetSelection.ClearAll
Universitas Sumatera Utara
fieldRute.UpdateSelection theView.Invalidate
Script14 '\MAIN INI '---------------------------' 'Mengambil nilai dari tombol' '---------------------------' listInput = SELF titikAwal = listInput.Get(0) iterasi = listInput.Get(1)
'Hapustabelhasil dan set flag ke 0 nanti diganti ke tombol reset '--------------------------------------------------------------'Av.Run("FngsHapusTabelList", nil) '------------------------------------------------' 'Variabel penanda apakah rutenya dapat atau tidak' '------------------------------------------------' finalDecision = 0
'----------------------------------------------------' 'tabel parameter jml semut dan jml siklus utk inputan' '----------------------------------------------------' tabelParameter = Av.GetProject.FindDoc("parameter.dbf").GetVTab fieldSemut = tabelParameter.FindField("jmlSemut") fieldSiklus = tabelParameter.FindField("jmlSiklus") nilaiSemut = tabelParameter.ReturnValue(fieldSemut,0) nilaiSiklus = tabelParameter.ReturnValue(fieldSiklus,0)
'---------------------------------------------------'Nilai Radius diambil dari inputan yg dimasukkan user '---------------------------------------------------Av.Run("FngsCopi3", nil) siklusMax = nilaiSiklus for each siklus in 0..(siklusMax-1) Av.Run("FngsCopi2", nil) tabelSiklus = Av.GetProject.FindDoc("tabelsiklus.dbf").GetVTab recordSiklus = tabelSiklus.GetNumRecords tabelSiklus.SetEditable(true) for each i in tabelSiklus tabelSiklus.RemoveRecord(i) end tabelSiklus.SetEditable(false) 'MsgBox.Info("Masuk","info") '--------------------------------------------------------
Universitas Sumatera Utara
semutMax = nilaiSemut for each jmlSemut in 0..(semutMax-1) '-------'mengambil titik dari tabelsimpang '-------tabeltitik = Av.GetProject.FindDoc("titik kumpul.dbf").GetVTab fieldStatus = tabeltitik.FindField("status") objBitmap = tabeltitik.GetSelection objtitikAwal = titikAwal '"t2" '-----------------------------------------------'Kita coba titik awal t469 lalu kita cek statusnya 'jika bahay dia akan cari titik berikutnya '-----------------------------------------------totalPanjang rute
= 0 = objtitikAwal
'------'Mengecek status dari titik awal apakah bahay '------'objtitikAwal = objtitikAwal.Quote eks = "([Name] = "+objtitikAwal+")" tabeltitik.Query(eks, objBitmap, #VTAB_SELTYPE_NEW) tabeltitik.UpdateSelection for each record in tabeltitik.GetSelection status = tabeltitik.ReturnValue(fieldStatus, record) end Av.Run("FngsCopi1", nil) 'jika status bahaya terus mencari while(status = "bahaya") namaFungsi = "FngsAturanTrans" hasilTransisi = Av.Run(namaFungsi, objtitikAwal) titikHasil panjangHasil
'
= hasilTransisi.Get(0) = hasilTransisi.Get(1)
if ((titikHasil = "0") and (panjangHasil = 0)) then if (panjangHasil = 0) then totalPanjang = 0 break end namaFungsi2 objListData
= "FngsPemPerLoc" = {objtitikAwal, titikHasil, panjangHasil}
Av.Run(namaFungsi2, objListData ) 'Cari cara agar titik yg uda dilewati nggak dilewati lagi '-------------------------------------------------------tabelOlahPeromone Av.GetProject.FindDoc("tablecek.dbf").GetVTab objBitmap = tabelOlahPeromone.GetSelection objtitikAwal = objtitikAwal.Quote
=
Universitas Sumatera Utara
objEkspr = "([V1] = "+objtitikAwal+") "+objtitikAwal+")" tabelOlahPeromone.Query(objEkspr, #VTAB_SELTYPE_NEW) tabelOlahPeromone.UpdateSelection
or
([V2]
=
objBitmap,
fieldV1 = tabelOlahPeromone.FindField("V1") fieldV2 = tabelOlahPeromone.FindField("V2") tabelOlahPeromone.SetEditable(true) for each i in tabelOlahPeromone.GetSelection tabelOlahPeromone.SetValue(fieldV1, i, nil) tabelOlahPeromone.SetValue(fieldV2, i, nil) end tabelOlahPeromone.SetEditable(false) objtitikAwal totalPanjang rute
= titikHasil = totalPanjang + panjangHasil = rute ++ objtitikAwal
'mengambil nilai status dari titik berikutnya yang didapat aturan transisi '-----------------------------------------------------------------------tabeltitikS = Av.GetProject.FindDoc("titik simpang.dbf").GetVTab fieldStatusS = tabeltitikS.FindField("status") objBitmap = tabeltitikS.GetSelection objtitikAwal = objtitikAwal.Quote eks = "([Name] = "+objtitikAwal+")" tabeltitikS.Query(eks, objBitmap, #VTAB_SELTYPE_NEW) tabeltitikS.UpdateSelection for each record in tabeltitikS.GetSelection status = tabeltitikS.ReturnValue(fieldStatusS, record) end objtitikAwal = objtitikAwal.Unquote end fieldSemut fieldRute fieldPjgRute
= tabelSiklus.FindField("Semut") = tabelSiklus.FindField("Rute") = tabelSiklus.FindField("PjgRute")
tabelSiklus.SetEditable(true) record = tabelSiklus.AddRecord tabelSiklus.SetValue(fieldSemut, record, (jmlSemut+1)) tabelSiklus.SetValue(fieldRute, record, rute) tabelSiklus.SetValue(fieldPjgRute, record, totalPanjang) tabelSiklus.SetEditable(false) tabelSiklus.Refresh end '-----------------------------------------
Universitas Sumatera Utara
namaFungsi3 = "FngsPemPerGlo" hasilSiklus = Av.Run(namaFungsi3, nil) ruteSiklus = hasilSiklus.Get(0) panjangruteSiklus = hasilSiklus.Get(1) end if ((ruteSiklus = "0") and (panjangruteSiklus = 0)) then MsgBox.Info("Rute Berhenti di Titik Akhir tanpa solusi","Final") finalDecision = 0 keputusanAkhir = {finalDecision} return keputusanAkhir
menemukan
else MsgBox.Info("Rute Terpendek = "++ruteSiklus++" dengan panjang = "++panjangruteSiklus.AsString,"Final") finalDecision = 1 end 'Memasukkan nilai ke tabel hasil list '-----------------------------------nama = titikAwal '"t2" numbernya = iterasi '1 listHasil = {numbernya, nama, ruteSiklus, panjangruteSiklus } Av.Run("FngsInputTabelHasil",listHasil) Av.Run("FngsOpenTabelHasil",listHasil) 'Mengambil nilai rute dan nilai number(rute ke berapa) Jadi yg tepilih itu diberi flag 1 '----------------------------------------------------flag = 1 listHasilPencarian = {flag, ruteSiklus, numbernya} Av.Run("FngsRuteToLIst", listHasilPencarian) 'MsgBox.Info("titik "++titikAwal,"info")
akhir
=
"++titikFinal++"
titik
awal
=
'Menggambar rute yg terpilih '--------------------------'listGambar = {numbernya, titikFinal, titikAwal} Av.Run("FngsGambarRute", numbernya) keputusanAkhir = {finalDecision} return keputusanAkhir 'Cloning rute terpilih '--------------------'Av.Run("Script44, numbernya") 'end
Universitas Sumatera Utara
CURRICULUM VITAE
Nama
: Eko Verdianto
Alamat Sekarang
: Jl. Tirta Utama Griya Asfa 20 Payageli
Alamat Orang Tua
: Jl. Tirta Utama Griya Asfa 20 Payageli
Telp/Hp
: 081533805442
Email
:
[email protected]
Riwayat Pendidikan 2008 – 2013
: S1 Ilmu Komputer Fasilkom-TI Universitas Sumatera Utara, Medan
2008 – 2005
: SMA Negeri 4 Medan
2005 – 2002
: SMP Negeri 30 Medan
2002 – 1996
: SD Negeri Putat Jaya III Surabaya
Keahlian Bahasa
: Indonesia, Inggris
Bahasa Pemrograman : C#.NET, C++, Java, PHP, HTML Database
: MySQL, MS-SQL
Universitas Sumatera Utara