Artikel untuk developer

Penjelasan format enkode, cara kerja dengan JSON, dan topik lain yang berguna bagi developer, dengan tautan ke alat online tulzy yang sesuai.

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.

Gzip + Base64: mengompresi data untuk dikirim sebagai teks

Mengapa data biner terkompresi juga dienkode Base64 sebelum dimasukkan ke bidang teks.

XML Entities: meng-escape karakter dalam dokumen XML

Lima entity XML wajib, tanpanya dokumen rusak saat diuraikan.

Teks

Case Converter: mengapa ada gaya penamaan yang berbeda

Mengapa dalam satu proyek variabel ditulis camelCase tapi berkas kebab-case, dan dari mana aturan ini berasal.

Text Diff: bagaimana algoritma menemukan perbedaan antara dua teks

Bagaimana algoritma diff menemukan kumpulan perubahan minimal antara dua versi teks.

Ekspresi reguler: sintaks dasar dan pola umum

Cara membaca ekspresi reguler, dan bagaimana pencocokan greedy berbeda dari lazy.

Mengurutkan dan menghapus duplikat baris: untuk apa gunanya

Mengapa pengurutan numerik yang menempatkan "10" sebelum "9" adalah kesalahan, dan cara menghindarinya.

String Escape: mengapa teks yang sama perlu di-escape secara berbeda

Mengapa tanda kutip yang sama di-escape secara berbeda dalam string JS, JSON, dan perintah shell.

CRLF vs LF: mengapa karakter akhir baris masih penting

Mengapa berkas yang ditulis di Windows bisa terlihat "seluruhnya berubah" di git pada Linux.

Menghitung karakter dan kata: mengapa tidak selalu sepele

Mengapa emoji atau huruf beraksen bisa terhitung sebagai beberapa karakter sekaligus.

Lorem Ipsum: dari mana teks pengganti ini berasal dan untuk apa

Mengapa desainer sengaja menggunakan teks "tanpa arti" alih-alih konten sungguhan dalam mockup.

Slugify: mengubah teks apa pun menjadi URL

Bagaimana judul seperti "Halo, Dunia! Apa kabar?" menjadi string kompatibel URL seperti halo-dunia-apa-kabar.

Markdown: mengapa sintaks teks sederhana mengalahkan editor teks kaya

Mengapa developer memilih menulis dokumentasi dalam Markdown alih-alih editor teks kaya.

Spasi dan karakter tak terlihat: penyebab tersembunyi bug aneh

Mengapa dua string yang terlihat identik bisa tidak cocok karena karakter tak terlihat.

Text Reverse: mengapa "membalik teks" lebih sulit dari kelihatannya

Mengapa pembalikan string yang naif bisa mengubah emoji menjadi byte yang tidak dapat digunakan.

Analisis frekuensi teks: untuk apa menghitung pengulangan kata

Bagaimana frekuensi huruf dalam teks terenkripsi membantu memecahkan sandi substitusi paling sederhana.

Hash/Kripto

Hash Generator: apa perbedaan MD5, SHA-1, dan SHA-256

Mengapa MD5 masih digunakan untuk memverifikasi integritas file, tapi tidak untuk kata sandi.

Checksum Verifier: cara memeriksa apakah file tidak rusak

Mengapa checksum yang cocok mengonfirmasi integritas file, tapi bukan siapa yang membuatnya.

HMAC: apa bedanya hash dengan kunci dan hash biasa

Mengapa SHA-256 biasa tidak melindungi dari pemalsuan pesan, tapi HMAC melindungi.

Bcrypt: mengapa kata sandi di-hash secara lambat, bukan cepat

Mengapa SHA-256 yang cepat adalah pilihan buruk untuk kata sandi, dan bcrypt yang lambat adalah pilihan yang tepat.

UUID: bagaimana identifier yang hampir tidak pernah berulang dibuat

Mengapa UUID v4 bisa dibuat secara independen di jutaan mesin tanpa risiko tabrakan.

Generator Kata Sandi: apa yang sebenarnya membuat kata sandi kuat

Mengapa kata sandi panjang dari kata-kata kamus lebih kuat daripada kata sandi pendek dengan simbol dan angka.

AES: bagaimana enkripsi simetris bekerja

Mengapa kunci yang sama mengenkripsi dan mendekripsi data di AES, dan bagaimana ini berbeda dari enkripsi asimetris.

Argon2: mengapa algoritma ini memenangkan kompetisi hashing kata sandi

Bagaimana Argon2 bertahan lebih baik terhadap serangan menggunakan GPU dibandingkan algoritma hashing kata sandi yang lebih lama.

Scrypt: mengapa algoritma ini membutuhkan begitu banyak memori

Mengapa scrypt sengaja membutuhkan banyak memori untuk mempersulit pembobolan di perangkat ASIC.

TOTP: bagaimana kode sekali pakai di aplikasi autentikator bekerja

Mengapa kode di Google Authenticator bekerja tanpa internet dan hanya sinkron dengan server melalui waktu.

PBKDF2: standar peregangan kunci tertua

