SKRIPSI. Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika

Ukuran: px
Mulai penontonan dengan halaman:

Download "SKRIPSI. Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika"

Transkripsi

1 HALAMAN JUDUL PERBANDINGAN KOMPRESI TEKS MENGGUNAKAN ALGORITMA HUFFMAN STATIS, HUFFMAN DINAMIS DAN MODIFIKASI ALGORITMA HUFFMAN SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika Disusun oleh: Yohanes Beny Prasetyo PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2016 i

2 HALAMAN JUDUL (English) COMPARISON TEXT COMPRESSION USING STATIC HUFFMAN ALGORITHM, DYNAMIC HUFFMAN ALGORITHM AND MODIFICATION HUFFMAN ALGORITHM A Thesis Presented as Partial Fulfillment of The Requirements To Obtain Sarjana Komputer Degree In Informatics Engineering Study Program Written by: Yohanes Beny Prasetyo INFORMATICS ENGINEERING STUDY PROGRAM DEPARTMENT OF INFORMATICS ENGINEERING FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY YOGYAKARTA 2016 ii

3 HALAMAN PERSETUJUAN iii

4 HALAMAN PENGESAHAN iv

5 HALAMAN PERSEMBAHAN Mintalah, maka akan diberikan kepadamu; carilah, maka kamu akan mendapat; ketoklah, maka pintu akan dibukakan bagimu Yesus Kristus Orang muda terkasih, jangan mengubur talenta-talenta, karunia yang diberikan Allah padamu. Jangan takut memimpikan hal-hal besar Paus Fransiskus Aku persembahkan skripsi ini untuk : Allah Bapa di surga yang sudah memberikan segalanya bagiku dan semua yang selalu ada dalam suka dan duka ku v

6 PERNYATAAN KEASLIAN KARYA Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka sebagaimana layaknya karya ilmiah Yogyakarta, 11 Januari 2016 Penulis Yohanes Beny Prasetyo vi

7 LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma: Nama : Yohanes Beny Prasetyo NIM : Demi pengembangan ilmu pengetahuan, saya memberikan kepada perpustakaan Universitas Sanata Dharma karya ilmiah yang berjudul: PERBANDINGAN KOMPRESI TEKS MENGGUNAKAN ALGORITMA HUFFMAN STATIS, HUFFMAN DINAMIS DAN MODIFIKASI ALGORITMA HUFFMAN Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikan secara terbatas, dan mempublikasikan di internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencantumkan nama saya sebagai penulis. Demikian pernyataan ini saya buat dengan sebenarnya. Yogyakarta, 11 Januari 2016 Yang menyatakan, Yohanes Beny Prasetyo vii

8 PERBANDINGAN KOMPRESI TEKS MENGGUNAKAN ALGORITMA HUFFMAN STATIS, HUFFMAN DINAMIS DAN MODIFIKASI ALGORITMA HUFFMAN ABSTRAK Permasalahan ukuran file dan waktu yang dibutuhkan menjadi suatu kendala tersendiri dalam proses penyimpanan atau perpindahan antar media. Solusi permasalahan tersebut telah ditemukan oleh David A. Huffman dengan algoritma yang didasarkan pada pohon biner. Algoritma Huffman mempunyai dua jenis yaitu Huffman Statis dan Huffman Dinamis. Algoritma ini terkenal dalam bidang kompresi data, akan tetapi perkembangan zaman membuktikan algoritma ini memiliki hasil kompresi yang kurang maksimal. Dalam penelitian ini, akan dilakukan uji perbandingan hasil algoritma Huffman Statis, Huffman Dinamis serta modifikasi algoritma Huffman yang dibuat untuk penelitian ini. Secara umum ketiga algoritma ini mempunyai proses yang sama yaitu proses pengubahan data asli menjadi kode biner (encoding) dan proses pengubahan kode biner menjadi data asli (decoding). Pengujian dilakukan untuk mengetahui perbandingan waktu kompresi dan besarnya ratio compression dari ketiga algoritma. Dalam penelitian ini akan diuji teks dengan dua bahasa yaitu Indonesia dan Inggris untuk mengetahui pengaruh bahasa dengan hasil kompresi, yang didasarkan dengan kemunculan tiap karakter. Implementasi algoritma dalam penelitian ini menggunakan bahasa pemrograman Java. viii

9 ABSTRACT COMPARISON TEXT COMPRESSION USING STATIC HUFFMAN ALGORITHM, DYNAMIC HUFFMAN ALGORITHM AND MODIFICATION HUFFMAN ALGORITHM ABSTRACT Problems file size and time taken into an obstacle in the process of storage or displacement between media. Solution these problems have been found by David A. Huffman with the algorithms that based on binary tree. Huffman algorithm have two types is huffman static and huffman dynamic. This algorithm famous in the field of compression data, but time progress prove this algorithm having results compression not optimal. In this research, test will be done the comparison of the algorithms huffman static, huffman dynamic and algorithms huffman modification made for this study. In general third algorithm have similar process that is the process of transformation data natives to be binary code ( encoding ) and process transformation binary code be real data ( decoding ). Testing be held to find out comparison time compression and the size of the ratio compression of the three algorithm. In this research be tested a text by two languages Indonesian and English to know the influence of language by the results of compression, based with the emergence of every character. The implementation of algorithm in this research using language Java programming. ix

10 KATA PENGANTAR Dengan kerendahan hati, penulis mengucapkan puji dan syukur atas segala berkat dan karunia Tuhan Yesus Kristus sehingga dapat menyelesaikan tugas akhir ini. Selama pengerjaan tugas akhir ini, penulis tidak akan bisa menyelesaikan sendirian tanpa orang-orang hebat yang telah membantu. Terucap terima kasih kepada : 1. Kedua orang tua, bapak Yustinus Sugito dan ibu Chatarina Sutini yang selalu memberikan semangat dan mendoakan setiap malam untuk penulis. 2. Br. Sarju selaku ketua LKM dan Mbak Iput yang telah memberikan kesempatan dan membantu saya untuk menyelesaikan studi ini. 3. Bapak Alb. Agung Hadhiatma, S.T., M.T. selaku dosen pembimbing yang telah memberikan pencerahan kepada penulis sehingga dapat menyelesaikan tugas akhir ini. 4. Ibu Sri Hartati Wijono, S.Si., M.Kom. selaku wakil kepala program studi Teknik Informatika yang juga telah memberikan pencerahan terhadap penulis untuk dapat menyelesaikan studi ini. 5. Bapak Drs. Haris Sriwindono, M.Kom. selaku penguji tugas akhir penulis telah memberikan masukan dan arahan yang bermanfaat dalam penulisan tugas akhir ini. 6. Seluruh teman-teman seperjuangan Teknik Informatika angkatan 2011, yang telah membuat penulis tertawa dan senang ketika pusing menyelesaikan tugas akhir ini. 7. Semua pihak, baik langsung maupun tidak, yang telah membantu penyelesaian tugas akhir ini. Penulis menyadari bahwa masih banyak kekurangan dalam tugas akhir ini. Saran dan kritik diharapkan untuk perbaikan-perbaikan pada masa yang akan datang. Semoga bermanfaat. Yogyakarta, 11 Januari 2016 Penulis, Yohanes Beny Prasetyo x

11 DAFTAR ISI 1 HALAMAN JUDUL...i HALAMAN JUDUL (English)... ii HALAMAN PERSETUJUAN... iii HALAMAN PENGESAHAN... iv HALAMAN PERSEMBAHAN... v PERNYATAAN KEASLIAN KARYA... vi LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS... vii ABSTRAK... viii ABSTRACT... ix KATA PENGANTAR... x DAFTAR ISI... xi DAFTAR GAMBAR... xiv DAFTAR TABEL... xvi 1 BAB I PENDAHULUAN Latar Belakang Rumusan Masalah Tujuan Batasan Masalah Manfaat Penelitian Luaran Penelitian Sistematika Penulisan BAB II LANDASAN TEORI Kompresi Pengertian Jenis Kompresi... 7 xi

12 2.2 Struktur Data Pohon Biner (Binary Tree) Quick Sort Algoritma Huffman Pohon Biner Huffman Huffman Statis Huffman Dinamis Dekompresi BAB III METODOLOGI DAN PERANCANGAN Metode Pengembangan Sistem Gambaran Umum Sistem Analisa Kebutuhan Proses Baca Teks Pembentukan Pohon Huffman Analisis Biner Simpan File Baca File Pengubahan Kode Simpan File (Proses Decoding) Optimalisasi Algoritma Huffman Desain User Interface Spesifikasi Software dan Hardware BAB IV IMPLEMENTASI DAN ANALISIS Proses Encoding Implementasi Proses Baca Teks Implementasi Proses Pembentukan Pohon Biner Implementasi Proses Analisis Biner Implementasi Proses Encoding Implementasi Proses Simpan File Hasil Kompresi xii

13 4.2 Proses Decoding Implementasi Proses Baca Teks File Kompresi Implementasi Proses Pengubahan Kode (Decoding) Implementasi Proses Pembentukan File Hasil Decoding BAB V PENGUJIAN DAN ANALISIS Perbandingan Jumlah Bit Perbandingan Ukuran File Kompresi dan Waktu Proses Hubungan Peluang Kemuculan Setiap Karakter dengan Jumlah Bit Hasil Kompresi Data Bahasa Indonesia Data Bahasa Inggris BAB VI PENUTUP Kesimpulan Saran DAFTAR PUSTAKA xiii

14 DAFTAR GAMBAR Gambar 2.1 Penentuan pivot dan cara kerja Quick Sort Gambar 2.2 Pohon biner sempurna dan beberapa contoh pohon biner Gambar 2.3 Flowchart pembentukan pohon biner Huffman Gambar 2.4 Hasil dari pohon Huffman Gambar 2.5 Proses pembentukan pohon Huffman Dinamis FGK Gambar 2.6 Pembentukan pohon Huffman Dinamis Gambar 2.7 Proses dekompresi dengan pohon Huffman Gambar 3.1 Diagram konteks Gambar 3.2 Block diagram encoding Gambar 3.3 Block diagram decoding Gambar 3.4 Pembentukan pohon Huffman modifikasi Gambar 3.5 Interface encoding Gambar 3.6 Interface decoding Gambar 4.1 Implementasi proses memilih file encoding Gambar 4.2 Implementasi proses membaca file encoding Gambar 4.3 Implementasi pembentukan pohon Huffman Statis Gambar 4.4 Implementasi pembentukan pohon Huffman Dinamis Gambar 4.5 Implementasi pembentukan pohon Huffman Modifikasi Gambar 4.6 Source code kelas KodeHuffman.java Gambar 4.7 Implementasi analisis biner Huffman Statis dan Modifikasi Gambar 4.8 Implementasi analisis biner Huffman Statis method find() Gambar 4.9 Implementasi analisis biner Huffman Modifikasi method find() Gambar 4.10 Implementasi analisis biner Huffman Dinamis Gambar 4.11 Implementasi analisis biner Huffman Dinamis Gambar 4.12 Implementasi encoding Huffman Statis dan Dinamis Gambar 4.13 Implementasi encoding Huffman Modifikasi Gambar 4.14 Implementasi preprocessing Gambar 4.15 Implementasi proses simpan file log xiv

15 Gambar 4.16 Implementasi proses simpan file kompresi Gambar 4.17 Implementasi proses memilih file decoding Gambar 4.18 Implementasi proses membaca file decoding Gambar 4.19 Implementasi proses decoding header Gambar 4.20 Implementasi proses decoding isi Gambar 4.21 Implementasi proses decoding Huffman Dinamis dan Statis Gambar 4.22 Implementasi proses decoding Huffman Modifikasi Gambar 4.23 Implementasi proses pembentukan file decoding Gambar 5.1 Kelas pengujian perbandingan jumlah bit Gambar 5.2 Capture hasil pengujian jumlah bit Gambar 5.3 Lanjutan capture hasil pengujian jumlah bit Gambar 5.4 Frame pengujian jumlah bit dan ratio compression Gambar 5.5 Tampilan awal aplikasi Gambar 5.6 Tampilan klik browse untuk memilih file Gambar 5.7 Tampilan encoding untuk memilih salah satu algoritma Gambar 5.8 Tampilan loading proses encoding Gambar 5.9 Pemberitahuan jika proses encoding berhasil Gambar 5.10 Grafik waktu yang dibutuhkan untuk kompresi Gambar 5.11 Grafik ukuran file hasil kompresi xv

16 DAFTAR TABEL Tabel 2.1 Tabel kode Huffman Tabel 5.1 Tabel hasil perbandingan jumlah bit Tabel 5.2 Tabel hasil pengujian jumlah bit dan ratio compression Tabel 5.3 Data ukuran file pengujian Tabel 5.4 Tabel hasil pengujian Tabel 5.5 Hasil pengujian jumlah bit data bahasa Indonesia Tabel 5.6 Peluang karakter terbanyak data bahasa Indonesia Tabel 5.7 Hasil pengujian jumlah bit data bahasa Inggris Tabel 5.8 Peluang karakter terbanyak data bahasa Inggris xvi

17 1 BAB I PENDAHULUAN 1.1 Latar Belakang Pada zaman sekarang ukuran suatu file menjadi bertambah semakin besar dan membutuhkan memori penyimpanan yang lebih serta membutuhkan waktu transfer yang lama. Ukuran file yang besar tidak terlalu menjadi masalah karena ukuran hard disk semakin lama semakin besar dengan harga yang semakin terjangkau. Tetapi jika mengenai file transfer, masalah ukuran file yang besar menjadi penghambat dalam waktu transfer yang menjadi semakin lama. Dalam bidang ilmu komputer, permasalahan kompresi data sudah menjadi kasus klasik dan telah muncul beberapa algoritma dalam mengatasi permasalahan tersebut. Beberapa algoritma yang ada antara lain algortima Huffman, Shannon- Fano, Lempel Ziv Welch (LZW), Lempel Ziv Storer Szymanski (LZSS) dan masih banyak algoritma lainnya. Namun pada skripsi ini, lebih dibahas tentang algoritma Huffman. Kenapa memilih algoritma Huffman, karena algoritma Huffman merupakan dasar dari berbagai algoritma pengkompresian serta algoritma yang paling sederhana. Algoritma Huffman pertama kali diperkenalkan oleh David A. Huffman pada tahun 1952 yang menanggapi tantangan oleh dosennya Robert M. Fano untuk membuat sebuah pohon biner yang efisien. Dalam algoritma Huffman, ada dua macam tipe algoritma yaitu algoritma Huffman Statis dan algoritma Huffman Dinamis. Algoritma Huffman Dinamis lebih mudah dan fleksibel dalam 1

18 2 pembuatan Huffman Tree karena pohon Huffman akan otomatis berubah menyesuaikan kode yang sering muncul dan akan ditempatkan di dekat root sehingga tidak membutuhkan waktu preprocessing yang lama. Hal ini berbeda dengan algoritma Huffman Statis yang harus melakukan preprocessing dengan memindai setiap karakter dan mengurutkannya dari yang paling sering muncul sampai yang paling sedikit muncul. Dalam ilmu komputer dan informasi, Huffman coding adalah suatu entropi algoritma yang digunakan untuk teknik lossless compression [3]. Data yang dikompres menggunakan algoritma ini akan menghasilkan hasil dekompresi yang sama dengan aslinya. Penggunaan teknik ini banyak digunakan untuk kompresi data teks serta informasi penting lainnya yang tidak diperbolehkan adanya data informasi yang hilang. Saat ini telah banyak tulisan yang mengangkat kasus tentang kompresi data dengan berbagai macam algoritma yang ada. Banyak yang mengangkat kasus tersebut dengan cara membandingkan efficiency dari algoritma-algoritma yang ada, implementasi algoritma dengan menggabungkan dua algoritma kompresi dan membandingkan kompleksitas dari semua algoritma. Dalam tulisan ini akan dibahas tentang algoritma Huffman yang akan diimplementasikan pada data teks. Dengan penggunaan algoritma Huffman sebagai dasar dari penelitian ini, maka modifikasi untuk pengoptimalan akan dilakukan mengingat juga posisi algoritma Huffman seperti yang telah disebutkan sebelumnya. Pengujian dalam penelitian ini akan dilakukan untuk algoritma Huffman Statis, Huffman Dinamis dan pengembangan algoritma Huffman. Sehingga nantinya akan didapat sebuah

19 3 pengembangan algoritma dari Huffman yang dapat berguna bagi optimalisasi transfer data dan mengoptimalkan kapasitas penyimpanan memori. 1.2 Rumusan Masalah Berdasarkan latar belakang yang dipaparkan sebelumnya maka dapat dibuat beberapa rumusan masalah antara lain: 1. Bagaimana cara mengecilkan ukuran suatu file teks untuk mempercepat transfer data antar media penyimpanan? 2. Bagaimana cara mengecilkan ukuran suatu file teks untuk mempercepat proses upload atau download? 3. Bagaimana cara mengecilkan ukuran suatu file teks untuk menghemat kapasitas memori penyimpanan serta mengoptimalkan kapasitas memori? 1.3 Tujuan Tujuan dari penelitian ini adalah menemukan optimalisasi dari algoritma Huffman untuk kompresi data teks sebagai suatu cara untuk mempercepat proses transfer antar media penyimpanan, serta untuk menghemat dan mengoptimalkan kapasitas memori penyimpanan. 1.4 Batasan Masalah Dalam penelitian ini, penulis menentukan beberapa batasan masalah untuk mempersempit lingkup permasalahan, antara lain :

20 4 1. Algoritma yang dibahas dalam tulisan ini hanya digunakan untuk data bertipe teks. Data yang dimaksud adalah data berisi huruf, angka atau karakter yang terdapat dalam standar ASCII. 2. Data teks yang digunakan hanya untuk file betipe.txt (Text Document). 1.5 Manfaat Penelitian Manfaat yang didapat dari penelitian ini, antara lain : 1. Memberikan analisis sejauh mana algoritma Huffman dapat dikembangkan untuk menghasilkan algoritma kompresi yang lebih baik. 2. Membantu masyarakat dalam melakukan pengoptimalan memori penyimpanan serta mempermudah dan mempercepat dalam proses transfer (upload dan download) suatu file teks. 1.6 Luaran Penelitian Luaran penelitian ini adalah sebuah algoritma kompresi file teks yang merupakan pengembangan dari algoritma Huffman. Selain itu, produk yang didapat adalah sebuah aplikasi untuk menjalankan ketiga algoritma.

21 5 1.7 Sistematika Penulisan BAB I PENDAHULUAN Berisi latar belakang, rumusan masalah, tujuan, batasan masalah, manfaat penelitian, luaran penelitian dan sistematika penulisan untuk mempermudah pemahamannya. BAB II LANDASAN TEORI Bab ini berisi mengenai berbagai macam landasan teori yang digunakan untuk penelitian ini. BAB III METODOLOGI DAN PERANCANGAN Bab ini berisi analisa dan gambaran umum dari perancangan algoritma yang akan dibuat dari pengembangan algoritma Huffman. BAB IV IMPLEMENTASI Berisi implementasi dari algoritma serta rancangan yang telah dibuat. BAB V PENGUJIAN DAN ANALISIS pengujian. Berisi pengujian dari algoritma yang telah dibuat kedalam beberapa kondisi BAB VI PENUTUP Berisi kesimpulan yang diperoleh dari keseluruhan proses pembuatan tugas akhir ini, serta beberapa saran yang dapat digunakan untuk pengembangan algoritma lebih lanjut.

22 2 BAB II LANDASAN TEORI Pada bab ini penulis akan membahas serta menjelaskan mengenai teoriteori yang mendukung penelitian dalam proses analisa dan implementasi algoritma. Hal yang dibahas mencakup : pengertian kompresi file, jenis-jenis kompresi file, struktur data, binary tree, pengurutan data, algoritma Huffman Statis dan algoritma Huffman Dinamis. 2.1 Kompresi Pengertian Kompresi adalah mengurangi jumlah data dalam file, gambar atau video tanpa mengurangi kualitas dari data asli. Itu juga berarti mengurangi jumlah bit yang diperlukan untuk menyimpan dan atau mengirimkan melalui media digital [1]. Dalam kompresi, jika data tersebut akan dipergunakan kembali maka harus dilakukan proses dekompresi. Dekompresi adalah suatu proses pengubahan kembali kode-kode yang digunakan untuk mengurangi jumlah bit menjadi data awal. Pemilihan algoritma yang tepat dalam kompresi tidak hanya bagaimana algoritma itu dapat mengembalikan data menjadi seperti semula, tetapi ada beberapa faktor lain yang dipertimbangkan. Faktor tersebut antara lain : 1. Sumber daya yang dibutuhkan (memori, kecepatan komputer) 6

23 7 2. Kecepatan kompresi 3. Ukuran hasil kompresi 4. Besarnya redudansi 5. Ketepatan hasil dekompresi 6. Kompleksitas algoritma Jenis Kompresi Teknik kompresi itu sendiri terdiri dari dua jenis yaitu Lossless Compression dan Lossy Compression. Kedua jenis kompresi tersebut akan dijelaskan sebagai berikut : Lossless Compression Jika data dikompresi menggunakan teknik Lossless Compression, hasil dekompresiakan menghasilkan data yang sama dengan aslinya. Teknik ini biasa digunakan untuk aplikasi yang tidak diperbolehkan adanya perbedaan antara data asli dengan data hasil dekompresi. Contoh : ZIP, RAR, GZIP, 7-ZIP. Kelemahan dari metode ini adalah ratio kompresi yang rendah. Rasio dapat dihitung dengan persamaan : Rasio = (1 Ukuran kompresi ) x 100% Ukuran asli Penerapan algoritma ini biasanya dilakukan pada data teks yang tidak diperbolehkan adanya bit yang hilang, serta pada kompresi citra medis. Oleh

24 8 karena itu secara umum, compression ratio yang tinggi tidak akan mungkin terjadi jika menggunakan teknik lossless compression [2] Lossy Compression Teknik Lossy Compression memperbolehkan adanya informasi dan data yang hilang setelah proses dekompresi. Contoh : MP3, JPEG, MPEG dan WMA. Kelebihan dari teknik ini adalah ukuran file yang lebih kecil namun masih dapat memenuhi syarat setelah di dekompresi. Teknik ini sebenarnya membuang bagian-bagian yang tidak berguna, tidak begitu dirasakan dan tidak begitu dilihat sehingga manusia masih beranggapan bahwa data tersebut masih memenuhi syarat dan masih bisa digunakan. Jika dilihat dari contoh di atas, sebagian besar produk hasil dari teknik ini merupakan file multimedia seperti lagu, gambar dan video. Hal itu didasarkan karena file multimedia hanya untuk didengar atau dilihat, sehingga data yang hilang tidak akan terlalu mempengaruhi selagi masih dalam batas wajar. 2.2 Struktur Data Dalam penelitian ini, salah satu konsep terpenting yang diambil dari ilmu komputer adalah struktur data. Struktur data merupakan sebuah cabang dari ilmu komputer yang mempelajari tentang cara dan algoritma dalam pengolahan data. Dalam algoritma Huffman, struktur data merupakan dasar terpenting di mana pembentukan pohon biner tersebut diambil dari konsep struktur data.

25 9 Selain konsep pohon biner, dalam algoritma Huffman juga terdapat konsep pengurutan data. Pengurutan data digunakan untuk preprocessing dalam algoritma Huffman Statis di mana setelah data di cek frekuensi kemunculannya, maka data akan diurutkan secara descending (dari besar ke kecil). Seperti yang telah dibahas sebelumnya, data dengan kemunculan terbanyak ditempatkan dekat dengan akar Pohon Biner (Binary Tree) Sebuah pohon biner terbuat dari titik titik (nodes), di mana setiap titik mempunyai pointer kiri dan kanan serta data element. Pointer akar terletak di paling atas dari pohon. Pointer kiri dan kanan secara rekursif membentuk subtree [5]. Dalam setiap pohon biner, terdapat sifat sifat pohon antara lain [8] : 1. Node / simpul : obyek sederhana elemen dari senarai berantai yang dapat memiliki elemen dan penunjuk ke node lain. 2. Edge : garis yang menghubungkan dua buah node. 3. Path : sederetan node / edge dari awal node ke node lain (target). 4. Root node : node pertama dalam sebuah tree / subtree. 5. Subtree : tree yang merupakan bagian dari sebuah tree yang lebih besar. 6. Left Subtree : subtree yang berada di sebelah kiri sebuah tree. 7. Right subtree : subtree yang berada di sebelah kanan sebuah tree. 8. Parent : node yang berada tepat di atas sebuah node. 9. Child : node yang berada tepat di bawah sebuah node.

