Tugas Metodologi Penelitian

Perbandingan System Repository Data Git Dengan Subversion (SVN)
BAB I
PENDAHULUAN
1.1 Latar Belakang
Dalam perkembangan teknologi saat ini sangatlah diperlukan sebuah system yang mampu membantu sebuah perusahaan atau oraganisasi dalam mengamankan data – data yang dimilikinya, selain itu banyak perusahaan yang ingin meminimalisasi pengeluaran perusahaan dengan menggunakan Linux Server Operating System, karena selain dalam pengembangan dan pengelolaannya tidak mememakan banyak biaya, Linux Server juga lebih optimal dalam keamanannya dibandingkan Windows Server. Dalam pengembangan suatu aplikasi atau bahkan website, sebuah perusahaan akan mengganti aplikasi lama dengan versi yang baru atau mengembangkan aplikasi lama tersebut sehingga dapat memenuhi kebutuhan dari perusahaan tersebut.
Dalam pengembangan aplikasi atau website tersebut kemungkinan hilangnya data dari versi sebelumnya sangatlah besar, sehingga kesalahan ini dapat berpengaruh pada perusahaan terutama dalam pendokumentasian data perusahaan dan menjadi masalah besar saat terjadi pergantian administrator system dari perusahaan tersebut.
Dalam hal pengembangan system dari suatu perusahaan pasti diperlukan pengarsipan yang lengkap dari system yang dikembangkan, sehingga jika terjadi suatu kesalahan pada system dapat segera dibenahi tanpa harus mengecek system secara keseluruhan dengan meliahat dari arsip – arsip yang sudah ada. Untuk menghindari kehilangan arsip – arsip penting tersebutdapat dilakukan mem-backup data kedalam harddisk atau menyimpannya dalam CD atau flash disk, tetapi hal ini juga memiliki resiko yang kemungkinan melah lebih besar.
Dengan adanya hibah penelitian mahasiswa ini kami ingin mengadakan sebuah penelitian mengenai Git yang merupakan turunan dari DVCS (Distributed Version Control System) dan dikembangkan untuk kernel Linux. Git (Version Control) ini dapat mencatat setiap perubahan yang terjadi pada berkas – berkas yang ada, sehingga jika seorang administrator ingin mengembalikan system dalam keadaan semula atau hanya ingin mengetahui semua perkemnbangan yang terjadi dalam system, Git dapat memberikan salinan yang lengkap mengenai system tersebut. Subversion atau yang lebih dikenal dengan SVN pada dasarnya bertugas untuk manajemen berkas dan direktori, mencatat perubahan yang terjadi padanya. Hal itu memungkinkan SVN untuk mengembalikan data pada waktu tertentu, sesuai dengan history yang tercatat. SVN mencatat perubahan-perubahan yang terjadi pada data serta kapan perubahan itu terjadi.

Menurut kami penelitian ini perlu dilakukan agar seorang administrator perusahaan nantinya dapat mengetahui perbandingan antara system repository Git dengan SVN dalam manajeman berkas dan pencatatan perubahan apa yang terjadi serta kapan terjadinya.

1.2 Rumusan Masalah
Bagaimana Git yang merupakan system repository memiliki keunggulan dibandingkan SVN dalam manajemen dan pencatatan setiap perubahan apa yang terjadi serta kapan terjadinya pada sebuah berkas?

1.3 Tujuan dan Manfaat
Ø  Tujuan
            Adapun tujuan dari penelitian ini adalah :
1.      Mengetahui keunggulan dan kelemahan antara Git dan SVN
2.      Mendapatkan informasi mengenai system repository yang tepat dalam manajemen berkas.

Ø  Manfaat
Manfaat yang diharapkan dari analisa ini adalah :
1.      Memberikan informasi kepada perusahaan system repository Git atau SVN yang tepat digunakan.
2.      Sebagai acuan bagi perusahaan yang ingin menggunakan system repository berbasis Kernel Linux.
1.4 Ruang Lingkup Penelitian

            Dari sekian banyak permasalahan yang telah dirumuskan, maka ruang lingkup dalam penelitian ini adalah :
