[SMS Gateway] Membuat SMS Gateway Ucapan Ulang Tahun Otomatis dengan PHP + MySQL
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:
SMS Ulang Tahun
SMS Ulang Tahun Running…
Script di atas akan melakukan autorefresh setiap 10 detik. Perhatikan perintah di bawah ini
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…