Templates by BIGtheme NET

Aplikasi Informasi Absensi Siswa Dengan SMS Gateway

Beberapa minggu yang lalu saya baca di sebuah surat kabar online yang menyatakan bahwa sebuah SMU di Jogjakarta telah memanfaatkan teknologi sms gateway untuk menunjang aktivitas akademik.

Dengan teknologi tersebut, orang tua siswa tidak perlu lagi datang ke sekolah untuk memastikan anaknya tidak bolos. Cukup kirim SMS dengan format dan nomor tujuan yang telah ditentukan, beberapa detik kemudian jawaban tentang keberadaan siswa tersebut di sekolah sudah diterima.

Nah, sekarang saya ingin membuat sebuah aplikasi dengan fungsi yang mirip-mirip dengan aplikasi di atas.

Dengan aplikasi ini, jika kita mengirim SMS ke nomor tujuan tertentu dengan format :

ABSEN (spasi) NIS (spasi) BULAN

maka kita akan mendapatkan informasi tentang jumlah hari absen siswa dengan NIS (nomor induk siswa) tertentu pada bulan tertentu.

Misalnya : ABSEN 0979843 Agustus

Agar dapat mengikuti tulisan ini dengan baik, sebaiknya Anda baca juga :

Sms Gateway : Membuat Autoresponder Sederhana (Bag. 1)
Sms Gateway : Membuat Autoresponder Sederhana (Bag. 2)
Sms Gateway : Aplikasi Polling Sms Sederhana

Database Absensi

Untuk dapat menjalankan aplikasi ini, tentu saja kita harus punya database yang berisi tentang absensi siswa. Mula-mula buatlah database dengan nama “absensi”, kemudian buat table dengan script di bawah :

