• Tidak ada hasil yang ditemukan

Implementasi Dan Analisis Algoritma Dynamic Markov Compression (DMC) Pada File Text

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Dan Analisis Algoritma Dynamic Markov Compression (DMC) Pada File Text"

Copied!
89
0
0

Teks penuh

(1)

LISTING PROGRAM

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCom.Click

Dim i As Integer Dim ln As Integer Dim sw As Stopwatch sw = Stopwatch.StartNew()

intext = System.Text.Encoding.Default.GetBytes(txtInput.Text) Call Kompresi(intext)

txtWaktu.Text = sw.ElapsedMilliseconds.ToString() btnSave.Enabled = True

dlgSave.Filter = "DMC File (*.dmc)|*.dmc" MsgBox("Kompresi selesai!!")

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDecom.Click

(2)

intext = System.Text.Encoding.Default.GetBytes(txtInput.Text)

txtWaktu.Text = sw.ElapsedMilliseconds.ToString() btnSave.Enabled = True

dlgSave.Filter = " DOCX File (*.docx)|*.docx|ODT File (*.odt)|*.odt" MsgBox("Dekompresi selesai!!")

End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpen.Click

Dim strfilename As String

(3)

ElseIf formatfile = ".odt" Then miss, miss, miss, miss, miss, miss, miss, miss, miss)

(4)

num = FreeFile()

(5)

Dim wordapp = New Application

txtRasio.Text = Math.Round((Val(txtBFawal.Text) / Val(txtBFakhir.Text)) * 100, 2) MsgBox("Simpan file selesai!!")

End If End Sub

(6)

txtBFawal.Text = "0"

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Private Sub TentangToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TentangToolStripMenuItem.Click

frmTentang.ShowDialog() End Sub

Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click

Me.Close() End Sub End Sub

Private Sub frmMain_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing

cover.Close() End Sub

Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs)

End Sub

Private Sub txtRasio_TextChanged(sender As Object, e As EventArgs) Handles txtRasio.TextChanged

(7)

Kode Program Class Algoritma DMC

Module mainmod

Public Const MAX_LENGTH As Integer = 30000 Public intext(), outtext(), OutByteBuf As Byte Private OutPos, OutBitCount As Integer Private Const MaxBits As Integer = 24 Public Sub Kompresi(ByRef listarr() As Byte)

(8)
(9)

outtext(OutPos) = OutByteBuf

Public Sub Dekompresi(ByRef listarr() As Byte) Dim InpPos As Integer

Value = ReadBitsFromArray(listarr, InpPos, InBitPos, MaxBits) Index = -1

(10)

Zero(i) = 1

(11)

If OutPos > UBound(outtext) Then ReDim Preserve outtext(OutPos + 500) End If

End If End Sub

Private Function ReadBitsFromArray(ByRef FromArray() As Byte, ByRef FromPos As Integer, ByRef FromBit As Integer, ByRef NumBits As Integer) As Integer

Dim i As Integer

(12)

CURRICULUM VITAE

Nama : Fiktaruddin

Tempat/Tanggal Lahir : Medan, 15 Maret 1991

Agama : Islam

Alamat Sekarang : Jl. Rajawali No.23F Medan Sunggal

Alamat Orang Tua : Jl. Medan-B.Aceh, Simp.Mulieng Aceh Utara Telp/ Hp : 081376278380

Email : udininthecity@gmail.com

Riwayat Pendidikan

2006 – 2009 : SMA Al-Azhar Medan

2003 – 2006 : SMP Negeri 1 Simp.Mulieng, Syamtalira Aron 1997 – 2003 : SD Negeri 1 Simp.Mulieng, Syamtalira Aron

Pengalaman Organisasi dan Kegiatan Ilmiah

 Anggota di bagian Biro Kesekretariatan Ikatan Mahasiswa S1 Ilmu Komputer (IMILKOM), 2010-2012

 Praktek Kerja Lapangan di Bank Sumut Cabang Pembantu Setia Budi Medan, Juli-Agustus 2012

(13)

Daftar Pustaka

[1] Nurjaman, Yusup. 2011. Penerapan Metode Pembelajaran CS Unplugged Text Compression Untuk Meningkatkan Hasil Belajar Siswa Pada materi

Dasar Pemrograman. Skripsi. Indonesia: Universitas Pendidikan Indonesia.

[2] Pratama, Andre. 2010. Studi Perbandingan Kinerja Algoritma Kompresi Lempel Ziv 77, Lempel Ziv 78, Dan Lempel Ziv Welch Pada File Text.

Skripsi. Medan, Indonesia: Unversitas Sumatera Utara.

[3] Putra, Darma. 2010. Pengolahan Citra Digital. Yogyakarta: penerbit Andi. [4] Razi, Fahrur. 2009. Analisis Pengaruh Panjang Bit Kode Pada Kinerja

Program Kompresi Yang Menggunakan Algoritma Lempel Ziv Welch

(LZW). Skripsi. Medan, Indonesia: Universitas Sumatera Utara.

[5] Salomon, David. 2004. Data Compression – The Complete Reference. Edisi 3. New York. Penerbit: Springer.

[6] Santi, Ririani. 2010. Perancangan Perangkat Lunak Kompresi File Citra Dengan Menggunakan Algoritma Run Length Encoding (RLE). Skripsi. Medan, Indonesia: Universitas Sumatera Utara.

[7] Sarifah. 2010. Analisis Kinerja dan Implementasi Algoritma Kompresi Arithmetic Coding Pada File Text dan Citra Digital. Skripsi. Medan, Indonesia: Universitas Sumatera Utara.

[8] Sarjono, Nessia Kartika. 2010. Analisis Model Rantai Markov Untuk Pemilihan Universitas Favorit Pilihan Siswa SMA di Bogor. Skripsi. Indonesia: Universitas Binus.

[9] Sutoyo,T., Mulyanto,E., Dwi,O. & Wijanarto. 2009. Teori Pengolahan Citra Digital. Yogyakarta: Andi.

[10] Sihombing, Wira Nov Kurnia. 2010. Implementasi Algoritma Kompresi Deflate Pada Data. Skripsi. Medan, Indonesia: Universitas Sumatera Utara.

(14)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

Setelah membaca bab ini maka pembaca akan memahami tentang analisis sistem, analisis masalah, analisis persyaratan, usecase, activity diagram, sequence diagram, flowchart, perancangan antar muka.

3.1. Analisis Sistem

Analisis sistem merupakan tahap awal dalam sebuah penelitian untuk memahami sesuatu yang dibutuhkan sistem dan menggambarkan proses-proses yang ada di dalam sistem untuk menghasilkan keluaran yang sesuai dengan kebutuhan user. Pada tahapan ini memilih kebutuhan yang paling sesuai untuk sistem yang sangat penting dalam pengembangan sistem tersebut.

3.1.1. Analisis Masalah

Analisis masalah yang akan dilakukan adalah bagaimana cara mengkompresi dan mendekompresi file text dengan format .docx dan .odt dengan menggunakan algoritma Dynamic Markov Compression (DMC).

(15)

Metode

File .docx dan odt sebagai Input awal

Gambar 3.1 Diagram Ishikawa Untuk Analisa Masalah

3.1.2. Analisis Persyaratan

Analisis Persyaratan pada suatu sistem terdiri dari 2 (dua) macam yaitu analisis persyaratan fungsional dan analisis persyaratan non-fungsional.

3.1.2.1. Persyaratan Fungsional

Persyaratan fungsional adalah aktivitas layanan yang harus diberikan oleh sebuah sistem. Berikut adalah fungsi-fungsi yang dapat dikerjakan oleh sistem.

1. Masukan yang berupa file text yaitu yang memiliki format .docx dan .odt. 2. Sistem dapat melakukan proses kompresi dan dekompresi dengan algoritma

Dynamic Markov Compression (DMC)

3. Sistem dapat menampilkan hasil perubahan file text setelah di kompresi melalui panjang karakter dan rasio

3.1.2.2. Persyaratan Non-Fungsional

Persyaratan non-fungsional berkaitan dengan fitur, karakteristik, dan batasan lainnya yang menentukan apakah sistem memuaskan atau tidak. Untuk membantu kinerja sistem secara lebih baik, terdapat kebutuhan non-fungsional sistem yaitu:

1. Tampilan antarmuka sistem dapat dimengerti oleh user atau pengguna sistem. 2. Efektifitas dan efisiensi dapat terlihat dari waktu respon antara pengguna

(16)

3. Sistem yang nantinya telah dibuat dapat dikembangkan dengan mudah sehingga sistem dapat tetap digunakan di masa yang akan datang.

4. Aplikasi yang dibangun tidak memerlukan biaya tambahan karena tidak memerlukan perangkat tambahan pendukung seperti perangkat keras pendukung atau layanan internet dan lain sebagainya.

