APLIKASI PELACAK OBJEK TUGAS AKHIR

145
APLIKASI PELACAK OBJEK TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Elektro Oleh: Nama : Dhika Bramantia NIM : 025114080 PROGRAM STUDI TEKNIK ELEKTRO JURUSAN TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2007 i

Transcript of APLIKASI PELACAK OBJEK TUGAS AKHIR

Page 1: APLIKASI PELACAK OBJEK TUGAS AKHIR

APLIKASI PELACAK OBJEK

TUGAS AKHIR

Diajukan Untuk Memenuhi Salah Satu Syarat

Memperoleh Gelar Sarjana Teknik

Program Studi Teknik Elektro

Oleh:

Nama : Dhika Bramantia

NIM : 025114080

PROGRAM STUDI TEKNIK ELEKTRO

JURUSAN TEKNIK ELEKTRO

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

2007

i

Page 2: APLIKASI PELACAK OBJEK TUGAS AKHIR

OBJECT TRACKING APPLICATION

FINAL PROJECT

Presented as Partial Fulfillment of the Requirements

To Obtain the Sarjana Teknik Degree

In Electrical Engineering Study Program

By:

Name : Dhika Bramantia

Student Number : 025114080

ELECTRICAL ENGINEERING STUDY PROGRAM

DEPARTMENT OF ELECTRICAL ENGINEERING

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

2007

ii

Page 3: APLIKASI PELACAK OBJEK TUGAS AKHIR

LEMBAR PERSETUJUAN

APLIKASI PELACAK OBJEK (OBJECT TRACKING APPLICATION)

Oleh :

DHIKA BRAMANTIA

NIM : 025114080

Telah disetujui oleh :

Pembimbing Tanda tangan Tanggal

A. Bayu Primawan, S.T., M.Eng. ………………………… ……………....

iii

Page 4: APLIKASI PELACAK OBJEK TUGAS AKHIR

HALAMAN PENGESAHAN

APLIKASI PELACAK OBJEK

Oleh :

DHIKA BRAMANTIA

NIM : 025114080

Telah dipertahankan di depan Panitia Penguji

Pada tanggal : 27 September 2007

dan dinyatakan memenuhi syarat

Susunan Panitia Penguji

Nama Lengkap Tanda Tangan

Ketua : Pius Yozy Merucahyo, S.T., M.T. ...................................

Sekretaris : A. Bayu Primawan, S.T., M.Eng. ...................................

Anggota : Damar Widjaja, S.T., M.T. ...................................

Yogyakarta, September 2007

Fakultas Sains dan Teknologi Universitas Sanata Dharma Dekan

Ir. Greg. Heliarko, SJ., B. ST., MA., M. Sc

iv

Page 5: APLIKASI PELACAK OBJEK TUGAS AKHIR

HALAMAN PERNYATAAN KEASLIAN KARYA

“Saya menyatakan dengan sesungguhnya bahwa tugas akhir yang saya tulis ini

tidak memuat karya atau bagian karya orang lain,

kecuali yang telah disebutkan dalam kutipan dan daftar pustaka,

sebagaimana layaknya karya ilmiah.”

Yogyakarta, 2007

Dhika Bramantia

v

Page 6: APLIKASI PELACAK OBJEK TUGAS AKHIR

INTISARI

Tugas akhir ini mendeskripsikan tentang Aplikasi Pelacak Objek. Aplikasi ini

akan mencari dan menvisualisasikan posisi transmitter yang sudah ditempelkan pada

objek yang sedang bergerak. Mikrokontroler akan mengontrol GPS dan HP untuk

mengirimkan koordinat transmitter yang berupa data posisi berbentuk PDU yang

kemudian diubah menjadi data string.

Aplikasi menggunakan GPS sebagai penyedia koordinat transmitter dan

kemudian koordinat dikirimkan melalui SMS ke server sehingga posisi transmitter

yang sudah ditempelkan pada objek dapat dipetakan dalam sebuah peta digital (GIS).

Aplikasi berjalan dengan baik. Hal ini ditunjukkan dengan keberhasilan

transmitter mengirimkan data posisi ke database server.

Kata kunci: PDU, GIS, GPS, Koordinat

vi

Page 7: APLIKASI PELACAK OBJEK TUGAS AKHIR

ABSTRACT

This final project describes about Object Tracking Application. This

Application will search and visualize the transmitter position which has been plug

into a moving object. Microcontroller will control the GPS and HP to send the

transmitter coordinate, represented as position data in PDU mode and then will be

converted into string mode.

This Application using GPS as transmitter coordinate source that will be sent

by SMS to server so that the transmitter that has been plugged into object can be

mapped into a digital map (GIS).

Application has work properly. This is shown by transmitter that has been

sent position data into the database server succesfully.

Keyword: PDU, GIS, GPS, coordinates

vii

Page 8: APLIKASI PELACAK OBJEK TUGAS AKHIR

KATA PENGANTAR

Segala puji bagi Allah SWT, Tuhan semesta alam karena-Nya penulis dapat

menyelesaikan Tugas Akhir “Aplikasi Pelacak Objek”. Dalam proses penyelesaian

Tugas Akhir ini penulis banyak mendapat bantuan dari begitu banyak pihak yang

telah memberikan dukungan dengan caranya masing-masing sehingga penulis dapat

menyelesaikan Tugas Akhir ini dengan baik dan lancar. Oleh karena itu penulis ingin

mengucapkan terima kasih antara lain kepada :

1. Bapak Ir. Greg. Heliarko, SJ., B.ST., MA., M.Sc, selaku dekan fakultas teknik.

2. Bapak Augustinus Bayu Primawan, S.T., M.Eng. selaku dosen pembimbing yang

telah memberikan ide dan bimbingan sampai tugas akhir ini terselesaikan.

3. Bapak Ir. Iswanjono, M.T. yang sudah membimbing dalam mengerjakan alat.

4. Dosen teknik elektro yang selama ini selalu memotivasi agar menyegerakan lulus,

laboran dan sekretariat.

5. Papa dan Mama tercinta atas semangat dan doanya, i’m the luckiest son for

having both of you.

6. Rinda Gita adikku yang cerewet.

7. Mas Hanjar, thanks for the advice and all. Selamat sudah mempunyai keluarga

kecil. Mas Dhita.

8. Untuk bintangku, Artha Febriana, the sky would’nt beautiful without you.

9. Seluruh keluarga besar yang berhubungan dengan Bambang Risdiyanto dan Indah

Mawarni.

10. Mbah ”Darmo” dan Mr. X, sang sutradara.

viii

Page 9: APLIKASI PELACAK OBJEK TUGAS AKHIR

11. Pandu, temen maen PS ma nyari bahan, data dan lainnya.

12. Hari en T-cuz, maestro desain produk.

13. Temen Elektro ’02, Lele, Hugo, Wuri, Spadic, Lina, McD, Deri, Andec, Bule,

Plentonk, Erik, Gepenk, Sinung, Yoga, Broto, Oscar, Robi, Heri, Rina dan

lainnya.

14. Anak kost pandean, endy, siswa, kak udi, reza jr.,reza sr, toi, mba lis, ms ale,

inoe, dani, ms bowo en mas seno.

15. Si Hitam, Si Hitam, Si Hitam, Komeng...thanks udah mau bolak-balik jogja

semarang.

16. Kemudian seluruh pihak yang sudah membantu dan penulis tidak tuliskan disini.

Dengan rendah hati, penulis masih merasa bahwa tugas akhir ini masih belum

sempurna, sehingga kritik dan saran sangat diterima demi kesempurnaan tugas akhir

ini. Akhir kata, semoga tugas akhir ini dapat berguna bagi semua pihak. Terima

kasih.

Yogyakarta, September 2007

Penulis

ix

Page 10: APLIKASI PELACAK OBJEK TUGAS AKHIR

DAFTAR ISI

JUDUL .................................................................................................................... i

HALAMAN PERSETUJUAN ............................................................................ iii

HALAMAN PENGESAHAN.............................................................................. iv

HALAMAN PERNYATAAN KEASLIAN KARYA......................................... v

INTISARI ............................................................................................................. vi

ABSTRACT......................................................................................................... vii

KATA PENGANTAR........................................................................................ viii

DAFTAR ISI.......................................................................................................... x

DAFTAR GAMBAR........................................................................................... xv

DAFTAR TABEL ............................................................................................ xviii

BAB 1 PENDAHULUAN

1.1 Latar Belakang Masalah ................................................................................ 1

1.2 Rumusan Masalah. ..........................................................................................2

1.3 Tujuan Penelitian ........................................................................................... 2

1.4 Manfaat Penelitian ......................................................................................... 2

1.5 Batasan Masalah............. ............................................................................... 3

1.6 Metode Penelitian .......................................................................................... 3

1.7 Sistematika Penulisan ................................................................................... 4

x

Page 11: APLIKASI PELACAK OBJEK TUGAS AKHIR

BAB II DASAR TEORI

2 SMS dan Format PDU ...................................................................................... 5

2.1 Pengertian SMS ..................................................................................... 5

2.2 Format PDU ........................................................................................... 6

2.2.1 Bentuk dan Format PDU............................................................... 7

2.2.2 AT-Command ( Perintah AT ) ...................................................... 9

2.3 Port COM............................................................................................ 10

2.4 Pengertian GPS ................................................................................... 12

2.4.1 GPS Segmen .............................................................................. 13

2.4.2 GPS Signal ................................................................................. 15

2.4.3 Akurasi Penerima GPS .............................................................. 16

2.4.4 Informasi yang didapat dari GPS............................................... 16

2.4.5 Cara Kerja GPS.......................................................................... 17

2.4.6 Bentuk Keluaran data GPS ........................................................ 21

2.5 GIS ( Geographic Information System ) ............................................. 22

2.5.1 Model Raster dan Vektor ........................................................... 26

2.5.1.1 Model Data Raster ......................................................... 26

2.5.1.1.1 Karakteristik Layer Raster .............................. 27

2.5.1.1.2 Layer(s) Raster................................................. 28

xi

Page 12: APLIKASI PELACAK OBJEK TUGAS AKHIR

2.5.1.2 Model Data Vektor ........................................................ 31

2.6 Mikrokontroler AVR ATMega8515 ............................................................ 34

2.7 Relational Database Management System .................................................. 38

2.7.1 SQL Server 2000................................................................................. 40

2.8 .NET..............................................................................................................42

2.8.1 ADO .Net ............................................................................................ 43

BAB III PERANCANGAN SISTEM

3.1 Model Sistem .................................................................................................. 44

3.2 Perancangan Perangkat Lunak........................................................................ 46

3.2.1 Algoritma Penerima dan Penyimpan data.............................................. 46

3.2.2 Diagram Alir Penerima dan Penyimpan data......................................... 47

3.2.3 Algoritma Cek data User ....................................................................... 48

3.2.4 Diagram Alir Cek data User .................................................................. 49

3.2.5 GIS Mapping.......................................................................................... 50

3.2.6 Algoritma Login User............................................................................ 51

3.2.7 Menu Utama........................................................................................... 53

3.2.7.1 Form Anggota dan Administrasi user........................................ 54

3.2.7.2 Pengaturan database .................................................................. 56

3.2.7.2.1 Tabel Pengguna........................................................... 58

3.2.7.2.2 Tabel Anggota............................................................. 59

xii

Page 13: APLIKASI PELACAK OBJEK TUGAS AKHIR

3.2.7.2.3 Tabel Posisi ................................................................. 50

3.2.8 Class pada VB.Net....................................................................................... 60

3.2.9 Interface pada Mikrokontroler ..................................................................... 64

3.2.10 Pengendali pada Mikrokontroler................................................................ 65

3.2.10.1 Aplikasi Pengambil Data ............................................................. 65

3.2.10.2 Aplikasi Pengirim SMS ............................................................... 66

BAB IV HASIL DAN PEMBAHASAN

4.1 Program Ambil data ........................................................................................ 69

4.2 Program Visualisasi ........................................................................................ 70

4.2.1 Form Login ............................................................................................ 70

4.2.2 Halaman Utama ..................................................................................... 70

4.2.2.1 Administrator ............................................................................. 72

4.2.2.2 Anggota...................................................................................... 74

4.2.2.3 Peta............................................................................................. 75

4.2.3 Visualisasi Objek ................................................................................... 76

4.2.4 Transmitter dan Data Koordinat GPS.................................................... 79

4.2.4.1 Data dari GPS ........................................................................... 79

4.2.4.2 Transmitter................................................................................ 82

4.2.4.3 Perbandingan dan Error Posisi ................................................. 82

4.2.4.3.1 Data Waktu ................................................................ 82

xiii

Page 14: APLIKASI PELACAK OBJEK TUGAS AKHIR

4.2.4.3.2 Data Posisi ................................................................. 83

BAB V PENUTUP 91

5.1 Kesimpulan .................................................................................................... 91

5.2 Saran............... ................................................................................................ 92

DAFTAR PUSTAKA

LAMPIRAN

DATASHEET

xiv

Page 15: APLIKASI PELACAK OBJEK TUGAS AKHIR

xv

Page 16: APLIKASI PELACAK OBJEK TUGAS AKHIR

DAFTAR GAMBAR Gambar 2.1 Contoh syntaks AT-Command ...................................................... 10

Gambar 2.2 Satelit yang mengorbit bumi dengan jalur yang sama.................. 14

Gambar 2.3 Lokasi acuan “A” ......................................................................... 18

Gambar 2.4 Lokasi acuan titik “A” dan “B” .................................................... 18

Gambar 2.5 Lokasi objek ................................................................................. 19

Gambar.2.6 Perbandingan 1 detik dengan 6 periode pulsa .............................. 20

Gambar 2.7 Gabungan dari beberapa bentuk

data melalui GIS ........................................................................... 23

Gambar 2.8 GIS data dalam bentuk layer ........................................................ 24

Gambar 2.9 Tampilan GIS dalam satu daerah yang menunjukkan detail yang

berbeda.......................................................................................... 24

Gambar 2.10 Uraian subsistem dalam GIS ...................................................... 26

Gambar 2.11 Gambar Raster ........................................................................... 31

Gambar 2.12 Gambar Vektor ........................................................................... 33

Gambar 2.13 Diagram blok fungsional ATmega8515 ..................................... 36

Gambar 2.14. Pin ATMega8515 ...................................................................... 37

Gambar 2.15 Cascade update dan cascade delete ........................................... 41

Gambar 3.1 Sistem pemancar dan penyedia data............................................. 45

Gambar 3.2 Sistem penerima dan penampil data ............................................. 45

xv

Page 17: APLIKASI PELACAK OBJEK TUGAS AKHIR

Gambar 3.3 Diagram alir untuk fungsi penyimpan dan penerima data objek.... 47

Gambar 3.4 Diagram alir untuk validasi data user........................................... 49

Gambar 3.5 Diagram alir mapping pada GIS................................................... 50

Gambar 3.6 Komponen yang diperlukan untuk menampilkan peta ................. 51

Gambar 3.7 Window untuk pemilihan layer yang disediakan oleh

MapObjects ................................................................................... 51

Gambar 3.8 Diagram alir login untuk user....................................................... 52

Gambar 3.9 Tampilan utama yang berisi sub menu Informasi,

Pengaturan dan Bantuan ............................................................... 53

Gambar 3.10 Layout dari form Anggota .......................................................... 55

Gambar 3.11 Diagram Alir form Anggota ....................................................... 55

Gambar 3.12 Diagram alir untuk database setting........................................... 56

Gambar 3.13 Korelasi tabel pada database ...................................................... 57

Gambar 3.14 Komponen penyusun tabel Pengguna ........................................ 58

Gambar 3.15 Komponen penyusun tabel Anggota .......................................... 59

Gambar 3.16 Komponen penyusun tabel posisi ............................................... 60

Gambar 3.17 Diagram alir cara kerja pada class koneksi ................................ 63

Gambar 3.18 Antarmuka HP dan GPS dengan RS-232 ................................... 64

Gambar 3.19 Diagram alir pengambilan data GPS .......................................... 65

Gambar 3.20 Diagram alir kirim SMS ............................................................. 67

Gambar 4.1 Tampilan utama program ambil data............................................ 69

xvi

Page 18: APLIKASI PELACAK OBJEK TUGAS AKHIR

Gambar 4.2 Login Form ................................................................................... 70

Gambar 4.3 Tampilan utama program ............................................................. 71

Gambar 4.4 Menu bar informasi ...................................................................... 71

Gambar 4.5 Menu bar Pengaturan.................................................................... 72

Gambar 4.6 Menu bar bantuan dan sub menu.................................................. 72

Gambar 4.7 Halaman administrasi user ........................................................... 73

Gambar 4.8 Halaman untuk membuat user baru.............................................. 73

Gambar 4.9 Halaman form data anggota dan tabel posisi ................................ 74

Gambar 4.10 Data dari user yang didapat dari database ................................. 75

Gambar 4.11 Peta dalam form GIS .................................................................. 75

Gambar 4.12 Sub menu yang terdapat dalam menu bar Pengaturan................ 76

Gambar 4.13 Halaman setting koneksi............................................................. 76

Gambar 4.14 Tab perpindahan antara form anggota dan form posisi............... 77

Gambar 4.15 Pemilihan data yang ingin ditampilkan berdasarkan waktu ....... 78

Gambar 4.16 Tombol ‘Tampilkan posisi’ untuk memvisualisasikan data ....... 78

Gambar 4.17 Tampilan data yang telah divisualisasikan pada peta................. 78

Gambar 4.18 Contoh data yang diterima server............................................... 80

Gambar 4.19 Lampu menunjukkan GPS mendapat sinyal atau tidak.............. 81

Gambar 4.20 Bentuk fisik dari transmitter dan accu sebagai catu dayanya..... 81

Gambar 4.21 Hasil visualisasi titik pada peta .................................................. 88

Gambar 4.22 Rumus Haversine untuk menghitung jarak 2 titik ...................... 89

xvii

Page 19: APLIKASI PELACAK OBJEK TUGAS AKHIR

xviii

Page 20: APLIKASI PELACAK OBJEK TUGAS AKHIR

DAFTAR TABEL

Tabel 2.1 Penjelasan string PDU ......................................................................8

Tabel 4.1 Titik dan waktu pengiriman data yang diterima server...................84

Tabel 4.2 Perbandingan koordinat antara transmitter dan database...............86

Tabel 4.3 Perbandingan dan error pada peta .................................................90

Page 21: APLIKASI PELACAK OBJEK TUGAS AKHIR

BAB I

PENDAHULUAN

1.1 Latar Belakang Masalah

Aplikasi Pelacak Object adalah alat yang digunakan untuk mengetahui koordinat

posisi objek yang sudah ditempel transmitter di dalamnya, kemudian ditampilkan dalam

bentuk visual kedalam sebuah PC. Sebuah GPS dapat melacak koordinat setiap kali GPS

tersebut bergerak dalam jangkauan tertentu. Oleh karena itu, apabila sebuah objek

bergerak, semisal mobil, ditempel GPS maka kita dapat mengetahui koordinat posisi dari

mobil tersebut. Dari data koordinat posisi yang telah diketahui oleh GPS, dapat dibuat

alat untuk mengambil data koordinat yang ada di dalam GPS untuk kemudian diolah dan

ditampilkan lagi dalam bentuk visual agar mudah dimengerti oleh user.

Penulis merancang sebuah alat untuk mengambil data koordinat dari GPS dengan

SMS menggunakan Mikrokontroller AVR ATMega 8515. Transmitter menggunakan HP

Siemens M55, receiver menggunakan PC dan HP Siemens M55. AVR ATMega 8515

dipilih karena mendukung fitur AT-Command untuk pengaksesan SMS pada HP Siemens

M55 yang menggunakan kabel serial sebagai penghubung dengan mikrokontroler.

Untuk menampilkan secara visual data GPS yang dikirimkan melalui SMS ke

dalam PC, digunakan program Visual Basic .Net® sebagai bahasa pemrogramannya.

Program Visual Basic .Net® dipilih karena compatible dengan menggunakan port-port

serial dan paralel.

Page 22: APLIKASI PELACAK OBJEK TUGAS AKHIR

2

1.2 Rumusan Masalah

Rumusan masalah yang diberikan dalam Tugas Akhir ini adalah:

1. Belum adanya alat yang dapat melacak lokasi objek secara visual dan real time

pada sebuah PC dengan menggunakan peta digital.

2. Data GPS yang masih sulit untuk diolah.

3. Peta digital tidak terlalu mendetail karena keterbatasan data.

4. Peta digital hanya terbatas pada wilayah atau kota tertentu.

1.3 Tujuan Penelitian Tujuan penyusunan tugas akhir ini adalah untuk menghasilkan suatu program untuk

melacak dan memvisualisasikan objek dalam sebuah peta digital.

1.4 Manfaat Penelitian

Manfaat yang diharapkan dari penulisan Tugas Akhir ini adalah:

1. Dapat menjadi program bantu untuk perusahaan transportasi dalam mengawasi

armadanya.

2. Dapat menjadi aplikasi pelengkap dalam sistem keamanan kendaraan selain alarm.

3. Dapat menjadi referensi mengenai GPS, pemrograman Visual Basic .Net® dan

pemrograman mikrokontroler AVR ATMega 8515.

Page 23: APLIKASI PELACAK OBJEK TUGAS AKHIR

3

1.5 Batasan Masalah

Batasan masalah pada Tugas Akhir ini adalah:

