Sunday 21 September 2014

Bitmap

Seperti yang sudah sedikit dibahas pada bab Tipe Message ISO 8583 didepan, komponen kedua dari Application Data yang terdapat dalam ISO 8583 ini adalah Bitmap. Apasih sebenarnya Bitmap ini ? Bitmap ini adalah sebuah komponen yang mempunyai panjang 16 karakter (atau lebih, tergantung apakah Secondary atau Tertiary Bitmap aktif atau tidak) dalam hexadecimal, dan nilai yang terdapat dalam bitmap ini digunakan untuk me-representasikan field atau Data Element keberapa yang aktif.

Sebuah message ISO 8583 kurang lebih pasti mempunyai satu bitmap yang biasa disebut sebagai Primary Bitmap, yang menandakan bahwa Data Element 1 sampai 64 aktif. Sedangkan Secondary Bitmap akan muncul jika Data Element 65 sampai 128 aktif, begitu juga untuk Tertiary/Third Bitmap digunakan jika Data Element 129 sampai 192 aktif walaupun jarang sekali sebuah message sampai menggunakan Tertiary Bitmap.

Bitmap ini bisa merupakan 8 bytes data binari ataupun 16 karakter hexadecimal dari 0-9, A-F pada ASCII atau EBCDIC karakter, sebuah field atau Data Element akan aktif jika nilai bitmap ini bernilai TRUE (ditandai dengan nilai 1). Sedangkan untuk field atau Data Element yang tidak aktif, akan bernilai FALSE (ditandai dengan nilai 0 [nol]) pada bitmap.

Agar lebih memudahkan penjelasan, sekarang mari kita masuk ke pembahasan yang lebih detail tentang bitmap pada sub-bab dibawah ini :
  • Cara Menghitung Bitmap

Cara Menghitung Bitmap

Pada penjelasan sebelum-nya kita sudah mengetahui ciri-ciri sebuah Bitmap, dan untuk kepentingan menghitung sebuah Bitmap ada beberapa poin penting yang harus selalu di ingat ketika ingin membaca atau membuat sebuah Bitmap. Poin-poin penting yang perlu dicatat yaitu :
  1. Ada 3 macam Bitmap, yaitu :
    1. Primary Bitmap, semua message ISO 8583 pasti mempunyai ini. Field atau Data Element yang aktif adalah 1-64.
    2. Secondary Bitmap, ini digunakan jika field atau Data Element yang aktif adalah 65-128. Ciri-ciri adanya Secondary Bitmap ini adalah bit pertama dari PRIMARY BITMAP pasti bernilai 1 atau TRUE
    3. Tertiary/Third Bitmap, ini digunakan jika field atau Data Element yang aktif adalah 129-192. Identitas adanya Tertiary/Third Bitmap ini adalah aktif-nya field atau Data Element ke 65
  2. Seluruh field atau Data Element yang TIDAK AKTIF AKAN BERNILAI 0 (NOL/FALSE) DAN UNTUK YANG AKTIF AKAN BERNILAI 1 (TRUE)
  3. Bitmap dapat berisi 8 byte data binary, atau
  4. 16 karakter hexadecimal (0-9 dan A-F) pada ASCII atau EBCDIC (lihat pada penjelasan informasi dibawah ini)
  5. Untuk mengetahui field atau Data Element mana yang aktif, kita harus mengkonversi nilai hexadecimal ke binary.
  1. Jika dalam 1 message yang aktif hanya Primary Bitmap saja, maka panjang Bitmap tersebut adalah 64 bit. Dimana 8 Byte Primary Bitmap == 64 Bit (Ingat 1 byte = 8 bits) :D
  2. Jika Secondary Bitmap aktif, maka panjang Bitmap akan menjadi 64*2 yaitu 128 bit atau bisa juga disebut menjadi 32 karakter hexadecimal. Begitu juga jika Tertiary Bitmap aktif.
Setelah mengetahui beberapa poin penting dalam menghitung sebuah Bitmap dan sebelum mulai untuk melakukan konversi, ada baiknya kita segarkan dulu pikiran kita kembali ke bangku kuliah :D yang membahas tentang konversi dari HEXA to BINARY to DECIMAL. Mungkin ada yang masih ingat tentang tabel konversi dibawah ini ?? Karena tabel dibawah ini akan kita jadikan sebagai acuan untuk mengetahui fieldatau Data Element mana yang aktif :) :


