Alamat di Web: URL dan DNS
Struktur URL, fungsi DNS menerjemahkan domain ke IP
Tujuan Pembelajaran
- Memahami struktur URL dan cara membacanya
- Mengerti fungsi DNS seperti buku telepon internet
Analogi
+-----------------------------------------------------------+
| https://www.google.com/search?q=javascript |
+-----------------------------------------------------------+
| | | | |
| | | | +-- Query
| | | +------------- Path
| | +----------------------- Domain
| +--------------------------------- Subdomain
+----------------------------------------- Protocol
Analogi Buku Telepon:
- Nama kontak: "Google" (domain)
- Nomor telepon: 172.217.0.46 (IP address)
- DNS = Buku telepon yang terjemahkan nama ke nomor
Analogi Buku Telepon: DNS menerjemahkan nama domain ke IP address
Penjelasan Konsep
Pernah nggak kamu bertanya-tanya, gimana sih cara browser tahu harus ke mana kalau kamu ketik “google.com”? Di balik layar, prosesnya jauh lebih menarik daripada yang kamu kira. Bayangkan kalau setiap kali kamu mau hubungi teman, kamu harus ingat nomor telepon lengkap mereka — ribet kan? Makanya ada buku telepon yang menerjemahkan nama jadi nomor.
Nah, di internet, sistem yang sama persis bernama DNS.
Tapi sebelum kita bahas DNS, mari kita pahami dulu apa itu URL.
URL (Uniform Resource Locator)
URL (Uniform Resource Locator) itu adalah alamat lengkap sebuah resource di internet. “Resource” di sini bisa berupa halaman web,
Gambar, video, file PDF, atau apa pun yang bisa diakses secara online.
URL itu seperti alamat rumah — unik, spesifik, dan kalau kamu punya alamatnya, kamu bisa menemukan rumah tersebut.
Mari kita bedah URL https://www.google.com/search?q=javascript bersama-sama.
Setiap bagian punya nama dan fungsi masing-masing:
1. Protocol (https://) — Ini adalah aturan komunikasi. Bayangkan protocol seperti bahasa yang dipakai. Kalau kamu dan teman bicara pakai bahasa Indonesia, itu adalah “protocol” komunikasi kalian. Di web, protocol menentukan bagaimana data dikirim.
https berarti data dienkripsi dan aman (ada gembok di browser). http tanpa “s” berarti data dikirim tanpa enkripsi — jadi jangan pernah masukkan password di website HTTP! Ada juga protocol lain seperti ftp untuk transfer file, ws untuk WebSocket, dan mailto untuk email.
Subdomain (www)
Ini adalah bagian depan domain.
Fungsinya untuk mengelompokkan layanan. www berarti website utama. Tapi coba perhatikan: mail.google.com untuk Gmail, drive.google.com untuk Google Drive, docs.google.com untuk Google Docs — semuanya subdomain dari google.com! Subdomain membantu sebuah perusahaan mengelola banyak layanan berbeda di bawah satu domain utama.
3. Domain (google.com) — Ini adalah nama website yang unik secara global. Tidak ada dua website yang punya domain persis sama. Domain terdiri dari nama (google) dan ekstensi (.com). Ekstensi ada banyak jenisnya: .com untuk komersial, .org untuk organisasi, .id untuk Indonesia, .co.uk untuk UK, dan seterusnya.
Domain dibeli dari registrar seperti Namecheap, GoDaddy, atau Niaga Hoster, dan harus diperpanjang setiap tahun.
Path (/search)
Ini adalah lokasi spesifik di dalam server. Sama seperti di komputer kamu ada folder dan file, server juga punya struktur direktori. Path /search berarti “cari file atau program yang menangani pencarian.” Path bisa bertingkat, seperti /blog/2024/januari/artikel-saya.html.
5. Query (?q=javascript) — Ini adalah data tambahan yang dikirim ke server.
Query selalu dimulai dengan tanda tanya (?) dan formatnya key=value.
Bisa lebih dari satu, dipisah dengan &, seperti ?q=javascript&lang=id&page=1.
Server membaca query ini untuk menyesuaikan responsenya — dalam contoh ini, Google akan mencari kata “javascript.”
Sekarang, Mari kita bahas DNS (Domain Name System). Ketika kamu ketik “google.com”, browser nggak langsung tahu ke mana harus pergi.
Browser butuh IP address — serangkaian angka seperti 142.250.185.78 — yang menjadi identitas unik setiap komputer di internet. DNS adalah sistem terdistribusi raksasa (seperti ribuan buku telepon yang saling terhubung) yang menerjemahkan nama domain menjadi IP address.
Prosesnya terjadi dalam milidetik
- Kamu ketik “google.com” → browser cek cache-nya sendiri (pernah buka Google sebelumnya?).
- Kalau tidak ada, tanya ke sistem operasi → cek cache OS.
- Kalau masih tidak ada, tanya ke DNS Resolver (biasanya ISP-mu seperti Telkomsel atau IndiHome).
- DNS Resolver tanya ke Root Server (ada 13 root server di dunia!).
- Root Server arahkan ke TLD Server yang menangani
.com. - TLD Server arahkan ke Authoritative Server Google.
- Authoritative Server jawab: “google.com = 142.250.185.78”
- Browser sekarang tahu IP-nya dan kirim request ke sana!
Kenapa nggak langsung pakai IP address aja?
Bisa sih! Coba ketik 142.250.185.78 di browser, bakal muncul Google juga. Tapi coba bayangin kalau kamu harus hafal puluhan angka IP untuk setiap website yang kamu kunjungi setiap hari.
Ribet kan? Makanya domain name diciptakan — supaya manusia bisa mengingat alamat dengan mudah. DNS adalah jembatan antara bahasa manusia (nama) dan bahasa mesin (angka IP).
Contoh Kode
// Contoh parsing URL di JavaScript
const url = new URL('https://www.google.com/search?q=javascript&lang=id');
console.log(url.protocol); // "https:"
console.log(url.hostname); // "www.google.com"
console.log(url.pathname); // "/search"
console.log(url.search); // "?q=javascript&lang=id"
console.log(url.searchParams.get('q')); // "javascript"
console.log(url.searchParams.get('lang')); // "id"
// DNS lookup dengan Node.js
// const dns = require('dns');
// dns.lookup('google.com', (err, address) => {
// console.log('IP address:', address); // "142.250.185.78"
// });Penjelasan Kode
Prompt AI
Jelaskan kenapa DNS diibaratkan seperti buku telepon. Apa yang terjadi kalau DNS server tidak tersedia? Bagaimana cara kerja DNS cache di browser?
Pertanyaan Reflektif
Coba buka command prompt dan jalankan perintah `nslookup google.com`. IP address yang kamu dapatkan mungkin berbeda dari contoh di atas. Kenapa bisa beda? Apa itu CDN dan bagaimana hubungannya dengan DNS?