3.2. Pemodelan Sistem

3.2.1. Use Case Diagram

Use case diagram ialah suatu diagram yang merupakan penggambaran teknik untuk merekam persyaratan fungsional suatu sistem. Use case berfungsi untuk menggambarkan interaksi antara pengguna sistem dengan sistem itu sendiri kemudian memberi suatu penjelasan bagaimana sistem tersebut digunakan. Berikut ini merupakan use case diagram dari sistem yang dirancang dan dibangun oleh penulis yang dapat dilihat pada gambar 3.2.

Sistem Kompresi dan

(17)

Spesifikasi Use Case untuk Kompresi DMC terdapat dalam diagram use case dijabarkan pada Tabel 3.1.

Tabel 3.1 Spesifikasi Use Case untuk Kompresi DMC

Name Kompresi

Actors User

Description User menginputkan file text untuk diproses dengan algoritma DMC

Preconditions Aplikasi dalam keadaan standby siap untuk menerima masukkan file text

Post Conditions Aplikasi akan menampilkan hasil dari algoritma DMC Success Scenario 1. User telah menginputkan file dengan format .odt/.docx

2. User mengakses tombol Kompresi

3. Sistem akan menampilkan hasil dari kompresi dengan algoritma DMC

Alternative Flows -

Spesifikasi Use Case untuk Dekompresi DMC yang terdapat dalam diagram use case dijabarkan pada Tabel 3.2.

Tabel 3.2 Spesifikasi Use Case untuk Dekompresi DMC

Name Dekompresi

Actors User

Description User menginputkan file text untuk diproses dengan algoritma DMC

Preconditions Aplikasi dalam keadaan standby siap untuk menerima masukkan file text

Post Conditions Aplikasi akan menampilkan hasil dari algoritma DMC Success Scenario 1. User telah menginputkan file dengan format .odt/.docx

2. User mengakses tombol Dekompresi

3. Sistem akan menampilkan hasil dari dekompresi dengan algoritma DMC

(18)

3.2.2. Activity Diagram

Activity diagram ialah diagram yang berfungsi untuk menggambarkan logika procedural, jalan kerja suatu sistem. Diagram ini hampir memiliki peran yang sama dengan diagram alir yang mana memungkinkan siapapun yang melakukan proses untuk dapat memilih urutan dalam melakukan kinerja sistem sesuai yang diinginannya. a. Activity Diagram Untuk Kompresi DMC

Pada activity diagram ini proses diawali dengan menginputkan file text kemudian memilih tipe data yang dilakukan oleh user. Setelah di inputkan sistem membaca isi file tersebut, kemudian user memproses dengan cara menekan tombol kompresi. Setelah itu dapat kita lihat hasil file kompresi tersebut. Kemudian Sistem dapat menyimpan file yang telah diproses. Activity diagram untuk proses Kompresi DMC dapat dilihat pada Gambar 3.3.

User menekan tombol open Open dialog

Baca file

User

Sistem

User menekan tombol simpan Pilih file text .docx || .odt

Sistem menampilkan isi file

User menekan tombol Kompresi

Kompresi DMC

Sistem mengkompresi file yang dipilih

Menyimpan berkas terkompresi ke direktori

(19)

b. Activity Diagram Untuk Dekompresi

Pada activity diagram ini proses diawali dengan menginputkan file text yang telah di kompresi yang dilakukan oleh user. Setelah di inputkan sistem membaca isi file tersebut, kemudian user memproses dengan cara menekan tombol dekompresi. Setelah itu dapat kita lihat hasil file dekompresi tersebut. Kemudian Sistem dapat menyimpan file yang telah diproses dan memilih tipe datanya. Activity diagram untuk proses Dekompresi DMC dapat dilihat pada Gambar 3.3.

User menekan tombol open Open dialog

Baca file

User

Sistem

User menekan tombol simpan Input file yang terkompresi

Sistem menampilkan isi file

User menekan tombol Dekompresi

Dekompresi DMC

Sistem mendekompresi file

Sistem Menyimpan User memilih .docx/.odt

(20)

3.2.3. Sequence Diagram

Sequence diagram merupakan diagram yang mengambarkan bagaimana objek-objek saling bersinergi dalam beberapa kebiasaan (behavior). Sequence diagram menunjukkan sejumlah contoh maupun pesan yang berada atau melewati objek-objek tersebut didalam use case. Berikut ini merupakan gambaran dari sequence diagram dari sistem yang telah dirancang dan dibangun oleh penulis yang dapat dilihat pada Gambar 3.5 dan Gambar 3.6.

: Kompresi Berkas : Input Berkas

Input berkas *.docx || *.odt

: Baca Isi Berkas

Baca isi berkas

: Simpan Berkas Terkompresi

Berkas *.dmc

Gambar 3.5 Sequence Diagram Kompresi DMC

: Dekompresi Berkas : Input Berkas

Pilih berkas *.docx || *.odt

: Baca Isi Berkas

Baca isi berkas

: Simpan Berkas Terdekompresi

Input berkas *.dmc

(21)

3.2.4. Flowchart

3.2.4.1Flowchart Kompresi

Start

Buka File

End Rasio Start

Input File .docx || .odt

Ubah Karakter menjadi ASCII

Simpan File Hasil Kompresi

File Menghitung nilai

minValue

Ubah nilai minValue ke ASCII, ASCII

ubah ke karakter

Gambar 3.7 Flowchart Kompresi

(22)

3.2.4.2Flowchart Dekompresi

Start

Buka File

End Rasio

Start

Input File .dmc

Simpan File .docx || .odt Ubah Karakter menjadi ASCII

Hasil Dekompresi

File Menghitung nilai

maxValue

Ubah nilai maxValue ke ASCII, ASCII

ubah ke karakter

Gambar 3.8 Flowchart Dekompresi

(23)

3.3 Perancangan Antar Muka

Antarmuka merupakan bentuk tampilan grafis yang berhubungan langsung dengan pengguna (user). Perancangan antarmuka akan disesuaikan dengan kebutuhan dan software yang digunakan. Sistem ini dirancang dan dibangun dengan bahasa pemrograman vb.Net dengan software Microsoft Visual Studio. Antar muka terdiri dari form cover,form utama, form help, dan form about.

3.3.1 Form Interface Cover

Pada form Menu utama sistem dapat menekan tombol masuk yang tersedia. Tampilan rancangan form Menu Utama dapat dilihat pada gambar 3.9.

X

Aplikasi DMC

Implementasi dan Analisis Algoritma Dynamic Markov Compression (DMC) pada File Text

Lambang USU

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2014

1

2

NAMA NIM

(DMC)

(24)

Komponen yang dipakai ntuk membangun antar muka form Menu Utama pada gambar 3.9 dapat dilihat pada tabel 3.3 berikut:

Tabel 3.3 Rincian Rancangan Form Interface Cover

No. Tipe Teks Nama Keterangan

1. Button (DMC) button1 tombol untuk masuk ke

form berikutnya

2. PictureBox - pictureBox1 menampilkan judul,

nama, nim, dan logo usu yang berupa gambar

Pada tabel 3.3 merupakan penjelasan dari komponen-komponen yang dipakai untuk membangun antar muka form cover

3.3.2 Interface Form Menu Utama

Pada form menu utama akan di inputkan file text yang nantinya akan di proses kompresi dan dekompresi dengan algoritma DMC.

X

Gambar 3.10 Interface Form Menu Utama

(25)

Tabel 3.4 Rincian Rancangan Form Interface Menu Utama

No Tipe Teks Nama Keterangan

1. MenuStrip File MenuStrip1 Terdapat beberapa sub menu 2. MenuStrip About MenuStrip2 Terdapat submenu untuk

beralih ke form About

3. MenuStrip Help MenuStrip3 Terdapat submenu untuk beralih ke form help

4. TextBox - txtInput untuk menampilkan isi file

text yang di pilih 5. Label Besar File (Byte) label1 -

6. Label Panjang Karakter label2 -

7. TextBox - txtBFawal Menampilkan besar file

8. TextBox - txtPKawal Menampilkan Panjang

karakter

9. Button Open btnOpen Untuk menginputkan file text

yang dipilih

10. Button Save btnSave Untuk menyimpan hasil file text yang di kompresi atau dekompresi

11. Button Kompresi btnCom Untuk menjalankan proses kompresi

12. Button Dekompresi btnDecom Untk menjalankan proses dekompresi

13. Button Reset btnReset Untuk mengulang proses

mulai dari awal

14. TextBox - txtOutput Untuk menampilkan hasil file

(26)

No Tipe Teks Nama Keterangan

15. Label Besar File (Byte) label3 - 16. Label Panjang Karakter label4 -

17 Label Rasio File (%) label6 -

18 Label Durasi Kerja (ms) label5 -