1. Alat yang digunakan untuk memberikan data koordinat objek adalah sebuah

GPS.

2. Rentang akurasi GPS adalah 5 sampai 15 meter dari posisi transmitter GPS

berada.

2. Pengiriman data dari GPS menggunakan SMS dan diatur menurut interval yang

telah ditetapkan didalam mikrokontroler.

3. Interval mikrokontroler akan ditetapkan tiap 3 menit pengiriman.

4. Visualisasi jalur pada tiap titik tidak terlalu mendetail dan hanya untuk

pergerakan objek tiap 3 menit.

5. Mikrokontroler menggunakan AVR ATMega 8515 sebagai pengatur data di

Transmitter.

6. Peta digital akan menggunakan peta digital GIS (Geographic Information

System) dengan menggunakan program ArcGIS desktop®.

7. Menggunakan komponen ESRI MapObject® untuk menampilkan peta dalam

Visual Basic.

8. Untuk tampilan visual pada PC menggunakan program Visual Basic .Net® dan

database menggunakan SQL Server®.

1.6 Metode Penelitian

Metode penelitian yang digunakan dalam penyusunan tugas akhir ini adalah:

Page 24: APLIKASI PELACAK OBJEK TUGAS AKHIR

4

1. Perancangan program dengan berdasar pada kajian pustaka yang berhubungan

dengan GPS, mikrokontroler dan GIS.

2. Pembuatan program dengan mengacu pada pengambilan data GPS, pengiriman

data GPS dan visualisasi data GPS.

3. Pengujian alat secara manual dengan menggunakan 2 user secara bersamaan

untuk melaporkan posisi objek dan mencocokkan dengan data pada server.

4. Membahas dan menganalisis hasil data yang telah dikirimkan oleh GPS.

5. Membuat kesimpulan dan hasil pembahasan.

1.7 Sistematika Penulisan

Sistematika penulisan pada tugas akhir ini adalah sebagai berikut :

BAB I PENDAHULUAN

Berisi latar belakang masalah, batasan masalah, tujuan penelitian,

metodologi penelitian dan sistematika penulisan.

BAB II DASAR TEORI

Berisi teori-teori yang mendasari perancangan penelitian, penjelasan

tentang SMS, AT-Command, GPS, GIS dan Mikrokontroler.

BAB III PERANCANGAN

Berisi perancangan program, visualisasi objek dan perancangan

mikrokontroler sebagai transmitter.

BAB IV PEMBAHASAN

Berisi hasil program yang telah dibuat dan analisis hasil koordinat

yang telah didapat dari transmitter.

BAB V PENUTUP

Berisi kesimpulan dari hasil analisis dan saran terhadap pengembangan

penelitian berikutnya.

Page 25: APLIKASI PELACAK OBJEK TUGAS AKHIR

BAB II

LANDASAN TEORI

2. SMS dan Format PDU

2.1 Pengertian SMS

SMS (Short Message Service) adalah pesan pendek dalam bentuk teks yang

berkembang dalam dunia telekomunikasi seluler. Fasilitas ini tidak jauh beda dengan

layanan pesan teks dari perangkat sebelumnya, yaitu pager .

Di Indonesia, sekarang ada sekitar 40-an juta pengguna layanan jaringan

komunikasi seluler. Mengacu perkiraan Asosiasi Telekomunikasi Seluler Indonesia

(ATSI), SMS akan menyumbangkan pendapatan kepada operator sekitar Rp10 triliun

tahun ini.

Selama tiga belas tahun SMS menjadi sarana komunikasi teks, semakin cepat

inovasi yang berkembang. Ada banyak jenis pesan teks, panjang karakter, dan

berbagai bentuk layanan tambahan seperti gambar dan kode-kode komunikasi di

dalamnya. Hasil penemuan inovatif yang paling menonjol adalah layanan pesan yang

dimodifikasi dari segi konten (media) atau metode.

Dari segi konten, user disuguhi dengan pesan yang tidak saja berisi teks

namun dapat disisipkan di dalamnya gambar dan suara, atau lebih dikenal dengan

MMS (Multimedia Message Service). Sedangkan perkembangan pesan teks dari segi

Page 26: APLIKASI PELACAK OBJEK TUGAS AKHIR

6

metode, kini ada layanan pesan e-mail SMS, layanan obrolan (chat), dan layanan

sejenis Walkie Talkie (Push to Talk).

Pesan SMS mempunyai 160 karakter pada satu SMS dengan tiap karakternya

bernilai 7 bit. Delapan bit pesan (maksimum 140 karakter) biasanya tidak dilihat oleh

telepon sebagai pesan teks, sebaliknya pesan digunakan sebagai pesan data misalnya

smart messaging (pesan gambar atau MMS). Enam belas bit pesan (maksimum 70

karakter) biasanya digunakan untuk Unicode (UCS2) text messages dan biasanya,

pada beberapa telepon, akan terlihat sebagai Flash SMS (SMS yang berkedip) [1].

2.2 Format PDU

Ada 2 cara dalam mengirim dan menerima pesan SMS, yaitu dengan text

mode dan PDU Mode (Protocol Description Unit). Pada mode teks (text mode), tidak

tersedia pada semua telepon. Mode teks adalah mendekodekan stream bit data yang

direpresentasikan oleh metode PDU. Dalam mode PDU, pesan yang dikirim berupa

informasi dalam bentuk data dengan beberapa kepala (header) informasi. Hal ini

akan memberikan kemudahan jika dalam pengiriman akan dilakukan kompresi data

atau akan dibentuk sistem penyandian data dari karakter dalam bentuk untaian bit-bit

biner.

Data PDU tidak hanya berisi pesan teks saja, tetapi terdapat beberapa meta-

informasi lainnya, seperti nomor pengirim, nomor SMS Centre, waktu pengiriman,

dan sebagainya. Semua informasi yang terdapat dalam PDU, dituliskan dalam

Page 27: APLIKASI PELACAK OBJEK TUGAS AKHIR

7

bentuk pasangan-pasangan bilangan heksadesimal yang disebut dengan pasangan

oktet.

Senarai PDU akan berbeda-beda pada tiap telepon dan disana ada beberapa

alternatif ketika menampilkan pesan SMS. Beberapa opsinya adalah “PCCP437”,

“PCDN”, “8859-1”, “IRA” dan “GSM”. Semuanya diolah oleh At+Command

AT+CSCS saat user membaca pesan pada aplikasi komputer. Jika user membaca

pesan pada telepon, maka telepon akan memilih encoding yang sesuai. Sebuah

aplikasi yang dapat membaca pesan SMS yang datang lalu akan menggunakan dan

memilih untuk menggunakan mode teks atau mode PDU.

Apabila mode teks yang digunakan, maka aplikasi hanya terbatas pada default

encoding yang ada pada telepon. Pada beberapa kasus hal itu tidak cukup, sehingga

digunakan mode PDU karena semua cara encoding bisa diimplementasikan [2].

2.2.1 Bentuk Format PDU

Bentuk dan format PDU dapat dilihat pada tabel dibawah yang akan

menjelaskan senarai data dalam bentuk PDU dari tiap bagiannya. Dimisalkan user

mengirim pesan “hellohello” sehingga format PDU adalah

”078021593733F7040BC87238880900F10000993092516195800AE8329BFD4697D

9EC37”. Keterangan dari format PDU ini dapat dilihat pada tabel 2.1[2].

Page 28: APLIKASI PELACAK OBJEK TUGAS AKHIR

8

Tabel 2.1 Penjelasan dari string PDU

Octet(s) Keterangan

07 Panjang informasi yang terkandung dalam data PDU.

Dalam kasus ini terdapat 7 oktet.

91

Type-of-address dari SMS centre number. Sembilan puluh

satu adalah format internasional dari nomor telepon. Untuk

Indonesia nomor Type-of-address adalah 81.

72 83 01 00 10 F5

Service center: "+27381000015". Karena pada kasus ini

ada satu bilangan tidak mendapat pasangan, sehingga akan

dipasangkan dengan F.

04 Octet pertama dari SMS-DELIVER message.

0B Panjang alamat atau panjang dari nomor pengirim (0B hex

= 11 dec).

C8 Type-of-address dari nomor pengirim.

8021593733F7 Nomor Pengirim (decimal semi-octets), dengan pasangan

terakhir dipasangkan dengan F.

00 Data dikirim dalam bentuk SMS.

00 Menggunakan skema encoding data 7 bit.

99 30 92 51 61 95 80 Pembatasan waktu validasi SMS (semi-octets).

Page 29: APLIKASI PELACAK OBJEK TUGAS AKHIR

9

Octet(s) Keterangan

0A

Panjang data user atau panjang pesan. TP-DCS field

menunjukkan 7-bit data, sehingga panjang

direpresentasikan dengan septets (10). Jika TP-DCS field di

atur untuk menunjukkan 8-bit data, maka panjang akan

diindikasikan dengan nomor octets (9).

E8329BFD4697D9EC37 Pesan "hellohello" yang terdiri dari 8-bit octets yang

merepresentasikan 7-bit data.

Tabel 2.1 (Lanjutan) Penjelasan dari string PDU

2.2.2 AT-Command ( Perintah AT )

Komunikasi melalui gerbang serial pada komputer meggunakan terminal (

modem ) harus menggunakan perintah AT. Perintah AT dapat diketahui atau dilihat

dari kondisi terminal, seperti mengetahui kondisi sinyal, kondisi baterai, mengirim

pesan, membaca pesan dan sebagainya. Gambar 2.1 memperlihatkan beberapa jenis

perintah AT yang berhubungan dengan SMS [3].

Page 30: APLIKASI PELACAK OBJEK TUGAS AKHIR

10

AT+CMGS : Mengirim pesan

AT+CMGR : Membaca pesan

AT+CMGF : Format pesan

AT+CMGD : Menghapus pesan

AT+CNMI : Prosedur indikasi pesan baru

AT+CPMS : Pemilihan target memori

AT+CSMS : Pemilihan layanan pesan

Gambar 2.1 Contoh syntaks AT-Command.

Perintah AT (AT-Command) digunakan untuk berkomunikasi dengan terminal

melalui port serial komputer. Perintah AT dapat digunakan untuk mengetahui

kekuatan sinyal dari terminal, mengirim pesan menambahkan item pada buku alamat,

mematikan terminal dan banyak fungsi lainnya. Setiap vendor biasanya memberikan

referensi tentang daftar perintah AT yang tersedia.

2. 3 PORT COM

Selama bertahun-tahun para pengguna komputer banyak sekali yang

menggunakan port serial untuk menghubungkan beberapa alat seperti modem,

perangkat mouse, joystick dan lain - lain. Serial port juga disebut port com karena

mentransmisikan dan menerima data satu bit dalam satu fase, melalui sebuah kabel

Page 31: APLIKASI PELACAK OBJEK TUGAS AKHIR

11

tunggal. Saat ini sebuah PC masih dilengkapi dengan satu atau dua buah serial port,

yang bisa merupakan konektor serial 9 pin dan mempunyai kecepatan hingga 115.200

bit/detik.

Serial port adalah port yang pertama kali digunakan oleh PC agar dapat

berkomunikasi dengan sejumlah perangkat serial yang lain, sehingga pengguna

komputer menyebutnya sebagai port com. Secara umum, PC mendukung kegunaan

dari 4 port com yang dinamakan Com1, Com2, Com3 dan Com4.

Serial port menerima dan mengirimkan data tiap satu bit dalam satu waktu di

dalam serial port. Chip yang dinamakan Universal Asynchronous Receiver

Transmiter (UART) mengumpulkan beberapa bit yang datang dan menyatukan bit

tersebut dalam satu nilai byte. Hal serupa juga terjadi ketika port serial mengirimkan

suatu nilai byte, UART memecah byte tadi ke dalam bit-bit individual untuk

pentransmisian.

Kecepatan dari suatu serial port berhubungan secara langsung dengan

kecepatan UART. Saat ini kebanyakan komputer mempunyai kecepatan UART

16.550 bit/detik dari 115.200 bit/detik. Beberapa sistem baru menggunakan kecepatan

UART 16.550 bit/detik sampai dengan 460 Kb/detik.

Untuk menerima data, UART memonitor jalur penerima dari sebuah port.

Ketika UART mendeteksi suatu bit awal, UART akan menguji sejumlah isi dari pin

penerima dalam beberapa rentang waktu tertentu. Isi dari bit data berikutnya

ditentukan dengan mengasumsikan bahwa perangkat-perangkat port berkomunikasi

Page 32: APLIKASI PELACAK OBJEK TUGAS AKHIR

12

pada 9600 bit/detik dan UART akan mencari data dalam pin kira-kira tiap 1/9600

detik. Setelah UART membaca sejumlah bit data, UART akan mengawasi adanya bit

terakhir dan juga bit paritas, jika memang ada pengaliran komunikasi maka kedua bit

tersebut dipakai. Untuk menerima data, UART akan memunculkan suatu bit awal dan

kemudian ia akan mengirimkan sejumlah bit data sekali pada suatu waktu, dalam

interval tertentu yang lantas diikuti bit yang terakhir dan paritas yang bersifat

pilihan[4].

2.4 Pengertian GPS

GPS adalah singkatan dari Global Positioning System. GPS adalah sebuah

special radio receiver yang akan mengukur jarak dari lokasi receiver berada dengan

satelit yang terdekat dengan receiver tersebut. GPS dapat menunjukkan koordinat

lokasi di seluruh dunia dan sistem ini dapat digunakan secara gratis untuk semua

user.

GPS pertama kali dikembangkan oleh Rusia pada tahun 1957 saat Rusia

meluncurkan SPUTNIK, yaitu satelit pertama yang mengorbit bumi. SPUTNIK

mengirimkan beberapa data yang menunjukkan telemetri buni melalui radio

transmitter. Ilmuwan Amerika menyadari, apabila mereka dapat mengetahui letak

dari satelit secara tepat, maka mereka dapat secara akurat mengetahui lokasi mereka

di bumi dengan cara mendengarkan pinging sounds dan mengukur efek dopler dari

sinyal radio satelit.

Page 33: APLIKASI PELACAK OBJEK TUGAS AKHIR

13

2.4.1 GPS Segmen

Pertama-tama GPS akan dibagi menjadi 3 segmen yaitu satelit sebagai

segmen angkasa, ground station sebagai segmen kontrol dan penerima sebagai

segmen user. Di dalam GPS, peranan satelit sangatlah vital. Sebanyak 24 satelit (21

beroperasi dan 3 sebagai cadangan) mengorbit sekitar 12000 mil diatas bumi. Sebuah

satelit membutuhkan waktu 12 jam untuk mengorbit bumi dan melewati titik yang

sama tiap 24 jam. Satelit akan diposisikan sehingga penerima GPS dapat menerima

sinyal setidaknya dari 6 satelit setiap waktu, di mana saja di muka bumi (jika tidak

ada yang menghalangi sinyal).

Sebuah satelit mempunyai 3 komponen dasar :

1. Computer : on board computer yang akan mengatur penerbangan dan fungsi yang

lain.

2. Atomic Clock : akan mempertahankan keakuratan waktu dengan rentang

kesalahan 3 nanosecond.

3. Radio Transmitter : digunakan untuk mengirim sinyal ke bumi.

Sebuah satelit GPS hanya mempunyai masa kerja sebanyak 10 tahun, jika

satelit sudah mulai tidak berfungsi maka satelit cadangan akan mulai aktif dan satelit

yang baru akan diluncurkan untuk mengganti yang lama. Gambar 2.2 menunjukkan

jalur dan satelit yang mengorbit bumi.

Page 34: APLIKASI PELACAK OBJEK TUGAS AKHIR

14

Gambar 2.2 Satelit yang mengorbit bumi dengan jalur yang sama [5].

Ground Station yang berfungsi sebagai kontrol segmen akan mengontrol

satelit dari bumi dengan menentukan lokasi dan letak dari satelit. Data dari satelit

akan diproses tiap hari untuk mensinkronisasikan sinyal antara ground station dan

satelit.

Penerima GPS akan menerima 2 tipe data dari satelit yaitu :

1. Almanac : data yang berisi posisi dari satelit, dengan data secara konstan

ditransmisikan dan disimpan di dalam memory yang terdapat di dalam GPS

receiver.

2. Ephemeris : data mempunyai ketepatan posisi dari satelit dengan menggunakan

sinyal satelit dan menghitung ketepatan jarak menggunakan rumus jarak =

kecepatan x waktu dengan kecepatan dalam intensitas kecepatan cahaya.

Page 35: APLIKASI PELACAK OBJEK TUGAS AKHIR

15

2.4.2 GPS Signal

Satelit GPS mentransmisikan 2 tipe sinyal yaitu C/A-code dan P-code, untuk

lebih jelasnya dapat dilihat pada penjelasan dibawah :

1. Coarse Acquisition (C/A-code) : tipe sinyal yang banyak digunakan oleh GPS

pada umumnya. C/A-code dikirim oleh L1 band dengan frekuensi 1575,42 MHz

sehingga penyebaran sinyal C/A dikenal sebagai Standard Positioning Service (SPS).

C/A-code kurang akurat dibandingkan dengan P-code dan sangat mudah untuk

dibajak atau dimata-matai. Keuntungan dari C/A-code adalah mudah untuk

menangkap sinyal pada satelit dan mendapatkan posisi penerima. Beberapa receiver

P-code dengan standarisasi militer pertama-tama akan menggunakan C/A-code

terlebih dahulu dan kemudian akan mengubah frekuensinya ke P-code.

2. Precision (P-Code) : P-code memberikan keakuratan posisi yang sangat tinggi.

P-code termasuk sinyal yang sangat sulit untuk dibajak dan dimata-matai. Militer

adalah pengguna utama dari transmisi P-code karena P-code menggunakan data yang

telah dienkripsi, jadi hanya penerima khusus saja yang dapat mengakses kode

tersebut. Sinyal dari P-code disebarkan dari band L2 dengan frekuensi 1227,6 MHz

sehingga P-code dkenal dengan Precise Positioning Service (PPS).

Page 36: APLIKASI PELACAK OBJEK TUGAS AKHIR

16

2.4.3 Akurasi Penerima GPS

Ketepatan GPS ditentukan dari regulasi pemerintah dan merk/tipe dari GPS

penerima, dengan 15 meter adalah ruang lingkup jarak ketepatan umumnya

ditemukan di tiap penerima GPS. Jika penerima GPS melaporkan bahwa objek berada

di suatu titik maka objek berada pada jarak 15 meter dari titik tersebut.

Akurasi sebuah penerima GPS salah satunya berdasarkan dari sinyal satelit

dan unit penerima. Data GPS akan menampilkan estimasi ketepatan koordinat dalam

jarak kaki/meter dan kesalahan yang terjadi tergantung pada :

1. Lokasi penerima.

2. Halangan yang ada pada permukaan bumi ( pohon, gedung, menara dll).

3. Multipath error yaitu sinyal akan terpantul berulang kali pada permukaan yang

keras sehingga menimbulkan delay sebelum sampai pada receiver.

4. Timing error yaitu selisih ketepatan waktu antara atomic clock yang ada pada

satelit dengan waktu yang ada pada penerima.

2.4.4 Informasi yang didapat dari GPS

Selain koordinat lokasi, penerima GPS akan menyediakan informasi yang

berguna lainnya, yaitu :

1. Waktu : sebuah penerima GPS akan menerima informasi waktu dari atomic clock

yang lebih akurat dibanding dengan waktu umumnya.

Page 37: APLIKASI PELACAK OBJEK TUGAS AKHIR

17

2. Lokasi : GPS akan memberikan lokasi dalam 3 dimensi (latitude sebagai x

koordinat, longitude sebagai y koordinat dan elevasi).

3. Kecepatan : apabila objek bergerak maka penerima GPS akan menunjukkan

kecepatan objek.

4. Arah objek : sebuah penerima GPS juga akan menampilkan arah dari objek jika

objek tersebut bergerak. Oleh karena itu, jika objek tersebut diam maka hanya akan

menampilkan arah hadap objek.

5. Lokasi penyimpan : koordinat yang telah dilalui atau yang belum dilalui dapat

disimpan dalam memori penerima GPS. Koordinat lokasi tersebut dinamakan

waypoint, sekumpulan dari waypoint tersebut akan disatukan untuk dijadikan sebuah

garis yang dinamakan route .

6. Data kumulatif : sebuah penerima GPS dapat menyimpan juga informasi dari

data-data yang diperoleh diatas, misalnya : total jarak yang ditempuh, kecepatan rata-

rata, kecepatan maksimum, kecepatan minimum, waktu total dan waktu yang

diperlukan untuk sampai di lokasi yang dituju.[5][6]

2.4.5 Cara Kerja GPS

Untuk cara kerja GPS akan diperlihatkan melalui gambar dan penjelasan berikut

dengan satelit diibaratkan sebagai sebuah titik. Dimisalkan objek berada 7 km dari

titik acuan berada dengan posisi yang masih belum diketahui, dimisalkan titik

tersebut adalah “A” pada Gambar 2.3. Kemudian dari titik A tersebut diketahui juga

bahwa objek berada 14 km dari titik “B” yang dapat dilihat pada Gambar 2.4

Page 38: APLIKASI PELACAK OBJEK TUGAS AKHIR

18

Gambar. 2.3 Lokasi acuan “A”

Gambar 2.4 Lokasi acuan titik “A” dan “B”

Dari dua titik tersebut yaitu “A” dan “B” adalah titik koordinat objek tersebut

