Anda di halaman 1dari 11

Kompresi data

Algoritma Data Kompresi Untuk Keamanan Informasi

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

2 Teknik kompresi data yaitu [3] :

a) lossy data-compression dan;

b) lossless data-compression.

Lossy data-compression masih memperbolehkan adanya kesalahan/perbedaan dalam proses

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

digunakan untuk kompresi data gambar dan suara [4].

Lossless data-compression, kompresi data yang memungkinkan data asli direkonstruksi

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

dan dekompresi akurasi tinggi [4].

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

pesan (informasi) [5].

Dalam Teori Informasi digunakan istilah “entropy” yang diambil dari istilah Ilmu

Thermodinamika. Makna dari entropy sebetulnya menunjukkan ketidakteraturan sesuatu (dalam

hal ini informasi). Semakin tinggi nilai entropy sebuah message (informasi) berarti semakin

banyak simbol yang muncul dalam informasi tersebut. Dengan demikian nilai entropy berkaitan

dengan probabilitas simbul dari sebuah informasi [3]–[5].

Jumlah bit dari Simbul = - log2 (Probablilitas Simbul)

B. Pemodelan Dan Pengkodean Dalam Kompresi Data

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

probabilitas setiap simbul [6].

Gambar 1. Model Statistik dengan Huffman Encoder

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

mengenai implementasinya agar lebih praktis. Dibawah ini merupakan langkah-langkah

pembentukan algoritma Huffman [7].

1. Baca semua karakter di dalam data untuk menghitung frekuensi kemunculan setiap

karakter. Urutkan karakter dari yang paling kecil frekuensi kemunculannya.

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

terurut menaik berdasarkan frekuensi.

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

pohon biner dilangkah ke 2

D. Penerapan Algoritma Huffman dalam Kriptografi

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,

pohon Huffman berubah sesuai dengan data yang diolah [8].

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

pohon Huffman yang dibentuk [9], [10].

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

menggunakan algoritma Huffman [10].

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

E. Discrete Cosine Transform (DCT)

Discrete Cosine Transform (DCT) merupakan bagian dari kelompok Lossy data-

compression, algoritma ini juga banyak digunakan dan pengolahan data image atau video. DCT

merupakan transformasi matematis yang mengambil sinyal dan mentransformasikannya dari

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,

mengolah data dalam bentuk image atau video [11].

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

citra 2 dimensi [12].

1. Discrete Cosine Transform 2-D (DCT 2-D)

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]:

DCT dari sederet n bilangan real s(x), x = 0, .... , n-1

DCT dari sederet n bilangan real s(x), x = 0, .... , n-1


n−1
2 (2 x +1)u π
S(u)= C (u) ∑ s ( x ) cos
n x=0 2n

Dengan u = 0, .... , n-1

{
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

frekuensi yang ada didalam masukan s.

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

Dengan u = 0, .... , n-1; v = 0, .... , m-1

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

diperoleh dengan rumus berikut:

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

F. Penerapan Algoritma Discrete Cosine Transform (DCT) dalam Steganografi

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

menyadari ada sesuatu di dalam media tersebut [13].

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

menjadi lebih dangkal dengan warna [14].

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

Gambar 3. Modifikasi Matriks Kuantisasi JPEG

Referensi

[1] U. Jayasankar, V. Thirumal, and D. Ponnurangam, “A survey on data compression

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.

[2] A. Shelupanov, O. Evsyutin, A. Konev, E. Kostyuchenko, D. Kruchinin, and D.

Nikiforov, “Information security methods-Modern research directions,” Symmetry

(Basel)., vol. 11, no. 2, 2019, doi: 10.3390/sym11020150.

[3] A. Hanumanthaiah, A. Gopinath, C. Arun, B. Hariharan, and R. Murugan, “Comparison of

Lossless Data Compression Techniques in Low-Cost Low-Power (LCLP) IoT Systems,”

Proc. 2019 Int. Symp. Embed. Comput. Syst. Des. ISED 2019, pp. 63–67, 2019, doi:

9
10.1109/ISED48680.2019.9096229.

[4] A. J. Hussain, A. Al-Fayadh, and N. Radi, Image compression techniques: A survey in

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

vol. 159, no. 5, pp. 6–13, 2017, doi: 10.5120/ijca2017912416.

[6] K.Muthuchamy, “a Study on Various Data Compression Types and Techniques,” Int. J.

Res. Anal. Rev., vol. 5, no. 3, pp. 945–950, 2018.

[7] Programiz, “Huffman Coding,” 2023. https://www.programiz.com/dsa/huffman-coding

(accessed Nov. 04, 2023).

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

[9] M. Agrawal and P. Mishra, “A comparative survey on symmetric key encryption

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.

54, no. 6, pp. 29–32, 2012, doi: 10.5120/8572-2307.

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

[12] R. A, R. Agustina, and H. -, “Comparison of Discrete Cosine Transforms (DCT), Discrete

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.

[13] N. Subramanian, O. Elharrouss, S. Al-Maadeed, and A. Bouridane, “Image

Steganography: A Review of the Recent Advances,” IEEE Access, vol. 9, pp. 23409–

23423, 2021, doi: 10.1109/ACCESS.2021.3053998.

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

[15] Securitysite, “Quantization in DCT,” 2023. https://asecuritysite.com/comms/dct

11

Anda mungkin juga menyukai