19 TextBox - txtBFakhir Untuk menampilkan besar

file yang setelah diproses

20 TextBox - txtPKakhir Untuk menampilkan panjang

karakter yang setelah diproses

21 TextBox - txtRasio Untuk menampilkan rasio file

setelah diproses

22 TextBox - txtWaktu untuk menampilkan durasi

kerja setelah diproses

(27)

BAB 4

IMPLEMENTASI DAN PENGUJIAN

Setelah membaca bab ini maka pembaca akan memahami pengertian tentang implementasi sistem, pengujian sistem, hasil pengujian algoritma DMC pada file text.

4.1 Implementasi Sistem

Setelah tahap analisis dan perancangan sistem, selanjutnya akan dilakukan tahap implementasi dan pengujian terhadap sistem yang telah dibangun. Implementasi sistem harus sesuai dengan analisis dan perancangan sistem. Penjelasan tentang implementasi sistem dilakukan untuk mengetahui hasil dari aplikasi yang dirancang, dan pengujian sistem dilakukan untuk membuktikan kebenaran proses kompresi dan dekompresi yang berjalan pada sistem.

Sistem ini menggunakan algoritma DMC untuk mengkompresi file text yaitu berformat .docx dan .odt. Setelah dilakukan kompresi, kemudian sistem akan menampilkan keterangan file text yang telah terkompresi. Misalnya ukuran citra awal yang terkompresi, waktu yang dibutuhkan untukproses kompresi, rasio awal dan rasio akhir. Berikut adalah proses perhitungan untuk kompresi file.

(28)

Bit Set = (mChar And (2 ^ (7 - i))) And &HFF

Setelah itu mencari/menampilkan MaxValue dan MinValue.

MaxValue

0 1 2 3 4 5 6 7

(29)

9256096 9086413 16188095 15598975 11074080 8811632 11111623 13173449 8648548 16004269 15231323 13384424 10306260 10306260 12627679 8478143 8478143 15822007 14866799 12896773 9519585 9519585 9519585 9047823 9047823 8656944 8656944 16634495 14506378 12235541 12235541 9733918 9733918 9546296 9546296 9396199 15465727 12619423 8824352 12673031 8877956 8532949 8532949 16225471 14570239 11521630 11521630 9997326 9997326 9827959 9827959 9686820 10385703 9564527 9564527 9071822 9971247 9516441 9516441 9131605 12693883 15631639 14486063 9547332 9547332 9370949 9370949 9219763 13298495 11437746 10470499 16655135

MinValue

0 1 2 3 4 5 6 7

0 0 4194304 0 0 4194306 8 16

4194326 88 3728365 3728365 7456730 2554944 231740 463480 926960 926960 3136311 6272622 6272622 8136762 5088728 5088728 7574249 7574249 7773091 7773091 8282126 3147520 7219904 7219904 8238000 8238000 7138304 6549184 6549184 6549184 2061824 4123648 4123648 8247296 4149932 4149932 4149932 5381198 4747576 3224740 5851442 6628552 1076616 1076616 1076616 2483778 6001682 2012008 5529916 5529916 6224811 8122028 8122028 1290940 5981483 5981483 7857700 7857700 8195419 8195419 6926816 6926816 6926816 5082880 5082880 5082880 5710165 6063444 2375804 2375804 6948717 6948717 7964920 7964920 8275426 8275426 6279824 6279824 7593705 7593705 4058768 4058768 4898410 4898410 2816424 5754176 4608600 4608600 7077966 7077966 7405535 7405535 2134000 2134000 4268000 115128 Kemudian dengan mendapatkan nilai MaxValue dan MinValue setelah itu mencari RangValue dengan cara MaxValue-MinValue.

RangValue = MaxValue – MinValue

0 1 2 3 4 5 6 7

(30)

5912479 5457673 4618031 4233195 9877459 9877463 9877463 4938732 2469366 2292983 1965414 1814228 11164495 9303746 6202499 16540007 Setelah tu mencari MidValue dengan cara seperti berikut.

MidValue = MinValue + (RangValue * (Zero(Index) / (One(Index) + Zero(Index))))

0 1 2 3 4 5 6 7

8388608 4194304 6291456 4194306 4194306 6291460 4194318 4194326 6990533 3728365 8699401 7042389 9666080 8446543 6123342 6355082 9764364 3136311 8107351 13729183 8136762 10932972 8817010 7574249 8568458 7773091 8409385 8282126 8345756 7219904 9256096 8238000 9086413 8379402 11663200 11074080 8811632 7680408 6586724 8648548 8002134 10463574 13384424 10306260 5381198 7351223 10000978 5851442 8149805 8926916 12896773 9519585 2483778 6001682 8640109 5529916 8656944 6224811 8352927 14506378 9034078 5981483 9733918 7857700 9546296 8195419 9396199 9129359 12619423 8824352 7875584 8877956 8532949 5710165 8250671 13176863 11521630 6948717 9997326 7964920 9827959 8275426 9686820 9173586 9564527 7593705 9071822 7963234 9516441 4898410 9131605 7367774 4051106 10692908 9547332 7077966 9370949 7405535 9219763 8521983 11437746 5235249 8402999 8385132

If MidValue = MinValue Then MidValue = MidValue + 1 If MidValue = MaxValue - 1 Then MidValue = MidValue - 1 Max Value selanjutnya

If Bitset > 0 Then

Niilai minvalue diganti dengan nilai midvalue jika bitset lebih besar dari 0 MinValue = MidValue

One(Index) = One(Index) + 1 Else

Nilai maxvalue diganti dengan nilai midvalue jika bitset lebih kecil sama dengan 0 MaxValue = MidValue

Zero(Index) = Zero(Index) + 1

End If

Setelah itu dapatlah nilai – nilai ASCII akhir yaitu : 73

(31)

150

Akhirnya nilai ASCII ini berubanh menjadi karakter – karakter simbol :

73= I, 97= a, 126= ~, 253= ý, 150= –, 227= ã, 139= ‹, 120= x, 233= é, 194=Â, 224= à, 220= Ü, 63= ?.

Hasil akhir adalah: Ia~ý–ã‹xéÂàÜ?

Berikut adalah proses perhitungan untuk kompresi file Index = (1 * (2 ^ i)) - 1 + mChar

Setelah itu mencari/menampilkan MaxValue dan MinValue. MaxValue

0 1 2 3 4 5 6 7

(32)

8478143 15822007 14866799 12896773 9519585 9519585 9519585 9047823 9047823 8656944 8656944 16634495 14506378 12235541 12235541 9733918 9733918 9546296 9546296 9396199 15465727 12619423 8824352 12673031 8877956 8532949 8532949 16225471 14570239 11521630 11521630 9997326 9997326 9827959 9827959 9686820 10385703 9564527 9564527 9071822 9971247 9516441 9516441 9131605 12693883 15631639 14486063 9547332 9547332 9370949 9370949 9219763 13298495 11437746 10470499 16655135

MinValue

0 1 2 3 4 5 6 7

0 0 4194304 0 0 4194306 8 16

4194326 88 3728365 3728365 7456730 2554944 231740 463480 926960 926960 3136311 6272622 6272622 8136762 5088728 5088728 7574249 7574249 7773091 7773091 8282126 3147520 7219904 7219904 8238000 8238000 7138304 6549184 6549184 6549184 2061824 4123648 4123648 8247296 4149932 4149932 4149932 5381198 4747576 3224740 5851442 6628552 1076616 1076616 1076616 2483778 6001682 2012008 5529916 5529916 6224811 8122028 8122028 1290940 5981483 5981483 7857700 7857700 8195419 8195419 6926816 6926816 6926816 5082880 5082880 5082880 5710165 6063444 2375804 2375804 6948717 6948717 7964920 7964920 8275426 8275426 6279824 6279824 7593705 7593705 4058768 4058768 4898410 4898410 2816424 5754176 4608600 4608600 7077966 7077966 7405535 7405535 2134000 2134000 4268000 115128 Kemudian dengan mendapatkan nilai MaxValue dan MinValue setelah itu mencari RangValue dengan cara MaxValue-MinValue.

RangValue = MaxValue – MinValue

0 1 2 3 4 5 6 7

(33)

Setelah tu mencari MidValue dengan cara seperti berikut.

MidValue = MinValue + (RangValue * (Zero(Index) / (One(Index) + Zero(Index))))

0 1 2 3 4 5 6 7

