Encode - Decode
Pendahuluan
Sistem IT yang kita pakai sehari-hari sebenarnya terdiri dari banyak sistem yang berbeda.
Berbeda dari sisi :
- Hardware nya.
- Instruction Set atau bahasa yang digunakan dalam memrogram hardware nya.
- Softwarenya.
- Bahasa Pemrogramannya.
- Protokol komunikasi antara sistem.
- Format data dan struktur data didalamnya.
- dll.
Dan kita tidak bisa menjamin bahwa semua orang mempunyai sistem yang sama.
Contoh sederhana misalnya ketika menggunakan format gambar .pic , .qtif , .tiff , .png, .gif, .jpg, .jpeg, dll.
Format gambar .pic mungkin saja tidak bisa dibuka di aplikasi MS Paint di OS windows.
Tetapi gambar .pic bisa saja dibuka di aplikasi Preview di iMac.
Penyebabnya karena kedua aplikasi mensyaratkan hanya gambar dengan format tertentu yang bisa di buka di aplikasi tersebut.
Tentunya akan sangat menyulitkan bagi kita ketika membuat sebuah gambar dalam format .pict di iMac, kemudian mau melihat nya di aplikasi Ms Paint di Windows.
Masalah ini menjadi sebuah masalah umum yang terjadi di sistem sitem yang berbeda.
Oleh karenanya butuh Tranformasi dari format .pic ke format .jpg , .png, atau format lain yang bisa dibuka di aplikasi tersebut.
Secara istilah , Transformasi ini disebut juga dengan Encode.
Jadi apa itu Encode - Decode ?
Baiklah, sekarang kita coba lihat definisi sederhananya :
Encoding adalah proses transformasi informasi dari sebuah sistem ke sistem lain menggunakan format yang sesuai.
Kegunaannya adalah untuk :
- komunikasi antar sistem.
- penyimpanan data.
Coba kita lihat contohnya :
- transformasi file gambar .pic ke file gambar .jpg
- transformasi gambar .jpg ke data berbentuk tulisan memakai format base64.
- transformasi karakter @ menjadi nomor angka 64 memakai format UTF-8.
- proses compile sebuah code ke bahasa level dibawahnya. Misalnya dari Java menjadi bytecode agar bisa dibaca oleh JVM.
- dll.
Kenapa encoding ini diperlukan ?
Sekali lagi tujuannya memang untuk bisa saling komunikasi antara sistem yang sekarang sudah berjalan lancar tapi memiliki format data yang berbeda.
Daripada menyeragamkan semua sistem yang masing-masing sudah stabil, yang tentunya membutuhkan negosiasi, diskusi yang alot, dan belum tentu semua pihak setuju untuk memakai standar yang sama.
Oleh karenanya Transformasi data dengan cara Encoding ini diperlukan.
Hal yang natural semestinya.
Hal yang juga kita lihat di kehidupan sehari-hari.
Dimana kita memiliki bahasa yang berbeda, sistem yang berbeda, sosial yang berbeda.
Satu sama lain ujung-ujungnya akan berinteraksi dengan melakukan transformasi, penterjemah, dan adaptasi agar bisa masuk dan berkomunikasi secara baik.
Apa saja contohnya ?
Contohnya misalnya :
- URL Encoder, dimana kita tidak bisa memakai spasi di URL yang kita tulis di browser, seperti https://www.huzefril.com/page 1.html , tetapi kita mesti menggantinya dengan %20, sehingga menjadi https://www.huzefril.com/page%201.html
- Image to text encoder, misalnya dari file .jpg kita mau ubah ke file text base64 biar bisa ditransfer dan dibaca lebih mudah melalui API.
- ASCII encoding, dimana karakter huruf di bahasa manusia diterjemahkan ke data biner di computer.
- UTF-8 encoding, dimana lebih banyak karakter yang bisa diterjemahkan ke dalam data biner.
- dll.