• Tidak ada hasil yang ditemukan

BAB 2 LANDASAN TEORI 2.1. Kompresi Data Kompresi data di dalam konteks ilmu komputer adalah merupakan ilmu atau seni dalam merepresentasikan informasi yang terdapat pada data ke dalam suatu bentuk yang lebih padat (kecil) (Pu, 2006). Perkembangan komputer

N/A
N/A
Protected

Academic year: 2019

Membagikan "BAB 2 LANDASAN TEORI 2.1. Kompresi Data Kompresi data di dalam konteks ilmu komputer adalah merupakan ilmu atau seni dalam merepresentasikan informasi yang terdapat pada data ke dalam suatu bentuk yang lebih padat (kecil) (Pu, 2006). Perkembangan komputer"

Copied!
13
0
0

Teks penuh

(1)

BAB 2

LANDASAN TEORI

2.1. Kompresi Data

Kompresi data di dalam konteks ilmu komputer adalah merupakan ilmu atau seni dalam merepresentasikan informasi yang terdapat pada data ke dalam suatu bentuk yang lebih padat (kecil) (Pu, 2006). Perkembangan komputer dan multimedia mengakibatkan kompresi data menjadi hal yang sangat penting dan berguna dalam teknologi pada saat sekarang ini.

Solomon (2007) mengemukakan definisi kompresi data adalah proses yang mengkonversi sebuah masukan berupa aliran data (the source atau data asli mentah) menjadi suatu aliran data lain (the Output, aliran bit, atau aliran sudah dikompres) yang memiliki ukuran lebih kecil. Aliran data (stream) dapat berupa sebuah file atau

buffer pada memori. Data dalam konteks kompresi data melingkupi segala bentuk digital dari informasi, yang dapat diproses oleh sebuah program komputer. Bentuk dari informasi tersebut secara luas dapat diklasifikasikan sebagai teks, suara, gambar dan video.

Terdapat banyak perangkat lunak kompresi data yang sering digunakan oleh

(2)

2.1.1. Teknik Kompresi Data

Berdasarkan kemungkinan data yang telah dikompresi dapat dikembalikan ke data sebelum dikompresi atau data aslinya, teknik kompresi data dikelompokkan menjadi dua bagian yaitu kompresi data lossless dan kompresi data Lossy (Pu, 2006).

1. Kompresi Data Lossless

Kompresi data lossless adalah teknik kompresi data dimana data yang telah dikompresi dapat dikembalikan ke data aslinya dengan tidak mengurangi informasi yang ada pada data tersebut. Dalam teknik kompresi ini, pada saat proses kompresi dihasilkan sebuah data yang berbeda dengan data aslinya. Karena setiap bit-bit yang terdapat pada data di-encode sehingga dihasilkan bit-bit yang baru yang lebih pendek. Data tersebut dikembalikan ke data aslinya (data sebelum dikompresi) pada saat proses dekompresi. Teknik kompresi lossless digunakan pada data yang tergolong penting sehingga tidak boleh ada banyak atau sebagian informasi yang hilang. Seperti misalnya pada file teks, jika terdapat sedikit saja perubahan pada data itu maka akan sangat mudah kelihatan. Contoh algoritma

lossless pada kompresi data adalah Arithmetic Coding, Huffman Coding, dan lain-lain. Teknik kompresi lossless dapat diGambarkan seperti pada Gambar 2.1.

Gambar 2.1 Kompresi Lossless (Pu, 2006)

2. Kompresi Data Lossy

(3)

sama seperti data aslinya hanya saja ada perubahan kerapatan ataupun resolusi pada data tersebut. Oleh karena itu sangat kecil kemungkinan dan bahkan tidak akan pernah bisa data yang telah dikompresi dengan teknik kompresi Lossy dapat dikembalikan seperti data sebelum dikompresi atau data aslinya. Perubahan yang terjadi pada data pada saat proses kompresi tidaklah terlalu kelihatan. Teknik kompresi ini biasanya digunakan pada data berupa gambar, suara dan video. Karena pada data tersebutlah kehilangan akan informasi yang detail itu mungkin tidak dapat dirasakan oleh sistem kerja indera penglihatan dan pendengaran manusia. Contoh algoritma kompresi Lossy adalah Fractal Compression, Wavelet

