SlideShare a Scribd company logo
1 of 36
1
MEMBUAT SISTEM INFORMASI GEOGRAFIS
SEDERHANA DENGAN VISUAL STUDIO
Studi Kasus : Sistem Informasi Geografis Penjualan Rumah
Oleh : Rahmat Taufiq Sigit
https://blog.ngupy.com
Kali ini kita akan belajar bagaimana membuat aplikasi Sistem Informasi Geografis sederhana dengan
menggunakan bahasa pemrograman visual basic. Aplikasi ini adalah aplikasi untuk mengolah hasil
pemetaan, dan memetakan kondisi terbaru dari sebuah kegiatan.
Sebagai studi kasus kita anak membuat aplikasi untuk developer perumahan. Dimana dari aplikasi
tersebut pengguna dapat mengetahui rumah stok dan terjual.
A. Konsep Sistem Informasi Geografis Sederhana
Berikut ini adalah gambar dari Sistem Informasi Geografis:
Gambar 01. Proses Akses Database dan Siteplan
A0 : User mengakses peta sengan extension .SHP, .DBF yang telah digambar dan disertakan
sebelumnya melalui aplikasi SIG.
A1 : Berdasarkan pada primary key dari file .DBF pada peta, sistem kemudian mengakses database
mysql dan menampilkan informasi dari tabel database kedalam peta.
B0 : User mengakses informasi yang ada dalam database mysql melalui aplikasi.
B1 : Permitaan informasi yang dilakukan pada B0 kemudian diakses pada database dan kembali
ditampilkan pada aplikasi SIG.
B. Ruang Lingkup Aplikasi
1. Aplikasi mengelola beberapa lokasi pembangunan
2
2. Peta yang digunakan adalah peta dengan ekstensi .SHP yang telah dibuat sebelumnya dengan
menggunakan aplikasi pemetaan ArcGIS atau QGIS.
3. Aplikasi ini berfungsi untuk menampilkan informasi status penjualan dari rumah dan stok rumah
yang ada melalui peta dalam bentuk warna
4. Aplikasi ini berfungsi untuk menampilkan informasi status progres pambangunan dari rumah dan
stok rumah yang ada melalui peta dalam bentuk tulisan
5. Aplikasi menggunakan database MySQL
C. Struktur Database pada Peta dan MySQL
Keterangan :
 Tabel Pada File DBF Peta adalah tabel yang dibuat pada saat menggambar siteplan dengan
aplikasi ArcGIS atau QGIS
 Tabel Unit, Tabel Status Pemasaran, Tabel Status Pembangunan dan Tabel Status Sertifikat
adalah table yang dibuat pada database MySQL
 Pada Tabel Unit terdapat Kolom KD_LOKASI dan NOMOR_RUMAH dimana isi dari kolom tersebut
berdasarkan pada isi dari tabel pada file peta sehingga kedua tabel tersebut dapat terhubung
 Kolomg R, G, dan B pada tabel status pemasaran, pembangunan dan sertifikat berisi nilai
kombinasi warna Red, Green, dan Blue yang menjadi warna status. Warna tersebut memberikan
informasi pada peta kavling rumah.
D. Instalasi Database MySQL
1. Download aplikasi XAMPP terbaru
2. Dobel klik file XAMPP yang baru saja Anda download
3. Untuk langkah instalasi dapat mengikuti link tersebut : https://webhostmu.com/cara-
install-xampp/
3
E. Setting Visual Studio
 Mempersiapkan Library MySQL pada Visual Studio
1. Download MySQL Connector https://dev.mysql.com/downloads/windows/visualstudio/
2. Install file MSI Langkah install yang di inginkan (Standar)
3. Perhatikan letak file instalasi dari MySQL Connector
4. Buka Aplikasi Visual Studio dan Buat project baru dengan nama “sig_sederhana” dengan cara
klik “File ->New->Project”
5. Pada Window New Project, Template->Visual Basic->Windows” Pilih Window Form
Application”
6. Masukkan nama project “sig_sederhana” Klik Ok
7. Pada solution explorer klik kanan nama proyek dan pilih properties
8. Pada tab “Preference” Klik Add
9. Klik “Browse”.
4
10. Cari letak file MySQL.Data.dll yang terletak pada file instalasi MySQL Connector.
11. Klik Add dan Kemudian Klik Ok
Anda telah berhasil menginclude library mysql kedalam project anda.
F. Mempersiapkan Toolbox Map Pada Visual Studio
 Mempersiapkan Toolbox Map pada Visual Studio
1. Download Library DotSpatial pada link berikut : https://www.nuget.org/profiles/dotspatial
2. File yang dibutuhkan adalah File berikut :
5
3. Pada solution explorer klik kanan nama proyek dan pilih properties (Seperti pada langkah
include library MySql.Data)
4. Pada tab “Preference” Klik Add
5. Klik “Browse”
6. Cari letak file dotspatial yang sudah anda download
7. Checklist file tersebut dan klik OK
8. Pada bagian toolbox, Klik Kanan dan Add Item
9. Ketikkan nama Tab “DotSpatial”
10. Pada tab “Dotspatial” Klik Kanan Pilih Choose Item
11. Akan tampil Choose Item Toolbox
12. Klik Tab .Net Component Klik Browse
13. Plih File DotSpatial.Controls.dll yang telah anda download sebelumnya dan Klik OK
14. Anda akan meperoleh tambahan toolbox baru untuk pemetaan, seperti pada gmbar dibawah
ini.
6
G. Mendesain Tampilan Halaman Siteplan (frmSiteplan)
1. Buatlah form window yang baru dengan nama frmSiteplan, dengan componen toolbox seperti
pada gambar dibawa ini.
2. Tambahkan Tool “ColorDialog1” sesuai pada gambar diatas
3. Tambahkan Toolbox “Split Container” untuk membagi 2 bagian tengah dari frmSiteplan
4. Pada Panel1 Tambahkan Tool “Legend” sesuai pada gambar diatas
ToolStrip1
SpatialStatusStrip
ColorDialog
Split Conainer
Map
Legend
7
5. Pada properties dari legend ubah name : legenda dan Doc : Fill
6. Pada Panel2 Tambahkan Tool “Map” sesuai pada gambar diatas
7. Pada properties dari map ubah name : petaUtama dan Doc : Fill
H. Mempersiapkan Resources Aplikasi
Langkah ini dilakukan untuk menampung seluruh file penyarta dari aplikasi yang akan dibuat, seperti
gambar icon dari tombol yang dibuak. Hal ini dikalukan untuk memberikan kemudahan dalam
mengakses gambar tersebut.
 Sebelumnya lakukan pancaharian file image ataupun icon untuk digunakan dalam aplikasi
yang akan dibuat
 Pada Solution Explorer, klik kanan nama proyek kemudian pilih add, dan New Folder
I. Menambahkan Tombol Pada ToolStrip
Tambahkan tombol bari dengan cara seperti pada gambar dibawah ini :
8
Lakukan penambahan untuk tombol dibawah ini :
 Tombol Tambah Peta (tsBtnTambahPeta)
1. Pada Properties Ubah Name : tsBtnTambahPeta, Text : Tambah Layer dan Klik tombol (...)
pada Image.
2. Pilih Project Resources File, Klik Tombol Import
3. Cari dan pilih File ico atau image di folder yang sudah anda download sebelumnya, Lalu
klik Ok.
4. File yang pilih akan masuk kedalam folder Resources pada proyek.
5. Langkah yang sama dilakukan untuk tombol selanjutnya dan pilih gambar yang sesuai
 Tombol Hapus Peta (Name : tsBtnHapusPeta, Text : Hapus Layer)
 Tombol Default Size Peta (Name : tsBtnDefault, Text : Ukuran Awal)
 Tombol Pan (Name : tsBtnPan, , Text : Pan)
 Tombol Pilih (Name : tsBtnPilih, , Text : Pilihl)
 Tombol Zoom In (Name : tsBtnZoomIn, Text : Perbesar)
 Tombol Zoom Out (Name : tsBtnZoomOut, Text : Perkecil)
 Tombol Info (Name : tsBtnInfo, Text : Info)
 Tombol Tampilan Label (Name : tsBtnLabel, Text : Nomor Rumah)
 Tombol Hapus Label (Name : tsBtnHapusLabel, Text : Tutup Nomor Rumah)
 Textbox Cari (Name : tsCari)
 Tombol Cari (Name : tsBtnCari, Text : Cari)
 Tombol Ukur (Name : tsBtnUkur, Text : Ukur)
 Tombol Tebel Attribut (Name : tsBtnTableAttribut, Text : Tabel Attribut)
 Tombol Jenis Unit (Name : tsBtnJenisUnit, Text : Jenis Unit)
 Tombol Status Pemasaran (Name : tsBtnStatusPemasran, Text : Status Pemasaran)
 Tombol Status Pembangunan (Name : tsBtnStatusPembangunan, Text : Status Pembangunan)
 Tombol Status Sertifikat (Name : tsBtnStatusSertifikat, Text : Status Sertifikat)
 Tombol Point (Name : tsBtnPoint, Text : Titik)
 Tombol Line (Name : tsBtnLine, Text : Garis)
 Tombol Polygon (Name : tsBtnPoly, Text : Polygon)
9
 Tombol Hapus Peta (Name : tsBtnBersihkanPeta, Text : Bersihkan Peta)