berada, tetapi objek tersebut tidak mungkin berada dalam 2 tempat yang bersamaan.

Oleh karena itu dibutuhkan satu lagi titik acuan untuk menentukan koordinat pasti

dari objek tersebut. Dimisalkan objek juga berada 3 km dari titik “C” maka dapat

Page 39: APLIKASI PELACAK OBJEK TUGAS AKHIR

19

dilihat pada Gambar 2.5. Jadi didapatkan lokasi objek yang sesungguhnya meskipun

masih kurang 1 titik/satelit untuk mengukur ketinggian/elevasi karena GPS penerima

akan menampilkan dalam bentuk 3 dimensi.

Gambar 2.5 lokasi objek

Jadi setiap satelit akan mengirimkan data posisi (X,Y,Z) kepada penerima.

Diasumsikan receiver GPS hanya bisa menerima 3 satelit yang berarti ada 3 variabel

dalam 3 persamaan dalam penerima, yaitu : X 1+Y1+Z1 = X2+Y2+X2 = X3+Y3+Z3.

Karena nilai masing-masing (X,Y,Z) berbeda-beda maka ditambahkan 3 variabel lagi

yang berlaku untuk 3 variabel tersebut yaitu (a,b,c) jadi persamaannya adalah sebagai

berikut : aX 1+bY1+cZ1 = aX2+bY2+cX2 = aX3+bY3+cZ3

Variabel (a,b,c) adalah informasi posisi ketinggian objek. Sebelum GPS

memproses 3 persamaan tersebut masih ada 1 variabel lagi yaitu waktu ( T ), dan

waktu diberikan oleh satelit yang keempat.

Saat satelit GPS mengirim sinyal ke GPS penerima di dalamnya juga ada

informasi waktu dan posisi satelit, sehingga adanya jarak dan perbedaan waktu saat

Page 40: APLIKASI PELACAK OBJEK TUGAS AKHIR

20

sinyal pertama kali dipancarkan akan membuat kurangnya akurasi dalam penentuan

koordinat objek. Kecepatan sinyal yang dipancarkan sama dengan kecepatan cahaya

pada ruang hampa. Dengan adanya atmosfir dan hambatan lain maka kecepatan ini

akan berkurang. Asumsikan bahwa ruang antara satelit dan penerima berada dalam

ruang hampa sehingga kecepatannya sama dengan kecepatan cahaya dan dengan beda

waktu sebesar ( T ), dapat diperoleh rumus : jarak (S) = Waktu (T) x Kecepatan

Cahaya (V), dengan jarak (S) adalah nilai yang digunakan dalam menentukan titik

acuan.

Untuk pembangkit waktu digunakan kristal yang bergetar pada frekuensi

tertentu sehingga lama 1 detik ditentukan lama 1 frekuensi terjadi ( 1 periode pulsa ).

Hal ini dapat dilihat pada Gambar 2.6 yang menjelaskan frekuensi pada 6 Hz

Gambar 2.6 perbandingan 1 detik dengan 6 periode pulsa

Apabila satelit berada pada ketinggian 20000 km diatas permukaan laut dan

dianggap kecepatan cahaya sekitar 300000 km/detik maka dapat dihitung waktu

Page 41: APLIKASI PELACAK OBJEK TUGAS AKHIR

21

transmisi sebesar 20000/300000 = 0.006 detik. Jika ada kesalahan pengukuran

sebesar 1/100 detik saja maka ada kesalahan koordinat sejauh 300 km. [7]

2.4.6 Bentuk keluaran data GPS

Bentuk keluaran data GPS berbentuk digital, berformat string dan sudah

distandarisasi oleh NMEA (National Marine Electronic Association) 0183 protocol.

Penerima GPS akan mengirim informasi string pada kecepatan 4800 bps, meskipun

sebelumnya string inisialisasi ulang diperlukan agar dapat diketahui berapa kali user

ingin menerima transmisi yang berisi informasi koordinat dll. Beberapa devais akan

mengirim string lebih banyak dari yang lain tergantung dari alat dan tujuan yang

diperlukan.

Contoh dari string yang ditransmisikan adalah sebagai berikut:

$GPGGA,200136,4043.2808,N,07317.4976,W,1,03,1.27,4.5,M,-34.4,M,,*41

String diatas akan dimulai dengan $GP yang berarti Global Positioning,

kemudian setelahnya akan diikuti 3 kode karakter, GGA, yang berarti terdapat data

yang sudah pasti dari sebuah Global Positioning. Waktu transmisi dari string tersebut

adalah 20:01:36 dengan urutan jam:menit:detik. GPS akan melaporkan bahwa

koordinat telah tetap di 40.432808 N latitude, 73.174976 W longitude dengan 1

berarti informasi ini valid ( bukan informasi dari transmisi sebelumnya ). Devais ini

melacak 3 (03) satelit. Garis horizontal adalah 1.27 meter dengan ketinggian 4,5

meter diatas permukaaan laut atau 34,4 meter dibawah WGS84 ellipsoid, diikuti

Page 42: APLIKASI PELACAK OBJEK TUGAS AKHIR

22

dengan DGPS data. String berakhir dengan sebuah nilai *41 yang berarti checksum

field bernilai 41 (jumlah space informasinya adalah 41). WGS84 adalah World

Geodetic System 1984 Ellipsoid, koordinat imajiner dari bentuk bumi dan digunakan

sebagai referensi untuk GPS. [8]

2.5 GIS ( Geographic Information System )

GIS adalah sistem komputer yang mampu untuk menangkap, menyimpan,

menganalisa dan menampilkan informasi geografis sehingga data akan teridentifikasi

oleh lokasi tersebut. Inti dari sebuah GIS adalah kemampuan untuk menggabungkan

beberapa informasi yang berbeda didalam sebuah konteks spatial dan kemudian

mengambil inti yang diperlukan dari beberapa/banyak informasi. Banyak informasi

tentang bumi adalah mengacu dari lokasi-lokasi yang ada, misalnya, jika informasi

pergantian musim yang terjadi telah didapat maka lokasi terjadinya musim hujan atau

musim panas di lokasi tertentu dapat diketahui. Hal ini dapat dilakukan dengan

menggunakan referensi sistem lokasi untuk dapat menentukan lokasi rawa atau danau

yang hampir mengering, jadi dapat diketahui bahwa daerah tersebut sedang berada

dalam musim hujan atau kering.

Data-data tersebut diketahui dengan menggunakan data GPS, longitude dan

latitude bahkan juga elevasi untuk kemudian disinkronisasikan dengan map digital

yang sudah ada. Spatial data atau geographic data adalah data objek yang

teridentifikasi menurut dari keadaan atau letak geografisnya.

Page 43: APLIKASI PELACAK OBJEK TUGAS AKHIR

23

Gambar 2.7 Gabungan dari beberapa bentuk data melalui GIS

Spatial data dapat diperoleh dari berbagai macam sumber misalnya dari

digital map, gambar dari satelit, GPS dll. Setelah data tersebut terkumpul maka GIS

akan menyimpan data tersebut sebagai layer didalam GIS database seperti terlihat

dalam Gambar 2.8. [9]

Page 44: APLIKASI PELACAK OBJEK TUGAS AKHIR

24

Gambar 2.8 GIS data dalam bentuk layer

Gambar 2.9 Tampilan GIS dalam satu daerah yang menunjukkan detail yang

berbeda

Page 45: APLIKASI PELACAK OBJEK TUGAS AKHIR

25

Jadi properti GIS dalam database akan mempunyai keunggulan sendiri karena

data dan presentasi petanya dipisahkan, sehinggga data dapat dipresentasikan dalam

berbagai cara dan bentuk. Menurut definisi dari GIS sendiri, GIS akan dapat

diuraikan dari beberapa sub sistem berikut ini:

1. Data Input = Sub sistem ini bertugas untuk mengumpulkan dan mempersiapkan

data spasial dan atribut dari berbagai sumber. Sub sistem ini juga berfungsi untuk

mengkonversi atau mentransformasikan format data asli kedalam format yang

digunakan oleh GIS

2. Data Output = Sub sistem ini menampilkan atau menghasilkan keluaran seluruh

atau sebagian database baik dalam bentuk softcopy maupun bentuk hardcopy seperti

tabel, grafik, peta dan lain lain.

3. Data Management = sub sistem ini menorganisasikan baik data spasial maupun

atribut kedalan sebuah database sedemikian rupa sehingga mudah dipanggil, dirubah

dan diperbaharui.

4. Data Manipulation and Analysis = sub sistem ini menentukan informasi-

informasi yang akan direpresentasikan oleh GIS. Selain itu, sub sistem ini juga

melakukan manipulasi dan pemodelan data untuk menghasilkan informasi yang

diharapkan.

Untuk lebih jelasnya dari penjelasan diatas dapat dilihat pada diagram blok

yang digambarkan pada Gambar 2.10. Untuk bentuk data spasial dalam database

akan disimpan dalam bentuk raster dan vektor.

Page 46: APLIKASI PELACAK OBJEK TUGAS AKHIR

26

DATA INPUT

Tabel

Laporan

Pengukuran Lapangan

Peta Digital

Citra Satelit

Foto Udara

Data Lain