Compression, Wyner-Ziv Coding (WZC), dan lain-lain. Teknik kompresi Lossy

dapat digambarkan seperti pada Gambar 2.2.

Gambar 2.2 Kompresi Lossy (Pu, 2006)

2.1.2. Konsep Kompresi Data

Suatu metode pada kompresi data akan menghasilkan bit-bit (satuan terkecil pembentuk data) data baru yang lebih pendek dibandingkan oleh bit-bit data sebelum

(4)

Gambar 2.3 Proses Kompresi dan Dekompresi (Pu, 2006)

Setiap metode atau algoritma pada kompresi data memiliki fungsi encoding

dan decoding. Pada saat mengimplementasikannya, implementorlah yang menentukan bagian Encoder dan Decoder yang menentukan aksi encoding dan decoding yang dipilih dan diterapkan terhadap suatu data.

Sebelum melakukan proses encoding, bit data hasil kompresi tadi diperiksa dahulu apakah jumlah total bit-bit tersebut merupakan kelipatan delapan (habis dibagi delapan). Karena di dalam komputer satu karakter direpresentasikan oleh bilangan ASCII (American Standard Code For Information Interchange) sebanyak delapan bit dalam bilangan biner. Jika ternyata jumlah bit-bit data tersebut bukan merupakan kelipatan delapan. Maka dibentuk variabel baru sebagai penambahan ke bit-bit data itu agar bit-bit data tersebut habis dibagi delapan. Variabel ini adalah padding dan

flagging.

1. Padding

(5)

2. Flagging

Flagging adalah penambahan bilangan biner sepanjang delapan bit setelah

padding dimana flagging ini adalah sejumlah bilangan yang memberikan sebuah tanda bahwa terdapat n buah padding di dalam bit-bit data hasil dari kompresi. Penambahan flagging ini dimaksudkan untuk mempermudah dalam membaca bit-bit data hasil kompresi pada saat proses dekompresi. Contoh misalkan bit-bit-bit-bit data yang telah diberikan padding adalah 11001011010100011000011010000000. Karena terdapat 7 bit penambahan padding maka flag nya adalah bilangan biner dari 7 dengan panjang 8 bit yaitu 00000111. Sehingga bit-bit datanya menjadi 1100101101010001100001101000000000000111 setelah diberikan flagging.

2.1.3. Pengukuran Kinerja Kompresi Data

Pada suatu teknik yang digunakan dalam proses kompresi data terdapat beberapa faktor atau variabel yang biasa digunakan untuk mengukur kualitas dari suatu teknik kompresi data tersebut, yaitu:

1. Ratio of compression (Rc)

Ratio of compression (Rc) adalah perbandingan antara ukuran data sebelum dikompresi dengan ukuran data setelah dikompresi.

𝑹𝒄

=

𝒖𝒌𝒖𝒓𝒂𝒏𝒅𝒂𝒕𝒂𝒔𝒆𝒃𝒆𝒍𝒖𝒎𝒅𝒊𝒌𝒐𝒎𝒑𝒓𝒆𝒔𝒊

𝒖𝒌𝒖𝒓𝒂𝒏𝒅𝒂𝒕𝒂𝒔𝒆𝒕𝒆𝒍𝒂𝒉𝒅𝒊𝒌𝒐𝒎𝒑𝒓𝒆𝒔𝒊 (Salomon dan Motta, 2010)

Misalkan didapat sebuah nilai Ratio of compression sebesar 2.75. Itu berarti besar data sebelum kompresi adalah 2.75 kali lipat dari besar data setelah dikompresi.

2. Compression ratio (Cr)

(6)

𝑪𝒓

