Bitmap
Contoh perhitungan bitmap dari awal dengan kasus yang sederhana agar konsepnya mudah dipahami.
Anggap kita punya sistem untuk mengirim data profil pengguna yang memiliki 8 kemungkinan kolom data (field):
Nama Depan
Nama Belakang
Email
Nomor Telepon
Tanggal Lahir
Kota
Provinsi
Kode Pos
Tidak semua data ini akan selalu dikirim. Di sinilah bitmap berperan untuk memberitahu kolom mana saja yang ada di dalam pesan.
## Langkah 1: Tentukan Data yang Akan Dikirim
Misalkan, kita mau mengirim pesan yang hanya berisi data berikut:
Nama Depan (Field ke-1)
Email (Field ke-3)
Nomor Telepon (Field ke-4)
Kota (Field ke-6)
Kode Pos (Field ke-8)
## Langkah 2: Buat "Peta" dalam Bentuk Biner
Sekarang kita buat bitmap-nya. Karena kita punya 8 kemungkinan kolom data, kita butuh 8 bit. Setiap bit akan mewakili satu kolom data, dari kiri ke kanan (bit 1 sampai 8).
Kita gunakan aturan sederhana:
Jika data ADA, bit-nya bernilai 1.
Jika data TIDAK ADA, bit-nya bernilai 0.
Mari kita petakan data kita:
1
Nama Depan
✅ Ya
1
2
Nama Belakang
❌ Tidak
0
3
✅ Ya
1
4
No. Telepon
✅ Ya
1
5
Tgl. Lahir
❌ Tidak
0
6
Kota
✅ Ya
1
7
Provinsi
❌ Tidak
0
8
Kode Pos
✅ Ya
1
Jika kita susun nilai bit tersebut, kita akan mendapatkan bitmap dalam format biner:
10110101
## Langkah 3: Ubah Biner ke Heksadesimal (Opsional, tapi Umum Dilakukan)
Mengirim data dalam bentuk biner (rentetan angka 1 dan 0) itu panjang dan tidak efisien. Praktik umumnya adalah mengubahnya ke format yang lebih ringkas, yaitu heksadesimal.
Caranya adalah dengan membagi biner menjadi kelompok-kelompok 4 bit (disebut nibble).
Bagi biner
10110101
menjadi dua:1011
dan0101
.Konversikan setiap kelompok ke heksadesimal:
1011
(Biner) = 8 + 2 + 1 = 11. Dalam heksadesimal, 11 direpresentasikan dengan huruf B.0101
(Biner) = 4 + 1 = 5. Dalam heksadesimal, 5 tetap 5.
Gabungkan hasilnya: B5
Jadi, bitmap untuk pesan kita adalah B5
dalam format heksadesimal.
## Kesimpulan Akhir
Struktur pesan yang akan kita kirim akan terlihat seperti ini:
B5Budi
budi@email.com
0812345678
Jakarta
12345
Ketika sistem penerima mendapatkan pesan ini, hal pertama yang ia lakukan adalah membaca "kepala" pesan, yaitu B5
.
Sistem akan mengubah
B5
(Heksadesimal) kembali ke biner:10110101
.Kemudian sistem akan membaca "peta" biner tersebut:
Bit 1 =
1
-> Oke, data pertama adalah Nama Depan.Bit 2 =
0
-> Oke, tidak ada data Nama Belakang.Bit 3 =
1
-> Oke, data selanjutnya adalah Email.Bit 4 =
1
-> Oke, data selanjutnya adalah Nomor Telepon.Dan seterusnya...
Contoh praktis bitmap ISO 8583 untuk sebuah transaksi yang umum terjadi, yaitu pembelian barang di toko (debit purchase).
## Skenario Transaksi
Anda melakukan pembelian di Indomaret sebesar Rp 50.000 menggunakan kartu debit BCA pada tanggal 16 September 2025, pukul 16:10 WIB. Mesin EDC akan mengirimkan pesan otorisasi ke bank.
## Langkah 1: Tentukan Data Element (DE) yang Dikirim
Untuk transaksi ini, sistem akan mengirimkan beberapa Data Element (DE) penting. Berikut adalah contoh DE yang umumnya ada:
DE 2: Primary Account Number (PAN) / Nomor Kartu
DE 3: Processing Code (Kode yang menandakan ini transaksi pembelian)
DE 4: Amount, Transaction (Jumlah transaksi: 5000000, 2 digit terakhir adalah desimal)
DE 7: Transmission Date & Time (Waktu transaksi)
DE 11: Systems Trace Audit Number (STAN) / Nomor Unik Transaksi
DE 12: Time, Local Transaction (Waktu lokal di toko)
DE 13: Date, Local Transaction (Tanggal lokal di toko)
DE 22: Point of Service Entry Mode
DE 32: Acquiring Institution Identification Code (Kode Bank Pemilik EDC)
DE 35: Track 2 Data (Data dari magnetic stripe/chip kartu)
DE 41: Card Acceptor Terminal Identification (ID Terminal/EDC)
DE 42: Card Acceptor Identification Code (ID Merchant/Toko)
DE 43: Card Acceptor Name/Location (Nama dan Lokasi Toko)
DE 49: Currency Code, Transaction (Kode Mata Uang, misal IDR adalah 360)
DE 62: Private Use Field (Data tambahan, misal nomor referensi)
## Langkah 2: Buat "Peta" Biner (Binary Bitmap)
Sekarang kita buat bitmap 64-bit berdasarkan DE yang ada. Ingat, bit dibaca dari kiri ke kanan.
DE 2, 3, 4, 7 ada -> Bit 2, 3, 4, 7 di-set ke 1.
DE 11, 12, 13 ada -> Bit 11, 12, 13 di-set ke 1.
DE 22 ada -> Bit 22 di-set ke 1.
DE 32, 35 ada -> Bit 32, 35 di-set ke 1.
DE 41, 42, 43, 49 ada -> Bit 41, 42, 43, 49 di-set ke 1.
DE 62 ada -> Bit 62 di-set ke 1.
Bit 1 kita set ke 0 karena kita tidak menggunakan DE 65-128 (tidak ada secondary bitmap).
Semua bit lainnya di-set ke 0.
Hasilnya dalam biner (dibagi per 8 bit agar mudah dibaca):
01110010 00111000 01000001 00100100
10011001 00000000 01000000 00000000
Jika digabungkan:
0111001000111000010000010010010010011001000000000100000000000000
## Langkah 3: Konversi Biner ke Heksadesimal
Sekarang, kita ubah biner 64-bit di atas menjadi heksadesimal 16 karakter. Kita kelompokkan biner menjadi 16 grup @ 4 bit.
0111
= 70010
= 20011
= 31000
= 80100
= 40001
= 10010
= 20100
= 41001
= 91001
= 90000
= 00000
= 00100
= 40000
= 00000
= 00000
= 0
Setelah digabungkan, Primary Bitmap dalam format heksadesimal adalah: 7238412499004000
## Bagaimana Sistem Membacanya?
Pesan yang dikirim kira-kira akan terlihat seperti ini (MTI 0200
untuk request transaksi):
02007238412499004000[Data DE 2]
[Data DE 3]
[Data DE 4]
[Data DE 7]
... dan seterusnya.
Sistem penerima (misalnya, server bank) akan melakukan kebalikannya:
Membaca Bitmap Heksadesimal:
7238412499004000
.Mengonversinya kembali ke Biner:
01110010...
Memeriksa peta biner:
"Bit 1 adalah 0, berarti tidak ada secondary bitmap."
"Bit 2 adalah 1, data berikutnya adalah DE 2 (Nomor Kartu)." -> Sistem membaca data nomor kartu.
"Bit 3 adalah 1, data berikutnya adalah DE 3 (Processing Code)." -> Sistem membaca data processing code.
"Bit 4 adalah 1, data berikutnya adalah DE 4 (Amount)." -> Sistem membaca jumlah transaksi.
...dan begitu seterusnya sampai semua data yang ditandai oleh bitmap terbaca dengan benar.
Dengan cara ini, komunikasi antar sistem keuangan menjadi sangat efisien dan terstruktur. Setiap sistem tahu persis data apa yang diharapkan hanya dengan membaca bitmap di awal pesan.
Last updated