Mengapa jumlah iterasi PBKDF2 yang direkomendasikan terus bertambah setiap tahun.

X.509: apa yang ada di dalam sertifikat SSL

Apa sebenarnya yang diperiksa browser pada sertifikat sebuah situs sebelum menampilkan gembok hijau.

PGP: bagaimana enkripsi kunci publik dan privat bekerja

Mengapa kunci publik PGP bisa dibagikan secara bebas, tapi kunci privat tidak pernah.

Waktu/Angka

Waktu Unix: mengapa komputer menghitung waktu sejak 1970

Mengapa 1 Januari 1970 menjadi titik referensi waktu untuk sebagian besar sistem komputer.

Ekspresi cron: cara memecahkan jadwal tugas

Cara memecahkan ekspresi seperti */15 * * * * dan mengetahui persis kapan tugas akan berjalan.

Sistem bilangan: untuk apa biner, oktal, dan heksadesimal

Mengapa warna #FF5733 di CSS ditulis dengan digit heksadesimal, bukan desimal.

Operasi bitwise: cara kerja AND, OR, dan XOR di level bit

Bagaimana AND bitwise berbeda dari AND logis, dan mengapa perlu mengoperasikan bit individual sebuah angka.

Selisih tanggal: mengapa menghitung hari lebih rumit dari kelihatannya

Mengapa mengurangi tanggal secara naif bisa memberi hasil salah karena tahun kabisat.

Menghitung usia: mengapa bukan sekadar pengurangan tahun

Mengapa mengurangi tahun lahir secara sederhana bisa memberi usia satu tahun lebih besar dari yang sebenarnya.

Zona waktu: mengapa UTC bukan hal yang sama dengan GMT

Mengapa UTC tidak pernah berubah dua kali setahun, sementara waktu London (GMT/BST) berubah.

Kalkulator durasi: cara menjumlahkan jam, menit, dan detik dengan benar

Mengapa saat menjumlahkan menit dan detik perlu "menyimpan" sisa ke posisi berikutnya, sama seperti penjumlahan desimal.

ISO 8601 Duration: cara menulis durasi dalam format standar

Mengapa PT1H30M berarti "1 jam 30 menit", bukan "1 menit 30 jam".

Nomor minggu: mengapa negara berbeda menghitung minggu secara berbeda

Mengapa 1 Januari kadang termasuk minggu ke-52 atau ke-53 tahun sebelumnya menurut standar ISO 8601.

Angka Romawi: bagaimana sistem tanpa nol dan nilai tempat bekerja

Mengapa IV berarti 4, bukan 6, dan bagaimana aturan pengurangan bekerja dalam angka Romawi.

IEEE 754: mengapa 0.1 + 0.2 tidak sama dengan 0.3 dalam kode

Mengapa hampir semua bahasa pemrograman menampilkan 0.1 + 0.2 sebagai 0.30000000000000004.

Angka menjadi kata: mengapa perlu mengubah digit menjadi kata

Mengapa dokumen bank menulis jumlah uang baik dalam angka maupun kata sekaligus.

Pengembangan Web

HEX, RGB, HSL: mengapa ada begitu banyak cara menuliskan warna

Mengapa desainer sering memilih HSL alih-alih HEX saat memilih corak warna secara manual.

Minifikasi CSS: apa sebenarnya yang dihapus dari file, dan mengapa

Mengapa CSS yang diminifikasi bekerja persis sama di browser, meski menjadi tidak terbaca bagi manusia.

Minifikasi JavaScript: perbedaan antara minifikasi dan obfuskasi

Mengapa kode yang diminifikasi masih bisa dibaca kalau mau, sedangkan kode yang diobfuskasi tidak bisa.

Minifikasi HTML: mengapa spasi dalam markup sebenarnya penting

Mengapa menghapus spasi di dalam <pre> atau textarea bisa merusak tampilan halaman, tidak seperti hampir semua tempat lain.

Gradien CSS: perbedaan linear dari radial dan conic

Mengapa conic-gradient cocok untuk diagram lingkaran, sedangkan radial-gradient menghasilkan efek titik cahaya.

Algoritma Luhn: cara memeriksa kebenaran nomor kartu

Mengapa nomor kartu yang lolos pemeriksaan Luhn tidak berarti kartu tersebut benar-benar ada.

IBAN: bagaimana struktur nomor rekening bank internasional

Mengapa dua huruf pertama pada IBAN adalah kode negara, bukan bagian dari nomor rekening itu sendiri.

Kode QR: bagaimana sebuah tautan muat dalam kotak piksel

Mengapa kode QR dengan logo di tengah tetap bisa dipindai meski sebagian pola tertutup.

Barcode: perbedaan Code 128 dari EAN-13

Mengapa produk di rak toko hampir selalu menggunakan EAN-13, bukan Code 128.

Gambar placeholder: mengapa gambar palsu penting selama pengembangan

Mengapa pengembang sengaja menaruh kotak abu-abu, bukan foto asli, saat sebuah layout masih dibangun.