Академический Документы
Профессиональный Документы
Культура Документы
http://blog.rosihanari.net/membuat-sendiri-kirim-sms...
Membuat Sendiri Kirim SMS Gratis Via Web dengan PHP dan MySQL
Posted By rosihanari On December 8, 2010 @ 5:41 am In SMS Gateway | 79 Comments
Masih terkait dengan SMS gateway, dalam artikel kali ini saya akan mencoba memaparkan cara membuat
sendiri aplikasi kirim SMS gratis via web. Permintaan untuk membuat artikel dengan topik ini sudah
banyak masuk ke email saya maupun komentar dalam blog ini. Namun, mohon maaf baru kali ini saya bisa
mewujudkannya.
Untuk membuat fasilitas kirim SMS gratis via web, kita membutuhkan sebuah aplikasi gateway untuk
mengirim SMS. Aplikasi sms gateway ini nanti kita install atau letakkan di pc yang ada di rumah kita
beserta modem/hp yang tercolok pada PC tersebut sebagai alat untuk mengirim SMS. PC ini harus
senantiasa terhubung ke internet untuk berkomunikasi dengan PC server yang ada di hosting. Sedangkan
di dalam hosting, kita buat semacam script form untuk interface user yang ingin mengirim SMS. Untuk
aplikasi sms gateway yang diinstall di PC rumah, Anda bisa menggunakan Gammu
[1]
sebagai enginenya.
Pertanyaan yang muncul kemudian adalah bagaimana cara mengkomunikasikan PC server yang ada di
hosting dengan PC di rumah, atau dengan kata lain bagaimana mengirim data sms yang disubmit via
hosting kemudian bisa sampai di PC rumah lalu mengirimkan sms tersebut via modem/hp?
OK konsep dasar atau ide dasar dalam pembuatannya adalah kita menggunakan semacam web service
yang dibuat di server hosting untuk komunikasi antara PC rumah dan PC hosting. Web service ini nanti
senantiasa akan diakses oleh PC rumah. Melalui web service inilah SMS akan dikirim dari PC hosting ke PC
rumah. Lantas, apa bentuk output dari web service ini? Web service disajikan dalam bentuk XML yang
isinya adalah bunyi SMS dan nomor tujuan SMS yang akan dikirim. Data XML yang berisi bunyi sms dan
nomor tujuan inilah yang nanti akan dibaca oleh PC rumah, lalu mengirimkannya lewat SMS gateway
(Gammu).
Nah.. sekarang kita menuju implementasi cara pembuatannya.
Langkah pertama, Anda harus sudah menginstall Gammu sebagai tool SMS gateway nya. Pastikan Anda
bisa mengirim SMS menggunakan Gammu dan HP/modem yang tercolok di PC Anda.
Langkah kedua, buatlah script form untuk mengirim SMS. Script form ini nanti diletakkan di server hosting
sms.html
<form method="post" action="kirim.php">
No. Tujuan <input type="text" name="destination">
Isi SMS<br><textarea name="sms"></textarea>
</form>
Bila diperhatikan, form kirim SMS di atas nantinya akan disubmit di script kirim.php. Di dalam script
kirim.php inilah nomor tujuan dan isi SMS akan disimpan dalam tabel temporary pada database server
hosting. Misalkan kita beri nama tabel temporary tersebut adalah outbox. Kita bisa buat tabel outbox ini
dengan struktur sbb:
CREATE TABLE `outbox` (
`id` int(11) AUTO_INCREMENT,
`destinationNumber` varchar(20),
`sms` text,
PRIMARY KEY (`id`)
)
Field id digunakan sebagai nomor unik penanda setiap SMS yang akan dikirim, field destinationNumber
untuk menyimpan nomor tujuan SMS, dan sms untuk menyimpan isi SMS.
OK, kita buat script kirim.php nya
kirim.php
1 of 5
09/12/2014 10:01 PM
http://blog.rosihanari.net/membuat-sendiri-kirim-sms...
<?php
// koneksi ke mysql server hosting
mysql_connect('dbhost', 'dbuser', 'dbpass');
mysql_select_db('dbname');
// baca nomor tujuan dan isi sms dari form
$destNumber = $_POST['destination'];
$sms = $_POST['sms'];
2 of 5
09/12/2014 10:01 PM
http://blog.rosihanari.net/membuat-sendiri-kirim-sms...
bacasms.php
<?php
// koneksi ke mysql di server localhost
mysql_connect('dbhost', 'dbuser', 'dbpass');
// nama database Gammu yang ada di localhost
mysql_select_db('dbname');
// baca data XML dari server hosting yang digenerate oleh data.php
$dataxml = simplexml_load_file('http://namasitus/data.php');
foreach($dataxml->data as $data)
{
// baca field ID
$id = $data->id;
// baca nomor tujuan
$destination = $data->destination;
// baca isi sms
$sms = $data->sms;
// mengirim SMS via Gammu dengan insert data ke tabel outbox Gammu
$query = "INSERT INTO outbox (DestinationNumber, TextDecoded) VALUES ('$destination', '$sms')";
mysql_query($query);
// hapus data SMS di server hosting yang sudah terbaca berdasarkan ID
$curlHandle = curl_init();
curl_setopt($curlHandle, CURLOPT_URL, 'http://namasitus/hapus.php');
curl_setopt($curlHandle, CURLOPT_POSTFIELDS, 'id='.$id);
curl_setopt($curlHandle, CURLOPT_HEADER, 0);
curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlHandle, CURLOPT_TIMEOUT,30);
curl_setopt($curlHandle, CURLOPT_POST, 1);
curl_exec($curlHandle);
curl_close($curlHandle);
}
?>
Jika web server di PC localhost belum mendukung CURL, maka lakukan setting CURL
[2]
terlebih dahulu.
Eh kalo kita liat pada script bacasms.php di atas, pada proses penghapusan data SMS yang ada di server
hosting melalui CURL terdapat pemanggilan script hapus.php. Nah script ini belum kita buat di server
hosting. Script hapus.php ini nanti berfungsi untuk menghapus data sms yang ada di tabel outbox dalam
database server hosting berdasarkan ID nya setelah data sms tersebut di baca oleh script bacasms.php.
hapus.php
<?php
// koneksi ke mysql di server hosting
mysql_connect('dbhost', 'dbuser', 'dbpass');
mysql_select_db('dbname');
// baca ID data yang akan dihapus yang dikirim via CURL dari localhost
$id = $_POST['id'];
// hapus data SMS berdasarkan ID
$query = "DELETE FROM outbox WHERE id = '$id'";
mysql_query($query);
?>
Sekali lagi script hapus.php di atas harus ditaruh di server hosting lho ya !!!
Selanjutnya script bacasms.php ini harus senantiasa kita jalankan melalui web browser localhost di PC
rumah kita supaya bisa selalu membaca data sms yang ada di hosting lalu mengirimnya via Gammu. Lalu
bagaimana supaya script bacasms.php ini bisa secara otomatis berjalan dan selalu bisa membaca data dari
3 of 5
09/12/2014 10:01 PM
http://blog.rosihanari.net/membuat-sendiri-kirim-sms...
server hosting? Sebenarnya Anda bisa mengklik tombol REFRESH pada web browser supaya script ini
bekerja, namun tentu hal ini membuat report kan? Nah salah satu solusi dari hal ini adalah Anda bisa
menjalankan autorefresh melalui AJAX yang secara otomatis merefresh script bacasms.php ini pada setiap
selang n detik. Ini dia script nya
index.php
<html>
<head>
<title>SMS Server Running...</title>
<script type="text/javascript">
function ajax()
{
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp =new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
}
}
xmlhttp.open("GET","bacasms.php");
xmlhttp.send();
setTimeout("ajax()", 5000);
}
</script>
</head>
<body onload="ajax()">
<h1>SMS Server Running...</h1>
</body>
</html>
Contoh script AJAX yang ada di index.php di atas diset supaya bisa merefresh secara otomatis
bacasms.php dalam interval 5 detik (5000 ms). Dengan demikian yang perlu Anda jalankan di localhost
hanyalah script index.php di atas melalui browser.
Nah.. konsep di atas memungkinkan kita untuk bisa membangun aplikasi SMS gateway yang terintegrasi
antara PC di server hosting dengan PC di rumah tanpa menggunakan IP public yang urusan untuk
mendapatkannya sangat ribet dan mahal biayanya, atau tanpa menggunakan VPS maupun dedicated
server untuk tipe hostingnya yang juga sangat mahal biayanya.
Anda dapat belajar teknik-teknik lain kaitannya dengan SMS gateway yang mengintegrasikan server
hosting dengan pc rumah dengan contoh-contoh script SMS gateway
[3]
Oya meskipun namanya SMS gratis, tapi tidak sepenuhnya gratis. Istilah Gratis hanya bagi si pengguna
atau pengirim SMS melalui web Anda, namun tidak gratis bagi si pemilik web karena harus menyisihkan
sedikit biaya untuk bayar pulsa. Tapi tak apalah, anggap saja itu biaya marketing untuk lebih mengenalkan
Bisa pula tambahkan string pada setiap SMS yang
web Anda, apalagi saat ini pulsa sms sangat murah
dikirimkan dengan nama situs Anda untuk lebih memperkuat branding web Anda. Untuk hal ini silakan
utak-atik sendiri ya
Simpel bukan idenya??? Selamat mencoba
4 of 5
09/12/2014 10:01 PM
http://blog.rosihanari.net/membuat-sendiri-kirim-sms...
[4]
[5]
[6]
[8]
[9]
Membuat Script Remote Shutdown Komputer Via SMS dengan PHP [10]
5 of 5
09/12/2014 10:01 PM