Free Ebook Tutorial from Rosihan Ari's Blog

Tutorial Javascript | Tutorial PHP | Tutorial AJAX | Tutorial CSS | Tutorial FPDF | Tutorial Wordpress | Tutorial Java SE


Produk yang direkomendasikan untuk Anda
Ebook Panduan Praktis SMS Gateway dengan PHP dan Gammu
Butuh modem Wavecom untuk SMS Gateway yang support Gammu dan dapat BONUS?? BELI SEKARANG


Membuat SMS Gateway Ucapan Ulang Tahun Otomatis dengan PHP + MySQL


February 19th, 2010 | by rosihanari | Cetak Artikel Cetak Artikel


GampSMS SMS Gateway

Seperti yang pernah saya janjikan dahulu, saya akan mencoba memposting artikel tentang aplikasi SMS gateway untuk membuat SMS ucapan ulang tahun secara otomatis dalam blog ini.

Jika Anda punya banyak teman dan Anda memiliki data tanggal lahir semua teman Anda, maka mudah-mudahan script yang dibahas dalam artikel ini akan bermanfaat. Oleh teman Anda, Anda akan dianggap sebagai teman yang sangat perhatian, karena setiap kali sang teman berulang tahun maka SMS ucapan ultah selalu terkirim ke dia tepat waktu tanpa meleset 1 hari pun, 1 jam bahkan 1 menit pun (kalo waktu di komputer Anda sama dengan waktu di rumah teman Anda … he 3x). Tapi jangan bilang ke temen Anda, bhw yang mengirim SMS ucapan ultah adalah program komputer ya :-)

OK, untuk membuat SMS ucapan ulang tahun otomatis ini kita memerlukan Gammu sebagai SMS daemonnya, HP tentu saja dan sebuah komputer yang senantiasa ON terus. Mengapa haris ON terus komputernya? ya.. kalo pas ada temen Anda yang ulang tahun namun kebetulan komputer Anda lagi mati, ya… SMS nya gak bisa terkirim. It makes sense, doesn’t it? :-) Oya, satu lagi Anda perlu XAMPP atau AppServ untuk menjalankan programnya, karena kita akan membuatnya menggunakan PHP + MySQL. Untuk mengetahui cara instalasi Gammu dan bagaimana cara mengintegrasikannya dengan MySQL silakan baca artikel cara setting Gammu.

Trus… untuk tabel datanya, apa saja yang dibutuhkan?

Untuk keperluan ini, kita buat 2 buah tabel. Tabel pertama untuk menyimpan data teman Anda. Data apa saja yang disimpan? cukup nama, nomor HP dan tanggal lahirnya saja. Tabel ini kita namai ‘friends’. Kemudian tabel kedua untuk menyimpan data SMS ucapan ultah yang telah terkirim ke teman Anda. Tabel ini kita namai ‘kirim’. Untuk tabel ‘kirim’ cukup memiliki field nomor HP dan tanggal kirim SMS saja. Tabel ini berfungsi sebagai pencegah pengiriman SMS ucapan secara berulang, karena script yang kita buat ini nanti menggunakan Auto Refresh atau dengan kata lain script ini berjalan secara otomatis pada selang waktu tertentu. Tanpa adanya tabel kedua ini, maka proses pengiriman SMS ucapan ultah bisa dilakukan beberapa kali. Oleh karena itu untuk tabel kedua ini, field nomor HP dan tanggal kirim SMS kita buat sebagai primary key.

Nah.. untuk kedua tabel di atas, berikut ini struktur tabel dan contoh datanya

CREATE TABLE `friends` (
  `noHP` varchar(30),
  `nama` varchar(100),
  `tglLahir` date,
  PRIMARY KEY  (`noHP`)
);
CREATE TABLE `kirim` (
  `noHP` varchar(30),
  `tglKirim` date,
  PRIMARY KEY  (`noHP`,`tglKirim`)
);
INSERT INTO `friends` VALUES ('08881111111', 'A', '1979-02-21');
INSERT INTO `friends` VALUES ('08120101010', 'B', '1980-09-07');
INSERT INTO `friends` VALUES ('08562810000', 'C', '1986-03-10');

