- Teknologi informasi dan teknologi software
- Metodologi Pengembangan Software
- Memahami teknologi informasi secara umum dan kaitannya dengan software.
- Memahami ranah pendidikan yang terkait dengan teknologi informasi: istilah teknik informatika / informatics, ilmu komputer / computer science.
- Memahami arti penting dari metodologi pengembangan software
- Memahami Agile Software Development secara umum
- Memahami dasar yang kuat dari praktik Agile Software Development: Extreme Programming dan Scrum
- Teknologi informasi dan teknologi software
- Metodologi pengembangan software
- Extreme Programming dan Scrum
Materi dan Penjelasan
- Halaman Wikipedia - Information Technology, serta komponen-komponen dari TI dengan penekanan lebih pada software.
- Halaman StackExchange tentang perbedaan informatics dengan computer science.
- Halaman Wikipedia - Software Development memberikan penjelasan umum tentang aktivitas, model, serta hal-hal lain yang terkait dengan software development. Dengan mempelajari bagian ini, siswa diharapkan memahami bahwa software development merupakan aktivitas yang kompleks dan memerlukan berbagai macam roles / peran. Penerapan dari engineering ke dalam aktivitas software development ini disebut dengan Software Engineering
- Halaman Wikipedia - Agile Software Development membahas hal yang lebih spesifik dari software development, yaitu salah satu model / metodologi yang digunakan untuk membangun software.
- Halaman Wikipedia - Scrum membahas tentang salah satu process framework yang termasuk dalam metodologi Agile.
- Halaman Wikipedia - XP membahas tentang salah satu process framework yang termasuk dalam metodologi Agile.
- Sistem Operasi: UI, shell, utilities, shell script
- Memahami software paling mendasar: operating system
- Memahami ekosistem sistem operasi saat ini
- Memahami komponen-komponen sistem operasi - khususnya berbasis Linux
- Memahami UI di Linux (GUI dan text mode / shell)
- Memahami dan bisa menggunakan berbagai utilitas dasar dalam Linux
- Mehamami dasar-dasar dari shell script.
- Cara software bekerja
- Ekosistem sistem operasi saat ini
- Komponen sistem operasi
- Untuk pemakai Linux:
- Gambaran umum Linux
- Komponen-komponen SO Linux
- Windowing System di Linux
- Linux console dan terminal
- Utilitas dasar Linux
- Shell Script
- Untuk pemakai macOS:
- Gambaran umum macOS
- Arsitektur Komponen-komponen macOS
- Untuk pemakai Windows:
- Keluarga Windows OS
- Komponen-komponen Windows
- Cara software menempati komputer kita serta bagaimana user berinteraksi dengan tasks komputasi. Tekankan pemahaman pada bagaimana sistem operasi bekerja.
- Overview dari daftar sistem operasi yang ada di dunia ini.
- Untuk pemakai Linux:
- Komponen-komponen SO Linux.
- Windowing System yang berfungsi sebagai antarmuka grafis (GUI) di Linux serta impelementasinya di Linux menggunakan X Window System.
- Keterkaitan X Window System dengan Display Manager, Window Manager, serta Desktop Environment.
- Linux console dan keterkaitannya dengan Linux shell.
- Ringkasan dari berbagai command shell terutama yang digunakan di Linux.
- Beberapa utilitas yang biasanya digunakan pada saat berada di console / shell. Beberapa utilitas tersebut biasanya berada dalam kelompok GNU Core Utilities dan util-linux. Beberapa petunjuk lainnya adalah Guru99 dan E-Guide - format PDF.
- Cara membuat shell script.
- Untuk pemakai macOS:
- Gambaran umum macOS.
- Arsitektur macOS.
- Terminal dan shell di macOS.
- Terminal di macOS.
- Dua shell yang sering dipakai di macOS: Bash dan [Zsh]((http://zsh.sourceforge.net/). Default shell di macOS adalah Bash (pre-Catalina). Mulai Catalina, shell default adalah Zsh.
- Beberapa utilities di macOS, lihat juga di artikel ini.
- Daftar lengkap command line berbasis Bash di macOS.
- Shell script dan cara pembuatannya.
- Untuk pemakai keluarga Microsoft Windows:
- Gambaran umum Microsoft Windows.
- Gambaran umum Microsoft Windows 10.
- Gambaran umum arsitektur internal Windows.
- Windows Internal book.
- Dokumentasi Powershell.
- Daftar command line di Windows.
- Batch file.
- Powershell script, lihat juga di artikel ini dan artikel ini.
- Daftar perintah Powershell, lihat juga di artikel ini.
- Perintah-perintah di batch file.
- Batch file dan Powershell script.
Latihan
Catatan: semua hasil pada latihan ini disimpan pada direktori Coding-PGT/kemampuan-dasar-1/latihan
(jika menggunakan Windows, pemisah antar direktori adalah \, jadi pada Windows hasilnya akan disimpan di Coding-PGT\kemampuan-dasar-1\latihan
. Anda bebas menentukan lokasi tempat direktori Coding-PGT
berada.
Untuk Pemakai Linux
- Boot laptop masing-masing, perhatikan proses booting dari awal, jika muncul Grub, usahakan melihat parameter dari Grub tersebut. Cari informasi di Internet tentang parameter Grub tersebut. Simpan hasil anda pada file teks biasa dengan nama file
grub.txt
. - Cari informasi tentang software yang ada di laptop anda: display manager yang digunakan, window manager yang digunakan, desktop environment yang digunakan, serta shell apa yang digunakan. Dari mana bisa mengetahui informasi tersebut? Tulis jawaban pada file teks biasa dengan nama file
env.txt
. - Cari lokasi dari kernel Linux, sebutkan file-file yang terkait dan kegunaannya. Tulis jawaban
pada file teks biasa dengan nama file
kernel-linux.txt
. - Masuk ke terminal / console dan kerjakan beberapa perintah berikut melalui command line / shell:
- silahkan coba beberapa perintah di Guru99 dan E-Guide - PDF, minimal 10 perintah.
- tulis hasil dari masing-masing perintah tersebut ke dalam file
cmdline.txt
(gunakan copy paste dari shell)
- Untuk latihan ini, letakkan hasil pada direktori
Coding-PGT/kemampuan-dasar-1/latihan/shellscripts
: silahkan coba 30 contoh shell script.
Untuk Pemakai macOS
- Kerjakan berbagai hal yang ada di artikel tentang beberapa utilities di macOS dan artikel ini. Tulis hasil semua yang anda coba pada file
cmdline.txt
. - Untuk latihan ini, letakkan hasil pada direktori
Coding-PGT/kemampuan-dasar-1/latihan/shellscripts
: silahkan coba 30 contoh shell script. Jika anda menggunakan Zsh, silahkan kerjakan materi ini.
Untuk Pemakai Windows
- Kerjakan minimal 20 command line yang ada di daftar command line di Windows. Tulis hasil semua yang anda coba pada file
cmdline.txt
. - Untuk latihan ini, letakkan hasil pada direktori
Coding-PGT\kemampuan-dasar-1\latihan\powershellscripts
. Kerjakan contoh Powershell script, juga di artikel ini, artikel ini, dan batch file dan Powershell script.
Kasus
Referensi:
- Wikibooks - Bash Shell Scripting
- Bash Reference Manual
- Bash Handbook
- Dokumentasi Zsh
- Perintah-perintah di batch file.
- Dokumentasi Powershell.
Selesaikan kasus-kasus berikut.
Catatan: semua hasil pada latihan ini disimpan pada direktori Coding-PGT/kemampuan-dasar-1/kasus
(jika menggunakan Windows, pemisah antar direktori adalah , jadi pada Windows hasilnya akan disimpan di Coding-PGT/kemampuan-dasar-1/kasus
. Anda bebas menentukan lokasi tempat direktori Coding-PGT
berada.
- Buat shell script / powershell sript / batch file
cari-java.sh
(untuk shell script - macOS dan Linux) ataucari-java.bat
(untuk Windows). Tujuan dari script tersebut adalah untuk melihat daftar file pada suatu direktori (termasuk direktori anak-anaknya) dan jika terdapat file dengan ekstensi.java
- tampilkan tulisan "Ada file Java pada direktori {nama direktori}
". Hasil eksekusi (di Linux, lainnya menyesuaikan):
$ cari-java.sh $HOME/src
Ada file Java pada direktori /home/bpdp/src/hari-01
-
Untuk pemakai Linux dan macOS: Buat shell script
process-killer.sh
untuk menanyakan suatu nama program (misalnyafirefox
), setelah itu mencari PID dari program tersebut dan jika PID program tersebut ada, maka program tersebut akan dimatikan. Saran: gunakan perintah-perintahps
,grep
,awk
, dankill
. -
Untuk pemakai Windows: Lanjutkan kasus nomor 1. Beri nama file yang anda kerjakan ini dengan nama
file-ren.bat
. Setelah menemukan file .java, akan muncul pertanyaan:- nama-file.java ada, diganti namanya (y/t)?
- jika y, maka input nama baru kemudian diganti
- jika t, maka lanjut ke proses berikutnya
Bagian ini dikerjakan oleh semua pemakai sistem operasi: Linux, macOS, dan Windows.
- Memahami aktivitas pada metodologi agile serta kaitannya dengan source code management
- Memahami dan mampu menggunakan Git untuk mengelola repository.
- Memahami dan mampu menggunakan Git untuk mengelola remote repository di GitHub.
- Memahami dan mampu menggunakan Git dan GitHub, baik untuk single person maupun team development.
- Software engineering, software configuration management, version control, dan distributed version control.
- Git dan perintah-perintah dasarnya
- Markdown sebagai format untuk dokumentasi
- Git dan remote repository (GitHub, GitLab, Assembla, BitBucket)
- Git untuk single person development
- Git untuk tim pengembang aplikasi
Materi dan Penjelasan
- Ruang lingkup software engineering.
- Keterkaitan software engineering dengan SCM - Software Configuration Management.
- Keterkaitan SCM dengan Version Control dan Distributed Version Control.
- Git dan keterkaitannya dengan Distributed Version Control
- Men-setup Git - Chapter 1 - Getting Started, pastikan juga bahwa git telah terinstall.
- Membuat account GitHub serta membuat repo di GitHub.
- README.md serta mampu menggunakan pemformatan file markdown untuk menuliskan dokumentasi.
- Penggunaan
git status
,git add
,git commit
,git push
untuk menyimpan ke remote repo - Penggunaan branching and merging.
- Pull request untuk repo di GitHub milik sendiri, merging, kemudian sinkronisasi ke lokal repo di komputer.
- Menggunakan Github untuk kolaborasi tim.
Persiapan
Buat repo di account Github anda dengan nama Coding-PGT
. Setelah itu inisialisasi repo tersebut di komputer lokal anda. Repo ini yang akan menjadi hasil dari kemampuan dasar anda. URL dari repo anda ini seharusnya adalah https://github.com/username/Coding-PGT
:
- Kerjakan petunjuk pembuatan repo dari Github ini. Cukup kerjakan langkah 1 - 6 saja, setelah itu berhenti pada saat repo telah dibuat. Untuk langkah 5, jangan mengaktifkan checkbox Initialize this repository with a README. Untuk selanjutnya, ini akan kita sebut sebagai repo GitHub.
- Di komputer lokal, kerjakan (lokasi direktori bebas, asal hak akses memenuhi - bisa create dir,
file, dan seterusnya - lokasi yang anda pilih akan disebut sebagai $LOKASI):
- git clone https://github.com/username/Coding-PGT
- untuk selanjutnya, lokasi direktori $LOKASI/Coding-PGT ini kita sebut sebagai repo lokal.
- Latihan dan kasus berikut seharusnya dikerjakan di repo lokal dan hasilnya di-push ke repo Github.
Latihan
- Untuk keperluan pengerjaan kemampuan dasar ini, buat direktori di repo lokal dengan nama
kemampuan-dasar
. Setelah itu, masukkan hasil pekerjaan yang telah anda kerjakan pada materi Kemampuan Teknis Dasar 1 di atas ke direktorikemampuan-dasar-1
dalam direktorikemampuan-dasar
sehingga pada repo lokal anda akan terdapat 2 direktori. Setelah itu, push ke repo GitHub. Struktur direktori dan berbagai file yang harus ada pada posisi ini adalah (jika menggunakan Linux, pengguna lain silahkan menyesuaikan):
kemampuan-dasar/
└── kemampuan-dasar-1
├── kasus
│ ├── cari-java.sh
│ └── process-killer.sh
└── latihan
├── cmdline.txt
├── env.txt
├── grub.txt
├── kernel-linux.txt
└── shellscripts
├── echo_example.sh
├── first.sh
....
....
.... seluruh shell script yang dicoba
....
....
└── sleep-example.sh
-
Untuk praktik berikut ini, kerjakan semuanya di dalam direktori
kemampuan-dasar-2
di bawahkemampuan-dasar
. Cara mengerjakannya adalah dengan mempraktikkan dan kemudian meng-capture / meng-copy hasil dari praktik tersebut ke dalam file markdown. Jika di praktik tersebut diminta untuk membuat repo, buatlah juga di account anda, tidak perlu berada dalam repo Coding-PGT. Buat fileREADME.md
yang berisi nama-nama repo di account GitHub anda yang berhubungan dengan praktik-praktik tersebut. Praktik-praktik yang harus dikerjakan adalah:- Getting Started. Nama file hasil untuk praktik ini adalah
praktik-1.md
. - Team Collaboration with GitHub. Nama file hasil untuk praktik ini adalah
praktik-2.md
.
- Getting Started. Nama file hasil untuk praktik ini adalah
-
Buat direktori
wawasan
pada direktorikemampuan-dasar
. Buatlah rangkuman dari "Ruang Lingkup Pengembangan Sofwtare - Materi dan Penjelasan - point 1 sampa 6" di atas (awal dokumen ini). Tuliskan hasil rangkuman anda pada fileREADME.md
, letakkan di direktoriwawasan
tersebut. Yang anda kerjakan adalah merangkum, bukan menterjemahkan. Pahami esensinya, setelah itu tuliskan secara ringkas.
Setelah menyelesaikan kemampuan dasar teknis 1 dan 2 di atas, struktur direktori dan file di repo hasil pekerjaan anda (baik repo lokal maupun repo GitHub) adalah sebagai berikut (jika menggunakan Linux, pengguna lain silahkan menyesuaikan):
kemampuan-dasar/
├── kemampuan-dasar-1
│ ├── kasus
│ │ ├── cari-java.sh
│ │ └── process-killer.sh
│ └── latihan
│ ├── cmdline.txt
│ ├── env.txt
│ ├── grub.txt
│ ├── kernel-linux.txt
│ └── shellscripts
│ ├── first.sh
│ ....
│ ....
│ .... seluruh shell script yang dicoba
│ ....
│ ....
│ └── sleep-example.sh
├── kemampuan-dasar-2
│ ├── praktik-1.md
│ ├── praktik-2.md
│ └── README.md
└── wawasan
└── README.md