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 adanya. Pernyataan ini adalah hasil pengukuran atau pengamatan suatu variabel yang bentuknya dapat berupa angka, kata-kata atau citra. Data yang telah melalui proses dikenal dengan istilah informasi. Tidak dapat disangkal bahwa informasi bagi manusia memiliki nilai yang sangat tinggi. Oleh sebab itu timbul suatu pemikiran bahwa informasi yang telah ada dan yang akan datang harus selalu di simpan sehingga penyimpanan data yang terus menerus akan mengakibatkan penumpukan data yang besarnya tak terhingga. Kompresi data diciptakan karena alasan berikut. Pertama, manusia lebih suka mengakumulasikan data daripada membuang data-data yang lama, tidak peduli seberapa besar kapasitas media penyimpanannya, cepat atau lambat data kapasitas tersebut akan overflow. Oleh karena alasan tersebut, kompresi data dapat bermanfaat pada situasi semacam ini, karena dapat menunda situasi overflow yang tidak dapat dihindarkan. Kedua, Manusia tidak ingin menunggu lama ketika sedang mengirim file melalui media apapun dalam hal ini adalah internet. Dalam dunia kompresi data dikenal dua tipe jenis kompresi data, yaitu Lossy dan Lossless. Jenis kompresi lossy lebih banyak digunakan pada tipe data suara, video, atau gambar. Karena tipe kompresi lossy ini tidak dapat di dekompresi menjadi data aslinya,
2 oleh karena itu tipe kompresi ini tidak cocok untuk data-data yang kritikal seperti data tekstual. Sebaliknya tipe kompresi lossless, pada data yang telah di dekompresi akan menghasilkan data hasil yang sama persis dengan data sumbernya. Tipe kompresi lossless dikembangkan sejak tahun 1977 oleh peneliti yang bernama Abaraham Lempel dan Jacob Ziv dengan algoritmanya yang dikenal dengan LZ (Lempel Ziv). Hingga saat penulisan ini dibuat, sudah banyak tipe kompresi lossless yang didasarkan oleh konsep LZ ini. Antara lain LZ, LZ77, LZ78, LZW dan LZMA. Diantara
algoritma-algoritma
tersebut,
masing-masing
memilik
kelebihan dan
kekurangan sebagai berikut. Tabel 1.1 Tabel perbandingan algoritma kompresi data lossless.
Algoritma LZ
Konsep Dictionary methods dengan menggunakan inputan sebagai dictionary yang akan digunakan untuk mencari pola string yang sama. Dan menyimpan data yang telah dikompresi dalam bentuk indeks.
LZ77
Dictionary methods dengan menggunakan search buffer sebagai pencatat input dictionary dan look ahead buffer sebagai pembanding dengan search bufferi dikenal dengan teknik sliding windows. Dan menyimpan data terkompresi dalam bentuk token.
LZ78
Dictionary methods, dengan tidak menggunakan search buffer, look ahead buffer atau sliding windows
Kelebihan Kekurangan Penerapan Input akan dibaca algoritma mudah berulang-ulang dari dilakukan (simple posisi n0 hingga dictionary). total input n* sehingga waktu proses kompresi dan dekompresi akan sangat lama untuk input yang panjang. Proses sedikit lebih Token terdiri dari cepat dibandingkan struktur (offset dengan algoritma [4bit], length[4bit], LZ. next symbol [1byte] ). Simbol yang tidak dikompresi akan disimpan dalam struktur tersebut, sehingga memakan memori sebesar 24bit untuk satu simbol saja. Struktur data yang Dictionary yang terkompresi lebih digunakan adalah hemat jika keseluruhan input dibandingkan data. Sehingga
3 sekalipun. Dan menyimpan data terkompresi dalam bentuk tokeni yang berbeda. LZW Variasi dari algoritma (Lempel LZ78. Letak perbedaannya Ziv Welch) ada pada struktur token yang hanya menyimpan pointer ke dictionary. Dimana dictionary hanya menyimpan indeks dan simbolnya.
dengan LZ77.
LZMA
Dengan konsep probabilitas prediksi, diharapkan algoritma ini bisa menutupi kekurangan pada algoritma LZ77 dan LZ78 dimana kedua algoritma tersebut masih menggunakan windows yang akan membaca input data terus menerus. Proses kompresi dekompresi lebih cepat dan rasio kompresinya lebih tinggi karena algoritma ini menyimpan struktur data yang dikompresi dengan teknik yang dikenal dengan RFC 1951.
Variasi dari algoritma LZ77 dengan konsep Markov Chain sebagai alat memprediksi susunan simbol yang sama untuk state berikutnya pada input data.
Proses kompresi dan dekompresi sedikit lebih cepat dibandingkan LZ78.
Sumber: Data Compression, David Solomon (2002).
dictionary sangat tergantung pada jumlah memori. Pada kondisi input yang panjang, dictionary yang terbentuk lebih banyak dibandingkan LZ77 atau LZ78. Sehingga memori yang cukup sangat dibutuhkan. Penerapan lebih kompleks dan membutuhkan sumber daya perangkat yang cukup baik serta update.
4 Dari tabel diatas, LZMA dapat menutupi kelemahan LZ77 dengan cara antisipasi pada saat melakukan encoding dengan menggunakan nilai probabilitas markov chain serta memprediksi urutan simbol karakter berikutnya pada saat decoding, sehingga diharapkan algoritma ini akan mempunyai rasio yang lebih tinggi dan proses kompresi dan dekompresi yang lebih cepat. Penulis memiliki ketertarikan dalam penerapan algoritma LZMA ke sebuah program aplikasi yang dapat berguna bagi perusahaan yang mementingkan kecepatan dalam mengirimkan data melalui media internet.
1.2.
Ruang Lingkup Masalah yang akan dibahas di dalam skripsi ini dibatasi pada perancangan
sebuah program aplikasi stand-alone basis command line application dengan menerapkan algoritma LZMA. Data yang akan dikompresi adalah data dokumen berbasis teks. Program aplikasi ini akan dikembangkan dengan memanfaatkan teknologi .NET dan menggunakan bahasa pemograman C# ( C sharp ). Komponen yang terlibat dalam pembuatan program aplikasi ini meliputi sistem operasi, dan bahasa pemograman teknologi .NET . Perancangan program aplikasi ini menggunakan sistem operasi Microsoft Windows basis NT (XP, 2000, 2003). Bahasa pemograman yang digunakan adalah C#.
5 1.3.
Tujuan dan Manfaat Penulis juga berharap bahwa hasil penulisan perancangan ini akan memberikan
manfaat tentunya bukan bagi penulis sendiri tapi bagi siapa saja yang bergerak di bidang keamanan data dan kompresi data. Oleh karena itu, penulis merumuskan tujuan dan manfaat penulisan ini sebagai berikut :
1.3.1. Tujuan Tujuan dari perancangan ini adalah untuk mendesain sistem pengiriman data melalui media internet dengan tujuan mempercepat waktu transmisi pengiriman data. 1.3.2. Manfaat 1.
Bagi penulis Dapat menambah pengetahuan dan pengalaman dalam menerapkan teori-
teori yang selama ini diperoleh oleh penulis, serta diharapkan dapat menemukan metode kompresi data yang baru. 2.
Bagi pihak lain a. Dapat digunakan sebagai solusi keamanan pengiriman data yang berukuran besar melalui media internet. b. Dapat digunakan sebagai bahan informasi untuk penelitian lebih lanjut mengenai algoritma yang penulis gunakan.
1.4
Metodologi Metode yang digunakan dalam penulisan skripsi adalah metode perancangan.
Dalam merancang program aplikasi ini, perancangan dibagi ke dalam beberapa tahap yang terdiri dari perancangan modul dan perancangan diagram alir data.