Lompat ke isi

Zip (ilmu komputer)

Ensiklopedia Pengetahuan Universitas Islam Sultan Agung
Revisi sejak 23 Agustus 2026 13.25 oleh Maintenance script (bicara | kontrib) (Impor teks terkontrol dari Wikipedia bahasa Indonesia; revisi 27836784; atribusi sumber disertakan.)
(beda) ← Revisi sebelumnya | Revisi terkini (beda) | Revisi selanjutnya → (beda)

Dalam ilmu komputer, zip adalah fungsi yang memetakan rangkap dari barisan menjadi barisan dari rangkap. Nama zip berasal dari bahasa Inggris zipping atau zipper (ritsleting) yang secara selang-seling menggabungkan dua barisan yang terpisah. Inversi fungsi ini disebut unzip.

Contoh

Misalkan ada tiga kata ia, tuk, dan palu (2, 3, dan 4 karakter). Misalkan pula menandakan jumlah karakter terbanyak dari ketiganya, yaitu =4 (kata palu). Hasil operasi zip terhadap ia, tuk, dan palu adalah barisan berisi 4 rangkap berikut:

(i,t,p),(a,u,a),(#,k,l),(#,#,u)

dengan adalah simbol di luar alfabet yang awalnya dipakai.

Pada bahasa pemrograman tertentu seperti Haskell, fungsi ini hanya mengembalikan sebanyak jumlah karakter terpendek, yaitu =2 (kata ia):


Definisi

Misalkan Σ adalah alfabet dan adalah simbol di luar Σ.

Misalkan adalah kata (barisan berhingga) yang tersusun dari anggota Σ. Misalkan pula adalah panjang maksimum kata, yaitu maksimum dari

Hasil operasi zip dari kata-kata tersebut adalah barisan berhingga dari rangkap- yang disusun dari anggota , dengan kata lain anggota dari :

(x1,y1,z1,,(x2,y2,z2,),,(x,y,z,),

dengan adalah untuk dan adalah tiap kata.

Operasi zip terhadap disimbolkan sebagai atau . Inversi operasi zip disimbolkan sebagai .

Variasi operasi zip yang hanya mengembalikan dengan panjang minimum kata bisa didefinisikan sebagai berikut:

(x1,y1,z1,,(x2,y2,z2,),,(x_,y_,z_,)

dengan _ adalah panjang minimum dari kata-kata yang diberikan. Variasi ini menghindari anggota tambahan , tetapi menghapus informasi tentang barisan masukan setelah ke-_.

Dalam bahasa pemrograman

Fungsi zip tersedia dalam beberapa bahasa pemrograman dan biasa disebut zip. Dalam dialek Lisp, operasi zip bisa dilakukan dengan fungsi map yang diterapkan terhadap daftar yang diinginkan. Fungsi map dalam Lisp bersifat variadik sehingga bisa menerima banyak argumen. Berikut contoh dalam bahasa Clojure:


Bahasa-bahasa seperti Python memberikan fungsi zip(). Python versi lawas (2.x) membolehkan pemetaan dengan None untuk menghasilkan efek yang sama. Fungsi zip() dengan * melakukan operasi unzip.

Contoh berikut berlaku untuk Python 2.x. Terdapat perbedaan antara versi 2 dan 3 terhadap hasil dari fungsi zip(), yaitu sebagai daftar (versi 2) dan objek malas (versi 3).


Haskell memiliki metode untuk operasi zip, tetapi wajib menggunakan fungsi khusus untuk tiap ariti (misal zip untuk dua daftar, zip3 untuk tiga daftar, dst.); selain itu, fungsi unzip dan unzip3 juga tersedia untuk operasi unzip.


Perbandingan bahasa

Berikut daftar bahasa yang mendukung operasi zip:


Lihat pula

Referensi

Sumber dan atribusi

Konten artikel ini diadaptasi dari Wikipedia bahasa Indonesia, revisi 27836784 (2025-09-18T00:47:47Z), yang tersedia berdasarkan lisensi Creative Commons Atribusi-BerbagiSerupa (CC BY-SA). Mohon gunakan konten ini secara bijak serta sesuai dengan ketentuan lisensi yang berlaku.