Input Storage (database

Retrieval

Processing

Output

Data Management & Manipulation

Gambar 2.10 Uraian Subsistem dalam GIS

2.5.1 Model Raster dan Vektor

2.5.1.1 Model Data Raster

Untuk model data raster akan menampilkan, menyimpan dan menempatkan

data spasial dengan menggunakan struktur matriks atau piksel yang membentuk grid.

Setiap piksel atau sel ini memiliki atribut sendiri , termasuk koordinatnya yang unik

Page 47: APLIKASI PELACAK OBJEK TUGAS AKHIR

27

yaitu disudut grid ( pojok ), dipusat grid, atau ditempat yang lainnya. Akurasi model

ini sangat bergantung pada resolusi dan ukuran pikselnya.

Objek-objek geografis yang dapat direpresentasikan dan dimanipulasi oleh

komputer (dalam konteks ini akan digunakan terminologi entity spatial) akan

disimpan dalam layer yang secara fungsionalitas direlasikan dengan unsur-unsur

petanya. Model raster akan memberikan informasi spasial apa yang terjadi dimana

saja dalam bentuk gambaran yang digeneralisir. Dengan model data raster, data

geografi ditandai oleh nilai-nilai bilangan elemen matriks.

2.5.1.1.1 Karakteristik Layer(s) Raster

Sub bab ini akan menjelaskan sifat atau karakteristik dari sebuah layer yang

mengacu pada model data raster. Resolusi (spasial) dapat didefinisikan sebagai

dimensi linier minimum dari satuan terkecil geographic space yang dapat direkam.

Satuan terkecil ini pada umumnya berbentuk segi empat (biasanya bujur sangkar) dan

dikenal sebagai sel-sel grid, elemen matriks, elemen terkecil dari suatu gambar

(image), atau piksel. Resolusi suatu data raster akan merujuk pada ukuran (atau luas)

permukaan bumi pada setiap pikselnya.

Zone layer pada peta raster adalah sekumpulan lokasi-lokasi yang

memperlihatkan nilai-nilai (ID atau nomor pengenal yang direpresentasikan oleh nilai

piksel) yang sama. Tidak semua layer pada peta raster memiliki zone, setiap isi sel

Page 48: APLIKASI PELACAK OBJEK TUGAS AKHIR

28

grid dapat bervariasi secara kontinyu di dalam daerah tertentu sehingga setiap sel

memiliki nilai yang berbeda (unik).

Sedangkan nilai dalam konteks raster adalah item informasi (atribut) yang

disimpan dalam sebuah layer untuk setiap pikselnya. Piksel-piksel di dalam zone atau

area yang sejenis memiliki nilai (isi piksel atau nomor pengenal) yang sama. Pada

umumnya, lokasi di dalam model data raster akan diidentifikasi dengan

menggunakan pasangan kordinat kolom dan baris (x,y).

2.5.1.1.2 Layer(s) Raster

Penjelasan diatas menjelaskan bahwa setiap piksel atau sel grid memiliki nilai

tunggal. Nilai-nilai piksel ini akan bekerja-sama dalam membentuk layer(s) data

spasial. Dengan demikian suatu database spasial kemungkinan besar akan

mengandung lebih dari satu layer seperti ini. Setiap layer akan bersifat kongruen

terhadap layer(s) yang lain dalam database tersebut yaitu memiliki keselarasan yang

sama dengan batas-batas lokasi yang sama, junlah yang sama baik kolom maupun

barisnya dan sistem koordinat yang sama.

Penyimpanan layer pada kebanyakan database raster menggunakan arsitektur

yang berbeda. Ada perangkat yang menggunakan arsitektur dimana beberapa layer

berikut header dimasukkan dalam 1 file besar. Sementara perangkat yang lain

memisahkan setiap isi data dengan masing-masing header data tersebut kedalam file

Page 49: APLIKASI PELACAK OBJEK TUGAS AKHIR

29

yang terpisah. Pada prinsipnya, alternatif arsitektur ini dimaksudkan untuk

menyimpan semua layer dengan nilai –nilai piksel yang berurutan.

Pada layer raster yang disimpan dalam suatu file dapat dikelompokkan

menjadi 3 bagian yaitu header, blok data layer dan ancillary. Untuk header yang

berisi informasi penting adalah mengenai kode file, jumlah band (data yang didapat

dari berbagai peripheral) yang dikandung, baris, kolom, tipe-tipe data dan

sebagainya. Informasi ini harus dibaca terlebih dahulu sebelum membaca data yang

sebenarnya meskipun ukuran header ini hanya beberapa bytes saja. Bagian kedua

adalah blok data layer yang berisi data-data peta dalam bentuk jumlah band data, tipe

data, baris dan kolom. Sedangkan bagian yang terakhir adalah ancillary yang berisi

informasi-informasi tambahan yang biasanya meliputi data statistik citra yang

bersangkutan. Untuk penyimpanan band sendiri ada 2 macam yaitu:

1. Band-interleaved : data setiap band citra akan disimpan secara berselang-seling

oleh piksel dari band yang lain secara bergantian.

2. Band-Sequential : data setiap band citra akan disimpan secara berurutan tanpa

diselingi (interleaved) oleh piksel-piksel dari band yang lain.

Kelebihan dari model data raster adalah sebagai berikut:

1. Memiliki struktur data yang lebih sederhana.

2. Mudah dimanipulasi dengan menggunakan fungsi-fungsi matematis sederhana.

(karena strukturnya sederhana seperti matrik bilangan biasa)

Page 50: APLIKASI PELACAK OBJEK TUGAS AKHIR

30

3. Teknologi tidak begitu rumit sehingga pengguna dapat membuat program aplikasi

yang menggunakan citra raster.

4. Metode untuk mendapatkan citra raster lebih mudah (dapat menggunakan

konversi dari format citra vektor)

5. Gambaran permukaan bumi dalam format citra raster selalu lebih aktual daripada

bentuk vektornya.

6. Tipe paling sering dipakai oleh masyarakat pada umumnya untuk bertukar

informasi berupa gambar.

Kelemahan dari citra raster adalah sebagai berikut:

1. Memerlukan penyimpanan yang lebih besar daripada citra vektor

2. Penggunaan sel atau ukuran grid yang lebih besar untuk menghemat ruang

penyimpanan akan menyebabkan kehilangan informasi dan ketelitian.

3. Transformasi koordinat dan proyeksi lebih sulit dilakukan

4. Tampilan atau representasi dan akurasi posisinya sangat bergantung pada ukuran

pikselnya (resolusi spasial)

5. Sebuah citra raster hanya mengandung satu tematik saja sehingga sulit

digabungkan dengan atribut-atribut lainnya dalam satu layer dengan demikian untuk

merepresentasikan atribut-atribut tambahan diperlukan layer baru sehingga timbul

masalah ukuran file yang sangat besar.

Page 51: APLIKASI PELACAK OBJEK TUGAS AKHIR

31

Ukuran asli

Diperbesar

Gambar 2.11 Gambar Raster

2.5.1.2 Model Data Vektor

Model data vektor menampilkan, menempatkan dan menyimpan data spasial

dengan menggunakan titik-titik, garis-garis atau kurva beserta polygon dan atribut-

atributnya. Bentuk dasar representasi data spasial adalah menggunakan sistem model

data vektor, didefinisikan oleh sistem koordinat kartesian 2 dimensi (x,y). Di dalam

Page 52: APLIKASI PELACAK OBJEK TUGAS AKHIR

32

model data spasial vektor, garis-garis atau atau kurva merupakan sekumpulan titik-

titik terurut yang dihubungkan. Sedangkan luasan atau poligon juga disimpan sebagai

sekumpulan titik-titik, dengan catatan bahwa titik awal dan titik akhir poligon

memiliki koordinat yang sama (poligon tertutup dengan sempurna).

Kelebihan dari sebuah model data vektor adalah sebagai berikut:

1. Memerlukan ruang atau tempat penyimpanan yang lebih sedikit di komputer.

2. Satu layer dapat dikaitkan dengan atau mengandung banyak atribut sehingga

dapat menghemat menyimpan ruang penyimpanan secara keseluruhan.

3. Dengan banyak atribut yang dapat dikandung oleh satu layer, banyak peta

(tematik) lain (layer) yang dapat dihasilkan sebagai peta turunannya.

4. Memiliki resolusi spasial yang tinggi.

5. Transformasi koordinat dan proyeksi sangat mudah dilakukan.

6. Dapat diperbesar / zoom hingga tak terbatas.

Sedang kelemahannya adalah sebagai berikut:

1. Memiliki struktur data yang kompleks.

2. Datanya tidak mudah dimanipulasi.

3. Pengguna tidak mudah berkreasi untuk membuat programnya sendiri untuk

memenuhi kebutuhan aplikasinya. Hal ini disebabkan oleh struktur data vektor yang

Page 53: APLIKASI PELACAK OBJEK TUGAS AKHIR

33

jauh lebih kompleks dan prosedur-prosedur analisisnya memerlukan kemampuan

yang tinggi karena lebih sulit dan rumit.

4. Karena proses keseluruhan untuk mendapatkannya lebih lama, peta vektor sering

mengalami out of date atau kadaluarsa.

5. Proses pembuatannya memerlukan alat khusus seperti plotter, atau dengan cara

menggambar melalui perangkat lunak yang menghasilkan objek bertipe vektor seperti

corel, autocad, map info, dan lain lain [10][11][12].

Representasi vektor suatu objek merupakan suatu cara di dalam menyajikan

objek yang bersangkutan secara sempurna. Untuk itu, ruang atau dimensi koordinat

diasumsikan bersifat kontinyu (tidak dikuantisasi sebagaimana ruang terjadi pada

model data raster) yang memungkinkan semua posisi, panjang dan dimensi

didefinisikan dengan presisi. Gambar 2.12 menunjukkan karakteristik dari gambar

vektor.

Ukuran asli

Gambar 2.12 Gambar Vektor

Page 54: APLIKASI PELACAK OBJEK TUGAS AKHIR

34

Diperbesar

Gambar 2.12 (lanjutan) Gambar Vektor

2.6 Mikrokontroler AVR ATMega8515

Mikrokontroler AVR memiliki arsitektur RISC (Reduced Instruction Set

Computing) 8 bit, sehingga semua instruksi dikemas dalam kode 16-bit (16-bits

word) dan sebagian besar instruksi dieksekusi dalam 1(satu) siklus clock.

Untuk blok diagram fungsionalnya dapat dilihat pada Gambar 2.13 dengan

bagian-bagian adalah sebagai berikut:

1. Saluran I/O sebanyak 32 buah, yaitu Port A, Port B, Port C, dan Port D.

2. ADC 10 bit sebanyak 8 saluran.

Page 55: APLIKASI PELACAK OBJEK TUGAS AKHIR

35

3. Tiga buah Timer/Counter dengan kemampuan pembanding.

4. CPU yang terdiri atas 32 buah register.

5. SRAM sebesar 512 byte.

6. Unit interupsi internal dan eksternal.

7. EEPROM (Electrically Erasable Programmable Read Only Memory) sebesar

512 byte yang dapat diprogram saat operasi.

8. Antarmuka komparator analog.

9. Port USART untuk komunikasi serial.

Dan untuk fitur-fitur yang dimiliki oleh mikrokontroller sebagai berikut:

1. Sistem Mikroprosessor dengan kecepatan maksimum 16 MHz.

2. ADC internal.

3. Portal komunikasi serial (USART) dengan kecepatan maksimum 2,5 Mbps.

4. Enam pilihan mode sleep menghemat penggunaan daya listrik.

5. Kapabilitas memori flash 8 KB, SRAM 512 byte.

Page 56: APLIKASI PELACAK OBJEK TUGAS AKHIR

36

Gambar 2.13 Diagram blok fungsional ATmega8515

Kofigurasi pin ATMega8535 bisa dilihat pada Gambar 2.14. Penjelasan

secara fungsional adalah sebagai berikut:

Page 57: APLIKASI PELACAK OBJEK TUGAS AKHIR

37

1. VCC merupakan pin yang berfungsi sebagai masukkan catu daya.

2. GND merupakan pin ground.

3. Port A (PA0..PA7) merupakan pin I/O dua arah dan pin masukkan ADC.

4. Port B (PB0..PB7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu

Timer/Counter, komparator analog, dan SPI.

5. Port C (PC0..PC7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu TWI,

comparator analog, dan timer oscilator.

6. Port D (PD0..PD7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu

komparator analog, interupsi eksternal, dan komunikasi serial.

7. RESET merupakan pin yang digunakan untuk reset mikrokontroler.

8. XTAL1 dan XTAL2 merupakan pin masukkan tegangan untuk clock eksternal.

9. AVCC merupakan pin masukan tegangan untuk ADC.

10. AREF merupakan pin masukan tegangan referensi ADC. [13]

Gambar 2.14. Pin ATMega8515

Page 58: APLIKASI PELACAK OBJEK TUGAS AKHIR

38

2.7 Relational Database Management System

Merupakan sekumpulan data yang disimpan sedemikian rupa sehingga mudah

diambil informasinya bagi pengguna meskipun data tersebut saling berhubungan.

RDBMS merupakan suatu paket perangkat lunak yang kompleks digunakan untuk

memanipulasi database.

Ada tiga prinsip dalam RDBMS yaitu:

1. Data definition: mendefinisikan jenis data yang akan dibuat (dapat berupa angka

atau huruf), relasi data, validasi data dan lain-lain.

2. Data Manipulation: data yang telah dibuat dan didefinisikan tersebut akan

dilakukan beberapa pengerjaan, seperti menyaring data, melakukan proses query dan

sebagainya.

3. Data Control: bagian ini berkenaan dengan cara mengendalikan data, seperti

siapa saja yang bisa melihat isi data, bagaimana data bisa digunakan oleh banyak user

dan sebagainya.

Semua operasi input dan output yang berhubungan dengan database harus

menggunakan DBMS. Bila pemakai akan mengakses database, DBMS menyediakan

penghubung (interface) antara pemakai dengan database. Hubungan pengguna

dengan database dapat dilakukan dengan 2 cara:

1. Secara interaktif mengggunakan bahasa pertanyaan (query language)

2. Dengan menggunakan program aplikasi

Page 59: APLIKASI PELACAK OBJEK TUGAS AKHIR

39

Beberapa contoh software database adalah Dbase, Foxbase, Foxpro, Microsoft

Access, File Maker Pro, DB2, Postgres/Ingres, Microsoft SQL Server, Oracle, Power

Builder, Sybase, MySQL dan sebagainya. SQL adalah singkatan dari Structured

Query Language. SQL adalah bahasa yang digunakan untuk berkomunikasi dengan

database. Menurut ANSI (American National Standard Institute), bahasa ini

merupakan standar untuk Relational Database Management System (RDBMS).

Pertanyaan-pertanyaan pada SQL digunakan untuk melakukan beberapa tugas

seperti update data pada database, atau menampilkan data dari database. Beberapa

software RDBMS dapat menggunakan SQL, seperti Oracle, Sybase, Microsoft SQL

Server, Microsoft Access dan Ingres, namun pada prinsipnya mempunyai arti dan

fungsi yang sama. Perintah di bawah ini dapat digunakan untuk mengerjakan hampir

semua kebutuhan dalam database.

Perintah-perintah tersebut antara lain:

1. Select

2. Insert

3. Update

4. Delete

5. Create

6. Drop

Page 60: APLIKASI PELACAK OBJEK TUGAS AKHIR

40

2.7.1 SQL SERVER 2000

MS SQL Server adalah salah satu produk Relational Database Management

System (RDBMS) yang handal buatan Microsoft. Fungsi utamanya adalah sebagai

database server yang mengatur semua proses penyimpanan data dan transaksi suatu

aplikasi. Program ini dapat beroperasi pada berbagai sistem informasi, mulai dari

Windows 9x, Windows 2000 dengan berbagai macam versinya, Windows NT dan

Windows XP.

SQL Server diluncurkan pada tahun 1989 dan berkembang sangat pesat sejak

saat itu, baik dalam skalabilitas, integritas, kemudahan dalam administrasi,

performance dan juga feature. SQL Server yang umumnya digunakan adalah SQL

server 2000. Versi 2000 memiliki feature-feature lengkap untuk membangun aplikasi

mulai skala kecil sampai dengan tingkat enterprise.

Masing-masing versi memiliki perbedaan dalam hal maksimum ukuran

database, RAM, jumlah koneksi serta berbagai feature lanjutan. Versi personal,

developer dan desktop dapat digunakan di OS Desktop seperti Windows 2000 dan

Xp, sedangkan versi Enterprise dan Standard hanya dapat digunakan di Windows

2000/2003 Server serta NT Server. Versi Windows CE biasa digunakan untuk PDA

dan Pocket PC.

Untuk relationship tabel yang ada pada SQL Server agar dimudahkan untuk

menjaga keutuhan database digunakan cascade update dan delete

Page 61: APLIKASI PELACAK OBJEK TUGAS AKHIR

41

Pada Gambar 2.15 dapat dilihat bagaimana cara menjaga keutuhan relationships

dengan cascade update dan cascade delete. Cascade Update berfungsi untuk

mengganti data pada Tabel sehingga tidak terjadi kesalahan pada data yang

bersangkutan antar Tabel, sedangkan cascade delete digunakan untuk menghapus

data pada Tabel agar data pada komponen Tabel tetap sesuai satu sama lain. [8]

Gambar 2.15 Cascade update dan cascade delete

Page 62: APLIKASI PELACAK OBJEK TUGAS AKHIR

42

2.8 .NET

Interoperabilitas adalah suatu kemampuan untuk saling bekerjasama antara

sebuah sistem, khususnya pada suatu sistem komputer. Jadi inti interoperabilitas

adalah bagaimana suatu sistem yang berbeda dapat saling berkomunikasi.

Permasalahan ini dipecahkan dengan hadirnya konsep protokol (misalnya TCP/IP,

Bluetooth, dan sebagainya).

Protokol adalah sekumpulan aturan spesifik yang memungkinkan berbagai

sistem dapat berkomunikasi. Protokol meliputi seluruh format data, error handler,

dan prosedur-prosedur khusus dalam berkomunikasi.

Namun protokol bukanlah akhir dari sebuah solusi interoperabilitas. Semakin

hari sistem komputer makin bersifat distributif, bila dahulu komputer hidup secara

stand alone maka saat ini hampir sekitar 70% komputer di dunia terhubung dengan

internet. Hal ini memberikan arti bahwa semakin hari tingkat interoperabilitas

semakin kompleks. Kekompleksan ini dapat dilihat dengan menujunya

interoperabilitas pada tingkat aplikasi.

Tujuan interoperabilitas tingkat software adalah bagaimana komponen -

komponen aplikasi yang dibuat dengan development tools yang berbeda, dengan

bahasa yang berbeda, serta berjalan pada platform yang berbeda dapat saling

berkomunikasi.

Page 63: APLIKASI PELACAK OBJEK TUGAS AKHIR

43

2.8.1 ADO.NET

ADO.NET adalah fitur sistem koneksi yang terdapat pada VB.NET untuk

sistem koneksi antara aplikasi dengan database. Pada ADO.NET dikembangkan

sebuah arsitektur baru yang mencoba melakukan koneksi ke server/database dengan

paradigma baru, yakni paradigma terputus. Dengan kata lain klien melakukan koneksi

ke database jika hanya diperlukan, yaitu pada saat melakukan query data kedalam

database.

Yang dimaksud dengan klien (client) adalah program yang mengakses

database (query). Jadi dengan menggunakan sistem diatas akan mereduksi akan

terjadinya bottleneck.

Page 64: APLIKASI PELACAK OBJEK TUGAS AKHIR

BAB III

PERANCANGAN SISTEM

Bab ini akan menjelaskan perancangan program aplikasi pelacak objek.

Program akan terdiri dari 2 jenis, yaitu program dengan menggunakan bahasa

assembler untuk program pengendali data pada mikrokontroler dan menggunakan

Visual Basic .NET® untuk penampil data pada PC. Kedua program dibuat dengan

spesifikasi komputer AMD Turion 64 dan RAM sebesar 1024 MB. Program untuk

tampilan akan dibuat agar dapat menampilkan objek secara visual pada peta dengan

berbentuk jalur atau titik. Program ini dibuat dengan mengaplikasikan peta digital

GIS dan GPS.

3.1 Model Sistem

Perancangan akan dibagi dalam 2 sistem, yaitu sistem pemancar dan sistem

penerima. Diagram blok dari sistem pemancar dapat dilihat pada Gambar 3.1,

sedangkan diagram blok dari sistem penerima dapat dilihat pada Gambar 3.2.

Diagram blok akan menggambarkan koneksi antara komponen-komponennya.

Page 65: APLIKASI PELACAK OBJEK TUGAS AKHIR

47

MCU GPS HP

Jalur Data

Gambar 3.1 Sistem pemancar dan penyedia data

HP PC

Jalur Kendali

Jalur Data

Gambar 3.2 Sistem penerima dan penampil data

Page 66: APLIKASI PELACAK OBJEK TUGAS AKHIR

48

Sistem penerima akan mengggunakan sebuah PC dan sebuah telepon seluler

dengan PC sebagai pengendali untuk meminta data yang berupa koordinat objek dari

sistem pemancar. Perintah AT yang terdapat di Windows HyperTerminal akan

digunakan untuk mengendalikan permintaan data pada pemancar melalui HP yang

sudah terkoneksi dalam bentuk SMS. Sistem pemancar menggunakan GPS sebagai

penyedia data dan akan dikendalikan oleh mikrokontroler untuk aktivasi, sedangkan

mikrokontroler akan meminta data atau mengaktifkan GPS apabila ada SMS yang

masuk dari HP yang sudah terkoneksi sebelumnya.

Komponen utama dari sistem penerima adalah sebuah PC sebagai penampil

dan HP Siemens M55 untuk penerima dan pengirim data. Sistem pemancar

menggunakan GPS Receiver/GPS Mouse BR304 seriel sebagai penyedia data dan

sistem minimal mikrokontroler ATMega 8515 dengan 2 port RS232 sebagai koneksi

antara GPS dan HP siemens M55.

3.2 Perancangan Perangkat Lunak

3.2.1 Algoritma Penerima dan Penyimpan data

Untuk algoritma perancangan program untuk penerima dan penyimpan data

adalah sebagai berikut:

1. Awal program akan dimulai dengan pembacaan serial port.

2. Memeriksa apakah ada data atau tidak.

Page 67: APLIKASI PELACAK OBJEK TUGAS AKHIR

49

3. Mendekodekan format PDU yang berasal dari HP dengan menggunakan PDU

decoder.

4. Memeriksa ada tidaknya data baru user tersebut dengan waktu yang diinginkan

user.

5. Menyimpan/memperbaharui data ke dalam database.

6. Reset timer hingga proses kembali seperti semula.

3.2.2 Diagram alir Penerima dan penyimpan data

Gambar 3.3 adalah diagram alir dari algoritma program pada bagian

3.2.1.

Mulai

Timer ON

Timer = 100ms

Increment Timer

Timer Off

Ada?

Tidak

Ya

Tidak

Baca Data Decode PDU

Reset Timer

Ya

B

Cek data user

A

Gambar 3.3 Diagram alir untuk fungsi penyimpan dan penerima data objek.

Page 68: APLIKASI PELACAK OBJEK TUGAS AKHIR

50

Terdaftar ?

Ada ?

Perbaharui data

B

Ya

Tidak

Tidak

Ya

Masukkan data baru

Cek User

Cek data posisi user pada waktu sekarang

A

Gambar 3.3 (lanjutan) Diagram alir untuk fungsi penyimpan dan penerima data

objek.

3.2.3 Algoritma Cek Data User

Algoritma cek data user dijelaskan seperti langkah-langkah dibawah ini:

1. Cek data dalam HP melalui hyperterminal dan AT Command.

Page 69: APLIKASI PELACAK OBJEK TUGAS AKHIR

51

2. Dekodekan format PDU yang ada dalam Handphone .

3. Baca header untuk nomor pengirim pada PDU.

4. Baca data pada database untuk user yang terdaftar.

5. Cocokkan data header dan data database.

3.2.4 Diagram Alir Cek Data User

Diagram alir dari algoritma program dari bagian 3.2.3 ditunjukkan oleh

Gambar 3.4

Mulai

Cek data pada Handphone

Dekodekan PDU

Baca Header data

Baca database

Cocokkan header dengan data database

Selesai

Gambar 3.4 Diagram alir untuk Validasi data user

Page 70: APLIKASI PELACAK OBJEK TUGAS AKHIR

52

3.2.5 GIS Mapping

Perancangan menggunakan peta digital GIS yang berupa layer pertama

akan dipilih layer file utama dan kemudian memilih warna dari peta dan

atributnya selanjutnya memilih legend¸ terakhir menampilkan layer kedalam

Program Visual Basic. Diagram alir dalam mapping dapat dilihat pada Gambar

3.5.

Mulai

Pilih Layer File

Pilih Warna

Selesai

Tampilkan Layer ke Peta

Gambar 3.5 Diagram alir mapping pada GIS

Untuk menampilkan peta digital kedalam Visual Basic diperlukan

komponen ESRI MapObject® agar bisa berintegrasi dalam form Visual Basic.

Gambar 3.6 dan Gambar 3.7 menunjukkan component Esri MapObject.

Page 71: APLIKASI PELACAK OBJEK TUGAS AKHIR

53

Gambar 3.6 Komponen yang diperlukan untuk menampilkan peta

Gambar 3.7 Window untuk pemilihan layer yang disediakan oleh MapObjects

3.2.6 Algoritma Login User

Sebelum memasuki menu utama harus melalui proses login selain untuk

keamanan program juga sebagai input data awal pada database. Gambar 3.8

menunjukkan diagram alir dari program login user.

Page 72: APLIKASI PELACAK OBJEK TUGAS AKHIR

54

Masukkan Nama dan Password

Baca Data pada Database

Cari account user

Ada ? Tidak

Tidak

Ya

Ya

Selesai

Tampilkan menu utama

Cocokkan nama dan password

Mulai

Gambar 3.8 Diagram alir login untuk user

Page 73: APLIKASI PELACAK OBJEK TUGAS AKHIR

55

3.2.7 Menu Utama

Gambar 3.9 menunjukkan layout program utama. Pada menu utama terdapat

beberapa menu yaitu:

1. Menu informasi yang terdiri dari:

1. form Administrator.

2. form Anggota .

3. form Peta.

2. Menu pengaturan yang terdiri dari:

1. form Database setting

3. Menu bantuan terdiri dari:

1. form Tentang program

Gambar 3.9 Tampilan utama yang berisi sub menu Informasi, Pengaturan dan

Bantuan

Page 74: APLIKASI PELACAK OBJEK TUGAS AKHIR

56

Gambar 3.9 Tampilan utama yang berisi sub menu Informasi, Pengaturan dan

Bantuan (lanjutan)

3.2.7.1 Form Anggota dan form Manajemen User

Form Anggota dan pengguna yang mempunyai bentuk form yang sama dapat

diakses dari menu informasi yang terdapat pada menu utama. Gambar 3.10

menunjukkan layout dari menu anggota dan menu untuk menampilkan posisi.

Page 75: APLIKASI PELACAK OBJEK TUGAS AKHIR

57

Gambar 3.10 Layout dari form Anggota

Di dalam form manajemen user dapat diubah account administrator pada

database sehingga administrator dapat menambah dan menghapus account anggota

yang sudah ada. Diagram alir dari form anggota dapat dilihat pada Gambar 3.11.

Hapus Data pada Databse

Hapus Data

Tidak

Tidak

Tidak

Ya

Ya

Ya

Masukkan data ke Database

Simpan Data

Masukkan data user

Tambah Data

Mulai

Tidak

Edit Data Ubah D t b

Simpan Data

Edit Data User

Ya

Tidak

Hapus Data

Tidak

Ya

Ya

Selesai

Gambar 3.11 Diagram alir form anggota

Page 76: APLIKASI PELACAK OBJEK TUGAS AKHIR

58

3.2.7.2 Pengaturan Database

Pada engaturan Database akan dijelaskan tentang pengaturan dari

koneksi pada database dan server untuk tiap-tiap pengguna. Diagram alir untuk

form pengaturan database dapat dilihat pada Gambar 3.12.

Mulai

Buat Koneksi

Koneksi Berhasil

Simpan Setting

Selesai

Ya

Tidak

Masukkan nama

Server

Masukkan nama

Database

Masukkan nama ser dan Password

u

Gambar 3.12 Diagram alir untuk pengaturan database.

Page 77: APLIKASI PELACAK OBJEK TUGAS AKHIR

59

Form pengaturan database akan melakukan input nama server,

database, validasi user dan password. Jika koneksi berhasil maka setting akan

disimpan setelah koneksi dibuat pada database. Untuk perancangan database

digunakan MS SQL Server 2000, dengan nama database yaitu GIS dan

menggunakan 3 tabel:

1. Tabel Anggota

2. Tabel Pengguna

3. Tabel Posisi

Rancangan awal pada database akan digunakan Tabel Anggota yang

berelasi dengan Tabel Posisi sedangkan Tabel Pengguna tidak berelasi dengan

kedua tabel yang tersisa sehingga korelasinya dapat dilihat pada Gambar 3.13

Pengguna -User ID -Password -Hak

Anggota -User ID

Posisi -User ID

Gambar 3.13 Korelasi Tabel pada database

Hubungan antar Tabel pada Tabel Anggota dan Posisi sangat erat, dengan

Tabel master atau Tabel induk adalah Tabel Anggota. Jadi apabila Tabel Anggota

salah satu komponen penyusunnya dihapus maka akan berefek juga pada dihapusnya

salah satu komponen penyusun yang terdapat pada Tabel posisi.

Page 78: APLIKASI PELACAK OBJEK TUGAS AKHIR

60

Misalnya, jika Tabel anggota yang mempunyai komponen UserID dengan

data “user123”, maka komponen UserID yang berisi data “user123” tersebut dihapus

maka secara otomatis data yang sama yang terdapat pada Tabel posisi akan ikut

terhapus. Sedangkan apabila pada Tabel slave yaitu tabel posisi, komponen penyusun

UserID dihapus maka Tabel induk tidak akan ikut terhapus meskipun hal itu

mengakibatkan relasi antar Tabel menjadi rusak karena UserID yang terdapat pada

Tabel Master sudah tidak ada. Untuk menjaga keutuhan relasi adalah dengan

menggunakan cascade delete dan update.

3.2.7.2.1 Tabel Pengguna

Tabel Pengguna yang tidak berelasi secara langsung dengan Tabel Anggota

dan Tabel posisi akan digunakan untuk menyimpan data anggota dengan komposisi

penyusun Tabel dapat dilihat pada gambar 3.14

Gambar 3.14 Komponen penyusun tabel Anggota

Page 79: APLIKASI PELACAK OBJEK TUGAS AKHIR

61

Tabel Pengguna akan berfungsi untuk:

1. Pengelolaan data user.

2. Mengatur semua aktivitas yang dilakukan oleh user yang sedang login menurut

otoritas dan hak yang dimiliki oleh user tersebut.

3.2.7.2.2 Tabel Anggota

Komponen penyusun tabel Anggota dapat dijelaskan pada gambar 3.15. Tabel

anggota mempunyai fungsi untuk menentukan user dan informasi yang lebih

mendetail dan harus dikombinasikan dengan Tabel posisi.

Gambar 3.15 Komponen penyusun tabel Anggota

3.2.7.2.3 Tabel Posisi

Pada Tabel posisi komponen penyusunnya dapat dilihat pada Gambar 3.16.

Pada Tabel posisi terdapat relasi komponen penyusun yang terdapat pada field

UserID antara Tabel Anggota dan Tabel Posisi.

Page 80: APLIKASI PELACAK OBJEK TUGAS AKHIR

62

Gambar 3.16 Komponen penyusun tabel posisi

Tabel posisi mempunyai fungsi:

1. Untuk menentukan identitas user yang mengakses.

2. Menyimpan informasi dari objek yang sedang diakses user yaitu berupa posisi

(latitude dan longitude), lama waktu yang diakses, kecepatan user dan arah dari

objek.

3.2.8 Class pada VB.NET

Pada aplikasi untuk menampilkan objek, di server akan digunakan class untuk

pemanggilan objek atau perintah agar program lebih terstruktur dan data lebih mudah

dimanipulasi.

Terdapat 3 class yang terdapat pada program:

1. Class Koneksi terdiri dari:

1. Server

Page 81: APLIKASI PELACAK OBJEK TUGAS AKHIR

63

2. Nama Database

3. UserID

4. Password

5. Connected

6. Connection String

7. Properti Connection

2. Class Query terdiri dari:

1. Query Execute

2. Query Non Execute

3. Class Data

1. Ambil data

2. Tambah data

3. Edit data

4. Hapus data

5. Simpan data

Aplikasi akan mengambil data pada database dengan menggunakan query

sehingga perlu adanya koneksi/jembatan untuk menghubungkan aplikasi dengan

database pada saat aplikasi sedang memanipulasi data secara real-time atau pada saat

itu juga. Jadi untuk mengambil data pada saat query akan dipanggil class koneksi

untuk melihat apakah ada data yang diubah atau perlu load data pada aplikasi. Pada

Page 82: APLIKASI PELACAK OBJEK TUGAS AKHIR

64

class koneksi terdapat 4 properti yang bisa di-set ataupun di-get oleh user, dalam

artian user bisa memasukkan data maupun me-load data yang ingin dilihat saat itu

juga dalam hal ini adalah Nama Server, UserID, Nama database dan Password.

Tetapi untuk 3 properti sisa yaitu Connected, Connection String dan Properti

Connection tidak dapat diubah.

Untuk fungsi dari properti connected adalah sebagai penanda apakah data

sudah valid atau belum untuk membuat koneksi dengan database melalui properti

connection. Properti connection string berisi parameter dalam membuat koneksi

misalnya nama server, user id, validasi password dan lainnya. Properti connection

akan membuat jalur/koneksi antara aplikasi dengan database dengan bergantung pada

properti-properti yang terdapat pada class koneksi

Kemudian pada class Query terdapat 2 properti yaitu Query Execute dan

Query Non-Execute. Query Execute digunakan apabila user menginginkan nilai balik

dengan data yang ada pada database. Query Non-Execute digunakan apabila user

tidak menginginkan nilai balik meskipun pada aplikasi ini, Query Non-Execute akan

dibuat agar program memberi nilai balik berupa true atau false.

Class data akan berisi properti yang akan digunakan untuk pengolahan data

pada database. Apabila terdapat perubahan pada properti server, nama database,

userID dan password maka secara otomatis properti connected akan berubah

menjadi true dan kemudian properti connection string akan diubah dengan data yang

baru

Page 83: APLIKASI PELACAK OBJEK TUGAS AKHIR

65

Properti connected mempunyai output true atau false. Jika properti connected

mempunyai nilai true maka properti connection akan membuat koneksi pada

database untuk query data.

Diagram alir cara kerja dari class koneksi dapat dilihat pada Gambar

3.17

Berubahkah Cek Field pada properti yang bisa di-set?

Generate Connection String

Ya

Buat Koneksi

Connected True?

Tidak

Tidak

Ya

Gambar 3.17 Diagram alir cara kerja pada class koneksi

Page 84: APLIKASI PELACAK OBJEK TUGAS AKHIR

66

3.2.9 Interface pada Mikrokontroler

Dikarenakan pada mikrokontroler ATMega 8535 hanya mempunyai 1 port

yang mendukung USART sehingga port dipecah untuk komunikasi devais menjadi 2

bagian yaitu pada Tx yang akan digunakan untuk komunikasi mikrokontroler dengan

HP dan Rx untuk komunikasi mikrokontroler dengan GPS. Antarmuka akan

menggunakan IC Max232 yang kemudian akan dihubungkan langsung dengan kabel

DB-9 untuk komunikasi serial. Untuk lebih jelasnya dapat dilihat pada gambar 3.18.

VCC_CIRCLE

P1

CONNECTOR DB9

594837261

J4

CON8

12345678

J2

CON8

12345678

P2

CONNECTOR DB9

594837261

C5

C6

C8

C

C7

C

U5

MAX232

138

1110

134526

129147

R1INR2INT1INT2IN

C+C1-C2+C2-V+V-

R1OUTR2OUTT1OUTT2OUT

Gambar 3.18 Antarmuka HP dan GPS dengan RS-232

Page 85: APLIKASI PELACAK OBJEK TUGAS AKHIR

67

3.2.10 Pengendali data pada Mikrokontroler

Pada mikrokontroler akan terdapat perubahan data dari pertama kali data GPS

diambil sampai dengan saat mengirimkan data pada HP dengan menggunakan format

SMS.

3.2.10.1 Aplikasi Pengambil Data

Pada program untuk pengambilan data, disini GPS akan bersifat free-running

tiap kali GPS dalam posisi “ON”. Data pada GPS akan dikonversi dari string menjadi

heksa agar dapat mudah diolah oleh mikrokontroler saat data akan dikirimkan dalam

bentuk SMS. Diagram alir dapat dilihat pada Gambar 3.19.

Mulai

Ambil data

GPS

A

Beri Delay

B

Gambar 3.19 Diagram Alir Pengambilan data GPS

Page 86: APLIKASI PELACAK OBJEK TUGAS AKHIR

68

A

Ya

Konversi String ke Heksa

BTidak Sudah

Selesai ?

Simpan ke Memori

Selesai

Gambar 3.19 Diagram Alir Pengambilan data GPS (lanjutan)

3.2.10.2 Aplikasi Mengirim SMS

Pada Mikrokontroler akan digunakan HP tipe Siemens M55 untuk

mengirimkan data yang sudah berisi data string GPS yang sudah diolah oleh

mikrokontroler ke HP yang berada pada server. Data tersebut diolah lagi agar

bisa diterjemahkan dalam bentuk visual. Data pertama kali akan diubah dari

bentuk heksa kedalam ASCII dan kemudian akan diubah lagi kedalam bentuk

Page 87: APLIKASI PELACAK OBJEK TUGAS AKHIR

69

PDU hingga akhirnya data akan dikirimkan dalam bentuk SMS. Diagram alir

dapat dilihat pada Gambar 3.20.

Mulai

Kirim AT+CMGS = 26

Beri delay

B

Ambil data pada memori

Cek CMGS=’>’

Ubah dari Heksa ke

ASCII Ubah ASCII ke PDU

format

A

Gambar 3.20 Diagram Alir kirim SMS

Page 88: APLIKASI PELACAK OBJEK TUGAS AKHIR

70

A

Kirim pesan

B Selesai kirim

pesan ?

Selesai

Kirim AT+CMGS=‘^Z’

Gambar 3.20 Diagram Alir kirim SMS (lanjutan)

Page 89: APLIKASI PELACAK OBJEK TUGAS AKHIR

BAB IV

HASIL DAN PEMBAHASAN

4.1 Program Ambil Data

Program ambil data berfungsi untuk mengambil data SMS dari HP dan

menyimpan data yang sudah diolah dari format PDU menjadi format string ke dalam

database untuk kemudian digunakan pada program visualisasi objek. Program ambil

data langsung berkomunikasi dengan port COM untuk kemudian mengecek SMS

yang ada pada inbox SMS HP dengan iterasi 100 kali karena isi maksimal SMS pada

inbox adalah 100 SMS. Setelah iterasi 100 kali, program akan berhenti mengecek

SMS di inbox. Program akan membaca SMS, menyimpan dan memisahkan data ke

dalam database. Setelah itu program akan menghapus SMS tersebut. Urutan tadi

akan dieksekusi jika tombol “Mulai Ambil Data” dipilih. Gambar 4.1 menunjukkan

program ambil data.

Gambar 4.1 Tampilan utama program ambil data

Page 90: APLIKASI PELACAK OBJEK TUGAS AKHIR

72

4.2 Program Visualisasi

4.2.1 Login Form

Sebelum memasuki halaman utama program, user diharuskan untuk memasukkan

user name dan password untuk mengetahui apakah user terdaftar atau tidak dengan

mengecek pada database. Jika validasi berhasil maka program akan menampilkan

halaman utama. Login Form dapat dilihat pada gambar 4.2.

Gambar 4.2 Login form

4.2.2 Halaman Utama

Halaman utama terdapat 3 menu bar yaitu ‘Informasi’, ‘Pengaturan’ dan

‘Bantuan’. Menu bar ‘Informasi’ terdiri dari sub menu ‘Administrator’, ’Anggota’

dan ‘Peta’. Sub menu ‘Administrator’ berfungsi untuk masuk ke halaman

administrasi user kemudian sub menu ‘Anggota’ berfungsi untuk masuk ke halaman

‘form data anggota’. Gambar 4.3 menunjukkan tampilan awal program. Gambar 4.4

menunjukkan menu bar ‘informasi’ beserta sub menu bar di dalamnya.

Page 91: APLIKASI PELACAK OBJEK TUGAS AKHIR

73

Gambar 4.3 Tampilan utama program

Gambar 4.4 Menu bar informasi

Menu bar ‘Pengaturan’ mempunyai sub menu bar ‘Pengaturan database’

untuk masuk ke halaman pengaturan database. Gambar 4.5 menunjukkan menu bar

‘Pengaturan’ beserta sub menu bar di dalamnya.

Page 92: APLIKASI PELACAK OBJEK TUGAS AKHIR

74

Gambar 4.5 Menu bar Pengaturan

Sub menu ‘bantuan’ akan berisi sub menu ‘Tentang Program’ yang

menjelaskan data diri pembuat program dan pembimbing tugas akhir. Gambar 4.6

menampilkan menu bar ‘Bantuan’ dan sub menu di dalamnya.

Gambar 4.6 Menu bar bantuan dan sub menu

4.2.2.1 Administrator

Sub menu ‘Administrator’ pada menu bar ‘Informasi’ berfungsi untuk masuk

ke halaman administrasi user. Halaman administrasi user berfungsi sebagai pengatur

program, yaitu untuk mengubah hak akses, menambah user, menghapus user dan

untuk proses monitoring. Gambar 4.7 menampilkan halaman administrasi user.

Halaman administrasi menampilkan anggota berdasarkan user ID dan juga

hak dalam mengakses program ini. Pada halaman administrasi user, Administrator

akan dapat membuat user baru, mengubah data user yang sudah ada dan menghapus

user.

Page 93: APLIKASI PELACAK OBJEK TUGAS AKHIR

75

Gambar 4.7 Halaman administrasi user

Gambar 4.8 menampilkan halaman untuk membuat user baru beserta hak dan

password dengan mengaktifkan tombol ‘buat user baru’. Tombol ‘edit user’

menampilkan halaman untuk mengubah data dari user yang telah ada. Secara visual,

halaman edit user mempunyai bentuk yang sama dengan halaman untuk membuat

user baru. Tombol ‘hapus’ berfungsi untuk menghapus user dari database.

Gambar 4.8 Halaman untuk membuat user baru

Page 94: APLIKASI PELACAK OBJEK TUGAS AKHIR

76

4.2.2.2 Anggota

Sub menu ‘anggota’ berfungsi untuk masuk kedalam halaman form data

anggota dan tabel posisi yang dapat dilihat pada Gambar 4.9. Form data anggota

hanya bisa dimasuki oleh user yang mempunyai status hak sebagai anggota dan

administrator, selain itu maka anggota yang belum terdaftar tidak bisa mengakses

halaman ini..

Gambar 4.9 Halaman form data anggota

Contoh dari tabel data anggota dapat dilihat pada Gambar 4.10. Form data

anggota berfungsi untuk menampilkan data dari anggota yang ingin ditampilkan

posisinya. Tabel posisi berfungsi untuk menampilkan apakah ada data posisi yang

bisa ditampilkan dalam peta

Page 95: APLIKASI PELACAK OBJEK TUGAS AKHIR

77

Gambar 4.10 Data dari user yang didapat dari database

4.2.2.3 Peta

Sub menu ‘Peta’ berfungsi untuk masuk ke dalam halaman form GIS untuk

menampilkan peta Yogyakarta [12] dan visualisasi dari data yang ada pada tabel

posisi. Gambar 4.11 menunjukkan halaman dari form GIS.

Gambar 4.11 Peta dalam form GIS

Page 96: APLIKASI PELACAK OBJEK TUGAS AKHIR

78

Fungsi tombol ’pan’ atau simbol tangan berfungsi untuk menggerakan peta

supaya peta dapat lebih terlihat. Zoom in dan zoom out berfungsi untuk memperbesar

dan memperkecil peta. Full extent yang disimbolkan dengan gambar bumi berfungsi

untuk menampilkan peta secara keseluruhan.

Dalam menu bar ‘Pengaturan’ terdapat sub menu bar ‘Pengaturan database’

yang berfungsi untuk mengatur koneksi antara program dengan database SQL

Server. Menu bar, sub menu bar dan halaman setting koneksi dapat dilihat pada

Gambar 4.12 dan Gambar 4.13.

Gambar 4.12 Sub menu yang terdapat dalam menu bar Pengaturan

Gambar 4.13 Halaman setting koneksi

4.2.3 Visualisasi Objek

Data posisi objek yang sudah berada di dalam database dapat ditampilkan

dengan masuk ke dalam halaman form anggota, dengan login terlebih dahulu untuk

Page 97: APLIKASI PELACAK OBJEK TUGAS AKHIR

79

menentukan hak akses. Setelah berada di dalam form anggota, user dapat memilih

user lain yang ingin ditampilkan data posisinya dengan memilih nama user/id user

yang telah terdaftar di form window sebelah kiri. Setelah user dipilih, user dapat

beralih halaman dengan menggunakan tab yang terletak di atas window sebelah

kanan. Gambar 4.14 menunjukkan tab form antara anggota dan posisi yang terletak di

dalam form anggota.

Gambar 4.14 Tab perpindahan antara form anggota dan form posisi

Setelah masuk ke dalam form posisi user dapat memilih data berdasarkan

waktu yang ada untuk mendapatkan data yang ada pada database. Gambar 4.15

menunjukkan form posisi dalam form anggota.

Setelah data yang diinginkan didapat, selanjutnya user dapat menekan tombol

‘Tampilkan Posisi’ yang disimbolkan oleh tanda anak panah. Gambar 4.16

menunjukkan letak tombol untuk menampilkan posisi dan Gambar 4.17 menunjukkan

data yang telah divisualisasi.

Page 98: APLIKASI PELACAK OBJEK TUGAS AKHIR

80

Gambar 4.15 Pemilihan data yang ingin ditampilkan berdasarkan waktu.

Gambar 4.16 Tombol ‘Tampilkan posisi’ untuk memvisualisasikan data.

Gambar 4.17 Tampilan data yang telah divisualisasikan pada peta.

Page 99: APLIKASI PELACAK OBJEK TUGAS AKHIR

81

4.2.4 Transmitter dan Data Koordinat GPS

Objek yang ingin diketahui posisinya harus ditempel dengan transmitter

sebagai penyedia data. Transmitter terdiri dari GPS, HP dan mikrokontroler yang

berfungsi sebagai pengendali data. Server berfungsi sebagai penerima data dan

visualisasi data. Sub bab ini akan membahas tentang transmitter dan analisis pada

data lampiran yang telah didapat saat pengujian alat.

4.2.4.1 Data dari GPS

GPS yang berada pada transmitter mempunyai 4 macam jenis keluaran data

berbentuk data string yaitu bertipe GGA, GSV, GSA dan RMC. Penjelasan dari 4

macam keluaran data GPS adalah:

1. $GPGGA,142222,0745.6812,S,11023.0020,E,1,03,3.3,72.4,M,-34.0,M,,*

(data GPS pasti)

2. $GPGSV,3,3,09,13, (detail data dari satelit)

3. $GPGSA,A,3,04,12,02,28,17,26,29,,,,,,4.9,1.8,4.6*32955.757,A,0745.6812,S

,11023.6915,E,18.05,31.22,1609 ( data satelit dan informasi satelit yang

aktif)

4. $GPRMC144222.750,A,0745.4962,S,11023.0020,E,8.72,191.43,160907,,*1

41,9.9, (data minimum dari GPS yang ditransmisikan)

Page 100: APLIKASI PELACAK OBJEK TUGAS AKHIR

82

Jenis data yang akan digunakan pada sistem adalah yang berjenis GGA karena

data GGA adalah fix data yang ditangkap oleh transmitter dan memiliki informasi

yang lebih banyak. Penjelasan dari String GGA adalah:

$GPGGA,142222,0745.6812,S,11023.0020,E,1,03,3.3,72.4,M,-34.0,M,,000*05

142222 = Waktu hhmmss(GMT+7) ; jadi waktu sesungguhnya adalah 21:22:22

0745.6812,S = 7’ 45” 6812”’; koordinat geografis (-(45/60))+7) = -7.76135 LS

11023.0020,E = 110’ 23” 0020’’’; koordinat geografis 110.3834 BT

1 = Menunjukkan validasi bahwa data sudah benar

03 = Jumlah satelit yang terdeteksi oleh transmitter

3.3 = Presisi posisi dalam meter

72.4,M = Altitude/ketinggian dari permukaan laut dalam meter

-34.0,M = Geoidal Separation dalam meter

000*05 = Satelit ID dan checksum character yang dikirimkan oleh GPS

Dari beberapa data string di atas hanya diambil tiga data string, yaitu waktu,

koordinat lintang selatan dan koordinat bujur timur. Data yang lain diabaikan.

Gambar 4.18 menunjukkan data koordinat yang dikirimkan ke dalam server.

Gambar 4.18 Contoh data yang diterima server

Page 101: APLIKASI PELACAK OBJEK TUGAS AKHIR

83

4.2.4.2 Transmitter

Transmitter mempunyai sumber data yaitu GPS, pengendali data berupa

mikrokontroler dan HP sebagai pengirim data ke server. Jika sinyal satelit sudah

diakuisisi oleh GPS, maka lampu GPS berkedip dan apabila GPS kehilangan sinyal,

maka lampu pada GPS tidak berkedip. Gambar 4.19 menunjukkan letak lampu GPS

dan Gambar 4.20 menunjukkan bentuk fisik transmitter.

Gambar 4.19 Lampu menunjukkan GPS mendapat sinyal atau tidak

Gambar 4.20 Bentuk fisik dari transmitter dan accu sebagai catu dayanya

Page 102: APLIKASI PELACAK OBJEK TUGAS AKHIR

84

Inbox pada HP harus dalam keadaan kosong supaya alat bekerja karena

pembacaan SMS dimulai dari urutan SMS yang berada di inbox atau mempunyai

indeks 1. SMS dengan tanggal terlama berada pada indeks terakhir.

4.2.4.3 Perbandingan dan Error Posisi

4.2.4.3.1 Data Waktu

Interval dari mikrokontroler untuk mengirimkan 1 titik posisi adalah selama 3

menit. Untuk melihat apakah mikrokontroler sudah mengirimkan data sesuai dengan

interval yang telah ditetapkan, dapat dilihat pada waktu diterimanya SMS pada HP

dalam database server. Tabel 4.1 menunjukkan titik dan waktu data posisi yang

diterima dalam database.

Tabel 4.1 Titik dan waktu pengiriman data yang diterima dalam server

No Waktu penerimaan SMS pada database

server

Posisi data pengujian

Interval waktu )( sebelumnyasekarang tt −

Error (detik)

Error (%)

1 14:23:30 Jl Pandean Sari 0 0 0

2 14:26:33 Perempatan Ring Road Kaliurang

3:03 3 0,0166

3 14:29:30 Perempatan Magister Manajemen Kaliurang

3:03 3 0,0166

4 14:32:28 Neutron Jl Kaliurang

3:02 2 0,0111

Page 103: APLIKASI PELACAK OBJEK TUGAS AKHIR

85

Tabel 4.1 (lanjutan)Titik dan waktu pengiriman data yang diterima dalam server

5 14:35:30 Gramedia Jl Solo 3:02 2 0,0111

6 14:38:23 SMU Bosa 3:03 3 0,0166

7 14:41:26 Brimob Baciro 3:03 3 0,0166

8 14:44:33 Perempatan Demangan

3:07 7 0,0388

9 14:47:37 Jl Gejayan sebelum traffic light

3:04 4 0,0222

10 14:50:36 Mirota Gejayan 3:01 1 0,0055

11 14:53:33 Perempatan Ring road Gejayan

3:03 3 0,0166

12 14:56:30 Jl Pandean Sari blok A

3.03 3 0,0166

Rata-rata error 0,0307

Toleransi error sebesar 10% dipilih dari total interval waktu yang diinginkan

yaitu tiap 3 menit. Tabel waktu menunjukkan bahwa terdapat data baru setiap interval

3 menit dalam database server. Error rata-rata sebesar 0,0307 % yang didapat dari

waktu pertama hingga waktu terakhir tidak melebihi nilai toleransi yang ditetapkan.

Dari tabel juga didapatkan bahwa nilai error dalam pentransmisian data bervariasi

dengan nilai error terendah yaitu 1 detik dan error tertinggi yaitu 7 detik.

4.2.4.3.2 Data Posisi

Untuk data posisi, pengujian dilakukan dengan cara mengamati dan mencatat

posisi sebelum data dikirim dengan melihat pada HP dan kemudian membandingkan

Page 104: APLIKASI PELACAK OBJEK TUGAS AKHIR

86

data yang telah diterima dalam database. Data posisi transmitter yang merupakan

data langsung GPS menggunakan koordinat dalam bentuk derajat perlu diubah

kedalam bentuk desimal.

Format derajat adalah DDMM.MMMM sehingga pengubahan menjadi bentuk

desimal dilakukan dengan rumus Latitude = DD + (MM.MMMM / 60) dan Longitude

= DDD + (MM.MMMM / 60). Tabel 4.2 menunjukkan pengubahan dari data posisi

berupa derajat ke bentuk desimal dengan nilai koordinat pada data transmitter adalah

yang bercetak tebal dan bergaris bawah.

Nilai koordinat dalam bentuk desimal yang didapatkan dibandingkan dengan

nilai koordinat yang berada dalam database sehingga bisa diketahui perbedaan yang

terjadi. Tabel 4.3 menunjukkan perbandingan koordinat transmitter dengan koordinat

pada database.

Tabel 4.2 Perbandingan koordinat antara transmitter dan database

No Transmitter (Latitude)

Transmitter (Longitude)

Database (Latitude)

Database (Longitude)

1 -7.7562133330 S 110.3923067000 E -7.7562133330 110.3923067000

2 -7.7537550000 S 110.3839717000 E -7.7537550000 110.3839717000

3 -7.7649150000 S 110.3789617000 E -7.7649150000 110.3789617000

4 -7.7763250000 S 110.3742667000 E -7.7763250000 110.3742667000

5 -7.7829150000 S 110.3735033000 E -7.7829150000 110.3735033000

6 -7.7871150000 S 110.3772617000 E -7.7871150000 110.3772617000

Page 105: APLIKASI PELACAK OBJEK TUGAS AKHIR

87

Tabel 4.2 (lanjutan) Perbandingan koordinat antara transmitter dan database

No Transmitter (Latitude)

Transmitter (Longitude)

Database (Latitude)

Database (Longitude)

7 -7.7908450000 S 110.3835900000 E -7.7908450000 110.3835900000

8 -7.7848466670 S 110.3881250000 E -7.7848466670 110.3881250000

9 -7.7787383330 S 110.3884417000 E -7.7787383330 110.3884417000

10 -7.7708133330 S 110.3900333000 E -7.7708133330 110.3900333000

11 -7.7595850000 S 110.3951333000 E -7.7595850000 110.3951333000

12 -7.7570300000 S 110.3923833000 E -7.7570300000 110.3923833000

Perbandingan koordinat menunjukkan bahwa data yang berada di transmitter

dengan data yang berada dalam database adalah sama. Tidak adanya perubahan data

dari transmitter ke dalam database menunjukkan bahwa, koordinat di dalam

database adalah sama dengan koordinat yang didapat oleh GPS. Pengolahan data

dari string menjadi ASCII saat masuk ke dalam mikrokontroler, dan kemudian

dilanjutkan dengan ASCII menjadi PDU untuk dikirimkan melalui SMS berhasil dan

tidak mengubah data koordinat.

Hasil pengolahan data posisi yang berupa visualisasi pada peta juga

dicocokkan dengan data di lapangan, berupa foto posisi diambilnya koordinat.

Gambar 4.21 menunjukkan rute dan masing-masing titik yang diberi nomor.

Page 106: APLIKASI PELACAK OBJEK TUGAS AKHIR

88

. Gambar 4.21 Hasil visualisasi titik pada peta

Untuk melihat kinerja dari GPS, dapat dibandingkan antara pengukuran

dengan menggunakan skala yang dilihat secara visual atau mengukur dengan

menggunakan latitude dan longitude yang ada. Pengukuran dengan menggunakan

latitude dan longitude dapat dilakukan dengan menggunakan rumus Haversine, yaitu

Page 107: APLIKASI PELACAK OBJEK TUGAS AKHIR

89

rumus untuk menghitung jarak 2 titik menggunakan nilai koordinat titik tersebut.

Rumus Haversine dapat dilihat pada Gambar 4.22 .

R = earth’s radius (mean radius = 6,371km)

Δlat = lat2− lat1

Δlong = long2− long1

a = sin²(Δlat/2) + cos(lat1).cos(lat2).sin²(Δlong/2)

c = 2.atan2(√a, √(1−a))

d (km) = R.c

Gambar 4.22 Rumus Haversine untuk menghitung jarak antara 2 titik

Dari perhitungan dengan menggunakan rumus Haversine didapatkan jarak

terdekat antara 2 titik koordinat. Rumus Haversine menggunakan asumsi permukaan

bumi rata dan mengabaikan ketinggian tanah antara 2 titik. Titik pertama

menggunakan GPS yang langsung disambungkan ke laptop dan titik kedua

menggunakan transmitter dan kedua titik berada pada posisi yang sama.

Perbandingan hasil perhitungan dengan menggunakan rumus dan melakukan

pengamatan secara langsung dapat dilihat pada tabel 4.6.

Page 108: APLIKASI PELACAK OBJEK TUGAS AKHIR

90

Tabel 4.3 Perbandingan dan error pada peta

No Laptop Transmitter Skala Skala

(Perbesaran) Error Visual (cm)

Error Posisi (meter)

Rumus Haversine (meter)

BT 110.3922300000 110.3923067000 1

LS -7.7562130000 -7.7562133330

1:37500 1:569 1,5 8,5 8,451

BT 110.3840800000 110.3839717000 2

LS -7.7537556670 -7.7537550000

1:7566 1:1341 0,1 1,34 1,193

BT 110.3789617000 110.3789617000 3

LS -7.7649151110 -7.7649150000

1:37000 1:569 - - 0,0123

BT 110.3743050000 110.3742667000 4

LS -7.7763050000 -7.7763250000

1:6666 1:3732 0,15 5,6 4,77

BT 110.3731650000 110.3735033000 5

LS -7.7829333330 -7.7829150000

1:37000 1:400 - - 0,0373

BT 110.3772200000 110.3772617000 6

LS -7.7871483330 -7.7871150000

1:17777 1:2311 0,3 6,93 5,903

BT 110.3831383000 110.3835900000 7

LS -7.7907416670 -7.7908450000

1:21000 1:439 - - 0,0517

BT 110.3881267000 110.38812500008

LS -7.7847356770 -7.7848466670

1:11428 1:1959 0,5 9,7 12,34

BT 110.3884450000 110.3884417000 9

LS -7.7787788000 -7.7787383330

1:12300 1:1400 0,3 4,21 4,514

Page 109: APLIKASI PELACAK OBJEK TUGAS AKHIR

91

Tabel 4.3 (lanjutan) Perbandingan dan error pada peta

No Laptop Transmitter Skala Skala (perbesaran

Error Visual

Error posisi (meter)

Rumus Haversine (meter)

BT 110.3899969000

110.3900333000 10

LS -7.7708350000 -7.7708133330

1:23000 1:3195 0,2 6,4 4,678

BT 110.3952100000 110.3951333000 11

LS -7.7595456670 -7.7595850000

1:6666 1:1111 0,4 4,44 9,515

BT 110.3923633000 110.3923833000 12

LS -7.7571250000 -7.7570300000

1:5555 1:1481 0,7 10,3 10,79

Rata-rata error dalam meter 4,785 4,974

Dari hasil tabel diatas didapatkan nilai rata-rata error dalam meter untuk

perhitungan kinerja GPS. Error menggunakan hasil pengamatan sebesar 4,785 meter

dan melalui perhitungan rumus Haversine didapat error 4,974 meter. Selisih error

untuk hasil pengamatan dan perhitungan sebesar 0,189 meter didapat karena

pengukuran dengan menggunakan hasil pengamatan dilakukan dengan cara

mengukur jarak dengan menggunakan skala perbesaran dari program. Untuk kinerja

GPS dalam hal akurasi masih masuk dalam toleransi pada datasheet GPS yaitu 15

meter.

Page 110: APLIKASI PELACAK OBJEK TUGAS AKHIR

BAB V

PENUTUP

5.1 Kesimpulan

Berdasarkan hasil yang telah didapat dalam perancangan dan pengujian, maka

diperoleh beberapa kesimpulan sebagai berikut :

1. Aplikasi Pelacak Objek telah berhasil dibuat dengan baik.

2. Aplikasi ini akan bekerja dengan baik dengan toleransi jarak posisi yang

disesuaikan dengan modul GPS yang ada pada transmitter yaitu 15 meter.

3. Interval pengiriman data melalui SMS juga didapatkan setiap 3 menit

pengiriman.

4. Visualisasi objek juga berhasil menampilkan titik dengan berdasarkan

waktu dan berhasil membuat jalur pergerakan dari objek.

5. Koordinat transmitter dengan koordinat dalam database sama dan tidak

ada error dalam pengubahan data.

6. Akurasi GPS sesuai dengan toleransi pada datasheet yaitu kurang dari 15

meter.

5.2 Saran

1. Pengujian masih dilakukan dengan cara manual sehingga tidak bisa

diketahui error posisi secara tepat sehingga untuk hasil yang jauh

Page 111: APLIKASI PELACAK OBJEK TUGAS AKHIR

93

lebih akurat disarankan untuk menggunakan 2 buah GPS secara

bersamaan.

2. Penggunaan GPS dengan kualitas dan presisi koordinat yang lebih

tinggi juga dapat meningkatkan kemampuan aplikasi dalam

menentukan posisi objek.

3. Interval yang lebih cepat juga dapat digunakan agar visualisasi objek

lebih dapat diperhalus dan pergerakan objek juga lebih rinci

Page 112: APLIKASI PELACAK OBJEK TUGAS AKHIR

Daftar Pustaka

1. TRen Digital, edisi Jumat 4 mei 2007

2. Istyanto, Jazi Eko, Rancangan dan Implementasi Prototipe Sistem Kendali

Jarak Jauh Berbasis AT89C52 Dan Layanan SMS GSM. Jurnal Ilmu Dasar

vol.5, 2004.

3. Siemens AT Command Set, 2003.

4. www.wikipedia.com

5. El-Rabbany, Ahmed. Introduction to GPS: Global Positioning System.

Boston: Artech House, 2002.

6. Mcnamara, Joel. GPS for Dummies. Indianapolis:Wiley Publishing, 2004.

7. www.NAVIGASI.net

8. Visual Basic .Net help

9. Http//www.USGS.com

10. Budiyanto, Eko. Sistem Informasi Geografis menggunakan MapInfo.

Yogyakarta:CV. Andi Ofset, 2004.

11. Anam, Syaiful. Menggunakan ArcInfo untuk proyeksi peta.

Bandung:Penerbit Informatika, 2005.

12. Prahasta, Eddy. Sistem Informasi Geografis. Bandung:Informatika, 2005

13. Wardhana, Lingga. Belajar Sendiri Mikrokontroler seri ATMega 8535,

Simulasi, Hardware dan Aplikasi. Yogyakarta:CV. Andi Ofset, 2006.

14. GIS Yogyakarta , Http://PetaEndonesia.blogspot.com

Page 113: APLIKASI PELACAK OBJEK TUGAS AKHIR

DATA PENGUJIAN GPS ( LANGSUNG)

1.$GPGGA,100002.720,0745.3654,S,11023.4858,E,1,08,1.0,191.3,M,4. (Jl Pandean Sari)

2.$GPGGA,100334.710,0745.2248,S,11023.0448,E,1,05,1.8,2 (Perempatan Ring road Jakal)

3.$GPGGA,100814.697,0745.8213,S,11022.7691,E,1,09,1.0,176.0,M, ( Perempatan MM)

4.$GPGGA,101729.670,0746.5783,S,11022.4583,E,1,09,1.0, (seven resto)

5.$GPGGA,101945.663,0746.9760,S,11022.3899,E,1,07,1.0, (Jalan Solo)

6.$GPGGA,102248.655,0747.2289,S,11022.5852,E,1,10,0.9,150. (SMU BoSa)

7.$GPGGA,102601.645,0747.4445,S,11022.9883,E,1,10,0.9,1 (Jalan Baciro)

8.$GPGGA,102914.636,0747.1241,S,11023.2717,E,1,11,0.8,15 (Sebelum traffic light pasar demangan)

9.$GPGGA,103241.626,0746.7514,S,11023.3013,E,1,10,0.9,164.4 ( Pertigaan Jl Kolombo)

10.$GPGGA,103612.616,0746.2627,S,11023.3968,E,1,10,0.9,1 (Mirota Gejayan)

11.$GPGGA,103844.609,0745.6508,S,11023.6646,E,1,10,0.9,185 (SPBU Gejayan)

12.$GPGGA,104223.598,0745.3675,S,11023.4902,E,1,08,1.0, (jalan Pandean Sari)

Page 114: APLIKASI PELACAK OBJEK TUGAS AKHIR

Data Transmitter

No Data pada transmitter (derajat) Data pada transmitter (desimal)1 072326.478,0745.3728,S,11023.5384,E,1,04,5.5,191.4,M,4.4,M,00

00*5-7.7562133330 S 110.3923067000 E

2 072628.469,0745.2253,S,11023.0383,E,1,05,4.3,191.1,M,4.4,M,0000*5

-7.7537550000 S 110.3839717000 E

3 072926.460,0745.8949,S,11022.7377,E,1,06,1.7,170.2,M,4.4,M,0000*5

-7.7649150000 S 110.3789617000 E

4 073223.452,0746.5795,S,11022.4560,E,1,06,1.7,154.5,M,4.4,M,0000*5

-7.7763250000 S 110.3742667000 E

5 073521.443,0746.9749,S,11022.4102,E,1,04,4.0,159.9,M,4.4,M,0000*5

-7.7829150000 S 110.3735033000 E

6 073819.435,0747.2269,S,11022.6357,E,1,05,2.0,145.6,M,4.4,M,0000*5

-7.7871150000 S 110.3772617000 E

7 074116.423,0747.4507,S,11023.0154 , E,1,04,4.0,137.9,M,4.4,M,0000*5

-7.7908450000 S 110.3835900000 E

8 074428.418,0747.0908 , S,11023.2875,E,1,05,2.4,148.7,M,4.4,M,0000*5

-7.7848466670 S 110.3881250000 E

9 074726.409,0746.7243,S,11023.3065,E,1,05,2.3,154.9,M,4.4,M,0000*5

-7.7787383330 S 110.3884417000 E

10 075023.401,0746.2488,S,11023.4020,E,1,06,1.7,165.8,M,4.4,M,0000*5

-7.7708133330 S 110.3900333000 E

11 075320.393,0745.5751,S,11023.7080,E,1,07,1.3,182.7,M,4.4,M,0000*5

-7.7595850000 S 110.3951333000 E

12 075618.384,0745.4218,S,11023.5430,E,1,06,1.6,183.4,M,4.4,M,0000*5

-7.7570300000 S 110.3923833000 E

Page 115: APLIKASI PELACAK OBJEK TUGAS AKHIR

LOKASI PENGAMBILAN TITIK

1. Jalan Pandean Sari

2. Jalan Kaliurang km.6

3. Jalan Kaliurang km.4,5

Page 116: APLIKASI PELACAK OBJEK TUGAS AKHIR

4. Seven Resto (Mirota Kampus) Jalan Kaliurang

5. Jalan Solo (sebelum Gramedia)

6. SMU Bosa

Page 117: APLIKASI PELACAK OBJEK TUGAS AKHIR

7. Jalan Baciro (sebelum brimob)

8. Sebelum perempatan traffic light antara pasar demangan dan Jalan Solo

9. Pertigaan di Jalan Kolombo

Page 118: APLIKASI PELACAK OBJEK TUGAS AKHIR

10. Toko Vikita ( Sebelum Mirota Gejayan)

11. SPBU Jalan Gejayan (sebelum Ring Road)

Page 119: APLIKASI PELACAK OBJEK TUGAS AKHIR

.nolist

.include"m8515def.inc"

.def status = r1

.def hitung_timer = r2

.def hitung_char = r23

.def simpans = r16

.def txbyte = r17

.def rxbyte = r18

.def hitung = r20

.equ fclock = 4000000

.equ baud_rate = 4800

.equ ubbr_value = (fclock / (16*baud_rate)) - 1

.equ timer_setengah = 0xF85E

.equ nilai_timer5 = 0xB3B3

.equ nilai_timer2 = 0xE17B

.equ nilai_timer16 = 0x0000

.equ jalur_HP = (1<<2)|(0<<3)

.equ jalur_GPS = (1<<2)|(1<<3)

.list

.cseg

.org 0rjmp main;reti;reti;reti;reti;reti.org 0x06rjmp timer1_int;reti;reti.org 0x09 rjmp usart_rx_int

;;*********************************** SMS COMMAND ************************;cmd_at: .db "AT",13,0cmd_ate: .db "ATE0",13,0cmd_mem: .db "AT+CPMS=ME,ME,ME",13,0cmd_smssend: .db "AT+CMGS=79",13,0cmd_smsread: .db "AT+CMGR=1",13,10,0cmd_smsdel: .db "AT+CMGD=1",13,10,0cmd_sign : .db "AT+CNMI=1,1,0,0,1",13,10,0;sms indicator +CMTI: <mem>,<index>cmd_tes : .db "ATD123",59,13,10,0

sms_aktif : .db "CBB43CDD06",0 ; "Kirim"

; *************************** **** Text2PDU ******************************

Page 120: APLIKASI PELACAK OBJEK TUGAS AKHIR

heksa: .db "0123456789abcdef",0;;********************************** Main Program ************************;* Inisialisasi untuk I/O dan penggunaan port untuk pengendali;* IO yang dipakai: port E sbg out led indicator , PortD.2& PortD.3 sbg out;* pengendali MUX. Inisialiasi HP berupa test perintah AT, setting memori sms;* HP (+CPMS),+CNMI(opt);* Setelah melalui inisialisasi maka uC akan masuk dalam kondisi idle dan hanya akan ;* diaktifkan melalui interupt RXC

main:

;;******************************** Inisialisasi USART ********************;init_usart:ldi simpans,high(ubbr_value)out UBRRH, simpansldi simpans,low(ubbr_value)out UBRRL, simpansldi simpans, (1<<RXEN)|(1<<TXEN)|(1<<RXCIE); mengaktifkan transmitter,receiver dan interupt pada RXCout UCSRB,simpans

;;********************************** inisialisasi IO ***********************; Inisialisasi IO (PortD)s setelah inisialisasi USART,ldi simpans,0xFFout DdrE,simpansldi simpans,0out PortE,simpans ;sebagai output, nyalakan LED

ser simpansout DdrD,simpansldi simpans, jalur_HP ;line dr HP aktif out PortD,simpansrcall delay_2dtk

ser simpansout PortE,simpans

perintah_at :ldi ZH,high(cmd_at*2)ldi ZL,low(cmd_at*2)rcall kirim_data_serialrcall tunggu_OKcbi PortE,0;(1) ;nyalakan indikator led setelah sukses mengirim perintah;rcall delay_2dtk

perintah_ate :ldi ZH,high(cmd_ate*2)ldi ZL,low(cmd_ate*2)rcall kirim_data_serialrcall tunggu_OKldi simpans,(1<<2)|(1<<0);(2);nyalakan indikator ledout PortE,simpans ;setelah sukses mengirim perintah;rcall delay_2dtk

Page 121: APLIKASI PELACAK OBJEK TUGAS AKHIR

perintah_cpms :ldi ZH,high(cmd_mem*2)ldi ZL,low(cmd_mem*2)rcall kirim_data_serialrcall tunggu_OKcbi PortE,0 ;(3);rcall delay_2dtk

;indicator smsperintah_cnmi:ldi ZH,high(cmd_sign*2)ldi ZL,low(cmd_sign*2)rcall kirim_data_serialrcall tunggu_OKldi simpans,(1<<0)|(1<<1)|(0<<2);(4);nyalakan indikator ledout PortE,simpansnop ;setelah sukses mengirim perintahrcall delay_2dtk

;tes_koneksi:;ldi ZH,high(cmd_tes*2);ldi ZL,low(cmd_tes*2);rcall kirim_data_serial;rcall tunggu_OK;ldi simpans,(0<<0)|(1<<1)|(0<<2);(5);nyalakan indikator led;out PortE,simpans ;setelah sukses mengirim perintah;rcall delay_2dtk

tidur:;rcall delay_2dtk ;2 detik untuk persiapan!nopser simpansout PortE,simpansldi simpans,(1<<SE) ;Sleep enable, idle modeout MCUCR,simpansseisleep ;interupsi yg aktif lsg : RXC

;interupsi timer1 akan aktif setelah diset;yaitu setelah pengiriman paket pertama

mulai_dari_sini :; ini looping utama program, selama dalam proses akusisi & pengiriman data, tidak ; boleh ada interupsiclicbi porte,1 ;nyalakan indikatorsbi porte,0;aktifkan dulu saluran gpsldi simpans, jalur_GPS ;line dr gps aktif out PortD,simpans

;inc xl

Page 122: APLIKASI PELACAK OBJEK TUGAS AKHIR

cari1:ldi hitung_char,0ldi xl,low(0x0060)ldi xh,high(0x0060)rcall usart_rxcpi rxbyte,'G'brne cari1st x,rxbyteinc hitung_charinc xlcari2:rcall usart_rxcpi rxbyte,'G'brne cari1st x,rxbyteinc hitung_charinc xlcari3:rcall usart_rxcpi rxbyte,'A'brne cari1st x,rxbyteinc hitung_char

;****** ***** ** Header data GPS sudah ketemu, mulai simpan streaming datasimpan:rcall usart_rxcpi hitung_char,73 ; penyimpanan berhenti setelah menemukan char header data GPS kedua (GGA), yaitu Gbreq keluarsimpanst x,rxbyteinc hitung_charinc xlrjmp simpan

keluarsimpan:;muxmati:push hitung_charsubi hitung_char,8mov r1,hitung_charpop hitung_char

cbi porte,0sbi porte,1clr rxbyteclr txbyte

ldi simpans,jalur_HPout PortD,simpans

;; **** Kirim data melalui sms **** ; = Kirim AT+CMGS=

perintah_smssend :ldi ZH,high(cmd_smssend*2)ldi ZL,low(cmd_smssend*2)

Page 123: APLIKASI PELACAK OBJEK TUGAS AKHIR

rcall kirim_data_serialrcall tunggu_3Eperintah_smsheader:ldi ZH,high(sms_header_kirim*2)ldi ZL,low(sms_header_kirim*2)rcall kirim_data_serialldi txbyte,'4'rcall usart_txldi txbyte,'9'rcall usart_tx

;KIRIM PESAN;========================================kirimpesan:ldi xl,low(0x0060)ldi xh,high(0x0060)mov r10,xlmov r11,xh

count:ldi r20,0 ;r20 sbg penghitung gesermov xl,r10ld r16,x

;lpm ;ambil karakter pertama;mov r16,r0

load:mov r22,r20inc r22

inc r10mov xl,r10ld r17,x;lpm ;ambil karakter kedua;mov r17,r0mov r18,r17 ;karakter kedua diselamatkan;----------------------geserkanan:dec r22cpi r22,0breq olahlsr r16rjmp geserkanan

;*****************************************************************************;PENGOLAHAN CONVERTING

olah:ldi r19,7 ;konstantasub r19,r20 ;8-r20;--------------------geserkiri:dec r19lsl r17cpi r19,0

Page 124: APLIKASI PELACAK OBJEK TUGAS AKHIR

brne geserkiri;---------------------or r16,r17 ;hasil PDUmov r15,r16

; CONVERT TO ASCII;==============================Hex2ascii:ldi zl,low(2*heksa)ldi zh,high(2*heksa)mov r26,r16 ;pindah data heksa di r16 ke r26mov r27,r16andi r27,0b00001111andi r26,0b11110000swap r26 ;swap data pada r26 agar 4 bit juga data r16 4 bit

naik:cpi r26,0breq tabelhexinc zldec r26rjmp naik

tabelhex:lpmmov txbyte,r0rcall usart_tx ;kirimkanldi zl,low(2*heksa)ldi zh,high(2*heksa)

naik2:cpi r27,0breq tabelhex2inc zldec r27rjmp naik2

tabelhex2:lpmmov txbyte,r0rcall usart_tx ;kirimkan;-----------------------------------------

mov r16,r18 ;karakter kedua jadi karakter pertamadec r1;cp r18,0 ;dah sampai nol?breq kirim1A ;kalo udah selesaicpi r20,6breq count1inc r20rjmp load

count1:inc r10rjmp count;================================

Page 125: APLIKASI PELACAK OBJEK TUGAS AKHIR

; KIRIM Ctrl Z;=================================kirim1A:ldi txbyte,26rcall usart_txldi simpans,0 ;nolkan hitung timermov hitung_timer,simpansrcall delay_16dtk ;atur wakturjmp tidur

;rjmp mulai_dari_siniperintah_smsdel :ldi ZH,high(cmd_smsdel*2)ldi ZL,low(cmd_smsdel*2)rcall kirim_data_serialrcall tunggu_OKret;perintah_smsread :ldi ZH,high(cmd_smsread*2)ldi ZL,low(cmd_smsread*2)rcall kirim_data_serialret

;*************** tunggu respon dari HP ***********************; ============== ==respon dr perintah AT,ATE0,AT+CPMS,AT+CNMI tunggu_OK:CLR RXBYTErcall usart_rxcpi rxbyte,'O'brne tunggu_OKrcall usart_rxcpi rxbyte,'K'brne tunggu_OKret

;==================== respon dr perintah AT+CMGS ========tunggu_3E:CLR RXBYTErcall usart_rxcpi rxbyte,'>'brne tunggu_3Eret

kirim_data_serial:lpmmov txbyte,r0cpi txbyte,0breq kembalircall usart_txinc zlrjmp kirim_data_serial

kembali:nop

Page 126: APLIKASI PELACAK OBJEK TUGAS AKHIR

ret

timer1_int:cbi porte,2cbi porte,0ldi simpans, (1<<TOV1) ;Timer 1 overflow flag dinolkan dengan memberikan logika 1out TIFR,simpansinc hitung_timer ;hitung sampai 10ldi simpans,10 ;10 x 16,7 detik =167 detik =2 mnt 47 dtkcpse hitung_timer,simpansrjmp tidurrjmp mulai_dari_sini ;saatnya kirim lagi

; *****************************************************************************; interupsi serial; *********************************************************************jembatan_tidur :rcall delay_setengahrjmp tidur

usart_rx_int:cbi PortE,2 ;tanda lampu nyalaclr simpansout mcucr,simpanscli

;=========================================; Tunggu respon hp= +CMTI: "ME",1 (enter);=========================================;ldi simpans,20tunggu_plus:rcall usart_rxcpi rxbyte,$2B ;apa ada respon?brne jembatan_tidur

;tunggu_index:;rcall usart_rx;dec simpans;cpi simpans,0;breq jembatan_tidur;cpi rxbyte,$31 ;apa ada respon?;brne tunggu_indexsbi PortE,2 ;tanda lampu kediprcall perintah_smsread ;Baca sms inbox

;=========================================;=========================================tunggu_stat:rcall usart_rxcpi rxbyte,$30brne tunggu_stat

tunggu_nol:rcall usart_rxcpi rxbyte,$30brne tunggu_nolcbi PortE,2 ;tanda lampu kedappesanterima:

Page 127: APLIKASI PELACAK OBJEK TUGAS AKHIR

ldi zl,low(2*sms_header_terima)ldi zh,high(2*sms_header_terima)

loadperintah:lpmmov r29,r0cpi r29,0 ;apakah akhir dari header_terima?breq skip_waktu ;jika sudah lompat ke skip waktu rcall usart_rxcp rxbyte,r0 ;cocokan no hp userbrne pintu_keluar1inc zlrjmp loadperintah

skip_waktu:sbi PortE,2 ;tanda lampu kedipldi simpans,15 ;

loop_skip:rcall usart_rxcpi simpans,0breq baca_perintahdec simpansldi r25,0xFFin r3,pineeor r3,r25out porte,r3rjmp loop_skip

baca_perintah:ldi zl,low(2*sms_aktif)ldi zh,high(2*sms_aktif)

perintah_aktif:lpmmov r29,r0cpi r29,0breq persiapanrcall usart_rxcp rxbyte,r0 ;cocokan karakter SMSbrne perintah_berhenti;jika tidak cocok bukan perintah aktifinc zlrjmp perintah_aktif

perintah_berhenti_mulai:ldi zl,low(2*sms_berhenti)ldi zh,high(2*sms_berhenti)

perintah_awal: ;awal perintah2 untuk menghindari pengambilan karakter rx 2 kalilpminc zlcp rxbyte,r0breq perintah_berhentirjmp pintu_keluar

perintah_berhenti:lpm

Page 128: APLIKASI PELACAK OBJEK TUGAS AKHIR

mov r29,r0cpi r29,0 ;apakah pembanding sudah nolbreq pintu_keluar ;perintah benarrcall usart_rxcp rxbyte,r0brne bukan_perintahinc zlrjmp perintah_berhenti

cbi PortE,2persiapan:ldi simpans,1 ;beri tanda aktivitas, 1=aktif 0=pasifmov status,simpansrcall perintah_smsdel ;hapus smsrjmp mulai_dari_sini ;

bukan_perintah :tst status ;cek aktivitas sebelumnyabreq pintu_keluar ;ternyatapasif, keluarrjmp persiapan ;aktif, teruskan saja

rcall perintah_smsdel ;hapus sms dan kembali tidur sajarjmp tidur

;;*********************************************************************************;* SUBRUTIN YANG SERING DIPAKAI;*****************************************************************************

; usart transmit data;***********************************************************usart_tx:sbis UCSRA,UDRE ; Wait for empty transmit bufferrjmp usart_txout UDR,txbyte ; Put data into buffer, sends the dataret

;***********************************************************; usart receive data;***********************************************************usart_rx:sbis UCSRA, RXC ; Wait for data to be receivedrjmp usart_rxin rxbyte, UDR ; Get and return received data from bufferret;============================================================;subrutin delay 5dtk;-----------------------delay_5dtk:ldi simpans, (1<<TOIE1) ; aktifkan enable intrupt timer1out TIMSK, simpansldi simpans, high(nilai_timer5) ;masukkan nilai timerout TCNT1H, simpansldi simpans, low(nilai_timer5)out TCNT1L, simpansldi simpans, (1<<CS12)|(1<<CS10) ; masukkan prescaler untuk timer, disini 1024out TCCR1B, simpans

Page 129: APLIKASI PELACAK OBJEK TUGAS AKHIR

looptimer5:in r17,TIFRsbrs r17,TOV1 ;tunggu sampai timer1 overflow flag setrjmp looptimer5ldi simpans, (1<<TOV1) ;Timer 1 overflow flag dinolkan dengan memberikan logika 1out TIFR,simpansret

;;******************************** delay 2 detik ******************************delay_2dtk:ldi simpans, (1<<TOIE1) ; aktifkan enable intruptout TIMSK, simpansldi simpans, high(nilai_timer2) ;masukkan nilai timerout TCNT1H, simpansldi simpans, low(nilai_timer2)out TCNT1L, simpansldi simpans, (1<<CS12)|(1<<CS10) ; masukkan prescaler untuk timer disini 1024out TCCR1B, simpans

looptimer2:in r17,TIFRsbrs r17,TOV1 ;tunggu sampai timer1 overflow flag setrjmp looptimer2ldi simpans, (1<<TOV1) ;Timer 1 overflow flag dinolkan dengan memberikan logika 1out TIFR,simpansret

delay_setengah:ldi simpans, (1<<TOIE1) ; aktifkan enable intruptout TIMSK, simpansldi simpans, high(timer_setengah) ;masukkan nilai timerout TCNT1H, simpansldi simpans, low(timer_setengah)out TCNT1L, simpansldi simpans, (1<<CS12)|(1<<CS10) ; masukkan prescaler untuk timer disini 1024out TCCR1B, simpans

looptimer1_2:in r17,TIFRsbrs r17,TOV1 ;tunggu sampai timer1 overflow flag setrjmp looptimer1_2ldi simpans, (1<<TOV1) ;Timer 1 overflow flag dinolkan dengan memberikan logika 1out TIFR,simpansret

Page 130: APLIKASI PELACAK OBJEK TUGAS AKHIR

LISTING PROGRAM (VB .NET) SERVER‘FORM MAIN

Imports System.Windows.Forms

Public Class FormMain ' Public SQLServer As New KoneksiSQLServer Private Judul As String = "... GIS ... GIS ... GIS ... GIS ... GIS ... GIS ... GIS ... GIS " Private Sub ShowNewForm(ByVal sender As Object, ByVal e As EventArgs) Handles NewToolStripButton.Click ' Create a new instance of the child form. Dim ChildForm As New System.Windows.Forms.Form ' Make it a child of this MDI form before showing it. ChildForm.MdiParent = Me

m_ChildFormNumber += 1 ChildForm.Text = "Window " & m_ChildFormNumber

ChildForm.Show() End Sub

Private Sub OpenFile(ByVal sender As Object, ByVal e As EventArgs) Handles OpenToolStripButton.Click Dim OpenFileDialog As New OpenFileDialog OpenFileDialog.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments OpenFileDialog.Filter = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*" If (OpenFileDialog.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK) Then Dim FileName As String = OpenFileDialog.FileName ' TODO: Add code here to open the file. End If End Sub

Private Sub SaveAsToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Dim SaveFileDialog As New SaveFileDialog SaveFileDialog.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments SaveFileDialog.Filter = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*"

If (SaveFileDialog.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK) Then Dim FileName As String = SaveFileDialog.FileName ' TODO: Add code here to save the current contents of the form to a file. End If End Sub

Private Sub ExitToolsStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Global.System.Windows.Forms.Application.Exit() End Sub

Private Sub CutToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) ' Use My.Computer.Clipboard to insert the selected text or images into the clipboard End Sub

Private Sub CopyToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) ' Use My.Computer.Clipboard to insert the selected text or images into the clipboard End Sub

Private Sub PasteToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) 'Use My.Computer.Clipboard.GetText() or My.Computer.Clipboard.GetData to retrieve information from the clipboard. End Sub Private Sub CascadeToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Me.LayoutMdi(MdiLayout.Cascade) End Sub

Page 131: APLIKASI PELACAK OBJEK TUGAS AKHIR

Private Sub TileVerticleToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Me.LayoutMdi(MdiLayout.TileVertical) End Sub

Private Sub TileHorizontalToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Me.LayoutMdi(MdiLayout.TileHorizontal) End Sub

Private Sub ArrangeIconsToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Me.LayoutMdi(MdiLayout.ArrangeIcons) End Sub

Private Sub CloseAllToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) For Each ChildForm As Form In Me.MdiChildren ChildForm.Close() Next End Sub

