1 BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM Pada bab ini akan dijelaskan proses instalasi web server, instalasi perangkat modem dan service Gammu, sert...
Pada bab ini akan dijelaskan proses instalasi web server, instalasi perangkat modem dan service Gammu, serta tahap pembuatan sistem aplikasi. Pada pembuatan aplikasi akan dibuat halaman per halaman, yang setiap halaman memiliki fungsi masing-masing. Dalam proses pengujian, akan menggunakan metode blackbox untuk metode pengujiannya yang melingkupi form-form aplikasi, perintah layanan dan fitur-fitur layanan.
4.1 INSTALASI KEBUTUHAN SISTEM APLIKASI Pembuatan aplikasi SMS Gateway ini menggunakan bahasa pemrograman PHP dan MySQL yang akan dieksekusi dalam layanan aplikasi web server. Dalam penggunaannya, aplikasi ini memerlukan Gammu sebagai library yang digunakan untuk antarmuka antara sistem aplikasi dengan modem, sehingga aplikasi dapat mengirim dan menerima pesan layaknya sebuah ponsel. Dalam service Gammu terdapat perintah-perintah yang khusus digunakan untuk pengiriman dan penerimaan pesan. Untuk itu aplikasi SMS Gateway ini, disini membutuhkan XAMPP sebagai web server yang digunakan sebagai tempat untuk menyimpan semua file-file aplikasi yang nanti akan dieksekusi dan dijalankan. 4.1.1 Web Server Aplikasi Aplikasi Perpajakan SMS Gateway ini dibuat dalam bentuk aplikasi berbasis web (web based application). Aplikasi ini dibuat dengan PHP dan MySQL sehingga kita memerlukan sebuah web server dalam menjalankan aplikasi ini. Disini kita memakai Apache sebagai web server, PHP sebagai bahasa pemrograman dan MySQL sebagai databasenya. Apache ini yang akan
61
62
mengeksekusi file-file PHP, dan menampilannya kepada user. Untuk instalasi web server kita dapat menginstal masing-masing bagian seperti web server, PHP, dan MySQL dan mengkonfigurasikan agar terintegrasi atau dapat juga menggunakan web server yang sudah dalam satu paket, yang banyak beredar dan gratis. Beberapa paket web server yang terkenal adalah seperti Sokkit, Wampp, Xampp, EasyPHP, dan PHPtriad. 4.1.2 Instalasi Gammu dan Perangkat Modem Dalam aplikasi SMS Gateway ini, seperti yang sudah dijelaskan pada bab-bab sebelumnya untuk mengirim dan menerima sms serta interkoneksi dengan perangkat
(media) penghantar sms seperti ponsel dan modem, disini
membutuhkan suatu modul paket, yaitu Gammu. Dengan Gammu, kita dapat membuat dan mengembangkan menjadi sebuah aplikasi SMS Gateway. Karena Gammu berjalan dengan database MySQL sehingga banyak bahasa pemrograman seperti PHP, VB, dan Delphi yang dapat menggunakan Gammu dalam pembuatan aplikasi SMS Gateway. 4.1.2.1 Instalasi Perangkat Modem. Sebelum kita menginstall Gammu service, sebelumnya kita menginstall perangkat modem sehingga waktu konfigurasi koneksi antar service Gammu dan perangkat modem akan lebih mudah karena modem sudah di install. Untuk perangkat modem, Gammu mendukung perangkat ponsel yang dapat digunakan sebagai modem. Namun, tidak semua ponsel dapat digunakan sebagai modem. Dalam aplikasi informasi Perpajakan berbasis SMS Gateway ini, disini menggunakan modem Wavecom Fastrack, perlu diingat kecepatan modem mempengaruhi kecepatan pengiriman sms. Tahap-tahap instalasi perangkat Modem Wavecom Fastrack : 1. Install driver modem wavecom fastrack ( driver-wavecom.exe).
63
Gambar 4.1 Driver Modem
2. Colokan modem ke port PC. 3. Komputer akan mendeteksi modem. Untuk mengetahui apakah modem\hp sudah terdeteksi oleh komputer, caranya ke control panel > system > hardware > device manager dan lihat pada bagian ports (com dan lpt).
Gambar 4.2 Port Modem
4.1.2.2 Instalasi Gammu Service Setelah perangkat modem sudah terinstall dalam komputer, giliran service Gammu yang diinstal, tahap-tahapnya sebagai berikut :
64
1. Silahkan install (double click) Gammu-setup.exe. 2. Klik next ketika tampil window berikut :
Gambar 4.3 Install Gammu – Step 1
3. Versi Gammu yang kita gunakan secara default akan menyimpan hasil instalasi dalam folder C:\Gammu. Folder gammu ini kita dipindahkan dengan semua isinya kedalam folder HTDOCS yang ada pada XAMPP. Tujuannya agar dapat bisa dijalankan pada server aplikasi XAMPP. Karena PHP engine akan mengeksekusi setiap file php yang disimpan dalam folder HTDOCS. Seluruh file-file script dan file Gammu akan disimpan dalam folder Gammu, yang nantinya berada dalam folder HTDOCS, agar dapat berjalan dalam service Apache server.
Gambar 4.4 Install Gammu – Step 2
Setelah proses instalasi Gammu berhasil, selanjutnya adalah proses setting konfigurasi Gammu. Tahap-tahapnya sebagai berikut :
65
1. Edit file gammurc yang berada difolder Gammu (pengaturan port modem) -
port = COM...(tergantung port hp)
-
connection = at115200 (biasanya hp modern yang pakai usb)
2. Edit file smsdrc yang berada dalam folder Gammu -
User = root (username administrator di mysql)
-
Isikan Password = (isi kalau ada)
-
pc = localhost
-
database = narada ( tergantung nama database yang kita buat ).
3. Buat database narada di MySQL 4. Import database mysql.sql yang sudah diextract di Gammu 5. Buka command prompt, lalu ketikan command berikut : -
cd c:\WINDOWS\system32
-
gammu --identify ( lihat apakah gammu sudah mengenal modem)
Proses konfigurasi ini, dalam aplikasi sudah ada dalam bagian halaman konfigurasi dan dibuat dengan tampilan form web, sehingga user akan lebih mudah dalam melakukan konfigurasi karena sudah disediakan form. Setelah tahap konfigurasi ini, sebenarnya kita sudah bisa mengirim sms dengan service Gammu melalui command prompt untuk mengecek apakah Gammu sudah berjalan dengan baik. Disini service Gammu sudah dapat bekerja mengirim dan menerima pesan, selanjutnya kita akan membuat aplikasi SMS Gateway dengan memanfaatkan service Gammu.
4.2
PEMBUATAN SISTEM APLIKASI
Pada sub bab ini akan dijelaskan secara umum pembuatan aplikasi SMS Gateway ini mulai dari pembuatan database berikut tabel-tabelnya, pembuatan halaman-halaman aplikasi yang telah dirancang dan di desain pada sub bab
66
sebelumnya. Pembuatan halaman ini memakai bahasa HTML dasar dan pemrograman PHP . 4.2.1 Pembuatan Database dan Tabel Aplikasi Aplikasi SMS Gateway ini, seperti yang sudah dijelaskan dalam sub bab perancangan sistem bahwa aplikasi ini memerlukan sebuah database untuk menyimpan dan mengolah data-data pesan dan pajak. Dalam aplikasi ini kita memakai XAMPP
sebagai aplikasi
web
server,
dengan
menggunakan
PHPMyAdmin dalam XAMPP kita dapat membuat database dari menu layanan atau juga dengan memakai bahasa SQL dalam PHPMyAdmin. Ada dua cara yang dapat dilakukan untuk membuat database aplikasi. 1. Cara yang pertama adalah dari form konfigurasi sistem, pada langkah ketiga, adalah pembuatan database. Isikan username dan password yang ada pada hak akses PHPMyAdmin lalu masukan nama databasenya. Dalam aplikasi ini, database yang dipakai dengan nama ‘narada’. Setelah diisi lengkap form tersebut, klik install. Maka database dan tabel sudah dibuat dalam PHPMyAdmin. Hal yang terakhir, menambahkan tabel tambahan dalam database yang telah dibuat. 2. Cara yang kedua adalah dengan membuat database secara manual dengan memakai layanan SQL dalam PHPMyAdmin. Lalu pada konfigurasi file SMSDRC padal langkah keempat, masukan nama database yang telah dibuat pada PHPMyAdmin. Langkah-langkahnya sebagai berikut : a. Membuat database aplikasi Dalam PHPMyAdmin masuk kebagian SQL dengan mengetikan script berikut dalam layanan SQL pada PHPMyAdmin, seperti gambar dibawah ini :
67
Gambar 4.5 Perintah membuat database
Script SQL : Create database narada; b. Membuat Tabel Gammu. Setelah membuat database, selanjutnya kita membuat tabel Gammu, caranya masuk ke dalam database narada dan ketik script berikut dalam layanan SQL : CREATE TABLE `daemons` ( `Start` text NOT NULL, `Info` text NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8; CREATE TABLE `gammu` ( `Version` int(11) NOT NULL default '0' ) ENGINE=MyISAM DEFAULT CHARSET=utf8; CREATE TABLE `inbox` ( `UpdatedInDB` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `ReceivingDateTime` timestamp NOT NULL default '0000-00-00 00:00:00', `Text` text NOT NULL, `SenderNumber` varchar(20) NOT NULL default '', `Coding` enum('Default_No_Compression','Unicode_No_Compression','8bit','Default_Compr ession','Unicode_Compression') NOT NULL default 'Default_No_Compression', `UDH` text NOT NULL, `SMSCNumber` varchar(20) NOT NULL default '', `Class` int(11) NOT NULL default '-1', `TextDecoded` varchar(160) NOT NULL default '', `ID` int(10) unsigned NOT NULL auto_increment, `RecipientID` text NOT NULL, `Processed` enum('false','true') NOT NULL default 'false',
68
PRIMARY KEY (`ID`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; CREATE TABLE `outbox` ( `UpdatedInDB` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `InsertIntoDB` timestamp NOT NULL default '0000-00-00 00:00:00', `SendingDateTime` timestamp NOT NULL default '0000-00-00 00:00:00', `Text` text, `DestinationNumber` varchar(20) NOT NULL default '', `Coding` enum('Default_No_Compression','Unicode_No_Compression','8bit','Default_Compr ession','Unicode_Compression') NOT NULL default 'Default_No_Compression', `UDH` text, `Class` int(11) default '-1', `TextDecoded` varchar(160) NOT NULL default '', `ID` int(10) unsigned NOT NULL auto_increment, `MultiPart` enum('false','true') default 'false', `RelativeValidity` int(11) default '-1', `SenderID` varchar(255) default NULL, `SendingTimeOut` timestamp NULL default '0000-00-00 00:00:00', `DeliveryReport` enum('default','yes','no') default 'default', `CreatorID` text NOT NULL, PRIMARY KEY (`ID`), KEY `outbox_date` (`SendingDateTime`,`SendingTimeOut`), KEY `outbox_sender` (`SenderID`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; CREATE TABLE `outbox_multipart` ( `Text` text, `Coding` enum('Default_No_Compression','Unicode_No_Compression','8bit','Default_Compr ession','Unicode_Compression') NOT NULL default 'Default_No_Compression', `UDH` text, `Class` int(11) default '-1', `TextDecoded` varchar(160) default NULL, `ID` int(10) unsigned NOT NULL default '0', `SequencePosition` int(11) NOT NULL default '1', PRIMARY KEY (`ID`,`SequencePosition`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; CREATE TABLE `pbk` ( `GroupID` int(11) NOT NULL default '-1', `Name` text NOT NULL, `Number` text NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `pbk_groups` ( `Name` text NOT NULL, `ID` int(11) NOT NULL auto_increment, PRIMARY KEY (`ID`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; CREATE TABLE `phones` ( `ID` text NOT NULL, `UpdatedInDB` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
69
`InsertIntoDB` timestamp NOT NULL default '0000-00-00 00:00:00', `TimeOut` timestamp NOT NULL default '0000-00-00 00:00:00', `Send` enum('yes','no') NOT NULL default 'no', `Receive` enum('yes','no') NOT NULL default 'no', `IMEI` varchar(35) NOT NULL, `Client` text NOT NULL, `Battery` int(11) NOT NULL default '0', `Signal` int(11) NOT NULL default '0', `Sent` int(11) NOT NULL default '0', `Received` int(11) NOT NULL default '0', PRIMARY KEY (`IMEI`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; CREATE TABLE `sentitems` ( `UpdatedInDB` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `InsertIntoDB` timestamp NOT NULL default '0000-00-00 00:00:00', `SendingDateTime` timestamp NOT NULL default '0000-00-00 00:00:00', `DeliveryDateTime` timestamp NULL default NULL, `Text` text NOT NULL, `DestinationNumber` varchar(20) NOT NULL default '', `Coding` enum('Default_No_Compression','Unicode_No_Compression','8bit','Default_Compr ession','Unicode_Compression') NOT NULL default 'Default_No_Compression', `UDH` text NOT NULL, `SMSCNumber` varchar(20) NOT NULL default '', `Class` int(11) NOT NULL default '-1', `TextDecoded` varchar(160) NOT NULL default '', `ID` int(10) unsigned NOT NULL default '0', `SenderID` varchar(255) NOT NULL, `SequencePosition` int(11) NOT NULL default '1', `Status` enum('SendingOK','SendingOKNoReport','SendingError','DeliveryOK','DeliveryFail ed','DeliveryPending','DeliveryUnknown','Error') NOT NULL default 'SendingOK', `StatusError` int(11) NOT NULL default '-1', `TPMR` int(11) NOT NULL default '-1', `RelativeValidity` int(11) NOT NULL default '-1', `CreatorID` text NOT NULL, PRIMARY KEY (`ID`,`SequencePosition`), KEY `sentitems_date` (`DeliveryDateTime`), KEY `sentitems_tpmr` (`TPMR`), KEY `sentitems_dest` (`DestinationNumber`), KEY `sentitems_sender` (`SenderID`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; INSERT INTO `gammu` VALUES ('10');
c. Membuat tabel tambahan aplikasi. Caranya sama seperti membuat tabel Gammu, ketik script berikut dalam layanan SQL : CREATE TABLE `phonebook` ( `id` int(10) NOT NULL AUTO_INCREMENT, `Grup` varchar(10) NOT NULL,
70
`nohp` varchar(20) NOT NULL, `nama` varchar(30) NOT NULL, `perusahaan` varchar(40) NOT NULL, PRIMARY KEY (`id`)); CREATE TABLE `no_id` ( `id` int(10) NOT NULL AUTO_INCREMENT, `ID_klien` varchar(10) NOT NULL, `Nama_per` varchar(40) NOT NULL, PRIMARY KEY (`id`) ); CREATE TABLE `pajak` ( `id` int(10) NOT NULL AUTO_INCREMENT, `ID_klien` varchar(10) NOT NULL, `Perusahaan` varchar(40) NOT NULL, `PPh21` varchar(15) NOT NULL, `St21` varchar(15) NOT NULL, `Lp21` varchar(15) NOT NULL, `PPh23` varchar(15) NOT NULL, `St23` varchar(15) NOT NULL, `Lp23` varchar(15) NOT NULL, `PPh25` varchar(15) NOT NULL, `St25` varchar(15) NOT NULL, `Lp25` varchar(15) NOT NULL, `Bulan` varchar(5) NOT NULL, PRIMARY KEY (`id`) );
4.2.2 Pembuatan Halaman Aplikasi Pada aplikasi ini, aplikasi dibuat berbasis web sehingga terdiri dari beberapa halaman web. Halaman-halaman terdiri dari beberapa bagian mulai dari halaman perintah layanan, halaman data, halaman pesan, dan halaman konfigurasi. Untuk tahap-tahap pembuatan halaman aplikasi ini adalah sebagai berikut : 4.2.2.1 Halaman Awal Halaman Awal ini adalah halaman yang memuat perintah menjalankan service Gammu. Tentunya ketika pertama kali aplikasi dijalankan service Gammu harus diaktifkan sehingga proses pengiriman dan penerimaan pesan dapat berjalan dengan baik. Dalam membuat halaman ini kita menggunakan perintah dasar Gammu dalam menjalankan service Gammu. Halaman awal ini seperti gambar berikut ini :
71
Gambar 4.6 Halaman Awal Aplikasi
Scriptnya Halaman Awal (index.php) Aplikasi SMS
APLIKASI SMS GATEWAY NPC
Klik tombol di bawah ini untuk menjalankan GAMMU Service! Sebelum menggunakan aplikasi
Pada pembuatan halaman awal ini kita meng-include halaman menu1.php. Halaman menu1.php ini adalah menu dasar yang ada pada semua halaman, jadi dalam setiap halaman, menu1.php akan di include dalam file tersebut. Perintah include ini berguna untuk memuat halaman script lain dalam file tersebut. Sehingga ketika halaman awal ini dijalankan, menu1.php pun dieksekusi. Script menu1.php, sebagai berikut :
Dalam mengaktifkan service Gammu, disini memakai perintah passthru. Passthru digunakan untuk mengeksekusi perintah, dalam script ini perintah yang dieksekusi adalah sebagai berikut. passthru("gammu-smsd -c smsdrc -s");
Script diatas adalah perintah Gammu untuk menjalakan layanan Gammu sehingga dapat aktif dan berjalan ketika aplikasi digunakan. 4.2.2.2 Halaman Data Halaman Menu Data memuat hal-hal yang berkenaan dengan data form seperti form input data, edit data, dan hapus data. Didalam halaman ini terdiri dari beberapa sub menu seperti menu buku telepon, menu id klien dan menu data pajak. Pada halaman ini memuat semua data yang diperlukan dalam aplikasi SMS gateway ini.
73
Sub menu dalam Halaman Menu Data : -
Buku telepon
: Lihat, Input, Edit dan Hapus Data
-
ID Klien
: Lihat, Input, Edit, Hapus Data dan Input Pajak
-
Data Pajak
: Lihat, Input, dan Hapus Data
Gambar 4.7 Halaman Data
Source code Halaman Data (data.php) MENU DATA
MENU DATA APLIKASI SMS GATEWAY
Pilih Menu yang anda inginkan
Buku Telepon : Lihat, Input, Edit , dan Hapus Data ID Klien          : Lihat, Input, Edit , Hapus Data dan Input Data Pajak Data Pajak      : Lihat, Input, Edit , dan Hapus Data
74
4.2.2.2.1 Halaman Buku Telepon Data ini berisi tentang informasi Nomor ponsel klien dan Nama kontak klien. Fungsinya hampir mirip dengan buku telepon. Data kontak ini disimpan dalam tabel phonebook yang ada dalam database aplikasi SMS Gateway.
Gambar 4.8 Halaman buku telepon
Script halaman Buku Telepon (buku.php) Buku Telepon
Pada halaman buku telepon ini, ditampilkan dengan script PHP dengan perintah : $select = "select * from phonebook"; $select_query = mysql_query($select); while($select_result = mysql_fetch_array($select_query))
Script
diatas
mengambil
semua
data
dari
tabel
phonebook
dan
menampilkannya dengan bentuk tabel seperti pada script diatas. Dalam tabel phonebook ini, ada dua aksi yang diberikan yaitu ubah data dan hapus data.
Aksi kedua perintah tersebut akan melakukan method ke file action_buku.php dengan mengirimkan id sebagai id data yang dipilih. Source code action_buku.php Anda memilih aksi delete pada record $id... "; $delete = "delete from phonebook where id = '$id'"; $delete_query = mysql_query($delete); if ($delete_query) echo "Record $id berhasil dihapus ..."; else echo "Gagal menghapus record"; echo " PhoneBook"; } else { // buat query untuk menampilkan record yang dipilih ... $select = "select * from phonebook where id = '$id'"; $select_query = mysql_query($select); // lalu sisipkan field yang akan ditampilkan ke dalam variable... while($select_result = mysql_fetch_array($select_query)) { $id = $select_result['id'] ; $HP = $select_result['nohp'] ; $Nama = $select_result['nama']; $pt = $select_result['perusahaan'] ; // kita tutup terlebih dahulu tagnya, karena kita akan membuat form // html ?> Edit NO HP