=

𝒖𝒌𝒖𝒓𝒂𝒏𝒅𝒂𝒕𝒂𝒔𝒆𝒕𝒆𝒍𝒂𝒉𝒅𝒊𝒌𝒐𝒎𝒑𝒓𝒆𝒔𝒊

𝒖𝒌𝒖𝒓𝒂𝒏𝒅𝒂𝒕𝒂𝒔𝒆𝒃𝒆𝒍𝒖𝒎𝒅𝒊𝒌𝒐𝒎𝒑𝒓𝒆𝒔𝒊

𝒙

𝟏𝟎𝟎

%

(Salomon dan

Motta, 2010)

Misalkan didapat sebuah nilai Compression ratio sebesar 35%. Itu berarti setelah dikompresi ukuran data adalah 35% dari data sebelum dikompresi.

3. Redundancy (Rd)

Redundancy (Rd) adalah kelebihan yang terdapat di dalam data sebelum dikompresi. Jadi setelah data dikompresi dapat dihitung Redundancy data yaitu persentasi dari hasil selisih antara ukuran data sebelum dikompresi dengan data setelah dikompresi.

𝑹𝒅

=

𝟏𝟎𝟎

%

− 𝑪𝒓

(Salomon dan Motta, 2010)

Misalkan didapat sebuah nilai Redundancy sebesar 14%. Itu berarti besarnya kelebihan data sebelum dikompresi adalah 14%.

4. Waktu Kompresi dan Dekompresi

Waktu kompresi dan dekompresi adalah waktu yang dibutuhkan oleh sebuah sistem untuk melakukan proses kompresi dan dekompresi dari mulai pembacaan data hingga proses encoding pada data tersebut. Semakin kecil waktu yang

diperoleh maka semakin efisien metode yang digunakan dalam proses kompresi dan dekompresi itu.

2.2. Punctured Elias Codes

Punctured Elias Codes untuk bilangan integer dirancang oleh Peter Fenwick dalam sebuah percobaan untuk meningkatkan performa the Burrows–Wheeler transform. Istilah Punctured datang dari tempat pengawasan eror kode-kode (ECC). ECC terdiri dari data yang asli ditambah sejumlah bilangan dari check bits. Jika beberapa check

bits dihilangkan, untuk mempersingkat serangkaian kode itu, hasil kode ditujukan sebagai Punctured (Salomon, 2007).Cara untuk membangun kode Punctured Elias

(7)

1. Ambil bilangan biner dari n,

2. Reversed (balikkan bit-bitnya), dan siapkan flag untuk menunjukkan jumlah bit yang bernilai 1 di dalam n.

3. Untuk setiap bit 1 di dalam n kita siapkan flag dari 1 dan akhiri flag dengan 0.

4. Gabungkan flag dengan bilangan biner yang sudah dibalikkan (reversed).

Kode Punctured ini dinamakan kode P1 dan kode ini dimulai dengan 1(paling sedikit terdapat satu flag, kecuali untuk kode P1 dengan n=0) dan juga diakhiri dengan 1 (karena n yang asli , yang bit MSB adalah 1, telah dibalikkan). Setelah itu kita dapat membangun kode Punctured yang lain yaitu P2 = P1(n+1) dengan menghilangkan bit 1 yang paling besar. Berikut adalah contoh beberapa bilangan untuk kode Punctured

Elias P1 dan P2 (Salomon, 2007).

Tabel 2.1 Tabel Punctured Elias Codes

n Binary of n Reversed flag Flag | Reversed P1 P2

0 0 - - - 0 01

1 1 1 10 10|1 101 001

2 10 01 10 10|01 1001 1011

3 11 11 110 110|11 11011 0001

4 100 001 10 10|001 10001 10101

5 101 101 110 110|101 110101 10011

6 110 011 110 110|011 110011 1101111

7 111 111 1110 1110|111 1110111 00001

8 1000 0001 10 10|0001 100001 101001

2.3. File Text

