26
Lampiran 1. Source Code Koneksi Handphone dengan PC Sub Pengirim() Set db = New Connection db.CursorLocation = adUseClient db.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & \data\Access_File\Data_Iklim.mdb;" Set ambilrs = New Recordset ambilrs.Open "select Isi_Permintaan from Tabel_Inbox", db, adOpenStatic, adLockOptimistic Set Frmmenu.DGPengirim.DataSource = ambilrs Screen.MousePointer = vbDefault Frmmenu.bus.Connect com1 ' frmsetting.cmbBox.Text Screen.MousePointer = 11 'arrow Frmmenu.bus.SMS.Refresh Screen.MousePointer = 0 'default Dim i As Integer, DataPengirim As String Dim No_HP As String With Frmmenu.bus Set KotakMasuk = .SMS.Inbox For i = 1 To KotakMasuk.Count With KotakMasuk(i) If .Sender <> "" Then No_HP = .Sender With Frmmenu ambilrs.AddNew ambilrs("Isi_Permintaan") = KotakMasuk(i).Text ambilrs.Update KotakMasuk(i).Delete 'Untuk Menghapus inbox End With End If End With Next i End With End Sub
Lampiran 2. Source Code Ambil Data Cuaca Terkini Private Sub Command1_Click() Dim pesan Dim com1 If DBGrid1.Columns(2) <> "" Then Screen.MousePointer = vbDefault BUS.Connect com1 ' frmsetting.cmbBox.Text Screen.MousePointer = 11 'arrow Screen.MousePointer = vbDefault pesan = MsgBox("Apakah Anda Yakin?", vbYesNo, "Information") If pesan = vbYes Then BUS.SMS.SendMessage Text2.Text, Text8.Text MsgBox "Anda Telah Mengirim SMS Dengan Sukses", vbOKOnly, "Information" End If End If End Sub
Lampiran 3. Source Code Mengirim Email Dim fName As String fName = App.Path + "\data\" + frminfograp.Combo2.Text + ".bmp" 'Send the message through MAPI. MAPISession1.SignOn MAPIMessages1.SessionID = MAPISession1.SessionID MAPIMessages1.Compose MAPIMessages1.AttachmentPathName = fName MAPIMessages1.RecipAddress = "
[email protected]" MAPIMessages1.MsgSubject = "Sistem Penerima Data Remote" MAPIMessages1.AttachmentIndex = 0 MAPIMessages1.AttachmentPosition = 0 MAPIMessages1.Send True End Sub
Lampiran 4. Source Code Membuat Peta Spasial Private Sub Command8_Click() spasial_export '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Dim SurferApp As Object Dim Doc As Object Dim Plotwindow As Object Dim ContourMap As Object Dim OutFile As String Dim old_update_setting Dim InFile As String Dim retValue As Boolean Dim a ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Set SurferApp = CreateObject("Surfer.Application") ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Bikin Kontur'''''''''''''''''''''''''''''''''''''' '#############################Isoterm################# InFile = App.Path + "\data\Shp_File\suhu.xls" OutFile = App.Path + "\data\Shp_File\suhu" 'SurferApp.Visible = True retValue = SurferApp.GridData(DataFile:=InFile, Algorithm:=srfKriging, _ xMin:=95, xMax:=141.3, yMin:=-11.2, yMax:=7.5, ShowReport:=False, OutGrid:=OutFile) '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Bikin Kontur''''''''''''''''''''''''''''''''''''''''' gridfiles$ = App.Path + "\data\Shp_File\Indonesia.shp" 'Add base map Set Doc = SurferApp.Documents.Add Set Plotwindow = Doc.Windows(1) Plotwindow.AutoRedraw = False Set Map1 = Doc.Shapes.AddContourMap(OutFile) Set map2 = Doc.Shapes.AddBaseMap(gridfiles$) '''''''''''''''''''''''''''''''''''''''Bikin Grid''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' old_update_setting = Map1.Application.ScreenUpdating Map1.Application.ScreenUpdating = False For Each Axis In Map1.Axes If Axis.AxisType = srfATLeft Or Axis.AxisType = srfATBottom Then With Axis .MajorTickType = srfTickCross .MinorTickType = srfTickIn .MinorTickLength = 0.01 .MinorTicksPerMajor = 1
Lanjutan Lampiran 4. .ShowMajorGridLines = True .AxisLine.Width = 0.01 End With End If Next map2.Application.ScreenUpdating = old_update_setting ''''''''''''''''''''''''''''''''''''''''''''''''bikin grid''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''Bikin Warna'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Dim e Set ContourMap = Map1.Overlays(1) ContourMap.Levels.LoadFile (App.Path & "\data\Shp_File\suhu.lvl") ContourMap.FillContours = True ContourMap.ShowColorScale = True '''''''''''''''''''''''''''''''''''''''Bikin Warna''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' OverlayMapsExample Map1, map2 'Pangil sub Overlay e = Doc.Export(FileName:=App.Path + "\data\Suhu.wmf") image3.Picture = LoadPicture(App.Path + "\data\Suhu.wmf") '#############################Isoterm##################### ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Bikin Kontur'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '#############################Curah_hujan####################### InFile = App.Path + "\data\Shp_File\Curah_Hujan.xls" OutFile = App.Path + "\data\Shp_File\Curah_Hujan" retValue = SurferApp.GridData(DataFile:=InFile, Algorithm:=srfKriging, _ xMin:=95, xMax:=141.3, yMin:=-11.2, yMax:=7.5, ShowReport:=False, OutGrid:=OutFile) '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Bikin Kontur''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' gridfiles$ = App.Path + "\data\Shp_File\Indonesia.shp" 'Add base map Set Doc = SurferApp.Documents.Add Set Plotwindow = Doc.Windows(1) Set Map1 = Doc.Shapes.AddContourMap(OutFile) Set map2 = Doc.Shapes.AddBaseMap(gridfiles$) '''''''''''''''''''''''''''''''''''''''Bikin Grid''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' old_update_setting = Map1.Application.ScreenUpdating Map1.Application.ScreenUpdating = False For Each Axis In Map1.Axes If Axis.AxisType = srfATLeft Or Axis.AxisType = srfATBottom Then With Axis .MajorTickType = srfTickCross
Lanjutan Lampiran 4. .MinorTickType = srfTickIn .MinorTickLength = 0.01 .MinorTicksPerMajor = 1 .ShowMajorGridLines = True .AxisLine.Width = 0.01 End With End If Next ' Restore the previous screen setting map2.Application.ScreenUpdating = old_update_setting ''''''''''''''''''''''''''''''''''''''''''''''''bikin grid''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''Bikin Warna''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Dim n Set ContourMap = Map1.Overlays(1) If Me.Combo1.Text = Me.Combo2.Text Then ContourMap.Levels.LoadFile (App.Path & "\data\Shp_File\curah_hujan_Harian.lvl") Else ContourMap.Levels.LoadFile (App.Path & "\data\Shp_File\Curah_Hujan.lvl") End If ContourMap.FillContours = True ContourMap.ShowColorScale = True '''''''''''''''''''''''''''''''''''''''Bikin Warna''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' OverlayMapsExample Map1, map2 'Pangil sub Overlay n = Doc.Export(FileName:=App.Path + "\data\Curah_Hujan.wmf") image2.Picture = LoadPicture(App.Path + "\data\Curah_Hujan.wmf") '#############################Curah_hujan################ '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Unload frmTunggu Timer2.Enabled = True SSTab1.TabEnabled(1) = True SSTab1.TabEnabled(2) = True SSTab1.TabEnabled(3) = True End Sub
Lampiran 5. Source Code Export data ke dalam format *.xls Sub export_excel() 'On Error Resume Next Dim XlApp1 As Excel.Application Dim XlBook1 As Excel.Workbook Dim XlSheet1 As Excel.Worksheet Dim jlhRecord, hitung, statusStop frmTunggu.Show With frmTunggu .lblPesan.Caption = "Sedang memeriksa file Excel..." '.Show , member DoEvents 'supaya proses latar tetap berjalan terus... Set XlApp1 = CreateObject("Excel.Application") namaFile = "datklim_sta_ " & Frmmenu.txtcari.Text & ".csv" If Dir(App.Path & "\data\Excel_File" & "\" & namaFile) <> "" Then .lblPesan.Caption = "Sedang membuat file Excel..." Kill (App.Path & "\data\Excel_File" & "\" & namaFile) DoEvents End If 'Buat File Excel Baru dan sheet-nya Set XlBook1 = XlApp1.Workbooks.Add Set XlSheet1 = XlBook1.Worksheets(1) XlSheet1.Cells(1, 1).Value = "Nama_Stasiun" XlSheet1.Cells(1, 2).Value = "Tanggal" XlSheet1.Cells(1, 3).Value = "Waktu" XlSheet1.Cells(1, 4).Value = "Suhu" XlSheet1.Cells(1, 5).Value = "Kelembaban" XlSheet1.Cells(1, 6).Value = "Kec_Angin" XlSheet1.Cells(1, 7).Value = "Radiasi" XlSheet1.Cells(1, 8).Value = "Curah_Hujan" 'Tampilkan pesan .lblPesan.Caption = "Sedang mencetak data ke file Excel..." DoEvents End With '
Frmmenu.Data2.Refresh With Frmmenu.Data2.Recordset jlhRecord = .RecordCount Frmmenu.TxtIsi.Text = .RecordCount Frmmenu.Data2.Recordset.MoveFirst hitung = 0 frmTunggu.prgBar.Max = .RecordCount frmTunggu.prgBar.Value = 0 For i = 2 To jlhRecord + 1 'dimulai dari row ke-2 sampai jlhrecord + 1 XlSheet1.Cells(i, 1) = hitung + 1
Lanjutan Lampiran 5. XlSheet1.Cells(i, 1) = .Fields("Nomor_Stasiun") XlSheet1.Cells(i, 2) = Str(.Fields("Tanggal")) XlSheet1.Cells(i, 3) = .Fields("Waktu") XlSheet1.Cells(i, 4) = Val(.Fields("Suhu")) XlSheet1.Cells(i, 5) = Val(.Fields("Kelembaban")) XlSheet1.Cells(i, 6) = Val(.Fields("Kec_Angin")) XlSheet1.Cells(i, 7) = Val(.Fields("Radiasi")) XlSheet1.Cells(i, 8) = Val(.Fields("Curah_Hujan")) hitung = hitung + 1 'Untuk persentase progressbar .MoveNext 'maju ke record berikutnya frmTunggu.prgBar.Value = hitung frmTunggu.lblRecord.Caption = "Record ke-" & frmTunggu.prgBar.Value & " dari " & jlhRecord frmTunggu.lblPersen.Caption = "Selesai: " & Format((hitung / jlhRecord) * 100, "###") & "%" DoEvents If statusStop = True Then Exit For End If Next i '.MoveFirst 'Jika sudah selesai, kembali ke record pertama End With Screen.MousePointer = vbDefault frmTunggu.lblPesan.Caption = "Sedang menyimpan data ke file Excel..." DoEvents XlSheet1.SaveAs App.Path & "\data\Excel_File" & "\" & namaFile XlSheet1.Application.Quit frmTunggu.lblPesan.Caption = "Sedang membebaskan alokasi memori..." DoEvents Set XlSheet1 = Nothing Set XlBook1 = Nothing frmTunggu.lblPesan.Caption = "Proses selesai!!!" DoEvents Unload frmTunggu Frmmenu.Refresh Exit Sub End Sub
Antarmuka Pengguna/user interface Antarmuka pengguna pada perangkat lunak dibuat guna mempermudah pemakai dalam mengoperasikannya. Antarmuka yang dibuat dalam program sistem penerima data stasiun cuaca ini menggunakan sistem Graphical User Interfase (GUI) yang terdapat pada Visual Basic 6.0. Pada waktu pertama kali program dijalankan akan menampilkan Form Load yang akan di ikuti dengan Form Menu Utama yang dapat kita lihat pada Gambar 3 dan Gambar 4 berikut ini.
Gambar 3. Form Load
Menu Utama Program program Sistem Penerima Data Stasiun Cuaca ini mempunyai tiga menu utama yang terdiri dari menu Pemantauan, Data terkini, dan Info stasiun. Tampilan menu utama dapat dilihat pada Gambar 4. Menu Pemantauan memberikan informasi berupa peta yang disertai posisi dari stasiun
cuaca. Menu Data terkini memberikan informasi berupa kumpulan data-data cuaca dari berbagai stasiun yang ada. Sedangkan Menu data stasiun berisi kumpulan informasi stasiun. Menu Pemantauan Menu pemantauan berupa peta stasiun cuaca di Indonesia, dimana jika pengguna mengklik titik merah, akan ditunjukkan oleh menu pendukung yang berisikan informasi mengenai posisi stasiun klimatologi dan meteorologi ditunjukkan oleh Gambar 5. Informasi tersebut mencakup no stasiun, nama stasiun, dan letak geografis stasiun. Didalam fitur informasi terdapat 2 sub fitur yaitu Ambil Data dan Lihat Data. Jika pengguna menekan sub fitur Lihat data maka akan tampil data iklim stasiun setempat ditunjukkan oleh Gambar 6. Data iklim tersebut dapat digunakan sebagai input grafik parameter iklim per harian dan dapat disimpan. Data ini pun dapat diperoleh berupa tabel oleh si pengguna. Dengan hanya menekan tombol perintah Save As untuk menyimpan data tersebut maka data tersebut akan tersimpan otomatis ke dalam format *.xls, ditunjukkan oleh Gambar 7.
Gambar 4. Form Menu Utama
Gambar 5. Form Menu Pemantauan
Gambar 6. Sub Fitur Data Iklim Setempat
Gambar 7. Tampilan Proses Save As
Selain di simpan dalam bentuk tabel, dari data tersebut pengguna dapat melihat perubahan yang terjadi dari parameter iklim per harian berupa grafik dengan hanya menekan tombol perintah Grafik pada sub fitur Lihat data. Jika pengguna menekan tombol perintah Grafik, maka akan tampil sub fitur Input Grafik ditunjukkan oleh Gambar 8, dimana sub fitur ini menanyakan parameter apa yang
diinginkan pengguna untuk melihat grafik dalam sistem waktu per harian. Parameter iklim yang dapat dilihat grafiknya antara lain suhu, kelembaban, kecepatan angin, radiasi dan curah hujan. Setelah parameter iklim yang terpilih maka output yang dikeluarkan berupa grafik ditunjukkan oleh Gambar 9.
Gambar 8. Sub Fitur Input Grafik
Gambar 9. Keluaran Program “Grafik”
Keluaran ini dapat disimpan (Save As) dan dikirim melalui e-mail (Send As) dengan mengklik perintah yang ada pada submenu grafik. Akan tetapi jika pada menu Pemantauan, tombol perintah yang ditekan oleh pengguna adalah tombol Ambil data maka program ini akan mengirim pesan “Ambil Data” ke stasiun cuaca tesebut. Selanjutnya stasiun tersebut, akan merespon proses ini dengan mengirimkan balasan berupa data cuaca saat ini. Menu Data Terkini Menu Data terkini berupa kumpulan datadata cuaca dari berbagai stasiun yang ada dalam satu waktu. Fitur yang ada Save As dan Spasial. Fitur Save As untuk menyimpan data pada satu waktu tertentu ke dalam format *.xls. Sedangkan fitur Spasial, terlebih dahulu menentukan tanggal mulai dan akhir yang diinginkan. Data spasial yang ditampilkan merupakan data per satuan waktu, yaitu harian, mingguan, dan bulanan. Menu Data Terkini ditunjukkan oleh Gambar 10. Kumpulan data-data terkini merupakan hasil kiriman dari stasiun cuaca, yang diterima oleh ponsel melalui SMS yang langsung dibaca oleh sistem penerima data stasiun.
Informasi yang diterima berupa kode, dimana kode tersebut merupakan kumpulan kode dari beberapa parameter iklim, seperti suhu udara, kelembaban udara, kecepatan angin, radiasi dan curah hujan. Setelah format yang diterima selesai di penggalpenggal sesuai kebutuhan tersebut diatas, maka data-data itu akan di masukan kedalam tabel yang sesuai dan akan di simpan dalam peyimpanan data yang ada untuk pengolahan lebih lanjut. Setiap ada penambahan data maka terlebih dahulu akan dilakukan query berdasarkan nomor stasiun dan jam pengamatan, jika terjadi data yang double maka yang akan di terima adalah data yang pertama kali di terima oleh server Sistem Penerima Data Stasiun Cuaca . Selain data cuaca cuaca terekam dalam format (*.mdb), data cuaca juga akan terekam dalam format (*.xls) yang akan di simpan sesuai nama stasiun tersebut. Pengolahan selanjutnya yang dapat dijalankan dari terkumpulnya data, yaitu pengolahan sederhana yaitu peta spasial berupa Isohyet dan Isoterm. Informasi spasial yang dihasilkan ini, masih memiliki kekurangan, diantaranya pada peta Isohyet diasumsikan bahwa stasiun yang ada tersebar merata. Informasi spasial berupa Isohyet dan Isoterm dapat dilihat pada Gambar 11 dan Gambar 12. Informasi spasial yang ditampilkan diatas di buat dengan memanfaatkan library (*.dll, *.exe) yang ada dalam program surfer. Menu Info Stasiun Menu data stasiun berisi kumpulan informasi stasiun. Selain itu di menu ini dapat dilakukan edit data stasiun, dapat menghapus data stasiun yang jika stasiun tersebut tidak diperlukan lagi. Dan juga dapat menambah informasi stasiun cuaca baru.
Gambar 10. Menu Data Terkini
Gambar 11. Hasil Peta Isohyet dari Data Iklim
Gambar 12. Hasil Peta Isoterm dari Data Iklim
Gambar 13. Menu Data Stasiun