Saturday, 20 June 2015

MEMANFAATKAN GIT SEBAGAI KONTROL VERSI DOKUMEN

Halo apa kabar para programmer Indonesia ? Semoga selalu sehat dan semangat. Kali ini kita akan belajar dan bermain dengan Git.

Mungkin teman-teman pernah membuat sebuah laporan dan membuat banyak copy dari laporan tersebut sebagai backup. Misalnya seperti ini :
\laporan.doc
\laporan_v2.doc
\laporan_v3.doc
\laporan_fix.doc
\laporan_fix_maju.doc

Cara tersebut memang adalah cara paling mudah untuk membuat backup atau salinan dari laporan kita sebagai langkah preventif jika suatu saat nanti terjadi kesalahan atau revisi pada laporan yang kita buat. Tentunya kita tidak bisa mengandalkan undo jika laporan sudah disimpan. Saya juga menggunakan metode menggandakan file tersebut pada pembuatan laporan tugas akhir Saya sebelum mengenal Git :D. Singkatnya dengan Git, kita tidak perlu membuat banyak salinan laporan untuk backup. Jika terjadi kesalahan, Git mampu untuk mengembalikan keadaan laporan pada kondisi sebelumnya meskipun laporan telah tersimpan. Untuk itu, ada baiknya kita berkenalan dengan Git.

Apa itu Git ?

Secara mudah Saya memahami Git sebagai kontrol versi dokumen terdistribusi sehingga memungkinkan kita untuk melakukan revisi dokumen melalui banyak jalur. Menurut Wiki, definisi Git adalah “distributed revision controlsystem with an emphasis on speed, data integrity, and support for distributed, non-linear workflows”. Jika pada cara lama kita melakukan revisi langsung kepada dokumen yang kita buat, dengan Git kita dapat membuat cabang sebagai “salinan” untuk melakukan revisi tertentu tanpa harus mengubah dokumen secara langsung. “Salinan” ini tidak berwujud dokumen baru seperti cara lama yang kita gunakan. Untuk lebih mudah memahaminya, bisa dilihat pada gambar Git Branch Concept.

Git Branch Concept

Kita ambil analogi jalan atau jalur, misalkan Surabaya, Jawa Timur – Pati, Jawa Tengah. Jika dengan cara lama, kita akan selalu menggunakan jalur utama, yaitu pantura, Surabaya -> Lamongan -> Tuban -> Rembang – >Pati. Penggunaan jalur ini tidak akan menjadi masalah jika tidak kemacetan. Bagaiaman jika ada kemacetan, misalanya di daerah Tuban ? Kita bisa mengambil jalur alternatif Surabaya -> Lamongan -> Bojonegoro -> Rembang -> Pati. Pada akhirnya kita akan kembali ke jalur utama dan sampai ke Pati. Begitu juga dalam Git, kita dapat membuat jalur alternatif, membuat perubahan disana, tanpa khawatif jalur utama akan rusak karena perubahan. Inilah yang Saya pahami sebagai konsep Branch dalam Git. Kita gunakan analogi “jalan-jalan” lagi. Misal kita ingi pergi ke Pati dari Surabaya, dan ketika sampai Lamongan ada sesuatu yang tertinggal, maka kita dapat kembali lagi ke Surabaya. Git juga menerapkan hal tersebut. Jika kita sudah pada revisi dokumen ke-2 misalnya, dan terpaksa kita harus kembali ke revisi-1 karena suatu hal dan dokumen tersebut sudah disimpan pada kondisi revisi ke-2, dengan mudah kita dapat kembali ke revisi-1 tanpa khawatir masalah state penyimpanan yang sudah sampai ke revisi ke-2.

Nah itu tadi, penjelasan singkat mengenai apa itu Git. FYI Git merupakan teknologi yang banyak dipakai olehdeveloper diseluruh dunia untuk mengembangkan perangkat lunak. Git juga merupakan teknologi yang diciptakan oleh Linus Trovalds orang dibalik sistem operasi Linux. Tambahan lain, isitilah direktori file atau dokumen yang kita gunakan dalam Git selanjutkan akan disebut sebagai repository atau repo. Langsung saja, kita akan mencoba membuat kontrol versi dokumen menggunakan Git.

