You are on page 1of 145

SKRIPSI

APLIKASI SENSOR AKSELEROMETER UNTUK RANCANG


BANGUN SISTEM PERINGATAN DINI TANAH LONGSOR

APPLICATION OF ACCELEROMETER SENSOR FOR


PROTOTYPE OF LANDSLIDE EARLY WARNING SYSTEM

HALIM
06/197798/PA/11245

PROGRAM STUDI ELEKTRONIKA DAN INSTRUMENTASI


JURUSAN ILMU KOMPUTER DAN ELEKTRONIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS GADJAH MADA
YOGYAKARTA
2010
SKRIPSI

APLIKASI SENSOR AKSELEROMETER UNTUK RANCANG


BANGUN SISTEM PERINGATAN DINI TANAH LONGSOR

APPLICATION OF ACCELEROMETER SENSOR FOR


PROTOTYPE OF LANDSLIDE EARLY WARNING SYSTEM

Diajukan sebagai salah satu syarat untuk memperoleh gelar Sarjana Sains
Program Studi Elektronika dan Instrumentasi

HALIM
06/197798/PA/11245

PROGRAM STUDI ELEKTRONIKA DAN INSTRUMENTASI


JURUSAN ILMU KOMPUTER DAN ELEKTRONIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS GADJAH MADA
YOGYAKARTA
2010
i
ii
PERNYATAAN

Dengan ini saya menyatakan bahwa Skripsi ini tidak terdapat karya yang
pernah diajukan untuk memperoleh gelar Ahli Madya/kesarjanaan di suatu
Perguruan Tinggi, dan sepanjang pengetahuan saya juga tidak terdapat karya atau
pendapat yang pernah ditulis atau diterbitkan oleh orang lain, kecuali yang secara
tertulis diacu dalam naskah ini dan disebutkan dalam daftar pustaka

Yogyakarta, 18 Juni 2010

Halim

iii
All our dreams can come true,

if we have the courage to pursue them

iv
PRAKATA

Puji Syukur penulis panjatkan kehadirat Allah SWT yang telah


melimpahkan rahmat, hidayah, dan karunia-Nya sehingga penulis dapat
menyelesaikan skripsi yang berjudul “APLIKASI SENSOR AKSELEROMETER
UNTUK RANCANG BANGUN SISTEM PERINGATAN DINI TANAH
LONGSOR” dengan baik. Sholawat serta salam penulis haturkan kepada Nabi
Muhammad SAW.
Skripsi ini disusun sebagai salah satu syarat untuk memperoleh gelar
Sarjana S1 Program Studi Elektronika dan Instrumentasi, Fakultas Matematika
dan Ilmu Pengetahuan Alam, Universitas Gadjah Mada, Yogyakarta.
Penulis menyadari bahwa tanpa bimbingan, dukungan, serta doa dari
semua pihak, skripsi ini tidak akan terselesaikan tepat waktu. Untuk itu, dengan
segala hormat dan kerendahan hati, penulis sampaikan penghargaan dan terima
kasih yang sebesar-besarnya kepada:
1. Dr. Eng. Kuwat Triyana, M.Si. selaku pembimbing skripsi yang telah
meluangkan banyak waktu untuk membimbing, memberikan ide dan
pemikiran, serta saran dan masukan yang baik sehingga penulis dapat
menyelesaikan skripsi ini dengan baik.
2. Ibu dan ayah tercinta yang selalu memberikan dukungan yang luar biasa dan
doa yang tiada henti kepada penulis, kakak Daman Wiryawan yang selalu
menjadi inspirasi penulis dalam segala hal.
3. Danang Lelono, S.Si., M.T. dan Dr. Sri Hartati selaku dosen penguji ujian
skripsi penulis, yang telah memberikan banyak masukan.
4. Drs. Abdul Rouf, M.Kom. selaku dosen wali penulis yang telah memberikan
banyak bimbingan kepada penulis.
5. Drs. Agus Harjoko, M.Sc., Ph.D selaku ketua program studi Elektronika dan
Instrumentasi yang telah banyak membantu penulis.

v
6. Dosen-dosen penulis di program studi elektronika dan instrumentasi yang
tidak bisa disebutkan namanya satu persatu, yang telah menularkan banyak
ilmu dan bimbingan bagi penulis.
7. Fauzi Marjalih dan Wahyu Rahmaniar yang telah bersedia berbagi ilmu
dengan penulis.
8. Teman-teman Elins angkatan 2006 yang tidak bisa penulis sebutkan satu
persatu, terima kasih atas kebersamaannya selama ini.
9. Semua pihak yang selama ini telah mendukung dan menyemangati penulis
yang tidak dapat disebutkan satu persatu. Terima kasih, semoga Allah SWT
membalas kebaikan Anda semua.

Yogyakarta, 2010

Penulis

vi
DAFTAR ISI

Halaman

HALAMAN JUDUL........................................................................................ i
HALAMAN PENGESAHAN .......................................................................... ii
PERNYATAAN ............................................................................................... iii
MOTTO ........................................................................................................... iv
PRAKATA ....................................................................................................... v
DAFTAR ISI .................................................................................................... vii
DAFTAR GAMBAR ....................................................................................... ix
DAFTAR TABEL ............................................................................................ xi
INTISARI......................................................................................................... xii
ABSTRACT ..................................................................................................... xiii

BAB I PENDAHULUAN ................................................................................ 1


1.1. Latar Belakang ................................................................................ 1
1.2. Tujuan Penelitian ............................................................................. 2
1.3. Metodologi Penelitian ..................................................................... 3
1.4. Sistematika Penulisan ...................................................................... 3

BAB II TINJAUAN PUSTAKA...................................................................... 5

BAB III LANDASAN TEORI ......................................................................... 10


3.1. Tanah Longsor (Landslide).............................................................. 10
3.2. Pengukuran Tingkat Kemiringan dengan Akselerometer Termal ... 13
3.3. Komponen Utama Sistem yang Dikembangkan .............................. 15
3.3.1. Sensor MX2125 dual-axis accelerometer ............................. 15
3.3.2. LCD (Liquid Crystal Display) ............................................... 18
3.3.3. Mikrokontroler AVR ATMega32 .......................................... 20
3.3.4. Zigbee .................................................................................... 26
3.3.5. Xbee-PRO .............................................................................. 29
3.3.6. CDC-232................................................................................ 36
3.3.7. Visual Basic 6.0 (Berlisensi) ................................................. 37

BAB IV ANALISIS DAN RANCANGAN SISTEM ...................................... 40


4.1. Rancangan Sistem Secara Keseluruhan ........................................... 40
4.2. Rancangan Pemasangan Sistem ....................................................... 44

BAB V IMPLEMENTASI ............................................................................... 48


5.1. Pembuatan Hardware (Perangkat Keras) ........................................ 48
5.1.1. Hardware bagian transmitter ................................................ 48
5.1.2. Hardware bagian receiver ..................................................... 56
5.2. Pembuatan Software (Perangkat Lunak) ......................................... 57

vii
5.2.1. Software bagian transmitter .................................................. 58
5.2.2. Pengaturan bagian transmisi (Xbee-PRO) ............................. 69
5.2.3. Software bagian receiver ....................................................... 70

BAB VI HASIL PENELITIAN DAN PEMBAHASAN ................................. 81


6.1. Pengujian Sistem ............................................................................. 81
6.1.1. Pengujian output sensor MX2125 ......................................... 81
6.1.2. Pengujian sistem telemetri dan antarmuka ............................ 81
6.2. Hasil Penelitian ................................................................................ 83
6.2.1. Hasil bagian transmitter ......................................................... 83
6.2.2. Hasil secara keseluruhan......................................................... 86

BAB VII KESIMPULAN ................................................................................ 93


5.1. Kesimpulan ...................................................................................... 93
5.2. Saran ................................................................................................ 93

DAFTAR PUSTAKA ...................................................................................... 94

LAMPIRAN ..................................................................................................... 97
L.1. Listing Program Mikrokontroler ..................................................... 97
L.2. Listing Program Visual Basic ......................................................... 107
L.3. Datasheet Mikrokontroler ATMega3 .............................................. 113
L.4. Datasheet Sensor MX2125 .............................................................. 118
L.5. Datasheet Xbee-PRO....................................................................... 124

viii
DAFTAR GAMBAR

Halaman

Gambar 2.1 Sistem peringatan dini tanah longsor berbasis sensor


(Arnhardt dkk., 2004) ................................................................. 7
Gambar 2.2 Contoh aplikasi displacement tranducer
(Arnhardt dkk., 2004) ................................................................. 8
Gambar 2.3 Skema pemasangan extensometer (Anonim, 2010c) .................. 8
Gambar 2.4 Extensometer manual yang terpasang di daerah rawan
longsor (Anonim, 2010c) .......................................................... 9
Gambar 3.1 Longsoran translasi (Anonim, 2008a) ....................................... 11
Gambar 3.2 Longsoran rotasi (Anonim, 2008a) ............................................ 11
Gambar 3.3 Pergerakan blok (Anonim, 2008a) ............................................. 11
Gambar 3.4 Runtuhan batuan (Anonim, 2008a) ............................................ 12
Gambar 3.5 Rayapan tanah (Anonim, 2008a) ............................................... 12
Gambar 3.6 Aliran bahan rombakan (Anonim, 2008a) ................................. 13
Gambar 3.7 Akselerometer pada bidang miring (Dao,2005) ........................ 14
Gambar 3.8 Percepatan vs sudut kemiringan (Dao,2005).............................. 14
Gambar 3.9 Sensor MX2125 (Anonim, 2009c).............................................. 15
Gambar 3.10 Konfigurasi pin-pin MX2125 (Anonim, 2009c) ......................... 16
Gambar 3.11 Blok diagram MX2125 (Anonim, 2002) .................................... 16
Gambar 3.12 Ruang gas pada MX2125 (Anonim, 2009c)) ............................. 17
Gambar 3.13 Pulsa MX2125 (Anonim, 2009c) ................................................ 17
Gambar 3.14 LCD (Liquid Crystal Display) ................................................... 18
Gambar 3.15 Blok diagram AVR ATMega32 (Anonim, 2009a) ..................... 21
Gambar 3.16 Pin-pin ATMega32 (Anonim, 2009a) ......................................... 22
Gambar 3.17 Model topologi jaringan Zigbee (Ergen, 2004) .......................... 27
Gambar 3.18 Modul Xbee-PRO (Anonim, 2008b)........................................... 29
Gambar 3.19 Diagram sistem aliran data pada XBee (Anonim, 2008b) .......... 31
Gambar 3.20 Contoh format pengiriman data (Anonim, 2008b) ..................... 31
Gambar 3.21 Diagram data flow internal (Anonim, 2008b) ............................ 32
Gambar 3.22 Software X-CTU ........................................................................ 34
Gambar 3.23 COM port virtual melalui USB (Tamura, 2010) ........................ 36
Gambar 3.24 Contoh rangkaian CDC-232 menggunakan AVR
ATmega8 (Tamura, 2010) ........................................................ 37
Gambar 4.1 Blok diagram rangcang bangun sistem peringatan dini
tanah longsor ............................................................................ 40
Gambar 4.2 Diagram alir utama pada bagian transmitter .............................. 42
Gambar 4.3 Diagram alir penghitungan sudut x dan y .................................. 42
Gambar 4.4 Diagram alir range sudut............................................................ 43
Gambar 4.5 Diagram alir proses penerimaan data pada komputer ................ 44
Gambar 4.6 Ilustrasi pemasangan sistem ....................................................... 45
Gambar 5.1 Rangkaian bagian transmitter .................................................... 49
Gambar 5.2 Rangkaian power supply ............................................................ 50

ix
Gambar 5.3 Sistem minimum mikrokontroler AVR ATMega32 .................. 50
Gambar 5.4 Rangkaian crystal ....................................................................... 51
Gambar 5.5 Rangkaian reset .......................................................................... 51
Gambar 5.6 Sensor MX2125.......................................................................... 53
Gambar 5.7 Rangkaian penampil LCD .......................................................... 54
Gambar 5.8 Rangkaian keypad empat tombol ............................................... 55
Gambar 5.9 Rangkaian buzzer ....................................................................... 55
Gambar 5.10 Rangkaian Xbee-PRO ................................................................ 56
Gambar 5.11 Hardware bagian receiver .......................................................... 57
Gambar 5.12 Tampilan software X-CTU......................................................... 69
Gambar 5.13 Tampilan form1 .......................................................................... 71
Gambar 6.1 Bentuk gelombang output sensor MX2125................................ 81
Gambar 6.2 Hasil pengujian telemetri pada hyperterminal ........................... 82
Gambar 6.3 Hasil pembacaan sensor ............................................................. 83
Gambar 6.4 Mekanisme pengujian bagian transmitter .................................. 83
Gambar 6.5 Grafik nilai sudut aktual vs pembacaan sensor .......................... 85
Gambar 6.6 Konfigurasi tombol .................................................................... 86
Gambar 6.7 Tampilan range sudut................................................................. 86
Gambar 6.8 Bentuk fisik bagian transmitter .................................................. 87
Gambar 6.9 Bentuk fisik bagian receiver ...................................................... 87
Gambar 6.10 Tampilan form program antarmuka............................................ 88
Gambar 6.11 Messagebox ketika terjadi kesalahan port .................................. 88
Gambar 6.12 Tampilan form pada saat perekaman data .................................. 89
Gambar 6.13 Koneksi terputus......................................................................... 90
Gambar 6.14 Konfirmasi untuk menyimpan data tabel ................................... 90
Gambar 6.15 Tampilan data pada Microsoft Excel ......................................... 91
Gambar 6.16 Messagebox konfirmasi untuk menghapus data ......................... 91
Gambar 6.17 Messagebox konfirmasi untuk mencetak grafik ......................... 92

x
DAFTAR TABEL

Halaman

Tabel 2.1 Tingkat efektifitas beberapa sensor (Walter dkk., 2008) ............... 6
Tabel 3.1 Konstanta sensor (Dao, 2005) ........................................................ 15
Tabel 3.2 Penjelasan pin-pin MX2125 (Anonim, 2009c)............................... 16
Tabel 3.3 Penjelasan pin-pin LCD (Anonim, 2009b) ..................................... 19
Tabel 3.4 Fungsi khusus port A (Anonim, 2009a) ......................................... 23
Tabel 3.5 Fungsi khusus port B (Anonim, 2009a) ......................................... 24
Tabel 3.6 Fungsi khusus port C (Anonim, 2009a) ......................................... 24
Tabel 3.7 Fungsi khusus port D (Anonim, 2009a) ......................................... 25
Tabel 3.8 Bluetooth vs Zigbee (Widiasrini,2005) .......................................... 26
Tabel 3.9 Konfigurasi pin Xbee-PRO (Anonim, 2008b) ................................ 29
Tabel 3.10 Spesifikasi Xbee vs Xbee-PRO (Anonim, 2008b) ......................... 36
Tabel 5.1 Nilai range A(g) ............................................................................. 62
Tabel 6.1 Hasil pembacaan sensor MX2125.................................................. 84

xi
INTISARI

Aplikasi Sensor Akselerometer untuk Rancang Bangun Sistem


Peringatan Dini Tanah Longsor

Oleh

HALIM
06/197798/PA/11245

Banyaknya kerugian harta benda dan korban jiwa yang ditimbulkan oleh
tanah longsor telah menginspirasi penulis untuk membuat suatu rancang bangun
sistem peringatan dini (early warning system) untuk meningkatkan kewaspadaan
warga masyarakat yang tinggal dilokasi rawan longsor terhadap bahaya yang
datangnya secara tiba-tiba sehingga segala kerugian terutama korban jiwa dapat
diminimalisir.
Rancang bangun sistem ini terdiri dari dua bagian, yaitu bagian transmitter
(pemancar) dan bagian receiver (penerima). Bagian transmitter diletakkan di
lokasi yang akan dipantau tingkat kemiringannya dan berfungsi sebagai pembaca
pergerakan permukaan tanah. Pada bagian ini terdapat sensor akselerometer
(MX2125) sebagai pengukur sudut untuk memantau pergerakan permukaan tanah
dan memberikan peringatan berupa suara alarm berdasarkan perkembangan
pergerakan tanah yang dipantau tersebut. Sensitivitas sistem peringatan dini ini
bisa diatur sesuai dengan kebutuhan di lapangan dengan cara memasukkan range
sudut (berupa batas minimal dan batas maksimal) kemiringan posisi transmitter.
Alarm akan berbunyi ketika permukaan tanah mengalami pergerakan yang
menyebabkan posisi kemiringan sistem berubah sampai diluar range sudut
tersebut. Data kemiringan transmitter kemudian dikirim ke bagian receiver secara
wireless melalui protokol Zigbee. Dari receiver, data tersebut dikirim ke komputer
melalui port serial dan ditampilkan dalam bentuk tabel dan grafik sehingga
pemantauan terhadap pergerakan tanah dapat dilakukan setiap saat. Software
Visual Basic 6 digunakan sebagai tampilan antarmuka untuk memantau
pergerakan tanah.

Kata kunci : tanah longsor, early warning system, akselerometer, transmitter,


receiver, Zigbee, antarmuka

xii
ABSTRACT

Application of Accelerometer Sensor for Prototype of Landslide


Early Warning System

By

HALIM
06/197798/PA/11245

Number of property loss and casualties caused by landslides have inspired


writer to create a prototype of landslide early warning system. It is expected to
increase the awareness of people who live in landslide prone area that come
unexpectedly, hence all the loses, especially losses of life can be minimized.
This system consist of two parts, those are transmitter and receiver.
Transmitter is placed in location that degree of slope will be monitored and
functioned as the reader of the soil movement. Accelerometer (MX2125) measure
the angle for monitoring soil movement. Transmitter will give warning sound
based on soil movement. The sensitivity of this early warning system can be
adjusted accordance with the requirements by entering range (minimum and
maximum range) transmitter slope. Alarm will sound when land surface move that
cause the position of early warning system change up beyond the range. Then,
transmitter slope data is sent wirelessly to the receiver via Zigbee protocol. From
the receiver, the data is sent to PC through serial port and then is displayed in
form of table and graph so that the monitoring of soil movement can be done at
any time. Visual Basic 6 is used as the interface software to monitor soil
movement.

Keywords : landslide, early warning system, accelerometer, transmitter, receiver,


Zigbee, interface.

xiii
BAB I
PENDAHULUAN

1.1. Latar Belakang


Tanah longsor adalah perpindahan material pembentuk lereng berupa
batuan, bahan rombakan, tanah, atau material campuran tersebut, bergerak ke
bawah atau keluar lereng (Anonim, 2008a). Proses terjadinya tanah longsor dapat
diterangkan sebagai berikut: air yang meresap ke dalam tanah akan menambah
bobot tanah. Jika air tersebut menembus sampai tanah kedap air yang berperan
sebagai bidang gelincir, maka tanah menjadi licin dan tanah pelapukan di atasnya
akan bergerak mengikuti lereng dan keluar lereng.
Tanah longsor merupakan salah satu bencana alam yang paling sering
melanda Indonesia dengan tingkat kerugian yang cukup besar. Departemen
Kesehatan Indonesia melalui website-nya (Anonim, 2010a) mencatat terhitung
tanggal 1 Januari 2006 hingga 27 Februari 2010 telah terjadi bencana tanah
longsor tidak kurang dari 170 kasus yang tersebar hampir disemua pulau besar
dan padat penduduk dengan korban jiwa mencapai puluhan orang dan korban
mengungsi mencapai ribuan orang.
Ironisnya, selama ini sistem peringatan dini untuk tanah longsor di
Indonesia masih sangat minim. Dari ribuan lokasi rawan longsor, hanya beberapa
lokasi saja yang sudah dilengkapi dengan sistem peringatan dini ini. Untuk itu,
sistem peringatan dini tanah longsor dengan biaya murah dan instalasi yang
mudah menjadi pilihan yang bijak dan cukup mendesak untuk segera
diaplikasikan. Dengan sistem peringatan dini ini diharapkan masyarakat yang
berada di lokasi rawan longsor akan lebih waspada terhadap kemungkinan bahaya
yang datangnya tiba-tiba sehingga kerugian terutama korban jiwa bisa
diminimalisir.
Saat ini, tim dari Fakultas Teknik UGM bekerjasama dengan Kementerian
Percepatan Pembangunan Daerah Tertinggal (KPDT) telah melakukan
pemasangan peralatan sistem peringatan dini dan sosialisasi mengenai bahaya
bencana longsor serta penanggulannya di 2 lokasi yaitu di Desa Kalitlaga,

1
2

Kecamatan Pagentan, Kabupaten Banjarnegara, dan di Dusun Lucu, RT Palongan,