8388608 4194304 6291456 4194306 4194306 6291460 4194318 4194326 6990533 3728365 8699401 7042389 9666080 8446543 6123342 6355082 9764364 3136311 8107351 13729183 8136762 10932972 8817010 7574249 8568458 7773091 8409385 8282126 8345756 7219904 9256096 8238000 9086413 8379402 11663200 11074080 8811632 7680408 6586724 8648548 8002134 10463574 13384424 10306260 5381198 7351223 10000978 5851442 8149805 8926916 12896773 9519585 2483778 6001682 8640109 5529916 8656944 6224811 8352927 14506378 9034078 5981483 9733918 7857700 9546296 8195419 9396199 9129359 12619423 8824352 7875584 8877956 8532949 5710165 8250671 13176863 11521630 6948717 9997326 7964920 9827959 8275426 9686820 9173586 9564527 7593705 9071822 7963234 9516441 4898410 9131605 7367774 4051106 10692908 9547332 7077966 9370949 7405535 9219763 8521983 11437746 5235249 8402999 8385132 If MidValue = MinValue Then MidValue = MidValue + 1

If MidValue = MaxValue - 1 Then MidValue = MidValue – 1

Untuk Value selanjutnya If Value >= MidValue Then

mChar dikali 2 dan ditambah 1 jika nilai value lebih besar dari midvalue mChar = (2 * mChar) + 1

Dan nilai minvalue menjadi midvalue jika nilai value lebih besar dari midvalue MinValue = MidValue

One(Index) = One(Index) + 1 Else

Dan mChar dikali 2jika nilai value lebih besar dari midvalue mChar = 2 * mChar

Nilai maxValue menjadi midvalue jika nilai value lebih besar dari midvalue MaxValue = MidValue

Zero(Index) = Zero(Index) + 1 End If

Setelah itu dapatlah nilai – nilai ASCII akhir yaitu : 73

(34)

85 32 75 79 77 80 85 84 69 82

Akhirnya nilai ASCII ini berubanh menjadi karakter – karakter simbol :

73= I, 76= L, 77= M, 85= U, 32= [Spasi], 75= K, 79= O, 77= M, 80= P, 85=U, 84= T, 69= E, 82= R.

Hasil akhir adalah: ILMU KOMPUTER

4.2 Pengujian Sistem

Pengujian untuk sistem ini dilakukan untuk mendapat hasil file yang dikompresi. Kriteria pengujian yang dilakukan adalah sebagai berikut :

1. File text yang digunakan adalah docx dan odt

2. Hasil file text dari Algoritma DMC dapat disimpan di dalam komputer. 3. File text yang di kompresi dapat di dekompresi kembali

(35)

4.2.1 Halaman Cover

Tampilan Halaman Cover dapat dilihat pada Gambar4.1.

Gambar4.1 Halaman Cover

Gambar4.1 merupakan tampilan awal atau cover ketika program mulai dijalankan.

Pada gambar tersebut terdapat button yang bernama “DMC” untuk mengakses

(36)

4.2.2 Menu Utama

Tampilan halaman Utama pada Aplikasi Kompresi dapat dilihat pada Gambar4.2.

Gambar4.2 Menu Utama

(37)

4.2.3 Halaman Menu About

Halaman menu About merupakan halaman yang digunakan untuk melihat informasi tentang program dan programmer, tampilan Menu About dapat dilihat pada Gambar4.3.

Gambar 4.3 Tampilan Halaman Menu About

4.2.4 Halaman Menu Help

(38)

Gambar 4.4 Halaman Menu Help

4.3 Tahap Pengujian

Tahap pengujian sistem merupakan lanjutan dari tahap yang sebelumnya telah dilakukan yaitu tahap implementasi sistem. Tahap pengujian sistem ini melakukan proses DMC pada file text.

4.3.1 Pengujian Kompresi dan Dekompresi File Text

Ada 2 jenis pengujian kompresi dan dekompresi file text, yaitu untuk file text berfomat .docx dan untuk file text berformat .odt. Langkah selanjutnya kita dapat memilih salah satu file tersebut.

4.3.1.1 Pengujian Kompresi dan Dekompresi Untuk File Text (.docx)

(39)

Langkah pertama yang dilakukan yaitu pemiliha file text terlihat pada Gambar 4.5  Open file .docx

Gambar 4.5 Pop Up Window hasil Open file .docx

Pengujian proses Open dapat dilakukan dengan memilih tombol Open, kemudian memilih file text .docx dan menampilkan isi file. Pada saat tombol Open dieksekusi maka akan muncul pop-up window Open untuk membuka file, Hasil dapat dilihat pada Gambar 4.6.

(40)

Setelah file text dipilih maka program akan menampilkan isi file yang dipilih, dan menampilkan besar file, panjang karakter pada sistem, untuk selanjutnya akan diproses. Proses tersebut dapat dilihat pada Gambar 4.6.

a. Proses Kompresi File .docx

Gambar 4.7 Proses Kompresi File .docx

(41)

 Proses Simpan Kompresi file .docx

Gambar 4.8 Pop Up Window Simpan Kompresi File .docx

Pengujian proses Simpan dapat dilakukan setelah proses kompresi maupun dekompresidilakukan, pada saat tombol simpan dieksekusi maka akan muncul pop-up window Open file untuk menentukan lokasi tempat file yang akan disimpan dan melakukan proses Simpan, dapat dilihat pada Gambar 4.8.

(42)

Gambar 4.9 merupakan hasil proses simpan file yang terkompresi, yang menampilkan hasil besar file setelah melalui proses kompresi dan juga menampilkan rasio file tersebut.

b. Proses Dekompresi File .docx

Pengujian proses dekompresi dapat dilakukan oleh user dengan menekan tombol open dan memilih tipe file .dmc yang berformat .docx saat terkompresi, untuk mengaktifkan tombol Dekompresi dan kemudian sistem akan menampilkan isi file text tersebut. Kemudian user memproses dekompresi dengan menekan tombol Dekompresi dan sistem akan menampilkan hasil akhirny, dimana hasil akhirnya akan menampilkan arti dari simbol-simbol yang ada. Setelah itu kita simpan untuk menampilkan rasionya.

 Open File Dekompresi

Gambar 4.10 Open File Dekompresi

(43)

Gambar 4.11 Hasil Buka File Dekompresi

Setelah file dipilih maka program akan menampilkan isi file yang dipilih, besar file, panjang karakter pada sistem, untuk selanjutnya akan diproses. Proses tersebut dapat dilihat pada Gambar 4.11.

 Dekompresi File .dmc

(44)

Pengujian proses dekompresi dapat aktif jika dilakukan proses Open terhadap file dmc. Setelah memilih tombol Dekompresi maka akan muncul hasil file text yang baru yang di dekompresi dengan hasil yang sama dari file kompresinya, dan muncul hasil panjang karakter setelah dekompresi dan menampilkan durasi kerja, akan tetapi besar file sesudah terdekompresi dan rasio akan tampil setelah file di simpan, dapat dilihat pada Gambar 4.14

 Proses Simpan Dekompresi File .dmc Menjadi .docx

Gambar 4.13 Pop Up Window Simpan Dekompresi File .docx

(45)

Gambar 4.14 Hasil Dekompresi File .docx

Gambar 4.14 merupakan hasil proses simpan file yang tederkompresi, yang menampilkan hasil besar file setelah melalui proses dekompresi dan juga menampilkan rasio file tersebut.

4.3.1.2 Pengujian Kompresi dan Dekompresi Untuk File Text .odt

(46)

Langkah pertama yang dilakukan yaitu pemilihan file text terlihat pada Gambar4.15  Open file .odt

Gambar 4.15 Pop Up Window Hasil Open File .odt

Pengujian proses Open dapat dilakukan dengan memilih tombol Open, kemudian memilih file text .odt dan menampilkan isi file. Pada saat tombol Open dieksekusi maka akan muncul pop-up window Open untuk membuka file, Hasil dapat dilihat pada Gambar 4.15.

(47)

Setelah file text dipilih maka program akan menampilkan isi file yang dipilih, besar file, panjang karakter pada sistem, untuk selanjutnya akan diproses. Proses tersebut dapat dilihat pada Gambar 4.16.

a. Proses Kompresi File .odt

Gambar 4.17 Proses Kompresi dengan File .odt

(48)

 Proses Simpan Kompresi File .odt

Gambar 4.18 Pop Up Window Simpan Kompresi File .odt

Pengujian proses Simpan dapat dilakukan setelah proses kompresi maupun dekompresidilakukan, pada saat tombol simpan dieksekusi maka akan muncul pop-up window Open file untuk menentukan lokasi tempat file yang akan disimpan dan melakukan proses Simpan, dapat dilihat pada Gambar 4.18.

(49)

Gambar 4.19 merupakan hasil proses simpan file yang tederkompresi dengan file .docx, yang menampilkan hasil besar file setelah melalui proses kompresi dan juga menampilkan rasio file tersebut.

b. Proses Dekompresi File.odt

