Anda di halaman 1dari 20

Tutorial SMS Gateway : Installasi Local

WebServer XAMPP [Modul 1]


POSTED BY HERU RAHMAT AKHNUARI AT 01.32 LABELS: TUTORIAL
2
Untuk modul pertama ini, saya akan menjelaskan bagaimana cara installasi Local WebServer . Saya
memakai XAMPP untuk Local WebServer nya. Apa fungsi Aplikasi Tersebut ? Local WebServer
berfungsi untuk menjalankan perintah PHP dan MySQL (Database)


Download Aplikasi XAMPP

(versi terbaru saat artikel ini dibuat adalah 1.81 )
Setelah di download, jalankan XAMPP Setup, Jika Parental Control masih aktif , anda bisa
menonaktifkan fitur tersebut atau klik kanan Setup tersebut Run As Administrator



Klik Next

Pilih komponen yang akan diinstall, rekomendasikan pilihan saya ini, karena kita akan
menginstall komponen yang seperlunya saja


Install komponen Apache,MySQL,PHP,Perl dan PhpMyAdmin dan klik Next

Pilih folder installasi , rekomendasikan juga di C:\xampp


Uncheck Learn More about BitNami for Xampp

Klik Next dan Next.

Setelah anda menginstall xampp , maka untuk password defaul MySQL adalah :
username : root
password : (kosong)

Tes Local WebServer bekerja apa tidak
Buka browser (firefox/opera/chrome) lalu ketikkan http://localhost
Jika Local WebServer bekerja maka ditampilkan halaman ini





Install Service Xampp agar berjalan pada startup Windows. Fungsinya agar tidak susah
payah menjalankan xampp.

Klik Start Windows (bawah kiri Windows ) cari dan klik submenu Xampp 1.8.1 pilih XAMPP Control
Panel





1. Klik Stop Action Apache dan MySQL
2. Check Module Service Apache dan MySQL
3. Klik Start Actions Apache dan MySQL kembali
Keterangan : Jika anda memiliki installasi Local WebServer lainnya yang terinstall pada Port
80, maka disable terlebih dahulu atau uninstall sekalian 3:)

Selesai, Xampp akan berjalan otomatis saat Windows Start














Tutorial SMS Gateway : Installasi
Gammu [modul 2]
POSTED BY HERU RAHMAT AKHNUARI AT 01.32 LABELS: TUTORIAL
6
Cara Installasi Gammu


Download gammu untuk Windows 32 atau 64 Bit ( Jika Windows anda versi 64 Bit maka ada
folder pada C:\program files (x86) ).


Saya mendownload versi minimal , saat artikel ini dibuat versi gammu 1.33.0

Buat sebuah folder smsku pada c:\xamp\htdocs


Buka file gammu yang didowload tadi dengan winrar atau tools compression lainnya. Klik
folder bin pada file gammu zip tersebut, lalu copy gammu yang di dowload tadi ke dalam
folder smsku dengan menseleksi semua filenya dan drag ke folder smsku



Ok guys, kita udah sampai setengah jalan untuk membuat aplikasi sms gateway dengan gammu
dan php





Tutorial SMS Gateway : Konfigurasi
Gammu [modul 3]
POSTED BY HERU RAHMAT AKHNUARI AT 01.32 LABELS: TUTORIAL
12
Konfigurasi Gammu


Setelah 2 artikel sebelumnya, sekarang saya akan memberikan artikel konfigurasi gammu.
Ayo,modem USB dan kartu perdana GSM/CDMA tadi mana? apa sudah registrasi kartunya dan diisi
pulsa? Jika sudah colokin Modem USB ke USB komputer, dan install paket drivernya
Di sini saya memakai Modem USB Advance

Cari port modem usb
Jika modem usb sudah terinstall dengan benar, maka buka Control Panel -> Device Manager





Buka kategori modem, nah di sana ada berbagai macam driver modem. Jika anda tidak tahu
modem usb mana yang tertera pada kategori modem tersebut, copot lagi modem dan pasang lagi.
Nah device manager otomatis refresh list driver modem nya. Tahu maksud saya kan? :D
Modem USB saya di sini Global Wireless USB Modem, klik kanan dan klik properties. Klik tab
modem


Modem saya menggunakan Port COM9 dan Maximum Port Speed 921600. Jadi untuk konfigurasi
jenis koneksi/speed maximum modem begini :


at = maximum speed 921600
at115200 = maximum speed 115200



Membuat file Konfigurasi
Sekarang masuk ke folder c:\xampp\htdocs\smsku
Buka notepad dan tulis :


[gammu]
# isikan port modem USB di bawah ini
port = COM9:
# isikan jenis connection di bawah ini
connection = at




simpan dengan nama gammurc (tidak pakai extension)

Buat database untuk gammu
Buka browser dan ketik (1)http://localhost/phpmyadmin
Klik (2)Database, Buat sebuah database (3) smskudb dan klik (4)Create



Buka kembali file gammu yang di download tadi, buka folder share -> doc -> gammu -> examples ->
sql





Lalu import script mysql.sql dengan membuka http://localhost/phpmyadmin dan klik database
smskudb, klik import . Klik browse, masuk folder smsku dan pilih mysql.sql dan klik Done





Buat konfigurasi database gammu
Buka notepad dan ketik :

[gammu]
# isikan port modem USB di bawah ini
port = COM9:
# isikan jenis connection di bawah ini
connection = at

[smsd]
service = mysql
logfile = smsdlog
debuglevel = 0
# Inisial modem
phoneid = Server1
commtimeout = 10
sendtimeout = 10
PIN = 1234
pc = localhost

# isikan user untuk akses ke MySQL (xampp default root)
user = root
# isikan password user untuk akses ke MySQL (xampp defaul null )
password =
# isikan nama database untuk Gammu
database = smskudb



Lalu simpan dengan nama smsdrc

Tes koneksi modem
Buka command prompt/cmd ketikkan seperti gambar

Jika terbaca maka ada info detail modemnya, berarti konfigurasi nya sukses :)

Install Services Gammu agar jalan otomatis saat Windows Startup
Buka command prompt/cmd dan ketikkan



Konfigurasi gammu selesai :)














Tutorial SMS Gateway : Mengirim SMS
dengan gammu [modul 4]
POSTED BY HERU RAHMAT AKHNUARI AT 01.33 LABELS: PHP , TUTORIAL
4
Sudah 3 modul yang saya tulis, sekarang mari kita membuat kode untuk mengirimkan SMS dengan
PHP.


Menulis kode kirim sms dengan php
Buka folder c:\xampp\htdocs\smsku. Buat sebuah file kirimsms.php lalu tulis kode berikut :



<form method="post">
<label>No HP Format +62xxxxxxx </label>
<input type="text" name="nohp">
<label>Pesan</label>
<input type="text" name="pesan">
<input type="submit" name="button" value="Kirim">
</form>
<?php
if(isset($_POST['button']))
{
mysql_connect("localhost","root","");
mysql_select_db("smskudb");
$query=mysql_query("INSERT INTO outbox (DestinationNumber,
TextDecoded) VALUES ('".$_POST['nohp']."', '".$_POST['pesan']."')");
if($query)
{
echo "<script>alert('Sukses kirim sms')</script>";
}
}
?>
Keterangan :
Membuat form kirim pesan

<form method="post">
<label>No HP Format +62xxxxxxx </label>
<input type="text" name="nohp">
<label>Pesan</label>
<input type="text" name="pesan">
<input type="submit" name="button" value="Kirim">
</form>
Jika tombol Kirim diklik

if(isset($_POST['button']))
{
Buat koneksi database, masih ingat bukan tutorial installasi Local WebServer ? mysql_connect
fungsi php untuk mengkoneksikan sebuah server database mysql_connect(nama server,user
database,password database), mysql_select_db fungsi php untuk memanggil database

mysql_connect("localhost","root","");
mysql_select_db("smskudb");
Query SQL atau bisa dikatakan perintah untuk MySQL Database. Lihat kembali
http://localhost/phpmyadmin lalu pilih database smskudb, maka ada tabel outbox, nah tabel outbox
tersebut diperintah untuk diiskan

$query=mysql_query("INSERT INTO outbox (DestinationNumber,
TextDecoded) VALUES ('".$_POST['nohp']."', '".$_POST['pesan']."')");
Jika query sql telah dijalankan, maka keluarkan output peringatan, kita sedikit menggunakan kode
javascript :)

if($query)
{
echo "<script>alert('Sukses kirim sms')</script>";
}
Nah mudah bukan?























Tutorial SMS Gateway : Auto Reply SMS
dengan gammu [modul 5]
POSTED BY HERU RAHMAT AKHNUARI AT 01.33 LABELS: PHP , TUTORIAL
14
Sekarang tahap finalnya, setelah bisa mengirimkan sms. Sekarang kita akan membuat auto reply
sms nya. Contoh Format REG#Nama#Tanggal#Jenis Kelamin#Alamat


Membuat kode auto reply sms

Masuk ke folder c:\xampp\htdocs\smsku dan buat sebuah file autoreply.php , ketikkan kode sebagai
berikut:


