• Tidak ada hasil yang ditemukan

ANALISIS PERBANDINGAN KINERJA ALGORITMA LEMPEL ZIV WELCH DAN ALGORITMA ELIAS GAMMA CODE PADA KOMPRESI FILE VIDEO SKRIPSI

N/A
N/A
Protected

Academic year: 2022

Membagikan "ANALISIS PERBANDINGAN KINERJA ALGORITMA LEMPEL ZIV WELCH DAN ALGORITMA ELIAS GAMMA CODE PADA KOMPRESI FILE VIDEO SKRIPSI"

Copied!
84
0
0

Teks penuh

(1)

ANALISIS PERBANDINGAN KINERJA ALGORITMA LEMPEL ZIV WELCH DAN ALGORITMA ELIAS GAMMA CODE PADA KOMPRESI FILE VIDEO

SKRIPSI

HAFNI MEGASARI SITOMPUL 151401007

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2020

(2)

ANALISIS PERBANDINGAN KINERJA ALGORITMA LEMPEL ZIV WELCH DAN ALGORITMA ELIAS GAMMA CODE PADA KOMPRESI FILE VIDEO

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer

HAFNI MEGASARI SITOMPUL 151401007

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2020

(3)
(4)

PERNYATAAN

ANALISIS PERBANDINGAN KINERJA ALGORITMA LEMPEL ZIV WELCH DAN ALGORITMA ELIAS GAMMA CODE PADA KOMPRESI FILE VIDEO

SKRIPSI

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

Medan, 11 September 2020

Hafni Megasari Sitompul 151401007

(5)

PENGHARGAAN

Puji syukur kita sampaikan kehadirat Tuhan Yang Maha Esa yang telah memberikan rahmat serta karunia-Nya sehingga penulis dapat menyelesaikan skripsi ini dengan sebaik-baiknya.

Pada dasarnya penyusunan skripsi merupakan syarat mutlak yang harus dipenuhi untuk menyelesaikan pendidikan dan menyandang gelar Sarjana Komputer pada Program Studi S1 Ilmu Komputer Fasilkom-TI Universitas Sumatera Utara.

Tidak dapat dipungkiri, skripsi ini dapat selesai karena bantuan, semangat, motivasi, dan kerjasama yang diterima penulis dari orang-orang terdekat terutama kedua orang tua penulis. Oleh karena itu, pada kesempatan ini penulis ingin mengucapkan terima kasih yang sebesar-besarnya kepada berbagai pihak yang terkait, antara lain :

1. Prof. Dr. Runtung Sitepu, SH, M.Hum selaku Rektor Universitas Sumatera Utara.

2. Prof. Dr. Opim Salim Sitompul M.Sc selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

3. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu Komputer Fakultas Ilmu komputer dan Teknologi Informasi Universitas Sumatera Utara.

4. Ibu Dian Rachmawati, S.Si, M.Kom selaku dosen pembimbing I yang senantiasa memberikan bimbingan, motivasi, kritik, dan saran kepada penulis selama proses pengerjaan skripsi ini.

5. Ibu Dr. Maya Silvi Lydia, M.Sc selaku dosen pembimbing II yang telah memberikan arahan dan bimbingan kepada penulis dalam penyempurnaan skripsi ini.

6. Ibu Dr. Elviawaty Muisa Zamzami, ST, MT, MM selaku Dosen Pembanding I yang telah memberikan kritik dan saran untuk penyelesaian skripsi ini.

7. Bapak Dr. Eng. Ade Candra selaku Dosen Pembanding II yang telah memberikan masukan dan saran untuk perbaikan skripsi ini.

8. Seluruh staf pengajar dan pegawai di Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi USU.

(6)

9. Ayahanda Sakti Sitompul, Ibunda tercinta Lely Anni Siregar, S.Ag, kakanda Samrida Wati Sitompul, M.Pd dan adinda Zul Fadly Sitompul yang tanpa lelah memberi kasih sayang, perhatian, dukungan, dan doa terbaik untuk penulis dalam pengerjaan skripsi.

10. Sahabat seperjuangan Nadira Khairunnisa, Ulfa Natalia dan Kartika Anggraini yang menjadi tempat berkeluh-kesah, serta saling memberikan semangat selama mengerjakan skripsi.

11. Sahabat tercinta Ami Sintia, Dewi Masitoh, Raudah Abidah, Agus Madefa, Habibi, Rahmat Heri yang selalu memberikan memberikan semangat kepada penulis selama mengerjakan skripsi.

12. Teman – teman seperjuangan Mayrisa, Sinta Awalisa, Messy Ayu, Aftika Wulandari, Gusvita Amalia yang kerap menemani dan memberikan semangat selama pengerjaan skripsi

13. Abangda Farid yang senantiasa membantu dan memberi dukungan dalam penulisan skripi ini.

14. Keluarga Kom A 2015 Ilmu Komputer Universitas Sumatera Utara yang banyak memberi motivasi kepada penulis dalam pengerjaan skripsi ini.

15. Teman-teman stambuk 2015, kakak abang senior dan adik-adik junior yang selalu memberi semangat kepada penulis

16. Dan semua pihak yang telah membantu yang tidak dapat disebutkan satu per satu.

Terima kasih kepada semua pihak, semoga semua kebaikan, perhatian, bantuan serta dukungan yang telah diberikan kepada penulis semoga mendapatkan balasan yang setimpal dari Allah swt. Semoga Skripsi ini dapat bermanfaat bagi orang banyak.

Medan, 11 September 2020

Penulis

(7)

ABSTRAK

Perkembangan teknologi saat ini mempengaruhi media penyimpanan dan proses pertukaran data. File video memiliki ukuran data yang lebih besar jika dibandingkan dengan file teks, file gambar, maupun file suara. Salah satu format file video yang memiliki ukuran data yang besar adalah format file video AVI (Audio Video Interleaved), hal ini disebabkan karena resolusi dari video yang dipakai sama seperti video aslinya. Ukuran data yang besar menjadi masalah pada kecepatan waktu transmisi data dan besarnya ruang penyimpanan yang diperlukan. Algoritma kompresi dibutuhkan untuk mempercepat waktu transmisi dan mengurangi ruang penyimpanan.

Pada penelitian ini, dilakukan proses kompresi dengan menggunakan algoritma Lempel Ziv Welch dan algoritma Elias Gamma Code pada file video dan membandingkan kinerjanya berdasarkan parameter yang telah di tetapkan. Setelah dilakukan implementasi dan pengujian sistem dapat diketahui bahwa, algoritma Lempel Ziv Welch mempunyai waktu kompresi, Compression Ratio(Cr), Space Saving(Ss), Ratio of Compression (Rc), dan Bitrate yang lebih baik dibandingkan algoritma Elias Gamma Code pada proses kompresi file video. Namun, pada waktu dekompresi algoritma Elias Gamma Code membutuhkan waktu lebih sedikit dibandingkan algoritma Lempel Ziv Welch.

Kata kunci : Lempel Ziv Welch, Elias Gamma Code, Kompresi, Dekompresi, Video, File AVI

(8)

PERFORMANCE COMPARISON ANALYSIS OF LEMPEL ZIV WELCH ALGORITHM AND ELIAS GAMMA CODE ALGORITHM

ON VIDEO FILE COMPRESSION

ABSTRACT

Current technological developments affect storage media and data exchange processes. Video files have a larger data size compared to text files, image files, or sound files. One video file format that has a large data size is the video file format AVI (Audio Video Interleaved), this is because the resolution of the video used is the same as the original video. Large data sizes become a problem in the speed of data transmission time and the amount of storage space required. Compression algorithms are needed to speed up transmission times and reduce storage space. In this study, the compression process was carried out using the Lempel Ziv Welch algorithm and the Elias Gamma Code algorithm on the video file and comparing its performance based on predetermined parameters. After implementing and testing the system, it can be seen that the Lempel Ziv Welch algorithm has a compression time, Compression Ratio (Cr), Space Saving (Ss), Ratio of Compression (Rc), and Bitrate which are better than the Elias Gamma Code algorithm in the compression process video file.

However, the Elias Gamma Code algorithm decompresses less time than the Lempel Ziv Welch algorithm.

Keywords : Lempel Ziv Welch, Elias Gamma Code, Compression, Decompression, Video, File AVI

(9)

DAFTAR ISI

Persetujuan ... ii

Pernyataan ... iii

Penghargaan ... iv

Abstrak ... vi

Abstract ... vii

Daftar Isi ... viii

Daftar Tabel ... x

Daftar Gambar... xi

Daftar Lampiran ... xiii

Bab I Pendahuluan ... 1

1.1 Latar Belakang ... 1

1.2 Rumusan Masalah ... 2

1.3 Batasan Masalah ... 2

1.4 Tujuan Penelitian ... 3

1.5 Manfaat Penelitian ... 3

1.6 Metode Penelitian ... 3

1.7 Sistematika Penulisan ... 4

Bab II Landasan Teori ... 6

2.1 Kompresi Data ... 6

2.1.1 Teknik Kompresi Lossless ... 6

2.1.2 Teknik Kompresi Lossy ... 6

2.2 Algoritma Lempel Ziv Welch (LZW) ... 8

2.3 Algoritma Elias Gamma Code ... 11

2.4 Video ... 15

2.5 Penelitian yang Relevan... 16

Bab III Analisis dan Perancangan Sistem ... 19

3.1 Analisis Sistem ... 19

3.1.1 Analisis Masalah ... 19 Halaman

(10)

3.1.2 General Arsitektur ... 20

3.1.3 Analisis Kebutuhan ... 21

3.2 Pemodelan Sistem ... 22

3.2.1 Use Case Diagram ... 22

3.2.2 Activity Diagram ... 23

3.2.3 Sequence Diagram ... 25

3.3 Flowchart ... 27

3.3.1 Flowchart Sistem Secara Umum ... 27

3.3.2 Flowchart Algoritma Lempel Ziv Welch ... 28

3.3.3 Flowchart Algoritma Elias Gamma Code... 30

3.4 Perancangan Antarmuka (Interface) ... 31

3.4.1 Rancangan Halaman Home ... 31

3.4.2 Rancangan Halaman Kompresi ... 32

3.4.3 Rancangan Halaman Dekompresi ... 34

3.4.4 Rancangan Halaman Tentang ... 36

Bab IV Implementasi dan Pengujian Sistem ... 37

4.1 Implementasi ... 37

4.1.1 Halaman Home ... 37

4.1.2 Halaman Kompresi File ... 38

4.1.3 Halaman Dekompresi ... 39

4.1.4 Halaman Tentang ... 41

4.2 Pengujian Sistem... 41

4.2.1 Pengujian Proses Kompresi ... 41

4.2.2 Pengujian Proses Dekompresi ... 45

4.2.3 Hasil Pengujian... 47

Bab V Kesimpulan dan Saran ... 56

5.1. Kesimpulan ... 56

5.2. Saran ... 57

DAFTAR PUSTAKA ... 58

(11)

DAFTAR TABEL

Tabel 2.1 Algoritma Dasar Lempel Ziv Welch Encoding... 8

Tabel 2.2 Proses Kompresi String “HAAAFNIIII” ... 9

Tabel 2.3 Algoritma Dasar Lempel Ziv Welch Decoding ... 10

Tabel 2.4 Proses Dekompresi dari Kompresi String “HAAAFNIIII” ... 11

Tabel 2.5 Elias Gamma Code (Salomon, D. 2007) ... 12

Tabel 2.6 Perhitungan Karakter Sebelum Kompresi ... 12

Tabel 2.7 Perhitungan Panjang Biner ... 14

Tabel 2.8 Perhitungan u(M) dan Elias Gamma Code ... 14

Tabel 4.1 Hasil Pengujian Kompresi Algoritma Lempel Ziv Welch dan Algoritma Elias Gamma Code terhadap Waktu Kompresi... 47

Tabel 4.2 Hasil Pengujian Kompresi Algoritma Lempel Ziv Welch dan Algoritma Elias Gamma Code terhadap Compression Ratio(Cr)... 49

Tabel 4.3 Hasil Pengujian Kompresi Algoritma Lempel Ziv Welch dan Algoritma Elias Gamma Code terhadap Space Saving (Ss) ... 50

Tabel 4.4 Hasil Pengujian Kompresi Algoritma Lempel Ziv Welch dan Algoritma Elias Gamma Code terhadap Ratio Of Compression (Rc) ... 51

Tabel 4.5 Hasil Pengujian Kompresi Algoritma Lempel Ziv Welch dan Algoritma Elias Gamma Code terhadap Bitrate ... 52

Tabel 4.6 Hasil Pengujian Kompresi Algoritma Lempel Ziv Welch dan Algoritma Elias Gamma Code terhadap Waktu Dekompresi (ms) ...54

Halaman

(12)

DAFTAR GAMBAR

Gambar 2.1 Ilustrasi Teknik Kompresi Lossless ... 6

Gambar 2.2 Ilustrasi Teknik Kompresi Lossy ... 7

Gambar 2.3 Contoh File Video ... 16

Gambar 3.1 Diagram Ishikawa Analisis Masalah ... 19

Gambar 3.2 General Arsitektur ... 20

Gambar 3.3 Use Case Diagram Pada Sistem ... 22

Gambar 3.4 Activity Diagram Proses Kompresi ... 24

Gambar 3.5 Activity Diagram Proses Dekompresi ... 25

Gambar 3.6 Sequence Diagram Proses Kompresi ... 26

Gambar 3.7 Sequence Diagram Proses Dekompresi ... 26

Gambar 3.8 Flowchart Sistem Secara Umum ... 27

Gambar 3.9 Flowchart Kompresi Algoritma Lempel Ziv Welch ... 28

Gambar 3.10 Flowchart Dekompresi Algoritma Lempel Ziv Welch ... 29

Gambar 3.11 Flowchart Kompresi Algoritma Elias Gamma Code... 30

Gambar 3.12 Flowchart Dekompresi Algoritma Elias Gamma Code ... 31

Gambar 3.13 Tampilan Halaman Utama ... 32

Gambar 3.14 Tampilan Halaman Kompresi Pada Sistem... 33

Gambar 3.15 Tampilan Halaman Dekompresi Pada Sistem ... 35

Gambar 3.16 Tampilan Halaman Tentang Pada Sistem ... 36

Gambar 4.1 Halaman Home ... 37

Gambar 4.2 Halaman Kompresi... 38

Gambar 4.3 Source Code Kompresi Lempel Ziv Welch... 39

Gambar 4.4 Source Code Kompresi Elias Gamma Code ... 39

Gambar 4.5 Halaman Dekompresi ... 40

Gambar 4.6 Source Code Dekompresi ... 41

Gambar 4.7 Halaman Tentang ... 41

Gambar 4.8 File Video Sebelum Proses Kompresi ... 42

Gambar 4.9 Messagebox Proses Kompresi Selesai ... 43

Gambar 4.10 Hasil Kompresi Menggunakan Algoritma Lempel Ziv Welch ... 44 Halaman

(13)

Gambar 4.11 Hasil Kompresi Menggunakan Algoritma Elias Gamma Code ... 44

Gambar 4.12 File Video Sebelum Proses Dekompresi... 45

Gambar 4.13 Messagebox Proses Kompresi Selesai ... 46

Gambar 4.14 Hasil Proses Dekompresi ... 47

Gambar 4.15 Grafik Waktu Kompresi terhadap Ukuran File ... 48

Gambar 4.16 Grafik Compression Ratio (Cr)terhadap Ukuran File ... 49

Gambar 4.17 Grafik Space Saving (Ss) terhadap Ukuran File ... 51

Gambar 4.18 Grafik Ratio Of Compression (Rc) terhadap Ukuran File ... 52

Gambar 4.19 Grafik Bitrate terhadap Ukuran File ... 53

Gambar 4.20 Grafik Waktu Dekompresi terhadap Ukuran File ... 55

(14)

DAFTAR LAMPIRAN

Lampiran 1 LISTING PROGRAM ... A-1 Lampiran 2 CURRICULUM VITAE ... B-1 Halaman

(15)

BAB I PENDAHULUAN

1.1. Latar Belakang

Video merupakan suatu gambar bergerak yang dihasilkan dari sebuah teknologi pengiriman sinyal elektronik. Pertukaran atau pengiriman informasi saat ini mengalami masalah pada kecepatan waktu saat melakukan transmisi data yang diakibatkan oleh besarnya ukuran data yang akan dikirim. Dengan berkembangan zaman teknologi sangat mempengaruhi beberapa faktor, salah satunya adalah ukuran data yang semakin besar. Hal ini akan mengakibatkan sejumlah pengguna komputer akan melakukan berbagai cara supaya dapat menyimpan data yang berukuran besar tersebut.

Maka dari itu untuk menyelesaikan masalah tersebut adalah dengan melakukan kompresi data, sehingga ukuran data tersebut menjadi lebih kecil dibanding ukuran sebelumnya. Kompresi data merupakan sebuah teknik yang digunakan untuk mengubah ukuran data masukan yang besar menjadi ukuran data baru yang lebih kecil untuk mempercepat pengiriman data (Salomon, 2007). Biasanya, file video memiliki ukuran besar sehingga membutuhkan ruang penyimpanan yang besar contohnya seperti salah satu format file video AVI (Audio Video Interleaved) yang memiliki ukuran file berukuran besar disebabkan karena resolusi video yang dipakai sama dengan resolusi asli video tersebut. Terdapat berbagai macam algoritma yang dipakai pada teknik kompresi data, namun pada penelitian ini penulis memakai dua algoritma menggunakan teknik Lossless Compression atau kompesi tanpa rugi (sama dengan nilai aslinya) yakni Lempel Ziv Welch (LZW) dan Elias Gamma Code. Dengan menggunakan kedua algoritma tersebut penulis hendak membandingkan compression ratio (Cr), ratio of compression (Rc), space saving (Ss), bitrate, serta waktu kompresi dan dekompresi yang dihitung dalam satuan milisekon (ms) dalam melakukan kompresi terhadap file video.

Algoritma Lempel Ziv Welch ditemukan oleh Terry Welch dan dipublikasikan pada tahun 1984. Algoritma Lempel Ziv Welch merupakan algoritma kompresi yang

(16)