Pengujian proses dekompresi untuk file .odt sama seperti proses dekompresi file .docx seperti yang telh dijelaskan sebelumnya. Sehingga user dapat dilakukan proses menekan tombol open dan memilih tipe file .dmc yang terkompresi, untuk mengaktifkan tombol Dekompresi dan kemudian sistem akan menampilkan isi file text tersebut. Kemudian user memproses dekompresi dengan menekan tombol Dekompresi dan sistem akan menampilkan hasil akhirnya, dimana hasil akhirnya akan menampilkan arti dari simbol-simbol yang ada. Setelah itu kita simpan untuk menampilkan rasionya. Proses simpannya dapat kita lihat pada gambar 4.20.

 Proses Simpan Dekompresi File .odt

Gambar 4.20 Pop Up Window Simpan Dekompresi File .odt

(50)

kemudian kita memilih dengan file text apa yang akan disimpan (.odt) kemudian melakukan proses Simpan, dapat dilihat pada Gambar 4.20.

Gambar 4.21 Hasil Dekompresi File .odt

Gambar 4.21 merupakan hasil proses simpan file yang tederkompresi dengan file .odt, yang menampilkan hasil besar file setelah melalui proses dekompresi dan juga menampilkan rasio file tersebut.

4.4 Analisa DMC

Tabel 4.1 Analisa Untuk File .docx Yang Terkompresi Perco

baan

KLASIFIKASI KOMPRESI Nama File

(.docx)

Besar File (byte)

Panjang Karakter runtime (ms)

rasio % before after before after

1 kancil 10187 byte 96 byte 147 96 247 ms 1061.46%

2 kopi 10233 byte 183 byte 307 183 753 ms 5591.8%

3 Premier

League

10212 byte 166 byte 280 166 673 ms 6151.81% 4 Organisasi 10638 byte 495 byte 883 495 5011 ms 2149.09%

(51)

Tabel 4.2 Analisa Untuk File .docx Yang Dekompresi

Tabel 4.3 Analisa Untuk File .odt Yang Terkompresi Perco

Tabel 4.4 Analisa Untuk File .odt Yang Dekompresi Perco

baan Nama File KLASIFIKASI DEKOMPRESI FILE .odt

(52)

4.5 Perhitungan Kompleks Algoritma DMC

Dari algoritma DMC ini akan dilakukan perhitungan kompleksitasnya. Kompleksitas yang dihitung nantinya adalah average case, best case, dan worst Big O. Dari hasil yang didapat nantinya akan berguna agar user mengetahui waktu terbaik dan terburuk dari algoritma DMC. Tabel 4.5 berikut ini adalah tabel perhitungan running time.

Tabel 4.5 Tabel Perhitngan Running Time Kompresi

No Code c # c*#

1 Dim InpPos, MinValue, MaxValue, RangValue, MidValue,

Index, TopBit, One(256), Zero(256), i As Integer

C1 1 C1

2 Dim mChar, Bitset As Byte C1 1 C1

3 ReDim outtext(500) C2 1 C2

4 OutPos = OutBitCount = OutByteBuf = MinValue = InpPos

(53)

i)))

And TopBit) Or MinValue > MaxValue - 255

(54)
(55)
(56)

10

Dari perhitungan running time pada tabel 4.5 terdapat 5 kolom. Kolom 1 merupakan nomor urut dari code program dari metode Dynamic Markov Compression. Kolom 2 merupakan code program metode Dynamic Markov Compression. Kolom 3 atau kolom c merupakan waktu yang dibutuhkan untuk menjalankan setiap statement dari code. Kolom 4 atau kolom # merupakan berapa kali statement tersebut dijalankan. Sedangkan kolom 5 merupakan perkalian dari C dengan #. Oleh karena itu didapat T(|n|) yang merupakan jumlah dari kolom c*# yaitu sebagai berikut.

T(n) = 2C1 + 7C2 + C3 + 2C4 + C5 +3C6|256| + 2C7|256| + 2C8|256| + C9|256| +

(57)

4.5.2. Perhitungan Running Time Dekompresi

Proses perhitungan running time dilakukan untuk mendapatkan Big , Big , dan Big O. Dari hasil yang didapat nantinya akan berguna agar user mengetahui waktu terbaik dan terburuk dari algoritma DMC. Tabel 4.6 berikut ini adalah tabel perhitungan running time.

Tabel 4.6 Tabel Perhitngan Running Time Dekompresi

No Code c # c*#

(58)

MaxBits)

And TopBit) Or MinValue > MaxValue - 255

(59)

52 Else C22 |256|4 C22|256|4

Dari perhitungan running time pada tabel 4.6 terdapat 5 kolom. Kolom 1 merupakan nomor urut dari code program dari metode Dynamic Markov Compression. Kolom 2 merupakan code program metode Dynamic Markov Compression. Kolom 3 atau kolom c merupakan waktu yang dibutuhkan untuk menjalankan setiap statement dari code. Kolom 4 atau kolom # merupakan berapa kali statement tersebut dijalankan. Sedangkan kolom 5 merupakan perkalian dari C dengan #. Oleh karena itu didapat T(|n|) yang merupakan jumlah dari kolom c*# yaitu sebagai berikut.

T(n) = 14C1 + 2C2 + 5C3 + C4 + C5 +C6 + C7+ C8|256| + C9|256|+ C10|256| + C13|256| +

(60)

BAB 5

KESIMPULAN DAN SARAN

Setelah membaca bab ini, pembaca akan mengerti tentang kesimpulan yang didapat dari penulis, dan juga saran dari penulis.

5.1 Kesimpulan

Berdasarkan Berdasarkan hasil studi literatur, analisis, perancangan, implementasi dan pengujian sistem ini, maka didapat kesimpulan sebagai berikut :

1. Dari 5 file *.docx dan *.odt yang di kompresi didapatkan file yang berukuran besar belum tentu hasil kompresinya mempunyai rasio paling besar.

2. Dan dari 5 file *.docx dan *.odt yang di dekompresi didapatkan file yang berukuran besar hasil dekompresinya mempunyai rasio paling besar.

3. Dari analisis algoritma dari segi kompleksitas diperoleh bahwa waktu rata-rata yang dibutuhkan untuk mengkompresi file dengan algoritma Dynamic Markov Compression adalah panjang dari bit. Dimana nilai big = |256|4

(61)

5.2 Saran

Adapun saran-saran yang dapat penulis berikan untuk pengembangan dan perbaikan sistem ini adalah sebagai berikut :

1. Membandingkan kinerja algoritma dengan algoritma kompresi lossless lainnya. 2. Sistem ini dapat dikembangkan lebih lanjut dengan menambahkan pilihan file

data berformat lain, seperti .pdf, .xlsx, dan lain-lain.

(62)

BAB 2

TINJAUAN PUSTAKA

Setelah membaca bab ini maka pembaca akan memahami pengertian tentang kompresi, pengolahan citra, kompresi data, Teknik kompresi, Kompresi citra.

2.1 Defenisi Data

Data adalah keterangan yang benar dan nyata atau dengan kata lain adalah catatan atas kumpulan fakta yang mendeskripsikan simbol, grafik, gambar, kata, angka, huruf, objek ataupun kondisi. Data merupakan bentuk jamak dari datum, berasal dari bahasa

latin yang artinya “sesuatu yang diberikan”. Data terkadang dipandang sebagai bentuk

(63)

Data merupakan salah satu hal utama yang dikaji dalam masalah teknologi informasi. Penggunaan dan pemanfaatan data sudah mencakup banyak aspek. Berikut adalah pembahasan definisi data berdasarkan berbagai sumber. Data menggambarkan sebuah representasi fakta yang tersusun secara terstruktur. Selain deskripsi dari sebuah fakta, data dapat pula merepresentasikan suatu objek sebagaimana bahwa “Data adalah nilai

yang merepresentasikan deskripsi dari suatu objek atau kejadian (event) “

Dengan demikian dapat dijelaskan kembali bahwa data merupakan suatu objek, kejadian, atau fakta yang terdokumentasikan dengan memiliki modifikasi terstruktur untuk suatu atau beberapa entitas (Sarifah, 2010).

2.2 Text File

Text file (disebut juga dengan flat file) adalah salah satu jenis file komputer yang tersusun dalam suatu urutan baris (Text File). Data teks biasanya diwakili oleh 8 bit kode ASCII (atau EBCDIC). Akhir dari sebuah file teks sering ditandai dengan penempatan satu atau lebih karakter – karakter khusus yang dikenal dengan tanda end-of-file setelah baris terakhir di suatu file teks. File teks biasanya mempunyai jenis MIME (Multipurpose Internet Mail Extension) "text/plain", biasanya sebagai informasi tambahan yang menandakan suatu pengkodean. pada sistem operasi Windows, suatu file dikenal sebagai suatu file teks jika memiliki extention misalnya txt, rtf, doc dan lain – lain (Sarifah, 2010).

2.3 Teknik Kompresi

Kompresi mempunyai bermacam-macam jenis kompresi antara lain adalah sebagai berikut:

