BAB II TINJAUAN PUSTAKA

dokumen-dokumen yang mirip

KOMPRESI FILE MENGGUNAKAN ALGORITMA HUFFMAN KANONIK

Penggunaan Pohon Huffman Sebagai Sarana Kompresi Lossless Data

KOMPRESI TEKS MENGGUNAKAN ALGORITMA DAN POHON HUFFMAN. Nama : Irfan Hanif NIM :

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

KOMPRESI TEKS dengan MENGGUNAKAN ALGORITMA HUFFMAN

PENERAPAN METODE HUFFMAN DALAM PEMAMPATAN CITRA DIGITAL

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 2 TINJAUAN PUSTAKA

BAB 2 LANDASAN TEORI

BAB III METODOLOGI PENELITIAN. Penelitian ini dilakukan di Jurusan Ilmu Komputer Fakultas Matematika dan

Algoritma Huffman dan Kompresi Data

BAB 2 LANDASAN TEORI

BAB 2 TINJAUAN PUSTAKA

KOMPRESI CITRA. Pertemuan 12 Mata Pengolahan Citra

BAB II TEORI DASAR PENGOLAHAN CITRA DIGITAL

Implementasi Metode Run Length Encoding (RLE) untuk Kompresi Citra

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 2 LANDASAN TEORI

BAB 2 TINJAUAN PUSTAKA

PENINGKATAN EFISIENSI KODE HUFFMAN (HUFFMAN CODE) DENGAN MENGGUNAKAN KODE HUFFMAN KANONIK (CANONICAL HUFFMAN CODE)

Teknik Pembangkitan Kode Huffman

BAB IV HASIL DAN UJI COBA

Implementasi Metode HUFFMAN Sebagai Teknik Kompresi Citra

Suatu proses untuk mengubah sebuah citra menjadi citra baru sesuai dengan kebutuhan melalui berbagai cara.

IMPLEMENTASI DAN ANALISIS KINERJA ALGORITMA ARIHTMETIC CODING DAN SHANNON-FANO PADA KOMPRESI CITRA BMP

BAB III METODE KOMPRESI HUFFMAN DAN DYNAMIC MARKOV COMPRESSION. Kompresi ialah proses pengubahan sekumpulan data menjadi suatu bentuk kode

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Penggunaan Kode Huffman dan Kode Aritmatik pada Entropy Coding

Pemampatan Citra. Esther Wibowo Erick Kurniawan

BAB II TINJAUAN PUSTAKA

DIGITAL IMAGE CODING. Go green Aldi Burhan H Chandra Mula Fitradi Mardiyah

TUGAS AKHIR IMPLEMENTASI ALGORITMA METODE HUFFMAN PADA KOMPRESI CITRA

IMPLEMENTASI TEKNIK STEGANOGRAFI LEAST SIGNIFICANT BIT (LSB) DAN KOMPRESI UNTUK PENGAMANAN DATA PENGIRIMAN SURAT ELEKTRONIK

PERBANDINGAN ALGORITMA HUFFMAN DAN ALGORITMA SHANNON-FANO PADA PROSES KOMPRESI BERBAGAI TIPE FILE. Irwan Munandar

JURNAL IT STMIK HANDAYANI

Penerapan Pengkodean Huffman dalam Pemampatan Data

SKRIPSI KOMPRESI DATA TEKS MENGGUNAKAN ALGORITMA PPM (PREDICTION BY PARTIAL MATCHING)

STMIK GI MDP. Program Studi Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil Tahun 2010/2011

BAB 2 TINJAUAN TEORETIS

Penyandian (Encoding) dan Penguraian Sandi (Decoding) Menggunakan Huffman Coding

IMPLEMENTASI ALGORITMA RUN LENGTH ENCODING UNTUK PERANCANGANAPLIKASI KOMPRESI DAN DEKOMPRESI FILE CITRA

MULTIMEDIA system. Roni Andarsyah, ST., M.Kom Lecture Series

BAB II TEORI DASAR PENGOLAHAN CITRA DIGITAL. foto, bersifat analog berupa sinyal sinyal video seperti gambar pada monitor

Perbandingan Algoritma Kompresi Terhadap Objek Citra Menggunakan JAVA

Kompresi Data dengan Algoritma Huffman dan Perbandingannya dengan Algoritma LZW dan DMC

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB 2 LANDASAN TEORI

