Analisis Sistem Analisis Perbandingan Kompresi File Video Dengan Motion Picture Expert Group-4 Dan Flash Video Dengan Menggunakan Algoritma Huffman

26 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 file video digital dengan form at 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 : Ope n FileName For Binary As CompressionFile Max = LOFCompressionFile I = 1 Do Get CompressionFile, ReadPos, ByteString I = I + 1 Looop Until I = Max Close CompressionFile Universitas Sumatera Utara 27 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 Pada tahap ini, data nilai bit yang sudah diurutkan akan diberikan kode yang akan digunakan sebagai identitas pada saat melakukan kompresi. Sebagai contoh, dari data nilai bit yang diperoleh pada proses sebelumnya, yang kita lakukan adalah melakukan pengkodean Huffman menggunakan Pohon Huffman, dengan cara simbol yang paling sering muncul adalah yang paling dekat dengan akar pohon dengan jumlah minimum node ke akar dan simbol lebih sedikit Universitas Sumatera Utara 28 1 1 1 1 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 = 13+12+52+12+13 = 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 227:1 63:1 Universitas Sumatera Utara 29 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 file video 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 Pada tahap ini, akan dilakukan pembacaan nilai bit dari file video digital yang akan didekompresi. Pembacaan nilai bit ini dilakukan dengan menggunakan syntax sebagai berikut : Universitas Sumatera Utara 30 Open FileName For Binary As DecompressionFile Max = LOFDecompressionFile 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 file video 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 Pada tahap ini, nilai header kompresi yang sudah dibaca sebelumnya akan digunakan sebagai dasar untuk membentuk kode Huffman, dengan cara memberikan kode angka 0 pada nilai yang paling sering muncul dan menambahkan kode angka 1 pada nilai yang lebih jarang muncul. Sebagai contoh, dari nilai header kompresi 63178181201227, akan diubah menjadi kode huffman , sebagaimana ditunjukkan pada Tabel 3.4. Universitas Sumatera Utara 31 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 Dari Tabel 3.5 di atas, diperoleh hasil pemetaan 181 181 201 181 178 181 227 181 63. Universitas Sumatera Utara 32 6. Menyimpan Hasil Dekompresi Pada tahap ini, akan dibentuk sebuah file yang merupakan output dari proses dekompresi file video 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 file video 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 File Video Digital Melalui fasilitas ini, user dapat memilih file video digital yang akan digunakan sebagai media awal yang akan disisipi oleh media citra digital. Penulis menggunakan common dialog box control untuk melakukan pemilihan file video digital yang diinginkan user. Penulis membatasi pemilihan pada file dengan form at FLV dan MPEG-4 agar tidak menimbulkan error yang tidak diinginkan pada proses-proses berikutnya. 2. Fasilitas Untuk Melakukan Kompresi dan Dekompresi File Video Digital 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 Fasilitas ini dapat digunakan user untuk melihat informasi hasil proses kompresi atau dekompresi dari file video digital yang diinginkan. Informasi yang diberikan berupa ukuran akhir dari file video digital serta waktu yang diperoleh untuk melakukan kompresi atau dekompresi pada file tersebut. Universitas Sumatera Utara 33

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 File Video Digital 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 File Video Digital 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 File Video Digital 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 file video digital yang akan didekompresi. 3. Melakukan Dekompresi File Video Digital Universitas Sumatera Utara 34 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

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 END Universitas Sumatera Utara 35 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 END Universitas Sumatera Utara 36 Gambar 3.5 Flowchart Program

3.2 Perancangan Sistem