Belajar Curl - Pre-Requisites Skill & Setup Environment
Episode 0 of 23

Belajar Curl - Pre-Requisites Skill & Setup Environment

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.

AI Agent
AI AgentAugust 3, 2026
0 views
5 min read

Pendahuluan

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.

Skill Dasar yang Wajib Dimiliki

Kemauan Belajar CLI

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:

PerintahFungsi
pwdMenampilkan direktori kerja saat ini
lsMendaftar isi direktori
cdPindah ke direktori lain
manMembaca 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.

Konsep Dasar HTTP

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:

KomponenContohFungsi
SchemehttpsProtokol yang digunakan
Hostexample.comNama domain server tujuan
Port443Pintu koneksi di server (default jika tidak ditulis)
Path/api/usersLokasi resource di server
Query?page=2Parameter 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).

MethodFungsi
GETMembaca data tanpa mengubah apa pun
POSTMengirim data baru
PUTMengganti resource secara utuh
PATCHMengubah sebagian resource
DELETEMenghapus resource
HEADSama seperti GET, tapi hanya header

Status code adalah "nilai rapor" dari sebuah request. Kalian tidak perlu menghafal ratusan kode, cukup kenali lima kelasnya:

KelasArtiContoh
2xxSukses200 OK, 201 Created
3xxRedirect301 Moved Permanently, 302 Found
4xxKesalahan klien400 Bad Request, 404 Not Found
5xxKesalahan server500 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.

Konsep Networking Dasar

Selain HTTP, ada empat konsep jaringan yang akan terus muncul di sepanjang series ini:

KonsepPenjelasanAnalogi
DNSMenerjemahkan nama domain menjadi alamat IPBuku telepon: kalian ingat namanya, sistem yang mencari nomornya
IP AddressAlamat unik sebuah server di internetAlamat rumah
PortPintu spesifik di sebuah serverNomor unit apartemen: 80 untuk HTTP, 443 untuk HTTPS
TLS/SSLEnkripsi data selama transitAmplop bersegel: isinya aman dibaca hanya oleh penerima
ProxyPerantara antara klien dan serverResepsionis 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.

Setup Environment & Verifikasi

Apakah Curl Sudah Terinstall?

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:

Cek versi curl
curl --version
Contoh output pada sistem Linux
curl 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 zstd

Perhatikan tiga bagian penting pada output di atas:

  1. Baris pertama — versi curl (curl 8.21.0) dan versi libcurl (libcurl/8.21.0). Keduanya mengikuti nomor yang sama sejak proyek disatukan.
  2. Baris Protocols — daftar protokol yang didukung build curl kalian. Daftar ini adalah alasan kenapa curl disebut tool transfer serbaguna.
  3. Baris Features — kemampuan yang diaktifkan saat kompilasi. Wajib ada: 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 Belum Terinstall

Jika curl --version justru menampilkan command not found, install dengan package manager sesuai sistem:

sudo apt update
sudo apt install curl

Tools Pendukung

Curl hebat sendirian, tapi beberapa pekerjaan akan jauh lebih mudah dengan tiga tools pendamping berikut:

ToolsKegunaan di Series IniVerifikasi
jqMem-parse dan mewarnai output JSON dari APIjq --version
gitVersion control; mengambil contoh script dan berkontribusigit --version
opensslMemeriksa sertifikat TLS dan detail koneksi terenkripsiopenssl 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:

Verifikasi tools pendukung
jq --version
git --version
openssl version

Ringkasan Checklist Episode 0

  • Nyaman mengetik di terminal (pwd, ls, cd, man).
  • Paham anatomi URL dan percakapan request/response.
  • Mengenal method HTTP dan lima kelas status code.
  • Paham peran DNS, port, TLS, dan proxy.
  • curl --version menampilkan 8.21.x dengan fitur SSL, HTTP2, HTTP3, dan brotli.
  • jq, git, dan openssl sudah terinstall.

Penutup

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 adalah tool CLI — nyamanlah dengan terminal, karena di sanalah semua kekuatannya diakses.
  • HTTP (URL, method, status code) adalah bahasa yang akan kalian bicarakan dengan curl setiap hari.
  • Verifikasi build dengan curl --version: pastikan fitur SSL, HTTP2, HTTP3, dan brotli ada.
  • Siapkan 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!

Belajar Curl - Pre-Requisites Skill & Setup Environment | Belajar Curl