(8)

Masukan dan keluaran data teks direpresentasikan sebagai set karakter atau sistem kode yang dikenal oleh sistem komputer. Ada tiga macam set karakter yang umum digunakan untuk masukan dan keluaran pada komputer, yaitu ASCII, EBCDIC, dan Unicode. ASCII (American Standard Code for Information Interchange) merupakan suatu standar internasional dalam kode huruf dan simbol seperti Hex dan

Unicode tetapi ASCII lebih bersifat universal. ASCII digunakan oleh komputer dan alat komunikasi lain untuk menunjukkan teks. Kode ASCII memiliki komposisi bilangan biner sebanyak 8 bit, dimulai dari 00000000 hingga 11111111. Total kombinasi yang dihasilkan sebanyak 256, dimulai dari kode 0 hingga 255 dalam sistem bilangan desimal. EBCDIC (Extended Binary Code Decimal Interchange

Code) merupakan set karakter yang diciptakan oleh komputer merk IBM. EBCDIC terdiri dari 256 karakter yang masing-masing berukuran 8 bit. Adanya keterbatasan pada kode ASCII dan EBCDIC, dibuat standar kode internasional baru yang merupakan kode 16 bit yang disebut Unicode. Unicode adalah suatu standar industri yang dirancang untuk dimanipulasi secara konsisten oleh komputer (Sudewa, 2003).

2.3.1. Format Teks

Secara umum, Format data teks dibagi menjadi dua bagian, yaitu (Herry et al, 2005,):

1. Teks sederhana (plain Text)

Format data teks (*.txt) merupakan contoh Format teks jenis ini yang paling populer.

2. Teks terformat (formatted Text)

Merupakan teks yang terformat dan mengandung styles. Format data dokumen Microsoft Word (*.doc) merupakan contoh format teks jenis ini yang paling populer.

Contoh format data teks di atas beserta perangkat lunak yang biasa digunakan di antaranya adalah (Herry et al, 2005):

1. Format data teks (*.txt)

(9)

tanda petik, dan sebagainya. Satu huruf, angka, karakter kontrol atau simbol pada arsip teks memakan tempat satu byte. Berbeda dengan jenis teks terformat yang satu huruf saja dapat memakan tempat beberapa byte untuk menyimpan format dari huruf tersebut seperti font, ukuran, tebal atau tidak dan sebagainya. Kelebihan dari format data teks ini adalah ukuran datanya yang kecil karena tiadanya fitur untuk memformat tampilan teks. Saat ini perangkat lunak yang paling banyak digunakan untuk memanipulasi format data ini adalah Notepad.

2. Format data dokumen (*.doc)

Doc merupakan ekstensi arsip dokumen perangkat lunak Microsoft Word yang paling banyak digunakan dalam menulis laporan, makalah dan sebagainya. Doc merupakan jenis teks terformat yang tidak hanya dapat mengatur tampilan teks seperti styles (font, ukuran huruf, dan sebagainya), namun juga dapat menyisipkan gambar. Kekurangan format teks dokumen ini terletak pada ukuran datanya yang besar.

3. Hyper Text Markup Language (*.htm atau *.html)

Merupakan format teks standard untuk tampilan dokumen web.

4. Rich Text Format (*.rtf)

Format teks ini dikembangkan oleh Microsoft yang dapat dibaca oleh berbagai macam platform, seperti Windows, Linux, Mac OS dan sebagainya.

2.4. Bahasa Pemrograman Java

Java adalah suatu bahasa pemrograman yang bersifat Open source yang diciptakan atau dirancang oleh salah satu pemrogram yang bekerja di Sun Microsystem, yang ketika itu ditugaskan untuk memimpin proyek dalam menciptakan program yang bergunauntuk mengendalikan perangkat elektronik rumah tangga yang bersifat

Multiplatform (Kadir, 2005).

(10)