Desa Campoan, Kecamatan Mlandingan, Kabupaten Situbondo (Anonim, 2010c).
Di kedua lokasi tersebut masing-masing di pasang 5 unit extensometer dan 1 unit
rain gauge. Extensometer berfungsi sebagai alat pendeteksi dan pengukur adanya
pergerakan ataupun pergeseran permukaan tanah, sedangkan rain gauge
digunakan untuk mencatat intensitas curah hujan dalam kurun waktu tertentu.
Alarm akan memberikan suara peringatan berupa suara ketika keadaan bahaya
terjadi.
Salah satu kelebihan sistem ini adalah terintegrasinya rain gauge dengan
extensometer sehingga salah satu faktor penyebab longsor (hujan) dan efeknya
(pergerakan tanah) keduanya dapat dipantau. Akan tetapi, sistem ini tidak
dilengkapi dengan sistem telemetri secara wireless sehingga pencatatan terhadap
data yang diperoleh dari extensometer dan rain gauge masih dilakukan melalui
kertas di lokasi pemasangan. Untuk itu, perlu dibuat suatu sistem peringatan dini
yang dilengkapi kemampuan mengirim dan menyimpan data-data kondisi dan
pergerakan tanah ke tempat lain secara wireless untuk memudahkan pengamatan
dan pemantauan.

1.2. Tujuan Penelitian


Secara umum, penelitian ini dilakukan dengan tujuan untuk
mengaplikasikan sensor akselerometer guna membuat rancang bangun pemantau
pergerakan permukaan tanah pada lereng yang labil dan memberikan peringatan
dini bahaya longsor. Lebih lanjut, tujuan khusus dari penelitian ini dapat diuraikan
sebagai berikut:
a. Melakukan kalibrasi sensor akselerometer.
b. Merancang dan membuat sistem akuisisi data sensor akselerometer.
c. Merancang dan membuat sistem telemetri berbasis Zigbee
d. Melakukan simulasi sistem peringatan dini di laboratorium
3

1.3. Metodologi Penelitian


Metode penelitian yang digunakan dalam penelitian tugas akhir ini adalah
sebagai berikut :
1. Menentukan tujuan pembuatan sistem.
2. Melakukan kajian dan pembelajaran lebih lanjut tentang sistem yang dibahas
pada penelitian ini dengan melakukan studi literatur, yaitu mempelajari
artikel, makalah, jurnal, karya tulis, serta buku-buku yang terkait dengan
topik yang dibahas, untuk kemudian dijadikan sebagai acuan dan referensi
dalam merancang dan membuat penelitian ini.
3. Melakukan perancangan dan pembuatan sistem yang terdiri dari:
 Hardware (perangkat keras)
Meliputi pembuatan desain rangkaian skematik dan PCB.
 Software (perangkat lunak)
Meliputi pembuatan program untuk mikrokontroler AVR ATMega32
dengan menggunakan bahasa Basic dan tampilan antarmuka sebagai
penerima dan penyimpan akuisisi data menggunakan software Visual
Basic 6.
4. Melakukan pengujian terhadap sistem yang telah dibuat untuk memastikan
bahwa sistem yang telah dibuat bisa berfungsi sesuai dengan yang
diharapkan.
5. Menarik kesimpulan dari perilaku sistem yang telah dibuat.
6. Membuat skripsi.

1.4. Sistematika Penulisan


Secara garis besar, skripsi ini dibagi menjadi 7 bab, yaitu:
BAB I PENDAHULUAN
Menguraikan latar belakang, tujuan penelitian, metodologi penelitian, dan
sistematika penulisan.
BAB II TINJAUAN PUSTAKA
Menguraikan informasi hasil penelitian sebelumnya yang mendasari
penelitian ini.
4

BAB III LANDASAN TEORI


Menguraikan beberapa teori yang menunjang terhadap sistem yang dibuat,
diantaranya sensor MX2125 sebagai sebagai sensor pendeteksi pergerakan
tanah, LCD untuk menampilkan data sudut sistem, mikrokontroler AVR
ATMega32 sebagai pengendali utama, Zigbee sebagai protokol pengiriman
data secara wireless, Xbee-PRO sebagai modul tranceiver yang bekerja pada
protokol Zigbee, dan Visual Basic 6.0 untuk menampilkan data sudut pada
komputer.
BAB IV ANALISIS DAN RANCANGAN SISTEM
Menguraikan analisis dan perancangan sistem yang terdiri atas perancangan
sistem secara keseluruhan dan rancangan pemasangan sistem.
BAB V IMPLEMENTASI
Menguraikan implementasi sistem secara detail sesuai dengan rancangan
berdasarkan komponen dan bahasa pemrograman yang dipakai. Bagian ini
meliputi pembuatan hardware dan software bagian transmitter dan bagian
receiver.
BAB VI HASIL PENELITIAN DAN PEMBAHASAN
Menguraikan hasil penelitian dan membahas sistem secara keseluruhan, yang
meliputi sensor akselerometer, sistem transmisi pengiriman data, antarmuka,
dan pengujian seluruh sistem.
BAB VII KESIMPULAN
Meenguraikan kesimpulan atas hasil yang diperoleh, dan memberikan saran
untuk pengembangan sistem lebih lanjut.
BAB II
TINJAUAN PUSTAKA

Saat ini telah dikembangkan beberapa metode sistem peringatan dini tanah
longsor (Landslide Early Warning System), misalnya dengan menggunakan
extensometer untuk memantau kecepatan gerakan tanah, rain gauge untuk
mengukur curah hujan, piezometer untuk memantau tinggi permukaan tanah,
inclinometer untuk memantau arah garakan tanah, dan lain-lain. Salah satu cara
yang dinilai cukup efektif untuk mengembangkan sistem deteksi dini longsor
adalah dengan memantau dan mengukur pergeseran permukaan tanah melalui
sensor akselerometer yang ditempatkan pada beberapa titik di permukaan lereng
yang bergerak.
Walter dkk. (2008) dari Rostock University, Jerman, menggabungkan
beberapa sensor dalam satu sistem jaringan sensor (sensor network) yang disebut
Geosensor Web Enablement sebagai sistem peringatan dini tanah longsor. Sensor
yang tergabung dalam sensor network ini diantaranya akselerometer,
inclinometer, dan displacement tranducer (extensometer). Mereka menggunakan
Geosensor Network (GSN) sebagai media transmisi pengiriman data secara
wireless dari lokasi yang dimonitor ke lokasi pemantauan. Tabel 2.1 menunjukkan
tingkat efektifitas penggunaan beberapa sensor yang digunakan dalam sistem
peringatan dini tanah longsor (Walter dkk., 2008).

5
6

Tabel 2.1 Tingkat efektifitas beberapa sensor (Walter dkk., 2008)

Rotational
and Lateral
Sensors Falling Topple
Translation Spread
Slide
Suitable to
Good – very Good – very only limited
Accelerometer Very good
good good extent –
good
Suitable to Suitable to
Inclinometer only limited Very good Good only limited
extent extent
Displacement
Very good Very good Good Very good
Tranducer
Suitable to
Accoustic
Good Good Good only limited
sensors
extent
Suitable to
Altimeter Very good Good Good only limited
extent
Suitable to Suitable to Suitable to
Temperature
only limited only limited Good only limited
sensor
extent extent extent
Suitable to Suitable to
Humidity Good Good
only limited only limited
sensor
extent extent
Pore water Suitable to Suitable to
pressure only limited only limited Good Good
sensor extent extent
Suitable to Suitable to Suitable to
Geophysical
only limited only limited Good only limited
sensor
extent – good extent – good extent
GPS Good Good Very good Very good
Suitable to
UWB only limited Good Very good Very good
extent
7

Keterangan :
- Falling : jatuhan.
- Topple : ambrukan.
- Rotational and translational slide : longsoran translasi dan rotasi.
- Lateral spread : Penyebaran secara lateral (gerak horizontal).

Dalam penelitian yang berjudul “Sensor based Landslide Early Warning


System – SLEWS Development of a geoservice infrastructure as basis for early
warning systems for landslides by integration of real-time sensors”, Arnhardt
dkk. (2004) membangun sistem peringatan dini untuk tanah longsor dengan
memanfaatkan extensometer, acoustic-emission sensor, dan tiltmeter dengan GPS
(Global Positioning System) sebagai media transmisi data untuk mendeteksi dan
memantau pergerakan tanah. Gambar 2.1 menunjukkan skema sistem peringatan
dini tanah longsor berbasis sensor yang dikembangkan oleh Arnhardt dkk.

Gambar 2.1 Sistem peringatan dini tanah longsor berbasis sensor


(Arnhardt dkk., 2004)

Gambar 2.2 memperlihatkan contoh aplikasi displacement tranducer yang


digunakan oleh Arnhardt dkk. untuk membangun sistem peringatan dini tanah
longsor.
8

Gambar 2.2 Contoh aplikasi displacement tranducer


(Arnhardt dkk., 2004)

Di Indonesia sendiri, sistem peringatan dini tanah longsor telah


dikembangkan oleh tim dari Fakultas Teknik UGM bekerjasama dengan
Kementerian Percepatan Pembangunan Daerah Tertinggal (KPDT). Sistem ini
diaplikasikan di dua lokasi yaitu di Desa Kalitlaga, Kecamatan Pagentan,
Kabupaten Banjarnegara, dan di Dusun Lucu, RT Palongan, Desa Campoan,
Kecamatan Mlandingan, Kabupaten Situbondo (Anonim, 2010c). Di kedua lokasi
tersebut masing-masing di pasang 5 unit extensometer dan 1 unit rain gauge.
Extensometer berfungsi sebagai alat pendeteksi dan pengukur adanya pergerakan
ataupun pergeseran permukaan tanah, sedangkan rain gauge digunakan untuk
mencatat intensitas curah hujan dalam kurun waktu tertentu. Alarm akan
memberikan suara peringatan melalui alarm ketika keadaan bahaya terjadi.

Gambar 2.3 Skema pemasangan extensometer (Anonim, 2010c)


9

Gambar 2.4 Extensometer manual yang terpasang di daerah rawan longsor


(Anonim, 2010c)

Sistem peringatan dini yang dikembangkan oleh Fakultas Teknik UGM ini
belum dilengkapi dengan sistem telemetri secara wireless sehingga pencatatan
terhadap data yang diperoleh dari extensometer dan rain gauge hanya dilakukan
melalui kertas di lokasi pemasangan.
BAB III
LANDASAN TEORI

3.1. Tanah Longsor (Landslide)


Gerakan tanah adalah suatu konsekuensi fenomena dinamis alam untuk
mencapai kondisi baru akibat gangguan keseimbangan lereng yang terjadi, baik
secara alamiah maupun akibat ulah manusia. Gerakan tanah akan terjadi pada
suatu lereng, jika ada keadaan ketidakseimbangan yang menyebabkan terjadinya
suatu proses mekanis, mengakibatkan sebagian dari lereng tersebut bergerak
mengikuti gaya gravitasi, dan selanjutnya setelah terjadi longsor, lereng akan
seimbang atau stabil kembali. Jadi longsor merupakan pergerakan massa tanah
atau batuan menuruni lereng mengikuti gaya gravitasi akibat terganggunya
kestabilan lereng.
Daerah perbukitan atau pegunungan yang membentuk lahan miring
merupakan daerah rawan terjadi gerakan tanah. Kelerengan dengan kemiringan
lebih dari 20o memiliki potensi untuk bergerak atau longsor, namun tidak selalu
lereng atau lahan yang miring punya potensi untuk longsor tergantung dari
kondisi geologi yang bekerja pada lereng tersebut (Khadiyanto, 2010).
Pada prinsipnya tanah longsor terjadi bila gaya pendorong pada lereng
lebih besar daripada gaya penahan. Gaya penahan umumnya dipengaruhi oleh
kekuatan batuan dan kepadatan tanah. Sedangkan gaya pendorong dipengaruhi
oleh besarnya sudut lereng, air, beban serta berat jenis tanah batuan. Faktor-faktor
penyebab tanah longsor antara lain : hujan, lereng terjal, tanah yang kurang padat
dan tebal, batuan yang kurang kuat, jenis tata lahan, getaran, susut muka air danau
atau bendungan, adanya beban tambahan, pengikisan/erosi, adanya material
timbunan pada tebing, bekas longsoran lama, adanya bidang diskontinuitas
(bidang tidak sinambung), penggundulan hutan, daerah pembuangan sampah
(Anonim, 2008a).

10
11

Ada 6 jenis longsoran (Anonim, 2008a), yaitu:


1. Longsoran Translasi
Longsoran translasi adalah ber-geraknya massa tanah dan batuan pada bidang
gelincir berbentuk rata atau menggelombang landai.

Gambar 3.1 Longsoran translasi (Anonim, 2008a)

2. Longsoran Rotasi
Longsoran rotasi adalah bergerak-nya massa tanah dan batuan pada bidang
gelincir berbentuk cekung.

Gambar 3.2 Longsoran rotasi (Anonim, 2008a)

3. Pergerakan Blok
Pergerakan blok adalah perpindahan batuan yang bergerak pada bidang
gelincir berbentuk rata. Longsoran ini disebut juga longsoran translasi blok
batu.

Gambar 3.3 Pergerakan blok (Anonim, 2008a)


12

4. Runtuhan Batuan
Runtuhan batu terjadi ketika sejumlah besar batuan atau material lain
bergerak ke bawah dengan cara jatuh bebas. Umumnya terjadi pada lereng
yang terjal hingga menggantung terutama di daerah pantai. Batu-batu besar
yang jatuh dapat menyebabkan kerusakan yang parah.

Gambar 3.4 Runtuhan batuan (Anonim, 2008a)

5. Rayapan Tanah
Rayapan tanah adalah jenis tanah longsor yang bergerak lambat. Jenis
tanahnya berupa butiran kasar dan halus. Jenis tanah longsor ini hampir tidak
dapat dikenali. Setelah waktu yang cukup lama longsor jenis rayapan ini bisa
menyebabkan tiang-tiang telepon, pohon, atau rumah miring ke bawah.

Gambar 3.5 Rayapan tanah (Anonim, 2008a)

6. Aliran Bahan Rombakan


Jenis tanah longsor ini terjadi ketika massa tanah bergerak didorong oleh air.
Kecepatan aliran tergantung pada kemiringan lereng, volume dan tekanan air,
dan jenis materialnya. Gerakannya terjadi di sepanjang lembah dan mampu
mencapai ratusan meter jauhnya. Di beberapa tempat bisa sampai ribuan
meter seperti di daerah aliran sungai disekitar gunungapi. Aliran tanah ini
dapat menelan korban cukup banyak.
13

Gambar 3.6 Aliran bahan rombakan (Anonim, 2008a)

Jenis longsoran translasi dan rotasi paling banyak terjadi di Indonesia.


Sedangkan longsoran yang paling banyak memakan korban jiwa manusia adalah
aliran bahan rombakan (Anonim, 2008a).

3.2. Pengukuran Tingkat Kemiringan dengan Akselerometer Termal


Pengukuran tingkat kemiringan merupakan salah satu aplikasi sensor
akselerometer disamping aplikasi lainnya seperti pengukuran percepatan benda,
getaran (vibrasi), dan pendeteksian gerak benda. Tingkat kemiringan dapat diukur
dengan membandingkan nilai percepatan benda pada posisi miring dengan posisi
vertikal yang disebut sinus (Dao,2005). Untuk mengukur kemiringan, perlu
dilakukan kalkulasi lebih lanjut karena output akselerometer secara sederhana
merepresentasikan percepatan gravitasi yang bekerja pada sensing axis.

Gambar 3.7 Akselerometer pada bidang miring (Dao,2005)


14

Dari Gambar 3.7, arah dan percepatan akselerometer pada bidang miring
di atas dapat dirumuskan persamaan berikut :

𝑎𝑥 = 1𝑔. sin 𝜃 (3.1)


𝑎
sin 𝜃 = 1𝑔𝑥 (3.2)
𝑎
𝜃 = 𝑎𝑟𝑐𝑠𝑖𝑛 1𝑔𝑥 (3.3)

Keterangan :
𝑎𝑥 = Percepatan akselerometer pada bidang miring (m/s2)
𝑔 = Percepatan gravitasi bumi sebesar 9,8 m/s2
𝜃 = Sudut bidang miring

Gambar 3.8 menampilkan gambar hubungan fungsi sinus persamaan (3.1).

ax (g)

Sudut θ (°)

Gambar 3.8 Percepatan vs sudut kemiringan (Dao,2005)

Grafik gambar 3.8 memperlihatkan bahwa sudut yang lebih besar dari 60°,
menghasilkan perubahan yang sangat kecil pada output akselerometer.
Karakteristik fungsi sinus tersebut menjelaskan mengapa akurasi pengukuran
sudut tidak memungkinkan untuk sudut yang mendekati 90° dari posisi horizontal.
Dari grafik gambar 3.8 dapat dilihat juga bahwa untuk sudut kemiringan
yang kecil, fungsi sinus sangat mendekati fungsui linear.

𝜃 = 𝑘. 𝑎𝑥 (3.4)
15

Dalam beberapa aplikasi, sebuah pendekatan fungsi linear dapat


memenuhi permintaan akurasi. Tabel 3.1 memperlihatkan error akurasi yang
dihasilkan oleh penggunaan pendekatan linear untuk range kemiringan yang
berbeda.
Tabel 3.1 Konstanta sensor (Dao, 2005)
Inclination Range Maximum Error
K (°arc/g)
(°arc) (°arc)
± 10 57.50 ± 0.02
± 20 58.16 ± 0.16
± 30 59.04 ± 0.48
± 40 60.47 ± 1.13
± 50 62.35 ± 2.24

3.3. Komponen Utama Sistem yang Dikembangkan


3.3.1. Sensor MX2125 dual-axis accelerometer
MX2125 adalah sensor buatan Parallax. Inc yang dapat mendeteksi
akselerasi. MX2125 mendeteksi akselerasi pada dua axis, yaitu X dan Y. MX2125
memiliki karakteristik sebagai berikut:
 Keluaran berupa pulsa digital dengan frekuensi sebesar 100 Hz.
 MX2125 dapat bekerja dengan baik pada temperature 0°C hingga 70°C.
 Memiliki range keluaran sebesar ±2g dan T2 sebesar 10 ms.
 Power supply sebesar 3 hingga 5,25 VDC.
 Konsumsi arus sebesar 100µA.

Gambar 3.9 Sensor MX2125 (Anonim, 2009c)


16

Konfigurasi pin-pin pada MX2125


Gambar 3.10 dan 3.11 menjelaskan konfigurasi pin-pin dan blok diagram
MX2125.

Gambar 3.10 Konfigurasi pin-pin MX2125 (Anonim, 2009c)

Gambar 3.11 Blok diagram MX2125 (Anonim, 2002)

Berikut adalah penjelasan masing-masing pin dari MX2125.

Tabel 3.2 Penjelasan pin-pin MX2125 (Anonim, 2009c)

Pin Nama Fungsi


1 Tout Output temperatur
2 Yout Output PWM Y-axis
3 GND Ground
4 GND Ground
5 Xout Output PWM X-axis
6 CDD Tegangan input : +3.3 sampai +5 VDC
17

Cara kerja MX2125


Pada MX2125 terdapat gelembung gas dengan elemen pemanas pada
bagian tengah dan 4 sensor suhu pada tiap tepinya. Pada saat sensor diaktifkan,
elemen pemanas mulai bekerja dan memanaskan gelembung gas yang berada di
dalam inti sensor. Seperti udara, gelembung jika dipanaskan akan naik keatas dan
pada saat keadaan dingin akan bergerak kebawah. Ini juga berlaku pada gas yang
berada dalam MX2125, dimana gas akan naik jika dipanaskan dan turun jika
didinginkan. Setiap ada perubahan akselerasi atau posisi sensor, gelembung gas di
dalam sensor juga ikut bergerak. Keempat sensor suhu yang tertanam pada
MX2125 akan mendeteksi dan mengkonversi setiap perubahan suhu menjadi
pulsa digital yang keluar dari pin Doutx dan Douty.

Gambar 3.12 Ruang gas pada MX2125 (Anonim, 2009c)

Format pengoperasian MX2125


MX2125 memilki dua duty cycle PWM. Akselerasi proporsional terhadap
rasio T1/T2. Pada saat keadaan datar yaitu terletak pada sudut 0° terhadap bumi,
MX2125 memiliki 50% duty cycle dan sensitivity scale factor sebesar 12,5%
perubahan tiap g (Anonim, 2005b). Pulsa keluaran memiliki perioda sebesar 10ms.

Gambar 3.13 Pulsa MX2125 (Anonim, 2009c)


18

Persamaan 3.5 memperlihatkan cara menghitung output sensor MX2125.