J. Menambahkan Label pada Spatial Status Strip (SpatialStatusStrip1)
Membuat fasilitas status peta dengan menggunakan SpatialStatusStrip. Bagian ini berfungsi untuk
memberikan informasi proses yang terjadi pada peta dan legenda serta memberikan informasi
posisi X dan Y dari pointer pada peta.
1.Tambahkan Status Label (Text : Ready)
2.Tambahkan ProgressBar
3.Tambahkan Status Label (Text : Lokasi)
4.Tambahkan Status Label (Text : :- , Name : tsStatusLokasi)
5.Tambahkan Status Label (Text : ID)
6.Tambahkan Status Label (Text : :- , Name : tsStatusId)
7.Tambahkan Status Label (Text : X/Y)
8.Tambahkan Status Label (Text : :- , Name : tsStatusXy)
K. Setting Legend pada Form frmSiteplan
Pada bagian ini akan dilakukan settingan pada SpatialStatusStrip yang telah dibuat agar tefhubung
dengan legenda dan petaUtama yang telah dibuat sebelumnya.
1. Pilih legend area pada form frmSiteplan
2. Ubah Progress Handler : SpatialStatusStrip1
10
L. Setting Map pada Form Siteplan (frmSiteplan)
1. Pilih Map pada Form frmSiteplan
2. Ubah Legeng : legenda dan Progress Handler : SpatialStatusStrip1
M. Membuat Desain Form Datail Unit (frmDetailRumah)
11
N.Membuat Desain FormCRUD Rumah (frmCRUDRumah)
12
O. Membuat Form Status (frmStatus)
P. Membuat Form Attribut Peta (frmAttributePeta)
13
Q. Membuat Form Ubah Nama Kolom Peta (frmUbahKolomSiteplan)
R. Membuat Form Hapus Kolom Siteplan (frmHapusKolomSiteplan)
14
It’s Code Time
A. Membuat Modus Koneksi Database
1. Klik kanan proyek sig_sederhana, Klik Add, Pilih Module
2. Ketikkan nama file “modKoneksi.vb”
3. Ketikkan Script dibawah ini :
Imports MySql.Data.MySqlClient
Module modKoneksi
Public koneksi As MySql.Data.MySqlClient.MySqlConnection = Nothing
Public sql As New MySql.Data.MySqlClient.MySqlCommand
Public dataadapter As New MySql.Data.MySqlClient.MySqlDataAdapter
Public datareader As MySql.Data.MySqlClient.MySqlDataReader
Public dataset As New DataSet
'untuk koneksi ke DB
Public server As String = "localhost"
Public username As String = "root" //(Nama username database MySQL)
Public password As String = "admin123" //(Password database MySQL)
Public nama_db As String = "sig_sederhana" //(Nama database MySQL)
'sqlTransaction
Public sqlTransaction As MySqlTransaction
Public Sub koneksiDB()
Try
Dim settingServer As String = "server=" & server & ";port=3306;user id=" &
username & "; password=" & password & "; Database=" & nama_db & ";Connect Timeout=30;"
koneksi = New MySqlConnection(settingServer)
If koneksi.State = ConnectionState.Closed Then
koneksi.Open()
End If
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
End Module
B. Coding Pada Form Siteplan (frmSiteplan)
Imports DotSpatial.Symbology
Imports DotSpatial.Controls
Imports DotSpatial.Data
Imports DotSpatial.Plugins.Measure
Imports DotSpatial.Topology
Imports DotSpatial.Symbology.FeatureLayer
15
Public Class frmSiteplan
Public layerPoint As MapPointLayer
Public layerLine As MapLineLayer
Public layerPoly As MapPolygonLayer
Public mapFitureLayer As String
Dim shapeType As String
Dim pointF As New FeatureSet(FeatureType.Point)
Dim pointID As Integer = 0
Dim pointmouseClick As Boolean = False
Dim lineLayer As MapLineLayer
Dim lineF As New FeatureSet(FeatureType.Line)
Dim lineID As Integer = 0
Dim firstClick As Boolean = False
Dim linemouseClick As Boolean = False
Dim polygonF As New FeatureSet(FeatureType.Polygon)
Dim polygonID As Integer = 0
Dim polygonmouseClick As Boolean = False
Private WithEvents mapFunction As MapFunctionMeasure
Private Sub tampilkanLabelPeta()
Dim fname As String = "Tahoma"
Dim fsize As Double = 8.0
Dim fcolor As Color = Color.Black
Dim fLayer As FeatureLayer = petaUtama.Layers.SelectedLayer
If (petaUtama.Layers.Count > 0) Then
Try
fLayer.AddLabels("[NOMOR_RUMAH]", New Font("" + fname + "", fsize), fcolor)
Catch ex As Exception
MsgBox(ex.ToString, MsgBoxStyle.Critical, "Error")
End Try
End If
End Sub
Private Sub hapusLabel()
Dim fLayer As FeatureLayer = petaUtama.Layers.SelectedLayer
If petaUtama.Layers.Count > 0 Then
Try
fLayer.ShowLabels = False
Catch ex As Exception
MsgBox(ex.ToString, MsgBoxStyle.Critical, "Error")
End Try
End If
End Sub
Private Sub cariData(ByVal cari As String)
Dim petaLayer As MapPolygonLayer
Dim fLayer As FeatureLayer = petaUtama.Layers.SelectedLayer
If cari.Length > 0 Then
If petaUtama.Layers.Count > 0 Then
petaLayer = CType(petaUtama.Layers.SelectedLayer, MapPolygonLayer)
If Not petaLayer Is Nothing Then
Try
fLayer.DataSet.FillAttributes()
Dim Scheme As PolygonScheme = New PolygonScheme()
Dim filter As String = "[NOMOR_RUMAH] LIKE '%" & cari & "%'"
Dim Category As PolygonCategory = New PolygonCategory(Color.Yellow,
Color.Red, 1)
Category.FilterExpression = filter
Scheme.AddCategory(Category)
Category.LegendText = "ID PRODUK = " + tsCari.Text
fLayer.Symbology = Scheme
tsCari.Text = ""
Catch ex As Exception
MsgBox(ex.ToString, MsgBoxStyle.Critical, "Error")
16
End Try
' End If
Else
MessageBox.Show("Pilihan Layer Harus Polygon", "Informasi",
MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
End If
End If
End Sub
Function gabungArray(ByVal ar As Array)
Dim result As String = ""
Dim b As Integer = 0
For j As Integer = 0 To ar.Length - 1 Step 1
If Not ar(j) = "" And result = "" Then
result = ar(j)
b = 1
ElseIf Not ar(j) = "" And Not result = "" Then
result = ar(j) & "','" & result
End If
Next
Return result
End Function
Private Sub jenisUnit()
Dim petaLayer As MapPolygonLayer = Nothing
If (petaUtama.Layers.Count > 0) Then
petaLayer = CType(petaUtama.Layers.SelectedLayer, MapPolygonLayer)
If Not petaLayer Is Nothing Then
petaLayer = TryCast(petaUtama.Layers.SelectedLayer, MapPolygonLayer)
petaLayer.DataSet.FillAttributes()
Dim jumlah As Integer = 0
Dim category() As PolygonCategory = Nothing
Dim filter() As String = Nothing
Dim kd_status() As String = Nothing
Dim scheme As New PolygonScheme
petaLayer.Symbology.ClearCategories()
Try
Call koneksiDB()
sql.Connection = koneksi
sql.CommandType = CommandType.Text
Dim query As String
query = "select kd_jenis_unit,nama_jenis_unit,r,g,b from tbl_jenis_unit
where 1=1 ORDER BY kd_jenis_unit asc"
sql.CommandText = query
dataadapter = New MySql.Data.MySqlClient.MySqlDataAdapter(sql.CommandText,
koneksi)
dataadapter.Fill(dataset, "data_warna_jenis_unit")
Dim i As Integer = 0
For i = 0 To dataset.Tables("data_warna_jenis_unit").Rows.Count - 1
Dim query_jenis_unit As String = "select nomor_rumah from tbl_unit
where kd_lokasi='" & tsStatusLokasi.Text & "' and kd_jenis_unit='" &
dataset.Tables("data_warna_jenis_unit").Rows(i)(0).ToString & "'"
sql.CommandText = query_jenis_unit
dataadapter = New
MySql.Data.MySqlClient.MySqlDataAdapter(sql.CommandText, koneksi)
dataadapter.Fill(dataset, "data_jenis_unit")
ReDim kd_status(dataset.Tables("data_jenis_unit").Rows.Count - 1)
For j As Integer = 0 To dataset.Tables("data_jenis_unit").Rows.Count -
1
kd_status(j) = dataset.Tables("data_jenis_unit").Rows(j)(0)
Next
Dim daftar_kd_unit As String = gabungArray(kd_status)
If Not daftar_kd_unit = "" Then
ReDim Preserve category(i)
category(i) = New
PolygonCategory(Color.FromArgb(dataset.Tables("data_warna_jenis_unit").Rows(i)(2),
17
dataset.Tables("data_warna_jenis_unit").Rows(i)(3),
dataset.Tables("data_warna_jenis_unit").Rows(i)(4)), Color.Red, 1)
ReDim Preserve filter(i)
filter(i) = "[NOMOR_RUMAH] IN ('" & daftar_kd_unit & "')"
category(i).FilterExpression = filter(i)
category(i).LegendText =
dataset.Tables("data_warna_jenis_unit").Rows(i)(1).ToString & " [" &
dataset.Tables("data_jenis_unit").Rows.Count & "]"
scheme.AddCategory(category(i))
End If
dataset.Tables("data_jenis_unit").Clear()
Next
dataset.Tables("data_warna_jenis_unit").Clear()
koneksi.Close()
Catch ex As Exception
MsgBox(ex.ToString, MsgBoxStyle.Critical, "Error")
End Try
If scheme.Categories.Count >= 0 Then
petaLayer.Symbology = scheme
Else
MessageBox.Show("Tidak ada kecocokan peta dengan database", "Informasi",
MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
Else
MessageBox.Show("Layer Terpilih Bukan Polygon", "Informasi",
MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
End If
End Sub
Private Sub statusPemasaran()
Dim petaLayer As MapPolygonLayer = Nothing
If (petaUtama.Layers.Count > 0) Then
petaLayer = CType(petaUtama.Layers.SelectedLayer, MapPolygonLayer)
If Not petaLayer Is Nothing Then
petaLayer = TryCast(petaUtama.Layers.SelectedLayer, MapPolygonLayer)
petaLayer.DataSet.FillAttributes()
Dim jumlah As Integer = 0
Dim category() As PolygonCategory = Nothing
Dim filter() As String = Nothing
Dim kd_status() As String = Nothing
Dim scheme As New PolygonScheme
petaLayer.Symbology.ClearCategories()
Try
Call koneksiDB()
sql.Connection = koneksi
sql.CommandType = CommandType.Text
Dim query As String
query = "select kd_status_pemasaran,nama_status_pemasaran,r,g,b from
tbl_status_pemasaran where 1=1 ORDER BY kd_status_pemasaran asc"
sql.CommandText = query
dataadapter = New MySql.Data.MySqlClient.MySqlDataAdapter(sql.CommandText,
koneksi)
dataadapter.Fill(dataset, "data_warna_status_pemasaran")
Dim i As Integer = 0
For i = 0 To dataset.Tables("data_warna_status_pemasaran").Rows.Count - 1
query = "select nomor_rumah from tbl_unit where kd_lokasi='" &
tsStatusLokasi.Text & "' and kd_status_pemasaran='" &
dataset.Tables("data_warna_status_pemasaran").Rows(i)(0).ToString & "'"
sql.CommandText = query
dataadapter = New
MySql.Data.MySqlClient.MySqlDataAdapter(sql.CommandText, koneksi)
dataadapter.Fill(dataset, "data_unit_pemasaran")
ReDim kd_status(dataset.Tables("data_unit_pemasaran").Rows.Count - 1)
For j As Integer = 0 To
dataset.Tables("data_unit_pemasaran").Rows.Count - 1
kd_status(j) = dataset.Tables("data_unit_pemasaran").Rows(j)(0)
Next
Dim daftar_kd_unit As String = gabungArray(kd_status)
18
If Not daftar_kd_unit = "" Then
ReDim Preserve category(i)
category(i) = New
PolygonCategory(Color.FromArgb(dataset.Tables("data_warna_status_pemasaran").Rows(i)(2),
dataset.Tables("data_warna_status_pemasaran").Rows(i)(3),
dataset.Tables("data_warna_status_pemasaran").Rows(i)(4)), Color.Red, 1)
ReDim Preserve filter(i)
filter(i) = "[NOMOR_RUMAH] IN ('" & daftar_kd_unit & "')"
category(i).FilterExpression = filter(i)
category(i).LegendText =
dataset.Tables("data_warna_status_pemasaran").Rows(i)(1).ToString & " [" &
dataset.Tables("data_unit_pemasaran").Rows.Count & "]"
scheme.AddCategory(category(i))
End If
dataset.Tables("data_unit_pemasaran").Clear()
Next
dataset.Tables("data_warna_status_pemasaran").Clear()
koneksi.Close()
Catch ex As Exception
MsgBox(ex.ToString, MsgBoxStyle.Critical, "Error")
End Try
If scheme.Categories.Count >= 0 Then
petaLayer.Symbology = scheme
Else
MessageBox.Show("Tidak ada kecocokan peta dengan database", "Informasi",
MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
Else
MessageBox.Show("Layer Terpilih Bukan Polygon", "Informasi",
MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
End If
End Sub
Private Sub statusPembangunan()
Dim petaLayer As MapPolygonLayer = Nothing
Dim query As String
If (petaUtama.Layers.Count > 0) Then
petaLayer = CType(petaUtama.Layers.SelectedLayer, MapPolygonLayer)
If Not petaLayer Is Nothing Then
petaLayer = TryCast(petaUtama.Layers.SelectedLayer, MapPolygonLayer)
petaLayer.DataSet.FillAttributes()
Dim jumlah As Integer = 0
Dim category() As PolygonCategory = Nothing
Dim filter() As String = Nothing
Dim kd_status() As String = Nothing
Dim scheme As New PolygonScheme
petaLayer.Symbology.ClearCategories()
Try
Call koneksiDB()
sql.Connection = koneksi
sql.CommandType = CommandType.Text
query = "select kd_status_pembangunan,nama_status_pembangunan,r,g,b from
tbl_status_pembangunan where 1=1 ORDER BY kd_status_pembangunan asc"
sql.CommandText = query
dataadapter = New MySql.Data.MySqlClient.MySqlDataAdapter(sql.CommandText,
koneksi)
dataadapter.Fill(dataset, "data_warna_status_pembangunan")
Dim i As Integer = 0
For i = 0 To dataset.Tables("data_warna_status_pembangunan").Rows.Count -
1
query = "select nomor_rumah from tbl_unit where kd_lokasi='" &
tsStatusLokasi.Text & "' and kd_status_pembangunan='" &
dataset.Tables("data_warna_status_pembangunan").Rows(i)(0).ToString & "'"
sql.CommandText = query
dataadapter = New
MySql.Data.MySqlClient.MySqlDataAdapter(sql.CommandText, koneksi)
dataadapter.Fill(dataset, "data_unit_status_pembangunan")
ReDim
kd_status(dataset.Tables("data_unit_status_pembangunan").Rows.Count - 1)
For j As Integer = 0 To
dataset.Tables("data_unit_status_pembangunan").Rows.Count - 1
19
kd_status(j) =
dataset.Tables("data_unit_status_pembangunan").Rows(j)(0)
Next
Dim daftar_kd_unit As String = gabungArray(kd_status)
If Not daftar_kd_unit = "" Then
ReDim Preserve category(i)
category(i) = New
PolygonCategory(Color.FromArgb(dataset.Tables("data_warna_status_pembangunan").Rows(i)(2),
dataset.Tables("data_warna_status_pembangunan").Rows(i)(3),
dataset.Tables("data_warna_status_pembangunan").Rows(i)(4)), Color.Red, 1)
ReDim Preserve filter(i)
filter(i) = "[NOMOR_RUMAH] IN ('" & daftar_kd_unit & "')"
category(i).FilterExpression = filter(i)
category(i).LegendText =
dataset.Tables("data_warna_status_pembangunan").Rows(i)(1).ToString & " [" &
dataset.Tables("data_unit_status_pembangunan").Rows.Count & "]"
scheme.AddCategory(category(i))
End If
dataset.Tables("data_unit_status_pembangunan").Clear()
Next
dataset.Tables("data_warna_status_pembangunan").Clear()
koneksi.Close()
Catch ex As Exception
MsgBox(ex.ToString, MsgBoxStyle.Critical, "Error")
End Try
If scheme.Categories.Count >= 0 Then
petaLayer.Symbology = scheme
Else
MessageBox.Show("Tidak ada kecocokan peta dengan database", "Informasi",
MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
Else
MessageBox.Show("Layer Terpilih Bukan Polygon", "Informasi",
MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
End If
End Sub
Private Sub statusSertifikat()
Dim petaLayer As MapPolygonLayer = Nothing
If (petaUtama.Layers.Count > 0) Then
petaLayer = CType(petaUtama.Layers.SelectedLayer, MapPolygonLayer)
If Not petaLayer Is Nothing Then
petaLayer = TryCast(petaUtama.Layers.SelectedLayer, MapPolygonLayer)
petaLayer.DataSet.FillAttributes()
Dim jumlah As Integer = 0
Dim category() As PolygonCategory = Nothing
Dim filter() As String = Nothing
Dim kd_status() As String = Nothing
Dim scheme As New PolygonScheme
petaLayer.Symbology.ClearCategories()
Try
Call koneksiDB()
sql.Connection = koneksi
sql.CommandType = CommandType.Text
Dim query As String
query = "select kd_status_sertifikat,nama_status_sertifikat,r,g,b from
tbl_status_sertifikat where 1=1 ORDER BY kd_status_sertifikat asc"
sql.CommandText = query
dataadapter = New MySql.Data.MySqlClient.MySqlDataAdapter(sql.CommandText,
koneksi)
dataadapter.Fill(dataset, "data_warna_status_sertifikat")
Dim i As Integer = 0
For i = 0 To dataset.Tables("data_warna_status_sertifikat").Rows.Count - 1
query = "select nomor_rumah from tbl_unit where kd_lokasi='" &
tsStatusLokasi.Text & "' and kd_status_sertifikat='" &
dataset.Tables("data_warna_status_sertifikat").Rows(i)(0).ToString & "'"
sql.CommandText = query
dataadapter = New
MySql.Data.MySqlClient.MySqlDataAdapter(sql.CommandText, koneksi)
dataadapter.Fill(dataset, "data_unit_sertifikat")
20
ReDim kd_status(dataset.Tables("data_unit_sertifikat").Rows.Count - 1)
For j As Integer = 0 To
dataset.Tables("data_unit_sertifikat").Rows.Count - 1
kd_status(j) = dataset.Tables("data_unit_sertifikat").Rows(j)(0)
Next
Dim daftar_kd_unit As String = gabungArray(kd_status)
If Not daftar_kd_unit = "" Then
ReDim Preserve category(i)
category(i) = New
PolygonCategory(Color.FromArgb(dataset.Tables("data_warna_status_sertifikat").Rows(i)(2),
dataset.Tables("data_warna_status_sertifikat").Rows(i)(3),
dataset.Tables("data_warna_status_sertifikat").Rows(i)(4)), Color.Red, 1)
ReDim Preserve filter(i)
filter(i) = "[NOMOR_RUMAH] IN ('" & daftar_kd_unit & "')"
category(i).FilterExpression = filter(i)
category(i).LegendText =
dataset.Tables("data_warna_status_sertifikat").Rows(i)(1).ToString & " [" &
dataset.Tables("data_unit_sertifikat").Rows.Count & "]"
scheme.AddCategory(category(i))
End If
dataset.Tables("data_unit_sertifikat").Clear()
Next
dataset.Tables("data_warna_status_sertifikat").Clear()
koneksi.Close()
Catch ex As Exception
MsgBox(ex.ToString)
End Try
If scheme.Categories.Count >= 0 Then
petaLayer.Symbology = scheme
Else
MessageBox.Show("Tidak ada kecocokan peta dengan database", "Informasi",
MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
Else
MessageBox.Show("Layer Terpilih Bukan Polygon", "Informasi",
MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
End If
End Sub
Private Sub tsBtnTambahPeta_Click(sender As Object, e As EventArgs) Handles
tsBtnTambahPeta.Click
petaUtama.AddLayers()
End Sub
Private Sub tsBtnHapusPeta_Click(sender As Object, e As EventArgs) Handles
tsBtnHapusPeta.Click
petaUtama.ClearLayers()
tsStatusLokasi.Text = ":-"
tsStatusId.Text = ":-"
End Sub
Private Sub tsBtnDefault_Click(sender As Object, e As EventArgs) Handles
tsBtnDefault.Click
petaUtama.ZoomToMaxExtent()
End Sub
Private Sub tsBtnPan_Click(sender As Object, e As EventArgs) Handles tsBtnPan.Click
petaUtama.FunctionMode = DotSpatial.Controls.FunctionMode.Pan
End Sub
Private Sub tsBtnPilih_Click(sender As Object, e As EventArgs) Handles tsBtnPilih.Click
petaUtama.FunctionMode = DotSpatial.Controls.FunctionMode.Select
End Sub
Private Sub tsBtnZoomIn_Click(sender As Object, e As EventArgs) Handles tsBtnZoomIn.Click
petaUtama.FunctionMode = DotSpatial.Controls.FunctionMode.ZoomIn
End Sub
Private Sub tsBtnZoomOut_Click(sender As Object, e As EventArgs) Handles
tsBtnZoomOut.Click
21
petaUtama.FunctionMode = DotSpatial.Controls.FunctionMode.ZoomOut
End Sub
Private Sub tsBtnInfo_Click(sender As Object, e As EventArgs) Handles tsBtnInfo.Click
petaUtama.FunctionMode = DotSpatial.Controls.FunctionMode.Info
End Sub
Private Sub tsBtnCari_Click(sender As Object, e As EventArgs) Handles tsBtnCari.Click
cariData(tsCari.Text)
End Sub
Private Sub tsBtnUkur_Click(sender As Object, e As EventArgs) Handles tsBtnUkur.Click
With petaUtama
.FunctionMode = FunctionMode.None
For Each mapfunc As IMapFunction In .MapFunctions
If TypeOf mapfunc Is MapFunctionMeasure Then
.MapFunctions.Remove(mapfunc)
Exit For
End If
Next
mapFunction = New MapFunctionMeasure(petaUtama)
.MapFunctions.Add(mapFunction)
.Cursor = Cursors.Cross
mapFunction.Activate()
End With
End Sub
Private Sub tsBtnTabel_Click(sender As Object, e As EventArgs) Handles tsBtnTabel.Click
If petaUtama.Layers.Count > 0 Then
For i = 0 To petaUtama.Layers.Count - 1
If petaUtama.Layers(i).IsSelected = True Then
If petaUtama.Layers(i).ToString = "DotSpatial.Controls.MapPointLayer" Then
layerPoint = CType(petaUtama.Layers(i), MapPointLayer)
mapFitureLayer = "Point"
End If
If petaUtama.Layers(i).ToString = "DotSpatial.Controls.MapLineLayer" Then
layerLine = CType(petaUtama.Layers(i), MapLineLayer)
mapFitureLayer = "Line"
End If
If petaUtama.Layers(i).ToString = "DotSpatial.Controls.MapPolygonLayer"
Then
layerPoly = CType(petaUtama.Layers(i), MapPolygonLayer)
mapFitureLayer = "Polygon"
End If
Select Case mapFitureLayer
Case "Point"
layerPoint.DataSet.AddFid()
frmAttributPeta.dgvAttributPeta.DataSource =
layerPoint.DataSet.DataTable
frmAttributPeta.tsSources.Text = layerPoint.DataSet.Filename
frmAttributPeta.tsTipeShape.Text = mapFitureLayer
Case "Line"
layerLine.DataSet.AddFid()
frmAttributPeta.dgvAttributPeta.DataSource =
layerLine.DataSet.DataTable
frmAttributPeta.tsSources.Text = layerLine.DataSet.Filename
frmAttributPeta.tsTipeShape.Text = mapFitureLayer
Case "Polygon"
layerPoly.DataSet.AddFid()
frmAttributPeta.dgvAttributPeta.DataSource =
layerPoly.DataSet.DataTable
frmAttributPeta.tsSources.Text = layerPoly.DataSet.Filename
frmAttributPeta.tsTipeShape.Text = mapFitureLayer
End Select
End If
Next
Else
MsgBox(e.ToString, MsgBoxStyle.Critical, "Error")
End If
frmAttributPeta.Show()
End Sub
22
Private Sub tsBtnPoint_Click(sender As Object, e As EventArgs) Handles tsBtnPoint.Click
petaUtama.Cursor = Cursors.Cross
shapeType = "Point"
pointF.Projection = petaUtama.Projection
Dim column As New DataColumn("PointID")
pointF.DataTable.Columns.Add(column)
Dim pointLayer As MapPointLayer = petaUtama.Layers.Add(pointF)
Dim symbol As New PointSymbolizer(Color.Red, DotSpatial.Symbology.PointShape.Ellipse,
3)
pointLayer.Symbolizer = symbol
pointLayer.LegendText = "point"
pointmouseClick = True
End Sub
Private Sub tsBtnLine_Click(sender As Object, e As EventArgs) Handles tsBtnLine.Click
petaUtama.Cursor = Cursors.Cross
shapeType = "line"
lineF.Projection = petaUtama.Projection
Dim column As New DataColumn("LineID")
If Not (lineF.DataTable.Columns.Contains("LineID")) Then
lineF.DataTable.Columns.Add(column)
End If
lineLayer = petaUtama.Layers.Add(lineF)
Dim symbol As New LineSymbolizer(Color.Blue, 2)
lineLayer.Symbolizer = symbol
lineLayer.LegendText = "line"
firstClick = True
linemouseClick = True
End Sub
Private Sub tsBtnPoly_Click(sender As Object, e As EventArgs) Handles tsBtnPoly.Click
petaUtama.Cursor = Cursors.Cross
shapeType = "polygon"
polygonF.Projection = petaUtama.Projection
Dim column As New DataColumn("PolygonID")
polygonF.DataTable.Columns.Add(column)
Dim polygonLayer As MapPolygonLayer = petaUtama.Layers.Add(polygonF)
Dim symbol As New PolygonSymbolizer(Color.Green)
polygonLayer.Symbolizer = symbol
polygonLayer.LegendText = "polygon"
firstClick = True
polygonmouseClick = True
End Sub
Private Sub tsBtnBersihkanPeta_Click(sender As Object, e As EventArgs) Handles
tsBtnBersihkanPeta.Click
Me.Close()
End Sub
Private Sub petaUtama_MouseMove(sender As Object, e As MouseEventArgs) Handles
petaUtama.MouseMove
Dim coord As Coordinate = petaUtama.PixelToProj(e.Location)
tsStatusXy.Text = ":" & coord.X.ToString() & " / " & coord.Y.ToString()
If petaUtama.Layers.Count > 0 And tsStatusLokasi.Text = ":-" Then
For i = 0 To petaUtama.Layers.Count - 1
If petaUtama.Layers(i).ToString = "DotSpatial.Controls.MapPolygonLayer" Then
Dim dt As DataTable
layerPoly = CType(petaUtama.Layers(i), MapPolygonLayer)
dt = layerPoly.DataSet.DataTable
Try
tsStatusLokasi.Text = dt.Rows(1).Item("KD_LOKASI").ToString()
Catch ex As Exception
‘ MsgBox(e.ToString, MsgBoxStyle.Critical, "Error")//Tidak Menampilkan
Error
End Try
End If
Next
End If
End Sub
23
Private Sub petaUtama_MouseUp(sender As Object, e As MouseEventArgs) Handles
petaUtama.MouseUp
If petaUtama.Layers.Count > 0 Then
Dim fLayer As FeatureLayer = petaUtama.Layers.SelectedLayer
Dim dt As DataTable
Dim petaLayer As MapPolygonLayer
Try
petaLayer = CType(petaUtama.Layers.SelectedLayer, MapPolygonLayer)
If petaUtama.FunctionMode = FunctionMode.Select And Not petaLayer Is Nothing
Then
Dim result As List(Of IFeature) = New List(Of IFeature)()
result = fLayer.Selection.ToFeatureList
Dim data_profil As New DataTable
For Each feature As IFeature In result
If Not IsDBNull(feature.ShapeIndex) Then
dt = petaLayer.DataSet.DataTable
If frmDetailRumah.IsHandleCreated Then
frmDetailRumah.Close()
End If
Dim id As String =
dt.Rows(fLayer.DataSet.ShapeIndices.IndexOf(feature.ShapeIndex)).Item("NOMOR_RUMAH").ToString()
Dim kd_lokasi As String =
dt.Rows(fLayer.DataSet.ShapeIndices.IndexOf(feature.ShapeIndex)).Item("KD_LOKASI").ToString()
tsStatusId.Text = id
tsStatusLokasi.Text = kd_lokasi
frmDetailRumah.Refresh()
frmDetailRumah.lblNomorRumah.Text = id
frmDetailRumah.lblKodeLokasi.Text = kd_lokasi
frmDetailRumah.ShowDialog()
End If
Next
End If
Catch ex As Exception
MsgBox(e.ToString)
End Try
End If
End Sub
Private Sub tsBtnLabel_Click(sender As Object, e As EventArgs) Handles tsBtnLabel.Click
tampilkanLabelPeta()
End Sub
Private Sub tsBtnHapusLabel_Click(sender As Object, e As EventArgs) Handles
tsBtnHapusLabel.Click
hapusLabel()
End Sub
Private Sub tsBtnJenisUnit_Click(sender As Object, e As EventArgs) Handles
tsBtnJenisUnit.Click
jenisUnit()
End Sub
Private Sub tsBtnStatusPemasaran_Click(sender As Object, e As EventArgs) Handles
tsBtnStatusPemasaran.Click
statusPemasaran()
End Sub
Private Sub tsStatusPembangunan_Click(sender As Object, e As EventArgs) Handles
tsStatusPembangunan.Click
statusPembangunan()
End Sub
Private Sub tsStatusSertifikat_Click(sender As Object, e As EventArgs) Handles
tsStatusSertifikat.Click
statusSertifikat()
End Sub
End Sub
End Class
24
C. Coding Pada Form Detail Rumah (frmDetailRumah)
Public Class frmDetailRumah
Private Sub detailData(ByVal kd_lokasi As String, nomor_rumah As String)
Dim query As String
Dim jawaban As Integer
If nomor_rumah.Length <= 0 Or kd_lokasi.Length <= 0 Then
MsgBox("Masukkan Nomor Rumah/NDR yang dicari", MsgBoxStyle.Critical, "Pesan")
Exit Sub
Else
Try
Call koneksiDB()
sql.Connection = koneksi
sql.CommandType = CommandType.Text
query = "select
kd_lokasi,nomor_rumah,luas_bangunan,luas_tanah,alamat,harga_jual,nama_jenis_unit," & _
"nama_status_pemasaran,nama_status_pembangunan,nama_status_sertifikat
" & _
"from tbl_unit left join tbl_jenis_unit on
(tbl_unit.kd_jenis_unit=tbl_jenis_unit.kd_jenis_unit) " & _
"left join tbl_status_pemasaran on
(tbl_unit.kd_status_pemasaran=tbl_status_pemasaran.kd_status_pemasaran) " & _
"left join tbl_status_pembangunan on
(tbl_unit.kd_status_pembangunan=tbl_status_pembangunan.kd_status_pembangunan) " & _
"left join tbl_status_sertifikat on
(tbl_unit.kd_status_sertifikat=tbl_status_sertifikat.kd_status_sertifikat) " & _
"where tbl_unit.kd_lokasi='" & kd_lokasi & "' and
tbl_unit.nomor_rumah='" & nomor_rumah & "'"
Console.WriteLine(query)
sql.CommandText = query
datareader = sql.ExecuteReader
datareader.Read()
If datareader.HasRows = True Then
Me.lblKodeLokasi.Text = datareader.GetString(0).ToString
Me.lblNomorRumah.Text = datareader.GetString(1).ToString
Me.lblLuasBangunan.Text = datareader.GetString(2).ToString
Me.lblLuasTanah.Text = datareader.GetString(3).ToString
Me.lblAlamat.Text = datareader.GetString(4).ToString
Me.lblHargaJual.Text = Format(Val(datareader.GetString(5).ToString),
"###,###")
Me.lblJenisUnit.Text = datareader.GetString(6).ToString
Me.lblStatusPemasaran.Text = datareader.GetString(7).ToString
Me.lblStatusPembangunan.Text = datareader.GetString(8).ToString
Me.lblStatusSertifikat.Text = datareader.GetString(9).ToString
Else
jawaban = MessageBox.Show("Data Rumah Tidak Ditemukan, Masukkan Data
Baru ??", "Informasi", MessageBoxButtons.YesNo, MessageBoxIcon.Information)
If jawaban = vbYes Then
frmCrudRumah.txtKodeLokasi.Text = lblKodeLokasi.Text
frmCrudRumah.txtNomorRumah.Text = lblNomorRumah.Text
frmCrudRumah.Text = "Masukkan Data Rumah"
frmCrudRumah.ShowDialog()
ElseIf jawaban = vbNo Then
Me.Close()
End If
End If
koneksi.Close()
Catch ex As Exception
MsgBox(ex.ToString, MsgBoxStyle.Critical, "Error")
End Try
End If
End Sub
Private Sub hapusData(ByVal kd_lokasi As String, nomor_rumah As String)
If MsgBox("Anda Yakin Akan Hapus Data Rumah = " & kd_lokasi & " Nomor Rumah = " &
nomor_rumah & "??", MsgBoxStyle.OkCancel, "Konfirmasi Hapus") = MsgBoxResult.Cancel Then
Exit Sub
End If
Try
Call koneksiDB()
sql.Connection = koneksi
sql.CommandType = CommandType.Text
Dim query As String = "delete from tbl_unit where kd_lokasi = '" & kd_lokasi & "'
and nomor_rumah='" & nomor_rumah & "'"
25
sql.CommandText = query
If sql.ExecuteNonQuery().ToString = True Then
MsgBox("Hapus Data Rumah Berhasil", MsgBoxStyle.Information, "Pesan")
Else
MsgBox("Hapus Data Rumah Gagal", MsgBoxStyle.Critical, "Error")
End If
Catch ex As Exception
MsgBox(ex.ToString, MsgBoxStyle.Critical, "Error")
End Try
koneksi.Close()
End Sub
Private Sub btnStatusPemasaran_Click(sender As Object, e As EventArgs) Handles
btnStatusPemasaran.Click
If lblKodeLokasi.Text.Length > 0 And lblNomorRumah.Text.Length > 0 Then
frmStatus.tsKdLokasi.Text = lblKodeLokasi.Text
frmStatus.tsNomorRumah.Text = lblNomorRumah.Text
frmStatus.Text = "Ubah Status Pemasaran"
frmStatus.ShowDialog()
End If
End Sub
Private Sub btnStatusPembangunan_Click(sender As Object, e As EventArgs) Handles
btnStatusPembangunan.Click
If lblKodeLokasi.Text.Length > 0 And lblNomorRumah.Text.Length > 0 Then
frmStatus.tsKdLokasi.Text = lblKodeLokasi.Text
frmStatus.tsNomorRumah.Text = lblNomorRumah.Text
frmStatus.Text = "Ubah Status Pembangunan"
frmStatus.ShowDialog()
End If
End Sub
Private Sub btnStatusSertifikat_Click(sender As Object, e As EventArgs) Handles
btnStatusSertifikat.Click
If lblKodeLokasi.Text.Length > 0 And lblNomorRumah.Text.Length > 0 Then
frmStatus.tsKdLokasi.Text = lblKodeLokasi.Text
frmStatus.tsNomorRumah.Text = lblNomorRumah.Text
frmStatus.Text = "Ubah Status Sertifikat"
frmStatus.ShowDialog()
End If
End Sub
Private Sub btnUbah_Click(sender As Object, e As EventArgs) Handles btnUbah.Click
frmCrudRumah.Text = "Ubah Data Rumah"
frmCrudRumah.txtKodeLokasi.Text = lblKodeLokasi.Text
frmCrudRumah.txtNomorRumah.Text = lblNomorRumah.Text
frmCrudRumah.ShowDialog()
End Sub
Private Sub btnRefresh_Click(sender As Object, e As EventArgs) Handles btnRefresh.Click
detailData(lblKodeLokasi.Text, lblNomorRumah.Text)
End Sub
Private Sub frmDetailRumah_Load(sender As Object, e As EventArgs) Handles MyBase.Load
If lblKodeLokasi.Text = "" Or lblNomorRumah.Text = "" Then
MsgBox("Data Lokasi Dan Nomor Rumah Kosong", MsgBoxStyle.Information, "Informasi")
Me.Close()
Else
detailData(lblKodeLokasi.Text, lblNomorRumah.Text)
End If
End Sub
Private Sub btnHapus_Click(sender As Object, e As EventArgs) Handles btnHapus.Click
hapusData(lblKodeLokasi.Text, lblNomorRumah.Text)
Me.Close()
End Sub
End Class
26
D. Coding Pada Form CRUD Rumah (frmCrudRumah)
Imports MySql.Data.MySqlClient
Public Class frmCrudRumah
Private Sub kosong()
txtNomorRumah.Text = ""
txtLuasBangunan.Text = ""
txtLuasTanah.Text = ""
txtAlamat.Text = ""
txtHargaJual.Text = ""
cmbJenisUnit.SelectedIndex = 0
End Sub
Private Sub tampilJenisUnit()
Dim myData As New DataTable
Try
Call koneksiDB()
sql.Connection = koneksi
sql.CommandType = CommandType.Text
sql.CommandText = "select kd_jenis_unit,nama_jenis_unit from tbl_jenis_unit order
by kd_jenis_unit asc"
dataadapter.SelectCommand = sql
dataset.Tables.Clear()
dataadapter.Fill(myData)
cmbJenisUnit.DataSource = myData
cmbJenisUnit.DisplayMember = "nama_jenis_unit"
cmbJenisUnit.ValueMember = "kd_jenis_unit"
koneksi.Close()
Catch ex As Exception
MsgBox(ex.ToString, MsgBoxStyle.Critical, "Error")
End Try
End Sub
Private Sub Simpan()
If txtKodeLokasi.Text.Length > 0 Then
Try
Call koneksiDB()
sql.Connection = koneksi
sql.CommandType = CommandType.Text
Dim query As String = "INSERT INTO tbl_unit (kd_lokasi, nomor_rumah,
luas_bangunan,luas_tanah,alamat,harga_jual,kd_jenis_unit) "
query &= "VALUES
(@kd_lokasi,@nomor_rumah,@luas_bangunan,@luas_tanah,@alamat,@harga_jual,@kd_jenis_unit);"
With sql
.CommandText = query
.Parameters.Clear()
.Parameters.Add("@kd_lokasi", MySqlDbType.String).Value =
txtKodeLokasi.Text
.Parameters.Add("@nomor_rumah", MySqlDbType.String).Value =
txtNomorRumah.Text
.Parameters.Add("@luas_bangunan", MySqlDbType.String).Value =
txtLuasBangunan.Text
.Parameters.Add("@luas_tanah", MySqlDbType.String).Value =
txtLuasTanah.Text
.Parameters.Add("@alamat", MySqlDbType.String).Value = txtAlamat.Text
.Parameters.Add("@harga_jual", MySqlDbType.Int16).Value =
txtHargaJual.Text
.Parameters.Add("@kd_jenis_unit", MySqlDbType.String).Value =
cmbJenisUnit.SelectedValue
.ExecuteNonQuery()
End With
kosong()
MsgBox("Simpan Data Rumah Berhasil", MsgBoxStyle.Information, "Pesan")
Catch ex As MySqlException
MsgBox(ex.ToString, MsgBoxStyle.Critical, "Error")
Finally
koneksi.Close()
End Try
End If
End Sub
Private Sub ubahData(ByVal kd_lokasi As String, nomor_rumah As String)
Dim query As String
27
If kd_lokasi.Length <= 0 And nomor_rumah.Length <= 0 Then
MsgBox("Masukkan Nomor Rumah yang dicari", MsgBoxStyle.Critical, "Pesan")
Else
Try
Call koneksiDB()
sql.Connection = koneksi
sql.CommandType = CommandType.Text
query = "select
kd_lokasi,nomor_rumah,luas_bangunan,luas_tanah,alamat,harga_jual,kd_jenis_unit from tbl_unit
where kd_lokasi='" & kd_lokasi & "' and nomor_rumah='" & nomor_rumah & "'"
sql.CommandText = query
datareader = sql.ExecuteReader
datareader.Read()
If datareader.HasRows = True Then
txtKodeLokasi.Text = datareader.GetString(0).ToString
txtNomorRumah.Text = datareader.GetString(1).ToString
txtLuasBangunan.Text = datareader.GetString(2).ToString
txtLuasTanah.Text = datareader.GetString(3).ToString
txtAlamat.Text = datareader.GetString(4).ToString
txtHargaJual.Text = datareader.GetString(5).ToString
cmbJenisUnit.SelectedValue = datareader.GetString(6).ToString
txtKodeLokasi.ReadOnly = True
txtNomorRumah.ReadOnly = True
Else
MsgBox("Data Rumah tidak ditemukan", MsgBoxStyle.Critical, "Pesan")
Me.Close()
End If
koneksi.Close()
Catch ex As Exception
MsgBox(ex.ToString, MsgBoxStyle.Critical, "Error")
End Try
End If
End Sub
Private Sub eksekusiUbah()
If txtKodeLokasi.Text.Length > 0 And txtNomorRumah.Text.Length > 0 Then
Try
Call koneksiDB()
sql.Connection = koneksi
sql.CommandType = CommandType.Text
Dim query As String
query = "update tbl_unit set
luas_bangunan=@luas_bangunan,luas_tanah=@luas_tanah,alamat=@alamat,harga_jual=@harga_jual,kd_j
enis_unit=@kd_jenis_unit " & _
"where kd_lokasi='" & txtKodeLokasi.Text & "' and nomor_rumah='" &
txtNomorRumah.Text & "';"
With sql
.CommandText = query
.Parameters.Clear()
.Parameters.Add("@luas_bangunan", MySqlDbType.String).Value =
txtLuasBangunan.Text
.Parameters.Add("@luas_tanah", MySqlDbType.String).Value =
txtLuasTanah.Text
.Parameters.Add("@alamat", MySqlDbType.VarChar).Value = txtAlamat.Text
.Parameters.Add("@harga_jual", MySqlDbType.VarChar).Value =
txtHargaJual.Text
.Parameters.Add("@kd_jenis_unit", MySqlDbType.VarChar).Value =
cmbJenisUnit.SelectedValue
.ExecuteNonQuery()
End With
kosong()
MsgBox("Ubah Data Rumah Berhasil", MsgBoxStyle.Information, "Pesan")
Catch ex As MySqlException
MsgBox(ex.ToString, MsgBoxStyle.Critical, "Error")
Finally
koneksi.Close()
End Try
End If
End Sub
Private Sub frmCrudRumah_Load(sender As Object, e As EventArgs) Handles MyBase.Load
tampilJenisUnit()
28
If Me.Text = "Masukkan Data Rumah" Then
btnOperasi.Text = "&Simpan"
ElseIf Me.Text = "Ubah Data Rumah" Then
ubahData(txtKodeLokasi.Text, txtNomorRumah.Text)
btnOperasi.Text = "&Ubah"
End If
End Sub
Private Sub btnSimpan_Click(sender As Object, e As EventArgs) Handles btnOperasi.Click
If btnOperasi.Text = "&Simpan" Then
Simpan()
frmDetailRumah.btnRefresh.PerformClick()
Me.Close()
ElseIf btnOperasi.Text = "&Ubah" Then
eksekusiUbah()
frmDetailRumah.btnRefresh.PerformClick()
Me.Close()
End If
End Sub
Private Sub btnTutup_Click(sender As Object, e As EventArgs) Handles btnTutup.Click
If Me.Text = "Masukkan Data Rumah" Then
If frmDetailRumah.IsHandleCreated Then
frmDetailRumah.Close()
End If
Me.Close()
End If
End Sub
End Class
E. Coding Pada Form Status (frmStatus)
Public Class frmStatus
Dim kd_status, query As String
Private Sub tampilDataStatus()
Try
Call koneksiDB()
sql.Connection = koneksi
sql.CommandType = CommandType.Text
If Me.Text = "Ubah Status Pemasaran" Then
query = "select * from tbl_status_pemasaran"
ElseIf Me.Text = "Ubah Status Pembangunan" Then
query = "select * from tbl_status_pembangunan"
ElseIf Me.Text = "Ubah Status Sertifikat" Then
query = "select * from tbl_status_sertifikat"
End If
sql.CommandText = query
dataadapter.SelectCommand = sql
Dim table As New DataTable
dataadapter.Fill(table)
dgvStatus.DataSource = table
table.Columns(0).ColumnName = "Kode Stutus"
table.Columns(1).ColumnName = "Nama Status"
table.Columns(2).ColumnName = "Red"
table.Columns(3).ColumnName = "Green"
table.Columns(4).ColumnName = "Blue"
Catch ex As Exception
MsgBox(ex.ToString, MsgBoxStyle.Critical, "Error")
End Try
dgvStatus.ReadOnly = True
End Sub
Private Sub eksekusiUpdateStatus()
Try
Call koneksiDB()
sql.Connection = koneksi
sql.CommandType = CommandType.Text
If Me.Text = "Ubah Status Pemasaran" Then
query = "update tbl_unit set kd_status_pemasaran='" & kd_status & "' where
nomor_rumah='" & tsNomorRumah.Text & "' and kd_lokasi='" & tsKdLokasi.Text & "'"
29
ElseIf Me.Text = "Ubah Status Pembangunan" Then
query = "update tbl_unit set kd_status_pembangunan='" & kd_status & "' where
nomor_rumah='" & tsNomorRumah.Text & "' and kd_lokasi='" & tsKdLokasi.Text & "'"
ElseIf Me.Text = "Ubah Status Sertifikat" Then
query = "update tbl_unit set kd_status_sertifikat='" & kd_status & "' where
nomor_rumah='" & tsNomorRumah.Text & "' and kd_lokasi='" & tsKdLokasi.Text & "'"
End If
sql.CommandText = query
If sql.ExecuteNonQuery.ToString = True Then
MsgBox("Ubah Status Berhasil", MsgBoxStyle.Information, "Pesan Ubah")
End If
koneksi.Close()
Catch ex As Exception
MsgBox(ex.ToString, MsgBoxStyle.Critical, "Error")
End Try
End Sub
Private Sub frmStatus_Load(sender As Object, e As EventArgs) Handles MyBase.Load
tampilDataStatus()
End Sub
Private Sub dgvStatus_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles
dgvStatus.CellClick
kd_status = dgvStatus.CurrentRow.Cells(0).Value.ToString
End Sub
Private Sub tsBtnUpdate_Click(sender As Object, e As EventArgs) Handles tsBtnUpdate.Click
eksekusiUpdateStatus()
frmDetailRumah.btnRefresh.PerformClick()
Me.Close()
End Sub
End Class
F. Coding Form Attribute Peta (frmAttributPeta)
Public Class frmAttributPeta
Private Sub konvertExcel()
Dim ExcelApp As Object, ExcelBook As Object
Dim ExcelSheet As Object
Dim i, j As Integer
Dim columnsCount As Integer = dgvAttributPeta.Columns.Count
ExcelApp = CreateObject("Excel.Application")
ExcelBook = ExcelApp.WorkBooks.Add
ExcelSheet = ExcelBook.WorkSheets(1)
With ExcelSheet
For Each column In dgvAttributPeta.Columns
.Cells(1, column.Index + 1).Value = column.Name
Next
For i = 2 To dgvAttributPeta.RowCount
.Cells(i, 1) = dgvAttributPeta.Rows((i - 1) - 1).Cells("KD_LOKASI").Value
For j = 1 To dgvAttributPeta.Columns.Count - 1
.cells(i, j + 1) = dgvAttributPeta.Rows((i - 1) - 1).Cells(j).Value
Next
Next
End With
ExcelApp.Visible = True
ExcelSheet = Nothing
ExcelBook = Nothing
ExcelApp = Nothing
End Sub
Private Sub SimpanToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles
SimpanToolStripMenuItem.Click
Select Case tsTipeShape.Text
Case "Point"
frmSiteplan.layerPoint.DataSet.UpdateExtent()
frmSiteplan.layerPoint.DataSet.Save()
Case "Line"
frmSiteplan.layerLine.DataSet.UpdateExtent()
frmSiteplan.layerLine.DataSet.Save()
Case "Polygon"
30
frmSiteplan.layerPoly.DataSet.UpdateExtent()
frmSiteplan.layerPoly.DataSet.Save()
End Select
End Sub
Private Sub TambahKolomToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles
TambahKolomToolStripMenuItem.Click
Dim namaKolom As String = InputBox("Masukkan Nama Kolom Yang Akan Ditambahkan",
vbOKCancel)
If namaKolom <> "" Then
Select Case tsTipeShape.Text
Case "Point"
frmSiteplan.layerPoint.DataSet.DataTable.Columns.Add(UCase(namaKolom))
Case "Line"
frmSiteplan.layerLine.DataSet.DataTable.Columns.Add(UCase(namaKolom))
Case "Polygon"
frmSiteplan.layerPoly.DataSet.DataTable.Columns.Add(UCase(namaKolom))
End Select
End If
End Sub
Private Sub dgvAttributPeta_CellMouseClick(sender As Object, e As
DataGridViewCellMouseEventArgs) Handles dgvAttributPeta.CellMouseClick
Dim query As String = ""
Dim i As Integer = 0
For Each Row As DataGridViewRow In dgvAttributPeta.SelectedRows
If i = 0 Then
query = "[FID]=" & Row.Cells("FID").Value
Else
query = query + "OR [FID]=" & Row.Cells("FID").Value
End If
i = i + 1
Next
Select Case tsTipeShape.Text
Case "Point"
frmSiteplan.layerPoint.SelectByAttribute(query)
Case "Line"
frmSiteplan.layerLine.SelectByAttribute(query)
Case "Polygon"
frmSiteplan.layerPoly.SelectByAttribute(query)
End Select
End Sub
Private Sub tsCari_Click(sender As Object, e As EventArgs) Handles tsCari.Click
Select Case tsTipeShape.Text
Case "Point"
frmSiteplan.layerPoint.ZoomToSelectedFeatures()
Case "Line"
frmSiteplan.layerLine.ZoomToSelectedFeatures()
Case "Polygon"
frmSiteplan.layerPoly.ZoomToSelectedFeatures()
End Select
End Sub
Private Sub tsKonversiExcel_Click(sender As Object, e As EventArgs) Handles
tsKonversiExcel.Click
konvertExcel()
End Sub
Private Sub UbahKolomToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles
UbahKolomToolStripMenuItem.Click
frmUbahKolomSiteplan.ShowDialog()
End Sub
Private Sub HapusKolomToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles
HapusKolomToolStripMenuItem.Click
frmHapusKolomSiteplan.ShowDialog()
End Sub
End Class
31
G. Coding Pada Form Ubah Kolom (frmUbahKolomSiteplan)
Public Class frmUbahKolomSiteplan
Private Sub frmUbahKolomSiteplan_Load(sender As Object, e As EventArgs) Handles
MyBase.Load
cbKolom.Items.Clear()
Select Case frmAttributPeta.tsTipeShape.Text
Case "Point"
For Each kolom As DataColumn In
frmSiteplan.layerPoint.DataSet.DataTable.Columns
cbKolom.Items.Add(UCase(kolom.ColumnName))
Next
Case "Line"
For Each kolom As DataColumn In
frmSiteplan.layerLine.DataSet.DataTable.Columns
cbKolom.Items.Add(UCase(kolom.ColumnName))
Next
Case "Polygon"
For Each kolom As DataColumn In
frmSiteplan.layerPoly.DataSet.DataTable.Columns
cbKolom.Items.Add(UCase(kolom.ColumnName))
Next
End Select
End Sub
Private Sub btnUbah_Click(sender As Object, e As EventArgs) Handles btnUbah.Click
If txtNamaBaruKolom.Text = "" Then Exit Sub
Select Case frmAttributPeta.tsTipeShape.Text
Case "Point"
frmSiteplan.layerPoint.DataSet.DataTable.Columns.Item(cbKolom.SelectedIndex).ColumnName =
UCase(txtNamaBaruKolom.Text)
Case "Line"
frmSiteplan.layerLine.DataSet.DataTable.Columns.Item(cbKolom.SelectedIndex).ColumnName =
UCase(txtNamaBaruKolom.Text)
Case "Polygon"
frmSiteplan.layerPoly.DataSet.DataTable.Columns.Item(cbKolom.SelectedIndex).ColumnName =
UCase(txtNamaBaruKolom.Text)
End Select
End Sub
End Class
H. Coding Pada Form Hapus Kolom (frmHapusKolomSiteplan)
Public Class frmHapusKolomSiteplan
Private Sub frmHapusKolomSiteplan_Load(sender As Object, e As EventArgs) Handles
MyBase.Load
clbKolom.Items.Clear()
Select Case frmAttributPeta.tsTipeShape.Text
Case "Point"
For Each kolom As DataColumn In
frmSiteplan.layerPoint.DataSet.DataTable.Columns
clbKolom.Items.Add(UCase(kolom.ColumnName))
Next
Case "Line"
For Each kolom As DataColumn In
frmSiteplan.layerLine.DataSet.DataTable.Columns
clbKolom.Items.Add(UCase(kolom.ColumnName))
Next
Case "Polygon"
For Each kolom As DataColumn In
frmSiteplan.layerPoly.DataSet.DataTable.Columns
clbKolom.Items.Add(UCase(kolom.ColumnName))
Next
End Select
End Sub
Private Sub btnHapus_Click(sender As Object, e As EventArgs) Handles btnHapus.Click
On Error GoTo err
32
For Each itemChecked In clbKolom.CheckedItems
Select Case frmAttributPeta.tsTipeShape.Text
Case "Point"
frmSiteplan.layerPoint.DataSet.DataTable.Columns.RemoveAt(clbKolom.Items.IndexOf(itemChecked))
Case "Line"
frmSiteplan.layerLine.DataSet.DataTable.Columns.RemoveAt(clbKolom.Items.IndexOf(itemChecked))
Case "Polygon"
frmSiteplan.layerPoly.DataSet.DataTable.Columns.RemoveAt(clbKolom.Items.IndexOf(itemChecked))
End Select
Next
Me.Close()
err:
MsgBox(Err.Description, Err.Number, vbExclamation + vbOKOnly)
Me.Close()
End Sub
End Class
33
ALUR APLIKASI SISTEM INFORMASI GEORAFIS PENJUALAN RUMAH
Data
Rumah Ada ?
TIDA
Y
34
ALUR APLIKASI SISTEM INFORMASI GEORAFIS MODUL SITEPLAN MANAGEMENT
35
36

More Related Content

What's hot

Penginderaan Jauh : Klasifikasi Terselia
Penginderaan Jauh : Klasifikasi TerseliaPenginderaan Jauh : Klasifikasi Terselia
Penginderaan Jauh : Klasifikasi TerseliaWachidatin N C
 
PENGENALAN ArcMAP dan PENGANTAR ArcCATALOG pada ARCGIS 10.0
PENGENALAN ArcMAP dan PENGANTAR ArcCATALOG pada ARCGIS 10.0PENGENALAN ArcMAP dan PENGANTAR ArcCATALOG pada ARCGIS 10.0
PENGENALAN ArcMAP dan PENGANTAR ArcCATALOG pada ARCGIS 10.0oriza steva andra
 
Digitasi peta sig dasar
Digitasi peta sig dasarDigitasi peta sig dasar
Digitasi peta sig dasarTedi Eka
 
Laporan Praktikum Fotogrametri Dasar Pengamatan Paralaks Stereoskopis By Mega...
Laporan Praktikum Fotogrametri Dasar Pengamatan Paralaks Stereoskopis By Mega...Laporan Praktikum Fotogrametri Dasar Pengamatan Paralaks Stereoskopis By Mega...
Laporan Praktikum Fotogrametri Dasar Pengamatan Paralaks Stereoskopis By Mega...Mega Yasma Adha
 
Modul Quantum GIS 2 (Aplikasi)
Modul Quantum GIS 2 (Aplikasi) Modul Quantum GIS 2 (Aplikasi)
Modul Quantum GIS 2 (Aplikasi) bramantiyo marjuki
 
Laporan Layout Peta Dengan Qgis
Laporan Layout Peta Dengan QgisLaporan Layout Peta Dengan Qgis
Laporan Layout Peta Dengan QgisIvul Varel Fu
 
Materi pelatihan gis
Materi pelatihan gisMateri pelatihan gis
Materi pelatihan gisabiko79
 
Penajaman dan interpretasi c itra menggunakan envi 5.1
Penajaman dan interpretasi c itra menggunakan envi 5.1 Penajaman dan interpretasi c itra menggunakan envi 5.1
Penajaman dan interpretasi c itra menggunakan envi 5.1 Mega Yasma Adha
 
Spatial Analyst dalam Sistem Informasi Geografis: Surface Analyst
Spatial Analyst dalam Sistem Informasi Geografis: Surface AnalystSpatial Analyst dalam Sistem Informasi Geografis: Surface Analyst
Spatial Analyst dalam Sistem Informasi Geografis: Surface AnalystSally Indah N
 
Resume ilmu ukur tanah pertemuan ke 2
Resume ilmu ukur tanah pertemuan ke 2Resume ilmu ukur tanah pertemuan ke 2
Resume ilmu ukur tanah pertemuan ke 2Gian Adiwinata
 
Laporan Pembuatan Peta Tematik
Laporan Pembuatan Peta TematikLaporan Pembuatan Peta Tematik
Laporan Pembuatan Peta TematikSally Indah N
 
Tutorial ASTER Imagery Orthorectification Using ENVI Software
Tutorial ASTER Imagery Orthorectification Using ENVI SoftwareTutorial ASTER Imagery Orthorectification Using ENVI Software
Tutorial ASTER Imagery Orthorectification Using ENVI Softwarebramantiyo marjuki
 
Laporan Praktikum ER Mapper Koreksi Geometrik dan Radiometrik
Laporan Praktikum ER Mapper Koreksi Geometrik dan RadiometrikLaporan Praktikum ER Mapper Koreksi Geometrik dan Radiometrik
Laporan Praktikum ER Mapper Koreksi Geometrik dan RadiometrikSally Indah N
 

What's hot (20)

Penginderaan Jauh : Klasifikasi Terselia
Penginderaan Jauh : Klasifikasi TerseliaPenginderaan Jauh : Klasifikasi Terselia
Penginderaan Jauh : Klasifikasi Terselia
 
PENGENALAN ArcMAP dan PENGANTAR ArcCATALOG pada ARCGIS 10.0
PENGENALAN ArcMAP dan PENGANTAR ArcCATALOG pada ARCGIS 10.0PENGENALAN ArcMAP dan PENGANTAR ArcCATALOG pada ARCGIS 10.0
PENGENALAN ArcMAP dan PENGANTAR ArcCATALOG pada ARCGIS 10.0
 
Gis (surface analysis)
Gis (surface analysis)Gis (surface analysis)
Gis (surface analysis)
 
Pengenalan ArcMap
Pengenalan ArcMapPengenalan ArcMap
Pengenalan ArcMap
 
DIGITASI
DIGITASIDIGITASI
DIGITASI
 
Tugas Manajemen Survei dan Pemetaan
Tugas Manajemen Survei dan PemetaanTugas Manajemen Survei dan Pemetaan
Tugas Manajemen Survei dan Pemetaan
 
Digitasi peta sig dasar
Digitasi peta sig dasarDigitasi peta sig dasar
Digitasi peta sig dasar
 
Laporan Praktikum Fotogrametri Dasar Pengamatan Paralaks Stereoskopis By Mega...
Laporan Praktikum Fotogrametri Dasar Pengamatan Paralaks Stereoskopis By Mega...Laporan Praktikum Fotogrametri Dasar Pengamatan Paralaks Stereoskopis By Mega...
Laporan Praktikum Fotogrametri Dasar Pengamatan Paralaks Stereoskopis By Mega...
 
Kerangka kontrol vertikal 1
Kerangka kontrol vertikal 1Kerangka kontrol vertikal 1
Kerangka kontrol vertikal 1
 
Modul Quantum GIS 2 (Aplikasi)
Modul Quantum GIS 2 (Aplikasi) Modul Quantum GIS 2 (Aplikasi)
Modul Quantum GIS 2 (Aplikasi)
 
LAYOUT PADA ARCGIS 10.0
LAYOUT PADA ARCGIS 10.0LAYOUT PADA ARCGIS 10.0
LAYOUT PADA ARCGIS 10.0
 
Laporan Layout Peta Dengan Qgis
Laporan Layout Peta Dengan QgisLaporan Layout Peta Dengan Qgis
Laporan Layout Peta Dengan Qgis
 
Materi pelatihan gis
Materi pelatihan gisMateri pelatihan gis
Materi pelatihan gis
 
Penajaman dan interpretasi c itra menggunakan envi 5.1
Penajaman dan interpretasi c itra menggunakan envi 5.1 Penajaman dan interpretasi c itra menggunakan envi 5.1
Penajaman dan interpretasi c itra menggunakan envi 5.1
 
Spatial Analyst dalam Sistem Informasi Geografis: Surface Analyst
Spatial Analyst dalam Sistem Informasi Geografis: Surface AnalystSpatial Analyst dalam Sistem Informasi Geografis: Surface Analyst
Spatial Analyst dalam Sistem Informasi Geografis: Surface Analyst
 
Resume ilmu ukur tanah pertemuan ke 2
Resume ilmu ukur tanah pertemuan ke 2Resume ilmu ukur tanah pertemuan ke 2
Resume ilmu ukur tanah pertemuan ke 2
 
Laporan Pembuatan Peta Tematik
Laporan Pembuatan Peta TematikLaporan Pembuatan Peta Tematik
Laporan Pembuatan Peta Tematik
 
Tutorial ASTER Imagery Orthorectification Using ENVI Software
Tutorial ASTER Imagery Orthorectification Using ENVI SoftwareTutorial ASTER Imagery Orthorectification Using ENVI Software
Tutorial ASTER Imagery Orthorectification Using ENVI Software
 
Pemodelan 3 d photo modeler scanner
Pemodelan 3 d   photo modeler scannerPemodelan 3 d   photo modeler scanner
Pemodelan 3 d photo modeler scanner
 
Laporan Praktikum ER Mapper Koreksi Geometrik dan Radiometrik
Laporan Praktikum ER Mapper Koreksi Geometrik dan RadiometrikLaporan Praktikum ER Mapper Koreksi Geometrik dan Radiometrik
Laporan Praktikum ER Mapper Koreksi Geometrik dan Radiometrik
 

Similar to Membuat aplikasi sistem informasi geografis dengan visual basic & MySQL

Laporan Praktikum Sistem Informasi Geografis (SIG)
Laporan Praktikum Sistem Informasi Geografis (SIG)Laporan Praktikum Sistem Informasi Geografis (SIG)
Laporan Praktikum Sistem Informasi Geografis (SIG)Ahmad Dani
 
Modul praktek pemetaan_digital_upi
Modul praktek pemetaan_digital_upiModul praktek pemetaan_digital_upi
Modul praktek pemetaan_digital_upiMinos Hyundhevie
 
Pembuatan model 3 dimensi dan basis data spasial gedung teknik geomatika its ...
Pembuatan model 3 dimensi dan basis data spasial gedung teknik geomatika its ...Pembuatan model 3 dimensi dan basis data spasial gedung teknik geomatika its ...
Pembuatan model 3 dimensi dan basis data spasial gedung teknik geomatika its ...Anindya N. Rafitricia
 
Module sig 2010
Module sig 2010Module sig 2010
Module sig 2010Ario Vroyo
 
Program database sederhana di android
Program database sederhana di androidProgram database sederhana di android
Program database sederhana di androidInto Setiawan
 
Modul 2 pengenalan map info
Modul 2 pengenalan map infoModul 2 pengenalan map info
Modul 2 pengenalan map infovibul_pipil
 
Pertemuan 6 tabview
Pertemuan 6 tabviewPertemuan 6 tabview
Pertemuan 6 tabviewheriakj
 
Analisis dan Desain Objek dgn Visual FoxPro 8.0
Analisis dan Desain Objek dgn Visual FoxPro 8.0Analisis dan Desain Objek dgn Visual FoxPro 8.0
Analisis dan Desain Objek dgn Visual FoxPro 8.0Nurdin Al-Azies
 
new Chapter 2 - New Project Visual Studio C#.pdf
new Chapter 2 - New Project Visual Studio C#.pdfnew Chapter 2 - New Project Visual Studio C#.pdf
new Chapter 2 - New Project Visual Studio C#.pdfrahmantoyuri
 
Praktikum Sistem Basis Data menggunakan PostgresSQL
Praktikum Sistem Basis Data menggunakan PostgresSQLPraktikum Sistem Basis Data menggunakan PostgresSQL
Praktikum Sistem Basis Data menggunakan PostgresSQLMega Yasma Adha
 
Modul 3-p3-4
Modul 3-p3-4Modul 3-p3-4
Modul 3-p3-4windryika
 
27. prak.-algoritma-pemrograman-ii
27. prak.-algoritma-pemrograman-ii27. prak.-algoritma-pemrograman-ii
27. prak.-algoritma-pemrograman-iiAyu Karisma Alfiana
 
Ujian tengah semester komputer terapan
Ujian tengah semester komputer terapanUjian tengah semester komputer terapan
Ujian tengah semester komputer terapanM Paramananda
 
Ujian tengah semester komputer terapan
Ujian tengah semester komputer terapanUjian tengah semester komputer terapan
Ujian tengah semester komputer terapannofayanties
 
Membuat aplikasi database dengan windows form application
Membuat aplikasi database dengan windows form applicationMembuat aplikasi database dengan windows form application
Membuat aplikasi database dengan windows form applicationAbdul Qifli Sangadji
 
Sistem Informasi Geografis 3
Sistem Informasi Geografis 3Sistem Informasi Geografis 3
Sistem Informasi Geografis 3Michael Finery
 
Pemrograman berorientasi-objek
Pemrograman berorientasi-objekPemrograman berorientasi-objek
Pemrograman berorientasi-objekaris_27
 

Similar to Membuat aplikasi sistem informasi geografis dengan visual basic & MySQL (20)

Laporan Praktikum Sistem Informasi Geografis (SIG)
Laporan Praktikum Sistem Informasi Geografis (SIG)Laporan Praktikum Sistem Informasi Geografis (SIG)
Laporan Praktikum Sistem Informasi Geografis (SIG)
 
Modul praktek pemetaan_digital_upi
Modul praktek pemetaan_digital_upiModul praktek pemetaan_digital_upi
Modul praktek pemetaan_digital_upi
 
Tutor arcview 3.3
Tutor arcview 3.3Tutor arcview 3.3
Tutor arcview 3.3
 
Pembuatan model 3 dimensi dan basis data spasial gedung teknik geomatika its ...
Pembuatan model 3 dimensi dan basis data spasial gedung teknik geomatika its ...Pembuatan model 3 dimensi dan basis data spasial gedung teknik geomatika its ...
Pembuatan model 3 dimensi dan basis data spasial gedung teknik geomatika its ...
 
Module sig 2010
Module sig 2010Module sig 2010
Module sig 2010
 
Program database sederhana di android
Program database sederhana di androidProgram database sederhana di android
Program database sederhana di android
 
Modul 2 pengenalan map info
Modul 2 pengenalan map infoModul 2 pengenalan map info
Modul 2 pengenalan map info
 
Pertemuan 6 tabview
Pertemuan 6 tabviewPertemuan 6 tabview
Pertemuan 6 tabview
 
Analisis dan Desain Objek dgn Visual FoxPro 8.0
Analisis dan Desain Objek dgn Visual FoxPro 8.0Analisis dan Desain Objek dgn Visual FoxPro 8.0
Analisis dan Desain Objek dgn Visual FoxPro 8.0
 
new Chapter 2 - New Project Visual Studio C#.pdf
new Chapter 2 - New Project Visual Studio C#.pdfnew Chapter 2 - New Project Visual Studio C#.pdf
new Chapter 2 - New Project Visual Studio C#.pdf
 
Resume ti 2012
Resume ti 2012Resume ti 2012
Resume ti 2012
 
Praktikum Sistem Basis Data menggunakan PostgresSQL
Praktikum Sistem Basis Data menggunakan PostgresSQLPraktikum Sistem Basis Data menggunakan PostgresSQL
Praktikum Sistem Basis Data menggunakan PostgresSQL
 
Tutorial connecting access netbeans
Tutorial connecting access netbeansTutorial connecting access netbeans
Tutorial connecting access netbeans
 
Modul 3-p3-4
Modul 3-p3-4Modul 3-p3-4
Modul 3-p3-4
 
27. prak.-algoritma-pemrograman-ii
27. prak.-algoritma-pemrograman-ii27. prak.-algoritma-pemrograman-ii
27. prak.-algoritma-pemrograman-ii
 
Ujian tengah semester komputer terapan
Ujian tengah semester komputer terapanUjian tengah semester komputer terapan
Ujian tengah semester komputer terapan
 
Ujian tengah semester komputer terapan
Ujian tengah semester komputer terapanUjian tengah semester komputer terapan
Ujian tengah semester komputer terapan
 
Membuat aplikasi database dengan windows form application
Membuat aplikasi database dengan windows form applicationMembuat aplikasi database dengan windows form application
Membuat aplikasi database dengan windows form application
 
Sistem Informasi Geografis 3
Sistem Informasi Geografis 3Sistem Informasi Geografis 3
Sistem Informasi Geografis 3
 
Pemrograman berorientasi-objek
Pemrograman berorientasi-objekPemrograman berorientasi-objek
Pemrograman berorientasi-objek
 

More from Rahmat Taufiq Sigit

customer_clustering_aquisition.pdf
customer_clustering_aquisition.pdfcustomer_clustering_aquisition.pdf
customer_clustering_aquisition.pdfRahmat Taufiq Sigit
 
Step By Step Analyzing Price Elasticit1.pdf
Step By Step Analyzing Price Elasticit1.pdfStep By Step Analyzing Price Elasticit1.pdf
Step By Step Analyzing Price Elasticit1.pdfRahmat Taufiq Sigit
 
Learn to-use-google-data-studio-jan22
Learn to-use-google-data-studio-jan22Learn to-use-google-data-studio-jan22
Learn to-use-google-data-studio-jan22Rahmat Taufiq Sigit
 
Kisah Tentang Upaya Pencapaian Sebuah Visi (Bagian 2)
Kisah Tentang Upaya Pencapaian Sebuah Visi (Bagian 2)Kisah Tentang Upaya Pencapaian Sebuah Visi (Bagian 2)
Kisah Tentang Upaya Pencapaian Sebuah Visi (Bagian 2)Rahmat Taufiq Sigit
 
[E book finan siap] buku pintar finansial - pengelolaan keuangan untuk umkm
[E book finan siap] buku pintar finansial - pengelolaan keuangan untuk umkm[E book finan siap] buku pintar finansial - pengelolaan keuangan untuk umkm
[E book finan siap] buku pintar finansial - pengelolaan keuangan untuk umkmRahmat Taufiq Sigit
 
7 teknik bicara bangun personal branding jamil azzaini
7 teknik bicara bangun personal branding jamil azzaini7 teknik bicara bangun personal branding jamil azzaini
7 teknik bicara bangun personal branding jamil azzainiRahmat Taufiq Sigit
 
Society For Human Resource Management
Society For Human Resource ManagementSociety For Human Resource Management
Society For Human Resource ManagementRahmat Taufiq Sigit
 
Penyusunan Protofolio Layanan Dalam Property Management
Penyusunan Protofolio Layanan Dalam Property ManagementPenyusunan Protofolio Layanan Dalam Property Management
Penyusunan Protofolio Layanan Dalam Property ManagementRahmat Taufiq Sigit
 
Kisah Tentang Usaha Menwujudkan Sebuah Visi
Kisah Tentang Usaha Menwujudkan Sebuah VisiKisah Tentang Usaha Menwujudkan Sebuah Visi
Kisah Tentang Usaha Menwujudkan Sebuah VisiRahmat Taufiq Sigit
 
Commercial real-estate-for-beginners
Commercial real-estate-for-beginnersCommercial real-estate-for-beginners
Commercial real-estate-for-beginnersRahmat Taufiq Sigit
 

More from Rahmat Taufiq Sigit (20)

customer_clustering_aquisition.pdf
customer_clustering_aquisition.pdfcustomer_clustering_aquisition.pdf
customer_clustering_aquisition.pdf
 
Property-Management-Basic.pdf
Property-Management-Basic.pdfProperty-Management-Basic.pdf
Property-Management-Basic.pdf
 
Step By Step Analyzing Price Elasticit1.pdf
Step By Step Analyzing Price Elasticit1.pdfStep By Step Analyzing Price Elasticit1.pdf
Step By Step Analyzing Price Elasticit1.pdf
 
Learn to-use-google-data-studio-jan22
Learn to-use-google-data-studio-jan22Learn to-use-google-data-studio-jan22
Learn to-use-google-data-studio-jan22
 
Kisah Tentang Upaya Pencapaian Sebuah Visi (Bagian 2)
Kisah Tentang Upaya Pencapaian Sebuah Visi (Bagian 2)Kisah Tentang Upaya Pencapaian Sebuah Visi (Bagian 2)
Kisah Tentang Upaya Pencapaian Sebuah Visi (Bagian 2)
 
[E book finan siap] buku pintar finansial - pengelolaan keuangan untuk umkm
[E book finan siap] buku pintar finansial - pengelolaan keuangan untuk umkm[E book finan siap] buku pintar finansial - pengelolaan keuangan untuk umkm
[E book finan siap] buku pintar finansial - pengelolaan keuangan untuk umkm
 
Tutorial Microsoft Project
Tutorial Microsoft ProjectTutorial Microsoft Project
Tutorial Microsoft Project
 
Paparan SLF 2018 Pemprov DKI
Paparan SLF 2018 Pemprov DKIPaparan SLF 2018 Pemprov DKI
Paparan SLF 2018 Pemprov DKI
 
Hsem combined.pdf
Hsem combined.pdfHsem combined.pdf
Hsem combined.pdf
 
Rahasia jawaban wawancara kerja
Rahasia jawaban wawancara kerjaRahasia jawaban wawancara kerja
Rahasia jawaban wawancara kerja
 
7 teknik bicara bangun personal branding jamil azzaini
7 teknik bicara bangun personal branding jamil azzaini7 teknik bicara bangun personal branding jamil azzaini
7 teknik bicara bangun personal branding jamil azzaini
 
Society For Human Resource Management
Society For Human Resource ManagementSociety For Human Resource Management
Society For Human Resource Management
 
Penyusunan Protofolio Layanan Dalam Property Management
Penyusunan Protofolio Layanan Dalam Property ManagementPenyusunan Protofolio Layanan Dalam Property Management
Penyusunan Protofolio Layanan Dalam Property Management
 
Kisah Tentang Usaha Menwujudkan Sebuah Visi
Kisah Tentang Usaha Menwujudkan Sebuah VisiKisah Tentang Usaha Menwujudkan Sebuah Visi
Kisah Tentang Usaha Menwujudkan Sebuah Visi
 
Presentasi diklat-pu-2017-b
Presentasi diklat-pu-2017-bPresentasi diklat-pu-2017-b
Presentasi diklat-pu-2017-b
 
Form kosong-allinone
Form kosong-allinoneForm kosong-allinone
Form kosong-allinone
 
Fg all-in-one-job-analysis-form
Fg all-in-one-job-analysis-formFg all-in-one-job-analysis-form
Fg all-in-one-job-analysis-form
 
Laporan pp kom q4 2016
Laporan pp kom q4 2016Laporan pp kom q4 2016
Laporan pp kom q4 2016
 
Bm toolkit
Bm toolkitBm toolkit
Bm toolkit
 
Commercial real-estate-for-beginners
Commercial real-estate-for-beginnersCommercial real-estate-for-beginners
Commercial real-estate-for-beginners
 

Membuat aplikasi sistem informasi geografis dengan visual basic & MySQL

  • 1. 1 MEMBUAT SISTEM INFORMASI GEOGRAFIS SEDERHANA DENGAN VISUAL STUDIO Studi Kasus : Sistem Informasi Geografis Penjualan Rumah Oleh : Rahmat Taufiq Sigit https://blog.ngupy.com Kali ini kita akan belajar bagaimana membuat aplikasi Sistem Informasi Geografis sederhana dengan menggunakan bahasa pemrograman visual basic. Aplikasi ini adalah aplikasi untuk mengolah hasil pemetaan, dan memetakan kondisi terbaru dari sebuah kegiatan. Sebagai studi kasus kita anak membuat aplikasi untuk developer perumahan. Dimana dari aplikasi tersebut pengguna dapat mengetahui rumah stok dan terjual. A. Konsep Sistem Informasi Geografis Sederhana Berikut ini adalah gambar dari Sistem Informasi Geografis: Gambar 01. Proses Akses Database dan Siteplan A0 : User mengakses peta sengan extension .SHP, .DBF yang telah digambar dan disertakan sebelumnya melalui aplikasi SIG. A1 : Berdasarkan pada primary key dari file .DBF pada peta, sistem kemudian mengakses database mysql dan menampilkan informasi dari tabel database kedalam peta. B0 : User mengakses informasi yang ada dalam database mysql melalui aplikasi. B1 : Permitaan informasi yang dilakukan pada B0 kemudian diakses pada database dan kembali ditampilkan pada aplikasi SIG. B. Ruang Lingkup Aplikasi 1. Aplikasi mengelola beberapa lokasi pembangunan
  • 2. 2 2. Peta yang digunakan adalah peta dengan ekstensi .SHP yang telah dibuat sebelumnya dengan menggunakan aplikasi pemetaan ArcGIS atau QGIS. 3. Aplikasi ini berfungsi untuk menampilkan informasi status penjualan dari rumah dan stok rumah yang ada melalui peta dalam bentuk warna 4. Aplikasi ini berfungsi untuk menampilkan informasi status progres pambangunan dari rumah dan stok rumah yang ada melalui peta dalam bentuk tulisan 5. Aplikasi menggunakan database MySQL C. Struktur Database pada Peta dan MySQL Keterangan :  Tabel Pada File DBF Peta adalah tabel yang dibuat pada saat menggambar siteplan dengan aplikasi ArcGIS atau QGIS  Tabel Unit, Tabel Status Pemasaran, Tabel Status Pembangunan dan Tabel Status Sertifikat adalah table yang dibuat pada database MySQL  Pada Tabel Unit terdapat Kolom KD_LOKASI dan NOMOR_RUMAH dimana isi dari kolom tersebut berdasarkan pada isi dari tabel pada file peta sehingga kedua tabel tersebut dapat terhubung  Kolomg R, G, dan B pada tabel status pemasaran, pembangunan dan sertifikat berisi nilai kombinasi warna Red, Green, dan Blue yang menjadi warna status. Warna tersebut memberikan informasi pada peta kavling rumah. D. Instalasi Database MySQL 1. Download aplikasi XAMPP terbaru 2. Dobel klik file XAMPP yang baru saja Anda download 3. Untuk langkah instalasi dapat mengikuti link tersebut : https://webhostmu.com/cara- install-xampp/
  • 3. 3 E. Setting Visual Studio  Mempersiapkan Library MySQL pada Visual Studio 1. Download MySQL Connector https://dev.mysql.com/downloads/windows/visualstudio/ 2. Install file MSI Langkah install yang di inginkan (Standar) 3. Perhatikan letak file instalasi dari MySQL Connector 4. Buka Aplikasi Visual Studio dan Buat project baru dengan nama “sig_sederhana” dengan cara klik “File ->New->Project” 5. Pada Window New Project, Template->Visual Basic->Windows” Pilih Window Form Application” 6. Masukkan nama project “sig_sederhana” Klik Ok 7. Pada solution explorer klik kanan nama proyek dan pilih properties 8. Pada tab “Preference” Klik Add 9. Klik “Browse”.
  • 4. 4 10. Cari letak file MySQL.Data.dll yang terletak pada file instalasi MySQL Connector. 11. Klik Add dan Kemudian Klik Ok Anda telah berhasil menginclude library mysql kedalam project anda. F. Mempersiapkan Toolbox Map Pada Visual Studio  Mempersiapkan Toolbox Map pada Visual Studio 1. Download Library DotSpatial pada link berikut : https://www.nuget.org/profiles/dotspatial 2. File yang dibutuhkan adalah File berikut :
  • 5. 5 3. Pada solution explorer klik kanan nama proyek dan pilih properties (Seperti pada langkah include library MySql.Data) 4. Pada tab “Preference” Klik Add 5. Klik “Browse” 6. Cari letak file dotspatial yang sudah anda download 7. Checklist file tersebut dan klik OK 8. Pada bagian toolbox, Klik Kanan dan Add Item 9. Ketikkan nama Tab “DotSpatial” 10. Pada tab “Dotspatial” Klik Kanan Pilih Choose Item 11. Akan tampil Choose Item Toolbox 12. Klik Tab .Net Component Klik Browse 13. Plih File DotSpatial.Controls.dll yang telah anda download sebelumnya dan Klik OK 14. Anda akan meperoleh tambahan toolbox baru untuk pemetaan, seperti pada gmbar dibawah ini.
  • 6. 6 G. Mendesain Tampilan Halaman Siteplan (frmSiteplan) 1. Buatlah form window yang baru dengan nama frmSiteplan, dengan componen toolbox seperti pada gambar dibawa ini. 2. Tambahkan Tool “ColorDialog1” sesuai pada gambar diatas 3. Tambahkan Toolbox “Split Container” untuk membagi 2 bagian tengah dari frmSiteplan 4. Pada Panel1 Tambahkan Tool “Legend” sesuai pada gambar diatas ToolStrip1 SpatialStatusStrip ColorDialog Split Conainer Map Legend
  • 7. 7 5. Pada properties dari legend ubah name : legenda dan Doc : Fill 6. Pada Panel2 Tambahkan Tool “Map” sesuai pada gambar diatas 7. Pada properties dari map ubah name : petaUtama dan Doc : Fill H. Mempersiapkan Resources Aplikasi Langkah ini dilakukan untuk menampung seluruh file penyarta dari aplikasi yang akan dibuat, seperti gambar icon dari tombol yang dibuak. Hal ini dikalukan untuk memberikan kemudahan dalam mengakses gambar tersebut.  Sebelumnya lakukan pancaharian file image ataupun icon untuk digunakan dalam aplikasi yang akan dibuat  Pada Solution Explorer, klik kanan nama proyek kemudian pilih add, dan New Folder I. Menambahkan Tombol Pada ToolStrip Tambahkan tombol bari dengan cara seperti pada gambar dibawah ini :
  • 8. 8 Lakukan penambahan untuk tombol dibawah ini :  Tombol Tambah Peta (tsBtnTambahPeta) 1. Pada Properties Ubah Name : tsBtnTambahPeta, Text : Tambah Layer dan Klik tombol (...) pada Image. 2. Pilih Project Resources File, Klik Tombol Import 3. Cari dan pilih File ico atau image di folder yang sudah anda download sebelumnya, Lalu klik Ok. 4. File yang pilih akan masuk kedalam folder Resources pada proyek. 5. Langkah yang sama dilakukan untuk tombol selanjutnya dan pilih gambar yang sesuai  Tombol Hapus Peta (Name : tsBtnHapusPeta, Text : Hapus Layer)  Tombol Default Size Peta (Name : tsBtnDefault, Text : Ukuran Awal)  Tombol Pan (Name : tsBtnPan, , Text : Pan)  Tombol Pilih (Name : tsBtnPilih, , Text : Pilihl)  Tombol Zoom In (Name : tsBtnZoomIn, Text : Perbesar)  Tombol Zoom Out (Name : tsBtnZoomOut, Text : Perkecil)  Tombol Info (Name : tsBtnInfo, Text : Info)  Tombol Tampilan Label (Name : tsBtnLabel, Text : Nomor Rumah)  Tombol Hapus Label (Name : tsBtnHapusLabel, Text : Tutup Nomor Rumah)  Textbox Cari (Name : tsCari)  Tombol Cari (Name : tsBtnCari, Text : Cari)  Tombol Ukur (Name : tsBtnUkur, Text : Ukur)  Tombol Tebel Attribut (Name : tsBtnTableAttribut, Text : Tabel Attribut)  Tombol Jenis Unit (Name : tsBtnJenisUnit, Text : Jenis Unit)  Tombol Status Pemasaran (Name : tsBtnStatusPemasran, Text : Status Pemasaran)  Tombol Status Pembangunan (Name : tsBtnStatusPembangunan, Text : Status Pembangunan)  Tombol Status Sertifikat (Name : tsBtnStatusSertifikat, Text : Status Sertifikat)  Tombol Point (Name : tsBtnPoint, Text : Titik)  Tombol Line (Name : tsBtnLine, Text : Garis)  Tombol Polygon (Name : tsBtnPoly, Text : Polygon)
  • 9. 9  Tombol Hapus Peta (Name : tsBtnBersihkanPeta, Text : Bersihkan Peta) J. Menambahkan Label pada Spatial Status Strip (SpatialStatusStrip1) Membuat fasilitas status peta dengan menggunakan SpatialStatusStrip. Bagian ini berfungsi untuk memberikan informasi proses yang terjadi pada peta dan legenda serta memberikan informasi posisi X dan Y dari pointer pada peta. 1.Tambahkan Status Label (Text : Ready) 2.Tambahkan ProgressBar 3.Tambahkan Status Label (Text : Lokasi) 4.Tambahkan Status Label (Text : :- , Name : tsStatusLokasi) 5.Tambahkan Status Label (Text : ID) 6.Tambahkan Status Label (Text : :- , Name : tsStatusId) 7.Tambahkan Status Label (Text : X/Y) 8.Tambahkan Status Label (Text : :- , Name : tsStatusXy) K. Setting Legend pada Form frmSiteplan Pada bagian ini akan dilakukan settingan pada SpatialStatusStrip yang telah dibuat agar tefhubung dengan legenda dan petaUtama yang telah dibuat sebelumnya. 1. Pilih legend area pada form frmSiteplan 2. Ubah Progress Handler : SpatialStatusStrip1
  • 10. 10 L. Setting Map pada Form Siteplan (frmSiteplan) 1. Pilih Map pada Form frmSiteplan 2. Ubah Legeng : legenda dan Progress Handler : SpatialStatusStrip1 M. Membuat Desain Form Datail Unit (frmDetailRumah)
  • 11. 11 N.Membuat Desain FormCRUD Rumah (frmCRUDRumah)
  • 12. 12 O. Membuat Form Status (frmStatus) P. Membuat Form Attribut Peta (frmAttributePeta)
  • 13. 13 Q. Membuat Form Ubah Nama Kolom Peta (frmUbahKolomSiteplan) R. Membuat Form Hapus Kolom Siteplan (frmHapusKolomSiteplan)
  • 14. 14 It’s Code Time A. Membuat Modus Koneksi Database 1. Klik kanan proyek sig_sederhana, Klik Add, Pilih Module 2. Ketikkan nama file “modKoneksi.vb” 3. Ketikkan Script dibawah ini : Imports MySql.Data.MySqlClient Module modKoneksi Public koneksi As MySql.Data.MySqlClient.MySqlConnection = Nothing Public sql As New MySql.Data.MySqlClient.MySqlCommand Public dataadapter As New MySql.Data.MySqlClient.MySqlDataAdapter Public datareader As MySql.Data.MySqlClient.MySqlDataReader Public dataset As New DataSet 'untuk koneksi ke DB Public server As String = "localhost" Public username As String = "root" //(Nama username database MySQL) Public password As String = "admin123" //(Password database MySQL) Public nama_db As String = "sig_sederhana" //(Nama database MySQL) 'sqlTransaction Public sqlTransaction As MySqlTransaction Public Sub koneksiDB() Try Dim settingServer As String = "server=" & server & ";port=3306;user id=" & username & "; password=" & password & "; Database=" & nama_db & ";Connect Timeout=30;" koneksi = New MySqlConnection(settingServer) If koneksi.State = ConnectionState.Closed Then koneksi.Open() End If Catch ex As Exception MsgBox(ex.ToString) End Try End Sub End Module B. Coding Pada Form Siteplan (frmSiteplan) Imports DotSpatial.Symbology Imports DotSpatial.Controls Imports DotSpatial.Data Imports DotSpatial.Plugins.Measure Imports DotSpatial.Topology Imports DotSpatial.Symbology.FeatureLayer
  • 15. 15 Public Class frmSiteplan Public layerPoint As MapPointLayer Public layerLine As MapLineLayer Public layerPoly As MapPolygonLayer Public mapFitureLayer As String Dim shapeType As String Dim pointF As New FeatureSet(FeatureType.Point) Dim pointID As Integer = 0 Dim pointmouseClick As Boolean = False Dim lineLayer As MapLineLayer Dim lineF As New FeatureSet(FeatureType.Line) Dim lineID As Integer = 0 Dim firstClick As Boolean = False Dim linemouseClick As Boolean = False Dim polygonF As New FeatureSet(FeatureType.Polygon) Dim polygonID As Integer = 0 Dim polygonmouseClick As Boolean = False Private WithEvents mapFunction As MapFunctionMeasure Private Sub tampilkanLabelPeta() Dim fname As String = "Tahoma" Dim fsize As Double = 8.0 Dim fcolor As Color = Color.Black Dim fLayer As FeatureLayer = petaUtama.Layers.SelectedLayer If (petaUtama.Layers.Count > 0) Then Try fLayer.AddLabels("[NOMOR_RUMAH]", New Font("" + fname + "", fsize), fcolor) Catch ex As Exception MsgBox(ex.ToString, MsgBoxStyle.Critical, "Error") End Try End If End Sub Private Sub hapusLabel() Dim fLayer As FeatureLayer = petaUtama.Layers.SelectedLayer If petaUtama.Layers.Count > 0 Then Try fLayer.ShowLabels = False Catch ex As Exception MsgBox(ex.ToString, MsgBoxStyle.Critical, "Error") End Try End If End Sub Private Sub cariData(ByVal cari As String) Dim petaLayer As MapPolygonLayer Dim fLayer As FeatureLayer = petaUtama.Layers.SelectedLayer If cari.Length > 0 Then If petaUtama.Layers.Count > 0 Then petaLayer = CType(petaUtama.Layers.SelectedLayer, MapPolygonLayer) If Not petaLayer Is Nothing Then Try fLayer.DataSet.FillAttributes() Dim Scheme As PolygonScheme = New PolygonScheme() Dim filter As String = "[NOMOR_RUMAH] LIKE '%" & cari & "%'" Dim Category As PolygonCategory = New PolygonCategory(Color.Yellow, Color.Red, 1) Category.FilterExpression = filter Scheme.AddCategory(Category) Category.LegendText = "ID PRODUK = " + tsCari.Text fLayer.Symbology = Scheme tsCari.Text = "" Catch ex As Exception MsgBox(ex.ToString, MsgBoxStyle.Critical, "Error")
  • 16. 16 End Try ' End If Else MessageBox.Show("Pilihan Layer Harus Polygon", "Informasi", MessageBoxButtons.OK, MessageBoxIcon.Information) End If End If End If End Sub Function gabungArray(ByVal ar As Array) Dim result As String = "" Dim b As Integer = 0 For j As Integer = 0 To ar.Length - 1 Step 1 If Not ar(j) = "" And result = "" Then result = ar(j) b = 1 ElseIf Not ar(j) = "" And Not result = "" Then result = ar(j) & "','" & result End If Next Return result End Function Private Sub jenisUnit() Dim petaLayer As MapPolygonLayer = Nothing If (petaUtama.Layers.Count > 0) Then petaLayer = CType(petaUtama.Layers.SelectedLayer, MapPolygonLayer) If Not petaLayer Is Nothing Then petaLayer = TryCast(petaUtama.Layers.SelectedLayer, MapPolygonLayer) petaLayer.DataSet.FillAttributes() Dim jumlah As Integer = 0 Dim category() As PolygonCategory = Nothing Dim filter() As String = Nothing Dim kd_status() As String = Nothing Dim scheme As New PolygonScheme petaLayer.Symbology.ClearCategories() Try Call koneksiDB() sql.Connection = koneksi sql.CommandType = CommandType.Text Dim query As String query = "select kd_jenis_unit,nama_jenis_unit,r,g,b from tbl_jenis_unit where 1=1 ORDER BY kd_jenis_unit asc" sql.CommandText = query dataadapter = New MySql.Data.MySqlClient.MySqlDataAdapter(sql.CommandText, koneksi) dataadapter.Fill(dataset, "data_warna_jenis_unit") Dim i As Integer = 0 For i = 0 To dataset.Tables("data_warna_jenis_unit").Rows.Count - 1 Dim query_jenis_unit As String = "select nomor_rumah from tbl_unit where kd_lokasi='" & tsStatusLokasi.Text & "' and kd_jenis_unit='" & dataset.Tables("data_warna_jenis_unit").Rows(i)(0).ToString & "'" sql.CommandText = query_jenis_unit dataadapter = New MySql.Data.MySqlClient.MySqlDataAdapter(sql.CommandText, koneksi) dataadapter.Fill(dataset, "data_jenis_unit") ReDim kd_status(dataset.Tables("data_jenis_unit").Rows.Count - 1) For j As Integer = 0 To dataset.Tables("data_jenis_unit").Rows.Count - 1 kd_status(j) = dataset.Tables("data_jenis_unit").Rows(j)(0) Next Dim daftar_kd_unit As String = gabungArray(kd_status) If Not daftar_kd_unit = "" Then ReDim Preserve category(i) category(i) = New PolygonCategory(Color.FromArgb(dataset.Tables("data_warna_jenis_unit").Rows(i)(2),
  • 17. 17 dataset.Tables("data_warna_jenis_unit").Rows(i)(3), dataset.Tables("data_warna_jenis_unit").Rows(i)(4)), Color.Red, 1) ReDim Preserve filter(i) filter(i) = "[NOMOR_RUMAH] IN ('" & daftar_kd_unit & "')" category(i).FilterExpression = filter(i) category(i).LegendText = dataset.Tables("data_warna_jenis_unit").Rows(i)(1).ToString & " [" & dataset.Tables("data_jenis_unit").Rows.Count & "]" scheme.AddCategory(category(i)) End If dataset.Tables("data_jenis_unit").Clear() Next dataset.Tables("data_warna_jenis_unit").Clear() koneksi.Close() Catch ex As Exception MsgBox(ex.ToString, MsgBoxStyle.Critical, "Error") End Try If scheme.Categories.Count >= 0 Then petaLayer.Symbology = scheme Else MessageBox.Show("Tidak ada kecocokan peta dengan database", "Informasi", MessageBoxButtons.OK, MessageBoxIcon.Information) End If Else MessageBox.Show("Layer Terpilih Bukan Polygon", "Informasi", MessageBoxButtons.OK, MessageBoxIcon.Information) End If End If End Sub Private Sub statusPemasaran() Dim petaLayer As MapPolygonLayer = Nothing If (petaUtama.Layers.Count > 0) Then petaLayer = CType(petaUtama.Layers.SelectedLayer, MapPolygonLayer) If Not petaLayer Is Nothing Then petaLayer = TryCast(petaUtama.Layers.SelectedLayer, MapPolygonLayer) petaLayer.DataSet.FillAttributes() Dim jumlah As Integer = 0 Dim category() As PolygonCategory = Nothing Dim filter() As String = Nothing Dim kd_status() As String = Nothing Dim scheme As New PolygonScheme petaLayer.Symbology.ClearCategories() Try Call koneksiDB() sql.Connection = koneksi sql.CommandType = CommandType.Text Dim query As String query = "select kd_status_pemasaran,nama_status_pemasaran,r,g,b from tbl_status_pemasaran where 1=1 ORDER BY kd_status_pemasaran asc" sql.CommandText = query dataadapter = New MySql.Data.MySqlClient.MySqlDataAdapter(sql.CommandText, koneksi) dataadapter.Fill(dataset, "data_warna_status_pemasaran") Dim i As Integer = 0 For i = 0 To dataset.Tables("data_warna_status_pemasaran").Rows.Count - 1 query = "select nomor_rumah from tbl_unit where kd_lokasi='" & tsStatusLokasi.Text & "' and kd_status_pemasaran='" & dataset.Tables("data_warna_status_pemasaran").Rows(i)(0).ToString & "'" sql.CommandText = query dataadapter = New MySql.Data.MySqlClient.MySqlDataAdapter(sql.CommandText, koneksi) dataadapter.Fill(dataset, "data_unit_pemasaran") ReDim kd_status(dataset.Tables("data_unit_pemasaran").Rows.Count - 1) For j As Integer = 0 To dataset.Tables("data_unit_pemasaran").Rows.Count - 1 kd_status(j) = dataset.Tables("data_unit_pemasaran").Rows(j)(0) Next Dim daftar_kd_unit As String = gabungArray(kd_status)
  • 18. 18 If Not daftar_kd_unit = "" Then ReDim Preserve category(i) category(i) = New PolygonCategory(Color.FromArgb(dataset.Tables("data_warna_status_pemasaran").Rows(i)(2), dataset.Tables("data_warna_status_pemasaran").Rows(i)(3), dataset.Tables("data_warna_status_pemasaran").Rows(i)(4)), Color.Red, 1) ReDim Preserve filter(i) filter(i) = "[NOMOR_RUMAH] IN ('" & daftar_kd_unit & "')" category(i).FilterExpression = filter(i) category(i).LegendText = dataset.Tables("data_warna_status_pemasaran").Rows(i)(1).ToString & " [" & dataset.Tables("data_unit_pemasaran").Rows.Count & "]" scheme.AddCategory(category(i)) End If dataset.Tables("data_unit_pemasaran").Clear() Next dataset.Tables("data_warna_status_pemasaran").Clear() koneksi.Close() Catch ex As Exception MsgBox(ex.ToString, MsgBoxStyle.Critical, "Error") End Try If scheme.Categories.Count >= 0 Then petaLayer.Symbology = scheme Else MessageBox.Show("Tidak ada kecocokan peta dengan database", "Informasi", MessageBoxButtons.OK, MessageBoxIcon.Information) End If Else MessageBox.Show("Layer Terpilih Bukan Polygon", "Informasi", MessageBoxButtons.OK, MessageBoxIcon.Information) End If End If End Sub Private Sub statusPembangunan() Dim petaLayer As MapPolygonLayer = Nothing Dim query As String If (petaUtama.Layers.Count > 0) Then petaLayer = CType(petaUtama.Layers.SelectedLayer, MapPolygonLayer) If Not petaLayer Is Nothing Then petaLayer = TryCast(petaUtama.Layers.SelectedLayer, MapPolygonLayer) petaLayer.DataSet.FillAttributes() Dim jumlah As Integer = 0 Dim category() As PolygonCategory = Nothing Dim filter() As String = Nothing Dim kd_status() As String = Nothing Dim scheme As New PolygonScheme petaLayer.Symbology.ClearCategories() Try Call koneksiDB() sql.Connection = koneksi sql.CommandType = CommandType.Text query = "select kd_status_pembangunan,nama_status_pembangunan,r,g,b from tbl_status_pembangunan where 1=1 ORDER BY kd_status_pembangunan asc" sql.CommandText = query dataadapter = New MySql.Data.MySqlClient.MySqlDataAdapter(sql.CommandText, koneksi) dataadapter.Fill(dataset, "data_warna_status_pembangunan") Dim i As Integer = 0 For i = 0 To dataset.Tables("data_warna_status_pembangunan").Rows.Count - 1 query = "select nomor_rumah from tbl_unit where kd_lokasi='" & tsStatusLokasi.Text & "' and kd_status_pembangunan='" & dataset.Tables("data_warna_status_pembangunan").Rows(i)(0).ToString & "'" sql.CommandText = query dataadapter = New MySql.Data.MySqlClient.MySqlDataAdapter(sql.CommandText, koneksi) dataadapter.Fill(dataset, "data_unit_status_pembangunan") ReDim kd_status(dataset.Tables("data_unit_status_pembangunan").Rows.Count - 1) For j As Integer = 0 To dataset.Tables("data_unit_status_pembangunan").Rows.Count - 1
  • 19. 19 kd_status(j) = dataset.Tables("data_unit_status_pembangunan").Rows(j)(0) Next Dim daftar_kd_unit As String = gabungArray(kd_status) If Not daftar_kd_unit = "" Then ReDim Preserve category(i) category(i) = New PolygonCategory(Color.FromArgb(dataset.Tables("data_warna_status_pembangunan").Rows(i)(2), dataset.Tables("data_warna_status_pembangunan").Rows(i)(3), dataset.Tables("data_warna_status_pembangunan").Rows(i)(4)), Color.Red, 1) ReDim Preserve filter(i) filter(i) = "[NOMOR_RUMAH] IN ('" & daftar_kd_unit & "')" category(i).FilterExpression = filter(i) category(i).LegendText = dataset.Tables("data_warna_status_pembangunan").Rows(i)(1).ToString & " [" & dataset.Tables("data_unit_status_pembangunan").Rows.Count & "]" scheme.AddCategory(category(i)) End If dataset.Tables("data_unit_status_pembangunan").Clear() Next dataset.Tables("data_warna_status_pembangunan").Clear() koneksi.Close() Catch ex As Exception MsgBox(ex.ToString, MsgBoxStyle.Critical, "Error") End Try If scheme.Categories.Count >= 0 Then petaLayer.Symbology = scheme Else MessageBox.Show("Tidak ada kecocokan peta dengan database", "Informasi", MessageBoxButtons.OK, MessageBoxIcon.Information) End If Else MessageBox.Show("Layer Terpilih Bukan Polygon", "Informasi", MessageBoxButtons.OK, MessageBoxIcon.Information) End If End If End Sub Private Sub statusSertifikat() Dim petaLayer As MapPolygonLayer = Nothing If (petaUtama.Layers.Count > 0) Then petaLayer = CType(petaUtama.Layers.SelectedLayer, MapPolygonLayer) If Not petaLayer Is Nothing Then petaLayer = TryCast(petaUtama.Layers.SelectedLayer, MapPolygonLayer) petaLayer.DataSet.FillAttributes() Dim jumlah As Integer = 0 Dim category() As PolygonCategory = Nothing Dim filter() As String = Nothing Dim kd_status() As String = Nothing Dim scheme As New PolygonScheme petaLayer.Symbology.ClearCategories() Try Call koneksiDB() sql.Connection = koneksi sql.CommandType = CommandType.Text Dim query As String query = "select kd_status_sertifikat,nama_status_sertifikat,r,g,b from tbl_status_sertifikat where 1=1 ORDER BY kd_status_sertifikat asc" sql.CommandText = query dataadapter = New MySql.Data.MySqlClient.MySqlDataAdapter(sql.CommandText, koneksi) dataadapter.Fill(dataset, "data_warna_status_sertifikat") Dim i As Integer = 0 For i = 0 To dataset.Tables("data_warna_status_sertifikat").Rows.Count - 1 query = "select nomor_rumah from tbl_unit where kd_lokasi='" & tsStatusLokasi.Text & "' and kd_status_sertifikat='" & dataset.Tables("data_warna_status_sertifikat").Rows(i)(0).ToString & "'" sql.CommandText = query dataadapter = New MySql.Data.MySqlClient.MySqlDataAdapter(sql.CommandText, koneksi) dataadapter.Fill(dataset, "data_unit_sertifikat")
  • 20. 20 ReDim kd_status(dataset.Tables("data_unit_sertifikat").Rows.Count - 1) For j As Integer = 0 To dataset.Tables("data_unit_sertifikat").Rows.Count - 1 kd_status(j) = dataset.Tables("data_unit_sertifikat").Rows(j)(0) Next Dim daftar_kd_unit As String = gabungArray(kd_status) If Not daftar_kd_unit = "" Then ReDim Preserve category(i) category(i) = New PolygonCategory(Color.FromArgb(dataset.Tables("data_warna_status_sertifikat").Rows(i)(2), dataset.Tables("data_warna_status_sertifikat").Rows(i)(3), dataset.Tables("data_warna_status_sertifikat").Rows(i)(4)), Color.Red, 1) ReDim Preserve filter(i) filter(i) = "[NOMOR_RUMAH] IN ('" & daftar_kd_unit & "')" category(i).FilterExpression = filter(i) category(i).LegendText = dataset.Tables("data_warna_status_sertifikat").Rows(i)(1).ToString & " [" & dataset.Tables("data_unit_sertifikat").Rows.Count & "]" scheme.AddCategory(category(i)) End If dataset.Tables("data_unit_sertifikat").Clear() Next dataset.Tables("data_warna_status_sertifikat").Clear() koneksi.Close() Catch ex As Exception MsgBox(ex.ToString) End Try If scheme.Categories.Count >= 0 Then petaLayer.Symbology = scheme Else MessageBox.Show("Tidak ada kecocokan peta dengan database", "Informasi", MessageBoxButtons.OK, MessageBoxIcon.Information) End If Else MessageBox.Show("Layer Terpilih Bukan Polygon", "Informasi", MessageBoxButtons.OK, MessageBoxIcon.Information) End If End If End Sub Private Sub tsBtnTambahPeta_Click(sender As Object, e As EventArgs) Handles tsBtnTambahPeta.Click petaUtama.AddLayers() End Sub Private Sub tsBtnHapusPeta_Click(sender As Object, e As EventArgs) Handles tsBtnHapusPeta.Click petaUtama.ClearLayers() tsStatusLokasi.Text = ":-" tsStatusId.Text = ":-" End Sub Private Sub tsBtnDefault_Click(sender As Object, e As EventArgs) Handles tsBtnDefault.Click petaUtama.ZoomToMaxExtent() End Sub Private Sub tsBtnPan_Click(sender As Object, e As EventArgs) Handles tsBtnPan.Click petaUtama.FunctionMode = DotSpatial.Controls.FunctionMode.Pan End Sub Private Sub tsBtnPilih_Click(sender As Object, e As EventArgs) Handles tsBtnPilih.Click petaUtama.FunctionMode = DotSpatial.Controls.FunctionMode.Select End Sub Private Sub tsBtnZoomIn_Click(sender As Object, e As EventArgs) Handles tsBtnZoomIn.Click petaUtama.FunctionMode = DotSpatial.Controls.FunctionMode.ZoomIn End Sub Private Sub tsBtnZoomOut_Click(sender As Object, e As EventArgs) Handles tsBtnZoomOut.Click
  • 21. 21 petaUtama.FunctionMode = DotSpatial.Controls.FunctionMode.ZoomOut End Sub Private Sub tsBtnInfo_Click(sender As Object, e As EventArgs) Handles tsBtnInfo.Click petaUtama.FunctionMode = DotSpatial.Controls.FunctionMode.Info End Sub Private Sub tsBtnCari_Click(sender As Object, e As EventArgs) Handles tsBtnCari.Click cariData(tsCari.Text) End Sub Private Sub tsBtnUkur_Click(sender As Object, e As EventArgs) Handles tsBtnUkur.Click With petaUtama .FunctionMode = FunctionMode.None For Each mapfunc As IMapFunction In .MapFunctions If TypeOf mapfunc Is MapFunctionMeasure Then .MapFunctions.Remove(mapfunc) Exit For End If Next mapFunction = New MapFunctionMeasure(petaUtama) .MapFunctions.Add(mapFunction) .Cursor = Cursors.Cross mapFunction.Activate() End With End Sub Private Sub tsBtnTabel_Click(sender As Object, e As EventArgs) Handles tsBtnTabel.Click If petaUtama.Layers.Count > 0 Then For i = 0 To petaUtama.Layers.Count - 1 If petaUtama.Layers(i).IsSelected = True Then If petaUtama.Layers(i).ToString = "DotSpatial.Controls.MapPointLayer" Then layerPoint = CType(petaUtama.Layers(i), MapPointLayer) mapFitureLayer = "Point" End If If petaUtama.Layers(i).ToString = "DotSpatial.Controls.MapLineLayer" Then layerLine = CType(petaUtama.Layers(i), MapLineLayer) mapFitureLayer = "Line" End If If petaUtama.Layers(i).ToString = "DotSpatial.Controls.MapPolygonLayer" Then layerPoly = CType(petaUtama.Layers(i), MapPolygonLayer) mapFitureLayer = "Polygon" End If Select Case mapFitureLayer Case "Point" layerPoint.DataSet.AddFid() frmAttributPeta.dgvAttributPeta.DataSource = layerPoint.DataSet.DataTable frmAttributPeta.tsSources.Text = layerPoint.DataSet.Filename frmAttributPeta.tsTipeShape.Text = mapFitureLayer Case "Line" layerLine.DataSet.AddFid() frmAttributPeta.dgvAttributPeta.DataSource = layerLine.DataSet.DataTable frmAttributPeta.tsSources.Text = layerLine.DataSet.Filename frmAttributPeta.tsTipeShape.Text = mapFitureLayer Case "Polygon" layerPoly.DataSet.AddFid() frmAttributPeta.dgvAttributPeta.DataSource = layerPoly.DataSet.DataTable frmAttributPeta.tsSources.Text = layerPoly.DataSet.Filename frmAttributPeta.tsTipeShape.Text = mapFitureLayer End Select End If Next Else MsgBox(e.ToString, MsgBoxStyle.Critical, "Error") End If frmAttributPeta.Show() End Sub
  • 22. 22 Private Sub tsBtnPoint_Click(sender As Object, e As EventArgs) Handles tsBtnPoint.Click petaUtama.Cursor = Cursors.Cross shapeType = "Point" pointF.Projection = petaUtama.Projection Dim column As New DataColumn("PointID") pointF.DataTable.Columns.Add(column) Dim pointLayer As MapPointLayer = petaUtama.Layers.Add(pointF) Dim symbol As New PointSymbolizer(Color.Red, DotSpatial.Symbology.PointShape.Ellipse, 3) pointLayer.Symbolizer = symbol pointLayer.LegendText = "point" pointmouseClick = True End Sub Private Sub tsBtnLine_Click(sender As Object, e As EventArgs) Handles tsBtnLine.Click petaUtama.Cursor = Cursors.Cross shapeType = "line" lineF.Projection = petaUtama.Projection Dim column As New DataColumn("LineID") If Not (lineF.DataTable.Columns.Contains("LineID")) Then lineF.DataTable.Columns.Add(column) End If lineLayer = petaUtama.Layers.Add(lineF) Dim symbol As New LineSymbolizer(Color.Blue, 2) lineLayer.Symbolizer = symbol lineLayer.LegendText = "line" firstClick = True linemouseClick = True End Sub Private Sub tsBtnPoly_Click(sender As Object, e As EventArgs) Handles tsBtnPoly.Click petaUtama.Cursor = Cursors.Cross shapeType = "polygon" polygonF.Projection = petaUtama.Projection Dim column As New DataColumn("PolygonID") polygonF.DataTable.Columns.Add(column) Dim polygonLayer As MapPolygonLayer = petaUtama.Layers.Add(polygonF) Dim symbol As New PolygonSymbolizer(Color.Green) polygonLayer.Symbolizer = symbol polygonLayer.LegendText = "polygon" firstClick = True polygonmouseClick = True End Sub Private Sub tsBtnBersihkanPeta_Click(sender As Object, e As EventArgs) Handles tsBtnBersihkanPeta.Click Me.Close() End Sub Private Sub petaUtama_MouseMove(sender As Object, e As MouseEventArgs) Handles petaUtama.MouseMove Dim coord As Coordinate = petaUtama.PixelToProj(e.Location) tsStatusXy.Text = ":" & coord.X.ToString() & " / " & coord.Y.ToString() If petaUtama.Layers.Count > 0 And tsStatusLokasi.Text = ":-" Then For i = 0 To petaUtama.Layers.Count - 1 If petaUtama.Layers(i).ToString = "DotSpatial.Controls.MapPolygonLayer" Then Dim dt As DataTable layerPoly = CType(petaUtama.Layers(i), MapPolygonLayer) dt = layerPoly.DataSet.DataTable Try tsStatusLokasi.Text = dt.Rows(1).Item("KD_LOKASI").ToString() Catch ex As Exception ‘ MsgBox(e.ToString, MsgBoxStyle.Critical, "Error")//Tidak Menampilkan Error End Try End If Next End If End Sub
  • 23. 23 Private Sub petaUtama_MouseUp(sender As Object, e As MouseEventArgs) Handles petaUtama.MouseUp If petaUtama.Layers.Count > 0 Then Dim fLayer As FeatureLayer = petaUtama.Layers.SelectedLayer Dim dt As DataTable Dim petaLayer As MapPolygonLayer Try petaLayer = CType(petaUtama.Layers.SelectedLayer, MapPolygonLayer) If petaUtama.FunctionMode = FunctionMode.Select And Not petaLayer Is Nothing Then Dim result As List(Of IFeature) = New List(Of IFeature)() result = fLayer.Selection.ToFeatureList Dim data_profil As New DataTable For Each feature As IFeature In result If Not IsDBNull(feature.ShapeIndex) Then dt = petaLayer.DataSet.DataTable If frmDetailRumah.IsHandleCreated Then frmDetailRumah.Close() End If Dim id As String = dt.Rows(fLayer.DataSet.ShapeIndices.IndexOf(feature.ShapeIndex)).Item("NOMOR_RUMAH").ToString() Dim kd_lokasi As String = dt.Rows(fLayer.DataSet.ShapeIndices.IndexOf(feature.ShapeIndex)).Item("KD_LOKASI").ToString() tsStatusId.Text = id tsStatusLokasi.Text = kd_lokasi frmDetailRumah.Refresh() frmDetailRumah.lblNomorRumah.Text = id frmDetailRumah.lblKodeLokasi.Text = kd_lokasi frmDetailRumah.ShowDialog() End If Next End If Catch ex As Exception MsgBox(e.ToString) End Try End If End Sub Private Sub tsBtnLabel_Click(sender As Object, e As EventArgs) Handles tsBtnLabel.Click tampilkanLabelPeta() End Sub Private Sub tsBtnHapusLabel_Click(sender As Object, e As EventArgs) Handles tsBtnHapusLabel.Click hapusLabel() End Sub Private Sub tsBtnJenisUnit_Click(sender As Object, e As EventArgs) Handles tsBtnJenisUnit.Click jenisUnit() End Sub Private Sub tsBtnStatusPemasaran_Click(sender As Object, e As EventArgs) Handles tsBtnStatusPemasaran.Click statusPemasaran() End Sub Private Sub tsStatusPembangunan_Click(sender As Object, e As EventArgs) Handles tsStatusPembangunan.Click statusPembangunan() End Sub Private Sub tsStatusSertifikat_Click(sender As Object, e As EventArgs) Handles tsStatusSertifikat.Click statusSertifikat() End Sub End Sub End Class
  • 24. 24 C. Coding Pada Form Detail Rumah (frmDetailRumah) Public Class frmDetailRumah Private Sub detailData(ByVal kd_lokasi As String, nomor_rumah As String) Dim query As String Dim jawaban As Integer If nomor_rumah.Length <= 0 Or kd_lokasi.Length <= 0 Then MsgBox("Masukkan Nomor Rumah/NDR yang dicari", MsgBoxStyle.Critical, "Pesan") Exit Sub Else Try Call koneksiDB() sql.Connection = koneksi sql.CommandType = CommandType.Text query = "select kd_lokasi,nomor_rumah,luas_bangunan,luas_tanah,alamat,harga_jual,nama_jenis_unit," & _ "nama_status_pemasaran,nama_status_pembangunan,nama_status_sertifikat " & _ "from tbl_unit left join tbl_jenis_unit on (tbl_unit.kd_jenis_unit=tbl_jenis_unit.kd_jenis_unit) " & _ "left join tbl_status_pemasaran on (tbl_unit.kd_status_pemasaran=tbl_status_pemasaran.kd_status_pemasaran) " & _ "left join tbl_status_pembangunan on (tbl_unit.kd_status_pembangunan=tbl_status_pembangunan.kd_status_pembangunan) " & _ "left join tbl_status_sertifikat on (tbl_unit.kd_status_sertifikat=tbl_status_sertifikat.kd_status_sertifikat) " & _ "where tbl_unit.kd_lokasi='" & kd_lokasi & "' and tbl_unit.nomor_rumah='" & nomor_rumah & "'" Console.WriteLine(query) sql.CommandText = query datareader = sql.ExecuteReader datareader.Read() If datareader.HasRows = True Then Me.lblKodeLokasi.Text = datareader.GetString(0).ToString Me.lblNomorRumah.Text = datareader.GetString(1).ToString Me.lblLuasBangunan.Text = datareader.GetString(2).ToString Me.lblLuasTanah.Text = datareader.GetString(3).ToString Me.lblAlamat.Text = datareader.GetString(4).ToString Me.lblHargaJual.Text = Format(Val(datareader.GetString(5).ToString), "###,###") Me.lblJenisUnit.Text = datareader.GetString(6).ToString Me.lblStatusPemasaran.Text = datareader.GetString(7).ToString Me.lblStatusPembangunan.Text = datareader.GetString(8).ToString Me.lblStatusSertifikat.Text = datareader.GetString(9).ToString Else jawaban = MessageBox.Show("Data Rumah Tidak Ditemukan, Masukkan Data Baru ??", "Informasi", MessageBoxButtons.YesNo, MessageBoxIcon.Information) If jawaban = vbYes Then frmCrudRumah.txtKodeLokasi.Text = lblKodeLokasi.Text frmCrudRumah.txtNomorRumah.Text = lblNomorRumah.Text frmCrudRumah.Text = "Masukkan Data Rumah" frmCrudRumah.ShowDialog() ElseIf jawaban = vbNo Then Me.Close() End If End If koneksi.Close() Catch ex As Exception MsgBox(ex.ToString, MsgBoxStyle.Critical, "Error") End Try End If End Sub Private Sub hapusData(ByVal kd_lokasi As String, nomor_rumah As String) If MsgBox("Anda Yakin Akan Hapus Data Rumah = " & kd_lokasi & " Nomor Rumah = " & nomor_rumah & "??", MsgBoxStyle.OkCancel, "Konfirmasi Hapus") = MsgBoxResult.Cancel Then Exit Sub End If Try Call koneksiDB() sql.Connection = koneksi sql.CommandType = CommandType.Text Dim query As String = "delete from tbl_unit where kd_lokasi = '" & kd_lokasi & "' and nomor_rumah='" & nomor_rumah & "'"
  • 25. 25 sql.CommandText = query If sql.ExecuteNonQuery().ToString = True Then MsgBox("Hapus Data Rumah Berhasil", MsgBoxStyle.Information, "Pesan") Else MsgBox("Hapus Data Rumah Gagal", MsgBoxStyle.Critical, "Error") End If Catch ex As Exception MsgBox(ex.ToString, MsgBoxStyle.Critical, "Error") End Try koneksi.Close() End Sub Private Sub btnStatusPemasaran_Click(sender As Object, e As EventArgs) Handles btnStatusPemasaran.Click If lblKodeLokasi.Text.Length > 0 And lblNomorRumah.Text.Length > 0 Then frmStatus.tsKdLokasi.Text = lblKodeLokasi.Text frmStatus.tsNomorRumah.Text = lblNomorRumah.Text frmStatus.Text = "Ubah Status Pemasaran" frmStatus.ShowDialog() End If End Sub Private Sub btnStatusPembangunan_Click(sender As Object, e As EventArgs) Handles btnStatusPembangunan.Click If lblKodeLokasi.Text.Length > 0 And lblNomorRumah.Text.Length > 0 Then frmStatus.tsKdLokasi.Text = lblKodeLokasi.Text frmStatus.tsNomorRumah.Text = lblNomorRumah.Text frmStatus.Text = "Ubah Status Pembangunan" frmStatus.ShowDialog() End If End Sub Private Sub btnStatusSertifikat_Click(sender As Object, e As EventArgs) Handles btnStatusSertifikat.Click If lblKodeLokasi.Text.Length > 0 And lblNomorRumah.Text.Length > 0 Then frmStatus.tsKdLokasi.Text = lblKodeLokasi.Text frmStatus.tsNomorRumah.Text = lblNomorRumah.Text frmStatus.Text = "Ubah Status Sertifikat" frmStatus.ShowDialog() End If End Sub Private Sub btnUbah_Click(sender As Object, e As EventArgs) Handles btnUbah.Click frmCrudRumah.Text = "Ubah Data Rumah" frmCrudRumah.txtKodeLokasi.Text = lblKodeLokasi.Text frmCrudRumah.txtNomorRumah.Text = lblNomorRumah.Text frmCrudRumah.ShowDialog() End Sub Private Sub btnRefresh_Click(sender As Object, e As EventArgs) Handles btnRefresh.Click detailData(lblKodeLokasi.Text, lblNomorRumah.Text) End Sub Private Sub frmDetailRumah_Load(sender As Object, e As EventArgs) Handles MyBase.Load If lblKodeLokasi.Text = "" Or lblNomorRumah.Text = "" Then MsgBox("Data Lokasi Dan Nomor Rumah Kosong", MsgBoxStyle.Information, "Informasi") Me.Close() Else detailData(lblKodeLokasi.Text, lblNomorRumah.Text) End If End Sub Private Sub btnHapus_Click(sender As Object, e As EventArgs) Handles btnHapus.Click hapusData(lblKodeLokasi.Text, lblNomorRumah.Text) Me.Close() End Sub End Class
  • 26. 26 D. Coding Pada Form CRUD Rumah (frmCrudRumah) Imports MySql.Data.MySqlClient Public Class frmCrudRumah Private Sub kosong() txtNomorRumah.Text = "" txtLuasBangunan.Text = "" txtLuasTanah.Text = "" txtAlamat.Text = "" txtHargaJual.Text = "" cmbJenisUnit.SelectedIndex = 0 End Sub Private Sub tampilJenisUnit() Dim myData As New DataTable Try Call koneksiDB() sql.Connection = koneksi sql.CommandType = CommandType.Text sql.CommandText = "select kd_jenis_unit,nama_jenis_unit from tbl_jenis_unit order by kd_jenis_unit asc" dataadapter.SelectCommand = sql dataset.Tables.Clear() dataadapter.Fill(myData) cmbJenisUnit.DataSource = myData cmbJenisUnit.DisplayMember = "nama_jenis_unit" cmbJenisUnit.ValueMember = "kd_jenis_unit" koneksi.Close() Catch ex As Exception MsgBox(ex.ToString, MsgBoxStyle.Critical, "Error") End Try End Sub Private Sub Simpan() If txtKodeLokasi.Text.Length > 0 Then Try Call koneksiDB() sql.Connection = koneksi sql.CommandType = CommandType.Text Dim query As String = "INSERT INTO tbl_unit (kd_lokasi, nomor_rumah, luas_bangunan,luas_tanah,alamat,harga_jual,kd_jenis_unit) " query &= "VALUES (@kd_lokasi,@nomor_rumah,@luas_bangunan,@luas_tanah,@alamat,@harga_jual,@kd_jenis_unit);" With sql .CommandText = query .Parameters.Clear() .Parameters.Add("@kd_lokasi", MySqlDbType.String).Value = txtKodeLokasi.Text .Parameters.Add("@nomor_rumah", MySqlDbType.String).Value = txtNomorRumah.Text .Parameters.Add("@luas_bangunan", MySqlDbType.String).Value = txtLuasBangunan.Text .Parameters.Add("@luas_tanah", MySqlDbType.String).Value = txtLuasTanah.Text .Parameters.Add("@alamat", MySqlDbType.String).Value = txtAlamat.Text .Parameters.Add("@harga_jual", MySqlDbType.Int16).Value = txtHargaJual.Text .Parameters.Add("@kd_jenis_unit", MySqlDbType.String).Value = cmbJenisUnit.SelectedValue .ExecuteNonQuery() End With kosong() MsgBox("Simpan Data Rumah Berhasil", MsgBoxStyle.Information, "Pesan") Catch ex As MySqlException MsgBox(ex.ToString, MsgBoxStyle.Critical, "Error") Finally koneksi.Close() End Try End If End Sub Private Sub ubahData(ByVal kd_lokasi As String, nomor_rumah As String) Dim query As String
  • 27. 27 If kd_lokasi.Length <= 0 And nomor_rumah.Length <= 0 Then MsgBox("Masukkan Nomor Rumah yang dicari", MsgBoxStyle.Critical, "Pesan") Else Try Call koneksiDB() sql.Connection = koneksi sql.CommandType = CommandType.Text query = "select kd_lokasi,nomor_rumah,luas_bangunan,luas_tanah,alamat,harga_jual,kd_jenis_unit from tbl_unit where kd_lokasi='" & kd_lokasi & "' and nomor_rumah='" & nomor_rumah & "'" sql.CommandText = query datareader = sql.ExecuteReader datareader.Read() If datareader.HasRows = True Then txtKodeLokasi.Text = datareader.GetString(0).ToString txtNomorRumah.Text = datareader.GetString(1).ToString txtLuasBangunan.Text = datareader.GetString(2).ToString txtLuasTanah.Text = datareader.GetString(3).ToString txtAlamat.Text = datareader.GetString(4).ToString txtHargaJual.Text = datareader.GetString(5).ToString cmbJenisUnit.SelectedValue = datareader.GetString(6).ToString txtKodeLokasi.ReadOnly = True txtNomorRumah.ReadOnly = True Else MsgBox("Data Rumah tidak ditemukan", MsgBoxStyle.Critical, "Pesan") Me.Close() End If koneksi.Close() Catch ex As Exception MsgBox(ex.ToString, MsgBoxStyle.Critical, "Error") End Try End If End Sub Private Sub eksekusiUbah() If txtKodeLokasi.Text.Length > 0 And txtNomorRumah.Text.Length > 0 Then Try Call koneksiDB() sql.Connection = koneksi sql.CommandType = CommandType.Text Dim query As String query = "update tbl_unit set luas_bangunan=@luas_bangunan,luas_tanah=@luas_tanah,alamat=@alamat,harga_jual=@harga_jual,kd_j enis_unit=@kd_jenis_unit " & _ "where kd_lokasi='" & txtKodeLokasi.Text & "' and nomor_rumah='" & txtNomorRumah.Text & "';" With sql .CommandText = query .Parameters.Clear() .Parameters.Add("@luas_bangunan", MySqlDbType.String).Value = txtLuasBangunan.Text .Parameters.Add("@luas_tanah", MySqlDbType.String).Value = txtLuasTanah.Text .Parameters.Add("@alamat", MySqlDbType.VarChar).Value = txtAlamat.Text .Parameters.Add("@harga_jual", MySqlDbType.VarChar).Value = txtHargaJual.Text .Parameters.Add("@kd_jenis_unit", MySqlDbType.VarChar).Value = cmbJenisUnit.SelectedValue .ExecuteNonQuery() End With kosong() MsgBox("Ubah Data Rumah Berhasil", MsgBoxStyle.Information, "Pesan") Catch ex As MySqlException MsgBox(ex.ToString, MsgBoxStyle.Critical, "Error") Finally koneksi.Close() End Try End If End Sub Private Sub frmCrudRumah_Load(sender As Object, e As EventArgs) Handles MyBase.Load tampilJenisUnit()
  • 28. 28 If Me.Text = "Masukkan Data Rumah" Then btnOperasi.Text = "&Simpan" ElseIf Me.Text = "Ubah Data Rumah" Then ubahData(txtKodeLokasi.Text, txtNomorRumah.Text) btnOperasi.Text = "&Ubah" End If End Sub Private Sub btnSimpan_Click(sender As Object, e As EventArgs) Handles btnOperasi.Click If btnOperasi.Text = "&Simpan" Then Simpan() frmDetailRumah.btnRefresh.PerformClick() Me.Close() ElseIf btnOperasi.Text = "&Ubah" Then eksekusiUbah() frmDetailRumah.btnRefresh.PerformClick() Me.Close() End If End Sub Private Sub btnTutup_Click(sender As Object, e As EventArgs) Handles btnTutup.Click If Me.Text = "Masukkan Data Rumah" Then If frmDetailRumah.IsHandleCreated Then frmDetailRumah.Close() End If Me.Close() End If End Sub End Class E. Coding Pada Form Status (frmStatus) Public Class frmStatus Dim kd_status, query As String Private Sub tampilDataStatus() Try Call koneksiDB() sql.Connection = koneksi sql.CommandType = CommandType.Text If Me.Text = "Ubah Status Pemasaran" Then query = "select * from tbl_status_pemasaran" ElseIf Me.Text = "Ubah Status Pembangunan" Then query = "select * from tbl_status_pembangunan" ElseIf Me.Text = "Ubah Status Sertifikat" Then query = "select * from tbl_status_sertifikat" End If sql.CommandText = query dataadapter.SelectCommand = sql Dim table As New DataTable dataadapter.Fill(table) dgvStatus.DataSource = table table.Columns(0).ColumnName = "Kode Stutus" table.Columns(1).ColumnName = "Nama Status" table.Columns(2).ColumnName = "Red" table.Columns(3).ColumnName = "Green" table.Columns(4).ColumnName = "Blue" Catch ex As Exception MsgBox(ex.ToString, MsgBoxStyle.Critical, "Error") End Try dgvStatus.ReadOnly = True End Sub Private Sub eksekusiUpdateStatus() Try Call koneksiDB() sql.Connection = koneksi sql.CommandType = CommandType.Text If Me.Text = "Ubah Status Pemasaran" Then query = "update tbl_unit set kd_status_pemasaran='" & kd_status & "' where nomor_rumah='" & tsNomorRumah.Text & "' and kd_lokasi='" & tsKdLokasi.Text & "'"
  • 29. 29 ElseIf Me.Text = "Ubah Status Pembangunan" Then query = "update tbl_unit set kd_status_pembangunan='" & kd_status & "' where nomor_rumah='" & tsNomorRumah.Text & "' and kd_lokasi='" & tsKdLokasi.Text & "'" ElseIf Me.Text = "Ubah Status Sertifikat" Then query = "update tbl_unit set kd_status_sertifikat='" & kd_status & "' where nomor_rumah='" & tsNomorRumah.Text & "' and kd_lokasi='" & tsKdLokasi.Text & "'" End If sql.CommandText = query If sql.ExecuteNonQuery.ToString = True Then MsgBox("Ubah Status Berhasil", MsgBoxStyle.Information, "Pesan Ubah") End If koneksi.Close() Catch ex As Exception MsgBox(ex.ToString, MsgBoxStyle.Critical, "Error") End Try End Sub Private Sub frmStatus_Load(sender As Object, e As EventArgs) Handles MyBase.Load tampilDataStatus() End Sub Private Sub dgvStatus_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvStatus.CellClick kd_status = dgvStatus.CurrentRow.Cells(0).Value.ToString End Sub Private Sub tsBtnUpdate_Click(sender As Object, e As EventArgs) Handles tsBtnUpdate.Click eksekusiUpdateStatus() frmDetailRumah.btnRefresh.PerformClick() Me.Close() End Sub End Class F. Coding Form Attribute Peta (frmAttributPeta) Public Class frmAttributPeta Private Sub konvertExcel() Dim ExcelApp As Object, ExcelBook As Object Dim ExcelSheet As Object Dim i, j As Integer Dim columnsCount As Integer = dgvAttributPeta.Columns.Count ExcelApp = CreateObject("Excel.Application") ExcelBook = ExcelApp.WorkBooks.Add ExcelSheet = ExcelBook.WorkSheets(1) With ExcelSheet For Each column In dgvAttributPeta.Columns .Cells(1, column.Index + 1).Value = column.Name Next For i = 2 To dgvAttributPeta.RowCount .Cells(i, 1) = dgvAttributPeta.Rows((i - 1) - 1).Cells("KD_LOKASI").Value For j = 1 To dgvAttributPeta.Columns.Count - 1 .cells(i, j + 1) = dgvAttributPeta.Rows((i - 1) - 1).Cells(j).Value Next Next End With ExcelApp.Visible = True ExcelSheet = Nothing ExcelBook = Nothing ExcelApp = Nothing End Sub Private Sub SimpanToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SimpanToolStripMenuItem.Click Select Case tsTipeShape.Text Case "Point" frmSiteplan.layerPoint.DataSet.UpdateExtent() frmSiteplan.layerPoint.DataSet.Save() Case "Line" frmSiteplan.layerLine.DataSet.UpdateExtent() frmSiteplan.layerLine.DataSet.Save() Case "Polygon"
  • 30. 30 frmSiteplan.layerPoly.DataSet.UpdateExtent() frmSiteplan.layerPoly.DataSet.Save() End Select End Sub Private Sub TambahKolomToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles TambahKolomToolStripMenuItem.Click Dim namaKolom As String = InputBox("Masukkan Nama Kolom Yang Akan Ditambahkan", vbOKCancel) If namaKolom <> "" Then Select Case tsTipeShape.Text Case "Point" frmSiteplan.layerPoint.DataSet.DataTable.Columns.Add(UCase(namaKolom)) Case "Line" frmSiteplan.layerLine.DataSet.DataTable.Columns.Add(UCase(namaKolom)) Case "Polygon" frmSiteplan.layerPoly.DataSet.DataTable.Columns.Add(UCase(namaKolom)) End Select End If End Sub Private Sub dgvAttributPeta_CellMouseClick(sender As Object, e As DataGridViewCellMouseEventArgs) Handles dgvAttributPeta.CellMouseClick Dim query As String = "" Dim i As Integer = 0 For Each Row As DataGridViewRow In dgvAttributPeta.SelectedRows If i = 0 Then query = "[FID]=" & Row.Cells("FID").Value Else query = query + "OR [FID]=" & Row.Cells("FID").Value End If i = i + 1 Next Select Case tsTipeShape.Text Case "Point" frmSiteplan.layerPoint.SelectByAttribute(query) Case "Line" frmSiteplan.layerLine.SelectByAttribute(query) Case "Polygon" frmSiteplan.layerPoly.SelectByAttribute(query) End Select End Sub Private Sub tsCari_Click(sender As Object, e As EventArgs) Handles tsCari.Click Select Case tsTipeShape.Text Case "Point" frmSiteplan.layerPoint.ZoomToSelectedFeatures() Case "Line" frmSiteplan.layerLine.ZoomToSelectedFeatures() Case "Polygon" frmSiteplan.layerPoly.ZoomToSelectedFeatures() End Select End Sub Private Sub tsKonversiExcel_Click(sender As Object, e As EventArgs) Handles tsKonversiExcel.Click konvertExcel() End Sub Private Sub UbahKolomToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles UbahKolomToolStripMenuItem.Click frmUbahKolomSiteplan.ShowDialog() End Sub Private Sub HapusKolomToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles HapusKolomToolStripMenuItem.Click frmHapusKolomSiteplan.ShowDialog() End Sub End Class
  • 31. 31 G. Coding Pada Form Ubah Kolom (frmUbahKolomSiteplan) Public Class frmUbahKolomSiteplan Private Sub frmUbahKolomSiteplan_Load(sender As Object, e As EventArgs) Handles MyBase.Load cbKolom.Items.Clear() Select Case frmAttributPeta.tsTipeShape.Text Case "Point" For Each kolom As DataColumn In frmSiteplan.layerPoint.DataSet.DataTable.Columns cbKolom.Items.Add(UCase(kolom.ColumnName)) Next Case "Line" For Each kolom As DataColumn In frmSiteplan.layerLine.DataSet.DataTable.Columns cbKolom.Items.Add(UCase(kolom.ColumnName)) Next Case "Polygon" For Each kolom As DataColumn In frmSiteplan.layerPoly.DataSet.DataTable.Columns cbKolom.Items.Add(UCase(kolom.ColumnName)) Next End Select End Sub Private Sub btnUbah_Click(sender As Object, e As EventArgs) Handles btnUbah.Click If txtNamaBaruKolom.Text = "" Then Exit Sub Select Case frmAttributPeta.tsTipeShape.Text Case "Point" frmSiteplan.layerPoint.DataSet.DataTable.Columns.Item(cbKolom.SelectedIndex).ColumnName = UCase(txtNamaBaruKolom.Text) Case "Line" frmSiteplan.layerLine.DataSet.DataTable.Columns.Item(cbKolom.SelectedIndex).ColumnName = UCase(txtNamaBaruKolom.Text) Case "Polygon" frmSiteplan.layerPoly.DataSet.DataTable.Columns.Item(cbKolom.SelectedIndex).ColumnName = UCase(txtNamaBaruKolom.Text) End Select End Sub End Class H. Coding Pada Form Hapus Kolom (frmHapusKolomSiteplan) Public Class frmHapusKolomSiteplan Private Sub frmHapusKolomSiteplan_Load(sender As Object, e As EventArgs) Handles MyBase.Load clbKolom.Items.Clear() Select Case frmAttributPeta.tsTipeShape.Text Case "Point" For Each kolom As DataColumn In frmSiteplan.layerPoint.DataSet.DataTable.Columns clbKolom.Items.Add(UCase(kolom.ColumnName)) Next Case "Line" For Each kolom As DataColumn In frmSiteplan.layerLine.DataSet.DataTable.Columns clbKolom.Items.Add(UCase(kolom.ColumnName)) Next Case "Polygon" For Each kolom As DataColumn In frmSiteplan.layerPoly.DataSet.DataTable.Columns clbKolom.Items.Add(UCase(kolom.ColumnName)) Next End Select End Sub Private Sub btnHapus_Click(sender As Object, e As EventArgs) Handles btnHapus.Click On Error GoTo err
  • 32. 32 For Each itemChecked In clbKolom.CheckedItems Select Case frmAttributPeta.tsTipeShape.Text Case "Point" frmSiteplan.layerPoint.DataSet.DataTable.Columns.RemoveAt(clbKolom.Items.IndexOf(itemChecked)) Case "Line" frmSiteplan.layerLine.DataSet.DataTable.Columns.RemoveAt(clbKolom.Items.IndexOf(itemChecked)) Case "Polygon" frmSiteplan.layerPoly.DataSet.DataTable.Columns.RemoveAt(clbKolom.Items.IndexOf(itemChecked)) End Select Next Me.Close() err: MsgBox(Err.Description, Err.Number, vbExclamation + vbOKOnly) Me.Close() End Sub End Class
  • 33. 33 ALUR APLIKASI SISTEM INFORMASI GEORAFIS PENJUALAN RUMAH Data Rumah Ada ? TIDA Y
  • 34. 34 ALUR APLIKASI SISTEM INFORMASI GEORAFIS MODUL SITEPLAN MANAGEMENT
  • 35. 35
  • 36. 36