PadaTahun 1996, Sun Microsystem secara resmi merilis versi awal Java yang kemudian terus berkembang hingga muncul JDK1.1 (Java Development Kit versi1.1). Perkembangan terus dilakukan hingga muncul versi baru yang disebut Java 2. Perubahan utama antara versi sebelumnya adalah adanya Swing yang merupakan teknologi Graphical User Interface (GUI) yang mampu menghasilkan aplikasi desktop yang benar- benar baik. Sedangkan dalam penelitian ini menggunakan J DK v e r s i 1 . 7 dimana versi ini menyediakan lingkungan pengembangan yang kaya fitur, stabil, aman dan mendukung konektivitas basis data, rancangan antarmuka pemakai, masukan/keluaran, dan pemrograman jaringan.

2.5. UML (Unified Modelling Language)

UML (Unified Modeling Language) adalah bahasa yang banyak digunakan sebagai standar pemodelan di dunia dalam memodelkan sebuah sistem dengan menggambarkan relasi antar objek dalam lingkungan rekayasa perangkat lunak (Whitten and Bentley, 2007).

UML menggabungkan teknik dari pemodelan data, pemodelan bisnis (alur kerja), komponen dan segala hal yang terlibat di dalam proses. UML 2.2 mempunyai

14 tipe diagram yang dibagi di dalam 2 kategori yaitu yang menampilkan informasi struktural, dan yang menampilkan behavior atau perilaku software. Dalam penelitian ini, hanya akan menggunakan 4 jenis UML di antaranya adalah Use Case Diagram,

Activity Diagram, Sequence Diagram dan Class Diagram.

2.5.1. Use Case Diagram

Use case diagram adalah teknik yang digunakan untuk menampilkan functional requirements dari sebuah sistem. Use case diagram menampilkan bagaimana software

akan bekerja dari sudut pandang user (bukan Developer).

Simbol dasar yang akan digunakan pada use case diagram yaitu: 1. Use case

(11)

2. Actor.

Simbol yang digunakan untuk mewakili seseorang/sesuatu (misal: organisasi, sistem yang lain, dll) yang berinteraksi dengan sistem.

3. Association.

Kedua simbol di atas dihubungkan dengan garis yang disebut garis asosiasi.

Di dalam use case juga disertakan boundary yang menunjukkan batasan antara sistem dengan luar sistem.

2.5.2. Activity Diagram

Activity diagram menggambarkan alur dari proses yang terjadi dalam sebuah use case. Activity diagram juga digunakan untuk menggambarkan logika dari sebuah sistem.

Notasi/simbol yang akan digunakan di dalam Activity diagram yaitu:

1.Initial node.

Lingkaran hitam penuh yang menggambarkan awal dari proses.

2.Actions.

Persegi panjang dengan sudut lengkung yang menampilkan langkah/step dari proses.

3.Flow.

Panah yang menampilkan alur dari actions.

4. Desicion.

Belah ketupat (diamond) dengan satu panah masuk dan dua panah keluar, menampilkan kondisi.

5. Merge.

Belah ketupat (diamond) dengan banyak panah masuk dan satu panah keluar, menggabungkan alur program yang sebelumnya terpisah dengan sebuah kondisi.

6. Fork.

Baris hitam dengan satu panah masuk dan dua atau lebih panah keluar, menunjukkan sebuah proses yang terjadi secara bersamaan.

(12)

Baris hitam dengan dua atau lebih anak panah masuk dan satu anak panah keluar. Menggambarkan proses yang terjadi secara paralel telah selesai. Seluruh proses yang terjadi ketika fork harus selesai sebelum melanjutkan ke flow berikutnya.

8. Activity final.

Lingkaran hitam penuh di dalam lingkaran hitam lain yang kosong, menggambarkan proses selesai.

2.5.3. Sequence Diagram

Sequence diagram menggambarkan bagaimana objek saling berinteraksi melalui

message dalam eksekusi operation, untuk satu buah use case. Diagram ini mengilustrasikan bagaimana message dikirim dan diterima diantara objek, dan di urutan yang mana. Sequence membantu untuk menggambarkan data yang masuk dan keluar sistem.