<?php

mysql_connect("localhost","root","");

mysql_select_db("smskudb");

$query = "SELECT * FROM inbox WHERE Processed = 'false'";
$hasil = mysql_query($query);
while($data= mysql_fetch_array($hasil)){
$id = $data['ID'];
$noPengirim = $data['SenderNumber'];
$msg = strtoupper($data['TextDecoded']);
$pecah = explode("#",$msg);
$d_tgl=$pecah[1];
$d_nama=$pecah[2];
$d_jk=$pecah[3];
$d_alamat=$pecah[4];
if($pecah[0]=="REG")
{
if($pecah[1] !="" and $pecah[2] !="" and $pecah[3] !="")
{
$today = date("Ymd");
$tgl=date("d M Y");
$newDate = date("Y-m-d", strtotime($d_tgl));

$isinyo="Nomor ".$noPengirim." Nama ".$d_nama." JenisKel ".$d_jk." Alamat ".$d_alamat;
$query=mysql_query("INSERT INTO outbox (DestinationNumber,
TextDecoded) VALUES ('".$noPengirim."', '".$isinyo."')");

}else{
$query=mysql_query("INSERT INTO outbox (DestinationNumber,
TextDecoded, CreatorID) VALUES ('".$noPengirim."', 'Gagal Registrasi. Format :
REG#Tanggal#Nama#PRIA/WANITA#Alamat')");
}
}else{
$query=mysql_query("INSERT INTO outbox (DestinationNumber,
TextDecoded) VALUES ('".$noPengirim."', 'Gagal Registrasi. Format :
REG#Tanggal#Nama#PRIA/WANITA#Alamat')");
}
$query3 = "UPDATE inbox SET Processed = 'true' WHERE ID = '$id'";
mysql_query($query3);
}
?>
Keterangan :
Query Inbox , melakukan pencarian data inbox yang masuk dalam modem USB dan tabel
inbox

$query = "SELECT * FROM inbox WHERE Processed = 'false'";
$hasil = mysql_query($query);
Looping data inbox

while($data= mysql_fetch_array($hasil)){

Membuat variabel untuk record data inbox

$id = $data['ID'];
$noPengirim = $data['SenderNumber'];
$msg = strtoupper($data['TextDecoded']);

Membagi format berdasarkan karaktek #

$pecah = explode("#",$msg);
$d_tgl=$pecah[1];
$d_nama=$pecah[2];
$d_jk=$pecah[3];
$d_alamat=$pecah[4];
Jadi $d_nama adalah isi dari format sms NAMA yang dikirimkan

Cek format SMS pertama sekali adalah REG dan Cek semua format SMS

if($pecah[0]=="REG")
{
if($pecah[1] !="" and $pecah[2] !="" and $pecah[3] !="")
{

Konversi tanggal php ke mysql

$today = date("Ymd");
$tgl=date("d M Y");
$newDate = date("Y-m-d", strtotime($d_tgl));

Setelah terkirim, maka status inbox tersebut sudah terkirim "true"

$query3 = "UPDATE inbox SET Processed = 'true' WHERE ID = '$id'";
mysql_query($query3);


Ops, ini belum selesai. SMS Gateway tidak akan respon jika tidak ada eksekusi terlebih dahulu. Lalu
bagaimana caranya ?
Buat sebuah bat script, buka notepad dan ketikkan :

C:\xampp\php\php -f C:\xampp\htdocs\smsku\autoreply.php
Simpan dengan nama daemon.bat (terserah mau apa namanya)
Jadi,jika kita klik daemon.bat, maka semua sms pada tabel inbox yang statusnya false akan ter-kirim
dengan sendirinya. Tapi apakah harus jalankan daemon.bat setiap kali?
Nah, ini yang jadi pertanyaan. Banyak orang memakai trigger mysql ataupun dengan memakai
konfigurasi runonreceive pada gammu. Namun ada kendalanya
Dengan Trigger :
Format SMS tidak bisa dilakukan sesuka hati
Dengan runonreceive :
Terkadang saya mencoba malah tidak jalan

Solusi saya ya bikin aplikasi untuk menjalankan daemon.bat tersebut dengan Visual Basic hahaha..
Caranya mudah kok,tapi saya tidak menjelaskan dengan detail.
Buat sebuah project Visual Basic dan Masukkan Timer dengan Interval 1000 lalu masukkan script
pada Timer :

Private Sub Timer1_Timer()
Shell daemon.bat, vbHide
End Sub

Lalu compile dan buat sebuah start up dengan menitipkan shortcut pada folder :
C:\Users\NAMAUSER\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup