TELAH DIBUKA !!!

Toko Ebook Tutorial "RosihanAri.Net"


Free Ebook Tutorial from Rosihan Ari's Blog

Tutorial Javascript | Tutorial PHP Dasar | Tutorial AJAX | Tutorial CSS | Tutorial FPDF | Tutorial Wordpress



Slot iklan tersedia, pasang iklan di atas

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

Cara Membuat Script PHP Untuk Cek Pulsa Dengan Gammu


April 21st, 2010 | by rosihanari | Cetak Artikel Cetak Artikel

Banyak sekali pengunjung setia blog ini yang menanyakan bagaimana cara melakukan cek pulsa menggunakan Gammu. Pertanyaannya menarik juga, karena kebanyakan orang mengidentikkan Gammu hanya sebagai tool untuk pengolah SMS Gateway saja. Tapi… bisakah Gammu ini digunakan untuk cek pulsa juga? Setelah saya melakukan eksperimen sendiri beberapa waktu yang lalu, dan hasilnya ternyata …. “BISA” :-)

OK.. dalam artikel ini saya akan mencoba memaparkan cara melakukan cek pulsa dengan Gammu, baik melalui console (command prompt) maupun menggunakan script PHP.

Untuk melakukan cek pulsa dengan menggunakan Gammu melalui console (command prompt), caranya cukup mudah yaitu dengan menggunakan perintah sbb:

gammu getussd nocekpulsa

Sebagai contoh misalkan saya menggunakan kartu XL, maka perintahnya

gammu getussd *123#

Perintah di atas dijalankan setelah Anda masuk ke direktori Gammu nya.

Jika setelah Anda berikan perintah tersebut dan ternyata muncul keterangan “Press CTRL+C to break…” tunggulah sebentar karena Gammu sedang merequest perintah cek pulsa tersebut ke operator.

Oya… sebelum Anda melakukan cek pulsa dengan Gammu, pastikan bahwa konfigurasi di GAMMURC nya sudah tepat, khususnya parameter CONNECTION dan PORT nya. Untuk panduan lengkapnya, silakan baca Cara Setting Gammu.

Berikut ini tampilan yang muncul setelah perintah di atas diberikan

Cek Pulsa Gammu

Dari tampilan di atas tampak bahwa pulsa nya masih ada Rp. 2.000,-. Mmm.. tapi kok hasil requestnya rumit gitu ya? ada tulisan USSD Received, Status, Service Reply, dsb… belum lagi ada iklan dari XL yang banyak. Padahal inti terpenting dari keterangan tersebut hanyalah jumlah sisa pulsanya saja. Trus… bagaimana cara menampilkan hanya besar sisa pulsanya saja? He… 3x itu nanti kita lakukan dengan script PHP. Dengan script PHP kita bisa hilangkan beberapa informasi yang kurang berguna.

OK.. sekarang kita coba buat script PHP untuk cek pulsa dengan Gammu. Pada prinsipnya caranya sama seperti di atas yaitu dengan menjalankan perintah di console lalu hasilnya dibaca oleh PHP.

Di dalam PHP, terdapat function exec() yang digunakan untuk menjalankan perintah dalam console, dan keterangan hasil dari proses tersebut bisa ditangkap kembali oleh PHP untuk ditampilkan via browser.

So… script PHP untuk cek pulsa dengan Gammu adalah sbb:

cekpulsa.php

<?php
// jalankan perintah cek pulsa via gammu
exec("c:\gammu\gammu -c c:\gammu\gammurc getussd *123#", $hasil);

// proses filter hasil output
for ($i=0; $i<=count($hasil)-1; $i++)
{
   if (substr_count($hasil[$i], 'Service reply') > 0) $index = $i;
}

// menampilkan sisa pulsa
echo $hasil[$index];

?>

Keterangan:
Script di atas dibuat berdasarkan asumsi bahwa direktori Gammu berada di C:\gammu

Perintah

exec("c:\gammu\gammu -c c:\gammu\gammurc getussd *123#", $hasil);

digunakan untuk menjalankan perintah cek pulsa Gammu melalui console. Tapi… kok perintahnya beda dengan yang diberikan di atas? Ya… khusus untuk perintah console yang dijalankan lewat script PHP ini, path direktorinya harus jelas. Perhatikan pula, bahwa untuk perintah gammu getussd ini perlu ditambahkan path untuk GAMMURC nya (file konfigurasi). Bagaimana bila dihilangkan path GAMMURC nya? dari hasil eksperimen saya, ternyata tidak bisa. Oya, untuk cek pulsa ini, file yang diperlukan adalah GAMMURC, bukan SMSDRC.

Setelah perintah di console dijalankan, selanjutnya hasilnya disimpan dalam variabel $hasil. Selanjutnya bagian

for ($i=0; $i<=count($hasil)-1; $i++)
{
   if (substr_count($hasil[$i], 'Service reply') > 0) $index = $i;
}

digunakan untuk memfilter $hasil yang di dalamnya hanya terdapat string “Service Reply“. Mengapa harus string “Service Reply”? Perhatikan gambar hasil cek pulsa lewat console di atas. Keterangan jumlah sisa pulsa muncul pada baris output yang didahului dengan string “Service Reply”. Oleh karena itu kita hanya ambil saja baris output yang terdapat string “Service Reply”. Oya perlu saya tambahkan pula bahwa hasil dari perintah exec() ini adalah berupa array dimana elemen array nya adalah tergantung jumlah baris outputnya atau dalam hal ini nilai $hasil adalah berupa data array.