Notasi/simbol yang akan digunakan di dalam Sequence diagram yaitu: 1.Actor.

Seseorang atau sesuatu yang berinteraksi dengan sistem. Sama seperti pada use case.

2.System.

Kotak yang menunjukkan sebuah sistem sebagai ‘black box’ atau secara keseluruhan.

3. Lifelines.

Garis putus vertikal di bawah aktor dan sistem, menunjukkan berjalannya sistem.

4. Activation bars.

Garis membentuk kotak panjang di bawah lifelines, menunjukkan waktu ketika objek aktif di dalam interaksi.

5. Input messages.

Garis panah horizontal dari aktor ke sistem yang menunjukkan Input. Cara penulisannya adalah diawali dengan huruf kecil, dan setiap kata setelahnya tetap digabung (tanpa spasi) namun diawali huruf kapital. Jika mengandung parameter, ditulis dengan cara yang sama, dan setiap parameter diawali dengan koma.

6. Output messages.

(13)

7. Receiver actor.

Aktor lain di luar sistem yang menerima message dari sistem juga dapat diikutsertakan.

8. Frame.

Sebuah kotak yang dapat menutup satu atau lebih message untuk membagi sequence.

Frame ini dapat menunjukkan loop, pilihan lain.

2.5.4. Class Diagram

Class diagram menggambarkan struktur objek-objek dari class yang tersusun di dalam sistem, termasuk di dalamnya atribut dan operasi yang dijalankan, serta relasi di antara objek-objek/class tersebut. Digunakan dalam pemodelan konseptual dan penerjemahan ke bentuk kode.

Di dalam diagram, class ditampilkan dengan kotak berisi tiga bagian:

1.Bagian atas berisi nama dari class. Ditulis dengan huruf tebal, rata tengah dan huru pertama kapital

2.Bagian tengah berisi atribut dari class. Ditulis dengan rata kiri dan huruf pertama kecil.

3.Bagian bawah berisi method atau operation dari class. Ditulis dengan rata kiri dan

Gambar

Gambar 2.1 Kompresi Lossless (Pu, 2006)
Gambar 2.2 Kompresi Lossy (Pu, 2006)
Gambar 2.3 Proses Kompresi dan Dekompresi (Pu, 2006)
Tabel 2.1 Tabel Punctured Elias Codes

Referensi

Dokumen terkait

[r]

Kasus SP3 Illog Riau tahun 2008 dan lima terpidana korupsi kehutanan di Siak dan Pelalawan menggambarkan dengan jelas korporasi adalah actor utama pemberi suap agar izin larangan

Penelitian Eksperimental pada Kelinci yang Dilakukan Abrasi Ileum CORTISOL, TRANSFORMING GROWTH FACTOR β (TGF-β) LEVEL, AND THE INTRAPERITONEAL ADHESION DEGREE.. AFTER LAPAROSCOPY

Menurut Peraturan Direktur Jenderal Pajak Nomor PER-32/PJ/2015 adalah pajak atas penghasilan berupa gaji, upah, honorarium, tunjangan dan pembayaran lain dengan

Analisis data kuantitatif menggunakan uji ANOVA (Analysis of Variance) satu dan dua jalur Secara kualitatif analisis dilakukan terhadap skala sikap, dan asesmen

Pelanggar tersebut diberikan sanksi tilang dengan E-Tilang oleh anggota di jalan yang bernama Briptu Anton Suparto dengan harapan pelanggar tersebut tidak mengulangi

Hal ini sesuai dengan penelitian yang dilakukan oleh Gusganda Suria Manda (2018) yang menjelaskan bahwa Penelitian ini menggunakan analisis deskriptif dan verifikatif

Selain sikap tubuh yang salah yang seringkali menjadi kebiasaan, beberapa aktivitas berat seperti melakukan aktivitas dengan posisi berdiri lebih dari 1 jam dalam