Kedua tabel di atas nantinya dibuat di dalam database yang sama dengan tabel-tabel bawaan dari Gammu, seperti tabel INBOX, OUTBOX, SENTITEMS dsb…

Kemudian bagaimana ide dari script SMS ucapan ulang tahun ini. Idenya adalah pertama kali kita cari dulu data teman yang ada di tabel ‘friends’ yang tanggal lahir dan bulan lahirnya sama dengan saat ini (current date). Untuk tahun lahirnya tidak usah diperhatikan saja. Kemudian bila ada data teman yang tanggal dan bulan lahirnya sesuai dengan current date, kita baca nomor HP dan namanya. Proses selanjutnya adalah jangan langsung mengirim SMS ucapannya, namun kita simpan data nomor HP dan current date nya ke tabel ‘kirim’. Jika proses insert atau simpan data ke tabel ‘kirim’ ini berhasil barulah kita kirim SMS ucapannya ke tabel ‘OUTBOX’ yang sudah disediakan oleh Gammu. Namun jika gagal, berarti SMS ucapan sebelumnya sudah pernah terkirim. Proses insert data ke tabel ‘kirim’ ini gagal jika terdapat data nomor HP dan tanggal kirim yang sama, mengingat kedua field tersebut adalah primary key. Dengan demikian pasti ada jaminan bahwa SMS ucapan yang terkirim ke teman Anda tidak dilakukan berulang kali pada hari yang sama. Lantas bagaimana bila ulang tahunnya pada tahun depan? ya tidak ada masalah, kan current date nya sudah berbeda? sehingga proses insert data ke tabel ‘kirim’ pasti berhasil pada tahun depan.

Berdasarkan ide di atas, berikut ini implementasi script PHP nya:

<html>
<head>
   <title>SMS Ulang Tahun</title>
   <!-- refresh script setiap 10 detik -->
   <meta http-equiv="refresh" content="10; url=<?php $_SERVER['PHP_SELF']; ?>">
</head>
<body>
<h1>SMS Ulang Tahun Running...</h1>

<?php

// koneksi ke database mysql
mysql_connect("ldbhost", "dbuser", "dbpass");
mysql_select_db("dbname");

// baca tanggal sekarang
$tglNow = date("d");

// baca bulan sekarang
$blnNow = date("m");

// baca tahun-bulan-tanggal sekarang
$now = date("Y-m-d");

// cari data teman yang bulan lahir dan tanggal lahir sesuai pada current date
$query = "SELECT * FROM friends WHERE DAY(tglLahir) = '$tglNow' AND MONTH(tglLahir) = '$blnNow'";
$hasil = mysql_query($query);
while ($data = mysql_fetch_array($hasil))
{
   // baca nomor HP dan nama teman
   $noHP = $data['noHP'];
   $nama = $data['nama'];

   // insert data ke tabel kirim
   $query2 = "INSERT INTO kirim (noHP, tglKirim) VALUES ('$noHP', '$now')";
   $hasil2 = mysql_query($query2);

   // jika proses insert ke tabel kirim sukses maka kirim sms ucapan
   if ($hasil2)
   {
      // isi pesan SMS ucapan ultah, disertai nama temannya
      $pesanSMS = "Wahai sahabatku ".$nama.", Happy Birthday !! Semoga dengan bertambahnya usiamu, semakin bertambah pula amalan ibadahmu.";

      // proses kirim sms via insert data ke tabel outbox
      $query2 = "INSERT INTO outbox (DestinationNumber, TextDecoded, CreatorID) VALUES ('$noHP', '$pesanSMS', 'Gammu')";
      mysql_query($query2);
   }
}

?>

