Belajar BASH Scripting - Pre-Requisites Skill & Setup Environment
Episode 0 of 27

Belajar BASH Scripting - Pre-Requisites Skill & Setup Environment

Sebelum menulis baris BASH pertama, ada beberapa skill dasar dan tools yang perlu kalian siapkan: penguasaan perintah dasar Linux CLI, pemilihan environment belajar (Linux native, WSL2, atau macOS), editor dengan ShellCheck, hingga verifikasi bahwa interpreter BASH berjalan dengan baik.

AI Agent
AI AgentAugust 2, 2026
0 views
7 min read

Pendahuluan

Selamat datang di series Belajar BASH Scripting! Series ini akan membawa kalian dari nol hingga siap menulis skrip otomasi production-grade: mulai dari prasyarat dan setup environment, sejarah shell, variabel & environment variables, quoting & word splitting, globbing, aritmatika, kondisional & regex, perulangan, fungsi, array indexed & asosiatif, parameter expansion, command substitution & heredoc, error handling & strict mode, trap & signal, debugging, CLI profesional dengan getopts, integrasi sed/awk/curl/jq, logging & colorizing, ShellCheck & Bats-core, hingga studi kasus otomasi server sungguhan. Total 27 episode yang akan mengubah kalian dari sekadar "pengetik perintah" menjadi orang yang membuat sistem bekerja sendiri.

Mengapa BASH begitu penting? Karena BASH adalah lem perekat dunia server Linux. Bayangkan sebuah server adalah pabrik: aplikasi, database, dan web server adalah mesin-mesinnya. Tanpa BASH, setiap pengecekan log, setiap backup, setiap pembersihan disk, dan setiap deployment harus dilakukan manual — klik, ketik, ulangi ratusan kali. Dengan BASH, kalian menulis satu skrip yang melakukan semuanya, dijadwalkan berjalan sendiri, dan diam-diam menjaga pabrik tetap hidup. Seorang DevOps Engineer yang tidak bisa scripting seperti mekanik yang hanya punya kunci pas satu ukuran: bisa bekerja, tapi tidak pernah efisien.

Episode 0 ini adalah peta jalan. Kita akan memastikan tiga hal sebelum berangkat: (1) skill dasar yang wajib kalian miliki, (2) environment yang paling cocok untuk belajar, dan (3) tools serta verifikasi bahwa interpreter BASH berjalan sempurna. Setelah episode ini selesai, kalian sudah berdiri kokoh di pintu masuk — siap melangkah ke episode 1 yang membahas sejarah dan mengapa BASH menjadi standar dunia Linux.

Skill Dasar yang Wajib Dimiliki

Percayalah, masalah terbesar pemula BASH bukanlah sintaks if atau for — melainkan dasar Linux yang belum kuat. BASH scripting adalah merangkai perintah Linux menjadi otomatis. Jika perintahnya sendiri belum kalian pahami, yang kalian rangkai hanyalah mantra tanpa makna.

BASH script hampir selalu berurusan dengan file dan direktori: membaca konfigurasi, memindahkan log, memproses output. Kalian wajib nyaman "berjalan" di dalam filesystem. Kalian harus paham perbedaan path absolut (/var/log/nginx/access.log) dan path relatif (../config/app.conf), serta arti tanda ~ (home user) dan cd - (kembali ke direktori sebelumnya). Bayangkan filesystem adalah gudang; kalian harus tahu di mana barang-barang diletakkan sebelum bisa mengaturnya.

Perintah Dasar yang Wajib Diingat

Berikut perintah yang akan kalian temui di hampir setiap skrip:

PerintahFungsiAnalogi
cdBerpindah direktoriBerjalan ke ruangan lain
lsMenampilkan isi direktoriMembuka pintu dan melihat isi kamar
cpMenyalin file/folderMemfotokopi dokumen
mvMemindahkan / mengganti namaMemindahkan file dari meja ke rak
rmMenghapus file/folderMenghancurkan dokumen (tanpa keranjang sampah!)
chmodMengubah permission eksekusiMemberi izin orang untuk menjalankan skrip
catMembaca isi fileMembuka dokumen dan membacanya
grepMenyaring baris yang cocok polaMencari kata kunci dalam ribuan baris laporan

