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