𝐴(𝑔 = 𝑇1 𝑇2 − 0,5 / 12,5 % (3.5)

Dimana:
A(g) = Output sensor MX2125
T1 = Durasi pulsa high sensor MX2125
T2 = Perioda output sensor MX2125

Setiap perubahan posisi sudut pada sensor MX2125 akan mengalami


perubahan pada nilai T1 dimana akan menjadi lebih besar atau lebih kecil.
Berdasarkan persamaan (3.5), besarnya sudut dapat ditentukan dengan
menggunakan persamaan (Dao, 2005):

𝑆𝑢𝑑𝑢𝑡 = 𝐴 𝑔 . 𝑘 (3.6)

Nilai k diambil dari tabel 3.1.

3.3.2. LCD (Liquid Crystal Display)


LCD digunakan sebagai interface untuk menampilkan nilai sudut. LCD
yang digunakan adalah LCD 16 karakter x 2 baris.

Gambar 3.14 LCD (Liquid Crystal Display)

Tabel 3.3 merangkum konfigurasi pin-pin LCD dan fungsinya.


19

Tabel 3.3 Penjelasan pin-pin LCD (Anonim, 2009b)

No. Pin Nama Fungsi


1 VSS Ground
2 VCC Power supply +5V
3 VEE Tegangan untuk pengaturan kontras
4 RS Register Select
0 = Instruction Register
1 = Data Register
5 R/W Read/ Write, untuk memilih menulis atau membaca
0 = Tulis ke LCD
1 = Baca dari LCD
6 E Enable
0 = siap untuk mengakses LCD
1 = disable
7 DB0 LSB, data bus 0
8 DB1 LSB, data bus 1
9 DB2 LSB, data bus 2
10 DB3 LSB, data bus 3
11 DB4 LSB, data bus 4
12 DB5 LSB, data bus 5
13 DB6 LSB, data bus 6
14 DB7 LSB, data bus 7
15 BPL Back Plane Light/Catu back light positif
16 GND Ground voltage/Catu back light negatif

Penjelasan masing-masing pin adalah sebagai berikut :


 VSS / pin 2, pin ground.
 VDD / pin 1, Pin supply 5 volt.
 VLCD / pin 3, terminal power supply untuk men-drive LCD. Kontras pada
tampilan dapat bervariasi dengan mengubah-ubah VLCD.
 RS / pin 4, merupakan pin Register Selection Signal. Bila diberi logika „0‟
akan terpilih register instruksi. Dan bila diberi logika „1‟, maka akan
terpilih register data.
20

 R/W, merupakan pin read/write signal. Bila diberi logika „0‟, maka akan
terpilih write. Dan bila diberi logika „1‟, maka akan terpilih read.
 E, merupakan sinyal enable yang berfungsi mengaktifkan write/read data.
 DB0 / pin 7 – DB7 / pin 14, merupakan pin data 4 bit untuk LCD.
 V+BL (pin 15) dan V-BL (pin 16), merupakan pin catu daya untuk
backlight LCD.

3.3.3. Mikrokontroler AVR ATMega32


AVR Atmega32 merupakan sebuah mikrokontroler low power CMOS 8
bit berdasarkan arsitektur AVR RISC. Mikrokontroler ini memiliki karakteristik
sebagai berikut.
 Menggunakan arsitektur AVR RISC
- 131 perintah dengan satu clock cycle
- 32 x 8 register umum
 Data dan program memori
- 32 Kb In-System Programmable Flash
- 2 Kb SRAM
- 1 Kb In- System EEPROM
 8 Channel 10-bit ADC
 Two Wire Interface
 USART Serial Communication
 Master/Slave SPI Serial Interface
 On-Chip Oscillator
 Watch-dog Timer
 32 Bi-directional I/O
 Tegangan operasi 2,7 – 5,5 V
Arsitektur AVR ini menggabungkan perintah secara efektif dengan 32
register umum. Semua register tersebut langsung terhubung dengan Arithmetic
Logic Unit (ALU) yang memungkinkan 2 register terpisah diproses dengan satu
perintah tunggal dalam satu clock cycle. Hal ini menghasilkan kode yang efektif
21

dan kecepatan prosesnya 10 kali lebih cepat dari pada mikrokontroler CISC biasa.
Berikut adalah blok diagram Mikrokontroler AVR ATMega32.

Gambar 3.15 Blok diagram AVR ATMega32 (Anonim, 2009a)


22

Konfigurasi pin Mikrokontroler AVR ATMega32

Gambar 3.16 Pin-pin ATMega32 (Anonim, 2009a)

Secara fungsional konfigurasi pin ATMega32 adalah sebagai berikut:


a. VCC
- Tegangan sumber
b. GND (Ground)
- Ground
c. Port A (PA7 – PA0)
Port A adalah 8-bit port I/O yang bersifat bi-directional dan setiap pin
memilki internal pull-up resistor. Output buffer port A dapat mengalirkan
arus sebesar 20 mA. Ketika port A digunakan sebagai input dan di pull-up
secara langsung, maka port A akan mengeluarkan arus jika internal pull-up
resistor diaktifkan.
Pin-pin dari port A memiliki fungsi khusus yaitu dapat berfungsi
sebagai channel ADC (Analog to Digital Converter) sebesar 10 bit. Fungsi-
fungsi khusus pin-pin port A dapat ditabelkan seperti yang tertera pada tabel
3.4.
23

Tabel 3.4 Fungsi khusus port A (Anonim, 2009a)

Port Alternate Function


PA7 ADC7 (ADC input channel 7)
PA6 ADC6 (ADC input channel 6)
PA5 ADC5 (ADC input channel 5)
PA4 ADC4 (ADC input channel 4)
PA3 ADC3 (ADC input channel 3)
PA2 ADC2 (ADC input channel 2)
PA1 ADC1 (ADC input channel 1)
PA0 ADC0 (ADC input channel 0)

d. Port B (PB7 – PB0)


Port B adalah 8-bit port I/O yang bersifat bi-directional dan setiap pin
mengandung internal pull-up resistor. Output buffer port B dapat
mengalirkan arus sebesar 20 mA.
Ketika port B digunakan sebagai input dan di pull-down secara
external, port B akan mengalirkan arus jika internal pull-up resistor
diaktifkan.
Pin-pin port B memiliki fungsi-fungsi khusus, diantaranya :
 SCK port B, bit 7
Input pin clock untuk up/downloading memory.
 MISO port B, bit 6
Pin output data untuk uploading memory.
 MOSI port B, bit 5
Pin input data untuk downloading memory.
Fungsi-fungsi khusus pin-pin port B dapat ditabelkan seperti pada
tabel 3.5.
24

Tabel 3.5 Fungsi khusus port B (Anonim, 2009a)

Port Alternate Function


PB7 SCK (SPI Bus Serial Clock)
PB6 MISO (SPI Bus Master Input/Slave Output)
PB5 MOSI (SPI Bus Master Output/Slave Input)
PB4 SS (SPI Slave Select Input)
AIN1 (Analog Comparator Negative Input)
PB3 OCO (Timer/Counter0 Output Compare Match Output)
AIN0 (Analog Comparator Positive Input)
PB2
INT2 (External Interrupt 2 Input)
PB1 T1 (Timer/Counter1 External Counter Input)
T0 (Timer/Counter External Counter Input)
PB0
XCK (USART External Clock Input/Output)

e. Port C (PC7 – PC0)


Port C adalah 8-bit port I/O yang berfungsi bi-directional dan setiap
pin memiliki internal pull-up resistor. Output buffer port C dapat
mengalirkan arus sebesar 20 mA. Ketika port C digunakan sebagai input dan
di pull-down secara langsung, maka port C akan mengeluarkan arus jika
internal pull-up resistor diaktifkan. Fungsi-fungsi khusus pin-pin port C
dapat ditabelkan seperti yang tertera pada tabel dibawah ini.

Tabel 3.6 Fungsi khusus port C (Anonim, 2009a)

Port Alternate Function


PC7 TOSC2 (Timer Oscillator Pin 2)
PC6 TOSC1 (Timer Oscillator Pin 1)
PC5 TD1 (JTAG Test Data In)
PC4 TD0 (JTAG Test Data Out)
PC3 TMS (JTAG Test Mode Select)
PC2 TCK (JTAG Test Clock)
PC1 SDA (Two-wire Serial Bus Data Input/Output Line)
PC0 SCL (Two-wire Serial Bus Clock Line)
25

f. Port D (PD7 – PD0)


Port D adalah 8-bit port I/O yang berfungsi bi-directional dan setiap
pin memiliki internal pull-up resistor. Output buffer port D dapat
mengalirkan arus sebesar 20 mA. Ketika port D digunakan sebagai input dan
di pull-down secara langsung, maka port D akan mengeluarkan arus jika
internal pull-up resistor diaktifkan. Fungsi-fungsi khusus pin-pin port D
dapat ditabelkan seperti yang tertera pada tabel dibawah ini.

Tabel 3.7 Fungsi khusus port D (Anonim, 2009a)

Port Alternate Function


PD7 OC2 (Timer / Counter2 Output Compare Match Output)
PD6 ICP1 (Timer/Counter1 Input Capture Pin)
PD5 OCIA (Timer/Counter1 Output Compare A Match Output)
PD4 OCIB (Timer/Counter1 Output Compare B Match Output)
PD3 INT1 (External Interrupt 1 Input)
PD2 INT0 (External Interrupt 0 Input)
PD1 TXD (USART Output Pin)
PD0 RXD (USART Input Pin)

g. AVCC
Pin dari AVCC merupakan sumber tegangan untuk ADC. Pin AVCC
harus tetap disambungkan ke VCC meskipun tidak menggunakan konfigurasi
dari ADC.
h. AREF
AREF merupakan pin tegangan analog referensi untuk ADC.
i. Reset
Input reset. Jika pin ini mendapat logika “low”, maka akan
menjalankan reset (meskipun clock tidak aktif). Pulsa yang pendek tidak akan
menjamin dapat menjalankan reset ini.
26

j. XTAL1
XTAL1 merupakan pin untuk inverting oscillator amplifier dan input
dari rangkaian internal clock.
k. XTAL2
XTAL2 merupakan output dari inverting oscillator amplifier.

3.3.4. ZigBee
Teknologi ZigBee merupakan teknologi dengan data rate rendah (Low
Data Rate), biaya murah (Low cost), protokol jaringan tanpa kabel yang
ditujukan untuk otomasi dan aplikasi remote control. ZigBee diharapkan
mampu memberikan biaya yang murah serta daya yang rendah untuk
koneksitas antara peralatan dengan konsumsi daya baterai hingga beberapa
bulan atau bahkan beberapa tahun tetapi tidak memerlukan transfer data
setinggi yang digunakan Bluetooth.

Tabel 3.8 Bluetooth vs Zigbee (Widiasrini,2005)

Bluetooth Terbaik untuk ZigBee lebih baik jika


Jaringan ad-hoc diantara Jaringan statis (Tetap )
peralatan yang mendukungnya
Hands-free audio Banyak peralatan
Screen graphic, Gambar Tidak sering digunakan
Transfer file Paket data yang kecil

Karakteristik dan topologi jaringan


Karakteristik dasar dari sebuah jaringan ZigBee:
 Memiliki hampir 65536 node jaringan (Client)
 Optimatisasi untuk aplikasi yang kritis terhadap waktu
- Koneksi ke jaringan: 30 ms (tipikal)
- Waktu aktifasi dari sleep slave: 15ms (tipikal)
- Akses kanal slave aktif: 15 ms (tipikal)
27

ZigBee memiliki 3 topologi model jaringan yaitu topologi star, mesh (Peer
to Peer) serta cluster tree.

Gambar 3.17 Model topologi jaringan Zigbee (Ergen, 2004)

a. Topologi star
Pada topologi star komunikasi dilakukan antara perangkat dengan
sebuah pusat pengontrol tunggal, disebut sebagai koordinator PAN (Personal
Area Network). Aplikasi dari topologi ini bisa untuk otomasi rumah, perangkat
personal computer (PC), serta mainan anak-anak. Setelah sebuah FFD (Full-
Function Device) diaktifkan untuk pertamakali maka ia akan membuat
jaringannya sendiri dan menjadi koordinator PAN. Setiap jaringan star akan
memilih sebuah pengenal PAN yang tidak sedang digunakan oleh jaringan lain
didalam jangkauan radionya. Ini akan mengijinkan setiap jaringan star untuk
bekerja secara tersendiri.
b. Topologi mesh (peer to peer)
Dalam topologi peer to peer juga hanya ada satu koordinator PAN.
Berbeda dengan topologi star, setiap perangkat dapat berkomunikasi satu sama
lain sepanjang ada dalam jarak jangkauannya. Peer to peer dapat berupa ad
hoc, self-organizing dan self healing. Penerapannya seperti pengaturan di
industri dan pemantauan, jaringan sensor tanpa kabel, pencarian aset dan
inventory yang akan mendapat keuntungan dengan memakai topologi ini.
28

c. Topologi cluster tree


Cluster tree merupakan sebuah model khusus dari jaringan peer to peer
dimana sebagian besar perangkatnya adalah FFD (Full-Function Device) dan
sebuah RFD (Reduced-Function Device) mungkin terhubung ke jaringan
cluster tree sebagai node tersendiri di akhir dari percabangan. Salah satu dari
FFD dapat berlaku sebagai koordinator dan memberikan layanan sinkronisasi
ke perangkat lain dan koordinator lain. Hanya satu dari koordinator ini adalah
koordinator PAN. Koordinator PAN membentuk cluster pertama dengan
membentuk Cluster head (CLH) dengan sebuah cluster identifier (CID) nol,
memilih sebuah pengenal PAN yang tidak terpakai dan memancarkan
frame-frame beacon ke perangkat sekitarnya. Sebuah perangkat menerima
frame beacon mungkin meminta untuk bergabung ke network CLH. Jika
koordinator PAN mengijinkan untuk bergabung, maka akan menambahkan
perangkat baru ini sebagai perangkat turunannya dalam daftar perangkat
disekitarnya. Proses ini berlanjut dilakukan oleh perangkat yang baru itu ke
perangkat sekitarnya. Keuntungan dari struktur cluster adalah peningkatan
daerah jangkauan seiring dengan peningkatan biaya untuk latency pesan.

Keuntungan menggunakan ZigBee


Keunggulan utama dari ZigBee adalah berdaya rendah (low power)
sehingga meskipun hanya disuplai dengan baterai biasa pun mampu untuk
dihidupkan, melakukan pengecekan, mengirim data dan mematikan hanya dalam
waktu kurang dari 30 ms. Ini akan membuat baterai menjadi tahan lama. Hal ini
bisa dicapai dengan hanya sebuah IC transceiver dengan serta pekerjaan
ringan yang cukup dijalankan dengan mikrokontroler 8 bit. Keperluan memori
flash ZigBee berkisar antara 16 hingga 60 KB bergantung dari kerumitan
peralatan, fitur dari stack serta apakah sebuah perangkat RFD atau FFD.
Kedepannya, pabrik semikonduktor diharapkan mampu menghasilkan
sebuah chip yang menggabungkan mikrokontroler dan blok 802.15.4 menjadi
satu sehingga keseluruhan ZigBee node benar-benar hanya sebuah chip.
29

3.3.5. XBee-PRO
XBee merupakan suatu modul yang didesain untuk memenuhi standar
zigbee/IEEE 802.15.4 yang biasa digunakan untuk aplikasi jaringan sensor yang
berbiaya dan berdaya rendah. Modul ini membutuhkan daya minimal dan
menyediakan transfer data yang handal antara dua device. Modul XBee yang
digunakan dalam sistem ini adalah XBee-PRO.

Konfigurasi Pin-pin XBee-PRO


Berikut adalah konfigurasi pin-pin XBee-PRO dan penjelasannya.

Gambar 3.18 Modul XBee-PRO (Anonim, 2008b)

Tabel 3.9 Konfigurasi pin XBee-PRO (Anonim, 2008b)


30

Spesifikasi XBee-PRO
Tabel 3.10 Spesifikasi XBee vs XBee-PRO (Anonim, 2008b)

Pengoperasian XBee-PRO
Modul XBee-PRO dihubungkan dengan host melalui level logika port
serial asinkron. Melalui port serial ini, modul XBee-PRO dapat berkomunikasi
dengan logika dan tegangan yang kompatibel dengan UART atau melalui level
translator ke sembarang device serial, seperti RS-232/485/422 atau USB.
Device yang mempunyai UART interface dapat langsung dihubungkan
secara langsung dengan pin-pin modul XBee seperti di tunjukkan gambar 3.19.
31

Gambar 3.19 Diagram sistem aliran data pada XBee (Anonim, 2008b)

Data diterima oleh modul XBee-PRO melalui pin DI (pin 3) sebagai sinyal
serial asinkron. Sinyal harus berada pada kondisi idle high ketika tidak ada data
yang harus ditransmisikan. Setiap byte data terdiri dari satu bit start (low), 8 bit
data (dengan LSB terlebih dahulu), dan satu bit stop (high). Gambar 3.20
mengilustrasikan pola bit data serial dari XBee-PRO. Paket data 0x1F (bilangan
desimal “31”) yang ditransmisikan memalui XBee-PRO. Contoh format data
adalah 8-N-1 (bits – parity – jumlah bit stop).

Gambar 3.20 Contoh format pengiriman data (Anonim, 2008b)

Gambar 3.21 menunjukkan diagram data flow internal dengan lima


buah pin yang paling sering digunakan.
32

Gambar 3.21 Diagram data flow internal (Anonim, 2008b)

Ketika data serial masuk melalui pin DI, maka data tersebut akan disimpan
di dalam DI buffer sampai data tersebut bisa ditransmisikan. Jika XBee tidak
segera mentransmisikan data (contohnya ketika telah menerima data RF), data
serial akan terus disimpan di DI buffer. Ketika DI buffer telah penuh, flow control
hardware dan software harus diimplementasikan untuk mencegah overflow
(hilangnya data antara host dan modul XBee). Berikut adalah hal-hal yang perlu
diperhatikan untuk mengeliminasi kebutuhan akan flow control.
 Data yang dikirim harus lebih kecil dari ukuran DI buffer.
 Gunakan baud rate yang paling rendah.
Kasus dimana DI buffer menjadi penuh dan kemungkinan overflow terjadi
jika penerimaan data melalui pin DI buffer berlangsung secara terus menerus.
Data yang berada di dalam DI buffer akan ditransmisikan melalui udara ketika
XBee tidak lagi menerima data. Ketika data RF diterima, data selanjutnya
diterima oleh DO buffer dan kemudian mengirim data tersebut ke host melalui
port serial. Ketika DO buffer mencapai kapasitas maksimalnya, data selanjutnya
yang datang ke DO buffer akan hilang.
Dua kasus dimana DO buffer menjadi penuh dan mengalami overflow:
 Jika kecepatan aliran data di-set lebih tinggi dari kecepatan data modul
XBee. Proses penerimaan data oleh XBee akan lebih cepat daripada proses
pengiriman data dari XBee ke host.
33

 Jika host tidak mengijinkan modul untuk mentransmisikan data keluar dari
DO Buffer karena di hold oleh hardware dan software flow control.
Ada 2 mode operasi dari XBee, yaitu mode Transparent (AT) dan mode
API (Packet). Mode transparent (AT) digunakan jika diinginkan konfigurasi
point-to-point yang sederhana, dimana XBee bertindak sebagai modem serial
wireless antara komputer atau mikrokontroler dengan remote device. Mode
transparent (AT) menggunakan komunikasi serial yang sederhana. Fitur dari
mode transparent adalah sebagai berikut:
 Sederhana
 Kompatibel dengan semua peralatan yang menggunakan komunikasi serial
 Terbatas hanya untuk komunikasi point-to-point antara 2 XBee
Mode operasi API (packet) mempunyai kemampuan yang lebih baik
namun lebih kompleks dari dari mode transparent. Dengan mode API,
memungkinkan untuk membuat jaringan yang terdiri dari beberapa XBee dan
antar XBee yang satu dengan yang lainnya dapat saling berkomunikasi secara
individual. Fitur dari mode API adalah sebagai berikut:
 I/O line passing, yaitu menerima data dari remote XBee yang berdiri
sendiri (stand-alone remote Xbee)
 Memungkinkan untuk komunikasi broadcast dan komunikasi dengan lebih
dari satu XBee
 Menerima acknowledgement bahwa paket telah dikirim dengan baik
 Memungkinkan konfigurasi jarak jauh

Set up jaringan XBee


Untuk men-set up jaringan XBee, digunakan software khusus yang
disediakan oleh produsen XBee (Maxstream) yaitu X-CTU. Berikut adalah
tampilan software X-CTU.
34

Gambar 3.22 Software X-CTU

Agar 2 buah XBee atau lebih dapat saling berkomunikasi, maka XBee
tersebut harus:
 Mempunyai channel ID (CH) yang sama.
 Mempunyai network ID PAN ID) yang sama.
 Source ID XBee penerima harus sesuai dengan destination ID dari XBee
pengirim.

Pengalamatan (Addressing)
Pengalamatan digunakan untuk membedakan satu XBee dengan XBee
lainnya dan mencegah duplikasi paket data. Setiap modul XBee mempunyai
source address (alamat asal) untuk mencegah agar pesan non-duplikat tidak
dianggap sebagai pesan duplikat.
35

XBee mempunyai dua bentuk dasar pengalamatan, yaitu Broadcast dan