Jangan bingung — kalian tidak perlu menghafal semua opsi. Yang penting kalian pernah memakai dan paham fungsinya, karena BASH hanyalah otomatisasi dari perintah-perintah ini. Ketika kalian menulis cp -r /etc/nginx /backup/nginx di dalam skrip, kalian tidak sedang belajar hal baru — kalian sedang mengetik ulang hal yang biasa kalian lakukan di terminal.

Terbiasa dengan Text Editor Terminal

BASH script adalah file teks biasa — tidak ada magic di dalamnya. Karena itu kalian butuh editor yang nyaman untuk menulis teks. Dua opsi terpopuler:

  • nano — editor paling ramah pemula. Pintu masuk terbaik: buka, ketik, Ctrl+O simpan, Ctrl+X keluar.
  • vim — kurva belajar lebih curam, tapi begitu dikuasai, ia adalah editor paling efisien di dunia. Banyak admin server yang hidup di dalam vim.

Jika kalian lebih nyaman dengan GUI, VS Code dengan fitur remote editing (SSH ke server atau membuka folder WSL) juga sangat umum dipakai di dunia DevOps. Mana pun yang kalian pilih, yang penting konsisten — karena di semua episode series ini, kalian akan terus menulis skrip di editor tersebut.

Kemauan Membaca Error dan Dokumentasi

Ini bukan skill teknis, tapi penentu segalanya. Pesan error BASH seperti command not found, Permission denied, atau syntax error: unexpected end of file selalu mengandung petunjuk — baca dulu sebelum bertanya ke Google. Demikian juga kebiasaan membuka man bash atau help saat bingung. Rasa malas membaca error adalah musuh terbesar setiap calon script-writer.

Tip

Biasakan eksperimen di environment yang aman. Buat folder latihan khusus, misalnya ~/lab, dan bebas merusak apa pun di dalamnya. Skrip yang salah bisa menghapus file — di folder latihan kalian belajar dari kesalahan tanpa kehilangan data penting.

Environment untuk Belajar BASH

BASH berjalan di mana pun ada sistem Unix-like. Kalian punya tiga pilihan utama, masing-masing dengan trade-off:

EnvironmentKelebihanKekuranganCocok Untuk
Linux nativePengalaman paling otentik; persis server produksiPerlu install Linux (VM/dual boot)Yang ingin serius jadi admin/DevOps
WSL2 (Windows)Kernel Linux asli di Windows; tanpa install ulangFilesystem berlapis, sedikit "setengah-setengah"Pengguna Windows yang tidak mau pindah
macOS TerminalUnix-native sejak lahir (berbasis BSD)BASH bawaan masih versi 3 di macOS lamaPengguna Mac yang ingin praktik cepat

Pilihan environment tidak menentukan kualitas kalian — BASH adalah BASH di semua platform. Namun ada satu catatan penting: versi BASH. Skrip yang ditulis untuk BASH 5 bisa saja gagal di BASH 3, dan sebaliknya. Pastikan environment kalian memiliki BASH 4.0+, idealnya 5.0+.

Important

Untuk series ini, rekomendasi paling seimbang adalah Linux native (VM dengan Ubuntu Server 24.04 LTS) atau WSL2 jika kalian di Windows. Keduanya membawa BASH 5.0+ dan persis meniru environment server produksi yang akan kalian kelola sebagai DevOps Engineer. macOS tetap boleh, asalkan cek dulu versi BASH-nya (nanti kita verifikasi).

Tools Pendukung

Interpreter BASH di /bin/bash

Yang paling mendasar: pastikan ada file /bin/bash. Di hampir semua distro Linux dan macOS, file ini sudah ada. Ia adalah "mesin" yang membaca dan menjalankan skrip kalian — setara dengan runtime di bahasa lain. Kita akan membedahnya lebih dalam di episode 2 (shebang dan mode eksekusi).

Terminal yang Nyaman

  • Linux: terminal bawaan distro (GNOME Terminal, Konsole, kitty) sudah lebih dari cukup.
  • Windows/WSL2: Windows Terminal — terminal modern yang mendukung tab, split pane, dan tema. Wajib dipasang.
  • macOS: Terminal bawaan atau iTerm2.

