Format arsip .tar.bz2 adalah format arsip terkompresi yang banyak digunakan yang menggabungkan format tar (Tape Archive) dengan algoritma kompresi bzip2. Format ini umumnya digunakan untuk mendistribusikan dan mencadangkan file pada sistem mirip Unix, karena menyediakan kompresi yang efisien dan mempertahankan izin file, kepemilikan, dan struktur direktori.
Format tar awalnya dikembangkan untuk menyimpan file pada pita magnetik, tetapi sejak itu telah diadaptasi untuk digunakan pada disk drive. Arsip tar terdiri dari serangkaian rekaman file, masing-masing berisi metadata tentang file (seperti nama, ukuran, dan izinnya) diikuti oleh data file itu sendiri. File dalam arsip tar digabungkan bersama, tanpa kompresi tambahan.
Bzip2 adalah algoritma kompresi data lossless yang menggunakan transformasi Burrows-Wheeler dan pengkodean Huffman untuk mencapai rasio kompresi yang tinggi. Ini dikembangkan oleh Julian Seward pada tahun 1996 sebagai alternatif yang lebih efisien untuk algoritma kompresi gzip. Bzip2 mengompresi data dalam blok dengan ukuran tetap (biasanya 900 KB), yang memungkinkan rasio kompresi yang lebih baik daripada gzip, terutama untuk file besar.
Ketika arsip tar dikompresi dengan bzip2, file yang dihasilkan memiliki ekstensi file .tar.bz2 atau .tbz2. Proses kompresi dilakukan setelah arsip tar dibuat, sehingga metadata file asli dipertahankan. Untuk mengekstrak file dari arsip .tar.bz2, algoritma dekompresi bzip2 pertama kali diterapkan ke seluruh arsip, dan kemudian arsip tar yang dihasilkan diproses untuk mengekstrak file individual.
Format .tar.bz2 memiliki beberapa keunggulan dibandingkan format arsip lainnya. Pertama, ini memberikan tingkat kompresi yang tinggi, yang mengurangi kebutuhan penyimpanan dan mempercepat transfer file melalui jaringan. Kedua, ini mempertahankan metadata file asli, termasuk izin dan kepemilikan, yang penting untuk menjaga integritas file. Ketiga, format tar memungkinkan penggabungan beberapa arsip dengan mudah, yang menyederhanakan operasi pencadangan dan pemulihan.
Namun, ada juga beberapa keterbatasan pada format .tar.bz2. Salah satunya adalah proses kompresi dan dekompresi bisa relatif lambat, terutama untuk arsip besar. Ini karena bzip2 adalah algoritma yang lebih intensif komputasi daripada metode kompresi lain seperti gzip. Keterbatasan lainnya adalah format .tar.bz2 tidak didukung seluas format arsip lainnya, seperti .zip, yang dapat menyebabkan masalah kompatibilitas saat berbagi file di berbagai sistem.
Terlepas dari keterbatasan ini, format .tar.bz2 tetap menjadi pilihan populer untuk mengarsipkan dan mendistribusikan file pada sistem mirip Unix. Ini didukung oleh sebagian besar sistem operasi modern dan dapat dengan mudah dibuat dan diekstrak menggunakan alat baris perintah seperti tar dan bzip2. Banyak paket perangkat lunak dan distribusi kode sumber didistribusikan sebagai arsip .tar.bz2, menjadikannya format penting yang harus dipahami oleh pengembang dan administrator sistem.
Selain penggunaannya dalam distribusi perangkat lunak, format .tar.bz2 juga umum digunakan untuk pencadangan dan penyimpanan arsip jangka panjang. Kemampuannya untuk mempertahankan metadata file dan struktur direktori membuatnya sangat cocok untuk membuat cadangan sistem penuh yang dapat dengan mudah dipulihkan jika terjadi kehilangan data atau kegagalan sistem. Namun, untuk pencadangan skala besar, format lain seperti .tar.gz atau .7z mungkin lebih disukai karena kecepatan kompresi dan dekompresinya yang lebih cepat.
Saat bekerja dengan arsip .tar.bz2, penting untuk memastikan bahwa alat dan opsi yang benar digunakan untuk membuat dan mengekstrak arsip. Perintah tar digunakan untuk membuat dan mengekstrak arsip tar, sedangkan perintah bzip2 digunakan untuk mengompresi dan mendekompresi data. Untuk membuat arsip .tar.bz2, perintah tar digunakan dengan opsi -c (buat), -j (kompresi bzip2), dan -f (nama file), diikuti dengan nama file atau direktori yang akan diarsipkan. Misalnya:
```bash tar cjf archive.tar.bz2 directory/ ```
Untuk mengekstrak arsip .tar.bz2, perintah tar digunakan dengan opsi -x (ekstrak), -j (dekompresi bzip2), dan -f (nama file), diikuti dengan nama file arsip. Misalnya:
```bash tar xjf archive.tar.bz2 ```
Dimungkinkan juga untuk melihat pratinjau isi arsip .tar.bz2 tanpa mengekstraknya, menggunakan opsi -t (daftar) sebagai ganti -x. Ini dapat berguna untuk memverifikasi isi arsip sebelum mengekstraknya.
Saat membuat arsip .tar.bz2 untuk distribusi atau penyimpanan jangka panjang, penting untuk mempertimbangkan kompatibilitas arsip dengan sistem dan versi alat tar dan bzip2 yang berbeda. Beberapa versi lama dari alat ini mungkin tidak mendukung semua fitur atau opsi yang digunakan dalam versi yang lebih baru, yang dapat menyebabkan masalah saat mencoba mengekstrak arsip. Umumnya disarankan untuk menggunakan versi stabil terbaru dari tar dan bzip2 saat membuat arsip, dan untuk menguji arsip pada berbagai sistem untuk memastikan kompatibilitas.
Pertimbangan lain saat menggunakan arsip .tar.bz2 adalah tingkat kompresi yang digunakan. Bzip2 mendukung tingkat kompresi mulai dari 1 (tercepat, kompresi paling sedikit) hingga 9 (terlambat, kompresi paling banyak), dengan tingkat default adalah 9. Menggunakan tingkat kompresi yang lebih tinggi akan menghasilkan file arsip yang lebih kecil, tetapi juga akan memakan waktu lebih lama untuk mengompresi dan mendekompresi. Dalam beberapa kasus, mungkin lebih efisien menggunakan tingkat kompresi yang lebih rendah untuk mencapai waktu kompresi dan dekompresi yang lebih cepat, meskipun file arsip yang dihasilkan sedikit lebih besar.
Singkatnya, format arsip .tar.bz2 adalah alat yang kuat dan fleksibel untuk mengarsipkan dan mendistribusikan file pada sistem mirip Unix. Kombinasi format tar untuk mempertahankan metadata file dan algoritma bzip2 untuk kompresi yang efisien membuatnya sangat cocok untuk berbagai kasus penggunaan, dari distribusi perangkat lunak hingga pencadangan sistem. Meskipun memiliki beberapa keterbatasan dalam hal kecepatan dan kompatibilitas, dukungannya yang luas dan kemampuannya untuk menangani hierarki file yang besar dan kompleks menjadikannya format penting untuk dipahami dan digunakan di banyak lingkungan komputasi.
Kompresi file mengurangi redundansi sehingga informasi yang sama membutuhkan lebih sedikit bit. Batas atasnya ditentukan oleh teori informasi: untuk kompresi lossless, batasnya adalah entropi sumber (lihat teorema pengkodean sumber Shannon source coding theorem dan makalah aslinya tahun 1948 “A Mathematical Theory of Communication”). Untuk kompresi lossy, kompromi antara laju bit dan kualitas dijelaskan oleh teori rate–distortion.
Sebagian besar kompresor memiliki dua tahap. Pertama, sebuah model memprediksi atau mengekspos struktur dalam data. Kedua, sebuah coder mengubah prediksi tersebut menjadi pola bit yang hampir optimal. Keluarga pemodelan klasik adalah Lempel–Ziv LZ77 (1977) dan LZ78 (1978) mendeteksi substring berulang lalu memancarkan referensi alih-alih byte mentah. Di sisi pengodean, pengodean Huffman (lihat makalah aslinya 1952) memberikan kode lebih pendek untuk simbol yang lebih mungkin. Pengodean aritmetika dan range coding lebih halus lagi dan mendekati batas entropi, sementara Asymmetric Numeral Systems (ANS) modern mencapai rasio serupa dengan implementasi berbasis tabel yang cepat.
DEFLATE (dipakai oleh gzip, zlib, dan ZIP) menggabungkan LZ77 dengan pengodean Huffman. Spesifikasinya bersifat publik: DEFLATE RFC 1951, pembungkus zlib RFC 1950, dan format file gzip RFC 1952. Gzip dibingkai untuk streaming dan tidak menyediakan akses acak. Gambar PNG menstandarkan DEFLATE sebagai satu-satunya metode kompresi (maksimal jendela 32 KiB) menurut spesifikasi PNG “Compression method 0… deflate/inflate… at most 32768 bytes” dan W3C/ISO PNG 2nd Edition.
Zstandard (zstd): kompresor serbaguna modern yang dirancang untuk rasio tinggi dengan dekompresi sangat cepat. Formatnya didokumentasikan dalam RFC 8878 (serta cermin HTML-nya) dan spesifikasi referensi di GitHub. Seperti gzip, frame dasar tidak menargetkan akses acak. Salah satu keunggulan zstd adalah kamus: sampel kecil dari korpus Anda yang membuat banyak file kecil atau serupa terkompresi jauh lebih baik (lihat dokumentasi kamus python-zstandard dan contoh karya Nigel Tao). Implementasi menerima kamus “unstructured” maupun “structured” (diskusi).
Brotli: dioptimalkan untuk konten web (mis. font WOFF2, HTTP). Ia memadukan kamus statis dengan inti LZ+entropi mirip DEFLATE. Spesifikasinya adalah RFC 7932, yang juga menyebut jendela geser 2WBITS−16 dengan WBITS [10, 24] (1 KiB−16 B hingga 16 MiB−16 B) dan bahwa ia tidak memberikan akses acak. Brotli sering mengalahkan gzip pada teks web sambil tetap cepat saat decoding.
Kontainer ZIP: ZIP adalah arsip file yang dapat menyimpan entri dengan berbagai metode kompresi (deflate, store, zstd, dll.). Standar de facto-nya adalah APPNOTE PKWARE (lihat portal APPNOTE, salinan yang di-host, serta ringkasan LC ZIP File Format (PKWARE) / ZIP 6.3.3).
LZ4 menargetkan kecepatan mentah dengan rasio sedang. Lihat halaman proyeknya (“extremely fast compression”) dan format frame. Cocok untuk cache in-memory, telemetri, atau jalur panas yang memerlukan dekompresi hampir secepat RAM.
XZ / LZMA mengejar kerapatan tinggi dengan waktu kompres yang relatif lambat. XZ adalah kontainer; pekerjaan berat biasanya dilakukan LZMA/LZMA2 (pemodelan mirip LZ77 + range coding). Lihat format .xz, spesifikasi LZMA (Pavlov), dan catatan kernel Linux tentang XZ Embedded. XZ biasanya lebih kecil dari gzip dan sering bersaing dengan codec modern yang berorientasi rasio tinggi, walau waktu enkodenya lebih lama.
bzip2 menggunakan Transformasi Burrows–Wheeler (BWT), move-to-front, RLE, dan pengodean Huffman. Biasanya lebih kecil daripada gzip namun lebih lambat; lihat manual resminya dan halaman manual (Linux).
Ukuran “jendela” penting. Referensi DEFLATE hanya bisa melihat ke belakang 32 KiB (RFC 1951) serta batas 32 KiB di PNG yang disebutkan di sini. Brotli memiliki jendela sekitar 1 KiB hingga 16 MiB (RFC 7932). Zstd menyetel jendela dan kedalaman pencarian lewat level (RFC 8878). Stream dasar gzip/zstd/brotli didesain untuk decoding sekuensial; format dasarnya tidak menjanjikan akses acak, meskipun kontainer (mis. indeks tar, framing berchunk, atau indeks khusus format) bisa menambahkannya.
Format di atas bersifat lossless: Anda bisa merekonstruksi byte yang sama persis. Codec media sering lossy: mereka membuang detail yang tak terlihat untuk mencapai bitrate lebih rendah. Pada gambar, JPEG klasik (DCT, kuantisasi, pengodean entropi) distandardisasi dalam ITU-T T.81 / ISO/IEC 10918-1. Di audio, MP3 (MPEG-1 Layer III) dan AAC (MPEG-2/4) menggunakan model persepsi dan transformasi MDCT (lihat ISO/IEC 11172-3, ISO/IEC 13818-7, dan ringkasan MDCT di sini). Lossy dan lossless dapat berdampingan (mis. PNG untuk aset UI; codec web untuk gambar/video/audio).
Teori Shannon 1948 · Rate–distortion · Pengodean Huffman 1952 · Pengodean aritmetika · Range coding · ANS. Format DEFLATE · zlib · gzip · Zstandard · Brotli · LZ4 frame · Format XZ. Tumpukan BWT Burrows–Wheeler (1994) · manual bzip2. Media JPEG T.81 · MP3 ISO/IEC 11172-3 · AAC ISO/IEC 13818-7 · MDCT.
Intinya: pilih kompresor yang cocok dengan data dan batasan Anda, ukur pada input nyata, dan jangan lupakan keuntungan dari kamus dan framing yang cerdas. Dengan pasangan yang tepat Anda mendapat file lebih kecil, transfer lebih cepat, dan aplikasi lebih responsif tanpa mengorbankan kebenaran atau portabilitas.
Kompresi file adalah proses yang mengurangi ukuran file atau beberapa file, biasanya untuk menyimpan ruang penyimpanan atau mempercepat transmisi melalui jaringan.
Kompresi file berfungsi dengan mengidentifikasi dan menghilangkan redundansi dalam data. Ia menggunakan algoritma untuk mengkodekan data asli dalam ruang yang lebih kecil.
Dua jenis utama kompresi file adalah kompresi tanpa kehilangan (lossless) dan kompresi dengan kehilangan (lossy). Kompresi lossless memungkinkan file asli untuk dipulihkan dengan sempurna, sedangkan kompresi lossy memungkinkan pengurangan ukuran yang lebih signifikan dengan biaya beberapa kehilangan kualitas data.
Contoh populer dari alat kompresi file adalah WinZip, yang mendukung beberapa format kompresi termasuk ZIP dan RAR.
Dengan kompresi tanpa kehilangan, kualitas tetap tidak berubah. Namun, dengan kompresi dengan kehilangan, dapat terjadi penurunan kualitas yang cukup terlihat karena menghilangkan data yang kurang penting untuk mengurangi ukuran file lebih signifikan.
Ya, kompresi file aman dari segi integritas data, terutama dengan kompresi tanpa kehilangan. Namun, seperti file lainnya, file yang dikompresi bisa menjadi target malware atau virus, jadi selalu penting untuk memiliki perangkat lunak keamanan yang terpercaya.
Hampir semua jenis file dapat dikompresi, termasuk file teks, gambar, audio, video, dan file perangkat lunak. Namun, level kompresi yang dapat dicapai bisa sangat bervariasi di antara jenis file.
File ZIP adalah jenis format file yang menggunakan kompresi tanpa kehilangan untuk mengurangi ukuran satu atau lebih file. Beberapa file dalam sebuah file ZIP efektif digabungkan menjadi satu file, yang juga memudahkan berbagi.
Secara teknis, ya, meskipun pengurangan ukuran tambahan mungkin minimal atau bahkan kontraproduktif. Melakukan kompresi pada file yang sudah dikompresi terkadang bisa meningkatkan ukurannya karena metadata yang ditambahkan oleh algoritma kompresi.
Untuk melakukan dekompresi file, biasanya Anda memerlukan alat dekompresi atau unzipping, seperti WinZip atau 7-Zip. Alat-alat ini dapat mengekstrak file asli dari format yang dikompresi.