2.3.1 Lossless Compression

Algoritma pengkompresi ini dapat mengembalikan data yang sudah dikompresi sama atau sesuai dengan data asli (data sebelum dikompresi). Contoh algoritma ini dapat ditemukan pada pengkompresian teks (Nurjaman, 2011).

Prinsip dasar eksploitasi data statistik citra:

a. Menghasilkan citra hasil kompresi yang tepat sama dengan citra semula. b. Dalam proses kompresinya, tidak ada informasi yang hilang.

c. Rasio kompresi sangat rendah / terbatas.

(64)

Algoritma kompresi lossless dibagi dalam dua kategori, yaitu 1. Dictionary-based Technique

Menghasilkan file kompresi yang berisi fixed-length code (12 – 16 bits) yang merepresentasikan sequence bytes file asli, misalnya Run-Length Encoding dan LZW encoding.

2. Variable Length Coding

Merepresentasikan karakter yang sering muncul dalam bit yang lebih kecil, misalnya Dynamic Markov Compression, Huffman Coding. Contoh format file dengan kompresi lossless: GIF, PCX, BMP, TIFF, TRG, PGM.

2.3.2 Lossy Compression

Algoritma pengkompresi ini bersifat terbalik dengan algoritma lossless karena tidak dapat mengembalikan data yang sudah dikompresi sesuai atau sama dengan data asli (data sebelum dikompresi). Contoh algoritma ini misalnya pada pengkompresian gambar, suara dan video (Nurjaman, 2011).

Prinsip atau ciri-ciri umum pada lossy compression adalah:

1. Menghasilkan citra hasil kompresi yang hampir sama dengan citra semula. Dalam proses kompresinya, ada informasi yang hilang namun dalam batas toleransi tertentu.

2. Rasio kompresi tinggi.

3. Contoh aplikasi: transmisi citra pada bandwidth saluran komunikasi terbatas. 4. Algoritma kompresi lossy telah banyak dikembangkan, diantaranya menggunakan

kuantisasi, fraktal, wavelet, dll.

5. Contoh format file dengan kompresi lossy : JPEG, MPEG.

2.4 Kompresi Data

(65)

Pemampatan merupakan salah satu dari bidang teori informasi yang bertujuan untuk menghilangkan redudansi dari sumber. Pemampatan bermanfaat dalam membantu mengurangi konsumsi sumber daya yang mahal, seperti ruang hard disk atau pemindahan data melalui internet (Razi, 2009).

Data dan informasi adalah dua hal yang berbeda. Pada data terkandung suatu informasi. Namun tidah semua bagian data terkait dengan informasi tersebut atau pada suatu data terdapat bagian-bagian data yang berulang untuk mewakili informasi yang sama. Bagian data yang tidak terkait atau bagian data yang berulang tersebut disebut dengan data berlebihan (redundancy data). Tujuan daripada kompresi data tiada lain adalah untuk mengurangi data berlebihan tersebut sehingga ukuran data menjadi lebih kecil dan lebih ringan dalam proses transmisi (Putra, 2010).

Kompresi citra (image compression) adalah proses untuk meminimalisasi jumlah bit yang merepresentasikan suatu citra sehingga ukuran data citra menjadi lebih kecil. Pengiriman data hasil kompresi dapat dilakukan jika pihak pengirim yang melakukan kompresi dan pihak penerima memiliki aturan yang sama dalam hal kompresi data. 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 kembali dengan benar. Kompresi data menjadi sangat penting karena memperkecil kebutuhan penyimpanan data, mempercepat pengiriman data, memperkecil kebutuhan bandwidth (Taryani, 2008).

Dalam teknik kompresi data, redundansi dari data menjadi masalah utama. Kompresi data ditujukan untuk mereduksi penyimpanan data yang redundan atau dalam istilah lain kompresi citra digital dilakukan untuk dengan cara meminimalkan jumlah bit yang diperlukan untuk merepresentasikan suatu data citra, namun seringkali kualitas gambar yang dihasilkan jauh lebih buruk dari aslinya karena keinginan kita untuk memperoleh rasio kompresi yang tinggi.

(66)

Secara umum proses kompresi dan dekompresi dapat diliha pada gambar di bawah

Ukurn Data Hasil Ukuran Data Hasil Kompresi

Gambar 2.1 Alur Kompresi-Dekompresi Data (Sarifah, 2010).

2.5 Kompresi Citra

Kriteria yang digunakan untuk mengukur pemampatan citra adalah: 1. Waktu kompresi dan waktu dekompresi

Proses kompresi merupakan proses pengodekan citra (encode) sehingga diperoleh citra dengan representasi kebutuhan memori yang minimum.

2. Kebutuhan memori

Metode kompresi yang baik adalah metode kompresi yang mampu mengompresi file citra menjadi file yang berukuran paling minimal.

3. Kualitas pemapatan (fidelity)

Metode kompresi yang baik adalah metode kompresi yang mampu mengendalikan citra hasil kompresi menjadi citra semula tanpa kehilangan informasi apa pun.

4. Format keluaran

Format citra hasil pemapatan yang baik adalah yang cocok dengan kebbutuhan pengiriman dan penyimpanan data (Sutoyo, et al. 2009).

2.6 Metode Kompresi Data

Organisasi–organisasi yang mengoperasikan jaringan komputer sering kali mengharapkan dapat menekan biaya pengiriman data. Biaya pengiriman itu sangat tergantung dengan banyaknya byte data yang dikirimkan. Oleh karena itu, dengan melakukan kompresi terhadap data, akan dapat menghemat biaya pengiriman.

(67)

pemampatan sesuatu yang berukuran besar sehingga menjadi kecil. Dengan demikian, kompresi data berarti proses untuk pemampatan data agar ukurannya menjadi lebih kecil.

Pemampatan ukuran berkas melalui proses kompresi hanya diperlukan sewaktu berkas tersebut akan disimpan dan atau dikirim melalui media transmisi atau telekomunikasi. Apabila berkas tersebut akan ditampilkan lagi pada layar monitor, maka data yang terkompresi tersebut harus dikembalikan pada format semula agar dapat dibaca kembali. Proses mengembalikan berkas yang dimampatkan ke bentuk awal inilah yang disebut dekompresi.

Satuan yang cukup penting dalam kompresi data adalah compression ratio yang menggambarkan seberapa besar ukuran data setelah melewati proses kompresi dibandingkan dengan ukuran berkas yang asli.

Beberapa teknik kompresi data yang telah banyak digunakan adalah Bit Mapping, Half byte packing, Huffman, Arithmatic Encoding, Run Length Encoding (Santi, 2010).

2.7 Dekompresi Data

Sebuah data yang sudah dikompres tentunya harus dapat dikembalikan lagi kebentuk aslinya, prinsip ini dinamakan dekompresi. Untuk dapat merubah data yang terkompres diperlukan cara yang berbeda seperti pada waktu proses kompres dilaksanakan. Jadi pada saat dekompres terdapat catatan header yang berupa byte -byte yang berisi catatan mengenai isi dari file tersebut.

Catatan header akan menuliskan kembali mengenai isi dari file tersebut, jadi isi dari file sudah tertulis oleh catatan header sehingga hanya tinggal menuliskan kembali pada saat proses dekompres. Proses dekompres dikatakan sempurna apabila file kembali kebentuk aslinya (Santi, 2010).

2.8 Dynamic Markov Compression

(68)

sebelumnya, dan beralih ke salah satu dari dua state lain tergantung pada apakah bit inputan adalah 1 atau 0. Algoritma ini dimulai dengan mesin kecil (mungkin sesederhana hanya satu state) dan menambahkan states itu didasarkan pada input. Dengan demikian adaptif. Segera setelah state baru ditambahkan ke mesin,maka akan dimulai perhitungan bit dan menggunakannya untuk menghitung probabilitas untuk 0 dan 1. Bahkan dalam bentuk yang sederhana, mesin bisa tumbuh sangat besar dan dengan cepat mengisi seluruh memori yang tersedia. Salah satu keuntungan menggunakan data biner adalah encoder aritmatika dapat dibuat sangat efisien jika ia harus menggunakan hanya dengan dua symbol (Salomon, 2004).

Algoritma DMC adalah algoritma yang memanfaatkan teknik pemodelan yang didasarkan pada model finite-state (proses Markov). Algoritma ini dikembangkan oleh Gordon Cormack dan Horspool Nigel. Algoritma DMC menggunakan predictive arithmetic coding yang mirip dengan PPM (Prediction by Partian Matching) sehingga memungkinkan kemampuan kompresi file yang tinggi (Taryani, 2008).

DMC membuat probabilitas dari karakter biner berikutnya dengan menggunakan pemodelan finite-state, dengan model awal berupa mesin FSA dengan transisi 0/1 dan 1/1, seperti ditunjukkan pada Gambar 2.2. DMC merupakan teknik kompresi yang adaptif, karena struktur mesin finite-state berubah seiring dengan pemrosesan file. Kemampuan kompresinya tergolong amat baik, meskipun waktu komputasi yang dibutuhkan lebih besar dibandingkan metode lain

1

1/1

0/1

Gambar 2.2 Model Awal DMC (Taryani, 2008).

(69)

transisi yang keluar dari state 1 diberi label 0/5, artinya bit 0 di state 1 terjadi

Gambar 2.3 Sebuah Model yang Diciptakan Oleh Metode DMC (Taryani, 2008). Secara umum, transisi ditandai dengan 0/p atau 1/q dimana p dan q menunjukkan jumlah transisi dari state dengan input 0 atau 1. Nilai probabilitas bahwa input selanjutnya bernilai 0 adalah p/(p+q) dan input selanjutnya bernilai 1 adalah q/(p+q). Lalu bila bit sesudahnya ternyata bernilai 0, jumlah bit 0 di transisi sekarang ditambah satu menjadi p+1. Begitu pula bila bit sesudahnya ternyata bernilai 1, jumlah bit 1 di transisi sekarang ditambah satu menjadi q+1.

Jika frekuensi transisi dari suatu state t ke state sebelumnya, yaitu state u, sangat tinggi, maka state t dapat di-cloning. Ambang batas nilai cloning harus disetujui oleh encoder dan decoder. State yang di-cloning diberi simbol t’. Aturan cloning adalah sebagai berikut :

a. Semua transisi dari state u dikirim ke state t’. Semua transisi dari state lain ke state t tidak berubah.

b. Jumlah transisi yang keluar dari t’ harus mempunyai rasio yang sama (antara 0 dan 1) dengan jumlah transisi yang keluar dari t.

(70)

d. dengan jumlah transisi yang masuk.

A C D

B E

0 0

1 1

a. Sebelum Cloning

A C D

B E

0 0

1

1

C

1 0

b. Setelah Cloning

(71)

2.9 Penelitian Yang Relevan

