# Enkode / Dekode

URL: https://discuvr.org/encode-decode/?hl=id
Last updated: 2026-11-07
MCP tool: `encode_decode_text`

Encode atau decode Base64, Base64URL, percent-encoding URL, entitas HTML, dan hex saat mengetik. UTF-8 penuh, padding hilang dilaporkan, tidak disimpan.

Token di log, query string di redirect, email penuh &amp;: teks yang di-encode muncul di mana-mana di tempat kerja. Tempel di sini, pilih formatnya, dan lihat hasil encode atau decode saat Anda mengetik.

## Fungsinya

- Base64, Base64URL (gaya JWT, tanpa padding), percent-encoding URL, entitas HTML, dan hex.
- UTF-8 penuh: huruf beraksen, Hindi, Mandarin, dan emoji tetap utuh bolak-balik.
- Padding Base64 yang hilang ditambahkan dan dilaporkan, tidak pernah diperbaiki diam-diam.
- Byte yang bukan teks ditampilkan sebagai hex, bukan karakter acak.
- Satu klik untuk memakai output sebagai input dan membalik arah.

## Cara kerja

1. Pilih format dan apakah ingin encode atau decode.
2. Tempel teks Anda - hasilnya diperbarui saat Anda mengetik.
3. Salin output, atau gunakan sebagai input berikutnya.

## Contoh nyata: membaca JWT

JSON Web Token terdiri dari tiga bagian Base64URL yang digabung dengan titik: header, payload, dan signature. Tempel bagian tengahnya, pilih Base64URL lalu decode, dan Anda melihat klaim JSON seperti id pengguna dan waktu kedaluwarsa exp (timestamp Unix yang bisa dibaca dengan Konverter timestamp Unix). Decode bukan verifikasi: siapa pun bisa membaca payload JWT, dan hanya pemeriksaan signature di server yang membuktikan isinya tidak diubah.

## Kasus yang sering bikin masalah di kantor

Base64 yang padding-nya dibuang, yang dilakukan sebagian sistem untuk menghemat ruang, gagal di decoder yang ketat; alat ini menambahkan tanda = yang hilang dan memberi tahu Anda. Banyak server membaca + di query string sebagai spasi, sehingga nilai Base64 yang ditempel ke tautan tanpa di-encode tiba dalam keadaan rusak; encode sebagai komponen URL atau gunakan Base64URL. Teks yang di-encode dua kali muncul sebagai %2520 atau &amp;amp; dan perlu di-decode dua kali.

## Apa yang diterima setiap decoder

Decode Base64 mengabaikan spasi dan baris baru, jadi nilai yang terpotong menjadi beberapa baris, seperti di email, didekode apa adanya saat ditempel. Decode Base64URL juga menerima + dan /, tetapi Base64 biasa menolak - dan _, jadi bagian JWT memerlukan opsi Base64URL. Decode hex melewati spasi, titik dua, koma, tanda hubung, dan awalan 0x, jadi 48:65:6c:6c:6f maupun 0x48 0x65 sama-sama berhasil. Decode URL mengubah + menjadi spasi, jadi tanda plus yang sebenarnya harus dikirim sebagai %2B. Encode HTML meng-escape lima karakter & < > " dan '; decode HTML memahami semua entitas bernama HTML5, seperti &nbsp; dan &hellip;, serta entitas numerik seperti &#8377; untuk simbol rupee.

## Contoh kerja: apa yang dihasilkan tiap format

Encoding URL di sini mengodekan satu nilai, misalnya satu parameter query, jadi setiap karakter khusus di-escape: https://example.com/a b?x=1&y=2 menjadi https%3A%2F%2Fexample.com%2Fa%20b%3Fx%3D1%26y%3D2. Kodekan hanya nilai yang Anda sisipkan ke tautan, jangan seluruh tautannya. Teks di luar ASCII dikodekan sebagai byte UTF-8-nya: café ₹ menjadi caf%C3%A9%20%E2%82%B9, dan hex menampilkan byte yang sama, é sebagai c3 a9 dan ₹ sebagai e2 82 b9. Base64 dari user:pass adalah dXNlcjpwYXNz, nilai yang dibawa header HTTP Basic Authorization (RFC 7617), sehingga siapa pun yang melihat header itu bisa membaca kata sandinya.

## Pertanyaan

**Kenapa teks hasil decode saya menampilkan karakter aneh seperti Ã©?**

Byte-nya UTF-8, tetapi di suatu tempat dibaca sebagai Latin-1 atau Windows-1252 sebelum di-encode. Decode di sini menampilkan byte apa adanya; perbaikannya ada di sistem yang menghasilkannya.

**Bisakah saya men-decode seluruh file?**

