# Tutorial Penggunaan git untuk Pengerjaan Tugas Praktikum Alprog > Diasumsikan pembaca sudah mengerti tentang Command Line Interface. Sebelum melanjutkan, direkomendasikan agar menonton video berikut tentang Command Line Interface https://www.youtube.com/watch?v=8g-vHo07XkU ## Apakah itu git? Git merupakan salah satu alat yang sangat digunakan oleh software engineer. Secara singkat, git digunakan untuk mencatat perubahan-perubahan yang terdapat pada suatu repositori dokumen (dalam hal ini, kode). Contoh lain yang lebih sederhana adalah fitur *version history* milik G Suite (Google Docs, Google Sheets, Google Slides). ![](https://i.imgur.com/IDG7XIW.png) Pada bagian kanan gambar di atas, dicatat perubahan-perubahan yang terjadi pada sebuah dokumen. Apabila kita mengeklik salah satu dari versi di daftar tersebut, kita dapat melihat dokumen dan perubahannya pada waktu tersebut. ![](https://i.imgur.com/rGT8ZTX.png) Gambar di atas adalah contoh history perubahan pada repositori kode pada github (dibahas nanti). History dipecah-pecah menjadi satuan **commit** (juga dibahas nanti). ![](https://i.imgur.com/77S0sCI.png) Jika diklik salah satu dari daftar commit, akan muncul perubahan yang terjadi pada commit tersebut seperti gambar di atas. Teks yang diberi tanda merah berarti dihapus, sedangkan yang diberi tanda hijau berarti ditambahkan. ## Git dasar Terdapat empat "area" dalam git, yaitu Working Directory, Staging Area, Local Repository, dan Remote Repository. Tiga area pertama berada pada komputer kamu sehingga dapat dilakukan tanpa koneksi internet, sedangkan area terakhir (Remote Repository) berada di suatu tempat di internet (pada hal ini, Github). Ketika kamu melakukan perubahan pada sebuah file dan file tersebut telah di-save, bisa disebut bahwa file tersebut memasuki Working Directory. Ketika kamu melakukan `git add` pada suatu file, file tersebut berpindah ke Staging Area. Semua file yang terdapat pada Staging Area akan dikelompokkan menjadi sebuah commit ketika kamu melakukan `git commit`. Perintah tersebut akan memindahkan commit tersebut ke Local Repository. Perintah `git push` akan memindahkan commit-commit yang ada pada Local Repository ke Remote Repository. Ketika commit sudah berada pada Local Repository barulah commit tersebut akan terlihat pada Github ![](https://i.imgur.com/RaoesJC.png) ## Apakah itu Github? Apakah sama dengan git? Pada bagian sebelumnya, telah disebutkan Remote Repository. Github adalah contoh dari Remote Repository tersebut. Remote Repository seperti Github memungkinkan kamu untuk berkolaborasi dengan siapapun. Selain itu, ada banyak fitur lain yang disediakan Github yang bukan menjadi scope pembahasan ini. Selain Github, terdapat alternatif lain seperti Gitlab dan Bitbucket. ## Tata cara mengerjakan tugas praktikum alprog ### Membuat akun github * Lakukan registrasi akun pada https://github.com/ ### Konfigurasi (`git config`) 1. `git config --global user.name "[username github kamu]"` 2. `git config --global user.email "[email github kamu]"` ### Mengambil assignment dari Github Classroom * Silakan mengambil assignment dari link berikut https://classroom.github.com/a/tDIIPAzp ### Melakukan `git clone` * Digunakan untuk melakukan clone dari suatu Remote Repository ke Local Repository * Simpelnya, mendownload repositori kode * Syntax: `git clone [nama repository remote]` ### Melakukan `git add` * Digunakan untuk memindahkan suatu file ke Staging Area * Syntax: * Memindahkan semua file ke Staging Area: `git add .` * Memindahkan file tertentu ke Staging Area: `git add [nama file]` ### Menggunakan `git status` * Digunakan untuk melihat hal-hal yang berhubungan dengan perubahan di Staging Area * Syntax: `git status` ### Menggunakan `git diff --staged` * Untuk melihat perubahan yang ada antara sebelum staged dan setelah staged * Syntax: * Melihat seluruh perubahan: `git diff --staged` * Melihat perubahan pada file tertentu: `git diff --staged [nama file]` * Untuk perubahan yang panjang, bisa dilakukan scroll menggunakan panah atas dan bawah * Untuk keluar, bisa menekan tombol `q` ### Melakukan `git restore --staged` * Digunakan untuk mengembalikan file dari Staging Area ke Working Directory: * Syntax: * Memindahkan semua file dari Staging Area ke Working Directory: `git restore --staged .` * Memindahkan file tertentu dari Staging Area ke Working Directory: `git restore --staged [nama file]` ### Melakukan `git commit` * Digunakan untuk memindahkan semua file dari Staging Area ke Local Repository * Syntax: `git commit -m "[pesan commit]"` ### Melakukan `git push` * Digunakan untuk memindahkan semua file dari Local Repository ke Remote Repository * Simpelnya, meng-upload commit-commit yang telah dilakukan ke internet * Syntax: `git push`