CREATE TABLE IF NOT EXISTS `absen` (
`nama_siswa` varchar(25) NOT NULL,
`ni_siswa` varchar(6) NOT NULL,
`bulan` varchar(10) NOT NULL,
`absen` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

INSERT INTO `absen` (`nama_siswa`, `ni_siswa`, `bulan`, `absen`) VALUES
('Budi Harjo', '092340', 'Agustus', 2),
('Siti Nurhaliza', '092341', 'Agustus', 0),
('Rahmawati', '092342', 'Agustus', 9),
('Agus Sofyan', '092343', 'Agustus', 1),
('Moh. Yanto', '092344', 'Agustus', 3),
('Kris Dayati', '092345', 'Agustus', 0),
('Rohmat', '092346', 'Agustus', 14),
('Budi Harjo', '092340', 'September', 3),
('Siti Nurhaliza', '092341', 'September', 1),
('Rahmawati', '092342', 'September', 7),
('Agus Sofyan', '092343', 'September', 4),
('Moh. Yanto', '092344', 'September', 2),
('Kris Dayati', '092345', 'September', 1),
('Rohmat', '092346', 'September', 11);

Script Php Untuk Mengolah SMS Masuk

Setelah database terbuat, kita membutuhkan sebuah script Php yang akan mengolah SMS yang masuk, dan memberi respon sesuai permintaan :

<?php

function koneksi(){
// konfigurasi database
// sesuaikan dengan konfigurasi Anda
$user = "root";
$pass = "";
$db = "absensi";
$host = "localhost";
$konek = mysql_connect($host, $user, $pass);
mysql_select_db($db, $konek);
}

// Ambil data dari url, yaitu url yang Anda masukkan
// pada kolom Command to execute di NowSMS
$sender = $_GET['sender'];

// Pisahkan NIS dan Bulan
$pesan = $_GET['pesan'];
$textarray = explode(' ', $pesan);
$ni_siswa = $textarray[0];
$bulan = $textarray[1];

// Look up data di database
koneksi();
$sql = "SELECT * FROM absen WHERE ni_siswa='$ni_siswa' AND bulan='$bulan'";
$qry = mysql_query($sql);
$row = mysql_fetch_array($qry);
$nama_siswa = $row[nama_siswa];
$absen = $row[absen];

// Jika nama siswa ada spasi, ganti spasi dengan tanda +
$words = explode (' ', $nama_siswa);
$nama_siswa = join('+', $words);

// Memberi respon (autorespon) terhadap sms yang masuk
header("Location:http://127.0.0.1:8800/?PhoneNumber=$sender&Text=$nama_siswa+pada+bulan+$bulan+absen+
sebanyak+$absen+hari");

?>

Simpan script di atas dengan nama absensi.php

Memberi Perintah ke SMS Gateway

Langkah berikutnya adalah memberi perintah kepada gateway (NowSMS) untuk menjalankan script absensi.php setiap ada SMS yang masuk :

  1. Jalankan NowSMS, dan buka tab 2-Way.
  2. Beri tanda centang pada Process Received SMS Message
  3. Biarkan Character Set pada posisi default, yaitu utf-8
  4. Ketikkan “ABSEN” (tanpa tanda petik) pada kolom SMS Command Prefix, yang artinya hanya sms dengan kata pertama “ABSEN” saja yang akan diproses
  5. Ketikkan nomor handphone penerima sms, yaitu nomor handphone yang tersambung ke komputer, pada kolom Receive Phone Number(s)
  6. Ketikkan “http://localhost/sms/absensi.php?sender=@@SENDER@@&pesan=@@SMS@@” (tanpa tanda petik) pada kolom Command to Execute
  7. Klik Add

sms gateway absensi

Kesimpulan

Cobalah kirim SMS dengan format :

ABSEN (spasi) 092341 (spasi) September

dan kirim ke nomor HP yang berfungsi sebagai SMS server, maka Anda akan mendapat balasan sebagai berikut :

Siti Nurhaliza pada bulan September absen sebanyak 1 hari

Cek respon yang Anda dapat dengan data di database Anda.

Aplikasi di atas adalah sebuah contoh aplikasi SMS interaktif yang masih sangat sederhana. Aplikasi ini saya buat sekedar untuk menunjukkan bagaimana mengolah SMS yang masuk dan memberi respon dengan mengambil nilai-nilai (value) dari database.

Jika Anda ingin menerapkan aplikasi ini di sekolah Anda, tentu saja aplikasi ini masih banyak kekurangan yang harus disempurnakan.

71 comments

  1. thank’s ya mas

  2. Al hamdulilah, akhirnya yang ditunggu dtg juga, terima kasih buat Mas Admin, atas tutorial nya yang sangat bagus, semoga jadi amal buat Mas, dan bermanfaat buat kita semua.

  3. mas..file2 php’nya itu disimpan dmn mas??
    maaf sy mse awam..
    sy menggunakan wamp5 ..
    di folder www itu ya mas?? sy sh buat folder sms ddlm fol www itu..
    tp mse tdk ada respon.tlg bntuanna..

  4. gimana script supaya jika formatnya salah, pengirim mendapatkan respone info gt mas???

  5. wah… makasih bgt ya mas…

    seperti dpt angin segar nih….
    tulisannya simple, bagus, dan sangat bermanfaat.

    sekali lagi makasih ๐Ÿ˜€

  6. @vie :
    – Kalau di WAMP disimpan di bawah foler www
    Silahkan baca dulu :
    Sms Gateway : Membuat Auto Responder Sederhana Bag. 1
    dan
    Sms Gateway : Membuat Auto Responder Sederhana Bag. 2

    – Kalau mau cek apakah format sms yang diterima sudah sesuai, maka explode dulu semua isi sms, misalnya : $words = explode(‘ ‘, $isi_sms);
    kemudian nilai yang tersimpan di array $words di cek sesuai dengan format tidak,
    pakai logika program if … else … endif.

    @dika :
    You’re welcome

  7. waahh..siip neh. bisa di modif. thanks y mas

  8. manstab….
    mau tanya donk mas,,klo kita punya hosting mu dibikin sbg sms gateway caranya gmn?

    tempebasah.com

  9. @tempe : baca kembali bag. Memberi Perintah ke SMS Gateway point no. 6. Ketikkan url yang menuju ke file di web anda misalnya : http://namadomainku.com/sms/absensi.php?sender=@@SENDER@@&pesan=@@SMS@@

    Tentu saja komputer Anda, dimana gsm modem terpasang, harus konek ke internet.
    Selamat bereksperimen.

  10. wah makasih mas… ilmu yang bermanfaatnya… smoga jadii amal jariyah… amin ๐Ÿ™‚

  11. nowsms kan berbayar mas, itu seandainya dah hilang masa trialnya gimana ?

  12. @eko narimo : Terima kasih atas doanya. Amiiiin.

    @aagun2006 : masa trial 60 hari. Habis itu ya harus beli.

  13. mas di percobaan kali nin saya pakek hp siemen c55, dan di komputer managemen terdeteksi sebagai port com5. apa g masalah? cos aku uda ikuti step2 itu berkal2 dan kok g bisa ngbales.di tunggu jawabannya.

  14. Terima Kasih atas programnya, tapi saya mohon pencerahan dong, saya sudah mencoba dengan script yang diberikan. System sudah bisa nerima smsnya tapi kok gak ngebalas ya? Saya sudah coba berulangkali dan sudah saya sederhanakan scriptnya tanpa pengolahan database pun tidak bisa juga. Kenapa ya? Tolong jawabannya. Trims

  15. mas admin, mohon pencerahan donk..
    maksudnya ambil data dari URL itu apa? kok kita bisa tau kalo data itu yang akan dieksekusi di NowSMS?
    kalau dr contoh yg di atas kan "ABSEN NIS(berupa karakter) BULAN(berupa karakter juga)". nah kalau misalnya saya bkin program neh, input data dr pengirim berupa gabungan karakter n numerik, itu gmn caranya? makasi sebelumnya..

  16. makasih program nya, pas saya coba ko hp ga autorespon(ngga bales)? kenapa ya?

  17. mas / mbak admin bsa bntu g.saat ne sya lg bkin Tugas Akhir SMS Gateway caranya membuat beberapa autorespond pada satu nowSMS gmn y.contohnya autorespon Absensi dan Nilai.Makasih…..:)

  18. buat temen2 yang lagi belajar sms autorespond add me!! on facebook… (fendi rahman)

  19. sms absensi autorespond nya sudah jalan, cuman sms balasan nya ada 2.
    yang kedua kali nya (command not completed, request returned invalid content type:text/html)
    bagaimana ngilangin nya, Y?

  20. Mas,kalo data siswanya banyak, harus diketik manual satu persatu ya?

  21. @dhimas :
    Lha kalau nggak diketik gimana dong mas ?
    Ada ide ?

  22. sms absensi autorespond nya sudah jalan, cuman sms balasan nya (command not completed, request returned invalid content type:text/html),salah dimana ya mas?thx.

  23. mantap artikelnya…

  24. Mas.., tutorial mas sudah saya coba dan sukses, namun ada namun nya mas. tiba-tiba Kasek minta dibuatkan seupaya jika ada keperluan mendadak kasek bisa memberitahukan kepada setiap guru yang terdaftar no hp-nya. secara sekaligus mas…, jadi biar nggak bolak-balik sms. Pake now sms gimana caranya mas…, mohon dibantu selengkap-lengkapnya….he..he…
    thanks berat sak b4e……………..

  25. @syawal :
    Ok pak. Ditampung dulu request-nya.

  26. kalo harganya berapanya? dimana belinya? apa harus beli online??
    mohon pencerahannya?

    thx b4

  27. harga nowsms maksudnya

    thx

  28. [SMS]
    SubmittedBy=127.0.0.1
    Data=Terima kasih. Informasi Anda akan segera kami tindaklanjuti.
    PhoneNumber=627617654329
    [ErrorDetail]
    RetryCount=8
    LastRetryTime=20100206100210
    LastErrorInfo=ERROR – Modem Response (2): +CMS ERROR: 111 — Bluetooth Modem

    (Udah saya ulang beberapa kali, tapi tetap gak mau autorespond-nya. Saya cek di Outbound SMS Queue nya, Kata2 spt diatas. Tolong tunjukin caranya pak)

  29. sorry pak sudah bisa autorespondnya. he he ternyata penyebabnya kerena HP nya kehabisan pulsa. ๐Ÿ˜€

  30. @angkasa :
    Harganya bisa dilihat di nowsms.com

    @SAFA :
    Syukurlah kalau sudah berhasil.

  31. koq auto respondnya gak bisa ? apa harus pake nowsms versi yg terbaru yah ? soalnya sy pake yg versi 2007

  32. auto respondnya gak bisa mas… apa harus pake nowsms versi yg terbaru yah ? soalnya sy pake yg versi 2007

  33. pa kabar Pak.. mohon pecerahannya ya Pak atas permasalahan saya berikut ini.

    saya udh coba tes sms autorespond dan dapat balasan 2 sms. pertanyaan saya sama seperti yang ditanyakan teman berikut :

    kiki says:
    sms absensi autorespond nya sudah jalan, cuman sms balasan nya ada 2.
    yang kedua kali nya (command dhimas says:
    December 13, 2009 at 3:26 pm

    dhimas says:
    sms absensi autorespond nya sudah jalan, cuman sms balasan nya (command not completed, request returned invalid content type:text/html),salah dimana ya mas?thx.

    jadi inti pertanyaan saya dan teman lainnya adalah :
    1. kenapa ada 2 sms balasan.
    2. sms pertama isi pesan balasannya benar seperti apa yang kita inginkan.
    sms kedua isi pesannya berikut ini (command not completed, request returned invalid content type:text/html).kenapa bisa timbul sms yang kedua ini dan kenapa bisa muncul pesan error ini.
    3. gimana caranya supaya sms balasan yang kita terima cuma 1 sms saja yaitu sms yang asalnya dari script respon yang yang telah kita bikin.

    tambahan satu lagi buat teman-2 :
    jika sms balasan tidak diterima coba no hp dikasih kode area berdasarkan standar penulisan nomor internasional. hal ini berhasil dari percobaan saya dan sms terkirim dengan sempurna tapi sayang sms dikirim ada 2 sms yang mana yang sms 1 betul sesuai harapan dan sms 2 tidak sesuai harapan..

    sebelumnya saya ucapkan terimakasih karena bapak mau membantu saya.

    bagi teman yang mengetahui solusi masalah diatas share ilmunya disini ya..
    balasan bisa via email ke awenkaja@gmail.com.

  34. Informasi yang sangat bermanfaat dan menggugah, mengingat sy sbg guru he he he

  35. gaq jalan paq..
    napa yach ???

  36. Mas, saya punya database sbb :

    CREATE TABLE IF NOT EXISTS `masterbuku` (
    `kd_kategori` varchar(6) NOT NULL default ”,
    `judul_buku` varchar(250) NOT NULL default ”,
    `jumlah` int(2) NOT NULL default ‘0’,
    `stock` int(2) NOT NULL default ‘0’,
    `status` varchar(25) NOT NULL default ”,
    `no_induk` varchar(10) NOT NULL default ‘0’,
    PRIMARY KEY (`kd_kategori`,`no_induk`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

    Yang saya inginkan, saya mau membuat sms gateway autoreply, misalnya saya ketik “KODEKode-Kategori” tapi yang muncul di balasannya adalah “Kode yang Anda minta berjumlah dan stock yang tersedia . Terima Kasih….”

    Mohon bantuannya mas, saya butuh sekali mas…. Terimakasih sebelumnya mas….

  37. Error: Invalid Parameter
    Invalid format for telephone number.

    plisss dmn penyebabnya ????

  38. hai bapak..

    saya sudah menginstall dan menuruti setiap langkah yang diterangkan di dalam tutorial bapak, dan menggunakan now sms, tetapi..

    setiap kali saya menghantarkan arahan ABSEN (spasi) 092341 (spasi) September

    ia akan masuk ke dalam handphone dan tiada balasan..

    saya menggunakan nokia n95 8gb…

    bapak, bisa bantu saya?

    terima kasih di atas bantuan.. ๐Ÿ™‚

  39. hai bapak..

    boleh bantu saya, saya menggunakan nokia n95 8gb, adakah handphone ini menyokong untuk 2 way sms, kerana sms yang dihantar ke handphone tersebut sampai, tetapi untuk balasan absensinya tidak sampai..

    jika, perlukan ongkos bagi proses pembelajaran dan support, saya bisa bayar, tetapi berapa ya?

    mohon bantuan dari bapak.

    hisyam

  40. salam semua..

    dan saya telah berjumpa dengan masalah yang dihadapi oleh handphone nokia, iaitu ia tidak boleh membuatkan nowsms membaca AT command ataupun membaca mesej dalam inbox handphone kita, dan untuk nokia s60 1st and 2nd generation, boleh menggukann yang dinamakan ginapplet dan boleh download di sini..

    http://www.gnokii.org/download/gnapplet/

    dan pilihlah ginapplet.sis ..

    tetapi untuk nokia n95 8g ia telah menggunakan symbian 60 3rd generation, iaitu memerlukan extension .sisx.. tetapi telah saya cari2 masih lagi tidak ketemu.. dan jika ada sesiapa yang boleh membantu untuk mengubah extension ini, silakan ya pak..

    dan, selamat berjaya kepada yang memakai nokia yang 1st dan 2nd genaration, dan jangan lupa untuk install nokia pc suite dulu dan barulah buat sambugan ke now sms gateway.

    http://www.nokia.com.my/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download

    selamat berjaya.. dan terima kasih di atas perkongsian yang hebat ini.. ๐Ÿ™‚

    hisyam,
    dari malaysia

  41. @Hisyam :

    Terima kasih atas informasinya yang sangat bermanfaat.

    Saya sering mendapat laporan bahwa script saya tidak berjalan dengan baik di Nokia. Kalau menemui masalah seperti ini, saya selalu menyarankan untuk memakai Sony Ericsson, dan pada biasanya problemnya selesai.

    Ternyata masalahnya adalah seperti bro Hisyam sampaikan.

    Terima kasih.

    :sungkem

  42. Mas admin…

    Kya yg dsbutin om hisyam diatas, apa bener nowsms milih2 hape nokia?? Soalny hape saya g bs autoresponnya…
    Hape saya s40 soale!

  43. mas, saya dah baca semua artikel nya anda dan sudah mencoba semuanya… tapi setelah saya coba ternyata autorepondnya tetap nggak bisa..

    mohon bantuannya, terima kasih

  44. untuk nowsms dah bisa buat ngirim pesan, cuma untuk inbox nya langsung masuk ke hape.. dan autotespondnya nggak bisa jalan.. saya memakai hp 3250 …

    terimakasih

  45. mas admin mw tnya… klo script spt diatas,klo mw dibuat sot formay slah gmn ya??? saya sdh cb tp ko g berhasil ya…. mohon pencerahannya…

  46. gmn mas admin… klo mw bwt klo format salah ad jwban sndri…

  47. mas mau nanya saya dah download smsbulknya tapi ketika saya jalankan muncul tulisan
    Error: Invalid Parameter
    Invalid format for telephone number. , padahal kalau pake http://localhost:8800/ program bawaanya mau kirim sms, mohon bantuannya …

  48. trima kasih semua tutorialnya mas dah tak coba jadi semua, tapi ini ada beberapa masalah rencana kami mau bikin sms pengaduan pelayanan gangguan dengan now sms dari beberapa wilayah yang masing2 wilayah punya operator ( pimpinan + punya hp). wilayah A dengan kode 01789, B dgn kode 02123, C dng kode 03235 dan D dgn Kode 04235 ( untuk kode 2 digit depan nomor wilayah, 3 digit belakangnya nomor pelanggan). misal di wilayah B pelanggan nomor 02123 melaporkan gangguan , gimana mas biar sms tersebut masuk ke operator (pimpinan B) dan di server merekam dan menampilkan semua sms laporan yang masuk. trimakasih mas….. semoga mas bertambah ilmunya……….

  49. Terimakasih atas tutorialnya yang sangat bermanfaat, tetapi bisakah script diatas diganti gateway-nya menggunakan gammu bukan NowSMS? Kalau bisa mohon penjelasannya. Terimakasih

  50. @reza : Wah jawabnya bakal panjang tuh pak. Tidak bisa dijawab dikolom ini. Silahkan email saya.
    @hamdan : Skripnya sih bisa dipakai persis. Tinggal ganti gateway-nya saja.

  51. kalo sms absennya ada 3 kategori alpa, ijin, sakit, script sms gateway nya gimana?

  52. heeemm,……………..

  53. bos admin gw masih ada error nih di script yang ini $textarray = explode(รขโ‚ฌหœ รขโ‚ฌหœ, $pesan);
    kira2 salah nya apa….

  54. Pak, 2 hal yang ingin saya sampaikan:

    1. Program NowSms sekarang udah nggak gratis lagi. Saya boleh minta program yang ful-version nya pak? tolong dikirim ke email saya. Terima kasih.

    2. Pada Artikel “mengirim sms ke banyak nomor”, saya ingin membuat sebuah tombol “check all / select all”. Bagaimana caranya, agar semua nomor bisa select-all / terpilih semua dengan satu klik tombol??

    terima kasih atas bantuannya, pak. Artikel anda sangat bermanfaat ๐Ÿ™‚

  55. Tutorialnya sudah saya coba Mas. awalnya saya coba ke hape Nokia 7610 tapi cuma bisa ngirim sms gak bisa nerima. yang sukses hanya yang Bulk SMS. semalaman saya begadang nyobain tutorial ini tapi belum sukses juga autoresponder-nya. besoknya saya masih penasaran. saya coba dengan HP lain yaitu nokia 6820 dan ternyata program sms absensi dan sms polling sukses. ternyata masalahnya gara-gara hape yg gak support. Makasih banyak Mas. salam kenal ^_^

  56. mas kalo cara validasi jika sms nya salah formatnya lalu muncul auto respond gimana ya???

  57. tutorial yang bagus, mas saya sudah coba dan sukses lancar, kalo format penulisan salah misalnya cuma tulis “ABSEN” saja, balasan otomatisnya “pada bulan absen sebanyak hari”, kalo penulisannya salah supaya muncul pesan pemberitahuan salah gimana mas ? (maksudnya format sms pengirim harus lengkap sesuai yang kita tentukan), makasih sebelumnya…..

  58. antonius key

    mas, kok saya coba tapi smsnya malah masuk ke inbox modem sih ??
    biar masuk dan bisa respon dari database gimana ? kira-kira dimana yah letak kesalahan saya ?

  59. makasih gan share ilmunya.
    klo boleh request .gimana bikin inbox dari all operator di komputer.kemudian sms yang masuk tampilannya urut berdasarkan digit nomernya.

  60. kak aku sisawa smk ,, bentar lagi kelas 3 ,, TA yang bagus tuh bikin apa ia ??
    aku di jurusan REKAYASA PERANGKAT LUNAK ,, software ? sarannya ..

  61. infonya sngt brmnfaat. sy sudah coba tutorialnya dari autorespon 1 dan 2 berjalan baik. tp di plajaran slanjutnya yaitu informasi absensi it bermasalah. pertanyaan saya knp sms balasannya hanya tersimpan di now sms. trimakasih sblmnya.

  62. wow asyik nich bisa ditiru ….

  63. minta aplikasi nowsms donk mas kirim ke email saya y makasih??

    ohy klw pake wap 3.0 bs gak???

  64. mas kok gak ada balasan dari now smsnya…???? kalo make modem gak bisa ya?? apa harus make hp??? terima kasih

  65. programnya sudah jalan ngga’
    boleh ngga kasih hasil tes an yg dah jadi

    tq

    • @rizki: semua program yang ada di situs ini sudah saya coba dan jalan, kalau gak jalan gak akan saya share. scripnya dah ada di dalam artikel, tinggal dipakai.

  66. tutor nya keren gan .. . .
    tapi saya ada masalah pada saat autorespon nya ..
    jd “$nama” itu tidak muncul .. . knp ya???

  67. gan . .aku mau tanya nihhh . . .
    kalo misalkan lebih dari satu table gmn ya gan . . ???
    kayak join table gitu . . ??? gmn yaa

  68. fauzi arianto

    Bang Admin, Ane coba Yang Absensi Ini Og selalu muncul pesan di Outbox SMS Queue ” ERROR – Modem Response (2): +CMS ERROR: 500 — Sony Ericsson W200 USB WMC Modem ” Solusinya Bagaimana ya?? terimaksih

  69. fauzi arianto

    Ketemu Solusinya,, Ternyata dengan menggunakan Kartu Selain IM3 Banyak Kendala, Mulai tidak terbalas smpai nilai absennya tidak muncul, Ane pakek Kartu AS dan 3 kedua masalah itu muncul, tapi dengan IM3 semua beres

Tulis komentarmu

%d bloggers like this: