F3 · Alat Kerja Developer
Terminal, Unix, skrip shell, dan Git dari dalam: alat yang dipakai setiap developer setiap hari, dipahami sampai mekanismenya, lalu dipakai bersama Codespaces, GitHub Actions, kontainer, dan asisten AI koding secara bertanggung jawab.
- 16 modul
- 132 latihan
- 177 istilah
Daftar modul
- 01Terminal dan shell8 latihan
- 02Sistem berkas8 latihan
- 03Teks, pipa, dan pengalihan8 latihan
- 04Pencarian dan ekspresi reguler8 latihan
- 05Proses dan izin9 latihan
- 06Skrip shell9 latihan
- 07Lingkungan dan paket9 latihan
- 08Git: merekam jejak8 latihan
- 09Git dari dalam8 latihan
- 10Git: cabang dan penggabungan8 latihan
- 11Kolaborasi di GitHub8 latihan
- 12Editor, debugging, dan membaca galat8 latihan
- 13Otomasi9 latihan
- 14CI dengan GitHub Actions8 latihan
- 15Jarak jauh dan kontainer8 latihan
- 16Proyek akhir: Perkakas Makmur8 latihan
Ada contoh atau latihan bertanda “Kerjakan di laptop”? Paket dan data F3 untuk menjalankannya di komputermu ada di panduan menjalankan kode di komputermu.
Tentang course ini
Terminal, Unix, skrip shell, dan Git dari dalam: alat yang dipakai setiap developer setiap hari, dipahami sampai mekanismenya, lalu dipakai bersama Codespaces, GitHub Actions, kontainer, dan asisten AI koding secara bertanggung jawab.
Course fondasi jalur Full Stack Developer, gratis penuh seperti F1,
F2, F4, dan F5. Satu proyek berjalan dari Modul 01 sampai 16: repo
perkakas untuk Warung Makmur (fiktif).
Posisi course
Di jalur Full Stack Developer
| Urutan | Course | Peran |
|---|---|---|
| 1 | F1 · Python | bahasa pertama; prasyarat F3 |
| 2 | F2 · SQL | data dan basis data |
| 3 | F3 · Alat Kerja Developer | terminal, skrip shell, Git, CI, kontainer |
| 4 | F4 · TypeScript dan Web | bahasa web; memakai terminal, Git, dan npm dari F3 |
| 5 | F5 · Rilis | Docker, CI, dan tayang; memakai Git, Actions, dan kontainer dari F3 |
| 6 | K1 · Struktur Data dan Algoritma | dianjurkan |
| 7 | C14 · Full Stack Development | course inti; memakai terminal, Git (cabang, PR), dan GitHub Actions dari F3 |
| 8 | C11 · Desain Sistem | sistem berskala besar |
Kenapa course ini ada
Hampir semua pekerjaan developer melewati terminal dan Git: menjalankan
tes, membaca log, memindahkan berkas, mengotomasi tugas, menyimpan riwayat
kode, bekerja dalam tim, dan kini memberi perintah ke agen AI yang
menjalankan perintah shell atas nama kamu. Banyak pemula bisa menyalin
perintah dari internet atau dari jawaban AI tanpa tahu apa yang
dilakukannya: rm -rf di folder yang salah, skrip yang diam-diam lanjut
setelah galat, berkas rahasia yang ikut ter-commit, atau konflik merge
yang "diselesaikan" dengan menghapus pekerjaan teman.
Cara klasik di course ini: model Unix (berkas, proses, pipa, izin),
filosofi alat kecil yang bisa digabung, ekspresi reguler, skrip shell yang
kokoh, Git sebagai basis data objek beralamat isi (blob, tree, commit, ref)
yang kamu tiru sendiri dengan Python sampai hash-nya sama dengan Git asli,
merge tiga arah dan merge base, make sebagai graf ketergantungan, dan
kunci publik SSH. Cara modern: GitHub Codespaces sebagai lingkungan siap
pakai, GitHub (PR, review, proteksi cabang), GitHub Actions untuk CI yang
hemat kuota, Docker dan devcontainer, uv untuk Python, dan asisten AI
koding di terminal yang setiap perintahnya kamu baca dulu sebelum
dijalankan.
Untuk siapa
- Lulusan F1 Python (wajib; latihan Python F3 memakai F1 Modul 01–10). Tidak perlu pengalaman terminal.
- Yang kamu butuhkan: peramban dan akun GitHub gratis. Terminal Linux sungguhan tersedia di GitHub Codespaces; laptop dengan Linux atau macOS juga cukup.
Cara belajar
- Mode langkah. Setiap modul berupa rangkaian layar: satu layar satu ide, dibuka dengan Intinya, dan setiap layar berakhir dengan interaksi (tebak keluaran, animasi dengan jeda, playground, atau latihan). Tombol Baca penuh menampilkan semua layar dalam satu halaman.
- Contoh dan latihan Python berjalan di peramban. Peniru mekanisme
(jalur, glob, izin oktal, regex, pengurai log, Git mini,
makemini, cron, lapisan image) diperiksa otomatis dengan Python 3.11–3.13. - Latihan skrip shell dikerjakan di laptop atau Codespaces. Tes Python
menjalankan skripmu dengan
bashdi folder sementara; contoh Git memakai repo baru dengan nama, email, dan waktu yang dipatok sehingga hash commit sama di setiap komputer. - Lab di komputermu (GitHub, SSH, Docker, devcontainer, CI sungguhan) ditutup dengan daftar "Selesai bila:" yang bisa kamu periksa sendiri.
- Fakta yang cepat berubah (kuota GitHub Actions dan Codespaces, versi action dan image) diberi tanggal pengecekan dan tanda perlu dicek ulang; bila halaman resmi berkata lain, halaman resmi yang benar.
| Bagian | Di mana | Diperiksa |
|---|---|---|
| Latihan Python pustaka standar | Peramban dan pemeriksa Python 3.11–3.13 | Otomatis |
Latihan dan contoh skrip shell (bash), termasuk Git di repo sementara | Laptop atau GitHub Codespaces | Otomatis (tes menjalankan skripmu) |
| GitHub (PR, review, Actions), SSH, Docker, devcontainer | Akun GitHub gratis + Codespaces | Lab "Selesai bila:" |
Waktu: ±3,5–4 jam per modul, total ±60 jam. Gratis seluruhnya.
Silabus (16 modul)
| # | Modul | Klasik | Modern | Proyek Perkakas Makmur |
|---|---|---|---|---|
| 01 | Terminal dan shell | Terminal, shell, kernel; perintah dan argumen; PATH; manual | Codespaces sebagai lingkungan siap pakai | Repo perkakas pertama di Codespaces |
| 02 | Sistem berkas | Hierarki, jalur, glob, berkas tersembunyi, tautan, inode | Editor dan pencarian berkas | Struktur folder proyek |
| 03 | Teks, pipa, dan pengalihan | stdin/stdout/stderr, pengalihan, pipa, alat teks, kode keluar | Membaca keluaran panjang | rekap.sh untuk kas/ |
| 04 | Pencarian dan ekspresi reguler | grep, find, regex, sed, awk | rg, regex di editor | analisis_log.sh dan urai_log |
| 05 | Proses dan izin | Proses, sinyal, job, izin rwx dan oktal, umask | Melihat proses di Codespaces | Skrip yang bisa dieksekusi |
| 06 | Skrip shell | Variabel, kutipan, kondisi, perulangan, fungsi, set -euo pipefail, trap | ShellCheck, kapan beralih ke Python | cadangan.sh |
| 07 | Lingkungan dan paket | Variabel lingkungan, dotfiles, venv, versi dan lockfile | uv, npm, .env dan rahasia | periksa_lingkungan.sh |
| 08 | Git: merekam jejak | init add commit status diff log, staging, .gitignore | Git di editor | Riwayat perkakas |
| 09 | Git dari dalam | Objek blob/tree/commit, SHA-1, ref, HEAD, indeks | Membaca .git/ sendiri | minigit.py dengan hash sama dengan Git |
| 10 | Git: cabang dan penggabungan | Cabang, fast-forward, merge tiga arah, konflik, merge base, rebase, reflog | Alat konflik di editor | merge_base, cabang fitur dan konflik |
| 11 | Kolaborasi di GitHub | Remote, fetch pull push, PR, review, proteksi cabang, SemVer | GitHub CLI, review dengan AI | PR pertama ke perkakas |
| 12 | Editor, debugging, dan membaca galat | Traceback, debugger, logging, git bisect | LSP dan debugger di editor | bisect |
| 13 | Otomasi | make (graf, cap waktu), cron, hook Git | Task runner, framework pre-commit | Makefile, minimake.py, hook pre-commit |
| 14 | CI dengan GitHub Actions | Integrasi berkelanjutan, workflow sebagai kode | YAML, matrix, cache, rahasia, menghemat kuota | .github/workflows/ci.yml |
| 15 | Jarak jauh dan kontainer | SSH dan kunci publik, scp/rsync, proses lawan kontainer | Docker, devcontainer, Codespaces | .devcontainer/devcontainer.json |
| 16 | Proyek akhir: Perkakas Makmur | Menyatukan skrip, Git, otomasi, CI | AI koding di terminal yang bertanggung jawab | Repo perkakas utuh + panduan |
Proyek: Perkakas Makmur
Warung Makmur punya situs pesan sederhana dan catatan kas harian. Kamu
membuat repo perkakas: skrip shell untuk merekap kas dan menganalisis
log akses, cadangan otomatis, pemeriksa lingkungan, minigit.py (Git mini
dengan Python yang hash-nya sama dengan Git asli), minimake.py,
Makefile, hook pre-commit, CI GitHub Actions, dan devcontainer. Data di
data/ (dibuat deterministik oleh data/buat_data.py): log akses situs
pesan (termasuk pemindai otomatis dan endpoint yang lambat), catatan kas
harian dengan satu hari hilang dan satu baris rusak, serta berkas pemasok
dari Windows (BOM dan CRLF). Kontrak data, angka rujukan, dan alat:
proyek-perkakas.md.
Kerangka setiap modul
# Modul NN · Judul
> **Hasil belajar:** … / **Prasyarat:** modul sebelumnya (bertaut) / **Waktu:** … / **Proyek:** langkah Perkakas Makmur
## Intinya 3–5 butir
## 1. Konsep pertama layar jelaskan, tebak/cek, animasi, playground → latihan bagian ini
## …
## N. Proyek aturan alat (cek) → latihan proyek → lab di komputermu
## N+1. Belajar bersama AI periksa jawaban AI; tugas tanpa AI, dengan AI, dan bandingkan (opsional)
## N+2. Pendalaman (opsional) di balik layar, sejarah, dunia kerja
## Rangkuman
## Sumber
- Contoh terperiksa: contoh shell dijalankan dan keluarannya dibandingkan
dengan yang tertulis; perintah yang tidak bisa dijalankan pemeriksa
(jaringan,
sudo, Docker, SSH ke server) ditulis sebagai bacaan dengan label "contoh keluaran". - Latihan bertingkat: minimal 8 per modul (dasar, menengah, tantangan),
campuran skrip
bashdan Python yang meniru mekanismenya; setiap latihan punya petunjuk bertingkat dan solusi dengan penjelasan mengapa. - Kesalahan umum (pesan galat shell dan Git sungguhan, juga kesalahan yang tidak memunculkan pesan) menjadi layar "tebak galat" di dekat konsepnya.
- Belajar bersama AI: termasuk keselamatan asisten AI di terminal (baca setiap perintah sebelum dijalankan, jangan menempelkan rahasia, waspadai perintah yang menghapus atau menimpa).
- Sumber klasik bergantian: Kernighan dan Pike, The UNIX Programming Environment (1984); Ritchie dan Thompson (1974) "The UNIX Time-Sharing System"; Raymond, The Art of Unix Programming (2003); Shotts, The Linux Command Line (ed. 2, 2019); Chacon dan Straub, Pro Git (ed. 2, 2014); Friedl, Mastering Regular Expressions (ed. 3, 2006); Feldman (1979) "Make"; Thompson (1968) tentang regex; Fowler, "Continuous Integration"; POSIX (The Open Group Base Specifications); manual GNU Bash.
Hubungan dengan course lain
| Course | Hubungan |
|---|---|
| F1 · Python | Prasyarat; Python untuk latihan peniru mekanisme dan alat yang lebih besar dari skrip shell |
| F4 · TypeScript dan Web | Memakai terminal, Git, dan npm dari F3 |
| F5 · Rilis | Memakai Git, GitHub Actions, dan Docker dari F3 untuk menayangkan aplikasi |
| C14 · Full Stack Development | Memakai terminal, Git (cabang, PR), dan GitHub Actions dari F3 di proyek full stack |
| C5 · Modern Software Development | Memperdalam CI/CD dan kerja bersama agen AI di proyek nyata |
| Semua course | Codespaces, Git, dan terminal dipakai di setiap lab |
Sisi sistem di bawah shell (system call, penjadwalan proses, sistem berkas di kernel) dan jaringan (TCP, HTTP, cara kerja SSH di tingkat protokol) cukup dibahas di F3 sejauh dipakai alatnya; pembahasan mendalamnya ada di course klasik tentang sistem komputer dan jaringan.