berbasiskan kamus dengan cara mengidentifikasi adanya pola perulangan karakter yang terdapat pada file. Keunggulan dari teknik kompresi algoritma Lempel Ziv Welch adalah waktu yang dibutuhkan dalam melakukan kompresi data lebih singkat dan lebih efektif digunakan dibandingkan dengan menggunakan algoritma Huffman, hal ini juga berlaku dalam pengompresian audio dan video. Kecepatan dari kompresi ini tergantung pada tingkat resolusi dari video serta besar atau kecilnya file yang akan di kompresi (Hidayat, Wendi, dan Tri, 2013). Algoritma Elias Gamma Code adalah sebuah algoritma kompresi yang dikembangkan oleh Peter Elias yang digunakan untuk membuat kode dalam bentuk bilangan bulat positif dengan mengasumsikan bahwa kode tersebut hanya efisien digunakan untuk integer yang kecil dan tidak cocok untuk integer yang besar. Algoritma ini cukup efisien jika digunakan dalam proses kompresi data dengan rasio kompresi sebesar 73,04% (Kaur dan Singh, 2016).

Berdasarkan penjelasan diatas, penulis akan melakukan sebuah penelitian yang berjudul “Analisis Perbandingan Kinerja Algoritma Lempel Ziv Welch dan Algoritma Elias Gamma Code Pada Kompresi File Video”.

1.2. Rumusan Masalah

Berdasarkan latar belakang permasalahan di atas, maka masalah yang penulis rumuskan yaitu dibutuhkannya algoritma yang efisien untuk mengkompresi file video yang memiliki ukuran lebih besar dari pada jenis file lainnya.

1.3. Batasan Masalah

Dalam penelitian ini, peneliti membatasi ruang lingkup masalah yang akan diteliti dengan batasan masalah sebagai berikut:

1. Membandingkan algoritma Lempel Ziv Welch dan algoritma Elias Gamma Code.

2. Data yang dimasukkan adalah file video berekstensi *.avi.

3. Parameter untuk kompresi adalah ukuran file hasil kompresi, nilai compression ratio (Cr), ratio of compression (Rc), space saving (Ss), bitrate, serta waktu kompresi dan dekompresi yang dihitung dalam satuan milisekon (ms).

4. Implementasi dari penelitian ini berbasis pada bahasa pemrograman visual yaitu C#.

(17)

1.4. Tujuan Penelitian

Tujuan yang ingin dicapai dalam penelitian ini adalah untuk membandingan kinerja algoritma Lempel Ziv Welch dan algoritma Elias Gamma Code untuk kompresi file video berdasarkan parameter compression ratio (Cr), ratio of compression (Rc), space saving (Ss), bitrate, serta waktu kompresi dan dekompresi yang dihitung dalam satuan milisekon (ms).

1.5. Manfaat Penelitian

Penelitian ini diharapkan akan memberikan manfaat bagi lembaga terkait adalah sebagai berikut:

1. Mengetahui algoritma mana yang lebih efisien berdasarkan parameter untuk kompresi file video.

2. Memperkecil kapasitas penyimpanan data dan memperkecil ukuran data yang akan disimpan.

1.6. Metode Penelitian

Metode penelitian yang dilakukan dalam penelitian ini adalah:

1. Studi Pustaka

Pada tahap ini, penulis memulai penelitian ini dengan mencari referensi dari berbagai sumber untuk memperoleh informasi dan data yang diperlukan bagi penelitian ini. Referensi yang digunakan dapat berupa jurnal, artikel, situs internet yang berhubungan dengan Algoritma Lempel Ziv Welch, Algoritma Elias Gamma Code, kompresi dan dekompresi file video.

2. Analisis dan Perancangan

Pada tahap ini, penulis melakukan analisis terhadap apa saja yang nantinya akan dibutuhkan dalam penelitian untuk dirancang dalam sebuah desain interface, struktur data, diagram alir (flowchart), UML, dan diagram Ishikawa.

3. Implementasi

Pada tahap ini, membuat sebuah sistem dengan menggunakan bahasa pemrograman C# sesuai dengan diagram alir (flowchart) yang telah dirancang.

4. Pengujian

(18)

Pada tahap ini, sistem yang dirancang dilakukan uji coba dengan menggunakan file video berekstensi *.avi.

5. Dokumentasi

Pada tahap ini, dari hasil penelitian sebelumnya, didokumentasikan mulai dari tahap analisis sampai pada pengujian dan akhirnya dibuat dalam bentuk skripsi.

1.7. Sistematika Penulisan

Sistematika penulisan dari skripsi ini terdiri dari beberapa bagian utama sebagai berikut :

BAB 1. PENDAHULUAN

Bab ini menjelaskan mengenai latar belakang masalah yang dibahas dalam skripsi ini, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian dan sistematika penulisan.

BAB 2. LANDASAN TEORI

Bab ini merupakan tinjauan teoritis yang berkaitan dengan kompresi data, algoritma Lempel Ziv Welch dan algoritma Elias Gamma Code serta file video yang digunakan sebagai pendukung dalam penulisan penelitian.

BAB 3. ANALISIS DAN PERANCANGAN SISTEM

Bab ini berisi tentang analisis masalah yang dibangun dalam sistem dan menganalisis hal yang dibutuhkan dalam membangun sistem ini, kemudian dilanjutkan dengan tahap perancangan sistem yang berupa perancangan interface dari program yang akan dibuat.

BAB 4. IMPLEMENTASI DAN PENGUJIAN SISTEM

Bab ini berisi tentang implementasi sistem yang berdasarkan pada tahapan perancangan dengan menggunakan bahasa pemrograman C#. Kemudian dilanjutkan dengan tahapan pengujian sistem untuk menguji apakah sistem sudah relevan dengan perancangan yang telah dibuat.

BAB 5. KESIMPULAN DAN SARAN

(19)

Bab ini merupakan bab penutup yang menguraikan kesimpulan dan saran dari pembahasan pada bab-bab sebelumnya dan hasil penelitian ini sangat bermanfaat bagi penelitian lain. Sehingga berusaha untuk mengembangkan sistem yang lebih variatif lagi.

(20)

BAB II LANDASAN TEORI

2.1. Kompresi Data

Kompresi data merupakan sebuah teknik yang digunakan untuk mengubah ukuran data masukan yang besar menjadi ukuran data baru yang lebih kecil untuk mempercepat pengiriman data (Salomon, 2007).

Teknik kompresi data dapat dibagi kedalam dua jenis yaitu kompresi lossless dan lossy.

2.1.1. Teknik Kompresi Lossless

Kompresi lossless merupakan sebuah kompresi yang melakukan penjagaan terhadap keakuratan sebuah data pada saat terjadi suatu kompresi yang tidak bisa di toleransi.

Dengan demikian, teknik kompresi ini bersifat reversible dimana hasil kompresi bisa dikembalikan ke bentuk semula (Canovas, 2015). Contoh algoritma lossless adalah algoritma Levenstein Code, Run Length Encoding (RLE), Elias Delta Code, Elias Gamma Code dan Lempel Ziv Welch (LZW). Dalam hal ini Elias Gamma Code dan Lempel Ziv Welch (LZW) merupakan algoritma yang akan digunakan dalam penelitian. Ilustrasi teknik kompresi lossless seperti terlihat pada gambar 2.1.

Gambar 2.1 Ilustrasi Teknik Kompresi Lossless 2.1.2. Teknik Kompresi Lossy

Kompresi lossy merupakan kebalikan dari kompresi lossless, dimana kompresi ini bisa menyebabkan hilangnya informasi. Maka dari itu kompresi ini bersifat irreversible yaitu tidak bisa mengembalikan data keukuran semula. Namun, hasil kompresi masih bisa mempertahankan informasi utama pada data. Contoh algoritma lossy adalah

(21)

algoritma Differential Modulation, Continious Wavelet Transform (CWT), Adaptive Coding dan Discrete Cosine Transform (DCT). Ilustrasi teknik kompresi lossy seperti terlihat pada gambar 2.2.

Gambar 2.2 Ilustrasi Teknik Kompresi Lossy

Berikut ini merupakan teknik pengukuran yang digunakan untuk mengukur kualitas dari suatu teknik kompresi data.

1. Compression Ratio (CR)

Compression ratio adalah rasio data kompresi yang diperoleh dari hasil perbandingan antara file terkompresi dengan file asli.

𝐶𝑜𝑚𝑝𝑟𝑒𝑠𝑠𝑖𝑜𝑛 𝑟𝑎𝑡𝑖𝑜 = 𝑢𝑘𝑢𝑟𝑎𝑛 𝑑𝑎𝑡𝑎 𝑠𝑒𝑡𝑒𝑙𝑎ℎ 𝑑𝑖𝑘𝑜𝑚𝑝𝑟𝑒𝑠𝑖 𝑢𝑘𝑢𝑟𝑎𝑛 𝑑𝑎𝑡𝑎 𝑠𝑒𝑏𝑒𝑙𝑢𝑚 𝑑𝑖𝑘𝑜𝑚𝑝𝑟𝑒𝑠𝑖 2. Ratio of Compression (Rc)

Compression factor adalah rasio perbandingan antara file asli dan file terkompresi.

