Arsip Tag: git

Qt Creator dan Git


Bismillahirrahmanirrahim.

qt-creator-logoSemua orang kini menggunakan Git dan Github. Apa itu? Git adalah program manajemen versi untuk kode sumber. Siapa saja yang hidupnya dekat dengan pemrograman akan mengenal sesuatu yang namanya SCM (Source Code Management) dan VCS (Version Control System). Git memiliki dua sifat ini, yakni sebagai SCM dan VCS sekaligus. Git sangatlah populer saat ini di kalangan orang yang dekat dengan pemrograman. Ia adalah pesaing baru untuk VCS-VCS sebelumnya semisal SVN, CVS, Mercurial, Bazaar, dan lain-lain. Ia menggeser semua CVS era lama dengan fitur-fiturnya. Saya menulis ini karena sangat tertarik dan bersemangat dengan Git. Saya baca buku-buku tentang Git dan mendaftar di Github. Memang masih bingung tetapi sangat menyenangkan! Dalam tulisan ini, saya ingin mencatat apa yang saya temukan dalam Qt Creator yang sudah dihidupkan fitur git-nya.

Apa itu Git dan Github?

Git adalah SCM dan VCS yang sifatnya terdistribusi dan fitur utamanya adalah kecepatan. Kalau kita bingung dengan istilah-istilah ini, bayangkanlah semua aplikasi yang pernah kita gunakan. Bagaimana bisa developer aplikasi merilis versi 1.2.3 setelah 1.2.2? Bagaimana mereka bisa membuat patch? Bagaimana mereka membuka development aplikasi mereka kepada semua orang dan tidak kacau hasil aplikasinya (seperti misalnya proyek KDE)? Jawabannya adalah dengan menggunakan Version Control System (VCS). VCS inilah yang bertanggung jawab mengurus versi aplikasi yang dibuat dan menyimpan setiap versi pada tempatnya. Dengan VCS ini, kita bisa melacak perubahan apa yang terjadi pada kode sumber, membuat patch (dengan diff), membandingkan versi baru dengan sebelumnya, menyatukan perubahan yang dibuat oleh banyak orang, dan lain-lain. Pokoknya Source Code Management. Git itu VCS, sedangkan Github itu Git di server cloud sana yang siap menampung kode kita.

Cara Kerja Git

Bekerja dengan Git itu hanyalah akan berputar pada hal-hal ini:

  1. commit,
  2. push,
  3. pull,
  4. diff,
  5. patch,
  6. stash,
  7. branch, dan
  8. merge.

Saya tidak jelaskan satu per satu artinya karena saya belum paham. Saya cuma punya penjelasan yang sangat sederhana berdasar percobaan saya sendiri. Lebih enak model cerita begini saja, ya?

  1. Saya instal git di Ubuntu saya terlebih dahulu.
  2. Saya buat sebuah proyek GUI baru di Qt Creator dengan memilih Git sebagai VCS untuk proyek ini. qt-git3
  3. Saya dapat lima berkas dasar yang dibuat otomatis oleh Qt Creator, seperti biasa. Saya biarkan isinya default tanpa diubah.
  4. Saya melakukan commit pertama untuk merekam versi awal dari proyek saya. Tekan Alt+G (jangan lepas Alt) lalu Alt+C. Saya isi keterangan bahwa ini versi awal lalu OK. Inilah commit. Commit ini sama layaknya Ctrl+S setiap kita mengubah dokumen Writer kita. a-commit-pertama
  5. Saya melakukan perubahan pada berkas mainwindow.cpp dengan menambahkan satu baris komentar saja. Lalu Ctrl+S (wajib).
  6. Setelah itu, saya coba diff yakni membuat patch. Apa itu? Ya inilah keajaiban VCS yakni mengetahui perubahan apa yang telah dilakukan terhadap proyek. Sekecil apa pun, perubahan pasti akan terlihat. Tanda + ini artinya baris yang ditambahkan. Diff melakukan delta yakni selisih antara proyek yang sudah diubah dengan proyek sebelumnya, sama seperti rumus matematika selisih = nilaibaru – nilaiawal. b-diff-pertamaku
  7. Selain diff bisa melacak perubahan dalam 1 berkas, ia juga bisa melacak perubahan untuk seluruh berkas di dalam proyek kita. Ini bakalan berguna ketika kegiatan pemrograman mulai mempunyai banyak berkas. Cara saya adalah menambahkan sebaris komentar di setiap berkas teks dalam proyek lalu saya simpan semuanya dan saya lakukan Diff Project (Alt+G, jangan lepas Alt, Alt+Shift+D). Hasilnya? Tanda –  berarti baris yang dihapus.c-diff-banyak-berkas-sekaligus
  8. Branch dilakukan untuk menyalin proyek jadi sebuah proyek baru (branch baru/cabang baru) dan untuk eksperimen di branch baru itu tanpa mengganggu sedikit pun branch asli/branch master. Jadi branch itu ada master (proyek pertama dan utama kita) dan branch selain master. Branch selain master bisa dibuat untuk menambah fitur baru, membersihkan bug, dan lain-lain lalu kemudian setelah beres bisa disatukan lagi perubahannya dengan master branch. Ini jawabannya mengapa developer bisa menambahkan fitur baru dan menyediakan update aplikasi buat kita. Kita mengaktifkan branch yang mau diubah isinya dengan perintah Checkout lalu kita ubah dan branch lain yang tidak di-checkout maka tidak akan terpengaruh. pindah-branch-ke-master
  9. Diff antar-branch. Apa saja perubahan yang dilakukan antara master branch dengan branch baru? diff-antar-branch
  10. Merge branch, gunanya untuk menggabungkan perubahan dalam satu branch ke dalam branch yang lain. Dari sini tampak jelas kegunaan VCS yakni memungkinkan untuk membuat salinan proyek lalu kita berkreasi dengan salinan itu, kemudian jika kreasi sukses maka perubahannya dikirim ke proyek aslinya sehingga proyek asli menjadi versi baru yang memiliki fitur baru pula. merge-branch
  11. Bonus: GUI untuk mengelola Git kita: gitk dan QGitgitk-setelah-semua-ini-terjadi qgit-setelah-semua-ini-terjadi

Apa Hubungan Qt Creator dan Git?

Qt Creator bisa menggunakan Git untuk mengelola kode sumber kita. Lihat gambar ini.

qt-git

Pada gambar di atas, menu Git hidup semuanya. Kita bisa lihat perintah-perintah Git macam Commit, Diff, Patch, dan lain-lain.

qt-git1

Pengaturan version control dalam Qt Creator.

qt-git2

Qt Creator mendukung banyak Version Control System di antaranya Bazaar, Mercurial, Subversion, Perforce, dan CVS. Hanya saja, semuanya tidak saya instal di Ubuntu saya sehingga warnanya merah di pengaturan. Kecuali Git saja karena sudah saya instal.

Demikian dulu hasil percobaan saya. Semoga ini bermanfaat.

Referensi

  1. http://qt-project.org/doc/qtcreator-2.7/creator-version-control.html
  2. http://ebb.org/bkuhn/blog/2011/01/23/git-shared-repository-tutorial.html
  3. http://en.wikipedia.org/wiki/File:Git-logo.svg
  4. Google: tutorial qt creator git merge branch – Google Search

[PDF] Buku-Buku Literatur Linux 3


1
Judul: Introduction to Git
Halaman: 415
Ukuran: 5 MB
Tautan unduh: GitIntro >>https://speakerd.s3.amazonaws.com/presentations/4ecfc649eee53a005000b88b/GitIntro.pdf
Keterangan: presentasi penuh gambar yang sangat tebal menjelaskan Git. Murni Git. Prinsip kerja, perintah-perintah, apa yang sebenarnya terjadi ketika commit, dan lain-lain. Dijelaskan dengan gambar, sangat minim tulisan. Kiranya cocok untuk kita yang mau memulai memanfaatkan Git sebagai version control system dalam proyek pemrograman.

2
Judul: Pro Git
Halaman: 238
Ukuran: 5 MB
Tautan unduh: progit.en >> https://github.s3.amazonaws.com/media/progit.en.pdf
Keterangan: buku lengkap ratusan halaman menjelaskan apa itu version control system secara global kemudian merinci pembahasan apa itu Git. Buku ini adalah versi tertulis dari presentasi Introduction to Git. Saya rekomendasikan juga untuk yang butuh panduan Git secara lengkap.

3
Judul: Petunjuk Praktis Cloud Computing Mengunakan Open Source 
Halaman: 48
Ukuran: 1 MB
Tautan unduh: OWP-20110701-petunjuk-praktis-cloud-computing-menggunakan-opensource
Keterangan: buku ringkas tetapi padat mengenai pembuatan cloud dengan aplikasi open source. Pembahasan berputar pada apa itu cloud computing, menginstal cloud tanpa internet, Eucalyptus dan Ubuntu Enterprise Cloud, serta banyak tambahan berharga berupa kode-kode yang dijelaskan banyak sekali. Suatu kumpulan pengetahuan yang berharga sekali untuk yang ingin memulai usaha cloud computing dengan open source.