26 Left Child : node pertama dalam seuah left subtree / parentnode dari left subtree. 11. Right Child : node pertama dalam seuah right subtree / parentnode dari right subtree. 12. Sibling : node dengan parent yang sama. 13. Leaf Node / terrminal simpul : node yang tidak memiliki child. 14. Internal Node : node yang bukan leaf node. Pohon biner secara umum mempunyai ciri bahwa setiap node hanya mempunyai anak paling banyak dua. Sering kali pohon biner yang baik dan sempurna adalah pohon biner yang seimbang. Pohon biner seimbang yaitu pohon yang mempunyai tinggi subtree kanan dan kiri tidak lebih dari satu, semua daun terisi dan semua simpul memiliki dua anak [8] Quick Sort Salah satu metode dalam pengurutan data adalah Quick Sort. Pengurutan merupakan salah satu konsep dari struktur data yang digunakan dalam mengolah data. Pengurutan itu sendiri dapat dibedakan menjadi dua yaitu ascending (pengurutan dari data terkecil ke data terbesar) dan descending (pengurutan dari data terbesar ke data terkecil). Banyak algoritma pengurutan yang ada seperti bubble sort, selection sort, insertion sort, dan merge sort. Ide dasar metode quick sort adalah mempartisi array ke dalam subarray kiri dan subarray kanan sehingga setiap elemen di subarray kiri lebih kecil dari setiap elemen di subarray kanan [9].

27 11 Dari ide dasar metode quick sort tersebut, dapat dipahami bahwa inti dari pengurutannya adalah membagi data menjadi dua bagian. Cara kerja quick sort [9] : 1. Tentukan elemen sebagai pivot dari array, misalkan elemen awal. 2. Atur array sehingga semua elemen yang lebih kecil atau sama dengan pivot di sebelah kiri pivot dan semua elemen yang lebih besar dari pivot berada di sebelah kanan. 3. Secara rekursif quick sort subarray (kiri) dengan elemen yang lebih kecil atau sama dengan dari pivot dan subarray (kanan) dengan elemen yang lebih besar dari pivot. Gambar 2.1 Penetuan pivot dan cara kerja Quick Sort Menurut gambar cara kerja quick sort di atas, penentuan sebuah pivot atau titik acuan didasarkan pada elemen awal dalam array. Penentuan ini akan terus dilakukan pada setiap hasil pembagian data hingga tidak ada array yang tersisa

28 12 atau dengan kata lain semua data berdiri sendiri. Algoritma quick sort itu sendiri adalah sebagai berikut [9] : Larik A dengan N elemen akan diurutkan secara menaik (ascending). Pemanggilan fungsi quick sort rekursif dengan parameter array x, indek awal dan indek akhir. Parameter : x adalah array bertipe int. awal = indek awal dari vektor / subvektor yang akan diurutkan = 0 akhir = indek akhir dari vektor / subvektor yang akan diurutkan = N-1 Test apakah indek awal < akhir, jika ya kerjakan langkah langkah sebagai berikut: Langkah 1 Langkah 2 Langkah 3 : tentukan i = awal + 1, j = akhir. : tambahkan nilai i dengan 1 selama i <= akhir dan x[i] <= x[awal]. : kurangi nilai j dengan 1 selama j > awal dan x[j] > x[awal]. Langkah 4 : kerjakan langkah 5 sampai 7 selama i < j. Langkah 5 Langkah 6 Langkah 7 Langkah 8 : tukarkan nilai x[i] dengan x[j]. : tambahkan nilai i dengan 1 selama i <= akhir dan x[i] <= x[awal]. : kurangi nilai j dengan 1 selama j > awal dan x[j] > x[awal]. : tukarkan nilai x[awal] dengan x[j]. Langkah 9 : panggil fungsi quick sort rekursif dengan parameter indek awal = awal dan indek akhir = j -1.

29 13 Langkah 10 : panggil fungsi quick sort rekursif dengan parameter indek awal = j + 1 dan indek akhir = akhir. Langkah 11 : selesai. 2.3 Algoritma Huffman Pohon Biner Huffman Pohon adalah graf tak-berarah terhubung yang tidak mengandung sirkuit. Sedangkan pohon biner adalah pohon berakar dimana setiap simpul cabangnya mempunyai paling banyak dua anak. Pohon biner teratur adalah pohon biner dimana setiap simpul cabangnya mempunyai dua buah anak [4]. Gambar 2.2 Pohon biner sempurna dan beberapa contoh pohon biner Kompresi data pada pengkodean Huffman didasarkan pada frekuensi kemunculan setiap karakternya. Struktur data yang terbentuk pada algoritma Huffman adalah pohon biner berbobot, dimana skema pengkodeannya dapat dilihat dari flowchart berikut :

30 14 Gambar 2.3 Flowchart pembentukan pohon biner Huffman Dari pohon biner tersebut dapat diperoleh bahwa karakter dengan peluang kemunculan terbesar memiliki jumlah bit yang kecil. Setelah terbentuk pohon biner tersebut, maka karakter data asli tersebut diganti dengan kode bit berdasarkan pohon biner tadi. Proses ini dinamakan encoding. Semua data yang di kompresi harus dikembalikan lagi menjadi data semula (decoding). Dalam Huffman terdapat 2 cara untuk melakukan decoding yaitu menggunakan pohon biner atau menggunakan tabel kode.

31 Menggunakan Pohon Biner Huffman Langkah-langkah yang dilakukan dalam proses decoding dengan pohon biner Huffman adalah : a. Baca bit pertama dari string biner masukan b. Lakukan traversal pada pohon Huffman mulai dari akar sesuai dengan bit yang dibaca. Jika bit yang dibaca adalah 0, baca anak kiri. Tetapi jika yang dibaca adalah 1, baca anak kanan. c. Jika anak dari pohon bukan daun, baca bit berikutnya dari string biner. d. Traversal hingga ditemukan daun. e. Pada daun tersebut, simbol ditemukan dan proses penguraian kode selesai. f. Proses penguraian kode dilakukan hingga seluruh string biner masukan diproses Menggunakan Tabel Kode Huffman Kode Huffman itu sendiri disusun menggunakan kode awalan (prefiks code) yang berarti kode awalan dari sebuah simbol/karakter tidak boleh menjadi awalan suatu simbol lain. Oleh karena itu rangkaian bit hasil enkripsi dapat dengan mudah diuraikan menjadi data semula. Yang perlu dilakukan hanyalah melihat rangkaian setiap bit hasil enksripsi di dalam tabel kode Huffman. Kompleksitas dari algoritma Huffman adalah T(n) = O(n log n). Dikarenakan dalam sekali proses iterasi, pada saat penggabungan dua buah pohon yang mempunyai frekuensi terkecil pada sebuah akar membutuhkan waktu

32 16 O(log n), dan proses tersebut dilakukan berulang kali sampai hanya tersisa satu buah pohon Huffman, yang berarti dilakukan sebanyak n kali [5] Huffman Statis Algoritma Huffman Statis merupakan algoritma dasar dari Huffman Coding. Untuk mendapatkan kode Huffman, mula-mula kita harus menghitung dahulu peluang kemunculan tiap karakter dalam teks. Pada Huffman Statis pembentukan pohon Huffman adalah sebagai berikut : 1. Pilih dua karakter dengan peluang terkecil. Kedua simbol tadi dikombinasikan sebagai simpul orangtua sehingga menjadi simbol 2 karakter dengan peluang yang dijumlahkan. 2. Selanjutnya pilih 2 simbol berikutnya termasuk simbol baru yang mempunyai peluang terkecil. 3. Prosedur yang sama dilakukan pada dua simbol berikutnya yang mempunyai peluang terkecil [4]. Contoh : Data teks : EBCDAAEA = 8 huruf Membutuhkan memori : 8 x 8 bit = 64 bit (8 byte) Kode ASCII : E = B = C = D =

33 17 A = A = E = A = Frekuensi kemunculan data string di atas A = 3, E = 2, B=1, C = 1 dan D = 1. Maka peluang yang didapat : C dan D menjadi 1 (CD) sehingga probabilitas menjadi 1/8 + 1/8 = 2/8 CD dan B menjadi 1 (BCD) sehingga probabilitas menjadi 1/8 + 2/8 = 3/8 BCD dan E menjadi 1 (EBCD) sehingga probabilitas menjadi 2/8 + 3/8 = 5/8 EBCD dan A menjadi 1 (AEBCD) sehingga probabilitas menjadi 3/8 + 5/8=8/8 Probabilitas yang lebih besar akan diletakkan di sebelah kiri dan paling dekat dengan robot. Maka hasil pohon Huffman adalah sebagai berikut :

34 18 EABCD 0 1 ABCD 0 1 A BCD 0 1 E CD 0 1 B C D Gambar 2.4 Hasil dari pohon Huffman Huruf Kode A 1 E 01 B 001 C 0000 D 0001 Tabel 2.1 Tabel Kode Huffman Dengan melakukan pengkodean di atas, maka didapat sebuah kode yang sangat pendek. Sebagai contoh untuk karakter A yang sebelumnya berjumlah 8 bit hanya menjadi 1 bit. Sehingga kapasitas memori yang diperlukan : Sebelum : 8 x 8 bit = 64 bit Sesudah : (3 x 1 bit) + (2 x 2 bit) + (1 x 3 bit) + (2 x 4 bit) = = 18 bit

35 Huffman Dinamis Algoritma Huffman Dinamis atau Adaptive Huffman Coding (AHC) merupakan suatu lanjutan dari algoritma Huffman Statis di mana AHC merupakan algoritma yang lebih efisien dan mampat. AHC lebih sering dilakukan pada proses transfer data (streaming). Berikut algoritma AHC FGK (Faller-Gallager-Knuth) [6] : 1. Buat suatu simbol yang bernama NYT (Not Yet Transmitted) atau berarti belum ditransmisi. 2. Jika simbol adalah NYT, tambahkan 2 anak NYT tersebut, satunya akan menjadi NYT baru dan yang lainnya adalah untuk simbol, akan menambahkan nilai dari NYT akar dan daun akan terbentuk. Jika daun baru terbentuk lanjutkan langkah 4, jika telah ada sebelumnya periksa dulu di langkah Jika simbol yang dimasukan terakhir memiliki probabilitas yang lebih tinggi maka akan ditukar dengan yang sebelumnya menempati tempat kemunculan tertinggi. 4. Tambahkan nilai dari akar tersebut. 5. Jika bukan akar, kembali ke akar inang lalu lanjutkan ke langkah 2, selain itu selesai. Dari algoritma di atas, maka dapat di masukan ke dalam contoh berikut. Contoh :

36 20 Gambar 2.5 Proses pembentukan pohon Huffman Dinamis FGK 1. Pohon Huffman kosong dan berisi NYT 256 (2 byte). 2. Karakter pertama adalah a, dan disimpan pada anak NYT 256 yang bobotnya bertambah 1 dan menambah anak NYT 254. Simbol a memiliki bobot 1 dengan alamat Karakter kedua adalah b, dan disimpan pada anak NYT 254. Simbol b memiliki bobot 1 dengan alamat 253 serta NYT 254 memiliki anak NYT Karakter berikutnya adalah b lagi, maka akan dimasukan ke 253 (proses searching) dan bobotnya menjadi 2. Lalu dibandingkan dengan karakter a, karena bobot b lebih besar dari a maka posisi a dan b ditukar. Dari pohon di atas maka dapat disimpulkan bahwa karakter A memiliki code 01 dan karakter B memiliki code 1. Dari contoh Huffman Dinamis FGK di atas, dapat diterapkan pada data yang sama EBCDAAEA yaitu dengan langkah-langkah sebagai berikut :

37 21 E 1 B 1 C 1 4 D 1 E 1 B 1 C 1 5 D 1 A 1 A 2 B 1 C 1 6 D 1 E 1 E 1 1 E 1 B 1 2 E 1 B 1 3 C 1 A 2 E 2 C 1 7 D 1 B 1 A 3 E 2 C 1 8 D 1 B 1 Gambar 2.6 Pembentukan pohon Huffman Dinamis 1. Karakter pertama E masuk, dan menempati posisi dekat dengan akar. Bobot atau jumlah E adalah Karakter kedua B masuk dan mengecek posisi, karena posisi dekat dengan akar sudah ditempati E maka B membentuk posisi di bawah E. Bobot karakter B adalah 1. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