2.9.1 Emil Yayan Taryani dari Universitan Komputer Indonesia ini meninjau algoritma kompresi DMC (Dynamic Markov Compression, dari penelitian didapatkan kesimpulan bahwa Kompresi data dengan DMC merupakan teknik kompresi yang tergolong amat baik, meskipun waktu komputasi yang dibutuhkan lebih besar dibandingkan dengan metode lain (Taryani, 2008). 2.9.2 Andre Pratama dari Universitas Sumatera Utara ini membandingkan tiga

algoritma untuk mengetahui algoritma mana yang memiliki kinerja tertinggi dalam memampatkan file text dan paramater kinerja diukur dari kompleksitas algoritma, rasio kompresi, dan berapa lama waktu yang diperlukan untuk proses kompresi (Pratama, 2010).

(72)

BAB 1

PENDAHULUAN

Melalui bab ini pembaca akan memahami tentang konsep dasar yang akan dibahas, manfaat, batasan-batasan, tujuan dan masalah yang akan dibahas.

1.1 Latar Belakang Masalah

Proses kompresi ialah proses mereduksi ukuran suatu data untuk menghasilkan representasi digital yang padat atau mampat (compact) namun tetap dapat mewakili kuantitas informasi yang terkandung pada data tersebut. Pada citra, video, dan audio, kompresi mengarah pada minimisasi jumlah bit rate untuk representasi digital. Pada bebera literatur, istilah kompresi sering disebut juga source coding, bandwidth compression, dan signal compression (Putra, 2010).

Kompresi data adalah proses mengkodekan informasi menggunakan bit atau information-bearing unit yang lain yang lebih rendah daripada representasi data yang tidak terkodekan dengan suatu sistem encoding tertentu. Contoh kompresi sederhana yang biasa kita lakukan misalnya adalah menyingkat kata-kata yang sering digunakan tapi sudah memiliki konvensi umum (Sutoyo, et al. 2009).

(73)

Pada penelitian Emil Yayan Taryani (Taryani, 2008) dari Universitan Komputer Indonesia ini meninjau algoritma kompresi DMC (Dynamic Markov Compression, dari penelitian didapatkan kesimpulan bahwa Kompresi data dengan DMC merupakan teknik kompresi yang tergolong amat baik, meskipun waktu komputasi yang dibutuhkan lebih besar dibandingkan dengan metode lain. Pada penelitian Andre Pratama (Pranata, 2010) dari Universitas Sumatera Utara ini membandingkan tiga algoritma untuk mengetahui algoritma mana yang memiliki kinerja tertinggi dalam memampatkan file text dan paramater kinerja diukur dari kompleksitas algoritma, rasio kompresi, dan berapa lama waktu yang diperlukan untuk proses kompresi.

Berdasarkan pemahaman singkat yang telah diuraikan, maka pada kesempatan kali ini, penulis ingin melakukan penelitian dengan melakukan Implementasi dan Analisis Algoritma Dynamic Markov Compression (DMC) Pada File Text.

1.2 Rumusan Masalah

Adapun masalah yang akan dibahas dalam penelitian ini adalah bagaimana mengimplementasikan dan menganalisa algoritma DMC yang mampu mengkompresi data.

1.3 Batasan Masalah

Adapun batasan masalah dalam penelitian ini adalah :

1. File text yang dikompresi hanya bertipe docx dan odt 2. Ukuran file maksimal 128kb

3. Mengamati rasio file awal dan akhir.

4. Mengamati Running Time proses kompresi file dengan metode DMC

5. Menguji kompleksitas algoritma dengan menggunakan Big ϴ

6. Aplikasi ini dibangun menggunakan pemrograman Visual Basic .Net

(74)

Adapun tujuan dari penelitian ini adalah untuk mengimplementasikan dan mengetahui seberapa efektif algoritma DMC dalam mengkompresi data agar dapat menghemat ruang memori dalam penyimpanan data dan mempercepat proses pengiriman data. 1.5 Manfaat Penelitian

Manfaat yang diharapkan dapat diambil dari penelitian yang dilakukan yaitu dapat mengetahui proses kerja algoritma DMC dan pengimplementasian algoritma DMC.

1.6 Metodologi Penelitian

Adapun tahapan-tahapan yang dilakukan dalam merancang dan mengembangkan perangkat lunak ini adalah sebagai berikut:

1. Studi Literatur

Tahap ini adalah dilakukan pembelajaran terlebih dahulu dengan mengumpulkan bahan-bahan refrensi dari buku-buku, makalah, jurnal, skripsi dan e-book yang tersedia di internet.

2. Analisis sistem.

Pada tahap ini akan dilakukan penganalisisan dari algoritma Dynamic Markov Compression serta menganalisa permasalahan yang ada dan batasan masalahnya 3. Perancangan sistem.

Pada tahap ini dilakukan perancangan sistem yang meliputi perancangan proses kerja sistem, perancangan interface, serta algoritma pemrograman dan menganalisis permasalahan yang ada dan batasan masalah yang dimiliki.

4. Implementasi sistem.

Pada tahap ini akan dilakukan implementasi dari hasil perancangan desain sistem dalam bentuk perangkat lunak menggunakan bahasa pemrograman Vb .Net.

5. Pengujian sistem.

Pada tahap ini akan dilakukan pengujian sistem yang bertujuan untuk mengetahui kesalahan atau ketidaksempurnaan yang terjadi pada sistem, sehingga dapat dilakukan perbaikan. Pengujian adalah pengompresan file input.

6. Penulisan Laporan.

(75)

1.7 Sistematika Penulisan

BAB 1: PENDAHULUAN

Bab ini membahas konsep dasar penyusunan Skripsi, yaitu mengenai latar belakang pemilihan judul “Implementasi Algoritma Dynamic Markov Compression (DMC) Untuk Kompresi File Text”, rumusan masalah, batasan masalah, tujuan penulisan, manfaat penulisan, metodologi penelitian dan sistematika penulisan.

BAB 2: TINJAUAN PUSTAKA

Bab ini membahas dasar teori yang menunjang penulisan Skripsi mengenai teori-teori yang mendukung penelitian.

BAB 3: ANALISIS DAN PERANCANGAN

Bab ini membahas analisis langkah-langkah dalam pembangunan sistem dan pemodelan sistem secara fungsional.

BAB 4: IMPLEMENTASI DAN PENGUJIAN

Bab ini membahas implementasi dan pengujian aplikasi yang telah selesai dibangun dengan Algoritma Dynamic Markov Compression (DMC) Untuk Kompresi File Text.

BAB 5: KESIMPULAN DAN SARAN

Bab ini membahas kesimpulan isi dari keseluruhan uraian bab-bab sebelumnya dan saran-saran dari hasil yang diperoleh yang diharapkan dapat bermanfaat untuk pengembangan selanjutnya.

(76)

ABSTRAK

Pada dasarnya ketidakpuasan pengguna terhadap ukuran file dan keinginan pengguna untuk dapat mengirim data lebih cepat belum dapat terpenuhi secara maksimal dan untuk mengatasi kedua masalah tersebut dapat diatasi dengan proses kompresi data. Kompresi adalah proses mereduksi ukuran suatu data untuk menghasilkan representasi digital yang padat (compact) namun tetap dapat mewakili kuantitas informasi yang terkandung pada data tersebut. Kompresi terbagi dua jenis yaitu Lossless dan Lossy. Disini penulis hanya membahas satu algoritma yaitu kompresi Lossless, yaitu algoritma Dynamic Markov Compression. Penulis hanya menggunakan file format (.docx) dan (.odt). File dikompresi dengan cara memampatkan file tersebut sehingga membentuk beberapa simbol yang menjadi hasil dari file terkompresi, ukuran file akan menjadi lebih kecil dan memungkinkan untuk pengiriman data lebih cepat, kemudian untuk mengembalikan file awal dilakukan proses dekompresi.

(77)

IMPLEMENTATION AND ANALYSIS OF DYNAMIC MARKOV

COMPRESSION ALGORITHM (DMC) ON TEXT FILE

ABSTRACT

Basically the user dissatisfaction on the size of the file and the user wishes to be able to send data faster can not be fulfilled optimally and to solve these two problems can be solved with data compression process. Compression is the process of reducing the size of the data to produce a digital representation of a dense (compact) but still be able to represent the quantity of information contained in the data. Compression divided into two types: Lossless and Lossy. The author discusses only one algorithm is Lossless compression, namely Dynamic Markov Compression algorithms. The author only uses the file format (.docx) and (.odt). The file is compressed by compressing the file to form several symbols which became the result of the compressed file, the file size will be smaller and allows for faster data transmission, and then to restore the original file decompression process is carried out.

(78)

IMPLEMENTASI DAN ANALISIS ALGORITMA DYNAMIC

MARKOV COMPRESSION (DMC) PADA FILE TEXT

SKRIPSI

FIKTARUDDIN

091401075

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

(79)

IMPLEMENTASI DAN ANALISIS ALGORITMA DYNAMIC

MARKOV COMPRESSION (DMC) PADA FILE TEXT

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Komputer

FIKTARUDDIN 091401075

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

(80)

PERSETUJUAN

Judul : IMPLEMENTASI DAN ANALISIS ALGORITMA

DYNAMIC MARKOV COMPRESSION (DMC) PADA FILE TEXT

Kategori : SKRIPSI

Nama : FIKTARUDDIN

Nomor Induk Mahasiswa : 091401075

Program Studi : SARJANA (S1) ILMU KOMPUTER

Departemen : ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI

INFORMASI UNIVERSITAS SUMATERA UTARA (Fasilkom-T I USU)

Diluluskan di Medan, Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Ade Candra, ST, M.Kom Prof. Dr. Iryanto, M.Si

NIP. 197909042009121002 NIP. 194604041971071001

Diketahui/Disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

(81)

PERNYATAAN

IMPLEMENTASI DAN ANALISIS ALGORITMA DYNAMIC MARKOV COMPRESSION (DMC) PADA FILE TEXT

SKRIPSI

Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.

Medan, Januari 2015

(82)

PENGHARGAAN

Puji dan syukur penulis panjatkan ke hadirat Allah SWT, yang telah memberikan rahmat dan hidayah-Nya, serta segala sesuatu dalam hidup, sehingga penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, Program Studi S1 Ilmu Komputer, Fakultas Ilmu Komputer dan Teknologi Informasi, Universitas Sumatera Utara.

Ucapan terima kasih penulis sampaikan kepada semua pihak yang telah membantu penulis dalam menyelesaikan skripsi ini baik secara langsung maupun tidak langsung, teristimewa untuk kedua orangtua terkasih, Ayahanda Tgk. Rusli dan Ibunda

Rabi’ah, S.Ag. Pada kesempatan ini penulis ingin mengucapkan terima kasih yang Komputer dan Dosen Penguji I yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.

4. Ibu Maya Silvi Lydia, B.Sc., M.Sc selaku Sekretaris Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.

5. Bapak Prof. Dr. Iryanto, M.Si. selaku Dosen Pembimbing I yang telah banyak meluangkan waktunya dalam memberikan masukan-masukan kepada penulis. 6. Bapak Ade Candra, ST, M.Kom. selaku Dosen Pembimbing II yang telah

banyak meluangkan waktunya dalam memberikan masukan-masukan kepada penulis.

7. Bapak M. Andri Budiman, ST, M.Comp.Sc, MEM. selaku Dosen Penguji II yang telah memberikan kritik dan saran dalam penyempuraan skripsi ini. 8. Abang dan kakak Penulis yang tersayang Ida Rosmidar, A.MaK., Ida Safrida,

AMTE., Basyaruddin, S.Si., dan Azwaruddin, Amd. yang selalu memberi semangat pada penulis.

(83)

S.Kom., Santo Nainggolan, S.Kom., Ardi Hasiholan, S.Kom, Tian Situngkir, S.Kom., yang telah memberikan semangat dan menjadi teman diskusi penulis dalam menyelesaikan skripsi ini.

10.Laila Manja, S.Kom. yang telah memberikan bimbingan, dukungan, dan perhatian kepada penulis.

11.Teman-teman sekaligus keluarga besar Program Studi S1 Ilmu Komputer Fasilkom-TI USU.

12.Semua pihak yang terlibat langsung maupun tidak langsung yang tidak dapat penulis ucapkan satu demi satu yang telah membantu penyelesaian skripsi ini. Penulis menyadari bahwa skripsi ini masih terdapat kekurangan. Oleh karena itu, penulis mengharapkan kritik dan saran yang bersifat membangun demi kesempurnaan skripsi ini.

Medan, Januari 2015 Penulis,

(84)

ABSTRAK

Pada dasarnya ketidakpuasan pengguna terhadap ukuran file dan keinginan pengguna untuk dapat mengirim data lebih cepat belum dapat terpenuhi secara maksimal dan untuk mengatasi kedua masalah tersebut dapat diatasi dengan proses kompresi data. Kompresi adalah proses mereduksi ukuran suatu data untuk menghasilkan representasi digital yang padat (compact) namun tetap dapat mewakili kuantitas informasi yang terkandung pada data tersebut. Kompresi terbagi dua jenis yaitu Lossless dan Lossy. Disini penulis hanya membahas satu algoritma yaitu kompresi Lossless, yaitu algoritma Dynamic Markov Compression. Penulis hanya menggunakan file format (.docx) dan (.odt). File dikompresi dengan cara memampatkan file tersebut sehingga membentuk beberapa simbol yang menjadi hasil dari file terkompresi, ukuran file akan menjadi lebih kecil dan memungkinkan untuk pengiriman data lebih cepat, kemudian untuk mengembalikan file awal dilakukan proses dekompresi.

Gambar

Gambar4.2 Menu Utama
Gambar 4.4 Halaman Menu Help
Gambar 4.6 Hasil Buka File .docx
Gambar 4.7 Proses Kompresi File .docx
+7

Referensi

Dokumen terkait

Penelitian saat ini memiliki persamaan terhadap penelitian terdahulu yaitu pada penelitian saat ini adalah menggunakan variabel independen yang sama berupa kepemilikan manajerial,

Lebih kongkrit dapat diuraikan tujuan penelitian ini adalah 1) diketahuinya distribusi frekuensi perilaku merokok dan karakteristik perilaku merokok siswa sekolah menengah atas

Enron memaksa karyawan dalam hal pengelolaan dana pensiun, dimana diharuskanpembelian saham perusahaan sebagai dana pensiun, karyawan percaya atas

Oleh sebab itu Zuhri menawarkan kepada manusia modern untuk melihat lebih dalam kecenderungan manusia akan kebutuhan dunia dan akhirat dalam sebuah bingkai keutuhan

Penelitian ini dilakukan oleh Mahasiswa Program Studi Kesehatan Masyarakat untuk mengetahui persepsi anggota sekaa teruna teruni terhadap kegiatan pendidik sebaya

Umumnya isolator memiliki dua sifat, yaitu Nyoman Suwitra, 1989: 186: a Mempunyai celah energi yang cukup besar antara pita valensi dan pita konduksi, dan b Tingkat energi

Rumusan masalah pada penelitian adalah Apakah ada perbedaan metode pre-induksi hipnodonsi antara anak laki-laki dan perempuan usia 8- 10 tahun terhadap tingkat kecemasan

Persepsi 11 mahasiswa Jurusan Akuntansi Universitas Semarang Universitas Semarang mengenai “Apa yang dimaksud dengan Plagiarisme” semuanya telah memiliki persepsi