4
Judul: Debian Packaging Tutorial 
Halaman: 77
Ukuran: 600 KB
Tautan unduh: packaging-tutorial.en >> https://malsasa.wordpress.com/wp-content/uploads/2013/02/packaging-tutorial-en.pdf
Keterangan: buku yang ditulis oleh salah satu orang dari Debian.org ini mengangkut dasar-dasar pemaketan, contoh pemaketan secara langsung, menyangkut juga pemaketan tingkat lanjut, bagaimana me-maintain paket di Debian, serta lengkap dengan penjelasan istilah-istilah aneh dalam pemaketan. Anda akan dituntun bagaimana membuat .deb sendiri dari program yang sudah ada.

5
Judul: Qt basics 
Halaman: 66
Tautan unduh: Qt basics GKO 2010 >> https://malsasa.wordpress.com/wp-content/uploads/2013/02/qt-basics-gko-2010.pdf
Keterangan: presentasi dalam bentuk buku ini ditulis oleh seorang Nokia Certifie d Qt Developer. Isinya tentang penjelasan dasar Qt, apa itu Qt, apa yang bisa dilakukan dengannya, mengapa saya patut menggunakannya, dan apa yang mesti saya tahu untuk bisa menggunakannya. Semacam pengenalan singkat tapi menyeluruh tentang pemrograman Qt.

6
Judul: Qt Designer Widgets | Qt Essentials – Training Course
Halaman: 128
Ukuran: 2 MB
Tautan unduh: qt-designer-widgets >> https://malsasa.wordpress.com/wp-content/uploads/2013/02/qt-designer-widgets-1.pdf
Keterangan: presentasi dalam bentuk buku ini ditulis oleh ICS. Isinya sama tentang Qt, tetapi lebih menyeluruh dengan suguhan dasar-dasar Qt, beberapa contoh kode program Qt, menggunakan Qmake, menjelaskan GUI QtCreator dengan gambar, dan tentunya Qt Widgets diulas banyak di sini. Di dalamnya termasuk kode dan penjelasan untuk membuat aplikasi Qt pertama kita, dengan GUI tentunya. Disertai banyak gambar skrinsot yang bikin betah membacanya smile

7
Judul: Mobile Phone Programming | Quick start: Qt for Windows/Linux, Symbian and Maemo/Megoo 
Halaman: 20
Ukuran: 700 KB
Tautan unduh: Qt_Quick_Start_Building_Hello_World >>https://malsasa.wordpress.com/wp-content/uploads/2013/02/qt_quick_start_building_hello_world.pdf
Keterangan: presentasi ringkas ini berisi bagaimana membuat aplikasi Qt pertama kita bukan untuk desktop tapi untuk Nokia N900. Dan di dalam SDK Qt khusus mobile sudah terdapat simulator untuk hape yang bersangkutan. Cukup keren, bukan? Bisa dilakukan di Linux pula. Dilengkapi kode-kode siap kopi beserta skrinsot. Dua puluh halaman terasa kurang.

8
Judul: Qt – Introduction to GUI programming
Halaman: 76
Ukuran: 1 MB
Tautan unduh: Qt_Training_Day4 >> https://malsasa.wordpress.com/wp-content/uploads/2013/02/qt_training_day4.pdf
Keterangan: buku kecil ini menjelaskan pembuatan GUI di Qt secara global, tetapi merinci pada sebagian permasalahan seperti dialog, dengan membawakan kode-kode. Namanya juga introduction, maka yang diangkut adalah dasar-dasarnya. Disertai skrinsot, penjelasan ringkas per poin, membahas IDE tersohor QtCreator dengan GUI designer internal-nya (bukan QtDesigner), MVC, events, signals, slots, layout, dan elemen dasar pemrograman Qt lainnya.

BARU (1 Maret 2013)

9
Judul: Basic For Qt® essentials
Halaman: 25
Ukuran: 200 KB
Tautan unduh: https://malsasa.wordpress.com/wp-content/uploads/2013/02/q7basic_essentials1.pdf
Keterangan: buku ini berisi dasar untuk Qt, bagaimana kompilasi program C++, beberapa daftar sintaks, serta terakhir daftar QtWidget apa saja yang sesuai dengan keperluan programer. Dituliskan duntut satu per satu.

10
Judul: Programmer’s Guide for QT Gui + openFrameworks (OF) in C++ (Visual Studio 2008 & 2010)
Halaman: 8
Ukuran: 100 KB
Tautan unduh: https://malsasa.wordpress.com/wp-content/uploads/2013/02/qtof_programmersguidec1.pdf
Keterangan: inti dari buku ini adalah dasar sederhana bagaimana memulai pemrograman dengan Qt + OpenFrameworks, yang dilakukan dalam Microsoft Visual Studio.

11
Judul: PyGTK tutorial
Halaman: 135
Ukuran: 1 MB
Tautan unduh: https://malsasa.wordpress.com/wp-content/uploads/2013/02/pygtk-tutorial.pdf
Keterangan: buku tebal ini sangat cocok untuk memandu Anda dalam pemrograman PyGTK mulai awal sampai akhir. Di dalamnya ada banyak sekali contoh kode program, yang disertai skrinsot hasil programnya, dan dominan isi buku ini adalah itu. Cocok sekali untuk yang ingin to the point menciptakan aplikasi di Linux. Anda pun akan menemukan bab pertama yang memandu Anda bagaimana seharusnya memulai pemrograman ini. Isi buku ini seputar GTK yakni Layout Manager, Menu, Toolbar, Signal dan Event, Widget, Advanced Widget, Dialog, membahas Pango Library (font management), Cairo Library (membuat vektor), bahkan di akhir buku Anda diajari bagaimana game development dengannya. Tentu dengan contoh. Bahasa buku ini sangat ringan dan menggunakan logat pemula, cocok untuk yang ingin memulai development yang mudah. Sangat direkomendasikan.

12
Judul: PyGTK 2.0 Tutorial
Halaman: 346
Ukuran: 3,5 MB
Tautan unduh: https://malsasa.wordpress.com/wp-content/uploads/2013/02/pygtk2-tut.pdf
Keterangan: buku ini adalah tutorial untuk PyGTK juga tetapi versi 2.0. Jauh lebih tebal daripada buku satunya. Polanya sama, sangat banyak contoh kode di setiap bab, bahkan bisa dikatakan isi buku ini memang dominan contoh kode. Mungkin tujuannya biar langsung bisa diaplikasikan. Isinya antara lain bagaimana memulai pemrogramannya, signal handler, widget (sangat lengkap pembahasannya), adjustment, drang and drop system, timeout function, apa yang baru pada PyGTK 2.2, dan 2.4, penjelasan berkas rc milik GTK, mengelola seleksi, dan banyak lagi isinya. Buku ini meski gratis, sudah seperti buku berbayar. Tampilannya profesional (didesain dengan Latex, wajar saja) dan ada appendixes yang mantap. Baca sendiri. Istimewanya buku ini, kita didorong untuk berkontribusi konten buku kepada penulisnya. Maklum, warga komunitas FOSS. Sebuah ciri khas yang dominan dan dinamis. Sangat profesional! Saya rekomendasikan bersama buku satunya.

13
Judul: PyGObject Tutorial Documentation Release 1.0
Halaman: 141
Ukuran: 1 MB
Tautan unduh: https://malsasa.wordpress.com/wp-content/uploads/2013/02/python-gtk-3-tutorial.pdf
Keterangan: buku yang bertujuan mengajarkan writing GTK+ 3 applications in Python ini juga setebal buku satunya, bedanya ia mengajarkan GTK+ 3. Buku ini berisi panduan instalasi perangkat lunak yang dibutuhkan (tidak ada di 2 buku sebelumnya), bagaimana menulai, dasar-dasar signal, properties, string, layout container, label, entry, dan banyak lagi. Buku ini juga berisi cara memrogram bersama Glade (GUI Builder untuk GTK), serta tentu saja contoh kode menyebar di seluruh halaman buku. Sangat direkomendasikan!

Maaf, karena saya lebih suka GUI, maka buku tutorial yang saya sediakan di sini dominan yang berbasis GUI. Saya mendukung GUI dan saya tak suka memaksa pemula menyentuh CLI smile Saya usahakan semua buku bisa diunduh secara langsung (hotlinking) dari server saya, semoga Anda berkenan. Daftar ini bersambung insya Allah, dengan beberapa buku Qt lagi dan pemrograman PyGTK bersama Glade. Semoga ini bermanfaat.

NB: tulisan ini juga dimuat di Forum Ubuntu Indonesia pada laman http://ubuntu-indonesia.com/forums/ubbthreads.php/topics/126678#Post126678