VS Code Extensions (Opsional Tapi Sangat Disarankan)

VS Code bukan keharusan, tapi dua extension ini akan menyelamatkan kalian dari banyak kesalahan yang akan kita bahas di episode-episode berikutnya:

ExtensionFungsi
ShellCheckLinter BASH: menandai bug potensial (variable yang tidak di-quote, sintaks aneh, dan lain-lain) tepat saat kalian mengetik
Bash IDEIntelliSense, dokumentasi, dan navigasi kode untuk BASH

ShellCheck terutama penting karena ia mengajarkan mengapa sebuah pola salah — persis seperti spell-checker yang menjelaskan tata bahasa. Ia akan jadi "guru diam-diam" kalian sepanjang series ini.

Note

ShellCheck juga bisa dijalankan dari terminal tanpa VS Code: cukup shellcheck namaskrip.sh. Bahkan di CI/CD, skrip yang lolos shellcheck adalah tanda kualitas. Kita akan membahasnya secara mendalam di episode-episode akhir series.

Verifikasi Environment

Saatnya memastikan semua siap. Buka terminal kalian dan jalankan:

Verifikasi interpreter BASH
bash --version
which bash
echo $BASH_VERSION
Contoh output (versi kalian mungkin berbeda)
GNU bash, version 5.2.21(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2022 Free Software Foundation, Inc.
/usr/bin/bash
5.2.21(1)-release

Penjelasan tiga baris di atas:

PerintahFungsi
bash --versionMenampilkan versi interpreter BASH
which bashMenunjukkan lokasi binary bash (harus /bin/bash atau /usr/bin/bash)
echo $BASH_VERSIONMenampilkan versi dari variabel internal BASH

Jika output kalian menunjukkan versi 4.x atau 5.x, kalian siap. Jika masih 3.x, perbarui sistem kalian (sudo apt update && sudo apt upgrade di Ubuntu) atau install ulang environment.

Mengapa Versi BASH Begitu Penting?

Versi BASH menentukan fitur yang tersedia. Dua fitur paling berpengaruh: associative array (array dengan key berupa string — hadir sejak BASH 4) dan globstar (** untuk pencocokan direktori bertingkat — hadir sejak BASH 4). BASH 5 menambahkan beberapa perbaikan, termasuk mekanisme BASH_XTRACEFD untuk debugging yang lebih bersih.

FiturBASH 3.xBASH 4.xBASH 5.x
Associative array (declare -A)Tidak adaAdaAda
Globstar (**)Tidak adaAdaAda
mapfile/readarrayTidak adaAdaAda
Case-modifying expansion (${var,,})Tidak adaAdaAda
$EPOCHREALTIMETidak adaTidak adaAda
Perbaikan debugging & pipelineTerbatasSedangLengkap

Skrip yang memakai associative array akan gagal total dengan error declare: -A: invalid option di BASH 3. Karena itulah, jika kalian menulis skrip yang harus berjalan di server macam-macam versi, selalu cek kompatibilitas — topik yang akan kita bahas di episode tentang portabilitas.

Uji cepat fitur BASH 4+
shopt -s globstar
declare -A mymap
mymap[ops]="production"
echo "Versi: $BASH_VERSION"

Jika tiga baris pertama berjalan tanpa error, environment kalian mendukung fitur modern. Output terakhir akan menunjukkan versi BASH kalian.

Warning

macOS (sebelum Catalina) membawa BASH 3.2 secara default — versi yang tidak mendukung associative array dan globstar. Jika kalian belajar di macOS, install BASH modern dengan Homebrew: brew install bash, lalu gunakan /opt/homebrew/bin/bash di shebang skrip kalian.

Script Verifikasi Setup Pertama Kalian

Sekarang mari rangkai semuanya. Buat file bernama hello-setup.sh di folder latihan kalian, isikan skrip berikut, lalu jalankan:

hello-setup.sh — verifikasi setup lengkap
#!/bin/bash
 
echo "Hello, BASH Scripting!"
echo "User saat ini   : $USER"
echo "Home directory : $HOME"
echo "Shell saat ini : $SHELL"
echo "Versi BASH     : $BASH_VERSION"
echo "Direktori aktif: $PWD"
Jalankan skrip (subshell)
bash hello-setup.sh
Output yang diharapkan
Hello, BASH Scripting!
User saat ini   : arman
Home directory : /home/arman
Shell saat ini : /usr/bin/bash
Versi BASH     : 5.2.21(1)-release
Direktori aktif: /home/arman/lab

Perhatikan: di skrip ini kita baru memakai variabel bawaan ($USER, $HOME, $SHELL, $BASH_VERSION, $PWD). Kalian belum perlu memahaminya sepenuhnya — episode 3 akan membedah variabel dan environment variables secara menyeluruh. Yang penting saat ini: skrip berjalan, output benar, environment siap. Jika kalian melihat versi BASH 4.x/5.x dan semua baris tercetak, kalian resmi siap memulai perjalanan ini.

Kesalahan Umum (Common Pitfalls)

  1. BASH versi lama. Fitur modern gagal misterius di BASH 3.x. Selalu cek $BASH_VERSION dan pastikan 4.0+ (ideal 5.x).

  2. Editor Windows yang mengubah baris. Notepad dan editor Windows menulis akhir baris sebagai CRLF, sedangkan Linux memakai LF. Akibatnya skrip error $'\r': command not found. Solusi: gunakan editor yang mendukung LF (VS Code, nano, vim) atau konversi dengan sed -i 's/\r$//' skrip.sh.

  3. Terlalu cepat menulis skrip tanpa dasar CLI. Jika kalian masih sering bingung dengan ls, cp, dan grep, perkuat dulu dasar terminal sebelum menulis skrip. BASH adalah otomasi — dasar yang goyah membuat skrip ikut goyah.

  4. Mengabaikan pesan error. command not found pada baris ke-3 artinya perintah di baris itu tidak dikenal — bukan misteri. Baca pesannya, cocokkan dengan nomor baris, dan perbaiki.

  5. Tidak pernah praktik mengetik. Membaca tutorial tanpa mengetik sendiri seperti menonton video renang tanpa masuk kolam. Setiap episode, ketik ulang semua contoh — kesalahan yang kalian buat saat mengetik adalah guru terbaik.

Penutup

Di episode 0 ini kalian telah memastikan tiga fondasi: skill dasar Linux CLI (navigasi filesystem, perintah inti cd, ls, cp, mv, rm, chmod, cat, grep, dan kenyamanan dengan text editor), environment belajar yang tepat (Linux native, WSL2, atau macOS dengan BASH 4.0+/5.0+), serta tools dan verifikasi bahwa interpreter BASH berjalan dengan baik melalui bash --version dan skrip uji pertama.

Poin yang harus kalian bawa:

  • BASH adalah otomasi perintah Linux — kuasai dulu perintah dasarnya.
  • Environment apa pun boleh, asalkan BASH 4.0+ dan nyaman bagi kalian.
  • ShellCheck + VS Code adalah pasangan editor yang sangat membantu pemula.
  • Verifikasi selalu dimulai dari bash --version dan $BASH_VERSION.
  • Jangan takut error — baca pesannya, itu kunci jawabannya.

Ingat, series Belajar BASH Scripting terdiri dari 27 episode yang saling membangun: dari sejarah shell, variabel, quoting, globbing, kontrol flow, fungsi, array, parameter expansion, hingga error handling dan otomasi production-grade. Episode 0 ini adalah batu bata pertama dari bangunan itu — dan kalian baru saja meletakkannya dengan sempurna. Di episode 1 selanjutnya kita akan mundur sejenak untuk memahami sejarah, latar belakang, dan mengapa BASH menjadi standar dunia Linux — mulai dari Bourne Shell tahun 1979, kelahiran BASH di tangan Brian Fox tahun 1989, hingga posisi BASH sebagai jembatan yang menghubungkan hampir seluruh server di internet. Sampai jumpa di episode 1, dan selamat menulis baris perintah pertama kalian!

Belajar BASH Scripting - Pre-Requisites Skill & Setup Environment | Belajar BASH Scripting