38 22 3. Karakter ketiga C masuk maka akan mengecek dan membuat posisi di bawah B. Bobot karakter C adalah Karakter keempat D masuk maka akan mengecek dan membuat posisi di bawah C. Bobot karakter D adalah Karakter kelima A masuk maka akan mengecek dan membuat posisi di bawah D. Bobot karakter A adalah Karakter keenam A masuk dan akan mengecek setiap node. Karena karakter A sudah membuat node di posisi paling bawah maka bobot A akan bertambah menjadi 2. Perubahan bobot ini akan mengubah posisi A menjadi dekat dengan akar dan bertukar posisi dengan karakter E. 7. Karakter ketujuh E masuk dan mengecek setiap node. Karakter E juga telah dibuat maka bobot E bertambah menjadi 2. Karakter E kembali mengecek dari akar untuk mengubah posisi. Posisi dekat akar telah ditempati A dengan bobot sama, maka E mengecek dengan turun satu node. Karakter B dengan bobot 1 ditukar posisinya dengan karakter E. Memang secara posisi pohon antara algoritma Huffman Statis dan Dinamis hampir sama, hanya saja lebih efisien Huffman Dinamis. Hal itu didapat karena peletakan daun pada Huffman Dinamis yang terus berubah-ubah (dynamic) dalam menentukan jumlah kemunculan tiap karakter. Dibandingkan dengan Huffman Statis yang terlebih dahulu harus menghitung peluang kemunculan tiap karakter.

39 Dekompresi Proses dekompresi (decoding) merupakan suatu proses kebalikan dari proses kompresi (encoding). Dimana kode hasil kompresi dikembalikan dan disusun kembali seperti data awal. Proses dekompresi seperti yang telah disebutkan di awal, dapat dilakukan dengan 2 cara yaitu dengan menggunakan pohon Huffman atau dengan tabel Huffman. Langkah-langkah dekompresi string biner dengan pohon Huffman adalah sebagai berikut [7] : 1. Baca sebuah bit dari string biner. 2. Mulai dari akar. 3. Periksa kiri. 4. Periksa kanan. 5. Ulangi langkah 1,2 dan 3 sampai bertemu daun. Kodekan rangkaian bit yang telah dibaca dengan karakter di daun. 6. Ulangi dari langkah 1 sampai semua bit di dalam string habis. Sebagai contoh sebuah biner akan di dekompresi, dengan pohon biner seperti Gambar 2.3.

40 24 Gambar 2.7 Proses dekompresi dengan pohon Huffman Dengan menggunakan algoritma di awal tadi, maka jika kita telusuri dari akar ditemukan bahwa kode 01 merupakan B dan kode 001 merupakan D. Hal ini dengan mudah ditemukan karena dalam Huffman kode akhir suatu biner bukan merupakan kode awalan biner lain. Jadi kode adalah kode Huffman untuk string BD. Jika kita dekompresi dengan cara kedua, yaitu menggunakan tabel Huffman, seperti pada Tabel 2.1 akan lebih mudah dibandingkan daripada dengan menggunakan pohon Huffman. Kita hanya harus mencari kode 01 dan 001 tersebut dimiliki oleh karakter apa. Proses dekompresi algoritma Huffman relatif mudah dibandingkan dengan algoritma lainnya.

41 25 3 BAB III METODOLOGI DAN PERANCANGAN Pada bab analisis dan desain ini akan dibahas mengenai analisa terhadap kompresi data teks dengan algoritma Huffman serta desain program yang akan dibuat. Hal hal yang dibahas antara lain proses proses yang dibutuhkan dalam penelitian meliputi beberapa hal : gambaran umum sistem yang akan dikembangkan, prosedur pengembangan sistem, gambaran algoritma pengembangan dari Huffman, model analisis dan model desain. 3.1 Metode Pengembangan Sistem Metodologi pengembangan yang penulis gunakan untuk pembuatan sistem ini adalah metodologi model waterfall. Terdapat beberapa tahapan dalam metodologi tersebut, antara lain : 1. System Engineering Pada tahap ini merupakan tahap untuk mengumpulkan dan menentukan semua kebutuhan elemen sistem. 2. Analisis Pada tahap untuk menentukan analisis terhadap permasalahan yang dihadapi. 3. Desain

42 26 Gambaran program yang akan diterjemahkan menjadi sebuah sistem. Meliputi desain tampilan, diagram konteks dan block diagram. 4. Implementasi Proses menterjemahkan desain ke dalam bentuk yang dapat dieksekusi. Pada tahap ini juga merupakan proses coding program. 5. Pengujian Memastikan apakah semua fungsi-fungsi program dapat berjalan dengan baik dan menghasilkan output yang sesuai dengan yang dibutuhkan. 3.2 Gambaran Umum Sistem Sistem yang akan dibangun merupakan sebuah sistem berbasis Java dengan Netbeans sebagai Intregated Development Environment (IDE). Secara umum sistem yang berjalan akan menitikberatkan pada operasi algoritma Huffman sebagai proses kompresi dan dekompresi data. Dalam sistem ini hanya terdapat satu tipe data yang digunakan sebagai masukan user yaitu data teks dengan keluaran hasil dari sistem adalah sebuah file hasil kompresi data masukan tersebut. Aktivitas yang dilakukan antara user dan sistem dapat digambarkan pada diagram konteks berikut :

43 27 User 1. Data teks 2. File hasil kompresi Sistem Kompresi Data 1. File hasil kompresi 2. Data teks Gambar 3.1 Diagram konteks Selain masukan berupa data teks, dari diagram konteks tersebut user juga bisa memasukan file hasil kompresi agar dapat di dekompresi kembali menjadi data teks sebagai keluarannya. File hasil kompresi yang akan digunakan sebagai masukan adalah file kompresi hasil dari sistem ini, karena file tipe hasil kompresi sistem ini akan berbeda dari sistem kompresi yang lain. 3.3 Analisa Kebutuhan Proses Setelah melihat gambaran umum sistem, maka tahap selanjutnya adalah menganalisa semua proses yang dibutuhkan dalam sistem. Terdapat dua proses sistem yaitu proses encoding dan decoding. Gambaran proses tersebut akan di tampilkan dalam block diagram berikut : Gambar 3.2 block diagram encoding

44 28 Gambar 3.3 block diagram decoding Dari gambar detail proses encoding dan decoding tersebut maka diperoleh beberapa proses di dalamnya antara lain : baca teks, pembentukan pohon Huffman, analisis biner, simpan file, baca file dan pengubahan kode Baca Teks Proses baca teks merupakan sebuah proses awal dimana user memilih data yang akan di kompresi. Data yang dipilih hanya tipe data yang sesuai dengan batasan masalah seperti telah disebutkan pada bab 1. Proses pemilihan menggunakan kelas JFileChooser yang merupakan kelas bawaan pada Java untuk membuka kotak dialog browse file. File yang telah dipilih, akan di read setiap byte secara detail. Proses baca akan membaca secara keseluruhan seperti karakter spasi, tanda baca hingga enter. Hasil dari proses ini adalah berupa Arraylist bertipe String yang akan diolah diproses selanjutya Pembentukan Pohon Huffman Setelah proses baca teks dilakukan, maka proses selanjutnya adalah pembentukan pohon Huffman. Proses ini saya sebut sebagai inti dari proses

45 29 encoding karena dari data teks tersebut disusun sebuah pohon biner Huffman untuk membuat sebuah kode baru yang lebih singkat untuk masing-masing karakter. Proses ini akan berbeda di setiap algoritma, karena pembentukan pohon biner yang memiliki ciri khas di masing-masing algoritma.arraylist hasil proses baca teks akan di loop dan diambil setiap karakternya lalu dibentuk pohon binernya. Setelah terbentuk pohon biner, maka akan di identifikasi setiap karakter beserta kode yang baru. Hasil proses identifikasi dimasukan ke dalam Arraylist objek sebuah kelas yang berisi atribut karakter dan kode karakter. Hasil tersebut juga merupakan keluaran dari proses ini Analisis Biner Proses analisis biner adalah suatu proses yang meliputi proses identifikasi kode baru tiap karakter serta proses pembentukan rangkaian kode biner baru. Proses ini dapat juga disebut sebagai proses pembentukan sebuah file baru hasil kompresi data yang dimasukan. Hasil dari proses pembentukan pohon Huffman yang berupa Arraylistobjek berisi karakter dan kode, akan di cocokan satu per satu dengan tiap karakter hasil dari proses baca teks yang berupa Arraylist String. Hasil dari proses ini adalah sebuah String yang berisi deretan kode 1 dan 0. Kode inilah merupakan kode karakter yang baru dari setiap karakter pada teks.

46 Simpan File Proses simpan file adalah sebuah proses untuk menyimpanan file hasil kompresi tersebut atau dengan kata lain file yang telah di buat dalam proses analisis biner akan di-stream di media penyimpanan. Dalam proses ini terdapat 3 sub proses di dalamnya, proses-proses tersebut antara lain stream byte, simpan log, dan buat file kompresi Simpan Log Proses simpan log ini merupakan sebuah proses yang saya buat untuk menyimpan tabel kode (Arraylist objek) dari hasil proses pembentukan pohon Huffman. Proses ini nantinya akan membantu pada saat decoding dengan mengambil tabel kode yang tersimpan dalam file log. File ini berada di dalam project tepatnya di folder logs. Untuk menyimpan tabel kode di dalam file log, saya menggunakan stream bertipe objek dengan implements Serializable pada kelasnya. Aturan penamaan file log ini adalah tanggal ditambah waktu pada saat proses kompresi. Sebagai contoh kompresi dilakukan pada tanggal 24 Desember 2014 pukul 11:21:40, maka nama file log menjadi Penamaan ini secara singkatnya adalah tanggal dalam format angka ditambah waktu dari format jam, menit dan detik yang semuanya digabung tanpa spasi. Seperti file pada umumnya, file ini juga mempunyai extension yang saya beri nama.ldt (Log Data). Pemberian extension bertujuan untuk mempermudah program dalam mengidentifikasi file yang akan diproses.

47 Stream Byte Pada awalnya, untuk proses stream hasil kompresi akan menggunakan stream bit yaitu stream dengan menggunakan ukuran terkecil dalam data. Ukuran terkecil yang dimaksud adalah jika program mencetak angka 1, maka yang ditulis adalah biner angka 1 bukan angka 1 yang mempunyai kode biner ( ) seperti halnya String atau Integer. Melihat sangat sulit dilakukan dengan pemrograman berbasis Java, maka stream untuk hasil kompresi menggunakan stream byte. Stream byte adalah program mencetak hasil ke dalam sebuah file dengan menulis tiap karakter. Deretan kode hasil proses analisis biner yang berisi 1 dan 0, akan dipotong menjadi beberapa Stringdengan panjang masing-masing 7 karakter. Pemotongan menjadi 7 karakter ini didasarkan pada jumlah bit yang terdapat di sebuah karakter maksimal adalah 8 yaitu Jika pemotongan berjumlah 8 karakter, akan menjadi masalah jika terdapat angka 1 selain di depan dan otomatis tidak akan ada karakter yang sesuai. Sebagai standar, saya menggunakan ASCII dengan maksimal jumlah bit adalah 2 8. Proses stream byte ini sama dengan proses stream bit, hanya saja terdapat perbedaan jika dalam stream bit program akan mencetak tiap bit, sedangkan pada stream byte program akan mencetak tiap 7 bit menjadi sebuah karakter.

48 Buat File Kompresi Untuk file baru hasil kompresi ini, saya akan memberi sebuah extension dengan format.nfc(new File Compression). Tujuan dari pemberian format file ini dengan nama yang baru adalah untuk membedakan file hasil kompresi dengan file hasil kompresi yang lainnya seperti RAR, ZIP, TAR atau sebagainya. Karena proses kompresi ini berbeda dari aplikasi kompresi lainnya, sehingga akan terjadi error jika file ini dibuka dengan aplikasi kompresi pada umumnya. Seperti halnya file hasil kompresi umumnya, pada file ini juga terdapat sebuah informasi yang terdapat di dalamnya. Informasi dalam file ini meliputi nama file log untuk data tersebut. Secara singkat, file hasil kompresi akan berpasangan dengan file log-nya masing-masing. Selain itu juga terdapat informasi tentang metode atau algoritma yang dipakai. Saya memberikan ketentuan sebagai berikut : 1. Algoritma Huffman Statis, diberi kode S. 2. Algoritma Huffman Dinamis, diberi kode D. 3. Algoritma Huffman Modifikasi, diberi kode M. Pemberian kode tersebut digunakan untuk mempermudah program dalam proses decoding sehingga otomatis akan memilih cara yang sesuai. Untuk mempermudah proses pengambilan data atau tokenizer, maka saya menggunakan kata sb yang merupakan singkatan dari sub. Alasan saya menggunakan sebuah kata, karena jika menggunakan karakter nantinya akan terjadi ambigu ketika terdapat karakter yang sama seperti karakter pembatas. Kejadian ambigu akan kecil kemungkinannya jika menggunakan sebuah kata.

