ANALISIS PERBANDINGAN KOMPRESI FILE VIDEO DENGAN MOTION PICTURE EXPERT GROUP-4 DAN FLASH VIDEO DENGAN
MENGGUNAKAN ALGORITMA HUFFMAN
SKRIPSI
NUZUL SAKINAH LUBIS 0 8 1 4 0 1 0 5 6
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
ANALISIS PERBANDINGAN KOMPRESI FILE VIDEO DENGAN MOTION PICTURE EXPERT GROUP-4 DAN FLASH VIDEO DENGAN
MENGGUNAKAN ALGORITMA HUFFMAN
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer
NUZUL SAKINAH LUBIS 0 8 1 4 0 1 0 5 6
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
PERSETUJUAN
Judul : ANALISIS PERBANDINGAN KOMPRESI FILE
VIDEO DENGAN MOTION PICTURE EXPERT
GROUP-4 DAN FLASH VIDEO DENGAN
MENGGUNAKAN ALGORITMA HUFFMAN
Kategori : SKRIPSI
Nama : NUZUL SAKINAH LUBIS
Nomor Induk Mahasiswa : 081401056
Program Studi : SARJANA (S1) ILMU KOMPUTER Departemen : ILMU KOMPUTER
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI (Fasilkom-TI) UNIVERSITAS SUMATERA UTARA
Diluluskan di Medan, Juli 2013 Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Drs. Muhammad Firdaus, M.Si Prof. Dr. Muhammad Zarlis
Diketahui/Disetujui oleh
Dept. Ilmu Komputer Fasilkom-TI USU Ketua,
PERNYATAAN
ANALISIS PERBANDINGAN KOMPRESI FILE VIDEO DENGAN MOTION PICTURE EXPERT GROUP-4 DAN FLASH VIDEO DENGAN
MENGGUNAKAN ALGORITMA HUFFMAN
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, Juli 2013
PENGHARGAAN
Puji dan syukur kehadirat Allah SWT, yang hanya dengan rahmat dan izin-Nya penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh ijazah Sarjana Ilmu Komputer, pada Program Studi S1 Ilmu Komputer Departemen Ilmu Komputer Universitas Sumatera Utara.
Ucapan terima kasih penulis sampaikan kepada:
1. Bapak Prof. Dr. dr. Syahril Pasaribu, DTM&H, M.Sc(CTM), Sp.A(K) selaku Rektor Universitas Sumatera Utara.
2. Bapak Prof. Dr. Muhammad Zarlis selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara dan Dosen Pembimbing I yang telah memberikan bimbingan, saran dan masukan kepada penulis dalam pengerjaan skripsi ini.
3. Bapak Drs. Muhammad Firdaus, M.Si selaku Dosen Pembimbing II yang telah memberikan bimbingan, saran dan masukan kepada penulis dalam pengerjaan skripsi ini.
4. Bapak Prof. Dr. Iryanto, M.Si selaku Dosen Pembanding I yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.
5. Bapak M.Andri Budiman, ST, M.Comp.Sc, MEM selaku Dosen Pembanding II yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.
6. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.
7. Ibu Maya Silvi Lydia, B.Sc, M.Sc selaku Sekretaris Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.
8. Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara, seluruh tenaga pengajar dan pegawai di Program Studi S1 Ilmu Komputer Fasilkom-TI USU.
9. Orang tua tercinta, Ir. H. Zulkifli Lubis, M.I.Komp dan Hj. Nurlailan Nasution, yang telah memberikan didikan, semangat, dan dorongan baik moril maupun materil. Serta abang, kakak dan adik-adik tersayang yang selalu memberikan doa, kasih sayang dan dukungannya kepada penulis.
11. Senior, teman-teman seperjuangan S1-Ilmu Komputer stambuk 2008, adik-adik stambuk 2009 yang selalu memberikan semangat dan menjadi teman diskusi penulis selama menyelesaikan skripsi ini.
Semoga Allah SWT melimpahkan berkah kepada semua pihak yang telah memberikan bantuan, perhatian, serta dukungan kepada penulis dalam menyelesaikan skripsi ini.
Medan, Juli 2013 Penulis
ABSTRAK
Pada penelitian ini dilakukan analisis perbandingan hasil kompresi dan dekompresi file video dengan format Motion Picture Expert Group-4 (MPEG-4) dan Flash Video (FLV). Perancangan perangkat lunak dibuat untuk memproses kompresi dan dekompresi video sehingga pengguna (user) dapat mengetahui waktu yang diperlukan selama proses dan ukuran video yang di hasilkan. Algoritma yang digunakan pada penelitian ini adalah Algoritma Huffman. Prinsip kerja Algoritma Huffman adalah membaca nilai bit pada file yang akan dikompres, membaca posisi nilai bit, mengurutkannya secara Ascending (dari yang terkecil ke yang terbesar), melakukan pengkodean, dengan cara memberikan nilai 0 pada nilai bit yang paling sering muncul, dan selanjutnya menambahkan angka 1 di depan 0 untuk nilai bit yang lebih jarang muncul. Hasil kompresi tidak selalu lebih kecil daripada ukuran file awal, dikarenakan sedikitnya pengulangan kemunculan nilai suatu bit tersebut. Melalui perangkat lunak yang telah penulis rancang, user dapat memilih file video digital yang akan dimasukkan untuk diproses. Penulis menggunakan common dialog box control untuk melakukan pemilihan file video digital yang diinginkan. User dapat melakukan kompresi terhadap file video digital dan juga dapat melakukan dekompresi terhadap file video digital yang sudah dikompresi sebelumnya.
COMPARATIVE ANALYSIS OF VIDEO FILES COMPRESSION WITH MOTION PICTURE EXPERT GROUP-4 AND FLASH VIDEO
BY USING HUFFMAN’s ALGORITHM
ABSTRACT
In this research, comparative analysis of compression and decompression video files results is conducted by format of the Motion Picture Expert Group-4 (MPEG-4) and Flash Video (FLV). Software design is created for video compression and decompression process, so that the user can determine the required time during the process and the sizeof the resulting video. The algorithm used in this study is Huffman’s Algorithm. Huffman’s Algorithm working principle is to read the value of bits in the file to be compressed, read the bit position values, sorted in Ascending (from the smallest to the largest) and perform coding, by giving a value of 0 on the bit value that appears most frequently, and then add the 1 in front of the bit value 0 to less frequently. Compression results are not always smaller than the initial file size, because at least the appearance of repeating the bit value. Through the software that has been designed by the author, user can choose the digital video file which will be used for being process. The author uses the common dialog box control to make a selection the desired digital video files. Users can perform digital video compression to the desired file and also able to perform decompress digital video files which are already compressed before.
DAFTAR ISI
Halaman
Persetujuan ii
Pernyataan iii Penghargaan iv Abstrak v Abstract vi Daftar Isi vii Daftar Tabel ix Daftar Gambar x Bab 1 Pendahuluan 1.1Latar Belakang 1
1.2Rumusan Masalah 2
1.3Batasan Masalah 2
1.4Tujuan Penelitian 3
1.5Manfaat Penelitian 3
1.6Metodologi Penelitian 3
1.7Sistematika Penulisan 5
Bab 2 Landasan Teori 2.1 Video Digital 6
2.2 Format Video Digital 8
2.3Kompresi Data 11
2.3.1 Jenis-jenis Kompresi Data 12
2.3.2 Kriteria dan Klasifikasi Teknik Kompresi Data 13
2.3.3 Aplikasi Kompresi 14
2.3.4 Rasio Kompresi 15
2.4Algorima Huffman 15
2.4.1 Pohon Huffman 16
2.4.2 Coding Table 17
2.4.3 Coding dan Decoding 18
2.5 Alat Bantu Perancangan Perangkat Lunak 18
2.5.1 Flowchart 19
2.5.2 Algoritma 20
2.6 Microsoft Visual Basic 6.0 22
Bab 3 Analisis dan Perancangan Sistem 3.1 Analisis Sistem 26
3.1.2 Analisis Fasilitas Perangkat Lunak 32
3.1.3 Analisis Cara Kerja Perangkat Lunak 33
3.1.3.1 Diagram Alir Cara Kerja Perangkat Lunak 34
3.2 Perancangan Sistem 36
Bab 4 Implementasi dan Pembahasan 4.1 Implementasi 36
4.1.1 Tampilan Antarmuka Perangkat Lunak 36
4.1.1.1Tampilan Form Utama 36
4.1.1.2Tampilan Form About 39
4.1.2 Pengujian Sistem 40
4.2 Pembahasan 49
4.2.1 Analisis Perbandingan 49
4.2.2 Kelebihan Sistem 50
4.2.3 Kelemahan Sistem 50
Bab 5 Kesimpulan dan Saran 5.1 Kesimpulan 51
5.2. Saran 51
DAFTAR TABEL
Halaman
2.1 Coding Table 17
2.2 Simbol Program Flowchart 19
2.3 Simbol Sistem Flowchart 20
3.1 Frekuensi Kemunculan 27
3.2 Hasil Pengkodean Huffman 28
3.3 Nilai Bit Dalam Kode Huffman 28
3.4 Kode Huffman Dekompresi 31
3.5 Pemetaan Nilai Bit 31
DAFTAR GAMBAR
Halaman
2.1 Huffman Tree 16
2.2 Encoding dan Decoding di Huffman Coding 18
2.3 Jendela Project 23
2.4 Jendela Form 23
2.5 Jendela Toolbox 24
2.6 Jendela Properties 24
3.1 Membaca Nilai Bit 27
3.2 Pohon Huffman 181, 181, 201, 181, 178, 181, 227, 181, 63 28
3.3 Flowchart Proses Kompresi 34
3.4 Flowchart Proses Dekompresi 35
3.5 Flowchart Program 36
3.6 Rancangan Form Main 37
3.7 Rancangan Form About 37
4.1 Tampilan Form Utama 49
4.2 Form About 49
4.3 Informasi File monty.mp4 40
4.4 Informasi File monty.flv 41
4.5 Load File monty.mp4 41
4.6 Informasi Hasil Kompresi monty.mp4 42
4.7 Menyimpan Hasil Kompresi Dengan Nama kompres1.MPEG 42
4.8 Informasi File kompres1.MPEG 43
4.9 Load File monty.flv 43
4.10 Informasi Hasil Kompresi monty.flv 44
4.11 Menyimpan Hasil Kompresi Dengan Nama Kompres2.flv 44
4.12 Informasi File kompres2.flv 45
4.13 Load File kompres1.MPEG 45
4.14 Informasi Hasil Dekompresi kompres1.MPEG 46
4.15 Menyimpan Hasil Dekompresi Dengan Nama dekompres1.MPEG 46
4.16 Informasi File dekompres1.MPEG 47
4.17 Load File kompres2.flv 47
4.18 Informasi Hasil Dekompresi kompres2.flv 48
4.19 Menyimpan Hasil Dekompresi Dengan Nama dekompres2.flv 48
DAFTAR LAMPIRAN
Halaman
A. ASCII control characters (0-31) A-1
B. ASCII printabel characters (32-127) B-1
C. The extended ASCII codes (128-255) C-1
D. SourceCode D-1
ABSTRAK
Pada penelitian ini dilakukan analisis perbandingan hasil kompresi dan dekompresi file video dengan format Motion Picture Expert Group-4 (MPEG-4) dan Flash Video (FLV). Perancangan perangkat lunak dibuat untuk memproses kompresi dan dekompresi video sehingga pengguna (user) dapat mengetahui waktu yang diperlukan selama proses dan ukuran video yang di hasilkan. Algoritma yang digunakan pada penelitian ini adalah Algoritma Huffman. Prinsip kerja Algoritma Huffman adalah membaca nilai bit pada file yang akan dikompres, membaca posisi nilai bit, mengurutkannya secara Ascending (dari yang terkecil ke yang terbesar), melakukan pengkodean, dengan cara memberikan nilai 0 pada nilai bit yang paling sering muncul, dan selanjutnya menambahkan angka 1 di depan 0 untuk nilai bit yang lebih jarang muncul. Hasil kompresi tidak selalu lebih kecil daripada ukuran file awal, dikarenakan sedikitnya pengulangan kemunculan nilai suatu bit tersebut. Melalui perangkat lunak yang telah penulis rancang, user dapat memilih file video digital yang akan dimasukkan untuk diproses. Penulis menggunakan common dialog box control untuk melakukan pemilihan file video digital yang diinginkan. User dapat melakukan kompresi terhadap file video digital dan juga dapat melakukan dekompresi terhadap file video digital yang sudah dikompresi sebelumnya.
COMPARATIVE ANALYSIS OF VIDEO FILES COMPRESSION WITH MOTION PICTURE EXPERT GROUP-4 AND FLASH VIDEO
BY USING HUFFMAN’s ALGORITHM
ABSTRACT
In this research, comparative analysis of compression and decompression video files results is conducted by format of the Motion Picture Expert Group-4 (MPEG-4) and Flash Video (FLV). Software design is created for video compression and decompression process, so that the user can determine the required time during the process and the sizeof the resulting video. The algorithm used in this study is Huffman’s Algorithm. Huffman’s Algorithm working principle is to read the value of bits in the file to be compressed, read the bit position values, sorted in Ascending (from the smallest to the largest) and perform coding, by giving a value of 0 on the bit value that appears most frequently, and then add the 1 in front of the bit value 0 to less frequently. Compression results are not always smaller than the initial file size, because at least the appearance of repeating the bit value. Through the software that has been designed by the author, user can choose the digital video file which will be used for being process. The author uses the common dialog box control to make a selection the desired digital video files. Users can perform digital video compression to the desired file and also able to perform decompress digital video files which are already compressed before.
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Perkembangan teknologi komputer semakin pesat dewasa ini, sehingga sangat membantu manusia dalam mengolah data untuk mendapatkan informasi. Aktivitas yang dulunya dilakukan secara manual, sekarang dapat diproses dengan menggunakan komputer sehingga dapat menghemat waktu dan tingkat ketelitian yang di hasilkan jauh lebih tinggi. Salah satu contoh dari penggunaan komputer adalah pengolahan data video digital.
Video digital adalah berkas komputer yang digunakan untuk menyimpan kumpulan berkas digital seperti video, audio, metadata, informasi, pembagian chapter, dan judul sekaligus, yang dapat dimainkan atau digunakan melalui perangkat lunak tertentu pada komputer [7].
File video digital ini memiliki ukuran yang cukup besar sehingga membutuhkan media penyimpanan yang besar, untuk itu kompresi data menjadi sangat penting karena memperkecil kebutuhan penyimpanan data, mempercepat pengiriman data, dan memperkecil kebutuhan bandwidth [9].
Beberapa format file kompresi video yang sering digunakan adalah Motion Picture Expert Group-4 (MPEG-4) dan Flash Video (FLV). MPEG-4 adalah suatu metode untuk melakukan kompresi video. Pada prinsipnya, sebuah gambar bergerak adalah sekumpulan frame yang mengalir dengan cepat, di mana setiap frame adalah gambar. dengan kata lain, sebuah frame adalah kombinasi pixel-pixel, dan sebuah video adalah kombinasi fisik dari frame-frame yang dikirim secara bergantian. Kompresi video berarti memampatan tiap frame dalam ruang dan pemampatan secara fisik dari sekumpulan frame [5].
FLV adalah video dengan format flash movie yang digunakan di Internet. FLV biasanya menjadi format standar yang digunakan oleh Youtube, Google Video, Reuters.com, Yahoo!Video, MySpace, dan lain-lain [7].
Berdasarkan uraian di atas, maka penulis mencoba merancang sebuah perangkat lunak yang dapat digunakan sebagai bahan analisis perbandingan kompresi video digital dengan format MPEG-4 dan FLV. Oleh karena itu, penulis melakukan penelitian sebagai tugas akhir ini dengan judul : “Analisis Perbandingan Kompresi FileVideo dengan MPEG-4 dan FLV dengan Menggunakan Algoritma Huffman”.
1.2 Rumusan Masalah
Berdasarkan uraian pada latar belakang, maka rumusan masalah yang akan dibahas pada tugas akhir ini adalah bagaimana melakukan analisis perbandingan kompresi video dengan MPEG-4 dan FLV menggunakan algoritma Huffman.
1.3 Batasan Masalah
Adapun yang menjadi batasan masalah dalam penulisan tugas akhir ini adalah: 1. Metode kompresi yang digunakan adalah Huffman.
4. Aplikasi dikembangkan dengan bahasa pemrograman Visual Basic 6.0 dalam bentuk aplikasi desktop.
5. Penelitian ini hanya mengompresi video dan bukan audio.
1.4 Tujuan Penelitian
Adapun tujuan dari tugas akhir ini adalah:
1. Mengetahui proses kerja kompresi video digital dengan format MPcEG-4 dan FLV menggunakan algoritma Huffman.
2. Menghasilkan sebuah aplikasi kompresi video digital dengan format MPEG-4 dan FLV menggunakan algoritma Huffman dan mengetahui hasil perbandingan filevideo tersebut berdasarkan waktu dan ukurannya.
3. Mengetahui kelebihan dan kelemahan kompresi video digital dengan format MPEG-4 dan FLV menggunakan algoritma Huffman.
1.5 Manfaat Penelitian
Manfaat penelitian ini adalah:
1. Bagi penulis: Bermanfaat untuk menambah wawasan tentang video compression,sehingga dapat merancang perangkat lunak yang baik.
2. Bagi bidang ilmu: Bermanfaat untuk merancang perangkat lunak yang mampu mengkompresi file video dengan format MPEG-4 dan FLV menggunakan algoritma Huffman dan mengetahui hasil perbandingan file video tersebut berdasarkan waktu dan ukurannya.
3. Bagi masyarakat: Bermanfaat untuk mengembangkan ilmu pengetahuan, khususnya di bidang video compression.
1.6 Metodologi Penelitian
Mempelajari teori tentang kompresi video digital dengan format MPEG-4 dan FLV menggunakan algoritma Huffman dan mengumpulkan data dan semua teori yang berkaitan dengan penelitian, baik dari beberapa buku, makalah, jurnal, maupun penelitian terdahulu.
2. Analisis
Pada tahap ini dilakukan analisis kebutuhan terhadap sistem beserta batasan- batasan yang diperlukan :
1. Menganalisis cara kerja algoritma Huffman.
2. Kompresi file video menggunakan format MPEG-4 dan FLV dengan algoritma Huffman.
3. Membandingkan hasil kompresi file video antara format MPEG-4 dan FLV menggunakan algoritma Huffman.
3. Perancangan
Melakukan perancangan desain dalam bentuk struktur program, flowchart, dan antar muka sistem untuk memudahkan proses implementasi pada tahap selanjutnya.
4. Implementasi
Pada tahap ini dilakukan pembuatan sistem sesuai dengan analisis dan perancangan yang sudah didefinisikan sebelumnya. Implementasi sistem dilakukan dengan menggunakan bahasa pemrograman Visual Basic 6.0.
5. Pengujian Sistem
Pengujian dilakukan untuk mengetahui, perbandingan hasil kompresi file video antara MPEG-4 dan FLV yang lebih efisien menggunakan algoritma Huffman. 6. Penyusunan Laporan
1.7 Sistematika Penulisan
BAB 1 : PENDAHULUAN
Bab ini berisi pembahasan masalah umum yang meliputi latar belakang pemilihan judul skripsi, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian, dan sistematika penulisan.
BAB 2 : TINJAUAN PUSTAKA
Bab ini membahas mengenai teori-teori yang berfungsi sebagai sumber atau bahan dalam memahami permasalahan pada penelitian ini, yang berkaitan dengan pengertian video digital, kompresi file video, algoritma Huffman, dan sebagai alat bantu pengembangan sistem dan bahasa pemrograman Microsoft Visual Basic 6.0 yang akan digunakan pada penelitian ini.
BAB 3 : ANALISIS DAN PERANCANGAN SISTEM
Bab ini membahas mengenai analisis dan perancangan sistem, yakni analisis proses kompresi dan dekompresi menggunakan algoritma Huffman, dan penggunaannya pada perangkat lunak, serta perancangan antarmuka pada perangkat lunak yang dibuat. BAB 4 : IMPLEMENTASI DAN PEMBAHASAN
Bab ini membahas mengenai uraian tentang cara pengoperasian perangkat lunak, termasuk pengujian kompresi dan dekompresi file video menggunakan algoritma Huffman terhadap perangkat lunak yang dihasilkan. Serta pembahasan mengenai kelebihan dan kekurangan sistem tersebut.
BAB 5 : KESIMPULAN DAN SARAN
BAB 2
LANDASAN TEORI
2.1 Video Digital
Video adalah teknologi untuk menangkap, merekam, memproses, mentransmisikan dan menata ulang gambar bergerak. Biasanya menggunakan film seluloid, sinyal elektronik, atau media digital [3].
Video digital adalah berkas komputer yang digunakan untuk menyimpan kumpulan berkas digital seperti video, audio, metadata, informasi, pembagian chapter, dan judul sekaligus, yang dapat dimainkan atau digunakan melalui perangkat lunak tertentu pada komputer [7].
Untuk melakukan digitalisasi dan penyimpanan klip video full-motion selama 1 menit ke dalam komputer, harus dilakukan transfer data dalam jumlah banyak dalam waktu yang singkat. Untuk mereproduksi satu frame dari komponen video digital 24 bit, diperlukan data komputer hampir 1 MB; video tidak compressed dengan layar penuh selama 30 detik akan memenuhi hard disk bermuatan gigabyte. Video dengan ukuran penuh dan full-motion memerlukan komputer yang dapat mengirimkan data lebih kurang 30 MB per detik. Kemacetan teknologi yang besar dapat diatasi dengan menggunakan skema Digital video compressed atau codec (coder/decoder). Codec adalah algoritma yang digunakan untuk mengompresi (kode) sebuah video untuk dikirimkan, kemudian didecode secara langsung untuk pemutaran yang cepat. Codec yang berbeda dioptimasi untuk metode pengiriman yang berbeda [6].
ikut berpartisipasi dalam kejadian yang ditampilkan. Oleh sebab itu, suatu gambar harus dapat menyampaikan informasi spatial dan temporal dari suatu scene, yang dapat dilakukan dengan cara [7]:
1. Vertical Detail dan Viewing Distance
Aspek rasio adalah perbandingan lebar dan tinggi, yaitu 3:4. Tinggi gambar digunakan untuk menentukan jarak pandang dengan menghitung rasio viewing distance (D) dengan tinggi gambar (H) = D/H. Setiap detail image pada video ditampilkan dalam pixel-pixel.
2. Horizontal Detail dan Picture Width
Lebar gambar pada TV konvensional = 4/3 x tinggi gambar. 3. Total Detail Content
Resolusi vertikal = jumlah elemen pada tinggi gambar, Resolusi horizontal = jumlah elemen pada lebar gambar x aspek rasio. Total pixel = pixel horizontal x pixel vertikal.
4. Perception of Depth
Dalam pandangan / penglihatan natural, kedalaman gambar tergantung pada sudut pemisah antara gambar yang diterima oleh kedua mata. Pada layar flat, persepsi kedalam suatu benda berdasarkan subject benda yang tampak.
5. Warna
Gambar berwarna dihasilkan dengan mencampur 3 warna printer RGB (Merah, Biru, Hijau).
Properti warna pada sistem broadcast : a. Luminance
Brightness = jumlah energi yang menstimulasi mata grayscale (hitam/putih), Pada televisi warna luminance tidak diperlukan.
b. Chrominance adalah informasi warna.
Hue (warna) = warna yang ditangkap mata (frekuensi). Saturation = color strength (vividness) / intensitas warna. Cb = komponen U dan Cr = Komponen V pada sistem YUV.
6. Continuity of Motion
7. Flicker
Untuk menghindari terjadinya flicker diperlukan kecepatan minimal melakukan refresh 50 cycles/s.
2.2 Format Video Digital
VideoDigital terdiri dari urutan frame. Jika frame yang ditampilkan pada layar cukup cepat, kita akan mendapatkan kesan gambar yang bergerak. Alasannya adalah mata kita tidak dapat membedakan frame-frame yang bergerak dengan sangat cepat sebagai frame-frame yang terpisah. Belum ada jumlah standar frame per detik; di Amerika Utara jumlah frame yang umum adalah 25 frame per detik. Namun, untuk menghindari kondisi yang dikenal sebagai berkedip, frame perlu di refresh [5].
Sebuah video digital terdiri dari frame-frame yang mana frame-frame tersebut dikompres menjadi sebuah file komputer yang hanya dapat dijalankan menggunakan sebuah perangkat lunak multimedia player [7].
Berdasarkan bentuk-bentuk kompresan dari file video digital tersebut, banyak bermunculan format-format video digital yang ditawarkan kepada pengguna dengan kelebihan dan kekurangannya masing-masing. Adapun beberapa contoh dari format video digital yang sering dijumpai antara lain :
1. AVI (Audio Video Interleave)
AVI merupakan format berkas yang dibuat oleh Microsoft. Sebagian besar camcorder, baik analog maupun digital, menjadikan format ini sebagai format baku saat capture video. Format AVI memiliki berbagai pilihan metode compressor-decompressor (codec), antara lain: Cinepak, Indeo, Microsoft Video 1, Clear Video (IVI), dan lainnya. Setiap berkas AVI dapat menggunakan codec yang berbeda-beda. Akibatnya, jika pengguna ingin menjalankan suatu berkas AVI pada komputer sementara codec yang digunakan berkas AVI itu belum terinstal pada komputer, maka berkas tersebut tidak akan dapat dijalankan [4]. 2. MPEG (Motion Picture Expert Group)
a. Synchronization and multiplexing of video and audio. b. Compression codec for non-interlaced video signals. c. Compression codec for perceptual coding of audio signals.
MP1 or MPEG-1 Part 3 Layer 1 (MPEG-1 Audio Layer 1) MP2 or MPEG-1 Part 3 Layer 2 (MPEG-1 Audio Layer 2) MP3 or MPEG-1 Part 3 Layer 3 (MPEG-1 Audio Layer 3) d. Procedures for testing conformance.
e. Reference for testing conformace. f. Reference software.
MPEG-1 beresolusi 352 x 240 dan hanya mensupport progressive scan video. MPEG-2 digunakan untuk broadcast, siaran untuk direct-satelit dan cable tv. MPEG-2 support interlaced format. MPEG-2 digunakan dalam/pada HDTV dan DVD vidoe disc. MPEG-4 digunakan untuk streaming, CD distribution, videophone dan broadcast television. MPEG-4 mendukung digital rights management [10].
MPEG-4 adalah suatu metode untuk melakukan kompresi video. pada prinsipnya, sebuah gambar bergerak adalah sekumpulan frame yang mengalir dengan cepat, di mana setiap frame adalah gambar. dengan kata lain, sebuah frame adalah kombinasi pixel-pixel, dan sebuah video adalah kombinasi fisik dari frame-frame yang dikirim secara bergantian. Kompresi video berati memampatan tiap frame dalam ruang dan pemampatan secara fisik dari sekumpulan frame [5].
3. RMVB (Real Media Variable Bitrate)
4. MKV (Matroska Video)
MKV adalah salah satu format video yang mungkin sering dijumpai di internet. MKV merupakan alternatif format video selain beberapa format video Digital seperti AVI, MPEG, 3GP, RMVB dimana masing-masing memiliki sifat dan kualitas yang berlainan.
Format MKV biasanya digunakan untuk video dengan kualitas tinggi yang tidak semua PC mampu memutarnya dengan baik. Sebuah file video digital dalam format MKV memiliki beberapa bagian, yaitu :
a. Video b. Audio
c. Subtitle
Semua bagian ini terpisah, namun menjadi satu bagian didalam format MKV. Bagian-bagian ini nantinya akan digabungkan menggunakan sebuah codec MKV sehingga video Digital dalam format MKV ini dapat dibaca dan dijalankan menggunakan perangkat lunak multimedia player [10].
5. WMV (Windows Media Video)
WMV adalah adalah format file video terkompresi yang dikembangkan oleh Microsoft. WMV, awalnya dirancang untuk aplikasi Internet Streaming, sebagai pesaing untuk RealVideo. File video Digital dengan format WMV (*.wmv) menggunakan format pembawa ASF milik Microsoft. Berkas ini dapat dijalankan oleh perangkat lunak multimedia player seperti Windows Media Player, MPlayer, VLC media player atau Media Player Classic. Beberapa player pihak ketiga juga ada untuk berbagai platform seperti Linux yang menggunakan implementasi FFMPEG untuk codec WMV [10].
6. FLV
dengan pemutar musik seperti Winamp, Windows Media Player, dll. Berbeda dengan format MPEG, AVI, Mp3, dan lain-lain, bisa dengan mudah dimainkan dengan pemutar musik tersebut [10].
2.3 Kompresi Data
Kompresi berarti memampatkan atau mengecilkan ukuran. Sedangkan kompresi data adalah proses mengkodekan informasi menggunakan bit atau information-bearing unit yang lain yang lebih rendah daripada representasi data yang tidak terkodekan dengan suatu sistem encoding tertentu. Contoh kompresi sederhana yang biasa dilakukan misalnya adalah menyingkat kata-kata yang sering digunakan tapi sudah memiliki konvensi umum, misalnya : kata “yang” dikompres menjadi kata “yg’’ [1].
Pengiriman data hasil kompresi dapat dilakukan jika pihak pengirim atau yang melakukan kompresi dan pihak penerima memiliki aturan yang sama dalam hal kompresi data. Pihak pengirim harus menggunakan algoritma kompresi data yang sudah baku dan pihak penerima juga menggunakan teknik dekompresi data yang sama dengan pengirim sehingga data yang diterima dapat dibaca/di-decode kembali dengan benar [1].
Kompresi data menjadi sangat penting karena memperkecil kebutuhan penyimpanan data, mempercepat pengiriman data, memperkecil kebutuhan bandwidth. Teknik kompresi bisa dilakukan terhadap data teks/biner, gambar (JPEG, PNG, TIFF), audio (MP3, AAC, RMA, WMA), dan video (MPEG, H261, H263) [1].
Contoh kebutuhan data selama 1 detik pada layar resolusi 640 x 480 [1] : 1. Data Teks
1 karakter = 2 bytes (termasuk karakter ASCII Extended) Setiap karakter ditampilkan dalam 8x8 pixels
Jumlah karakter yang dapat ditampilkan per halaman =
8x8 480 x
640 = 4800
karakter.
2. Data Grafik Vektor
1 still image membutuhkan 500 baris, setiap 1 baris direpresentasikan dalam posisi horisontal, vertikal, dan field atribut sebesar 8-bit, Sumbu Horizontal direpresentasikan dengan log2 640 = 10 bits , Sumbu Vertikal direpresentasikan dengan log2 480 = 9 bits,Bits per line = 9 bits + 10 bits + 8 bits = 27 bits
Storage required per screen page = 500 × 27 8
= 1687,5 byte = 1,65 Kbyte
3. Color Display
Jenis : 256, 4.096, 16.384, 65.536, 16.777.216 warna Masing-masing warna pixel memakan tempat 1 byte
Misal 640 x 480 x 256 warna x 1 byte = 307.200 byte = 300 Kbyte.
2.3.1 Jenis-Jenis Kompresi Data
Jenis-jenis kompresi data dapat dibedakan atas [1] :
1. Jenis Kompresi Data Berdasarkan Mode Penerimaan Data oleh Manusia Jenis kompresi data ini dapat dibedakan atas :
a. Dialoque Mode, yaitu proses penerimaan data di mana pengirim dan penerima seakan berdialog (real time), seperti pada contoh video conference. Di mana kompresi data harus berada dalam batas penglihatan dan pendengaran manusia. Waktu tunda (delay) tidak boleh lebih dari 150 ms, di mana 50 ms untuk proses kompresi dan dekompresi, 100 ms mentransmisikan data dalam jaringan.
b. Retrieval Mode, yaitu proses penerimaan data tidak dilakukan secara real time. Pada jenis ini dapat dilakukan fast forward dan fast rewind di client atau dapat dilakukan random access terhadap data dan dapat bersifat interaktif.
2. Jenis kompresi berdasarkan output dapat dibedakan atas [5] : a. Lossy Compression
audio. Misalnya, penglihatan manusia tidak dapat mendeteksi beberapa distorsi kecil yang dapat hasil dari kompresi lossy dari suatu gambar.
b. Lossless compression
Dalam Lossless compresion, integritas data sangat terjaga karena algoritma kompresi dan dekompresi invers tepat satu sama lain: tidak ada bagian dari data yang hilang dalam proses. Metode kompresi lossless biasanya digunakan ketika kita tidak ingin kehilangan data apapun. Misalnya, kita tidak boleh kehilangan data ketika kita kompres file teks atau program aplikasi. Kompresi lossless juga diterapkan sebagai langkah terakhir dalam beberapa prosedur kompresi lossy untuk mengurangi ukuran data. Empat contoh metode kompresi lossless dalam bagian ini: run length coding, dictiinary coding, Huffman coding, dan arithmatic coding.
2.3.2 Kriteria dan Klasifikasi Teknik Kompresi Data
Adapun kriteria utama dari sebuah sistem yang bisa digunakan untuk kompresi data adalah sebagai berikut [1]:
1. Kualitas data hasil enkoding harus bisa membuat ukuran file lebih kecil dari file sumber, serta data tidak rusak untuk kompresi lossy.
2. Kecepatan, ratio, dan efisiensi proses kompresi dan dekompresi.
3. Ketepatan proses dekompresi data harus bisa membuat data hasil dekompresi tetap sama dengan data sebelum dikompres (kompresi loseless).
Sedangkan klasifikasi teknik kompresi data adalah sebagai berikut [1]: 1. Entropy Encoding
Teknik kompresi ini memiliki ciri-ciri sebagai berikut : a. Bersifat loseless
b. Tekniknya tidak berdasarkan media dengan spesifikasi dan karakteristik tertentu namun berdasarkan urutan data.
c. Statistical encoding, tidak memperhatikan semantik data.
d. Misalnya : Run-length coding, Huffman coding, Arithmetic coding 2. Source Coding
a. Bersifat lossy
b. Berkaitan dengan data semantik (arti data) dan media.
c. Misalnya : Prediction (DPCM, DM), Transformation (FFT, DCT), Layered Coding (Bit position, subsampling, sub-band coding), Vector Quantization. 3. Hybrid Coding
Teknik kompresi ini memiliki ciri-ciri sebagai berikut : a. Gabungan antara lossy + loseless
b. Misalnya JPEG, MPEG, H.261, DVI
2.3.3 Aplikasi Kompresi
Aplikasi kompresi data sudah banyak dijual dipasaran dalam berbagai bentuk format file. Adapun beberapa format file yang bisa digunakan untuk kompresi file, antara lain:
1. ZIP File Format
Oleh Phil Katz untuk program PKZIP kemudian dikembangkan untuk WinZip, WinRAR, 7-Zip. File hasil kompresi berekstensi *.zip dan MIME application/zip. Format ini dapat menggabungkan dan mengkompresi beberapa file sekaligus menggunakan bermacam-macam algoritma, namun paling umum menggunakan Katz’s Deflate Algorithm. Adapun beberapa method Zip yang sering digunakan adalah shrinking yang merupakan metode variasi dari LZW, reducing merupakan metode yang mengkombinasikan metode same byte sequence based dan probability based encoding imploding yang menggunakan metode byte sequence based dan Shannon-Fano encoding, deflate yang menggunakan LZW, Bzip2 dan lain-lain. AplikasiWinZip dibuat oleh Nico-Mak Computing [1].
2. RAR (bagian, 3.20)
2.3.4 Rasio Kompresi
Menurut David Salomon (2007), tingkat pengurangan data yang dicapai sebagai hasil dari proses kompresi disebut rasio kompresi. Rasio ini merupakan perbandingan antara panjang data string asli dengan panjang data string yang sudah dikompresi, seperti dituliskan dalam persamaan berikut:
�����= ��������������
���������������������
Jika dinyatakan dalam persentasemaka dituliskan dalam persamaan berikut:
� = ( 1−���������������������
�������������� ) × 100%
Yang berarti ukuran file berkurang sebesar P (dalam persentase) dari ukuran semula. Semakin tinggi rasio tingkat suatu teknik kompresi data maka semakin efektif teknik kompresi tersebut [11].
2.4 Algoritma Huffman
Algoritma Huffman, yang dibuat oleh seorang mahasiswa MIT bernama David Huffman pada tahun 1952, merupakan salah satu metode paling lama dan paling terkenal dalam pemampatan teks. Algoritma Huffman menggunakan prinsip pengkodean yang mirip dengan kode Morse, yaitu tiap karakter (simbol) dikodekan hanya dengan rangkaian beberapa bit, dimana karakter yang sering muncul dikodekan dengan rangkaian bit yang pendek dan karakter yang jarang muncul dikodekan.dengan rangkaian bit yang lebih panjang. Berdasarkan tipe peta kode yang digunakan untuk mengubah pesan awal (isi data yang diinputkan) menjadi sekumpulan codeword, algoritma Huffman termasuk kedalam kelas algoritma yang menggunakan metode statik [8].
frekuensi terkecil dalam membuat pohon Huffman. Algoritma greedy ini digunakan pada pembentukan pohon Huffman agar meminimumkan total cost yang dibutuhkan. Cost yang digunakan untuk menggabungkan dua buah pohon pada akar setara dengan jumlah frekuensi dua buah pohon yang digabungkan, oleh karena itu total cost pembentukan pohon Huffman adalah jumlah total seluruh penggabungan. penggabungan dua buah pohon dilakukan setiap langkah dan algoritma Huffman selalu memilih dua buah pohon yang mempunyai frekuensi terkecil untuk meminimumkan total cost[13].
2.4.1 Pohon Huffman
Menurut Forouzan (2013), untuk menggunakan Huffman coding, pertama kita perlu membuat pohon Huffman. Pohon Huffman adalah pohon yang daun pohonnya adalah simbol. Dilakukan dengan cara simbol yang paling sering muncul adalah yang paling dekat dengan akar pohon (dengan jumlah minimum node ke akar) dan simbol lebih sedikit muncul adalah yang terjauh dari akar. Gambar 2.1 menunjukkan proses pembentukan pohon Huffman.
[image:31.595.105.496.410.683.2]
20 10 10 30 30 20 30 30 30 30
Gambar 2.1 Huffman Tree
1. Kita menempatkan seluruh set karakter berturut-turut. Masing-masing karakter sekarang menjadi simpul pada tingkat terendah dari pohon.
3. Kita ulangi langkah dua sampai semua node, pada setiap tingkat, digabungkan menjadi satu pohon.
4. Setelah pohon dibuat, kami menetapkan nilai bit untuk masing-masing cabang. Karena pohon Huffman adalah pohon biner, setiap node memiliki maksimum dua anak [5].
2.4.2 Coding Table
Menurut Forouzan (2013) setelah pohon telah dibuat, kita dapat membuat tabel yang menunjukkan bagaimana masing-masing karakter dapat di-encode dan decode. kode untuk setiap karakter dapat ditemukan dengan memulai pada akar dan mengikuti cabang yang mengarah pada karakter itu. Kode itu sendiri adalah nilai bit masing-masing di jalan cabang, diambil secara berurutan. Tabel 2.1 menunjukkan karakter kode untuk contoh sederhana berikut.
Tabel 2.1 Coding Table
Simbol Code
A 00
B 010
C 011
D 10
E 11
2.4.3 Encoding dan Decoding
Gambar 2.2 menunjukkan bagaimana kita bisa encode dan decode di Huffman coding.
Gambar 2.2 Encoding dan Decoding di Huffman Coding
Dalam Huffman coding, tidak ada kode yang menjadi awalan dari kode lain. Ini berarti bahwa kita tidak perlu memasukkan pembatas untuk memisahkan kode untuk satu karakter dari kode yang berikutnya. Huffman coding juga memungkinkan seketika saat di-decoding, ketika decoder memiliki dua bit 00, segera dapat memecahkan kode itu sebagai karakter A, ia tidak perlu melihat lebih banyak bit. Salah satu kelemahan dari Huffman coding adalah bahwa kedua encoder dan decoder perlu menggunakan tabel pengkodean yang sama. Dengan kata lain, pohon Huffman tidak dapat dibuat secara dinamis seperti kamus di LZW coding, Namun, jika encoder dan decoder menggunakan set simbol yang sama sepanjang waktu, pohon dapat dibuat dan dibagi sekali. Jika tidak, tabel perlu dibuat oleh encoder dan diberikan kepada penerima [5].
2.5 Alat Bantu Perancangan Perangkat Lunak
2.5.1 Flowchart
Flowcharting adalah suatu teknik untuk menyusun rencana program yang telah diperkenalkan dan telah dipergunakan oleh kalangan pemrogram komputer sebelum algoritma menjadi populer. Flowchart adalah untaian simbol gambar (chart) yang menunjukkan aliran (flow) dari proses terhadap data [12].
Ada dua kategori simbol flowchart menurut Dr. Suarga (2012), yaitu program flowchart dan sistem flowchart, yakni:
[image:34.595.110.528.358.775.2]1. Program flowchart, yaitu simbol-simbol flowchart yang digunakan untuk menggambarkan logik dari pemrosesan terhadap data. Adapun simbol-simbol Program flowchart seperti pada Tabel 2.2.
Tabel 2.2 Simbol Program Flowchart
No Simbol Keterangan
1 Terminator, mulai atau selesai
2 Proses, menyatakan proses terhadap data
3 Input/Output, menerima atau menampilkan
output
4 Seleksi/Pilihan, memilih aliran berdasarkan
syarat
5 Predefined-Data, definisi awal dari variabel
atau data
6 Predefined-Process, lambang fungsi atau
sub-program
2. Sistem Flowchart, merupakan simbol-simbol peralatan sistem komputer yang digunakan untuk menyatakan proses pengolahan data.
Tabel 2.3 Simbol Sistem Flowchart
No Simbol Keterangan
1 Manual input, Keyboard
2 Printer
3 File/Storage
4 Display, monitor
5 Magnetic Tape
6 Magnetic Disk
7 Sorting
8 Extract
9 Merge
2.5.2 Algoritma
Beberapa definisi algoritma [12]:
1. Teknik penyusunan langkah-langkah penyelesaian masalah dalam bentuk kalimat dengan jumlah kata terbatas tetapi tersusun secara logis dan sistematis. 2. Suatu prosedur yang jelas untuk menyelesaikan suatu persoalan dengan
menggunakan langkah-langkah tertentu dan terbatas jumlahnya.
Ciri Algoritma, yaitu [12]:
1. Algoritma mempunyai awal dan akhir, suatu algoritma harus berhentu setelah mengerjakan serangkaian tugas. Dengan kata lain, suatu algoritma memiliki langkah yang terbatas.
2. Setiap langkah harus didefinisikan dengan tepat, sehingga tidak memiliki arti ganda.
3. Memiliki masukan (input) atau kondisi awal. 4. Memiliki keluaran (output) atau kondisi akhir.
5. Algoritma harus efektif, bila diikuti benar-benar maka akan menyelesaikan persoalan.
Sifat Algoritma, yaitu [12]:
1. Input: Suatu algoritma memiliki input atau kondisi awal sebelum dilaksanakan, bisa berupa nilai peubah yang diambil dari himpunan khusus.
2. Output: Suatu algoritma akan menghasilkan output setelah dilaksanakan, atau algoritma akan mengubah kondisi awal menjadi kondisi akhir, dimana nilai output diperoleh dari nilai input yang telah diproses melalui algoritma.
3. Defineteness: Langkah-langkah yang dituliskan dalam algoritma terdefinisi dengan jelas sehingga mudah dilaksakan oleh pengguna algoritma.
4. Finiteness: Suatu algoritma harus memberi kondisi akhir atau output setelah sejumlah langkah yang terbatas jumlahnya dilakukan terhadap setiap kondisi awal atau input yang diberikan.
5. Effectivenes: setiap langkah dalam algoritma bisa dilaksanakan dalam suatu selang waktu tertentu sehingga pada akhirnya didapatkan solusi sesuai yang diharapkan.
2.6 Microsoft Visual Basic 6.0
Microsoft Visual Basic 6.0 (VB 6.0) merupakan salah satu aplikasi pemrograman visual yang dibuat Microsoft. Adapun beberapa kemampuan atau manfaat dari Visual Basic diantaranya [2] :
1. Untuk membuat program aplikasi berbasiskan windows.
2. Untuk membuat objek-objek pembantu program, seperti Control Active X, file Help, Aplikasi Internet dan sebagainya.
3. Menguji program (debugging) dan menghasilkan program akhir berakhiran “EXE” yang bersifat execuTabel atau dapat langsung dijalankan.
Keistimewaan utama dari Visual Basic adalah [2] :
1. Menggunakan platform pembuatan program yang diberi nama Developer Studio, yang memiliki tampilan seperti C++ dan Visual J++.
2. Memiliki kompiler handal yang dapat menghasilkan File ExecuTabel yang lebih cepat dan efisien.
3. Memiliki tambahan sarana wizard yang baru. Tambahan kontrol-kontrol baru dan lebih canggih serta peningkatan kaidah struktur bahasa visual basic.
4. Kemampuan membuat Active X dan fasilitas internet yang lebih banyak.
5. Sarana akses yang lebih cepat dan andal untuk membuat aplikasi database yang berkemampuan tinggi.
6. Visual Basic 6.0 memiliki beberapa versi baru edisi yang disesuaikan dengan kebutuhan pemakainya.
Adapun objek-objek yang dipergunakan dalam program ini adalah [2] : 1. Project
Project adalah sekumpulan modul. Jadi project merupakan aplikasi itu sendiri. Project disimpan dalam file yang berakhiran VBP. Jika akan melaksanakan pembuatan program aplikasi, akan terdapat jendela project yang berisi semua file yang dibutuhkan menjalankan program aplikasi Visual Basic 6.0. Gambar jendela project untuk pembuatan dan penyimpanan form dapat dilihat pada Gambar 2.3.
Gambar 2.3 Jendela Project
2. Form
Form adalah jendela yang dipakai untuk membuat user interface/tampilan. Secara otomatis akan tersedia form yang baru jika membuat suatu program aplikasi yang baru, dengan nama Form1. Jendela form seperti terlihat pada Gambar 2.4.
Gambar 2.4 Jendela Form
3. Toolbox
gambar toolbox yang ada pada Visual Basic 6.0, sebagaimana terlihat pada Gambar 2.5.
Gambar 2.5 Jendela Toolbox
4. Properties
[image:39.595.246.388.428.541.2]Properties berisikan daftar struktur setting properti yang digunakan pada sebuah object terpilih. Kotak drop-down pada bagian atas jendela berisi daftar semua object pada form yang aktif. Ada tab tampilan, yaitu alphabetic (urut abjad) dan categorized (urut berdasarkan kelompok). Dibagian bawah kotak terdapat properti dari objek. Tampilan properties dapat dilihat pada Gambar 2.6.
Gambar 2.6 Jendela Properties
5. Kode Program
Kode program adalah serangkaian tulisan perintah yang akan dilaksanakan jika suatu objek dijalankan. Kode program ini akan mengontrol dan menentukan jalannya suatu objek.
6. Event
Private sub Command_Click ( ) ...
End sub
Kode program di atas menunjuikan penunjukan penggunaan event Click pada objek Command, maka baris-baris kode program yang ada dibawanya akan dilaksanakan.
7. Metode (Methods)
Metode adalah serangkaian perintah yang sudah tersedia pada suatu objek yang dapat diminta untuk mengerjakan tugas khusus. Contoh penggunaan metode adalah:
Private Sub From_Active ( ) Form1.Print ””
End Sub
Kode program di atas menunjukan penggunaan metode Print (mencetak) pada objek Form1 untuk mencetak tulisan “Microsoft Visual Basic 6.0”.
8. Modules
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Sistem
Pada bagian pembahasan ini, penulis akan menjelaskan analisis mengenai algoritma yang digunakan, fasilitas yang disediakan dalam perangkat lunak, serta cara kerja perangkat lunak yang akan dibuat.
3.1.1 Analisis Algoritma Huffman Pada Proses Kompresi dan Dekompresi
Metode yang digunakan untuk melakukan kompresi terhadap filevideo digital dengan format FLV dan MPEG-4 ini adalah algoritma Huffman. Algoritma ini diimplementasikan dengan cara membaca struktur file yang akan dikompresi, kemudian melakukan kompresi berdasarkan nilai bit yang diperoleh.
Adapun tahapan kompresi yang akan diimplementasikan berdasarkan cara kerja algoritma Huffman pada tugas akhir ini adalah sebagai berikut :
1. Membaca Nilai Bit File Yang Akan Dikompresi
Pada tahap ini, akan dilakukan pembacaan nilai bit dari file video digital yang akan dikompresi. Pembacaan nilai bit ini dilakukan dengan menggunakan syntax sebagai berikut :
Open FileName For Binary As #CompressionFile
Max = LOF(CompressionFile)
I = 1 Do
Get #CompressionFile, ReadPos, ByteString
I = I + 1
Looop Until I = Max
Syntax di atas akan melakukan pembacaan file video digital sebagai binary file. Selanjutnya, dilakukan penghitungan panjang file tersebut, yang hasilnya akan disimpan sebagai Max. Kemudian, dilakukan perulangan dari 1 sampai Max, untuk membaca posisi nilai bit (hasilnya disimpan sebagai ReadPos) dan nilai bit pada posisi ReadPos (hasilnya disimpan sebagai ByteString). Sebagai contoh, akan dilakukan pembacaan beberapa nilai bit dari sebuah file video digital, sebagaimana terlihat pada Gambar 3.1.
Gambar 3.1 Membaca Nilai Bit
Dari Gambar 3.1 di atas, diperoleh data nilai bit dari file video digital tersebut, yaitu : 181, 181, 201, 181, 178, 181, 227, 181, 63.
2. Mengurutkan Nilai Bit
Pada tahap ini, akan dilakukan proses pengurutan dari data nilai pada proses sebelumnya. Pengurutan ini dilakukan dalam bentuk Ascending (dari kecil ke besar). Dari data nilai bit pada proses sebelumnya, hasil pengurutan nilai bit yang diperoleh adalah sebagai berikut : 63, 178, 181, 181, 181, 181, 181, 201, 227. Agar lebih jelas, dituliskan kedalam bentuk tabel 3.1.
Tabel 3.1 Frekuensi Kemunculan Nilai Bit 63 178 181 201 227
Frekuensi 1 1 5 1 1
3. Melakukan Pengkodean Huffman
0 1
0 0
0 1
1 1
[image:43.595.192.438.136.294.2]muncul adalah yang terjauh dari akar. Karena pohon Huffman adalah pohon biner, setiap node memiliki maksimum dua anak, kiri adalah 0, dan kanan adalah 1. ditunjukkan pada gambar 3.2.
Gambar 3.2 Pohon Huffman 181, 181, 201, 181, 178, 181, 227, 181, 63
Dengan menggunakan Pohon Huffman, di dapat hasil pengkodean Huffman seperti tabel 3.2.
Tabel 3.2 Hasil Pengkodean Huffman
63 178 181 201 227
Frekuensi 1 1 5 1 1
Kode Huffman 111 10 00 01 110
Storage = 1*3+1*2+5*2+1*2+1*3 = 20 Bits
4. Mengubah Nilai Bit Menjadi Bentuk Kode
Pada tahap ini, data nilai bit akan diubah menjadi bentuk kode Huffman. Data nilai bit yang diubah merupakan data nilai bit awal (bukan data nilai bit yang sudah mengalami proses pengurutan). Sebagai contoh, dari data nilai bit pada proses sebelumnya, bentuk kode Huffman dari data nilai bit tersebut seperti terlihat pada Tabel 3.3.
Tabel 3.3 Nilai Bit Dalam Kode Huffman Nilai Bit Kode Huffman
181 00
181 00
201 01
181 00
178 10
181 00
227 110
181 00
63 111
9
2 3
6
181: 5 201:1 178:1
Dari Tabel 3.3, diperoleh hasil akhir bentuk kode Huffman dari nilai bit pada contoh adalah sebagai berikut : 00000100100011000111.
5. Melakukan Kompresi String
Pada tahap ini, data nilai bit yang sudah berbentuk kode Huffman akan dikompresi menjadi bentuk string. Proses kompresi ini dilakukan dengan cara mengambil nilai desimal dari deret biner data nilai bit tersebut. Sebagai contoh, dari data nilai bit : 00000100100011000111, diperoleh nilai desimal sebesar 18631. Nilai desimal ini nantinya akan diubah menjadi bentuk string yang kemudian akan digunakan sebagai pengganti nilai bit dari filevideo digital awal. 6. Membentuk Header Kompresi
Pada tahap ini, akan dibentuk sebuah header kompresi yang berfungsi sebagai kamus untuk melakukan dekompresi terhadap data nilai bit. Proses pembentukan header ini dilakukan dengan menuliskan data nilai bit yang sudah diurutkan sebelumnya. Sebagai contoh, header kompresi untuk kompresi file video digital pada proses sebelumnya adalah data pada Tabel 3.2, yaitu 63178181201227.
7. Menyimpan Hasil Kompresi
Pada tahap ini, akan dibentuk sebuah file yang merupakan output dari proses kompresi file video digital pada proses sebelumnya. File ini dibentuk dengan menggunakan syntax sebagai berikut :
Open FileName For Append As #CompressFile
Print #CompressFile, Header, BlockString;
Close #CompressFile
Syntax di atas akan membentuk sebuah file kompresi dengan nama FileName, yang isinya terdiri dari nilai header kompresi (Header) dan data kompresi string (BlockString).
Sedangkan tahapan dekompresi yang akan diimplementasikan berdasarkan cara kerja algoritma Huffman pada tugas akhir ini adalah sebagai berikut :
1. Membaca Nilai Bit File Yang Akan Didekompresi
Open FileName For Binary As #DecompressionFile
Max = LOF(DecompressionFile)
I = 1 Do
Get #DecompressionFile, , ByteString
I = I + 1
Looop Until I = Max
Close #DecompressionFile
Syntax di atas akan melakukan pembacaan file video digital sebagai binary file. Selanjutnya, dilakukan penghitungan panjang file tersebut, yang hasilnya akan disimpan sebagai Max. Kemudian, dilakukan perulangan dari 1 sampai Max, untuk membaca nilai bit (hasilnya disimpan sebagai ByteString). Sebagai contoh, akan dilakukan pembacaan nilai bit dari file video digital hasil proses kompresi sebelumnya, yaitu nilai 18631.
2. Membaca Header Kompresi
Pada tahap ini, akan dilakukan pembacaan header kompresi dari file video digital yang akan dikompresi, untuk melihat urutan kompresi dari file tersebut. Proses ini dilakukan dengan menggunakan syntax sebagai berikut :
Open FileName For Binary As #DecompressionFile
Get #DecompressionFile, FileHeaderString
Close #DecompressionFile
Syntax diatas akan membuka filevideo digital yang akan dikompresi sebagai file binary, dan mengambil nilai header kompresi di dalamnya, yang kemudian disimpan ke dalam FileHeaderString. Sebagai contoh, hasil pembacaan header kompresi dari file video digital dari proses kompresi sebelumnya adalah nilai 63178181201227.
3. Melakukan Pengkodean Huffman
Tabel 3.4 Kode Huffman Dekompresi
Nilai Bit Kode Huffman
63 111
178 10
181 00
201 01
227 110
4. Mengubah Nilai Bit Menjadi Bentuk Biner
Pada tahap ini, data nilai bit akan diubah menjadi bentuk biner. Sebagai contoh, dari data nilai bit pada proses sebelumnya (18631) akan diubah menjadi bentuk biner, yaitu nilai 00000100100011000111.
5. Melakukan Dekompresi String
Pada tahap ini, data nilai bit yang sudah dalam bentuk biner akan dipetakan pada kode Huffman untuk memperoleh bentuk awal nilai bit sebelum dikompresi. Proses pemetaan ini dilakukan dengan cara membaca nilai bit dari posisi paling kiri hingga ditemukan nilai 0. Jika nilai 0 di temukan, akan di ambil nilai dari posisi awal sampai nilai yang sudah dipetakan sebelumnya, dan di lihat kode Huffman penganti untuk nilai tersebut. Sebagai contoh, data nilai bit : 00000100100011000111, akan dipetakan pada kode Huffman yang hasilnya seperti terlihat pada Tabel 3.5.
Tabel 3.5 Pemetaan Nilai Bit
Nilai Bit Kode Huffman
00 181
00 181
01 201
00 181
10 178
00 181
110 227
00 181
111 63
[image:46.595.252.381.502.640.2]6. Menyimpan Hasil Dekompresi
Pada tahap ini, akan dibentuk sebuah file yang merupakan output dari proses dekompresi filevideo digital pada proses sebelumnya. File ini dibentuk dengan menggunakan syntax sebagai berikut :
Open FileName For Append As #DecompressFile
Print # DecompressFile, BlockString;
Close # DecompressFile
Syntax di atas akan membentuk sebuah file kompresi dengan nama FileName, yang isinya adalah nilai bit hasil dekompresi (BlockString).
3.1.4 Analisis Fasilitas Perangkat Lunak
Untuk mencapai tujuan awal penelitian, yaitu sebuah aplikasi yang dapat melakukan kompresi dan dekompresi terhadap filevideo digital dalam format FLV dan MPEG-4 serta menganalisa perbedaan hasil yang diperoleh, penulis merancang beberapa fasilitas yang akan tersedia pada perangkat lunak ini, yaitu :
1. Fasilitas Pemilihan FileVideo Digital
Melalui fasilitas ini, user dapat memilih filevideo digital yang akan digunakan sebagai media awal yang akan disisipi oleh media citra digital. Penulis menggunakan common dialog box control untuk melakukan pemilihan filevideo digital yang diinginkan user. Penulis membatasi pemilihan pada file dengan format FLV dan MPEG-4 agar tidak menimbulkan error yang tidak diinginkan pada proses-proses berikutnya.
2. Fasilitas Untuk Melakukan Kompresi dan Dekompresi FileVideoDigital
Melalui fasilitas ini, user dapat melakukan kompresi terhadap file video digital yang diinginkannya. User juga dapat melakukan dekompresi terhadap file video digital yang sudah dikompresi sebelumnya.
3. Fasilitas Untuk Menampilkan Informasi Hasil Proses
3.1.5 Analisis Cara Kerja Perangkat Lunak
Berdasarkan hasil analisa terhadap metode yang digunakan, maka penulis melakukan analisa terhadap cara kerja perangkat lunak yang akan dirancang. Adapun cara kerja dari proses kompresi file video digital melalui perangkat lunak ini adalah sebagai berikut :
1. Membaca FileVideoDigital
Proses pertama dari cara kerja perangkat lunak ini adalah melakukan pembacaan terhadap file video digital yang dipilih sebagai media awal. Proses ini bertujuan untuk menghasilkan informasi jumlah nilai bit yang ada di dalam file serta data nilai bit pada file tersebut.
2. Melakukan Kompresi FileVideoDigital
Proses selanjutnya adalah melakukan kompresi terhadap file video digital tersebut. Menggunakan proses berdasarkan hasil analisa sistem sebelumnya, sistem akan melakukan kompresi terhadap seluruh nilai bit pada file video digital tersebut.
3. Menyimpan Hasil Kompresi
Proses selanjutnya adalah meyimpan hasil kompresi file video digital sesuai dengan pilihan lokasi file penyimpanan yang diinginkan user dan menuliskan header.
Sedangkan cara kerja dari proses dekompresi file video digital melalui perangkat lunak ini adalah sebagai berikut :
1. Membaca FileVideoDigital
Proses pertama dari cara kerja perangkat lunak ini adalah melakukan pembacaan terhadap file video digital yang dipilih sebagai media awal. Proses ini bertujuan untuk menghasilkan informasi jumlah nilai bit yang ada di dalam file serta data nilai bit pada file tersebut.
2. Membaca Header Kompresi
Proses selanjutnya adalah membaca header kompresi dari filevideo digital yang akan didekompresi.
Proses selanjutnya adalah melakukan dekompresi terhadap file video digital tersebut. Menggunakan proses berdasarkan hasil analisa sistem sebelumnya, sistem akan melakukan dekompresi terhadap seluruh nilai bit pada file video digital tersebut.
4. Menyimpan Hasil Dekompresi
Proses selanjutnya adalah meyimpan hasil dekompresi file video digital sesuai dengan pilihan lokasi file penyimpanan yang diinginkan user.
3.1.5.1 Diagram Alir Cara Kerja Perangkat Lunak
[image:49.595.243.362.379.657.2]Dalam melakukan analisis cara kerja proses ini, penulis menggunakan diagram alir (flowchart) untuk menjelaskan proses kerja dari perangkat lunak yang dirancang. Adapun bentuk flowchart proses kerja kompresi file video digital melalui perangkat lunak ini seperti terlihat pada Gambar 3.3.
Gambar 3.3 Flowchart Proses Kompresi
START
Pilih File Video
Digital Konverter
Bentuk Kode Huffman
Kompresi File
Baca Nilai Bit Video Digital Konverter
Pilih Lokasi Penyimpanan
Simpan Hasil Kompresi
Sedangkan bentuk flowchart dari proses dekompresi file video digital melalui perangkat lunak ini seperti terlihat pada Gambar 3.4.
Gambar 3.4 Flowchart Proses Dekompresi
Selain perancangan proses kerja kompresi dan dekompresi pada perangkat lunak yang dirancang, penulis juga melakukan perancangan terhadap alur program secara umum, seperti terlihat pada Gambar 3.5.
START
Pilih File Video
Digital
Bentuk Kode Huffman
Dekompresi
File
Baca Nilai Bit Video Digital
Pilih Lokasi Penyimpanan
Simpan Hasil Dekompresi Baca Header
Kompresi
Ubah Nilai Bit Menjadi Biner
Gambar 3.5 Flowchart Program
3.2 Perancangan Sistem
Perancangan sistem bertujuan untuk membantu memvisualisasikan hasil kompresi atau dekompresi yang telah diproses. Adapun perancangan sistem yang dibuat dapat membantu memudahkan interaksi manusia dengan komputer. Antarmuka sistem yang dibangun harus mudah dimengerti dan digunakan, sehingga mampu digunakan oleh berbagai kalangan.
Antar muka yang penulis rancang terdiri dari dua buah form yaitu form Utama dan form About. Adapun bentuk dari rancangan form Utama yang penulis rancang seperti terlihat pada Gambar 3.6.
START
Input Pilihan
Load File Input Video File InTampilkan formasi File
Kompres File Kompresi Proses File Tampilkan Hasil Kompresi
Dekompres File Dekompresi Proses File Tampilkan Hasil Dekompresi
Simpan File Penyimpanan Input Lokasi Tampilkan Hasil Penyimpanan
Tutup Aplikasi
END
Y
Y
Y
Y
Gambar 3.3 Rancangan Form Main Gambar 3.6 Rancangan Form Main
[image:52.595.125.495.431.678.2]Form About merupakan form yang penulis rancang untuk menampilkan data perancang perangkat lunak. Bentuk tampilan form About seperti terlihat pada Gambar 3.7.
Gambar 3.4 Rancangan Form About
Gambar 3.7 Rancangan Form About
Kompresi MPEG dan FLV Dengan Metode Huffman X
Browse
Hasil Proses File
Waktu Proses
Kompresi File Dekompresi File
Ukuran File KB
Save
Exit About
Perangkat Lunak Kompresi FLV dan MPEG Dengan Algoritma Huffman
Nuzul Sakinah Lubis 081401056
Program Studi S-1 Ilmu Komputer FASILKOM-TI
Universitas Sumatera Utara
BAB 4
IMPLEMENTASI DAN PEMBAHASAN
4.1 Implementasi
Perangkat lunak yang dirancang, selanjutnya di implementasikan kedalam bahasa pemrograman Visual Basic 6.0 yang menghasilkan tampilan aplikasi agar dapat dipergunakan oleh user yang ingin melakukan kompresi dan dekompresi file video digital dengan algoritma Huffman.
4.1.1 Tampilan Antarmuka Perangkat Lunak
Perangkat lunak dirancang sesederhana mungkin untuk memudahkan pengguna dalam menggunakan perangkat lunak. Tampilan antarmuka perangkat lunak hanya terdapat dua form, yaitu form utama dan formabout.
4.1.1.1 Tampilan Form Utama
Gambar 4.1 Tampilan Form Utama
4.1.1.2 Tampilan Form About
Tampilan Form about merupakan tampilan yang muncul jika pengguna menekan tombol about pada Form utama. Adapun tampilan Form about seperti ditunjukkan pada Gambar 4.2.
[image:54.595.196.438.450.682.2]4.1.2 Pengujian Sistem
Setelah mendapatkan hasil tampilan perangkat lunak, selanjutnya dilakukan pengujian terhadap sistem tersebut. Adapun metode pengujian sistem yang penulis lakukan adalah metode statis (static technique) dimana pengujian dibagi dalam beberapa tahapan, sebagai berikut :
1. Menetapkan Parameter Pengujian
Adapun parameter pengujian yang penulis gunakan dalam pengujian sistem ini adalah sebagai berikut :
a. Kestabilan Sistem
Parameter ini digunakan untuk menguji apakah sistem masih mengalami error pada saat dieksekusi atau pada saat melakukan proses kompresi dan dekompresi.
b. Ketepatan Hasil
Parameter ini digunakan untuk menguji apakah sistem telah dapat melakukan kompresi pada file video digital dan mengembalikannya pada bentuk sebelumnya melalui proses dekompresi.
2. Menyiapkan Perangkat Pengujian
[image:55.595.245.418.516.746.2]Dalam tahap ini, penulis menyiapkan dua file video digital dengan nama file monty.mp4 dan monty.flv dengan informasi file sebagaimana ditunjukkan pada Gambar 4.3 sampai Gambar 4.4.
Gambar 4.4 Informasi File monty.flv
3. Melakukan Pengujian Kompresi File MPEG-4
Dalam tahap ini, penulis melakukan pengujian kompresi file video digital dengan format MPEG. Tahap pertama dalam pengujian ini adalah memilih file monty.mp4 untuk di load melalui perangkat lunak, sebagaimana terlihat pada Gambar 4.5.
[image:56.595.153.510.502.729.2]Selanjutnya, dilakukan penekanan tombol Kompresi File pada Form Utama untuk melanjutkan proses kompresi terhadap file tersebut. Hasil yang diperoleh dari proses ini adalah munculnya informasi hasil kompresi file, sebagaimana terlihat pada Gambar 4.6.
Gambar 4.6 Informasi Hasil Kompresi monty.mp4
Langkah berikutnya, dilakukan penekanan tombol Save pada Form Utama untuk menyimpan hasil kompresi menjadi bentuk file. Dalam pengujian ini, file hasil kompresi akan disimpan pada lokasi “D:\Huffman (MPEG FLV)\Video” dengan nama file kompres1.MPEG, seperti terlihat pada Gambar 4.7.
Gambar 4.7 Menyimpan Hasil Kompresi Dengan Nama kompres1.MPEG
[image:57.595.145.507.504.635.2]Gambar 4.8 Informasi File kompres1.MPEG
4. Melakukan Pengujian Kompresi File FLV
Dalam tahap ini, penulis melakukan pengujian kompresi file video digital dengan format FLV. Tahap pertama dalam pengujian ini adalah memilih file monty.flv untuk di load melalui perangkat lunak, sebagaimana terlihat pada Gambar 4.9.
[image:58.595.151.508.498.730.2]Selanjutnya, dilakukan penekanan tombol Kompresi File pada Form Utama untuk melanjutkan proses kompresi terhadap file tersebut. Hasil yang diperoleh dari proses ini adalah munculnya informasi hasil kompresi file, sebagaimana terlihat pada Gambar 4.10.
Gambar 4.10 Informasi Hasil Kompresi monty.flv
[image:59.595.188.475.168.379.2]Langkah berikutnya, dilakukan penekanan tombol Save pada Form Utama untuk menyimpan hasil kompresi menjadi bentuk file. Dalam pengujian ini, file hasil kompresi akan disimpan pada lokasi “D:\Huffman (MPEG FLV)\Video” dengan nama file kompres2.flv, seperti terlihat pada Gambar 4.11.
Gambar 4.11 Menyimpan Hasil Kompresi Dengan Nama Kompres2.flv
Gambar 4.12 Informasi File kompres2.flv
5. Melakukan Pengujian Dekompresi File MPEG-4
Dalam tahap ini, penulis melakukan pengujian dekompresi file video digital dengan format MPEG. Tahap pertama dalam pengujian ini adalah memilih file kompres1.MPEG untu