• Tidak ada hasil yang ditemukan

BAB III PENGEMBANGAN SISTEM SOFTWARE

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB III PENGEMBANGAN SISTEM SOFTWARE"

Copied!
31
0
0

Teks penuh

(1)

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

(2)

3.1. Pengembangan Software Control Data Logger

Software control data logger berfungsi untuk melalukan pengambilan data

menggunakan perangkat multiprobe sensor yang dihubungkan ke port serial RS232C pada perangkat data logger setiap interval waktu tertentu dan dikirimkan ke

database pada komputer server. Program control data logger dikembangkan

menggunakan bahasa pemrograman GNU CPP/C++ yang merupakan aplikasi perangkat lunak sumber terbuka. Beberapa aplikasi yang diperlukan untuk melakukan pengembangan software control data logger adalah :

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

B. GNU CPP/C++ compiler untuk mengkompilasi (mengubah ke bahasa mesin program yang dikembangkan sehingga bisa diekseskusi/dijalankan. Obyek

library yang digunakan dalam proses kompilasi adalah :

 Library Glibc (GNU C Library) yang merupakan library standar pemrograman bahasa C yang dikerjakan oleh proyek GNU. Library ini merupakan library utama yang dipakai di dalam program ini. Beberapa kegunaannya di antaranya untuk membuka koneksi ke port serial, mengirim/menerima data ke/dari port serial, menulis/membaca data ke/dari file pencatatan, dan lain-lain.

 Library Libpthread untuk menjalankan beberapa tugas (thread) secara

independen dan dalam waktu yang bersamaan. Program ini menggunakan

dua 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 file pencatatan, agar hanya ada satu proses yang dapat mengaksesnya dalam satu waktu. Perlindungan ini diperlukan karena dimungkinkannya beberapa proses untuk berjalan dalam waktu bersamaan dan akses yang tidak diatur dapat menyebabkan terjadinya kekacauan dalam penulisan/pengambilan data.

 Library Libmysqlclient yang digunakan untuk berkomunikasi dengan data base server Mysql dan mencatat data yang diambil oleh sensor serta mengirimkannya ke dalam database server.

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

Program control data logger onlimo OSS dikembangkan menurut rancangan

yang telah dibahas pada sub bab disain program control data logger. Untuk mempermudah proses identifikasi pengembangan diberikan versi pada kode sumber yang telah dikembangkan dan diujicobakan secara offline. Versi mayor dengan perubahan besar diberikan dengan dua digit angka, sedangkan versi minor dengan perubahan kecil diberikan dalam tiga digit angka. Berikut ini adalah tabel versi pengembangan program control data logger dengan masing-masing perubahan fitur di dalamnya.

(3)

Tabel 3.1. Perkembangan Versi Program Control Data Logger

No. Program Versi Perubahan

1. Onlimo 1.0  Release pertama dengan fitur berupa

pengambilan data dari sensor dan

mencatatkannya ke dalam sebuah file teks.

Release kedua berisi pengurangan interval

pengambilan data ketika program sedang dalam proses persiapan.

Release ketiga berisi penambahan opsi untuk

menjalankan program sebagai background

process 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, tetapi dimasukkan ke dalam database MySQL

4. Onlimo 1.2.1 Tidak ada perubahan dari versi 1.2. Hanya disertakan satu program lagi berupa simulator. Release

selanjutnya selalu menyertakan simulator. 5. Onlimo 1.3 Tidak ada perubahan dari versi 1.2. Hanya

penambahan komentar pada source code untuk menjelaskan masing-masing fungsi.

6. Onlimo 1.4  Alamat file config bisa diubah, tidak harus berada pada 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 timer pengambilan data berakhir

9. Onlimo 1.5.2 Sebelum mengirim perintah “data<enter>”, diawali dengan 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

(4)

Program control data logger diberikan nama ‘onlimo’ singkatan dari ‘online

monitoring’ dengan versi di belakangnya, misalnya onlimo16 yang berarti program

online monitoring versi 1.6. Kode sumber setiap versinya diletakkan ke dalam sebuah

direktori yang diberi nama sama, misalnya ‘Onlimo1.6/’. Sejak versi 1.2.1, onlimo dibuat dalam dua sub versi, yaitu sub versi sesungguhnya yang diletakkan dalam direktori ‘OnlimoDataLogger/’ dan sub versi simulator yang diletakkan dalam direktori ‘OnlimoDataLogger_simulator/’.

Sub versi sesungguhnya digunakan untuk pengambilan data ke unit sensor, sedangkan sub versi simulator digunakan untuk pengambilan data tanpa sensor dengan data dummy/acak sebagai hasil pengukurannya. Prinsip kerja sub versi

simulator adalah sama dengan sub versi sesungguhnya, hanya pada saat program

tidak mendapatkan respon dari unit sensor, maka sub routine data generator di dalam program onlimo akan memberikan data secara acak sebagai data dummy hasil pengukuran. Sehingga seolah-olah program onlimo berhasil berkomunikasi dengan unit sensor.

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

root@onlimoserver[192]> cd Onlimo1.6 root@onlimoserver[193]> pwd /home/onlimo/work/program/Onlimo1.6 root@onlimoserver[194]> ls -F OnlimoDataLogger/ OnlimoDataLogger_simulator/ root@onlimoserver[195]> ls OnlimoDataLogger

ConfigHandler.cpp Makefile SerialStream.h ConfigHandler.h SensorLogger.cpp main.cpp

DbManager.cpp SensorLogger.h onlimo.conf DbManager.h SerialStream.cpp

root@onlimoserver[196]> ls OnlimoDataLogger_simulator/

ConfigHandler.cpp Makefile SerialStream.h ConfigHandler.h SensorLogger.cpp main.cpp

DbManager.cpp SensorLogger.h onlimo.conf DbManager.h SerialStream.cpp

root@onlimoserver[197]>

Pada kedua sub versi terdapat 11 file yang terdiri file definisi makefile, file

setting parameter eksekusi onlimo.conf, file kode sumber header .h dan file kode

sumber program .cpp yang merupakan kelas-kelas modul program onlimo. Berikut ini adalah 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 kode

(5)

3. onlimo.conf File konfigurasi setting parameter eksekusi onlimo 4. ConfigHandler.h

ConfigHandler.cpp

Berisi kelas untuk pembacaan data dari file

konfigurasi 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.h

DbManager.cpp

Berisi kelas untuk menangani operasi penulisan data ke dalam database MySQL server.

6. SensorLogger.h SensorLogger.cpp

Berisi kelas utama yang bertugas melakukan pengambilan data dan mencatatkannya ke dalam database.

7. SerialStream.h SerialStream.cpp

SerialStream adalah kelas yang menangani operasi

terhadap 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 hingga saat 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.oDbManager.h dan DbManager.cpp akan membentuk DbManager.o

 dan seterusnya.

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

Semua prosedur kompilasi dituliskan dalam file Makefile sedemikian rupa seperti contoh di bawah ini dan akan digunakan oleh perintah ‘make’ dalam proses kompilasi. Bagian kiri merupakan variabel parameter sedangkan bagian kanan merupakan nilai variabel tersebut. Contoh di bawah ini variabel kompilasi terdiri dari

project, CXX, CFLAGS, LDFLAGS, LIBS, all, dan clean. project = onlimo

CXX = g++

CFLAGS = -I/usr/include/mysql -I/usr/local/include/mysql LDFLAGS = -L/usr/lib/mysql -L/usr/local/lib/mysql

LIBS = -lpthread -lrt -lmysqlclient all: $(project)

clean:

rm -f ConfigHandler.o SerialStream.o DbManager.o SensorLogger.o main.o $(project)

(6)

$(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 secara manual layaknya perintah standar unix yang dituliskan di depan shell prompt dengan menempatkan beberapa opsi eksekusi di depan program onlimo tersebut. Pada versi 1.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]> ls

Makefile SerialStream.cpp onlimo.conf SensorLogger.cpp SerialStream.h SensorLogger.h main.cpp root@onlimoserver[199]> make g++ -g -c SerialStream.cpp -o SerialStream.o g++ -g -c SensorLogger.cpp -o SensorLogger.o g++ -g -c main.cpp -o main.o

g++ -g -lrt SerialStream.o SensorLogger.o main.o -o onlimo root@onlimoserver[200]> ./onlimo

Onlimo v1.0 - Program ambil data dari sensor YSI

Pemakaian: ./onlimo SERIAL BAUDRATE ID WAKTU FDATA [OPTIONS] SERIAL Nomor port serial

BAUDRATE Baudrate serial ID Nomor ID lokasi

WAKTU Interval pengambilan data dalam detik FDATA 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.txt Mempersiapkan program .... selesai.

(7)

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

 SERIAL=/dev/ttyU0

 BAUDRATE=9600

 ID=OSS1

 WAKTU=4

 FDATA=data.txt

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

root@onlimoserver[202]> ./onlimo /dev/ttyUX 9600 OSS1 4 data.txt Mempersiapkan program .... gagal.

Pengambilan data tidak bisa dilaksanakan. Program akan berhenti.

Jika pada Onlimo versi 1.0 parameter eksekusi program disertakan saat eksekusi, maka untuk mempermudah pengelolaan parameter tersebut dituliskan dalam sebuah file konfigurasi yang diberi nama onlimo.conf. File konfigurasi ini berisi opsi-opsi yang dituliskan di depan pada versi 1.0. Sehingga program onlimo dapat dijalankan tanpa memberikan opsi apapun di depannya, namun program ini akan membaca file konfigurasi onlimo.conf saat pertama kali dijalankan sebelum memulai pengukuran. Adapun format penulisan parameter setting file onlimo.conf untuk versi 1.1 adalah sebagai berikut :

comport = /dev/cuau0 # nama file communication port baudrate = 9600 # kecepatan koneksi data

idstasiun = SB1 # nomor identifikasi stasiun

twarning = 4 # interval waktu data early warning system tperiodik = 10 # interval waktu data periodik (detik) filedata = data.txt # nama file data

filelog = monitoring.log # nama file log pengoperasian

BMPH = 06,50 07,05 # batasan baku mutu pH /asam - basa BMDO = 05,00 06,00 # batasan baku mutu DO /oksigen terlarut BMSAL = 10,00 15,00 # batasan baku mutu Salinitas / kadar garam BMTEMP = 25,00 32,00 # batasan baku mutu temperatur

BMDHL = 10,00 20,00 # batasan baku mutu konduktifitas BMTDS = 10,00 15,00 # batasan baku mutu zat padat terlarut

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

(8)

Kompilasi sub versi onlimo sesungguhnya :

root@onlimoserver[203]> cd OnlimoDataLogger/ root@onlimoserver[204]> ls

DbManager.h SerialStream.cpp

ConfigHandler.cpp Makefile SerialStream.h ConfigHandler.h SensorLogger.cpp main.cpp

DbManager.cpp SensorLogger.h onlimo.conf root@onlimoserver[205]> make

g++ -I/usr/include/mysql -I/usr/local/include/mysql -Wall -g -c ConfigHandler.cpp -o ConfigHandler.o

g++ -I/usr/include/mysql -I/usr/local/include/mysql -Wall -g -c SerialStream.cpp -o SerialStream.o

g++ -I/usr/include/mysql -I/usr/local/include/mysql -Wall -g -c DbManager.cpp -o DbManager.o

g++ -I/usr/include/mysql -I/usr/local/include/mysql -Wall -g -c SensorLogger.cpp -o SensorLogger.o

g++ -I/usr/include/mysql -I/usr/local/include/mysql -Wall -g -c main.cpp -o main.o

g++ -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 onlimo

root@onlimoserver[206]> ls

ConfigHandler.cpp Makefile SerialStream.o ConfigHandler.h SensorLogger.cpp main.cpp

ConfigHandler.o SensorLogger.h main.o DbManager.cpp SensorLogger.o onlimo DbManager.h SerialStream.cpp onlimo.conf DbManager.o SerialStream.h

Kompilasi sub versi onlimo simulator :

root@onlimoserver[207]> cd OnlimoDataLogger_simulator/ root@onlimoserver[208]> ls

ConfigHandler.cpp Makefile SerialStream.h ConfigHandler.h SensorLogger.cpp main.cpp

DbManager.cpp SensorLogger.h onlimo.conf DbManager.h SerialStream.cpp

root@onlimoserver [209]> make

g++ -I/usr/include/mysql -I/usr/local/include/mysql -Wall -g -c ConfigHandler.cpp -o ConfigHandler.o

g++ -I/usr/include/mysql -I/usr/local/include/mysql -Wall -g -c SerialStream.cpp -o SerialStream.o

g++ -I/usr/include/mysql -I/usr/local/include/mysql -Wall -g -c DbManager.cpp -o DbManager.o

g++ -I/usr/include/mysql -I/usr/local/include/mysql -Wall -g -c SensorLogger.cpp -o SensorLogger.o

g++ -I/usr/include/mysql -I/usr/local/include/mysql -Wall -g -c main.cpp -o main.o

g++ -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 onlimo

root@onlimoserver[210]> ls

ConfigHandler.cpp Makefile SerialStream.o ConfigHandler.h SensorLogger.cpp main.cpp

ConfigHandler.o SensorLogger.h main.o DbManager.cpp SensorLogger.o onlimo DbManager.h SerialStream.cpp onlimo.conf DbManager.o SerialStream.h

(9)

Baik versi sesungguhnya maupun versi simulator memiliki cara pemakaian yang sama saat eksekusi, yaitu dengan menuliskan nama program onlimo saja di depan

shell prompt. Pada program onlimo versi 1.6. opsi yang perlu diberikan adalah lokasi

direktori dan nama konfigurasi file onlimo.conf.

Berikut ini adalah cara eksekusi program onlimo versi 1.6 yang telah selesai dikompilasi untuk kedua sub versi. Opsi ’--help' digunakan untuk menampilkan cara pemakaian program ini, ‘opsi –f’ digunakan agar proses program onlimo dijalankan secara foreground, sedangkan ‘opsi –v’ digunakan untuk mengaktifkan mode

verbose (tampil di layar) berkombinasi dengan opsi -f. Pada contoh ini saat program

onlimo 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/ttyU0 dengan /dev/ttyu0, program onlimo dapat dijalankan. Contoh ekskusi berikutnya adalah perintah ‘make clean’ yang merupakan perintah untuk membersihkan file proyek program control data logger onlimo dengan menghapus file-file obyek *.o dan

output program ‘onlimo’. Perintah ‘ls’ berikutnya menunjukkan daftar file dalam

direktori tersebut dengan file obyek *.o yang telah dihapus.

root@onlimoserver[211]> ./onlimo --help

Onlimo v1.6 - Program ambil data dari sensor YSI Pemakaian: ./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 directory Program tidak bisa dijalankan

Segmentation fault (core dumped) root@onlimoserver[213]> ls

ConfigHandler.cpp SensorLogger.cpp main.o

ConfigHandler.h SensorLogger.h monitoring.log ConfigHandler.o SensorLogger.o onlimo

DbManager.cpp SerialStream.cpp onlimo.conf DbManager.h SerialStream.h onlimo.core DbManager.o SerialStream.o

Makefile main.cpp

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

Mempersiapkan program .... selesai. Pengambilan data dimulai.

root@onlimoserver[216]> make clean

rm -f ConfigHandler.o SerialStream.o DbManager.o SensorLogger.o main.o onlimo

root@onlimoserver[217]> ls

DbManager.h SerialStream.cpp

ConfigHandler.cpp Makefile SerialStream.h ConfigHandler.h SensorLogger.cpp main.cpp

(10)

Jika pada versi 1.0 data hasil pengukuran dapat dilihat pada file data.txt atau pada nama file yang diberikan melalui opsi FDATA, maka pada versi 1.6 data hasil pengukuran dilihat dengan cara mengakses file database onlimo pada mysql server menggunakan perintah SQL ‘select’ yang akan dijelaskan pada sub bab pengembangan software database online monitoring. Selain itu beberapa utilitas untuk memeriksa data yang telah masuk dapat dibuatkan program shell script yang di dalamnya didefinisikan Data Manipulation Language (DML) dalam perintah SQL seperti 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 Parameter

ID=$1 # masukan/input IDStasiun user="root" # user name akses database db="onlimodb" # nama database

server="192.168.0.100" # alamat IP Server MySQL

limit="20" # jumlah baris data yang tampil ke layar wait="30" # intarval waktu refresh ke layar dalam detik # Cara pemakaian

if [ $# = 0 ]; then echo ""

echo "Pemakaian : `basename $0` [ IDStasiun ]" echo ""

echo " Contoh : `basename $0` OSS1" echo " `basename $0` OSS2" echo "" exit 1 fi # Eksekusi DML while [ TRUE ]; do clear

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

# Susuan query DML SQL

query=" select IDStasiun, Tanggal, Jam, Suhu, TDS, DO, PH, EWS_PER from Pengukuran

where IDStasiun='$ID'

and Tanggal='$tgl' #and EWS_PER='PER' (ambil data PER saja) order by Jam desc

limit $limit " # Eksekusi query

mysql -u "$user" -h "$server" "$db" -e "$query" sleep $wait

done

Program shell script cekquery.sh di atas dapat dieksekusi dengan cara “cekquery.sh

OSS1”, dimana OSS1 adalah nomor identifikasi stasiun/data logger yang akan diambil datanya. Gambar berikut ini adalah tampilan layar monitor pada data logger setelah beberapa saat program cekquery.sh tersebut dijalankan.

(11)

Gambar 3.2. Tampilan Data Terkini Menggunakan Program cekquery.sh Pengembangan software control data logger saat ini telah dikembangkan ke arah penggunaan yang semakin mudah. Pada versi akhir pengembangan software

control data logger diharapkan diperoleh program onlimo versi 2.0 yang memberikan

tampilan menu pada layar console. Jika pada versi sebelumnya proses pengukuran yang dilakukan oleh program onlimo tidak terlihat tanpa melakukan pemeriksaan ke

server database, maka pada versi 2.0 ini proses pengukuran akan dapat langsung

terlihat pada data logger saat monitor dipasang, sehingga pengguna dapat mengetahui dengan segera status pengukuran yang dilakukan oleh data logger.

(12)

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

Melalui tampilan console screen ini, pengguna dapat langsung mengetahui ID

data logger yang digunakan dan beberapa informasi penting lainnya seperti nama file

pencatatan proses monitoring, setting komunikasi sensor, setting interval waktu pengukuran, setting database mysql dan baku mutu parameter ukur. Status beberapa record data pengukuran yang terakhir juga akan ditampilkan di bagian bawah layar ini.

Counter yang menghitung mundur waktu di bagian bawah layar dapat

menunjukkan sisa waktu yang dibutuhkan oleh data logger untuk berkomunikasi dengan unit sensor dalam melakukan pengukuran data kualitas air. Proses penyimpanan perubahan setting dilakukan dengan menekan menu ‘Save’, proses memulai 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 seperti pada daftar file di bawah ini.

File kode sumber onlimo versi 2.0 sesungguhnya :

root@onlimologger1[218]> pwd

/home/onlimo/work/program/Onlimo2.0/OnlimoDataLogger root@onlimologger1[219]> ls -F

ConfigHandler.cpp GUI.h PrintHandler.h main.cpp ConfigHandler.h GUILib/ SensorLogger.cpp

onlimo.conf

DbManager.cpp LoggerEventListener.h SensorLogger.h DbManager.h Makefile SerialStream.cpp GUI.cpp PrintHandler.cpp SerialStream.h root@onlimologger1[220]> ls -F GUILib/

Button.cpp GridLayout.h Table.h Widget.h Button.h Label.cpp TextEdit.cpp

ButtonEventListener.h Label.h TextEdit.h GridLayout.cpp Table.cpp Widget.cpp root@onlimologger1[221]>

File kode sumber onlimo simulator :

root@onlimologger1[222]> pwd

/home/onlimo/work/program/Onlimo2.0/OnlimoDataLogger_simulator root@onlimologger1[223]> ls -F

ConfigHandler.cpp GUI.h PrintHandler.h main.cpp ConfigHandler.h GUILib/ SensorLogger.cpp

onlimo.conf

DbManager.cpp LoggerEventListener.h SensorLogger.h DbManager.h Makefile SerialStream.cpp GUI.cpp PrintHandler.cpp SerialStream.h root@onlimologger1[224]> ls -F GUILib/

Button.cpp GridLayout.h Table.h Widget.h Button.h Label.cpp TextEdit.cpp

ButtonEventListener.h Label.h TextEdit.h GridLayout.cpp Table.cpp Widget.cpp root@onlimologger1[225]>

(13)

3.2. Pengembangan Software Database Online Monitoring

Software database monitoring digunakan untuk melakukan pengelolaan data

pengukuran kualitas air yang diambil dan dikirimkan oleh program control data logger ke pusat data / komputer server. Perangkat lunak ini dikembangkan berbasis web menggunakan bahasa pemrograman yang juga merupakan perangkat lunak berbasis sumber terbuka (OSS). Beberapa bahasa pemrograman yang digunakan dalam mengembangkan software database monitoring adalah sebagai berikut :

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

PHP (Hypertext Preprocessor) yang merupakan bahasa pemrograman untuk membuat dokumen hypertext juga, namun memiliki fitur yang lebih untuk dapat diintegrasikkan dengan modul pemrograman lainnya seperti konektifitas ke database maupun ke program java server. Kode sumber pemrograman 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 mendukung untuk pembuatan dokumen hypertext yang lebih maju / canggih. Berbeda dengan java applet, pemrograman java script tidak perlu dikompilasi. Kode sumber pemrograman dengan bahasa java script dituliskan di antara kedua

tag <javascript> ... </javascript> dan file yang berisi kode sumber ini diberi

ekstensi .java atau dapat berada di dalam file program php.

Standard Query Language (SQL) yang merupakan bahasa standar untuk mengakses data yang berada di dalam sistem database melalui database

server MySQL. Kode sumber pemrograman SQL ini biasanya berada di dalam

kode sumber php.

Agar dapat bekerja sesuai dengan rancangan yang diinginkan, software

database monitoring ini memerlukan beberapa perangkat lunak pendukung, di

antaranya adalah :

Web server yang berfungsi sebagai penyedia layanan web melalui program apache httpd server.

Database server yang berfungsi sebagai penyedia layanan database melalui program mysql server.

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

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

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

(14)

Software database online monitoring dikembangkan untuk mengelola data

pengukuran dalam sebuah file database ‘onlimodb’. Rancangan detail database onlimodb ini telah dijelaskan pada bab sebelumnya dimana terdiri dari dua tabel data, yaitu :

1. Tabel Stasiun untuk mengelola informasi data stasiun monitoring yang terdiri 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 kualitas air 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 bahasa pemrograman Standar Query Language (SQ) melalui program mysql client yang telah diinstalasikan pada komputer server. Mysql pada sistem operasi unix seperti freebsd dan ubuntu menggunakan penamaan file database dan tabel data yang ‘case sensitive’ artinya membedakan antara huruf besar dan huruf kecil. Misalnya

database 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-nama tabel data dalam pembuatan kode sumber untuk mengakses database tersebut.

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

(15)

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 mysql akan membuat beberapa file untuk keperluan akses ke dalam database onlimodb. File-file tersebut disimpan di dalam direktori /var/db/mysql/onlimodb di dalam komputer server. Berikut ini adalah daftar file yang ada di dalam direktori tersebut.

root@onlimoserver[227]> ls /var/db/mysql/

ib_logfile0 mysql test

ib_logfile1 onlimodb zenbook.err

ibdata1 performance_schema zenbook.pid

root@onlimoserver[228]> ls /var/db/mysql/onlimodb/

Pengukuran.frm Stasiun.frm db.opt

Database onlimodb dan kedua tabel di dalamnya yang telah dibuat menggunakan DDL SQL dapat diakses menggunakan DML (Data Manipulation

Language) SQL seperti contoh-contoh di bawah ini. Contoh berikut adalah program mysql client ketika dijalankan di depan shell prompt pada sistem operasi PC Unix.

Perintah SQL ‘show database’ di depan prompt ‘mysql>’ akan menampilkan file

database yang dikelola oleh database server mysql. Dalam contoh di bawah ini database onlimodb yang tercetak tebal terdapat di dalamnya.

(16)

root@onlimoserver[229]> mysql

Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1

Server 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 its affiliates. Other names may be trademarks of their respective owners.

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

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 bawah

ini 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 names You 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 di bawah ini adalah DML ‘describe Stasiun’ dan ‘describe Pengukuran’ untuk melihat struktur tabel data Stasiun dan Pengukuran. Dalam contoh di bawah ini ditampilkan nama-nama field data, tipe data, kategori field data, dan nilai default data pada setiap tabel data. Di bagian akhir eksekusi DML nya diinformasikan waktu yang dibutuhkan oleh program mysql client dalam melakukan query atau permintaan informasi data pada mysql server dalam satuan detik (sec).

(17)

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 onlimo dikembangkan sesuai rancangan berbasis web yang telah dibahas dalam bab sebelumnya. Kode sumber yang dikembangkan terdiri dari beberapa file yang diletakkan di dalam sebuah direktori www atau htdocs. Pada komputer server yang telah diinstalasikan sistem operasi FreeBSD perlu didaftarkan pengguna/user dengan login name ‘onlimo’. Direktori software database online monitoring ini diletakkan di dalam home directory user tersebut (/home/onlimo/www). Berikut ini adalah lokasi instalasi direktori software database monitoring di dalam komputer

server.

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

root@onlimoserver[231]> ls -F

Cgi/ tabbulananf.php tabperjama.php

Images/ tabhariana.php tabperjamb.htm atas.php tabharianb.htm tabperjamf.php bawah.htm tabharianf.php tabrealtimea.php index.html tabpengukurana.php tabrealtimeb.htm tabbulanana.php tabpengukuranb.htm tabrealtimef.php tabbulananb.htm tabpengukuranf.php tabstasiun.php

(18)

root@onlimoserver[232]> ls -F Cgi/

Jqplot/ grafbulanan.php waktubulanan.php cgipengukuran.php grafharian.php waktuharian.php cgistasiun.php grafjaman.php waktujaman.php connect.php grafrealtime.php waktupengukuran.php root@onlimoserver[233]> -F Cgi/Jqplot/

MIT-LICENSE.txt gpl-2.0.txt jquery.js README.txt jqPlotCssStyling.txt jquery.min.js

changes.txt jqPlotOptions.txt optionsTutorial.txt copyright.txt jquery.jqplot.css plugins/

examples.min.css jquery.jqplot.js syntaxhighlighter/ excanvas.js jquery.jqplot.min.css usage.txt

excanvas.min.js jquery.jqplot.min.js root@onlimoserver[234]> ls -F Images/

bin1.jpg nofoto.jpg sb1.jpg

fotosb1.jpg onlimo.jpg sb2.JPG

grafbulanan.jpg onlimohwsw.jpg ser.jpg

grafharian.jpg oss1.jpg sigi1.JPG

grafperjam.jpg oss2.jpg sigi2.JPG

grafrealtime.jpg oss3.jpg sigi3.JPG

home.jpg pdam.jpg tabeldata.jpg

man1.jpg pdam1.jpg

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

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

Direktori Images/ digunakan untuk menyimpan fille-file gambar / foto yang diperlukan 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 untuk

frame bagian atasnya sedangkan tabbulananb.htm adalah kode sumber

untuk frame bagian bawahnya.

File tabharianf.php adalah kode sumber frame utama untuk tab menu analisa grafik harian, file tabhariana.php adalah kode sumber untuk frame bagian atasnya sedangkan tabharianb.htm adalah kode sumber untuk

frame bagian bawahnya.

File tabpengukuranf.php adalah kode sumber frame utama untuk tab menu data pengukuran, file tabpengukurana.php adalah kode sumber untuk

frame bagian atasnya sedangkan tabpengukuranb.htm adalah kode

sumber untuk frame bagian bawahnya.

File tabperjamf.php adalah kode sumber frame utama untuk tab menu analisa grafik per jam, file tabperjama.php adalah kode sumber untuk frame bagian atasnya sedangkan tabperjamb.htm adalah kode sumber untuk

(19)

File tabrealtimef.php adalah kode sumber frame utama untuk tab menu grafik realtime, file tabrealtimea.php adalah kode sumber untuk frame bagian atasnya sedangkan tabrealtimeb.htm adalah kode sumber untuk

frame bagian bawahnya.

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

monitoring.

Di dalam direktori Cgi/ terdapat direktori Jqplot/ dan beberapa file untuk mengakses ke database dan membuat beberapa grafik yang merupakan Common

Gateway Interface (CGI) bagi aplikasi ini. Fungsi masing-masing direktori dan file

kode sumbernya adalah sebagai berikut :

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

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

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

File connect.php adalah kode sumber umum yang digunakan untuk menyambungkan ke database onlimo di dalam server. File ini dilink oleh hampir semua file .php dalam aplikasi ini.

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

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

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

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

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

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

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

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

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

Berikut ini adalah isi kode sumber file index.html yang merupakan kode sumber frame utama software database monitoring dan gambar tampilan halaman

(20)

<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 tab menu, yaitu (1). DataStasiun, (2). Data Pengukuran, (3). Grafik per Jam, (4). Grafik Harian, (5). Grafik Bulanan dan (6.) Grafik Realtime. Kode sumber untuk membuat 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

(21)

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 daftar stasiun monitoring yang diambil dari tabel Stasiun database onlimodb melalui DML SQL di bawah ini. Parameter IDStasiun yang diperoleh merupakan kunci untuk menampilkan data pengukuran dengan berbagai cara penelusuran. Perubahan pilihan variabel NamaStasiun akan berakibat perubahan nilai pada variabel IDStasiun sehingga rekap data yang disediakan di setiap menu tab control akan mengikuti nilai IDStasiun.

<?php

include "Cgi/connect.php";

$rs1 = mysql_query("select IDStasiun, NamaStasiun from Stasiun

group 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 stasiun monitoring. Jika menu Pilihan Stasiun dipilih atau menu Data Stasiun diklik, maka secara otomatis informasi umum mengenai stasiun tersebut akan ditampilkan oleh program tabstasiun.php melalui DML SQL sebagai berikut :

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

Informasi data yang diperoleh akan ditampilkan seperti pada gambar di bawah ini. Bagian kiri menampilkan foto kondisi lokasi stasiun yang dimaksud dan bagian kanan 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.

(22)

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 pilihan nama Stasiun dan Tahun pengukuran, Bulan pengukuran serta Tanggal pengukuran. Pilihan waktu ini disusun oleh program waktupengukuran.php yang membuat rekap waktu dari tabel Pengukuran. Jika seluruh variabel (Tahun, Bulan, Tanggal) telah dipilih maka seluruh data pengukuran per jam akan ditampilkan ke

(23)

layar monitor. Data Tahun, Bulan dan Tanggal pengukuran merupakan data sesungguhnya yang ada di dalam tabel data Pengukuran, sehingga dimungkinkan setiap 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 merupakan mesin 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 sebagai berikut :

[ |<< ] :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 untuk pilihan stasiun Logger No. 1 Onlimo OSS (OSS1) dengan pilihan waktu pengukuran Tahun=2012, Bulan=Juni dan Tanggal=06 (2012-06-06)

(24)

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, yaitu grafik yang menampilkan data pengukuran selama satu hari pemantauan di salah satu stasiun dengan batasan jam mulai sampai jam akhir pengukuran. Analisa grafik per jam dapat dibuat dengan memilih salah satu nama Stasiun, dengan batasan data menggunakan Tahun pengukuran, Bulan pengukuran, Tanggal pengukuran, Jam Mulai dan Jam Akhir pengukuran serta Parameter kualitas air yang ingin ditampilkan grafiknya. Pilihan waktu ini disusun oleh program waktujaman.php yang membuat rekap waktu per jam dari tabel Pengukuran.

Batasan waktu pengukuran per jam yang akan ditampilkan merupakan data sesungguhnya yang ada di dalam tabel data pengukuran, sehingga dimungkinkan setiap stasiun memiliki batasan waktu pengukuran per jam yang berbeda-beda. Komputer akan membuat rekap data pemantauan sebelum menampilkan pilihan waktu pengukuran per jam, sehingga proses loading data sangat bergantung kepada banyak data dan kecepatan processor komputer. 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].

(25)

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

select Jam, $param

from `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 yang ditampilkan dalam bentuk analisa grafik per jam. Pada bagian bawah ditampilkan grafik dan tabel data pengukuran sesuai batasan waktu yang tentukan di atas.

(26)

3.2.4. Pilihan Menu Grafik Harian

Pada menu Grafik Harian akan ditampilkan data pengukuran selama satu bulan pemantauan di salah satu stasiun dengan batasan tanggal mulai dan tanggal akhir pengukuran. Analisa grafik harian dapat dibuat dengan memilih salah satu nama Stasiun, dengan batasan data memakai Tahun pengukuran, Bulan pengukuran, dan Tanggal pengukuran, serta Parameter kualitas air yang ingin ditampilkan grafiknya. Pilihan batasan waktu yang diberikan disusun oleh program waktuharian.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 di dalam tabel data pengukuran, sehingga dimungkinkan setiap stasiun memiliki batasan waktu pengukuran harian yang berbeda-beda. Komputer akan membuat rekap data pemantauan harian sebelum menampilkan pilihan waktu pengukuran hariannya, sehingga proses loading data sangat bergantung kepada banyak data dan 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 yang merupakan mesin pencarinya akan menelusuri data menggunakan DML CGI berikut ini.

(27)

select Tanggal, monthname(Tanggal) as bulan, avg($param) as rataparam from `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 dalam bentuk analisa grafik harian dengan tabel data pengukuran hariannya di bagian bawah window.

(28)

3.2.5. Pilihan Menu Grafik Bulanan

Menu Grafik Bulanan menampilkan analisa grafik bulanan dengan data pengukuran selama satu tahun pemantauan di salah satu stasiun dengan batasan bulan mulai dan bulan akhir pengukuran. Analisa grafik bulanan dapat dibuat dengan memilih salah satu nama Stasiun, dengan batasan data menggunakan Tahun pengukuran, Bulan Mulai, dan Bulan Akhir pengukuran, serta Parameter kualitas air yang ingin ditampilkan grafiknya. Pilihan batasan waktu ini disusun oleh program waktubulanan.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 ada di dalam tabel data pengukuran, sehingga dimungkinkan setiap stasiun memiliki batasan waktu pengukuran bulanan yang berbeda-beda. Komputer akan membuat rekap data pemantauan bulanan sebelum menampilkan pilihan waktu pengukuran bulannya, sehingga proses loading data sangat bergantung kepada banyak data dan 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, maka program grafbulanan.php yang merupakan program cgi / mesin pencari secara otomatis akan dijalankan DML SQL seperti contoh di bawah ini.

(29)

select year(Tanggal) as tahun, month(Tanggal) as angkabulan, monthname(Tanggal) as bulan, avg($param) as rataparam

from Pengukuran where IDStasiun LIKE '$idstat' and year(Tanggal) LIKE '$tahun'

and month(Tanggal) BETWEEN '$blnmulai' and '$blnakhir' group by tahun, angkabulan, bulan

order by month(Tanggal) asc

Gambar berikut adalah hasil penelusuran data pengukuran bulanan yang ditampilkan dalam bentuk analisa grafik bulanan dan tabel data pengukuran bulanannya di bagian bawah window. Data yang diperoleh merupakan hasil perhitungan dari data rata-rata pengukuran per jam.

(30)

3.2.6. Pilihan Menu Grafik Realtime

Menu Grafik Realtime menampilkan grafik data pengukuran online dan

realtime salah hari ini di salah satu stasiun pengukuran. Analisa grafik realtime dapat

dibuat dengan memilih salah satu nama Stasiun dan memilih salah satu Parameter kualitas air yang ingin ditampilkan grafiknya.

Gambar 3.14. Halaman Web Pilihan Parameter Grafik Realtime

Untuk mendefinisikan waktu hari ini, perlu ditentukan local timezone dengan menggunakan 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 DML SQL sebagai berikut :

$tglhariini = date("Y-m-d");

select Jam, $param from Pengukuran

where IDStasiun LIKE '$idstat' and Tanggal LIKE '$tglhariini' order by Jam asc

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

(31)

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 dapat ditampilkan dengan mengklik ikon [Refresh Grafik] seperti gambar di bawah ini. Tabel data pengukuran realtime disajikan pada bagian bawah window.

Gambar

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.
Tabel 3.1. Perkembangan Versi Program Control Data Logger
Tabel 3.2. Daftar File Yang Dibuat Untuk Onlimo Versi 1.6
Gambar 3.2. Tampilan Data Terkini Menggunakan Program cekquery.sh Pengembangan software  control  data  logger saat  ini  telah  dikembangkan  ke arah  penggunaan  yang  semakin  mudah
+7

Referensi

Dokumen terkait

3.2.3 Bagan Berjenjang Sistem Pengukuran Kualitas Layanan Proses Otentifikasi User Maintenance Data Master Maintenance Data User Maintenance Data Atribut Proses Analisa

Tabel Pengguna digunakan untuk menyimpan data Pengguna Pembangunan Perumahan selengkapnya mengenai struktur tabel ini dapat dilihat pada tabel III.7 di bawah ini :.

Data dapat diperoleh dari file pengeluaran obat dan file persediaan obat masuk, laporan disimpan kedalam laporan gudang dan dicetak 1 (satu) rangkap untuk diberikan

Data dapat disimpan, dengan langkah sebagai berikut. 1) Dari menu utama SPSS, pilih menu File – Save As. 2) Berikan nama file untuk keseragaman dan berikan nama Normalitas

pertanyaan yang diberikan, tombol Browse pada sisi gambar berfungsi untuk memilih file gambar yang akan ditampilkan yang berasal dari folder dimana file gambar

1. Data .txt tersebut diimport ke software Geopsy dengan cara membuka software Geopsy, lalu pada toolbar File, klik Import dan pilih data-datanya. Nama komponen dan frekuensi

Bentuk gelombang arus di prototipe pada data SinyalArus6.txt hasil pengukuran beban linier 275 Watt. Gambar 4.4 Bentuk gelombang arus hasil pengukuran

16 Gambar 3.2 Alur proses dekripsi yakni dengan menginputan citra, dengan menginputkan nama file dan ektensi file dalam aplikasi dekripsi, Citra akan dirotasi sesuai key