KOMPRESI STRING MENGGUNAKAN ALGORITMA LZW DAN HUFFMAN

BAB I PENDAHULUAN. dalam storage lebih sedikit. Dalam hal ini dirasakan sangat penting. untuk mengurangi penggunaan memori.

PEMAMPATAN TATA TEKS BERBAHASA INDONESIA DENGAN METODE HUFFMAN MENGGUNAKAN PANJANG SIMBOL BERVARIASI

BAB 1 PENDAHULUAN. 1.1.Latar Belakang

Aplikasi Penggambar Pohon Biner Huffman Untuk Data Teks

Kode Huffman dan Penggunaannya dalam Kompresi SMS

KOMPRESI CITRA DIGITAL MENGGUNAKAN METODE STATISTICAL CODING

BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah

IMPLEMENTASI DAN ANALISIS KINERJA ALGORITMA SHANNON- FANO UNTUK KOMPRESI FILE TEXT

BAB II Tinjauan Pustaka

BAB 2 LANDASAN TEORI

Implementasi Algoritma Kompresi Shannon Fano pada Citra Digital

BAB 2 LANDASAN TEORI

BAB II TINJAUAN PUSTAKA

BAB II LANDASAN TEORI. Kompresi data atau pemampatan data adalah suatu proses pengubahan

SATUAN ACARA PERKULIAHAN ( SAP )

Penerapan Pohon Biner Huffman Pada Kompresi Citra

Pemampatan Data dengan Kode Huffman pada Perangkat Lunak WinZip

Steganografi dalam Penurunan dan Pengembalian Kualitas Citra konversi 8 bit dan 24 bit

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN Latar Belakang

Contoh kebutuhan data selama 1 detik pada layar resolusi 640 x 480 : 640 x 480 = 4800 karakter 8 x 8

PENDAHULUAN 1.1. Latar belakang

TEKNIK PENGOLAHAN CITRA. Kuliah 13 Kompresi Citra. Indah Susilawati, S.T., M.Eng.

PERBANDINGAN ALGORITMA HUFFMAN DENGAN ALGORITMA SHANNON-FANO

BAB I PENDAHULUAN I-1

BAB 2 TINJAUAN PUSTAKA

Pertemuan 2 Representasi Citra

Pemampatan Citra Pemampatan Citra versus Pengkodean Citra

SISTEM ANALISA PERBANDINGAN UKURAN HASIL KOMPRESI WINZIP DENGAN 7-ZIP MENGGUNAKAN METODE TEMPLATE MATCHING

APLIKASI GREEDY PADA ALGORITMA HUFFMAN UNTUK KOMPRESI TEKS

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

ANALISA KODE HUFFMAN UNTUK KOMPRESI DATA TEKS ABSTRAK

BAB 2 TINJAUAN PUSTAKA

BAB 2 LANDASAN TEORI

BAB II LANDASAN TEORI

BAB III METODOLOGI PENELITIAN

Optimasi Enkripsi Teks Menggunakan AES dengan Algoritma Kompresi Huffman