Prerequisite
  1. Memiliki niat untuk belajar. Kalau tidak ada niat ya tidak akan bisa :D. Disini kita sama-sama belajar.
  2. Memiliki koneksi internet. Kita akan mencoba melakukan remote repository kita yang berada pada cloud.
  3. Sudah membuat akun BitBucket. BitBucket merupakan penyedia jasa cloud repository untuk Git. Alternatif lain dan cukup populer adalah GitHub. Namun di tutorial ini akan menggunakan BitBucket.
  4. Tidak takut berhadapan dengan console (Command-Line / PowerShell untuk OS Windows / Terminal untuk Linux atau Mac). Perintah Git SAMA di semua sistem operasi, jadi tidak perlu khawatir.
  5. Download dan install Git sesuai dengan sistem operasi yang digunakan. Jika Git sudah terinstal maka teman-teman dapat menjalankan perintah Git dengan mengetikkan git pada console.

Caution
Enviroment yang Saya gunakan dalam tutorial ini adalah :
  • Sistem operasi menggunakan Ubuntu OS 15.04
  • Versi Git menggunakan versi 2.1.4

Kemudian yang menjadi perhatian lain dalam tutorial ini adalah :
  • Asumsi kontrol versi dokumen hanya dilakukan oleh satu orang saja. Git memungkinkan kita untuk bekerja bersama-sama dengan orang lain dalam satu tim. Fitur tersebut tidak dibahas dalam tutorial ini.
  • Tutorial ini merupakan tutorial dasar menggunakan git dengan satu jalur. Untuk konsep branch dan lainnya akan dibahas lain waktu ^^.

LET’S GET STARTED

Membuat Repository Baru
1. Login kedalam akun BitBucket.
2. Pada halaman dashboard, pilih menu Create -> Create Repository.
3. Pada form Create a Repository isikan field yang dibutuhkan. Keterangan field sebagai berikut,
 - Name : <nama repo>
 - Description : <deskripsi repo>
 - Access Level : <private untuk akses repo hanya oleh pemilik repo, uncheck (public) semua orang dapat melihat isi repo>
 - Repository Type : <Git, karena kita menggunakan git>
 - Project Management : <Tambahan fitur repo>
 - Languange : <Bahasa pemograman yang digunakan>

Create a Repository Form

Gambar Create a Repository Form merupakan setting yang saya gunakan dalam membuat repo. Untuk Languangesilahkan di inputkan Other, karena kita tidak akan menggunakan bahasa pemograman apapun, kita hanya membuat file dokumen .doc

4. Jika berhasil maka kita akan masuk pada halaman dashboard repo yang telah kita buat. Simpan URL yang diberikan. URL tersebut akan menjadi alamat repo git kita di cloud.

First BitBucket Repository Page

5. Selanjutnya kita akan menirukan task yang ada pada bagian I’m starting from scratch.
6. Buka console yang teman-teman gunakan (cmd / powershell / terminal).
7. Masuk ke direktori yang akan teman-teman jadikan sebagai repo. Perintah yang dapat digunakan adalah :
cd <directory>
//contoh windows
cd C:\tutorial\git\
//contoh ubuntu / debian based
cd ~/tutorial/git


8. Selanjutnya ketikan perintah berikut pada terminal.
1. git init
 [-] git init adalah perintah untuk repository git baru, dalam tutorial ini adalah direktori ~/Tutorial/gitdocs.
 [-] Direktori tersebut akan manjadi repo dalam komputer kita, atau dapat disebut repo lokal.
 [-] Direktori yang telah menjadi repo akan memiliki file berekstensi .git sebagai penanda. File ini biasanya disembunyikan dari tampilan (hide).
2. git remote add <nama remote repo> <url repo>
 - Perintah ini digunakan untuk memasukkan repo remote pada konfigurasi repo lokal yang kita miliki. Nantinya, repo remote ini akan menjadi repo utama dari dokumen kita. Sehingga dimana pun kita berada, di direktori manapun, atau di pc manapun selama terinstall git, maka kita dapat mengambil dokumen kita dari repo.
 - Jumlah repo remote bisa lebih dari satu tiap repo lokal. Untuk mengetahui repo apa saja yang terhubung dengan repo lokal ketikkan perintah git remote -v


