Apa itu Base64? Panduan Lengkap untuk Pemula
Apa itu Encoding Base64?
Base64 adalah skema encoding biner-ke-teks yang merepresentasikan data biner dalam format string ASCII menggunakan alfabet 64 karakter. Awalnya dirancang untuk lampiran email melalui MIME (Multipurpose Internet Mail Extensions) dan tetap menjadi salah satu metode encoding yang paling banyak digunakan di web.
Ketika Anda perlu mengirim data biner — seperti gambar, file, atau byte terkompresi — melalui saluran yang dibuat untuk teks, Base64 adalah solusi utama. Ini mengambil byte arbitrer dan mengubahnya menjadi string huruf, angka, dan beberapa karakter khusus yang aman dan portabel.
Bagaimana Cara Kerja Base64?
Base64 bekerja dengan memproses data biner dalam kelompok tiga byte (24 bit) dan mengonversi setiap kelompok menjadi empat karakter Base64. Nama "Base64" berasal dari fakta bahwa alfabet encoding menggunakan 64 karakter berbeda: A-Z, a-z, 0-9, +, dan /.
Algoritma Encoding Langkah demi Langkah
- Ambil 3 byte (24 bit) data input
- Bagi menjadi empat kelompok 6-bit
- Petakan setiap nilai 6-bit (0-63) ke tabel alfabet Base64
- Tambahkan padding (
=) jika panjang input tidak habis dibagi 3
Berikut adalah contoh konkret. String "Man" di-encode sebagai berikut:
M(ASCII 77) =01001101a(ASCII 97) =01100001n(ASCII 110) =01101110
Digabung: 01001101 01100001 01101110 → dibagi menjadi kelompok 6-bit:
010011= 19 →T010110= 22 →W000101= 5 →F101110= 46 →u
Jadi "Man" menjadi "TWFu".
Bagaimana dengan Padding?
Jika panjang input bukan kelipatan 3 byte, Base64 menambahkan karakter padding (=) untuk membuat output menjadi kelipatan 4 karakter:
- 1 byte input → 2 karakter Base64 + 2 karakter padding (
==) - 2 byte input → 3 karakter Base64 + 1 karakter padding (
=)
Misalnya, byte tunggal yang sesuai dengan "M" di-encode menjadi TQ==.
Tabel Alfabet Base64
| Nilai | Kar | Nilai | Kar | Nilai | Kar | Nilai | Kar | |-------|------|-------|------|-------|------|-------|------| | 0 | A | 16 | Q | 32 | g | 48 | w | | 1 | B | 17 | R | 33 | h | 49 | x | | 2 | C | 18 | S | 34 | i | 50 | y | | 3 | D | 19 | T | 35 | j | 51 | z | | 4 | E | 20 | U | 36 | k | 52 | 0 | | 5 | F | 21 | V | 37 | l | 53 | 1 | | 6 | G | 22 | W | 38 | m | 54 | 2 | | 7 | H | 23 | X | 39 | n | 55 | 3 | | 8 | I | 24 | Y | 40 | o | 56 | 4 | | 9 | J | 25 | Z | 41 | p | 57 | 5 | | 10 | K | 26 | a | 42 | q | 58 | 6 | | 11 | L | 27 | b | 43 | r | 59 | 7 | | 12 | M | 28 | c | 44 | s | 60 | 8 | | 13 | N | 29 | d | 45 | t | 61 | 9 | | 14 | O | 30 | e | 46 | u | 62 | + | | 15 | P | 31 | f | 47 | v | 63 | / |
Kasus Penggunaan Umum untuk Encoding Base64
Lampiran Email (MIME)
Base64 diciptakan untuk MIME (Multipurpose Internet Mail Extensions). Protokol email seperti SMTP dirancang untuk teks ASCII 7-bit, sehingga lampiran biner seperti PDF, gambar, dan file ZIP harus di-encode sebagai Base64 sebelum dikirim melalui email.
Data URL di HTML dan CSS
Base64 memungkinkan Anda menyematkan gambar, font, dan media lainnya langsung di file HTML atau CSS menggunakan data URL:
<img src="data:image/png;base64,iVBORw0KGgo..." alt="Embedded Image" />
Ini menghilangkan permintaan HTTP tambahan, yang dapat bermanfaat untuk aset kecil.
JSON Web Token (JWT)
JWT menggunakan varian Base64 yang aman URL (Base64url) untuk meng-encode header, payload, dan signature dari setiap token. Inilah mengapa Anda melihat string seperti eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 dalam sistem autentikasi.
Menyimpan Biner di Database
Banyak database dioptimalkan untuk penyimpanan teks dan mungkin tidak menangani byte mentah dengan baik. Encoding data biner sebagai Base64 memungkinkan Anda menyimpan gambar, objek yang diserialisasi, atau data terenkripsi di kolom teks.
Payload API
Saat mengirim data biner melalui API REST atau GraphQL — terutama dalam format JSON — Base64 adalah pilihan standar karena JSON tidak dapat merepresentasikan byte mentah secara native.
Apakah Base64 Meningkatkan Ukuran File?
Ya. Encoding Base64 meningkatkan ukuran data sekitar 33%. Untuk setiap 3 byte input, Anda mendapatkan 4 byte output. Overhead ini adalah trade-off untuk membuat data biner dapat ditransportasikan melalui saluran khusus teks.
Apakah Base64 Itu Enkripsi?
Tidak. Ini adalah kesalahpahaman umum. Base64 adalah skema encoding, bukan enkripsi. Siapa pun yang menerima string Base64 dapat mendekodekannya kembali ke data asli tanpa memerlukan kunci apa pun. Ini tidak menyediakan keamanan atau kerahasiaan sama sekali. Jika Anda perlu melindungi data, gunakan enkripsi (seperti AES) lalu secara opsional encode byte terenkripsi dengan Base64 untuk transmisi.
Base64 vs Encoding Biner-ke-Teks Lainnya
| Encoding | Ukuran Alfabet | Overhead | Terbaik Untuk | |----------|--------------|----------|----------| | Base64 | 64 kar | ~33% | Transfer data dan penyematan | | Base32 | 32 kar | ~60% | Konteks yang dapat dibaca manusia, case-insensitive | | Base16 (Hex) | 16 kar | 100% | Debugging, memory dump, kode warna | | Ascii85 | 85 kar | ~25% | Adobe PostScript, stream PDF |
Base64 menawarkan trade-off seimbang antara efisiensi ruang dan kompatibilitas luas, menjadikannya encoding biner-ke-teks paling populer di web.
Coba Encoding Base64 Online
Siap meng-encode data Anda sendiri? Gunakan encoder dan decoder Base64 online gratis kami untuk mengonversi teks atau file secara instan di browser Anda. Tidak perlu instalasi atau pendaftaran.