Unicast. Pesan Broadcast adalah sebuah pesan yang akan diterima oleh semua
modul yang mempunyai PAN ID (Personal Area Network) yang sama. Pesan
Broadcast dikirim hanya sekali dan tidak diulang, sehingga tidak ada jaminan
bahwa node-node yang dikirimi akan menerima pesan tersebut. Agar XBee bisa
mengirim pesan Broadcast, set DH=0x0 dan DL=0xFFFF (lihat gambar 3.22).
Dengan setingan tersebut, semua modul XBee yang berada dalam jangkauan
jaringan akan menerima pesan.
Pesan Unicast merupakan metode yang lebih handal dalam pengiriman
data. Pesan Unicast dikirim dari satu modul ke modul yang lain berdasarkan
pengalamatan modul-modul tersebut. Jika pesan diterima dengan baik, XBee
penerima akan mengirim balik sebuah acknowlegdement atau ACK. Jika XBee
pengirim tidak menerima ACK, XBee pengirim akan mengirim ulang data
tersebut (maksimal 3 kali) sampai ACK diterima. Hal ini akan meningkatkan
kemungkinan pengiriman data sampai ke tujuan.
Ada 2 metode pengiriman data pada pesan Unicast, yaitu menggunakan
pengalamatan 16 bit dan pengalamatan 64 bit. Satu atau kedua metode tersebut
dapat digunakan untuk mengkomunikasikan XBee, akan tetapi, pengalamatan 16
bit bisa di-disable sedangkan pengalamatan 64 bit tidak bisa di-disable.
Pengalamatan 16 bit lebih cocok digunakan untuk jaringan yang kecil atau
jaringan yang mempunyai jumlah node yang tetap. Pengalamatan 16 bit
menggunakan 16 bit bilangan heksa untuk menentukan source address atau
destination address dari setiap modul XBee. Ketika membangun suatu jaringan,
setiap modul XBee harus mempunyai source address yang unik. Parameter MY
(gambar 3.22) secara default di-set 0, maka ketika menggunakan pengalamatan 16
bit, nilai tersebut harus diubah menjadi nomor yang unik.
Karena menggunakan pengalamatan 16 bit, maka jaringan akan
mempunyai 216 atau 65536 alamat unik. Pada pengalamatan 16 bit, destination
address (DL) XBee pengirim harus sesuai dengan source address (MY) dari
XBee penerima, sedangkan parameter DH harus di-set 0.
36

Pengalamatan 64 bit cocok digunakan untuk jaringan yang besar dan open-
ended dimana modul XBee dapat ditambahkan sewaktu-waktu. Pengalamatan 64
bit mempunyai 264 atau 18,4518 alamat unik.
Nilai source address dapat ditentukan dengan membaca nilai SH dan SL
dari setiap modul XBee. Agar dapat mengirim data ke modul XBee tertentu, nilai
DH dan DL dari XBee pengirim harus di-set menjadi nilai SH dan SL dari XBee
penerima (DH=SH dan DL=SL). Sementara itu, MY harus di-set 0xFFFF atau
FFFE.

3.3.6. CDC-232
CDC-232 membuat COM port virtual pada komputer yang tidak
mempunyai RS-232 port yang sebenarnya. Hal ini memungkinkan terjadinya
komunikasi RS-232C (tanpa jalur kontrol), setelah menghubungkan device dan
meng-install driver. Gambar 3.23 menunjukkan COM port virtual melalui
software USB.

Gambar 3.23 COM port virtual melalui USB (Tamura, 2010)

Berikut adalah langkah-langkah untuk membuat COM port virtual pada


komputer dengan menggunakan CDC-232.
1. Buat rangkaian dengan mikrokontroler AVR ATMega8 sebagai kontroler
utamanya. Gambar 3.24 menunjukkan contoh rangkaian CDC-232
menggunakan AVR ATMega8.
37

Gambar 3.24 Contoh rangkaian CDC-232 menggunakan AVR ATmega8


(Tamura, 2010)

2. Tuliskan program pada mikrokontroler AVR ATMega8.


3. Hubungkan device pada port USB komputer.
4. Install driver pada komputer.
5. Akses device melalui COM port virtual pada device manager.
6. Komputer akan meminta lagi instalasi driver ketika dihubungkan dengan
USB port yang lain.
7. Deteksi driver yang telah ter-install sebelumnya secara otomatis. Nomor
COM yang lain akan ditentukan.

3.4. Visual Basic 6.0 (Berlisensi)


Visual Basic adalah salah satu development tools untuk membangun
aplikasi dalam lingkungan windows. Dalam pengembangan aplikasi, Visual Basic
menggunakan pendekatan visual untuk merancang user interface dalam bentuk
form, sedangkan untuk coding-nya menggunakan bahasa basic yang mudah untuk
dipelajari. Visual Basic telah menjadi tool yang terkenal bagi para pemula maupun
para developer. Beberapa kemempuan Visual Basic antara lain:
1. Untuk membuat program aplikasi berbasis windows.
2. Untuk membuat objek-objek pembantu program seperti misalnya control
ActiveX, file Help, aplikasi internet, dan sebagainya.
38

3. Menguji dan menghasilkan program akhir berekstensi EXE yang bersifat


executable, atau langsung dapat dijalankan.
Dalam lingkungan windows, user interface memegang peranan yang
sangat penting karena dalam pemakaian aplikasi yang kita buat, pemakai
senantiasa berinteraksi dengan user interface tanpa menyadari bahwa
dibelakangnya berjalan instruksi-instruksi program yang mendukung tampilan dan
proses yang dilakukan.
Pada pemrograman visual, pengembangan aplikasi dimulai dengan
pembentukan user interface, kemudian mengatur property dari objek-objek yang
digunakan dalam user interface dan baru dilakukan penulisan kode program untuk
menangani kejadian-kejadian (event). Tahap pengembangan aplikasi demikian
dikenal dengan istilah pengembangan aplikasi dengan pendekatan bottom up.
Sejak dikembangkan pada tahun 80-an, Visual Basic kini telah mencapai
versinya yang ke-6. Beberapa keistimewaan utama dari Visual Basic 6 ini
diantaranya:
1. Menggunakan platform pembuatan program yang diberi nama developer
studio, yang memiliki tampilan dan sarana yang sama dengan visual C++ dan
visual J++. Dengan begitu anda dapat bermigrasi atau belajar bahasa
pemrograman lainnya dengan mudah dan cepat, tanpa harus belajar dari nol
lagi.
2. Memiliki compiler andal yang apat menghasilkan file executable yang lebih
cepat dan lebih efisien dari sebelumnya.
3. Memiliki beberapa tambahan sarana wizard yang baru. Wizard adalah sarana
yang mempermudah didalam pembuatan aplikasi dengan mengotomatisasi
tugas-tugas tertentu.
4. Tambahan kontrol-kontrol baru yang lebih canggih serta peningkatan kaidah
struktur bahasa Visual Basic.
5. Kemampuan membuat ActiveX dan fasilitas internet yang lebih banyak.
6. Sarana akses yang lebih cepat dan handal untuk membuat aplikasi database
yang berkemampuan tinggi.
39

7. Visual Basic 6 memiliki beberapa versi atau edisi yang telah disesuaikan
dengankebutuhan pemakainya.
Seperti aplikasi-aplikasi komersil lainnya, Visual Basic 6 juga dipasarkan
dalam beberapa versi atau jenis. Beberapa versi Visual Basic 6 yang ada dipasaran
adalah:
1. Standard Edition/Learning Edition : ini adalah versi standar yang sudah
mencakup berbagai sarana dasar dari Visual Basi 6 untuk mengembangkan
aplikasi.
2. Profesional Edition : versi ini memberikan berbagai sarana ekstra yang
dibutuhkan oleh para programmer professional, misalnya kontrol-kontrol
tambahan, dukungan untuk program internet, compiler untuk membuat file
Help, serta sarana pengembangan database yang lebih baik.
3. Enterprise Edition : versi ini dikhususkan untuk para programmer yang ingin
mengembangkan aplikasi remote computing atau client server. Biasanya versi
ini digunakan untuk membuat aplikasi pada jaringan.
BAB IV
ANALISIS DAN RANCANGAN SISTEM

4.1. Rancangan Sistem Secara Keseluruhan


Ada beberapa parameter yang biasa dipantau dalam sistem peringatan dini
tanah longsor, diantaranya curah hujan, kemiringan tanah, pergerakan tanah, dan
lain-lain. Adapun parameter yang dipantau dalam rangcang bangun sistem
peringatan dini tanah longsor ini adalah pergerakan tanah, baik berupa rekahan
maupun geseran. Sensor yang digunakan untuk memantau parameter tersebut
hanya berjumlah 1 unit dan 1 jenis, yaitu sensor akselerometer.
Rancang bangun sistem peringatan dini tanah longsor ini dibagi menjadi
dua bagian yaitu bagian transmitter (pengirim) dan bagian receiver (penerima).
Bagian transmitter berfungsi sebagai sensor kemiringan yang akan memonitor
pergerakan tanah dan mengirimkan data hasil pembacaan pada receiver yang
berada di lokasi lain untuk dipantau secara wireless. Bagian receiver berfungsi
menerima data yang dikirim oleh bagian transmitter dan menampilkannya di
komputer untuk keperluan pemantauan jarak jauh. Transmitter dan receiver
masing-masing hanya berjumlah 1 unit sehingga koneksinya berupa hubungan
langsung (point-to-point). Berikut adalah blok diagram sistem secara keseluruhan.

Transmitter Receiver

LCD Speaker Zigbee

Mikrokontroler Xbee-PRO Xbee-PRO CDC-232

MX2125 Keypad

Gambar 4.1 Blok diagram rangcang bangun sistem peringatan dini tanah
longsor

40
41

Pergerakan tanah dibaca oleh sensor akselerometer. Sensor yang


digunakan adalah MX2125 keluaran Parallax.Inc dengan pertimbangan
kemudahan operasi, harga yang relatif terjangkaun, pembacaan yang cukup
akurat, dan mudah diperoleh. MX2125 mampu membaca kemiringan dalam dua
sumbu, yaitu sumbu x dan sumbu y. Data hasil pembacaan sensor (baik sumbu x
maupun sumbu y) diolah oleh mikrokontroler (AVR ATMega32) dan ditampilkan
melalui LCD yang terintegrasi dengan bagian transmitter.
Bagian transmitter dilengkapi dengan keypad yang berfungsi memasukkan
range sudut, yaitu batas atas dan batas bawah sudut kemiringan transmitter yang
diinginkan untuk masing-masing sumbu. Pemberian nilai range sudut ini
bertujuan untuk memberi nilai ambang batas toleransi pergeseran atau pergerakan
tanah yang dinilai masih aman sebelum pergerakan dan pergeseran tanah tersebut
berpotensi longsor. Ketika nilai kemiringan aktual berada diluar batas-batas
tersebut (artinya telah terjadi pergeseran dan pergerakan tanah di luar toleransi
aman), maka buzzer akan berbunyi. Hal ini menunjukkan bahwa telah terjadi
pergeseran tanah yang membahayakan.
Untuk keperluan pemantauan dari jarak jauh, data hasil pengolahan oleh
mikrokontroler (berupa data sudut dan range sudut) dikirim ke tempat lain secara
wireless melalui protokol Zigbee dengan menggunakan modul transceiver Xbee-
PRO. Protokol Zigbee dipilih karena memiliki beberapa keunggulan dibandingkan
dengan protokol yang lain, diantaranya biayanya murah, jangkauan cukup jauh,
dan hemat daya. Data-data yang dikirim oleh Xbee-PRO pada bagian transmitter
akan diterima oleh Xbee-PRO yang lain pada bagian receiver. Data-data tersebut
kemudian dikirim ke komputer melalui port serial dan ditampilkan dalam bentuk
grafik dan tabel.
Untuk menjembatani antara bagian receiver dengan port serial komputer,
digunakan CDC-232 yang akan membuat COM port virtual pada komputer tanpa
perlu menggunakan port serial yang sesungguhnya. Diagram alir proses
pengolahan data pada bagian transmitter ditunjukkan oleh gambar 4.2.
42

Mulai

Konfigurasi jenis mikrokontroler, Print sudut dan range sudut X


crystal, LCD, timer1, dan pin-pin
yang digunakan, nyalakan timer1.
Print sudut dan range sudut Y

Baca Input X

T Tombol menu
Baca Input Y
ditekan ?

Hitung sudut X Y
Masukkan range sudut

Hitung sudut Y

Range
min<sudut T
Tampilkan sudut X pada LCD Bunyikan alarm
aktual<Range
max?

Tampilkan sudut Y pada LCD Y


Selesai

Gambar 4.2 Diagram alir utama pada bagian transmitter

Untuk mempermudah pembuatan software, diagram alir 4.2 di bagi


menjadi beberapa sub program, yaitu sub program Hitung sudut X, Hitung sudut
Y, dan Masukkan range sudut. Sub program Hitung sudut X dan Hitung sudut Y
ditunjukkan oleh gambar 4.3
Hitung sudut X Hitung sudut Y

A(g) = ((Durasi pulsa X high / perioda X) – 0,5) / A(g) = ((Durasi pulsa Y high / perioda Y) – 0,5) /
0,125 0,125

Select case A(g) Select case A(g)


Case is <= 0,17391 : K =57,5 Case is <= 0,17391 : K =57,5
Case is <= 0,34387 : K =58,16 Case is <= 0,34387 : K =58,16
Case is <= 0,50804 : K =59,04 Case is <= 0,50804 : K =59,04
Case is <= 0,66148 : K =60,47 Case is <= 0,66148 : K =60,47
Case is <= 0,80192 : K =62,35 Case is <= 0,80192 : K =62,35

Sudut X = A(g) x K Sudut Y = A(g) x K

Return Return

Gambar 4.3 Diagram alir penghitungan sudut x dan sudut y


43

Diagram alir sub program Masukkan range sudut di tunjukkan oleh


gambar 4.4.

Masukkan range sudut

Masukkan range minimal sudut x

Masukkan range minimal sudut y

Tombol Menu T
ditekan ?
Tombol Menu T
Y ditekan ?

Masukkan range maksimal sudut x Y

Masukkan range maksimal sudut x

Tombol Menu T
ditekan ?
T
y min > y max ?
Y

Y
T
x min > x max ?
Tampilkan pesan
kesalahan pada LCD
Y

Tampilkan pesan
kesalahan pada LCD Y Tombol Menu T
ditekan ?

Y
Tombol Menu T Return
ditekan ?

Gambar 4.4 Diagram alir range sudut

Pada komputer dibuat program yang berfungsi menerima dan


menampilkan data kemiringan transmitter yang dikirim oleh bagian transmitter.
Data-data tersebut ditampilkan dalam bentuk tabel dan grafik yang mempermudah
pemantauan ketika terjadi kondisi yang dianggap membahayakan. Selain
ditampilkan, data-data kemiringan tersebut juga dapat dihapus dan atau disimpan
dalam database yang bisa dilihat dan diakses kembali jika sewaktu-waktu
dibutuhkan untuk keperluan analisis. Proses perekaman data pada database bisa
diatur dalam beberapa interval waktu yang disesuaikan dengan kebutuhan. Hal ini
dimaksudkan untuk efisiensi daya dan kapasitas database.
44

Data yang dikirim ke komputer tidak hanya data kemiringan transmitter


saja, tapi juga range sudut sehingga deviasi diantara keduanya bisa dipantau
setiap saat. Jadi, total ada 6 data yang dikirim ke bagian receiver. Pada komputer,
melalui program yang dibuat pada Visual Basic 6, keenam data tersebut
ditampung terlebih dahulu menjadi satu dalam 1 variabel sebelum kemudian
dipecah kembali. Sama halnya dengan di bagian transmitter, pada bagian receiver
(komputer) juga dilengkapi dengan alarm yang akan berbunyi jika nilai aktual
kemiringan tanah berada di luar range sudut yang dimasukkan. Diagram alir
proses penerimaan data pada komputer bisa dilihat pada gambar 4.5.
Mulai

Pengaturan :
COM port
Baud rate
Interval waktu

Baca input
port serial

Buffer = input

Pecah data buffer

Selesai

Gambar 4.5 Diagram alir proses penerimaan data pada komputer

4.2. Rancangan Pemasangan Sistem


Dalam pelaksanaannya sebagai sistem peringatan dini tanah longsor,
bagian transmitter yang telah dibuat ditempatkan pada suatu dudukan. Ilustrasi
pemasangan sistem diperlihatkan pada gambar 4.6.
45

Zigbee

(c)

(b)

Transmitter
(Sensor akselerometer) (d)

(a)

Gambar 4.6 Ilustrasi pemasangan sistem

Ket: (a). Posisi awal pemasangan transmitter


(b). Posisi transmitter ketika terjadi pergeseran tanah
(c). Zigbee sebagai protokol pengiriman data
(d). Komputer pemantau
46

Dudukan ditempatkan pada suatu area yang rentan terhadap pergeseran


tanah (posisi (a)). Kaki dudukan dipasangi engsel sehingga dapat bergerak bebas
mengikuti pergerakan tanah. Pada posisi ini ditentukan range sudut, yaitu batas
kemiringan minimal dan batas kemiringan maksimal posisi transmitter yang
diinginkan.
Penentuan range sudut ini tergantung dari jenis tanah, sudut kemiringan
lereng, dan sudut atau posisi transmitter itu sendiri. Rekahan atau pergeseran
tanah, yang menyebabkan perubahan kemiringan dudukan dan transmitter, untuk
tanah yang padat mempunyai batas toleransi atau batas aman yang lebih besar dari
pada tanah yang gembur. Penentuan nilai range sudut ini perlu dikonsultasikan
dengan ahli geologi. Baik untuk sudut aktual maupun range sudut kemiringan,
nilai origin atau titik nol dihitung dari garis horizontal.
Pemasangan dudukan dan transmitter pada gambar 4.6 dibuat sejajar
bidang datar (0°). Dengan melihat komposisi tanah dan batuan dari lereng yang
akan dipantau, misalkan rekahan atau geseran tanah sepanjang 10 cm dianggap
akan mulai mengalami longsoran (penentuan nilai ini dikonsultasikan dengan ahli
geologi). Untuk menentukan nilai range sudut, dilakukan simulasi untuk
mengetahui pengaruh rekahan atau geseran tanah terhadap kemiringan transmitter
yang terpasang. Dari hasil simulasi misalkan diperoleh bahwa rekahan atau
geseran tanah sepanjang 10 cm akan mengakibatkan posisi transmitter bertambah
20°. Maka berdasarkan simulasi ini, nilai range sudut bisa ditentukan sebesar 0°
untuk batas bawah dan 15° untuk batas atas. Nilai batas atas dibuat lebih kecil
(15°) dari nilai hasil simulasi (20°) dengan tujuan memberi kesempatan untuk
melakukan evakuasi sebelum tanah longsor benar-benar terjadi.
Posisi pemasangan transmitter tidak harus sejajar dengan bidang
horizontal. Hal ini tentunya berpengaruh terhadap penentuan nilai range sudut
kemiringan transmitter. Nilai range sudut akan berbeda untuk posisi transmitter
yang berbeda walapun dipasang ditempat yang sama sehingga perlu dilakukan
simulasi ulang setiap kali transmitter akan dipasang ditempat berbeda.
Setiap saat, data kemiringan tanah dan range sudut tersebut dikirim ke
komputer pemantau (d) melalui protokol Zigbee (c). Pada saat tanah mengalami
47

pergerakan, misalnya rekahan atau geseran, posisi dudukan akan mengalami


perubahan dari posisi awal (a) ke posisi baru (b). Setiap perubahan yang terjadi
pada posisi sistem dapat dilihat melalui grafik di komputer sehingga bisa diambil
tindakan represif secepatnya ketika grafik menunjukkan tren memburuk.
Ketika rekahan tanah menyebabkan kemiringan transmitter berada diluar
nilai range sudut (kurang dari 0° atau lebih dari 15°) maka alarm akan berbunyi.
Hal ini menandakan rekahan atau geseran tanah sudah berada pada taraf yang
membahayakan. Pada saat yang bersamaan, posisi kemiringan tanah tersebut juga
dikirim ke komputer. Alarm pada komputer juga akan berbunyi untuk memberi
tahu petugas pemantau bahwa kondisi tanah berada dalam taraf yang
membahayakan. Dalam hal ini petugas bisa mengevakuasi warga setempat.
BAB V
IMPLEMENTASI

5.1. Pembuatan Hardware (Perangkat Keras)


Seperti sudah disebutkan pada bab sebelumnya, hardware terdiri dari
bagian transmitter (pengirim) dan receiver (penerima). Transmitter adalah bagian
yang berfungsi mendeteksi pergerakan tanah yang dipantau kemudian
mengirimkan data tersebut ke tempat lain. Sedangkan receiver berfungsi
menerima data yang dikirim oleh bagian transmitter kemudian menampilkan data
yang telah diterima tersebut ke komputer dalam bentuk angka, grafik, dan tabel
data melalui komunikasi serial dengan menggunakan Visual Basic 6.

5.1.1. Hardware bagian transmitter


Bagian transmitter terdiri dari rangkaian power supply, rangkaian
mikrokontroler AVR ATMega32, rangkaian sensor MX2125, rangkaian XBee-
PRO, rangkaian keypad, rangkaian penampil LCD, dan rangkaian buzzer.
Rangkaian lengkap bagian transmitter diperlihatkan oleh gambar 5.1.

48
49

Gambar 5.1 Rangkaian bagian transmitter

Power supply
Sumber daya yang digunakan untuk bagian transmitter adalah baterai 9V.
Karena mikrokontroler bekerja pada level tegangan 5 VDC, maka sebelum masuk
ke rangkaian mikrokontroler, tegangan 9 VDC diturunkan menjadi 5 VDC dengan
menggunakan regulator 7805. Untuk pengaman dari polaritas yang terbalik,
rangkaian ini dilengkapi dengan sebuah diode. Rangkaian power supply juga
50

