Gzip
gzip adalah format file dan aplikasi perangkat lunak yang digunakan untuk kompresi dan dekompresi file. Program ini diciptakan oleh Jean-loup Gailly dan Mark Adler sebagai pengganti perangkat lunak compress pada sistem Unix awal, dan dirancang untuk digunakan oleh GNU (dari sinilah huruf "g" dalam gzip berasal)[1]. Versi pertama (0.1) dirilis pada 31 Oktober 1992, dan versi 1.0 menyusul pada Februari 1993.
Dekompresi format gzip dapat diimplementasikan sebagai algoritma streaming, yang merupakan fitur penting untuk protokol Web, pertukaran data, dan aplikasi ETL (menggunakan pipes standar).
Format file
suntinggzip didasarkan pada algoritma DEFLATE, kombinasi LZ77 dan Huffman coding. Algoritma ini dirancang untuk menggantikan algoritma kompresi seperti LZW yang dilindungi paten.
Struktur format file gzip:
sunting- Header 10-byte: Berisi magic number (1f 8b), metode kompresi (08 untuk DEFLATE), header flags, timestamp, dan informasi sistem operasi.
- Header tambahan opsional: Bisa mencakup nama file asli, komentar, CRC-32 untuk bagian header, dan lainnya.
- Body: Payload terkompresi menggunakan DEFLATE.
- Trailer 8-byte: CRC-32 checksum dan panjang data asli tanpa kompresi.
gzip sering digunakan bersama program tar untuk mengompresi beberapa file menjadi satu arsip, menghasilkan file dengan ekstensi .tar.gz
atau .tgz
[2].
Perbedaan dengan format lain
sunting- ZIP: Memungkinkan pengarsipan file tanpa alat eksternal tetapi kurang kompak dibandingkan tarball terkompresi.
- compress: Menggunakan algoritma LZW dan memiliki ekstensi
.Z
. Alat gunzip mampu mendekompresi file ini.
Implementasi
suntingBerbagai implementasi gzip telah dibuat, di antaranya:
- GNU Project: Menggunakan algoritma LZ77.
- BSD (FreeBSD, NetBSD, DragonFly BSD): Implementasi berlisensi BSD yang kompatibel dengan zlib.
- OpenBSD: Menggunakan program compress dengan dukungan untuk format gzip.
Alternatif kompresi:
- Zopfli: Kompatibel dengan gzip, memberikan rasio kompresi lebih baik dengan waktu kompresi yang lebih lama.
- pigz: Ditulis oleh Mark Adler, menggunakan banyak CPU untuk mempercepat kompresi[3].
Pemulihan data yang rusak
suntingData pada blok sebelum kerusakan biasanya dapat dibaca sepenuhnya. Data dari blok yang tidak hancur setelah kerusakan dapat dipulihkan melalui langkah tambahan.
Derivatif dan penggunaan lain
sunting- tar: Digunakan untuk mengekstraksi arsip
.tar.gz
dengan perintah sepertitar -zxf file.tar.gz
[4]. - zlib: Abstraksi algoritma DEFLATE yang mendukung format gzip dan stream data ringan.
- HTTP Compression: Format gzip digunakan untuk mempercepat pengiriman konten Web, sebagai salah satu dari tiga format standar untuk HTTP Compression.
- PNG: Menggunakan zlib DEFLATE secara internal.
Pengganti populer:
sunting- bzip2: Memberikan rasio kompresi lebih kecil tetapi membutuhkan lebih banyak waktu dan memori[5].
- AdvanceCOMP, Zopfli, libdeflate, 7-Zip: Menghasilkan file yang kompatibel dengan gzip dengan rasio kompresi lebih baik, meskipun membutuhkan waktu proses lebih lama.
Penelitian dan Inovasi
suntingPenelitian pada 2023 menunjukkan bahwa teknik kompresi sederhana seperti gzip dapat dikombinasikan dengan algoritma k-nearest-neighbor untuk klasifikasi teks, memberikan alternatif menarik terhadap jaringan neural untuk pemrosesan bahasa alami dengan kebutuhan sumber daya rendah, termasuk tanpa memerlukan perangkat keras GPU[6].
Penggunaan gzip
suntingBerikut ini adalah beberapa sintaks yang bisa dilakukan dalam penggunaan gzip[2]:
Sintaks umum untuk perintah gzip adalah sebagai berikut:
gzip [OPTION]... [FILE]...
Untuk mengompres satu file, jalankan perintah gzip diikuti dengan nama file:
gzip NamaFile
Untuk mengopres banyak file, bisa gunakan perintah berikut:
gzip file1 file2 file3
Untuk mengompres semua file dalam direktori yang diberikan, gunakan opsi -r
:
gzip -r directory
Untuk mendecompress file .gz
, gunakan opsi -d
:
gzip -d NamaFile.gz
Untuk mendekompresi banyak file sekaligus, berikan beberapa nama file dengan dipisahkan oleh spasi ke gzip sebagai argumen:
gzip -d file1.gz file2.gz file3.gz
Ketika digunakan dengan opsi -d
dan -r
, gzip mendekompres semua file dalam direktori yang diberikan secara rekursif:
gzip -dr directory
Masih ada beberapa sintaks dalam penggunaan gzip yang bisa dimanfaatkan.
Referensi
sunting- ^ "The gzip home page". www.gzip.org. Diakses tanggal 2024-12-15.
- ^ a b xsand (2019-09-02). "Tutorial Penggunaan Perintah Gzip di Linux Terminal". LinuxID. Diakses tanggal 2024-12-15.
- ^ "pigz - Parallel gzip". zlib.net. Diakses tanggal 2024-12-15.
- ^ Zivanov, Sara (2024-02-12). "How to Extract or Unzip .tar.gz Files in Linux | phoenixNAP KB". Knowledge Base by phoenixNAP (dalam bahasa Inggris). Diakses tanggal 2024-12-15.
- ^ "7-zip vs bzip2 vs gzip". web.archive.org. 2014-11-01. Diakses tanggal 2024-12-15.
- ^ Jiang, Zhiying; Yang, Matthew; Tsirlin, Mikhail; Tang, Raphael; Dai, Yiqin; Lin, Jimmy (2023-07). Rogers, Anna; Boyd-Graber, Jordan; Okazaki, Naoaki, ed. ""Low-Resource" Text Classification: A Parameter-Free Classification Method with Compressors". Findings of the Association for Computational Linguistics: ACL 2023. Toronto, Canada: Association for Computational Linguistics: 6810–6828. doi:10.18653/v1/2023.findings-acl.426.