Trus.. mungkin Anda melihat bahwa pada gambar hasil cek pulsa di atas terdapat 2 buah baris yang di dahului dengan string “Service Reply”, nah… lantas mana yang diambil, karena keterangan sisa pulsanya muncul pada baris “Service Reply” yang terakhir, maka kita ambil saja index terakhirnya.

Sekarang, ini dia tampilan cek pulsa melalui script PHP yang dijalankan via browser.

Cek pulsa Gammu PHP

Script pengecekan pulsa di atas sudah diuji coba dan berjalan dengan lancar di modem Wavecom Fastrack.

Nah.. mudah bukan? Selamat mencoba ya… Semoga bermanfaat.


Baca Juga Artikel Terkait
Cara Supaya Service SMS Daemon Gammu Berjalan Otomatis di Windows
Menjalankan Script PHP Untuk SMS Gateway Tanpa Autorefresh Dengan AJAX
Setting Gammu untuk Aplikasi SMS Gateway
Setting Gammu Untuk Lebih Dari Satu HP/Modem
Membuat SMS Gateway Ucapan Ulang Tahun Otomatis dengan PHP + MySQL



Slot iklan tersedia, pasang iklan di atas


Kata kunci: cek pulsa gammu - gammu php - php sms - script php - sms gammu - SMS Gateway -


Ada 83 komentar dalam artikel ini.



  1. suhu says:

    ooo.. mungkin juga mas.
    ok thanks atas sharingnya

  2. juliyanto says:

    mas saya cek pulsa kok keluar error begini ya?
    Fatal error: Maximum execution time of 30 seconds exceeded in c:\gammu\cekpulsa.php on line 5

    tapi pakai console bisa..

    saya pakai gammu 1.27
    modem wavecom fastrack

    mohon pencerahannya pak

    • rosihanari says:

      @juliyanto: coba anda tambah execution time nya di php.ini misalnya menjadi 9000. Cari baris ini

      max_execution_time = …

      Lalu restart apache nya.

  3. firman says:

    Salam Mas
    saya coba gammu getussd *555*1#
    untuk cek pulsa sms. Kok nda bisa yaa
    saya menggunakan :
    os : ubuntu 10.04
    modem : itegno 3000
    gammu : 1.26.1
    keluar pesannya

    Press Ctrl+C to break….
    USSD received
    Status : Not supported
    Service Reply : **

    kira2 apa gerangan kesalahannya yaa Mas

  4. fauzy says:

    mohon pencerahan kalau cek koneksi gammu dimana settingan port dan koneksi diambil dari mysql?
    teriam kasih pak

  5. Yohanes says:

    syntax tsb berhasil dijalankan, tapi kadang mau dan kadang ngak, dan maunya itu pun hanya sekali
    stelah itu semacam tidak bisa dia hubungkan ke device modem sehingga tidak dibacanya pulsa yg sisa..

    apa solusi dari Mas Rosihan??
    kan untuk mngetahui sisa pulsa ini sangat diperlukan sekali utk user yg menggunakan sms gateway.

    Trim’s

    • rosihanari says:

      @yohanes: memang ada bbrp operator seluler yg respon USSD nya lambat mas, itu yg menyebabkan gagalnya cek pulsa.

  6. zainul says:

    Mas cek plsa ku gni trus: Press Ctrl+C to break…. sampe lama tu mas, pdhal wes pke xl, mnt pncerahannya ya…

  7. fahmi says:

    mohon pencerahan pak, bagaimana caranya jika kita akan mengirim sms ke beberapa nomor dari phone book, tapi kita pilih beberapa nomor tersebut dengan check list.

    browse >> pilih nomor telp tujuan >> ok

  8. irwan says:

    saya mau tanya untuk cek pulsa, jadi gini, saya menggunakan beberapa modem wavecom sekaligus, lalu saya mau cek pulsa menggunakan script php sesuai tutorial di blog ini, tapi pulsa yang dicek selalu nomor itu saja pdahal ada bberapa nomor. Nah, bgaimana scriptnya agar saya bisa mengecek pulsa sesuai nomor hp/modem yang saya ingin ketahui sisa pulsanya.

  9. Riyan Apri says:

    maaf mas,,
    mau tanya,,

    saya kan pake gammu 1.3

    nah kan sya jalankan perintah gammu-smsd.exe -c smsdrc..
    nah itu kan stand by terus supaya sms masuk n keluar bisa,,

    nah klo itu standby cek pulsanya ga bisa,,
    klo itu di stopin baru bisa,,
    kira2 gimana ya mas??
    masa saya harus balik ke server matiin terus liat cek jalanin lagi,,

    tolong donk mas..

  10. Riyan Apri says:

    waduh..
    ada cara ga mas biar bisa di client gtu,,
    jadi client biar bisa liat langsung gtu,,
    masalahnya servernya di tempat khusus,,
    ribet masuk keluar cuma harus cek pulsa,,

    help mas,,



 

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.


*