1.      Menguji coba system repository Git dan SVN pada sebuah perusahaan.
2.      Menganalisa performa system repository yang bekerja optimal di Linux Server Operating System.
3.      Memperhatikan keoptimalan sistem, integritas data, kecepatan sistem.
4.      Tidak membahas perangkat yang digunakan.
5.   Tidak membahas konfigurasi pada kernel Linux.

  


BAB II
TINJAUAN PUSTAKA

Version Control
Version Control merupakan system yang mencatat semua perubahan terhadap berkas atau kumpulan berkas (aplikasi, website, dll) sehingga saat berkas tersebut dapat dikembalikan pada bersi sebelumnya. Bagi seorang pengembang mereka dapat menyimpan setiap versi dari project yang mereka kembangkan maka dengan menggunakan VCS (Version Control System) merupakan pilihan yang tepat, yang mana pencatatan setiap versi akan dilakukan dan system juga akan membandingkan setiap perubahan pada objek sehingga jika terjadi suatu kesalahan dalam perubahan berkas anda dapat mengembalikannya dengan resiko overhead yang sangat kecil. [1]
Version control dapat membantu sebuah tim pengembang perangkat lunak dengan menyediakan akses kepada setiap anggota tim tanpa harus saling menimpa pekerjaan anggota tim yang lain, seperti yang terjadi jika sebuah tim pengembang menggunakan sharing folder. Version control mampu :
1. Mencatat perubahan code dan pembuat perubahan
2. Menyediakan fungsi undo untuk mengembalikan keadaan code ke titik tertentu
3. Melihat riwayat perubahan code, dari pertama dibuat hingga keadaan yang sekarang
4. Memungkinkan penulisan code secara paralel tanpa ada kejadian anggota tim menimpa pekerjaan anggota tim yang lain.

Jumlah maksimal programmer yang dapat bekerja sama tanpa menggunakan version control adalah satu orang. Jika dalam sebuah tim pengembang software terdapat sebuah tim programmer yang lebih dari satu, version control adalah tools yang wajib digunakan. [5]

1.      Local Version Control System (LVCS)
LVCS merupakan pengembangan dari VCS yang terdapat pada system local yang memiliki sebuah basis sederhana untuk menyimpan semua perubahan pada berkas yang berada dalam cakupan revision control. Salah satu tool yang populer dari sistem ini adalah rcs yang masih didistribusikan sampasi sekarang pada setiap komputer. Pada dasarnya tool ini menyimpan kumpulan patch pada suatu perubahan dalam suatu format khusus pada disk.[4]


Gambar 2.1 Diagram Local Version Control System (LVCS)


2.      Centralized Version Control System (CVCS)
CVCS merupakan pengembangan dari LCVS dimana terdapat sebuah server untuk menyimpan versi dari berkas – berkas yang dikembangkan, dan client dapat melakukan checkout berkas dari server pusat. Kelebihan dari pengembangan ini adalah setiap orang yang memiliki permition untuk mengakses CVCS dapat mengetahui setiap perubahan pada berkas yang tersimpan pada server, dan seorang administrator memiliki kendali terhadap server hingga pengendalian terhadap CVCS menjadi lebih mudah. Tetapi saat server mengalami gangguan atau kerusakan maka tidak seorangpun dapat melakukan pengembangan berkas yang terdapat pada server bahkan memungkinkan berkas tersebut hilang. [4]

Gambar 2.2 Diagram Centralized Version Control System (CVCS)



3.      Distributed Version Control System (DVCS)
Dalam sebuah DVCS client dapat melakukan checkout untuk snapshot terakhir pada setiap berkas dan client juga memiliki salinan penuh dari berkas tersebut sehingga client dapat mengirim salinan repositori tersebut kembali ke server. System seperti ini mampu menangani sejumlah remote repository dengan baik, sehingga client dapat melakukan pengembangan secara bersama – sama dengan melakukan kolaborasi dalam system. [4]

Gambar 2.3 Diagram Distributed Version Control System (DVCS)



