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). 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 
gzip 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 

 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.

 Perbedaan dengan format lain 

 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 
Berbagai 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.

 Pemulihan data yang rusak 
Data 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 

 tar: Digunakan untuk mengekstraksi arsip .tar.gz dengan perintah seperti tar -zxf file.tar.gz.
 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 

 bzip2: Memberikan rasio kompresi lebih kecil tetapi membutuhkan lebih banyak waktu dan memori.
 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 
Penelitian 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.

 Penggunaan gzip 
Berikut ini adalah beberapa sintaks yang bisa dilakukan dalam penggunaan gzip:

Sintaks umum untuk perintah gzip adalah sebagai berikut:gzip [OPTION]... [FILE]...Untuk mengompres satu file, jalankan perintah gzip diikuti dengan nama file:gzip NamaFileUntuk mengopres banyak file, bisa gunakan perintah berikut:gzip file1 file2 file3Untuk mengompres semua file dalam direktori yang diberikan, gunakan opsi -r:gzip -r directoryUntuk mendecompress file .gz, gunakan opsi -d:gzip -d NamaFile.gzUntuk mendekompresi banyak file sekaligus, berikan beberapa nama file dengan dipisahkan oleh spasi ke gzip sebagai argumen:gzip -d file1.gz file2.gz file3.gzKetika digunakan dengan opsi -d dan -r, gzip mendekompres semua file dalam direktori yang diberikan secara rekursif:gzip -dr directoryMasih ada beberapa sintaks dalam penggunaan gzip yang bisa dimanfaatkan.

 Referensi 

Kategori:Perangkat lunak lintas platform
Kategori:Format arsip