SlideShare a Scribd company logo
1 of 60
KOMPRESI TEKS
Dr. Lily Wulandari
KOMPRESI(1)
 Kompresi merupakan proses pengubahan
sekumpulan data menjadi suatu bentuk kode
untuk menghemat kebutuhan tempat
penyimpanan dan waktu untuk transmisi data.
 Kompresi dapat diterapkan untuk:
- File Teks
- File Gambar
- File Audio
- File Video
KOMPRESI(2)
 Contoh kompresi sederhana yang biasa kita
lakukan misalnya adalah menyingkat kata-kata
yang sering digunakan tapi sudah memiliki
konvensi umum. Misalnya: kata “yang”
dikompres menjadi kata “yg”.
 Pengiriman data hasil kompresi dapat dilakukan
jika pihak pengirim/yang melakukan kompresi
dan pihak penerima memiliki aturan yang sama
dalam hal kompresi data.
KOMPRESI(3)
 Pihak pengirim harus menggunakan algoritma
kompresi data yang sudah baku dan pihak
penerima juga menggunakan teknik dekompresi
data yang sama dengan pengirim sehingga data
yang diterima dapat dibaca/di-dekode kembali
dengan benar.
 Kompresi data menjadi sangat penting karena
memperkecil kebutuhan penyimpanan data,
mempercepat pengiriman data, memperkecil
kebutuhan bandwidth.
Kompresi(4)
Ada 3 metode yang digunakan dalam
kompresi:
- Kompresi Lossy
- Kompresi Lossless
Kompresi Lossy
 Suatu metode kompresi data yang menghilangkan
sebagian “Informasi” dari file asli (file yang akan
dimampatkan) selama proses kompresi berlangsung
dengan tidak menghilangkan (secara signifikan) informasi
yang ada dalam file secara keseluruhan.
 Contoh: pada kompresi file gambar.
Merubah detail dan warna sebuah file gambar menjadi
lebih sederhana dan mempunyai kapasitas file menjadi
lebih kecil tanpa terlihat perbedaan mencolok dari
pandangan manusia.
Kompresi Lossy
 Biasanya teknik ini membuang bagian-bagian
data yang sebenarnya tidak begitu berguna, tidak
begitu dirasakan, tidak begitu dilihat oleh
manusia sehingga manusia masih beranggapan
bahwa data tersebut masih bisa digunakan
walaupun sudah dikompresi.
 Contoh: Mp3, streaming media, JPEG, MPEG, dan
WMA
Kompresi Lossless
 Metode kompresi data di mana tidak ada
“Informasi” / data yang hilang atau
berkurang jumlahnya selama proses
kompresi, sehingga pada proses
dekompresi jumlah bit (byte) data atau
informasi dalam keseluruhan file hasil
sama persis dengan file aslinya.
Kompresi Lossless
 Teknik kompresi dimana data hasil kompresi
dapat didekompres lagi dan hasilnya tepat sama
seperti data sebelum proses kompresi. Contoh
aplikasi: ZIP, RAR, GZIP, 7-Zip
 Teknik ini digunakan jika dibutuhkan data setelah
dikompresi harus dapat diekstrak/dekompres lagi
tepat sama. Contoh pada data teks, data
program/biner, beberapa image seperti GIF dan
PNG.
Kriteria Algoritma dan
Aplikasi Kompresi Data
 Kualitas data hasil enkoding: ukuran lebih
kecil, data tidak rusak untuk kompresi
lossy.
 Kecepatan, ratio, dan efisiensi proses
kompresi dan dekompresi
 Ketepatan proses dekompresi data: data
hasil dekompresi tetap sama dengan data
sebelum dikompres (kompresi loseless)
Klasifikasi Teknik
Kompresi(1)
 Entropy Encoding
•Bersifat loseless
•Tekniknya tidak berdasarkan media dengan
spesifikasi dan karakteristik tertentu namun
berdasarkan urutan data.
•Statistical encoding, tidak memperhatikan
semantik data.
•Mis: Run-length coding, Huffman coding,
Arithmetic coding
Klasifikasi Teknik
Kompresi(2)
 Source Coding
• Bersifat lossy
• Berkaitan dengan data semantik (arti data)
dan media.
• Mis: Prediction (DPCM, DM), Transformation
(FFT, DCT), Layered Coding (Bit position,
subsampling, sub-band coding), Vector
quantization
Klasifikasi Teknik
Kompresi(3)
 Hybrid Coding
• Gabungan antara lossy + loseless
• mis: JPEG, MPEG, H.261, DVI
Algoritma Kompresi
Algoritma Huffman
Algoritma LZW (Lempel-Ziv-Welch)
Algoritma DMC (Dynamic Marcov
Compression)
Dsb
Kompresi Data Teks
 Kompresi Teks menggunakan metode Lossless.
 Karena jika menghilangkan beberapa karakter
akan merubah arti dari teks aslinya.
Kompresi Teks ada 2 macam:
•Character-based Frequency counting
•Huffman Encoding, Arithmetic Encoding
•Word-based Frequency counting
•Lempel-Ziv (LZ) algorithm
Algoritma Huffman
 Dibuat oleh seorang mahasiswa MIT bernama
David Huffman.
 Merupakan salah satu metode paling lama dan
paling terkenal dalam kompresi teks.
 Metode ini adalah suatu teknik kompresi data
secara statistik yang bekerja dengan mereduksi
panjang kode rata-rata dan menghasilkan kode
prefiks yang digunakan untuk merepresentasikan
simbol-simbol dari suatu jenis huruf.
Pohon Huffman
 Algoritma Huffman menggunakan struktur pohon
dalam prosesnya.
 Dalam struktur pohon dikenal dengan terminologi
parent (orang tua) dan child (anak).
 Parent (orang tua) yaitu sebuah simpul yang memiliki
lintasan ke simpul lain dengan tingkatan (level) di
bawahnya.
 Child (anak) yaitu sebuah simpul yang memiliki
lintasan ke simpul lain dengan tingktan (level) di
atasnya.
Pohon Huffman(2)
 Beradasarkan jumlah anak pohon huffman
dikategorikan :
•Uner : pohon dengan orang tua yang
hanya memiliki satu anak
•Biner : pohon dengan orang tua yang
memiliki dua anak
Algoritma Huffman
 Pengkodean dengan huffman coding
menggunakan panjang bit yang bervariasi
dalam pengkodean sebuah karakter.
 Karakter dengan frekuensi kemunculan
lebih besar memiliki panjang bit yang lebih
pendek.
Langkah-langkah Algoritma
Huffman
1. Hitung statistik (frekuensi) jumlah
kemunculan masing-masing simbol.
2. Simpan hasil informasi bobot masing-
masing simbol.
3. Membangun pohon huffman berdasarkan
larik bobot dari masing-masing simbol.
4. Konversi pohon huffman menjadi kode
spesifik untuk tiap simbol.
Contoh
 Berikut ini adalah sebuah contoh cara pengkodean