Tempel teks hingga 200.000 karakter. Untuk file biner seperti gambar, byte hasil decode ditampilkan sebagai hex, bukan dijadikan unduhan.

**Apakah Base64 itu enkripsi?**

Bukan. Base64 hanya mengubah cara byte ditulis agar lolos melewati sistem yang mengharapkan teks biasa. Siapa pun bisa men-decode-nya; jangan pernah memakainya untuk menyembunyikan kata sandi atau rahasia.

**Apa beda Base64 dan Base64URL?**

Base64URL mengganti "+" dan "/" dengan "-" dan "_" dan biasanya membuang padding "=", sehingga hasilnya aman di dalam URL dan nama file. JSON Web Token memakainya.

**Apakah teks saya disimpan?**

Tidak. Teks dikonversi dan dikembalikan dalam permintaan yang sama dan tidak pernah ditulis ke database atau log.

**Mengapa hasil encoding URL berbeda dari encodeURIComponent di JavaScript?**

Alat ini juga meng-escape ! ' ( ) dan *, yang dibiarkan apa adanya oleh encodeURIComponent, jadi it's (50%) off! menjadi it%27s%20%2850%25%29%20off%21. Kedua bentuk didekode menjadi teks yang sama, dan meng-escape karakter itu selalu aman di dalam nilai query. Spasi menjadi %20, bukan +; bentuk + berasal dari encoding formulir HTML, dan dekoder di sini membaca keduanya.

**Bagaimana cara encode atau decode teks Base64 di baris perintah?**

Di Linux atau Mac, echo -n 'Hello, World' | base64 menghasilkan SGVsbG8sIFdvcmxk, dan echo 'SGVsbG8sIFdvcmxk' | base64 --decode mengembalikannya menjadi teks. Tanpa -n, echo menambahkan baris baru yang ikut dienkode sehingga hasilnya SGVsbG8sIFdvcmxkCg==: penyebab paling umum dua alat memberi hasil berbeda. Di PowerShell, [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes('Hello, World')) mengenkode dan [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('SGVsbG8sIFdvcmxk')) mendekode. Halaman ini mengenkode persis karakter yang Anda tempel, sebagai UTF-8, tanpa menambahkan baris baru.

**Bagaimana cara mendekode gambar Base64 atau data URI?**

Tempel hanya bagian setelah koma: pada data:image/png;base64,iVBORw0KGgo... bagian itu adalah iVBORw0KGgo..., karena awalan data:image/png;base64, bukan Base64 dan seluruh string akan ditolak. Pilih Base64 lalu Decode. Byte yang bukan teks ditampilkan sebagai hex, bukan digambar sebagai gambar, dan itu cukup untuk mengenali jenis file: PNG diawali 89 50 4e 47, JPEG ff d8 ff, dan file .docx, .xlsx atau file berbasis ZIP lain yang utuh 50 4b 03 04. Untuk melihat gambarnya, tempel data URI lengkap ke bilah alamat browser. Input dibatasi 200.000 karakter, sekitar 150.000 byte file.

**Mengapa Base64 sekitar sepertiga lebih panjang dari aslinya?**

Base64 menulis setiap 3 byte sebagai 4 karakter dan mengisi kelompok terakhir dengan = sampai kelipatan 4 (RFC 4648), jadi hasilnya 4/3 dari byte input, dibulatkan ke atas. Hello, World berukuran 12 byte dan menjadi 16 karakter SGVsbG8sIFdvcmxk. Yang dihitung adalah byte UTF-8, bukan huruf: café terdiri dari 4 karakter tetapi 5 byte dan menjadi Y2Fmw6k=, dan ₹100 berukuran 6 byte dan menjadi 4oK5MTAw. Lampiran email bertambah sedikit lagi karena MIME memecah Base64 menjadi baris paling panjang 76 karakter (RFC 2045); halaman ini mengabaikan pemisah baris itu saat mendekode. Base64URL tanpa padding hanya menghemat tanda =.

## Lainnya di Alat Pengembang

- [Konverter Timestamp Unix](https://discuvr.org/timestamp-converter/?hl=id)
- [Pembuat Diagram Sistem](https://discuvr.org/system-diagram/?hl=id)
- [JSON Formatter](https://discuvr.org/json-formatter/?hl=id)
- [Formatter Python](https://discuvr.org/python-formatter/?hl=id)

## Sering dipakai bersama

- [Generator Kata Sandi](https://discuvr.org/password-generator/?hl=id)

---

Part of Discuvr (https://discuvr.org/): Discuvr is a collection of free, focused tools for day-to-day professional work - office and data utilities, legal and compliance helpers, privacy and security checks, and developer formatters. Every tool has its own page, and most can also be called from ChatGPT or Claude over MCP.
