BAB IV PENGEMBANGAN DAN IMPLEMENTASI
Pada bagian ini akan dibahas mengenai pembuatan dan implementasi sistem berdasarkan hasil perancangan yang telah ditetapkan pada bab sebelumnya. Implementasi sistem meliputi
lingkungan
pengembangan,
implementasi
sub
sistem
masukan
data,
implementasi sub sistem rekapitulasi data, dan implementasi modul-modul pendukung aplikasi.
4.1 Lingkungan Implementasi Aplikasi yang dibangun dikembangkan pada lingkungan perangkat keras (hardware) dan perangkat lunak (software) sebagai berikut:
4.1.1 Perangkat Keras 1. Komputer (PC) Spesifikasi komputer yang digunakan dalam tugas akhir ini adalah sebagai berikut:
Processor Intel Pentium AMD DURON 3 Ghz
Memori primer (RAM) 512 MB
Hardisk 30 GB
VGA Card 128 MB
Ethernet 10/100 Mbps
2. PDA HP IPAQ Spesifikasi komputer yang digunakan dalam tugas akhir ini adalah sebagai berikut:
Prosesor OMAPTM 1510, 200 MHz
Memori primer (RAM) 64MB SDRAM
Memori 64MB Flash ROM
Wireless LAN 802.11b
68
3. Wireless Access Point Spesifikasi wireless access point yang digunakan dalam tugas akhir ini adalah sebagai berikut:
Belkin Wireless G Router LAN 802.11g
25 dBi power output
4.1.2 Perangkat Lunak Perangkat-perangkat lunak yang digunakan dalam implementasi aplikasi ini adalah sebagai berikut:
Visual Studio 2005 Professional
MySQL 3.23.52
MyODBC-3.51.11-2-win
MySQL-Front
4.2 Pembuatan Aplikasi Mobile Device Untuk pembuatan aplikasi mobile device sebagai sub sistem masukan data dan sub sistem rekapitulasi data diperlukan software Visual Studio 2005 untuk pengkodean aplikasi tersebut..Setelah editor terbuka maka dibuat form-form. Beberapa form yang dibuat adalah: Tabel 4.1 Tabel Form Aplikasi Nama Form/Class Home
Keterangan Form yang berisi pilihan untuk menuju form outage,
operasi,
rekapitulasi,
reliability
dan
maintenance. InsertCircuit
Berisi formulir untuk mengisi data outage sirkuit.
InsertMaintenance
Berisi formulir untuk mengisi data maintenance
InsertReliability
Berisi formulir untuk mengisi data waktu fail dan repair trafo, circuit dan CB.
InsertOperationPenghantar Berisi
formulir
penghantar
69
untuk
mengisi
data
operasi
InsertOperationTrafo
Berisi formulir untuk mengisi data operasi trafo
InsertTrafo
Berisi formulir untuk mengisi data outage trafo
Login
Berisi formulir untuk login pada aplikasi ini.
Maintenance
Form untuk memilih gardu induk untuk masuk pada form insertmaintenance
Operaton
Form untuk memilih gardu induk untuk masuk pada form InsertOperation
Outage
Form untuk memilih gardu induk untuk masuk pada form InsertOutage
ProsesReliability
Form berisi rekapitulasi reliability bay gardu induk
RecapCircuitOutages
Form berisi reakpitulasi outage sirkuit
Recapitulation
Form untuk memilih form outage recap atau operation recap
RecapOperation
Form berisi rekapitulasi operasi gardu induk
RecapTrafoOutage
Form berisi reakpitulasi outage trafo.
Reliability
Form untuk memilih gardu induk untuk masuk pada form Insert Reliability
Kode dari setiap form dilampirkan pada lampiran. Setiap kita membuka file form baru pada secara otomatis visual C# ini men-generate kode seperti dibawah ini : using using using using using using using
System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Text; System.Windows.Forms;
namespace misogi { public partial class Form1 : Form { public Form1() { InitializeComponent(); } }
70
using merupakan suatu acuan untuk menggunakan suatu library tertentu. Dalam hal ini
program secara otomatis mengacu pada library System, System.Collections.Generic, System.ComponentModel,
System.Data,
System.Drawing,
System.Text,
System.Windows.Forms. Sedangkan namespace adalah konsep yang dipinjam dari C++
yang dapat digunakan untuk menjamin bahwa semua penamaan yang digunakan dalam program bersifat unique. dengan menggunakan namespace bisa mengelompokkan class dengan namespace yang berbeda agar tidak terjadi konflik penamaan dan organisasi dari kode anda menjadi lebih terstruktur. Jika dalam hal ini penamaan namespace adalah misogi , maka struktur class akan dibawah namespace misogi. Sedangkan
class
adalah sebuah deskripsi dari sekumpulan object yang memiliki
atribut, operasi dan hubungan antar object yang sama. Sebuah object dinyatakan sebagai sebuah instance dari sebuah class. Untuk mengetes aplikasi mobile device ini kita bisa menggunakan emulator yang embedded dengan Visual Studio. Gambar dari emulator dari Visual Studio seperti di bawah ini.
Gambar 4.1 Emulator Pocket PC pada Visual Studio 2005
71
4.3 Implementasi Web Service Untuk mengimplementasikan Web Service ini di komputer yang digunakan untuk server maka dibutuhkan langkah-langkah sebagai berikut : 1. Mengcopy file project yang terdiri dari Web.config , ServiceMisogi.asmx , folder App_Code , dan App_Data ke dalam direktori C:/Misogi 2. Meng-install .NET Framework 2.0 sehingga komputer mengenali file project yang telah dibuat apabila file project tersebut dieksekusi. Untuk Meng-installnya dapat dilakukan dengan menjalankan file dotnetfx.exe yang terletak pada DVD Visual Studio 2005 pada direktori F:\vs\wcu\dotNetFramework
Gambar 4.2 Tampilan awal instalasi .NET Framework 2.0
Pilih next untuk melanjutkan instalasi akan muncul sebuah jendela End-User Licensi Agreement
72
Gambar 4.3 End-User License Agreement .NET Framework 2.0
Kemudian beri tanda cek pada wizard ini lalu pilih Install untuk mulai melakukan Instalasi. 3. Me-reinstall IIS (Internet Information Service) agar .NET Framework yang barusan kita install terdeteksi. Hal yang dilakukan pertama adalah meng-uninstall dahulu, terus dilanjutkan peng-insatalan kembali . Meng-uninstall IIS dapat dilakukan dengan cara menjalankan Add/Remove Windows Component yang terletak pada Control Panel > Add/Remove Program. Setelah itu menghilangkan tanda cek pada baris IIS. Lalu klik Next dan Finish.
73
Gambar 4.4 Uninstall IIS (Internet Information Service)
4. Me-Install IIS dengan cara memberi cek kembali baris IIS pada Windows Component Wizard lalu klik Next dan Finish. 5. Membuat Virtual Directory pada IIS dengan cara meng-klik Control Panel > Administrative tools > IIS (Internet Information Service) dan klik kanan pada Default Web Site untuk menambah Virtual Directory
Gambar 4.5 Membuat Virtual Directory pada IIS
74
6. Menekan tombol Next lalu memberi nama alias virtual directory dengan nama Misogi , browse direktori C:\misogi, lalu ketik OK. 7. Untuk mengetes web service, bisa dicoba di browser dengan url pada komputer lokal adalah http://localhost/misogi/ServiceMisogi.asmx yang tampilannya akan seperti.
Gambar 4.6 Tampilan web service
4.4 Implementasi Aplikasi Mobile Device Seperti yang sudah dijelaskan pada bab sebelumnya, implementasi aplikasi mobile device terbagi atas 3 bagian besar, yaitu sub sistem masukan data, sub sistem rekapitulasi data, dan modul-modul pendukung aplikasi. Pada saat memulai aplikasi ini, form pertama yang muncul adalah form Login. Disini pengguna akan dimintai masukan username dan juga password . Proses autentifikasi ini memanfaatkan metode IsLogin pada web service.
75
Gambar 4.7 Tampilan form Login
Apabila penulisan url dari web service yang dituju salah, maka formulir login akan menampilkan message box “Service not found in this URL”. Dan apabila url web service yang dituju benar tetapi ada kesalahan dalam pengisian username dan password maka label text ”Maaf Username dan Password tidak dikenali” akan tampil. Gambar yang menunjukkan kesalahan penulisan url dari web service dan kesalahan pengisian username dan password ditunjukkan pada gambar-gambar dibawah ini :
Gambar 4.8 Tampilan apabila ada kesalahan penulisan url web service
76
Gambar 4.9 Tampilan apabila ada kesalahan pengisian username dan password
Ketika pengguna berhasil memasukkan url dari web service , username dan password dengan benar maka form yang muncul kemudia adalah form Home. Form Home ini memberikan pilihan pengguna ntuk masuk pada form Outage, form Operation, form Recap, form Reliability, dan form Maintenance ataupun Log Out dari aplikasi ini. Gambar dari form Home adalah sebagai berikut :
77
Gambar 4.10 Tampilan form Home
Ketika pertama kali mengakses
form outage, maka yang pertama muncul adalah
beberapa formulir pilihan untuk mengisi jenis outage (sirkuit, transformator, atau circuit breaker) beserta pilihan lokasi Gardu Induknya. Jika kita memilih untuk mengisi formulir outage sirkuit maka kita terlebih dahulu harus memilih lokasi Gardu Induk untuk kemudian tekan tombol “Submit”. Setelah itu tampilan form outage akan berubah dengan menampilkan formulir isian terbaru dengan field-field isian seperti:
Start time of outage
End time of outage
Bay
Outage class
Fault type
Outage Cause
Outage Effects
Rele/induksi
Penyebab
78
Tampilan dari form outage sirkuit akan terlihat seperti berikut :
Gambar 4.11 Tampilan form outage sirkuit
Jika kita memilih untuk mengisi formulir outage transformator maka kita terlebih dahulu harus memilih lokasi Gardu Induk untuk kemudian tekan tombol “Submit”. Setelah itu tampilan outage trafo akan berubah dengan menampilkan formulir isian terbaru dengan field-field isian seperti:
Start time of outage
End time of outage
Trafo
Outage class
Failure initiating cause
Suspected failure responsibility
Penyebab
79
Tampilan halaman formulir masukan data transformer outage akan tampak seperti berikut:
Gambar 4.12 Tampilan form outage trafo
Jika kita memilih untuk mengisi formulir outage CB maka kita terlebih dahulu harus memilih lokasi Gardu Induk untuk kemudian tekan tombol “Submit”. Setelah itu tampilan form outage akan berubah dengan menampilkan formulir isian terbaru dengan field-field isian seperti:
Start time of outage
End time of outage
CB
Failure discovered
Failure initiating cause
Suspected failure responsibility
Failure mode
Keterangan
80
Tampilan halaman formulir masukan data circuit breaker outage akan tampak seperti berikut:
Gambar 4.13 Tampilan form outage CB
Ketika pertama kali masuk ke form recapitulation, maka kita akan melihat 2 formulir dengan berbagai pilihan opsi jenis laporan dan waktu yang kita hendak lihat. 2 Formulir itu adalah form outage recap dan operation recap. Tampilan dari halaman awal form recapitulation akan terlihat sebagai berikut :
81
Gambar 4.14 Tampilan form recapitulation
4.5 Implementasi Database Server Database Server diletakkan terpisah dengan Web Service untuk memperhitungkan factor security.Untuk meng-install DBMS MySQL, dapat dilakukan dengan cara sebagai berikut: 1. Ekstrak source program dari source tarball-nya pada direktori /usr/local/ : #tar xvfz mysql_3.23.52.tar.gz
2. Buat group baru bernama mysql : #groupadd mysql
3. Buat user baru dengan nama mysql dan user ini harus menjadi anggota group mysql : #useradd –g mysql mysql
4. Ubah nama direktori mysql_3.23.52 menjadi direktori mysql : #mv /usr/local/mysql_3.23.52 /usr/local/mysql
5. Masuk ke direktori kerja MySQL :
82
#cd /usr/local/mysql/
6. Jalankan perintah configure dengan opsi-opsi yang diinginkan : #./configure --prefix=/usr/local/mysql
7. Jalankan perintah make : #make
8. Jalankan perintah make install untuk menempatkan program ke direktori kerja: #make install
9. Jalankan perintah untuk membuat grant table MySQL : #scripts/mysql_install_db
10. Ubah ownership (kepemilikan) direktori-direktori dibawah ini berikut isinya
(recursive): #chown –R root /usr/local/mysql #chown –R mysql /usr/local/mysql/data #chgrp –R mysql /usr/local/mysql #chown –R root /usr/local/mysql/bin
11. Buat file konfigurasi MySQL dengan cara membuat salinan file supportfiles/my-medium.cnf menjadi file my.cnf: #cp support-files/my-medium.cnf /etc/my.cnf
12. Jalankan server mysqld dengan cara menggetikkan perintah berikut : #/usr/local/mysql/bin/safe_mysqld --user=mysql &
13. Sebagai langkah pengamanan, kita set password user root untuk MySQL agar
tidak semua orang bisa mengakses basis data MySQL : #/usr/local/mysql/bin/mysqladmin –u root password password_root
Membuat user khusus yang akan diberi hak mengakses dan menggunakan basis data misogi. Untuk membuat user baru, maka kita perlu melakukan beberapa langkah sebagai
berikut : 1. Login ke dalam MySQL melalui konsol dengan perintah sebahai berikut : #/usr/local/mysql/bin/mysql –u root –p
Setelah mengetikkan perintah diatas maka kita akan ditanyakan password user root, dan jika kita benar dalam mengisi password, maka kita akan masuk dalam konsol MySQL dimana kita akan dihadapkan dengan tampilan yang berbentuk command prompt. Konsol MySQL akan terlihat sebagai berikut : Enter password: Welcome to the MySQL monitor.
Commands end with ; or \g.
83
Your MySQL connection id is 1 to server version: 3.23.47-maxdebug Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>
2. Pilih basis data mysql dengan perintah sebagai berikut : mysql> use mysql;
3. Kemudian buat user baru bernama ‘admin’ dengan perintah sebagai berikut : mysql> insert into user values(‘localhost’, ’admin’, password(‘sapi’), ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘N’, ‘Y’, ‘Y’, ‘Y’);
Perintah diatas sebenarnya adalah bahasa SQL untuk memasukan nilai-nilai suatu record pada tabel user yang memiliki kolom sebagai berikut : mysql> show columns from user; +-----------------+-----------------+------+-----+---------+-------+ | Field
| Type
| Null | Key | Default | Extra |
+-----------------+-----------------+------+-----+---------+-------+ | Host
| char(60) binary |
| PRI |
|
|
| User
| char(16) binary |
| PRI |
|
|
| Password
| char(16) binary |
|
|
|
|
| Select_priv
| enum('N','Y')
|
|
| N
|
|
| Insert_priv
| enum('N','Y')
|
|
| N
|
|
| Update_priv
| enum('N','Y')
|
|
| N
|
|
| Delete_priv
| enum('N','Y')
|
|
| N
|
|
| Create_priv
| enum('N','Y')
|
|
| N
|
|
| Drop_priv
| enum('N','Y')
|
|
| N
|
|
| Reload_priv
| enum('N','Y')
|
|
| N
|
|
| Shutdown_priv
| enum('N','Y')
|
|
| N
|
|
| Process_priv
| enum('N','Y')
|
|
| N
|
|
| File_priv
| enum('N','Y')
|
|
| N
|
|
| Grant_priv
| enum('N','Y')
|
|
| N
|
|
| References_priv | enum('N','Y')
|
|
| N
|
|
| Index_priv
| enum('N','Y')
|
|
| N
|
|
| Alter_priv
| enum('N','Y')
|
|
| N
|
|
+-----------------+-----------------+------+-----+---------+-------+
17 rows in set (0.08 sec)
mysql>
4. Agar user ‘admin’ dapat mengolah basis data misogi, maka perlu kita beri hak mengolah dengan perintah sebagai berikut :
84
mysql> insert into db values(‘localhost’, ’misogi’, ’admin’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘N’, ‘Y’, ‘Y’, ‘Y’);
Perintah diatas sebenarnya adalah bahasa SQL untuk memasukan nilai-nilai suatu record pada tabel db yang memiliki kolom sebagai berikut : mysql> show columns from db; +-----------------+-----------------+------+-----+---------+-------+ | Field
| Type
| Null | Key | Default | Extra |
+-----------------+-----------------+------+-----+---------+-------+ | Host
| char(60) binary |
| PRI |
|
|
| Db
| char(64) binary |
| PRI |
|
|
| User
| char(16) binary |
| PRI |
|
|
| Select_priv
| enum('N','Y')
|
|
| N
|
|
| Insert_priv
| enum('N','Y')
|
|
| N
|
|
| Update_priv
| enum('N','Y')
|
|
| N
|
|
| Delete_priv
| enum('N','Y')
|
|
| N
|
|
| Create_priv
| enum('N','Y')
|
|
| N
|
|
| Drop_priv
| enum('N','Y')
|
|
| N
|
|
| Grant_priv
| enum('N','Y')
|
|
| N
|
|
| References_priv | enum('N','Y')
|
|
| N
|
|
| Index_priv
| enum('N','Y')
|
|
| N
|
|
| Alter_priv
| enum('N','Y')
|
|
| N
|
|
+-----------------+-----------------+------+-----+---------+-------+
13 rows in set (0.03 sec)
mysql>
5. Agar dapat mengaktifkan perubahan hak untuk user yang baru, maka kita lakukan perintah sebagai berikut : mysql > flush privileges;
Jika perintah diatas berhasil, maka kita akan mendapatkan respon sebagai berikut: Query OK, 0 rows affected (0.07 sec)
Tabel-tabel yang telah didefinisikan pada tahap perancangan disimpan dalam sebuah basis data dengan nama misogi pada DBMS MySQL. Implementasinya dilakukan dengan menggunakan bahasa SQL dan dapat dilihat pada lampiran.
85