49 33 Secara garis besar format penulisan dalam file hasil kompresi adalah sebagai berikut : nama file logsbkode metodesb isi karakter Untuk penamaan file hasil kompresi, saya menyamakan dengan nama file asli ditambah dengan metode yang dipakai. Sebagai contoh file bernama coba.txt di kompresi dengan metode Huffman Dinamis, menghasilkan file hasil coba_dinamis.nfc Baca File Proses baca file adalah proses user untuk memilih file hasil kompresi untuk kemudian di dekompresi menjadi file baru seperti file aslinya. Pada proses ini hanya file berekstensi.nfc yang dapat dibuka, karena output file hasil dari sistem ini adalah file berformat.nfc. Sistem tidak bisa men-decoding jika masukan file tidak berformat seperti aturan tersebut. Pada proses ini program juga akan membaca semua isi file dan akan memasukannya ke dalam sebuah String, lalu kemudian program akan mentokenizer menjadi 3 data. Hasil pemotongan tersebut adalah nama file log, kode metode dan yang terakhir isi file. Program akan mengambil file log sesuai dengan nama yang terdapat dalam file dan membacanya lalu kemudian memasukannya ke dalam Arraylist objek. Setelah ketiga komponen terpenuhi, yaitu : Arraylist objek berisi tabel kode, kode metode yang dipakai dan isi karakter, maka proses selanjutnya adalah pengubahan kode.

50 Pengubahan Kode Proses ini merupakan kebalikan dari proses pembentukan pohon Huffman pada saat encoding. Di dalam proses ini, ketiga komponen yang sudah diambil pada proses baca file akan diolah. Isi karakter akan di loop dan di proses per karakter lalu diubah menjadi bentuk biner. Hasil pengubahan ini adalah sebuah String yang berisi deretan kode 1 dan 0 seperti kode pada saat encoding. Setelah terbentuk deret tersebut, maka akan dicocokan dengan Arraylist yang berisi tabel kode sehingga akan terbentuk sebuah kata yang sesuai dengan kata aslinya. Hasil dari proses ini adalah sebuah String yang nantinya akan diolah pada proses selanjutnya Simpan File (Proses Decoding) Proses simpan file pada saat decoding berbeda dengan proses simpan file pada saat encoding. Pada proses ini, String hasil dari pengubahan kode akan langsung di stream ke dalam sebuah file baru. Karena melihat dari batasan masalah di mana file masukan hanya untuk berekstensi.txt, maka file hasil decoding akan langsung diberi extension.txt. Untuk penamaan file hasil decoding, menggunakan nama dari file hasil kompresi hanya diganti extension.nfc menjadi.txt. Sebagai contoh file coba_dinamis.nfc hasil decoding menjadi coba_dinamis.txt.

51 Optimalisasi Algoritma Huffman Seperti yang telah disebutkan dari awal, bahwa algoritma Huffman merupakan dasar dari algoritma kompresi yang ada pada saat ini. Melihat posisi tersebut bukan tidak mungkin dilakukan suatu modifikasi untuk mengoptimalkan hasil kompresi dari algoritma Huffman. Algoritma Huffman mempunyai dua macam algoritma, yaitu Huffman Dinamis dan Huffman Statis. Kedua algoritma tersebut mempunyai persamaan yaitu terbuat dari pohon biner yang dikenal dengan pohon biner Huffman, hanya saja kedua algoritma tersebut mempunyai perbedaan pada preprocessing data. Algoritma Huffman Dinamis lebih fleksibel dan tanpa preprocessing karena data yang masuk akan diolah penempatannya ketika berada di pohon biner, sedangkan algoritma Huffman Statis melakukan pengurutan frekuensi kemunculan dahulu sebelum membuat pohon biner. Kedua algoritma mempunyai persamaan menempatkan karakter yang sering muncul berada di dekat akar sehingga mempunyai kode terpendek. Pada penelitian ini mencoba untuk memodifikasi algoritma Huffman supaya lebih optimal dalam mendapatkan hasil ukuran kompresi. Secara garis besar, modifikasi ini merupakan turunan dari algoritma Huffman Statis. Untuk lebih memahaminya, maka sebuah contoh akan penulis berikan. Data : E B C D A A E A Langkah 1 : cek frekuensi kemunculan setiap huruf, dan di dapat : Hasil : E = 2, B = 1, C = 1, D = 1, A = 3

52 36 Langkah 2 : urutkan data dari frekuensi kemunculan terbanyak hingga sedikit : Hasil : A = 3, E = 2, B = 1, C = 1, D = 1 Langkah 3 : pembentukan pohon biner berdasarkan letak setiap karakter, jika pada posisi ganjil maka akan menuju ke sebelah kanan pohon. Jika terletak pada posisi genap maka akan menuju ke sebelah kiri pohon. Secara umum dapat dinyatakan dengan pseudecode sebagai berikut : 1. Cek frekuensi kemunculan tiap karakter. 2. Urutkan frekuensi dari yang terbanyak muncul hingga paling sedikit muncul. 3. Cek posisi karakter yang telah diurutkan, variabel cursor == akar : Ganjil : Jika cursor.getkanan( ) == null, buat node baru. Jika cursor.getkanan( )!= null, maka cursor = cursor.getkanan( ). Genap : Jika cursor.getkiri( ) == null, buat node baru. Jika cursor.getkiri( ) == null, maka cursor = cursor.getkiri( ). 4. Lakukan nomor 3 hingga semua karakter ditempatkan pada pohon biner.

53 37 Langkah 4 : membuat pohon biner dari data yang telah diurutkan. Gambar 3.4 Pembentukan pohon Huffman modifikasi 1. Pada awalnya hanya akar dan data belum masuk. 2. Kemudian masuk karakter A, karena posisinya di awal (ganjil) dan data belum ada maka langsung membuat node A di sebelah kanan akar. 3. Kemudian masuk karakter E, karena posisinya kedua (genap) dan data belum ada maka langsung membuat node E di sebelah kiri akar. 4. Masuk karakter B yang berada pada urutan ketiga (ganjil), tetapi sudah ada data A di sebelah kanan maka cursor turun 1 langkah dan membuat node B di bawah node A. 5. Karakter C lalu masuk sebagai urutan keempat (genap), tetapi sudah ada data E di sebelah kiri maka cursor turun 1 langkah dan membuat node C di bawah node E.

Algoritma Huffman dan Kompresi Data

Algoritma Huffman dan Kompresi Data Algoritma Huffman dan Kompresi Data David Soendoro ~ NIM 13507086 Jurusan Teknik Informatika ITB, Bandung, email: if17086@students.if.itb.ac.id Abstract Algoritma Huffman merupakan salah satu algoritma

Lebih terperinci

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

STMIK GI MDP. Program Studi Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil Tahun 2010/2011 STMIK GI MDP Program Studi Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil Tahun 2010/2011 ANALISIS METODE HUFFMAN UNTUK KOMPRESI DATA CITRA DAN TEKS PADA APLIKASI KOMPRESI DATA Shelly Arysanti

Lebih terperinci

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang BAB 1 PENDAHULUAN 1.1 Latar Belakang Peningkatan teknologi komputer memberikan banyak manfaat bagi manusia di berbagai aspek kehidupan, salah satu manfaatnya yaitu untuk menyimpan data, baik data berupa

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI 6 BAB 2 LANDASAN TEORI 2.1. Kompresi Data Kompresi adalah mengecilkan/ memampatkan ukuran. Kompresi Data adalah teknik untuk mengecilkan data sehingga dapat diperoleh file dengan ukuran yang lebih kecil

Lebih terperinci

Kompresi. Definisi Kompresi

Kompresi. Definisi Kompresi 1 Kompresi Bahan Kuliah : Sistem Multimedia PS TI Undip Gasal 2011/2012 2 Definisi Kompresi Memampatkan/mengecilkan ukuran Proses mengkodekan informasi menggunakan bit yang lain yang lebih rendah daripada

Lebih terperinci

BAB 2. LANDASAN TEORI 2.1. Algoritma Huffman Algortima Huffman adalah algoritma yang dikembangkan oleh David A. Huffman pada jurnal yang ditulisnya sebagai prasyarat kelulusannya di MIT. Konsep dasar dari

Lebih terperinci

Penggunaan Pohon Huffman Sebagai Sarana Kompresi Lossless Data

Penggunaan Pohon Huffman Sebagai Sarana Kompresi Lossless Data Penggunaan Pohon Huffman Sebagai Sarana Kompresi Lossless Data Aditya Rizkiadi Chernadi - 13506049 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl.

Lebih terperinci

APLIKASI MASALAH 0/1 KNAPSACK MENGGUNAKAN ALGORITMA GREEDY

APLIKASI MASALAH 0/1 KNAPSACK MENGGUNAKAN ALGORITMA GREEDY PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI APLIKASI MASALAH 0/1 KNAPSACK MENGGUNAKAN ALGORITMA GREEDY Skripsi Diajukan untuk Menempuh Salah Satu Syarat Memperoleh Gelar

Lebih terperinci

BAB 2 TINJAUAN PUSTAKA

BAB 2 TINJAUAN PUSTAKA BAB 2 TINJAUAN PUSTAKA 2.1. Kompresi Data Kompresi data adalah proses mengkodekan informasi menggunakan bit atau information-bearing unit yang lain yang lebih rendah daripada representasi data yang tidak

Lebih terperinci

Penerapan Pohon Biner Huffman Pada Kompresi Citra

Penerapan Pohon Biner Huffman Pada Kompresi Citra Penerapan Pohon Biner Huffman Pada Kompresi Citra Alvin Andhika Zulen (3507037) Program Studi Teknik Informatika, Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jalan Ganesha No 0 Bandung,

Lebih terperinci

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang BAB 1 PENDAHULUAN 1.1 Latar Belakang Pemampatan data (data compression) merupakan salah satu kajian di dalam ilmu komputer yang bertujuan untuk mengurangi ukuran file sebelum menyimpan atau memindahkan

Lebih terperinci

BAB 1 PENDAHULUAN Latar Belakang

BAB 1 PENDAHULUAN Latar Belakang 1 BAB 1 PENDAHULUAN 1.1. Latar Belakang Kompresi data adalah suatu proses untuk mengubah sebuah input data stream (stream sumber atau data mentah asli) ke dalam aliran data yang lain yang berupa output

Lebih terperinci

Penerapan Pengkodean Huffman dalam Pemampatan Data

Penerapan Pengkodean Huffman dalam Pemampatan Data Penerapan Pengkodean Huffman dalam Pemampatan Data Patrick Lumban Tobing NIM 13510013 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10

Lebih terperinci

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

KOMPRESI TEKS MENGGUNAKAN ALGORITMA DAN POHON HUFFMAN. Nama : Irfan Hanif NIM : KOMPRESI TEKS MENGGUNAKAN ALGORITMA DAN POHON HUFFMAN Nama : Irfan Hanif NIM : 13505049 Program Studi Teknik Informatika Institut Teknologi Bandung Jalan Ganesha No 10 Bandung E-mail : if15049@students.if.itb.ac.id

Lebih terperinci

Kode Huffman dan Penggunaannya dalam Kompresi SMS

Kode Huffman dan Penggunaannya dalam Kompresi SMS Kode Huffman dan Penggunaannya dalam Kompresi SMS A. Thoriq Abrowi Bastari (13508025) Teknik Informatika Institut Teknologi Bandung email: if18025@students.itb.ac.id ABSTRAK Dalam makalah ini, akan dibahas

Lebih terperinci

KOMPRESI FILE MENGGUNAKAN ALGORITMA HUFFMAN KANONIK

KOMPRESI FILE MENGGUNAKAN ALGORITMA HUFFMAN KANONIK KOMPRESI FILE MENGGUNAKAN ALGORITMA HUFFMAN KANONIK Asrianda Dosen Teknik Informatika Universitas Malikussaleh ABSTRAK Algoritma Huffman adalah salah satu algoritma kompresi. Algoritma huffman merupakan

Lebih terperinci

1. PENDAHULUAN 1.1. Latar Belakang Masalah

1. PENDAHULUAN 1.1. Latar Belakang Masalah 1. PENDAHULUAN 1.1. Latar Belakang Masalah Kompresi data merupakan suatu proses pengubahan ukuran suatu file atau dokumen menjadi lebih kecil secara ukuran. Berkembangnya teknologi hardware dan software

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI 2.1. Kompresi File Pada dasarnya semua data itu merupakan rangkaian bit 0 dan 1. Yang membedakan antara suatu data tertentu dengan data yang lain adalah ukuran dari rangkaian bit dan

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI 2.1 Kompresi 2.1.1 Sejarah kompresi Kompresi data merupakan cabang ilmu komputer yang bersumber dari Teori Informasi. Teori Informasi sendiri adalah salah satu cabang Matematika yang

Lebih terperinci

