Jumat, 23 September 2016

Sistem Kontrol Versi

Abstrak

Pada perkembangan teknologi informasi yang berkembang dengan pesat, maka pengembangan dalam bidang tersebut semakin kompleks. Dalam perkembangan teknologi informasi khususnya dalam membuat program atau pemrograman tidak bisa terhindari untuk melakukan perubahan spesifikasi ataupun kebutuhan karena hal yang mustahil jika membuat program akan sempurna dalam percobaan pertama. Maka dari pada itu pengembangan perangkat lunak akan sangat dekat sekali dengan sistem kontrol versi. Tulisan ini akan membahas bagaimana memanajemenkan perubahan-perubahan yang terjadi pada sistem file mencakup sumber kode, file desain, dokumen pengolahan kata, maupun tipe kumpulan informasi lainnya serta pengenalan git yang adalah salah satu perangkat lunak untuk sistem kontrol versi.
Kata kunci : kontrol versi, git, manajemen pengubahan berkas.

Pendahuluan

Dalam kasus pemrograman sistem kontrol versi ialah sebagai alat dalam memanajemenkan perubahan kode program. Terdapat kegunaan utama dalam sistem kontrol versi ini adalah :

  1. Menyimpan versi lama dari kode, dan
  2. Menggabungkan perubahan-perubahan kode dari versi lama (seperti menghapus fungsi-fungsi pada program) dan menggabungkan perubahan dari orang lain(seperti menambah fungsi pada program)



Sebelum menggunakan sistem kontrol versi umumnya pemrogram melakukan manajemen dengan pemisahan direktori seperti gambar dibawah ini:
Manajemen dengan pemisahan direktori
Yang akan menyebabkan pemrogram atau author akan berakhir seperti ini :
Terjadinya manajemen yang buruk

Kasus diatas masih hanya pada penyimpanan dokumen versi lama, belum pada penggabungan dokumen ataupun kode sumber. Karena hal itulah manajemen sistem kontrol versi sangat diperlukan sekali dalam pengembangan perangkat lunak, dimana saat ini sudah hampir seluruh perusahan yang berkerja pada bidang perangkat lunak sudah wajib menginstal sistem kontrol versi dalam servernya.

Perihal hal itu untuk pemrogram maupun mahasiswa yang ingin terjun dalam bidang pemrograman wajib untuk menguasai salah satu dari perangkat lunak untuk sistem kontrol versi.

Git adalah sistem kontrol versi yang paling populer melihat kepopuleran github. Pembuatan perangkat lunak git sebenarnya awalnya untuk memudahkan pengembangan sistem operasi linux, dimana pengembangannya tersebut dilakukan oleh berjuta orang ditempat yang berbeda-beda dan dibuat sendiri oleh Linus torvalds(pembuat linux).

Rumusan Masalah :
  1. Apa itu sistem kontrol versi?
  2. Apa itu perangkat lunak git?
  3. Bagaimana memanajemenkan pengubahan berkas(file) pada basis sistem file?

Isi

Version control adalah sebuah sistem yang mencatat setiap perubahan terhadap sebuah berkas atau kumpulan berkas sehingga pada suatu saat anda dapat kembali kepada salah satu versi dari berkas tersebut.

Sistem ini memungkinkan anda untuk mengembalikan berkas anda pada kondisi/keadaan sebelumnya, mengembalikan seluruh proyek pada keadaan sebelumnya, membandingkan perubahan setiap saat, melihat siapa yang terakhir melakukan perubahan terbaru pada suatu objek sehingga berpotensi menimbulkan masalah, siapa yang menerbitkan isu, dan lainnya. Dengan menggunakan VCS dapat berarti jika anda telah mengacaukan atau kehilangan berkas, anda dapat dengan mudah mengembalikannya. 

Seperti dikatakan sebelumnya bahwa git adalah salah satu perangkat lunak untuk sistem kontrol versi, yang mengartikan bahwa ada perangkat lunak untuk sistem kontrol versi lain selain git, yang secara umum dibedakan dengan :

Sitem kontrol versi terpusat.

Sebelum masuk ke era git, sistem kontrol versi terpusat pernah menjadi standarisasi sebagai perangkat lunak untuk sistem kontrol versi. Contoh perangkat lunak untuk sistem ini adalah subversion dan perforce.
Sistem kontrol versi terpusat
Jika dilihat gambar diatas sistem terpusat berarti repository(perubahan-perubahan kode) dilakukan dengan terpusat dimana untuk melakukan commit pemrogram seperti pada contoh diatas computer A dan computer B harus terhubung dengan komputer pusat(server). 

Jika server sedang down atau tidak bisa terhubung dengan lingkungan luar, maka pemrogram di komputer A dan komputer B tidak dapat melakukan apa-apa. Itulah yang menjadi salah satu kelemahan dari sistem kontrol versi terpusat dimana para pemrogram harus terhubung ke dalam server yang membuat pekerjaan menjadi dibatasi. 

User atau pemrogram tidak dapat melakukannya di rumah atau tempat lain yang tidak terhubung dengan server, Dimana untuk mengembangkan suatu projek yang sangat besar dimana pemrogram bukan hanya dalam suatu negara tapi dari lingkup dunia sangatlah tidak efisien

Sistem kontrol versi terdistribusi

Git adalah sistem kontrol versi terdistribusi yang menjadi solusi atas masalah-masalah yang terjadi pada sistem kontrol terpusat. Git digunakan pertama kali untuk projek besar sistem operasi linux yang commiter berasal dari berbagai negara atau berbagai tempat.

Sistem kontrol versi terdistribusi
Jika dilihat pada gambar diatas, user atau pemrogram tidak hanya dapat sekedar checkout pada file namun memiliki salinan repository dari projek yang ada di server. Ini menjadi pengerjaan dapat dilakukan secara simultan atau dinamis bahkan ketika server mati atau rusak, semua perubahan (repository) sudah tersalin di setiap user atau pemrogram (branch).

Git dapat digunakan secara mandiri maupun berkaliborasi dengan mudah dari penggabungan(merging) hingga percabangan(branching)  baik secara online(github) maupun secara offline(gitlab) yang di-instal dalam VPS(virtual private server) perusahaan atau kantor.

Perintah-perintah git
Perintah-perintah git dari bagaimana menambah file repository(init) , menambah file ke work on current change(add) dan memambahkan file tadi kedalam repository(commit) , serta melihat hasil perubahan(diff), sejarah perubahan(log) dan lain-lain bisa dilihat pada gambar diatas atau penjelasan dibawah ini.

Perintah untuk memulai ruang kerja :

  • clone: untuk mengunduh repository orang-lain kedalam direktori kita.
  • Init : untuk membuat repository baru dalam direktori.

Perintah-perintah dalam perkerjaan yg sedang dalam proses :

  • Add : untuk menambah file konten ke indeks.
  • Mv : memindahkan file atau mengganti nama file dalam direktori.
  • Rm : menghapus file dalam ruang kerja.

Perintah-perintah untuk pemeriksaan status kerja atau file :

  • Bisect : untuk mencari commit.
  • Grep : mencetak garis dalam pertemuan pada pola.
  • Log : untuk mencetak log atau sejarah commit.
  • Show : untuk melihat tipe objek.
  • Status : untuk mencetak status dari ruang kerja.

Perintah-perintah untuk memelihara pekerjaan maupun pengembangannya :

  • Branch : untuk menampilkan list, membuat, menghapus branch.
  • Checkout : untuk memindahkan maupun mengembalikan pekerjaan.
  • Diff : untuk melihat selisih dari pekerjaan.
  • Merge : untuk menggabungkan pengembangan dari sejarah commit.
  • Rebase : menampilkan ulang commit.
  • Tag : untuk membuat ,menampilkan, menghapus tipe objek berlabel.

Perintah-perintah untuk kaloborasi:

  • Fetch : untuk mengunduh atau mengambil referensi objek dari repository lain.
  • Pull : pengintegrasian repository.
  • Pull : untuk memperbaharui file dari repository.
Dan pastikan untuk sudah terinstal openSSH pada git, agar jika ikut dapat projek yang besar(online) atau ingin membuat repository online bisa dari command local git pada sistem operasi anda. Dengan melakukan pengecekan pada git bash anda seperti :

Melakukan pengecekan SSH pada git

Kesimpulan

Pada pengembangan perangkat lunak sangat dibutuhkan sistem yang dapat mengontrol perubahan-perubahan kode dalam suatu file, dimana file tersebut tidak hanya diakses pada suatu tempat namun bisa bisa diakses dari manapun. Git adalah perangkat lunak yang menjadi solusi atas masalah tersebut.

Dengan git pengembangan perangkat lunak menjadi lebih mudah, cepat dan makin menyenangkan, tidak kuatir lagi dengan bekerja secara berkelompok yang dimana menyulitkan penggabungan kode-kode program dari setiap anggota tim. Semua masalah tersebut sudah teratasi dengan git.
Maka daripada itu git bukan hanya lagi sebuah alat tambahan dalam pembuatan program atau perangkat lunak tetapi sudah menjadi alat wajib bagi pengembangan perangkat lunak.

Referensi

  • Sim,Alex xandra albert. 2013. Kontrol Versi dengan Git. Lean Publishing.
  • Dawson,Chris. 2010. The Github Book. O’Reilly Media.


Tidak ada komentar:

Posting Komentar