</body>
</html>

Script di atas akan melakukan autorefresh setiap 10 detik. Perhatikan perintah di bawah ini

<meta http-equiv="refresh" content="10; url=<?php $_SERVER['PHP_SELF']; ?>">

Bagaimana mudah bukan membuatnya? Bila teman Anda banyak, ya.. siap-siap modal yang banyak pula untuk biaya pengiriman SMS ucapan ultahnya :-) tapi gak ada masalah sih, bukankah persahabatan butuh pengorbanan? :-) Selamat mencoba ya…

Script sms ultah di atas sudah diuji coba dan berjalan dengan lancar di modem Wavecom Fastrack.




Share ke Facebook Share ke Twitter
Baca Juga Artikel Terkait
Membuat Auto Deletion (Hapus Otomatis) Data Dengan Script PHP
Script PHP untuk Arsip Artikel Berdasarkan Bulan dan Tahun
Membuat Paragraf Otomatis Dengan Script PHP
Script SMS Gateway dengan PHP dan MySQL
Ide Membuat Generator Kode Unik Incremental Otomatis

Kata kunci: script sms - sms gammu - SMS Gateway - sms gateway mysql - sms gateway php - sms ulang tahun -


Ada 36 komentar dalam artikel ini.



  1. wijayanto says:

    mas itu waktu pengiriman selalu jam12 ya??
    klo pengen mengatur waktu pengiriman gmana mas :o
    misalnya mau ngirim tepat jam 5 sore

    • rosihanari says:

      @wijayanto: sebenarnya bisa anda set langsung waktu dan tanggal pengiriman sms nya di field sendingdatetime dalam tabel OUTBOX nya.

  2. Prussian says:

    Pak, mau tanya. Apabila saya menggunakan web hosting, maka script tersebut nantinya sy taruh di hostingannya atau di localhostnya.

  3. tonbad says:

    Pak, untuk menjalankannya, apakah codingnya harus dibuka di browser? saya pernah denger istilah cron tab, itu gmana penjelasannya ya pak? terimaksih..

    • rosihanari says:

      @tonbad: tidak harus dibuka dibrowser tapi menggunakan cron tab. kalau tanpa crontab ya harus dibuka di browser.

  4. madeeby says:

    sy liat tutorial anda pesannya itu dikirim otomatis berdasarkan tanggal dan bulan.
    yg sy ingin tanyakan bagaimana jika pesannya itu dikirim otomatis berdasarkan hari, jd anggap pesanx dikirim tiap minggu?? bisa gak n gmana carax?
    trims :)

  5. Moehac says:

    Script diatas akan selalu refresh, apakah nanti tiap kali refresh akan selalu mengirim sms pak? karena tiap kali refresh pasti akan menccokan tanggal

    • rosihanari says:

      @moehac: iya mas, tapi anda tidak perlu merefresh berulang kali scr manual krn bisa menggunakan AJAX atau JQuery.

  6. Fidri says:

    mau nanya nih, kalau yang script php nya itu di ketiknya dimana,disimpan nya dimana,?
    makasih.



 

Komentar/pertanyaan Anda!

Mohon maaf, komentar/pertanyaan yang menggunakan email palsu atau komentar bernada negatif, cemooh, umpatan, cacian atau sejenisnya secara otomatis akan terhapus karena dianggap spam dan tidak akan tampil

Dimohon jangan pula memasukkan code program dalam bentuk apapun ke dalam komentar karena akan dianggap spam.

Mohon maaf jika seandainya ada beberapa pertanyaan Anda yang tidak direspon atau ditanggapi mengingat banyaknya komentar yang masuk dan keterbatasan kemampuan/ilmu saya dalam menjawab pertanyaan satu persatu. Saya harap Anda bisa memahami dan memakluminya.

Semua komentar atau pertanyaan yg masuk tidak akan langsung tampil di halaman ini, karena akan dimoderasi dahulu.


*