sebuah string. Misalkan kita akan mengkodekan sebuah
string “AABCABC”.
 Dalam kode ASCII string 7 huruf “AABCABC”
membutuhkan representasi 7 × 8 bit = 56 bit (7 byte),
dengan rincian sebagai berikut:
•A = 01000001
•A = 01000001
•B = 01000010
•C = 01000011
•A = 01000001
•B = 01000010
•C = 01000011
Pemecahan Masalah
 Berdasarkan algoritma yang telah disebutkan
sebelumnya, maka kita pertama kali akan
menghitung frekuensi kemunculan dari setiap
karakater.
 String: AABCABC
Simbol Frekuensi
A 3
B 2
C 2
Pemecahan Masalah (2)
 Berdasarkan tabel maka dapat disusun
model pohon Huffman-nya:
Pemecahan Masalah (3)
 Berdasarkan pohon Huffman yang ditunjukan
pada hasil di atas maka dapat ditentukan kode
huffman untuk masing-masing setiap simbol yang
dalam string “AABCABC”.
Hasil Kompresi
 Berdasarkan tabel Huffman maka
rangkaian bit dari string AABCABC adalah:
0 0 10 11 0 10 11
 Jadi jumlah bit yang dipakai hanya 11 bit (2
byte), lebih hemat dari jumlah bit
sebelumnya (56 bit).
Analisa
 Dari Tabel Huffman tampak bahwa kode
untuk sebuah simbol/karakter tidak boleh
menjadi awalan dari kode simbol yang lain
guna menghindari keraguan (ambiguitas)
dalam proses dekompresi atau decoding.
 Karena tiap kode Huffman yang dihasilkan
unik, maka proses dekompresi dapat
dilakukan dengan mudah.
Dekompresi
 Saat membaca kode bit pertama dalam rangkaian
bit: 0 0 10 11 0 10 11 yaitu bit 0, dapat langsung
disimpulkan bahwa kode bit “0” merupakan
pemetaan dari simbol “A”. Bit kedua juga “A”.
 Baca kode bit selanjutnya, yaitu bit “1”, tidak ada
kode Huffman “1”, lalu baca kode Huffman
selanjutnya yaitu “0” sehingga menjadi “10” yaitu
karakter “B”.
 Begitu seterusnya…
Static Huffman Coding(1)
 Frekuensi karakter dari string yang akan dikompres
dianalisa terlebih dahulu. Selanjutnya dibuat pohon
huffman yang merupakan pohon biner dengan root awal
yang diberi nilai 0 (sebelah kiri) atau 1 (sebelah kanan),
sedangkan selanjutnya untuk dahan kiri selalu diberi nilai
1(kiri) - 0(kanan) dan di dahan kanan diberi nilai 0(kiri) –
1(kanan)
 A bottom-up approach = frekuensi terkecil dikerjakan
terlebih dahulu dan diletakkan ke dalam leaf(daun).
 Kemudian leaf-leaf akan dikombinasikan dan dijumlahkan
probabilitasnya menjadi root diatasnya.
Static Huffman Coding(2)
 Mis: MAMA SAYA
A = 4 -> 4/8 = 0.5
M = 2 -> 2/8 = 0.25
S = 1 -> 1/8 = 0.125
Y = 1 -> 1/8 = 0.125
Total = 8 karakter
Sehingga w(A) = 1, w(M) = 00, w(S) = 010, dan w(Y) = 011
Latihan
 Buatlah tabel Huffman untuk kompresi
string ABACCDA (Kerjakan dengan lengkap
tahap-tahapnya)!
Shannon-Fano Algorithm(1)
 Dikembangkan oleh Shannon (Bell Labs)
dan Robert Fano (MIT)
 Pada dasarnya cara kerja dari algoritma
Shannon-Fano ini sama persis dengan
Huffman. Algoritma ini membentuk sebuah
pohon, kemudian mengencodingnya, dan
yang terahir adalah mengembalikannya
dalam bentuk karakte teks atau decoding.
Shannon-Fano Algorithm(2)
 Hanya saja perbedaan yang
fundamental terdapat pada pembuatan
pohon.
 Pembuatan pohon pada Shannon-Fano
dibuat berdasarkan proses dari atas ke
bawah – berbeda dengan huffman yang
membuat pohon dari bawah ke atas.
Shannon-Fano Algorithm(3)
 Algoritma :
1.Urutkan simbol berdasarkan frekuensi
kemunculannya dari besar ke kecil
2.Bagi simbol menjadi 2 bagian secara
rekursif, dengan jumlah yang kira-kira
sama pada kedua bagian, sampai tiap
bagian hanya terdiri dari 1 simbol.
Contoh
 Contoh terdapat 5 simbol-simbol yang dapat
dikodekan memiliki frekuensi berikut: A = 15 ; B = 7 ;
C = 6 ; D = 6 ; E = 5
 Semua simbol-simbol yang diurutkan berdasarkan