𝐶𝑜𝑚𝑝𝑟𝑒𝑠𝑠𝑖𝑜𝑛 𝑓𝑎𝑐𝑡𝑜𝑟 =𝑢𝑘𝑢𝑟𝑎𝑛 𝑑𝑎𝑡𝑎 𝑠𝑒𝑏𝑒𝑙𝑢𝑚 𝑑𝑖𝑘𝑜𝑚𝑝𝑟𝑒𝑠𝑖

𝑢𝑘𝑢𝑟𝑎𝑛 𝑑𝑎𝑡𝑎 𝑠𝑒𝑡𝑒𝑙𝑎ℎ 𝑑𝑖𝑘𝑜𝑚𝑝𝑟𝑒𝑠𝑖 𝑥100%

3. Space Saving (SS)

Space saving atau penghematan ruang adalah suatu penyusutan file dengan mencari persentase selisih antara file asli dengan file terkompresi.

𝑆𝑝𝑎𝑐𝑒 𝑠𝑎𝑣𝑖𝑛𝑔𝑠 =𝑢𝑘𝑢𝑟𝑎𝑛 𝑑𝑎𝑡𝑎 𝑎𝑠𝑙𝑖 − 𝑢𝑘𝑢𝑟𝑎𝑛 𝑑𝑎𝑡𝑎 𝑠𝑒𝑡𝑒𝑙𝑎ℎ 𝑘𝑜𝑚𝑝𝑟𝑒𝑠𝑖

𝑢𝑘𝑢𝑟𝑎𝑛 𝑑𝑎𝑡𝑎 𝑎𝑠𝑙𝑖 𝑥100%

4. Bitrate

Bitrate adalah banyaknya bit yang di proses setiap detik dengan membagi ukuran bit terkompresi dengan jumlah simbol unik (jenis karakter).

𝐵𝑖𝑡𝑟𝑎𝑡𝑒 =𝑢𝑘𝑢𝑟𝑎𝑛 𝑏𝑖𝑡 𝑡𝑒𝑟𝑘𝑜𝑚𝑝𝑟𝑒𝑠𝑖 𝑗𝑢𝑚𝑙𝑎ℎ 𝑗𝑒𝑛𝑖𝑠 𝑘𝑎𝑟𝑎𝑘𝑡𝑒𝑟

(22)

5. Waktu Kompresi dan Dekompresi

Waktu kompresi dan dekompresi merupakan waktu yang diperlukan pada saat terjadinya proses pembacaan data sampai encoding. Sebuah metode dapat dikatakan efisien apabila waktu kompresi dan dekompresi semakin singkat.

2.2. Algoritma Lempel Ziv Welch (LZW)

Algoritma Lempel Ziv Welch merupakan algoritma kompresi yang berbasiskan dictionary. Dictionary itu sendiri bertujuan untuk menyimpan pola string tertentu, yang nantinya akan berguna untuk mengkodekan string pada index dalam dictionary.

Algoritma ini termasuk ke dalam jenis kompresi data lossless yang dipublikasikan oleh Terry Welch pada tahun 1984.

Sebelum proses kompresi atau dekompresi dimulai, sebuah dictionary akan diinisialisasi dengan menggunakan 256 karakter ASCII dengan index 0-256 yang ditetapkan sebagai nilai default sebuah dictionary. Hal ini lah yang mengakibatkan setiap awal pembacaan proses kompresi maupun dekompresi, karakter atau kode pertama selalu dapat ditemukan pada dictionary. Proses kompresi atau dekompresi algoritma ini dilakukan dengan menggunakan dictionary yang dibentuk selama pembacaan karakter. Algoritma dasar Lempel Ziv Welch encoding dapat dilihat pada tabel 2.1.

Tabel 2.1 Algoritma Dasar Lempel Ziv Welch Encoding Step 1:

Step 2:

Step 3:

Step 4:

Step 4a:

Step 4b:

Step 4c:

Step 4d:

Step 4e:

Step 4f:

Step 4g:

Step 4h:

Step 4i:

Dictionary terlebih dahulu diinisialisasi dengan karakter ASCII CurrentChars ← Karakter pertama dari input stream

DictIndex ← 255

while not EOF character do begin

NextChar ← Karakter selanjutnya dari CurrentChars ConcatStr ← CurrentChars + NextChar

if ConcatStr ada pada Dictionary then begin CurrentChars ← ConcatStr

end else begin

Output ← Index dari CurrentChars pada Dictionary

Isi ke dalam Dictionary (DictIndex, ConcatStr) DictIndex ← DictIndex + 1

(23)

Step 4j:

Step 4k:

Step 5:

Step 6:

CurrentChars ← NextChar End

end

EncodedStream ← Output

Sebagai contoh kasus, kita akan melakukan kompresi pada pesan teks

“HAAAFNIIII” menggunakan algoritma Lempel Ziv Welch. Proses kompresi string

“HAAAFNIIII” dilihat pada tabel 2.2 berikut :

Tabel 2.2 Proses Kompresi String “HAAAFNIIII”

Prefix P Char C String P+C di dalam dictionary?

Output (Codeword)

[Index]

Entry Baru

“H” “A” Tidak 72 [256]

”HA”

“A” “A” Tidak 65 [257]

”AA”

“A” “A” Ya - -

“AA” “F” Tidak 257 [258]

”AAF”

“F” “N” Tidak 70 [259]

“FN”

“N” “I” Tidak 78 [260]

”NI”

“I” “I” Tidak 73 [261]

”II”

“I” “I” Ya - -

“II” “I” Tidak 261 [262]

”III”

“I” EOF - 73 -

Maka hasil kompresi dari pesan teks “HAAAFNIIII” adalah kode (angka) yang terdapat pada kolom output (codeword) pada tabel 2.2 yaitu 72, 65, 257, 70, 78, 73, 261, 73. Simbol karakter sebelum melakukan proses kompresi adalah 10 x 8 = 80 bit, kode (angka) yang terdapat pada kolom output diubah ke dalam bentuk codeword

(24)

dengan panjang 9 bit maka hasil kompresi akan menjadi 8 x 9 = 72 bit, sehingga akan terjadi penghematan pada pesan teks sebesar 80 - 72 = 8 bit.

Proses dekompresi algoritma Lempel Ziv Welch dilakukan dengan membaca kode (angka) hasil kompresi dan membuat kembali dictionary yang sama seperti proses kompresi sehingga memungkinkan string asli dapat dikembalikan (Saravanan dan Suender, 2013). Algoritma dasar Lempel Ziv Welch decoding dilihat pada tabel 2.3.

Tabel 2.3 Algoritma Dasar Lempel Ziv Welch Decoding Step 1:

Step 2:

Step 3:

Step 4:

Step 5:

Step 6:

Step 6a:

Step 6b:

Step 6c:

Step 6d:

Step 6e:

Step 6f:

Step 6g:

Step 6h:

Step 6i:

Step 6j:

Step 6k:

Step 7:

Step 8:

Dictionary terlebih dahulu diinisialisasi dengan karakter ASCII PreviousCodeWord ← Codeword pertama dari encoded stream String ← toString(PreviousCodeWord);

Char ← toChar(first input codeword);

DictIndex ← 256;

while NOT EOF encoded stream

CurrentCodeWord ← codeword selanjutnya pada encoded stream

if CurrentCodeWord ada pada Dictionary then begin String ← toString(CurrentCodeWord)

end else begin

String ← toString(PreviousCodeWord) + Char end;

Output ← Output + String;

