Bandingkan Teks Online — Diff Dua Teks
Bandingkan versi kode, kontrak, dan artikel, lalu visualisasikan setiap perubahan dengan kode warna.
Untuk apa alat ini
Perbedaan terlihat dalam hitungan detik
Diff baris dan karakter
Visualisasikan perubahan di tingkat baris dan tingkat karakter dalam setiap baris yang dimodifikasi.
100% privat
Perbandingan terjadi di browser Anda. Teks tidak pernah dikirim ke server mana pun.
Algoritma Myers
Implementasi algoritma Myers diff O(n+d), algoritma yang sama yang digunakan git secara internal.
Instan
Hasil muncul saat Anda menempel teks, tanpa perlu menekan tombol konversi.
Cara kerjanya
Tiga langkah, tanpa kerumitan
Tempel dua teks
Masukkan teks asli di panel kiri dan teks yang sudah dimodifikasi di panel kanan. Keduanya bisa berupa kode, dokumen, atau teks biasa apa pun.
Visualisasikan perbedaannya
Baris yang ditambahkan ditampilkan dengan warna hijau, baris yang dihapus dengan warna merah, dan baris yang dimodifikasi memperlihatkan perubahan tepat hingga tingkat karakter.
Analisis perubahannya
Navigasi antar perbedaan menggunakan tombol sebelumnya dan berikutnya. Lihat ringkasan baris yang ditambahkan, dihapus, dan tidak berubah.
FAQ
Ada pertanyaan?
Algoritma diff modern didasarkan pada komputasi LCS (Longest Common Subsequence). Diberikan dua teks A dan B, algoritma menemukan urutan baris terpanjang yang muncul di keduanya dengan urutan yang sama. Baris dari A yang tidak termasuk LCS ditandai sebagai dihapus (merah), sedangkan baris dari B yang tidak termasuk ditandai sebagai ditambahkan (hijau). Algoritma Hunt-McIlroy tahun 1975 yang digunakan pada perintah diff Unix asli memformalkan pendekatan ini.
Hijau menandakan baris yang ditambahkan dalam teks baru yang tidak ada di teks asli. Merah menandakan baris yang dihapus dari teks asli dan tidak lagi ada. Kuning atau tanpa warna menandakan baris yang tidak berubah (konteks). Dalam mode diff per karakter, karakter baru dalam baris yang dimodifikasi disorot dengan hijau tua, sedangkan karakter yang dihapus disorot dengan merah tua, sehingga perubahan tepat dalam baris terlihat jelas.
Diff baris per baris memperlakukan setiap baris sebagai unit atomik: sebuah baris ada atau tidak ada, persis seperti yang dilakukan git diff. Cara ini ideal untuk kode di mana perubahan terjadi di seluruh baris. Diff karakter per karakter beroperasi di dalam setiap baris yang dimodifikasi dan menunjukkan karakter atau kata mana yang berubah. Cara ini lebih berguna untuk prosa, kontrak, atau teks di mana perubahan adalah suntingan kecil di dalam paragraf.
Diff sangat penting dalam kontrol versi seperti git diff yang menampilkan perubahan sebelum commit, tinjauan kode seperti pull request di GitHub, perbandingan dokumen hukum antara versi, jurnalisme dan pemeriksaan fakta dengan membandingkan versi siaran pers, serta debugging dengan membandingkan output yang diharapkan dan aktual dalam pengujian. Diff juga digunakan dalam patch perangkat lunak karena file .patch adalah unified diff yang dapat diterapkan oleh git apply.
LCS (Longest Common Subsequence) adalah masalah menemukan subsequence terpanjang yang dimiliki bersama oleh dua urutan tanpa menyusun ulang elemen. Untuk diff teks, urutannya adalah baris-baris teks. LCS mewakili baris yang tidak berubah; semua yang tidak ada dalam LCS adalah perubahan. Algoritma pemrograman dinamis standar untuk LCS memiliki kompleksitas O(n kali m) di mana n dan m adalah panjang kedua urutan, meski algoritma yang lebih efisien seperti Myers diff tahun 1986 mencapai O(n ditambah d) di mana d adalah jumlah perbedaan.
Cara kerja diff teks: dari perintah Unix hingga git
Perintah diff diperkenalkan di Unix oleh Doug McIlroy pada tahun 1974 dan menjadi alat fundamental dalam ekosistem Unix. Algoritma aslinya yang diformalkan oleh Hunt dan McIlroy dalam makalah berjudul An Algorithm for Differential File Comparison pada tahun 1975 menghitung subsequence umum terpanjang antara dua file dan mengekspresikan perbedaannya sebagai kumpulan minimal operasi penyisipan dan penghapusan. Prinsip matematis ini tetap menjadi fondasi semua alat diff modern.
Pada tahun 1986, Eugene Myers menerbitkan algoritma yang lebih baik yang mengurangi kompleksitas menjadi O(n+d) di mana d adalah jumlah perbedaan, sehingga jauh lebih cepat ketika file serupa. Inilah algoritma yang digunakan Git secara internal untuk git diff, git log -p, dan tampilan pull request di GitHub serta GitLab. Format unified diff dengan baris yang diawali tanda plus, minus, dan spasi telah menjadi standar universal untuk berbagi patch antar proyek perangkat lunak.
Di luar kode, diff memiliki aplikasi dalam jurnalisme data untuk membandingkan versi dokumen resmi, hukum untuk mendeteksi perubahan antar versi kontrak, dan sains untuk membandingkan urutan genomik. Convertir.ai mengimplementasikan algoritma Myers diff sepenuhnya di browser, dengan visualisasi tingkat baris dan tingkat karakter, tanpa mengirim teks ke server mana pun. Ini sangat relevan untuk membandingkan dokumen rahasia seperti kontrak, kode kepemilikan, atau data sensitif.