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

Catatan :
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 autoresponder

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.

Jika Anda ingin mencobanya di rumah, script php dan database download di sini.

Related posts :

  1. Aplikasi Penunjuk Jam dan Hari Saat Ini
  2. Sms Gateway : Membuat Auto Responder Sederhana (Bag. 1)
  3. Sms Gateway : Membuat Auto Responder Sederhana (Bag. 2)
  4. SMS Gateway : Aplikasi Polling SMS Sederhana
  5. SMS Gateway, Alexa Rank, dan WordPress 2.8.6
  6. Mengirim SMS ke Banyak Nomor Sekaligus (Bulk SMS) Dengan NowSMS

Incoming search terms for the article:

aplikasi sms gateway :: tutorial sms gateway :: contoh aplikasi sms gateway :: absensi siswa :: aplikasi absensi siswa :: tutorial sms gateway php :: aplikasi sms gateway dengan php :: sms gateway php :: absensi php :: contoh sms gateway :: contoh program sms gateway :: tutorial sms gateway dengan php :: membuat absensi siswa dengan php :: program absensi siswa :: aplikasi penilaian siswa ::

60 Comments

  1. Admin says:

    @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.

  2. yuni cicit says:

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

  3. fahmineo says:

    heeemm,……………..

  4. aldi says:

    bos admin gw masih ada error nih di script yang ini $textarray = explode(‘ ‘, $pesan);
    kira2 salah nya apa….

  5. rizal says:

    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 :)

  6. Andi says:

    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 ^_^

  7. makki says:

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

  8. wisnu says:

    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…..

  9. antonius key says:

    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 ?

  10. aryo says:

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

Anda boleh berkomentar di sini. 100% gratis.


Switch to our mobile site