Anda di halaman 1dari 11

Suplemen SMS Gateway

Dibuat oleh: Rosihan Ari Yuana

Konsep Membuat SMS Broadcast


Pada bagian ini akan saya paparkan bagaimana ide membuat script PHP untuk keperluan SMS broadcast
atau mengirim sebuah pesan SMS langsung ke banyak nomor sekaligus.
Untuk melakukan SMS broadcast, terlebih dahulu Anda harus memiliki data beberapa nomor HP yang
digunakan untuk pengiriman SMS. Nomor HP ini nanti disimpan dalam tabel PBK (phonebook) yang ada
di database Gammu.
Berikut ini cara menambahkan data nomor hp pada tabel PBK.
1. Masuk ke phpMyAdmin (http://localhost/phpmyadmin)
2. Masukkan username dan password MySQL (bila diminta)
3. Masuk ke database Gammu (dalam contoh ini saya menggunakan nama database SMSD), dan
klik tabel PBK (phonebook)

4. Kemudian klik menu INSERT pada bagian atas phpMyAdmin

5. Kemudian isikan nama dan nomor hp pada kotak Name dan Number yang disediakan dalam
form (pada kotak ID biarkan kosong)

Catatan:
Anda dapat menggunakan prefix +62 pada nomor hp nya, contoh no hp aslinya adalah
08882978041, maka 0 paling depan diganti dengan +62, sehingga menjadi +628882978041.
6. Kemudian klik tombol GO (terletak di paling bawah halaman).
7. Jika ingin memasukkan data phonebook kembali, lakukan langkah no. 3 kembali.
Untuk melihat data phonebook yang sudah masuk, silakan klik menu BROWSE

Berikut ini contoh tampilan data phonebook yang telah tersimpan di tabel PBK

Setelah proses di atas, kita telah mempunyai data nomor hp yang digunakan untuk SMS broadcast.
Pada tabel PBK, terdapat pula field bernama GROUPID. Field ini digunakan untuk pengelompokan data
nomor telp. Misalkan Anda membuat group no hp untuk teman sekolah, dan teman kantor. Untuk
teman sekolah diberi nomor GROUPID nya misalkan 1 dan teman kantor GROUPID nya adalah 2. Maka
caranya cukup mengganti angka -1 ini pada form masukan data. Nilai -1 pada GroupID ini adalah default
yang artinya bukan menjadi group apapun.

Contoh pemberian GroupID:

Setelah data nomor hp kita dapatkan, selanjutnya kita bisa membuat script PHP untuk mengirimkan SMS
broadcast. Script SMS Broadcast bisa Anda lihat di folder SCRIPT SMS > BROADCAST.
Cara menjalankan script SMS broadcast tersebut adalah, pindahkan folder BROADCAST ke dalam
direktori WWW pada C:\AppServ atau di HTDOCS jika Anda menggunakan XAMPP.
Kemudian, bukalah file koneksi.php menggunakan WordPad atau Notepad untuk mengubah konfigurasi
koneksi MySQLnya. Isikan $dbUser, $dbPass dan $dbName.
Selanjutnya jalankan script index.php melalui browser dengan URL http://localhost/broadcast atau
http://localhost/broadcast/index.php.
Berikut ini tampilan SMS Broadcast nya:

Masukkan isi SMS pada kotak yang disediakan, kemudian pilih Group yang ingin dikirimi SMS nya. Jika
Anda ingin mengirim SMS pada semua nomor hp pada Phonebook, maka pilih option Semua. Jika
hanya ingin mengirim pada Group tertentu, maka pilih nomor Group yang diinginkan.
Jangan lupa, sebelum script tersebut dijalankan, service Gammu harus sudah dijalankan terlebih dahulu.
Script SMS Broadcast yang diberikan di sini hanya bisa untuk mengirim SMS dengan panjang karakter
tidak lebih dari 160 buah. Anda dapat memodifikasi script tersebut supaya bisa mengirim lebih dari 160
karakter (long SMS), dengan terlebih dahulu mempelajari tekniknya di:
http://blog.rosihanari.net/teknik-mengirim-long-text-sms-gammu-dengan-query-sql
Catatan:
Dalam tutorial ini, kita data phonebook kita manfaatkan tabel PBK yang sudah menjadi tabel bawaan
GAMMU. Anda bisa membuat tabel lain dengan field-field yang bisa ditentukan sendiri. Tabel ini tetap
dibuat di dalam database GAMMU (dalam contoh ini database SMSD).
PENTING !!!
Jangan sekali-kali mengubah struktur tabel-tabel bawaan GAMMU seperti inbox, sentitems, outbox, pbk
dll karena bisa mengakibatkan GAMMU tidak bisa berjalan (Error).

Konsep Membuat SMS REG dan UNREG


Pada bagian ini akan saya paparkan konsep bagaimana membuat script SMS Gateway dengan PHP untuk
layanan REG dan UNREG. Dalam contoh ini, bila seseorang mengirim SMS dengan format REG#NAMA,
maka secara otomatis no hp dan nama mereka akan tersimpan di tabel PBK atau phonebook di dalam
database Gammu. Setelah no hp tersebut tersimpan dalam tabel PBK maka Anda dapat mengirim SMS
broadcast ke seluruh no hp yang tersimpan. Kemudian bila seseorang mengirim SMS dengan format
UNREG, maka secara otomatis pula data no hp dan nama mereka di dalam tabel PBK akan terhapus.
Dalam script PHP ini, tersedia pula layanan auto reply atau auto response SMS. Sebagai contoh misalkan
seseorang mengirim SMS REG#NAMA, maka secara otomatis mereka akan mendapat balasan SMS
berbunyi TERIMA KASIH ANDA SUDAH MELAKUKAN REG, demikian pula sebaliknya jika mengirim SMS
UNREG.
Konsep membuat sms REG dan UNREG atau secara secara umum sms berbentuk sms auto reply atau
auto response adalah:
1. Baca SMS yang belum diproses di dalam tabel INBOX.
Untuk membedakan SMS yang belum diproses atau belum, bisa dilihat di field PROCESSED
yang terdapat di tabel INBOX dalam database SMSD. SMS yang belum diproses akan bernilai
FALSE pada field PROCESSED tersebut.
Data SMS yang dibaca pada tabel INBOX ini hanyalah SENDERNUMBER, TEXTDECODED dan ID.
SENDERNUMBER atau no hp si pengirim ini nanti digunakan untuk mengirim SMS balasan atau
akan diproses sesuai keperluan, TEXTDECODED untuk membaca isi SMS, dan ID yang nantinya
akan digunakan untuk menandai SMS yang sudah diproses atau belum.
2. Lakukan pemrosesan data SMS yang dibaca
3. Setelah data SMS dibaca, lakukan pengubahan status PROCESSED yang tadinya FALSE menjadi
TRUE pada data SMS yang ada di INBOX berdasarkan ID sms nya. Langkah ini untuk menandai
SMS yang sudah diproses sehingga untuk selanjutnya tidak akan diproses lagi.
Ketiga langkah di atas dilakukan secara terus menerus oleh script PHP yang kita buat. Sebaiknya proses
tersebut dilakukan setiap waktu interval tertentu misalnya setiap 5 detik sekali atau yang lain, asal
jangan terlalu lama dan jangan terlalu cepat misalkan 1 detik. Jika interval waktu proses terlalu lama
akan mengakibatkan SMS response atau balasan yang diterima oleh si pengirim juga semakin lama.
Sedangkan interval waktu proses yang terlalu cepat akan berefek tidak bagus jika jumlah data yang
diproses sangat banyak.
Dalam script PHP untuk proses REG dan UNREG ini terdapat 3 buah script yaitu: index.php, ajax.js dan
run.php. File index.php merupakan halaman depan script, file run.php digunakan untuk memproses
setiap sms yang masuk di dalam INBOX, dan file ajax.js digunakan untuk menjalankan script run.php
setiap interval waktu tertentu. Dalam contoh ini interval waktu yang dipilih adalah 3 detik (3000 mili
sekon).

Untuk menjalankan script SMS Gateway REG dan UNREG ini cukup dengan memanggil script index.php
melalui browser (http://localhost/reg atau http://localhost/reg/index.php).
Sebelum menjalankan script tersebut, jangan lupa untuk memindahkan folder reg yang berisi script ke
direktori web Anda di WWW atau HTDOCS. Jangan lupa pula untuk menjalankan service Gammu dan
mengubah konfigurasi koneksi MySQL di file koneksi.php.

Konsep Membuat Auto On Scheduled SMS


Auto On scheduled SMS atau SMS terjadwal adalah SMS yang secara otomatis akan terkirim pada saat
tertentu (tanggal dan jam tertentu) yang telah diset terlebih dahulu.
Untuk keperluan pembuatan Auto On Scheduled SMS ini, kita memerlukan sebuah tabel dalam database
guna menyimpan data SMS yang akan dikirim secara otomatis beserta schedule nya. Dalam contoh ini,
kita beri nama tabelnya sms_auto
Sedangkan untuk nomor-nomor hp tujuan yang akan dikirimi SMS otomatis ini, kita memanfaatkan tabel
pbk yang sudah ada.
Berikut ini struktur kolom (field) tabel untuk menyimpan data SMS dan schedule nya.
ID

SMS

SCHEDULE

STATUS

Keterangan:
Field ID digunakan untuk penanda setiap SMS terjadwal yang berupa bilangan bulat (INT)
autoincrement. Field SMS digunakan untuk menyimpan pesan SMS yang dikirim melalui auto on
scheduled. Tipe data field SMS ini adalah VARCHAR (160). Field SCHEDULE untuk menyimpan waktu
kapan SMS akan terkirim. Tipe data yang digunakan field SCHEDULE adalah DATETIME. Sedangkan field
STATUS digunakan sebagai penanda bahwa SMS tersebut sudah dikirim atau belum. Jika SMS belum
terkirim, kita akan beri tanda 0, dan jika sudah terkirim kita beri tanda 1.
Berikut ini cara membuat tabel sms_auto nya.
1. Masuk ke phpMyAdmin (http://localhost/phpmyadmin)
2. Masuk ke database Gammu (SMSD)
3. Buat tabel sms_auto pada database SMS tersebut dengan mengisikan nama tabel sms_auto
pada kotak CREATE NEW TABLE ON DATABASE dan isi 4 pada kotak NUMBER OF FIELDS

Lalu klik GO.


4. Kemudian isikan nama field dan tipe datanya sebagaimana tampak pada gambar di bawah ini

Kemudian klik SAVE


5. Sebagai tanda bahwa tabel sms_auto ini sudah berhasil di buat, Anda bisa melihat tabel
tersebut muncul di sisi sebelah kiri pada phpmyadmin.

Setelah sukses membuat tabel sms_auto ini, selanjutnya kita bisa masukkan beberapa data pesan SMS
beserta jadwal pengirimannya pada tabel. Adapun caranya seperti berikut:
1. Klik pada tabel sms_auto

2. Klik menu INSERT pada menu phpmyadmin

3. Isikan pesan SMS dan schedule nya pada kotak isian yang disediakan

Untuk mengisi schedule, klik tanda


(hh:mm:ss)

lalu pilih tanggal (YYYY-MM-DD) dan waktunya

Dalam contoh di atas, sms akan terkirim pada tanggal 14 Juni 2010 pada pukul 21:10
Catatan:
Untuk field ID, tidak usah diisi karena nantinya secara otomatis akan terisi sendiri begitu data
tersimpan.
Kemudian klik GO.
4. Jika Anda ingin menambah SMS terjadwal lagi, lakukan langkah yang sama.

Untuk melihat daftar SMS terjadwal yang sudah tersimpan dalam tabel sms_outbox, caranya klik tabel
sms_auto

Lalu klik menu BROWSE

Setelah diklik BROWSE akan muncul daftar SMS dan schedule nya sbb:

Setelah kita simpan beberapa data SMS terjadwal, selanjutnya kita bisa jalankan script PHP untuk
mengirim SMS nya secara otomatis. Sebelum menjalankan scriptnya, pastikan Anda sudah pindahkan
folder auto ke folder WWW pada direktori AppServ atau HTDOCS jika menggunakan XAMPP. Lakukan
konfigurasi pula pada koneksi MySQL nya di dalam script koneksi.php
Untuk menjalankan script auto onscheduled SMS ini, cukup buka URL http://localhost/auto
Ide dasar untuk membuat script auto on scheduled SMS ini adalah:
1. Cari data SMS di tabel sms_auto yang waktu schedule nya kurang atau sama dengan saat ini,
serta berstatus 0 (belum dikirim)
2. Dari hasil no. 1, baca ID dan isi dari setiap SMS nya
3. Untuk setiap SMS yang dibaca, kirimkan pada semua nomor HP.
4. Setelah selesai pengiriman, ubah status data SMS tersebut menjadi 1 (sudah terkirim)

Di dalam script run.php terdapat mekanisme mengubah status SMS yang sudah terkirim menjadi 1. Hal
ini dilakukan supaya SMS yang sudah terkirim ini tidak akan terkirim lagi (mencegah pengiriman ganda).
Waktu yang dipilih pada script Auto On Scheduled SMS ini berdasarkan WIB (Waktu Indonesia Barat).
Jika Anda berlokasi di WITA, maka editlah script run.php pada bagian
$sekarang = date("Y-m-d H:i:s", mktime(date("H")+0, date("i"), date("s"), date("m"), date("d"),
date("Y")));
Ubahlah menjadi
$sekarang = date("Y-m-d H:i:s", mktime(date("H")+1, date("i"), date("s"), date("m"), date("d"),
date("Y")));
Karena WITA adalah satu jam lebih dahulu daripada WIB.
Jika Anda berlokasi di WIT, ubahlah menjadi
$sekarang = date("Y-m-d H:i:s", mktime(date("H")+2, date("i"), date("s"), date("m"), date("d"),
date("Y")));

Anda mungkin juga menyukai