Char ← Karakter pertama dari string sekarang insertToDictionary(DictIndex,

toString(PreviousCodeWord) + Char;

PreviousCodeWord ← CurrentCodeWord;

DictIndex++;

End

DecodedStream ← Output

Sebagai contoh, jika kode (angka) “72, 65, 257, 70, 78, 73, 261, 73” yang merupakan hasil dari kompresi string “HAAAFNIIII” didekompresi dengan

(25)

menggunakan algoritma Lempel Ziv Welch, maka proses dekompresinya dapat dilihat seperti tabel 2.4 di bawah ini:

Tabel 2.4 Proses Dekompresi dari Kompresi String “HAAAFNIIII”

No Previous Codeword

Current Codeword

Output (string)

First Char of String

Current Codeword di dalam dictionary?

[Index]

Entry Baru

1 72 - “H” - - -

2 72 65 “A” “A” Ya [256]

HA

3 65 257 “AA” “A” Tidak [257]

AA

4 257 70 “F” “F” Ya [258]

AAF

5 70 78 “N” “N” Ya [259]

FN

6 78 73 “I” “I” Ya [260]

NI

7 73 261 “I” “I” Tidak [261]

II

8 261 73 “I” “I” Ya [262]

III

Hasil dari proses dekompresi pada tabel 2.4 adalah kumpulan karakter atau string yang terdapat pada kolom output yaitu “HAAAFNIIII”.

2.3. Algoritma Elias Gamma Code

Algoritma Elias Gamma Code adalah algoritma kompresi data yang termasuk ke dalam jenis kompresi lossless yang dikembangkan oleh Peter Elias. Elias Gamma Code digunakan untuk membuat kode dalam bentuk bilangan bulat positif (Salomon, D. 2007). Algoritma Elias Gamma Code mempunyai aturan dalam mengkodekan sebuah bilangan.

1. Bilangan diubah terlebih dahulu kedalam bentuk biner.

2. Jumlah bit pada langkah pertama kurangi 1 dan tambah sesuai dengan banyaknya bilangan nol. Proses yang ekivalen pada poin nomor dua adalah sebagai berikut:

a. Pisahkan integer menjadi pangkat 2 tertinggi (2N) dan sisakan digit biner N dari integer tersebut.

b. Kodekan N dalam bentuk unary, jika N adalah nol maka diikuti oleh satu.

(26)

c. Tambahkan sisa digit biner N untuk merepresentasikan N.

Pengkodeaan Elias Gamma Code efisien digunakan untuk integer kecil dan untuk integer besar menggunakan Elias Delta Code. Tabel 2.5 dibawah ini merupakan tabel Elias Gamma Code.

Tabel 2.5 Elias Gamma Code (Salomon, D. 2007) n Elias Gamma Code n Elias Gamma Code

1 1 10 0001010

2 010 11 0001011

3 011 12 0001100

4 00100 13 0001101

5 00101 14 0001110

6 00110 15 0001111

7 00111 16 000010000

8 0001000 17 000010001

9 0001001 18 000010010

Keterangan tabel 2.5 diatas : n = nilai index karakter

Berikut ini adalah contoh perhitungan kompresi menggunakan Elias Gamma Code.

Dalam hal ini, string yang akan dikompresi “HAFNI MEGASARI”. Perhitungan seperti terlihat dibawah ini :

1. Dilakukan pembacaan string “HAFNI MEGASARI”.

2. Dilakukan pengurutan karakter dari tertinggi ke terendah menurut frekuensi kemunculan karakter.

3. Dilakukan konversi nilai karakter pada tabel ASCII kedalam bentuk bilangan biner. Pada tabel 2.6 dibawah ini diperlihatkan perhitungan karakter sebelum kompresi.

Tabel 2.6 Perhitungan Karakter Sebelum Kompresi

n Char ASCII ASCII(2) Bit F Bit x F

1 A 65 01000001 8 3 24

2 I 73 01001001 8 2 16

(27)

3 H 72 01001000 8 1 8

4 F 70 01000110 8 1 8

5 N 78 01001110 8 1 8

6 Space 32 00100000 8 1 8

7 M 77 01001101 8 1 8

8 E 69 01000101 8 1 8

9 G 71 01000111 8 1 8

10 S 83 01010011 8 1 8

11 R 82 01010010 8 1 8

Jumlah 112 bit

Keterangan tabel 2.6 diatas :

n = nilai index karakter Char = karakter yang muncul

ASCII = nilai ASCII karakter dalam desimal ASCII(2) = nilai ASCIIkarakter dalam biner F = frekuensi kemunculan karakter

4. Proses kompresi algoritma Elias Gamma Code sebagai berikut : a. Ubah bilangan n kedalam bentuk biner β(n)

Untuk n = 1 kode biner = 12 (karakter A) Untuk n = 2 kode biner = 102 (karakter I) Untuk n = 3 kode biner = 112 (karakter H) Untuk n = 4 kode biner = 1002 (karakter F) Untuk n = 5 kode biner = 1012 (karakter N) Untuk n = 6 kode biner = 1102 (karakter Space) Untuk n = 7 kode biner = 1112 (karakter M) Untuk n = 8 kode biner = 10002 (karakter E) Untuk n = 9 kode biner = 10012 (karakter G) Untuk n = 10 kode biner = 11002 (karakter S) Untuk n = 11 kode biner = 10112 (karakter R)

(28)

b. Dihitung panjang bilangan biner | β(n)| sebagai M dan dihapus satu bit paling kiri dari β(n). Pada tabel 2.7 dibawah ini diperlihatkan perhitungan panjang biner.

Tabel 2.7 Perhitungan Panjang Biner

N Char M (n)

1 A 1 {}

2 I 2 0

3 H 2 1

4 F 3 00

5 N 3 01

6 Space 3 10

7 M 3 11

8 E 4 000

9 G 4 001

10 S 4 100

11 R 4 011

c. Menghitung kode unary u(M) dengan menggunakan rumus u(M) = (M- 1)*”0”+”1” dan kemudian membentuk Elias Gamma Code dengan menggabungkan u(M) + β(n). Perhitungan u(M) dan Elias Gamma Code seperti terlihat pada tabel 2.8 dibawah ini :

Tabel 2.8 Perhitungan u(M) dan Elias Gamma Code

N char M (n) u(M) =(M-1)*”0”+”1” Elias Gamma Code

1 A 1 {} 1 1

2 I 2 0 01 010

3 H 2 1 01 011

4 F 3 00 001 00100

5 N 3 01 001 00101

6 Space 3 10 001 00110

7 M 3 11 001 00111

8 E 4 000 0001 0001000

(29)

9 G 4 001 0001 0001001

10 S 4 010 0001 0001010

11 R 4 011 0001 0001011

Sehingga didapat hasil kompresi per karakter string sebagai berikut :

H A F N I Space M E G

001 1 00100 00101 010 00110 00111 0001000 0001001

A S A R I

1 0001010 1 0001011 010

5. Proses dekompresi Elias Gamma Code sebagai berikut : a. Masukkan kode Elias Gamma Code karakter n sebagai Ei b. Ambil jumlah digit 0 sebelum digit 1 pertama Ei sebagai N c. Ambil bit biner setelah digit 1 sebagai bilangan bulat desimal L d. Menghitung keluaran karakter n dengan menggunakan n = 2n + L

Untuk E(1) = 1 maka n = 20 + 0 = 1 (karakter A) Untuk E(2) = 010 maka n = 21 + 0 = 2 (karakter I) Untuk E(3) = 011 maka n = 21 + 1 = 3 (karakter H) Untuk E(4) = 00100 maka n = 22 + 0 = 4 (karakter F) Untuk E(5) = 00101 maka n = 22 + 1 = 5 (karakter N) Untuk E(6) = 00110 maka n = 22 + 2 = 6 (karakter Space) Untuk E(7) = 00111 maka n = 22 + 3 = 7 (karakter M) Untuk E(8) = 0001000 maka n = 23 + 0 = 8 (karakter E) Untuk E(9) = 0001001maka n = 23 + 1 = 9 (karakter G) Untuk E(10) = 0001010 maka n = 23 + 2 = 10 (karakter S) Untuk E(11) = 0001011 maka n = 23 + 3 = 11 (karakter R

2.4. Video

Video merupakan sebuah teknologi yang digunakan untuk menangkap, merekam, memproses, mentransmisikan, dan mengatur ulang gambar bergerak yang memiliki

(30)

suara. Video memiliki tiga dimensi, yaitu dua dimensi spatial (horisontal dan vertikal) dan satu dimensi waktu (Fitria dkk., 2017). Contoh file video terlihat pada gambar 2.3.

Gambar 2.3 Contoh File Video

Pada file video ada dua hal yang dapat dikompersi yaitu frame (still image) dan audio. Sebuah video memiliki redudancy spatial (warna dalam still image) dan redudancy temporal (perubahan antar frame). Proses kompresi redudancy spatial (spatial / intraframe compression) dilakukan sama seperti teknik kompresi lossy color reduction pada image. Sedangkan untuk proses kompresi redudancy temporal (temporal / interframe compression) dilakukan dengan mengirim dan mengkode frame yang berubah dan data yang sama masih tersimpan.

Ada beberapa format file video yang umum digunakan, salah satunya adalah Audio Video Interleave (.avi). Format video .avi bisa menyesuaikan audio dengan alat untuk memutar video (Malaga dan Koppel, 2017). Format video ini diciptakan oleh Microsoft pada tahun 1992 sehingga disebut sebagai generasi tua file video. Pada dasarnya file .avi merupakan file yang dihasilkan dari sumber pengambilan video tanpa terkompresi, karena tidak terkompresi file .avi lebih berkualitas. Namun, ukuran file .avi menjadi besar dan sebagian besar perangkat lunak pengeditan video dapat dengan mudah mengimpor ke format lain. File .avi sering digunakan saat merekam, sebelum mengkonversi ke format untuk distribusi berbasis web.

2.5. Penelitian yang Relevan

Beberapa penelitian terdahulu yang relevan dengan penelitian yang akan dilakukan

(31)

oleh penulis yaitu sebagai berikut :

1. Penelitian yang telah dilakukan sebelumnya oleh (Fitria, Luluk A., Tito W.

Purboyo, dan Anggunmeka L. Prasasti. 2017) dengan judul “A Review of Data Compression Techniques” mengambil kesimpulan bahwa, teknik kompresi bisa mengurangi ukuran file yang besar menjadi ukuran lebih kecil yang dapat menghemat ruang penyimpanan komputer. Kompresi data dapat direalisasikan dengan data teks, gambar, dan video. Berbagai teknik algoritma kompresi memiliki kelebihan dan kekurangan untuk melakukan kompresi.

2. Penelitian yang telah dilakukan sebelumnya oleh (Malaga, Ross A. dan Nicole B.

Koppel. 2017) dengan jurnal yang berjudul “A Comparison of Video Formats for Online Teaching” mengambil kesimpulan bahwa, format AVI menghasilkan video yang terlalu besar dan tidak dapat dimaikan di kebanyakan perangkat.

Namun, karena format AVI tidak terkompresi sangat diharapkan penggunaannya perlu mengedit video. Flash adalah metode yang sangat populer untuk menyediakan video online. Namun, kesulitan dalam mengunduh file Flash dan ketidakmampuan perangkat iOS untuk memainkan Flash membuat format ini tidak cocok dalam lingkungan pendidikan. Selain itu, penerapan HTML5 membuat Flash semakin usang selama beberapa tahun ke depan. QuickTimes adalah tipe lama dan seharusnya tidak digunakan di masa depan karena itu telah digantikan oleh MPEG-4.

3. Penelitian yang telah dilakukan sebelumnya oleh (Sitepu, Nurhennida Br. 2014) dengan judul “Perbandingan Algoritma Elias Gamma Code dengan Shannon- Fano untuk Kompresi File Teks” mengambil kesimpulan bahwa, hasil pengujian menggunakan parameter redundancy data untuk jumlah variasi karakter dan kemunculan karakter maka algoritma yang lebih baik adalah Elias Gamma Code dan algoritma Elias Gamma Code dapat menghasilkan nilai redundancy negatif untuk jumlah karakter berbeda diatas 35 karakter dengan kemunculan satu kali tanpa ada perulangan karakter yang sama karena kode yang dihasilkan semakin panjang.

4. Penelitian yang telah dilakukan sebelumnya oleh (Pratama, Andre. 2009) dengan judul “Studi Perbandingan Kinerja Algoritma Kompresi Lempel Ziv 77, Lempel Ziv 78, Lempel Ziv Welch pada File Text” mengambil kesimpulan bahwa, untuk

(32)

ketiga algoritma proses kompresi lebih lama dibandingkan dengan proses dekompresi. Penambahan dictionary (atau buffer) pada setiap algoritma, memberikan peningkatan hasil pada rasio kompresi, namun membutuhkan waktu proses yang semakin lama.

(33)

BAB III

ANALISIS DAN PERANCANGAN SISTEM

3.1. Analisis Sistem

Analisis sistem merupakan salah satu tahap pembangunan sistem untuk menentukan hal-hal yang akan dilakukan pada rancangan sistem, agar sistem dapat berjalan sesuai dengan tujuan utama.

3.1.1. Analisis Masalah

Masalah yang akan dibahas dari penelitian ini yaitu bagaimana perbandingan kinerja algoritma Lempel Ziv Welch dan algoritma Elias Gamma Code pada proses kompresi file video berdasarkan parameter compression ratio (Cr), ratio of compression (Rc), space saving (Ss), bitrate, serta waktu kompresi dan dekompresi yang dihitung dalam satuan milisekon (ms).

Diagram ishikawa digunakan untuk memaparkan identifikasi masalah dengan menunjukkan sebab-sebab terjadinya suatu masalah. Diagram ishikawa sistem ini dilihat pada gambar 3.1.

Gambar 3.1 Diagram Ishikawa Analisis Masalah

(34)

Pada gambar diagram 3.1 ada empat kategori penyebab masalah pada penelitian ini, yaitu material, manusia, metode serta mesin (sistem). Setiap detail penyebab masalah tersebut dapat dilihat dengan tanda panah yang mengarah pada masing-masing kategori.

3.1.2. General Arsitektur

General arsitektur digunakan untuk menjelaskan secara keseluruhan dari sebuah sistem yang akan dibangun. Pada general arsitektur terdapat komponen-komponen serta interaksi antar komponen yang terhubung menjadi kesatuan yang utuh.

Perancangan seluruh program ini dijabarkan pada gambar 3.2.

Gambar 3.2 General Arsitektur

Gambar diatas menjelaskan tentang general arsitektur sistem pada penelitian ini. Pengguna memasukkan file video yang akan dikompresi. Setelah itu sistem akan melakukan proses kompresi. Kemudian pengguna memilih metode yang akan digunakan untuk meng-kompresi file video yang telah dimasukkan, yaitu metode Lempel Ziv Welch atau Elias Gamma Code. Setelah itu proses kompresi selesai.

Selanjutnya untuk proses dekompresi, pengguna memasukkan file video hasil dari kompresi. Setelah itu sistem akan melakukan proses dekompresi. Pengguna memilih kembali metode yang akan digunakan untuk meng-dekompresi file, yaitu metode Lempel Ziv Welch ata Elias Gamma Code, maka file video akan kembali seperti semula.

(35)

3.1.3. Analisis Kebutuhan

Analisis kebutuhan merupakan tahapan identifikasi kebutuhan yang diperlukan dalam sebuah sistem. Analisis kebutuhan terdiri dari dua jenis kebutuhan, yaitu kebutuhan fungsional dan non-fungsional. Kebutuhan fungsional membahas tentang fungsi- fungsi utama yang ada pada sistem yang dirancang. Sedangkan kebutuhan non- fungsional membahas tentang fungsi-fungsi yang berperan sebagai pelengkap sistem agar mendapat feedback dari pengguna.

1. Kebutuhan Fungsional

Kebutuhan fungsional sistem yang dirancang meliputi :

a. Sistem dapat membaca file video berekstensi .avi yang di input pengguna.

b. Sistem dapat melakukan proses kompresi maupun dekompresi dengan menggunakan algoritma Lempel Ziv Welch dan algoritma Elias Gamma Code pada file video.

c. Sistem dapat menampilkan size bit file video sebelum dan sesudah kompresi, compression ratio (Cr), ratio of compression (Rc), space saving (Ss), bitrate, serta waktu kompresi dan dekompresi yang dihitung dalam satuan milisekon (ms).

2. Kebutuhan non-fungsional

Kebutuhan non-fungsional sistem yang dirancang meliputi : a. Performa

Sistem dapat melakukan proses kompresi dan dekompresi file video dengan jarak waktu yang sedikit.

b. Minimalis

Sistem dibangun dengan tampilan sederhana dan menarik bagi pengguna.

c. Informasi

Sistem menyediakan informasi yang berkaitan dengan data file video yang akan atau telah dikompresi oleh sistem.

d. Kualitas

Sistem yang dibangun harus mampu memberikan hasil kompresi dan dekompresi yang tepat dan akurat, serta menjamin integritas data.

e. Dokumentasi

Sistem dapat menyimpan file hasil kompresi maupun hasil dekompresi

(36)

3.2. Pemodelan Sistem

Pemodelan sistem merupakan tahapan yang menjelaskan komponen-komponen dari sistem yang akan dibangun dan keterkaitan antara pengguna dengan sistem.

Pemodelan penelitian ini dilakukan menggunakan Unified Modeling Language (UML). UML merupakan bahasa spesifikasi standar yang digunakan untuk menjelaskan mengenai komponen-komponen untuk membangun sistem dan interaksi antar komponen. Adapun model UML yang digunakan use case diagram, activity diagram dan sequence diagram.

3.2.1. Use Case Diagram

Use case diagram merupakan gambaran dari fungsi-fungsi sebuah sistem yang dirancang untuk penggunanya sehingga mudah dipahami. Use case diagram menggambarkan fungsionalitas dari sebuah sistem, sehingga pengguna dapat dengan mudah memahami sistem tersebut. Pada use case diagram, pengguna berperan untuk menjalankan dan berkomunikasi dengan sistem. Pengguna dan use case diagram dihubungkan dengan garis lurus. Sedangkan use case dengan use case lainya terhubung dengan menggunakan garis putus-putus yang dinamakan dengan include dan untuk menghubungkan sebuah use case dengan use case lainnya jika kondisi terpenuhi disebut dengan extand. Use case diagram pada sistem dilihat pada gambar 3.3.

Gambar 3.3 Use Case Diagram Pada Sistem

(37)

Use case diagram pada gambar 3.3 menjelaskan bahwa sistem dapat di akses oleh seorang pengguna (aktor) dimana pengguna tersebut dapat melakukan kompresi maupun dekompresi dengan dua algoritma yang digunakan, yaitu algoritma Lempel Ziv Welch dan Elias Gamma Code. Hal pertama yang dilakukan ketika melakukan kompresi yaitu memilih file video berekstensi *.avi yang ingin dikompresikan. Lalu memilih algoritma apa yang akan digunakan pada proses kompresi. Setelah file berhasil dikompresi sistem akan menampilkan informasi terkait hasil kompresi tersebut. Lalu, pengguna juga dapat menyimpan hasil kompresi atau melakukan reset terhadap inputan file.

Begitu juga untuk melakukan proses dekompresi, pengguna memilih file yang terkompresi terlebih dahulu dengan membuka file berekstensi *.lzw || *.eg, kemudian proses dekompresi dilakukan dengan menggunakan algoritma Lempel Ziv Welch dan Elias Gamma Code. Setelah itu pengguna dapat menyimpan file hasil dekompresi atau melakukan reset terhadap inputan file.

3.2.2. Activity Diagram

Activity diagram menggambarkan alur aktifitas pengguna terhadap sistem yang dirancang secara berurutan dari awal hingga akhir.

1. Activity Diagram Proses Kompresi

Activity diagram ini merupakan gambaran proses kompresi menggunakan algoritma Lempel Ziv Welch atau Elias Gamma Code yang dilakukan oleh sistem.

Activity diagram proses kompresi dilihat pada gambar 3.4.

(38)

Gambar 3.4 Activity Diagram Proses Kompresi 2. Activity Diagram Proses Dekompresi

Activity diagram ini merupakan gambaran proses dekompresi yang berjalan pada sistem. Activity diagram proses dekompresi dilihat pada gambar 3.5.

(39)

Gambar 3.5 Activity Diagram Proses Dekompresi

Berdasakan gambar 3.5 dapat dilihat bahwa, pada mulanya pengguna harus menginputkan file video yang telah dikompresi, dan sistem akan menerima inputan tersebut. Setelah itu pengguna memilih kembali metode yang akan digunakan untuk meng-dekompresi file, yaitu metode Lempel Ziv Welch atau Elias Gamma Code, setelah proses dekompresi selesai, maka akan tampil informasi dari file yang telah di dekompresi yang berupa waktu dekompresi.

3.2.3. Sequence Diagram

Sequence diagram merupakan gambaran mengenai interaksi antar objek melalui pesan dimana interaksi tersebut disusun berdasarkan urutan waktu. Interaksi antar objek

(40)

tersebut berupa perintah terhadap sistem dan juga feedback yang dihasilkan sistem.

Sequence diagram untuk sistem ini dilihat pada gambar seperti berikut.

1. Sequence diagram proses kompresi yang terdapat pada sistem dilihat pada gambar 3.6.

Gambar 3.6 Sequence Diagram Proses Kompresi

2. Sequence diagram proses dekompresi yang terdapat pada sistem dapat dilihat pada gambar 3.7.

Gambar 3.7 Sequence Diagram Proses Dekompresi

(41)

3.3. Flowchart

3.3.1. Flowchart Sistem Secara Umum

Flowchart sistem secara umum terdiri dari dua flowchart yaitu flowchart proses kompresi dan flowchart proses dekompresi. Perancangan sistem secara umum digambarkan dengan flowchart seperti pada gambar 3.8.

a. Flowchart proses kompresi b. Flowchart proses dekompresi Gambar 3.8 Flowchart Sistem Secara Umum

(42)

3.3.2. Flowchart Algoritma Lempel Ziv Welch

Berikut flowchart kompresi dengan algoritma Lempel Ziv Welch seperti yang terlihat pada gambar 3.9.

Gambar 3.9 Flowchart Kompresi Algoritma Lempel Ziv Welch

Berikut flowchart dekompresi dengan algoritma Lempel Ziv Welch seperti yang terlihat pada gambar 3.10

(43)

Gambar 3.10 Flowchart Dekompresi Algoritma Lempel Ziv Welch

(44)

3.3.3. Flowchart Algoritma Elias Gamma Code

Berikut flowchart kompresi dengan algoritma Elias Gamma Code seperti yang terlihat pada gambar 3.11.

Gambar 3.11 Flowchart Kompresi Algoritma Elias Gamma Code Berikut flowchart dekompresi dengan algoritma Elias Gamma Code seperti yang terlihat pada gambar 3.12

(45)

Gambar 3.12 Flowchart Dekompresi Algoritma Elias Gamma Code

3.4. Perancangan Antarmuka (Interface)

Perancangan antarmuka sistem dapat memberikan pengaruh penting antara pengguna dan sistem dalam berkomunikasi. Oleh sebab itu diperlukan perancangan antarmuka yang efisien, sederhana dan menarik sehingga mudah dimengerti dan dijalankan oleh pengguna.

3.4.1. Rancangan Halaman Home

Halaman home merupakan tampilan yang pertama ditampilkan ketika sistem dijalankan. Pada tampilan halaman home terdapat beberapa menu untuk menjalankan halaman lain seperti terlihat pada gambar 3.13.

(46)

Gambar 3.13 Tampilan Halaman Utama Keterangan gambar :

1. Tool Strip Menu : digunakan untuk memilih menu home

2. Tool Strip Menu : digunakan untuk memilih menu kompresi file 3. Tool Strip Menu : digunakan untuk memilih menu dekompresi file 4. Tool Strip Menu : digunakan untuk memilih menu tentang

5. Label : berisi judul

6. PictureBox : berisi logo institusi

7. Label : berisi identitas pembuat sistem dan instansi pendidikan 3.4.2. Rancangan Halaman Kompresi

Halaman kompresi merupakan halaman proses kompresi file dilakukan. Pada menu kompresi pengguna dapat memasukkan file yang akan dikompresi dan memilih algoritma yang akan digunakan. Di menu ini juga terdapat informasi-informasi dari file yang terkompresi seperti pada gambar 3.14.

(47)

Gambar 3.14 Tampilan Halaman Kompresi Pada Sistem Keterangan gambar :

1. Tool Strip Menu : digunakan untuk memilih menu Home 2. Tool Strip Menu : digunakan untuk memilih menu Kompresi 3. Tool Strip Menu : digunakan untuk memilih menu Dekompresi 4. Tool Strip Menu : digunakan untuk memilih menu Tentang

5. Group box : digunakan untuk mengelompokkan fungsi-fungsi kompresi 6. Button : untuk mengakses file pada direktori komputer

7. TextBox : untuk menampilkan informasi direktori komputer 8. Label : menjelaskan keterangan teks nama file

9. Label : menjelaskan keterangan teks ukuran file 10. Label : menampilkan nama file

11. Label : menampilkan ukuran file

(48)

12. Label : menjelaskan keterangan teks pilihan algoritma

13. Button : memproses kompresi file menggunakan algoritma Elias Gamma Code

14. Button : memproses kompresi file menggunakan algoritma Lempel Ziv Welch

15. Group box : untuk mengelompokkan fungsi-fungsi informasi file terkompresi

16. Label : menjelaskan keterangan teks waktu kompresi 17. Label : menjelaskan keterangan teks Compression of Ratio 18. Label : menjelaskan keterangan teks Space Saving

19. Label : menjelaskan keterangan teks Ratio of Compression 20. Label : menjelaskan keterangan Bitrate

21. Label : menjelaskan keterangan teks ukuran kompresi 22. TextBox : menampilkan waktu kompresi

23. TextBox : menampilkan Compression of Ratio 24. TextBox : menampilkan nilai Space Saving 25. TextBox : menampilkan Ratio of Compression 26. TextBox : menampilkan Bitrate

27. TextBox : menampilkan ukuran file hasil kompresi 28. Button : untuk menyimpan file hasil kompresi 29. Button : untuk mengembalikan halaman seperti awal 3.4.3. Rancangan Halaman Dekompresi

Halaman dekompresi merupakan halaman proses dekompresi file dilakukan. Pada menu dekompresi pengguna memasukkan file yang sudah terkompresi dan memilih algoritma yang akan digunakan. Di menu ini juga terdapat informasi dari file yang telah didekompresi seperti pada gambar 3.15.

(49)

Gambar 3.15 Tampilan Halaman Dekompresi Pada Sistem Keterangan gambar :

1. Tool Strip Menu : digunakan untuk memilih menu home 2. Tool Strip Menu : digunakan untuk memilih menu kompresi 3. Tool Strip Menu : digunakan untuk memilih menu dekompresi 4. Tool Strip Menu : digunakan untuk memilih menu tentang

5. Group box : digunakan untuk mengelompokkan fungsi-fungsi dekompresi 6. Button : untuk mengakses file pada direktori komputer

7. Label : menjelaskan keterangan teks nama file

8. TextBox : untuk menampilkan informasi direktori komputer 9. Label : untuk menampilkan nama file

10. Button : digunakan untuk melakukan proses dekompresi 11. Group box : untuk mengelompokkan fungsi-fungsi informasi file

terdekompresi

(50)

12. Label : menjelaskan keterangan teks waktu dekompresi 13. Text box : menampilkan waktu dekompresi

14. Button : untuk menyimpan file hasil kompresi 15. Button : untuk mengembalikan halaman seperti awal 3.4.4. Rancangan Halaman Tentang

Halaman tentang merupakan halaman dimana pengguna dapat melihat informasi penjelasan mengenai sistem serta informasi dari pembuat sistem seperti terlihat pada gambar 3.16.

Gambar 3.16 Tampilan Halaman Tentang Pada Sistem Keterangan gambar :

1. Tool Strip Menu : digunakan untuk memilih menu home 2. Tool Strip Menu : digunakan untuk memilih menu kompresi 3. Tool Strip Menu : digunakan untuk memilih menu dekompresi 4. Tool Strip Menu : digunakan untuk memilih menu tentang

5. Label : menjelaskan keterangan teks mengenai tentang

6. Label : menjelaskan keterangan teks mengenai penjelasan pembuatan sistem

7. Label :untuk menampilkan keterangan teks identitas pembuat sistem

(51)

BAB IV

IMPLEMENTASI DAN PENGUJIAN SISTEM

4.1. Implementasi

Implementasi merupakan tahap yang dilakukan setelah tahap perancangan sistem.

Sistem dibangun menggunakan bahasa pemrograman C# dan menggunakan aplikasi Sharp Develop 5.1. Berdasarkan rancangan sistem yang telah direncanakan, sistem terdiri dari empat halaman, yaitu halaman home, halaman kompresi, halaman dekompresi, dan halaman tentang.

4.1.1. Halaman Home

Halaman home merupakan halaman yang pertama ditampilkan saat pengguna menjalankan sistem. Pada halaman home terdapat beberapa informasi mengenai sistem seperti judul penelitian, logo universitas, serta identitas pembuat sistem.

Halaman home dapat dilihat pada gambar 4.1.

Gambar 4.1 Halaman Home

(52)

4.1.2. Halaman Kompresi File

Halaman kompresi adalah halaman yang menampilkan proses kompresi file video dengan menggunakan algoritma Lempel Ziv Welch dan Elias Gamma Code serta menampilkan informasi mengenai file yang telah dikompresi.

Pada Halaman ini terdapat button “Browse” yang berfungsi untuk mengakses file pada direktori komputer untuk dikompresi oleh program. Selain itu terdapat pula button Lempel Ziv Welch dan Elias Gamma Code yang berfungsi untuk memilih algoritma yang akan digunakan untuk proses kompresi. Setelah proses kompresi selesai, akan muncul messageBox dan informasi-informasi pada textBox dari file yang telah dikompresi. Pengguna dapat menyimpan file terkompresi dengan menekan button “Save”. Untuk mengulang proses kompresi pengguna dapat menekan buton

“Reset”. Halaman kompresi file dapat dilihat pada gambar 4.2 sedangkan Source code kompresi Lempel Ziv Welch dan Elias Gamma Code dapat dilihat pada gambar 4.3 dan gambar 4.4.

Gambar 4.2 Halaman Kompresi

(53)

Gambar 4.3 Source Code Kompresi Lempel Ziv Welch

Gambar 4.4 Source Code Kompresi Elias Gamma Code 4.1.3. Halaman Dekompresi

Halaman dekompresi adalah halaman yang menampilkan proses dekompresi file hasil kompresi yang dilakukan pada halaman kompresi serta menampilkan file yang telah didekompresi.

Pada halaman ini terdapat button “Browse” yang berfungsi untuk mengakses file yang telah dikompresi pada direktori komputer untuk dilakukan proses dekompresi oleh program. Setelah file dipilih, proses dekompresi dapat dilakukan dengan menekan button “Dekompresi”. Setelah proses dekompresi selesai, akan muncul messageBox yang menandakan bahwa proses dekompresi telah selasai serta akan muncul informasi menegenai waktu yang dibutuhkan untuk proses dekompresi pada textBox. Pengguna dapat menyimpan file hasil dekompresi dengan menekan

(54)

button “Save”. Untuk mengulang proses dekompresi pengguna dapat menekan buton

“Reset”. Halaman dekompresi dapat dilihat pada gambar 4.5 sedangkan Source code dekompresi dapat dilihat pada gambar 4.6.

Gambar 4.5 Halaman Dekompresi

(55)

Gambar 4.6 Source Code Dekompresi 4.1.4. Halaman Tentang

Halaman tentang adalah halaman yang digunakan untuk menampilkan informasi mengenai sistem serta informasi tentang penulis. Halaman tentang dapat dilihat pada gambar 4.7.

Gambar 4.7 Halaman Tentang

4.2. Pengujian Sistem

Pada tahap ini dilakukan pengujian terhadap sistem yang telah dibangun dengan fungsi-fungsi yang sebelumnya telah ditentukan pada tahap analisis dan perancangan sistem serta untuk mengetahui kinerja dari masing-masing algoritma. Tahap pengujian sistem ini dilakukan terhadap file video dengan format *.avi. Proses utama dari sistem ini adalah proses pengujian kompresi dan proses pengujian dekompresi.

4.2.1. Pengujian Proses Kompresi

Tahap awal yang dilakukan untuk memulai proses kompresi adalah dengan memilih file video dengan format *.avi pada direktori komputer dengan menekan button

“Browse” pada tampilan. Pada saat file video sudah dipilih, maka pada textBox akan muncul direktori dimana file video tersebut tersimpan serta nama dan ukuran file video pada label seperti terlihat pada gambar 4.8 berikut :

(56)

Gambar 4.8 File Video Sebelum Proses Kompresi

Untuk memulai proses kompresi, pengguna dapat memilih algoritma apa yang akan digunakan dengan menekan button “Elias Gamma Code” atau “Lempel Ziv Welch” pada tampilan. Setelah proses kompresi selesai, maka akan muncul messageBox yang menandakan proses kompresi telah selesai. Seperti terlihat pada gambar 4.9.

(57)

Gambar 4.9 Messagebox Proses Kompresi Selesai

Lalu, setelah proses kompresi selesai maka akan mucul informasi-informasi dari file yang telah dikompresi berupa waktu kompresi, compression ratio, space saving, ratio of compression, dan ukuran file pada textBox yang tersedia. Setelah itu, Pengguna dapat menyimpan file terkompresi dengan menekan button “Save” dan untuk mengulang proses kompresi pengguna dapat menekan buton “Reset”. Hasil proses kompresi menggunakan algoritma Lempel Ziv Welch dapat dilihat pada gambar 4.10 dan untuk algoritma Elias Gamma Code dapat dilihat pada gambar 4.11.

(58)

Gambar 4.10 Hasil Kompresi Menggunakan Algoritma Lempel Ziv Welch

Gambar 4.11 Hasil Kompresi Menggunakan Algoritma Elias Gamma Code

(59)

4.2.2. Pengujian Proses Dekompresi

Tahap awal untuk melakukan proses dekompresi adalah dengan memilih file dengan format *.lzw atau *.eg dengan menekan button “Browse” pada tampilan. Pada saat file video sudah dipilih, maka pada textBox akan muncul direktori dimana file video tersebut tersimpan dan nama file yang telah dikompresi pada label seperti terlihat pada gambar 4.12.

Gambar 4.12 File Video Sebelum Proses Dekompresi

Setelah file terkompresi dipilih, pengguna dapat memulai proses dekompresi dengan menekan button “Dekompresi” pada tampilan. Setelah proses dekompresi selesai, maka akan muncul messageBox yang menandakan proses dekompresi telah selesai seperti terlihat pada gambar 4.13.

(60)

Gambar 4.13 Messagebox Proses Kompresi Selesai

Lalu, setelah proses dekompresi selesai maka akan mucul informasi menegenai waktu yang dibutuhkan untuk melakukan proses dekompresi pada textBox.

Pengguna dapat menyimpan file hasil dekompresi dengan menekan button “Save”.

Untuk mengulang proses dekompresi pengguna dapat menekan buton “Reset” seperti terlihat pada gambar 4.14.

(61)

Gambar 4.14 Hasil Proses Dekompresi 4.2.3. Hasil Pengujian

Setelah pengujian sistem selesai, selanjutnya akan dibandingkan antara algoritma Lempel Ziv Welch dan algoritma Elias Gamma Code mana yang lebih efisien dalam melakukan kompresi file video berekstensi *.avi. Hal ini dilihat berdasarkan hasil pengujian terhadap beberapa parameter yang telah ditentukan sebelumnya dengan menggunakan beberapa data. Hasil pengujian dengan menggunakan algoritma Lempel Ziv Welch dan algoritma Elias Gamma Code terhadap waktu kompresi dapat dilihat pada tabel 4.1.

Tabel 4.1 Hasil Pengujian Kompresi Algoritma Lempel Ziv Welch dan Algoritma Elias Gamma Code terhadap Waktu Kompresi

Algoritma Nama file Ukuran awal (KB)

Ukuran kompresi (KB)

Waktu kompresi (ms) Lempel Ziv

Welch

Sample1.avi 35,67 33,15 74,56

Sample2.avi 36,2 32,1 99,27

Referensi

Dokumen terkait

Pengaruh Tingkat Inflasi, Suku Bunga, dan Nilai Tukar Terhadap Harga Saham Perusahaan Bank BUMN Di Bursa Efek Indonesia Variabel Independen: Tingkat Inflasi, Suku

This data is similar with a study conducted in Saudi Arabia 11 which shows visual impairment is most common in students aged 7–8 years and were of 3 rd to 4 th grade.. One

Penelitian ini bertolok ukur pada asumsi bahwa di masyarakat sudah menganut sistem sosial yang terbuka, artinya terdapat aktivitas tingkat mobilitas individu yang

Republik Indonesia, Peraturan Presiden Nomor 44 Tahun 2016 tentang Bidang Usaha Yang Tertutup Dan Bidang Usaha Yang Terbuka Dengan Persyaratan Di Bidang Penanaman Modal, pasal 1

The majority of patients were motorcyclists (92%) with most of them were not wearing safety equipment. Most of the accidents took place in 2011 in Bandung. Mandible was the

a) variabel karakteristik pedagang canang di pasar Badung, yang meliputi daerah asal, umur, tingkat pendidikan, status, jumlah anggota keluarga di rumah, jumlah saudara lain

Results: There were 3 main responses regarding the respondent’s opinions. First, respondents showed several attitudes toward drugs in general and also several attitudes

Dalam melakukan penelitian ini, peneliti ingin membatasi hanya dengan memahami bagaimana kasus chat mesum Habib Rizieq dan Firda Husein disebarkan