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
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
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
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.
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
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
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
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
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
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
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
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
DAFTAR LAMPIRAN
Lampiran 1 LISTING PROGRAM ... A-1 Lampiran 2 CURRICULUM VITAE ... B-1 Halaman
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
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#.
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
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
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.
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
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).
𝐵𝑖𝑡𝑟𝑎𝑡𝑒 =𝑢𝑘𝑢𝑟𝑎𝑛 𝑏𝑖𝑡 𝑡𝑒𝑟𝑘𝑜𝑚𝑝𝑟𝑒𝑠𝑖 𝑗𝑢𝑚𝑙𝑎ℎ 𝑗𝑒𝑛𝑖𝑠 𝑘𝑎𝑟𝑎𝑘𝑡𝑒𝑟
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
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
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
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.
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
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)
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
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
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
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
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.
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
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.
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
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
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.
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.
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
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
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
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
Gambar 3.10 Flowchart Dekompresi Algoritma Lempel Ziv Welch
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
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.
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.
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
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.
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
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
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
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
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
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
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 :
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.
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.
Gambar 4.10 Hasil Kompresi Menggunakan Algoritma Lempel Ziv Welch
Gambar 4.11 Hasil Kompresi Menggunakan Algoritma Elias Gamma Code
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.
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.
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