Private m_ChildFormNumber As Integer = 0

Private Sub FormMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load If SQLServer.Connected Then With FormLogin .ShowDialog() End With Else MsgBox("Gagal") Application.Exit() End If End Sub

Private Sub tJudul_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tJudul.Tick Dim panjang, i As Integer Dim TempJudul As String = "" tJudul.Enabled = False panjang = (Judul).Length For i = 0 To panjang - 1

If i = (panjang - 1) Then TempJudul &= Judul(0).ToString Else TempJudul &= Judul(i + 1).ToString End If Next Judul = TempJudul Me.Text = TempJudul tJudul.Enabled = True End Sub

Private Sub AnggotaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AnggotaToolStripMenuItem.Click With FormAnggota .MdiParent = Me .BringToFront() .WindowState = FormWindowState.Maximized .Show() End With

End Sub

Private Sub PenggunaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PenggunaToolStripMenuItem.Click With FormManajemenUser

Page 132: APLIKASI PELACAK OBJEK TUGAS AKHIR

.MdiParent = Me .BringToFront() .WindowState = FormWindowState.Maximized .Show() End With

End Sub

Private Sub PetaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PetaToolStripMenuItem.Click With FormGIS .MdiParent = Me .BringToFront() .WindowState = FormWindowState.Maximized .Show() End With

