Departemen Ilmu Komputer
HASIL DAN PEMBAHASAN Perangkat lunak yang akan dikembangkan
1.2 Data Viewer
Perencanaan dan Analisis 1.2.1
Salah satu fungsi Watch Tower adalah
kapan data diterima, kemudian menyimpannya pada database MySQL (membuat log kejadian). Data Viewer bertugas untuk memvisualisasikan record pada MySQL dalam bentuk grafik.
Data Viewer dibuat dalam bentuk website. Grafik yang tersedia terdiri atas grafik harian, bulanan, dan tahunan. Masing-masing grafik memiliki dua kategori, yaitu grafik lamanya pemadaman listrik (dalam menit) dan grafik frekuensi mati listrik. Dari bentuk visualisasi grafik ini diharapkan dapat memudahkan dalam membaca data log atau data kejadian yang telah diterima Watch Tower.
Default controller untuk Data Viewer adalah kelas loader. Default controller adalah controller yang akan menangangi request ketika administrator mengetikkan URL Data Viewer pada browser. Default controller dapat juga dikatakan sebagai home page (dari Data Viewer).
Data Viewer akan menyimpan cookies pada browser pengguna. Cookies ini menyimpan informasi mengenai preferensi untuk Data Viewer. Preferensi pada Data Viewer pada dasarnya mengatur tentang:
grafik apa saja yang akan ditampilkan data tanggal berapa yang digunakan untuk menampilkan grafik pada poin di atas. Pada saat mengakses Data Viewer, tampilannya akan selalu disesuaikan dengan preferensi yang telah dipilih oleh pengguna. Oleh karena itu, dibutuhkan suatu kelas controller yang akan selalu memastikan bahwa preferensi tersebut selalu dipakai. Kelas controller yang akan menangani hal ini adalah kelas My_Controller.
Sebagaimana yang telah dijelaskan pada default controller, kelas loader merupakan home page dari Data Viewer. Supaya preferensi pengguna dapat diaplikasikan pada home page, maka diaturlah agar kelas loader dapat memakai fungsi-fungsi dari kelas My_Controller. Oleh karena itu, dibuatlah kelas loader sebagai turunan dari kelas My_Controller.
Pada home page, terdapat enam check box dari berbagai macam visualisasi dalam bentuk grafik (grafik mingguan, bulanan, dan tahunan, dan untuk masing-masing grafik terdiri atas grafik lama mati dan grafik frekuensi). Untuk menangani grafik-grafik ini akan dibuat tiga controller (weekly, monthly, yearly), sedangkan untuk jenis grafik lama mati dan grafik frekuensi akan diimplementasikan sebagai fungsi (method) dari tiga controller tadi.
Tiga controller untuk grafik tersebut memiliki beberapa kesamaan fungsi dan kesamaan properti/atribut. Oleh karena itu, dibutuhkan suatu generalisasi dan dibuatlah kelas abstrak Visualization. Jadi, tiga controller untuk menangangi grafik tersebut merupakan turunan dari kelas Visualization.
Grafik-grafik ini dibuat dengan menggunakan library JpGraph. Oleh karena itu, kelas JpGraph akan menjadi bagian (agregasi) dari kelas Visualization.
Gambar 13 Domain model awal untuk Data Viewer.
Berdasarkan penjelasan sebelumnya, maka domain model awal untuk Data Viewer
ditunjukkan oleh Gambar 13. Use cases untuk Data Viewer dijelaskan oleh Gambar 14.
Gambar 14 Use cases untuk Data Viewer. Berdasarkan use case untuk Data Viewer pada Gambar 11 maka dibuatlah release plan sesuai dengan Tabel 5.
Tabel 5 Release plan untuk Data Viewer Release Kode Use Cases
1 DV-01 Melihat lama mati
mingguan DV-02 Melihat frekuensi
mati mingguan
2 DV-03 Melihat lama mati
bulanan
DV-04 Melihat frekuensi mati bulanan DV-05 Melihat lama mati
tahunan
DV-06 Melihat frekuensi mati tahunan
3 DV-07 Mengatur tampilan
Desain 1.2.2
1.2.2.1 Lingkungan Pengembangan
Data Viewer dikembangkan pada lingkungan perangkat keras yang sama dengan Watch Tower. Hal ini dijelaskan oleh subbab 1.1.2.1.
Lingkungan perangkat lunak yang digunakan untuk pengembangan Data Viewer adalah sebagai berikut:
1. sistem operasi Microsoft® Windows 7 Ultimate Service Pack 1
2. XAMPP 1.7.1 yang berisi Apache HTTPD 2.2.11, MySQL 5.1.33, PHP 5.2.9, dan phpMyAdmin 3.1.3.1.
3. framework CodeIgniter 1.7.1
4. PHP graph plotting library JpGraph 2.3.4 5. Library and command line utility for mobile
phones Gammu 1.24.0 6. browser Mozilla Firefox 5.
1.2.2.2 Use Case: Melihat Lama Mati Mingguan
Use case untuk melihat lama mati mingguan dideskripsikan oleh Tabel 6.
Tabel 6 Use case melihat lama mati mingguan Penjelasan
Aktor Administrator
Tujuan Menampilkan grafik mingguan untuk kategori lama mati listrik Pre-
condition
Administrator berada pada home page Data Viewer
Deskripsi Administrator memberikan tanda centang pada pilihan weekly time Post-
condition
Tampilan grafik lama mati mingguan ditambahkan pada home page
Berdasarkan deskripsi use case pada Tabel 6, maka robustness diagram untuk melihat lama mati mingguan ditunjukkan oleh Gambar 15.
Administrator home page
log showing weekly time graph
put a tick on weekly time
graph
prepare chart of amount of time
make chart using JpGraph
display chart
datetime
format to weekly
Gambar 15 Diagram robustness untuk melihat lama mati mingguan.
Diagram sequence untuk use case melihat lama mati mingguan dapat dilihat pada Lampiran 3.
1.2.2.3 Use Case: Melihat Frekuensi Mati Mingguan
Use case untuk melihat frekuensi mati mingguan dideskripsikan oleh Tabel 7.
Tabel 7 Use case melihat frekuensi mati mingguan
Penjelasan Aktor Administrator
Tujuan Menampilkan grafik mingguan untuk kategori frekuensi mati listrik
Pre- condition
Administrator berada pada home page Data Viewer
Deskripsi Administrator memberikan tanda centang pada pilihan weekly frequent
Post- condition
Tampilan grafik frekuensi mati mingguan ditambahkan pada home page
Dari deskripsi use case pada Tabel 7 maka robustness diagram untuk melihat frekuensi mati mingguan ditunjukkan oleh Gambar 16.
Administrator home page
log showing weekly frequent graph
put a tick on weekly frequent
graph
prepare chart of frequent
make chart using JpGraph
display chart
datetime
format to weekly
Gambar 16 Diagram robustness untuk melihat frekuensi mati mingguan.
Diagram sequence untuk use case frekuensi mati mingguan dapat dilihat pada Lampiran 4.
Implementasi 1.2.3
1.2.3.1 Melihat Lama Mati Mingguan Berdasarkan Tabel 6 dan penjelasan pada subbab 1.2.1, maka administrator harus memberikan tanda centang pada check box weekly time untuk menampilkan grafik lama mati mingguan. Check box tersebut terdapat pada home page Data Viewer.
Home page ditangani oleh kelas loader. loader merupakan turunan dari My_Controller. Maka kelas My_Controller akan dieksekusi pertama kali. Proses untuk menampilkan home page diterangkan oleh diagram sequence pada Lampiran 2. Jika ini adalah untuk pertama kalinya administrator mengakses Data Viewer, maka Data Viewer akan menggunakan preferensi standar. Jika bukan, maka Data Viewer akan membaca cookies pada browser, dan menggunakannya sebagai preferensi.
Fungsi index() pada kelas loader akan dijalankan pada saat controller loader dipanggil. Fungsi index() ini melakukan pengecekan pada salah satu cookies, jika cookies dianggap tidak valid maka pengguna diberikan cookies/preferensi standar. Jika valid maka pengguna langsung diberikan home page seperti yang terlihat pada Gambar 17.
Setelah pengguna memperoleh home page, pengguna harus memberikan tanda centang pada weekly time pada menu Live Control yang berada disebelah kanan home page. Setelah dicentang maka browser akan melakukan proses AJAX untuk memanggil controller dari weekly time, yaitu kelas controller weekly.
Fungsi pada kelas controller weekly yang menangani weekly time adalah count_second(). Kelas controller weekly sendiri merupakan turunan dari kelas abstrak Visualization. Fungsi count_second() akan membuat grafik
dengan memanggil fungsi
create_visualization(). Jenis grafik yang akan
dibuat ditentukan dengan memanggil fungsi get_visual_type() dan menjadikannya sebagai parameter pada fungsi create_visualization(). get_visual_type() akan membaca cookies mengenai tipe grafik apa yang telah dipilih oleh pengguna (grafik garis atau grafik batang).
create_visualization() membuat grafik menggunakan JpGraph. Data yang akan divisualisasikan diperoleh dari model Graph_weekly. Data yang dipakai oleh model Graph_weekly berasal dari tabel log pada database. Grafik melihat lama mati mingguan yang dihasilkan dapat dilihat pada Gambar 18.
Gambar 18 Grafik lama mati mingguan dalam bentuk garis (atas) dan batang (bawah).
1.2.3.2 Melihat Frekuensi Mati Mingguan Implementasi dari use case ini tidak jauh berbeda dari use case melihat lama mati mingguan seperti yang telah dijelaskan sebelumnya. Fungsi count_second() sebelumnya akan digantikan oleh fungsi count_frequent(). Kedua fungsi tersebut sama-
sama menggunakan model Graph_weekly. Perbedaannya terletak pada fungsi mana dari Graph_weekly yang dipanggil oleh masing- masing fungsi (dapat dilihat pada Lampiran 3 dan Lampiran 4). Hasil implementasi dari grafik melihat frekuensi mati mingguan dapat dilihat pada Gambar 19.
Gambar 19 Grafik frekuensi mati mingguan dalam bentuk garis (atas) dan batang (bawah).
2 Iterasi Kedua