9. Buat satu dokumen doc atau docx pada repo lokal yang telah kita buat pada langkah ke 7. Disini yang mencontohkan dengan membuat dokumen doc dengan menggunakan text editor pada terminal. Teman-teman dapat menggunakan text editor / processor lain seperti Ms.Word, LibreOffice Writer, atau bahkan notepad, yang penting kali ini berekstensi .doc atau .docx

9th-A Step : Make .doc file using nano text editor

9th-B Step : Insert some text to coba.doc

9th-C : coba.doc in LibreOffice Writer

10. Selanjutnya ketikkan perintah git status
- Perintah git status digunakan untuk melihat status perubahan pada direktori dan repo. Ada 3 stage utama dalam Git. Saya akan mencoba membagi dengan istilah yang mudah.
1. Unstage : merupakan tahapan dimana kita melakukan perubahan pada direktor tapi belum masuk pada tahapan siap kirim. Analoginya kita sedang mengemas barang tapi belum mengirimkannya ke kantor POS. Tahapan ini ditandai dengan file dokumen yang berwarna merah.
2. Staged : merupakan tahapan transisi antara unstage dan commited. Tahapan ini menahan perubahan dokumen pada tempat tertentu, bukan pada direktori dan bukan pada repo. Analoginya, barang yang sudah kita kemas sudah kita antar ke kantor pos. Kita dapat membawa pulang kembali barang tersebut atau mengirimkannya lewat POS. Tahapan ini ditandai dengan file dokumen berwarna hijau.
3. Commited : merupakan tahapan dimana kita telah memasukkan dokumen kita kedalam di repo.

10th Step : Unstage Git Stage

11. Pada tahapan ini, dokumen kita berada pada status unstage. Untuk memasukkan dokumen kita kedalam status staged, maka ketikkan perintah git add <nama file>. Misal nama file kita adalah coba.doc maka perintah menjadi git add coba.doc.
- Untuk memasukkan banyak file sekaligus, dapat dilakukan dengan 2 cara :
1. git add <“*.extension”> contoh git add “*.doc” : cara ini adalah untuk memasukan semua file dengan ekstensi .doc
2. git add . : cara ini untuk memasukkan semua file yang ada dalam status unstage

11th Step : Add Document to Staged Stage

12. Seanjutnya adalah memasukkan file dalam repo. Repo disini masih adalam repo lokal yang kita buat. Ketikkan perintah git commit -m “pesan”. -m merupakan opsi untuk memberikan komentar pada perubahan yang kita kirim ke repo. Menurut saya ini penting, karena sangat memudahkan untuk mengetahui sejauh mana ketika bekerja atau revisi apa yang telah kita kerjakan.

12th Step : Commit File to Repo

13. Ketikkan perintah git log untuk pengetahui diary perubahan pada repo kita. Informasi diary repo kita adalah
- Header

13rd Step : Check Git Log

14. Nah langkah terakhir adalah memasukkan repo lokal kita ke repo remote kita yang berada pada BitBucker. Ketikan perintah git push <nama remote> <nama jalur repo remote>. Setting defualt, nama jalur repo remote adalahmaster. Nama remote yang telah kita buat tadi adalah origin, jadi perintah yang harus diketikkan adalah git push origin master atau biasanya git push -u origin master.

14th Step : Git Push

15. Masukkan password BitBucker teman-teman. Jangan panik, indikator karakter password seperti **** memang tidak muncul. Proses upload akan berjalan. Jika sukses, maka kita akan melihat file dokumen kita pada halaman repo di BitBucker.
16. Buka halaman dashboard teman-teman di BitBucket. Masuk ke dalam repo. Pilih Source pada menu Navigationsebelah kiri maka teman-teman akan melihat file dokumen berada disana beserta message commit yang telah kita buat.
17. Untuk memastikan apakah isi file itu benar, buka file tersebut cukup dengan klik pada nama file.

Check Pushed File

Check coba.doc Content


Kembali ke Revisi Dokumen Sebelumnya
1. Pertama kita tambahkan isian dari dokumen yang kita buat pada repo, kalimat, gambar, atau hanya kata, bebas.
2. Ulangi langkah 10 hinga 15 pada pembahasan Membuat Repository Baru.
3. Ketikkan perintah git log untuk memastikan update dokumen yang kita lakukan sudah masuk dalam repo.
4. Cek pada repo di BitBucket untuk memastikan update dokumen sudah masuk dalam repo.
5. Kita sudah mengetahui bahwa dokumen sudah disimpan, dan tidak mungkin untuk melakukan perintah undopada text editor atau text processor.
6. Untuk kembali ke versi lama dokumen kita, yaitu dokumen dengan konten awal yang kita buat sebelumnya, ketikkan perintah :
git reset --hard
//contoh
git reset --hard 365c2b88f