menghasilkan tegangan 3,3 V yang digunakan untuk memberi sumber daya pada
XBee-PRO. Untuk menurunkan tegangan dari 5 VDC menjadi 3,3 VDC
digunakan regulator AIC1722.

Gambar 5.2 Rangkaian power supply

Rangkaian mikrokontroler AVR ATMega32


Mikrokontroler AVR ATMega32 berfungsi mengolah data dari sensor
menjadi angka digital yang sesuai dengan tingkat kemiringan dari sensor tersebut
untuk ditampilkan di LCD. Selain itu, mikrokontroler ini berfungsi
mengendalikan seluruh kerja sistem dan mengkoordinasi seluruh komponen yang
terkoneksi dengannya. Gambar 5.3 memperlihatkan rangkaian minimum
mikrokontroler ATMega32.

Gambar 5.3 Sistem minimum mikrokontroler AVR ATMega32


51

1. Oscillator crystal (XTAL)


Merupakan input dan output dari sebuah inverting amplifier yang dapat
dikonfigurasi untuk digunakan sebagai On-Chip Oscillator. Pada sistem
minimum ini digunakan Oscillator Crystal 16 MHz sebagai detak bagi
mikrokontroler dengan komponen lain dua buah kapasitor keramik 22 pF.

Gambar 5.4 Rangkaian crystal

2. Sistem reset
Sistem reset terdiri dari sebuah push button dan sebuah resistor 10KΩ.
Mikrokontroler AVR ATMega32 memiliki fasilitas Power-On Reset,
sehingga tidak perlu lagi ditambahkan fungsi Power-On Reset pada
rangkaian.

Gambar 5.5 Rangkaian reset

Deskripsi penggunaan port pada mikrokontroler AVR ATMega32 adalah


sebagai berikut:
1. Port A
 PortA.2 : Sebagai jalur data untuk penampil LCD pin RS
 PortA.3 : Sebagai jalur data untuk penampil LCD pin E
 PortA.4 : Sebagai jalur data untuk penampil LCD pin DB4
52

 PortA.5 : Sebagai jalur data untuk penampil LCD pin DB5


 PortA.6 : Sebagai jalur data untuk penampil LCD pin DB6
 PortA.7 : Sebagai jalur data untuk penampil LCD pin DB7
2. Port B
 PortB.0 : Sebagai output buzzer
 PortB.5 : Sebagai jalur MOSI (untuk pemrograman mikrokontroler)
 PortB.6 : Sebagai jalur MISO (untuk pemrograman mikrokontroler)
 PortB.7 : Sebagai jalur SCK (untuk pemrograman mikrokontroler)
3. Port C
 PortC.0 : Sebagai input tombol menu nomor 1 (T_up)
 PortC.1 : Sebagai input tombol menu nomor 2 (T_menu)
 PortC.2 : Sebagai input tombol menu nomor 3 (T_down)
 PortC.3 : Sebagai input tombol menu nomor 4 (T_shift)
 PortC.6 : Sebagai input Y dari sensor MX2125.
 PortC.7 : Sebagai input X dari sensor MX2125.
4. Port D
 PortD.0 : Sebagai input untuk menerima data dari XBee-PRO.
 PortD.1 : Sebagai output untuk mengirim data ke XBee-PRO.

Rangkaian sensor MX2125


Sensor akselerometer yang digunakan untuk mengukur kemiringan tanah
ini adalah MX2125 buatan Parallax. Inc. Output sensor MX2125 berupa pulsa
digital dengan frekuensi 100Hz. Output sensor MX2125 akan mengalami
perubahan perbandingan panjang gelombang antara pulsa high dengan pulsa low
ketika terjadi perubahan posisi sensor relatif terhadap arah gravitasi. Berdasarkan
frekuensi ini, dilakukan perhitungan untuk menentukan nilai sudut yang sesuai.
Karena output sensor sudah berbentuk pulsa digital, maka output sensor bisa
langsung diolah oleh mikrokontroler tanpa memerlukan ADC.
53

Berdasarkan datasheets, MX2125 memiliki Isink dan Isource masing-


masing sebesar 100µA. Sementara itu, ATMega32 memiliki Isink dan Isource
sebesar 20mA. Sehingga ATMega32 memiliki kemampuan lebih dari cukup untuk
men-supply MX2125. Pada saat MX2125 mengeluarkan pulsa high,
mikrokontroler akan sink sebesar 100µA. sedangkan pada saat MX2125
mengeluarkan pulsa low, mikrokontroler akan source sebesar 100µA.

Gambar 5.6 Sensor MX2125

Rangkaian penampil LCD


Alat ini di lengkapi dengan sebuah penampil LCD monochrome 16x2.
LCD ini selain digunakan untuk menampilkan informasi kemiringan sudut hasil
pengukuran sensor, juga digunakan untuk memasukkan range sudut kemiringan
yang diinginkan. Pemilihan LCD tipe ini didasarkan pada kebutuhan sistem yang
tidak membutuhkan LCD yang terlalu besar untuk menampilkan sudut.
Pin-pin yang harus diperhatikan dalam merancang LCD ini adalah sebagai
berikut.
RS : input LCD high : data low : instruction
R/W : read atau write high : read low : write
E : input sinyal enable
D4 – D7 : input data
Jalur kontrol E digunakan untuk memberitahu LCD bahwa
mikrokontroller mengirimkan data ke LCD. Untuk mengirim data ke LCD
program harus menset E ke kondisi high (1) dan kemudian menset dua jalur
kontrol lainnya (RS dan R/W). Saat jalur lainnya sudah siap, E harus diset ke 0
54

dan tunggu beberapa saat (tergantung pada datasheet LCD), dan set E kembali ke
high (1). Ketika jalur RS berada dalam kondisi low (0), data yang dikirimkan ke
LCD dianggap sebagai sebuah perintah atau instruksi khusus (seperti bersihkan
layar, posisi kursor, dan lain-lain). Ketika RS dalam kondisi high (1), data yang
dikirimkan adalah data ASCII yang akan ditampilkan dilayar. Jalur kontrol R/W
harus berada dalam kondisi low (0) saat informasi pada data bus akan dituliskan
ke LCD. Apabila R/W berada dalam kondisi high (1), maka program akan
melakukan query (pembacaan) data dari LCD.
Pin R/W disambungkan dengan ground karena tidak memerlukan
pembacaan data LCD sehingga LCD akan selalu dalam kondisi write mode. Pin
ke 3 LCD dihubungkan dengan trimmer potensio sebesar 10KΩ sebagai pengatur
LCD brightness. Pin 11 – 14 yang merupakan pin untuk D4 – D7 dihubungkan
dengan mikrokontroler melalui pin PA4 – PA7.
Berikut adalah konfigurasi sambungan antara pin-pin LCD dengan pin-pin
mikrokontroler.

Gambar 5.7 Rangkaian penampil LCD

Rangkaian keypad
Keypad digunakan untuk memasukkan nilai range tingkat kemiringan
sudut yang diinginkan. Range yang dimasukkan berupa batas bawah dan batas
atas kemiringan, baik untuk sudut X maupun sudut Y. Keypad terdiri dari 4 buah
push button yang masing-masing dihubungkan dengan logic low (langsung
terhubung dengan ground) jika ditekan.
55

Fungsi dari masing-masing keypad adalah sebagai berikut.


 T_Menu : digunakan untuk pemilihan menu monitoring kemiringan atau
range kemiringan.
 T_Shift : digunakan untuk menggerakkan kursor 1 digit ke kanan, untuk
memilih nilai puluhan, satuan, dan koma yang akan diset.
 T_Up : digunakan untuk menaikkan 1 point nilai dari set value.
Penambahan nilai dari 0 sampai dengan 9 untuk satuan dan koma (5 untuk
puluhan) dan kembali lagi ke 0 (jika mengalami penambahan nilai).
 T_Down : digunakan untuk menurunkan 1 point nilai dari set value.
Penambahan nilai dari 9 (untuk satuan dan koma, 5 untuk puluhan) sampai
dengan 0 dan kembali lagi ke 9 (untuk satuan dan koma, 5 untuk puluhan)
jika mengalami penurunan nilai.

Gambar 5.8 Rangkaian keypad empat tombol

Rangkaian buzzer
Buzzer digunakan sebagai sign bahwa kemiringan transmitter berada
diluar range sudut kemiringan yang diinginkan. Buzzer dihubungkan dengan
mikrokontroler melalui PortB.0. Berikut adalah gambar rangkaian buzzer.

Gambar 5.9 Rangkaian buzzer


56

Rangkaian XBee-PRO
XBee-PRO digunakan sebagai sarana untuk mengirimkan data secara
wireless dari lokasi pemantauan ke tempat lain untuk dimonitor. XBee-PRO
bekerja berdasarkan protokol Zigbee. Karena XBee-PRO bekerja pada level
tegangan 3,3 VDC, sementara itu mikrokontroler bekerja pada level tegangan 5
VDC maka jalur data pengiriman dari mikrokontroler (TXD) harus disesuaikan
level tegangan XBee (DIN). Untuk itu, dibuat rangkaian pembagi tegangan
(voltage devider). LED pada pin 13 berfungsi menunjukkan status dari XBee.
LED ini akan menyala ketika status XBee aktif. LED pada pin 15 akan berkedip
ketika proses pengiriman data berlangsung.

Gambar 5.10 Rangkaian XBee-PRO

5.1.2. Hardware bagian Receiver


Receiver berfungsi menerima data sudut dari bagian transmitter untuk
selanjutnya dikirim ke komputer. Rangkaian ini terdiri dari XBee-PRO yang di-
setting sebagai receiver dan rangkaian antarmuka CDC-232. Gambar 5.11
menunjukkan rangkaian hardware bagian receiver. LED pada pin 13 berfungsi
menunjukkan status dari XBee. LED ini akan menyala ketika status XBee aktif.
LED pada pin 15 akan berkedip ketika proses pengiriman data berlangsung.
57

Gambar 5.11 Hardware bagian receiver

5.2. Pembuatan Software (Perangkat Lunak)


Sama seperti hardware, pembuatan software terbagi menjadi 2 bagian,
yaitu program untuk bagian transmitter dan program untuk receiver.
58

5.2.1. Software bagian transmitter


Software pada bagian transmitter adalah program pada mikrokontroler
yang berfungsi untuk mengkonversi hasil pembacaan sensor MX2125 menjadi
angka (sudut) yang ditampilkan pada LCD. Program dibuat dalam bahasa Basic.

Pendeklarasian mikrokontroler
Listing program konfigurasi jenis mikrokontroler, frekuensi crystal, dan
nilai baud rate adalah sebagai berikut.

Listing 5.1
Listing 1
$regfile = “M32def.dat”
$crystal = 16000000
$regfile = “M32def.dat”
$baud = 9600
$crystal = 16000000
Dalam listing 5.1 ditentukan bahwa jenis mikrokontroler yang digunakan
adalah AVR ATMega32 dengan kristal eksternal sebesar 16 MHz dan transfer
rate pengiriman data sebesar 9600 bps. Data yang dikirim secara serial adalah
data yang dikeluarkan melalui PortD.1 (TXD), dengan parity none, 8 bit data, dan
1 bit stop.

Pendeklarasian koneksi LCD


Agar bisa berkomunikasi dengan mikrokontroler, jenis dan pin-pin LCD
harus dideklarasikan terlebih dahulu.

Listing 5.2
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6
= Porta.6 , Db7 = Porta.7 , E = Porta.3 , Rs = Porta.2
Deflcdchar 0 , 4 , 10 , 4 , 32 , 32 , 32 , 32 , 32

Program listing 5.2 berisi pendeklarasian pin-pin LCD dan tipe LCD.
“Config Lcd 16*2” berarti LCD tersebut memiliki 16 kolom dan 2 baris.
“Config Lcdpin” merupakan pengaturan dari bit-bit LCD yang berkomunikasi
dengan port-port mikrokontroler. “Deflcdcar” di gunakan untuk menampilkan
59

karakter khusus di luar huruf dan angka pada LCD. Dalam sistem pengukuran ini
deflcdchar digunakan untuk menampilkan simbol derajat (°).

Pendeklarasian variable
deklarasi untuk beberapa variabel yang dibutuhkan dalam sistem ini
dituliskan dalam listing 5.3.

Listing 5.3
Dim I As Integer
Dim X1 As Word
Dim X2 As Word
Dim Pulsa_x As Word
Dim Pulsa_x1 As Word
Dim Pulsa_x2 As Word
Dim Ag As Single
Dim G As Single
Dim Rangex As Single
Dim K As Byte
Dim Idx As Byte
Dim Tilt As Single
Dim Sdt_x As Single
Dim Sudut_x As String * 10
Dim Spx_1 As String * 10
Dim Spx_2 As String * 10
Dim Spx_min As Single
Dim Spx_max As Single
Dim Y1 As Word
Dim Y2 As Word
Dim Pulsa_y As Word
Dim Pulsa_y1 As Word
Dim Pulsa_y2 As Word
Dim Agy As Single
Dim Gy As Single
Dim Rangey As Single
Dim Ky As Byte
Dim Idxy As Byte
Dim Tilty As Single
Dim Sdt_y As Single
Dim Sudut_y As String * 10
Dim Spy_1 As String * 10
Dim Spy_2 As String * 10
Dim Spy_min As Single
Dim Spy_max As Single
Dim X As Byte
Dim Y As Byte
Dim A As Integer
60

Dim Gpuluhan As Integer , Gsatuan As Integer , Gkoma As


Integer
Dim Dpuluhan As Integer , Dsatuan As Integer , Dkoma As
Integer
Dim Hpuluhan As Integer , Hsatuan As Integer , Hkoma As
Integer
Dim Vtemp As Single , Vpuluhan As Integer , Vkoma As
Single
Dim Dpuluhanmin As Integer , Dsatuanmin As Integer ,
Dkomamin As Integer
Dim Dpuluhanmax As Integer , Dsatuanmax As Integer ,
Dkomamax As Integer
Dim Hpuluhanmin As Integer , Hsatuanmin As Integer ,
Hkomamin As Integer
Dim Hpuluhanmax As Integer , Hsatuanmax As Integer ,
Hkomamax As Integer

Pendeklarasian port I/O


Sebelum dapat digunakan, port-port I/O harus dideklarasikan terlebih
dahulu, apakah akan digunakan sebagai input atau output.

Listing 5.4
Config Portc = Input
Config Porta = Output
Config Portb.0 = Output
T_menu Alias Pinc.1
T_up Alias Pinc.0
T_down Alias Pinc.2
T_shift Alias Pinc.3
Alarm Alias Portb.0

Port C seluruhnya diset sebagai input dan port A seluruhnya sebagai


output. Untuk port B, hanya port 0 yang di-set sebagai output dengan variable
bernama alarm sedangkan yang lainnya tidak dideklarasikan.

Pendeklarasin sub program


Sub program dibuat untuk menyederhanakan dan memudahkan proses
pemrograman. Ada 3 sub program dalam sistem ini, yaitu sub program Rumus_x
untuk menghitung nilai sudut x, sub program Rumus_y untuk menghitung nilai
sudut y, dan sub program Range untuk mengatur mekanisme pemasukan nilai
range sudut yang diinginkan.
61

Listing 5.5
Declare Sub Rumus_x
Declare Sub Rumus_y
Declare Sub Range

Komunikasi sensor MX2125


Output sensor MX2125 berupa pulsa digital dengan perioda 10 ms, untuk
itu output sensor bisa langsung dibaca oleh mikrokontroler. Listing 5.6
memperlihatkan pembacaan pulsa high dan pulsa low output x sensor MX2125
untuk memperoleh nilai perioda pulsa.

Listing 5.6
For I = 1 To 10
Pulsein X1 , Pinc , 7 , 1
Pulsein X2 , Pinc , 7 , 0
Pulsa_x1 = Pulsa_x1 + X1
Pulsa_x2 = Pulsa_x2 + X2
Next

Pulsa_x1 = Pulsa_x1 / 10
Pulsa_x2 = Pulsa_x2 / 10
Pulsa_x = Pulsa_x1 + Pulsa_x2

Pulsa dibaca sebanyak 10 kali untuk kemudian dirata-ratakan. Pulsa high


disimpan dalam variabel Pulsa_x1, Pulsa low disimpan di variabel Pulsa_x2, dan
perioda disimpan di variabel Pulsa_x.
Penentuan besarnya sudut yang dibaca sensor didasarkan pada pulsa yang
dikeluarkan oleh sensor MX2125 dengan menggunakan persamaan (3.4). Untuk
mengkonversi nilai A(g) menjadi sudut, digunakan tabel konstanta seperti
ditunjukkan tabel 3.1. Di dalam tabel tersebut hanya diketahui nilai range sudut,
karena itu harus dicari terlebih dahulu nilai range A(g) (Williams, 2002) dengan
cara:

Nilai Range A(g) = Sudut / Konstanta (5.1)


62

Tabel 5.1 menunjukkan nilai range A(g).

Tabel 5.1 Nilai range A(g)

Range Kemiringan Error Maksimum


Range A(g)
(° arc) (° arc)
± 10 0.17391 57.50
± 20 0.34387 58.10
± 30 0.50804 59.04
± 40 0.66148 60.47
± 50 0.80192 62.35

Listing 5.7 memperlihatkan proses konversi output x sensor MX2125


menjadi sudut yang sesuai.

Listing 5.7
Ag = Pulsa_x1 / Pulsa_x
Ag = Ag - 0.5
Ag = Ag / 0.125

If Ag < 0 Then
Aa = 1
Else
Aa = 0
End If

Ag = Abs(Ag)
G = Ag
Rangex = G * 1000

Select Case Rangex


Case Is <= 173.91 : Idx = 0
Case Is <= 343.87 : Idx = 1
Case Is <= 508.04 : Idx = 2
Case Is <= 661.48 : Idx = 3
Case Is <= 801.92 : Idx = 4
End Select

K = Lookup(idx , Konstanta)
Tilt = G * K
If Aa = 1 Then Tilt = 0 - Tilt
Sdt_x = Tilt
Sudut_x = Fusing(Sdt_x , "##.#")
63

Listing 5.8
Konstanta:
Data 57.5 , 58.16 , 59.04 , 60.47 , 62.35

Rangex A(g) terlebih dahulu dikalikan 1000 untuk memudahkan


perhitungan. Nilai konstanta sensor disimpan dalam Lookup table dengan nama
Konstanta seperti ditunjukkan listing 5.8. Hasil akhir kemiringan sudut disimpan
di variable Sudut_x yang bertipe string dengan pembulatan satu angka dibelakang
koma.

Display pembacaan sudut

Listing 5.9
Locate 1 , 1
Lcd "Sudut X : " ; Sudut_x ; Chr(0)
Locate 2 , 1
Lcd "Sudut Y : " ; Sudut_y ; Chr(0)

Sudut ditampilkan secara bersamaan pada satu display LCD, dimana sudut
x ditampilkan pada baris 1 dan sudut y ditampilkan pada baris 2. Data yang
ditampilkan diambil dari variabel Sudut_x untuk sumbu x dan Sudut_y untuk
sumbu y.

Display range sudut


Range sudut untuk masing-masing axis (x dan y) terdiri dari batas sudut
minimum (X Min untuk sudut x dan Y Min untuk sudut x) dan sudut maksimum
(X Max untuk sudut x dan Y Max untuk sudut x). Ada 3 nilai untuk masing-
masing range yang dimasukkan dalam proses ini, yaitu nilai puluhan, nilai satuan,
dan nilai koma. Ketiga nilai tesebut disimpan dalam 3 variabel berbeda. Untuk
range minimum, masing-masing disimpan dalam variabel Dpuluhanmin,
Dsatuanmin, dan Dkomamin. Sedangkan untuk range maksimum disimpan dalam
variabel Dpuluhanmax, Dsatuanmax, dan Dkomamax.
64

Listing 5.10
Menu1:
Cls
Cursor On Blink
Locate 1 , 1
Lcd "Range Sudut X:"
Locate 2 , 1
Lcd "X Min : "
Locate 2 , 9
Lcd Dpuluhanmin
Locate 2 , 10
Lcd Dsatuanmin
Locate 2 , 11
Lcd "."
Locate 2 , 12
Lcd Dkomamin
Locate 2 , 13
Lcd Chr(0)
A = 0
Gpuluhan = Dpuluhanmin
Gsatuan = Dsatuanmin
Gkoma = Dkomamin
Waitms 100

Proses increment, decrement, dan shifting range sudut

Listing 5.11
Menu2:
Cls
Cursor On Blink
Locate 1 , 1
Lcd "Range Sudut X :"
Locate 2 , 1
Lcd "X Max : "
Locate 2 , 9
Lcd Dpuluhanmax
Locate 2 , 10
Lcd Dsatuanmax
Locate 2 , 11
Lcd "."
Locate 2 , 12
Lcd Dkomamax
Locate 2 , 13
Lcd Chr(0)
A = 0
Gpuluhan = Hpuluhanmax
Gsatuan = Hsatuanmax
Gkoma = Hkomamax
Waitms 100
65

