bab iii pengembangan sistem software -...

31
Petunjuk Operasional 20 BAB III PENGEMBANGAN SISTEM SOFTWARE Sistem software yang dikembangkan untuk mengendalikan sistem kerja pemantauan kualitas air menggunakan data logger berbasis mainboard PC terdiri dari dua jenis software, yaitu : Software control data logger yang digunakan untuk mengendalikan kerja perangkat data logger onlimo OSS dalam pengambilan data pengukuran kualitas air menurut interval waktu yang diberikan. Software database monitoring yang digunakan untuk mengelola data-data pengukuran yang dikirimkan oleh perangkat data logger onlimo OSS ke pusat data. Kedua perangkat lunak di atas saling bekerja sama secara kontinyu dan terintegrasi oleh konektifitas jaringan antara perangkat data logger dengan komputer server melalui perangkat wireless access point / wireless router. Pengembangan kedua perangkat lunak ini dilakukan menggunakan bahasa pemrograman yang berbeda-beda, namun tetap menggunakan perangkat lunak berbasis sumber terbuka (open source software / OSS). Gambar berikut ini adalah diagram aliran data pengukuran dari data logger ke pusat data yang dilakukan oleh software control data logger dan software database monitoring. Gambar 3.1. Diagram Aliran Data Pengukuran Dari Data Logger ke Pusat Data mysqld tcp/ip Database Onlimodb apache httpd Web onlimo OSS cgi / db engine Onlimo logger mysql tcp/ip data Onlimo logger mysql tcp/ip data Onlimo logger mysql tcp/ip data

Upload: trinhdan

Post on 25-Mar-2019

224 views

Category:

Documents


0 download

TRANSCRIPT

Petunjuk Operasional 20

BAB IIIPENGEMBANGAN SISTEM SOFTWARE

Sistem software yang dikembangkan untuk mengendalikan sistem kerjapemantauan kualitas air menggunakan data logger berbasis mainboard PC terdiridari dua jenis software, yaitu :

Software control data logger yang digunakan untuk mengendalikan kerjaperangkat data logger onlimo OSS dalam pengambilan data pengukurankualitas air menurut interval waktu yang diberikan.

Software database monitoring yang digunakan untuk mengelola data-datapengukuran yang dikirimkan oleh perangkat data logger onlimo OSS ke pusatdata.

Kedua perangkat lunak di atas saling bekerja sama secara kontinyu danterintegrasi oleh konektifitas jaringan antara perangkat data logger dengan komputerserver melalui perangkat wireless access point / wireless router. Pengembangankedua perangkat lunak ini dilakukan menggunakan bahasa pemrograman yangberbeda-beda, namun tetap menggunakan perangkat lunak berbasis sumber terbuka(open source software / OSS).

Gambar berikut ini adalah diagram aliran data pengukuran dari data logger kepusat data yang dilakukan oleh software control data logger dan software databasemonitoring.

Gambar 3.1. Diagram Aliran Data Pengukuran Dari Data Logger ke Pusat Data

mysqldtcp/ip

DatabaseOnlimodb

apachehttpd

Web onlimoOSS

cgi / dbengine

Onlimologger

mysqltcp/ip

data

Onlimologger

mysqltcp/ip

data

Onlimologger

mysqltcp/ip

data

Petunjuk Operasional 21

3.1. Pengembangan Software Control Data Logger

Software control data logger berfungsi untuk melalukan pengambilan datamenggunakan perangkat multiprobe sensor yang dihubungkan ke port serialRS232C pada perangkat data logger setiap interval waktu tertentu dan dikirimkan kedatabase pada komputer server. Program control data logger dikembangkanmenggunakan bahasa pemrograman GNU CPP/C++ yang merupakan aplikasiperangkat lunak sumber terbuka. Beberapa aplikasi yang diperlukan untukmelakukan pengembangan software control data logger adalah :

A. Aplikasi text editor untuk menyunting kode sumber (source code) programyang dikembangkan.