7. Ketikkan perintah git log maka kita akan kembali ke versi dokumen yang pertama kita buat. Untuk cek apakah sudah benar kembali ke versi pertama atau belum, cek file yang kita buat dalam repo lokal.

Rollback Document

8. Repo remote kita pada belum terpengaruh oleh rollback yang barusan kita lakukan.
9. Lakukan revisi kembali pada file dokumen, misal tambahkan baris baru. Lanjutkan kemudian gunakan kembali perintah git addgit commit, dan git push  dengan opsi –force untuk memasukkan revisi baru kedalam repo.


10. Penggunaan git push <remote repo> <jalur pada remote> –force untuk memaksa agar repo remote memiliki konten yang sama dengan repo lokal.
11. Opsi –force tidak akan berguna jika kita tidak ingin kembali ke revisi lama, dan hanya ingin menghapus bagian pada file .doc saja kemudian melajutkan jalur yang kita gunakan. Ini efektif jika kita mengetahui mana yang harus di revisi secara mendetail, dan bekerja secara individu.
12. Voilaaaa~~~ repo lokal dan repo remote kita berhasil kembali ke kondisi awal dan kita dapat melakukan revisi ulang.

Rollback Success


Conclusion
1. Alasan penggunaan repo BitBucket adalah fasilitas private repo secara gratis.
2. Kasus yang di sajikan dalam pembahasan memang kasus sederhana yang dapat kita atasi dengan cara classicyang biasa kita lakukan, dengan edit pada revisi dokumen tertentu, lalu save kembali, atau membuat salinan file. Efek Git akan sangat terasa sanggat bermanfaat jika,
- Kita tidak mengetahui secara pasti dan detail apa yang harus kita revisi, atau terjadi kesalahan yang fatal sehingga jika di revisi secara manual akan memakan waktu lama.
- Kita bekerja dalam tim, dimana sewaktu-waktu kita mungkin saja melakukan revisi dokumen yang sebelumnya dikerjakan oleh teman.
- Kita dapat bekerja secara kolaborasi dan dalam skala yang lebih besar. - Git mecatat seluruh perubahan (commit) sehingga kita mengetahui “sejarah” dari dokumen yang kita kerjakan.
3. Git tidak hanya dapat dimanfaatkan untuk tipe file .doc saja, melainkan hampir seluruh tipe file dapat di simpan dalam repository. Hal ini karena pemanfaatan awal Git sebagai repositoty untuk pengembangan sistem / aplikasi, tetapi tidak mentutup kemungkinan untuk hal yang lain.
4. Git dapat menggantikan kebiasaan membuat salinan file dalam jumalah yang banyak. Memang tidak ada masalah jika file hanya berukuran kb. Bagaimana jika hingga berukuran mb / gb dan file dalam repo kita tidak hanya satu ?
5. Git memungkinkan kita untuk bekerja dalam jalur lain sehingga tidak menganggu jalur utama. Dan jika jalur alternatif sudah di rasa benar maka kita bisa kembali ke jalur utama. Konsep ini dinamakan merge dan branch, mudah-mudahan dapat kita bahas dilain kesempatan ^^.

Useful Links
1. Mencoba Git secara langsung : https://try.github.io/levels/1/challenges/1
2. Tutorial Git : https://www.atlassian.com/git/tutorials/
3. Course Git Lokal (Indonesia) : http://codesaya.com/git/

Source
Karena artikel ini menurut saya bagus dan penting serta saya sendiri juga menggunakan git dalam develop program dalam tim, maka dari itu saya rewrite dari blog tetangga saya (temen ngopi). Maaf belum sempet buat tutorial sendiri, jadi sementara rewrite dulu, dan ini link aslinya : http://hendra.room318online.com/memanfaatkan-git-sebagai-kontrol-versi-dokumen

Sumber

SHARE THIS

Facebook Comment

1 comment:

  1. lengkap sekali min penjelasannya ini, makasih sudah share...
    blower hp

    ReplyDelete