METODE POHON BINER HUFFMAN UNTUK KOMPRESI DATA STRING KARAKTER

METODE POHON BINER HUFFMAN UNTUK KOMPRESI DATA STRING KARAKTER METODE POHON BINER HUFFMAN UNTUK KOMPRESI DATA STRING KARAKTER Muqtafi Akhmad (13508059) Teknik Informatika ITB Bandung e-mail: if18059@students.if.itb.ac.id ABSTRAK Dalam makalah ini akan dibahas tentang

Lebih terperinci

Perbandingan Algoritma Kompresi Terhadap Objek Citra Menggunakan JAVA

Perbandingan Algoritma Kompresi Terhadap Objek Citra Menggunakan JAVA Perbandingan Algoritma Terhadap Objek Menggunakan JAVA Maria Roslin Apriani Neta Program Studi Magister Teknik Informatika, Universitas Atma Jaya Yogyakarta Jl. Babarsari no 43 55281 Yogyakarta Telp (0274)-487711

Lebih terperinci

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

Penyandian (Encoding) dan Penguraian Sandi (Decoding) Menggunakan Huffman Coding Penyandian (Encoding) dan Penguraian Sandi (Decoding) Menggunakan Huffman Coding Nama : Irwan Kurniawan NIM : 135 06 090 1) Program Studi Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha 10,

Lebih terperinci

BAB 2 Tinjauan Teoritis

BAB 2 Tinjauan Teoritis BAB 2 Tinjauan Teoritis 2.1 Tinjauan Kepustakaan Topik kompresi data ini pernah dikerjakan oleh salah satu mahasiswa Politeknik Negeri Bandung angkatan 2007 yaitu Andini Ramika Sari [4]. Proses kompresi

Lebih terperinci

Teknik Kompresi Citra Menggunakan Metode Huffman

Teknik Kompresi Citra Menggunakan Metode Huffman SEMINAR NASIONAL MATEMATIKA DAN PENDIDIKAN MATEMATIKA UNY 26 A-5 Teknik Kompresi Citra Menggunakan Metode Huffman Tri Rahmah Silviani, Ayu Arfiana Program Pascasarjana Universitas Negeri Yogyakarta Email:

Lebih terperinci

KOMPRESI STRING MENGGUNAKAN ALGORITMA LZW DAN HUFFMAN

KOMPRESI STRING MENGGUNAKAN ALGORITMA LZW DAN HUFFMAN KOMPRESI STRING MENGGUNAKAN ALGORITMA DAN HUFFMAN Muhammad Maulana Abdullah / 13508053 Program Studi Teknik Informatika 2008 Bandung e-mail: if18053@students.if.itb.ac.id ABSTRAK Saat ini kompresi file

Lebih terperinci

KOMPRESI DATA DAN TEKS. By : Nurul Adhayanti

KOMPRESI DATA DAN TEKS. By : Nurul Adhayanti KOMPRESI DATA DAN TEKS By : Nurul Adhayanti KOMPRESI DATA DAN TEKS KOMPRESI DATA Kompresi berarti memampatkan/mengecilkan ukuran Kompresi data adalah proses mengkodekan informasi menggunakan bit atau information-bearing

Lebih terperinci

BAB I PENDAHULUAN I-1

BAB I PENDAHULUAN I-1 BAB I PENDAHULUAN 1.1 Latar Belakang Masalah Sejak ditemukannya alat untuk menangkap suatu gambar pada bidang dua dimensi (citra) berupa kamera, dengan semakin berkembangnya teknologi pada saat ini sehingga

Lebih terperinci

Aplikasi Penggambar Pohon Biner Huffman Untuk Data Teks

Aplikasi Penggambar Pohon Biner Huffman Untuk Data Teks Aplikasi Penggambar Pohon Biner Huffman Untuk Data Teks Fandi Susanto STMIK MDP Palembang fandi@stmik-mdp.net Abstrak: Di dalam dunia komputer, semua informasi, baik berupa tulisan, gambar ataupun suara

Lebih terperinci

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

BAB III METODE KOMPRESI HUFFMAN DAN DYNAMIC MARKOV COMPRESSION. Kompresi ialah proses pengubahan sekumpulan data menjadi suatu bentuk kode BAB III METODE KOMPRESI HUFFMAN DAN DYNAMIC MARKOV COMPRESSION 3.1 Kompresi Data Definisi 3.1 Kompresi ialah proses pengubahan sekumpulan data menjadi suatu bentuk kode untuk menghemat kebutuhan tempat

Lebih terperinci

KOMPRESI TEKS dengan MENGGUNAKAN ALGORITMA HUFFMAN

KOMPRESI TEKS dengan MENGGUNAKAN ALGORITMA HUFFMAN KOMPRESI TEKS dengan MENGGUNAKAN ALGORITMA HUFFMAN Irwan Wardoyo 1, Peri Kusdinar 2, Irvan Hasbi Taufik 3 Jurusan Teknik Informatika, Sekolah Tinggi Teknologi Telkom Jl. Telekomunikasi, Bandung 1 irwan_hi_tech@yahoo.com,

Lebih terperinci

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

PERBANDINGAN ALGORITMA HUFFMAN DAN ALGORITMA SHANNON-FANO PADA PROSES KOMPRESI BERBAGAI TIPE FILE. Irwan Munandar PERBANDINGAN ALGORITMA HUFFMAN DAN ALGORITMA SHANNON-FANO PADA PROSES KOMPRESI BERBAGAI TIPE FILE I. Pendahuluan Irwan Munandar Balai Pendidikan dan Pelatihan Tambang Bawah Tanah Keterbatasan komputer

Lebih terperinci

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

IMPLEMENTASI DAN ANALISIS KINERJA ALGORITMA SHANNON- FANO UNTUK KOMPRESI FILE TEXT IMPLEMENTASI DAN ANALISIS KINERJA ALGORITMA SHANNON- FANO UNTUK KOMPRESI FILE TEXT Sutardi Staf Pengajar Jurusan Pendidikan Teknik Informatika Fakultas Teknik Universitas Halu Oleo Kampus Hijau Bumi Tridarma

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI 2.1 Pengertian Data Compression 2.1.1 Data Menurut Oxford ( 2010 ),Data dapat diartikan suatu kumpulan angka, karakter, gambar yang sebelumnya tidak memiliki arti apa-apa hingga diproses

Lebih terperinci

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

