«

»

Des 10 2011

Print this Tulisan

Mengambil Data dari Info Billing PLN

Postingan ini akan menjelaskan proses pengambilan data dari Info Billing PLN. Selanjutnya, proses tersebut akan dibungkus menjadi sebuah web API yang dapat diakses oleh berbagai aplikasi/sistem lain. Saya menyebutnya web API bukan web service, karena yang dikembangkan ini bukan benar-benar web service, seperti SOAP web service ataupun REST web service.

Web service punya standarisasi. Sebagai contoh, REST web service. Web service jenis ini biasanya menggunakan clean URL, yang pada URL tidak lagi terdapat ekstensi file seperti misalnya .php. Selain itu, cara komunikasinya menggunakan HTTP GET, HTTP POST, HTTP POST, HTTP DELETE. Sementara API (Application Programming Interface) merupakan istilah yang lebih umum. API adalah antarmuka (interface) yang mengizinkan aplikasi/program berkomunikasi dengan aplikasi/program/sistem lain. Dalam istilah web: API berarti antarmuka yang mengizinkan web browser atau web server berkomunikasi dengan aplikasi/program/sistem lain.

(akan ditulis kemudian)

Web API yang sudah jadi bisa diakses di sini:

http://apps.muhammadalvin.net/pln.php

Web API ini menerima input dari query string. Jadi, kita bisa mengaksesnya dengan cara seperti ini:

http://apps.muhammadalvin.net/pln.php?id_pelanggan=XXX

Atau dalam pesan HTTP:

GET /pln.php?id_pelanggan=XXX HTTP/1.1
Host: apps.muhammadalvin.net

Ada dua query string yang dapat diberikan, yaitu:

  • id_pelanggan, merupakan ID pelanggan berupa 12 angka
  • tahun, merupakan tahun dalam bentuk 4 angka

Output/response nya dalam bentuk JSON dengan struktur seperti ini:

{
    "status": true,
    "result": (object)
}

Item status bernilai true. Item result merupakan object dengan struktur berikut:

{
    "id_pelanggan": (string),
    "nama": (string),
    "alamat": (string),
    "daya_va": (string),
    "tagihan": (object)
}

Item tagihan merupakan object dengan key berupa string (yaitu tahun) dan item berupa object (kita sebut sebagai “item tagihan per-tahun”). Item tagihan per-tahun tersebut merupakan object dengan key berupa string (yaitu bulan) dan item berupa integer (yaitu besar tagihan dalam rupiah).

Contoh lengkap output adalah sebagai berikut:

{
    "status": true,
    "result": {
        "id_pelanggan": "120130000000",
        "nama": "MUHAMMAD ALVIN",
        "alamat": "JL. MARELAN VII GG. RAHAYU",
        "daya_va": "000000000000000900",
        "tagihan": {
            "2011": {
                "9": 110565,
                "8": 138880,
                "2": 124180,
                "1": 114925
            }
        }
    }
}

Dari contoh di atas, dapat diketahui informasi berikut:

  • ID pelanggan = 120130000000
  • Nama pelanggan = MUHAMMAD ALVIN
  • Alamat = Jl. Marelan VII gg. Rahayu
  • Daya = 900 watt
  • Tagihan September 2011 = Rp 110.565
  • Tagihan Agustus 2011 = Rp 138.880
  • Tagihan Februari 2011 = Rp 124.180
  • Tagihan Januari 2011 = Rp 114.925

Saat terjadi kesalahan, outputnya seperti ini:

{
    "status": false,
    "faultCode": (string),
    "faultString": (string)
}

Item status akan bernilai false. Kemudian, ada dua item yang menjelaskan kesalahan yg terjadi yaitu faultCode dan faultString.

Item faultCode akan bernilai:

  • Client, jika kesalahan terjadi akibat kesalahan client (pemakai web API), misalnya ID pelanggan yg diberikan tidak 12 digit atau bukan angka.
  • Server, jika kesalahan terjadi di sisi server (penyedia layanan).

Item faultString akan berisi penjelasan kesalahan yang terjadi.

Untuk menguji web API ini, lakukan request GET seperti yang ditunjukkan di atas. Cara paling sederhana adalah dengan membuka browser dan mengetikkan URL berikut query string dan datanya di address bar. Lalu, tekan ENTER.

Postingan selanjutnya akan ditulis untuk memberikan contoh penggunaan web service ini dari aplikasi lain yang akan kita buat.

Untuk mengambil source code web service ini, tambahkan query string ?source menjadi:

http://apps.muhammadalvin.net/pln.php?source

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • Google Buzz
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

Permanent link to this article: http://www.muhammadalvin.net/2011/12/mengambil-data-dari-info-billing-pln/

2 comments

  1. anggalih

    mas, mau tanya nih, berkaitan dengan tulisan anda, apakah ini bisa dijadikan semacam aplikasi Payment Online?
    makasih atas jawabannya.

    1. Muhammad Alvin

      Bisa. Tapi dengan pengembangan lebih lanjut.

Tinggalkan Balasan

Alamat surel Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="">