frekuensi, dari kiri ke kanan (ditunjukkan pada
Gambar a. Menempatkan garis pemisah antara
simbol-simbol B dan C menghasilkan total 22 di grup
kiri dan total 17 di kelompok yang tepat.
Contoh
 Dengan pembagian ini, A dan B akan masing-
masing memiliki kode yang dimulai dengan 0 bit,
dan C, D, dan E kode akan semua mulai dengan 1,
seperti ditunjukkan pada Gambar b.
 Kemudian, di sebelah kiri setengah dari pohon
mendapat divisi baru antara A dan B, yang
menempatkan A pada daun dengan kode 00 dan
B pada daun dengan kode 01.
 Setelah empat divisi
prosedur, dihasilkan
pohon kode. Pohon di
final, tiga simbol dengan
frekuensi tertinggi
semuanya telah
ditugaskan 2-bit kode,
dan dua simbol yang lebih
rendah memiliki 3-bit
kode seperti ditunjukkan
gambar berikut:
Latihan
 Misal terdapat lima karakter A; B; C; D; E.
• Frek A : 0,45
• Frek B : 0,15
• Frek C : 0,15
• Frek D : 0,13
• Frek E : 0,12
 Lakukan kompresi menggunakan metode
Huffman dan Shanon-fano
 Jika direpresentasikan pada pohon
huffman maka akan menjadi sebagai
berikut :
 Melihat dari hasil pembentukan bit baru (hasil
encoding), karakter A yang sering muncul
(probabilitas hingga 0,45) hanya memiliki satu
bit saja yaitu 0. Kompresi seperti ini yang
membuat algoritma menjadi lebih efektif
karena pohon terbentuk dari bawah
(probabilitas kecil atau umum) ke atas
(probabilitas besar atau sering).
 Sedangkan pada pohon shannon-fano akan
terbentuk seperti ini :
 Secara sekilas, pohon shannon-fano ini memang
tampak lebih ringkas, tetapi jika kita amati baik-
baik, terdapat kelemahan di dalamnya.
 Untuk memperjelas, akan diilustrasikan dengan
angka, misal total dari seluruh kemunculan
karakter tersebut adalah 100, maka
 Berdasarkan pohon huffman, maka encoding
menjadi
 Penghitungan kapasitas memori yang dipakai
yaitu : Kemunculan karakter X jumlah bit Total
memori (untuk ABCDE) = 45x1bit + 15x3bit +
15x3bit + 13x3bit + 12x3bit = 210 bit
 Berdasarkan pohon shannon-fano, maka proses
encoding menjadi
 Dengan perhitungan jumlah kapastias memori
yang sama seperti di atas, maka didapat untk
total memori yaitu 45x2bit + 15x2bit + 15x2bit +
13x3bit + 12x3bit = 225 bit.
KOMPRESI TEKS (2)
Dr. Lily Wulandari
Run-Length-Encoding (RLE)
 Kompresi data teks dilakukan jika ada
beberapa huruf yang sama yang
ditampilkan berturut-turut:
 Mis: Data: ABCCCCCCCCDEFGGGG = 17
karakter
 RLE tipe 1 (min. 4 huruf sama) : ABC!
8DEFG!4 = 11 karakter
Run-Length-Encoding (RLE)
 RLE menggunakan suatu karakter yang
tidak digunakan dalam teks tersebut
seperti misalnya ‘!’ untuk menandai.
 Kelemahan? Jika ada karakter angka, mana
tanda mulai dan akhir?
Run-Length-Encoding (RLE)
 RLE ada yang menggunakan flag bilangan
negatif u/ menandai batas sebanyak
jumlah karakter tsb.
 Berguna untuk data yang banyak memiliki
kesamaan, misal teks ataupun grafik
seperti icon atau gambar garis-garis yang
banyak memiliki kesamaan pola.
Run-Length-Encoding (RLE)
 Misal data : ABCCCCCCCCDEFGGGG = 17
karakter
RLE tipe 2: -2AB8C-3DEF4G = 12 karakter
 Misal data : AB12CCCCDEEEF = 13 karakter
RLE tipe 2: -4AB124CD3EF = 12 karakter
Run-Length-Encoding (RLE)
 Best case: untuk RLE tipe 2 adalah ketika
terdapat 127 karakter yang sama sehingga
akan dikompres menjadi 2 byte saja.
 Worst case: untuk RLE tipe 2 adalah ketika
terdapat 127 karakter yang berbeda
semua, maka akan terdapat 1 byte
tambahan sebagai tanda jumlah karakter
yang tidak sama tersebut.
Dictionary-Based Coding(1)
 Algoritma Lempel-Ziv-Welch (LZW) menggunakan
teknik adaptif dan berbasiskan “kamus”.
 Pendahulu LZW adalah LZ77 dan LZ78 yang
dikembangkan oleh Jacob Ziv dan Abraham
Lempel pada tahun 1977 dan 1978. Terry Welch
mengembangkan teknik tersebut pada tahun
1984.
 LZW banyak dipergunakan pada UNIX, GIF, V.42
untuk modem.
Dictionary-Based Coding(2)
Algoritma Kompresi:
BEGIN
S = next input character;
While not EOF
{ C = next input character;
If s + c exists in the dictionary
S = s + c
Else
{ Output the code for s;
Add string s + c to the dictionary with a new code
S = c;
}
}
END
Dictionary-Based Coding(3)
 Contoh, jika terdapat dictionary sederhana
awalnya 3 karakter dengan code berikut:
 Jika terdapat input string ABABBABCABABBA
lakukan kompresi dengan algoritma LZW
Code String
1 A
2 B
3 C
Dictionary-Based Coding(4)
Algoritma Dekompresi:
BEGIN
S = NULL;
while not EOF
{
K = NEXT INPUT CODE;
Entry = dictionary entry for K;
Ouput entry;
if(s != NULL)
add string s + entry[0] to dictionary with new code
S = Entry;
}
END
Dictionary-Based Coding(5)
 Contoh Dekompresi
 Input : 1 2 4 5 2 3 4 6 1
 Hasil Dekode: ABABBABCABABBA
Aplikasi Kompresi(1)
 ZIP File Format
•Ditemukan oleh Phil Katz untuk program PKZIP
kemudian dikembangkan untuk WinZip,
WinRAR, 7-Zip.
•Berekstensi *.zip dan MIME application/zip
•Dapat menggabungkan dan mengkompresi
beberapa file sekaligus menggunakan
bermacam-macam algoritma, namun paling
umum menggunakan Katz’s Deflate Algorithm.
Aplikasi Kompresi(2)
 Beberapa metode Zip:
•Shrinking : merupakan metode variasi dari LZW
•Reducing : merupakan metode yang
mengkombinasikan metode same byte sequence
based dan probability based encoding.
•Imploding : menggunakan metode byte sequence
based dan Shannon-Fano encoding.
•Deflate : menggunakan LZW
•Bzip2, dan lain-lain
 Aplikasi: WinZip oleh Nico-Mak Computing
Aplikasi Kompresi(3)
 RAR File
•Ditemukan oleh Eugene Roshal, sehingga RAR
merupakan singkatan dari Roshal Archive pada 10
Maret 1972 di Rusia.
•Berekstensi .rar dan MIME application/x-rar-
compressed
•Proses kompresi lebih lambat dari ZIP tapi ukuran file
hasil kompresi lebih kecil.
•Aplikasi: WinRAR yang mampu menangani RAR dan
ZIP, mendukung volume split, enkripsi AES.
Latihan
 Jika terdapat dictionary sederhana awalnya 3
karakter dengan code berikut:
 Jika terdapat input string CAABBACABAB
lakukan kompresi dengan algoritma LZW
Code String
1 A
2 B
3 C

More Related Content

What's hot

Contoh Soal Huffman Code
Contoh Soal Huffman CodeContoh Soal Huffman Code
Contoh Soal Huffman CodeAlbertus H.
 
Bab 4 operasi-operasi dasar pengolahan citra dijital
Bab 4 operasi-operasi dasar pengolahan citra dijitalBab 4 operasi-operasi dasar pengolahan citra dijital
Bab 4 operasi-operasi dasar pengolahan citra dijitalSyafrizal
 
Interaksi manusia dan komputer
Interaksi manusia dan komputerInteraksi manusia dan komputer
Interaksi manusia dan komputerMiftahul Khair N
 
Pengolahan Citra Digital (Resume materi kuliah)
Pengolahan Citra Digital (Resume materi kuliah)Pengolahan Citra Digital (Resume materi kuliah)
Pengolahan Citra Digital (Resume materi kuliah)Abdullah Azzam Al Haqqoni
 
Dasar sistem telekomunikasi (modulasi)
Dasar sistem telekomunikasi (modulasi)Dasar sistem telekomunikasi (modulasi)
Dasar sistem telekomunikasi (modulasi)Fathan Hakim
 
Pengolahan Citra 3 - Operasi-operasi Digital
Pengolahan Citra 3 - Operasi-operasi DigitalPengolahan Citra 3 - Operasi-operasi Digital
Pengolahan Citra 3 - Operasi-operasi DigitalNur Fadli Utomo
 
Osi layer dan fungsinya
Osi layer dan fungsinyaOsi layer dan fungsinya
Osi layer dan fungsinyaMuhammad Putra
 
Elemen teks dalam multimedia
Elemen teks dalam multimediaElemen teks dalam multimedia
Elemen teks dalam multimediaToto Haryadi
 
Materi 3 Finite State Automata
Materi 3   Finite State AutomataMateri 3   Finite State Automata
Materi 3 Finite State Automataahmad haidaroh
 
Kriptografi modern
Kriptografi modernKriptografi modern
Kriptografi modernniizarch
 
Pengolahan Citra Digital Dengan Menggunakan MATLAB
Pengolahan Citra Digital Dengan Menggunakan MATLABPengolahan Citra Digital Dengan Menggunakan MATLAB
Pengolahan Citra Digital Dengan Menggunakan MATLABSimesterious TheMaster
 
DASAR-DASAR DESAIN GRAFIS - dewifitriyani__
DASAR-DASAR DESAIN GRAFIS - dewifitriyani__DASAR-DASAR DESAIN GRAFIS - dewifitriyani__
DASAR-DASAR DESAIN GRAFIS - dewifitriyani__Dewi Fitriyani
 
Pcd 02 - bidang pengolahan citra
Pcd   02 - bidang pengolahan citraPcd   02 - bidang pengolahan citra
Pcd 02 - bidang pengolahan citraFebriyani Syafri
 
Mata Kuliah Komunikasi Data dan Jaringan Komputer
Mata Kuliah Komunikasi Data dan Jaringan KomputerMata Kuliah Komunikasi Data dan Jaringan Komputer
Mata Kuliah Komunikasi Data dan Jaringan KomputerBambang
 
Penyederhanaan Karnaugh Map
Penyederhanaan Karnaugh MapPenyederhanaan Karnaugh Map
Penyederhanaan Karnaugh MapCheria Asyifa
 
Soal Latihan OSI Layer
Soal Latihan OSI LayerSoal Latihan OSI Layer
Soal Latihan OSI LayerDenny Yahya
 
Tugas 3 Rangkuman Protocol DNS, FTP, HTTP, dan SMTP
Tugas 3 Rangkuman Protocol DNS, FTP, HTTP, dan SMTPTugas 3 Rangkuman Protocol DNS, FTP, HTTP, dan SMTP
Tugas 3 Rangkuman Protocol DNS, FTP, HTTP, dan SMTPRobby Firmansyah
 

What's hot (20)

Contoh Soal Huffman Code
Contoh Soal Huffman CodeContoh Soal Huffman Code
Contoh Soal Huffman Code
 
Bab 4 operasi-operasi dasar pengolahan citra dijital
Bab 4 operasi-operasi dasar pengolahan citra dijitalBab 4 operasi-operasi dasar pengolahan citra dijital
Bab 4 operasi-operasi dasar pengolahan citra dijital
 
Image processing
Image processingImage processing
Image processing
 
Interaksi manusia dan komputer
Interaksi manusia dan komputerInteraksi manusia dan komputer
Interaksi manusia dan komputer
 
Pengolahan Citra Digital (Resume materi kuliah)
Pengolahan Citra Digital (Resume materi kuliah)Pengolahan Citra Digital (Resume materi kuliah)
Pengolahan Citra Digital (Resume materi kuliah)
 
Dasar sistem telekomunikasi (modulasi)
Dasar sistem telekomunikasi (modulasi)Dasar sistem telekomunikasi (modulasi)
Dasar sistem telekomunikasi (modulasi)
 
Pengolahan Citra 3 - Operasi-operasi Digital
Pengolahan Citra 3 - Operasi-operasi DigitalPengolahan Citra 3 - Operasi-operasi Digital
Pengolahan Citra 3 - Operasi-operasi Digital
 
Topologi jaringan ppt
Topologi jaringan pptTopologi jaringan ppt
Topologi jaringan ppt
 
Osi layer dan fungsinya
Osi layer dan fungsinyaOsi layer dan fungsinya
Osi layer dan fungsinya
 
Elemen teks dalam multimedia
Elemen teks dalam multimediaElemen teks dalam multimedia
Elemen teks dalam multimedia
 
Materi 3 Finite State Automata
Materi 3   Finite State AutomataMateri 3   Finite State Automata
Materi 3 Finite State Automata
 
Kriptografi modern
Kriptografi modernKriptografi modern
Kriptografi modern
 
Pengolahan Citra Digital Dengan Menggunakan MATLAB
Pengolahan Citra Digital Dengan Menggunakan MATLABPengolahan Citra Digital Dengan Menggunakan MATLAB
Pengolahan Citra Digital Dengan Menggunakan MATLAB
 
DASAR-DASAR DESAIN GRAFIS - dewifitriyani__
DASAR-DASAR DESAIN GRAFIS - dewifitriyani__DASAR-DASAR DESAIN GRAFIS - dewifitriyani__
DASAR-DASAR DESAIN GRAFIS - dewifitriyani__
 
Pcd 02 - bidang pengolahan citra
Pcd   02 - bidang pengolahan citraPcd   02 - bidang pengolahan citra
Pcd 02 - bidang pengolahan citra
 
Mata Kuliah Komunikasi Data dan Jaringan Komputer
Mata Kuliah Komunikasi Data dan Jaringan KomputerMata Kuliah Komunikasi Data dan Jaringan Komputer
Mata Kuliah Komunikasi Data dan Jaringan Komputer
 
Penyederhanaan Karnaugh Map
Penyederhanaan Karnaugh MapPenyederhanaan Karnaugh Map
Penyederhanaan Karnaugh Map
 
Soal Latihan OSI Layer
Soal Latihan OSI LayerSoal Latihan OSI Layer
Soal Latihan OSI Layer
 
1 sinyal
1  sinyal1  sinyal
1 sinyal
 
Tugas 3 Rangkuman Protocol DNS, FTP, HTTP, dan SMTP
Tugas 3 Rangkuman Protocol DNS, FTP, HTTP, dan SMTPTugas 3 Rangkuman Protocol DNS, FTP, HTTP, dan SMTP
Tugas 3 Rangkuman Protocol DNS, FTP, HTTP, dan SMTP
 

Similar to 9.kompresi teks

Modul 6 kompresi data dan teks
Modul 6 kompresi data dan teksModul 6 kompresi data dan teks
Modul 6 kompresi data dan teksEkky Patria
 
KOMPRESI DATA DAN TEKS.pdf
KOMPRESI DATA DAN TEKS.pdfKOMPRESI DATA DAN TEKS.pdf
KOMPRESI DATA DAN TEKS.pdfDestinySlicer
 
Image Compression - Citra Digital
Image Compression - Citra DigitalImage Compression - Citra Digital
Image Compression - Citra Digitalahmad haidaroh
 
Pcd 010 - model kompresi citra dan dekompresi
Pcd   010 - model kompresi citra dan dekompresiPcd   010 - model kompresi citra dan dekompresi
Pcd 010 - model kompresi citra dan dekompresiFebriyani Syafri
 
multimedia Part 2
multimedia Part 2multimedia Part 2
multimedia Part 2Dermawan12
 
Penggunaan linkedlist
Penggunaan linkedlistPenggunaan linkedlist
Penggunaan linkedlistFajar Baskoro
 
Computer Vision Pertemuan 06
Computer Vision Pertemuan 06Computer Vision Pertemuan 06
Computer Vision Pertemuan 06soe sumijan
 
Pohon pengkode-huffman
Pohon pengkode-huffmanPohon pengkode-huffman
Pohon pengkode-huffmanAriBudiRiyanto
 
Makalah Pengkodean Data
Makalah Pengkodean DataMakalah Pengkodean Data
Makalah Pengkodean Dataguest044324a2
 
Pembelajaran Jaringan [3]
Pembelajaran Jaringan [3]Pembelajaran Jaringan [3]
Pembelajaran Jaringan [3]walidumar
 
Pembelajaran-3 (Jaringan Komputer) Pengenalan Protocol Jaringan
Pembelajaran-3 (Jaringan Komputer) Pengenalan Protocol JaringanPembelajaran-3 (Jaringan Komputer) Pengenalan Protocol Jaringan
Pembelajaran-3 (Jaringan Komputer) Pengenalan Protocol JaringanKelompok Studi Linux UNG
 
EVALUASI KOMPRESI DATA MENGGUNAKAN ALGORITMA LEMPEL-ZIV-MARKOV CHAIN DENGAN A...
EVALUASI KOMPRESI DATA MENGGUNAKAN ALGORITMA LEMPEL-ZIV-MARKOV CHAIN DENGAN A...EVALUASI KOMPRESI DATA MENGGUNAKAN ALGORITMA LEMPEL-ZIV-MARKOV CHAIN DENGAN A...
EVALUASI KOMPRESI DATA MENGGUNAKAN ALGORITMA LEMPEL-ZIV-MARKOV CHAIN DENGAN A...Basri Yasin
 
PPT Matematika Diskrit - POHON
PPT Matematika Diskrit - POHONPPT Matematika Diskrit - POHON
PPT Matematika Diskrit - POHONUlfa Nur Afifah
 
Modul 7 kompresi citra
Modul 7 kompresi citraModul 7 kompresi citra
Modul 7 kompresi citraEkky Patria
 
pengolahan sinyal digital dengan matlab
pengolahan sinyal digital dengan matlabpengolahan sinyal digital dengan matlab
pengolahan sinyal digital dengan matlabsoftscients
 

Similar to 9.kompresi teks (20)

Modul 6 kompresi data dan teks
Modul 6 kompresi data dan teksModul 6 kompresi data dan teks
Modul 6 kompresi data dan teks
 
Tugas dsm kelompok11
Tugas dsm kelompok11Tugas dsm kelompok11
Tugas dsm kelompok11
 
KOMPRESI DATA DAN TEKS.pdf
KOMPRESI DATA DAN TEKS.pdfKOMPRESI DATA DAN TEKS.pdf
KOMPRESI DATA DAN TEKS.pdf
 
Image Compression - Citra Digital
Image Compression - Citra DigitalImage Compression - Citra Digital
Image Compression - Citra Digital
 
Pcd 010 - model kompresi citra dan dekompresi
Pcd   010 - model kompresi citra dan dekompresiPcd   010 - model kompresi citra dan dekompresi
Pcd 010 - model kompresi citra dan dekompresi
 
multimedia Part 2
multimedia Part 2multimedia Part 2
multimedia Part 2
 
Huffman coding
Huffman codingHuffman coding
Huffman coding
 
Penggunaan linkedlist
Penggunaan linkedlistPenggunaan linkedlist
Penggunaan linkedlist
 
Computer Vision Pertemuan 06
Computer Vision Pertemuan 06Computer Vision Pertemuan 06
Computer Vision Pertemuan 06
 
Pohon pengkode-huffman
Pohon pengkode-huffmanPohon pengkode-huffman
Pohon pengkode-huffman
 
Tutor Tasm2
Tutor Tasm2Tutor Tasm2
Tutor Tasm2
 
Makalah Pengkodean Data
Makalah Pengkodean DataMakalah Pengkodean Data
Makalah Pengkodean Data
 
Pembelajaran Jaringan [3]
Pembelajaran Jaringan [3]Pembelajaran Jaringan [3]
Pembelajaran Jaringan [3]
 
Pembelajaran-3 (Jaringan Komputer) Pengenalan Protocol Jaringan
Pembelajaran-3 (Jaringan Komputer) Pengenalan Protocol JaringanPembelajaran-3 (Jaringan Komputer) Pengenalan Protocol Jaringan
Pembelajaran-3 (Jaringan Komputer) Pengenalan Protocol Jaringan
 
Tugas representasi audio dan video
Tugas representasi audio dan videoTugas representasi audio dan video
Tugas representasi audio dan video
 
EVALUASI KOMPRESI DATA MENGGUNAKAN ALGORITMA LEMPEL-ZIV-MARKOV CHAIN DENGAN A...
EVALUASI KOMPRESI DATA MENGGUNAKAN ALGORITMA LEMPEL-ZIV-MARKOV CHAIN DENGAN A...EVALUASI KOMPRESI DATA MENGGUNAKAN ALGORITMA LEMPEL-ZIV-MARKOV CHAIN DENGAN A...
EVALUASI KOMPRESI DATA MENGGUNAKAN ALGORITMA LEMPEL-ZIV-MARKOV CHAIN DENGAN A...
 
PPT Matematika Diskrit - POHON
PPT Matematika Diskrit - POHONPPT Matematika Diskrit - POHON
PPT Matematika Diskrit - POHON
 
Bab 12-kode-huffman
Bab 12-kode-huffmanBab 12-kode-huffman
Bab 12-kode-huffman
 
Modul 7 kompresi citra
Modul 7 kompresi citraModul 7 kompresi citra
Modul 7 kompresi citra
 
pengolahan sinyal digital dengan matlab
pengolahan sinyal digital dengan matlabpengolahan sinyal digital dengan matlab
pengolahan sinyal digital dengan matlab
 

More from Rakhmi Khalida, M.M.S.I (20)

Pertemuan 1 Sistem Basis Data.pptx
Pertemuan 1 Sistem Basis Data.pptxPertemuan 1 Sistem Basis Data.pptx
Pertemuan 1 Sistem Basis Data.pptx
 
Transport layer
Transport layerTransport layer
Transport layer
 
Modul 5 2-ip-address
Modul 5 2-ip-addressModul 5 2-ip-address
Modul 5 2-ip-address
 
Modul 5 1 network layer
Modul 5 1 network layerModul 5 1 network layer
Modul 5 1 network layer
 
Modul 4 1 data link layer
Modul 4 1 data link layerModul 4 1 data link layer
Modul 4 1 data link layer
 
Video
VideoVideo
Video
 
Chapter-audio-dan-suara
Chapter-audio-dan-suaraChapter-audio-dan-suara
Chapter-audio-dan-suara
 
Diferensial dan terapan
Diferensial dan terapanDiferensial dan terapan
Diferensial dan terapan
 
pert - 3 Jaringan dasar
pert - 3 Jaringan dasarpert - 3 Jaringan dasar
pert - 3 Jaringan dasar
 
pert - 1 Jaringan dasar
pert - 1 Jaringan dasarpert - 1 Jaringan dasar
pert - 1 Jaringan dasar
 
Pert 1 - Rekayasa Komputasional
Pert 1 - Rekayasa KomputasionalPert 1 - Rekayasa Komputasional
Pert 1 - Rekayasa Komputasional
 
Sistem multimedia-teknik-informatika
Sistem multimedia-teknik-informatikaSistem multimedia-teknik-informatika
Sistem multimedia-teknik-informatika
 
10.kompresi citra
10.kompresi citra10.kompresi citra
10.kompresi citra
 
8.animasi
8.animasi8.animasi
8.animasi
 
7.video
7.video7.video
7.video
 
6.suara
6.suara6.suara
6.suara
 
3.proses produksi konten multimedia
3.proses produksi konten multimedia3.proses produksi konten multimedia
3.proses produksi konten multimedia
 
2. konten multimedia
2. konten multimedia2. konten multimedia
2. konten multimedia
 
1. Materi pendahuluan Multimedia
1. Materi pendahuluan Multimedia1. Materi pendahuluan Multimedia
1. Materi pendahuluan Multimedia
 
komunikasi dan jaringan komputer
komunikasi dan jaringan komputerkomunikasi dan jaringan komputer
komunikasi dan jaringan komputer
 

9.kompresi teks

  • 2. KOMPRESI(1)  Kompresi merupakan proses pengubahan sekumpulan data menjadi suatu bentuk kode untuk menghemat kebutuhan tempat penyimpanan dan waktu untuk transmisi data.  Kompresi dapat diterapkan untuk: - File Teks - File Gambar - File Audio - File Video
  • 3. KOMPRESI(2)  Contoh kompresi sederhana yang biasa kita lakukan misalnya adalah menyingkat kata-kata yang sering digunakan tapi sudah memiliki konvensi umum. Misalnya: kata “yang” dikompres menjadi kata “yg”.  Pengiriman data hasil kompresi dapat dilakukan jika pihak pengirim/yang melakukan kompresi dan pihak penerima memiliki aturan yang sama dalam hal kompresi data.
  • 4. KOMPRESI(3)  Pihak pengirim harus menggunakan algoritma kompresi data yang sudah baku dan pihak penerima juga menggunakan teknik dekompresi data yang sama dengan pengirim sehingga data yang diterima dapat dibaca/di-dekode kembali dengan benar.  Kompresi data menjadi sangat penting karena memperkecil kebutuhan penyimpanan data, mempercepat pengiriman data, memperkecil kebutuhan bandwidth.
  • 5. Kompresi(4) Ada 3 metode yang digunakan dalam kompresi: - Kompresi Lossy - Kompresi Lossless
  • 6. Kompresi Lossy  Suatu metode kompresi data yang menghilangkan sebagian “Informasi” dari file asli (file yang akan dimampatkan) selama proses kompresi berlangsung dengan tidak menghilangkan (secara signifikan) informasi yang ada dalam file secara keseluruhan.  Contoh: pada kompresi file gambar. Merubah detail dan warna sebuah file gambar menjadi lebih sederhana dan mempunyai kapasitas file menjadi lebih kecil tanpa terlihat perbedaan mencolok dari pandangan manusia.
  • 7. Kompresi Lossy  Biasanya teknik ini membuang bagian-bagian data yang sebenarnya tidak begitu berguna, tidak begitu dirasakan, tidak begitu dilihat oleh manusia sehingga manusia masih beranggapan bahwa data tersebut masih bisa digunakan walaupun sudah dikompresi.  Contoh: Mp3, streaming media, JPEG, MPEG, dan WMA
  • 8. Kompresi Lossless  Metode kompresi data di mana tidak ada “Informasi” / data yang hilang atau berkurang jumlahnya selama proses kompresi, sehingga pada proses dekompresi jumlah bit (byte) data atau informasi dalam keseluruhan file hasil sama persis dengan file aslinya.
  • 9. Kompresi Lossless  Teknik kompresi dimana data hasil kompresi dapat didekompres lagi dan hasilnya tepat sama seperti data sebelum proses kompresi. Contoh aplikasi: ZIP, RAR, GZIP, 7-Zip  Teknik ini digunakan jika dibutuhkan data setelah dikompresi harus dapat diekstrak/dekompres lagi tepat sama. Contoh pada data teks, data program/biner, beberapa image seperti GIF dan PNG.
  • 10. Kriteria Algoritma dan Aplikasi Kompresi Data  Kualitas data hasil enkoding: ukuran lebih kecil, data tidak rusak untuk kompresi lossy.  Kecepatan, ratio, dan efisiensi proses kompresi dan dekompresi  Ketepatan proses dekompresi data: data hasil dekompresi tetap sama dengan data sebelum dikompres (kompresi loseless)
  • 11. Klasifikasi Teknik Kompresi(1)  Entropy Encoding •Bersifat loseless •Tekniknya tidak berdasarkan media dengan spesifikasi dan karakteristik tertentu namun berdasarkan urutan data. •Statistical encoding, tidak memperhatikan semantik data. •Mis: Run-length coding, Huffman coding, Arithmetic coding
  • 12. Klasifikasi Teknik Kompresi(2)  Source Coding • Bersifat lossy • Berkaitan dengan data semantik (arti data) dan media. • Mis: Prediction (DPCM, DM), Transformation (FFT, DCT), Layered Coding (Bit position, subsampling, sub-band coding), Vector quantization
  • 13. Klasifikasi Teknik Kompresi(3)  Hybrid Coding • Gabungan antara lossy + loseless • mis: JPEG, MPEG, H.261, DVI
  • 14. Algoritma Kompresi Algoritma Huffman Algoritma LZW (Lempel-Ziv-Welch) Algoritma DMC (Dynamic Marcov Compression) Dsb
  • 15. Kompresi Data Teks  Kompresi Teks menggunakan metode Lossless.  Karena jika menghilangkan beberapa karakter akan merubah arti dari teks aslinya. Kompresi Teks ada 2 macam: •Character-based Frequency counting •Huffman Encoding, Arithmetic Encoding •Word-based Frequency counting •Lempel-Ziv (LZ) algorithm
  • 16. Algoritma Huffman  Dibuat oleh seorang mahasiswa MIT bernama David Huffman.  Merupakan salah satu metode paling lama dan paling terkenal dalam kompresi teks.  Metode ini adalah suatu teknik kompresi data secara statistik yang bekerja dengan mereduksi panjang kode rata-rata dan menghasilkan kode prefiks yang digunakan untuk merepresentasikan simbol-simbol dari suatu jenis huruf.
  • 17. Pohon Huffman  Algoritma Huffman menggunakan struktur pohon dalam prosesnya.  Dalam struktur pohon dikenal dengan terminologi parent (orang tua) dan child (anak).  Parent (orang tua) yaitu sebuah simpul yang memiliki lintasan ke simpul lain dengan tingkatan (level) di bawahnya.  Child (anak) yaitu sebuah simpul yang memiliki lintasan ke simpul lain dengan tingktan (level) di atasnya.
  • 18. Pohon Huffman(2)  Beradasarkan jumlah anak pohon huffman dikategorikan : •Uner : pohon dengan orang tua yang hanya memiliki satu anak •Biner : pohon dengan orang tua yang memiliki dua anak
  • 19. Algoritma Huffman  Pengkodean dengan huffman coding menggunakan panjang bit yang bervariasi dalam pengkodean sebuah karakter.  Karakter dengan frekuensi kemunculan lebih besar memiliki panjang bit yang lebih pendek.
  • 20. Langkah-langkah Algoritma Huffman 1. Hitung statistik (frekuensi) jumlah kemunculan masing-masing simbol. 2. Simpan hasil informasi bobot masing- masing simbol. 3. Membangun pohon huffman berdasarkan larik bobot dari masing-masing simbol. 4. Konversi pohon huffman menjadi kode spesifik untuk tiap simbol.
  • 21. Contoh  Berikut ini adalah sebuah contoh cara pengkodean sebuah string. Misalkan kita akan mengkodekan sebuah string “AABCABC”.  Dalam kode ASCII string 7 huruf “AABCABC” membutuhkan representasi 7 × 8 bit = 56 bit (7 byte), dengan rincian sebagai berikut: •A = 01000001 •A = 01000001 •B = 01000010 •C = 01000011 •A = 01000001 •B = 01000010 •C = 01000011
  • 22. Pemecahan Masalah  Berdasarkan algoritma yang telah disebutkan sebelumnya, maka kita pertama kali akan menghitung frekuensi kemunculan dari setiap karakater.  String: AABCABC Simbol Frekuensi A 3 B 2 C 2
  • 23. Pemecahan Masalah (2)  Berdasarkan tabel maka dapat disusun model pohon Huffman-nya:
  • 24. Pemecahan Masalah (3)  Berdasarkan pohon Huffman yang ditunjukan pada hasil di atas maka dapat ditentukan kode huffman untuk masing-masing setiap simbol yang dalam string “AABCABC”.
  • 25. Hasil Kompresi  Berdasarkan tabel Huffman maka rangkaian bit dari string AABCABC adalah: 0 0 10 11 0 10 11  Jadi jumlah bit yang dipakai hanya 11 bit (2 byte), lebih hemat dari jumlah bit sebelumnya (56 bit).
  • 26. Analisa  Dari Tabel Huffman tampak bahwa kode untuk sebuah simbol/karakter tidak boleh menjadi awalan dari kode simbol yang lain guna menghindari keraguan (ambiguitas) dalam proses dekompresi atau decoding.  Karena tiap kode Huffman yang dihasilkan unik, maka proses dekompresi dapat dilakukan dengan mudah.
  • 27. Dekompresi  Saat membaca kode bit pertama dalam rangkaian bit: 0 0 10 11 0 10 11 yaitu bit 0, dapat langsung disimpulkan bahwa kode bit “0” merupakan pemetaan dari simbol “A”. Bit kedua juga “A”.  Baca kode bit selanjutnya, yaitu bit “1”, tidak ada kode Huffman “1”, lalu baca kode Huffman selanjutnya yaitu “0” sehingga menjadi “10” yaitu karakter “B”.  Begitu seterusnya…
  • 28. Static Huffman Coding(1)  Frekuensi karakter dari string yang akan dikompres dianalisa terlebih dahulu. Selanjutnya dibuat pohon huffman yang merupakan pohon biner dengan root awal yang diberi nilai 0 (sebelah kiri) atau 1 (sebelah kanan), sedangkan selanjutnya untuk dahan kiri selalu diberi nilai 1(kiri) - 0(kanan) dan di dahan kanan diberi nilai 0(kiri) – 1(kanan)  A bottom-up approach = frekuensi terkecil dikerjakan terlebih dahulu dan diletakkan ke dalam leaf(daun).  Kemudian leaf-leaf akan dikombinasikan dan dijumlahkan probabilitasnya menjadi root diatasnya.
  • 29. Static Huffman Coding(2)  Mis: MAMA SAYA A = 4 -> 4/8 = 0.5 M = 2 -> 2/8 = 0.25 S = 1 -> 1/8 = 0.125 Y = 1 -> 1/8 = 0.125 Total = 8 karakter Sehingga w(A) = 1, w(M) = 00, w(S) = 010, dan w(Y) = 011
  • 30. Latihan  Buatlah tabel Huffman untuk kompresi string ABACCDA (Kerjakan dengan lengkap tahap-tahapnya)!
  • 31. Shannon-Fano Algorithm(1)  Dikembangkan oleh Shannon (Bell Labs) dan Robert Fano (MIT)  Pada dasarnya cara kerja dari algoritma Shannon-Fano ini sama persis dengan Huffman. Algoritma ini membentuk sebuah pohon, kemudian mengencodingnya, dan yang terahir adalah mengembalikannya dalam bentuk karakte teks atau decoding.
  • 32. Shannon-Fano Algorithm(2)  Hanya saja perbedaan yang fundamental terdapat pada pembuatan pohon.  Pembuatan pohon pada Shannon-Fano dibuat berdasarkan proses dari atas ke bawah – berbeda dengan huffman yang membuat pohon dari bawah ke atas.
  • 33. Shannon-Fano Algorithm(3)  Algoritma : 1.Urutkan simbol berdasarkan frekuensi kemunculannya dari besar ke kecil 2.Bagi simbol menjadi 2 bagian secara rekursif, dengan jumlah yang kira-kira sama pada kedua bagian, sampai tiap bagian hanya terdiri dari 1 simbol.
  • 34. Contoh  Contoh terdapat 5 simbol-simbol yang dapat dikodekan memiliki frekuensi berikut: A = 15 ; B = 7 ; C = 6 ; D = 6 ; E = 5  Semua simbol-simbol yang diurutkan berdasarkan frekuensi, dari kiri ke kanan (ditunjukkan pada Gambar a. Menempatkan garis pemisah antara simbol-simbol B dan C menghasilkan total 22 di grup kiri dan total 17 di kelompok yang tepat.
  • 35. Contoh  Dengan pembagian ini, A dan B akan masing- masing memiliki kode yang dimulai dengan 0 bit, dan C, D, dan E kode akan semua mulai dengan 1, seperti ditunjukkan pada Gambar b.  Kemudian, di sebelah kiri setengah dari pohon mendapat divisi baru antara A dan B, yang menempatkan A pada daun dengan kode 00 dan B pada daun dengan kode 01.
  • 36.  Setelah empat divisi prosedur, dihasilkan pohon kode. Pohon di final, tiga simbol dengan frekuensi tertinggi semuanya telah ditugaskan 2-bit kode, dan dua simbol yang lebih rendah memiliki 3-bit kode seperti ditunjukkan gambar berikut:
  • 37.
  • 38. Latihan  Misal terdapat lima karakter A; B; C; D; E. • Frek A : 0,45 • Frek B : 0,15 • Frek C : 0,15 • Frek D : 0,13 • Frek E : 0,12  Lakukan kompresi menggunakan metode Huffman dan Shanon-fano
  • 39.  Jika direpresentasikan pada pohon huffman maka akan menjadi sebagai berikut :
  • 40.  Melihat dari hasil pembentukan bit baru (hasil encoding), karakter A yang sering muncul (probabilitas hingga 0,45) hanya memiliki satu bit saja yaitu 0. Kompresi seperti ini yang membuat algoritma menjadi lebih efektif karena pohon terbentuk dari bawah (probabilitas kecil atau umum) ke atas (probabilitas besar atau sering).
  • 41.  Sedangkan pada pohon shannon-fano akan terbentuk seperti ini :
  • 42.  Secara sekilas, pohon shannon-fano ini memang tampak lebih ringkas, tetapi jika kita amati baik- baik, terdapat kelemahan di dalamnya.  Untuk memperjelas, akan diilustrasikan dengan angka, misal total dari seluruh kemunculan karakter tersebut adalah 100, maka
  • 43.  Berdasarkan pohon huffman, maka encoding menjadi  Penghitungan kapasitas memori yang dipakai yaitu : Kemunculan karakter X jumlah bit Total memori (untuk ABCDE) = 45x1bit + 15x3bit + 15x3bit + 13x3bit + 12x3bit = 210 bit
  • 44.  Berdasarkan pohon shannon-fano, maka proses encoding menjadi  Dengan perhitungan jumlah kapastias memori yang sama seperti di atas, maka didapat untk total memori yaitu 45x2bit + 15x2bit + 15x2bit + 13x3bit + 12x3bit = 225 bit.
  • 45. KOMPRESI TEKS (2) Dr. Lily Wulandari
  • 46. Run-Length-Encoding (RLE)  Kompresi data teks dilakukan jika ada beberapa huruf yang sama yang ditampilkan berturut-turut:  Mis: Data: ABCCCCCCCCDEFGGGG = 17 karakter  RLE tipe 1 (min. 4 huruf sama) : ABC! 8DEFG!4 = 11 karakter
  • 47. Run-Length-Encoding (RLE)  RLE menggunakan suatu karakter yang tidak digunakan dalam teks tersebut seperti misalnya ‘!’ untuk menandai.  Kelemahan? Jika ada karakter angka, mana tanda mulai dan akhir?
  • 48. Run-Length-Encoding (RLE)  RLE ada yang menggunakan flag bilangan negatif u/ menandai batas sebanyak jumlah karakter tsb.  Berguna untuk data yang banyak memiliki kesamaan, misal teks ataupun grafik seperti icon atau gambar garis-garis yang banyak memiliki kesamaan pola.
  • 49. Run-Length-Encoding (RLE)  Misal data : ABCCCCCCCCDEFGGGG = 17 karakter RLE tipe 2: -2AB8C-3DEF4G = 12 karakter  Misal data : AB12CCCCDEEEF = 13 karakter RLE tipe 2: -4AB124CD3EF = 12 karakter
  • 50. Run-Length-Encoding (RLE)  Best case: untuk RLE tipe 2 adalah ketika terdapat 127 karakter yang sama sehingga akan dikompres menjadi 2 byte saja.  Worst case: untuk RLE tipe 2 adalah ketika terdapat 127 karakter yang berbeda semua, maka akan terdapat 1 byte tambahan sebagai tanda jumlah karakter yang tidak sama tersebut.
  • 51. Dictionary-Based Coding(1)  Algoritma Lempel-Ziv-Welch (LZW) menggunakan teknik adaptif dan berbasiskan “kamus”.  Pendahulu LZW adalah LZ77 dan LZ78 yang dikembangkan oleh Jacob Ziv dan Abraham Lempel pada tahun 1977 dan 1978. Terry Welch mengembangkan teknik tersebut pada tahun 1984.  LZW banyak dipergunakan pada UNIX, GIF, V.42 untuk modem.
  • 52. Dictionary-Based Coding(2) Algoritma Kompresi: BEGIN S = next input character; While not EOF { C = next input character; If s + c exists in the dictionary S = s + c Else { Output the code for s; Add string s + c to the dictionary with a new code S = c; } } END
  • 53. Dictionary-Based Coding(3)  Contoh, jika terdapat dictionary sederhana awalnya 3 karakter dengan code berikut:  Jika terdapat input string ABABBABCABABBA lakukan kompresi dengan algoritma LZW Code String 1 A 2 B 3 C
  • 54.
  • 55. Dictionary-Based Coding(4) Algoritma Dekompresi: BEGIN S = NULL; while not EOF { K = NEXT INPUT CODE; Entry = dictionary entry for K; Ouput entry; if(s != NULL) add string s + entry[0] to dictionary with new code S = Entry; } END
  • 56. Dictionary-Based Coding(5)  Contoh Dekompresi  Input : 1 2 4 5 2 3 4 6 1  Hasil Dekode: ABABBABCABABBA
  • 57. Aplikasi Kompresi(1)  ZIP File Format •Ditemukan oleh Phil Katz untuk program PKZIP kemudian dikembangkan untuk WinZip, WinRAR, 7-Zip. •Berekstensi *.zip dan MIME application/zip •Dapat menggabungkan dan mengkompresi beberapa file sekaligus menggunakan bermacam-macam algoritma, namun paling umum menggunakan Katz’s Deflate Algorithm.
  • 58. Aplikasi Kompresi(2)  Beberapa metode Zip: •Shrinking : merupakan metode variasi dari LZW •Reducing : merupakan metode yang mengkombinasikan metode same byte sequence based dan probability based encoding. •Imploding : menggunakan metode byte sequence based dan Shannon-Fano encoding. •Deflate : menggunakan LZW •Bzip2, dan lain-lain  Aplikasi: WinZip oleh Nico-Mak Computing
  • 59. Aplikasi Kompresi(3)  RAR File •Ditemukan oleh Eugene Roshal, sehingga RAR merupakan singkatan dari Roshal Archive pada 10 Maret 1972 di Rusia. •Berekstensi .rar dan MIME application/x-rar- compressed •Proses kompresi lebih lambat dari ZIP tapi ukuran file hasil kompresi lebih kecil. •Aplikasi: WinRAR yang mampu menangani RAR dan ZIP, mendukung volume split, enkripsi AES.
  • 60. Latihan  Jika terdapat dictionary sederhana awalnya 3 karakter dengan code berikut:  Jika terdapat input string CAABBACABAB lakukan kompresi dengan algoritma LZW Code String 1 A 2 B 3 C