MULTIMEDIA system. Roni Andarsyah, ST., M.Kom Lecture Series MULTIMEDIA system Roni Andarsyah, ST., M.Kom Lecture Series Kompresi data teks (Huffman coding, RLE coding, LZW coding, arithmetic coding Representasi dan kompresi data suara dan audio Representasi dan

Lebih terperinci

DATA COMPRESSION CODING USING STATIC AND DYNAMIC METHOD OF SHANNON-FANO ALGORITHM

DATA COMPRESSION CODING USING STATIC AND DYNAMIC METHOD OF SHANNON-FANO ALGORITHM Media Informatika, Vol. 5, No. 2, Desember 2007, 129-139 ISSN: 0854-4743 DATA COMPRESSION CODING USING STATIC AND DYNAMIC METHOD OF SHANNON-FANO ALGORITHM Romi Wiryadinata Mahasiswa Sekolah Pascasarjana

Lebih terperinci

PENGANTAR KOMPRESI DATA

PENGANTAR KOMPRESI DATA PENGANTAR KOMPRESI DATA PUTU WIDHIARTHA widhiartha@yahoo.com http://widhiartha.multiply.com Lisensi Dokumen: Copyright 2003-2008 IlmuKomputer.Com Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi

Lebih terperinci

BAB 1 PENDAHULUAN 1-1

BAB 1 PENDAHULUAN 1-1 BAB 1 PENDAHULUAN Bab ini berisi penjelasan mengenai latar belakang tugas akhir, identifikasi masalah, tujuan tugas akhir, metodologi tugas akhir dan sistematika penulisan tugas akhir. 1.1 Latar Belakang

Lebih terperinci

STUDI PERBANDINGAN ALGORITMA HUFFMAN DAN LZW (LEMPEL ZIV WELCH) PADA PEMAMPATAN FILE TEKS SKRIPSI CANGGIH PRAMILO

STUDI PERBANDINGAN ALGORITMA HUFFMAN DAN LZW (LEMPEL ZIV WELCH) PADA PEMAMPATAN FILE TEKS SKRIPSI CANGGIH PRAMILO STUDI PERBANDINGAN ALGORITMA HUFFMAN DAN LZW (LEMPEL ZIV WELCH) PADA PEMAMPATAN FILE TEKS SKRIPSI Diajukan untuk melengkapi tugas akhir dan memenuhi syarat mencapai gelar Sarjana Komputer CANGGIH PRAMILO

Lebih terperinci

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

PEMAMPATAN TATA TEKS BERBAHASA INDONESIA DENGAN METODE HUFFMAN MENGGUNAKAN PANJANG SIMBOL BERVARIASI PEMAMPATAN TATA TEKS BERBAHASA INDONESIA DENGAN METODE HUFFMAN MENGGUNAKAN PANJANG SIMBOL BERVARIASI Tri Yoga Septianto 1, Waru Djuiatno, S.T., M.T. 2, dan Adharul Muttaqin S.T. M.T. 1 Mahasisawa Teknik

Lebih terperinci

BAB III METODOLOGI PENELITIAN

BAB III METODOLOGI PENELITIAN BAB III METODOLOGI PENELITIAN 3.1 Alat dan Bahan Penelitian 3.1.1 Alat Penelitian Dalam melakukan penelitian ini, berikut alat dan bahan penelitian yang digunakan: 1. Dari sisi perangkat keras, spesifikasi

Lebih terperinci

BAB I PENDAHULUAN. Dalam bidang teknologi informasi, komunikasi data sangat sering

BAB I PENDAHULUAN. Dalam bidang teknologi informasi, komunikasi data sangat sering BAB I PENDAHULUAN 1.1 Latar Belakang Dalam bidang teknologi informasi, komunikasi data sangat sering dilakukan. Komunikasi data ini berhubungan erat dengan pengiriman data menggunakan sistem transmisi

Lebih terperinci

BAB 2 TINJAUAN PUSTAKA

BAB 2 TINJAUAN PUSTAKA 6 BAB 2 TINJAUAN PUSTAKA 2.1. Kompresi Data Dalam ilmu komputer, pemampatan data atau kompresi data adalah sebuah cara untuk memadatkan data sehingga hanya memerlukan ruangan penyimpanan lebih kecil sehingga

Lebih terperinci

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO MULTIMEDIA. Kompresi. Oky Dwi Nurhayati, ST, MT

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO MULTIMEDIA. Kompresi. Oky Dwi Nurhayati, ST, MT PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO MULTIMEDIA Kompresi Oky Dwi Nurhayati, ST, MT email: okydn@undip.ac.id 1 Definisi memampatkan/mengecilkan ukuran proses mengkodekan informasi menggunakan

Lebih terperinci

BAB I PENDAHULUAN. Dalam dunia modern sekarang ini kebanyakan aktivitas manusia selalu

BAB I PENDAHULUAN. Dalam dunia modern sekarang ini kebanyakan aktivitas manusia selalu BAB I PENDAHULUAN 1.1. Latar Belakang Masalah Dalam dunia modern sekarang ini kebanyakan aktivitas manusia selalu berhubungan dengan dokumentasi atau data. Data-data yang ada haruslah tersimpan dengan

Lebih terperinci

PERBANDINGAN ALGORITMA HUFFMAN DENGAN ALGORITMA SHANNON-FANO

PERBANDINGAN ALGORITMA HUFFMAN DENGAN ALGORITMA SHANNON-FANO PERBANDINGAN ALGORITMA HUFFMAN DENGAN ALGORITMA SHANNON-FANO Gagarin Adhitama (13508089) Program Studi Teknik Informatika Institut Teknologi Bandung Jalan Ganesha 10, Bandung Email : if18089@students.if.itb.ac.id

Lebih terperinci

BAB II DASAR TEORI. 2.1 Pendahuluan

BAB II DASAR TEORI. 2.1 Pendahuluan BAB II DASAR TEORI 2.1 Pendahuluan Kompresi data adalah proses pengkodean (encoding) informasi dengan menggunakan bit yang lebih sedikit dibandingkan dengan kode yang sebelumnya dipakai dengan menggunakan

Lebih terperinci

TEKNIK KOMPRESI LOSSLESS TEXT

TEKNIK KOMPRESI LOSSLESS TEXT TEKNIK KOMPRESI LOSSLESS TEXT Teknik Elektro Unibraw Kompresi Memampatkan / mengecilkan raw data Kompresi Multimedia: memampatan raw data multimedia Kompresi multimedia adalah mutlak mengingat ukuran raw

Lebih terperinci

BAB 1 PENDAHULUAN. 1.1.Latar Belakang

BAB 1 PENDAHULUAN. 1.1.Latar Belakang BAB 1 PENDAHULUAN Pada bab ini akan dibahas mengenai hal-hal yang menjadi latar belakang pembuatan tugas akhir, rumusan masalah, tujuan, manfaat, dan metodologi penelitian serta sistematika penulisan dari

Lebih terperinci

EVALUASI KINERJA ALGORITMA LEMPEL-ZIV STORER SZYMANSKI TERHADAP DATA TEKS DAN GAMBAR LAPORAN TUGAS AKHIR JUDUL

EVALUASI KINERJA ALGORITMA LEMPEL-ZIV STORER SZYMANSKI TERHADAP DATA TEKS DAN GAMBAR LAPORAN TUGAS AKHIR JUDUL EVALUASI KINERJA ALGORITMA LEMPEL-ZIV STORER SZYMANSKI TERHADAP DATA TEKS DAN GAMBAR LAPORAN TUGAS AKHIR JUDUL Prima Even Ramadhan 13203076/Teknik Telekomunikasi PROGRAM STUDI TEKNIK ELEKTRO SEKOLAH TEKNIK

Lebih terperinci

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang BAB 1 PENDAHULUAN 1.1 Latar Belakang Pertumbuhan besarnya data yang digunakan pada teknologi informasi saat ini berkembang sangat cepat yang sangat mempengaruhi media penyimpanan dan transmisi data. Hal

Lebih terperinci

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT. Email: okydn@undip.ac.id

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT. Email: okydn@undip.ac.id PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO Oky Dwi Nurhayati, ST, MT Email: okydn@undip.ac.id Kompresi Data Kompresi berarti memampatkan / mengecilkan ukuran Kompresi data adalah proses mengkodekan

Lebih terperinci

BAB 2 TINJAUAN PUSTAKA

BAB 2 TINJAUAN PUSTAKA BAB 2 TINJAUAN PUSTAKA Pada bab ini penulis memaparkan teori-teori ilmiah yang didapat dari metode pencarian fakta yang digunakan untuk mendukung penulisan skripsi ini dan sebagai dasar pengembangan sistem

Lebih terperinci

Kode Huffman. Arya Tri Prabawa Program Studi Teknik Informatika ITB, Bandung 40116,

Kode Huffman. Arya Tri Prabawa Program Studi Teknik Informatika ITB, Bandung 40116, Kode Huffman Arya Tri Prabawa Program Studi Teknik Informatika ITB, Bandung 40116, email: if16063@students.if.itb.ac.id Abstract Makalah ini membahas kode Huffman dalam konsep, sejarah singkat, dan aplikasinya.

Lebih terperinci

Seminar Nasional Aplikasi Teknologi Informasi 2004 Yogyakarta, 19 Juni 2004

Seminar Nasional Aplikasi Teknologi Informasi 2004 Yogyakarta, 19 Juni 2004 Seminar Nasional Aplikasi Teknologi Informasi 2004 Yogyakarta, 19 Juni 2004 Kompresi Data Menggunakan Algoritme Huffman Julio Adisantoso, Danny Dimas Sulistio, Bib Paruhum Silalahi Departemen Ilmu Komputer

Lebih terperinci

PENERAPAN METODE HUFFMAN DALAM PEMAMPATAN CITRA DIGITAL

PENERAPAN METODE HUFFMAN DALAM PEMAMPATAN CITRA DIGITAL PENERPN MEODE HUFFMN DLM PEMMPN CIR DIGIL Edy Victor Haryanto Universitas Potensi Utama, Jl. K.L. os Sudarso Km. 6,5 No. 3 j Mulia Medan edy@potensi-utama.ac.id, edyvictor@gmail.com abstrak Citra adalah

Lebih terperinci

Perbandingan Kompresi Data Menggunakan Algoritma Huffman dan Algoritma DMC

Perbandingan Kompresi Data Menggunakan Algoritma Huffman dan Algoritma DMC Perbandingan Kompresi Data Menggunakan Algoritma Huffman dan Algoritma DMC Emil Fahmi Yakhya - 13509069 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung,

Lebih terperinci

BAB 3 METODOLOGI PENELITIAN. kepustakaan dan studi laboratorium, di mana penulis mempelajari teori-teori teknik

BAB 3 METODOLOGI PENELITIAN. kepustakaan dan studi laboratorium, di mana penulis mempelajari teori-teori teknik BAB 3 METODOLOGI PENELITIAN 3.1 Metode Penelitian Dalam penulisan ini metode penelitian yang digunakan adalah metode studi kepustakaan dan studi laboratorium, di mana penulis mempelajari teori-teori teknik

Lebih terperinci

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN UJI COBA 50 BAB IV HASIL DAN UJI COBA IV.1. Jalannya Uji Coba Uji coba dilakukan terhadap beberapa file dengan ektensi dan ukuran berbeda untuk melihat hasil kompresi dari aplikasi yang telah selesai dirancang.

Lebih terperinci

BAB 1 PENDAHULUAN 1.1 LATAR BELAKANG

BAB 1 PENDAHULUAN 1.1 LATAR BELAKANG BAB 1 PENDAHULUAN 1.1 LATAR BELAKANG Kemajuan teknologi memicu kebutuhan informasi yang semakin besar. Sayangnya kebutuhan informasi yang besar ini berdampak pada kebutuhan storage (media penyimpanan)

Lebih terperinci

PERANCANGAN SISTEM PENGAMANAN DAN KOMPRESI DATA TEKS DENGAN FIBONACCI ENCODING DAN ALGORITMA SHANNON-FANO SERTA ALGORITMA DEFLATE SKRIPSI

PERANCANGAN SISTEM PENGAMANAN DAN KOMPRESI DATA TEKS DENGAN FIBONACCI ENCODING DAN ALGORITMA SHANNON-FANO SERTA ALGORITMA DEFLATE SKRIPSI PERANCANGAN SISTEM PENGAMANAN DAN KOMPRESI DATA TEKS DENGAN FIBONACCI ENCODING DAN ALGORITMA SHANNON-FANO SERTA ALGORITMA DEFLATE SKRIPSI MUHAMMAD SOLIHIN 111421078 PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER

Lebih terperinci

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

BAB I PENDAHULUAN. Saat ini perkembangan teknologi berkembang sangat cepat. Penyimpanan BAB I PENDAHULUAN 1.1 Latar Belakang Saat ini perkembangan teknologi berkembang sangat cepat. Penyimpanan data-data penting dalam media kertas kini sudah mulai ditinggalkan dan beralih pada media lainnya

Lebih terperinci

IMPLEMENTASI KOMPRESI DATA TEXT MENGGUNAKAN HUFFMAN CODING

IMPLEMENTASI KOMPRESI DATA TEXT MENGGUNAKAN HUFFMAN CODING IMPLEMENTASI KOMPRESI DATA TEXT MENGGUNAKAN HUFFMAN CODING 1 Devie R. Suchendra, 2 Sandra Wulandari 1 Program Studi Sistem Informasi STMIK LPKIA 2 Program Studi Teknik Informatika STMIK LPKIA Jln. Soekarno

Lebih terperinci

Konstruksi Kode dengan Redundansi Minimum Menggunakan Huffman Coding dan Range Coding

Konstruksi Kode dengan Redundansi Minimum Menggunakan Huffman Coding dan Range Coding Konstruksi Kode dengan Redundansi Minimum Menggunakan Huffman Coding dan Range Coding Aris Feryanto (NIM: 357) Jurusan Teknik Informatika ITB, Bandung 432, email: aris_feryanto@yahoo.com Abstract Banyak

Lebih terperinci

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

Kompresi Data dengan Algoritma Huffman dan Perbandingannya dengan Algoritma LZW dan DMC Kompresi Data dengan Algoritma Huffman dan Perbandingannya dengan Algoritma LZW dan DMC Roy Indra Haryanto - 13508026 Fakultas Sekolah Teknik Elektro dan Informatika Program Studi Teknik Informatika Institut

Lebih terperinci

BAB I PENDAHULUAN. halaman khusus untuk pengaksesan dari handphone. Semakin baik informasi akan

BAB I PENDAHULUAN. halaman khusus untuk pengaksesan dari handphone. Semakin baik informasi akan BAB I PENDAHULUAN 1.1 Latar Belakang Di zaman sekarang ini kebutuhan akan informasi semakin diperlukan dan informasi tersebut harus dapat diakses dari mana saja dan kapan saja termasuk dari handphone.

Lebih terperinci

PROTOTIPE KOMPRESI LOSSLESS AUDIO CODEC MENGGUNAKAN ENTROPY ENCODING

PROTOTIPE KOMPRESI LOSSLESS AUDIO CODEC MENGGUNAKAN ENTROPY ENCODING PROTOTIPE KOMPRESI LOSSLESS AUDIO CODEC MENGGUNAKAN ENTROPY ENCODING Andreas Soegandi Jurusan Teknik Informatika, Fakultas Ilmu Komputer, Bina Nusantara University Jln. K.H. Syahdan No. 9, Palmerah, Jakarta

Lebih terperinci

Pemampatan Data dengan Kode Huffman pada Perangkat Lunak WinZip

Pemampatan Data dengan Kode Huffman pada Perangkat Lunak WinZip Pemampatan Data dengan Kode Huffman pada Perangkat Lunak WinZip Amelia Natalie (13509004) Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha

Lebih terperinci

ANALISIS KINERJA DAN IMPLEMENTASI ALGORITMA KOMPRESI ARITHMETIC CODING PADA FILE TEKS DAN CITRA DIGITAL SKRIPSI SARIFAH

ANALISIS KINERJA DAN IMPLEMENTASI ALGORITMA KOMPRESI ARITHMETIC CODING PADA FILE TEKS DAN CITRA DIGITAL SKRIPSI SARIFAH ANALISIS KINERJA DAN IMPLEMENTASI ALGORITMA KOMPRESI ARITHMETIC CODING PADA FILE TEKS DAN CITRA DIGITAL SKRIPSI SARIFAH 061401090 PROGRAM STUDI S1 ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA

Lebih terperinci

Definisi. Pohon adalah graf tak-berarah terhubung yang tidak mengandung sirkuit. pohon pohon bukan pohon bukan pohon

Definisi. Pohon adalah graf tak-berarah terhubung yang tidak mengandung sirkuit. pohon pohon bukan pohon bukan pohon 1 Definisi Pohon adalah graf tak-berarah terhubung yang tidak mengandung sirkuit a b a b a b a b c d c d c d c d e f e f e f e f pohon pohon bukan pohon bukan pohon 2 Hutan (forest) adalah - kumpulan pohon

Lebih terperinci

Optimasi Enkripsi Teks Menggunakan AES dengan Algoritma Kompresi Huffman

Optimasi Enkripsi Teks Menggunakan AES dengan Algoritma Kompresi Huffman Optimasi Enkripsi Teks Menggunakan AES dengan Algoritma Kompresi Huffman Edmund Ophie - 13512095 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl.

Lebih terperinci

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

BAB III METODOLOGI PENELITIAN. Penelitian ini dilakukan di Jurusan Ilmu Komputer Fakultas Matematika dan BAB III METODOLOGI PENELITIAN 3.1 Tempat dan Waktu Penelitian Penelitian ini dilakukan di Jurusan Ilmu Komputer Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Lampung. Waktu penelitian dilakukan

Lebih terperinci

STUDI PERBANDINGAN ALGORITMA HUFFMAN DAN SHANNON-FANO DALAM PEMAMPATAN FILE TEKS SKRIPSI NURFITA SARI HASIBUAN

STUDI PERBANDINGAN ALGORITMA HUFFMAN DAN SHANNON-FANO DALAM PEMAMPATAN FILE TEKS SKRIPSI NURFITA SARI HASIBUAN STUDI PERBANDINGAN ALGORITMA HUFFMAN DAN SHANNON-FANO DALAM PEMAMPATAN FILE TEKS SKRIPSI NURFITA SARI HASIBUAN 051411012 PROGRAM STUDI SARJANA MATEMATIKA DEPARTEMEN MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU

Lebih terperinci

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

SISTEM ANALISA PERBANDINGAN UKURAN HASIL KOMPRESI WINZIP DENGAN 7-ZIP MENGGUNAKAN METODE TEMPLATE MATCHING SISTEM ANALISA PERBANDINGAN UKURAN HASIL KOMPRESI WINZIP DENGAN 7-ZIP MENGGUNAKAN METODE TEMPLATE MATCHING Pandi Barita Simangunsong Dosen Tetap STMIK Budi Darma Medan Jl. Sisingamangaraja No. 338 Simpang

Lebih terperinci

Kompleksitas Algoritma dari Algoritma Pembentukan pohon Huffman Code Sederhana

Kompleksitas Algoritma dari Algoritma Pembentukan pohon Huffman Code Sederhana Kompleksitas Algoritma dari Algoritma Pembentukan pohon Huffman Code Sederhana Muhammad Fiqri Muthohar NIM : 13506084 1) 1) Jurusan Teknik Informatika ITB, Bandung, email: fiqri@arc.itb.ac.id Abstrak makalah

