Enkode

Gzip/Deflate ↔ Base64

Kompresi teks menjadi Gzip atau Deflate lalu encode hasilnya sebagai Base64 — dan sebaliknya. Bekerja melalui Compression Streams API langsung di browser.

Base64 by itself doesn't compress anything — quite the opposite, it grows the size by about 33%. To send large text compactly through a text-only channel, it's first compressed with Gzip or Deflate, and only then is the result Base64-encoded.

How to use it

Common uses

Things to keep in mind

Compression only pays off on sufficiently large, compressible text — on short strings the Gzip header overhead plus the Base64 expansion can actually make the result bigger.

Deflate skips Gzip's headers, so its output is more compact, but the format is less self-describing: the receiving side needs to know in advance that it's Deflate specifically.

Artikel tentang alat ini: Gzip + Base64: mengompresi data untuk dikirim sebagai teks

Pertanyaan yang sering diajukan

Apa bedanya format Gzip dan Deflate di sini?

Deflate adalah algoritma kompresi mentah, sementara Gzip adalah Deflate yang dibungkus header tambahan berisi metadata dan checksum CRC. Karena perbedaan wrapper ini, data yang dikompres sebagai Gzip tidak bisa langsung di-decode sebagai Deflate begitu saja, atau sebaliknya.

Kenapa hasil kompresi masih perlu di-encode ke Base64?

Hasil kompresi Gzip/Deflate berupa data biner, sedangkan Base64 dibutuhkan agar data itu bisa disalin, ditempel, atau dikirim lewat medium berbasis teks seperti JSON atau URL tanpa rusak.

Apakah teks yang saya proses dikirim ke server?

Tidak. Alat ini memakai Compression Streams API bawaan browser, sehingga kompresi, dekompresi, dan encoding Base64 semuanya berjalan lokal tanpa mengirim data ke server.

Kenapa dekompresi kadang menghasilkan error "invalid header"?

Penyebab paling umum adalah format yang tertukar: data dikompresi sebagai Deflate "mentah" tanpa header, tetapi dibongkar sebagai Gzip (yang mengharapkan header sendiri dan CRC-32), atau sebaliknya. Coba ganti format di pengaturan alat ini.

Apakah kompresi selalu memperkecil ukuran akhir?

Tidak. Pada string yang sangat pendek, overhead header Gzip dan pembengkakan dari Base64 bisa melebihi manfaat kompresi — pendekatan ini hanya masuk akal untuk data teks yang cukup besar dan mudah dikompresi.

Artikel: Enkode

Base64: untuk apa enkode dan bagaimana cara kerjanya

Bagaimana Base64 mengubah data biner menjadi teks ASCII dan kapan ini benar-benar diperlukan.

Base32: bedanya dengan Base64 dan kapan lebih praktis

Alfabet Base32 yang tidak membedakan huruf besar/kecil, dan kasus di mana ia lebih praktis daripada Base64.

URL Encode/Decode: percent-encoding dalam tautan

Bagaimana karakter khusus dalam alamat dan parameter berubah menjadi urutan %XX.

HTML Entities: cara menampilkan karakter khusus dengan aman

Mengapa karakter < > & perlu di-escape dan bagaimana ini mencegah markup rusak.

JWT: struktur token dan arti "mendekode" JWT

Header, payload, dan signature dari JWT, serta mengapa mendekode bukan hal yang sama dengan memverifikasi tanda tangan.

Unicode Escape: arti urutan \uXXXX

Dari mana asal urutan seperti \u0041 dalam JSON dan string JS, serta artinya.

ROT13 dan sandi Caesar: substitusi karakter sederhana

Mengapa pergeseran 13 huruf membuat ROT13 mengoreksi dirinya sendiri, dan mengapa masih digunakan sekarang.

Punycode: bagaimana domain internasional bekerja di DNS

Bagaimana domain dengan karakter non-Latin menjadi bentuk ASCII dengan awalan xn--.

Kode Morse: bagaimana teks berubah menjadi titik dan garis

Prinsip pengenkodean huruf menjadi titik dan garis, serta di mana kode Morse masih digunakan sekarang.

Data URI: kapan menyematkan gambar langsung ke dalam kode

Bagaimana Data URI menyematkan isi berkas langsung ke HTML atau CSS, dan kapan hal ini sepadan.

XML Entities: meng-escape karakter dalam dokumen XML

Lima entity XML wajib, tanpanya dokumen rusak saat diuraikan.