Sebelum masuk lebih dalam ke curl, ada beberapa skill dasar dan tools yang perlu kalian siapkan terlebih dahulu, mulai dari kemauan belajar Command Line Interface, pemahaman konsep dasar HTTP dan networking, hingga verifikasi bahwa curl 8.21.x sudah terinstall dan siap dipakai di environment kalian masing-masing.

Selamat datang di series Belajar Curl! Series ini akan membawa kalian menguasai curl — CLI dan library transfer data berbasis URL paling banyak dipakai di dunia — dari request HTTP pertama hingga scripting, API testing, dan production hardening. Total ada 23 episode yang akan membangun pemahaman kalian lapis demi lapis, dari fondasi konsep sampai praktik yang siap dipakai di dunia kerja.
Tapi sebelum mengetik perintah curl pertama, ada beberapa skill dasar dan tools yang wajib kalian miliki dan siapkan terlebih dahulu. Mengapa prasyarat ini penting? Karena curl adalah klien — dia berbicara dengan server melalui jaringan menggunakan protokol HTTP. Kalau kalian belum paham bagaimana sebuah percakapan HTTP berjalan, atau belum nyaman berada di terminal, perintah curl akan terasa seperti mantra ajaib yang kadang bekerja dan kadang tidak, tanpa kalian tahu alasannya.
Bayangkan ingin menjadi masinis kereta tetapi belum memahami rel dan sinyal perjalanan. Sehebat apapun lokomotifnya — dan curl adalah lokomotif yang sangat hebat — tetap sulit melaju tanpa memahami jalurnya. Episode 0 ini adalah peta jalannya: kita akan menyiapkan skill dasar, memastikan curl 8.21.x sudah terinstall dan terverifikasi, lalu melengkapi tools pendukung yang akan menemani sepanjang series.
Curl adalah tool Command Line Interface (CLI). Seluruh kekuatannya diakses lewat terminal — bukan tombol klik. Inilah kenapa langkah pertama adalah menyiapkan mentalitas: tidak takut mengetik, mau membaca error, dan sabar membangun hafalan.
Analogi sederhana: GUI itu seperti remote control TV — simpel, tapi terbatas pada tombol yang tersedia. CLI itu seperti panel kontrol pesawat — terlihat menakutkan di awal, tapi memberi kalian kendali penuh atas setiap aspek. Semua pekerjaan DevOps yang akan kalian temui — menguji API, memeriksa server, menjalankan script — dimulai dari sebuah perintah di terminal.
Sebelum bergelut dengan curl, pastikan kalian nyaman bernavigasi di terminal. Minimal empat perintah ini sudah cukup sebagai titik awal:
| Perintah | Fungsi |
|---|---|
pwd | Menampilkan direktori kerja saat ini |
ls | Mendaftar isi direktori |
cd | Pindah ke direktori lain |
man | Membaca manual sebuah perintah |
Satu konsep yang wajib dipahami sejak sekarang: stdout. Ketika curl sukses, hasilnya ditulis ke stdout — yaitu layar terminal kalian. Output ini bisa dialihkan ke file dengan > (redirect) atau diteruskan ke perintah lain dengan | (pipeline). Pola ini akan kalian pakai terus, misalnya curl ... | jq — jadi pahami sejak awal.
HTTP (Hypertext Transfer Protocol) adalah protokol yang akan paling sering kalian gunakan bersama curl. Semua request HTTP berangkat dari satu benda yang disebut URL — ini alamat tujuan transfer, dan curl memang lahir untuk "mengirim data lewat URL".
Anatomi URL bisa dipecah menjadi lima komponen:
| Komponen | Contoh | Fungsi |
|---|---|---|
| Scheme | https | Protokol yang digunakan |
| Host | example.com | Nama domain server tujuan |
| Port | 443 | Pintu koneksi di server (default jika tidak ditulis) |
| Path | /api/users | Lokasi resource di server |
| Query | ?page=2 | Parameter tambahan untuk request |
Setelah URL dipahami, pahami juga bentuk percakapannya: request dan response. Klien (curl) mengirim request yang berisi method, path, header, dan kadang body. Server menjawab dengan response yang berisi status code, header, dan body. Dua hal yang paling sering disebut orang adalah method (jenis tindakan) dan status code (hasilnya).
| Method | Fungsi |
|---|---|
| GET | Membaca data tanpa mengubah apa pun |
| POST | Mengirim data baru |
| PUT | Mengganti resource secara utuh |
| PATCH | Mengubah sebagian resource |
| DELETE | Menghapus resource |
| HEAD | Sama seperti GET, tapi hanya header |
Status code adalah "nilai rapor" dari sebuah request. Kalian tidak perlu menghafal ratusan kode, cukup kenali lima kelasnya:
| Kelas | Arti | Contoh |
|---|---|---|
| 2xx | Sukses | 200 OK, 201 Created |
| 3xx | Redirect | 301 Moved Permanently, 302 Found |
| 4xx | Kesalahan klien | 400 Bad Request, 404 Not Found |
| 5xx | Kesalahan server | 500 Internal Server Error, 503 Service Unavailable |
Ketika nanti kalian menjalankan curl -I https://example.com dan melihat HTTP/2 200, kalian tidak akan bingung lagi — itu adalah status code kelas 2xx, artinya semuanya berjalan baik.
Selain HTTP, ada empat konsep jaringan yang akan terus muncul di sepanjang series ini:
| Konsep | Penjelasan | Analogi |
|---|---|---|
| DNS | Menerjemahkan nama domain menjadi alamat IP | Buku telepon: kalian ingat namanya, sistem yang mencari nomornya |
| IP Address | Alamat unik sebuah server di internet | Alamat rumah |
| Port | Pintu spesifik di sebuah server | Nomor unit apartemen: 80 untuk HTTP, 443 untuk HTTPS |
| TLS/SSL | Enkripsi data selama transit | Amplop bersegel: isinya aman dibaca hanya oleh penerima |
| Proxy | Perantara antara klien dan server | Resepsionis yang meneruskan surat kalian |
Kenapa penting? Karena curl akan "berbicara" langsung dengan semua lapisan ini. Saat curl mengirim request ke https://example.com, ia melakukan resolusi DNS, membuat koneksi TCP ke port 443, melakukan TLS handshake, lalu baru mengirim HTTP request. Di episode 2 kita akan membedah alur ini langkah demi langkah.
Kabar baiknya: curl 8.21.x hampir pasti sudah ada di komputer kalian. Di macOS, curl sudah dibundel bersama sistem sejak lama. Mayoritas distro Linux juga memuatnya secara default — cukup buka terminal dan ketik:
curl --versioncurl 8.21.0 (x86_64-pc-linux-gnu) libcurl/8.21.0 OpenSSL/3.0.13 zlib/1.3.1 brotli/1.1.0
Release-Date: 2026-06-17
Protocols: dict file ftp ftps gopher gopher-hs http https imap imaps ldap ldaps mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp ws wss
Features: alt-svc AsynchDNS brotli HSTS HTTP2 HTTP3 HTTPS-proxy IPv6 Largefile libz NTLM SSL threadsafe TLS-SRP UnixSockets zstdPerhatikan tiga bagian penting pada output di atas:
curl 8.21.0) dan versi libcurl (libcurl/8.21.0). Keduanya mengikuti nomor yang sama sejak proyek disatukan.SSL (agar bisa HTTPS), HTTP2 dan HTTP3 (protokol web modern), serta brotli (kompresi respons).Tip
Fitur yang tercantum di curl --version ditentukan saat curl dikompilasi — bukan saat diinstall. Build bawaan macOS dan distro Linux hampir selalu lengkap. Jika kalian mendapati build yang kekurangan SSL atau HTTP2, lebih baik install ulang curl versi resmi daripada bertarung melawan keterbatasan build tersebut.
Pada Windows 10+, kalian bisa menjalankan curl langsung dari PowerShell atau Command Prompt tanpa install apa pun. Jika ingin pengalaman yang lebih dekat dengan dunia kerja, gunakan WSL2 — di sana curl berjalan sebagai binary Linux native.
Jika curl --version justru menampilkan command not found, install dengan package manager sesuai sistem:
sudo apt update
sudo apt install curlCurl hebat sendirian, tapi beberapa pekerjaan akan jauh lebih mudah dengan tiga tools pendamping berikut:
| Tools | Kegunaan di Series Ini | Verifikasi |
|---|---|---|
jq | Mem-parse dan mewarnai output JSON dari API | jq --version |
git | Version control; mengambil contoh script dan berkontribusi | git --version |
openssl | Memeriksa sertifikat TLS dan detail koneksi terenkripsi | openssl version |
jq paling penting karena sebagian besar API modern mengembalikan JSON, dan episode JSON & REST API testing akan memakainya hampir di setiap contoh. Pastikan ketiganya terinstall dengan menjalankan:
jq --version
git --version
openssl versionpwd, ls, cd, man).curl --version menampilkan 8.21.x dengan fitur SSL, HTTP2, HTTP3, dan brotli.jq, git, dan openssl sudah terinstall.Di episode 0 ini kalian sudah menyiapkan pijakan untuk seluruh series: memahami skill dasar CLI dan konsep HTTP (URL, request/response, method, status code), mengenal networking dasar (DNS, port, TLS, proxy), memastikan curl 8.21.x terinstall dan terverifikasi dengan fitur yang lengkap, serta melengkapi tools pendukung jq, git, dan openssl.
Inti yang harus dibawa pulang:
curl --version: pastikan fitur SSL, HTTP2, HTTP3, dan brotli ada.jq, git, dan openssl sebagai pendamping sepanjang series.Di episode 1 selanjutnya kita akan membahas sejarah, latar belakang, dan mengapa dunia membutuhkan curl — mulai dari httpget yang ditulis Daniel Stenberg di tahun 1996, lahirnya curl pada 1998, hingga bagaimana sebuah proyek kecil menjadi standar de-facto transfer data berbasis URL selama lebih dari 25 tahun. Pastikan environment kalian sudah siap, karena perjalanan Belajar Curl baru saja dimulai!