Sebelum mencari file pertama dengan fzf, ada beberapa skill dasar dan tools yang perlu kalian siapkan terlebih dahulu: kenyamanan navigasi di terminal, pemahaman pipeline stdin dan stdout, hingga verifikasi bahwa fzf 0.74.x sudah terinstall dan siap dipakai di environment kalian masing-masing.

Selamat datang di series Belajar Fzf! Series ini akan mengajak kalian menguasai fzf — general-purpose command-line fuzzy finder yang ditulis dalam Go — dari mencari file pertama hingga workflow terminal yang cepat, efisien, dan siap produksi. Total ada 23 episode yang membangun pemahaman kalian lapis demi lapis.
Tapi sebelum mengetik perintah fzf pertama, ada beberapa skill dasar dan tools yang wajib kalian siapkan. Mengapa prasyarat ini penting? Karena fzf bukan aplikasi yang berdiri sendiri — dia adalah filter interaktif yang duduk di tengah pipeline. Fzf menerima daftar item dari perintah lain, menampilkannya dalam antarmuka interaktif, lalu mencetak item yang kalian pilih. Kalau kalian belum paham pipeline, environment variables, atau cara mencari file, fzf akan terasa seperti sihir — tahu hasilnya, tapi tidak paham mengapa.
Bayangkan fzf sebagai resepsionis bandara. Kalian datang dengan daftar penumpang (output dari perintah lain), resepsionis menampilkannya di layar dan membiarkan kalian mencari nama dengan mengetik sebagian huruf, lalu mencetak boarding pass untuk nama yang kalian pilih. Episode 0 ini menyiapkan daftar penumpang, layar, dan resepsionisnya sekaligus.
Fzf adalah tool Command Line Interface (CLI). Seluruh kekuatannya diakses lewat terminal — bukan tombol klik. Kenyamanan mengetik dan membaca output menjadi modal utama, karena sepanjang series ini kalian akan terus menulis perintah, menggabungkannya, dan membaca hasilnya.
Sebelum bergelut dengan fzf, pastikan kalian nyaman bernavigasi di terminal. 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: stdin dan stdout. Banyak perintah menulis hasilnya ke stdout — yaitu layar terminal kalian. Sebaliknya, banyak perintah juga membaca input dari stdin — defaultnya keyboard. Output ini bisa dialihkan ke file dengan > (redirect) atau diteruskan ke perintah lain dengan | (pipeline).
Fzf adalah konsumen utama pola ini. Perhatikan contoh paling dasar yang akan kalian pakai terus sepanjang series:
ls | fzfBaca baris di atas dengan lantang: "ambil output ls, teruskan ke fzf". Fzf membaca daftar file dari stdin, menampilkannya secara interaktif, lalu mencetak item yang kalian pilih ke stdout. Output itulah yang bisa diteruskan lagi ke perintah berikutnya — misalnya ls | fzf | xargs cat. Pahami pola ini sekarang, karena seluruh kekuatan fzf berangkat dari sini.
Preferensi shell kalian disimpan di file konfigurasi yang dibaca setiap sesi dimulai: ~/.bashrc untuk Bash, ~/.zshrc untuk Zsh, dan config.fish untuk Fish. Di sinilah nanti kalian akan menyimpan alias, fungsi, dan opsi default fzf yang kita bahas di episode-episode berikutnya.
Aturan praktisnya sederhana: apa pun yang ingin selalu aktif di setiap sesi, tulis di file konfigurasi shell kalian. Contoh kecil yang bisa langsung dicoba — alias untuk fzf:
# ~/.bashrc - konfigurasi shell Bash
# Alias agar fzf mudah diakses
alias ff='fzf --height=50% --border'
# Opsi default global untuk semua fzf
export FZF_DEFAULT_OPTS="--layout=reverse --info=inline"Setelah mengedit, muat ulang konfigurasi dengan source ~/.bashrc (untuk Fish: source ~/.config/fish/config.fish). Jangan khawatir soal isi opsinya sekarang — --layout dan --info akan dibedah tuntas di episode 4. Yang penting di sini: kalian sudah tahu di mana preferensi itu hidup.
Fzf paling sering dipasangkan dengan perintah pencarian file dan isi file. Kenali tiga perintah berikut karena akan menemani hampir setiap contoh di series ini:
| Perintah | Fungsi | Contoh |
|---|---|---|
find | Menjelajah struktur direktori berdasarkan nama | find . -name "*.md" |
grep | Mencari teks di dalam file | grep "error" app.log |
rg (ripgrep) | Pengganti grep yang jauh lebih cepat | rg "error" app.log |
Pola yang akan sering kalian lihat: perintah pencarian menghasilkan daftar, lalu daftar itu diteruskan ke fzf. Misalnya find . -type f | fzf untuk memilih file, atau rg --files | fzf yang lebih cepat di repo besar. Kalau find adalah cara menemukan file dari nama dan grep/rg cara menemukan dari isi, maka fzf adalah cara memilih satu dari banyak hasil — pekerjaan yang tidak bisa dilakukan grep sendirian, karena grep hanya memfilter, tidak menyediakan menu pilihan.
Fzf 0.74.x tersedia di repositori mayoritas distro Linux dan di Homebrew. Install sesuai sistem kalian:
sudo apt update
sudo apt install fzfJika versi di repositori distro kalian tertinggal dari 0.74.x, jangan khawatir — rilis fzf sangat sering, dan beberapa distro mengemas versi lama. Dua opsi di bawah ini (install script dan build dari source) selalu memberi kalian versi terbaru.
Cara yang disarankan oleh proyek fzf itu sendiri — script yang men-download, mengkompilasi, sekaligus mengatur integrasi shell:
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/installSelama prosesnya, script akan menanyakan apakah kalian ingin mengaktifkan keybindings (Ctrl+T, Ctrl+R, Alt+C) dan fuzzy completion di shell kalian. Jawab y jika ingin langsung merasakan kekuatan penuh fzf — integrasi ini akan kita bedah mendalam di episode 7 dan 8 series ini.
Fzf ditulis dalam Go, jadi membangunnya dari source sangat mudah — hasilnya satu binary tunggal yang bisa ditaruh di mana pun:
git clone --depth 1 https://github.com/junegunn/fzf.git
cd fzf
make
sudo make installKalian butuh toolchain Go di sistem. Metode ini paling berguna jika kalian ingin binary fzf terbaru di sistem yang package managernya tertinggal, atau ingin memasang fzf ke direktori pribadi tanpa hak root (make install PREFIX=$HOME/.local).
Setelah terpasang, verifikasi bahwa fzf 0.74.x benar-benar ada dan siap dipakai:
fzf --version0.74.1 (2a8d6c0)Output di atas menunjukkan dua hal: versi fzf (0.74.1) dan commit hash build-nya (2a8d6c0). Series ini mengasumsikan fzf 0.74.x. Jika versi kalian berbeda jauh, fitur yang dibahas mungkin sedikit berbeda — tapi konsep intinya tetap sama.
Fzf hebat sendirian, tapi empat alat berikut akan membuat pengalaman kalian jauh lebih menyenangkan sepanjang series:
| Tools | Kegunaan di Series Ini | Verifikasi |
|---|---|---|
rg (ripgrep) | Sumber daftar file dan isi yang sangat cepat | rg --version |
fd | Pengganti find yang ramah dan cepat | fd --version |
bat | cat dengan syntax highlighting untuk preview berwarna | bat --version |
| Terminal True Color | Mendukung warna 24-bit untuk preview dan tema | echo $COLORTERM |
bat akan sangat berperan di episode yang membahas preview window — fzf bisa menampilkan pratinjau file secara langsung, dan bat membuat pratinjau itu berwarna. Terminal kalian perlu mendukung True Color (24-bit) agar warna-warna tersebut tampil sempurna; sebagian besar terminal modern — Alacritty, Kitty, WezTerm, Windows Terminal, iTerm2 — sudah mendukungnya sejak lama.
Verifikasi semuanya terinstall dengan menjalankan:
rg --version
fd --version
bat --version
echo $COLORTERMpwd, ls, cd, man).perintah | fzf.~/.bashrc, ~/.zshrc, config.fish) dan cara memuat ulang.find, grep, dan rg sebagai sumber daftar item.fzf --version menampilkan fzf 0.74.x.rg, fd, dan bat sudah terinstall, terminal mendukung True Color.Di episode 0 ini kalian sudah menyiapkan pijakan untuk seluruh series: memahami skill dasar CLI dan pipeline stdin/stdout, mengenal environment variables dan file konfigurasi shell, menguasai dasar find, grep, dan rg, memasang fzf 0.74.x beserta verifikasinya, serta melengkapi tools pendukung rg, fd, dan bat.
Inti yang harus dibawa pulang:
fzf --version: pastikan versi 0.74.x.rg, fd, dan bat sebagai pendamping sepanjang series.Di episode 1 selanjutnya kita akan membahas sejarah, latar belakang, dan mengapa dunia membutuhkan fzf — dari plugin kecil untuk mencari file di Vim yang ditulis Junegunn Choi pada 2013, hingga menjadi standar de-facto fuzzy finder di ekosistem terminal. Pastikan environment kalian sudah siap, karena perjalanan Belajar Fzf baru saja dimulai!