B. GNU CPP/C++ compiler untuk mengkompilasi (mengubah ke bahasa mesinprogram yang dikembangkan sehingga bisa diekseskusi/dijalankan. Obyeklibrary yang digunakan dalam proses kompilasi adalah :

Library Glibc (GNU C Library) yang merupakan library standarpemrograman bahasa C yang dikerjakan oleh proyek GNU. Library inimerupakan library utama yang dipakai di dalam program ini. Beberapakegunaannya di antaranya untuk membuka koneksi ke port serial,mengirim/menerima data ke/dari port serial, menulis/membaca data ke/darifile pencatatan, dan lain-lain.

Library Libpthread untuk menjalankan beberapa tugas (thread) secaraindependen dan dalam waktu yang bersamaan. Program ini menggunakandua thread, yaitu thread utama untuk mengambil data secara periodik(PER) dan sebuah thread lagi untuk menjalankan tugas peringatan dini(EWS)

Library Librt untuk membuat fungsi semaphore, yaitu melindungi resource(sumber daya) yang dipakai secara bersama, seperti port serial dan log filepencatatan, agar hanya ada satu proses yang dapat mengaksesnya dalamsatu waktu. Perlindungan ini diperlukan karena dimungkinkannya beberapaproses untuk berjalan dalam waktu bersamaan dan akses yang tidak diaturdapat menyebabkan terjadinya kekacauan dalam penulisan/pengambilandata.

Library Libmysqlclient yang digunakan untuk berkomunikasi dengan database server Mysql dan mencatat data yang diambil oleh sensor sertamengirimkannya ke dalam database server.

Ketiga library terakhir diperlukan saat kompilasi menggunakan konfigurasiMakefile yang ditulis dengan format ( -lpthread -lrt -lmysqlclient )

Program control data logger onlimo OSS dikembangkan menurut rancanganyang telah dibahas pada sub bab disain program control data logger. Untukmempermudah proses identifikasi pengembangan diberikan versi pada kode sumberyang telah dikembangkan dan diujicobakan secara offline. Versi mayor denganperubahan besar diberikan dengan dua digit angka, sedangkan versi minor denganperubahan kecil diberikan dalam tiga digit angka. Berikut ini adalah tabel versipengembangan program control data logger dengan masing-masing perubahan fiturdi dalamnya.

Petunjuk Operasional 22

Tabel 3.1. Perkembangan Versi Program Control Data Logger

No. Program Versi Perubahan

1. Onlimo 1.0 Release pertama dengan fitur berupapengambilan data dari sensor danmencatatkannya ke dalam sebuah file teks.

Release kedua berisi pengurangan intervalpengambilan data ketika program sedang dalamproses persiapan.

Release ketiga berisi penambahan opsi untukmenjalankan program sebagai backgroundprocess atau berjalan di terminal.

2. Onlimo 1.1 Membaca parameter setting dari file onlimo.conf Mencatat pesan error ke file monitoring.log Penambahan fitur peringatan dini EWS

3. Onlimo 1.2 Data dari sensor tidak lagi dicatat ke file teks, tetapidimasukkan ke dalam database MySQL

4. Onlimo 1.2.1 Tidak ada perubahan dari versi 1.2. Hanya disertakansatu program lagi berupa simulator. Releaseselanjutnya selalu menyertakan simulator.

5. Onlimo 1.3 Tidak ada perubahan dari versi 1.2. Hanyapenambahan komentar pada source code untukmenjelaskan masing-masing fungsi.

6. Onlimo 1.4 Alamat file config bisa diubah, tidak harus beradapada satu direktori dengan program

Interval pengambilan data dibuat lebih akurat

7. Onlimo 1.5 Perbaikan bug : Program harus dijalankan 2 kali agar bisa jalan. Program terlalu banyak mengambil data dalam

interval 1 detik. Data yang diambil terkadang tidak lengkap

(jumlah data tidak sama dengan 6). Penulisan pesan error terlalu banyak, sehingga

perlu dipersingkat. Format penulisan tanggal berbeda.

8. Onlimo 1.5.1 Perbaikan bug saat menghentikan program,terkadang harus menunggu hingga timerpengambilan data berakhir

9. Onlimo 1.5.2 Sebelum mengirim perintah “data<enter>”, diawalidengan pengiriman kode <enter> terlebih dahulu

10. Onlimo 1.6 Fitur reconnect apabila MySQL server mati

11. Onlimo 2.0 Tambahan fitur menu pada console screen

Petunjuk Operasional 23

Program control data logger diberikan nama ‘onlimo’ singkatan dari ‘onlinemonitoring’ dengan versi di belakangnya, misalnya onlimo16 yang berarti programonline monitoring versi 1.6. Kode sumber setiap versinya diletakkan ke dalam sebuahdirektori yang diberi nama sama, misalnya ‘Onlimo1.6/’. Sejak versi 1.2.1, onlimodibuat dalam dua sub versi, yaitu sub versi sesungguhnya yang diletakkan dalamdirektori ‘OnlimoDataLogger/’ dan sub versi simulator yang diletakkan dalamdirektori ‘OnlimoDataLogger_simulator/’.

Sub versi sesungguhnya digunakan untuk pengambilan data ke unit sensor,sedangkan sub versi simulator digunakan untuk pengambilan data tanpa sensordengan data dummy/acak sebagai hasil pengukurannya. Prinsip kerja sub versisimulator adalah sama dengan sub versi sesungguhnya, hanya pada saat programtidak mendapatkan respon dari unit sensor, maka sub routine data generator didalam program onlimo akan memberikan data secara acak sebagai data dummyhasil pengukuran. Sehingga seolah-olah program onlimo berhasil berkomunikasidengan unit sensor.

Kedua sub versi dibuat agar dapat dikompilasi pada sistem operasi UnixFreeBSD maupun Linux Ubuntu menggunakan perintah standar kompilasi ‘make’dengan mendifinisikan parameternya pada file konfigurasi ‘Makefiles’. Berikut iniadalah nama direktori dan daftar file yang dibuat pada versi terakhir Onlimo1.6 untukmasing-masing sub versi.

root@onlimoserver[192]> cd Onlimo1.6root@onlimoserver[193]> pwd/home/onlimo/work/program/Onlimo1.6root@onlimoserver[194]> ls -FOnlimoDataLogger/ OnlimoDataLogger_simulator/root@onlimoserver[195]> ls OnlimoDataLoggerConfigHandler.cpp Makefile SerialStream.hConfigHandler.h SensorLogger.cpp main.cppDbManager.cpp SensorLogger.h onlimo.confDbManager.h SerialStream.cpproot@onlimoserver[196]> ls OnlimoDataLogger_simulator/ConfigHandler.cpp Makefile SerialStream.hConfigHandler.h SensorLogger.cpp main.cppDbManager.cpp SensorLogger.h onlimo.confDbManager.h SerialStream.cpproot@onlimoserver[197]>

Pada kedua sub versi terdapat 11 file yang terdiri file definisi makefile, filesetting parameter eksekusi onlimo.conf, file kode sumber header .h dan file kodesumber program .cpp yang merupakan kelas-kelas modul program onlimo. Berikut iniadalah fungsi dari masing-masing file kode sumber Onlimo Versi 1.6.

Tabel 3.2. Daftar File Yang Dibuat Untuk Onlimo Versi 1.6

No. File Keterangan

1. Makefile file definisi untuk program kompiler make

2. main.cpp program utama yang mereferensi semua kodesumber program.cpp dan header.h

Petunjuk Operasional 24

3. onlimo.conf File konfigurasi setting parameter eksekusi onlimo

4. ConfigHandler.hConfigHandler.cpp

Berisi kelas untuk pembacaan data dari filekonfigurasi onlimo.conf dengan format konfigurasi :<nama_parameter> = <data> # komentar<nama_parameter> = <data1><delimiters><data2>contoh: comport = /dev/ttyU0

BMSUHU = 25,00 32,00

5. DbManager.hDbManager.cpp

Berisi kelas untuk menangani operasi penulisandata ke dalam database MySQL server.

6. SensorLogger.hSensorLogger.cpp

Berisi kelas utama yang bertugas melakukanpengambilan data dan mencatatkannya ke dalamdatabase.

7. SerialStream.hSerialStream.cpp

SerialStream adalah kelas yang menangani operasiterhadap serial port, seperti membuka port,menutupnya, membaca data, dan menulis data.

8. onlimo.conf File konfigurasi setting parameter eksekusi onlimo

Untuk mengkompilasi semua file kode sumber onlimo mulai dari versi 1.0 hinggasaat dokumentasi ini ditulis versi 1.6, selalu digunakan perintah utilitas ‘make’.Program make akan membuat file obyek dari setiap kelompok source code,misalnya:

ConfigHandler.h dan ConfigHandler.cpp akan membentuk ConfigHandler.o DbManager.h dan DbManager.cpp akan membentuk DbManager.o dan seterusnya.

Kemudian masing-masing file obyek akan dijadikan satu (linking) menjadi satuprogram yang dapat dieksekusi mewakili program onlimo ini.

Semua prosedur kompilasi dituliskan dalam file Makefile sedemikian rupaseperti contoh di bawah ini dan akan digunakan oleh perintah ‘make’ dalam proseskompilasi. Bagian kiri merupakan variabel parameter sedangkan bagian kananmerupakan nilai variabel tersebut. Contoh di bawah ini variabel kompilasi terdiri dariproject, CXX, CFLAGS, LDFLAGS, LIBS, all, dan clean.

project = onlimo

CXX = g++CFLAGS = -I/usr/include/mysql -I/usr/local/include/mysqlLDFLAGS = -L/usr/lib/mysql -L/usr/local/lib/mysqlLIBS = -lpthread -lrt -lmysqlclient

all: $(project)

clean:rm -f ConfigHandler.o SerialStream.o DbManager.o SensorLogger.o

main.o $(project)

Petunjuk Operasional 25

$(project):$(CXX) $(CFLAGS) -Wall -g -c ConfigHandler.cpp -o ConfigHandler.o$(CXX) $(CFLAGS) -Wall -g -c SerialStream.cpp -o SerialStream.o$(CXX) $(CFLAGS) -Wall -g -c DbManager.cpp -o DbManager.o$(CXX) $(CFLAGS) -Wall -g -c SensorLogger.cpp -o SensorLogger.o$(CXX) $(CFLAGS) -Wall -g -c main.cpp -o main.o$(CXX) $(LDFLAGS) $(LIBS) -Wall -g ConfigHandler.o SerialStream.o

DbManager.o SensorLogger.o main.o -o $(project)

Pada onlimo versi 1.0 dirancang agar program dapat dijalankan secaramanual layaknya perintah standar unix yang dituliskan di depan shell prompt denganmenempatkan beberapa opsi eksekusi di depan program onlimo tersebut. Pada versi1.0 onlimo memiliki beberapa opsi ekskusi yang harus diisi saat dijalankan, yaitu :

Opsi SERIAL diisi dengan nomor port serial Opsi BAUDRATE diisi dengan kecepatan akses Opsi ID diisi dengan nomor ID lokasi Opsi WAKTU diisi dengan interval pengambilan data dalam detik Opsi FDATA diisi dengan nama file data

Berikut ini adala contoh proses kompilasi dan eksekusi program onlimo versi 1.0

root@onlimoserver[197]> pwd/usr/home/onlimo/work/program/Versi1.0

root@onlimoserver[198]> lsMakefile SerialStream.cpp onlimo.confSensorLogger.cpp SerialStream.hSensorLogger.h main.cpp

root@onlimoserver[199]> makeg++ -g -c SerialStream.cpp -o SerialStream.og++ -g -c SensorLogger.cpp -o SensorLogger.og++ -g -c main.cpp -o main.og++ -g -lrt SerialStream.o SensorLogger.o main.o -o onlimo

root@onlimoserver[200]> ./onlimoOnlimo v1.0 - Program ambil data dari sensor YSI

Pemakaian: ./onlimo SERIAL BAUDRATE ID WAKTU FDATA [OPTIONS]SERIAL Nomor port serialBAUDRATE Baudrate serialID Nomor ID lokasiWAKTU Interval pengambilan data dalam detikFDATA Nama file data

OPTIONS:-f Set program untuk berjalan di foreground-v Aktifkan mode verbose

Contoh:./onlimo /dev/ttyS0 9600 OSS1 4 data.txt

root@onlimoserver[201]> ./onlimo /dev/ttyU0 9600 OSS1 4 data.txtMempersiapkan program .... selesai.Pengambilan data dimulai.

Petunjuk Operasional 26

Pada contoh kompilasi di atas, dihasilkan output program yang diberi namaonlimo (opsi –o onlimo pada makefile). Jika program onlimo dijalankan tanpa opsiapapun, maka program tersebut akan menampilkan cara pemakaiannya. Padacontoh eksekusi ‘./onlimo /dev/ttyU0 9600 OSS1 4 data.txt’ berarti program onlimodijalankan dengan opsi :

SERIAL=/dev/ttyU0 BAUDRATE=9600 ID=OSS1 WAKTU=4 FDATA=data.txt

Berikutnya program secara otomatis akan melakukan pengukuran melaluiserial koneksi tersebut dengan kecepatan 9600bps dan interval waktu pengukuran 4detik. Data hasil pengukuran akan dimasukkan ke dalam file ‘data.txt’. Jika opsiSERIAL tidak dipenuhi atau ada kesalahan, maka komputer akan menampilkanpesan seperti contoh berikut.

root@onlimoserver[202]> ./onlimo /dev/ttyUX 9600 OSS1 4 data.txtMempersiapkan program .... gagal.Pengambilan data tidak bisa dilaksanakan. Program akan berhenti.

Jika pada Onlimo versi 1.0 parameter eksekusi program disertakan saateksekusi, maka untuk mempermudah pengelolaan parameter tersebut dituliskandalam sebuah file konfigurasi yang diberi nama onlimo.conf. File konfigurasi iniberisi opsi-opsi yang dituliskan di depan pada versi 1.0. Sehingga program onlimodapat dijalankan tanpa memberikan opsi apapun di depannya, namun program iniakan membaca file konfigurasi onlimo.conf saat pertama kali dijalankan sebelummemulai pengukuran. Adapun format penulisan parameter setting file onlimo.confuntuk versi 1.1 adalah sebagai berikut :

comport = /dev/cuau0 # nama file communication portbaudrate = 9600 # kecepatan koneksi dataidstasiun = SB1 # nomor identifikasi stasiuntwarning = 4 # interval waktu data early warning systemtperiodik = 10 # interval waktu data periodik (detik)filedata = data.txt # nama file datafilelog = monitoring.log # nama file log pengoperasian

BMPH = 06,50 07,05 # batasan baku mutu pH /asam - basaBMDO = 05,00 06,00 # batasan baku mutu DO /oksigen terlarutBMSAL = 10,00 15,00 # batasan baku mutu Salinitas / kadar garamBMTEMP = 25,00 32,00 # batasan baku mutu temperaturBMDHL = 10,00 20,00 # batasan baku mutu konduktifitasBMTDS = 10,00 15,00 # batasan baku mutu zat padat terlarut

Untuk versi-versi selanjutnya program onlimo dirancang untuk selalumenggunakan file konfigurasi onlimo.conf agar mendapatkan opsi parametereksekusi dalam pengukuran data. Berikut ini adalah contoh kompilasi programonlimo versi 1.6 baik sub versi sesungguhnya maupun sub versi simulator.

Petunjuk Operasional 27

Kompilasi sub versi onlimo sesungguhnya :

root@onlimoserver[203]> cd OnlimoDataLogger/root@onlimoserver[204]> lsDbManager.h SerialStream.cppConfigHandler.cpp Makefile SerialStream.hConfigHandler.h SensorLogger.cpp main.cppDbManager.cpp SensorLogger.h onlimo.confroot@onlimoserver[205]> makeg++ -I/usr/include/mysql -I/usr/local/include/mysql -Wall -g -cConfigHandler.cpp -o ConfigHandler.og++ -I/usr/include/mysql -I/usr/local/include/mysql -Wall -g -cSerialStream.cpp -o SerialStream.og++ -I/usr/include/mysql -I/usr/local/include/mysql -Wall -g -cDbManager.cpp -o DbManager.og++ -I/usr/include/mysql -I/usr/local/include/mysql -Wall -g -cSensorLogger.cpp -o SensorLogger.og++ -I/usr/include/mysql -I/usr/local/include/mysql -Wall -g -c main.cpp-o main.og++ -L/usr/lib/mysql -L/usr/local/lib/mysql -lpthread -lrt -lmysqlclient-Wall -g ConfigHandler.o SerialStream.o DbManager.o SensorLogger.o main.o-o onlimoroot@onlimoserver[206]> lsConfigHandler.cpp Makefile SerialStream.oConfigHandler.h SensorLogger.cpp main.cppConfigHandler.o SensorLogger.h main.oDbManager.cpp SensorLogger.o onlimoDbManager.h SerialStream.cpp onlimo.confDbManager.o SerialStream.h

Kompilasi sub versi onlimo simulator :

root@onlimoserver[207]> cd OnlimoDataLogger_simulator/root@onlimoserver[208]> lsConfigHandler.cpp Makefile SerialStream.hConfigHandler.h SensorLogger.cpp main.cppDbManager.cpp SensorLogger.h onlimo.confDbManager.h SerialStream.cpproot@onlimoserver [209]> makeg++ -I/usr/include/mysql -I/usr/local/include/mysql -Wall -g -cConfigHandler.cpp -o ConfigHandler.og++ -I/usr/include/mysql -I/usr/local/include/mysql -Wall -g -cSerialStream.cpp -o SerialStream.og++ -I/usr/include/mysql -I/usr/local/include/mysql -Wall -g -cDbManager.cpp -o DbManager.og++ -I/usr/include/mysql -I/usr/local/include/mysql -Wall -g -cSensorLogger.cpp -o SensorLogger.og++ -I/usr/include/mysql -I/usr/local/include/mysql -Wall -g -c main.cpp-o main.og++ -L/usr/lib/mysql -L/usr/local/lib/mysql -lpthread -lrt -lmysqlclient-Wall -g ConfigHandler.o SerialStream.o DbManager.o SensorLogger.o main.o-o onlimoroot@onlimoserver[210]> lsConfigHandler.cpp Makefile SerialStream.oConfigHandler.h SensorLogger.cpp main.cppConfigHandler.o SensorLogger.h main.oDbManager.cpp SensorLogger.o onlimoDbManager.h SerialStream.cpp onlimo.confDbManager.o SerialStream.h

Petunjuk Operasional 28

Baik versi sesungguhnya maupun versi simulator memiliki cara pemakaian yangsama saat eksekusi, yaitu dengan menuliskan nama program onlimo saja di depanshell prompt. Pada program onlimo versi 1.6. opsi yang perlu diberikan adalah lokasidirektori dan nama konfigurasi file onlimo.conf.

Berikut ini adalah cara eksekusi program onlimo versi 1.6 yang telah selesaidikompilasi untuk kedua sub versi. Opsi ’--help' digunakan untuk menampilkan carapemakaian program ini, ‘opsi –f’ digunakan agar proses program onlimo dijalankansecara foreground, sedangkan ‘opsi –v’ digunakan untuk mengaktifkan modeverbose (tampil di layar) berkombinasi dengan opsi -f. Pada contoh ini saat programonlimo dijalankan memberikan pesan kesalahan bahwa file /dev/ttyU0 tidak ada,sehingga kernel membuat file onlimo.core (yang bercetak tebal).

Selanjutnya setelah menyunting file onlimo.conf dan mengganti /dev/ttyU0dengan /dev/ttyu0, program onlimo dapat dijalankan. Contoh ekskusi berikutnyaadalah perintah ‘make clean’ yang merupakan perintah untuk membersihkan fileproyek program control data logger onlimo dengan menghapus file-file obyek *.o danoutput program ‘onlimo’. Perintah ‘ls’ berikutnya menunjukkan daftar file dalamdirektori tersebut dengan file obyek *.o yang telah dihapus.

root@onlimoserver[211]> ./onlimo --helpOnlimo v1.6 - Program ambil data dari sensor YSIPemakaian: ./onlimo FILE_CONFIG [OPTIONS]OPTIONS:

-f Set program untuk berjalan di foreground-v Aktifkan mode verbose. Mode ini hanya berlaku jika opsi -f

Diaktifkan

root@onlimoserver[212]> ./onlimo onlimo.conf/dev/ttyU0 tidak bisa dibuka: No such file or directoryProgram tidak bisa dijalankanSegmentation fault (core dumped)

root@onlimoserver[213]> lsConfigHandler.cpp SensorLogger.cpp main.oConfigHandler.h SensorLogger.h monitoring.logConfigHandler.o SensorLogger.o onlimoDbManager.cpp SerialStream.cpp onlimo.confDbManager.h SerialStream.h onlimo.coreDbManager.o SerialStream.oMakefile main.cpp

root@onlimoserver[214]> vi onlimo.conf (ganti ttyU0 dengan ttyu0)

root@onlimoserver[215]> ./onlimo onlimo.confMempersiapkan program .... selesai.Pengambilan data dimulai.

root@onlimoserver[216]> make cleanrm -f ConfigHandler.o SerialStream.o DbManager.o SensorLogger.o main.oonlimo

root@onlimoserver[217]> lsDbManager.h SerialStream.cppConfigHandler.cpp Makefile SerialStream.hConfigHandler.h SensorLogger.cpp main.cppDbManager.cpp SensorLogger.h onlimo.conf

Petunjuk Operasional 29

Jika pada versi 1.0 data hasil pengukuran dapat dilihat pada file data.txt ataupada nama file yang diberikan melalui opsi FDATA, maka pada versi 1.6 data hasilpengukuran dilihat dengan cara mengakses file database onlimo pada mysql servermenggunakan perintah SQL ‘select’ yang akan dijelaskan pada sub babpengembangan software database online monitoring. Selain itu beberapa utilitasuntuk memeriksa data yang telah masuk dapat dibuatkan program shell script yangdi dalamnya didefinisikan Data Manipulation Language (DML) dalam perintah SQLseperti contoh di bawah ini.

#!/bin/sh# Program : cekquery.sh# Deskripsi : Bourne Shell Script untuk memeriksa data terkini (hari ini)# yang telah dari logger ke database server MySQL sesuai# masukan IDStasiun# Project : Onlimo OSS# Versi : 1.0# Last edit : 7 Juli 2012# Author : HDW

# Setting ParameterID=$1 # masukan/input IDStasiunuser="root" # user name akses databasedb="onlimodb" # nama databaseserver="192.168.0.100" # alamat IP Server MySQLlimit="20" # jumlah baris data yang tampil ke layarwait="30" # intarval waktu refresh ke layar dalam detik

# Cara pemakaianif [ $# = 0 ]; then

echo ""echo "Pemakaian : `basename $0` [ IDStasiun ]"echo ""echo " Contoh : `basename $0` OSS1"echo " `basename $0` OSS2"echo ""exit 1

fi

# Eksekusi DMLwhile [ TRUE ]; do

clear

# Ambil informasi tanggal hari ini dari systemtgl=`date "+%Y-%m-%d"`

# Susuan query DML SQLquery=" select IDStasiun, Tanggal, Jam, Suhu, TDS, DO, PH, EWS_PERfrom Pengukuranwhere IDStasiun='$ID'and Tanggal='$tgl' #and EWS_PER='PER' (ambil data PER saja)order by Jam desclimit $limit "

# Eksekusi querymysql -u "$user" -h "$server" "$db" -e "$query"sleep $wait

done

Program shell script cekquery.sh di atas dapat dieksekusi dengan cara “cekquery.shOSS1”, dimana OSS1 adalah nomor identifikasi stasiun/data logger yang akandiambil datanya. Gambar berikut ini adalah tampilan layar monitor pada data loggersetelah beberapa saat program cekquery.sh tersebut dijalankan.

Petunjuk Operasional 30

Gambar 3.2. Tampilan Data Terkini Menggunakan Program cekquery.sh

Pengembangan software control data logger saat ini telah dikembangkan kearah penggunaan yang semakin mudah. Pada versi akhir pengembangan softwarecontrol data logger diharapkan diperoleh program onlimo versi 2.0 yang memberikantampilan menu pada layar console. Jika pada versi sebelumnya proses pengukuranyang dilakukan oleh program onlimo tidak terlihat tanpa melakukan pemeriksaan keserver database, maka pada versi 2.0 ini proses pengukuran akan dapat langsungterlihat pada data logger saat monitor dipasang, sehingga pengguna dapatmengetahui dengan segera status pengukuran yang dilakukan oleh data logger.

Gambar 3.3. Tampilan Console Screen Program Onlimo Versi 2.0 (beta)

Petunjuk Operasional 31

Tampilan console screen pada gambar di atas adalah program onlimo versi2.0 yang dijalankan pada data logger dengan cara yang sama. Setting parameteryang terdapat dalam file konfigurasi onlimo.conf setelah dibaca saat programpertama kali dijalankan akan ditampilkan ke layar monitor. Untuk mengubah settingparameter tersebut pengguna dapat langsung mengarahkan cursor ke parameteryang dimaksud untuk dilakukan perubahan. Sedangkan pada versi sebelumnya yangharus menyunting file konfigurasi onlimo.conf menggunakan editor ‘vi’.

Melalui tampilan console screen ini, pengguna dapat langsung mengetahui IDdata logger yang digunakan dan beberapa informasi penting lainnya seperti nama filepencatatan proses monitoring, setting komunikasi sensor, setting interval waktupengukuran, setting database mysql dan baku mutu parameter ukur. Statusbeberapa record data pengukuran yang terakhir juga akan ditampilkan di bagianbawah layar ini.

Counter yang menghitung mundur waktu di bagian bawah layar dapatmenunjukkan sisa waktu yang dibutuhkan oleh data logger untuk berkomunikasidengan unit sensor dalam melakukan pengukuran data kualitas air. Prosespenyimpanan perubahan setting dilakukan dengan menekan menu ‘Save’, prosesmemulai dan mengakhiri pengukuran data dilakukan dengan menekan menu ‘Start’dan ‘Exit’. Kode sumber untuk versi 2.0 bertambah beberapa file yang berisi header*.h dan program *.cpp untuk mengendalikan tampilan di layar monitor, yaitu sepertipada daftar file di bawah ini.File kode sumber onlimo versi 2.0 sesungguhnya :

root@onlimologger1[218]> pwd/home/onlimo/work/program/Onlimo2.0/OnlimoDataLoggerroot@onlimologger1[219]> ls -FConfigHandler.cpp GUI.h PrintHandler.h main.cppConfigHandler.h GUILib/ SensorLogger.cpponlimo.confDbManager.cpp LoggerEventListener.h SensorLogger.hDbManager.h Makefile SerialStream.cppGUI.cpp PrintHandler.cpp SerialStream.hroot@onlimologger1[220]> ls -F GUILib/Button.cpp GridLayout.h Table.h Widget.hButton.h Label.cpp TextEdit.cppButtonEventListener.h Label.h TextEdit.hGridLayout.cpp Table.cpp Widget.cpproot@onlimologger1[221]>

File kode sumber onlimo simulator :

root@onlimologger1[222]> pwd/home/onlimo/work/program/Onlimo2.0/OnlimoDataLogger_simulatorroot@onlimologger1[223]> ls -FConfigHandler.cpp GUI.h PrintHandler.h main.cppConfigHandler.h GUILib/ SensorLogger.cpponlimo.confDbManager.cpp LoggerEventListener.h SensorLogger.hDbManager.h Makefile SerialStream.cppGUI.cpp PrintHandler.cpp SerialStream.hroot@onlimologger1[224]> ls -F GUILib/Button.cpp GridLayout.h Table.h Widget.hButton.h Label.cpp TextEdit.cppButtonEventListener.h Label.h TextEdit.hGridLayout.cpp Table.cpp Widget.cpproot@onlimologger1[225]>

Petunjuk Operasional 32

3.2. Pengembangan Software Database Online Monitoring

Software database monitoring digunakan untuk melakukan pengelolaan datapengukuran kualitas air yang diambil dan dikirimkan oleh program control data loggerke pusat data / komputer server. Perangkat lunak ini dikembangkan berbasis webmenggunakan bahasa pemrograman yang juga merupakan perangkat lunak berbasissumber terbuka (OSS). Beberapa bahasa pemrograman yang digunakan dalammengembangkan software database monitoring adalah sebagai berikut :

HTML (HyperText Markup Language) yang merupakan bahasa standaruntuk membuat dokumen hypertext yang mampu menampilan text, gambar,video, maupun musik secara bersamaan. Kode sumber pemrograman denganbahasa HTML ini dituliskan di antara kedua tag <HTML> ..... </HTML>. Fileyang berisi kode sumber pemrograman HTML diberi ekstensi .htm atau .html.

PHP (Hypertext Preprocessor) yang merupakan bahasa pemrogramanuntuk membuat dokumen hypertext juga, namun memiliki fitur yang lebihuntuk dapat diintegrasikkan dengan modul pemrograman lainnya sepertikonektifitas ke database maupun ke program java server. Kode sumberpemrograman dengan bahasa PHP dituliskan di antara kedua tag<?PHP ... ?>. File yang berisi kode sumber pemrograman ini diberi ekstensi.php atau dapat berada di dalam file dokumen html.

JS (Java Script) yang merupakan bahasa pemrograman yang mendukunguntuk pembuatan dokumen hypertext yang lebih maju / canggih. Berbedadengan java applet, pemrograman java script tidak perlu dikompilasi. Kodesumber pemrograman dengan bahasa java script dituliskan di antara keduatag <javascript> ... </javascript> dan file yang berisi kode sumber ini diberiekstensi .java atau dapat berada di dalam file program php.

Standard Query Language (SQL) yang merupakan bahasa standar untukmengakses data yang berada di dalam sistem database melalui databaseserver MySQL. Kode sumber pemrograman SQL ini biasanya berada di dalamkode sumber php.

Agar dapat bekerja sesuai dengan rancangan yang diinginkan, softwaredatabase monitoring ini memerlukan beberapa perangkat lunak pendukung, diantaranya adalah :

Web server yang berfungsi sebagai penyedia layanan web melalui programapache httpd server.

Database server yang berfungsi sebagai penyedia layanan database melaluiprogram mysql server.

PHP Preprocessor yang berfungsi menerjemahkan dan memproses kodesumber php dalam program berbasis web.

Web browser yang berfungsi menerjemahkan dan memproses kode sumberhtml dan java script dalam program berbasis web.

Instalasi Web Server, Database Server dan PHP Preprocessor akan dijelaskan padabab berikutnya dalam buku ini.

Petunjuk Operasional 33

Software database online monitoring dikembangkan untuk mengelola datapengukuran dalam sebuah file database ‘onlimodb’. Rancangan detail databaseonlimodb ini telah dijelaskan pada bab sebelumnya dimana terdiri dari dua tabeldata, yaitu :

1. Tabel Stasiun untuk mengelola informasi data stasiun monitoring yangterdiri dari field data sebagai berikut :

IDStasiun : nomor identifikasi stasiun monitoring NamaStasiun : nama stasiun monitoring AlamatStasiun : alamat lengkap lokasi stasiun monitoring NoTelepon : nomor telepon / HP di data logger unit KontakPerson : nama penanggungjawab stasiun monitoring LintangDerajat : posisi koordinat lintang derajat LintangMenit : posisi koordinat lintang menit LintangDetik : posisi koordinat lintang detik BujurDerajat : posisi koordinat bujur derajat BujurMenit : posisi koordinat bujur menit BujurDetik : posisi koordinat bujur detik Keterangan : keterangan lain tentang stasiun monitoring Foto : nama direktori dan file foto stasiun

2. Tabel Pengukuran untuk mengelola informasi data pengukuran kualitasair yang terdiri dari field data sebagai berikut :

IDStasiun : nomor identifikasi stasiun monitoring Tanggal : tanggal pengukuran (yyyy-mm-dd) Jam : waktu pengukuran (hh:mm:ss) Suhu : temperatur / suhu DHL : daya hantar listrik / konduktifitas TDS : kandungan zat padat terlarut Salinitas : kadar garam DO : kandungan oksigen terlarut pH : kondisi keasaman / kebasaan EWS_PER : data EWS atau periodik

Kedua tabel di atas dan field data di dalamnya dibuat menggunakan bahasapemrograman Standar Query Language (SQ) melalui program mysql client yangtelah diinstalasikan pada komputer server. Mysql pada sistem operasi unix sepertifreebsd dan ubuntu menggunakan penamaan file database dan tabel data yang‘case sensitive’ artinya membedakan antara huruf besar dan huruf kecil. Misalnyadatabase dengan nama ‘onlimodb’ akan berbeda dengan database ‘OnlimoDB’,begitu juga dengan tabel data ‘stasiun’ akan berbeda dengan tabel data ‘Stasiun’.Sehingga perlu diperhatikan saat mendefinisikan nama database dan nama-namatabel data dalam pembuatan kode sumber untuk mengakses database tersebut.

Berikut ini adalah langkah-langkah pembuatan database onlimodb, tabelStasiun dan tabel Pengukuran menggunakan DDL (Data Definition Language) SQL.

Petunjuk Operasional 34

root@onlimoserver[226]> mysql

mysql> create database onlimodb;

mysql> CREATE TABLE IF NOT EXISTS `stasiun` (`IDStasiun` varchar(8) NOT NULL,`NamaStasiun` varchar(100) NOT NULL,`AlamatStasiun` varchar(250) NOT NULL,`NoTelepon` varchar(50) NOT NULL,`KontakPerson` varchar(100) NOT NULL,`LintangDerajat` double NOT NULL,`LintangMenit` double NOT NULL,`LintangDetik` double NOT NULL,`BujurDerajat` double NOT NULL,`BujurMenit` double NOT NULL,`BujurDetik` double NOT NULL,`Keterangan` varchar(500) NOT NULL,`Foto` varchar(250) NOT NULL,PRIMARY KEY (`IDStasiun`),UNIQUE KEY `IDStasiun` (`IDStasiun`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

mysql> CREATE TABLE IF NOT EXISTS `Pengukuran` (`IDStasiun` varchar(8) NOT NULL DEFAULT '',`Tanggal` date NOT NULL DEFAULT '0000-00-00',`Jam` time NOT NULL DEFAULT '00:00:00',`Suhu` double DEFAULT NULL,`DHL` double DEFAULT NULL,`TDS` double DEFAULT NULL,`Salinitas` double DEFAULT NULL,`DO` double DEFAULT NULL,`PH` double DEFAULT NULL,`EWS_PER` varchar(3) DEFAULT NULL,PRIMARY KEY (`IDStasiun`,`Tanggal`,`Jam`),UNIQUE KEY `IDStasiun` (`IDStasiun`,`Tanggal`,`Jam`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Setelah database dan tabel data dibuat, maka program database server mysqlakan membuat beberapa file untuk keperluan akses ke dalam database onlimodb.File-file tersebut disimpan di dalam direktori /var/db/mysql/onlimodb di dalamkomputer server. Berikut ini adalah daftar file yang ada di dalam direktori tersebut.

root@onlimoserver[227]> ls /var/db/mysql/ib_logfile0 mysql testib_logfile1 onlimodb zenbook.erribdata1 performance_schema zenbook.pidroot@onlimoserver[228]> ls /var/db/mysql/onlimodb/Pengukuran.frm Stasiun.frm db.opt

Database onlimodb dan kedua tabel di dalamnya yang telah dibuatmenggunakan DDL SQL dapat diakses menggunakan DML (Data ManipulationLanguage) SQL seperti contoh-contoh di bawah ini. Contoh berikut adalah programmysql client ketika dijalankan di depan shell prompt pada sistem operasi PC Unix.Perintah SQL ‘show database’ di depan prompt ‘mysql>’ akan menampilkan filedatabase yang dikelola oleh database server mysql. Dalam contoh di bawah inidatabase onlimodb yang tercetak tebal terdapat di dalamnya.

Petunjuk Operasional 35

root@onlimoserver[229]> mysqlWelcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 1Server version: 5.5.17 Source distribution

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.

Type 'help;' or '\h' for help. Type '\c' to clear the current inputstatement.

mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || onlimodb || performance_schema || test |+--------------------+5 rows in set (0.00 sec)

Data Manipulation Language (DML) ‘use onlimodb’ dalam contoh di bawahini digunakan untuk mulai menggunakan database onlimodb dan DML ‘show tables’digunakan untuk menampilkan tabel data yang ada di dalam file database tersebut.

mysql> use onlimodb;

Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -A

Database changed

mysql> show tables;+--------------------+| Tables_in_onlimodb |+--------------------+| Pengukuran || Stasiun |+--------------------+2 rows in set (0.00 sec)

Untuk menampilkan struktur tabel data digunakan DML ‘describe’. Contoh dibawah ini adalah DML ‘describe Stasiun’ dan ‘describe Pengukuran’ untukmelihat struktur tabel data Stasiun dan Pengukuran. Dalam contoh di bawah iniditampilkan nama-nama field data, tipe data, kategori field data, dan nilai default datapada setiap tabel data. Di bagian akhir eksekusi DML nya diinformasikan waktu yangdibutuhkan oleh program mysql client dalam melakukan query atau permintaaninformasi data pada mysql server dalam satuan detik (sec).

Petunjuk Operasional 36

mysql> describe Stasiun;+----------------+--------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+----------------+--------------+------+-----+---------+-------+| IDStasiun | varchar(8) | NO | PRI | NULL | || NamaStasiun | varchar(100) | NO | | NULL | || AlamatStasiun | varchar(250) | NO | | NULL | || NoTelepon | varchar(50) | NO | | NULL | || KontakPerson | varchar(100) | NO | | NULL | || LintangDerajat | double | NO | | NULL | || LintangMenit | double | NO | | NULL | || LintangDetik | double | NO | | NULL | || BujurDerajat | double | NO | | NULL | || BujurMenit | double | NO | | NULL | || BujurDetik | double | NO | | NULL | || Keterangan | varchar(500) | NO | | NULL | || Foto | varchar(250) | NO | | NULL | |+----------------+--------------+------+-----+---------+-------+13 rows in set (0.00 sec)

mysql> describe Pengukuran;+-----------+------------+------+-----+------------+-------+| Field | Type | Null | Key | Default | Extra |+-----------+------------+------+-----+------------+-------+| IDStasiun | varchar(8) | NO | PRI | | || Tanggal | date | NO | PRI | 0000-00-00 | || Jam | time | NO | PRI | 00:00:00 | || Suhu | double | YES | | NULL | || DHL | double | YES | | NULL | || TDS | double | YES | | NULL | || Salinitas | double | YES | | NULL | || DO | double | YES | | NULL | || PH | double | YES | | NULL | || EWS_PER | varchar(3) | YES | | NULL | |+-----------+------------+------+-----+------------+-------+10 rows in set (0.00 sec)

Bentuk tampilan GUI (Graphical User Interface) software database onlimodikembangkan sesuai rancangan berbasis web yang telah dibahas dalam babsebelumnya. Kode sumber yang dikembangkan terdiri dari beberapa file yangdiletakkan di dalam sebuah direktori www atau htdocs. Pada komputer server yangtelah diinstalasikan sistem operasi FreeBSD perlu didaftarkan pengguna/userdengan login name ‘onlimo’. Direktori software database online monitoring inidiletakkan di dalam home directory user tersebut (/home/onlimo/www). Berikut iniadalah lokasi instalasi direktori software database monitoring di dalam komputerserver.

root@onlimoserver[230]> pwd/home/onlimo/www

root@onlimoserver[231]> ls -FCgi/ tabbulananf.php tabperjama.phpImages/ tabhariana.php tabperjamb.htmatas.php tabharianb.htm tabperjamf.phpbawah.htm tabharianf.php tabrealtimea.phpindex.html tabpengukurana.php tabrealtimeb.htmtabbulanana.php tabpengukuranb.htm tabrealtimef.phptabbulananb.htm tabpengukuranf.php tabstasiun.php

Petunjuk Operasional 37

root@onlimoserver[232]> ls -F Cgi/Jqplot/ grafbulanan.php waktubulanan.phpcgipengukuran.php grafharian.php waktuharian.phpcgistasiun.php grafjaman.php waktujaman.phpconnect.php grafrealtime.php waktupengukuran.php

root@onlimoserver[233]> -F Cgi/Jqplot/MIT-LICENSE.txt gpl-2.0.txt jquery.jsREADME.txt jqPlotCssStyling.txt jquery.min.jschanges.txt jqPlotOptions.txt optionsTutorial.txtcopyright.txt jquery.jqplot.css plugins/examples.min.css jquery.jqplot.js syntaxhighlighter/excanvas.js jquery.jqplot.min.css usage.txtexcanvas.min.js jquery.jqplot.min.js

root@onlimoserver[234]> ls -F Images/bin1.jpg nofoto.jpg sb1.jpgfotosb1.jpg onlimo.jpg sb2.JPGgrafbulanan.jpg onlimohwsw.jpg ser.jpggrafharian.jpg oss1.jpg sigi1.JPGgrafperjam.jpg oss2.jpg sigi2.JPGgrafrealtime.jpg oss3.jpg sigi3.JPGhome.jpg pdam.jpg tabeldata.jpgman1.jpg pdam1.jpg

Pada contoh di atas, dalam home directory onlimo (/home/onlimo) terdapatdirektori dokumen hypertext untuk software database monitoring (www) yang didalamnya terdapat sub direktori (Cgi/) dan (Images/) serta beberapa file kodesumber software database monitoring. Fungsi kedua direktori dan file-file kodesumber tersebut adalah sebagai berikut :

Direktori Cgi/ digunakan untuk menyimpan file-file kode sumber yangberfungsi sebagai mesin pencari data dan mesin pemrosesan data.

Direktori Images/ digunakan untuk menyimpan fille-file gambar / foto yangdiperlukan oleh software ini.

File index.html adalah kode sumber untuk frame utama. File atas.php adalah kode sumber untuk frame bagian atas, dan file

bawah.htm adalah kode sumber untuk frame bagian bawah. File tabbulananf.php adalah kode sumber frame utama untuk tab menu

analisa grafik bulanan, file tabbulanana.php adalah kode sumber untukframe bagian atasnya sedangkan tabbulananb.htm adalah kode sumberuntuk frame bagian bawahnya.

File tabharianf.php adalah kode sumber frame utama untuk tab menuanalisa grafik harian, file tabhariana.php adalah kode sumber untuk framebagian atasnya sedangkan tabharianb.htm adalah kode sumber untukframe bagian bawahnya.

File tabpengukuranf.php adalah kode sumber frame utama untuk tab menudata pengukuran, file tabpengukurana.php adalah kode sumber untukframe bagian atasnya sedangkan tabpengukuranb.htm adalah kodesumber untuk frame bagian bawahnya.

File tabperjamf.php adalah kode sumber frame utama untuk tab menuanalisa grafik per jam, file tabperjama.php adalah kode sumber untuk framebagian atasnya sedangkan tabperjamb.htm adalah kode sumber untukframe bagian bawahnya.

Petunjuk Operasional 38

File tabrealtimef.php adalah kode sumber frame utama untuk tab menugrafik realtime, file tabrealtimea.php adalah kode sumber untuk framebagian atasnya sedangkan tabrealtimeb.htm adalah kode sumber untukframe bagian bawahnya.

File tabstasiun.php adalah kode sumber untuk tab menu data stasiunmonitoring.

Di dalam direktori Cgi/ terdapat direktori Jqplot/ dan beberapa file untukmengakses ke database dan membuat beberapa grafik yang merupakan CommonGateway Interface (CGI) bagi aplikasi ini. Fungsi masing-masing direktori dan filekode sumbernya adalah sebagai berikut :

Direktori Jqplot/ merupakan kode sumber utilitas untuk pembuatan grafikyang ditulis dalam bahasa javascript.

File cgipengkuran.php adalah kode sumber yang digunakan untukmengambil data pengukuran di dalam database.

File cgistasiun.php adalah kode sumber yang digunakan untuk mengambildata stasiun di dalam database.

File connect.php adalah kode sumber umum yang digunakan untukmenyambungkan ke database onlimo di dalam server. File ini dilink olehhampir semua file .php dalam aplikasi ini.

File grafbulanan.php adalah kode sumber yang digunakan untuk membuatmengambil data dan menampilkannya dalam bentuk analisa grafik bulanan.

File grafharian.php adalah kode sumber yang digunakan untuk mengambildata dan menampilkannya dalam bentuk analisa grafik harian.

File grafjaman.php adalah kode sumber yang digunakan untuk mengambildata dan menampilkannya dalam bentuk analisa grafik per jam.

File grafrealtime.php adalah kode sumber yang digunakan untukmengambil data dan menampilkannya dalam bentuk grafik realtime.

File waktubulanan.php adalah kode sumber yang dipakai untuk membuatrekap data bulanan dari satu stasiun monitoring.

File waktuharian.php adalah kode sumber yang dipakai untuk membuatrekap data harian dari satu stasiun monitoring.

File waktujaman.php adalah kode sumber yang dipakai untuk membuatrekap data per jam dari satu stasiun monitoring.

File waktupengukuran.php adalah kode sumber yang digunakan untukmembuat rekap waktu pengukuran dari satu stasiun monitoring.

Dalam direktori Jqplot/ terdapat beberapa file yang diperlukan untuk membuatgrafik dengan format standar grafik garis (line graphics). Jqplot merupakan pluginjQuery yang dibuat menggunakan bahasa javascript dan merupakan software OSSdan dapat diunduh dari situs www.jqplot.com. Penjelasan rinci mengenai plugin jqplotini ada pada file readme, usage, dan optionstutorial dalam direktori ini

Berikut ini adalah isi kode sumber file index.html yang merupakan kodesumber frame utama software database monitoring dan gambar tampilan halamanhome page pada program web browser Mozilla Firefox.

Petunjuk Operasional 39

<html><head><title>Online Monitoring Kualitas Air Berbasis OSS</title></head><frameset rows="125,*" framespacing="0" border="0" frameborder="0">

<frame name="frameatas" src="atas.php" scrolling="no"noresize target="framebawah"><frame name="framebawah" src="bawah.htm" scrolling="auto"noresize target="framebawah">

</frameset><body><noframes><p>This page uses frames, but your browser doesn't support them.</p></noframes></body></html>

Gambar 3.4. Home Page Software Database Monitoring (index.html)

Pilihan menu yang ditampilkan pada home page di atas terdiri dari 6 tabmenu, yaitu (1). DataStasiun, (2). Data Pengukuran, (3). Grafik per Jam, (4).Grafik Harian, (5). Grafik Bulanan dan (6.) Grafik Realtime. Kode sumber untukmembuat tab menu di atas adalah seperti contoh di bawah ini.

<script language="javascript">function resubmit() {

document.form1.action="tabstasiun.php";document.form1.submit();

}

function fncSubmit(strPage){if(strPage == "datastasiun"){document.form1.action="tabstasiun.php"; }if(strPage == "datamonitoring"){document.form1.action="tabpengukuranf.php"; }if(strPage == "grafikperjam"){

document.form1.action="tabperjamf.php"; }if(strPage == "grafikharian"){

document.form1.action="tabharianf.php"; }

atas.php

bawah.htm

Petunjuk Operasional 40

if(strPage == "grafikbulanan") {document.form1.action="tabbulananf.php"; }

if(strPage == "grafikrealtime") {document.form1.action="tabrealtimef.php"; }

document.form1.submit();}

</script>

Pada frame bagian atas (atas.php) telah disediakan menu pilihan daftarstasiun monitoring yang diambil dari tabel Stasiun database onlimodb melalui DMLSQL di bawah ini. Parameter IDStasiun yang diperoleh merupakan kunci untukmenampilkan data pengukuran dengan berbagai cara penelusuran. Perubahanpilihan variabel NamaStasiun akan berakibat perubahan nilai pada variabelIDStasiun sehingga rekap data yang disediakan di setiap menu tab control akanmengikuti nilai IDStasiun.

<?phpinclude "Cgi/connect.php";$rs1 = mysql_query("select IDStasiun, NamaStasiun

from Stasiungroup by IDStasiun, NamaStasiun asc");

while($row1 = mysql_fetch_array($rs1)){$var_idsta=$row1["IDStasiun"];$var_namasta=$row1["NamaStasiun"];echo "<option value=".$var_idsta.">".$var_namasta."</option>";

}?>

3.2.1. Pilihan Menu Data Stasiun

Pada menu Data Stasiun akan ditampilkan informasi umum mengenai stasiunmonitoring. Jika menu Pilihan Stasiun dipilih atau menu Data Stasiun diklik, makasecara otomatis informasi umum mengenai stasiun tersebut akan ditampilkan olehprogram tabstasiun.php melalui DML SQL sebagai berikut :

select * from Stasiun where IDStasiun LIKE '%$idstat%' group byIDStasiun

Informasi data yang diperoleh akan ditampilkan seperti pada gambar di bawahini. Bagian kiri menampilkan foto kondisi lokasi stasiun yang dimaksud dan bagiankanan berisi informasi sebagai berikut :

ID Stasiun adalah nomor identifikasi stasiun monitoring. Nama Stasiun adalah nama stasiun monitoring. Alamat Stasiun adalah alamat lengkap lokasi stasiun monitoring. Nomor Telepon adalah nomor telepon / alamat IP di data logger. Kontak Person adalah nama penanggungjawab stasiun monitoring. Koordinat Lintang adalah posisi koordinat lintang stasiun monitoring. Koordinat Bujur adalah posisi koordinat bujur stasiun monitoring. Keterangan adalah keterangan lain tentang stasiun monitoring.

Petunjuk Operasional 41

Gambar 3.5. Halaman Web Informasi Umum Stasiun Monitoring

3.2.2. Pilihan Menu Data Pengukuran

Gambar 3.6. Halaman Web Penelusuran Waktu Data Pengukuran

Pada menu ini, data pengukuran dapat ditelusuri kembali berdasarkan pilihannama Stasiun dan Tahun pengukuran, Bulan pengukuran serta Tanggalpengukuran. Pilihan waktu ini disusun oleh program waktupengukuran.php yangmembuat rekap waktu dari tabel Pengukuran. Jika seluruh variabel (Tahun, Bulan,Tanggal) telah dipilih maka seluruh data pengukuran per jam akan ditampilkan ke

Petunjuk Operasional 42

layar monitor. Data Tahun, Bulan dan Tanggal pengukuran merupakan datasesungguhnya yang ada di dalam tabel data Pengukuran, sehingga dimungkinkansetiap stasiun memiliki pilihan data waktu pengukuran yang berbeda-beda.

Jika semua pilihan waktu pengukuran telah diisi, maka klik ikon [Cari Data]untuk menampilkan semua datanya. Program cgipengukuran.php yang merupakanmesin pencarinya akan menelusuri data menggunakan DML CGI sebagai berikut :

select `Stasiun`.`IDstasiun`,`Pengukuran`.`Tanggal`, `Pengukuran`.`Jam`from `Stasiun`, `Pengukuran`

where`Stasiun`.`IDStasiun` = `Pengukuran`.`IDStasiun` and(`Stasiun`.`IDstasiun` LIKE '%$idstat%') and(`Pengukuran`.`Tanggal` LIKE '%$tglukur%')

Data yang ditampilkan dapat dinavigasikan menggunakan ikon navigasi sebagaiberikut :

[ |<< ] : untuk menuju record data pertama. [ << ] : untuk menuju record data sebelumnya. [ >> ] : untuk menuju record data berikutnya. [ >>| ] : untuk menuju record data terakhir.

Gambar berikut adalah contoh hasil penelusuran data pengukuran untukpilihan stasiun Logger No. 1 Onlimo OSS (OSS1) dengan pilihan waktu pengukuranTahun=2012, Bulan=Juni dan Tanggal=06 (2012-06-06)

Gambar 3.7. Halaman Web Tabel Data Pengukuran

Petunjuk Operasional 43

3.2.3. Pilihan Menu Grafik Per Jam

Gambar 3.8. Halaman Web Pilihan Data Waktu Grafik Per Jam

Pada menu Grafik Per Jam akan ditampilkan analisa grafik per jam, yaitugrafik yang menampilkan data pengukuran selama satu hari pemantauan di salahsatu stasiun dengan batasan jam mulai sampai jam akhir pengukuran. Analisa grafikper jam dapat dibuat dengan memilih salah satu nama Stasiun, dengan batasan datamenggunakan Tahun pengukuran, Bulan pengukuran, Tanggal pengukuran, JamMulai dan Jam Akhir pengukuran serta Parameter kualitas air yang inginditampilkan grafiknya. Pilihan waktu ini disusun oleh program waktujaman.php yangmembuat rekap waktu per jam dari tabel Pengukuran.

Batasan waktu pengukuran per jam yang akan ditampilkan merupakan datasesungguhnya yang ada di dalam tabel data pengukuran, sehingga dimungkinkansetiap stasiun memiliki batasan waktu pengukuran per jam yang berbeda-beda.Komputer akan membuat rekap data pemantauan sebelum menampilkan pilihanwaktu pengukuran per jam, sehingga proses loading data sangat bergantung kepadabanyak data dan kecepatan processor komputer. Parameter kualitas air yang dapatdipilih adalah sebagai berikut :

Suhu / Temperatur air dalam satuan derajat selsius [oC]. TDS / Total Dissolved Substance atau kandungan zat padat terlarut dalam

satuan [gram / liter]. Conductivity / Konduktifitas atau Daya Hantar Listrik (DHL) dalam satuan

[µS / cm]. Salinity / Salinitas atau kandungan kadar garam dalam satuan [ppt]. DO / Dissolve Oxygen atau kandungan oksigen terlarut dalam satuan [mg /

liter]. pH atau kadar keasaman (asam/basa).

Petunjuk Operasional 44

Jika nama stasiun dan batasan waktu serta parameter kualitas air telah diisi,maka untuk menampilkan grafiknya, klik ikon [Gambar Grafik]. Programgrafjaman.php yang merupakan mesin pencarinya akan menelusuri datamenggunakan DML CGI berikut ini :

select Jam, $paramfrom `Stasiun`, `Pengukuran`where `Stasiun`.`IDStasiun` = `Pengukuran`.`IDStasiun`and (`Stasiun`.`IDStasiun` LIKE '$idstat')and (`Pengukuran`.`Tanggal` LIKE '$tanggal')and (`Pengukuran`.`Jam` BETWEEN '$jammulai' and '$jamakhir')order by `Pengukuran`.`Jam` asc

Gambar di bawah ini adalah contoh hasil penelusuran data pengukuran yangditampilkan dalam bentuk analisa grafik per jam. Pada bagian bawah ditampilkangrafik dan tabel data pengukuran sesuai batasan waktu yang tentukan di atas.

Gambar 3.9. Halaman Web Analisa Grafik Per Jam

Petunjuk Operasional 45

3.2.4. Pilihan Menu Grafik Harian

Pada menu Grafik Harian akan ditampilkan data pengukuran selama satubulan pemantauan di salah satu stasiun dengan batasan tanggal mulai dan tanggalakhir pengukuran. Analisa grafik harian dapat dibuat dengan memilih salah satunama Stasiun, dengan batasan data memakai Tahun pengukuran, Bulanpengukuran, dan Tanggal pengukuran, serta Parameter kualitas air yang inginditampilkan grafiknya. Pilihan batasan waktu yang diberikan disusun oleh programwaktuharian.php yang membuat rekap waktu dari tabel Pengukuran.

Gambar 3.10. Halaman Web Pilihan Data Waktu Grafik Harian

Batasan waktu pengukuran merupakan data sesungguhnya yang ada didalam tabel data pengukuran, sehingga dimungkinkan setiap stasiun memilikibatasan waktu pengukuran harian yang berbeda-beda. Komputer akan membuatrekap data pemantauan harian sebelum menampilkan pilihan waktu pengukuranhariannya, sehingga proses loading data sangat bergantung kepada banyak datadan kecepatan processor komputer. Parameter kualitas air yang dapat dipilih, yaitu :

Suhu / Temperatur air dalam satuan derajat selsius [oC]. TDS / Total Dissolved Substance atau kandungan zat padat terlarut dalam

satuan [gram / liter]. Conductivity / Konduktifitas atau Daya Hantar Listrik (DHL) dalam satuan

[µS / cm]. Salinity / Salinitas atau kandungan kadar garam dalam satuan [ppt]. DO / Dissolve Oxygen atau kandungan oksigen terlarut dalam [mg / liter]. pH atau kadar keasaman (asam/basa)

Jika nama stasiun dan batasan data serta parameter kualitas air telah diisi, klik ikon[Gambar Grafik] untuk menampilkan grafiknya. Program grafharian.php yangmerupakan mesin pencarinya akan menelusuri data menggunakan DML CGI berikutini.

Petunjuk Operasional 46

select Tanggal, monthname(Tanggal) as bulan, avg($param) as rataparamfrom `Stasiun`, `Pengukuran`where `Stasiun`.`IDStasiun` = `Pengukuran`.`IDStasiun`and (`Stasiun`.`IDStasiun` LIKE '$idstat')and (`Pengukuran`.`Tanggal` BETWEEN '$tglmulai' and '$tglakhir')group by `Pengukuran`.`Tanggal` order by `Pengukuran`.`Tanggal` asc

Gambar berikut adalah hasil penelusuran data pengukuran yang ditampilkan dalambentuk analisa grafik harian dengan tabel data pengukuran hariannya di bagianbawah window.

Gambar 3.11. Halaman Web Analisa Grafik Harian

Petunjuk Operasional 47

3.2.5. Pilihan Menu Grafik Bulanan

Menu Grafik Bulanan menampilkan analisa grafik bulanan dengan datapengukuran selama satu tahun pemantauan di salah satu stasiun dengan batasanbulan mulai dan bulan akhir pengukuran. Analisa grafik bulanan dapat dibuat denganmemilih salah satu nama Stasiun, dengan batasan data menggunakan Tahunpengukuran, Bulan Mulai, dan Bulan Akhir pengukuran, serta Parameter kualitasair yang ingin ditampilkan grafiknya. Pilihan batasan waktu ini disusun oleh programwaktubulanan.php yang membuat rekap waktu dari tabel Pengukuran.

Gambar 3.12. Halaman Web Pilihan Data Waktu Grafik Bulanan

Batasan waktu pengukuran bulanan merupakan data sesungguhnya yang adadi dalam tabel data pengukuran, sehingga dimungkinkan setiap stasiun memilikibatasan waktu pengukuran bulanan yang berbeda-beda. Komputer akan membuatrekap data pemantauan bulanan sebelum menampilkan pilihan waktu pengukuranbulannya, sehingga proses loading data sangat bergantung kepada banyak data dankecepatan processor komputer. Parameter kualitas air yang dapat dipilih, yaitu :

Suhu / Temperatur air dalam satuan derajat selsius [oC]. TDS / Total Dissolved Substance atau kandungan zat padat terlarut dalam

satuan [gram / liter]. Conductivity / Konduktifitas atau Daya Hantar Listrik (DHL) dalam satuan

[µS / cm]. Salinity / Salinitas atau kandungan kadar garam dalam satuan [ppt]. DO / Dissolve Oxygen atau kandungan oksigen terlarut dalam [mg / liter]. pH atau kadar keasaman (asam/basa)

Jika nama stasiun dan batasan data serta parameter kualitas air telah diisi, klik ikon[Gambar Grafik] untuk menampilkan grafiknya, maka program grafbulanan.phpyang merupakan program cgi / mesin pencari secara otomatis akan dijalankan DMLSQL seperti contoh di bawah ini.

Petunjuk Operasional 48

select year(Tanggal) as tahun, month(Tanggal) as angkabulan,monthname(Tanggal) as bulan, avg($param) as rataparamfrom Pengukuran where IDStasiun LIKE '$idstat'and year(Tanggal) LIKE '$tahun'and month(Tanggal) BETWEEN '$blnmulai' and '$blnakhir'group by tahun, angkabulan, bulanorder by month(Tanggal) asc

Gambar berikut adalah hasil penelusuran data pengukuran bulanan yang ditampilkandalam bentuk analisa grafik bulanan dan tabel data pengukuran bulanannya dibagian bawah window. Data yang diperoleh merupakan hasil perhitungan dari datarata-rata pengukuran per jam.

Gambar 3.13. Halaman Web Analisa Grafik Bulanan

Petunjuk Operasional 49

3.2.6. Pilihan Menu Grafik Realtime

Menu Grafik Realtime menampilkan grafik data pengukuran online danrealtime salah hari ini di salah satu stasiun pengukuran. Analisa grafik realtime dapatdibuat dengan memilih salah satu nama Stasiun dan memilih salah satu Parameterkualitas air yang ingin ditampilkan grafiknya.

Gambar 3.14. Halaman Web Pilihan Parameter Grafik Realtime

Untuk mendefinisikan waktu hari ini, perlu ditentukan local timezone denganmenggunakan kode sumber berikut :

if (function_exists('date_default_timezone_set')) {date_default_timezone_set('Asia/Jakarta');

}else {

putenv("TZ=Asia/Jakarta");}

Kemudian data diambil menggunakan kondisi waktu tersebut menggunakan DMLSQL sebagai berikut :

$tglhariini = date("Y-m-d");select Jam, $param from Pengukuranwhere IDStasiun LIKE '$idstat' and Tanggal LIKE '$tglhariini'order by Jam asc

Tampilan grafik realtime akan berubah-ubah sesuai data yang masuk setiap intervalwaktu pengukuran. Program Web broswer akan memuat ulang (refresh) tampilangrafik realtime dengan interval waktu beberapa menit. Interval waktu untuk memuatulang tampilan grafik realtime ini ditulis dalam kode sumber seperti contoh di bawahini. Dalam contoh ini waktu yang diset adalah 10 menit. Pembaruan data diperolehdengan menjalankan program script grafrealtime.php.

Petunjuk Operasional 50

header("Refresh: 10; url=grafrealtime.php?id_stasiun=".$idstat." &Parameter=".$param."");

Parameter kualitas air yang dapat dipilih adalah sebagai berikut :

Suhu / Temperatur air dalam satuan derajat selsius [oC]. TDS / Total Dissolved Substance atau kandungan zat padat terlarut dalam

satuan [gram / liter]. Conductivity / Konduktifitas atau Daya Hantar Listrik (DHL) dalam satuan

[µS / cm]. Salinity / Salinitas atau kandungan kadar garam dalam satuan [ppt]. DO / Dissolve Oxygen atau kandungan oksigen terlarut dalam satuan [mg /

liter]. pH atau kadar keasaman (asam/basa)

Jika nama stasiun dan parameter kualitas air telah dipilih, maka grafik realtime dapatditampilkan dengan mengklik ikon [Refresh Grafik] seperti gambar di bawah ini.Tabel data pengukuran realtime disajikan pada bagian bawah window.

Gambar 3.15. Halaman Web Analisa Grafik Realtime