Membandingkan dan Menggabungkan File Teks dengan Winmerge

Membandingkan dan Menggabungkan File Teks dengan Winmerge

Bagi Anda yang pernah merevisi file berbasis teks atau kode program aplikasi dengan beberapa versi, mungkin pernah mengalami kesulitan untuk menentukan bagian mana dari…

Bagi Anda yang pernah merevisi file berbasis teks atau kode program aplikasi dengan beberapa versi, mungkin pernah mengalami kesulitan untuk menentukan bagian mana dari file tersebut yang telah mengalami perubahan dari versi sebelumnya. Adanya tools yang dapat membandingkan perbedaan dan menggabungkan antar dua file teks bisa jadi akan membantu Anda. WinMerge adalah tools berbasis visual yang bersifat Open Source yang dapat digunakan untuk melakukan perbandingan (komparasi) dan sinkronisasi dua file teks atau folder pada sistem operasi Windows.

Dengan WinMerge Anda dapat melihat setiap teks yang terdapat pada kedua file baris demi baris dan memeriksa perubahan yang terjadi pada dokumen file teks tersebut serta melakukan sinkronisasi antar bagian diantara keduanya. Tulisan ini berisi pengenalan WinMerge khususnya untuk komparasi file. Contoh yang digunakan adalah komparasi file program cetak DIPA antara tahun 2013 dengan tahun 2014. Program cetak DIPA (p_petikan.prg) adalah program untuk melakukan pencetakan DIPA yang ditulis menggunakan bahasa pemrograman Microsoft Visual FoxPro versi 9.0.

Fitur WinMerge

WinMerge memiliki banyak fitur untuk proses perbandingan, sinkronisasi, dan penggabungan file atau folder, antara lain:

  1. Komparasi File
    • Menampilkan perbedaan dan kemampuan penggabungan file teks secara visual
    • Editor yang bersifat fleksibel dengan menampilkan highlight pada syntax, nomor baris, dan fungsi word wrap
    • Fungsi penanda (highlight) perbedaan dalam baris
    • Menampilkan perbedaan dalam dua panel yang berdampingan
    • Fungsi location pane untuk menunjukkan posisi file yang diperbandingkan
    • Adanya garis deteksi untuk menunjukkan navigasi atau pergerakan.
  2. Komparasi Folder
    • Menggunakan Regular Expression (regex) berbasis file dalam proses perbandingan
    • Perbandingan secara cepat menggunakan ukuran file dan tanggal file
    • Mampu melakukan perbandingan folder atau seluruh sub folder
    • Menampilkan hasil perbandingan dalam tampilan tree-view.
  3. Kontrol Versi
    • Kemampuan membuat file patch (Normal, Context, dan Unified)
    • Kemampuan menyelesaikan file conflict
    • Integrasi dengan visual SourceSafe dan Relational ClearCase.
  4. Kemampuan Lainnya
    • Memiliki kemampuan integrasi Shell (mendukung versi Windows 64-bit)
    • Mendukung Archive file dengan menggunakan 7Zip
    • Dukungan terhadap tampilan antar muka (localizable) pengaturan bahasa
    • Panduan bantuan (help) secara online atau melalui instalasi panduan HTML.
    • Mendukung plug-in

Instalasi

Instalasi WinMerge dapat dilakukan dengan menggunakan installer atau dengan unzip file archive. Saat ini WinMerge bekerja secara native untuk Windows 32-bit. Windows versi 64-bit akan menjalankan installer dan WinMerge sebagai aplikasi 32-bit.

Installer WinMerge dapat didownload di situs WinMerge.org. Saat tulisan ini dibuat versi stabil WinMerge adalah versi 2.14.0 sedangkan versi development adalah versi 3. File installer memiliki struktur penamaan WinMerge-version-setup.exe, sehingga file installer untuk versi 2.14.0 adalah : WinMerge-2.14.0-Setup.exe.

Instalasi melalui installer dilakukan dengan melakukan klik ganda (double click) pada file installer hasil download. Selanjutnya ikuti petunjuk instalasi hingga proses selesai. Instalasi melalui archive dilakukan dengan mengunduh (download)  file archive, selanjutnya meng-unzip file archive pada folder tujuan.

WinMerge bersifat independent dari komponen sistem lain, tidak terintegrasi secara langsung dengan sistem Windows, dan hanya membutuhkan MFC90U.dll, MSVCR90.dll, dan MSVCP90.dll. Jika file tersebut telah terinstal dalam sistem (secara default telah terinstal pada sistem operasi) maka hanya file WinMerge.exe yang dibutuhkan untuk menjalankan WinMerge.

Memulai WinMerge

Memulai pengoperasian WinMerge dapat dilakukan dengan cara:

Melalui Form Dialog

Memulai WinMerge melalui form dialog dapat dilakukan dengan salah satu cara berikut:

  1. Klik ganda (double click) pada file WinMerge.exe
  2. Melalui command prompt dengan perintah winmergeu pada lokasi dimana aplikasi WinMerge berada.

Jendela dialog WinMerge adalah sebagai berikut: Gambar 1. Form dialog WinMerge

Isian Left dan Right pada jendela dialog adalah tempat dimana file atau folder yang akan diperbandingkan berada, pengisiannya dapat dilakukan dengan salah satu cara berikut:

  • Mengisi path beserta nama file atau folder secara langsung
  • Klik pada tombol Browse … sebagai navigasi ke folder yang dituju
  • Drag and drop file atau folder yang akan dibandingkan dengan cara memilih dua file atau folder pada Windows Explorer dan meletakkannya (drop) pada shortcut WinMerge di desktop atau pada aplikasi WinMerge sebagaimana gambar berikut:
    Gambar 2. Drag and Drop

Pesan kesalahan akan ditampilkan jika salah satu dari file atau folder yang akan diperbandingkan tidak ditemukan. Pesan kesalahan yang sama juga akan tampil saat kita membandingkan antara file dengan folder.

Pilihan Filter dapat digunakan untuk membatasi proses yang akan dijalankan, meliputi:

  • FileFilter: Include atau Exclude file sesuai pola (pattern) Regular Expressions yang diberikan, contoh : pattern ^test akan mencocokkan file yang dimulai dengan string test seperti testheader.h.
  • LineFilters: digunakan untuk mengabaikan baris dalam file yang sesuai dengan pola, contoh : pattern ^[1-5]0 akan mengabaikan baris yang dimulai dengan nomor 10, 20, 30, 40, dan 50.

Pilihan Include Subfolder digunakan untuk menentukan sejauh mana ruang lingkup perbandingan folder. Jika dipilih, WinMerge akan membandingkan sub folder secara rekursif dan menampilkan semua folder dan file yang ditemukan dalam satu tampilan. Jika pilihan di non aktifkan, hanya folder yang dipilih yang akan diperbandingkan. Sub folder akan ditampilkan dalam bentuk daftar (list) tanpa isi folder/sub folder.

Melalui Command Line

WinMerge dapat dijalankan dengan menggunakan perintah Command Line pada Command Prompt. Command Line Interface (CLI) WinMerge meliputi perintah dan parameter yang dapat digunakan pada script atau command prompt untuk menjalankan komparasi.

Berikut contoh perintah untuk membandingkan dua folder (folder1 dan folder2) secara rekursif dan menampilkan hasilnya pada jendela WinMerge :

Winmergeu /r C:\folder1 C:\folder2

Untuk mengetahui lebih lanjut parameter apa saja yang dapat digunakan WinMerge melalui perintah CLI, Anda dapat memberikan perintah berikut pada Command Prompt untuk menampilkan bantuan :

Winmergeu /?

Komparasi File Teks

Komparasi file teks berfungsi untuk membandingkan konten (isi) dari dua file yang diperbandingkan. Perbandingan konten file teks pada WinMerge ditampilkan dalam dua panel secara berdampingan.

Berikut beberapa hal yang perlu diketahui untuk pengoperasian WinMerge :

Jendela Komparasi File

Jendela komparasi file merupakan bagian utama WinMerge tempat seluruh fungsi operasi WinMerge berada. Gambar berikut menampilkan jendela komparasi file yang menunjukkan perbandingan konten antara file p_petikan.prg tahun 2013 dengan file p_petikan.prg tahun 2014:

Gambar 3. Jendela Komparasi File

Jendela komparasi file terdiri atas:

  • File panes (panel), terbagi atas sisi kiri (Left) dan kanan (Right), menampilkan konten atau isi file teks dan perbedaan dari kedua file yang diperbandingkan. Panel merupakan area utama untuk navigasi dan proses pada konten dan dapat pula digunakan untuk melakukan editing secara langsung.
  • Difference highlighting (penanda perbedaan) merupakan fitur WinMerge yang berfungsi untuk menandai (highlighting) perbedaan konten dalam panel dengan menggunakan warna berbeda untuk teks yang tidak dipilih, dipilih, atau dihapus. Gambar berikut menunjukkan adanya tiga perbedaan konten pada panel :
    Gambar 4. Difference highlighting

    1. Baris 1668 menunjukkan perbedaan pada satu baris
    2. Baris 1671 s.d. 1673 menunjukkan blok perbedaan lebih satu baris
    3. Warna abu-abu menunjukkan adanya baris kosong pada baris 1673.
    Untuk menampilkan nomor baris dapat dilakukan dengan mengaktifkan pilihan pada menu View – View line numbers.

  • Toolbar dan Menu, menyediakan berbagai fungsi untuk melakukan navigasi, pemilihan, dan proses pada konten file.Informasi fungsi toolbar ditampilkan saat cursor diarahkan pada icon toolbar dalam bentuk tools tip.
    Gambar 5. Toolbar
  • Location Pane, merupakan dua bar vertikal yang terletak pada sebelah kiri panel, berfungsi sebagai penunjuk posisi dimana terdapat perbedaan konten (ditandai dengan warna berbeda), posisi kursor (highlight), dan tampilan seluruh area konten sebagaimana gambar berikut :
    Gambar 6. Location Pane
  • Diff Pane, menunjukkan perbedaan konten pada baris atau kelompok baris dari panel yang dipilih. Diff Pane terletak di bagian bawah panel. Proses penggabungan dapat dilakukan langsung dari Diff Pane dengan melakukan klik kanan baik pada sisi atas atau bawah Diff  Pane dilanjutkan dengan memilih Copy to Right atau Copy to Left. Berikut contoh tampilan Diff Pane:
    Gambar 7. Diff Pane
  • Status Bar, berisi informasi tentang dokumen dan lokasi dimana Anda berapa, terletak pada bagian paling bawah panel, Informasi yang ditampilkan meliputi :
    Line Status, meliputi:

    1. Ln, nomor baris pada file sumber
    2. Col, lokasi kolom kursor dan jumlah kolom dalam baris, Col menghitung tab sebagai n spasi, dimana n adalah jumlah karakter sebagaimana ukuran tab yang didefinisikan dalam Editor
    3. Ch, lokasi karakter kursor dan jumlah karakter baris, Ch menghitung tab sebagai karakter tab tunggal
    4. Read-only Status, RO ditampilkan dalam panel jika file dalam posisi read-only
    5. File Encoding, menampilkan nomor codepage untuk file ANSI
    6. EOL System, menampilkan informasi berikut : Win untuk Windows file/DOS (CRLF), Unix (LF), Mac (CR), atau gabungan diantaranya. Berikut contoh informasi pada Status Bar :

    Gambar 8. Status Bar

Fungsi Navigasi

Berikut adalah fungsi navigasi pada WinMerge:

  • Difference in the Current Line/Select Line Difference, pilihan ini akan aktif saat melakukan pemilihan pada bagian teks yang berbeda. Menu : Edit – select Line Difference atau tombol F4. Gambar berikut menunjukkan konten yang berbeda pada sisi panel kiri dan panel kanan ditandai dengan warna hitam.
    Gambar 9 Select Line Difference
  • Next Difference, digunakan untuk menemukan perbedaan konten berikutnya dibawah posisi dimana kursor saat ini berada, akan berhenti saat perbedaan konten berada pada posisi akhir dokumen. Menu : Merge – Next Difference atau tombol Alt+Down.
  • Previous Difference, digunakan untuk menemukan perbedaan konten sebelumnya diatas dimana kursor berada, akan berhenti saat perbedaan konten berada pada posisi awal dokumen. Menu : Merge – Previous Difference atau tombol Alt+Up.
  • First Difference, digunakan untuk menentukan posisi perbedaan konten pertama pada awal dokumen. Menu : Merge – First Difference atau tombol Alt+Home.
  • Current Difference, memiliki dua metode aksi. Jika kursor berada di konten tetapi tidak ada perbedaan yang dipilih, fungsi ini akan memilih seluruh perbedaan. Jika terdapat perbedaan, fungsi ini akan menuju ke lokasi perbedaan berada. Menu : Merge – Current Difference atau tombol : Alt+Enter.
  • Last Difference, digunakan untuk menentukan posisi perbedaan konten terakhir dari dokumen. Menu : Merge – Last Difference atau Alt+End.
  • Go To, berfungsi memindahkan posisi kursor ke nomor baris atau nomor perbedaan, diisikan pada jendela dialog berikut:
    Gambar 10. Kotak Dialog Go toPilihan File – Left atau Right digunakan untuk menentukan panel pencarian. Go to what – Line atau Difference untuk menentukan pencarian berdasarkan nomor baris atau berdasarkan nomor perbedaan. Menu : Edit – Go to atau tombol Ctrl+G.

Penggabungan (merging)

Penggabungan (merging) merupakan proses penyalinan (copy) teks dari satu panel ke panel lain. Sebelum melakukan proses penggabungan pastikan bahwa panel telah menampilkan isi file pada posisi terkini. Pilihan Automatic rescan pada Option – Editor dapat digunakan untuk melakukan rescanning file secara otomatis atau dapat pula menggunakan fungsi refresh pada menu Edit (tombol F5).

Fungsi penggabungan (Merge Function) secara implisit dapat melakukan pemilihan perbedaan berdasarkan lokasi kursor atau pilihan teks, selanjutnya proses penggabungan dapat dilakukan dengan pilihan sebagai berikut:

  • Copy Right, untuk menggabungkan satu atau lebih perbedaan pada panel kiri ke panel kanan. Secara sederhana proses yang dilakukan adalah mengganti teks yang berbeda dari panel sumber ke panel tujuan. Menu : Merge – Copy to Right (Alt+Right).
  • Copy left, untuk menggabungkan perbedaan dari panel sebelah kanan ke panel kiri. Menu : Menu – Copy to Left (Alt+Left).
  • Copy Right and Advance, untuk menggabungkan perbedaan dari panel kiri ke panel kanan, dilanjutkan dengan memilih perbedaan berikutnya (jika ada). Perintah ini sama dengan perintah Copy Right kemudian dilanjutkan dengan perintah Next Difference dalam satu tahap proses. Menu : Ctrl+Alt+Right.
  • Copy Left and Advance, untuk menggabungkan perbedaan dari panel kanan ke panel kiri, dilanjutkan dengan memilih perbedaan berikutnya (jika ada). Menu : Ctrl+Alt+Left.
  • All Right, untuk menggabungkan seluruh perbedaan dari panel kiri ke panel kanan. Digunakan untuk melakukan sinkronisasi dua file dengan sekali perintah.
  • All Left, untuk menggabungkan seluruh perbedaan dari panel kanan ke panel kiri.

Conflict File

WinMerge dapat menyelesaikan file yang mengalami konflik saat proses penggabungan (conflict files) yang timbul sebagai akibat adanya beberapa kontrol versi yang dihasilkan sistem selama proses penggabungan.

Conflict files terjadi saat proses penggabungan menemukan perbedaan yang tidak dapat diselesaikan oleh sistem secara otomatis.

Metode resolving conflict files yang digunakan adalah dengan membuat sebuah file yang berisi perbandingan konten (isi) dua file yang tidak lengkap. WinMerge memisahkan file konflik dalam berkas terpisah untuk ditampilkan pada Compare Window, selanjutnya dengan menggunakan fungsi compare dan merge dapat dilakukan penyesuaian konten.

Cetak Hasil Komparasi

Hasil komparasi file dapat dicetak dengan menggunakan menu File – Print. WinMerge menyandingkan setiap baris konten secara bersisian. Perbedaan konten ditandai dengan warna yang berbeda. Berikut adalah contoh print out komparasi file :

Gambar 11. Print Out

Penutup

Penulis menggunakan WinMerge sebagai salah satu tools untuk melakukan perbandingan atas perubahan source code aplikasi yang dikembangkan dengan menggunakan bahasa pemrograman Microsoft Visual FoxPro (format fie .prg). Dengan menggunakan WinMerge perbedaan pada source code dapat dengan mudah dan cepat ditemukan untuk dilakukan penyesuaian. Print out  hasil komparasi Penulis gunakan sebagai dokumentasi (bukti fisik) untuk kegiatan peremajaan program.

Referensi : Lifehacker | WinMerge
Tag: , , ,

2 Comments

Leave Comment
  1. Urip Hadi Wijaya says:

    Wah ilmunya tinggi kali nih, sampe gak nyangkut di otak, :D

  2. graziani says:

    Thanks atas tutorialnya

Write Comment

Your email will not be published. The marked label is required.