End Sub

Private Sub OptionsToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OptionsToolStripMenuItem.Click With FormSetting .MdiParent = Me .BringToFront() .WindowState = FormWindowState.Normal .Show() End With

End SubEnd Class

‘Form Login=====================================================================================public Class FormLoginPrivate Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click Pengguna.UserID = txtUserName.Text If Pengguna.DataField.userID = "" Then MsgBox("Nama User belum terdaftar") ElseIf Pengguna.DataField.password = txtPassword.Text Then Me.Hide() Else MsgBox("Maaf Anda Gagal Login") End If End Sub

‘Form GIS========================================================================================Imports MapObjects2Imports System.IOImports System.DataImports System.Data.Odbc

Public Class FormGIS Dim dc As New DataConnection Dim ileft, itop, ibottom, iright, dragx, dragy As Integer Dim dsLayer As DataSet 'Dim btn() As Button Dim pLyr() As Panel Dim cLyr() As CheckBox Dim lLbl() As Label Dim pShp() As Panel Dim lLyr() As Label Dim slctdIxLyr As Integer Dim treeLayer As String Public toNoRuas As String Public kabKota As String Public vLbl As Boolean Public sLbl As String Dim drawShp As Object

Dim newPoint As New System.Drawing.Point()

Page 133: APLIKASI PELACAK OBJEK TUGAS AKHIR

Dim xx As Integer Dim yy As Integer Dim Kotak As New Rectangle Dim Poligon As New Polygon Dim Simbol As New Symbol Dim KumpulanTitik As New Points Dim GarisPerjalanan As New Line Dim Titik As New Point

Private Sub tPan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tPan.Click tPan.Checked = True tZIn.Checked = False tZOut.Checked = False tInfo.Checked = False tKota.Checked = False mMAP.MousePointer = MousePointerConstants.moPan End Sub

Private Sub tZIn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tZIn.Click tPan.Checked = False tZIn.Checked = True tZOut.Checked = False tInfo.Checked = False tKota.Checked = False mMAP.MousePointer = MousePointerConstants.moZoomIn

End Sub

Private Sub tZOut_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tZOut.Click tPan.Checked = False tZIn.Checked = False tZOut.Checked = True tInfo.Checked = False tKota.Checked = False mMAP.MousePointer = MousePointerConstants.moZoomOut

End Sub

Private Sub tFull_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tFull.Click mMAP.Extent = mMAP.FullExtent End Sub

Private Sub tInfo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tInfo.Click tPan.Checked = False tZIn.Checked = False tZOut.Checked = False tInfo.Checked = True tKota.Checked = False mMAP.MousePointer = MousePointerConstants.moIdentify

End Sub

Private Sub mMAP_AfterLayerDraw(ByVal sender As System.Object, ByVal e As AxMapObjects2._DMapEvents_AfterLayerDrawEvent) Handles mMAP.AfterLayerDraw If e.index = 0 Then ' Gambar layer pertama dan kemudian refresh lokasi sMap.TrackingLayer.Refresh(True) End If

End SubPrivate Sub mMAP_AfterTrackingLayerDraw(ByVal sender As System.Object, ByVal e As AxMapObjects2._DMapEvents_AfterTrackingLayerDrawEvent) Handles mMAP.AfterTrackingLayerDraw If Not drawShp Is Nothing Then Dim sym As New MapObjects2.Symbol sym.OutlineColor = ColorConstants.moBlack sym.SymbolType = SymbolTypeConstants.moFillSymbol

Page 134: APLIKASI PELACAK OBJEK TUGAS AKHIR

sym.Color = ColorConstants.moYellow sym.Style = FillStyleConstants.moSolidFill ' moDiagonalCrossFill ' moSolidFill ' moTransparentFill 'sMap.DrawShape(mMap.Extent, sym) mMAP.DrawShape(drawShp, sym) drawShp = Nothing

End If

End SubPrivate Sub mMAP_MouseUpEvent(ByVal sender As System.Object, ByVal e As AxMapObjects2._DMapEvents_MouseUpEvent) Handles mMAP.MouseUpEvent Dim m_xMin, m_yMin, m_xMax, m_yMax As Integer MapRectToPixels(sMap, mMAP.Extent, m_xMin, m_yMin, m_xMax, m_yMax)

lTop.Left = 0 'm_xMin End Sub

Private Sub MapRectToPixels(ByVal m_map As MapObjects2.Map, ByVal r As MapObjects2.Rectangle, ByVal xMin As Integer, ByVal yMin As Integer, ByVal xMax As Integer, ByVal yMax As Integer) MsgBox(xMin.ToString) Dim p As New Point Dim xc As Single, yc As Single

p.X = r.Left p.Y = r.Top m_map.FromMapPoint(p, xc, yc)

' convert to pixels xMin = m_map.Parent.ScaleX(xc, 1, 3) yMin = m_map.Parent.ScaleY(yc, 1, 3)

p.X = r.Right p.Y = r.Bottom m_map.FromMapPoint(p, xc, yc)

' convert to pixels xMax = m_map.Parent.ScaleX(xc, 1, 3) yMax = m_map.Parent.ScaleY(yc, 1, 3) End Sub

Sub PixelsRectToMap(ByVal m_map As MapObjects2.Map, ByVal xMin As Integer, ByVal yMin As Integer, ByVal xMax As Integer, ByVal yMax As Integer, ByVal r As MapObjects2.Rectangle) Dim xc As Single, yc As Single Dim p

' convert to twips xc = m_map.Parent.ScaleX(xMin, 1, 3) yc = m_map.Parent.ScaleY(yMin, 1, 3)

p = m_map.ToMapPoint(xc, yc) r.Left = p.x r.Top = p.y

' convert to twips xc = m_map.Parent.ScaleX(xMax, 1, 3) yc = m_map.Parent.ScaleY(yMax, 1, 3) p = m_map.ToMapPoint(xc, yc) r.Right = p.x r.Bottom = p.y End Sub

Private Sub bDel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bDel.Click Dim i As Integer dsLayer.Tables("layer").Rows.RemoveAt(slctdIxLyr) dsLayer.WriteXml(Path.GetDirectoryName(Application.ExecutablePath) & "\layer.xml") mMAP.Layers.Remove(slctdIxLyr) mMAP.Refresh() For i = slctdIxLyr To (pLyr.Length - 2)

Page 135: APLIKASI PELACAK OBJEK TUGAS AKHIR

moveNav(i + 1, i) Next

pLyr(i).Controls.Remove(cLyr(cLyr.Length - 1)) pLyr(i).Controls.Remove(lLbl(lLbl.Length - 1)) pLyr(i).Controls.Remove(pShp(pShp.Length - 1)) pLyr(i).Controls.Remove(lLyr(lLyr.Length - 1)) pCtnrLyr.Controls.Remove(pLyr(pLyr.Length - 1)) cLyr(cLyr.Length - 1).Dispose() lLbl(lLbl.Length - 1).Dispose() pShp(pShp.Length - 1).Dispose() lLyr(lLyr.Length - 1).Dispose() pLyr(pLyr.Length - 1).Dispose()

ReDim Preserve pLyr(pLyr.Length - 2) ReDim Preserve cLyr(cLyr.Length - 2) ReDim Preserve lLbl(lLbl.Length - 2) ReDim Preserve pShp(pShp.Length - 2) ReDim Preserve lLyr(lLyr.Length - 2)

If slctdIxLyr > 0 Then slctdIxLyr = slctdIxLyr - 1

pLyr(slctdIxLyr).BackColor = Color.Gold

End Sub

Private Sub moveNav(ByVal IxFrom As Integer, ByVal IxTo As Integer) Dim tPnlColor As Color Dim tChkLayer As Boolean Dim tLblBack As Color Dim tLblFore As Color Dim tLyrColor As Color Dim tLyrText As String tPnlColor = pLyr(IxTo).BackColor tChkLayer = cLyr(IxTo).Checked tLblBack = lLbl(IxTo).BackColor tLblFore = lLbl(IxTo).ForeColor tLyrColor = pShp(IxTo).BackColor tLyrText = lLyr(IxTo).Text pLyr(IxTo).BackColor = pLyr(IxFrom).BackColor cLyr(IxTo).Checked = cLyr(IxFrom).Checked lLbl(IxTo).BackColor = lLbl(IxFrom).BackColor lLbl(IxTo).ForeColor = lLbl(IxFrom).ForeColor pShp(IxTo).BackColor = pShp(IxFrom).BackColor lLyr(IxTo).Text = lLyr(IxFrom).Text pLyr(IxFrom).BackColor = tPnlColor cLyr(IxFrom).Checked = tChkLayer lLbl(IxFrom).BackColor = tLblBack lLbl(IxFrom).ForeColor = tLblFore pShp(IxFrom).BackColor = tLyrColor lLyr(IxFrom).Text = tLyrText End Sub Private Sub pShp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 'MsgBox(sender.tag) If (opColor.ShowDialog = Windows.Forms.DialogResult.OK) Then pShp(CInt(sender.tag)).BackColor = opColor.Color mMap.Layers.Item(CInt(sender.tag)).Symbol.Color = System.Drawing.ColorTranslator.ToWin32(opColor.Color) mMap.Refresh() dsLayer.Tables("layer").Rows(CInt(sender.tag))("Warna") = System.Drawing.ColorTranslator.ToWin32(opColor.Color) dsLayer.WriteXml(Path.GetDirectoryName(Application.ExecutablePath) & "\layer.xml") End If End Sub