Lebih terperinci

Perbandingan Kompresi Data Dengan Algoritma Huffman Statik dan Adaptif

Perbandingan Kompresi Data Dengan Algoritma Huffman Statik dan Adaptif Perbandingan Kompresi Data Dengan Algoritma Huffman Statik dan Adaptif Timotius Triputra Safei (13509017) Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung,

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB LANDASAN TEORI.1 Pengertian File Teks Teks adalah kumpulan dari karakter karakter atau string yang menjadi satu kesatuan. Teks yang memuat banyak karakter didalamnya selalu menimbulkan masalah pada

Lebih terperinci

BAB III ANALISA DAN DESAIN SISTEM. Analisa masalah yang didapat dari penelitian ini adalah membuat data

BAB III ANALISA DAN DESAIN SISTEM. Analisa masalah yang didapat dari penelitian ini adalah membuat data BAB III ANALISA DAN DESAIN SISTEM III.1. Analisa Masalah Analisa masalah yang didapat dari penelitian ini adalah membuat data kompresi dengan menggunakan algoritma LZ77 dan Lempel Ziv Welch (LZW). Algoritma

Lebih terperinci

ANALISIS PERBANDINGAN ALGORITMA HUFFMAN DAN RUN LENGTH ENCODING PADA KOMPRESI FILE AUDIO SKRIPSI HELBERT SINAGA

ANALISIS PERBANDINGAN ALGORITMA HUFFMAN DAN RUN LENGTH ENCODING PADA KOMPRESI FILE AUDIO SKRIPSI HELBERT SINAGA ANALISIS PERBANDINGAN ALGORITMA HUFFMAN DAN RUN LENGTH ENCODING PADA KOMPRESI FILE AUDIO SKRIPSI HELBERT SINAGA 131421097 PROGRAM STUDI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS

Lebih terperinci

BAB 1 PENDAHULUAN Latar Belakang

BAB 1 PENDAHULUAN Latar Belakang BAB 1 PENDAHULUAN 1.1. Latar Belakang Di era komputerisasi ini sudah banyak dikembangkan aplikasi perangkat lunak maupun perangkat keras untuk menghasilkan citra dalam bentuk data. Sebut saja kamera digital,

Lebih terperinci

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang BAB 1 PENDAHULUAN 1.1 Latar Belakang Perkembangan teknologi informasi yang pesat telah menjadi peran yang sangat penting untuk pertukaran informasi yang cepat. Kecepatan pengiriman informasi dalam bentuk

Lebih terperinci

APLIKASI KOMPRESI TEKS SMS PADA MOBILE DEVICE BERBASIS ANDROID DENGAN MENGGUNAKAN ALGORITMA HUFFMAN KANONIK

APLIKASI KOMPRESI TEKS SMS PADA MOBILE DEVICE BERBASIS ANDROID DENGAN MENGGUNAKAN ALGORITMA HUFFMAN KANONIK APLIKASI KOMPRESI TEKS SMS PADA MOBILE DEVICE BERBASIS ANDROID DENGAN MENGGUNAKAN ALGORITMA HUFFMAN KANONIK Rozzi Kesuma Dinata (1), Muhammad Al hafizh Hasmar (2) (1)Program Studi Teknik Informatika Universitas

Lebih terperinci

TUGAS AKHIR IMPLEMENTASI ALGORITMA METODE HUFFMAN PADA KOMPRESI CITRA

TUGAS AKHIR IMPLEMENTASI ALGORITMA METODE HUFFMAN PADA KOMPRESI CITRA TUGAS AKHIR IMPLEMENTASI ALGORITMA METODE HUFFMAN PADA KOMPRESI CITRA Disusun sebagai Salah Satu Syarat Menyelesaikan Program Studi Strata 1 Jurusan Elektro Fakultas Teknik Universitas Muhammadiyah Surakarta

Lebih terperinci

BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah

BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah BAB 1 PENDAHULUAN 1.1 Latar Belakang Masalah Perkembangan teknologi informasi yang pesat telah menjadi peran yang sangat penting untuk pertukaran informasi yang cepat. Kecepatan pengiriman informasi dalam

Lebih terperinci

Kata kunci: pohon biner, metode Huffman, metode Kanonik Huffman, encoding, decoding.

Kata kunci: pohon biner, metode Huffman, metode Kanonik Huffman, encoding, decoding. ALGORITMA HUFFMAN KANONIK UNTUK KOMPRESI TEKS SMS Moch Ginanjar Busiri 13513041 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung

Lebih terperinci

Pohon. Bahan Kuliah IF2120 Matematika Diskrit. Program Studi Teknik Informatika ITB. Rinaldi M/IF2120 Matdis 1

Pohon. Bahan Kuliah IF2120 Matematika Diskrit. Program Studi Teknik Informatika ITB. Rinaldi M/IF2120 Matdis 1 Pohon Bahan Kuliah IF2120 Matematika Diskrit Program Studi Teknik Informatika ITB Rinaldi M/IF2120 Matdis 1 Definisi Pohon adalah graf tak-berarah terhubung yang tidak mengandung sirkuit a b a b a b a

Lebih terperinci

BAB I PENDAHULUAN. oleh Allah swt di dalam Al Qur annya pada Surah At-Tin Ayat 4, yaitu: bentuk yang sebaik-baiknya. (QS. At-Tin:4).

BAB I PENDAHULUAN. oleh Allah swt di dalam Al Qur annya pada Surah At-Tin Ayat 4, yaitu: bentuk yang sebaik-baiknya. (QS. At-Tin:4). BAB I PENDAHULUAN 1.1. Latar Belakang Berkaitan dengan pencitraan maka manusia adalah citra terbaik yang telah diciptakan oleh Allah swt. Hal ini sebagaimana dinyatakan oleh Allah swt di dalam Al Qur annya

Lebih terperinci

JURNAL IT STMIK HANDAYANI

JURNAL IT STMIK HANDAYANI VOLUME 5, DESEMBER 04 Sitti Zuhriyah Sistem Komputer, STMIK Handayani Makassar zuhriyahsompa@yahoo.com Abstrak Di dalam dunia komputer, semua informasi, baik berupa tulisan, gambar ataupun suara semuanya

Lebih terperinci

Penggunaan Kode Huffman dan Kode Aritmatik pada Entropy Coding

Penggunaan Kode Huffman dan Kode Aritmatik pada Entropy Coding Penggunaan Kode Huffman dan Kode Aritmatik pada Entropy Coding Wisnu Adityo NIM:13506029 Program Studi Teknik Informatika ITB, Jalan Ganesha no 10 Bandung, email : raydex@students.itb.ac.id Abstrak Pada

Lebih terperinci

BAB 1 PENDAHULUAN 1-1

BAB 1 PENDAHULUAN 1-1 BAB 1 PENDAHULUAN Bab ini berisi penjelasan mengenai latar belakang tugas akhir, identifikasi masalah, tujuan tugas akhir, metodologi tugas akhir dan sistematika penulisan tugas akhir. 1.1 Latar Belakang

Lebih terperinci

BAB 1 PENDAHULUAN. Dalam penggunaan sehari-hari data berarti suatu pernyataan yang diterima secara apa

BAB 1 PENDAHULUAN. Dalam penggunaan sehari-hari data berarti suatu pernyataan yang diterima secara apa BAB 1 PENDAHULUAN 1.1. Latar Belakang Masalah Data adalah bentuk jamak dari datum yang berarti sesuatu yang diberikan. Dalam penggunaan sehari-hari data berarti suatu pernyataan yang diterima secara apa

Lebih terperinci

BAB 2 TINJAUAN PUSTAKA

BAB 2 TINJAUAN PUSTAKA 5 BAB 2 TINJAUAN PUSTAKA Setelah membaca bab ini maka pembaca akan memahami pengertian tentang kompresi, pengolahan citra, kompresi data, Teknik kompresi, Kompresi citra. 2.1 Defenisi Data Data adalah

Lebih terperinci

IMPLEMENTASI ALGORITMA SHANNON-FANO PADA KOMPRESI AUDIO SKRIPSI MUTIARA NOVELIA RAJAGUKGUK

IMPLEMENTASI ALGORITMA SHANNON-FANO PADA KOMPRESI AUDIO SKRIPSI MUTIARA NOVELIA RAJAGUKGUK IMPLEMENTASI ALGORITMA SHANNON-FANO PADA KOMPRESI AUDIO SKRIPSI MUTIARA NOVELIA RAJAGUKGUK 081402068 PROGRAM STUDI S1 TEKNOLOGI INFORMASI FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA

Lebih terperinci

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

BAB II LANDASAN TEORI. Kompresi data atau pemampatan data adalah suatu proses pengubahan BAB II LANDASAN TEORI 2.1 Kompresi Kompresi data atau pemampatan data adalah suatu proses pengubahan sekumpulan data menjadi suatu bentuk kode untuk menghemat kebutuhan tempat penyimpanan data dan waktu

Lebih terperinci

DEFINISI. Pohon adalah graf tak-berarah terhubung yang tidak mengandung sirkuit. pohon pohon bukan pohon bukan pohon 2

DEFINISI. Pohon adalah graf tak-berarah terhubung yang tidak mengandung sirkuit. pohon pohon bukan pohon bukan pohon 2 1 POHON DEFINISI Pohon adalah graf tak-berarah terhubung yang tidak mengandung sirkuit a b a b a b a b c d c d c d c d e f e f e f e f pohon pohon bukan pohon bukan pohon 2 Hutan (forest) adalah - kumpulan

Lebih terperinci

ANALISA KODE HUFFMAN UNTUK KOMPRESI DATA TEKS ABSTRAK

ANALISA KODE HUFFMAN UNTUK KOMPRESI DATA TEKS ABSTRAK ANALISA KODE HUFFMAN UNTUK KOMPRESI DATA TEKS Timothy John Pattiasina, ST., M.Kom. ABSTRAK Huffman Algorithm adalah sa1ah satu algoritma kompresi tertua yang disusun oleh David Huffman pada tahun 1952.

Lebih terperinci

[TTG4J3] KODING DAN KOMPRESI. Oleh : Ledya Novamizanti Astri Novianty. Prodi S1 Teknik Telekomunikasi Fakultas Teknik Elektro Universitas Telkom

[TTG4J3] KODING DAN KOMPRESI. Oleh : Ledya Novamizanti Astri Novianty. Prodi S1 Teknik Telekomunikasi Fakultas Teknik Elektro Universitas Telkom [TTG4J3] KODING DAN KOMPRESI Oleh : Ledya Novamizanti Astri Novianty Prodi S1 Teknik Telekomunikasi Fakultas Teknik Elektro Universitas Telkom Optimal code pertama yang dikembangkan oleh David Huffman

Lebih terperinci

PEMBUATAN APLIKASI KOMPRESI FILE WAVE DENGAN METODE HUFFMAN

PEMBUATAN APLIKASI KOMPRESI FILE WAVE DENGAN METODE HUFFMAN PEMBUATAN APLIKASI KOMPRESI FILE WAVE DENGAN METODE HUFFMAN Oleh : Erwin Ganda Saputra 41508120123 PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS ILMU KOMPUTER UNIVERSITAS MERCU BUANA JAKARTA 201 PEMBUATAN

Lebih terperinci

BAB 1 PENDAHULUAN. tertulis, audio dan video. Objek-objek tersebut yang sebelumnya hanya bisa

BAB 1 PENDAHULUAN. tertulis, audio dan video. Objek-objek tersebut yang sebelumnya hanya bisa BAB 1 PENDAHULUAN 1.1 Latar Belakang Pada zaman ini, teknologi sudah mengalami perkembangan pesat, dan telah mengubah standar hidup masyarakat secara keseluruhan. Salah satu bukti perkembangan teknologi

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB LANDASAN TEORI. Pengertian File Teks File teks merupakan file yang berisi informasi-informasi dalam bentuk teks. Data yang berasal dari dokumen pengolah kata, angka yang digunakan dalam perhitungan,

Lebih terperinci