Proses increment dilakukan oleh keypad T_up pada tiap digit puluhan,
satuan, dan koma secara terpisah. Increment akan terjadi jika keypad T_up ditekan
dan dilepas kembali. Setiap satu kali proses penekanan dan pelepasan keypad
T_up increment hanya 1 angka saja dari angka sebelumnya. Proses tidak akan
berjalan jika keypad hanya ditekan saja. Untuk puluhan, increment dimulai dari
angka 0 sampai dengan 5. Jika sudah mencapai angka 5, maka akan kembali ke
angka 0. Increment angka pada digit puluhan ini hanya dibatasi dari angka 0
sampai 5 karena sensor hanya efektif membaca sampai kemiringan 60°. Adapun
untuk penambahan angka satuan dan koma, penambahan dilakukan dari 0 sampai
9 dan kembali ke 0.
Proses decrement range sudut sama seperti dengan proses increment, yaitu
setiap satu kali penekanan dan pelepasan hanya terjadi pengurangan angka 1 saja.
Pengurangan angka jika mencapai angka 0 akan kembali ke angka 5 untuk
puluhan dan dari angka 0 akan kembali ke angka 9 untuk satuan dan koma. Nilai
range yang dimasukkan pada proses ini disimpan dalam 3 variabel berbeda, yaitu
variabel Gpuluhan untuk menyimpan nilai puluhan, Gsatuan untuk menyimpan
nilai satuan, dan Gkoma untuk menyimpan nilai koma (listing 5.12).

Listing 5.12
Sub Range()
Select Case A
Case 0 :
Locate 2 , 9
If T_up = 0 Then
Waitms 10
While T_up = 0
Wend
Gpuluhan = Gpuluhan + 1
If Gpuluhan > 5 Then
Gpuluhan = 0
End If
Locate 2 , 9
Lcd Gpuluhan
Elseif T_down = 0 Then
Waitms 10
While T_down = 0
Wend
Gpuluhan = Gpuluhan - 1
If Gpuluhan < 0 Then
Gpuluhan = 5
End If
66

Locate 2 , 9
Lcd Gpuluhan
Elseif T_shift = 0 Then
Waitms 10
While T_shift = 0
Wend
A = A + 1
Waitms 10
End If

Case 1 :
Locate 2 , 10
If T_up = 0 Then
Waitms 10
While T_up = 0
Wend
Gsatuan = Gsatuan + 1
If Gsatuan > 9 Then
Gsatuan = 0
End If

Locate 2 , 10
Lcd Gsatuan
Elseif T_down = 0 Then
Waitms 10
While T_down = 0
Wend
Gsatuan = Gsatuan - 1
If Gsatuan < 0 Then
Gsatuan = 9
End If

Locate 2 , 10
Lcd Gsatuan
Elseif T_shift = 0 Then
Waitms 10
While T_shift = 0
Wend
A = A + 1
End If

Case 2:
Locate 2 , 12
If T_up = 0 Then
Waitms 10
While T_up = 0
Wend
Gkoma = Gkoma + 1
If Gkoma > 9 Then
Gkoma = 0
End If
Locate 2 , 12
Lcd Gkoma
Elseif T_down = 0 Then
Waitms 10
67

While T_down = 0
Wend
Gkoma = Gkoma - 1
If Gkoma < 0 Then
Gkoma = 9
End If
Locate 2 , 12
Lcd Gkoma
Elseif T_shift = 0 Then
Waitms 10
While T_shift = 0
Wend
A = A + 1
End If

Case 3 :
If T_shift = 1 Then
Waitms 10
A = 0
Locate 2 , 9
End If
End Select
End Sub
End

Penghitungan range sudut


Nilai range sudut yang tersimpan dalam 3 variabel berbeda yang
dimasukkan pada saat pengisian nilai range, kemudian disatukan dalam 1 variable
untuk diperoleh angka tunggal.

Listing 5.13
Call Range
Dpuluhanmin = Gpuluhan
Dsatuanmin = Gsatuan
Dkomamin = Gkoma
Vpuluhan = Dpuluhanmin * 10
Vkoma = Dkomamin * 0.1
Vtemp = Vpuluhan + Dsatuanmin
Vtemp = Vtemp + Vkoma
Spx_min = Vtemp
Spx_1 = Fusing(spx_min , "##.#")
68

Listing 5.14
Call Range
Dpuluhanmax = Gpuluhan
Dsatuanmax = Gsatuan
Dkomamax = Gkoma
Vpuluhan = Dpuluhanmax * 10
Vkoma = Dkomamax * 0.1
Vtemp = Vpuluhan + Dsatuanmax
Vtemp = Vtemp + Vkoma
Spx_max = Vtemp
Spx_2 = Fusing(spx_max , "##.#")

Ketika nilai range minimum lebih besar dari nilai maksimum untuk kedua
sudut, display akan menampilkan pesan kesalahan. Pesan tersebut akan terus
ditampilkan sampai tombol T_Menu ditekan. Ketika tombol T_Menu ditekan,
akan kembali ke Menu1.

Listing 5.15

If Spx_min > Spx_max Then
Goto Menu5
End If

Menu5:
Cls
Do
Locate 1 , 1
Lcd "Salah"
Locate 2 , 1
Lcd "X_Min > X_Max"

If T_menu = 0 Then
Waitms 10
While T_menu = 0
Wend
Goto Menu1
End If
Loop

Alarm
Alarm berfungsi memberi tanda ketika nilai kemiringan aktual berada
diluar range sudut yang ditentukan.
69

Listing 5.16
If Sdt_x < Spx_min Or Sdt_x > Spx_max Or Sdt_y < Spy_min
Or Sdt_y > Spy_max Then
Set Alarm
Else
Reset Alarm
End If

5.2.2. Pengaturan bagian transmisi (XBee-PRO)


Sebelum digunakan, XBee-PRO perlu untuk dikonfigurasikan untuk
memastikan ia beroperasi dengan benar. Ada dua mode operasi dari XBee, yaitu
mode transparent (AT) dan mode API (Packet). Karena rancang bangun ini hanya
menggunakan 2 buah XBee yang membentuk point-to-point yang sederhana,
maka mode yang digunakan adalah mode transparent (AT) dengan sistem
pengalamatan 16 bit. Untuk mengkonfigurasikan XBee, digunakan software X-
CTU yang merupakan software khusus yang disediakan oleh produsennya untuk
mengkonfigurasikan XBee. Berikut adalah tampilan dari software X-CTU.

Gambar 5.12 Tampilan software X-CTU


70

Konfigurasi jaringan XBee-PRO adalah sebagai berikut.


 Untuk receiver
- Channel ID di-set C.
- PAN ID (Personal Area Network Identifier) adalah 1111.
- Source Address (MY) di-set 1234 artinya menggunakan sistem
pengalamatan 16-bit dengan alamat 1234.
- DH (Destination Address High) = 0
- DL (Destination Address Low) = 0
- CE=1 (Coordinator), artinya XBee di-set sebagai receiver
- Interface Data Rate di-set 9600.
- MM = 2, artinya sistem bekerja dengan menggunakan acknowledment
pada saat pengiriman data.
 Untuk transmitter
- Channel ID di-set C (harus sama dengan channel bagian receiver).
- PAN ID (Personal Area Network Identifier) adalah 1111 (harus sama
nilainya dengan bagian receiver).
- Source Address (MY) di-set 1 artinya menggunakan sistem
pengalamatan 16-bit dengan alamat pengiriman yang dituju adalah
1234.
- DH (Destination Address High) = 0.
- DL (Destination Address Low) = 1234.
- CE=0 (End-Device), artinya XBee di-set sebagai transmitter.
- Interface Data Rate di-set 9600.
- MM = 2, artinya sistem bekerja dengan menggunakan acknowledment
pada saat pengiriman data.

5.2.3. Software bagian receiver


Software pada bagian receiver berfungsi sebagai sistem antarmuka
(interface) untuk menampilkan dan menyimpan data sudut yang dikirim oleh
bagian transmitter, dengan menggunakan software Visual Basic 6.
71

Setelah program antarmuka dijalankan maka akan tampil form1 yang


menampilkan data sudut yang diterima oleh port serial komputer pada layar.
Form1 menampilkan tabel selama perekaman data suhu serta grafik hubungan
antara data sudut dengan waktu perekaman data. Tampilan form1 dapat dilihat
pada Gambar 5.13.

Gambar 5.13 Tampilan form1

Prosedur form_load
Prosedur Form_Load akan menampilkan form1 ketika program
antarmuka dijalankan. Sebelum data-data sudut dapat ditampilkan pada tabel dan
grafik, terlebih dahulu dilakukan pengaturan port komputer yang dipakai sebagai
masukan pada port serial komputer, pengaturan baud rate pengiriman data, dan
interval waktu perekaman data pada tabel dan grafik.
Ada lima pilihan port pada komputer, yaitu COM1, COM2, COM3,
COM4, dan COM5. Untuk baudrate, tersedia enam pilihan, yaitu 2400, 4800,
9600, 19200, 38400, dan 56600. Sedangkan interval waktu perekaman data
tersedia dalam empat pilihan, yaitu 1 detik, 2 detik, 5 detik, dan 10 detik. Listing
programnya adalah sebagai berikut:
72

Listing 5.17
Private Sub Form_Load()
simpan.Enabled = False
hapus.Enabled = False
cmdHUb.Enabled = True
cmdPut.Enabled = False
cmdKeluar.Enabled = True
cetakgrafik.Enabled = False
jumlah = 0
MMControl1.Visible = False
koneksi
Timer1.Enabled = False
With Form1.Combo1
.AddItem "COM1"
.AddItem "COM2"
.AddItem "COM3"
.AddItem "COM4"
.AddItem "COM5"
End With
With Form1.Combo2
.AddItem "2400"
.AddItem "4800"
.AddItem "9600"
.AddItem "19200"
.AddItem "38400"
.AddItem "56600"
End With
End Sub

Ketika form1 dijalankan, tombol yang aktif hanya tombol hubung dan
tombol keluar saja.

Prosedur koneksi
Prosedur ini berisi perintah untuk menghubungkan program dengan
provider Microsoft.Jet.OLEDB.4.0, agar ketika data masuk akan langsung
direkam dan disimpan pada database DB_Sudut.mdb di Microsoft Access yang
diberi nama tabel. Datagrid1 akan menampilkan data yang terekam pada database
DB_Sudut.mdb melalui koneksi ADODC. Listing programnya ditunjukkan
oleh listing 5.18.
73

Listing 5.18
Private Sub koneksi()
Set conn = New Connection
conn.Open "PROVIDER=MSDataShape; Data
PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" &
App.Path & "\DB_Sudut.mdb;"
Set rs = New Recordset
rs.Open "select * from tabel", conn, adOpenStatic,
adLockOptimistic
Set DataGrid1.DataSource = rs.DataSource
DataGrid1.Enabled = True
DataGrid1.Columns(0).Width = "1000"
DataGrid1.Columns(1).Width = "1500"
DataGrid1.Columns(2).Width = "1500"
DataGrid1.Columns(3).Width = "1500"
DataGrid1.Columns(4).Width = "1500"
End Sub

Prosedur cmdHub_Click
Setelah pengaturan port, baudrate dan interval waktu perekaman data pada
form1 telah dilakukan, maka untuk memulai komunikasi serial harus diklik
tombol “Hubung”. Jika terjadi kesalahan pada pengaturan port, akan muncul
messagebox peringatan bertuliskan “Port Salah”. Setelah tombol “Hubung” diklik,
tombol “Putus”, “Cetak Grafik”, “Simpan Tabel”, dan “Hapus Data” akan enable,
sedangkan tombol “Hubung” dan “Keluar” akan disable. Label9 yang bertuliskan
“Connected” akan diaktifkan sebagai penanda bahwa perekaman data sedang
berlangsung. Listing ditunjukkan oleh listing 5.19.
74

Listing 5.19
Private Sub cmdHub_Click()
tanda = "B"
simpan.Visible = True
hapus.Visible = True
simpan.Enabled = True
hapus.Enabled = True
cetakgrafik.Enabled = True
Dim port As Integer
On Error GoTo errcode
Select Case Combo1.ListIndex
Case -1
port = 1
Case 0
port = 1
Case 1
port = 2
Case 2
port = 3
Case 3
port = 4
Case 4
port = 5
End Select
If MSComm1.PortOpen = False Then
MSComm1.CommPort = port
MSComm1.RThreshold = 12
MSComm1.Settings = Combo2.List(Combo2.ListIndex) &
",N,8,1"
MSComm1.PortOpen = True

cmdHUb.Enabled = False
cmdPut.Enabled = True
cmdKeluar.Enabled = False
Timer1.Enabled = True
label9.Caption = "Connected"
label9.ForeColor = vbBlue
End If
Exit Sub

errcode:
MsgBox "Port Salah !", vbOKOnly, "Peringatan"
Combo1.SetFocus
End Sub
75

Prosedur cmdPut_Click
Untuk mengakhiri komunikasi serial harus diklik tombol “Putus”.
Port serial yang tadinya terhubung akan diputuskan koneksinya dan perekaman
data dihentikan. Pada Label9 ditampilkan tulisan “Disconnected” berwarna
merah. Listing programnya adalah sebagai berikut:

Listing 5.20
Private Sub cmdPut_Click()
If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
End If
label9.Caption = "Disconnected"
label9.ForeColor = vbRed
Timer1.Enabled = False
cmdHUb.Enabled = True
cmdPut.Enabled = False
cmdKeluar.Enabled = True
simpan.Enabled = True
hapus.Enabled = True
cetakgrafik.Enabled = True
MMControl1.Command = "Close"
End Sub

Prosedur masuk
Komponen MSComm digunakan untuk melakukan perekaman data
interupsi pada port serial, interupsi diterima dengan perintah comEvReceive.
Kontrol MSComm menyediakan fasilitas komunikasi dengan port serial
untuk pengiriman dan penerimaan data. Listing programnya adalah sebagai
berikut:

Listing 5.21
Private Sub masuk()
Dim buffer As String
Dim Data() As String
Dim i As Integer
Dim j As Integer

If MSComm1.CommEvent = comEvReceive Then


buffer = MSComm1.Input
Data = Split(buffer, vbCrLf)
On Error Resume Next
For i = 0 To 5
Text1(i).Text = Data(i)
Next
End If
76

If (Text1(0).Text < Text1(2)) Or (Text1(0) >


Text1(3)) Or (Text1(1) < Text1(4)) Or (Text1(1) >
Text1(5)) Then
alarm
Else
MMControl1.Command = "Close"
End If
End Sub

Data yang masuk melalui port serial diterima oleh variabel buffer. Ada
enam data yang dikirim oleh bagian transmitter dan diterima oleh variable buffer,
yaitu Sudut_x (string), Sudut_y (string), Spx_min (single), Spx_max (single),
Spy_min (single), dan Spy_max (single). Tipe data dari data yang berasal dari
variable Spx_min, Spx_max, Spy_min, dan Spy_max kemudian diubah menjadi
string. Keenam data yang diterima oleh variable buffer kemudian dipecah kembali
kedalam array pada variable Data yang selanjutnya ditampilkan dalam Text0
sampai Text5.
Pada prosedur masuk ini juga dilakukan pengaturan waktu pengaktifan
alarm. Ada empat kondisi yang menyebabkan alarm berbunyi, yaitu ketika nilai
sudut, baik sudut x (Sudut_x) maupun sudut y (Sudut_y), aktual lebih kecil dari
pada nilai range minimum (Spx_min dan Spy_min) atau lebih besar dari nilai
range maksimum (Spx_max dan Spy_max).

Prosedur alarm
Alarm digunakan untuk memberi peringatan berupa suara ketika keadaan
kritis, yaitu kemiringan sudut aktual berada diluar range sudut. Berikut adalah
listing programnya.

Listing 5.22
Private Sub alarm()
MMControl1.Visible = False
MMControl1.Notify = False
MMControl1.Wait = True
MMControl1.Shareable = False
MMControl1.FileName = "D:\lectures\MyWorks\Final
Project\Program\Visual Basic\Alarm Clock Buzzer.mp3"
MMControl1.Command = "Open"
MMControl1.Command = "Play"
End Sub
77

Prosedur simpan
Prosedur ini berfungsi untuk melakukan penyimpanan data tabel pada
Datagrid1 jika tombol “Simpan” diklik. Listing programnya adalah sebagai
berikut:

Listing 5.23
Private Sub simpan_Click()
Dim excel_app As Object
Dim excel_sheet As Object
Dim excel_book As Object
Dim row As Long
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim statement As String
Dim col As Integer
msg = MsgBox("Simpan Data ?", vbYesNo, "Konfirmasi")
If msg = vbNo Then Exit Sub
Screen.MousePointer = vbHourglass
DoEvents
Set excel_app = CreateObject("Excel.Application")
excel_app.Workbooks.Add
Set excel_sheet = excel_app.Worksheets(1)
Set conn = New ADODB.Connection
conn.ConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & App.Path & "\DB_Sudut.mdb;" & _
"Persist Security Info=False"
conn.Open
Set rs = conn.Execute("SELECT * FROM tabel", ,
adCmdText)
For col = 0 To 4
excel_sheet.Cells(1, col + 1) = rs.Fields(col).Name
Next col
row = 2
Do While Not rs.EOF
For col = 0 To rs.Fields.Count - 1
excel_sheet.Cells(row, col + 1) = _
rs.Fields(col).Value
Next col
row = row + 1
rs.MoveNext
Loop
excel_sheet.Range( _
excel_sheet.Cells(1, 1), _
excel_sheet.Cells(2, _
rs.Fields.Count)).Columns.AutoFit
rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing
78

excel_sheet.Rows(1).Font.Bold = True
excel_sheet.Rows(2).Select
excel_app.ActiveWindow.FreezePanes = True
excel_sheet.Cells(1, 1).Select
excel_app.Workbooks(1).Close True
excel_app.Quit
Set excel_sheet = Nothing
Set excel_app = Nothing
Screen.MousePointer = vbDefault
End Sub

Melalui koneksi ADODC maka Datagrid1 dapat terhubung dengan


database pada Microsoft Access dengan provider Microsoft.Jet.OLEDB.4.0.
Setelah tombol “Simpan” diklik, maka akan tampil messagebox untuk konfirmasi
dengan pertanyaan “Simpan Data Table?”, jika tombol “Yes” diklik maka
proses penyimpan data tabel akan dilakukan, jika tombol “No” yang diklik
maka tidak akan dilakukan proses penyimpanan dan kembali ke program semula.
Saat aplikasi penyimpanan database dibuka, akan ditampilkan mouse pointer
berbentuk hourglass.
Data tabel dari Microsoft Access langsung dihubungkan ke
Microsoft Excel dengan mengambil data yang bersumber dari database
DB_Sudut.mdb. File yang disimpan pada Microsoft Excel memiliki ekstensi
*.xlsx.

Prosedur grafik
Prosedur ini berfungsi untuk menampilkan grafik hubungan antara data
sudut dengan waktu pada komponen MSChart1. Listing programnya adalah
sebagai berikut:

Listing 5.24
Private Sub grafik()
If rs.RecordCount = 0 Then Exit Sub
ReDim nilai(1 To rs.RecordCount, 1 To 2)
rs.MoveFirst
For X = 1 To rs.RecordCount
nilai(X, 1) = rs!SudutX
nilai(X, 2) = rs!SudutY
rs.MoveNext
Next X

MSChart1.ChartData = nilai
rs.MoveFirst
79

For X = 1 To rs.RecordCount
MSChart1.row = X
MSChart1.RowLabel = rs!waktu
rs.MoveNext
Next X
End Sub

Data perekaman yang berbentuk array disimpan dalam variable nilai. Jika
tidak ada data yang direkam maka grafik tidak akan dijalankan. Data yang
diterima berubah-ubah tergantung interupsi penerimaan data dari port serial, oleh
karena itu digunakan perintah Redim array berdimensi dua dengan jumlah array
tergantung pada banyaknya variabel data yang diterima.
Grafik yang digunakan adalah grafik dengan tipe XY. Data yang
ditampilkan pada sumbu Y adalah data sudut x dan sudut y yang berasal dari
recordset sudut (rs!SudutX dan rs!SudutY). Pada sumbu X menampilkan
interval waktu perekaman.

Prosedur cetakgrafik
Prosedur ini berfungsi untuk mencetak gambar grafik. Ketika tombol
Cetak Grafik diklik maka akan keluar messagebox yang berisi pertanyaan
konfirmasi “Cetak Grafik?”, jika tombol “Yes” diklik maka grafik akan terhubung
dengan printer untuk mencetak grafik, jika tombol “No” yang diklik maka tidak
akan dilakukan apapun. Listing programnya adalah sebagai berikut:

Listing 5.25
Private Sub cetakgrafik_Click()
msg = MsgBox("Cetak grafik?", vbYesNo, "Konfirmasi")
If msg = vbNo Then Exit Sub
MSChart1.EditCopy
Printer.Print " "
Printer.PaintPicture Clipboard.GetData(), 0, 0
Printer.EndDoc
End Sub
80

