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
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 Keterangan
Home 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 untuk mengisi data operasi penghantar
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 System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace misogi {
public partial class Form1 : Form
{ public Form1() { InitializeComponent(); } }
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.
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
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.
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
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
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.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 :
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
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
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
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 :
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
#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 support-files/my-medium.cnf menjadi file my.cnf:
#cp support-files/my-medium.cnf /etc/my.cnf
12. Jalankan servermysqlddengan 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:
Your MySQL connection id is 1 to server version: 3.23.47-max-debug
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 :
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.