A. Pendahuluan
Implementasi dari proses kompresi data dapat dengan mudah ditemukan di sekitar kita. Baik
itu musik yang didengarkan, streaming film dari internet, serta mengunduh file yang sering kali
dikompresi sehingga dapat dimuat di perangkat penyimpanan kita. Kompresi data juga menjadi
pertimbangan penting dalam mencadangkan dan mengarsipkan file penting, terutama ketika
diunggah melalui internet [1]. Kompresi data juga merupakan bagian penting dari keamanan
informasi, karena data yang di kompresi jauh lebih aman dan mudah untuk di proses lebih lanjut,
teknik kompresi data yang efektif akan menghasilkan data yang aman, mudah dikomunikasikan
dan menghindari dari redudansi data. Ada dua jenis teknik algoritma kompresi yang sering
digunakan yaitu algoritma lossy dan algoritma lossless. Teknik ini dapat diterapkan pada format
data apa pun seperti file teks, audio, video, atau gambar [2].
b) lossless data-compression.
kompresi atau dekompresi, selama kesalahan proses tersebut tidak terlalu mengubah pola utama
atau informasi dari data yang dikompres, Hasil kompresi dengan teknik ini adalah file yang di
1
dekompresi tidak akan sama dengan data sebelum di kompresi. Teknik kompresi ini biasanya
secara sempurna dari data terkompresi tanpa menghilangkan informasi. Artinya data sebelum
dikompres harus sama dengan data hasil dekompresi. Teknik ini biasanya digunakan untuk
rekaman database, file-file word prosessing dan data-data lain yang memerlukan proses kompresi
Kompresi data merupakan bagian dari Teori Informasi yang merupakan cabang ilmu
matematika. Teori ini muncul pada akhir 1940 dan dikembangkan pertama kali oleh Claude
Shannon di Laboratorium Bell. Dorongan pengembangan ilmu ini adalah berdasarkan beberapa
pertanyaan tentang apa itu informasi, termasuk bagaimana cara penyimpanan dan pengiriman
Dalam Teori Informasi digunakan istilah “entropy” yang diambil dari istilah Ilmu
hal ini informasi). Semakin tinggi nilai entropy sebuah message (informasi) berarti semakin
banyak simbol yang muncul dalam informasi tersebut. Dengan demikian nilai entropy berkaitan
Pada umumnya proses kompresi data meliputi pembacaan simbul, mengubah kode untuk
tiap-tiap simbul kemudian menuliskan simbul-simbul dengan kode yang baru. Jika proses
kompresi berjalan efektif, maka hasil file yang diperoleh dapat lebih kecil dari file aslinya.
2
Efektif tidaknya sistem kompresi data tergantung dari pemodelan dan pengkodean yang
digunakan. Model dan Kode yang digunakan dalam kompresi data dibentuk berdasarkan nilai
C. Algoritma Huffman
Algoritma Huffman merupakan salah satu dari Lossless data-compression, pada algoritma
ini semua jenis bentuk informasi, baik berupa tulisan, gambar maupun suara semuanya akan
disimbolkan menggunakan kode biner. David A. Huffman sebagai pembuat algoritma Huffman,
memberikan alternatif pilihan dalam pemampatan data yang dapat berguna dalam pengiriman
dan penyimpanan data. Pemampatan data tersebut, diperlukan transformasi atau perubahan
antara data asli dengan data hasil kompresi. Proses transformasi dalam bidang kompresi data
dapat dipadankan dengan proses enkripsi dalam bidang kriptografi. Sebagai salah satu algoritma
kompresi data yang cukup tua, algoritma Huffman memiliki prinsip-prinsip yang dapat
diaplikasikan dalam bidang enkripsi data walaupun perlu dilakukan beberapa adaptasi, terlebih
1. Baca semua karakter di dalam data untuk menghitung frekuensi kemunculan setiap
3
2. Gabungkan dua buah pohon yang mempunyai frekuensi terkecil pada sebuah akar. Akar
mempunyai frekuensi yang merupakan jumlah dari frekuensi dua buah pohon
penyusunnya.
3. Ulangi langkah 2 sampai hanya tersisa satu buah pohon Huffman. Agar pemilihan dua
pohon yang akan digabungkan berlangsung cepat, maka semua pohon yang ada selalu
4. Kodekan tiap karakter dengan sususan bit biner hasil dari pohon Huffman
5. Ganti sususan karakter (kalimat) awal dengan sususan bit biner yang dihasilkan dari
Ada dua jenis pengkodean Huffman: statis dan adaptif. Pada kode Huffman statis, Pohon
Huffman tetap sama di keseluruhan proses pengkodean, sementara pada kode Huffman adaptif,
Penerapan algoritma Huffman dalam kriptografi dapat dilakukan dengan beberapa metode
alternatif. Di antara cara-cara tersebut ada metode yang menghilangkan kompresi data teks demi
alasan keamanan dan ada yang tidak menghilangkan kompresi data teks. Namun secara umum
yang menjadi kunci untuk melakukan enkripsi dan dekripsi dalam algoritma Huffman ini adalah
Enkripsi merupakan bagian dari algoritma kriptografi yang akan merahasiakan informasi
dengan menyandikannya kedalam bentuk yang tidak dimengerti lagi maknanya. proses
mengganti susunan karakter menjadi susunan bit merupakan proses enkripsi yang dimiliki oleh
algoritma Huffman, selain untuk membuat file yang lebih kecil dari bentuk awal proses
peenggantian susunan karakter dengan sususan bit merupakan proses enkripsi [9].
4
Sebagai contoh, setiap karakter ASCII biasanya diwakili oleh 8 bits. Jadi misalnya suatu file
berisi deretan karakter “ABACAD” maka ukuran file tersebut adalah 6 x 8 bits = 48 bit atau 6
bytes. Jika setiap karakter tersebut di beri kode lain secara sembarang, misalkan A=1, B=00,
C=010, dan D=011, berarti hanya perlu file dengan ukuran 11 bits (10010101011), untuk
menentukan kode-kode pengganti dari karakter ASCII yang tersebut dengan kriteria bahwa kode
harus unik dan karakter yang sering muncul dibuat kecil jumlah bitnya, hal tersebut dapat
Dalam kode ASCII string 7 huruf “ABACCDA” akan membutuhkan ruang sebesar 56 bit
atau 7 byte, karena setiap 1 huruf menempati 8 bit atau 1 byte, maka susunan huruf
“ABACCDA” akan mempunyai ukuran file sebesar 7 byte. Dengan algoritma Huffman akan
dibentuk pohon binier Huffman, setiap karakter akan diganti dengan kode biner sebagai berikut
[10]:
5
Gambar 2. Pohon Huffman untuk karakter ABACCDA
Discrete Cosine Transform (DCT) merupakan bagian dari kelompok Lossy data-
compression, algoritma ini juga banyak digunakan dan pengolahan data image atau video. DCT
domain spasial ke domain frekuensi. Dalam pengolahan berbasis frekuensi membutuhkan waktu
yang lama namun memberikan hasil yang cukup menjanjikan, hal ini dikarenakan banyaknya
jumlah frekuensi yang diamati. Hal tersebut diatasi dengan perkembangan teknologi prosesor
yang makin canggih, sehingga proses pengolahan berbasis frekuensi dapat lebih cepat, terdapat 2
jenis DCT yaitu DCT dimensi 1 (DCT 1-D) dan DCT dimensi 2 (DCT 1-D), DCT 1-D berguna
untuk mengolah sinyal-sinyal dimensi 1 seperti bentuk gelombang suara sedangkan DCT 2-D,
Banyak skema kompresi data khususnya dalam bentuk citra digital menggunakan block –
based DCT atau DCT 2-D, karena algoritma ini meminimalisir jumlah data yang dibutuhkan
untuk membuat kembali citra digital baru. Faktanya JPEG dan MPEG menggunakan algoritma
DCT untuk memfokuskan pada informasi citra dengan memindahkan redudansi data spasial pada
DCT 2-D diperlukan untuk mengolah sinyal-sinyal yang berdimensi 2, seperti citra yang
merupakan sinyal 2 dimensi. Untuk sebuah matriks yang berukuran n x m, DCT 2-D
dapat dihitung dengan cara menerapkan DCT 1-D pada setiap baris dari s dan kebudian
6
hasilnya dihitung, perhitungan ini berlaku untuk setiap kolomnya. Rumus transformasi
DCT 1-D untuk mencari s adalah sebagai berikut [6], [11], [12]:
√
n−1
2 (2 x +1)u π
S(u)= C (u) ∑ s ( x ) cos
n x=0 2n
{
1
2−
Dimana C (k) = 2 , untuk k =0 dan 1untuk angka lainnya
1
Persamaan diatas menyatakan s sebagai kombinasi linier dari basis vektor. Koefisien
adalah elemen transformasi DCT 2-D untuk S yang mencerminkan banyaknya setiap
Sedangkan rumus untuk transformasi DCT 2-D untuk s adalah sebagai berikut:
m−1 n−1
2 (2 x +1)uπ (2 y +1)v π
S(u)= C (u)C (v ) ∑ ∑ S ( x ) cos cos
√ nm y=0 x=0 2n 2m
Rumus diatas sering juga disebut dengan Forward Discrete Cosine Transform (FDCT).
DCT 2-D dapat dihitung dengan menerapkan transformasi 1-D secara terpisah pada baris
dan kolomnya, sehingga kita dapat mengatakan bahwa DCT 2-D sparable dalam 2
dimensi. Untuk Inverse Discrete Cosine Transform dimensi dua (IDCT 2-D) dapat
m−1 n−1
2 (2 x+1)uπ (2 y +1)v π
S(x , y)= ∑ ∑
√ nm v=0 u=0
C (u)C (v)S ( u , v ) cos
2n
cos
2m
7
Dengan x = 0, .... , n-1 ; y = 0, .... , m-1
Steganografi merupakan suatu teknik untuk menyembunyikan pesan di dalam media lain
dimana pesan rahasia yang akan dikirimkan tidak diubah bentuknya, melainkan disisipkan pada
sebuah media lain (cover-object) yang digunakan dalam kehidupan sehari-hari. Media baru yang
telah disisipi pesan rahasia (stego-object) kemudian dikirim kepada penerima tanpa
menimbulkan kecurigaan dari pihak luar, perbedaan dari media asli (cover-object) dengan media
yang telah disisipi pesan rahasia (stegoobject) tidak terlihat sehingga orang lain tidak akan
Kuantisasi secara sederhana merupakan proses untuk mengurangi jumlah bit yang
dibutuhkan untuk menyimpan sebuah nilai bilangan bulat dengan mengurangi ketelitian bilangan
bulat. JPEG adalah metode kompresi lossy yang utama, yang dirancang khusus untuk membuang
informasi namun perubahannya tidak dapat dengan mudah terlihat oleh mata. Oleh karena itu
encoding lossy JPEG cenderung menjadi lebih hemat dengan bagian skala abuabu gambar dan
DCT memisahkan gambar menjadi bagian-bagian frekuensi yang berbeda dimana frekuensi
kurang penting dibuang melalui kuantisasi. Matriks modifikasi pada JPEG digunakan juga pada
dekuantisasi sehingga koefisien kuantisasi DCT yang telah direkonstruksi kembali menjadi
gambar akan menyebabkan efek distorsi. Pada gambar di bawah ini terlihat bahwa 20 koefisien
pada lokasi frekuensi tengah akan menjadi 1. Modifikasi tersebut dimana Q yang berposisi
q[0,4], q[0,5], q[0,6], q[0,7], q[1,3], q[1,4], q[1,5], q[1,6], q[2,2], q[2,3], q[2,4], q[2,5], q[3,1],
8
q[3,2] q[3,3], q[3,4], q[4,0], q[4,1], q[4,2], q[4,3]. Jika menggunakan matriks kuantisasi yang
sudah dimodifikasi maka saat proses rekonstruksi gambar tidak terlalu dipengaruhi efek distorsi
[15].
Referensi
techniques: From the perspective of data quality, coding schemes, data type and
applications,” J. King Saud Univ. - Comput. Inf. Sci., vol. 33, no. 2, pp. 119–140, 2021,
doi: 10.1016/j.jksuci.2018.05.006.
Proc. 2019 Int. Symp. Embed. Comput. Syst. Des. ISED 2019, pp. 63–67, 2019, doi:
9
10.1109/ISED48680.2019.9096229.
lossless and lossy algorithms, vol. 300. Elsevier B.V., 2018. doi:
10.1016/j.neucom.2018.02.094.
[5] M. Jayedul and M. Nurul, “Study on Data Compression Technique,” Int. J. Comput. Appl.,
[6] K.Muthuchamy, “a Study on Various Data Compression Types and Techniques,” Int. J.
[8] L. D. Singh and K. M. Singh, “Implementation of Text Encryption using Elliptic Curve
Cryptography,” Procedia Comput. Sci., vol. 54, no. 1, pp. 73–82, 2015, doi:
10.1016/j.procs.2015.06.009.
techniques,” Intern. J. Comput. Sci. Eng., vol. 4, no. 5, pp. 877–882, 2012, [Online].
Available: http://search.ebscohost.com/login.aspx?
direct=true&db=a9h&AN=82397469&site=ehost-live
[10] N. Sangwan, “Text Encryption with Huffman Compression,” Int. J. Comput. Appl., vol.
[11] W. Azani Mustafa et al., “Image Enhancement Based on Discrete Cosine Transforms
(DCT) and Discrete Wavelet Transform (DWT): A Review,” IOP Conf. Ser. Mater. Sci.
10
Eng., vol. 557, no. 1, 2019, doi: 10.1088/1757-899X/557/1/012027.
Fourier Transforms (DFT), and Discrete Wavelet Transforms (DWT) in Digital Image
Watermarking,” Int. J. Adv. Comput. Sci. Appl., vol. 8, no. 2, 2017, doi:
10.14569/ijacsa.2017.080232.
Steganography: A Review of the Recent Advances,” IEEE Access, vol. 9, pp. 23409–
[14] L. Yuan et al., “Central Similarity Quantization for Efficient Image and Video Retrieval,”
Proc. IEEE Comput. Soc. Conf. Comput. Vis. Pattern Recognit., pp. 3080–3089, 2020,
doi: 10.1109/CVPR42600.2020.00315.
11