PEMAMPATAN CITRA (IMA

BAB I PENDAHULUAN. Saat ini perkembangan teknologi berkembang sangat cepat. Penyimpanan

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

N, 1 q N-1. A mn cos 2M , 2N. cos. 0 p M-1, 0 q N-1 Dengan: 1 M, p=0 2 M, 1 p M-1. 1 N, q=0 2. α p =

IV. RANCANG BANGUN SISTEM. Perangkat lunak bantu yang dibuat adalah perangkat lunak yang digunakan untuk

LANDASAN TEORI. 2.1 Citra Digital Pengertian Citra Digital

BAB I PENDAHULUAN. Masalah kompresi data merupakan salah satu aspek penting perkembangan

Model Citra (bag. 2)

1. PENDAHULUAN 1.1. Latar Belakang Masalah

BAB II LANDASAN TEORI

KOMPRESI CITRA BERWARNA DENGAN ALGORITMA ENHANCED SELF ORGANIZING MAP (ENHANCED SOM)

KONVERSI FORMAT CITRA RGB KE FORMAT GRAYSCALE MENGGUNAKAN VISUAL BASIC

BAB 2 LANDASAN TEORI

Transkripsi:

4 BAB II TINJAUAN PUSTAKA 2.1 Gambar Digital Gambar digital merupakan suatu matriks dimana indeks baris dan kolomnya menyatakan suatu titik pada gambar tersebut dan elemen matriksnya menyatakan tingkat keabuan pada titik tersebut (Sutoyo dan Mulyanto, 2009). Pixel merupakan elemen terkecil dari suatu gambar, yakni berupa titik-titik warna yang membentuk gambar. Pada gambar digital berbagai macam pengolahan gambar dapat dilakukan terhadap gambar tersebut. Salah satu operasi pada pengolahan gambar yang diterapkan pada gambar adalah menyembunyikan data rahasia pada gambar sehingga keberadaan data rahasia tersebut tidak diketahui (steganografi). Komputer digital hanya dapat memproses gambar dalam bentuk digital. 2.1.1 Representasi Gambar Digital Sebuah gambar digital dapat direpresentasikan dalam bentuk matriks yang terdiri dari M kolom dan N baris, di mana perpotongan antara kolom dan baris disebut pixel (Sutoyo dan Mulyanto, 2009). Pixel mempunyai dua parameter, yaitu koordinat dan intensitas atau warna. Nilai yang terdapat pada koordinat (x,y) adalah f(x,y), yaitu besar intensitas atau warna dari piksel di titik itu. Oleh sebab itu, sebuah gambar digital dapat ditulis dalam bentuk matriks berikut : f (0,0) f (1,0) f ( N 1,0) f (0,1) f ( N 1,1) f (0, M 1) f (1, M 1) f ( N 1, M 1) Berdasarkan gambaran tersebut, secara matematis gambar digital dapat dituliskan sebagai fungsi intensitas f(x,y), di mana harga x (baris) dan y (kolom) merupakan koordinat posisi dan f(x,y) adalah nilai fungsi pada setiap titik (x,y) yang menyatakan besar intensitas gambar atau tingkat keabuan atau warna dari pixel di titik tersebut.

5 2.1.2 Warna pada Gambar Digital Gambar digital memiliki beberapa jenis cara pewarnaan. Tiap jenis pewarnaan ini memiliki karakteristik masing-masing. Jenis pewarnaan ini memberikan pengaruh pada gambar digital sehingga memiliki jumlah warna yang berbeda (perbedaan kualitas warna) dan pengaruh pada ukuran dokumen. Berikut adalah jenis-jenis pewarnaan pada gambar digital (Sutoyo dan Mulyanto, 2009) : 1. Monochrome (Hitam dan Putih) Monochrome ini disebut juga dengan warna 1-bit, karena setiap piksel hanya membutuhkan 1 bit untuk menyimpan warna piksel tersebut. Karena mode warna ini hanya menyimpan informasi kedalaman bit (bit depth) warna sebesar 1 bit, maka warna yang bisa ditampilkan hanya dua warna saja. Warna yang akan ditampilkan adalah warna hitam dan putih. Dengan penggunaan warna 1-bit, maka kualitas gambar pada citra digital tidak begitu bagus. Sebuah gambar yang menggunakan warna 1-bit sangat sederhana karena memiliki ukuran file yang jauh lebih kecil dibandingkan dengan penggunaan sistem warna lainnya. 2. Grayscale Graysacale adalah warna warna piksel yang berada dalam rentang gradasi warna hitam dan putih. Graysacale menyimpan informasi bit depth warna sebesar 8 bit. Jadi warna yang bisa ditampilkan pada mode warna grayscale berjumlah sampai 256, dalam hal ini nilai 0 menyatakan hitam dan 255 menyatakan putih, nilai antara 0 sampai 255 menyatakan warna keabuan yang terletak antara hitam dan putih. Dengan penggunaan warna 8-bit ini maka ukuran dokumennya pun otomatis menjadi semakin besar dibandingkan dengan warna 1-bit. 3. Indexed color Indexed color merupakan citra digital berwarna yang menghasilkan gambar dengan warna maksimal terdiri atas 256 warna dan 256 warna tersebut didefenisikan ke dalam tabel warna. Nilai bit pada indexed color merupakan penunjuk (pointer) menuju tabel warna. 4. Red Green Blue (RGB) Dengan menggunakan pewarnaan ini, bit-bit pembentuk piksel merupakan perwakilan dari setiap elemen pembentuk warna yaitu merah, hijau dan biru.

6 Jumlah bit yang digunakan pada warna RGB sangat beragam, di antaranya adalah 16-bit, 24-bit dan 32-bit. Semakin banyak jumlah bit yang merepresentasikan warna, maka kualitas warna tersebut semakin baik. 2.2 Pixel Agar gambar dapat diolah oleh sebuah komputer digital, maka sebuah gambar harus disimpan pada format yang dapat diolah oleh sebuah program komputer. Cara yang paling praktis yang dapat dilakukan adalah dengan membagai gambar menjadi sekumpulan sel-sel diskret, yang disebut piksel. Pada umumnya sebuah gambar dibagi menjadi kisi-kisi persegi, sehingga piksel sendiri adalah sebuah kisi-kisi persegi yang kecil. Selanjutnya setiap piksel diberi nilai yang menyatakan warna atau menyatakan tingkat kecerahan piksel yang bersangkutan, yang sering disebut dengan intensitas piksel. 2.3 Gambar Grayscale Dalam komputasi, suatu gambar digital grayscale adalah suatu gambar dimana nilai dari setiap pixel merupakan sample tunggal. Gambar yang ditampilkan dari gambar jenis ini terdiri atas warna abu-abu, bervariasi pada warna hitam pada bagian yang intensitas terlemah dan warna putih pada intensitas terkuat. Gambar grayscale berbeda dengan gambar hitam-putih, dimana pada konteks komputer, gambar hitam putih hanya terdiri atas 2 warna saja yaitu hitam dan putih saja. Pada gambar grayscale warna bervariasi antara hitam dan putih, tetapi variasi warna diantaranya sangat banyak. Gambar grayscale seringkali merupakan perhitungan dari intensitas cahaya pada setiap pixel pada spektrum elektromagnetik single band. Gambar grayscale disimpan dalam format 8 bit untuk setiap sample pixel, yang memungkinkan sebanyak 256 intensitas. Format ini sangat membantu dalam pemrograman karena manupulasi bit yang tidak terlalu banyak.

7 Gambar 2.1 Gambar Grayscale 2.4 BMP (Bitmap) File gambar dengan format.bmp (bitmap) adalah salah satu format standar yang digunakan dalam sistem operasi Windows (Hanif Al Fatta, 2007). File ini biasanya disimpan dengan ekstensi.bmp. Terjemahan bebas dari bitmap adalah pemetaan bit. Artinya, nilai intensitas pixel di dalam gambar dipetakan ke sejumlah bit tertentu. Peta bit yang umum adalah 8, artinya setiap pixel panjangnya 8 bit. Delapan bit ini merepresentasikan nilai intensitas pixel. Dengan demikian ada sebanyak 28 = 256 derajat keabuan, mulai dari 0 sampai 255. Pada gambar berformat.bmp pixel gambar disimpan dengan kedalaman warna 1, 4, 8, 16, 24 bit per pixel. Jumlah warna maksimum yang dapat disimpan dalam suatu bitmap adalah sebanyak 2 n, dimana n adalah banyaknya bit yang digunakan untuk menyimpan satu titik dari bitmap. Pada umumnya gambar bitmap terdiri dari 4 blok data yaitu: BMP header, Bit Information (DIB header), Color Palette, dan Bitmap Data. BMP header berisi informasi umum dari gambar bitmap. Blok ini berada pada bagian awal file gambar dan digunakan untuk mengidentifikasi gambar. Beberapa aplikasi pengolah gambar digital akan membaca blok ini untuk memastikan bahwa gambar tersebut berformat bitmap dan tidak dalam kondisi rusak. Bit information berisi informasi detail dari gambar bitmap, yang akan digunakan untuk menampilkan gambar pada layar. Color palette berisi informasi warna yang digunakan untuk indeks warna bitmap, dan bitmap data berisi data citra yang sebenarnya, pixel per pixel. Gambar dalam format.bmp ada tiga macam : gambar biner, gambar berwarna, dan gambar hitam-putih (grayscale). Gambar biner hanya mempunyai

8 dua nilai keabuan, yaitu 0 dan 1. Oleh karena itu, 1 bit sudah cukup untuk merepresentasikan nilai pixel. Gambar berwarna adalah gambar yang lebih umum. Warna yang terlihat pada gambar bitmap merupakan kombinasi dari tiga warna dasar, yaitu merah, hijau, dan biru. Setiap pixel disusun oleh tiga komponen warna : R (Red), G (Green), dan B (Blue). Kombinasi dari tiga warna RGB tersebut menghasilkan warna yang khas untuk pixel yang bersangkutan. Nilai setiap pixel tidak menyatakan derajat keabuan secara langsung, tetapi nilai pixel menyatakan indeks tabel RGB yang membuat nilai keabuan merah (R), nilai keabuan hijau (G), dan nilai keabuan biru (B) untuk pixel yang bersangkutan. Pada gambar hitam-putih, nilai R = G = B untuk menyatakan bahwa gambar hitam-putih hanya mempunyai satu kanal warna. Gambar hitam-putih umumnya adalah citra 8-bit. Gambar yang lebih kaya warna adalah citra 24-bit. Setiap pixel panjangnya 24 bit, karena setiap pixel langsung menyatakan komponen warna merah, komponen warna hijau, dan komponen warna biru. Masing-masing komponen panjangnya 8 bit. Gambar 24-bit disebut juga gambar 16 juta warna, karena ia mampu menghasilkan 224 = 16.777.216 kombinasi warna. 2.5 Kompresi Data Kompresi data adalah metode yang dilakukan untuk mereduksi ukuran data atau file. Istilah kompresi tersebut diterjemahkan dari kata bahasa Inggris compression yang berarti pemampatan. Dalam bidang teknik, kompresi berarti proses pemampatan sesuatu yang berukuran besar sehingga menjadi kecil. Dengan demikian, kompresi data berarti proses untuk pemampatan data agar ukurannya menjadi lebih kecil. Dengan melakukan kompresi dapat mengurangi waktu transmisi saat data dikirim, dan tidak banyak menghabiskan ruang media penyimpanan. Seiring dengan bertambahnya waktu, ukuran file di dalam media penyimpanan akan semakin bertambah. Hal ini disebabkan karena semakin bertambahnya informasi yang disimpan dalam file ataupun penambahan program aplikasi baru di dalam komputer. Sementara kapasitas media penyimpanan pada

9 komputer adalah bersifat tetap, sehingga user akan mengalami masalah dengan ruang kosong (free space) yang semakin kecil. Untuk mengatasi masalah kapasitas penyimpanan, sangat penting bagi user untuk menjaga agar ruang kosong hard disk tetap optimal. Salah satu cara yang dapat dilakukan adalah dengan mengkompresi file data. Seiring itu, memasuki era internet, transfer file merupakan hal yang umum dilakukan oleh user. Transfer file dalam jaringan yang dapat dilakukan oleh user yaitu proses download (men-transfer suatu file dari komputer remote ke komputer yang meminta proses pengiriman melalui jaringan) dan upload (men-transfer file dari komputer lokal ke komputer remote). Bila file yang hendak ditransfer berukuran besar, maka dapat menyebabkan data kongesti, yaitu dalam keadaan dimana informasi yang hendak ditransfer lebih besar daripada yang dapat dibawa oleh jalur komunikasi. Untuk meminimalisasi ukuran file yang hendak di-transfer dapat dilakukan dengan cara kompresi yaitu file yang hendak di-transfer diperkecil ukurannya terlebih dahulu. Dengan teknik kompresi, file yang besar dapat diperkecil sedemikian rupa sehingga menghemat tempat namun masih dapat dikembalikan ke bentuk original ketika diperlukan. Kompresi berguna ketika hendak memadatkan sejumlah besar file ke dalam tempat penyimpanan atau hendak memperkecil waktu ketika hendak menyalin atau mentransmisi file melalui jaringan. Beberapa teknik kompresi data yang telah banyak digunakan adalah Bit Mapping, Half byte packing, Diatomic Encoding, Huffman, Arithmatic Encoding, Run Length Encoding. (Munir Rinaldi, 2005). Secara garis besar, terdapat 2 buah penggolongan algoritma kompresi data kompresi lossy, dan kompresi lossless. a. Kompresi Lossy Algoritma kompresi dikatakan lossy atau disebut juga irreversible jika tidak dimungkinkan untuk membentuk data asli yang tepat sama dari data yang sudah dikompresi. Ada beberapa detail yang hilang selama proses kompresi. Contoh penggunaan algoritma lossy seperti pada data gambar, suara dan video. Karena cara kerja sistem pengelihatan dan pendengararn manusia yang terbatas,

10 beberapa detail dapat dihilangkan, sehingga didapat data hasil kompresi yang seolah-olah sama dengan data asli. b. Kompresi Lossless Algoritma kompresi dikatakan lossless atau disebut juga reversible jika dimungkinkan untuk membentuk data asli yang tepat sama dari data yang sudah dikompresi. Tidak ada informasi yang hilang selama proses kompresi dan dekompresi. Teknik ini digunakan jika data tersebut sangat penting, jadi tidak di mungkinkan untuk menghilangkan beberapa detail. 2.6 Dekompresi Sebuah data yang sudah dikompres tentunya harus dapat dikembalikan lagi kebentuk aslinya, prinsip ini dinamakan dekompresi. Untuk dapat merubah data yang terkompres diperlukan cara yang berbeda seperti pada waktu proses kompres dilaksanakan. Jadi pada saat dekompres terdapat catatan header yang berupa byte-byte yang berisi catatan mengenai isi dari file tersebut. Catatan header akan menuliskan kembali mengenai isi dari file tersebut, jadi isi dari file sudah tertulis oleh catatan header sehingga hanya tinggal menuliskan kembali pada saat proses dekompresi. Proses dekompresi dikatakan sempurna apabila file kembali kebentuk aslinya. (Munir Rinaldi, 2005). 2.7 Algoritma Kompresi Huffman Algoritma Huffman adalah salah satu algoritma kompresi yang sudah cukup tua tetapi tetap dinilai sebagai salah satu algoritma kompresi data yang handal. Algoritma Huffman merupakan salah satu teknik kompresi dengan cara melakukan pengkodean dalam bentuk bit untuk mewakili data karakter. Algoritma Huffman ini pertama kali diterbitkan pada tahun 1952 oleh David Huffman dalam paper-nya yang berjudul A Method for the Construction of Minimum Redundancy Codes. Secara umum, algoritma ini dapat memberikan penghematan sebesar 20%-30%. Algoritma Huffman termasuk jenis kompresi lossless. Lossless artinya bahwa kompresi dilakukan tanpa kehilangan informasi (yaitu pada proses dekompresi menghasilkan file sebenarnya). Kelebihan algoritma ini terletak pada kebanyakan file data mengandung redundansi.

11 Huffman menemukan cara untuk memanfaatkan redundansi pada suatu file sehingga mengecilkan ukuran file tanpa kehilangan informasi yang terkandung di dalamnya. Pengertian redundansi dalam algoritma Huffman mengacu pada perulangan karakter tertentu lebih dari satu kali dalam suatu dokumen. Algoritma ini menggunakan suatu variabel sebagai representasi biner untuk setiap karakter dalam suatu dokumen, dengan memberikan biner yang terpendek dan karakter dengan frekuensi yang lebih jarang muncul sebagai representasi biner yang terpanjang. Cara ini dapat mengurangi ukuran file secara signifikan karena representasi konvensional dari karakter menggunakan panjang yang sama untuk setiap karakter, sehingga menghabiskan banyak tempat. (Wardoyo Irwan dkk, 2005) 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. Metode statik adalah metoda yang selalu menggunakan peta kode yang sama, metoda ini membutuhkan dua fase (two-pass): fase pertama untuk menghitung probabilitas kemunculan tiap simbol dan menentukan peta kodenya, dan fase kedua untuk mengubah pesan menjadi kumpulan kode yang akan di taransmisikan. Sedangkan berdasarkan teknik pengkodean simbol yang digunakan, algoritma Huffman menggunakan metode symbolwise. Metoda symbolwise adalah metode yang menghitung peluang kemunculan dari setiap simbol dalam satu waktu, dimana simbol yang lebih sering muncul diberi kode lebih pendek dibandingkan simbol yang jarang muncul. 2.7.1 Pembentukan Pohon Huffman Kode Huffman pada dasarnya merupakan kode prefiks (prefix code). Kode prefiks adalah himpunan yang berisi sekumpulan kode biner, dimana pada kode prefik ini tidak ada kode biner yang menjadi awal bagi kode biner yang lain. Kode prefiks biasanya direpresentasikan sebagai pohon biner yang diberikan nilai atau label. Untuk cabang kiri pada pohon biner diberi label 0, sedangkan pada cabang kanan pada pohon biner diberi label 1. Rangkaian bit yang terbentuk pada setiap

12 lintasan dari akar ke daun merupakan kode prefiks untuk karakter yang berpadanan. Pohon biner ini biasa disebut pohon Huffman. Langkah-langkah pembentukan pohon Huffman adalah sebagai berikut : 1. Baca semua karakter di dalam teks untuk menghitung frekuensi kemunculan setiap karakter. Setiap karakter penyusun teks dinyatakan sebagai pohon bersimpul tunggal. Setiap simpul di-assign dengan frekuensi kemunculan karakter tersebut. 2. Terapkan strategi algoritma greedy sebagai berikut : Gabungkan dua buah pohon yang mempunyai frekuensi terkecil pada sebuah akar. Setelah digabungkan akar tersebut akan mempunyai frekuensi yang merupakan jumlah dari frekuensi dua buah pohon-pohon penyusunnya. 3. Ulangi langkah 2 sampai hanya tersisa satu buah pohon Huffman. Agar pemilihan dua pohon yang akan digabungkan berlangsung cepat, maka semua yang ada selalu terurut menaik berdasarkan frekuensi. Sebagai contoh, dalam kode ASCII string 7 huruf ABACCDA membutuhkan representasi 7 8 bit = 56 bit (7 byte), dengan rincian sebagai berikut : A = 01000001 B = 01000010 A = 01000001 C = 01000011 C = 01000011 D = 01000100 A = 01000001 Pada string di atas, frekuensi kemunculan A = 3, B = 1, C = 2, dan D = 1. Untuk lebih jelas mengenai proses pembentukkan pohon hufman, dapat dilihat ilustrasi pembuatan pohonnya dibawah ini : 1.

13 2. 3. 0 BDC : 4 1 C : 2 BD : 2 0 1 B : 1 D : 1 4. ABDC : 7 0 1 A : 3 BDC : 4 0 C : 2 1 BD : 2 0 1 B : 1 D : 1 Gambar 2.2 Pohon Huffman untuk Karakter ABACCDA 2.7.2 Proses Encoding Encoding adalah cara menyusun string biner dari teks yang ada. Proses encoding untuk satu karakter dimulai dengan membuat pohon Huffman terlebih dahulu. Setelah itu, kode untuk satu karakter dibuat dengan menyusun nama string biner yang dibaca dari akar sampai ke daun pohon Huffman.

14 Langkah-langkah untuk men-encoding suatu string biner adalah sebagai berikut : 1. Tentukan karakter yang akan di-encoding 2. Mulai dari akar, baca setiap bit yang ada pada cabang yang bersesuaian sampai ketemu daun dimana karakter itu berada 3. Ulangi langkah 2 sampai seluruh karakter di-encoding. Sebagai contoh kita dapat melihat table dibawah ini, yang merupakan hasil encoding untuk pohon Huffman pada gambar 2.2 : Tabel 2.2 Kode Huffman untuk Karakter ABCD Karakter Frekuensi Peluang Kode Huffman A 3 3/7 0 B 1 1/7 110 C 2 2/7 10 D 1 1/7 111 Dengan menggunakan kode Huffman ini, string ABACCDA direpresentasikan menjadi rangkaian bit : 0 110 0 10 10 111 0. Jadi, jumlah bit yang dibutuhkan hanya 13 bit dari yang seharusnya dibutuhkan 56 bit. 2.7.3 Proses Decoding Decoding merupakan kebalikan dari encoding. Decoding berarti menyusun kembali data dari string biner menjadi sebuah karakter kembali. Decoding dapat dilakukan dengan dua cara, yang pertama dengan menggunakan pohon Huffman dan yang kedua dengan menggunakan tabel kode Huffman. Langkah-langkah men -decoding suatu string biner dengan menggunakan pohon Huffman adalah sebagai berikut : 1. Baca sebuah bit dari string biner. 2. Mulai dari akar 3. Untuk setiap bit pada langkah 1, lakukan traversal pada cabang yang bersesuaian.

15 4. Ulangi langkah 1, 2 dan 3 sampai bertemu daun. Kodekan rangkaian bit yang telah dibaca dengan karakter di daun. 5. Ulangi dari langkah 1 sampai semua bit di dalam string habis. Sebagai contoh kita akan men-decoding string biner yang bernilai 111 ABDC : 7 0 1 A : 3 BDC : 4 0 C : 2 1 BD : 2 0 1 B : 1 D : 1 Gambar 2.3 Proses Decoding dengan Menggunakan Pohon Huffman Setelah kita telusuri dari akar, maka kita akan menemukan bahwa string yang mempunyai kode Huffman 111 adalah karakter D. Cara yang kedua adalah dengan menggunakan tabel kode Huffman. Sebagai contoh kita akan menggunakan kode Huffman pada Tabel 2.1 untuk merepresentasikan string ABACCDA. Dengan menggunakan Tabel 2.1 string tersebut akan direpresentasikan menjadi rangkaian bit : 0 110 0 10 10 1110. Jadi, jumlah bit yang dibutuhkan hanya 13 bit. Dari Tabel 2.1 tampak bahwa kode untuk sebuah simbol/karakter tidak boleh menjadi awalan dari kode symbol yang lain guna menghindari keraguan (ambiguitas) dalam proses dekompresi atau decoding. Karena tiap kode Huffman yang dihasilkan unik, maka proses decoding dapat dilakukan dengan mudah. Contoh : saat membaca kode bit pertama dalam rangkaian bit 011001010110, yaitu bit 0, dapat langsung disimpulkan bahwa kode bit 0 merupakan pemetaan dari simbol A. Kemudian baca kode bit selanjutnya, yaitu bit 1. Tidak ada kode Huffman 1, lalu baca kode bit selanjutnya, sehingga menjadi 11. Tidak ada juga kode Huffman 11, lalu baca

16 lagi kode bit berikutnya, sehingga menjadi 110. Rangkaian kode bit 110 adalah pemetaan dari simbol B. 2.8 Siklus Hidup Pengembangan Sistem Lima fase dasar SDLC (System Development Life Cycle) antara lain adalah perencanaan, analisis, perancangan, implementasi serta pemeliharaan dan dukungan. Tahap perencanaan meliputi identifikasi masalah dan penentuan tujuan. Sedangkan pada tahap analisis, mulai dilakukan analisis terhadap kebutuhan sistem. Tahap berikutnya adalah tahap perancangan dimana pada tahap ini mulai dilakukan perancangan terhadap sistem yang akan dibuat kemudian dilanjutkan dengan tahap implementasi yaitu mengimplementasikan rancangan yang telah dibuat sebelumnya. Tahap implementasi juga meliputi pengujian dan instalasi, kemudian tahap berikutnya setelah implementasi adalah pemeliharaan dan dukungan. (Marchewka, 2010). Planning Analysis Design Implementa tion Maintenance & support Gambar 2.4 System Development Life Cycle (Sumber: Marchhewka,2010) 2.9 Bahasa Pemrograman Delphi Delphi adalah sebuah bahasa pemrograman dan lingkungan pengembangan perangkat lunak. Produk ini dikembangkan oleh CodeGear sebagai divisi pengembangan perangkat lunak milik Embarcadero, divisi tersebut sebelumnya adalah milik Borland. Bahasa Delphi, atau dikenal pula sebagai object pascal (pascal dengan ekstensi pemrograman berorientasi objek (PBO/OOP)) pada mulanya ditujukan hanya untuk Microsoft Windows, namun saat ini telah mampu digunakan untuk mengembangkan aplikasi untuk Linux dan Microsoft.NET framework (lihat di bawah). Dengan menggunakan Free

17 Pascal yang merupakan proyek opensource, bahasa ini dapat pula digunakan untuk membuat program yang berjalan di sistem operasi Mac OS X dan Windows CE. Pada tanggal 8 Februari 2006, Borland mengumumkan akan melepas seluruh jajaran produk pengembangan aplikasi komputernya termasuk di antaranya Delphi. Saat ini Delphi menjadi bagian dari jajaran IDE milik Embarcadero Technologies setelah Embarcadero Technologies mengakuisisi CodeGear, anak perusahaan Borland yang menangani tool pengembangan aplikasi. 2.10 Black Box Testing Pengujian black box berfokus pada persyaratan fungsional perangkat lunak. Dengan demikian, pengujian black box memungkinkan perekayasa perangkat lunak mendapatkan serangkain kondisi input yang sepenuhnya menggunakan semua persyaratan fungional untuk suatu program. Tidak seperti pengujian white box, yang dilakukan pada saat awal proses pengujian, pengujian black box cenderung diaplikasikan selama tahap akhir pengujian. Ujicoba blackbox berusaha untuk menemukan kesalahan dalam beberapa kategori, diantaranya : 1. Fungsi-fungsi yang salah atau hilang 2. Kesalahan interface 3. Kesalahan dalam struktur data atau akses database eksternal 4. Kesalahan performa 5. kesalahan inisialisasi dan terminasi