Menggunakan GitHub sebagai kolaborasi Project Pemrograman
Web
Agung Sasongko, M.Kom
Biro Teknologi Informasi Universitas Bina Sarana Informatika
Source Code Management (SCM)
Tools untuk kolaborasi antar developer.
• Install aplikasi GIT di Laptop / PC
• Untuh aplikasi GIT di : https://git-scm.com/downloads
• pilih unduhan sesuai arsitektur OS yang digunakan (32-bit / 64-bit)
• Install GIT dari file installer yang telah diunduh.
Membuat Project di Flutter
• Jalankan perintah:
• flutter create --org id_aplikasi nama_aplikasi
• Keterangan:
• id_aplikasi : harus unik agar tidak ditolak di playstore jika ada id aplikasi yang sama. Bila ada aplikasi yang berbeda dan id aplikasi sama pada perangkat, maka ada di replace.
• nama_aplikasi: nama project dan nama aplikasi yang akan tampil di launcher.
• contoh:
• flutter create --org com.agung.app1 contoh1
Membuka Project
• Untuk membuka di VSCode, Jalankan perintah di terminal:
• code ./contoh1
Menggunakan GIT
Mendaftar GitHub.com
• Buka https://github.com
• Jika belum memiliki akun di github lakukan pendaftaran:
• klik menu Sign Up
Mendaftar GitHub.com (Lanjutan 1)
• Isikan Email : alamat email yang belum pernah digunakan.
• Password : terdiri dari huruf kecil, angka dan symbol contoh password : makan2sate@rumah (bebas saja tidak harus ini)
• Username : dibuat unique, tidak boleh ada yang sama dengan milik orang lain.
• Klik Continue dan selesaikan langkah validasi pengguna.
• Buka email yang didaftarkan untuk mendapatkan kode verifikasi.
• Masukkan kode verifikasi sesuai yang dikirim github ke email.
• Lengkapi pertanyaan survey dari github. isikan saja sesuai kata hati kamu :D
Menyiapkan Repository Project
Menyiapkan Repository (Lanjutan 2)
• Buat Repository misal seperti berikut:
• repository name: flutter_contoh1
• Isikan description sebagai catatan project
• Tentukan akses Public / Private
• Gulir ke bawah klik
Setting Git Direktori Project (Inisialisasi)
• Di direktori project Flutter jalankan di terminal :
• git init
• Tujuannya sebagai pengaturan permulaan sebagai direktori yang akan menggunakan GIT.
• Cukup dijalankan sekali.
SSH Key
Membuat SSH Key
• Membuat SSH Key menggunakan ssh-keygen
• Tujuannya untuk pengganti kegiatan login. Identifikasi pengguna ke server github.
• Pengguna Windows pastikan telah instalasi PowerShell.
• Jalankan perintah diterminal:
• ssh-keygen
• Kosongkan saja semua isian
• enter ... enter .. dan enter,, hingga selesai
• Hasil file ssh key berada di direktori /home/[user]/.ssh
Pasang SSH Key
• Buka direktori /home/[user]/.ssh
• id_rsa.pub : buka file ini dan salin isinya.
• buka github.com/
• Login sebagai pengguna.
Pasang SSH Key (Lanjutan 1)
• Klik tombol [ New SSH Key]
• Isikan judul SSH
• Paste isi file id_rsa.pub ke bagian Key
• Klik tombol [Add SSH Key]
Konfigurasi Alamat Server Repository
• git remote add [nama remote] [alamat] : untuk menambah alamat remote repository
• get remote -v : untuk melihat alamat remote repository yang sudah di set.
Karena menggunakan SSH Key, maka alamat git yang digunakan adalah SSH
Setting Git (Set alamat repository)
Tentukan alamat remote repository
• Tujuannya agar setiap melakukan
pengiriman (push) atau penarikan (pull) source code pada alamat yang diinginkan.
• Alamat repository Lihat pada Quick Setup di github.
• Perintah penambahan alamat:
• git remote add [nama_remote] [alamat]
• contoh:
• git remote add origin [email protected]:agung851/flutter_contoh1.git
• Keterangan:
• origin : nama remote. ini bebas, boleh gunakan nama lainnya
Konfigurasi Cabang (Branch)
• Menentukan cabang repository:
• git branch -M [nama cabang]
• Contoh:
• git branch -M master
• Lihat cabang
• git branch
Menentukan File yang akan di unggah ke Repository
• git add [file] : menentukan file yang akan dikirim ke repository
• Menentukan semua file pada project dapat gunakan perintah
• git add .
• Menentukan semua file pada direktori:
• git add ./namadirektori/.
• Menentukan salah satu file:
• git add ./file1.dart
• Menentukan beberapa file:
• git add ./file1.dart ./file2.dart
Memberi Catatan kiriman file
• Setiap file yang sudah ditentukan akan di unggah harus diberikan catatan.
• Contoh:
git commit -m “commit pertama kali”
Mengirim file ke repository
• Untuk mengirimkan file ke repository Jalankan perintah :
• git push [nama remote] [nama cabang]
• Contoh
• git push origin master
Check di Repository GitHub
Git Flow
Sumber: https://iamchuka.com/content/images/size/w2000/2018/05/gitflowimage.png
Jenis Cabang (Branch)
• Master: source yang mencatat riwayat release.
• Hotfix: source yang sedang
tahap perbaikan karena adanya bug yang ditemukan.
• Release: Setelah tahap develop dirasa sudah cukup, maka
dimasukan ke cabang ini.
• Develop: Cabang untuk
integrasi fitur-fitur yang sedang dikerjakan.
• Feature: Cabang yang digunakan saat sedang
mengerjakan fitur-fitur pada aplikasi.
Peruntukan Branch Bagi Developer + IT Operations
Produksi
Tester External / Beta Tester
Tester Internal / Alpha Tester
Install GIT Flow
• Git Flow : extensi GIT untuk pengelolaan branching model (model percabangan) pada repository GIT.
• Install di mac menggunakan homebrew:
• brew install git-flow-avh
• Install di Linux (debian)
• sudo apt-get install git-flow
• Install di Windows (cygwin)
• wget -q -O - --no-check-certificate https://raw.github.com/petervanderdoes/gitflow- avh/develop/contrib/gitflow-installer.sh install stable | bash
Memulai Git Flow
• Jalankan di terminal pada direktori project:
• git flow init
• Tentukan nama-nama branch, anjuran ikuti saja nilai default
Membuat Feature page_beranda
• Misalkan akan membuat halaman beranda:
• Jalankan di terminal:
• git flow feature start [nama feature]
• Contoh:
• git flow feature start page_beranda
• Jalankan git branch untuk melihat posisi cabang yang sedang digunakan.
Membuat Feature page_beranda (Lanjutan 1)
• Buat file beranda_screen.dart di direktori ./lib/ui
• seperti contoh berikut:
Membuat Feature page_beranda (Lanjutan 2)
• Jalankan perintah di terminal untuk menambahkan file yang sedang dikerjakan pada branch feature.
• git add ./lib/ui/beranda_screen.dart
• Berikan catatan file yang dikirim dengan isi catatan “ui beranda”
• git commit -m “ui beranda”
• Kirim ke repository
• git flow feature publish page_beranda
Membuat Feature page_beranda (Lanjutan 3)
• Cek di bagian repository, Cabang feature/page_beranda tampil di bagian branch
Membuat Feature page_beranda (Lanjutan 4)
• Apabila pekerjaan pembuatan feature sudah selesai, maka jalankan perintah diterminal:
• git flow feature finish [nama_feature]
• Contoh:
• git flow feature finish page_beranda
• Perintah diatas akan menghapus branch feature/page_beranda dari repository github.
selanjutnya, agar code yang ada di komputer dikirimkan ke repository cabang develop github, jalankan:
• git push origin develop
Hal yang harus diperhatikan
• Setiap pekerjaan kecil dipecah menjadi Feature
• Feature yang sudah selesai dikerjakan dikembalikan flownya ke develop.
• Dalam bekerja secara kolaborasi saat pengiriman ke repository, programmer melakukan git add hanya pada file yang menjadi tugasnya saja.
• File source code yang telah dirubah, namun bukan bagian tugasnya tidak boleh di masukkan pada perintah git add.
• 1 file source code hanya boleh di kelola oleh 1 orang dalam waktu yang bersamaan.
Release
• Cabang release dijalankan apabila pada fase develop dianggap sudah selesai membuat feature- feature yang ditentukan.
• Pada komputer tester internal, jalankan di terminal perintah git pull:
• git pull origin develop
• Selanjutnya, apabila dari sisi internal tester sudah selesai pengujian, maka buat release. Misalkan release diberi versi 0.1, maka jalankan di terminal :
• git flow release start [versi]
• Contoh:
• git flow release start ‘0.1’
• Untuk diunggah ke repository jalankan perintah:
• git add ./filetambahan.dart
• git commit -m “catatan file yang ditambah”
• git flow release publish ‘0.1’
• Selanjutnya bagi beta tester yang ingin menguji, maka melakukan ambil source dari cabang release:
• git pull origin release/0.1
• Jika hasil testing dianggap sudah selesai, tutup release:
• git flow release finish ‘0.1’
Master Tag
• Release yang sudah di finish dari git flow, maka pada akan ditambahkan tag [versi] di branch master.
• Lihat tag di master:
• masuk ke branch master : git checkout master
• Lihat tag : git tag -l
• Jangan lupa push tag agar menyimpan source versi tag yang telah dibuat:
• git push origin --tags
Cek Tag Master
Hotfix
• Cabang master adalah cabang yang siap diproduksi. Namun bila ada ditemukan bugs / kesalahan, maka harus dilakukan perbaikan. Perbaikan dari cabang master dilakukan pada cabang hotfix.
• Jalankan perintah diterminal:
• git flow hotfix start [versi master]
Contoh:
• git flow hotfix start ‘hotfix-0.1’
• Selama perbaikan berlangsung, source yang ingin disimpan ke repository jalankan perintah:
• git add ./fileyangdiperbaiki.dart
• git commit -m“catatan apa yangdiperbaiki”
• git flow hotfix publish ‘hotfix-0.1’
• Jika sudah selesai melakukan perbaikan jalankan:
• git flow hotfix finish ‘hotfix-0.1’
• Masuk ke cabang master, dan lakukan push
• git checkout master
• git push origin --tags
Kolaborasi di GIT
Menambahkan Colaborator
• Pilih menu Settings
Tambahkan Pengguna Github
• Pilih menu Manage Access
• Kil tombol [Add People]
• Cari berdasarkan ID Pengguna Github
• Jika sudah ketemua klik tombol [Add]
Konfirmasi Invite
• Pengguna yang diundang menjadi kolaborator harus melakukan approve undangan yang dikirim melalui email
• Sebelum klik view invitation, pastikan pengguna sudah melakukan login ke akun github
Terima Undangan
• Klik [Accept Invitation] untuk menerima sebagai kolaborator
Membuat Milestone di Github
Milestone?
• Timeline (Garis waktu)
• Point pekerjaan yang memiliki jangka waktu
• Suatu point memiliki ketergantungan dengan point sebelum maupun sesudah
• Contoh:
20 Jul - 15 Ags 16 Ags - 20 Ags 21 Ags - 26 Ags 27 Ags - 31 Ags 1 Sep - 5 Sep 6 sep - 10 sep Desain UI/UX Membuat dokumen kontrak kebutuhan &
API documentation
Menerapkan kode : pembuatan UI dari Desain Integrasi BloC di UI Membuat class Model, Repository dan
Bloc
Membuat web RestfulAPI
Membuat Milestone
• Klik menu [Issues] -> [Milestone]
Tambah Baru Milestone
• Klik tombol [New Milestone]
Isikan Milestone
• Isikan Title,tanggal akhir dan deskripsi pekerjaan milestone
• Jika sudah Klik [Create MIlestone]
Issue
Issue Board
• Sebagai catatan berupa tugas, laporan bugs, permintaan fitur dll,
• Setiap issue dapat dijadikan penugasan kepada kolaborator dan dapat ditentukan batas waktu pekerjaan.
• Membuat Issue, Pilih menu Issue -> [New Issue]
Buat Issue Baru
• Isikan Title (Judul tugas)
• Isikan Description berupa rincian pekerjaan
• Tentukan penugasan kepada kolaborator (assignees)
• Tentukan label sesuai penugasan
• Tentukan Milestone
• Klik [Submit new issue] untuk menyimpan tugas.
Close Issue
• Jika tugas yang diberikan sudah selesai dikerjakan dan di push ke github, maka lakukan Close Issue.
• Pilih Issue
• Isikan Komentar, dan klik tombol [Close with comment]