Friday, December 12, 2014

Asistensi TA dengan git version control (serta latex)

Biasanya sebagai mahasiswa semester terkahir, kita pasti dihadapkan pada kewajiban penyusunan laporan tugas akhir berupa skripsi atau tesis. Di mana dalam penyusunan laporan ini  tidak serta merta apa yang kita susun  tersebut langsung bisa di-approve oleh dosen pembimbing dalam sekali asistensi. Dengan demikian mau tidak mau kita harus mengeditnya berulang-ulang.  Saya sebagai seorang saintis yang jam terbangnya banyak bergelut dengan studi ilmu  komputer serta komputasi  (walaupun masih dalam tahap amatir) punya cara tersendiri untuk mengakali situasi ini. Cara yang saya pakai tentu sudah sangat lumrah dijumpai pada bidang ini. Namun bagi Anda yang mungkin juga memiliki minat yang tinggi dalam mempelajari apapun, maka saya rasa ini sama sekali bukan hal yang terlalu ribet untuk dicoba.

Teknik yang saya maksud adalah teknik version control dengan menggunakan software git (tersedia untuk windows) serta editor latex (juga tersedia untuk windows). Soal latex sendiri, kebetulan saya ini seorang fisikawan, maka apa yang saya tulis biasanya banyak mengenai penurunan persamaan. Saya punya contoh dokument yang bisa di-download mengenai contoh kasus di mana latex itu “the only way” untuk menulis dokument, yakni

https://drive.google.com/file/d/0B1irLqfPwjq0V0VoQllWR3FTUkE/view?usp=sharing

Jika Anda bisa menghasilkan dokument yang sama (beserta nomor persamaannya di Microsoft Word atau yang lain) saya akan isikan pulsa 20 ribu. Tapi dalam tulisan ini saya tidak lagi mengajak Anda untuk memakai latex, itu pilihan Anda sepenuhnya. Dan nyatanya git  ini bisa juga digunakan pada semua jenis file. Dalam tulisan ini saya lebih menekankan penggunaan teknik version control. Di wikipedia sudah diberikan secara gamblang apa yang dimaksud dengan version control. Intinya dengan menggunakan version control itu kita bisa melacak history (baca:riwayat) dari dokument.

Contoh kasus: saya sudah menyelesaikan TA, dan akan melakukan asistensi pertama kali kepada dosen pembimbing. Oleh dosen pembimbing, dalam asistensi pertama itu saya disuruhnya untuk menambahkan ini itu. Kemudian saya tambahkan lah apa yang diperintahkan, dan kemudian saya asistensi lagi untuk kedua kalinya. Pada asistensi kedua, ternyata si dosen mood nya berubah. Dia ingin agar isi laporan TA kita dirubah kembali ke situasi pertama tadi. Jadinya kita bingung. Maunya sih di-undo (pasangannya redo), tapi kan fasilitas ini hanya berlaku ketika komputer masih nyala, ketika komputer udah mati keadaan yang mau di undo tersebut sudah hilang.  Bisa juga sih kita membuat satu folder untuk satu kali asistensi (jadi untuk asistensi 1 foldernya lain, untuk asistensi 2 foldernya lain, dst). Namun ini bukan cara yang efisien. Bagaimana kalo dokument kita itu saling bergantung dengan beberapa file yang lain dan ukurannya besar, misalnya file gambar. Otomatis file-file tersebut juga kita copy-paste semuanya ke dalam folder yang baru (untuk asistensi 2, 3, dst). Dan untuk navigasi dari folder 1, folder 2, dll itu juga cukup merepotkan. 

Jadi untuk mengatasi masalah tersebut digunakanlah git sebagai version control. Dengan version control kita tidak melakukan teknik copy-paste file, akan tetapi yang di-lacak adalah perubahan dalam file tersebut. Jadi, alih-alih mengcopy-paste seluruh file word untuk asistensi kedua, git hanya mengcopy-paste kalimat yang kita tambahkan ke dalam file word tersebut (kata kasarnya seperti itu, walaupun implementasinya bukan seperti itu). 

Untuk mempelajari git, saya g membahas di tulisan ini, ada banyak contohnya di internet (tujuan dari tulisan ini lebih kepada meningkatkan rating blog ini sekaligus memberikan sedikit pencerahan kepada Anda). Saya punya sebuah buku yang bisa Anda download di internet yang jika Anda punya waktu 5 jam sehari selama seminggu (jika memang Anda tertarik membacanya), maka Anda bisa memahami git itu apaan:

http://en.bookfi.org/book/1046931

(saya juga g sampe selesai membaca buku itu)

Adapun  untuk artikel yang lebih simple dan langsung ke inti permasalahan, bisa Anda baca di sini:

http://git-scm.com/book/en/v2/Getting-Started-Git-Basics

Sementara jika Anda ingin menjadi ahli dalam git, maka ada banyak forum di internet yang membahas mengenai masalah-masalah yang dijumpai dalam menggunakan git, salah satunya di stack-overflow:

http://stackoverflow.com/questions/tagged/git?sort=newest&pageSize=15

No comments: