Utilia

Bandingkan Kode (Diff Checker)

Bandingkan dua versi kode berdampingan atau inline, dengan syntax highlighting, nomor baris, opsi spasi, dan unified diff yang bisa disalin atau diunduh.

Cara membandingkan dua potong kode

  1. Tempel versi lama di Kode asli dan versi baru di Kode yang diubah.
  2. Pilih Bahasa, atau biarkan Deteksi otomatis: alat ini menebak dari kodenya dan menampilkan bahasa yang terdeteksi di samping statistik.
  3. Pilih Tampilan: Berdampingan atau Inline (unified).
  4. Atur opsi yang Anda perlukan: Abaikan spasi dan indentasi, Abaikan huruf besar/kecil, Sorot kata yang berubah, dan Tampilkan perubahan saja (3 baris konteks).
  5. Klik Bandingkan. Setelah perbandingan pertama, hasilnya mengikuti suntingan Anda saat Anda mengetik.
  6. Klik Salin sebagai unified diff atau Unduh .diff untuk memakai ulang perubahan itu sebagai patch.

Tukar sisi menukar kedua versi, sehingga penambahan menjadi penghapusan dan sebaliknya.

Membaca diff

Baris yang dihapus diberi warna merah dan berasal dari versi asli; baris yang ditambahkan diberi warna hijau dan berasal dari versi baru. Setiap baris tetap memakai nomor baris dari file-nya sendiri, sehingga Anda bisa langsung melompat ke baris itu di editor.

  • Berdampingan menampilkan kedua file dalam dua kolom bernomor. Baris yang diubah berada sejajar dengan versi barunya. Dengan Sorot kata yang berubah, kata-kata yang berubah di dalam baris itu ditandai; tanpa opsi ini, kedua baris tetap memakai warna sintaksis lengkapnya.
  • Inline (unified) menampilkan satu kolom seperti di code review: untuk setiap blok yang berubah, baris yang dihapus (−) muncul lebih dulu, lalu baris yang ditambahkan (+), dengan nomor baris lama maupun baru.
  • Tampilkan perubahan saja (3 baris konteks) melipat bagian panjang yang tidak berubah menjadi penanda “⋯ N baris tidak berubah”, sehingga file besar jauh lebih mudah ditinjau.

Baris statistik menghitung baris yang ditambahkan, dihapus, dan tidak berubah.

Syntax highlighting

Pewarnaan sintaksis dilakukan di browser Anda dengan highlight.js. Hanya tata bahasa (grammar) dari bahasa yang dipilih yang dimuat, saat Anda pertama kali membandingkan, sehingga halaman tetap ringan. Bahasa yang didukung antara lain JavaScript, TypeScript, Python, Java, C#, C / C++, Go, Rust, PHP, Ruby, CSS, HTML / XML, JSON, YAML, SQL, Bash / Shell, dan Markdown. Deteksi otomatis memakai petunjuk sederhana (kata kunci, tanda kurung, parsing JSON); jika tebakannya salah, pilih bahasanya sendiri atau pilih Teks biasa.

Spasi, indentasi, dan akhir baris

Abaikan spasi dan indentasi membandingkan baris setelah spasi di awal dan akhir dipangkas serta deretan spasi dan tab diringkas, sehingga file yang indentasinya diubah dari 2 ke 4 spasi atau dari tab ke spasi tidak menunjukkan perbedaan. Akhir baris Windows (CRLF) dan Unix (LF) dinormalkan sebelum dibandingkan, sehingga file yang hanya berubah akhir barisnya dilaporkan identik. Ingat bahwa spasi bisa berpengaruh di Python, YAML, dan Makefile: matikan opsi ini jika indentasi bermakna.

Format unified diff

Patch yang diekspor memakai format unified standar yang dibaca oleh git apply, patch, dan alat code review: header berisi dua nama file, lalu hunk yang diawali @@ -a,b +c,d @@ dan tiga baris konteks di sekitar setiap perubahan. File-nya diberi nama original dan changed dengan ekstensi sesuai bahasanya.

Pertanyaan yang sering diajukan

Apakah kode saya diunggah ke server?

Tidak. Perbandingan maupun pewarnaan sintaksis berjalan secara lokal di browser Anda; kode tidak pernah meninggalkan perangkat Anda.

Apa bedanya dengan alat pembanding teks?

Alat ini memakai mesin perbandingan baris demi baris yang sama, tetapi menambahkan syntax highlighting, tampilan unified, pelipatan konteks, dan penanganan spasi yang disesuaikan untuk kode.

Mengapa dua baris ditandai berubah padahal terlihat sama?

Kemungkinan keduanya berbeda pada karakter tak terlihat: spasi di akhir baris, tab dan spasi, atau non-breaking space. Centang Abaikan spasi dan indentasi untuk memastikannya.

Bisakah patch yang diunduh diterapkan dengan Git?

Bisa. Simpan file-nya lalu jalankan patch original.js < changes.diff, atau sesuaikan nama file di header dan gunakan git apply.

Seberapa besar cuplikan kode yang bisa dibandingkan?

Beberapa ribu baris dibandingkan dengan cepat. Jika dua file yang sangat besar benar-benar berbeda, alat ini berhenti setelah beberapa detik dan meminta Anda membandingkan bagian yang lebih kecil.