Referensi API
Referensi teknis untuk operasi encoding dan decoding Base64.
Algoritma Base64
Set Karakter
Base64 menggunakan 64 karakter berbeda untuk merepresentasikan data biner:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
Proses Encoding
- Input: Data biner atau teks
- Pengelompokan: Kelompokkan menjadi blok 3-byte (24-bit)
- Konversi: Konversi setiap grup 24-bit menjadi 4 karakter Base64
- Padding: Tambahkan padding sesuai kebutuhan
Proses Decoding
- Input: String yang di-encode Base64
- Validasi: Periksa format Base64 yang valid
- Konversi: Konversi grup 4-karakter menjadi blok 3-byte
- Output: Data biner atau teks asli
Format Output
Base64 Standar
- Format: Encoding Base64 tradisional
- Padding: Menggunakan
=
untuk padding - Karakter: A-Z, a-z, 0-9, +, /
- Kasus penggunaan: Encoding umum
Contoh:
Input: "Hello"
Output: "SGVsbG8="
Base64 URL Safe
- Format: Base64 yang dimodifikasi untuk URL
- Padding: Tanpa karakter padding
- Karakter: A-Z, a-z, 0-9, -, _
- Kasus penggunaan: Parameter URL, nama file
Contoh:
Input: "Hello"
Output: "SGVsbG8"
Base64 Tanpa Padding
- Format: Base64 standar tanpa padding
- Padding: Tanpa karakter padding
- Karakter: A-Z, a-z, 0-9, +, /
- Kasus penggunaan: Aplikasi tertentu
Contoh:
Input: "Hello"
Output: "SGVsbG8"
Encoding Karakter
UTF-8 (Direkomendasikan)
- Standar: Unicode Transformation Format
- Dukungan: Semua karakter Unicode
- Kompatibilitas: Didukung secara luas
- Kasus penggunaan: Teks internasional
ASCII
- Rentang: Karakter 0-127
- Dukungan: Hanya karakter Latin dasar
- Kompatibilitas: Dukungan universal
- Kasus penggunaan: Hanya teks bahasa Inggris
Latin-1 (ISO-8859-1)
- Rentang: Karakter 0-255
- Dukungan: Karakter Eropa Barat
- Kompatibilitas: Dukungan yang baik
- Kasus penggunaan: Bahasa Eropa
Pemrosesan File
Jenis File yang Didukung
- Gambar: PNG, JPEG, GIF, WebP, SVG, BMP
- Dokumen: PDF, DOC, DOCX, TXT, RTF
- Arsip: ZIP, RAR, 7Z, TAR, GZ
- Audio: MP3, WAV, OGG, FLAC
- Video: MP4, AVI, MOV, WMV
- File biner apa pun: Semua jenis file didukung
Batas Ukuran File
- Ukuran maksimum: 10MB per file
- Penggunaan memori: Dioptimalkan untuk file besar
- Pemrosesan: Pemrosesan blok untuk efisiensi
Penanganan Error
Error Umum
- Base64 tidak valid: String Base64 yang tidak terbentuk dengan baik
- File terlalu besar: Melebihi batas ukuran
- Format tidak didukung: Jenis file tidak valid
- Error encoding: Masalah encoding karakter
Pesan Error
- User-friendly: Deskripsi error yang jelas
- Actionable: Menyarankan solusi
- Non-teknis: Mudah dipahami
- Helpful: Memberikan panduan
Spesifikasi Performa
Kecepatan Pemrosesan
- Teks: Pemrosesan real-time
- File kecil: < 1 detik
- File besar: Tergantung pada ukuran dan kompleksitas
- Optimisasi: Menggunakan algoritma yang efisien
Penggunaan Memori
- Minimal: Konsumsi memori rendah
- Efisien: Dioptimalkan untuk performa
- Cleanup: Manajemen memori otomatis
- Batas: Menghormati batasan browser
Kompatibilitas Browser
Browser yang Didukung
- Chrome: Dukungan penuh
- Firefox: Dukungan penuh
- Safari: Dukungan penuh
- Edge: Dukungan penuh
- Mobile: iOS Safari, Chrome Mobile
Fitur yang Diperlukan
- File API: Untuk upload file
- Clipboard API: Untuk fungsi copy
- ES6+: Fitur JavaScript modern
- Web Workers: Untuk pemrosesan file besar
Contoh Integrasi
JavaScript
// Encoding
const encoded = btoa('Hello World');
console.log(encoded); // "SGVsbG8gV29ybGQ="
// Decoding
const decoded = atob('SGVsbG8gV29ybGQ=');
console.log(decoded); // "Hello World"
Python
import base64
# Encoding
encoded = base64.b64encode(b'Hello World').decode('utf-8')
print(encoded) # "SGVsbG8gV29ybGQ="
# Decoding
decoded = base64.b64decode('SGVsbG8gV29ybGQ=').decode('utf-8')
print(decoded) # "Hello World"
PHP
// Encoding
$encoded = base64_encode('Hello World');
echo $encoded; // "SGVsbG8gV29ybGQ="
// Decoding
$decoded = base64_decode('SGVsbG8gV29ybGQ=');
echo $decoded; // "Hello World"
Referensi API ini menyediakan fondasi teknis untuk memahami dan mengimplementasikan operasi Base64 secara efektif.