Private Sub lLyr_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 'MsgBox("labelll " & (sender.tag)) pLyr(slctdIxLyr).BackColor = Color.LightGray 'System.Drawing.SystemColors.Control slctdIxLyr = CInt(sender.tag) pLyr(slctdIxLyr).BackColor = Color.Gold

Page 136: APLIKASI PELACAK OBJEK TUGAS AKHIR

End Sub Private Sub pLyr_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 'MsgBox(sender.tag) pLyr(slctdIxLyr).BackColor = Color.LightGray 'System.Drawing.SystemColors.Control slctdIxLyr = CInt(sender.tag) pLyr(slctdIxLyr).BackColor = Color.Gold End Sub

Private Sub cLyr_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 'MsgBox(sender.tag) mMap.Layers.Item(dsLayer.Tables("layer").Rows(CInt(sender.tag))("nama").ToString).Visible = cLyr(CInt(sender.tag)).Checked mMap.Refresh() dsLayer.Tables("layer").Rows(CInt(sender.tag))("Aktif") = (cLyr(CInt(sender.tag)).Checked).ToString dsLayer.WriteXml(Path.GetDirectoryName(Application.ExecutablePath) & "\layer.xml") End Sub Private Sub lLbl_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Dim i As Integer

Dim FFMsgBox As FMsgBox FFMsgBox = New FMsgBox FCMain = Me FCMsgBox = FFMsgBox FFMsgBox.bNo.Visible = False FFMsgBox.bYes.Location = New System.Drawing.Point(70, FFMsgBox.bYes.Location.Y) FFMsgBox.bYes.Text = "OK" FFMsgBox.lForm.Text = "Legend" FFMsgBox.lMessage.Visible = False FFMsgBox.cVisible.Visible = True FFMsgBox.cAkhir.Visible = True FFMsgBox.cAkhir.Left = 84 FFMsgBox.cAkhir.Width = 108

Dim tblDesc As TableDesc

tblDesc = mMap.Layers.Item(CInt(sender.tag)).Records.TableDesc

FFMsgBox.cAkhir.Items.Clear() For i = 0 To (tblDesc.FieldCount - 1) FFMsgBox.cAkhir.Items.Add(tblDesc.FieldName(i).ToString) Next If dsLayer.Tables("layer").Rows(CInt(sender.tag))("Legend").ToString <> "" Then FFMsgBox.cAkhir.Text = dsLayer.Tables("layer").Rows(CInt(sender.tag))("Legend").ToString FFMsgBox.cVisible.Checked = True Else If FFMsgBox.cAkhir.Items.Count > 0 Then FFMsgBox.cAkhir.SelectedIndex = 0 End If

FFMsgBox.ShowDialog()

Dim lbrend As New LabelRenderer

mMap.Layers.Item(CInt(sender.tag)).renderer = lbrend

If vLbl = True Then

'lbrend.DrawBackground = False lbrend.Field = sLbl

mMap.Refresh() lLbl(CInt(sender.tag)).BackColor = Color.Gold lLbl(CInt(sender.tag)).ForeColor = Color.Black

dsLayer.Tables("layer").Rows(CInt(sender.tag))("Legend") = sLbl Else 'lbrend.DrawBackground = False lbrend.Field = ""

mMap.Refresh()

Page 137: APLIKASI PELACAK OBJEK TUGAS AKHIR

lLbl(CInt(sender.tag)).BackColor = Color.Black lLbl(CInt(sender.tag)).ForeColor = Color.Gold

dsLayer.Tables("layer").Rows(CInt(sender.tag))("Legend") = "" End If

dsLayer.WriteXml(Path.GetDirectoryName(Application.ExecutablePath) & "\layer.xml")

End Sub

Private Sub sMap_MouseUpEvent(ByVal sender As System.Object, ByVal e As AxMapObjects2._DMapEvents_MouseUpEvent) Handles sMap.MouseUpEvent Dim MapWidth As Double, MapHeight As Double Dim dragRect As Object MapWidth = mMAP.Extent.Width MapHeight = mMAP.Extent.Height

dragRect = mMAP.Extent dragRect.Left = sMap.Extent.Left + ((lLeft.Left - sMap.Left) / sMap.Width * sMap.Extent.Width) 'mMap.Extent.Left 'MsgBox(dragRect.Left.ToString) dragRect.Right = dragRect.Left + MapWidth

dragRect.Top = sMap.Extent.Bottom + (sMap.Extent.Height - ((lLeft.Top - sMap.Top) / sMap.Height * sMap.Extent.Height)) dragRect.Bottom = dragRect.Top - MapHeight

mMAP.Extent = dragRect

lLeft.Visible = False lRight.Visible = False lTop.Visible = False lBottom.Visible = False

End Sub

Private Sub GambarObjek(ByVal sQuery As String) 'Dim TL As New TrackingLayer Dim dt As New DataTable Dim JumlahTitik, i As Integer mMAP.TrackingLayer.ClearEvents() 'TL = mMAP.TrackingLayer dt = AksesDataBase.Query2Table(sQuery) JumlahTitik = dt.Rows.Count For i = 0 To JumlahTitik - 1 Titik.X = dt.Rows(i).Item("longitude") Titik.Y = dt.Rows(i).Item("latitude") KumpulanTitik.Add(Titik) Next Simbol = mMAP.TrackingLayer.Symbol(0) GarisPerjalanan.Parts.Add(KumpulanTitik) 'Simbol.Font.Name = "ESRI Transportation & Municipal" Simbol.Font.Name = "Times New Roman" Simbol.Font.Charset = 112 Simbol.CharacterIndex = 65

'Simbol.CharacterIndex = 70 'Simbol.CharacterIndex = 112 Simbol.Color = MapObjects2.ColorConstants.moRed Simbol.Size = 10 Kotak = GarisPerjalanan.Extent Kotak.ScaleRectangle(1.1)

mMAP.Extent = Kotak Dim fnt As New stdole.StdFont fnt.Name = "ESRI Transportation & Municipal" fnt.Size = 9

Simbol.Font = fnt Simbol.CharacterIndex = 112

Page 138: APLIKASI PELACAK OBJEK TUGAS AKHIR

tTunda.Enabled = True End Sub

Private Sub tTunda_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tTunda.Tick tTunda.Enabled = False mMAP.TrackingLayer.AddEvent(KumpulanTitik, 0) mMAP.TrackingLayer.AddEvent(GarisPerjalanan, 0) mMAP.FlashShape(GarisPerjalanan, 3)

End Sub

Private Sub tRuas_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tRuas.Click Dim sSQL As String sSQL = "SELECT * FROM Posisi WHERE USERID = '' ORDER BY Waktu" GambarObjek(sSQL)

End Sub

Public Class FormAnggota Private Sub LoadData() With Anggota.DataField txtUserID.Text = .userID txtNama.Text = .nama txtAlamat.Text = .alamat txtTelepon.Text = .telepon End With 'dgvData.DataSource = Anggota.DataAll

End Sub

Private Sub FormAnggota_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'lblJudul.Text = "Data Anggota" lblsubjudul.Text = "Silahkan Isi Data Anggota Secara Lengkap" dtpAkhir.Format = DateTimePickerFormat.Custom LoadData()

End Sub

Private Sub tsbCari_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) LoadData() End Sub

Public Sub settombol() Dim status As Integer With Anggota status = .Status btnTambah.Visible = (status = 0) btnSimpan.Visible = (status <> 0) btnHapus.Visible = (status = 0) btnBatal.Visible = (status <> 0) End With End Sub Private Sub edit(ByVal UserID As String) With Anggota .UserID = UserID .Edit() LoadData() settombol() End With TampilPosisi() End Sub Private Sub TampilPosisi() Dim dt As New DataTable Dim SyaratTanggalAkhir, SyaratTanggalAwal As String

SyaratTanggalAkhir = " CONVERT(datetime," & PetikTunggal(Format(dtpAkhir.Value, "yyyy-MM-dd HH:mm:ss")) & " , 102) "

Page 139: APLIKASI PELACAK OBJEK TUGAS AKHIR

SyaratTanggalAwal = " CONVERT(datetime," & PetikTunggal(Format(dtpAwal.Value, "yyyy-MM-dd HH:mm:ss")) & " , 102) " PosisiSQL = "SELECT * FROM Posisi WHERE UserID = " & PetikTunggal(Anggota.UserID) & " AND Waktu >= " & SyaratTanggalAwal & " AND Waktu <= " & SyaratTanggalAkhir & " ORDER BY Waktu" dt = AksesDataBase.Query2Table(PosisiSQL) dgvPosisi.DataSource = dt tsLabelJumlah.Text = "Ditemukan : " & dt.Rows.Count.ToString & " Posisi" End Sub Public Sub CariKode(ByVal UserID As String)

Dim sSQL As String sSQL = "SELECT UserID, Nama, Alamat, Telepon FROM Anggota WHERE UserID LIKE " & PetikTunggal("%" & cbUserID.Text & "%")

Anggota.sSQLAll = sSQL dgvData.DataSource = Anggota.DataAll End Sub Public Sub CariNama(ByVal Nama As String)

Dim sSQL As String sSQL = "SELECT UserID, Nama, Alamat, Telepon FROM Anggota WHERE Nama LIKE " & PetikTunggal("%" & cbUserID.Text & "%")

Anggota.sSQLAll = sSQL dgvData.DataSource = Anggota.DataAll End Sub Public Sub Cari()

Dim sSQL As String sSQL = "SELECT UserID, Nama, Alamat, Telepon FROM Anggota WHERE UserID LIKE " & PetikTunggal("%" & cbUserID.Text & "%") & " AND Nama LIKE " & PetikTunggal("%" & cbNama.Text & "%")

Anggota.sSQLAll = sSQL dgvData.DataSource = Anggota.DataAll End Sub Private Sub hapus() If MsgBox("User dengan UserID = " & txtUserID.Text & " akan dihapus", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then Anggota.UserID = txtUserID.Text Anggota.Delete() End If Cari() LoadData() settombol()

End Sub Private Sub batal() Anggota.Cancel() settombol() End Sub Private Sub tambah() Anggota.Add() settombol() End Sub Private Sub simpan() Dim kode As String kode = txtUserID.Text With Anggota.DataField .userID = txtUserID.Text .nama = txtNama.Text .alamat = txtAlamat.Text .telepon = txtTelepon.Text

End With Anggota.Post() Cari() settombol() End Sub

Page 140: APLIKASI PELACAK OBJEK TUGAS AKHIR

Private Sub btnBatal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) batal() End Sub

Private Sub FormAnggota_Shown(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Shown SplitContainer1.SplitterDistance = 265 Cari() settombol() End Sub Private Sub dgvData_CellDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvData.CellDoubleClick

UserID = Convert.ToString(dgvData.Rows(dgvData.SelectedRows(0).Index).Cells(0).Value) If UserID = "" Then Exit Sub End If edit(UserID)

End Sub

Private Sub FormAnggota_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Leave DialogResult = System.Windows.Forms.DialogResult.OK Me.Close() End Sub

Private Sub EditToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EditToolStripMenuItem.Click UserID = Convert.ToString(dgvData.Rows(dgvData.SelectedRows(0).Index).Cells(0).Value) If UserID = "" Then Exit Sub End If edit(UserID) End Sub

Private Sub HapusToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles HapusToolStripMenuItem.Click UserID = Convert.ToString(dgvData.Rows(dgvData.SelectedRows(0).Index).Cells(0).Value) If UserID = "" Then Exit Sub End If edit(UserID) hapus() End Sub

ublic Class FormSetting Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click Dim sPass As String sPass = Me.txtPassword.Text If sPass = "" Then sPass = "" End If

SQLServer.Server = txtServer.Text SQLServer.Password = txtPassword.Text SQLServer.Database = txtDatabase.Text SQLServer.UserName = txtNamaUser.Text SQLServer.SaveConnection()

Me.Close() End Sub

Private Sub formSettingKoneksi_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load With SQLServer .InitConnection()

Page 141: APLIKASI PELACAK OBJEK TUGAS AKHIR

txtDatabase.Text = .Database txtServer.Text = .Server txtNamaUser.Text = .UserName txtPassword.Text = .Password End With

End Sub

Public Class FormManajemenUser Private Sub btnBuatUserBaru_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBuatUserBaru.Click pnlDaftarUser.Visible = False pnlFormUser.Visible = True pnlSetPassword.Visible = False lblJudulFormUser.Text = "Buat User Baru" btnSetPassword.Text = BUTTON_TEXT_FOR_EMPTY_PASSWORD btnSimpanDataUser.Text = BUTTON_TEXT_FOR_NEW_RECORD txtUserID.ReadOnly = False

btnEditUser.Enabled = False btnHapus.Enabled = False txtUserID.Focus() Pengguna.Add() End Sub

Private Sub btnKeluar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnKeluar.Click Me.Dispose() End Sub

Private Sub btnSetPassword_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetPassword.Click If btnSetPassword.Text = BUTTON_TEXT_FOR_EMPTY_PASSWORD Then txtPassword3.Visible = False lblPassword3.Visible = False lblPassword1.Text = "Password:" lblPassword2.Text = "Konfirmasi Password:" ElseIf btnSetPassword.Text = BUTTON_TEXT_FOR_NON_EMPTY_PASSWORD Then txtPassword3.Visible = True lblPassword3.Visible = True txtPassword1.Text = "" txtPassword2.Text = "" txtPassword3.Text = "" lblPassword1.Text = "Password Lama:" lblPassword2.Text = "Password Baru:" lblPassword3.Text = "Konfirmasi Password:" End If

pnlDaftarUser.Visible = False pnlFormUser.Visible = False pnlSetPassword.Visible = True txtPassword1.Focus()

pnlSetPassword.Left = pnlDaftarUser.Left pnlSetPassword.Top = pnlDaftarUser.Top pnlSetPassword.Width = pnlDaftarUser.Width pnlSetPassword.Height = pnlDaftarUser.Height End Sub

Private Sub btnSimpanPassword_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click If btnSetPassword.Text = BUTTON_TEXT_FOR_NON_EMPTY_PASSWORD Then If txtPassword1.Text <> Pengguna.DataField.password Then MsgBox("Password lama anda tidak cocok", MsgBoxStyle.Information) txtPassword1.Focus() Exit Sub End If

If txtPassword2.Text <> txtPassword3.Text Then

Page 142: APLIKASI PELACAK OBJEK TUGAS AKHIR

MsgBox("Password Baru dan Konfirmasi Password harus sama", MsgBoxStyle.Information) txtPassword2.Focus() Exit Sub End If

Pengguna.DataField.password = txtPassword2.Text End If

If btnSetPassword.Text = BUTTON_TEXT_FOR_EMPTY_PASSWORD Then If txtPassword1.Text <> txtPassword2.Text Then MsgBox("Password Baru dan Konfirmasi Password harus sama", MsgBoxStyle.Information) txtPassword1.Focus() Exit Sub End If

Pengguna.DataField.password = txtPassword1.Text End If

pnlFormUser.Visible = True pnlSetPassword.Visible = False End Sub

Private Sub frmManajemenUser_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load With Me .Height = 632 .Width = 848

End With IsiDaftarHakAkses() RefreshDaftarPengguna()

pnlDaftarUser.Visible = True pnlFormUser.Visible = False pnlSetPassword.Visible = False pnlDaftarUser.Parent = pnlUtama pnlFormUser.Parent = pnlUtama pnlSetPassword.Parent = pnlUtama End Sub

Private Sub btnSimpanDataUser_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSimpanDataUser.Click If btnSimpanDataUser.Text = BUTTON_TEXT_FOR_NEW_RECORD Then SimpanDataUser() End If

If btnSimpanDataUser.Text = BUTTON_TEXT_FOR_UPDATE_RECORD Then With Pengguna.DataField .hak = cbHakAkses.SelectedIndex.ToString .nama = txtNamaUser.Text .telepon = txtTelepon.Text .alamat = txtAlamat.Text .userID = txtUserID.Text If btnSetPassword.Text = BUTTON_TEXT_FOR_EMPTY_PASSWORD Then .password = txtPassword1.Text Else .password = txtPassword2.Text End If End With Pengguna.Post() End If

RefreshDaftarPengguna() pnlFormUser.Visible = False pnlDaftarUser.Visible = True btnEditUser.Enabled = True btnHapus.Enabled = True End Sub

Page 143: APLIKASI PELACAK OBJEK TUGAS AKHIR

Private Sub btnBatalDataUser_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBatalDataUser.Click pnlFormUser.Visible = False pnlDaftarUser.Visible = True btnEditUser.Enabled = True btnHapus.Enabled = True End Sub

Private Sub btnBatalSetPassword_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click pnlFormUser.Visible = True pnlSetPassword.Visible = False End Sub

Private Function SimpanDataUser() As Integer

Pengguna.Add() With Pengguna.DataField .userID = txtUserID.Text .hak = cbHakAkses.SelectedIndex.ToString .nama = txtNamaUser.Text .password = txtPassword2.Text .telepon = txtTelepon.Text .alamat = txtAlamat.Text

End With

Pengguna.Post() RefreshDaftarPengguna()

End Function Private Sub IsiDaftarHakAkses() With cbHakAkses .Items.Clear() .Items.Add("Administrator") .Items.Add("Full User") .Items.Add("Guest") .SelectedIndex = 0 End With End Sub

Public Function RefreshDaftarPengguna() As Integer RefreshDaftarPengguna("SELECT * FROM Pengguna") End Function

Public Function RefreshDaftarPengguna(ByVal SQLQuery As String) As Integer Dim tblPengguna As New DataTable Dim i As Integer Dim T As ListViewItem

Try Pengguna.Nama = "" lvDaftarUser.BeginUpdate() lvDaftarUser.Items.Clear() With Pengguna.Data For i = 0 To .Rows.Count - 1 T = lvDaftarUser.Items.Add( _ .Rows(i).Item("UserID").ToString, _ CInt(.Rows(i).Item("Hak").ToString)) T.SubItems.Add(.Rows(i).Item("Nama").ToString) T.SubItems.Add(Pengguna.GetNamaHakAksesUser(CInt(.Rows(i).Item("Hak").ToString))) Next End With lvDaftarUser.EndUpdate() If lvDaftarUser.Items.Count <> 0 Then btnEditUser.Enabled = True

Page 144: APLIKASI PELACAK OBJEK TUGAS AKHIR

btnHapus.Enabled = True Else btnEditUser.Enabled = True btnHapus.Enabled = True End If lblInfo.Text = CStr(lvDaftarUser.Items.Count) & " items" Return 1 Catch e As Exception Return 0 End Try End Function

Private Sub btnEditUser_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEditUser.Click 'Dim sSQL As String Dim T As ListViewItem Dim tbl As New DataTable

If Pengguna.JumlahData <> 0 Then

With Pengguna.DataField Me.txtUserID.Text = .userID Me.txtNamaUser.Text = .nama Me.txtPassword1.Text = .password Me.txtPassword2.Text = .password Me.txtPassword3.Text = .password Me.txtTelepon.Text = .telepon Me.txtAlamat.Text = .alamat Me.cbHakAkses.SelectedIndex = .hak End With

If Pengguna.DataField.password = "" Then btnSetPassword.Text = BUTTON_TEXT_FOR_EMPTY_PASSWORD Else btnSetPassword.Text = BUTTON_TEXT_FOR_NON_EMPTY_PASSWORD End If

txtUserID.ReadOnly = True btnSimpanDataUser.Text = BUTTON_TEXT_FOR_UPDATE_RECORD lblJudulFormUser.Text = "Edit User " & Pengguna.DataField.nama pnlFormUser.Visible = True pnlDaftarUser.Visible = False End If Pengguna.Edit() End Sub

RefreshDaftarPengguna(sSQL) End Sub

Private Sub btnReset_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Pengguna.Nama = "" RefreshDaftarPengguna() End Sub

Private Sub lvDaftarUser_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lvDaftarUser.DoubleClick btnEditUser_Click(sender, e) End Sub

Private Sub btnHapus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHapus.Click Dim T As ListViewItem If lvDaftarUser.FocusedItem.Index = -1 Then Exit Sub T = lvDaftarUser.FocusedItem

If MsgBox("Anda yakin ingin menghapus user dengan ID = " & T.Text & " ?", MsgBoxStyle.YesNo + MsgBoxStyle.Question) = MsgBoxResult.Yes Then Pengguna.UserID = T.Text Pengguna.Delete() RefreshDaftarPengguna()

Page 145: APLIKASI PELACAK OBJEK TUGAS AKHIR

End If End Sub

End Class