PENGUKUR FIELD STRENGTH DAN BIT RATErepository.usd.ac.id/28431/2/025114028_Full.pdf · PADA...
Transcript of PENGUKUR FIELD STRENGTH DAN BIT RATErepository.usd.ac.id/28431/2/025114028_Full.pdf · PADA...
i
PENGUKUR FIELD STRENGTH DAN BIT RATE
PADA OPTIMASI WLAN BERBASIS PC
TUGAS AKHIR
Diajukan untuk memenuhi salah satu syarat
memperoleh gelar Sarjana Teknik pada
Program Studi Teknik Elektro
Disusun oleh
OKI NUGROHO
NIM : 045114028
PROGRAM STUDI TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2009
ii
FIELD STRENGTH AND BIT RATE MEASUREMENT
ON COMPUTER-BASED WLAN OPTIMIZATION
FINAL PROJECT
In partial fulfillment of the requirements for the degree of
Sarjana Teknik Electrical Engineering Study Program
Electrical Engineering Department
Science and Technology Faculty Sanata Dharma University
OKI NUGROHO
NIM : 045114028
ELECTRICAL ENGINEERING STUDY PROGRAM
ELECTRICAL ENGINEERING DEPARTMENT
SCIENCE AND TECHNOLOGY FACULTY
SANATA DHARMA UNIVERSITY
2009
�
�
�
vi��
�������������������������� �
���������������������������������������
������������������������������� ��
������������������������������������
�
………………………………………
��������������� ��������
�������������������������������������� �����
�������������� ������ ������������
��������������������������������
�����������������������
����������������������������������������������
������������������� !��������������"��
�
����
�
INTISARI
Sejalan dengan perkembangan Wireless Local Area Network (WLAN) yang semakin pesat, penentuan lokasi client yang optimal menjadi masalah yang sangat penting. Penentuan lokasi client akan berpengaruh pada koneksi internet client. Semakin besar nilai field strength dan bit rate, semakin baik pula koneksi internet client. Sistem optimasi WLAN dibutuhkan untuk mengetahui letak client
secara optimal. Sistem optimasi WLAN membutuhkan suatu program pengukur field strength dan bit rate yang dapat melakukan tracking data lokasi client dari GPS.
Program pengukur field strength dan bit rate merupakan program yang bekerja untuk melakukan pengukuran nilai field strength dan bit rate berdasarkan data yang diperoleh dari WLAN card sebuah PC/laptop. Program ini juga melakukan tracking lokasi dengan mengkonversi data lokasi Geodesi dari memory
card GPS menjadi data UTM. Data nilai field strength, bit rate, dan data posisi UTM oleh program disimpan dalam file teks untuk memudahkan pengambilan data oleh program optimasi WLAN yang lain.
Program pengukur field strength dan bit rate telah diimplementasikan dan dilakukan pengujian untuk mengamati hasil perancangan. Berdasarkan hasil pengujian, program ini telah bekerja dan dapat melakukan tracking data lokasi, pengukuran field strength dan bit rate dengan baik.
Kata kunci : WLAN, GPS, field strength, bit rate
�
�����
�
ABSTRACT
In line with rapidly development of Wireless Local Area Network (WLAN), determination of optimal client location has been an important issue. The optimal client’s position decision will influence the internet connection. The bigger field strength and the bigger the bit rate, the better the internet connection. An optimize WLAN system is needed to produce or locate an optimal client location. An optimize WLAN system need a field strength and bit rate measurement program that capable to track client location data from GPS.
Field strength and bit rate measurement program is a program to measure field strength and bit rate value based on the data from WLAN card of a PC/laptop. This program also track the location and convert Geodetic location data from memory card GPS to UTM data. The data of field strength, bit rate, and UTM position was saved in the text file by program to make easier data collection by another optimization WLAN program.
Field strength and bit rate measurement program has been implemented and tested to observe the result of program design. Based on test result, this program is working well and capable to measure the field strength, the bit rate, and track data location.
Key word : WLAN, GPS, field strength, bit rate
x��
KATA PENGANTAR
Puji dan syukur penulis panjatkan ke Hadirat Tuhan Yang Maha Esa yang
telah melimpahkan rahmat dan karunia-Nya sehingga penulis dapat
menyelesaikan Tugas Akhir yang berjudul. “Pengukur Field Strength dan Bit
Rate pada Optimasi WLAN Berbasis PC”. Tugas Akhir ini disusun sebagai
salah satu syarat untuk memperoleh gelar Sarjana Teknik. Dalam penyusunannya,
banyak pihak yang telah membantu dan memberikan dukungan pada penulis, oleh
karena itu, penulis ingin mengucapkan terima kasih kepada :
1. Bapak A.Bayu Primawan, S.T., M.Eng., selaku Pembimbing I dan Ibu
Wiwien Widyastuti, S.T., M.T selaku Pembimbing II yang telah
bersedia meluangkan waktu untuk membimbing penulis. Terima kasih
juga untuk seluruh dosen di Fakultas Teknik atas segala tempaan
ilmunya.
2. Untuk orangtuaku tercinta Ayahanda Paulus Supatiman Slamet di surga
dan Ibunda Christina Subektini yang selalu memberiku semangat serta
nasihat, baik moral maupun materi.
3. Untuk Saudara-saudaraku, Eko Widanarto dan Kiki Ciptaningsih atas
segala doa dan bantuan.
4. Untuk Kekasihku Anjar Dwi Astutiningsih atas doa dan motivasi.
5. Teman-teman seperjuangan, Andreas Wibisono, Vendy Purnomo, Bayu
Pamungkas, Anggareno Oktaviano, Taufik Wijaya P., Tulus Setiadi,
xi��
Nova Budi dan seluruh teman-teman elektro angkatan 2004. Terima
kasih atas segala masukan dan bantuannya.
5. Para laboran program studi elektro, A. Suryana, P. Sumardi, FX. Suryo
Asih Subrata. Terima kasih atas segala bantuan dan waktunya.
Penulis menyadari bahwa laporan Tugas Akhir ini masih jauh dari
sempurna, oleh karena itu penulis sangat mengharapkan saran dan kritik yang
membangun dari Pembaca agar dalam proses penulisan di kemudian hari dapat
semakin baik. Semoga Tugas Akhir ini dapat bermanfaat secara luas, baik bagi
penulis maupun bagi semua pihak yang membacanya.
Yogyakarta, 24 September 2009
Penulis
�
����
�
DAFTAR ISI
Halaman
Halaman Judul ……………………………………………………………… i
Halaman Pengesahan ..................................................................................... iii
Halaman Pengesahan Penguji ........................................................................ iv
Pernyataan Keaslian Karya ............................................................................. v
Halaman Persembahan .................................................................................... vi
Intisari .............................................................................................................. vii
Abstract ............................................................................................................ viii
Halaman Publikasi............................................................................................ ix
Kata Pengantar ................................................................................................. x
Daftar Isi .......................................................................................................... xii
Daftar Gambar ................................................................................................. xvi
Daftar Tabel ..................................................................................................... xix
Daftar Lampiran............................................................................................... xx
I.PENDAHULUAN ...………………………………..…………………..... 1
1.1. Latar Belakang....................................................................................... 1
1.2. Tujuan dan Manfaat................................................................................ 2
1.3. Batasan Masalah..................................................................................... 2
1.4. Metodologi Penelitian............................................................................ 3
II.DASAR TEORI.......................................................................................... 5
�����
�
2.1. WLAN………………………………………………………………… 5
2.1.1.Standar IEEE 802.11.a/b/g........................................................ 6
2.1.2.Keunggulan dan Kelemahan Jaringan Tanpa Kabel.................. 7
2.2. GPS (Global Possitioning System)......................................................... 8
2.3. Data GPS ............................................................................................... 10
2.3.1. NMEA 0183............................................................................. 10
2.3.2. Data NMEA 0183.................................................................... 11
2.4.Sistem Koordinat UTM (Universal Transfer Mercator)....................... 12
2.4.1.Sistem Koordinat UTM Dunia.................................................... 12
2.4.2.Sistem Koordinat UTM Indonesia................................................ 13
2.5.Sistem Konversi Satuan Geodesi ke UTM............................................... 14
2.6.Sistem Operasi Linux............................................................................... 16
2.6.1.File Sistem Linux.......................................................................... 17
2.6.2.Jenis File pada Linux.................................................................... 17
2.6.3.Direktori pada Linux.................................................................... 18
2.6.4.Lingkungan Shell.......................................................................... 18
2.6.5.BASH........................................................................................... 19
2.6.6.Editor Vim.................................................................................... 20
2.6.7.Atribut Permission pada File........................................................ 20
2.7.Konsep Pemrograman Java.................................................................... 21
2.7.1.Platform Java................................................................................ 21
2.7.2.Keterangan (Comment)................................................................. 22
2.7.3.Deklarasi Kelas............................................................................. 23
����
�
2.7.4.Fungsi Main.................................................................................. 23
2.8.Mendefinisikan Kelas............................................................................. 24
2.8.1.Deklarasi Variabel......................................................................... 24
2.8.2.Konstruktor................................................................................... 25
2.8.3.Fungsi............................................................................................ 25
2.8.4.Enkapsulasi.................................................................................... 26
2.9.Pewarisan................................................................................................ 26
2.10.Polimorfisme........................................................................................ 28
2.11.Fluke Analyzer..................................................................................... 29
2.12.Wireshark............................................................................................. 30
III. PERANCANGAN..................................................................................... 32
3.1 Diagram Blok Optimasi WLAN.............................................................. 32
3.2 Diagram Blok Pengukuran Field Strength dan Bit Rate………………… 33
3.3 Perancangan Tampilan Program Utama……………………………… 34
3.4 Diagram Alir Program Pengukur.............................................................. 36
3.5 Diagram Alir Subprogram…………………………………………… 40
3.5.1.Diagram Alir Subprogram Pengukuran Tracking Data GPS…… 40
3.5.2.Diagram Alir Subprogram Deteksi AP………………………… 42
3.5.3.Diagram Alir Subprogram Pengukuran Field Strength………... 43
3.5.4.Diagram Alir Subprogram Pengukuran Bit Rate……………… 45
3.5.5.Diagram Alir Subprogram Penampil Grafik Field Strength…… 47
3.5.6.Diagram Alir Subprogram Penampil Grafik Bit Rate…………… 48
3.5.7.Diagram Alir Subprogram Penyimpanan Data Posisi……………. 49
���
�
3.5.8 Diagram Alir Subprogram Penyimpanan Data Field Strength…… 50
3.5.9 Diagram Alir Subprogram Penyimpanan Data Bit Rate………… 51
3.5.10 Diagram Alir Subprogram Penyimpanan Semua Data………… 53
3.5.11 Diagram Alir Subprogram Penghapusan Data………………… 54
3.5.12 Diagram Alir Subprogram Keluar……………………………… 55
IV. HASIL DAN PEMBAHASAN................................................................. 56
4.1.Tampilan Program……………………………………………………… 56
4.2.Pengujian Program……………………………………………………… 59
4.2.1.Tracking Data GPS……………………………………………… 59
4.2.2 Deteksi AP……………………………………………………… 65
4.2.3.Pengukuran Field Strength……………………………………… 67
4.2.4.Pengukuran Bit Rate…………………………………………… 81
4.2.5.Penyimpanan Data……………………………………………… 89
IV. HASIL DAN PEMBAHASAN................................................................. 94
5.1.Kesimpulan…………………………………………………………… 94
5.2.Saran………………………………………………………………… 95
Daftar Pustaka……………………………………………………………… 96
����
�
DAFTAR GAMBAR
Halaman
Gambar 2.1. Jaringan WLAN…………………………………………………. 5
Gambar 2.2. Orbit Satelit GPS........................................................................... 8
Gambar 2.3 Sistem Proyeksi UTM...................................................................... 13
Gambar 2.4 Garis Paralel Zona UTM Indonesia…………………………… 14
Gambar 2.5 Sruktur Direktori pada Linux………………………………… 18
Gambar 2.6 Tampilan (GUI) Fluke AnalyzeAir…………………………… 30
Gambar 2.7 Tampilan (GUI) Wireshark…………………………………… 31
Gambar 3.1 Diagram Blok Sistem Optimasi WLAN……………………… 32
Gambar 3.2 Diagram Blok Pengukuran Field Strength dan Bit Rate……… 33
Gambar 3.3 Rancangan Tampilan Program Pengukur…………………… 34
Gambar 3.4 Diagram Alir Program Utama Pengukur……………………… 38
Gambar 3.5 Diagram Alir Subprogram Tracking Data GPS………………… 41
Gambar 3.6 Diagram Alir Subprogram Deteksi AP…………………………. 42
Gambar 3.7 Diagram Alir Subprogram Pengukuran Field Strength………… 44
Gambar 3.8 Diagram Alir Subprogram Pengukuran Bit Rate………………… 46
Gambar 3.9 Diagram Alir Subprogram Penampil Grafik Field Strength……. 47
Gambar 3.10 Diagram Alir Subprogram Penampil Grafik Bit Rate………… 49
Gambar 3.11 Diagram Alir Subprogram Penyimpanan Data Posisi………… 50
Gambar 3.12 Diagram Alir Subprogram Penyimpanan Data Field Strength… 51
Gambar 3.13 Diagram Alir Subprogram Penyimpanan Data Bit Rate………… 52
�����
�
Gambar 3.14 Diagram Alir Subprogram Penyimpanan Semua Data………… 53
Gambar 3.15 Diagram Alir Subprogram Penghapusan Data………………… 54
Gambar 3.16 Diagram Alir Subprogram Keluar……………………………… 55
Gambar 4.1 Tampilan Program Pengukur……………………………………… 56
Gambar 4.2 Pesan Pengingat Koneksi GPS…………………………………… 61
Gambar 4.3 Tracking Data dari Memory Card GPS…………………………… 62
Gambar 4.4 Pesan Pengingat Koneksi AP………………………………….…. 67
Gambar 4.5 Deteksi Koneksi AP…………………………………….…….….. 67
Gambar 4.6 Pesan untuk Menunggu Pengukuran Field Strength………….……. 69
Gambar 4.7 Pesan Pengukuran Field Strength Telah Selesai…………….…..... 65
Gambar 4.8 Tampilan Pengukuran Field Strength Telah Selesai……………… 70
Gambar 4.9 Tampilan Pengukuran Field Strength Program Pengukur……….. 73
Gambar 4.10 Tampilan Pengukuran Field Strength Fluke AnalyzeAir…….… 74
Gambar 4.11 Grafik Perbandingan Program dengan Fluke pada
Client 1 AP fst-2………………………………………………… 74
Gambar 4.12 Tampak Samping Keadaan 1……………………………………. 76
Gambar 4.13 Tampak Atas Keadaan 1………………………………………… 76
Gambar 4.14 Grafik Perbandingan Program dengan Fluke pada Keadaan 1…… 76
Gambar 4.15 Tampak Samping Keadaan 2……………………………………. 77
Gambar 4.16 Tampak Atas Keadaan 2………………………………………… 77
Gambar 4.17 Grafik Perbandingan Program dengan Fluke pada Keadaan 2…… 77
Gambar 4.18 Tampak Samping Keadaan 3…………………………………… 78
Gambar 4.19 Tampak Atas Keadaan 3…………………………………………. 78
������
�
Gambar 4.20 Grafik Perbandingan Program dengan Fluke pada Keadaan 3….. 79
Gambar 4.21 Tampak Samping Keadaan 4…………………………………….. 79
Gambar 4.23 Grafik Perbandingan Program dengan Fluke pada Keadaan 4…... 79
Gambar 4.24 Pesan untuk Menunggu Pengukuran Bit Rate………………………. 82
Gambar 4.25 Pesan Pengukuran Bit Rate Telah Selesai………………………. 83
Gambar 4.26 Tampilan Pengukuran Bit Rate Telah Selesai…………………… 83
Gambar 4.27 Tampilan Pengukuran Bit Rate Program Pengukur …………… 86
Gambar 4.28 Tampilan Pengukuran Bit Rate Wireshark…...………………… 87
Gambar 4.29 Grafik Karakteristik Bit Rate antara Program dengan Wireshark
pada Client 1 AP fst-2………………………….…………………….. 87
Gambar 4.30 Grafik Karakteristik Bit Rate antara Program dengan Wireshark
pada Client 8 AP elektro……………………………………………... 87
Gambar 4.31 Grafik Karakteristik Bit Rate antara Program dengan Wireshark
pada Client 10 AP fst-1…………………………………..…………... 87
Gambar 4.32 Gambar File Penyimpanan Posisi………………………………... 90
Gambar 4.33 Gambar File Penyimpanan Field Strength….………………………. 91
Gambar 4.34 Gambar File Penyimpanan Bit Rate…………………………………. 92
Gambar 4.35 Gambar File Penyimpanan Semua Data………………………… 93
�
�
����
�
DAFTAR TABEL
Halaman
Tabel 2.1. Standar 802.11 IEEE a/b/g……………………………………… 7
Tabel 2.2. Zona pada Proyeksi UTM Wilayah Indonesia ……………...….. 14
Tabel 4.1. Data Posisi 10 Client�������������������������…………………………….. 63
Tabel 4.2. Perbandingan Nilai X dan Y antara Perhitungan Rumus dengan
Program pada Client 1……………………………………………. 66
Tabel 4.3. Perbandingan Pengukuran Filed Strength Program dengan Fluke.. 71
Tabel 4.4. Perbandingan Filed Strength Program dan Fluke Berdasarkan
Keadaan………………………………………………………….. 81
Tabel 4.5. Perbandingan Bit Rate Program dengan Fluke………………… 85
�
�
xx��
DAFTAR LAMPIRAN
Halaman
Listing Program Java……...………………………………………….. L1
Listing Program Shell…………………………………………..…..… L26
Spesifikasi 2,4 GHz Flat Panel 20,5 dBi Antenna…………………… L37
.
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Sejalan dengan perkembangan Wireless Local Area Network (WLAN)
yang semakin pesat, penentuan lokasi client yang optimal menjadi masalah yang
sangat penting. Penentuan lokasi client akan berpengaruh pada koneksi internet
client. Semakin besar nilai field strength dan bit rate, semakin baik pula koneksi
internet client.
Menurut Soesetijo dan Antoni [1], data dari tabulasi fungsi kuat sinyal dan
jarak sebagai hasil dari pengukuran level kuat sinyal penerima pada lokasi yang
telah ditentukan dapat diklasifikasikan untuk masukan pembelajaran
menggunakan bantuan Jaringan Saraf Tiruan (JST). Pada daerah cakupan, denah
ruangan dua dimensi pada sumbu x dan y dalam satuan meter dibuat untuk
memudahkan pengukuran. Penelitian Soesetijo dan Antoni telah menghasilkan
komparasi antara hasil prediksi JST dengan data pengukuran pada posisi masing-
masing AP (Access Point) yang mempunyai presentasi selisih rata-rata sebesar
10%. Hal ini berarti JST eksperimen mempunyai keakuratan yang tinggi dan telah
terbukti pada hasil komparasinya.
Penelitian ini akan melengkapi penelitian sebelumnya dengan tujuan
menghasilkan lokasi client WLAN dengan penerimaan bit rate dan field strength
yang optimal. Sehingga dibutuhkan data bit rate, field strength dan data posisi
GPS (Global Potitioning System) sebagai masukan perhitungan JST. Optimasi
2
yang dihasilkan dari prediksi JST bersama data posisi GPS akan ditampilkan
dengan aplikasi pemetaan digital. Penelitian ini juga akan menghasilkan program
tracking data GPS, dan program pengukur field strength dan bit rate pada
optimasi WLAN yang akan ditampilkan pada komputer dengan sistem operasi
Linux.
1.2 Tujuan dan Manfaat Penelitian
Tujuan dari penelitian ini adalah menghasilkan program yang berfungsi
untuk tracking data GPS dan dapat mengukur field strength dan bit rate beserta
visualisasinya yang berbasis PC pada sistem operasi Linux.
Manfaat yang akan dicapai dalam penelitian ini yaitu sebagai rujukan
untuk penelitian optimasi WLAN ataupun dapat dimanfaatkan untuk penelitian
jaringan WLAN lainnya.
1.3 Batasan Masalah
Program pada penelitian ini dirancang mempunyai batasan-batasan
sebagai berikut :
1. Masukan program berupa field strength dan data byte yang diterima
WLAN card pada PC, serta data posisi dari memory card GPS .
2. Sistem operasi menggunakan Linux.
3. Pembuatan program menggunakan bahasa pemrograman shell dan
pemrograman Java.
3
1.4 Metodologi Penelitian
Tahap-tahap yang akan dilakukan dalam penelitian ini adalah sebagai
berikut:
1. Studi kepustakaan.
Dalam tahap ini akan dipelajari berbagai literatur, gambar dan manual
yang merupakan dasar dari penelitian ini.
2. Perancangan.
Berdasarkan pustaka yang telah diperoleh, dibuat perancangan alur
program untuk penelitian ini.
3. Pembuatan program.
Dalam tahap ini dilakukan pembuatan program berdasarkan alur program
yang telah dibuat.
4. Pengujian.
Pengujian dilakukan dengan membandingkan hasil kinerja program yang
telah dibuat dengan alat ukur field strength dan bit rate yang standar.
5. Penyusunan laporan.
Penyusunan laporan dilakukan berdasarkan hasil pengujian yang telah
dilakukan.
1.5. Sistematika Penulisan
Sistematika penulisan tugas akhir yang digunakan di dalam penyusunan
tugas akhir adalah sebagai berikut:
4
BAB I PENDAHULUAN
Pendahuluan berisi latar belakang masalah, batasan masalah, tujuan penelitian,
manfaat penelitian, metode penulisan dan sistematika penulisan.
BAB II DASAR TEORI
Bab ini memberikan penjelasan tentang WLAN dan GPS secara umum, sistem
koordinat UTM (Universal Transfer Mercator), serta pemrograman shell dan
pemrograman Java.
BAB III PERANCANGAN
Bab ini berisi diagram alir pembuatan program pengukuran field strength dan
bit rate.
BAB IV HASIL DAN PEMBAHASAN
Bab ini berisi implementasi perancangan yang dibuat, pengambilan data,
penampilan data, pembahasan dan analisis mengenai hasil penelitian yang
telah dilaksanakan.
BAB V KESIMPULAN DAN SARAN
Bab ini berisi ringkasan hasil penelitian yang telah dilakukan dan usulan yang
berupa ide-ide untuk perbaikan atau pengembangan terhadap penelitian yang
telah dilakukan.
DAFTAR PUSTAKA
LAMPIRAN
5
BAB II
DASAR TEORI
2.1 WLAN
Jaringan WLAN (Wireless Local Area Network) merupakan salah satu
bentuk jaringan nirkabel (tanpa kabel) [2]. Jaringan WLAN memungkinkan dua
mesin atau lebih untuk berkomunikasi menggunakan protokol jaringan standar
IEEE (Institute of Electrical and Electronic Engineers) 802.11. Media transmisi
yang digunakan untuk komunikasi pada jaringan WLAN adalah gelombang
elektromagnetik yang dapat berupa sinar infra merah (infrared), gelombang mikro
(microwave) atau gelombang radio RF (Radio Frequency). Ilustrasi jaringan
WLAN dapat dilihat pada Gambar 2.1.
Gambar 2.1. Jaringan WLAN
Client 1 Client 1Client 1
Access Point
WLAN card WLAN card WLAN card
6
Jaringan WLAN yang ditunjukkan Gambar 2.1 terdiri dari empat komponen,
yaitu:
1. Access Point (AP) merupakan perangkat yang menjadi sentral koneksi dari
pengguna (user) ke Internet Service Provider (ISP). AP berfungsi
mengkonversikan sinyal RF menjadi sinyal digital yang akan disalurkan
melalui kabel atau disalurkan ke perangkat WLAN yang lain dengan
dikonversikan ulang menjadi sinyal RF.
2. WLAN Interface merupakan peralatan yang dipasang pada Mobile /
Desktop PC dalam bentuk PCMCIA (Personal Computer Memory Card
International Association) card, PCI (Peripheral Component
Interconnect) card, maupun melalui port USB (Universal Serial Bus).
3. Client adalah perangkat akses Mobile / Desktop PC yang di dalamnya
telah terpasang port PCMCIA atau ditambahkan wireless adapter melalui
PCI (Peripheral Component Interconnect) card atau USB (Universal
Serial Bus).
4. Internet Service Provider (ISP) merupakan perusahaan atau badan usaha
yang menjual koneksi internet kepada pelanggan.
2.1.1. Standar IEEE 802.11.a/b/g
Ketentuan-ketentuan WLAN yang telah diatur oleh standar IEEE 802.11
[3]. Standar IEEE 802.11 berkembang antara lain menjadi IEEE 802.11a, IEEE
802.11b, dan IEEE 802.11g. Kebanyakan produk dari WLAN menggunakan
7
standar IEEE 802.11b dan 802.11g. Parameter-parameter dari standar WLAN
dapat dilihat pada Tabel 2.1.
Tabel 2.1 Standar IEEE 802.11 a/b/g [3]
802.11a 802.11b 802.11g
Total Bandwidth 300 MHz 83.5 MHz 83.5 MHz
Frekuensi yang
dipakai
5.15-5.35 GHz OFDM 5.725-5.825Ghz
OFDM
2.4-2.4835GHz DSSS
2.4-2.4835GHz DSSS, OFDM
Data Rate per
Chanel
54, 48, 36, 24, 18, 12, 9, 6 Mbps
11, 5.5, 2, 1 Mbps 54, 36, 33, 24, 22,12, 11, 9, 6, 5.5, 2,1 Mbps
Jenis Modulasi BPSK (6, 9 Mbps) QPSK (12, 18 Mbps) 16-QAM (24, 36 Mbps) 64-QAM (48, 54 Mbps)
DQPSK/CCK (11, 5.5 Mbps) DQPSK (2 Mbps) DBPSK
(1 Mbps)
OFDM/CCK (6,9,12,18,24,36,48,54) OFDM (6,9,12,18,24,36,48,54) DQPSK/CCK (22, 33, 11, 5.5 Mbps) DQPSK (2 Mbps) DBPSK (1 Mbps)
Sensitivity Rx : -71, -88 dBm Tx : 17, 13 dBm
Rx : -92, -95, -96, -97 dBm
Tx : 26 dBm
Rx : -74, -77, -83, -86, -90, -91, -93, -94 dBm
Tx : 22, 23, 24, 26 dBm
2.1.2. Keunggulan dan Kelemahan Jaringan Tanpa Kabel
Jaringan tanpa kabel memiliki beberapa keunggulan yaitu biaya
pemelihara yang murah (pemeliharaan hanya mencakup stasiun sel),
infrastrukturnya berdimensi kecil, pembangunannya cepat, mudah dan murah
untuk direlokasi dan mendukung portabilitas. Sementara itu jaringan tanpa kabel
memiliki beberapa kelemahan yaitu biaya peralatan mahal, tunda yang besar,
adanya masalah propagasi radio seperti terhalang, terpantul, dan banyak sumber
8
interferensi. Solusinya antara lain, untuk masalah peralatan yang mahal dapat
diatasi dengan mengembangkan teknologi komponen elektronika, sedangkan
untuk masalah interferensi dapat diatasi dengan dengan teknik antena diversity
atau antena rangkap.
2.2 GPS (Global Positioning System)
GPS adalah singkatan dari Global Posisitioning System yang merupakan
sistem untuk menentukan posisi dan navigasi secara global dengan menggunakan
satelit [4,5]. Sistem yang pertama kali dikembangkan oleh Departemen
Pertahanan Amerika ini digunakan untuk kepentingan militer maupun sipil.
Sistem GPS aslinya adalah NAVSTAR GPS (Navigation Satellite Timing
and Ranging Global Posititioning Global System), yang mempunyai tiga segmen
yaitu satelit, pengontrol, dan penerima/pengguna. Satelit GPS yang mengorbit
bumi, dengan orbit dan kedudukan yang tetap, seluruhnya berjumlah 24 buah, 21
buah aktif bekerja dan 3 buah sisanya adalah cadangan. Orbit satelit GPS bumi
dapat dilihat pada Gambar 2.2.
Gambar 2.2. Orbit Satelit GPS[5]
9
Fungsi segmen-segmen pada GPS adalah sebagai berikut :
a. Satelit berfungsi untuk menerima dan menyimpan data yang ditransmisikan
oleh stasiun-stasiun pengontrol, menyimpan dan menjaga informasi waktu
berketelitian tinggi, dan memancarkan informasi secara kontinyu ke pesawat
penerima (receiver) dari pengguna.
b. Pengontrol bertugas mengendalikan dan mengontrol satelit dari bumi baik
untuk mengecek kesehatan satelit, penentu dan prediksi orbit dan waktu,
sinkronisasi antar satelit, dan mengirim data ke satelit.
c. Penerima bertugas menerima data dari satelit dan memprosesnya untuk
menentukan posisi tiga dimensi yaitu koordinat di bumi ditambah ketinggian,
arah, jarak, dan waktu yang diperlukan oleh pengguna. Ada dua macam tipe
penerima yaitu tipe navigasi dan tipe geodetik.
Penetuan posisi dengan GPS adalah pengukuran jarak secara bersama-
sama ke beberapa satelit (yang koordinatnya sudah diketahui) sekaligus [6]. Untuk
menentukan koordinat suatu titik di bumi, receiver setidaknya membutuhkan
empat buah satelit yang dapat ditangkap sinyalnya dengan baik. Secara default
posisi atau koordinat yang diperoleh bereferensi ke global datum yaitu WGS’84.
Secara garis besar penetuan posisi dengan GPS dibagi menjadi dua metode
yaitu metode absolut dan metode relatif. Metode absolut, atau yang dikenal
dengan point positioning, menentukan posisi hanya berdasarkan pada satu
receiver saja. Yang kedua adalah metode relatif, yang biasa disebut differential
positioning, menentukan posisi dengan menggunakan lebih dari sebuah receiver.
10
Dalam perjalanannya dari satelit hingga mencapai antena di permukaan
bumi, sinyal GPS akan dipengaruhi oleh beberapa kesalahan dan bias. Kesalahan
dan bias pada dasarnya dapat dikelompokkan atas kesalahan dan bias yang terkait
dengan :
a. satelit, seperti kesalahan efemeris, jam satelit, dan selective availability (SA)
b. medium propagasi, seperti bias ionosfer dan bias troposfer.
c. penerima GPS, seperti kesalahan penerima jam, kesalahan yang terkait
dengan antena, dan noise.
d. data pengamatan, seperti ambiguitas fase dan cycle slips.
e. lingkungan sekitar penerima GPS seperti multipath dan imaging.
Secara umum ada beberapa cara dan strategi yang dapat digunakan untuk
menangani kesalahan dan bias GPS, yaitu :
a. Estimasi parameter dari kesalahan dan bias dalam proses hitung perataan.
b. Terapan mekanisme differencing antar data.
c. Perhitungan besar kesalahan bias berdasarkan data ukuran langsung.
d. Perhitungan besar kesalahan bias berdasarkan model.
e. Penggunaan stategi pengamatan yang tepat.
f. Penggunaan strategi pengolahan data yang tepat
2.3. Data GPS
2.3.1. NMEA 0183
NMEA (National Marine Electronics Association)-0183 dikembangkan
secara spesifik untuk standar industri sebagai antar muka bermacam-macam alat
11
kelautan yang diperkenalkan sejak tahun 1983 [5]. Standar tersebut diberikan
untuk alat kelautan yang mengirimkan informasi ke komputer maupun alat
lainnya. NMEA-0183 berisi informasi yang berhubungan dengan geografi seperti
tentang waktu, garis lintang, garis bujur, ketinggian, dan kecepatan.
2.3.2. Data NMEA 0183
Standar NMEA memiliki banyak jenis bentuk kalimat laporan, di
antaranya yang paling penting adalah koordinat lintang, bujur, ketinggian, waktu
sekarang standar UTC (UTC time), dan kecepatan (speed over ground) [7]. Jenis-
jenis kalimat data NMEA 0183 yang sering digunakan dalam GPS adalah GGA
(Fix Data, fixed data for the Global Positioning System), GGL (Geographic
Position–Latitude/Longitude), GSA (GNSS DOP and Active Satellites
degradation of accuracy and the number of active satellites in the Global Satellite
Navigation System), GSV (GNSS_Satellites in View, satellites in view in the
Global Satellite Navigation System)
Data NMEA yang digunakan dalam penelitian ini adalah GGL karena
mendukung dengan GPS yang dipakai. Penelitian kali ini menggunakan GARMIN
GPSMAP 76CSx. Data GGL terdiri dari informasi mengenai garis lintang, garis
bujur, ketinggian, serta keaadaaan. Contoh kalimat data GGL adalah
$GPLL,4717.115,N,00833.912,E,130305.0,A*32<CR><LF>
Keterangan data GGL :
GGL = Inisialisasi data
130305.0 = Posisi waktu UTC :13 jam 03menit 05.0detik
12
4717.115 = Garis lintang : 47°17.115 min
N = Lintang utara (N=north, S=south)
00833.912 = Garis bujur : 8°33.912 min
E = Garis bujur timur (E=east, W=west)
58 = Pengecekan seluruh set data yang diperiksa
2.4. Sistem Koordinat UTM (Universal Tranfer Mercator)
2.4.1. Sistem Koordinat UTM Dunia
Sistem UTM dengan sistem koordinat WGS’84 (World Geodesi System
1984) sering digunakan pada pemetaan wilayah Indonesia [8]. UTM
menggunakan silinder yang membungkus ellipsoid dengan kedudukan sumbu
silinder yang tegak lurus sumbu tegak ellipsoid (sumbu perputaran bumi),
sehingga garis singgung ellipsoid dan silinder merupakan garis yang berhimpit
dengan garis bujur pada ellipsoid [9].
Sistem proyeksi UTM menggunakan proyeksi silinder, transversal, dan
conform yang memotong bumi pada dua meridian standart untuk
menggambarkan posisi horisontal dua dimensi (x,y). Seluruh permukaan bumi
dibagi atas 60 bagian yang disebut dengan zona UTM. Setiap zona dibatasi oleh
dua meridian sebesar 6° dan memiliki meridian tengah sendiri.
Setiap zona UTM memiliki sistem koordinat sendiri dengan titik nol pada
perpotongan antara meridian sentral dengan equator [8]. Untuk menghindari
koordinat negatif, meridian tengah diberi nilai awal absis (x) 500.000 meter.
Untuk zona yang terletak di bagian Selatan equator (LS), koordinat negatif
13
equator diberi nilai awal ordinat (y) 10.000.000 meter. Sedangkan untuk zona
yang terletak di bagian Utara equator, equator tetap memiliki nilai ordinat 0 meter.
Ilustrasi sistem proyeksi UTM dapat dilihat pada Gambar 2.3.
Gambar 2.3. Sistem Proyeksi UTM [8]
2.4.2. Sistem Koordinat UTM Indonesia
Wilayah Indonesia terbagi dalam 9 zona, mulai dari meridian 90o BT
sampai 144o BT dengan batas garis paralel 10
o LU sampai dengan 15
o LS ( 4
satuan daerah yaitu L, M, N, dan P) serta tercakup dalam zona nomor 46 sampai
dengan 54 [8]. Tabel 2.2 menunjukkan pembagian zona UTM Indonesia
sedangkan pembagian garis paralel wilayah UTM Indonesia ditunjukkan pada
Gambar 2.4.
14
Tabel 2.2. Zona pada Proyeksi UTM Wilayah Indonesia [8]
Gambar 2.4. Garis Paralel Zona UTM Indonesia [8]
2.5 Sistem Konversi Satuan Geodesi ke UTM
Pada tanggal 7 Agustus 1996, RM. Toms menemukan algoritma baru
untuk konversi satuan Geodesi ke UTM yang efektif [10]. Rumus konversi satuan
Geodesi ke UTM menurut RM.Toms adalah sebagai berikut:
Timur:
)120
).58.72.185(6
)1(
(0
523
AepsCTTA
CTA
NkFEX
×−++−+×+−+
××+=
15
Utara:
24).4.95(
2()tan(00
42
2 ACCT
AlatNkMkFNY ×++−+×××+×+=
)720
).330.600.5861(6
2 AepsCTT ×−++−+
dengan,
)cos().0( latlonlonA −=
2)tan(latT =
2)cos(. latEpsC =
Keterangan:
lon = longitude dalam radian = 180
π×latitude
lat = latitude dalam radian = 180
longitude π×
a = semi mayor poros bumi = 6.378.137
FE = awal absis = 500.000
FN = awal ordinat = 10.000.000
k0 = faktor skala pada meridian tengah = 0,9996
e = eccentricity = 0.081819191
Eps = persamaan kuadrat eccentricity = 0.006739496768
Lon0 = referensi longitude untuk zona pada meridian pusat
= 36)6
longitude( +× , hasil )
6
longitude( dibulatkan ke bawah
16
lon0 = referensi longitude dalam radian = 180
Lon0 π×
N = jari-jari bumi yang tegak lurus dengan garis bujur
=))sin(1( 22 late
a
−
M = jarak sebenarnya antara garis bujur dengan garis khatulistiwa
= +++−−−− )2sin()1024
45
32
3
8
3()
256
5
64
3
41[(
642642
lateee
lateee
)]6sin()3072
35()4sin()
1024
45
256
15(
664
late
latee
−+
2.6 Sistem Operasi Linux
Sistem operasi Linux terbagi menjadi tiga bagian utama yang saling
berinteraksi satu sama lain, tiga bagian utama tersebut adalah [11]:
– Kernel Linux adalah program inti dari Sistem Linux. Tugas yang dipegang
oleh Kernel ini antara lain :
a. Mengendalikan akses terhadap komputer.
b. Mengatur memori komputer.
c. Memelihara sistem file.
d. Mengalokasikan sumber daya komputer di antara pemakai.
– Shell adalah program yang memungkinkan pemakai dapat berkomunikasi
dengan komputer. Tugas shell adalah membaca perintah yang diberikan
pemakai dan menerjemahkan perintah [command intepreter] tersebut sebagai
suatu permintaan dan meneruskannya ke Kernel. Pada shell prompt, pemakai
17
memberi perintah kepada shell dan kemudian shell akan langsung
memberikan respon. Perintah-perintah tersebut dapat dirangkai serta dapat
disimpan dalam sebuah file teks yang disebut dengan program shell atau shell
scripting.
– Utilitas adalah program bantu di luar shell untuk melakukan tugas tertentu,
misalnya saja untuk mengedit dokumen, memanipulasi file, menambah user,
menghapus user dan lain sebagainya.
2.6.1 File Sistem Linux
File sistem adalah sekumpulan file pada suatu media penyimpanan dan
mekanisme pengorganisasian file tersebut. Sedangkan file secara sederhana
didefinisikan sebagai entitas/dokumen yang disimpan pada media penyimpanan.
2.6.2 Jenis File pada Linux
File pada Linux memiliki tiga golongan sebagai berikut:
• User data adalah file yang umumnya diciptakan oleh user untuk
menyimpan data.
• System data adalah file yang digunakan oleh sistem Linux untuk
melakukan prosesnya.
• Executable File adalah file yang berisi informasi yang dikenal komputer
sebagai instruksi-instruksi atau program.
18
2.6.3 Direktori pada Linux
Direktori dapat didefinisikan sebagai suatu file yang berisi daftar nama-
nama file dan direktori lainnya. Direktori digunakan untuk mengelompokkan file
dan subdirektori sehingga memudahkan pencarian file dan meningkatkan efisiensi
proses.
Karena direktori dapat berisi direktori lagi dan seterusnya, direktori terluar
memiliki hierarkis yang lebih tinggi dibandingkan direktori di dalamnya. Struktur
direktori pada Linux disusun secara hierarkis seperti diperlihatkan pada Gambar
2.5.
Gambar 2.5 Sruktur Direktori pada Linux [11]
2.6.4 Lingkungan Shell
Linux mempunyai berbagai lingkungan shell, diantaranya BASH (Bourne
Again Shell), CSH (C Shell), KSH (Korn Shell), RSH (Restricted Bourne Shell),
dan RKSH (Restricted Korn Shell) [12]. Perintah untuk melihat shell yang
digunakan di komputer adalah
$ cat /etc/shells
/
usr/ var/ bin/ home/ tmp/ root/ dev/ etc/…..
vega/
19
Pemberian perintah pada shell dapat menggunakan keyboard atau mouse.
Jika perintah diberikan melalui keyboard, maka disebut sebagai command line
interface. Penulisan command line interface biasanya di depan prompt $ yang
tergantung dari jenis shell yang digunakan ataupun setting (dilakukan oleh
administrator system). Pemberian perintah ke sistem shell biasanya dilakukan
dengan menggunakan tampilan console. Perintah untuk melihat jenis shell yang
sedang digunakan adalah
$ echo $SHELL
2.6.5 BASH
Bourne Again Shell, atau sering disebut BASH, dikembangkan sebagai
bagian dari sistem Linux. Semua distributor besar Linux, termasuk Red Hat,
Mandrake, Slackware, dan Caldera menyertakan BASH. BASH merupakan
turunan dari Bourne Shell yang sudah digunakan sejak lama pada sistem UNIX.
BASH ditulis oleh Brian Fox ([email protected]), dari free software
foundation yang sekarang dikelola oleh Chester Ramey ([email protected]) dari
Case Western Reserve University.
Pada saat ini, hanya shell Linux yang menggunakan BASH dan diinstal
sebagai /bin/bash. Berikut beberapa fitur BASH:
1. Name completion untuk nama variable, nama user, first name, perintah, dan
nama file.
2. Spelling correction untuk nama path pada perintah cd.
3. Array dengan ukuran tak terbatas.
20
4. Arimatika integer dalam berbagai base di antara 2 dan 64.
2.6.6 Editor Vim.
Vim (Vi improved) merupakan editor yang terdapat pada Linux console
yang paling terkenal. Vim adalah editor teks yang dapat dikonfigurasikan untuk
memperoleh efisiensi dalam melakukan pengeditan teks. Vim merupakan
pengembangan lebih lanjut dari editor Vi yang sudah banyak terdapat pada
kebanyakan sistem UNIX.
Vim sering disebut sebagai “editor untuk programmer” dan sangat
bermanfaat untuk pemrograman, terutama dalam pemrograman IDE (Integrated
Development Enterprise). Vim dipertimbangkan untuk digunakan, karena
sempurna untuk segala jenis pengeditan teks, mulai dari menulis e-mail sampai
mengedit file konfigurasi pada sistem. Editor Vi diikutkan dalam instalasi standar
pada sistem Linux, sedangkan untuk dapat menggunakan Vim biasanya user harus
melakukan instalasi terlebih dahulu. Cara menjalankan editor Vim adalah dengan
mengetikkan perintah pada console
$ vim <nama file>
2.6.7 Atribut Permission pada File
File dan direktori memiliki atribut-atribut yang nantinya akan digunakan
untuk mengatur hak akses yang dimiliki oleh user terhadap file tersebut. Atribut
yang sangat penting untuk pengaturan tingkat keamanan file adalah permission.
Atribut ini memiliki 3 bagian, yaitu:
21
a. Permission untuk owner yang berarti aksi dapat dilakukan oleh pemilik file
terhadap file tersebut.
b. Permission untuk group yang berarti aksi dapat dilakukan oleh group pemilik
file tersebut.
c. Permission untuk semua user yang berarti aksi dapat dilakukan oleh semua
user terhadap file tersebut.
Aksi-aksi tersebut adalah:
a. Baca (read) yang menunjukkan user dapat melihat isi file.
b. Eksekusi (execute) yang menunjukkan user dapat mengubah isi file.
c. Tulis (write) yang menunjukkan user dapat mengeksekusi file, terutama
program. Untuk direktori, hak eksekusi perlu diberikan agar user dapat
mengakses direktori tersebut.
2.7 Konsep Pemrograman Java
Pemrograman Java adalah Pemrograman Berorientasi Obyek (Object
Oriented Programming, OOP) yang merupakan suatu paradigma pemrograman
yang memiliki fokus pada konsep pemrograman obyek [13]. OOP memiliki
atribut dan fungsi yang digunakan untuk melakukan manipulasi terhadap atribut
tersebut.
2.7.1 Platform Java
Platform merupakan lingkungan perangkat keras atau perangkat lunak
pada suatu program yang dijalankan. Pada platform Java, platform perangkat
22
lunak bekerja di atas platform berbasis perangkat keras. Kebanyakan platform,
selain Java, merupakan kombinasi antara perangkat keras dan sistem operasi.
Platform Java memiliki dua komponen, yaitu Java Virtual Machine (JVM) dan
Java Application Programming Interface (Java API).
Setiap program Java bekerja di atas platform Java. Platform Java
mengisolasi program Java dengan perangkat keras, sehingga program Java tidak
bergantung dengan perangkat keras yang digunakan (hardware independent).
Program Java menggunakan compiler dan interpreter. Dengan
menggunakan compiler, program Java akan diubah menjadi kode antara
(intermediate language) yang disebut dengan Java bytecode. Bytecode merupakan
kode yang tidak bergantung pada form, yang oleh interpreter akan dijalankan
pada komputer. Java bytecode ini merupakan kode instruksi bagi JVM. Sedangkan
interpreter sendiri merupakan implementasi dari JVM.
Dalam pemrograman Java, ada dua jenis program yang dapat dibuat, yaitu
Java Application dan Java Applet. Java Application adalah program Java yang
dijalankan pada komputer standalone, sedangkan Java Applet merupakan program
yang dimasukkan dalam file HTML dan dieksekusi dengan menggunakan browser
(Java-enabled browser).
2.7.2 Keterangan (Comment)
Keterangan berfungsi untuk membuat program menjadi lebih mudah
dimengerti. Keterangan dapat berupa penjelasan tentang maksud program atau
23
penjelasan tentang suatu proses yang terjadi dalam program (penjelasan dari suatu
fungsi).
Keterangan dalam Java diwujudkan dengan 2 cara, menggunakan:
1. Simbol // yang digunakan untuk membuat keterangan per baris. Biasa
digunakan untuk memberikan penjelasan singkat.
2. Simbol yang diawali /* dan diakhiri */ yang digunakan untuk keterangan
yang melibatkan lebih dari satu baris.
2.7.3 Deklarasi Kelas
Program Java terdiri atas 1 atau lebih kelas. Kelas baru dapat didefinisikan
di dalam program. Sintaksnya adalah
class nama_kelas {
}
2.7.4 Fungsi Main
Setiap program Java aplikasi memiliki fungsi main, yang merupakan titik
awal pada saat eksekusi dimulai. Setiap pernyataan dalam fungsi main akan
dieksekusi satu persatu secara berurut sampai dengan akhir fungsi dicapai. Fungsi
main selalu dimulai dengan public, static, dan void.
24
2.8 Mendefinisikan Kelas
Ada perbedaan pada program Java Applet dengan Java Application, yaitu
program Java Applet harus mendefinisikan turunan kelas Applet (JApplet).
Program Java terdiri atas obyek-obyek dari berbagai kelas, yang berinteraksi satu
dengan yang lainnya. Obyek merupakan nilai (value) dari sebuah kelas, nama
seperti suatu angka (misalkan: 5) merupakan nilai dari tipe data primitif int.
Setiap obyek memiliki data dan fungsi. Obyek-obyek dari suatu kelas
memiliki data sendiri. Tipe data tersebut adalah sama dan fungsi-fungsi yang
dimiliki obyek-obyek tersebut adalah sama. Data yang dimiliki obyek memiliki
ruang lingkup obyek, dan fungsi memiliki ruang lingkup kelas. Suatu kelas dapat
dituliskan sebagai berikut:
public class nama_kelas {
Deklarasi variabel
Konstruktor
Fungsi-fungsi
}
2.8.1. Deklarasi Variabel
Bagian pertama dari suatu kelas berupa deklarasi variabel yang digunakan
untuk menyimpan informasi yang dimiliki oleh kelas. Deklarasi ini sering disebut
25
sebagai instance variable. Private string dan private int merupakan dua contoh
variabel.
Setiap variabel dinyatakan dengan private. Ini merupakan penanda akses
(access specifier) yang menunjukkan bahwa variabel ini hanya bisa diakses oleh
fungsi-fungsi yang dimiliki oleh kelas ini sendiri. Setiap variabel diikuti dengan
tipe data. Penulisan deklarasi suatu variabel adalah sebagai berikut:
penanda_akses tipe_data nama_variabel
2.8.2 Konstruktor
Konstruktor adalah sebuah fungsi yang digunakan untuk membuat obyek
dari suatu kelas. Konstruktor memiliki tanggung jawab untuk membuat obyek dari
suatu kelas berada pada keadaan yang sesuai sebelum digunakan. Konstruktor
digunakan juga untuk melakukan inisialisasi terhadap variabel-variabel yang
dimiliki oleh kelas.
Dalam sebuah kelas dapat dituliskan lebih dari satu fungsi konstruktor
(function overloading). Dengan demikian programmer dapat melakukan
inisialisasi terhadap obyek dengan cara yang lebih bervariasi. Secara ringkas,
penulisan konstruktor adalah sebagai berikut:
public nama_konstruktor (tipe_parameter parameter…)
2.8.3 Fungsi
Fungsi dalam kelas memiliki peran sebagai antar muka (interface) bagi
obyek lain untuk melakukan akses terhadap data yang ada dalam kelas tersebut.
26
Secara umum fungsi-fungsi yang ada dalam suatu kelas dibagi menjadi 2 bagian
besar, yaitu:
1. Fungsi-fungsi yang melakukan pengubahan terhadap kondisi obyek
(mutator).
2. Fungsi-fungsi yang mengembalikan informasi tentang kondisi dari obyek
(accessor).
Suatu fungsi dapat didefinisikan sebagai berikut:
penanda_akses tipe_balikan nama_fungsi (tipe_parameter parameter…)
2.8.4 Enkapsulasi
Enkapsulasi memiliki arti mengelompokkan program ke dalam satu unit
dengan suatu antar muka (interface) yang baik. Enkapsulasi memiliki kaitan yang
erat dengan penyembunyian informasi (information hiding). Penyembunyian
informasi mempunyai pengertian pemisahan antara deskripsi mengenai suatu
kelas yang digunakan dengan implementasi dari kelas tersebut. Pengguna kelas
tidak perlu mengetahui bagaimana kelas didefinisikan. Semua itu tersembunyi
bagi user. Yang penting bagi user adalah bagaimana cara menggunakan fungsi-
fungsi yang ada pada kelas tersebut.
2.9 Pewarisan
Pewarisan (inheritance) merupakan salah satu bentuk penggunaan kembali
perangkat lunak (software reuse) pada suatu kelas. Kelas baru dibuat dari kelas
yang sudah ada dengan mengabsorbsi variabel dan fungsi dari kelas yang sudah
27
ada, serta menambahkan atribut maupun perilaku yang baru. Kelas baru secara
otomatis akan memiliki variabel dan fungsi yang dimiliki oleh kelas asal.
Kelas asal yang digunakan untuk menurunkan kelas baru disebut sebagai
kelas induk (parent class, super class atau base class), sedangkan kelas yang
baru disebut sebagai kelas anak (child class atau sub class). Java menggunakan
kata kunci extends untuk menunjukkan suatu kelas merupakan turunan dari kelas
lainnya.
Pemrograman berorientasi obyek, dapat dianalogikan dengan kehidupan
sehari-hari. Semua yang ditemukan dapat diperlakukan sebagai obyek. Istilah
kelas digunakan untuk melakukan pengelompokan atau klasifikasi terhadap
sekelompok obyek yang memiliki karakteristik yang sama.
Pendefinisian kelas untuk menunjukkan proses pewarisan melibatkan lebih
dari satu kelas, yaitu kelas induk dan kelas turunan. Kelas turunan akan
mewariskan atribut dan fungsi yang dimiliki oleh kelas induk. Ketika membuat
kelas baru yang merupakan kelas turunan dari kelas induk, ada beberapa
kemungkinan yang dapat terjadi saat mendefinisikan fungsi-fungsi yang ada pada
kelas turunan, yaitu:
1. Kelas turunan dapat melakukan redefinisi fungsi (overriding function) yang
diperoleh dari kelas induk.
2. Kelas turunan mewarisi fungsi kelas induk dan tidak melakukan perubahan
apapun terhadap fungsi tersebut.
3. Kelas turunan mendefinisikan fungsi baru yang memang tidak ada di kelas
induk.
28
2.10 Polimorfisme
Polimorfisme (polymorphism) memiliki arti banyak bentuk. Dalam bahasa
berorientasi obyek, polimorfisme digunakan untuk menyatakan suatu nama yang
merujuk ke beberapa fungsi yang berbeda. Suatu fungsi tertentu dirujuk melalui
rujukan polimorfis yang dapat berubah-ubah dari satu pemanggilan ke
pemanggilan yang lain, yang bergantung pada obyek yang sedang dirujuk.
Java memiliki 2 jenis polimorfisme, yaitu overloading method dan
overriding method. Pada saat pemanggilan sebuah fungsi, maka penentuan fungsi
yang dipanggil dapat dilakukan pada saat kompilasi (compile time) atau pada saat
eksekusi (run time). Penentuan fungsi sering disebut sebagai pengikatan (binding)
antara pemanggilan fungsi dengan definisi fungsi. Pengikatan yang terjadi pada
saat kompilasi disebut dengan static binding atau early binding, sedangkan
pengikatan yang dilakukan pada saat eksekusi disebut dengan dynamic binding
atau late binding. Overloading dilakukan dengan menggunakan static binding
sedangkan overriding dilakukan dengan menggunakan dynamic binding. Ada 3
cara mengimplementasikan polimorfisme, yaitu:
1. Overloading method yang menyatakan kemampuan untuk mendefinisikan
beberapa fungsi dengan nama yang sama dalam kelas tertentu.
2. Overriding method dengan pewarisan yang diwujudkan sebagai sebuah
rujukan yang dideklarasikan untuk merujuk ke obyek dari sebuah kelas juga
dapat digunakan untuk merujuk ke obyek dari kelas lain, yang dihubungkan
ke kelas tersebut melalui relasi pewarisan.
29
3. Overriding method dengan interface Java sebagai kumpulan konstanta dan
fungsi abstrak. Fungsi abstrak adalah fungsi yang hanya memiliki header saja
tanpa ada definisi fungsi. Setelah mendeklarasikan suatu interface, nama
interface dapat digunakan untuk merujuk suatu obyek yang bertipe interface
tersebut. Sebuah rujukan yang bertipe interface dapat digunakan untuk
merujuk obyek dari kelas yang mengimplementasikan interface tersebut.
2.11 Fluke AnalyzeAir
Fluke AnalyzeAir (Wifi Spectrum Analyzer) adalah suatu monitor spektrum
RF yang bisa digunakan untuk berbagai macam jaringan wireless dan teknologi
komunikasi [14]. Fluke AnalyzeAir terdiri dari piranti sensor spektrum berbasis
hardware dan tampilan (GUI) berbasis aplikasi software seperti terlihat pada
Gambar 2.6.
Perangkat ini dapat menampilkan lingkungan RF yang detail di dalam
suatu operasi teknologi jaringan wireless. Fluke AnalyzeAir juga bisa
mengidentifikasi hampir seluruh sumber dari aktivitas RF. Perangkat Fluke
AnalyzeAir terdiri dari:
– Sebuah spektrum PC card sebagai sensor.
– Sebuah software CD yang berisi aplikasi Fluke AnalyzeAir.
– Sebuah antenna directional 2,4-2,5 GHz, 4,9-5,9 GHz.
– Sebuah antenna omni-directional 2,4-2,5 GHz, 4,9-5,875 GHz.
30
Gambar 2.6 Tampilan (GUI) Fluke AnalyzeAir
2.12 Wireshark
Wireshark adalah sebuah perangkat lunak yang digunakan untuk
menganalisa paket data suatu jaringan, atau sering disebut network packet
analyzer yang berbasis open source [15]. Perangkat ini akan menangkap
(melakukan capture) paket-paket data dalam suatu jaringan dan menampilkan
detail dari paket data tersebut. Wireshark biasa digunakan untuk mempelajari dan
mengamati suatu jaringan. Gambar 2.7 memperlihatkan tampilan (GUI)
Wireshark. Fasilitas dari perangkat Wireshark antara lain:
– Tersedia untuk UNIX dan Windows.
– Capture paket data secara langsung (live) dengan antar muka jaringan.
– Menampilkan detail informasi paket data.
– Ada filter paket untuk berbagai criteria.
31
– Pewarnaan dalam tampilan berdasarkan criteria.
– Dilengkapi dengan open dan save paket yang telah ditangkap
(captured).
Gambar 2.7 Tampilan (GUI) Wireshark
32
WLAN card
Penerima Pemancar
BAB III
PERANCANGAN
3.1 Diagram Blok Sistem Optimasi WLAN
Sistem ini terdiri dari pengukur field strength dan bit rate, optimasi letak
client, dan penampil dengan peta digital. Diagram blok dari Sistem Optimasi
WLAN dapat dilihat pada Gambar 3.1.
Gambar 3.1 Diagram Blok Sistem Optimasi WLAN
Batasan penelitian ini ditunjukkan sebagai blok penerima yang pertama,
yaitu pengukuran field strength dan bit rate. Pada blok penerima pertama, data
yang diambil adalah nilai field strength dan bit rate, serta data posisi GPS. Nilai
field strength dan bit rate diperoleh dari perhitungan data yang diterima oleh
WLAN card, sedangkan data posisi diperoleh dari memory card di dalam GPS.
Kemudian nilai field strength dan bit rate disimpan dalam format teks (.txt).
Sedangkan pada blok penerima kedua, data berupa teks tersebut diolah dengan
JST (metode back propagation) untuk mendapatkan nilai bobot yang optimal dan
Access Point I Pengukuran
field strength
dan bit rate
II
Optimasi
III Penampil
peta digital
33
akan diuji dengan memasukkan data baru, yaitu beberapa client baru, data tiga
buah AP, dan 10 client. Pada blok penerima ketiga, data pengukuran field
strength, bit rate dan optimasi ditampilkan bersama dengan data lokasi. Kemudian
letak lokasi client ditampilkan setelah nilai optimasi didapat.
3.2 Diagram Blok Pengukuran Field Strength dan Bit Rate
Secara garis besar proses yang terjadi pada fungsi pengukuran field
strength dan bit rate dapat digambarkan dengan diagram blok yang ditunjukkan
pada Gambar 3.2. Proses yang ditunjukkan di dalam garis putus-putus ini
menggunakan pemrograman shell dengan tampilan menggunakan pemrograman
Java dalam sistem operasi Linux.
Gambar 3.2 Diagram Blok Pengukuran Field Strength dan Bit Rate
Nilai field strength dan data byte yang terukur pada PC (WLAN card)
serta data posisi yang tersimpan pada memory card GPS diambil sebagai data
masukan program. Data tersebut diambil dan dipilah untuk proses perhitungan
selanjutnya. Program kemudian memproses data untuk dijadikan keluaran nilai
Input data terukur
(WLAN card)
Proses program
(BASH Shell)
Tampilan (Java) dan simpan output
program
(.txt)
Memory card
GPS
34
field strength dan bit rate serta data posisi GPS dalam bentuk teks beserta
tampilannya di layar komputer.
3.3. Perancangan Tampilan Program Utama
Tampilan program utama pada penelitian ini menggunakan pemrograman
Java dengan aplikasi swing untuk tampilan yang elegan. Rancangan tampilan
program pengukur dapat dilihat pada Gambar 3.3.
Gambar 3.3. Rancangan Tampilan Program Pengukur
C
Program Pengukur
A
F
I
L
Q O
P
B
D
G
H
J
M
E
N
K
R
S
35
Keterangan:
A = Tombol “Track” dengan fungsi memanggil program tracking konversi data
posisi memory card GPS.
B = Text data X dengan fungsi menampilkan data posisi X GPS yang telah diukur.
C = Text data Y dengan fungsi menampilkan data posisi Y GPS yang telah diukur.
D = Text data Z dengan fungsi menampilkan data posisi Z GPS yang telah diukur.
E = Tombol “Save Tracking” dengan fungsi menyimpan data posisi.
F = Tombol “Detect” dengan fungsi memanggil program deteksi AP.
G = Text data ESSID dengan fungsi menampilkan data ESSID AP yang telah
diukur.
H = Text data MAC dengan fungsi menampilkan data MAC Address AP yang
telah diukur.
I = Tombol ukur “Field Strength” dengan fungsi memanggil program
pengukuran field strength beserta penampil grafik dan deteksi AP.
J = Text data field strength dengan fungsi menampilkan data field strength yang
telah diukur.
K = Tombol “Save Field Strength” dengan fungsi menyimpan data field strength
yang telah diukur.
L = Tombol ukur “Bit Rate” dengan fungsi memanggil program pengukuran bit
rate beserta penampil grafik dan deteksi AP.
M = Text data bit rate dengan fungsi menampilkan data bit rate yang telah diukur.
N = Tombol “Save Bit Rate” dengan fungsi menyimpan data bit rate yang telah
diukur.
36
O = Tombol “Save all” dengan fungsi menyimpan semua data hasil pengukuran
pada folder Windows.
P = Tombol “Reset” dengan fungsi menghapus semua data hasil pengukuran pada
folder Windows.
Q = Tombol “About” program dengan fungsi memanggil program shell untuk
menampilkan profil program.
R = Tombol “Exit” program dengan fungsi keluar dari program.
S = Grafik area dengan fungsi menampilkan grafik hasil pengukuran field
strength dan bit rate serta profil program.
3.4. Diagram Alir Program Pengukur
Diagram alir program pengukur ditunjukkan pada Gambar 3.4. Proses
pertama program dimulai dengan meminta masukan pada user. Kemudian user
menekan salah satu tombol yang telah tersedia pada tampilan. Program akan
mengeksekusi perintah sesuai pilihan user. Jika user memilih “Track” (menekan
tombol A), maka subprogram berikutnya adalah memanggil program shell untuk
tracking data GPS. Sedangkan jika user memilih “Detect” (menekan tombol F),
maka subprogram berikutnya adalah memanggil program shell untuk deteksi AP.
Dalam eksekusi kedua program ini, akan ditampilkan pesan untuk memastikan
koneksi terhadap GPS dan koneksi terhadap AP untuk masing-masing program.
Kemudian saat user memilih “Field Strength” (menekan tombol I),
subprogram berikutnya adalah memanggil program shell ukur field strength,
penampil grafik field strength dan deteksi AP. Sedangkan saat user memilih “Bit
37
Rate” (menekan tombol L), subprogram berikutnya adalah memanggil program
shell ukur bit rate, penampil grafik bit rate, dan deteksi AP. Saat awal eksekusi,
program menampilkan pesan untuk menunggu pengukuran. Sedangkan saat
pengukuran berlangsung, program menampilkan teks “loading…..”. Kemudian
pesan bahwa pengukuran telah selesai juga ditampilkan setelah program selesai
mengeksekusi pengukuran.
Data pengukuran yang telah diperoleh pada program shell ditampilkan
pada JTextField (B untuk data posisi X, C untuk data posisi Y, D untuk data
posisi Z, G untuk nama ESSID, H untuk nomor MAC Address, J untuk data nilai
field strength dan M untuk data nilai bit rate) pada tampilan Java. Grafik area S
berfungsi untuk menampilkan grafik data field strength dan bit rate yang telah
terukur.
Selanjutnya jika user ingin menyimpan masing-masing data pengukuran,
user akan menekan tombol E (“Save Tracking”) untuk menyimpan data posisi.
Tombol K (“Save Field Strength”) untuk menyimpan data field strength. Tombol
N (“Save Bit Rate”) untuk menyimpan data bit rate, atau user ingin menyimpan
seluruh data pengukuran dengan menekan tombol O.
Kemudian user akan menekan tombol P (“Reset”) untuk eksekusi
penghapusan data pengukuran. Sedangkan saat user menekan tombol Q
(“About”), profil program akan ditampilkan pada area S. User dapat menekan
tombol R untuk eksekusi keluar program.
38
Gambar 3.4 Diagram Alir Program Utama Pengukur
39
Gambar 3.4 (lanjutan) Diagram Alir Program Utama Pengukur
40
3.5. Diagram Alir Subprogram
Program shell disimpan dalam direktori /root/program dan mulai
dieksekusi saat program Java memanggilnya. Ada 11 program shell dalam
perancangan ini, yaitu program tracking data posisi GPS, program deteksi AP,
program pengukuran field strength, program pengukuran bit rate, 2 program
penampil grafik, 4 program penyimpanan data, dan program penghapusan data.
3.5.1 Diagram Alir Subprogram Pengukuran Tracking data GPS
Diagram alir subprogram tracking data GPS dapat dilihat pada Gambar
3.5. Program dimulai dengan inisialisasi, kemudian program menyimpan data
posisi Geodesi GPS yang telah tersimpan dalam memory card dengan memilih
nama file tanggal hari ini (waktu tracking) ke dalam file /root/dump/awal.txt.
Selanjutnya program memilah baris-baris data dalam file awal.txt. Baris-
baris data latitude dan longitude disimpan pada file /root/dump/xy.txt, sedangkan
baris data ketinggian terakhir disimpan dalam file /root/dump/Z.txt. Kemudian
program memilah baris terakhir file /root/dump/xy.txt, program juga menyimpan
data lat pada /root/dump/xyz.txt dan data lon pada /root/dump/xyz0.txt.
Proses eksekusi program dilanjutkan dengan menghitung nilai X dan Y
(satuan UTM), yaitu dengan masukan nilai /root/dump/xyz.txt dan
/root/dump/xyz0.txt (satuan Geodesi) yang telah melalui proses pemilahan.
Kemudian program menyimpan data posisi satuan UTM, nilai X pada
/root/dump/X.txt dan nilai Y pada /root/dump/Y.txt.
41
Gambar 3.5 Diagram Alir Subprogram Tracking Data GPS
42
3.5.2 Diagram Alir Subprogram Deteksi AP
Gambar 3.6 memperlihatkan diagram alir subprogram deteksi AP.
Program dimulai dengan inisialisasi, kemudian program memanggil nilai-nilai
interface wireless configuration dari AP yang sedang terkoneksi PC dengan
instruksi iwconfig wlan0. Kemudian proses dilanjutkan dengan memilah data-data
dari iwconfig wlan0, sehingga didapatkan data ESSID dan MAC Address.
Gambar 3.6 Diagram Alir Subprogram Deteksi AP
43
3.5.3 Diagram Alir Subprogram Pengukuran Field Strength
Diagram alir subprogram pengukuran field strength dapat dilihat pada
Gambar 3.7. Program dimulai dengan inisialisasi, kemudian memanggil nilai-nilai
interface wireless configuration dengan instruksi iwconfig wlan0. Instruksi
iwconfig wlan0 adalah instruksi pada pemrograman shell yang berfungsi untuk
menampilkan data-data konfigurasi yang diterima oleh WLAN card pada PC.
Semua data tersebut akan disimpan dalam temp.txt pada folder /root/dump.
Selanjutnya program membandingkan apakah nilai field strength sama
dengan 0 (AP tidak terkoneksi) atau tidak. Jika field strength sama dengan nol,
maka program akan selesai. Tetapi jika field strength tidak sama dengan nol,
maka program akan mengeksekusi perintah selanjutnya.
Perintah selanjutnya adalah menyimpan data-data iwconfig wlan0 pada file
/root/dump/iwconfig.txt, kemudian program mengedit data dalam
/root/dump/iwconfig.txt tersebut dengan hanya menyisakan data field strength dan
menghapus data-data konfigurasi WLAN card yang lain. Data field strength
kemudian disimpan ke dalam file /root/dump/strengthN.txt dengan N adalah
proses pengukuran yang ke-N.
Kemudian proses dilanjutkan dengan membandingkan apakah nilai N
sudah sama dengan jumlah pengukuran yang diinginkan (N yang diinginkan
adalah 100). Jika nilai N belum sama dengan 100, maka nilai N ditambah dengan
1, kemudian proses berulang dimulai dari memanggil iwconfig. Proses berulang
memiliki waktu tunda sebesar 1 detik. Hal ini ditentukan agar dengan 100 kali
perulangan, program berjalan selama 100 detik. Setelah proses perulangan
44
berakhir pada saat nilai N sama dengan 100, kemudian program mengambil nilai
rata-rata field strength dengan menjumlahkan semua data dari file
/root/dump/strengthN.txt dan membaginya dengan nilai N. Hasil perhitungan
tersebut disimpan pada file /root/dump/ratastrength.txt.
Gambar 3.7 Diagram Alir Subprogram Pengukuran Field Strength
45
3.5.4 Diagram Alir Subprogram Pengukuran Bit Rate
Diagram alir subprogram pengukuran bit rate dapat dilihat pada Gambar
3.8. Program dimulai dengan inisialisasi, kenudian memanggil iwconfig wlan0
dan menyimpan data-data iwconfig wlan0 pada /root/dump/temp.txt. Diambil data
field strength yang tersimpan kemudian dibandingkan apakah sama dengan 0 (AP
tidak terkoneksi) atau tidak. Jika field strength sama dengan nol, maka program
akan selesai, tetapi jika field strength tidak sama dengan nol, maka program akan
mengeksekusi perintah selanjutnya.
Perintah selanjutnya adalah memanggil nilai-nilai interface wireless
configuration dengan instruksi ifconfig wlan0. Instruksi ifconfig wlan0 adalah
instruksi pada pemrograman shell yang berfungsi untuk menampilkan data-data
konfigurasi yang diterima oleh PC dari WLAN card. Semua data tersebut akan
disimpan dalam ifconfig.txt pada folder /root/dump.
Proses selanjutnya adalah mengedit data dalam /root/dump/ifconfig.txt
dengan hanya menyisakan data byte yang diterima dari WLAN card dan
menghapus data-data yang lain. Data bit rate diperoleh dari pengurangan data byte
yang kedua dikurangi data byte yang pertama (selisih pengambilan data byte 1
detik) dan dibagi dua, kemudian data bit rate disimpan dalam file
/root/dump/bitN.txt, dengan N adalah proses pengukuran yang ke-N.
Kemudian proses dilanjutkan dengan membandingkan apakah nilai N
sudah sama dengan jumlah pengukuran yang diinginkan (N yang diinginkan
adalah 100). Jika nilai N belum sama dengan 100, maka nilai N ditambah dengan
1, kemudian proses berulang dimulai dari memanggil ifconfig. Dengan 100 kali
46
perulangan, dan ditambah tunda pengambilan data byte pertama dan kedua, maka
program berjalan selama 100 detik. Setelah proses perulangan berakhir pada saat
nilai N sama dengan 100, kemudian program mengambil nilai rata-rata bit rate
dengan menjumlahkan semua data dari file /root/dump/bitN.txt dan membaginya
dengan nilai N. Hasil perhitungan tersebut disimpan pada file
/root/dump/ratabit.txt.
Gambar 3.8 Diagram Alir Subprogram Pengukuran Bit Rate
47
3.5.5 Diagram Alir Subprogram Penampil Grafik Field Strength
Diagram alir subprogram penampil grafik field strength dapat dilihat pada
Gambar 3.9. Program dimulai dengan inisialisasi, kemudian mengambil nilai field
strength dari perintah iwconfig wlan0. Nilai field strength kemudian dibandingkan
apakah sama dengan 0 (AP tidak terkoneksi) atau tidak. Jika field strength sama
dengan nol, maka program akan selesai, tetapi jika field strength tidak sama
dengan nol, maka program akan mengeksekusi perintah selanjutnya.
�����
������������
��������� ������
������������� ������
�����
������� ���� ���� ������
��������������������
����� ���� ������
������������ � � �
��
��
������ ����� ������������
������ ��� ������
Gambar 3.9 Diagram Alir Subprogram Penampil Grafik Field Strength
48
Perintah selanjutnya adalah mencari nilai field strength terbesar dan
terkecil dengan membandingkan masing-masing nilai field strength yang telah
diukur dari program pengukur field strength. Selisih nilai field strength terbesar
dan terkecil ini akan menjadi jangkauan (range) pada sumbu Y grafik. Kemudian
grafik perbandingan antara nilai field strength (dBm) dengan waktu (detik)
ditampilkan.
3.5.6 Diagram Alir Subprogram Penampil Grafik Bit Rate
Diagram alir subprogram penampil grafik bit rate dapat dilihat pada
Gambar 3.10. Program dimulai dengan inisialisasi, kemudian program mengambil
nilai field strength dari perintah iwconfig wlan0. Nilai field strength kemudian
dibandingkan apakah sama dengan 0 (AP tidak terkoneksi) atau tidak. Jika field
strength sama dengan nol, maka program akan selesai, tetapi jika field strength
tidak sama dengan nol, maka program akan mengeksekusi perintah selanjutnya.
Perintah selanjutnya adalah mengubah masing-masing nilai bit rate yang
telah diukur dari program pengukur bit rate yang semula satuannya Bps menjadi
KBps. Hal ini dilakukan dengan membagi nilai bit rate tersebut dengan 1000.
Kemudian program mencari nilai bit rate terbesar dan terkecil dengan
membandingkan masing-masing nilai bit rate. Selisih nilai bit rate terbesar dan
terkecil ini akan menjadi jangkauan (range) pada sumbu Y grafik. Selanjutnya
program menampilkan grafik perbandingan antara nilai bit rate (KBps) dengan
waktu (detik) ditampilkan.
49
�����
������������
��������� ������
�������� ������
�����
������� ���� ���� ������
��������������������
����� ���� ������
������������ � � �
��
��
������ ����� �������
������ ��� ������
������ ����� ��������
���� !�� �"��� #!��
Gambar 3.10 Diagram Alir Subprogram Penampil Grafik Bit Rate
3.5.7 Diagram Alir Subprogram Penyimpanan Data Posisi
Diagram alir subprogram penyimpanan data posisi dapat dilihat pada
Gambar 3.11. Program dimulai dengan inisialisasi, kemudian menggabungkan
data X.txt, Y.txt dan Z.txt dalam satu baris dan disimpan dalam file
/root/simpanan/data_posisi/YYYYBBTT.txt. File “YYYYBBTT.txt” berarti
YYYY adalah tahun sekarang (misal 2009), BB adalah bulan sekarang (misal 12)
50
dan TT adalah tanggal sekarang (misal 25). Program mengubah permission dari
file /root/simpanan/data_posisi/YYYYBBTT.txt menjadi hanya read-only untuk
user. Hal ini dilakukan untuk keamanan penyimpanan data.
Gambar 3.11 Diagram Alir Subprogram Penyimpanan Data Posisi
3.5.8 Diagram Alir Subprogram Penyimpanan Data Field
Strength
Diagram alir subprogram penyimpanan data field strength dapat dilihat
pada Gambar 3.12. Program dimulai dengan inisialisasi, kemudian
menggabungkan menggabungkan 100 data field strength pengukuran menjadi satu
baris dalam file /root/dump/datastrength.txt.
Proses selanjutnya adalah data ratastrength.txt, MAC.txt, datea.txt dan
datastrength.txt disimpan dalam satu baris pada file
51
/root/simpanan/data_fielstrength/YYYYBBTT.txt. Penamaan “YYYYBBTT.txt”
berarti YYYY adalah tahun sekarang, BB adalah bulan sekarang dan TT adalah
tanggal sekarang. Kemudian program mengubah permission dari file
/root/simpanan/data_fieldstrength/YYYYBBTT.txt menjadi hanya read-only
untuk user. Hal ini dilakukan untuk keamanan penyimpanan data.
�����
������������
���������� ���� �$%���� ��������
���������� ���� & '����'�������'
����(���������� '����!!))����
�����
*�� �������� ��� '����'�������'
����(���������� '����!!))����
+�������� ,�� �����������
������ ���� ��� '����'
���'���������� ����
Gambar 3.12 Diagram Alir Subprogram Penyimpanan Data Field Strength
3.5.9 Diagram Alir Subprogram Penyimpanan Data Bit Rate
Diagram alir subprogram penyimpanan data bit rate dapat dilihat pada
Gambar 3.13. Program dimulai dengan inisialisasi, kemudian menggabungkan
52
menggabungkan 100 data bit rate pengukuran menjadi satu baris dalam file
/root/dump/databit.txt.
Proses selanjutnya adalah data ratabit.txt, MAC.txt, date0.txt dan
databit.txt disimpan dalam satu baris pada file
/root/simpanan/data_bitrate/YYYYBBTT.txt. Penamaan “YYYYBBTT.txt”
berarti YYYY adalah tahun sekarang, BB adalah bulan sekarang dan TT adalah
tanggal sekarang. Kemudian program mengubah permission dari file
/root/simpanan/data_bitrate/YYYYBBTT.txt menjadi hanya read-only untuk user.
Hal ini dilakukan untuk keamanan penyimpanan data.
Gambar 3.13 Diagram Alir Subprogram Penyimpanan Data Bit Rate
53
3.5.10 Diagram Alir Subprogram Penyimpanan Semua Data
Diagram alir subprogram penyimpanan semua data dapat dilihat pada
Gambar 3.14. Program dimulai dengan inisialisasi, kemudian menggabungkan
data X.txt, Y.txt, Z.txt, ratabit.txt, MAC.txt dalam satu baris dan disimpan dalam
folder /root/dump/bitrate.txt. Proses dilanjutkan dengan menggabungkan data
X.txt, Y.txt, Z.txt, ratastrength.txt, MAC.txt dalam satu baris dan disimpan dalam
folder /root/dump/fieldstrength.txt. Sedangkan data X.txt, Y.txt, Z.txt,
ratastrength.txt, MAC.txt, ratabit.txt disimpan dalam folder C/TA/data.txt.
Data simpanan yang terdapat pada file /root/dump/bitrate.txt dan file
/root/dump/bitrate.txt yang telah disimpan dan diurutkan berdasarkan nama AP.
Kemudian program menyimpan data yang telah diurutkan ke dalam folder
C/TA/bitrate.txt dan C/TA/fieldstrength.txt.
Gambar 3.14 Diagram Alir Subprogram Penyimpanan Semua Data
54
3.5.11 Diagram Alir Subprogram Penghapusan Data
Diagram alir subprogram penghapusan data dapat dilihat pada Gambar
3.15. Program dimulai dengan inisialisasi, kemudian program menghapus isi file
penyimpanan dalam folder windows saja, yaitu file C/TA/data.txt, file
C/TA/fieldstrength.txt dan file C/TA/bitrate.txt.
Gambar 3.15 Diagram Alir Subprogram Penghapusan Data
3.5.12 Diagram Alir Subprogram Keluar
Diagram alir subprogram keluar dapat dilihat pada Gambar 3.16. Program
dimulai dengan inisialisasi, kemudian program menghapus folder /root/dump
beserta isinya. Proses selanjutnya adalah membuat folder /root/dump kosong yang
baru.
55
�����
������������
!��� '����'���
�����
-���� '����'���
Gambar 3.16 Diagram Alir Subprogram Keluar
56
BAB IV
HASIL DAN PEMBAHASAN
4.1 Tampilan Program
Program pengukur field strength dan bit rate mempunyai beberapa button
yang berfungsi untuk menjalankan program yang diinginkan. Button tersebut
adalah Track Button, Save Tracking Button, Detect Button, Fieldstrength Button,
Bitrate Button, Save Bitrate Button, Save all Button, Reset Button, About Button
dan Exit Button. Gambar 4.1 menunjukkan tampilan program pengukur.
Gambar 4.1 Tampilan Program Pengukur
� 16
� 15
� 14
� 13
� 12
� 11
�
9
�
1
�
2
3
�
4
5�
6
7�
8
� 10
57
Keterangan:
1 = Track button
2 = Save Tracking button
3 = Detect button
4 = Fieldstrength button
5 = Save Fieldstrength button
6 = Bitrate button
7 = Save Bitrate button
8 = Save all button
9 = Reset button
10= About button
11= Exit button
12= Text area data posisi X, Y, Z
13= Text area ESSID dan MAC Address
14= Text area nilai field strength
15= Text area nilai bit rate
16= Text area grafik data dan about
Untuk memulai menjalankan program, user pertama-tama melakukan
koneksi PC/laptop dengan memory card GPS. User juga harus melakukan koneksi
terhadap Access Point (AP) yang ingin diukur terlebih dahulu. Setelah kedua hal
tersebut sudah dilakukan, user dapat memilih jenis eksekusi yang ingin
dijalankan.
58
User bisa memulai menjalankan program dengan menekan Track button.
Kemudian program akan menampilkan data posisi dengan satuan UTM yang telah
dikonversi dari memory card GPS, kemudian data posisi dapat disimpan dengan
menekan Save Tracking button. User bisa melanjutkan menjalankan program
dengan menekan Detect button. Program akan menampilkan ESSID dan MAC
Address dari AP yang sedang terkoneksi saat user menekan Detect button.
Jika Fieldstrength button ditekan, maka program mengukur nilai field
strength 1 kali per detik (selama 100 detik), kemudian program menampilkan nilai
rata-ratanya. Setelah itu program akan menampilkan grafik data, ESSID dan MAC
Address. Sedangkan saat Bitrate button ditekan, program mengukur nilai bit rate
selama 1 kali per detik (selama 100 detik) kemudian program menampilkan nilai
rata-ratanya. Setelah itu, program akan menampilkan grafik data, ESSID dan
MAC Address kembali untuk melakukan check AP yang terkoneksi. Jika AP tidak
terkoneksi, maka kedua eksekusi program di atas tidak melakukan eksekusi
pengukuran dan eksekusi penampil grafik.
Untuk menyimpan nilai field strength saja user cukup menekan Save
Fieldstrength button, sedangkan untuk menyimpan nilai bit rate saja user cukup
menekan Save Bitrate button. User dapat menekan Save all button untuk
menyimpan semua data yang telah diukur dalam file teks pada folder windows.
User juga dapat menghapus semua data yang telah tersimpan dalam file
teks pada folder windows dengan menekan Reset button. User dapat menekan
About button untuk melihat profil program. User cukup menekan Exit button
untuk keluar dari program perangkat lunak pengukur field strength dan bit rate.
59
4.2 Pengujian Program
4.2.1 Tracking Data dari GPS
Tracking data dari GPS mempunyai fungsi untuk mengambil data posisi
Geodesi yang telah tersimpan dalam memory card GPS. Program ini kemudian
mengolah data posisi Geodesi tersebut menjadi data posisi UTM. Untuk memilah
data latitude, longitude, dan ketinggian posisi tracking terakhir yang telah
tersimpan dalam memory card GPS dapat dilakukan dengan cara seperti pada
listing program berikut:
cat /media/disk-3/`date -u +%Y``date -u +%m``date -u +%d`.gpx > /root/dump/awal.txt #memilih file simpanan ‘.gpx’ tanggal hari ini grep lat /root/dump/awal.txt > /root/dump/xy.txt #memilah baris data lat&lon grep ele /root/dump/awal.txt > /root/dump/z.txt #memilah baris data ketinggian tail -n 1 /root/dump/xy.txt | awk -F'"' '{print$2;}' > /root/dump/xyz.txt tail -n 1 /root/dump/xy.txt | awk -F'"' '{print$4;}' > /root/dump/xyz0.txt tail -n 1 /root/dump/z.txt | awk -F'>' '{print$2;}' | awk -F'<' '{print$1;}' > /root/dump/xyz1.txt #ambil data baris terakhir
Pada listing program di atas, program pertama akan memilih file yang
telah tersimpan pada tanggal hari ini pada memory card GPS dan menyimpannya
pada file awal.txt. Proses kedua, program memilah file awal.txt untuk baris data
lat dan ele, kemudian menyimpannya pada file xy.txt untuk data lat dan file z.txt
untuk data ele. Proses berikutnya, program mengambil data terakhir dari data
xy.txt dan z.txt yang berisi data latitude, longitude, dan elevation. Kemudian data
latitude disimpan pada file xyz.txt, data longitude disimpan pada file xyz0.txt, dan
data elevation disimpan pada file xyz1.txt. Sedangkan program untuk konversi
60
data Geodesi (lat, lon) menjadi bentuk UTM (X, Y) dilakukan dengan cara seperti
listing program berikut:
echo "scale=12; $FE+$k0*`cat /root/dump/N.txt`*(`cat /root/dump/A.txt`+(1-`cat /root/dump/T.txt`+`cat /root/dump/C.txt`)*`cat /root/dump/A.txt`^3/6+(5-18*`cat /root/dump/T.txt`+`cat /root/dump/T.txt`^2+72*`cat /root/dump/C.txt`-58*$eps)*`cat /root/dump/A.txt`^5/120)" | bc -l > /root/dump/X.txt # menghitung nilai X echo "scale=12; $FN+$k0*`cat /root/dump/M.txt`+$k0*`cat /root/dump/N.txt`*(s(`cat /root/dump/lat.txt`)/c(`cat /root/dump/lat.txt`))*(`cat /root/dump/A.txt`^2/2+(5-`cat /root/dump/T.txt`+9*`cat /root/dump/C.txt`+4*`cat /root/dump/C.txt`^2)*`cat /root/dump/A.txt`^4/24+(61-58*`cat /root/dump/T.txt`+`cat /root/dump/T.txt`^2+600*`cat /root/dump/C.txt`-330*$eps)*`cat /root/dump/A.txt`^6/720)" | bc -l > /root/dump/Y.txt # menghitung nilai Y awk -F. '{print$1;}' /root/dump/X.txt > /root/dump/x.txt awk -F. '{print$1;}' /root/dump/Y.txt > /root/dump/y.txt awk -F. '{print$1;}' /root/dump/xyz1.txt > /root/dump/z.txt # menampilkan nilai X,Y,Z hanya angka di depan koma
Perhitungan nilai X dan Y sesuai dengan dasar teori rumus konversi
Geodesi ke UTM dari R.M. Toms. Kemudian setelah program mendapatkan nilai
X, Y, dan Z, eksekusi selanjutnya adalah program hanya menampilkan angka di
depan koma nilai X, Y, dan Z.
Gambar 4.2 menunjukkan tampilan program sebelum dieksekusi. Hal ini
bertujuan untuk mengingatkan user bahwa eksekusi ini akan berkerja jika
PC/laptop telah terkoneksi dengan memory card GPS.
Gambar 4.2 Pesan Pengingat Koneksi GPS
61
Program berhasil melakukan tracking data posisi dari memory card GPS
dan mengkonversinya menjadi satuan UTM seperti terlihat pada Gambar 4.3.
Gambar 4.3 juga menunjukkan bahwa data X, Y, Z ditampilkan tanpa angka di
belakang koma sesuai dengan listing program. Hal ini dilakukan untuk
menyederhanakan tampilan data teks untuk pengambilan data dari program sistem
optimasi WLAN yang lain untuk pengolahan data posisi selanjutnya, yaitu
program Optimasi WLAN dengan Metode Jaringan Saraf Tiruan.
Penghilangan angka di belakang koma (atau pembulatan ke bawah) dalam
data posisi X, Y, Z bisa mempunyai galat hingga 1 meter. Hal ini tidak begitu
berpengaruh pada perhitungan karena pengambilan data posisi berada pada daerah
kampus yang cukup luas.
Gambar 4.3 Tracking Data dari Memory Card GPS
62
Data posisi 10 client yang telah diambil selama penelitian dapat dilihat
pada Tabel 4.1.
Tabel 4.1 Data Posisi 10 Client
Client Data dari memory card GPS Data Keluaran Program
Latitude Longitude X Y
1 -7,755251 110,421138 436171 9142715
2 -7,755272 110,421336 436193 9142713
3 -7,755292 110,421752 436239 9142711
4 -7,755335 110,421476 436208 9142706
5 -7,754899 110,421751 436238 9142754
6 -7,755339 110,421598 436222 9142706
7 -7,754975 110,421743 436238 9142746
8 -7,754884 110,421778 436241 9142755
9 -7,755187 110,421502 436211 9142722
10 -7,755238 110,421572 436219 9142717
Satu data diuraikan dalam perhitungan, yaitu data client 1 sebagai contoh
perhitungan. Berikut perhitungan sesuai rumus konversi dari satuan Geodesi ke
UTM untuk client 1:
Latitude=-7,755251
Longitude=110,421138
Perhitungan lat dan lon dalam radian:
180
π×=
latitudelat
180
14.3755251.7 ×−=lat = -0,135354664286
63
180
longitude π×=lon
180
14.3110.421138×=lon = 1,927212422150
Perhitungan referensi longitude:
36)6
longitude(0 +×=Lon
36)6
110.421138(0 +×=Lon
36180 +×=Lon =111
6
Lon00
π×=lon
180
14.31110
×=lon = 1,937315469966
Perhitungan jarak sebenarnya antara garis bujur dengan garis khatulistiwa:
)4sin()1024
45
256
15()2sin()
1024
45
32
3
8
3()
256
5
64
3
41[(
64642642
latee
lateee
lateee
aM ++++−−−−=
)]6sin()3072
35(
6
late
−
××
−×
−−= )256
10.081819195
64
10.081819193
4
10.081819191[(6378137
642
M
32
10.081819193
8
10.081819193(42860.13535466-
42×
+×
−
)1024
10.0818191945 6×
+ +× )64286-0.13535462sin(
−××
+×
)64286-0.13535464sin()1024
10.0818191945
256
10.0818191915(
64
)]64286-0.13535466sin()3072
10.0818191935(
6
××
= -857583,662472085701
Perhitungan jari-jari bumi yang tegak lurus dengan garis bujur:
))sin(1( 22 late
aN
−
=
))64286-0.1353546sin(10.081819191(
6378137
22−
=N =6378525,782340746416
2)tan(latT =
64
2)64286-0.1353546tan(=T =0,018547000552
2)cos(. latEpsC =
2)64286-0.1353546cos(.67680.00673949=C =0,006616775429
)cos().0( latlonlonA −=
)64286-0.1353546cos().99661.9373154621501.92721242( −=A
= -0,010010640637
Perhitungan nilai X:
)120
).58.72.185(6
)1(
(0
523
AepsCTTA
CTA
NkFEX
×−++−+×+−+
××+=
××+= 23407464166378525,780,9996500000X
+
×+−+
120
6
06370,01001064-)54290,0066167705520,018547001(06370,01001064-
(
3
120
)67680,006739495854290,006616777205520,0185470005520,01854700185( 2×−×++×−
)40637-0,0100106 5× =436171,358495309769
Perhitungan nilai Y:
24).4.95(
2()tan(00
42
2 ACCT
AlatNkMkFNY ×++−+×××+×+=
)720
).330.600.5861(6
2 AepsCTT ×−++−+
×+×+= 9996,02472085701-857583,669996,010000000Y
×× )64286-0,1353546tan(23407464166378525,78 +
2
06370,01001064-(
2
)54290,00661677454290,00661677905520,018547005( 2×+×+−
+×
24
06370,01001064- 4
−×++×− 54290,0066167760005520,0185470005520,018547005861( 2
)720
06370,01001064-)67680,00673949330
6
×× =9142715,860357762986
65
Tabel 4.2 Perbandingan Nilai X dan Y antara Perhitungan Rumus dengan Program
pada Client 1.
Nilai X Nilai Y
Perhitungan rumus Program Perhitungan rumus Program
436171,358495309769 436171 9142715,860357762986 9142715
Dari perhitungan rumus dapat dibuat Tabel 4.2 yang menunjukkan nilai X
dan Y pada keluaran program sesuai dengan nilai X dan Y pada perhitungan
rumus kecuali nilai koma di belakang angka. Hal ini sesuai dengan listing
program yang hanya mengeksekusi penampilan angka di depan koma.
4.2.2 Deteksi Access Point
Deteksi Access Point (AP) berfungsi untuk mengetahui identitas AP yang
telah terkoneksi dengan PC/laptop client. Untuk menyimpan identitas AP pada
program ini (ESSID dan MAC address) dilakukan dengan cara:
1.) memilah iwconfig wlan0 dengan menyisakan data ESSID,
2.) memilah iwconfig wlan0 dengan menyisakan data MAC Address,
seperti pada listing program berikut:
iwconfig wlan0 | grep ESSID | awk -F: '{print$2;}' > /root/dump/ESSID.txt #menyimpan ESSID iwconfig wlan0 | grep Mode | awk '{print$6;}' > /root/dump/MAC.txt #menyimpan MAC Address
Gambar 4.4 memperlihatkan pesan yang akan ditampilkan sebelum
program dieksekusi. Hal ini berguna untuk mengingatkan user agar
menghubungkan PC/laptop dengan AP terlebih dahulu.
66
Gambar 4.4 Pesan Pengingat Koneksi AP
Gambar 4.5 Deteksi Koneksi AP fst-1
Tampilan program telah berhasil melakukan deteksi terhadap AP yang
sedang terkoneksi dengan PC/laptop dapat terlihat pada Gambar 4.5. Ada 3
Access Point yang diukur pada penelitian ini, yaitu AP1 dengan ESSID=hotspot-
67
usd-fst1 MAC=00:0C:42:05:68:3D, AP2 dengan ESSID=hotspot-usd-fst2
MAC=00:0C:42:0C:06:E3, dan AP3 dengan ESSID=hotspot-usd-elektro
MAC=00:0C:42:0C:06:49.
4.2.3 Pengukuran Field Strength
Pengukuran Field Strength pada program ini adalah dengan mengukur
nilai field strength per detik selama 100 detik, kemudian dihitung nilai field
strength rata-ratanya. Pengujian dilakukan dengan membandingkan nilai field
strength rata-rata dan karakteristik grafik nilai field strength selama 100 detik
antara program dengan alat Fluke Wifi Analyze. Untuk melakukan pengukuran
field strength dilakukan dengan cara seperti pada listing program berikut:
for (( i=1; $i <= 100; i++ )) do iwconfig wlan0 | grep Link > /root/dump/temp.txt awk -F: '{print$3;}' /root/dump/temp.txt | awk '{print$1;}' > /root/dump/strength$i.txt #menyimpan field strength echo "scale=2; `cat /root/dump/strength$i.txt` + `cat /root/dump/awal.txt`" | bc -l > /root/dump/awal1.txt cat /root/dump/awal1.txt > /root/dump/awal.txt sleep 1 #jeda 1 detik done date > /root/dump/dateb.txt echo "scale=2; `cat /root/dump/awal.txt` / 100" | bc -l > /root/dump/ratastrength.txt cat /root/dump/ratastrength.txt
#perhitungan rata-rata
Terlihat pada listing program di atas bahwa proses pertama adalah
mengambil data field strength dengan memilah iwconfig wlan0 dan
menyimpannya pada file strength$i.txt dengan $i adalah perhitungan ke i.
Pengambilan nilai field strength dilakukan dengan jeda 1 detik sesuai perintah
68
sleep 1, dengan perulangan sebanyak 100 kali dengan perintah for (( i=1,
$i<=100, i++ )).
Sedangkan perintah echo "scale=2; `cat /root/dump/awal.txt` / 100" | bc -
l > /root/dump/ratastrength.txt digunakan untuk perhitungan rata-rata nilai field
strength dan menyimpannya pada file ratastrength.txt. Gambar 4.6 menunjukkan
pesan agar user menunggu proses pengukuran yang akan berlangsung sebelum
eksekusi program.
Gambar 4.6 Pesan untuk Menunggu Pengukuran Field Strength
Jika program pengukuran telah selesai dieksekusi, maka program
selanjutnya mengeksekusi penampil grafik data. Listing program penampil data
dapat dilihat pada lampiran. Gambar 4.7 memperlihatkan pesan bahwa
pengukuran telah selesai dan Gambar 4.8 menunjukkan bahwa program
pengukuran dan program penampil telah selesai dieksekusi.
Gambar 4.7 Pesan Pengukuran Field Strength telah Selesai
69
Gambar 4.8 Tampilan Pengukuran Field Strength telah Selesai
Terdapat 2 jenis pengujian pada pengukuran field strength, yaitu pengujian
pada 10 posisi client dan pengujian 1 posisi dengan 4 keadaan. Berikut data dan
grafik perbandingan program dengan Fluke Wifi Analyze.
Tabel 4.3 Perbandingan Pengukuran Filed Strength Program dengan Fluke
Client AP Fluke
(dBm)
Program
(dBm)
Selisih
(dBm) %Galat
1
FST-1 -86,76 -79,77 -6,99 8,06
FST-2 -83,81 -80,99 -2,82 3,36
Elektro -66,71 -61,92 -4,79 7,18
70
Tabel 4.3 (lanjutan) Perbandingan Pengukuran Filed Strength Program dengan Fluke
Client AP Fluke
(dBm)
Program
(dBm)
Selisih
(dBm) %Galat
2
FST-1 -88,26 -83,76 -4,50 5,09
FST-2 -78,54 -79,52 0,98 1,25
Elektro -53,70 -64,49 10,79 20,09
3
FST-1 -84,61 -84,73 0,12 0,14
FST-2 -71,88 -64,73 -7,15 9,95
Elektro -65,16 -66,82 1,66 2,55
4
FST-1 -85,59 -75,60 -9,99 11,67
FST-2 -67,11 -67,85 0,74 1,10
Elektro -57,19 -42,16 -15,03 26,28
5
FST-1 -73,95 -69,23 -4,72 6,38
FST-2 -89,46 -83,36 -6,10 6,82
Elektro -86,09 -80,45 -5,64 6,55
6
FST-1 -86,50 -83,20 -3,30 3,82
FST-2 -85,36 -74,75 -10,61 12,43
Elektro -78,56 -77,13 -1,43 1,82
7
FST-1 -83,26 -79,02 -4,24 5,09
FST-2 -78,53 -77,03 -1,50 1,91
Elektro -70,11 -58,77 -11,34 16,17
71
Tabel 4.3 (lanjutan) Perbandingan Pengukuran Filed Strength Program dengan Fluke
Client AP Fluke
(dBm)
Program
(dBm)
Selisih
(dBm) %Galat
8
FST-1 -61,96 -70,13 8,17 13,19
FST-2 -81,92 -83,14 1,22 1,49
Elektro -80,95 -75,95 -5,00 6,18
9
FST-1 -88,66 -83,80 -4,86 5,48
FST-2 -73,36 -73,52 0,16 0,22
Elektro -81,92 -81,30 0,62 0,76
10
FST-1 -89,32 -83,66 -5,66 6,34
FST-2 -76,51 -67,18 -9,33 12,18
Elektro -80,51 -79,52 -0,99 1,23
Cara menghitung selisih nilai field strength pada Tabel 4.3 adalah sama
dengan nilai field strength Fluke (dBm) - nilai field strength Program (dBm).
Sedangkan cara untuk menghitung %Galat =
%100Pr
×−
gthFlukefieldstrennilai
ogramgthfieldstrennilaiFlukegthfieldstrennilai
Pembahasan selanjutnya mengambil sampling 1 client terhadap pengujian
10 posisi client untuk dilihat grafik karakteristik pengukuran data selama 100
detik. Gambar 4.9 menunjukkan tampilan program pengukur dan Gambar 4.10
tampilan Fluke AnalyzeAir. Gambar 4.11 yang menunjukkan perbandingan
karakteristik pengukuran client 1 saat mengambil data AP usd-fst2 dengan
72
program pengukur dan Fluke. Hal ini dilakukan untuk memperjelas pengamatan
grafik kedua antara program.
Gambar 4.9 Tampilan Pengukuran Field Strength Program Pengukur
Gambar 4.10 Tampilan Pengukuran Field Strength Fluke AnalyzeAir
73
Gambar 4.11 Grafik Perbandingan Program dengan Fluke pada Client 1 AP fst-2
Grafik pada Gambar 4.11 dibuat dengan terlebih dahulu mengukur
masing-masing data per detik sesuai dengan waktu yang bersamaan antara kedua
alat, kemudian kedua grafik digabungkan ke dalam satu grafik. Gambar 4.11
memperlihat perbedaan karakteristik dari trend grafik antara grafik pengukuran
program pengukur dengan grafik Fluke AnalyzeAir.
Sedangkan Tabel 4.3 memperlihatkan nilai galat rata-rata dari semua
pengukuran antara program dengan Fluke Wifi Analyze adalah 6.826%, hal ini
menunjukkan bahwa kinerja pengukuran program dengan alat hampir sama
dengan selisih kurang dari 10%. Sebagai catatan, dalam pengukuran ini posisi
masing-masing alat pengukur (laptop dan Fluke) terhadap AP yang tidak
diperhitungkan.
Waktu (s)
Fieldstrength (dBm)
74
Untuk pembahasan secara lebih mendalam, dilakukan percobaan
pengukuran dengan memperhatikan empat keadaan (posisi alat terhadap AP)
seperti terlihat pada Gambar 4.12, Gambar 4.15, Gambar 4.18, Gambar 4.21 untuk
gambar tampak samping dan Gambar 4.13, Gambar 4.16, Gambar 4.19, Gambar
4.22 untuk gambar tampak atas posisi antara AP dengan alat Fluke AnalyzeAir.
Percobaan ini juga dilakukan dengan menambahkan antenna directional eksternal
pada alat Fluke AnalyzeAir untuk menambah kepekaan alat pada sudut tertentu.
-Pengujian 1 posisi dengan 4 keadaan
1.) keadaan 1; Fluke=-59.94 dBm; Program=-52.58 dBm
Gambar 4.12 Tampak Samping Keadaan 1
Gambar 4.13 Tampak Atas Keadaan 1
0° 4 3
2
1
75
Gambar 4.14 Grafik Perbandingan Program dengan Fluke pada Keadaan 1
2.) Keadaan 2; Fluke=-60.87 dBm; Program=-51.72 dBm
Gambar 4.15 Tampak Samping Keadaan 2
Gambar 4.16 Tampak Atas Keadaan 2
90°
2
4
1
3
Fieldstrength (dBm)
Waktu (s)
76
Gambar 4.17 Grafik Perbandingan Program dengan Fluke pada Keadaan 2
3.) Keadaan 3; Fluke=-62.67 dBm; Program=-60.17 dBm
Gambar 4.18 Tampak Samping Keadaan 3
Gambar 4.19 Tampak Atas Keadaan 3
180°
2
4 3
1
Fieldstrength (dBm)
Waktu (s)
77
Gambar 4.20 Grafik Perbandingan Program dengan Fluke pada Keadaan 3
4.) Keadaan 4 Fluke=-61.42 dBm; Program=-52.43 dBm
Gambar 4.21 Tampak Samping Keadaan 4
Gambar 4.22 Tampak Atas Keadaan 4
270°
2
4
1
3
Fieldstrength (dBm)
Waktu (s)
78
Gambar 4.23 Grafik Perbandingan Program dengan Fluke pada Keadaan 4
Keterangan gambar:
1 = AP tampak samping
2 = Fluke tampak samping
3 = AP tampak atas
4 = Fluke tampak atas
Gambar 4.14, Gambar 4.17, Gambar 4.20, dan Gambar 4.23 di atas
menunjukkan kemiripan trend grafik pada pangukuran keadaan 1 (sudut 0
derajat), 2 (sudut 90 derajat) dan 4 (sudut 270 derajat). Sedangkan trend grafik
terlihat sangat berbeda pada keadaan 3 dengan sudut 180 derajat pengukuran.
Tabel 4.4 memperlihatkan perbandingan field strength antara Program dan
Fluke untuk masing-masing keadaan. Hasil perbandingan field strength antara
Program dan Fluke memperlihatkan bahwa pengukuran nilai field strength paling
Fieldstrength (dBm)
Waktu (s)
81
lemah terdapat pada keadaan 3. Sedangkan pengukuran paling efektif (nilai field
strength paling besar) terdapat pada keadaan 1 untuk Fluke dan keadaan 2 untuk
alat (laptop) program.
Adapun masih terdapat perbedaan nilai rata-rata pada masing-masing
keadaan dikarenakan berbedaan sensitivitas hardware dan kinerja program yang
berbeda antara program dan Fluke Wifi Analyze yang telah ditambahkan antenna
directional eksternal.
Tabel 4.4 Perbandingan Field Strength Program dan Fluke Berdasarkan Keadaan
Keadaan Sudut
(derajat) Fluke (dBm)
Program
(dBm)
1 0 -59,94 -52,58
2 90 -60,87 -51,72
3 180 -62,67 -60,17
4 270 -61,42 -52,43
4.2.4 Pengukuran Bit Rate
Pengukuran Bit Rate pada program ini dilakukan dengan mengukur nilai
bit rate per detik selama 100 detik (100 kali), kemudian program menghitung nilai
bit rate rata-ratanya. Pengujian dilakukan dengan membandingkan nilai bit rate
rata-rata dan karakteristik grafik nilai bit rate selama 100 detik antara program
dengan perangkat lunak Wireshark. Untuk melakukan pengukuran bit rate
dilakukan dengan cara seperti pada listing program berikut:
82
for (( i=1; $i <= 100; i++ )) do ifconfig wlan0 | grep bytes > /root/dump/coba.txt awk -F: '{print$2;}' /root/dump/coba.txt | awk '{print$1;}' > /root/dump/coba.txt #menyimpan byte pertama sleep 1 #jeda 1 detik ifconfig wlan0 | grep bytes > /root/dump/coba1.txt awk -F: '{print$2;}' /root/dump/coba1.txt | awk '{print$1;}' > /root/dump/coba1.txt #menyimpan byte kedua echo $((`cat /root/dump/coba1.txt` - `cat /root/dump/coba.txt`)) > /root/dump/bit$i.txt #menyimpan bit rate echo "scale=2; `cat /root/dump/bit$i.txt` + `cat /root/dump/awal.txt`" | bc -l > /root/dump/awal1.txt cat /root/dump/awal1.txt > /root/dump/awal.txt done date > /root/dump/date1.txt echo "scale=2; `cat /root/dump/awal.txt` / 100" | bc -l > /root/dump/ratabit.txt echo `cat /root/dump/ratabit.txt` #menyimpan rata-rata bit rate
Terlihat pada listing program di atas bahwa eksekusi program pertama
mengambil nilai bit rate dengan memilah ifconfig wlan0. Pengambilan nilai bit
rate dilakukan dengan jeda 1 detik sesuai perintah sleep 1, dengan perulangan
sebanyak 100 kali dengan perintah for (( i=1, $i<=100, i++ )).
Sedangkan perintah echo "scale=2; `cat /root/dump/awal.txt` / 100" | bc -l
> /root/dump/ratabit.txt digunakan untuk perhitungan rata-rata nilai bit rate dan
menyimpannya pada file ratabit.txt. Gambar 4.6 menunjukkan pesan agar user
menunggu proses pengukuran yang akan berlangsung sebelum eksekusi program.
Gambar 4.24 Pesan untuk Menunggu Pengukuran Bit Rate
83
Jika program pengukuran telah selesai dieksekusi, maka program
penampil grafik data selanjutnya dieksekusi. Listing program penampil data
dilihat pada lampiran. Gambar 4.25 memperlihatkan pesan bahwa pengukuran
telah selesai dan Gambar 4.26 menunjukkan bahwa program pengukuran dan
penampil telah selesai dieksekusi.
Gambar 4.25 Pesan Pengukuran Bit Rate telah Selesai
Gambar 4.26 Tampilan Pengukuran Bit Rate telah Selesai
84
Tabel 4.5 Perbandingan Bit Rate Program dengan Wireshark
Client AP Wireshark (Bps) Program (Bps) %Galat
1
FST-1 46722 43353 7,21
FST-2 15954 13982,93 12,35
Elektro 26855,68 26122,85 2,73
2
FST-1 831,41 499,99 39,86
FST-2 22078,57 20245,85 8,30
Elektro 4888,27 4514,02 7,66
3
FST-1 7421,43 6384,85 13,97
FST-2 28585,71 26702,56 6,59
Elektro 6341,55 5600,52 11,68
4
FST-1 3746,43 3530,84 5,75
FST-2 8742,86 7959,51 8,96
Elektro 2107,14 2062,02 2,14
5
FST-1 4569 3840,85 15,94
FST-2 12410,71 11712,10 5,63
Elektro 10960,71 10209,90 6,85
6
FST-1 13796,43 12217,86 11,44
FST-2 12478,57 13210,70 5,87
Elektro 45,17 34,68 23,22
85
Tabel 4.5 (lanjutan) Perbandingan Bit Rate Program dengan Wireshark
Client AP Wireshark (Bps) Program (Bps) %Galat
7
FST-1 823 859,94 4,49
FST-2 21210,71 19289,06 9,06
Elektro 13053,57 11944,64 8,50
8
FST-1 5964 5499,64 7,79
FST-2 20460,71 18429,15 9,93
Elektro 1621,36 1175,78 27,48
9
FST-1 970 864,54 10,87
FST-2 4107 3569,96 13,08
Elektro 5987,14 5493,36 8,25
10
FST-1 74 60,59 18,12
FST-2 3436 2688,4 21,75
Elektro 2835,72 2613,07 7,85
Tabel 4.5 memperlihatkan galat rata-rata semua data adalah 11,44%. Tabel
4.5 juga menunjukkan nilai bit rate tertinggi saat penelitian adalah 28.585,71 Bps
atau 223,33 Kbps (diperoleh dari 28.585,71 Bps x 8 = 228.685,68 bps, 228.685,68
bps : 1024 = 223,33 Kbps) pada client 3 AP fst-2. Sehingga dapat disimpulkan
bahwa bit rate yang diperoleh selama penelitian tidak pernah mencapai standar
IEEE 802.11 g yaitu 54 Mbps atau performa koneksi WLAN di bawah standar
IEEE 802.11 g. Hal ini dikarenakan berbagai faktor, seperti halangan (obstacle)
86
yang menghalangi posisi LOS (Line of Sight) antara client dengan AP dan posisi
keadaan antara client dengan AP yang tidak diperhitungkan.
Halangan yang menghalangi posisi LOS antara client dengan AP antara
lain pepohonan yang tinggi dan rindang, atap dan tembok gedung kampus, serta
banyaknya benda yang bergerak. Sedangkan posisi keadaan client dengan AP
yang tidak diperhitungkan menyebabkan arah depan alat client dengan arah depan
AP bisa tidak dalam posisi LOS, atau bahkan posisi client di luar jangkauan
antena AP (2,4 GHz Flat Panel 20,5 dBi Antenna, untuk spesifikasinya dapat
dilihat pada lampiran).
Pembahasan selanjutnya adalah pengambilan sampling terhadap pengujian
10 posisi client untuk dilihat grafik karakteristik pengukuran data selama 100
detik. Gambar 4.27 menunjukkan tampilan program pengukur dan Gambar 4.28
menunjukkan tampilan program Wireshark. Sedangkan Gambar 4.29
menunjukkan perbandingan karakteristik pengukuran client 1 saat mengambil data
AP usd-fst2 dengan program pengukur dan Wireshark.
Grafik pada Gambar 4.29, Gambar 4.30, dan Gambar 4.31 dibuat dengan
terlebih dahulu mengukur masing-masing data per detik sesuai dengan waktu
yang bersamaan antara kedua alat, kemudian digabungkan ke dalam satu grafik.
Gambar 4.29 menunjukkan perbandingan karakteristik grafik pengukuran bit rate
antara Program Pengukur dan Wireshark memiliki trend yang sama. Hal ini
dikarenakan pemakaian program dan Wireshark dijalankan pada hardware
(WLAN card) PC yang sama. Adapun memiliki selisih nilai rata-rata yang
berbeda karena kinerja program yang berbeda.
87
Gambar 4.27 Tampilan Pengukuran Bit Rate Program Pengukur
Gambar 4.28 Tampilan Pengukuran Bit Rate Wireshark
88
Gambar 4.29 Grafik Karakteristik Bit Rate antara Program dengan Wireshark pada Client 1 AP fst-2
Gambar 4.30 Grafik Karakteristik Bit Rate antara Program dengan Wireshark pada Client 8 AP elektro
Waktu (s)
Bitrate (Bps)
Bitrate (Bps)
Waktu (s)
89
Gambar 4.31 Grafik Karakteristik Bit Rate antara Program dengan Wireshark pada Client 10 AP fst-1
4.2.5 Penyimpanan Data
Terdapat 4 program penyimpanan data pada Program Pengukur ini.
Program yang pertama adalah Save_Tracking yang berfungsi menyimpan data
posisi ke dalam file /root/penyimpanan/data_GPS/YYYYBBTT.txt. Untuk
melakukan penyimpanan data posisi dilakukan dengan cara seperti pada listing
program berikut:
echo `cat /root/dump/x.txt` `cat /root/dump/y.txt` `cat
/root/dump/z.txt` >> /root/simpanan/data_GPS/`date -u +%Y``date -u
+%m``date -u +%d`.txt #data disimpan
chmod 744 /root/simpanan/data_GPS/`date -u +%Y``date -u +%m``date -u +%d`.txt #ubah permission file
Terlihat pada listing program di atas bahwa eksekusi pertama data posisi
disimpan pada direktori data_GPS dengan nama file sesuai tanggal hari ini dengan
Bitrate (Bps)
Waktu (s)
90
perintah `date -u +%Y``date -u +%m``date -u +%d`. Kemudian eksekusi yang
kedua mengubah permission file.
Gambar 4.32 Gambar File Penyimpanan Posisi
Gambar 4.32 menunjukkan data posisi berhasil disimpan. Program
penyimpanan data yang kedua adalah Save_Fieldstrength yang berfungsi untuk
menyimpan data filed strength. Untuk melakukan penyimpanan data field strength
dilakukan dengan cara seperti pada listing program berikut:
echo `cat /root/dump/strength1.txt` > /root/dump/datastrength.txt for (( ko=2; $ko <= 100; ko++ )) do echo `cat /root/dump/strength$ko.txt` >> /root/dump/datastrength.txt #menyimpan 100 data done echo `cat /root/dump/ratastrength.txt` `cat /root/dump/MAC.txt` `cat /root/dump/datea.txt` `cat /root/dump/datastrength.txt` >> /root/simpanan/data_fieldstrength/`date -u +%Y``date -u +%m``date -u +%d`.txt #simpan dalam filechmod 744 /root/simpanan/data_fieldstrength/`date -u +%Y``date -u +%m``date -u +%d`.txt #ubah permission
Terlihat pada listing program di atas bahwa 100 data field strength
pertama kali disimpan pada file datastrength.txt. Kemudian file ratastrength.txt,
MAC.txt, datea.txt, dan datastrength.txt disimpan pada direktori
data_fieldstrength dengan nama file sesuai dengan tanggal hari ini dengan
perintah `date -u +%Y``date -u +%m``date -u +%d`. Kemudian eksekusi terakhir
mengubah permission file.
91
Gambar 4.33 Gambar File Penyimpanan Field Strength
Gambar 4.33 menunjukkan data field strength telah berhasil disimpan.
Program penyimpanan data yang ketiga adalah Save_Bitrate yang berfungsi untuk
menyimpan data bit rate. Untuk melakukan penyimpanan data bit rate dapat
dilakukan dengan cara seperti pada listing program berikut:
#!/bin/bash echo `cat /root/dump/bit1.txt` > /root/dump/databit.txt for (( ko=2; $ko <= 100; ko++ )) do echo `cat /root/dump/bit$ko.txt` >> /root/dump/databit.txt #menyimpan 100 data done echo `cat /root/dump/ratabit.txt` `cat /root/dump/MAC.txt` `cat /root/dump/date0.txt` `cat /root/dump/databit.txt` >> /root/simpanan/data_bitrate/`date -u +%Y``date -u +%m``date -u +%d`.txt #simpan ke dalam filechmod 744 /root/simpanan/data_bitrate/`date -u +%Y``date -u +%m``date -u +%d`.txt #ubah permission
Terlihat pada listing program di atas bahwa 100 data bit rate pertama kali
disimpan pada file databit.txt. Kemudian file ratabit.txt, MAC.txt, date0.txt, dan
databit.txt disimpan pada direktori data_bitrate dengan nama file sesuai dengan
tanggal hari ini dengan perintah `date -u +%Y``date -u +%m``date -u +%d`.
Kemudian eksekusi terakhir mengubah permission file.
92
Gambar 4.34 Gambar File Penyimpanan Bit Rate
Gambar 4.34 memperlihatkan data bit rate telah berhasil disimpan.
Program penyimpanan yang keempat adalah Save_all yang berfungsi untuk
menyimpan semua data yang telah diukur. Gambar 4.35 menunjukkan semua data
berhasil disimpan. Untuk melakukan penyimpanan semua data dilakukan dengan
cara seperti pada listing program berikut:
#!/bin/bash echo `cat x.txt` `cat y.txt` `cat z.txt` `cat /root/ratabit.txt` `cat MAC.txt` >> /root/dump/bitrate/data.txt echo `cat x.txt` `cat y.txt` `cat z.txt` `cat /root/ratastrength.txt` `cat MAC.txt` >> /root/dump/fieldstrength/data.txt echo `cat x.txt` `cat y.txt` `cat z.txt` `cat /root/ratastrength.txt` `cat MAC.txt` `cat /root/ratabit.txt` >> /media/disk-1/TA/data.txt cat /root/dump/bitrate/data.txt | grep 3D > /media/disk-1/TA/bitrate.txt cat /root/dump/bitrate/data.txt | grep E3 >> /media/disk-1/TA/bitrate.txt cat /root/dump/bitrate/data.txt | grep 49 >> /media/disk-1/TA/bitrate.txt cat /root/dump/fieldstrength/data.txt | grep 3D > /media/disk-1/TA/fieldstrength.txt cat /root/dump/fieldstrength/data.txt | grep E3 >> /media/disk-1/TA/fieldstrength.txt cat /root/dump/fieldstrength/data.txt | grep 49 >> /media/disk-1/TA/fieldstrength.txt
Terlihat pada listing program di atas bahwa data dalam file x.txt, y.txt,
z.txt, ratastrength.txt, MAC.txt, dan ratabit.txt disimpan pada file /media/disk-
1/TA/data.txt. Kemudian program mengurutkan baris data sesuai inisial nama AP,
93
yaitu 3D, E3, dan 49 pada penyimpanan ke dalam file /media/disk-1/TA/bitrate.txt
dan /media/disk-1/TA/fieldstrength.txt.
Gambar 4.35 Gambar File Penyimpanan Semua Data
94
BAB V
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Kesimpulan yang dapat diambil dari program pengukur field strength dan
bit rate adalah :
1. Program pengukur untuk mengukur nilai field strength dan bit rate dan
visualisasinya telah berhasil dibuat dan dapat dijalankan sesuai dengan
perancangan.
2. Program pengukur field strength dan bit rate dapat digunakan untuk
tracking data memory card GPS dengan konversi Geodesi ke satuan UTM.
3. Program pengukuran field strength bekerja dengan pengukuran nilai field
strength paling efektif pada sudut 90 derajat (keadaan 2) menghadap sisi
depan AP.
4. Alat Fluke Wifi Analyze yang dilengkapi antenna directional external
bekerja dengan pengukuran nilai field strength paling efektif pada sudut 0
derajat (keadaan 1) menghadap sisi depan AP.
5. Program pengukuran bit rate dan perangkat lunak Wireshark menunjukkan
trend grafik nilai bit rate yang sama saat dijalankan pada PC/laptop dan
WLAN card yang sama.
95
5.2. Saran
Saran – saran bagi pengembangan program berikutnya adalah :
1. Program pengukur dapat berinteraksi secara real time dengan program
optimasi dan pemetaan digital.
2. GUI program masih bisa diberi tambahan penampil grafik dengan skala
yang lebih kecil sehingga lebih bagus dan menarik.
���
�
Daftar Pustaka
[1]. Sis Soesetijo & Gigih Catur Antoni, Prediksi Indoor Coverage Access Point
WLAN berbasis Jaringan Saraf Tiruan, Surabaya: Teknik Elektro
Universitas Surabaya
[2]. Wagito, Jaringan Komputer Teori dan Implementasi Berbasis Linux,
Yogyakarta: Gava Media, 2005
[3]. www.wlana.org/pdf/highspeed.pdf�. 30 April 2008
[4]. Geografi UI, Membaca dan Memanfaatkan Peta Topografi.pdf
[5]. Prahasta, Eddy, Sistem Informasi Geografis : Tutorial ArcView, Bandung :
INFORMATIKA, 2007.
[6]. Bapenas, Basis Data Pengelolaan Sumber Daya Air di Pulau Jawa, April
2008.
www.air.bappenas.go.id/modules/ pdf .27 April 2008
[7]. Hasanuddin, Z.Abidin, Penentuan Posisi dengan GPS dan Aplikasinya,
Jakarta : PT Pradnya Paramita, 2006.
[8]. Marie Zogg. Gps Basic : Introduction to the system Application overview,
Switzerland. 2007. 26 April 2008.
www.u-blox.com/technology/GPS-X-02007.pdf. 26 April 2008
[9]. Mund, Peter, Handle GPS and GIS with Topo and Orthophoto Maps a
Practical Intoduction.2008.26 Agustus 2008.
[10]. Efficient Transformations from Geodetic to UTM Coordinate Systems
www.osti.gov/bridge/servlets/purl/491837-8c6CRf/491837.pdf.
19 Desember 2008
[11]. Nova Novriansyah, Singkat Tepat Jelas LINUX, Jakarta: PT Elex Media
Komputindo, 2000.
[12]. Wahyu Wijinarko, Pemrograman Shell di Linux, Yogyakarta: Penerbit
ANDI, 2005.
[13]. Benjamin L. Sinaga, Pemrograman Berorientasi Objek dengan Java
Yogyakarta: Gava Media, 2005
���
�
[14]. AnalyzeAir Wi-Fi Spectrum Analyzer 3.1 Users Manual.
www.flukenetworks.com/FNet/en-us/AnalyzeAir/Product%20Manuals.pdf.
19 Desember 2008
[15]. Wireshark 1.0.0 User’s Guide.
www.wireshark.org/download/docs/user-guide-a4.pdf. 19 Desember 2008
�
L1
LISTING PROGRAM JAVA
/* * prog_ukur.java * * Created on April 4, 2009, 9:35 AM */
package prog_ukur;
import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JOptionPane;
/**
*
* @author root
*/
public class prog_ukur extends javax.swing.JFrame {
/** Creates new form prog_ukur */
public prog_ukur() {
initComponents();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
�
L2
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
jTextPane1 = new javax.swing.JTextPane();
jFileChooser1 = new javax.swing.JFileChooser();
jLabel1 = new javax.swing.JLabel();
jButton1 = new javax.swing.JButton();
jScrollPane2 = new javax.swing.JScrollPane();
jTextPane2 = new javax.swing.JTextPane();
jButton2 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
jLabel6 = new javax.swing.JLabel();
jScrollPane3 = new javax.swing.JScrollPane();
jTextPane3 = new javax.swing.JTextPane();
jScrollPane4 = new javax.swing.JScrollPane();
jTextPane4 = new javax.swing.JTextPane();
jScrollPane5 = new javax.swing.JScrollPane();
jTextPane5 = new javax.swing.JTextPane();
jLabel7 = new javax.swing.JLabel();
jLabel8 = new javax.swing.JLabel();
jLabel9 = new javax.swing.JLabel();
jLabel10 = new javax.swing.JLabel();
jLabel11 = new javax.swing.JLabel();
jLabel12 = new javax.swing.JLabel();
jButton4 = new javax.swing.JButton();
jLabel13 = new javax.swing.JLabel();
jScrollPane6 = new javax.swing.JScrollPane();
jTextPane6 = new javax.swing.JTextPane();
jLabel14 = new javax.swing.JLabel();
jScrollPane7 = new javax.swing.JScrollPane();
jTextPane7 = new javax.swing.JTextPane();
�
L3
jLabel15 = new javax.swing.JLabel();
jLabel16 = new javax.swing.JLabel();
jScrollPane8 = new javax.swing.JScrollPane();
jTextPane8 = new javax.swing.JTextPane();
jLabel17 = new javax.swing.JLabel();
jScrollPane9 = new javax.swing.JScrollPane();
jTextPane9 = new javax.swing.JTextPane();
jLabel18 = new javax.swing.JLabel();
jButton5 = new javax.swing.JButton();
jButton6 = new javax.swing.JButton();
jButton7 = new javax.swing.JButton();
jButton8 = new javax.swing.JButton();
jButton9 = new javax.swing.JButton();
jButton10 = new javax.swing.JButton();
jButton11 = new javax.swing.JButton();
jTextPane1.setText("-PESAN-\nJika tombol berwarna biru, maka program sedang mengeksekusi perintah.\nTunggulah sampai eksekusi selesai.");
jScrollPane1.setViewportView(jTextPane1); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jLabel1.setFont(new java.awt.Font("DejaVu Sans", 1, 24)); jLabel1.setText("Program Pengukur");
jButton1.setText("Fieldstrength");
jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jScrollPane2.setViewportView(jTextPane2);
jButton2.setText("Bitrate");
�
L4
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
jButton3.setText("Track");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton3ActionPerformed(evt);
}
});
jLabel6.setText("Data dari GPS :");
jScrollPane3.setViewportView(jTextPane3);
jScrollPane4.setViewportView(jTextPane4);
jScrollPane5.setViewportView(jTextPane5);
jLabel7.setText("X =");
jLabel8.setText("Y =");
jLabel9.setText("Z =");
jLabel10.setText("m");
jLabel11.setText("m");
jLabel12.setText("m");
jButton4.setText("Detect");
jButton4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton4ActionPerformed(evt);
}
�
L5
});
jLabel13.setText("Access Point :");
jScrollPane6.setViewportView(jTextPane6);
jLabel14.setText("ESSID =");
jScrollPane7.setViewportView(jTextPane7);
jLabel15.setText("MAC =");
jLabel16.setText("Ukur Nilai Rata-rata :");
jScrollPane8.setViewportView(jTextPane8);
jLabel17.setText("dBm");
jScrollPane9.setViewportView(jTextPane9);
jLabel18.setText("Bps");
jButton5.setText("Save all");
jButton5.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton5ActionPerformed(evt);
}
});
jButton6.setText("Reset");
jButton6.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton6ActionPerformed(evt);
}
});
jButton7.setText("Exit");
jButton7.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
�
L6
jButton7ActionPerformed(evt);
}
});
jButton8.setText("Save Fieldstrength");
jButton8.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton8ActionPerformed(evt);
}
});
jButton9.setText("Save Bitrate");
jButton9.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton9ActionPerformed(evt);
}
});
jButton10.setText("About");
jButton10.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton10ActionPerformed(evt);
}
});
jButton11.setText("Save Tracking");
jButton11.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton11ActionPerformed(evt);
�
L7
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel9)
.addComponent(jLabel7)
.addComponent(jLabel8))
.addGap(20, 20, 20) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jScrollPane5)
.addComponent(jScrollPane4)
.addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 247, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jButton11, javax.swing.GroupLayout.Alignment.TRAILING)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel11)
.addComponent(jLabel10)
�
L8
.addComponent(jLabel12)))
.addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel6)
.addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jButton6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jButton5, javax.swing.GroupLayout.PREFERRED_SIZE, 174, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jButton10, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jButton7, javax.swing.GroupLayout.DEFAULT_SIZE, 168, Short.MAX_VALUE))))
.addGap(33, 33, 33))
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 319, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(48, 48, 48))
.addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel13)
.addComponent(jButton4, javax.swing.GroupLayout.PREFERRED_SIZE, 122, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel16)
.addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
�
L9
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel14)
.addComponent(jLabel15))
.addGap(3, 3, 3) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(jScrollPane7) .addComponent(jScrollPane6, javax.swing.GroupLayout.PREFERRED_SIZE, 287, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE, 127, Short.MAX_VALUE)
.addComponent(jButton2, javax.swing.GroupLayout.DEFAULT_SIZE, 127, Short.MAX_VALUE)) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jScrollPane8, javax.swing.GroupLayout.DEFAULT_SIZE, 232, Short.MAX_VALUE) .addComponent(jButton9, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 161, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jScrollPane9, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 232, Short.MAX_VALUE))) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGap(66, 66, 66) .addComponent(jButton8, javax.swing.GroupLayout.PREFERRED_SIZE, 162, javax.swing.GroupLayout.PREFERRED_SIZE))))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel18)
�
L10
.addComponent(jLabel17)))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)))
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 811, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 734, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(39, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGap(24, 24, 24)
.addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 28, Short.MAX_VALUE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(jButton3)
.addGap(8, 8, 8)
.addComponent(jLabel6) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jLabel7)
.addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addComponent(jLabel10, javax.swing.GroupLayout.Alignment.TRAILING))
�
L11
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jLabel8)
.addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel11)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jLabel12)
.addComponent(jLabel9)
.addComponent(jScrollPane5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton11)
.addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(layout.createSequentialGroup()
.addComponent(jButton4) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel13) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel14)
.addComponent(jScrollPane6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel15)
�
L12
.addComponent(jScrollPane7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(26, 26, 26)
.addComponent(jLabel16) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jScrollPane8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jButton1)))
.addComponent(jLabel17)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(layout.createSequentialGroup()
.addComponent(jButton8)
.addGap(32, 32, 32)
.addComponent(jScrollPane9, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(jLabel18)
.addComponent(jButton2)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton9)
.addGap(43, 43, 43) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton5, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jButton10, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
�
L13
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jButton7, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jButton6, javax.swing.GroupLayout.DEFAULT_SIZE, 41, Short.MAX_VALUE))
.addGap(56, 56, 56))
);
pack();
}// </editor-fold>//GEN-END:initComponents
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
// TODO add your handling code here:
jTextPane2.setText("Loading..............");
JOptionPane.showMessageDialog(null, "Tunggu proses pengukuran");
try {
ProcessBuilder pb = new ProcessBuilder();
pb.command("/root/program/fieldstrength");
Process p = pb.start();
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String output = br.readLine();
while (br.ready()) {
output += (br.readLine() + "\n");
}
jTextPane8.setText(output);
} catch (IOException ex) { Logger.getLogger(prog_ukur.class.getName()).log(Level.SEVERE, null, ex);
}
try {
�
L14
ProcessBuilder pb = new ProcessBuilder();
pb.command("/root/program/grafikFS");
Process p = pb.start();
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String output = br.readLine();
while (br.ready()) {
output += (br.readLine() + "\n");
}
jTextPane2.setText(output);
} catch (IOException ex) { Logger.getLogger(prog_ukur.class.getName()).log(Level.SEVERE, null, ex);
}
JOptionPane.showMessageDialog(null, "Pengukuran telah selesai");
try {
ProcessBuilder pb = new ProcessBuilder();
pb.command("/root/program/detect");
Process p = pb.start();
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String output = br.readLine();
while (br.ready()) {
output += (br.readLine() + "\n");
}
jTextPane6.setText(output);
} catch (IOException ex) { Logger.getLogger(prog_ukur.class.getName()).log(Level.SEVERE, null, ex);
}
try {
ProcessBuilder pb = new ProcessBuilder();
�
L15
BufferedReader br = new BufferedReader(new FileReader("/root/dump/MAC.txt"));
String output = br.readLine();
while (br.ready()) {
output += (br.readLine() + "\n");
}
jTextPane7.setText(output);
} catch (IOException ex) { Logger.getLogger(prog_ukur.class.getName()).log(Level.SEVERE, null, ex);
}
}//GEN-LAST:event_jButton1ActionPerformed
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
// TODO add your handling code here:
jTextPane2.setText("Loading..............");
JOptionPane.showMessageDialog(null, "Tunggu proses pengukuran");
try {
ProcessBuilder pb = new ProcessBuilder();
pb.command("/root/program/bitrate");
Process p = pb.start();
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String output = br.readLine();
while (br.ready()) {
output += (br.readLine() + "\n");
}
jTextPane9.setText(output);
} catch (IOException ex) { Logger.getLogger(prog_ukur.class.getName()).log(Level.SEVERE, null, ex);
}
�
L16
try {
ProcessBuilder pb = new ProcessBuilder();
pb.command("/root/program/grafikBR");
Process p = pb.start();
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String output = br.readLine();
while (br.ready()) {
output += (br.readLine() + "\n");
}
jTextPane2.setText(output);
} catch (IOException ex) { Logger.getLogger(prog_ukur.class.getName()).log(Level.SEVERE, null, ex);
}
JOptionPane.showMessageDialog(null, "Pengukuran telah selesai");
try {
ProcessBuilder pb = new ProcessBuilder();
pb.command("/root/program/detect");
Process p = pb.start();
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String output = br.readLine();
while (br.ready()) {
output += (br.readLine() + "\n");
}
jTextPane6.setText(output);
} catch (IOException ex) { Logger.getLogger(prog_ukur.class.getName()).log(Level.SEVERE, null, ex);
}
try {
�
L17
ProcessBuilder pb = new ProcessBuilder();
BufferedReader br = new BufferedReader(new FileReader("/root/dump/MAC.txt"));
String output = br.readLine();
while (br.ready()) {
output += (br.readLine() + "\n");
}
jTextPane7.setText(output);
} catch (IOException ex) { Logger.getLogger(prog_ukur.class.getName()).log(Level.SEVERE, null, ex);
}
}//GEN-LAST:event_jButton2ActionPerformed
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed
// TODO add your handling code here:
JOptionPane.showMessageDialog(null, "Pastikan koneksi dengan GPS");
try {
ProcessBuilder pb = new ProcessBuilder();
pb.command("/root/program/tracking");
Process p = pb.start();
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String output = br.readLine();
while (br.ready()) {
output += (br.readLine() + "\n");
}
jTextPane3.setText(output);
} catch (IOException ex) { Logger.getLogger(prog_ukur.class.getName()).log(Level.SEVERE, null, ex);
}
�
L18
try {
ProcessBuilder pb = new ProcessBuilder();
BufferedReader br = new BufferedReader(new FileReader("/root/dump/y.txt"));
String output = br.readLine();
while (br.ready()) {
output += (br.readLine() + "\n");
}
jTextPane4.setText(output);
} catch (IOException ex) { Logger.getLogger(prog_ukur.class.getName()).log(Level.SEVERE, null, ex);
}
try {
ProcessBuilder pb = new ProcessBuilder();
BufferedReader br = new BufferedReader(new FileReader("/root/dump/z.txt"));
String output = br.readLine();
while (br.ready()) {
output += (br.readLine() + "\n");
}
jTextPane5.setText(output);
} catch (IOException ex) { Logger.getLogger(prog_ukur.class.getName()).log(Level.SEVERE, null, ex);
}
}//GEN-LAST:event_jButton3ActionPerformed
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed
// TODO add your handling code here:
JOptionPane.showMessageDialog(null, "Pastikan koneksi Access Point");
�
L19
try {
ProcessBuilder pb = new ProcessBuilder();
pb.command("/root/program/detect");
Process p = pb.start();
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String output = br.readLine();
while (br.ready()) {
output += (br.readLine() + "\n");
}
jTextPane6.setText(output);
} catch (IOException ex) { Logger.getLogger(prog_ukur.class.getName()).log(Level.SEVERE, null, ex);
}
try {
ProcessBuilder pb = new ProcessBuilder();
BufferedReader br = new BufferedReader(new FileReader("/root/dump/MAC.txt"));
String output = br.readLine();
while (br.ready()) {
output += (br.readLine() + "\n");
}
jTextPane7.setText(output);
} catch (IOException ex) { Logger.getLogger(prog_ukur.class.getName()).log(Level.SEVERE, null, ex);
}
}//GEN-LAST:event_jButton4ActionPerformed private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton5ActionPerformed
// TODO add your handling code here:
try {
�
L20
ProcessBuilder pb = new ProcessBuilder();
pb.command("/root/program/save_all");
Process p = pb.start();
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String output = br.readLine();
while (br.ready()) {
output += (br.readLine() + "\n");
}
} catch (IOException ex) { Logger.getLogger(prog_ukur.class.getName()).log(Level.SEVERE, null, ex);
}
JOptionPane.showMessageDialog(null, "Data telah tersimpan");
}//GEN-LAST:event_jButton5ActionPerformed
private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton6ActionPerformed
// TODO add your handling code here:
jTextPane2.setText("");
jTextPane3.setText("");
jTextPane4.setText("");
jTextPane5.setText("");
jTextPane6.setText("");
jTextPane7.setText("");
jTextPane8.setText("");
jTextPane9.setText("");
try {
ProcessBuilder pb = new ProcessBuilder();
pb.command("/root/program/reset");
Process p = pb.start();
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
�
L21
String output = br.readLine();
while (br.ready()) {
output += (br.readLine() + "\n");
}
} catch (IOException ex) { Logger.getLogger(prog_ukur.class.getName()).log(Level.SEVERE, null, ex);
}
}//GEN-LAST:event_jButton6ActionPerformed
private void jButton7ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton7ActionPerformed
// TODO add your handling code here:
try {
ProcessBuilder pb = new ProcessBuilder();
pb.command("/root/program/exit");
Process p = pb.start();
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String output = br.readLine();
while (br.ready()) {
output += (br.readLine() + "\n");
}
} catch (IOException ex) { Logger.getLogger(prog_ukur.class.getName()).log(Level.SEVERE, null, ex);
}
JOptionPane.showMessageDialog(null, "Terima kasih telah menggunakan program ini");
System.exit(0);
}//GEN-LAST:event_jButton7ActionPerformed
private void jButton10ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton10ActionPerformed
// TODO add your handling code here:
try {
�
L22
ProcessBuilder pb = new ProcessBuilder();
BufferedReader br = new BufferedReader(new FileReader("/root/program/about.txt"));
String output = br.readLine();
while (br.ready()) {
output += (br.readLine() + "\n");
}
jTextPane2.setText(output);
} catch (IOException ex) { Logger.getLogger(prog_ukur.class.getName()).log(Level.SEVERE, null, ex);
}
}//GEN-LAST:event_jButton10ActionPerformed
private void jButton9ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton9ActionPerformed
// TODO add your handling code here:
try {
ProcessBuilder pb = new ProcessBuilder();
pb.command("/root/program/save_bitrate");
Process p = pb.start();
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String output = br.readLine();
while (br.ready()) {
output += (br.readLine() + "\n");
}
} catch (IOException ex) { Logger.getLogger(prog_ukur.class.getName()).log(Level.SEVERE, null, ex);
}
}//GEN-LAST:event_jButton9ActionPerformed
private void jButton11ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton11ActionPerformed
// TODO add your handling code here:
�
L23
try {
ProcessBuilder pb = new ProcessBuilder();
pb.command("/root/program/save_tracking");
Process p = pb.start();
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String output = br.readLine();
while (br.ready()) {
output += (br.readLine() + "\n");
}
} catch (IOException ex) { Logger.getLogger(prog_ukur.class.getName()).log(Level.SEVERE, null, ex);
}
}//GEN-LAST:event_jButton11ActionPerformed
private void jButton8ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton8ActionPerformed
// TODO add your handling code here:
try {
ProcessBuilder pb = new ProcessBuilder();
pb.command("/root/program/save_fieldstrength");
Process p = pb.start();
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String output = br.readLine();
while (br.ready()) {
output += (br.readLine() + "\n");
}
} catch (IOException ex) { Logger.getLogger(prog_ukur.class.getName()).log(Level.SEVERE, null, ex);
}
}//GEN-LAST:event_jButton8ActionPerformed
�
L24
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new prog_ukur().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton10;
private javax.swing.JButton jButton11;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JButton jButton4;
private javax.swing.JButton jButton5;
private javax.swing.JButton jButton6;
private javax.swing.JButton jButton7;
private javax.swing.JButton jButton8;
private javax.swing.JButton jButton9;
private javax.swing.JFileChooser jFileChooser1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel14;
�
L25
private javax.swing.JLabel jLabel15;
private javax.swing.JLabel jLabel16;
private javax.swing.JLabel jLabel17;
private javax.swing.JLabel jLabel18;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JScrollPane jScrollPane3;
private javax.swing.JScrollPane jScrollPane4;
private javax.swing.JScrollPane jScrollPane5;
private javax.swing.JScrollPane jScrollPane6;
private javax.swing.JScrollPane jScrollPane7;
private javax.swing.JScrollPane jScrollPane8;
private javax.swing.JScrollPane jScrollPane9;
private javax.swing.JTextPane jTextPane1;
private javax.swing.JTextPane jTextPane2;
private javax.swing.JTextPane jTextPane3;
private javax.swing.JTextPane jTextPane4;
private javax.swing.JTextPane jTextPane5;
private javax.swing.JTextPane jTextPane6;
private javax.swing.JTextPane jTextPane7;
private javax.swing.JTextPane jTextPane8;
private javax.swing.JTextPane jTextPane9;
// End of variables declaration//GEN-END:variables
}
�
L26
LISTING PROGRAM SHELL
#program tracking #mengambil data posisi GPS #!/bin/bash cat /media/disk-3/`date -u +%Y``date -u +%m``date -u +%d`.gpx > /root/dump/awal.txt grep lat /root/dump/awal.txt > /root/dump/xy.txt grep ele /root/dump/awal.txt > /root/dump/z.txt tail -n 1 /root/dump/xy.txt | awk -F'"' '{print$2;}' > /root/dump/xyz.txt tail -n 1 /root/dump/xy.txt | awk -F'"' '{print$4;}' > /root/dump/xyz0.txt tail -n 1 /root/dump/z.txt | awk -F'>' '{print$2;}' | awk -F'<' '{print$1;}' > /root/dump/xyz1.txt pi=3.141592654 echo "scale=12; `cat /root/dump/xyz.txt`*$pi/180" | bc -l > /root/dump/lat.txt echo "scale=12; `cat /root/dump/xyz0.txt`*$pi/180" | bc -l > /root/dump/lon.txt a=6378137 b=6356752.314245 e=0.081819191 echo "scale=0; (`cat /root/dump/xyz0.txt`/6)*6+3" | bc -l > /root/dump/Lon0.txt echo "scale=12; (`cat /root/dump/Lon0.txt`*$pi)/180" | bc -l > /root/dump/lon0.txt k0=0.9996 FE=500000 FN=10000000 eps=0.006739496768 echo "scale=12; $a/sqrt(1-$e^2*s(`cat /root/dump/lat.txt`)^2)" | bc -l > /root/dump/N.txt echo "scale=12; (s(`cat /root/dump/lat.txt`)/c(`cat /root/dump/lat.txt`))^2" | bc -l > /root/dump/T.txtecho "scale=12; (($e^2)/(1-$e^2))*(c(`cat /root/dump/lat.txt`))^2" | bc -l > /root/dump/C.txt echo "scale=12; (`cat /root/dump/lon.txt`-`cat /root/dump/lon0.txt`)*c(`cat /root/dump/lat.txt`)" | bc -l > /root/dump/A.txt echo "scale=12; $a*((1-$e^2/4-3*$e^4/64-5*$e^6/256)*`cat /root/dump/lat.txt`-(3*$e^2/8+3*$e^4/32+45*$e^6/1024)*s(2*`cat /root/dump/lat.txt`)+(15*$e^4/256+45*$e^6/1024)*s(4*`cat /root/dump/lat.txt`)-(35*$e^6/3072)*s(6*`cat /root/dump/lat.txt`))" | bc -l > /root/dump/M.txt echo "scale=12; $FE+$k0*`cat /root/dump/N.txt`*(`cat /root/dump/A.txt`+(1-`cat /root/dump/T.txt`+`cat /root/dump/C.txt`)*`cat /root/dump/A.txt`^3/6+(5-18*`cat /root/dump/T.txt`+`cat /root/dump/T.txt`^2+72*`cat /root/dump/C.txt`-58*$eps)*`cat /root/dump/A.txt`^5/120)" | bc -l > /root/dump/X.txt echo "scale=12; $FN+$k0*`cat /root/dump/M.txt`+$k0*`cat /root/dump/N.txt`*(s(`cat /root/dump/lat.txt`)/c(`cat /root/dump/lat.txt`))*(`cat /root/dump/A.txt`^2/2+(5-`cat /root/dump/T.txt`+9*`cat /root/dump/C.txt`+4*`cat
�
L27
/root/dump/C.txt`^2)*`cat /root/dump/A.txt`^4/24+(61-58*`cat /root/dump/T.txt`+`cat /root/dump/T.txt`^2+600*`cat /root/dump/C.txt`-330*$eps)*`cat /root/dump/A.txt`^6/720)" | bc -l > /root/dump/Y.txt awk -F. '{print$1;}' /root/dump/X.txt > /root/dump/x.txt awk -F. '{print$1;}' /root/dump/Y.txt > /root/dump/y.txt awk -F. '{print$1;}' /root/dump/xyz1.txt > /root/dump/z.txt
#program save_tracking #menyimpan data posisi #!/bin/bash echo `cat /root/dump/x.txt` `cat /root/dump/y.txt` `cat /root/dump/z.txt` >> /root/simpanan/data_GPS/`date -u +%Y``date -u +%m``date -u +%d`.txt chmod 744 /root/simpanan/data_GPS/`date -u +%Y``date -u +%m``date -u +%d`.txt
#program detect #mengambil data identitas AP #!/bin/bash iwconfig wlan0 | grep ESSID | awk -F: '{print$2;}' > /root/dump/ESSID.txt iwconfig wlan0 | grep Mode | awk '{print$6;}' > /root/dump/MAC.txt
#program fieldstrength #mengabil data field strength #!/bin/bash iwconfig wlan0 | grep Link > /root/dump/temp.txt awk -F: '{print$3;}' /root/dump/temp.txt | awk '{print$1;}' > /root/dump/strength.txt echo "0 == `cat /root/dump/strength.txt`" | bc -l > /root/dump/a.txt if [ `cat /root/dump/a.txt` == 1 ]; then echo "off"; else echo 0 > /root/dump/awal.txt; date > /root/dump/datea.txt; for (( i=1; $i <= 100; i++ )) do iwconfig wlan0 | grep Link > /root/dump/temp.txt awk -F: '{print$3;}' /root/dump/temp.txt | awk '{print$1;}' > /root/dump/strength$i.txt echo "scale=2; `cat /root/dump/strength$i.txt` + `cat /root/dump/awal.txt`" | bc -l > /root/dump/awal1.txt cat /root/dump/awal1.txt > /root/dump/awal.txt sleep 1 done date > /root/dump/dateb.txt echo "scale=2; `cat /root/dump/awal.txt` / 100" | bc -l > /root/dump/ratastrength.txt cat /root/dump/ratastrength.txt fi
#program grafikFS #membuat grafik field strength vs time
�
L28
#!/bin/bash iwconfig wlan0 | grep Link > /root/dump/temp.txt awk -F: '{print$3;}' /root/dump/temp.txt | awk '{print$1;}' > /root/dump/strength.txt echo "0 == `cat /root/dump/strength.txt`" | bc -l > /root/dump/a.txt if [ `cat /root/dump/a.txt` == 1 ]; then echo "--no display--"; else echo "Grafik:" > /root/dump/graph.txt echo "" >> /root/dump/graph.txt echo " Fieldstrength VS Time" >> /root/dump/graph.txt echo "FS (dBm)" >> /root/dump/graph.txt for (( ko=1; $ko <= 100; ko++ )) do echo " 0 == `cat /root/dump/strength$ko.txt`" | bc -l > /root/dump/a.txt if [ `cat /root/dump/a.txt` == 1 ]; then echo "o" > /root/dump/menu$ko.txt; else echo "-" > /root/dump/menu$ko.txt; fi done echo -e "-00|`cat /root/dump/menu1.txt``cat /root/dump/menu2.txt``cat /root/dump/menu3.txt``cat /root/dump/menu4.txt``cat /root/dump/menu5.txt``cat /root/dump/menu6.txt``cat /root/dump/menu7.txt``cat /root/dump/menu8.txt``cat /root/dump/menu9.txt``cat /root/dump/menu10.txt``cat /root/dump/menu11.txt``cat /root/dump/menu12.txt``cat /root/dump/menu13.txt``cat /root/dump/menu14.txt``cat /root/dump/menu15.txt``cat /root/dump/menu16.txt``cat /root/dump/menu17.txt``cat /root/dump/menu18.txt``cat /root/dump/menu19.txt``cat /root/dump/menu20.txt``cat /root/dump/menu21.txt``cat /root/dump/menu22.txt``cat /root/dump/menu23.txt``cat /root/dump/menu24.txt``cat /root/dump/menu25.txt``cat /root/dump/menu26.txt``cat /root/dump/menu27.txt``cat /root/dump/menu28.txt``cat /root/dump/menu29.txt``cat /root/dump/menu30.txt``cat /root/dump/menu31.txt``cat /root/dump/menu32.txt``cat /root/dump/menu33.txt``cat /root/dump/menu34.txt``cat /root/dump/menu35.txt``cat /root/dump/menu36.txt``cat /root/dump/menu37.txt``cat /root/dump/menu38.txt``cat /root/dump/menu39.txt``cat /root/dump/menu40.txt``cat /root/dump/menu41.txt``cat /root/dump/menu42.txt``cat /root/dump/menu43.txt``cat /root/dump/menu44.txt``cat /root/dump/menu45.txt``cat /root/dump/menu46.txt``cat /root/dump/menu47.txt``cat /root/dump/menu48.txt``cat /root/dump/menu49.txt``cat /root/dump/menu50.txt``cat /root/dump/menu51.txt``cat /root/dump/menu52.txt``cat /root/dump/menu53.txt``cat /root/dump/menu54.txt``cat /root/dump/menu55.txt``cat /root/dump/menu56.txt``cat /root/dump/menu57.txt``cat /root/dump/menu58.txt``cat /root/dump/menu59.txt``cat
�
L29
/root/dump/menu60.txt``cat /root/dump/menu61.txt``cat /root/dump/menu62.txt``cat /root/dump/menu63.txt``cat /root/dump/menu64.txt``cat /root/dump/menu65.txt``cat /root/dump/menu66.txt``cat /root/dump/menu67.txt``cat /root/dump/menu68.txt``cat /root/dump/menu69.txt``cat /root/dump/menu70.txt``cat /root/dump/menu71.txt``cat /root/dump/menu72.txt``cat /root/dump/menu73.txt``cat /root/dump/menu74.txt``cat /root/dump/menu75.txt``cat /root/dump/menu76.txt``cat /root/dump/menu77.txt``cat /root/dump/menu78.txt``cat /root/dump/menu79.txt``cat /root/dump/menu80.txt``cat /root/dump/menu81.txt``cat /root/dump/menu82.txt``cat /root/dump/menu83.txt``cat /root/dump/menu84.txt``cat /root/dump/menu85.txt``cat /root/dump/menu86.txt``cat /root/dump/menu87.txt``cat /root/dump/menu88.txt``cat /root/dump/menu89.txt``cat /root/dump/menu90.txt``cat /root/dump/menu91.txt``cat /root/dump/menu92.txt``cat /root/dump/menu93.txt``cat /root/dump/menu94.txt``cat /root/dump/menu95.txt``cat /root/dump/menu96.txt``cat /root/dump/menu97.txt``cat /root/dump/menu98.txt``cat /root/dump/menu99.txt``cat /root/dump/menu100.txt`" >> /root/dump/graph.txt
for (( ko=1; $ko <= 100; ko++ )) do echo "`cat /root/dump/strength$ko.txt`" > /root/dump/menu$ko.txt done for (( ko=1; $ko <= 99; ko++ )) do ka=$(($ko+1)) echo "`cat /root/dump/menu$ko.txt` <= `cat /root/dump/menu$ka.txt`" | bc -l > /root/dump/a.txtif [ `cat /root/dump/a.txt` == 1 ]; then echo "`cat /root/dump/menu$ko.txt`" > /root/dump/menu$ko.txt; else echo "`cat /root/dump/menu$ko.txt`" > /root/dump/menu$ka.txt; fi done echo "`cat /root/dump/menu100.txt`" > /root/dump/pertama.txt; for (( ko=1; $ko <= 100; ko++ )) do echo "`cat /root/dump/strength$ko.txt`" > /root/dump/menu$ko.txt done for (( ko=1; $ko <= 99; ko++ )) do ka=$(($ko+1)) echo "`cat /root/dump/menu$ko.txt` >= `cat /root/dump/menu$ka.txt`" | bc -l > /root/dump/a.txtif [ `cat /root/dump/a.txt` == 1 ]; then echo "`cat /root/dump/menu$ko.txt`" > /root/dump/menu$ko.txt;
�
L30
else echo "`cat /root/dump/menu$ko.txt`" > /root/dump/menu$ka.txt; fi done echo "`cat /root/dump/menu100.txt`" > /root/dump/terakhir.txt;
for (( ki=`cat /root/dump/pertama.txt` ; $ki >= `cat /root/dump/terakhir.txt`; ki-- )) do for (( ko=1; $ko <= 100; ko++ )) do echo "$ki == `cat /root/dump/strength$ko.txt`" | bc -l > /root/dump/a.txt if [ `cat /root/dump/a.txt` == 1 ]; then echo "o" > /root/dump/menu$ko.txt; else echo "-" > /root/dump/menu$ko.txt; fi done echo -e "$ki|`cat /root/dump/menu1.txt``cat /root/dump/menu2.txt``cat /root/dump/menu3.txt``cat /root/dump/menu4.txt``cat /root/dump/menu5.txt``cat /root/dump/menu6.txt``cat /root/dump/menu7.txt``cat /root/dump/menu8.txt``cat /root/dump/menu9.txt``cat /root/dump/menu10.txt``cat /root/dump/menu11.txt``cat /root/dump/menu12.txt``cat /root/dump/menu13.txt``cat /root/dump/menu14.txt``cat /root/dump/menu15.txt``cat /root/dump/menu16.txt``cat /root/dump/menu17.txt``cat /root/dump/menu18.txt``cat /root/dump/menu19.txt``cat /root/dump/menu20.txt``cat /root/dump/menu21.txt``cat /root/dump/menu22.txt``cat /root/dump/menu23.txt``cat /root/dump/menu24.txt``cat /root/dump/menu25.txt``cat /root/dump/menu26.txt``cat /root/dump/menu27.txt``cat /root/dump/menu28.txt``cat /root/dump/menu29.txt``cat /root/dump/menu30.txt``cat /root/dump/menu31.txt``cat /root/dump/menu32.txt``cat /root/dump/menu33.txt``cat /root/dump/menu34.txt``cat /root/dump/menu35.txt``cat /root/dump/menu36.txt``cat /root/dump/menu37.txt``cat /root/dump/menu38.txt``cat /root/dump/menu39.txt``cat /root/dump/menu40.txt``cat /root/dump/menu41.txt``cat /root/dump/menu42.txt``cat /root/dump/menu43.txt``cat /root/dump/menu44.txt``cat /root/dump/menu45.txt``cat /root/dump/menu46.txt``cat /root/dump/menu47.txt``cat /root/dump/menu48.txt``cat /root/dump/menu49.txt``cat /root/dump/menu50.txt``cat /root/dump/menu51.txt``cat /root/dump/menu52.txt``cat /root/dump/menu53.txt``cat /root/dump/menu54.txt``cat /root/dump/menu55.txt``cat /root/dump/menu56.txt``cat /root/dump/menu57.txt``cat /root/dump/menu58.txt``cat /root/dump/menu59.txt``cat /root/dump/menu60.txt``cat /root/dump/menu61.txt``cat /root/dump/menu62.txt``cat /root/dump/menu63.txt``cat /root/dump/menu64.txt``cat /root/dump/menu65.txt``cat /root/dump/menu66.txt``cat /root/dump/menu67.txt``cat /root/dump/menu68.txt``cat /root/dump/menu69.txt``cat
�
L31
/root/dump/menu70.txt``cat /root/dump/menu71.txt``cat /root/dump/menu72.txt``cat /root/dump/menu73.txt``cat /root/dump/menu74.txt``cat /root/dump/menu75.txt``cat /root/dump/menu76.txt``cat /root/dump/menu77.txt``cat /root/dump/menu78.txt``cat /root/dump/menu79.txt``cat /root/dump/menu80.txt``cat /root/dump/menu81.txt``cat /root/dump/menu82.txt``cat /root/dump/menu83.txt``cat /root/dump/menu84.txt``cat /root/dump/menu85.txt``cat /root/dump/menu86.txt``cat /root/dump/menu87.txt``cat /root/dump/menu88.txt``cat /root/dump/menu89.txt``cat /root/dump/menu90.txt``cat /root/dump/menu91.txt``cat /root/dump/menu92.txt``cat /root/dump/menu93.txt``cat /root/dump/menu94.txt``cat /root/dump/menu95.txt``cat /root/dump/menu96.txt``cat /root/dump/menu97.txt``cat /root/dump/menu98.txt``cat /root/dump/menu99.txt``cat /root/dump/menu100.txt`" >> /root/dump/graph.txt done echo " |xxxxxxxxx|xxxxxxxxxx|xxxxxxxxx|xxxxxxxxxx|xxxxxxxxx|xxxxxxxxxx|xxxxxxxxx|xxxxxxxxx|xxxxxxxxxx|xxxxxxxxx| " >> /root/dump/graph.txt echo " 0s 10s 20s 30s 40s 50s 60s 70s 80s 90s 100s " >> /root/dump/graph.txt echo " time (second)" >> /root/dump/graph.txt cat /root/dump/graph.txt fi
#program save_fieldstrength #menyimpan data field strength #!/bin/bash echo `cat /root/dump/strength1.txt` > /root/dump/datastrength.txt for (( ko=2; $ko <= 100; ko++ )) do echo `cat /root/dump/strength$ko.txt` >> /root/dump/datastrength.txt done echo `cat /root/dump/ratastrength.txt` `cat /root/dump/MAC.txt` `cat /root/dump/datea.txt` `cat /root/dump/datastrength.txt` >> /root/simpanan/data_fieldstrength/`date -u +%Y``date -u +%m``date -u +%d`.txt chmod 744 /root/simpanan/data_fieldstrength/`date -u +%Y``date -u +%m``date -u +%d`.txt
#program bitrate #mengambil data bit rate #!/bin/bash iwconfig wlan0 | grep Link > /root/dump/temp.txt awk -F: '{print$3;}' /root/dump/temp.txt | awk '{print$1;}' > /root/dump/strength.txt echo "0 == `cat /root/dump/strength.txt`" | bc -l > /root/dump/a.txt if [ `cat /root/dump/a.txt` == 1 ]; then echo "off"; else
�
L32
echo 0 > /root/dump/awal.txt date > /root/dump/date0.txt for (( i=1; $i <= 100; i++ )) do ifconfig wlan0 | grep bytes > /root/dump/coba.txt awk -F: '{print$2;}' /root/dump/coba.txt | awk '{print$1;}' > /root/dump/coba.txt sleep 1 ifconfig wlan0 | grep bytes > /root/dump/coba1.txt awk -F: '{print$2;}' /root/dump/coba1.txt | awk '{print$1;}' > /root/dump/coba1.txt echo $((`cat /root/dump/coba1.txt` - `cat /root/dump/coba.txt`)) > /root/dump/okay$i.txt echo "scale=2; `cat /root/dump/okay$i.txt` + `cat /root/dump/awal.txt`" | bc -l > /root/dump/awal1.txt cat /root/dump/awal1.txt > /root/dump/awal.txt done date > /root/dump/date1.txt echo "scale=2; `cat /root/dump/awal.txt` / 100" | bc -l > /root/dump/rataokay.txt echo `cat /root/dump/rataokay.txt` fi
#program grafikBR #membuat grafik bit rate vs time #!/bin/bash iwconfig wlan0 | grep Link > /root/dump/temp.txt awk -F: '{print$3;}' /root/dump/temp.txt | awk '{print$1;}' > /root/dump/strength.txt echo "0 == `cat /root/dump/strength.txt`" | bc -l > /root/dump/a.txt if [ `cat /root/dump/a.txt` == 1 ]; then echo "--no display--"; else echo "Grafik:" > /root/dump/graph.txt echo "" >> /root/dump/graph.txt echo " Bitrate VS Time" >> /root/dump/graph.txt echo "Bitrate (KBps)" >> /root/dump/graph.txt
for (( ko=1; $ko <= 100; ko++ )) do echo "$((`cat /root/dump/okay$ko.txt`/1000))" > /root/dump/menu$ko.txt done for (( ko=1; $ko <= 99; ko++ )) do ka=$(($ko+1)) echo "`cat /root/dump/menu$ko.txt` <= `cat /root/dump/menu$ka.txt`" | bc -l > /root/dump/a.txtif [ `cat /root/dump/a.txt` == 1 ]; then echo "`cat /root/dump/menu$ko.txt`" > /root/dump/menu$ko.txt;
�
L33
else echo "`cat /root/dump/menu$ko.txt`" > /root/dump/menu$ka.txt; fi done echo "`cat /root/dump/menu100.txt`" > /root/dump/pertama.txt; for (( ko=1; $ko <= 100; ko++ )) do echo "$((`cat /root/dump/okay$ko.txt`/1000))" > /root/dump/menu$ko.txt done for (( ko=1; $ko <= 99; ko++ )) do ka=$(($ko+1)) echo "`cat /root/dump/menu$ko.txt` >= `cat /root/dump/menu$ka.txt`" | bc -l > /root/dump/a.txtif [ `cat /root/dump/a.txt` == 1 ]; then echo "`cat /root/dump/menu$ko.txt`" > /root/dump/menu$ko.txt; else echo "`cat /root/dump/menu$ko.txt`" > /root/dump/menu$ka.txt; fi done echo "`cat /root/dump/menu100.txt`" > /root/dump/terakhir.txt;
for (( ko=1; $ko <= 100; ko++ )) do echo "$((`cat /root/dump/okay$ko.txt`/1000))" > /root/dump/var$ko.txt done for (( ki=`cat /root/dump/pertama.txt` ; $ki >= `cat /root/dump/terakhir.txt`; ki-- )) do for (( ko=1; $ko <= 100; ko++ )) do echo "$ki <= `cat /root/dump/var$ko.txt`" | bc -l > /root/dump/a.txt if [ `cat /root/dump/a.txt` == 1 ]; then echo "o" > /root/dump/menu$ko.txt; else echo "-" > /root/dump/menu$ko.txt; fi done
echo "10 <= $ki" | bc -l > /root/dump/a.txt if [ `cat /root/dump/a.txt` == 1 ]; then ke=0; else ke=00; fi
�
L34
echo -e "$ke$ki|`cat /root/dump/menu1.txt``cat /root/dump/menu2.txt``cat /root/dump/menu3.txt``cat /root/dump/menu4.txt``cat /root/dump/menu5.txt``cat /root/dump/menu6.txt``cat /root/dump/menu7.txt``cat /root/dump/menu8.txt``cat /root/dump/menu9.txt``cat /root/dump/menu10.txt``cat /root/dump/menu11.txt``cat /root/dump/menu12.txt``cat /root/dump/menu13.txt``cat /root/dump/menu14.txt``cat /root/dump/menu15.txt``cat /root/dump/menu16.txt``cat /root/dump/menu17.txt``cat /root/dump/menu18.txt``cat /root/dump/menu19.txt``cat /root/dump/menu20.txt``cat /root/dump/menu21.txt``cat /root/dump/menu22.txt``cat /root/dump/menu23.txt``cat /root/dump/menu24.txt``cat /root/dump/menu25.txt``cat /root/dump/menu26.txt``cat /root/dump/menu27.txt``cat /root/dump/menu28.txt``cat /root/dump/menu29.txt``cat /root/dump/menu30.txt``cat /root/dump/menu31.txt``cat /root/dump/menu32.txt``cat /root/dump/menu33.txt``cat /root/dump/menu34.txt``cat /root/dump/menu35.txt``cat /root/dump/menu36.txt``cat /root/dump/menu37.txt``cat /root/dump/menu38.txt``cat /root/dump/menu39.txt``cat /root/dump/menu40.txt``cat /root/dump/menu41.txt``cat /root/dump/menu42.txt``cat /root/dump/menu43.txt``cat /root/dump/menu44.txt``cat /root/dump/menu45.txt``cat /root/dump/menu46.txt``cat /root/dump/menu47.txt``cat /root/dump/menu48.txt``cat /root/dump/menu49.txt``cat /root/dump/menu50.txt``cat /root/dump/menu51.txt``cat /root/dump/menu52.txt``cat /root/dump/menu53.txt``cat /root/dump/menu54.txt``cat /root/dump/menu55.txt``cat /root/dump/menu56.txt``cat /root/dump/menu57.txt``cat /root/dump/menu58.txt``cat /root/dump/menu59.txt``cat /root/dump/menu60.txt``cat /root/dump/menu61.txt``cat /root/dump/menu62.txt``cat /root/dump/menu63.txt``cat /root/dump/menu64.txt``cat /root/dump/menu65.txt``cat /root/dump/menu66.txt``cat /root/dump/menu67.txt``cat /root/dump/menu68.txt``cat /root/dump/menu69.txt``cat /root/dump/menu70.txt``cat /root/dump/menu71.txt``cat /root/dump/menu72.txt``cat /root/dump/menu73.txt``cat /root/dump/menu74.txt``cat /root/dump/menu75.txt``cat /root/dump/menu76.txt``cat /root/dump/menu77.txt``cat /root/dump/menu78.txt``cat /root/dump/menu79.txt``cat /root/dump/menu80.txt``cat /root/dump/menu81.txt``cat /root/dump/menu82.txt``cat /root/dump/menu83.txt``cat /root/dump/menu84.txt``cat /root/dump/menu85.txt``cat /root/dump/menu86.txt``cat /root/dump/menu87.txt``cat /root/dump/menu88.txt``cat /root/dump/menu89.txt``cat /root/dump/menu90.txt``cat /root/dump/menu91.txt``cat /root/dump/menu92.txt``cat /root/dump/menu93.txt``cat /root/dump/menu94.txt``cat /root/dump/menu95.txt``cat /root/dump/menu96.txt``cat /root/dump/menu97.txt``cat /root/dump/menu98.txt``cat /root/dump/menu99.txt``cat /root/dump/menu100.txt`" >> /root/dump/graph.txt done
echo " |xxxxxxxxx|xxxxxxxxxx|xxxxxxxxx|xxxxxxxxxx|xxxxxxxxx|xxxxxxxxxx|xxxxxxxxx|xxxxxxxxx|xxxxxxxxxx|xxxxxxxxx| " >> /root/dump/graph.txt
�
L35
echo " 0s 10s 20s 30s 40s 50s 60s 70s 80s 90s 100s " >> /root/dump/graph.txt echo " time (second)" >> /root/dump/graph.txt cat /root/dump/graph.txt fi
#program save_bitrate #menyimpan data bit rate #!/bin/bash echo `cat /root/dump/okay1.txt` > /root/dump/databit.txt for (( ko=2; $ko <= 100; ko++ )) do echo `cat /root/dump/okay$ko.txt` >> /root/dump/databit.txt done echo `cat /root/dump/rataokay.txt` `cat /root/dump/MAC.txt` `cat /root/dump/date0.txt` `cat /root/dump/databit.txt` >> /root/simpanan/data_bitrate/`date -u +%Y``date -u +%m``date -u +%d`.txt chmod 744 /root/simpanan/data_bitrate/`date -u +%Y``date -u +%m``date -u +%d`.txt
#program save_all #menyimpan semua data #!/bin/bash echo `cat x.txt` `cat y.txt` `cat z.txt` `cat /root/rataokay.txt` `cat MAC.txt` >> /root/dump/bitrate/data.txt echo `cat x.txt` `cat y.txt` `cat z.txt` `cat /root/ratastrength.txt` `cat MAC.txt` >> /root/dump/fieldstrength/data.txt echo `cat x.txt` `cat y.txt` `cat z.txt` `cat /root/ratastrength.txt` `cat MAC.txt` `cat /root/rataokay.txt` >> /media/disk-1/TA/data.txt cat /root/dump/bitrate/data.txt | grep 3D > /media/disk-1/TA/bitrate.txt cat /root/dump/bitrate/data.txt | grep E3 >> /media/disk-1/TA/bitrate.txt cat /root/dump/bitrate/data.txt | grep 49 >> /media/disk-1/TA/bitrate.txt cat /root/dump/fieldstrength/data.txt | grep 3D > /media/disk-1/TA/fieldstrength.txt cat /root/dump/fieldstrength/data.txt | grep E3 >> /media/disk-1/TA/fieldstrength.txt cat /root/dump/fieldstrength/data.txt | grep 49 >> /media/disk-1/TA/fieldstrength.txt
#program save_all #menghapus semua data #!/bin/bash unset > /media/disk-1/TA/data.txt unset > /media/disk-1/TA/bitrate.txt unset > /media/disk-1/TA/fieldstrength.txt
#program exit
�
L36
#menghapus data sementara (keluar) #!/bin/bash rm -r /root/dump mkdir /root/dump
�
L37
SPESIFIKASI 2,4 GHz FLAT PANEL 20,5 dBi ANTENNA
Kategori : Outdoor Antenna
Kode : AFP24-20
Harga : Rp 995.000,00
2.4 GHz Flat Panel 20,5 dBi Antenna. Termasuk 1 buah kabel jumper N-Male to N-Male 1 meter.
Specifications
• Frequency: 2300 - 2500MHz • Gain: 20.5 dBi • Polarization: Vertical, Linear • Beamwidth deg vertical & horizontal: • Horz.15°Vert.16° • SWR: 1.5:1 • Impedance: 50 Ohm • Dimensions: 13.8 X 15.5 X 1 in • Connector: N-type / female