Git
Git adalah sistem kendali kode sumber (revision control system, atau version control system, atau VCS). Git pertama kali didesain dan dikoding oleh Bapak Linux sendiri, Linus Torvalds, tahun 2005 untuk menggantikan VCS komersial BitKeeper yang kala itu digunakan untuk mengatur kode sumber Linux. Karena tidak menemukan sistem lain yang lebih cepat untuk menangani kode sebesar kernel Linux, maka Linus menulis VCS sendiri. Karenanya, salah satu fitur utama git sejak awal adalah kecepatannya. Berbeda dari sistem kode sumber yang sudah terlebih dulu popular sebelumnya yaitu CVS dan Subversion, git tidak bersifat tersentralisasi melainkan terdistribusi. Artinya, setiap pengembang tidak hanya menyimpan working copy di komputer lokalnya, tapi juga menyimpan repositori, yang berisi sejarah lengkap perubahan. Sementara di sistem tersentralisasi, hanya ada satu repositori tunggal (umumnya di server yang dapat diakses oleh semua pengembang lewat jaringan).
Karena masing-masing pengembang memiliki repositori, maka komit dapat dilakukan secara offline di repository lokal di komputer sendiri, tidak harus terhubung ke repositori sentral di jaringan. Saat ingin bertukar/mensinkronisasi hasil kerja dengan pengembang lainlah, baru kita terkonek ke jaringan dan melakukan merging atau patching. Contoh program dari Git adalah gibak, bup dan eigenclass.[2]

SVN (Subversion)
Subversion, atau dikenal juga dengan nama SVN, adalah suatu perangkat lunak sumber terbuka pengontrol versi yang dapat mengatur proses pengembangan perangkat lunak yang dilakukan oleh suatu kelompok pemrogram yang terpisah menjadi runut dan teratur. Subversion diciptakan oleh CollabNet yang memegang merek dagang “Subversion” dan sampai sekarang masih memelihara proyek ini. Subversion tersedia dalam versi Linux, Windows, FreeBSD, OpenBSD, Solaris, Mac OS X dan OS/400. Subversion dirancang khusus sebagai pengganti modern dari CVS. Untuk mencegah corrupt dalam database, SVN menggunakan konsep operasi atom. Perubahan yang dilakukan terhadap sumber diterapkan atau tidak, yang berarti tidak ada perubahan parsial pada sumber aslinya. Contoh program dari SVN ini adalah tortoisesvn. [3]
    

BAB III
METODOLOGI



A.           Metode Pengumpulan Data
Untuk menyelesaikan permasalahan yang ada, metode pengumpulan data yang penulis lakukan adalah dengan cara:

1.      Tinjauan Pustaka (Library Research)
Dalam tinjauan penelitian sebelumnya ini, penulis mengumpulkan data dari penelitian sebelumnya dari beberapa jurnal dan bebearap situs internet yang menjadi sumber resmi tentang Git maupun SVN untuk menemukan sejarah, keunggulan, kekurangan, dan perkembangan mengenai Git dan SVN hingga saat ini.

2.      Tinjauan Lapangan (Field Research)
Dalam tinjauan ini, penulis mengumpulkan data mengenai permasalahan yang terjadi di perusahaan mengenai system repository yang di inginkan oleh perusahaan dan yang dapat memenuhi kebutuhan. Selain itu, bagi perusahaan yang sedang mengerjakan project web misalnya dengan kerja tim terkadang kesusahan dalam pengerjaan project dikarenakan anggota tim ditempat yang berbeda, dan pembagian tugas dalam pengerjaan yang membuat project harus dikerjakan secara terpisah.

B.            Implementasi
Untuk dapat menganalisa kinerja dari setiap system repository, maka pada tahap ini dilakukan implementasi pada perusahaan yang sama, dengan perangkat dan data yang sama juga. Dengan perlakuan yang sama ini, maka dapat dibandingkan dengan tepat dan menghasilkan data yang valid. Dalam implementasiannya pada perusahaan maka akan terus dilakukan pemantauan terhadap perkembangan dari system repository, untuk mengetahui bagaimana dampak penggunaan Git dan SVN  pada perusahaan. Data yang di dapat dari pemantauan ini akan menjadi data mentah yang akhirnya dijadikan bahan dasar dari laporan perbandingan antara Git dan SVN nantinya.


