Kamis, 27 Januari 2011

Cara Membuat Script PHP Untuk Cek Pulsa Dengan Gammu

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:

view sourceprint?

1.gammu getussd nocekpulsa



Sebagai contoh misalkan saya menggunakan kartu XL, maka perintahnya

view sourceprint?

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

view sourceprint?

01.
02.// jalankan perintah cek pulsa via gammu

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

04.

05.// proses filter hasil output

06.for ($i=0; $i<=count($hasil)-1; $i++)

07.{

08. if (substr_count($hasil[$i], 'Service reply') > 0) $index = $i;

09.}

10.

11.// menampilkan sisa pulsa

12.echo $hasil[$index];

13.

14.?>



Keterangan:

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



Perintah

view sourceprint?

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

view sourceprint?

1.for ($i=0; $i<=count($hasil)-1; $i++)

2.{

3. if (substr_count($hasil[$i], 'Service reply') > 0) $index = $i;

4.}



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.

VN:F [1.9.7_1111]

please wait...

Rating: 9.7/10 (3 votes cast)

Cara Membuat Script PHP Untuk Cek Pulsa Dengan Gammu, 9.7 out of 10 based on 3 ratings

Beberapa artikel terkait



* Script PHP Untuk Menjalankan Service Gammu

* Membuat Script PHP Cek Status Service Gammu

* Script PHP Untuk Menghentikan Service Gammu

* Cara Supaya Service SMS Daemon Gammu Berjalan Otomatis di Windows

* Membuat Script SMS Flash Dengan Gammu dan PHP

* Menjalankan Script PHP Untuk SMS Gateway Tanpa Autorefresh Dengan AJAX

* Membuat Script SMS Auto Forward dengan PHP

* Membuat Script Remote Shutdown Komputer Via SMS dengan PHP

* Setting Gammu untuk Aplikasi SMS Gateway

* Setting Gammu Untuk Lebih Dari Satu HP/Modem

 
Design by Wordpress Theme | Bloggerized by Free Blogger Templates | Free Samples