Prosedur timer
Timer digunakan untuk pengaturan interval waktu perekaman data yang
diterima port serial. Listing programnya ditunjukkan oleh listing 5.26.

Listing 5.26
Private Sub Timer1_Timer()
Timer1 = CDbl(Timer + Timer1.Interval)
Timer1 = Left(Timer, 8)
tanda = "B"
masuk
data2
grafik
End Sub

Ada empat pengaturan interval waktu penerimaan data, yaitu setiap 1


detik, 2 detik, 5 detik, dan 10 detik. Berikut adalah listing program untuk
pemilihan interval waktu tersebut.

Listing 5.27
Private Sub T1_Click()
Timer1.Interval = 1000
End Sub

Private Sub T2_Click()


Timer1.Interval = 2000
End Sub

Private Sub T3_Click()


Timer1.Interval = 5000
End Sub

Private Sub T4_Click()


Timer1.Interval = 10000
End Sub

Prosedur keluar
Jika tombol “Keluar” diklik, maka akan keluar dari program antarmuka.
Listing programnya adalah sebagai berikut:

Listing 5.28
Private Sub cmdKeluar_Click()
Unload Me
End Sub
BAB VI
HASIL PENELITIAN DAN PEMBAHASAN

6.1. Pengujian Sistem


6.1.1. Pengujian output sensor MX2125
Sebelum diaplikasikan untuk mengukur sudut, sensor MX2125 diuji
terlebih dahulu. Pengujian output sensor bertujuan mengetahui nilai tegangan dan
frekuensi pada saat sensor aktif. Pengujian ini dilakukan dengan cara melihat
bentuk gelombang output (pin 2 untuk Yout dan pin 5 untuk Xout) pada saat
sensor aktif (diberi tegangan) dengan menggunakan osiloskop. Dari pengujian
tersebut dapat diketahui bahwa masing-masing output mempunyai tegangan 4,6
volt untuk Vhigh, 0 volt untuk Vlow, dan frekuensi 100 Hz (perioda 10 ms).

Gambar 6.1 Bentuk gelombang output sensor MX2125

6.1.2. Pengujian sistem telemetri dan antarmuka


Pengujian sistem telemetri dan antarmuka bertujuan untuk memastikan
bahwa data sudut yang dikirimkan oleh transmitter dapat diterima dengan baik
oleh bagian receiver dan komunikasi serial dapat berjalan sebagaimana mestinya.
Pengujian komunikasi serial dilakukan menggunakan Hyperterminal, dengan
pengaturan Connect Using = COM1, baudrate = 9600, Data bits = 8, Parity =
None, Stop bits = 1, dan Flow Control = None setelah terlebih dahulu
menghubungkan rangkaian bagian receiver dengan port USB pada komputer..
Pada mikrokontroler bagian transmitter dibuat listing program seperti
ditunjukkan pada listing 6.1.

81
82

Listing 6.1
$regfile = "M32def.dat"
$baud = 9600
$crystal = 16000000

Dim Nama As String * 10


Dim Nim As String * 10
Dim Prody as String * 10

Config Portd = Output

Do
Nama = "Halim"
Nim = "PA/11245"
Prody = “ELINS”

Print Nama
Print Nim
Print Prody
Loop

Ada tiga variable yang dikirim dalam pengujian sistem telemetri dan
antarmuka ini, yaitu Nama, Nim, dan Prody yang masing-masing mempunyai tipe
data string 10 karakter dan berisi data “Halim”, “PA/11245”, dan”ELINS”.
Gambar 6.2 menunjukkan hasil penerimaan data yang ditampilkan pada
Hyperterminal, yang menunjukkan bahwa komunikasi serial dapat berjalan
dengan baik.

Gambar 6.2 Hasil pengujian telemetri pada hyperterminal

Data dapat dikirim dengan baik secara wireless dalam jarak sekitar 800 m
untuk di luar ruangan dan sekitar 80 m untuk di dalam ruangan.
83

6.2. Hasil Penelitian


6.2.1. Hasil bagian transmitter
Hasil pembacaan sensor pada bagian transmitter ditunjukkan oleh
tampilan nilai sudut pada LCD. Sudut pada LCD ditampilkan dalam dua axis,
yaitu X dan Y yang ditampilkan secara bersamaan seperti ditunjukkan oleh
gambar 6.3.

Gambar 6.3 Hasil pembacaan sensor

Untuk mengetahui tingkat akurasi pembacaan sensor, dilakukan kalibrasi


dengan cara membandingkan pembacaan nilai sudut yang tertera pada LCD
dengan pembacaan busur derajat (digunakan busur derajat karena di laboratorium
fisika tidak ada alat sederhana untuk mengalibrasi sudut). Mekanisme proses
perbandingan diperlihatkan pada Gambar 6.4.

Gambar 6.4 Mekanisme pengujian bagian transmitter


84

Untuk menghitung persentase deviasi antara hasil pembacaan sensor


MX2125 dengan pembacaan busur derajat, digunakan persamaan berikut.

% error = |(( a – b ) / b)| x 100% (6.1)

Dimana : a = nilai sumbu x atau y


b = nilai sudut busur derajat
Hasil pengujian pembacaan sensor ini ditunjukkan pada table 6.1.

Tabel 6.1 Hasil pembacaan sensor MX2125


Sudut Sudut X Sumbu Y
Pada
Busur Pulsa Pulsa Pulsa Pulsa
Nilai Error Nilai Error
Derajat High Low High Low
(°) (%) (°) (%)
(°) (ms) (ms) (ms) (ms)
50 6,0 4,0 50,5 1,0 6,0 4,0 50,2 0,4
45 5,9 4,1 45,3 0,7 5,9 4,1 45,5 1,1
40 5,8 4,2 40,4 1,0 5,8 4,2 40,9 2,3
35 5,7 4,3 35,3 0,9 5,7 4,3 35,7 2,0
30 5,6 4,4 30,5 1,4 5,6 4,4 30,2 0,7
25 5,5 4,5 24,7 1,2 5,5 4,5 25,9 3,6
20 5,4 4,6 19,8 1,0 5,4 4,6 20,2 1,0
15 5,3 4,7 15,4 2,7 5,3 4,7 15,7 4,7
10 5,2 4,8 10,2 2,0 5,2 4,8 9,9 1,0
5 5,1 4,9 4,8 4,0 5,1 4,9 5,2 4,0
0 5,0 5,0 0,3 0,3 5,0 5,0 0,2 0,2
-5 4,9 5,1 -5,2 4,0 4,9 5,1 -4,7 6,0
-10 4,8 5,2 -10,5 5,0 4,8 5,2 -10,2 2,0
-15 4,7 5,3 -15,2 1,3 4,7 5,3 -15,8 5,3
-20 4,6 5,4 -20,2 1,0 4,6 5,4 -20,6 3,0
-25 4,5 5,5 -24,6 1,6 4,5 5,5 -24,4 2,4
-30 4,4 5,6 -30,1 0,3 4,4 5,6 -30,7 2,3
-35 4,3 5,7 -34,7 0,9 4,3 5,7 -34,4 1,7
-40 4,2 5,8 -40,5 1,3 4,2 5,8 -40,8 2,0
-45 4,1 5,9 -44,3 1,6 4,1 5,9 -45,5 1,1
-50 4,0 6,0 -50,4 1,2 4,0 6,0 -50,3 0,6
85

Rata-rata error sudut x = Σ error sudut x / jumlah data sudut x


= 34,4 / 21
= 1,6 %

Rata-rata error sudut y = Σ error sudut x / jumlah data sudut x


= 47,4 / 21
= 2,3 %

Dari tabel 6.1 dapat dibuat grafik hubungan antara nilai sudut aktual yang
diukur oleh busur derajat dengan nilai pembacaan sensor yang terbaca pada LCD
seperti ditunjukkan gambar 6.5.

Gambar 6.5 Grafik nilai sudut aktual vs pembacaan sensor


86

Untuk memasukkan nilai range sudut, dilakukan dengan menekan tombol


T_menu.

T_Menu

T_Down T_Up

T_Shift

Gambar 6.6 Konfigurasi tombol


Tampilan menu range sudut ditunjukkan gambar 6.7.

Gambar 6.7 Tampilan range sudut

Ketika nilai aktual sudut berada di luar range sudut yang telah ditentukan,
alarm akan berbunyi.

6.2.2. Hasil secara keseluruhan


Hasil secara keseluruhan diperoleh setelah mengintegrasikan bagian
menjadi suatu sistem. Bentuk fisik bagian transmitter dan bagian receiver masing-
masing dapat dilihat pada Gambar 6.8 dan Gambar 6.9.
87

Gambar 6.8 Bentuk fisik bagian transmitter

Gambar 6.9 Bentuk fisik bagian receiver

Data sudut yang diterima dari sensor MX2125, diolah pada bagian
transmitter dan dikirimkan ke bagian receiver. Data sudut yang diterima,
ditampilkan pada program antarmuka dengan menggunakan software Visual Basic
6. Setelah program antarmuka dijalankan, maka akan ditampilkan Form, seperti
yang diperlihatkan pada Gambar 6.10.
88

Gambar 6.10 Tampilan form program antarmuka

Sebelum sistem antarmuka dapat terhubung dengan port serial, terlebih


dahulu dilakukan pengaturan terhadap port serial pada bagian “Pengaturan” yang,
meliputi pemilihan COM Port, nilai baud date, dan interval perekaman data.
Setelah dilakukan pengaturan port serial, tombol “Hubung” diklik untuk memulai
perekaman data. Jika pemilihan COM port tidak sesuai dengan COM port dimana
bagian receiver terpasang, maka akan muncul messagebox yang bertuliskan “Port
Salah”, seperti ditunjukkan gambar 6.11.

Gambar 6.11 Messagebox ketika terjadi kesalahan port


89

Ketika perekaman data sedang dilakukan, data-data sudut (baik sudut x


maupun sudut y) yang diterima akan ditampilkan dalam tiga bentuk, yaitu dalam
bentuk tabel (Datagrid1), dalam bentuk grafik (MSChart1), dan dalam bentuk
angka tunggal (text). Lamanya pengambilan data yang ditampilkan pada text,
Datagrid1, dan MSChart1 adalah sesuai dengan pengaturan yang dilakukan pada
bagian interval waktu. Status sistem antarmuka yang sedang terhubung dengan
port serial ditandai dengan tulisan “Connected” pada label9, sedangkan pada saat
tidak terhubung label9 akan bertuliskan “Disconnected”. Gambar 6.12
memperlihatkan tampilan form ketika perekaman data sedang berlangsung.

Gambar 6.12 Tampilan form pada saat perekaman data

Pada form juga ditampilkan range sudut kemiringan yang diinginkan.


Pada gambar 6.12, range sudut untuk sumbu x adalah 0-10° dan untuk sumbu y
adalah 5-15°. Jika nilai aktual kemiringan sudut berada diluar range tersebut,
maka alarm akan berbunyi..
90

Perekaman data dapat dihentikan dengan mengklik tombol “Putus”. Ketika


koneksi terputus, label9 akan berubah menjadi bertuliskan “Disconnected”.
Gambar 6.13 memperlihatkan keadaan pada saat koneksi terputus.

Gambar 6.13 Koneksi terputus

Untuk menyimpan data pada tabel Datagrid1, dilakukan dengan mengklik


tombol “Simpan Data”. Sesaat setelah tombol “Simpan Data” diklik, muncul
messagebox konfirmasi “Simpan Data?”, seperti gambar 6.14.

Gambar 6.14 Konfirmasi untuk menyimpan data tabel

Jika tombol “Yes” diklik, maka data pada tabel dapat langsung disimpan
pada Microsoft Excel dengan ekstensi *.xlsx, seperti gambar 6.15.
91

Gambar 6.15 Tampilan data pada Microsoft Excel

Untuk menghapus data pada tabel Datagrid1, dilakukan dengan mengklik


tombol “Hapus”. Messagebox akan muncul sesaat setelah tombol “Hapus” diklik.
Jika tombol “Yes” pada messagebox tersebut diklik, maka data tabel dan grafik
akan terhapus.

Gambar 6.16 Messagebox konfirmasi untuk menghapus data


92

Data yang ditampilkan dalam grafik dapat dicetak dengan mengklik


tombol “Cetak Grafik”. Gambar 6.17 memperlihatkan messagebox konfirmasi
untuk mencetak grafik. Ketika tombol “Yes“ ditekan, gambar grafik akan tercetak
(print) secara otomatis melalui printer yang terhubung dengan komputer.

Gambar 6.17 Messagebox konfirmasi untuk mencetak grafik

Untuk keluar dari program antarmuka, dilakukan dengan mengklik tombol


“Keluar”.
BAB VII
KESIMPULAN

5.1. Kesimpulan
Dari ujicoba yang telah dilakukan, dapat diambil kesimpulan sebagai
berikut.
1. Sensor MX2125 dapat mengukur sudut kemiringan dengan baik. Kedua
output sensor mempunyai deviasi pembacaan yang cukup kecil terhadap
busur derajat, yaitu 1,6% untuk sumbu x dan 2,3% untuk sumbu y.
2. Sistem telemetri dapat dipancarkan dengan baik pada jangkauan
maksimal 800 meter di luar ruangan tanpa halangan dan maksimal 80
meter di dalam ruangan.
3. Sistem antarmuka dapat menampilkan dan menyimpan data-data kemiringan
tanah, serta menampilkan dan mencetak grafik hubungan suhu dan waktu
selama pemantauan dilakukan.

5.2. Saran
Untuk penelitian selanjutnya sebaiknya ditambahkan beberapa hal yang
dapat meningkatkan kinerja sistem, diantaranya:
1. Untuk memperoleh data yang lebih komprehensif tentang kondisi tanah
rawan longsor yang sedang dipantau, dapat ditambahkan sensor lain seperti
sensor extensometer untuk memantau rekahan tanah, rain gauge untuk
mengukur curah hujan, dan lain-lain.
2. Bagian transmitter dibuat beberapa buah yang ditempatkan di beberapa titik
sehingga seluruh titik berpotensi longsor bisa termonitor.
3. Untuk meningkatkan jangkauan pengiriman data, modul Xbee-PRO bisa
diganti dengan modul yang mempunyai jangkauan yang lebih jauh.

93
DAFTAR PUSTAKA

Anonim, 2002, Improved, Ultra Low Noise ±2 g Dual Axis Accelerometer with
Digital Outputs, search.alkon.net/cgi-bin/pdf.pl?pdfname=memsic/
mxd2125gl.pdf, Diakses tanggal 5 Maret 2010.

Anonim, 2005a, Accelerometer-Getting Started, http://www.parallax.com/Portals/


0/Downloads/docs/prod/compshop/SICMemsicTut.pdf, Diakses tanggal 5
Maret 2010.

Anonim, 2005b, Improved, Ultra Low Noise ±3 g Dual Axis Accelerometer with
Digital Outputs, http://www.parallax.com/Portals/0/Downloads/docs/
prod/acc/MXD2125G%26M.pdf, Diaksess tanggal 5 Maret 2010.

Anonim, 2008a, Pengenalan Gerakan Tanah, http://www.esdm.go.id/publikasi/


lainlain/doc_download/489-pengenalan-gerakan-tanah.html, Diakses
tanggal 1 Mei 2010.

Anonim, 2008b, XBee™/XBee-PRO™ OEM RF Modules, http://ssdl.stanford.


edu/ssdl/images/stories/AA236/0708A/Lab/Rover/Parts/xbeeproproductma
nual.pdf, Diakses tanggal 8 Maret 2010.

Anonim, 2009a, 8-bit AVR Microcontroller with 32K Bytes In-System


Programmable, http://www.atmel.com/dyn/resources/prod_documents/
doc2503.pdf, Diakses tanggal 27 Maret 2010.

Anonim, 2009b, Character LCD Module User Manual, http://www.datasheetdir.


com/go-LMB161ABC-1.pdf, Diakses tanggal 1 Maret 2010.