C.           Analisa
Dengan demikian dapat disimpulkan bahwasannya pengimplementasian yang dilakukan semata agar dapat diketahui system repository apa yang tepat digunakan oleh perusahaan guna meningkatkan kinerja perusahaan. Berikut adalah indikator yang digunakan dalam penelitian, yaitu :
1.      Bekerja sesuai fungsinya (Fungsionality)
2.      Kemampuan (Usability)
3.      Kinerja sistem (Performance)
4.      Keandalan (Reliability).
Dari penelitian ini, dan beberapa hasil penelitian sebelumnya didapatkan hasil sebagai berikut :
Ø  Git
Konsep Git dari awal adalah pada kecepatannya dan sistemnya terdistriusi yang memungkinkan untuk menjadikan Git bukan hanya digunakan oleh programmer untuk memanajemem kode sumber program, tetapi juga dapat digunakan oleh “pemakai biasa” untuk mengatur berbagai jenis data. Oleh karena kecepatannya, maka Git sangat bagus dalam kompresi data dibandingkan dengan VCS lain. Dan berikut ini merupakan keunggulan dari Git adalah :
·         Kecepatan Stabil
·         Design yang sederhana
·         Mendukung dalam pengembangan non-linear (pengembangan paralel)
·         Sistem terdistribusi, peer to peer
·         Mendukung dalam proyek besar seperti Kernel Linux
·         Murah dalam pengoperasian
·         Akses menggunakan command line (tidak harus client-server)
·         Penyimpanan murni berbasis file (tidak menggunakan database/SQL)
Selain itu Git juga memiliki beberapa kelemahan, yaitu :
·         Tidak Optimal untuk pengembang tunggal
·         Dukungan untuk Windows terbatas dibandingkan Linux [2] [3].

Ø  SVN (Subversion)
SVN memiliki keunggulan yaitu sebagai berikut :
·         Sistem baru berdasarkan CVS
·         Menerapkan operasi atom
·         Murah dalam pengoperasian
·         Sistem terpusat, tidak mendukung peer to peer
·         Berbagai macam plug-in unuk IDE
       SVN juga memiliki beberapa kelemahan, sebagai berikut :
·         Masih ada bug dalam rename file maupun direktori
·         Perintah manajemen repositori tidak banyak
·         Kecepatan kompresi data lambat
  Ketika server down, maka client tidak dapat mengakses. [3]




















Daftar Pustaka
[1]Chacon, Scott, 2011,  Pro Git, Apress, United States of America
[2] Staff, PT Master Web Network, 2012, Artikel  Manajemen data  pribadi dengan git, Diambil pada 4 Februari 2014 (23:16), Dari http://kb.masterweb.net/beta/index.cgi/read/Artikel:Manajemen_data_pribadi_dengan_git
[3]Rob & Liam, 2011, Artikel  SVN, Git, Mercurial, and CVS – Comparison of Version Control Software, Diambil pada 5 Februari 2014 (05:10), Dari http://biz30.timedoctor.com/git-mecurial-and-cvs-comparison-of-svn-software/
[4] Software Freedom Conservancy, 2011,  Getting Started - About Control Version,  Diambil pada 10 Maret 2014 (07:14), Dari  http://git-scm.com/book/en/Getting-Started-About-Version-Control
[5] Endy Muhardin, 2006, Version Control Menggunakan Subversion, Diambil pada 25 Maret 2014 (20:00), Dari http://endy.artivisi.com
[6] Eric Michael, 2009, Go Git ‘Em, Diambil pada 25 Maret 2014 (21:45), Dari http://www.ericmichaelstone.com/?p=195

[7] Oracle, 2012, Installing and Configuring Subversion for Version Contol, Diambil pada 25 Maret 2014 (22:02), Dari http://docs.oracle.com/middleware/1212/core/MAVEN/config_svn.htm