Tabel Konversi Decimal to HexaDecimal to Binary









Semua perlengkapan sudah siap, sekarang bagaimana jika kita mempunyai sebuah Bitmap seperti ini 5030004100010000 ? Field atau Data Element berapakah yang akan aktif ??


Untuk menghitung-nya, sekarang pecahkan 16 digit nilai Bitmap tersebut menjadi masing-masing 2 digit dan konversikan tiap 1 digit hexadecimal tersebut menjadi sebuah nilai binary seperti dibawah ini :

Hasil Konversi dari HexaDecimal ke Binary



















Nah jika sudah, sekarang rangkailah kembali nilai binary yang dihasilkan dari proses konveri dari hexa tersebut secara ber-urutan dari angka 50,30, 00, 41, 00, 01, 00 dan 00 tersebut menjadi seperti gambar dibawah ini :

Rangkaian Bitmap Dalam Binary






Dari gambar diatas, kita sudah bisa mengatahui field atau Data Element mana saja yang aktif. Dan karena pada Bitmap diatas kita tidak melihat adanya Secondary Bitmap maka kita akan melakukan pengecekan dari field ke 1 sampai field ke 64 yang bisa kita lihat seperti dibawah ini :

         1         2         3         4         5         6   64
1234567890123456789012345678901234567890123456789012345678901234    n-th bit
0101000000110000000000000100000100000000000000010000000000000000    bit map

Dan hasil akhir dari field atau Data Element yang aktif adalah sebagai berikut :


Hasil Akhir Data Element Yang Aktif





Hm… mudah bukan ? :)

Secondary Bitmap


Nah sekarang, bagaimana caranya untuk mengetahui atau meng-identifikasi adanya Secondary Bitmap ? Seperti yang sudah dijelaskna diatas, cara paling mudah identifikasi-nya yaitu 1 digit setelah 4 digit MTI (karakter pertama dari bitmap), jika dikonversikan ke binary digit awal-nya pasti bernilai 1 (TRUE) dan jika nilai-nya adalah 1 (TRUE) maka panjang Bitmap yang harus diambil adalah 32 karakter untuk keperluan melihat field atau Data Element yang aktif.

Sebagai contoh, sekarang mari kita tambahkan beberapa field atau Data Element yang sudah kita ketahui diatas menjadi seperti dibawah ini :

Contoh Data Element Dengan Secondary Bitmap




Setelah mengetahui Data Element yang aktif, sekarang mari kita coba konversikan menjadi sebuah Bitmap dengan mengisi 0 (nol) untuk Data Element yang tidak aktif, dan 1 (satu) untuk Data Element yang aktif. Dan hasil-nya kurang lebih menjadi seperti dibawah ini :


         1         2         3         4         5         6         7         8         9         0         1         2       128
12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678 n-th bit
01010000001100000000000001000001000000000000000110000000000000000000010000000000000000000000000000010000000000000000000111100000 bit map

Karena Secondary Bitmap kita aktif, sekarang rubahlah BIT PERTAMA dari Bitmap dibawah ini dengan angka 1 hingga hasil-nya menjadi seperti dibawah ini :

         1         2         3         4         5         6         7         8         9         0         1         2       128
12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678 n-th bit
11010000001100000000000001000001000000000000000110000000000000000000010000000000000000000000000000010000000000000000000111100000 bit map

Sekarang dari nilai binary yang sudah kita dapatkan, konversikan menjadi nilai hexadecimal dan kita akan mendapatkan nilai Bitmap yang kurang lebih hasilnya akan seperti gambar dibawah ini :


Bitmap Dengan Secondary Bitmap































Sampai disini penjelasan tentang bagaimana cara menghitung Bitmap sudah bisa dikatakan selesai :) Bagaimana ? Tambah bingung atau sudah sedikit mengerti ??? :D :)
Sekarang mari kita lanjut pada pembahasan komponen terakhir dari Application Data yaitu adalah Data Element :)

2 comments:

  1. mas waktu ngambil Data Element yang aktif, kalo angka 2 4 11 12 26 32 48 itu dari mana??

    ReplyDelete