Anonim, 2009c, Memsic 2125 Dual-Axis Accelerometer (#28017),


http://www.parallax.com/Portals/0/Downloads/docs/prod/sens/28017-
Memsic2Axis-v2.0.pdf, Diakses tanggal 5 Maret 2010.

Anonim, 2010a, Data Bencana, http://www.ppk-depkes.org/index.php?option=


com_databencana&task=bencana&id=4&Itemid=163, Diakses tanggal 1
Mei 2010.

94
95

Anonim, 2010b, Lampiran L.1 Klasifikasi Dan Faktor Penyebab Bencana


Longsor, http://www.penataanruang.net/taru/nspm/pedoman%20
pemanfaatan%20ruang/longsor-nov/PDF/Lampiran(L1).pdf, Diakses
tanggal 1 Mei 2010.

Anonim, 2010c, Profil, http://www.ews-ugm.com/profil/, Diakses tanggal 1 Mei


2010.

Clifford, M. dan Gomez, L, 2005, Measuring Tilt with Low-g Accelerometers,


www.freescale.com/files/sensors/doc/app_note/AN3107.pdf, Diakses
tanggal 6 Maret 2010.

Arnhardt, C., Asch, K., Azzam, R., Bill, R., Fernandez-Steeger, T. M., Homfeld,
S.D., Kallash, A., Niemeyer, F., Ritter, H., Toloczyki, M., dan Walter, K.,
2007, Sensor based Landslide Early Warning System – SLEWS
Development of a Geoservice Infrastructure as Iasis for Early Warning
Systems for Landslides by Integration of Real-time Sensors,
http://www.winsoc.org/pdf/ATT00010.pdf, Diakses tanggal 1 Mei 2010.

Bugnacki, M., Pyle, J., Emerald, P., 2010, A Micromachined Thermal


Accelerometer for Motion, Inclination, and Vibration Measurement,
http://archives.sensorsmag.com/articles/0601/98/main.shtml, Diakses
tanggal 5 Maret 2010.

Dao, R., 2005, Inclination sensing with thermal accelerometers, www.memsic.cn/


data/pdfs/an-00mx-007.pdf, Diakses tanggal 5 Maret 2010.

Ergen, S. C., 2004, ZigBee/IEEE802.15.4 Summary, http://www.sinemergen.com


/academic/publications/zigbee.pdf, Diakses tanggal 8 Maret 2010.

Khadiyanto, P., 2008, Gerakan Tanah (Longsoran), http://parfikh.blogspot.com


/2008/12/gerakan-tanah-longsoran.html, Diakses tanggal 1 Mei 2010.

Rahmaniar, W., 2009, Prototipe Robot Pemantau Erupsi Gunung Berapi Berbasis
Deteksi Suhu Menggunakan Telemetri Modulasi Amplitude Shifting
Keying, Skripsi, Jurusan Fisika FMIPA UGM, Yogyakarta.

Ramesh, V.M., 2009, Real-time Wireless Sensor Network for Landslide


Detection,http://www.winsoc.org/pdf/SENSORCOMM%202009%20IEEE
%20format.pdf, Diakses tanggal 1 Mei 2010.
96

Sani, R.A., 2010, Longsoran (Jenis dan Faktor Penyebabnya), http://www.scribd.


com/doc/29566309/Long-So-Ran, Diakses tanggal 1 Mei 2010.

Tamura, O., 2010, CDC-232, http://www.recursion.jp/avrcdc/cdc-232.html,


Diakses tanggal 9 Maret 2010.

Tanumiharjo, W., 2006, Digital Inclinometer, Tugas Akhir, Jurusan Teknik


Elektro Fakultas Teknologi Industri Universitas Kristen Petra, Surabaya.

Walter. K., Niemeyer. F., Bill. R., 2008, Geosensor Web Enablement in Early
Warning System for Landslides, http://www.ikg.uni-
hannover.de/geosensor/Lecture/Thursday/Session4/sess4_walter_niemeye
r.pdf, Diakses tanggal 1 Mei 2010.

Wheeler, A., 2006, Zigbee Wireless Network for Industrial Systems,


http://www.microcontroller.com/Embedded.asp?did=149, Diakses tanggal
8 Maret 2010.

Widiasrini, P.T.R.F, 2005, Zigbee: Komunikasi Wireless Berdaya Rendah,


http://journal.uii.ac.id/index.php/Snati/article/viewFile/1389/1169,
Diakses tanggal 8 Maret 2010.

Williams, J., 2002, It’s All About Angles, http://www.parallax.com/Portals/0/


Downloads/docs/cols/nv/vol3/col/nv92.pdf, Diakses tanggal 5 Maret 2010.

Zakaria, Z., 2010, Analisis Kestabilan Lereng Tanah, http://www.scribd.com/doc/


28013183/Analisis-Kestabilan-Lereng-Tanah, Diakses tanggal 1 Mei
2010.
LAMPIRAN

L.1. Listing Program Mikrokontroler

$regfile = "m32def.dat"
$crystal = 16000000
$baud = 9600

Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 =


Porta.6 , Db7 = Porta.7 , E = Porta.3 , Rs = Porta.2
Config Lcd = 16 * 2
Deflcdchar 0 , 4 , 10 , 4 , 32 , 32 , 32 , 32 , 32

Dim I As Integer
Dim X1 As Word
Dim X2 As Word
Dim Pulsa_x As Word
Dim Pulsa_x1 As Word
Dim Pulsa_x2 As Word
Dim Ag As Single
Dim G As Single
Dim Rangex As Single
Dim K As Byte
Dim Idx As Byte
Dim Tilt As Single
Dim Sdt_x As Single
Dim Sudut_x As String * 10
Dim Spx_1 As String * 10
Dim Spx_2 As String * 10
Dim Spx_min As Single
Dim Spx_max As Single

Dim Y1 As Word
Dim Y2 As Word
Dim Pulsa_y As Word
Dim Pulsa_y1 As Word
Dim Pulsa_y2 As Word
Dim Agy As Single
Dim Gy As Single
Dim Rangey As Single
Dim Ky As Byte
Dim Idxy As Byte
Dim Tilty As Single
Dim Sdt_y As Single
Dim Sudut_y As String * 10
Dim Spy_1 As String * 10
Dim Spy_2 As String * 10
Dim Spy_min As Single
Dim Spy_max As Single

Dim X As Byte
Dim Y As Byte

97
98

Dim A As Integer
Dim Gpuluhan As Integer , Gsatuan As Integer , Gkoma As Integer
Dim Dpuluhan As Integer , Dsatuan As Integer , Dkoma As Integer
Dim Hpuluhan As Integer , Hsatuan As Integer , Hkoma As Integer
Dim Vtemp As Single , Vpuluhan As Integer , Vkoma As Single
Dim Dpuluhanmin As Integer , Dsatuanmin As Integer , Dkomamin As
Integer
Dim Dpuluhanmax As Integer , Dsatuanmax As Integer , Dkomamax As
Integer
Dim Hpuluhanmin As Integer , Hsatuanmin As Integer , Hkomamin As
Integer
Dim Hpuluhanmax As Integer , Hsatuanmax As Integer , Hkomamax As
Integer

Declare Sub Range


Declare Sub Rumus_x
Declare Sub Rumus_y

Config Portc = Input


Config Porta = Output
Config Portb.0 = Output

T_menu Alias Pinc.1


T_up Alias Pinc.0
T_down Alias Pinc.2
T_shift Alias Pinc.3
Alarm Alias Portb.0

X1 = 0
X2 = 0
Y1 = 0
Y2 = 0
A = 0
Gpuluhan = 0
Gsatuan = 0
Gkoma = 0
Dpuluhan = 0
Dsatuan = 0
Dkoma = 0
Vpuluhan = 0
Vkoma = 0
Vtemp = 0

Cursor Off
Locate 1 , 1
Lcd " LEWS Prototype"
Locate 2 , 1
Lcd "Powered by HALIM"
Wait 1
Cls

Do
Cursor Off
Call Rumus_x
Call Rumus_y
99

Locate 1 , 1
Lcd "Sudut X : " ; Sudut_x ; Chr(0)
Locate 2 , 1
Lcd "Sudut Y : " ; Sudut_y ; Chr(0)
Print Sudut_x
Print Sudut_y
Print Spx_1
Print Spx_2
Print Spy_1
Print Spy_2

If T_menu = 0 Then
Waitms 10
While T_menu = 0
Wend
Gosub Menu1
End If

If Sdt_x < Spx_min Or Sdt_x > Spx_max Or Sdt_y < Spy_min Or Sdt_y
> Spy_max Then
Set Alarm
Else
Reset Alarm
End If

Loop

'Menu Range X
Menu1:
Cls
Cursor On Blink
Locate 1 , 1
Lcd "Range Sudut X:"
Locate 2 , 1
Lcd "X Min : "
Locate 2 , 9
Lcd Dpuluhanmin
Locate 2 , 10
Lcd Dsatuanmin
Locate 2 , 11
Lcd "."
Locate 2 , 12
Lcd Dkomamin
Locate 2 , 13
Lcd Chr(0)

A = 0
Gpuluhan = Dpuluhanmin
Gsatuan = Dsatuanmin
Gkoma = Dkomamin
Waitms 10

Do
Call Range
Dpuluhanmin = Gpuluhan
Dsatuanmin = Gsatuan
100

Dkomamin = Gkoma
Vpuluhan = Dpuluhanmin * 10
Vkoma = Dkomamin * 0.1
Vtemp = Vpuluhan + Dsatuanmin
Vtemp = Vtemp + Vkoma
Spx_min = Vtemp
Spx_1 = Fusing(spx_min , "##.#")

If T_menu = 0 Then
Waitms 10
While T_menu = 0
Wend
Goto Menu2
End If

Loop

Menu2:
Cls
Cursor On Blink
Locate 1 , 1
Lcd "Range Sudut X :"
Locate 2 , 1
Lcd "X Max : "
Locate 2 , 9
Lcd Dpuluhanmax
Locate 2 , 10
Lcd Dsatuanmax
Locate 2 , 11
Lcd "."
Locate 2 , 12
Lcd Dkomamax
Locate 2 , 13
Lcd Chr(0)

A = 0
Gpuluhan = Dpuluhanmax
Gsatuan = Dsatuanmax
Gkoma = Dkomamax
Waitms 10

Do
Call Range
Dpuluhanmax = Gpuluhan
Dsatuanmax = Gsatuan
Dkomamax = Gkoma
Vpuluhan = Dpuluhanmax * 10
Vkoma = Dkomamax * 0.1
Vtemp = Vpuluhan + Dsatuanmax
Vtemp = Vtemp + Vkoma
Spx_max = Vtemp
Spx_2 = Fusing(spx_max , "##.#")

If T_menu = 0 Then
Waitms 10
While T_menu = 0
101

Wend
If Spx_min > Spx_max Then
Goto Menu5
Else
Goto Menu3
End If
End If

Loop

'Menu Range Y
Menu3:
Cls
Cursor On Blink
Locate 1 , 1
Lcd "Range Sudut Y :"
Locate 2 , 1
Lcd "Y Min : "
Locate 2 , 9
Lcd Hpuluhanmin
Locate 2 , 10
Lcd Hsatuanmin
Locate 2 , 11
Lcd "."
Locate 2 , 12
Lcd Hkomamin
Locate 2 , 13
Lcd Chr(0)

A = 0
Gpuluhan = Hpuluhanmin
Gsatuan = Hsatuanmin
Gkoma = Hkomamin
Waitms 100

Do
Call Range
Hpuluhanmin = Gpuluhan
Hsatuanmin = Gsatuan
Hkomamin = Gkoma
Vpuluhan = Hpuluhanmin * 10
Vkoma = Hkomamin * 0.1
Vtemp = Vpuluhan + Hsatuanmin
Vtemp = Vtemp + Vkoma
Spy_min = Vtemp
Spy_1 = Fusing(spy_min , "##.#")

If T_menu = 0 Then
Waitms 10
While T_menu = 0
Wend
Goto Menu4
End If

Loop
102

Menu4:
Cls
Cursor On Blink
Locate 1 , 1
Lcd "Range Sudut Y :"
Locate 2 , 1
Lcd "Y Max : "
Locate 2 , 9
Lcd Hpuluhanmax
Locate 2 , 10
Lcd Hsatuanmax
Locate 2 , 11
Lcd "."
Locate 2 , 12
Lcd Hkomamax
Locate 2 , 13
Lcd Chr(0)

A = 0
Gpuluhan = Hpuluhanmax
Gsatuan = Hsatuanmax
Gkoma = Hkomamax
Waitms 100

Do
Call Range
Hpuluhanmax = Gpuluhan
Hsatuanmax = Gsatuan
Hkomamax = Gkoma
Vpuluhan = Hpuluhanmax * 10
Vkoma = Hkomamax * 0.1
Vtemp = Vpuluhan + Hsatuanmax
Vtemp = Vtemp + Vkoma
Spy_max = Vtemp
Spy_2 = Fusing(spy_max , "##.#")

If T_menu = 0 Then
Waitms 10
While T_menu = 0
Wend
If Spy_min > Spy_max Then
Goto Menu6
Else
Return
End If
End If

Loop

Menu5:
Cls
Do
Locate 1 , 1
Lcd "Salah"
Locate 2 , 1
Lcd "X_Min > X_Max"
103

If T_menu = 0 Then
Waitms 10
While T_menu = 0
Wend
Goto Menu1
End If

Loop

Menu6:
Cls
Do
Locate 1 , 1
Lcd "Salah"
Locate 2 , 1
Lcd "Y_Min > Y_Max"

If T_menu = 0 Then
Waitms 10
While T_menu = 0
Wend
Goto Menu3
End If

Loop

'Proses Pembacaan Sensor


Sub Rumus_x
For I = 1 To 10
Pulsein X1 , Pinc , 7 , 1
Pulsein X2 , Pinc , 7 , 0
Pulsa_x1 = Pulsa_x1 + X1
Pulsa_x2 = Pulsa_x2 + X2
Next
Pulsa_x1 = Pulsa_x1 / 10
Pulsa_x2 = Pulsa_x2 / 10
Pulsa_x = Pulsa_x1 + Pulsa_x2
Ag = Pulsa_x1 / Pulsa_x
Ag = Ag - 0.5
Ag = Ag / 0.125
If Ag < 0 Then
X = 1
Else
X = 0
End If

Ag = Abs(ag)
G = Ag
Rangex = G * 1000
Select Case Rangex
Case Is <= 173.91 : Idx = 0
Case Is <= 343.87 : Idx = 1
Case Is <= 508.04 : Idx = 2
Case Is <= 661.48 : Idx = 3
Case Is <= 801.92 : Idx = 4
End Select
104

K = Lookup(idx , Konstanta)
Tilt = G * K
If X = 1 Then Tilt = 0 - Tilt
Sdt_x = Tilt
Sudut_x = Fusing(sdt_x , "##.#")
End Sub

Sub Rumus_y
For I = 1 To 10
Pulsein Y1 , Pinc , 6 , 1
Pulsein Y2 , Pinc , 6 , 0
Pulsa_y1 = Pulsa_y1 + Y1
Pulsa_y2 = Pulsa_y2 + Y2
Next
Pulsa_y1 = Pulsa_y1 / 10
Pulsa_y2 = Pulsa_y2 / 10
Pulsa_y = Pulsa_y1 + Pulsa_y2
Agy = Pulsa_y1 / Pulsa_y
Agy = Agy - 0.5
Agy = Agy / 0.125
If Agy < 0 Then
Y = 1
Else
Y = 0
End If

Agy = Abs(agy)
Gy = Agy
Rangey = Gy * 1000
Select Case Rangey
Case Is <= 173.91 : Idxy = 0
Case Is <= 343.87 : Idxy = 1
Case Is <= 508.04 : Idxy = 2
Case Is <= 661.48 : Idxy = 3
Case Is <= 801.92 : Idxy = 4
End Select

Ky = Lookup(idxy , Konstantay)
Tilty = Gy * Ky
If Y = 1 Then Tilty = 0 - Tilty
Sdt_y = Tilty
Sudut_y = Fusing(sdt_y , "##.#")

End Sub

'Proses increment dan decrement range sudut


Sub Range()
Select Case A
Case 0 :
Locate 2 , 9
If T_up = 0 Then
Waitms 10
While T_up = 0
Wend
Gpuluhan = Gpuluhan + 1
If Gpuluhan > 5 Then
105

Gpuluhan = 0
End If
Locate 2 , 9
Lcd Gpuluhan
Elseif T_down = 0 Then
Waitms 10
While T_down = 0
Wend
Gpuluhan = Gpuluhan - 1
If Gpuluhan < 0 Then
Gpuluhan = 5
End If
Locate 2 , 9
Lcd Gpuluhan
Elseif T_shift = 0 Then
Waitms 10
While T_shift = 0
Wend
A = A + 1
Waitms 10
End If

Case 1 :
Locate 2 , 10
If T_up = 0 Then
Waitms 10
While T_up = 0
Wend
Gsatuan = Gsatuan + 1
If Gsatuan > 9 Then
Gsatuan = 0
End If
Locate 2 , 10
Lcd Gsatuan
Elseif T_down = 0 Then
Waitms 10
While T_down = 0
Wend
Gsatuan = Gsatuan - 1
If Gsatuan < 0 Then
Gsatuan = 9
End If
Locate 2 , 10
Lcd Gsatuan
Elseif T_shift = 0 Then
Waitms 10
While T_shift = 0
Wend
A = A + 1
End If

Case 2:
Locate 2 , 12
If T_up = 0 Then
Waitms 10
While T_up = 0
106

Wend
Gkoma = Gkoma + 1
If Gkoma > 9 Then
Gkoma = 0
End If
Locate 2 , 12
Lcd Gkoma
Elseif T_down = 0 Then
Waitms 10
While T_down = 0
Wend
Gkoma = Gkoma - 1
If Gkoma < 0 Then
Gkoma = 9
End If
Locate 2 , 12
Lcd Gkoma
Elseif T_shift = 0 Then
Waitms 10
While T_shift = 0
Wend
A = A + 1
End If

Case 3 :
If T_shift = 1 Then
Waitms 10
A = 0
Locate 2 , 9
End If
End Select
End Sub
End

'------------------------------------------'

Konstanta:
Data 57.5 , 58.16 , 59.04 , 60.47 , 62.35

Konstantay:
Data 57.5 , 58.16 , 59.04 , 60.47 , 62.35
107

L.2. Listing Program Visual Basic


Dim conn As Connection
Dim rs As Recordset
Dim jumlah As Integer
Dim tanda As String

Private Sub alarm()


MMControl1.Visible = False
MMControl1.Notify = False
MMControl1.Wait = True
MMControl1.Shareable = False
MMControl1.FileName = "D:\lectures\MyWorks\Final
Project\Program\Visual Basic\Alarm Clock Buzzer.mp3"
MMControl1.Command = "Open"
MMControl1.Command = "Play"
End Sub

Private Sub grafik()


If rs.RecordCount = 0 Then Exit Sub
ReDim nilai(1 To rs.RecordCount, 1 To 2)
rs.MoveFirst
For X = 1 To rs.RecordCount
nilai(X, 1) = rs!SudutX
nilai(X, 2) = rs!SudutY
rs.MoveNext
Next X

MSChart1.ChartData = nilai
rs.MoveFirst

For X = 1 To rs.RecordCount
MSChart1.row = X
MSChart1.RowLabel = rs!waktu
rs.MoveNext
Next X
End Sub

Private Sub koneksi()


Set conn = New Connection
conn.Open "PROVIDER=MSDataShape; Data
PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path &
"\DB_Sudut.mdb;"
Set rs = New Recordset
rs.Open "select * from tabel", conn, adOpenStatic,
adLockOptimistic
Set DataGrid1.DataSource = rs.DataSource
DataGrid1.Enabled = True
DataGrid1.Columns(0).Width = "1000"
DataGrid1.Columns(1).Width = "1500"
DataGrid1.Columns(2).Width = "1500"
DataGrid1.Columns(3).Width = "1500"
DataGrid1.Columns(4).Width = "1500"
End Sub
108

Private Sub cmdHub_Click()


tanda = "B"
simpan.Visible = True
hapus.Visible = True
simpan.Enabled = True
hapus.Enabled = True
cetakgrafik.Enabled = True

Dim port As Integer


On Error GoTo errcode
Select Case Combo1.ListIndex
Case -1
port = 1
Case 0
port = 1
Case 1
port = 2
Case 2
port = 3
Case 3
port = 4
Case 4
port = 5

End Select
If MSComm1.PortOpen = False Then
MSComm1.CommPort = port
MSComm1.RThreshold = 12
MSComm1.Settings = Combo2.List(Combo2.ListIndex) & ",N,8,1"
MSComm1.PortOpen = True

cmdHUb.Enabled = False
cmdPut.Enabled = True
cmdKeluar.Enabled = False
Timer1.Enabled = True
label9.Caption = "Connected"
label9.ForeColor = vbBlue
End If
Exit Sub

errcode:
MsgBox "Port Salah !", vbOKOnly, "Peringatan"
Combo1.SetFocus
End Sub

Private Sub cmdKeluar_Click()


Unload Me
End
End Sub

Private Sub cmdPut_Click()


If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
End If
label9.Caption = "Disconnected" '
label9.ForeColor = vbRed
109

Timer1.Enabled = False
cmdHUb.Enabled = True
cmdPut.Enabled = False
cmdKeluar.Enabled = True
simpan.Enabled = True
hapus.Enabled = True
cetakgrafik.Enabled = True
MMControl1.Command = "Close"

End Sub

Private Sub cetakgrafik_Click()


msg = MsgBox("Cetak grafik?", vbYesNo, "Konfirmasi")
If msg = vbNo Then Exit Sub
MSChart1.EditCopy
Printer.Print " "
Printer.PaintPicture Clipboard.GetData(), 0, 0
Printer.EndDoc
End Sub

Private Sub DataGrid1_Click()


simpan.Visible = True
hapus.Visible = True
simpan.Enabled = True
hapus.Enabled = True
End Sub

Private Sub Form_Load()


simpan.Enabled = False
hapus.Enabled = False
cmdHUb.Enabled = True
cmdPut.Enabled = False
cmdKeluar.Enabled = True
cetakgrafik.Enabled = False
jumlah = 0
MMControl1.Visible = False
koneksi
Timer1.Enabled = False
With Form1.Combo1
.AddItem "COM1"
.AddItem "COM2"
.AddItem "COM3"
.AddItem "COM4"
.AddItem "COM5"
End With
With Form1.Combo2
.AddItem "2400"
.AddItem "4800"
.AddItem "9600"
.AddItem "19200"
.AddItem "38400"
.AddItem "56600"
End With
End Sub
110

Private Sub hapus_Click()


msg = MsgBox("Hapus Data ?", vbYesNo, "Konfirmasi")
If msg = vbNo Then Exit Sub
If rs.RecordCount <> 0 Then rs.MoveFirst
While rs.EOF = False
rs.Delete
rs.MoveNext
Wend
End Sub

Private Sub simpan_Click()


Dim excel_app As Object
Dim excel_sheet As Object
Dim excel_book As Object
Dim row As Long
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim statement As String
Dim col As Integer

msg = MsgBox("Simpan Data ?", vbYesNo, "Konfirmasi")


If msg = vbNo Then Exit Sub

Screen.MousePointer = vbHourglass
DoEvents
Set excel_app = CreateObject("Excel.Application")
excel_app.Workbooks.Add
Set excel_sheet = excel_app.Worksheets(1)
Set conn = New ADODB.Connection
conn.ConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & App.Path & "\DB_Sudut.mdb;" & _
"Persist Security Info=False"
conn.Open
Set rs = conn.Execute("SELECT * FROM tabel", , adCmdText)
For col = 0 To 4
excel_sheet.Cells(1, col + 1) = rs.Fields(col).Name
Next col
row = 2
Do While Not rs.EOF
For col = 0 To rs.Fields.Count - 1
excel_sheet.Cells(row, col + 1) = _
rs.Fields(col).Value
Next col
row = row + 1
rs.MoveNext
Loop
excel_sheet.Range( _
excel_sheet.Cells(1, 1), _
excel_sheet.Cells(2, _
rs.Fields.Count)).Columns.AutoFit
rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing
excel_sheet.Rows(1).Font.Bold = True
111

excel_sheet.Rows(2).Select
excel_app.ActiveWindow.FreezePanes = True
excel_sheet.Cells(1, 1).Select
excel_app.Workbooks(1).Close True
excel_app.Quit
Set excel_sheet = Nothing
Set excel_app = Nothing
Screen.MousePointer = vbDefault
End Sub

Private Sub T1_Click()


Timer1.Interval = 1000
End Sub

Private Sub T2_Click()


Timer1.Interval = 2000
End Sub

Private Sub T3_Click()


Timer1.Interval = 5000
End Sub

Private Sub T4_Click()


Timer1.Interval = 10000
End Sub

Private Sub data2()


nomor
rs.AddNew
rs!No = jumlah + 1
rs!waktu = Format(Time, "hh:mm:ss")
rs!Tanggal = Format(Date, "dd/mm/yyyy")
rs!SudutX = Val(Text1(0).Text)
rs!SudutY = Val(Text1(1).Text)
rs.Update
End Sub

Private Sub nomor()


If rs.RecordCount <> 0 Then
rs.MoveLast
jumlah = Val(rs!No)
Else
jumlah = 0
End If
End Sub

Private Sub Timer1_Timer()


Timer1 = CDbl(Timer + Timer1.Interval)
Timer1 = Left(Timer, 8)
'Label3.Caption = derajat
tanda = "B"
masuk
data2
grafik
End Sub
112

Private Sub masuk()


Dim Data() As String
Dim i As Integer
Dim j As Integer

If MSComm1.CommEvent = comEvReceive Then


buffer = MSComm1.Input

Data = Split(buffer, vbCrLf)


On Error Resume Next
For i = 0 To 5
Text1(i).Text = Data(i)
Next
End If

If (Text1(0).Text < Text1(2)) Or (Text1(0) > Text1(3)) Or


(Text1(1) < Text1(4)) Or (Text1(1) > Text1(5)) Then
alarm
Else
MMControl1.Command = "Close"
End If
End Sub
113

L.3. Datasheet Mikrokontroler ATMega3


114
115
116
117
118

L.4. Datasheet Sensor MX2125


119
120
121
122
123
124

L.5. Datasheet Xbee-PRO


125
126
127
128
129
130
131

You might also like