BAB 2 LANDASAN TEORI -...

27
8 BAB 2 LANDASAN TEORI 2.1 Basis Data 2.1.1 Pengertian Data Data adalah sekumpulan fakta, konsep, atau instruksi dalam media penyimpanan untuk komunikasi, pengambilan kembali dan pemrosesan yang bertujuan untuk menyediakan informasi yang dapat dipahami oleh manusia (WH Inmon, 2002, p388). Data juga diartikan sebagai fakta murni tentang organisasi dan transaksi bisnisnya (Whitten, 2004, ). 2.1.2 Pengertian Basis Data Basis data adalah kumpulan data yang saling berhubungan secara logis dan memiliki penjelasan akan data tersebut, yang dirancang untuk memenuhi kebutuhan organisasi akan informasi. Basis data merupakan sebuah tempat penyimpanan data yang dapat digunakan secara bersamaan oleh banyak pengguna. Data tidak disimpan di dalam file-file yang terpisah namun diintegrasikan sehingga memiliki duplikasi data yang minimal (Connolly, 2002, p14). Ketika kebutuhan informasi sebuah organisasi diidentifikasi, maka akan dihasilkan entity, atribut, dan relasi. Entity adalah sebuah obyek tertentu (orang, tempat, benda, konsep, atau event) di dalam organisasi yang

Transcript of BAB 2 LANDASAN TEORI -...

Page 1: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00214-IF-Bab 2.pdfPerangkat keras dapat berupa sebuah komputer personal, mainframe, atau

8

BAB 2

LANDASAN TEORI

2.1 Basis Data

2.1.1 Pengertian Data

Data adalah sekumpulan fakta, konsep, atau instruksi dalam media

penyimpanan untuk komunikasi, pengambilan kembali dan pemrosesan yang

bertujuan untuk menyediakan informasi yang dapat dipahami oleh manusia

(WH Inmon, 2002, p388).

Data juga diartikan sebagai fakta murni tentang organisasi dan

transaksi bisnisnya (Whitten, 2004, ).

2.1.2 Pengertian Basis Data

Basis data adalah kumpulan data yang saling berhubungan secara logis

dan memiliki penjelasan akan data tersebut, yang dirancang untuk memenuhi

kebutuhan organisasi akan informasi. Basis data merupakan sebuah tempat

penyimpanan data yang dapat digunakan secara bersamaan oleh banyak

pengguna. Data tidak disimpan di dalam file-file yang terpisah namun

diintegrasikan sehingga memiliki duplikasi data yang minimal (Connolly,

2002, p14).

Ketika kebutuhan informasi sebuah organisasi diidentifikasi, maka

akan dihasilkan entity, atribut, dan relasi. Entity adalah sebuah obyek

tertentu (orang, tempat, benda, konsep, atau event) di dalam organisasi yang

Page 2: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00214-IF-Bab 2.pdfPerangkat keras dapat berupa sebuah komputer personal, mainframe, atau

9

akan disimpan dalam basis data. Atribut adalah ciri-ciri entity yang

menggambarkan obyek yang akan disimpan di dalam basis data. Sedangkan

relasi adalah hubungan antara entity.

2.1.3 Pengertian Basis Data Relasional

Basis data relasional adalah basis data yang menggunakan model

relasional. Model relasional didasarkan pada konsep relasi matematika,

pertama kali diperkenalkan oleh Edgar Frank Codd pada tahun 1970.

Pada model relasional, data disimpan dalam tabel-tabel atau yang

disebut relasi. Setiap relasi memiliki nama dan disusun dari kolom-kolom

data yang disebut atribut. Setiap baris atau tuple menyimpan sebuah nilai

untuk setiap atribut (Connolly, 2002, p 69).

Struktur data sebuah basis data relasional terdiri dari (Connolly, 2002,

pp 72-74) :

1. Relasi, adalah sebuah tabel dengan kolom dan baris.

2. Atribut, adalah kolom yang memiliki nama dari sebuah relasi.

3. Domain, adalah kumpulan nilai yang diperbolehkan untuk satu atau

lebih atribut.

4. Tuple, adalah sebuah baris dari relasi.

5. Degree, adalah jumlah atribut dari relasi.

6. Cardinality, adalah jumlah tuple dari relasi.

7. Relational database, adalah kumpulan relasi yang telah dinormalisasi

dengan nama-nama yang unik.

Page 3: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00214-IF-Bab 2.pdfPerangkat keras dapat berupa sebuah komputer personal, mainframe, atau

10

2.1.4 Pengertian Database Management System

Database Management System (DBMS) adalah suatu sistem perangkat

lunak yang memungkinkan pengguna untuk mendefinisikan, membuat,

memelihara, dan mengontrol akses ke basis data (Connolly, 2002, p16).

DBMS biasanya menyediakan fasilitas :

a. Data Definition Language (DDL)

Bahasa ini memungkinkan pengguna mendefinisikan basis data,

menentukan tipe data, struktur, dan batasan data yang akan disimpan

dalam basis data.

b. Data Manipulation Language (DML)

Bahasa ini memungkinkan pengguna memasukkan, mengubah,

menghapus, dan mengambil data dari basis data.

c. Kontrol akses terhadap basis data

Kontrol akses yang disediakan meliputi :

Sistem keamanan yang mencegah pengguna yang tidak berhak

untuk mengakses basis data.

Sistem integritas yang menjaga konsistensi data yang disimpan.

Sistem pengendalian concurrency yang memungkinkan akses

bersamaan ke basis data.

Sistem recovery yang memungkinkan pengembalian keadaan

basis data ke suatu kondisi tertentu ketika terjadi kegagalan

perangkat keras atau piranti lunak.

Katalog yang dapat diakses pengguna yang menyediakan

deskripsi mengenai data di dalam basis data.

Page 4: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00214-IF-Bab 2.pdfPerangkat keras dapat berupa sebuah komputer personal, mainframe, atau

11

Sebuah DBMS mempunyai lima komponen utama (Connolly, 2002,

p18), yaitu :

1. Perangkat keras

DBMS memerlukan perangkat keras agar dapat berjalan.

Perangkat keras dapat berupa sebuah komputer personal, mainframe,

atau jaringan komputer.

2. Piranti lunak

Piranti lunak terdiri dari DBMS itu sendiri, bersama dengan

sistem operasi, dan termasuk piranti lunak jaringan jika DBMS berupa

jaringan komputer.

3. Data

Dari pandangan pengguna, komponen DBMS yang paling

penting adalah data. Data yang disimpan berupa data operasional dan

metadata atau deskripsi mengenai data tersebut.

4. Prosedur

Prosedur mengacu pada instruksi dan peraturan yang mengatur

desain dan penggunaan basis data. Pengguna memerlukan prosedur

bagaimana menggunakan dan menjalankan sistem yang

didokumentasikan.

5. Pengguna

Komponen terakhir adalah pengguna yang terlibat di dalam

sistem.

Page 5: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00214-IF-Bab 2.pdfPerangkat keras dapat berupa sebuah komputer personal, mainframe, atau

12

Menurut Connolly (2002, pp 25-30), kelebihan yang dimiliki DBMS

antara lain pengendalian duplikasi data, konsistensi data, informasi yang

didapat lebih dari jumlah data yang sama, pembagian data, integritas data

yang meningkat, keamanan yang lebih baik, lebih ekonomis, produktifitas

yang meningkat, pemeliharaan yang lebih mudah, backup dan restore yang

lebih mudah.

Sedangkan kekurangan yang dimiliki DBMS antara lain menjadi lebih

kompleks, ukuran yang agak besar, biaya yang lebih besar, kadang-kadang

performa lebih buruk, dan dampak yang lebih besar bila terjadi kegagalan.

2.1.5 Pengertian Relational Database Management System

Sebuah tipe DBMS di mana basis data diatur dan diakses menurut

hubungan antara nilai data berdasarkan model data relasional. RDBMS

diciptakan oleh tim yang dipimpin oleh Edgar Frank Codd dan didanai oleh

IBM pada tahun 1970. Contoh RDBMS yang ada misalnya Oracle, SQL

Server, DB2, Sybase, dan lain-lain.

(http://www.orafaq.com/glossary/faqglosr.htm)

2.2 Backup dan Restore

2.2.1 Pengertian Backup dan Restore

Secara umum, backup dan restore adalah salah satu macam strategi

dan prosedur yang dilakukan untuk melindungi basis data dari kehilangan

data dan merekonstruksi basis data apabila terjadi kehilangan data (Oracle

Database Backup and Restore Basic, 2003, p1).

Page 6: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00214-IF-Bab 2.pdfPerangkat keras dapat berupa sebuah komputer personal, mainframe, atau

13

Backup sendiri berarti melakukan duplikasi data yang ada ke sebuah

tempat penyimpanan lain yang lebih aman, biasanya disebut media backup.

Sedangkan restore berarti mengolah data di dalam media backup untuk

mengembalikan kondisi data seperti keadaan pada waktu tertentu.

2.2.2 Alasan Diperlukannya Backup

Menurut Anil Desai (2001, pp 5-7), alasan yang membuat basis data

perlu dibackup antara lain :

a. Informasi yang sangat berharga

Informasi adalah hal yang sangat berharga pada era sekarang ini.

Perkembangan suatu perusahaan sangat bergantung pada kecepatan

informasi yang didapat dan bagaimana pengolahannya. Maka bila

terjadi kerusakan pada basis data, dapat mengakibatkan lumpuhnya

suatu perusahaan.

b. Membuat ulang data sangat sulit dan membutuhkan biaya yang besar

Seperti yang diketahui bahwa data suatu perusahaan tidak hanya

penting, namun juga sangat sulit untuk digantikan bila data tersebut

hilang. Sangat lebih mudah mengembalikan data dari backup daripada

membuat ulang data.

c. Downtime yang sangat mahal

Bila terjadi sesuatu pada sistem penyimpanan data, kerugian

yang terjadi selama sistem tersebut berhenti akan sangatlah besar.

Page 7: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00214-IF-Bab 2.pdfPerangkat keras dapat berupa sebuah komputer personal, mainframe, atau

14

d. Persepsi publik dapat membuat dan menghancurkan bisnis

Pelanggan suatu perusahaan selalu mengharapkan suatu jaminan

keamanan berbisnis dengan perusahaan tersebut. Apabila tidak ada

jaminan bahwa kerjasama tersebut aman maka akan mengakibatkan

perusahaan kehilangan pelanggan. Sebaliknya apabila ada jaminan

keamanan berbisnis dengan perusahaan tersebut, akan menaikkan citra

dari perusahaan dan tentu saja akan menaikkan jumlah pelanggan bagi

perusahaan.

2.2.3 Ancaman Terhadap Data

Seperti yang telah diuraikan pada sub bab sebelumnya, betapa

pentingnya suatu data, maka menurut Anil Desai (2001, pp 5-7) ada banyak

ancaman terhadap data, antara lain :

a. Kerusakan piranti lunak dan perangkat keras

Kerusakan pada perangkat keras seperti rusaknya media

penyimpanan / storage dapat menyebabkan data dapat hilang secara

total, karena hal tersebut mengakibatkan tempat penyimpanan data

tidak dapat terbaca lagi. Salah satu pencegahannya adalah dengan

menggunakan sistem redudancy, yaitu membuat duplikat sistem yang

berfungsi sebagai backup secara berkala.

b. Orang dengan intensi yang baik

Seringkali orang yang berintensi baik juga melakukan kesalahan-

kesalahan secara tidak sengaja sehingga menyebabkan kerusakan data /

kerusakan piranti keras seperti kesalahpahaman, kurangnya pelatihan,

Page 8: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00214-IF-Bab 2.pdfPerangkat keras dapat berupa sebuah komputer personal, mainframe, atau

15

dan kesalahan fisik (seperti menjatuhkan kopi di atas komputer atau

tidak sengaja melakukan reboot komputer).

c. Orang dengan intensi yang buruk

Banyak sekali orang yang secara sengaja ingin mendapatkan dan

menghancurkan data suatu sistem. Ancaman yang utama berasal dari

jaringan internet di mana banyak sekali hacker yang mencoba merusak

data suatu organisasi.

d. Bencana alam

Bencana alam dapat terjadi kapan saja dan di mana saja secara

tiba-tiba sehingga diperlukan suatu backup data berkala untuk

mengantisipasi adanya bencana ini.

e. Masalah potensial lainnya

Ada banyak sekali masalah potensial lainnya seperti yang terjadi

pada tahun 2000 di mana masih banyak sistem yang masih

menggunakan tahun sebanyak dua digit (masalah Y2K).

2.3 XML

2.3.1 Definisi

eXtensible Markup Language (XML) adalah sebuah meta-language

(bahasa yang menjelaskan bahasa yang lain) yang memungkinkan perancang

untuk dapat membuat tag-tag mereka sendiri, untuk menyediakan fungsi-

fungsi yang tidak terdapat di dalam HTML (Hypertext Markup Language)

(Connolly, 2002, p1006).

Page 9: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00214-IF-Bab 2.pdfPerangkat keras dapat berupa sebuah komputer personal, mainframe, atau

16

XML adalah suatu format universal yang digunakan untuk

mendeskripsikan dan mempertukarkan struktur dokumen dan data pada

internet. XML merupakan salah satu bagian dari Standard Generalized

Markup Language (SGML) dan disahkan oleh World Wide Web Consortium

(W3C). XML mendefinisikan struktur data dalam format yang terbuka untuk

semua platform. Selain itu XML juga menjadikan data mudah untuk

ditransfer antar jaringan. XML dituliskan dalam sebuah file dengan format

teks ASCII biasa. XML hanya mendeskripsikan bagaimana struktur dari

sebuah data, bukan bagaimana seharusnya data tersebut ditampilkan seperti

pada Hypertext Markup Language (HTML).

2.3.2 Keuntungan

Beberapa keuntungan dari XML (Wikanta, 2001, pp 10-11) :

1. Ekstensibilitas

Ekstensibilitas berarti adanya suatu kebebasan untuk

menentukan tag-tag sendiri sesuai kebutuhan.

2. Memisahkan data dengan presentasi

XML memungkinkan pemisahan data dengan presentasi.

Artinya, sebuah data hanya berisi data saja tanpa informasi lain

mengenai cara menampilkannya. Tag-tag pada XML menjelaskan

mengenai isi datanya. Misal :

<nama>Bandung</nama>

Tag <nama> menjelaskan Bandung merupakan sebuah nama

bukan sebuah kota.

Page 10: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00214-IF-Bab 2.pdfPerangkat keras dapat berupa sebuah komputer personal, mainframe, atau

17

3. Fungsi pencarian yang lebih tepat

Jika menggunakan XML, orang akan mudah dalam menemukan

dan mencari informasi. Misalnya, pencarian seseorang bernama

“Bandung”, jika dalam HTML, maka semua kata “Bandung” baik

merupakan nama kota atau nama orang atau nama lainnya akan

ditampilkan. Akan tetapi, dalam XML pencarian dapat dilakukan

dengan mencari tag <nama> yang isi atau nilainya adalah Bandung

sehingga hasil pencarian akan lebih tepat.

2.3.3 Bagian Dokumen XML

Berikut ini adalah salah satu contoh dokumen XML :

<?XML version="1.0"?>

<telegram pri="important">

<to>Sarah Bellum</to>

<from>Colonel Timeslip</from>

<subject>Robot-sitting instructions</subject>

<graphic fileref="figs/me.eps"/>

<message>Thanks for watching my robot pal

<name>Zonky</name> while I'm away.

He needs to be recharged <emphasis>twice a

day</emphasis> and if he starts to get cranky,

give him a quart of oil. I'll be back soon,

after I've tracked down that evil

mastermind <villain>Dr. Indigo Riceway</villain>.

</message>

</telegram>

Page 11: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00214-IF-Bab 2.pdfPerangkat keras dapat berupa sebuah komputer personal, mainframe, atau

18

Sebuah dokumen XML terdiri dari bagian-bagian yang disebut node

(Junaedi, 2003, pp 6-7) yaitu :

1. Root node, yaitu node yang melingkupi keseluruhan dokumen. Dalam

satu dokumen XML hanya ada satu root node. Root node biasa disebut

juga root element.

2. Element node, yaitu bagian dari dokumen XML yang ditandai dengan

tag pembuka dan tag penutup, atau bisa juga tag tunggal elemen

kosong.

3. Atribut node, di mana nama dan nilai atribut pada tag awal sebuah

elemen atau pada tag tunggal.

4. Text node, adalah teks yang merupakan isi dari sebuah elemen, ditulis

di antara tag pembuka dan tag penutup.

5. Comment node, adalah baris komentar yang tidak dieksekusi oleh

parser.

6. Processing Instruction Node, adalah perintah pengolahan dalam

dokumen XML. Node ini diawali dengan “<?” dan diakhiri dengan

“?>”. Akan tetapi header standar XML <? XML version=”1.0” ?>

bukanlah processing instruction node.

7. Name space node, adalah node yang mewakili deklarasi namespace.

XML mempunyai beberapa aturan dasar untuk pembuatan dokumen

XML yang rapi atau well-formed. Dokumen yang well-formed adalah

dokumen yang tunduk pada seperangkat aturan minimal yang

memungkinkan dokumen diproses oleh browser atau program lainnya.

Page 12: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00214-IF-Bab 2.pdfPerangkat keras dapat berupa sebuah komputer personal, mainframe, atau

19

Beberapa aturan dasar pembuatan dokumen XML well-formed

(Young, 2000, p25) :

1. Dokumen tersebut harus mempunyai persis satu elemen tingkat teratas

(root element).

2. Elemen-elemen harus disarangkan dengan tepat.

3. Setiap elemen harus memiliki tag awal dan tag akhir.

4. Nama tipe elemen dalam tag awal harus persis berhubungan dengan

nama dalam tag akhir yang bersangkutan.

5. Nama-nama tipe elemen bersifat case-sensitive (membedakan

penulisan huruf besar dengan huruf kecil).

2.4 Kompresi Data

Kompresi data adalah suatu ilmu pengetahuan untuk merepresentasikan

informasi dalam ukuran yang lebih kecil. Proses pembuatan representasi ini

dilakukan dengan cara mengidentifikasi dan menggunakan struktur yang ada di

dalam data. Data dapat berupa karakter di dalam file teks atau angka di dalam file

suara atau gambar (Sayood, 2006).

Teknik kompresi terdiri dari dua bagian, yaitu algoritma kompresi yang

memproses input X dan menghasilkan representasi Xc yang memiliki bit yang

lebih sedikit, dan algoritma rekonstruksi yang memproses input representasi Xc

dan menghasilkan rekonstruksi Y.

Berdasarkan kebutuhan rekonstruksi, kompresi data dapat dibagi menjadi

dua yaitu kompresi lossless (di mana Y identik dengan X) dan kompresi lossy di

mana rekonstruksi Y berbeda dengan X).

Page 13: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00214-IF-Bab 2.pdfPerangkat keras dapat berupa sebuah komputer personal, mainframe, atau

20

2.4.1 Klasifikasi Algoritma Kompresi

1. Kompresi Lossless dan Lossy

Teknik pengompresan data dapat diklasifikasikan menjadi dua

tipe kompresi yaitu pengompresan lossless dan lossy. Kompresi

lossless dan lossy merupakan istilah yang mendeskripsikan apakah

seluruh informasi data dari suatu file asli dapat dikembalikan ke seperti

semula atau tidak pada proses dekompresi.

Teknik kompresi lossles, seperti namanya, tidak menyebabkan

hilangnya informasi. Jika data telah dikompresi dengan teknik lossless,

data yang asli dapat direkonstruksi secara sempurna dari data yang

telah dikompres tersebut. Teknik lossless biasanya digunakan oleh

program yang tidak mempunyai toleransi terhadap perbedaan antara

data yang asli dan yang telah direkonstruksi.

Teknik ini paling banyak digunakan untuk kompresi teks. Sangat

penting untuk mendapatkan hasil rekonstruksi yang identik dengan

teks yang asli, karena perbedaan yang kecil saja dapat mengakibatkan

perbedaan arti.

Namun bukan hanya untuk teks saja, teknik ini juga digunakan

untuk data-data yang penting. Sebagai contoh adalah gambar hasil

radiologi dan gambar dari satelit. Jika gambar hasil radiologi yang

telah dikompres tidak dapat direkonstruksi menjadi sama seperti yang

asli, maka akan terdapat kesalahan diagnosa pada penyakit pasien.

Sama hal nya dengan gambar satelit, jika data rekonstruksi tidak

Page 14: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00214-IF-Bab 2.pdfPerangkat keras dapat berupa sebuah komputer personal, mainframe, atau

21

identik dengan yang asli maka dapat mengakibatkan kesalahan yang

fatal.

Teknik kompresi lossy menyebabkan hilangnya informasi. Data

yang telah dikompresi tidak direkonstruksi sama seperti data yang asli.

Dengan adanya pengurangan informasi, maka rasio kompresi menjadi

lebih tinggi daripada teknik kompresi lossless.

Pada beberapa aplikasi, pengurangan informasi tersebut

bukanlah suatu masalah. Sebagai contoh ketika menyimpan data suara

manusia, menyimpan data yang asli tidak diperlukan. Berkurangnya

kualitas suara dapat ditoleransi sejauh isi suara masih dapat dimengerti

(Sayood, 2006).

2. Kompresi Statistical dan Dictionary

Berdasarkan teknik yang dipakai, algoritma kompresi dapat

dibagi menjadi dua bagian besar, yaitu yang menggunakan model

statistik dan dictionary. Pada model statistik, algoritma kompresi

menggunakan kode yang berbeda-beda panjangnya, kode yang lebih

pendek digunakan untuk simbol yang muncul lebih banyak di dalam

data. Dalam menggunakan algoritma kompresi statistik, ada dua hal

yang harus diperhatikan yaitu menentukan kode yang tidak dapat

diartikan secara ambigu dan menentukan kode yang memiliki ukuran

rata-rata minimum. Algoritma kompresi yang termasuk model statistik

ini adalah algoritma Shannon-Fano, Huffman, Arithmetic, PPM, dan

lain-lain.

Page 15: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00214-IF-Bab 2.pdfPerangkat keras dapat berupa sebuah komputer personal, mainframe, atau

22

Algoritma kompresi statistik menggunakan model statistik dari

data input dan kualitas kompresi bergantung pada seberapa baik model

tersebut. Metode kompresi yang berbasis dictionary, tidak

menggunakan model statistik ataupun kode yang berbeda-beda

panjangnya. Metode ini menentukan rangkaian simbol-simbol dan

melambangkannya dengan sebuah tanda. Dictionary dapat

menampung simbol yang statis ataupun dinamis. Statis berarti isi

dictionary tidak dapat dihapus hanya bisa ditambah. Sedangkan

dinamis berarti memperbolehkan penambahan dan penghapusan isi

dictionary ketika data input dibaca.

Algoritma yang menggunakan metode dictionary antara lain

algoritma Lempel-Ziv (LZ) dan berbagai macam variannya, deflate,

kompresi pada file GIF dan PNG, dan lain-lain (Salomon, 2004).

2.4.2 Encoding dan Decoding

Pada umumnya pengompresan data terdiri dari dua proses yang

digunakan dalam program atau peralatan yaitu :

(http://www.newmediarepublic.com/dvideo/compression/adv04.html)

a. Encoding adalah suatu proses pada software atau hardware di mana

program atau peralatan melakukan pengkodean dalam format tertentu.

Program atau peralatan yang melakukan proses encoding disebut encoder

atau coder. Dalam kompresi data, file-file data yang akan dikompres

menggunakan program encoding. Bit-bit dalam file aslinya akan diencode

Page 16: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00214-IF-Bab 2.pdfPerangkat keras dapat berupa sebuah komputer personal, mainframe, atau

23

dengan menggunakan algoritma pengompresan yang diinginkan,

sehingga ukuran hasil kompresi akan lebih kecil dari ukuran aslinya.

b. Decoding adalah suatu proses pada software atau hardware di mana

program atau peralatan melakukan penguraian kode dari file hasil

encoding. Program atau peralatan yang melakukan proses decoding

disebut decode. Peralatan yang dapat melakukan proses encoding dan

decoding disebut codec. Dalam proses decoding, file hasil dari proses

encoding akan dikembalikan ke bentuk aslinya dengan algoritma

pengompresan.

2.4.3 Rasio Kompresi

Rasio kompresi adalah istilah komputer yang digunakan untuk

mengukur pengurangan ukuran data yang dihasilkan oleh suatu algoritma

kompresi (http://www.fact-index.com/d/da/data_compression_ratio.html).

Cara yang biasa digunakan untuk mengekspresikan suatu rasio kompresi

adalah dengan menggunakan persentase, yaitu dengan rumus :

%100S

PSR ×−

=

Di mana :

R = Rasio kompresi (%)

S = Ukuran file sebelum dikompres (bytes)

P = Ukuran file setelah dikompres (bytes)

Page 17: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00214-IF-Bab 2.pdfPerangkat keras dapat berupa sebuah komputer personal, mainframe, atau

24

2.4.4 XMill

XMill adalah sebuah algoritma untuk melakukan kompresi terhadap

data dalam bentuk XML yang biasanya mencapai rasio kompresi dua kali

lipat daripada kompresi biasa. XMill tidak membutuhkan informasi skema

file XML namun skema tersebut dapat digunakan untuk meningkatkan rasio

kompresi. XMill yang dikembangkan menggunakan alat kompresi yang telah

ada yaitu gzip. XMill dapat ditingkatkan dengan menggunakan kompresi

khusus yang sesuai dengan tipe data yang disimpan, seperti DNA, gambar,

dan lain-lain (Liefke, p1).

XMill didesain untuk menggunakan keteraturan format dalam data

XML untuk meningkatkan kompresi. Keteraturan tersebut dapat disediakan

sebagai input untuk menjadi alat bantu XMill. Namun hal tersebut tidak

wajib diperlukan, karena input tersebut tidak mempengaruhi data.

XMill menggunakan tiga prinsip dasar dalam mengkompresi data

XML (Liefke, p2) :

1. Memisahkan struktur dari data

Struktur berisi tag dan atribut XML dan berbentuk tree. Data

terdiri dari urutan karakter yang merepresentasikan isi dan nilai atribut.

Struktur dan data dikompres secara terpisah.

2. Mengelompokkan data yang artinya sama

Data dikelompokkan ke dalam sebuah container dan setiap

container dikompres secara terpisah. Sebagai contoh semua data

Page 18: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00214-IF-Bab 2.pdfPerangkat keras dapat berupa sebuah komputer personal, mainframe, atau

25

<name> dimasukkan ke dalam satu container, sedangkan semua data

<phone> dimasukkan ke container yang kedua.

3. Mengkompresi tiap kelompok data sesuai dengan tipe datanya

Beberapa data berbentuk teks, ada juga yang angka, atau urutan

DNA. XMill menggunakan kompresi yang berbeda untuk setiap tipe

data.

Secara garis besar, arsitektur XMill dapat digambarkan sebagai berikut

(Liefke, p9) :

Gambar 2.1 Gambar Arsitektur XMill

Data XML dianalisis oleh SAX-Parser yang mengirim setiap token

(tag, atribut, atau nilai data) ke path processor. Oleh path processor, tag dan

atribut yang membentuk struktur XML dikirim ke structure container. Nilai

Page 19: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00214-IF-Bab 2.pdfPerangkat keras dapat berupa sebuah komputer personal, mainframe, atau

26

data dikirim ke bermacam data container sesuai dengan letak data (path)

tersebut. Structure container dan setiap data container dikompresi secara

terpisah menggunakan gzip kemudian disatukan menjadi satu kesatuan

output.

Teknik pemisahan struktur dari isi data dilakukan dengan cara tag awal

disimpan dan diberi angka, sedangkan tag akhir diganti dengan simbol /.

Nilai data digantikan dengan nomor container. Sebagai contoh diambil file

XML sebagai berikut :

<Book>

<Title lang="English"> Transaction Processing

</Title>

<Author> Gray </Author>

<Author> Reiter </Author>

</Book>

Struktur file XML tersebut divisualisasikan sebagai berikut :

<Book>

<Title lang="C1"> C2 </Title>

<Author> C3 </Author>

<Author> C3 </Author>

</Book>

Kemudian jika dilakukan encoding terhadap struktur tersebut akan

menjadi :

Book = #1, Title = #2, @lang = #3, Author = #4

Structure = #1 #2 #3 C1 / C2 / #4 C3 / #4 C3 / /

Page 20: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00214-IF-Bab 2.pdfPerangkat keras dapat berupa sebuah komputer personal, mainframe, atau

27

Whitespace seperti spasi di antara tag-tag diabaikan, nantinya

decompressor akan menggantinya dengan simbol standar. Sedangkan untuk

memasukkan setiap nilai data ke data container yang berbeda, setiap

container diberi path untuk data yang disimpan. Path digunakan untuk

memberi tanda lokasi tag tersebut. Sebagai contoh, nilai data Transaction

Processing akan mempunyai path /Book/Title, sedangkan nilai data

Gray mempunyai path /Book/Author. Setiap nilai data yang ada di

dalam dokumen XML akan dimasukkan ke container sesuai dengan

pathnya.

2.4.5 Algoritma LZ77

LZ77 termasuk algoritma kompresi yang menggunakan dictionary.

Pada pendekatan ini, dictionary yang digunakan adalah bagian dari urutan

sebelumnya yang diproses. Encoder memproses urutan input menggunakan

sliding window. Window terdiri dari dua bagian, yaitu search buffer yang

mengandung bagian yang sedang diproses, dan look-ahead buffer yang

mengandung bagian selanjutnya yang akan diproses. Pada gambar 2.2,

search buffer terdiri dari delapan simbol, sedangkan look-ahead buffer

terdiri dari tujuh simbol. Dalam prakteknya, ukuran buffer tersebut jauh

lebih besar (Sayood, 2006).

Gambar 2.2 Buffer pada LZ77

Page 21: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00214-IF-Bab 2.pdfPerangkat keras dapat berupa sebuah komputer personal, mainframe, atau

28

Untuk memproses urutan pada look-ahead buffer, encoder

memindahkan pointer pencari kembali ke search buffer sampai menemukan

simbol yang sesuai dengan simbol pertama pada look-ahead buffer. Jarak

antara pointer dengan look-ahead buffer disebut offset. Encoder kemudian

memeriksa simbol yang mengikuti simbol di lokasi pointer apakah cocok

dengan simbol berikutnya pada look-ahead buffer. Jumlah semua simbol

yang cocok disebut match length. Encoder mencari match length yang paling

maksimum. Ketika sudah ditemukan panjang maksimum tersebut, maka

encoder menyimpan dalam triple (o, l, c), di mana o adalah offset, l adalah

match length, dan c adalah simbol berikutnya setelah pasangan yang cocok

pada look-ahead buffer. Sebagai contoh pada gambar 2.2, offsetnya adalah 7,

match length adalah 4 (untuk urutan karakter abra), dan simbol yang

mengikuti pasangan yang cocok adalah r. Jika tidak ditemukan data yang

cocok, maka offset dan match length bernilai 0.

Untuk menunjukkan bagaimana proses decoding bekerja, anggap

urutan cabraca sudah di-decode dan berikutnya terdapat triple

<0,0,C(d)>, <7,4,C(r)>, dan <3,5,C(d)>. Triple yang pertama

sangat mudah didecode, tidak ada pasangan dengan urutan sebelumnya,

maka simbol berikutnya adalah d. String yang telah di-decode menjadi

cabracad. Elemen pertama pada triple berikutnya berarti decoder harus

menggerakkan pointer tujuh karakter ke belakang dan menduplikasi empat

karakter dari titik tersebut, kemudian menambahkan karakter r di paling

belakang. Maka string yang didapat menjadi cabracadabrar. Triple

Page 22: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00214-IF-Bab 2.pdfPerangkat keras dapat berupa sebuah komputer personal, mainframe, atau

29

terakhir menandakan mundur sebanyak tiga karakter dan menduplikasi lima

karakter sehingga string menjadi cabracadabrarrarrad.

2.4.6 Algoritma Huffman

Metode yang banyak digunakan untuk kompresi data adalah algoritma

Huffman. Algoritma ini menjadi dasar kebanyakan program yang digunakan

pada komputer personal. Beberapa program hanya menggunakan metode

Huffman, sedangkan yang lain menggunakan algoritma ini sebagai satu

bagian dari beberapa algoritma lain yang dipakai (multistep compression)

(Salomon, 2004, p68).

Algoritma ini diciptakan oleh David A. Huffman pada tahun 1952

sebagai bagian dari tugas kelas yang diajar oleh Robert Fano di MIT. Kode

Huffman yang dihasilkan dari algoritma ini disebut prefix code. Prosedur

Huffman didasarkan pada dua hal agar mendapatkan prefix code yang paling

optimal :

1. Simbol yang muncul lebih sering mempunyai kode yang lebih pendek

daripada simbol yang jarang muncul

2. Dua simbol yang paling jarang muncul mempunyai panjang yang sama

Sangat mudah untuk memahami bagian pertama. Jika simbol yang

lebih sering muncul mempunyai kode yang lebih panjang daripada simbol

yang jarang muncul, maka rata-rata bit per simbol menjadi lebih besar

dibandingkan jika kondisi tersebut dibalik.

Untuk memahami bagian kedua, perhatikan contoh berikut. Misalkan

kode optimum C untuk dua simbol yang paling jarang muncul mempunyai

Page 23: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00214-IF-Bab 2.pdfPerangkat keras dapat berupa sebuah komputer personal, mainframe, atau

30

panjang yang berbeda. Misalkan kode yang lebih panjang mempunyai k bit

lebih banyak daripada kode yang lebih pendek. Hal ini berarti jika k bit

terakhir dihapus dari kode yang lebih panjang, maka kita masih memiliki

kode yang berbeda. Karena kode tersebut mewakili simbol dengan frekuensi

terkecil, maka tidak ada kesalahan ketika kode yang lebih pendek menjadi

prefix dari kode yang lain. Dengan menghapus k bit tersebut, maka diperoleh

rata-rata bit yang lebih kecil.

Metode ini dimulai dengan membuat daftar semua simbol diurutkan

menurun sesuai dengan frekuensinya. Kemudian dibuatlah sebuah tree

dengan satu simbol pada setiap leafnya. Hal ini dilakukan dalam beberapa

langkah, dengan setiap langkah mengambil dua simbol dengan frekuensi

terkecil, menghapusnya dari daftar dan menggantinya dengan simbol

pembantu yang merepresentasikan keduanya. Ketika daftar telah diproses

menjadi hanya satu simbol pembantu (yang merepresentasikan simbol

keseluruhan), tree sudah selesai dibentuk. Kemudian tree akan ditelusuri

(traverse) untuk menentukan kode setiap simbol.

Sebagai contoh terdapat daftar frekuensi sebagai berikut :

Tabel 2.1 Tabel Contoh Daftar Frekuensi Karakter

Karakter a1 a2 a3 a4 a5 Frekuensi 40 20 20 10 10

Page 24: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00214-IF-Bab 2.pdfPerangkat keras dapat berupa sebuah komputer personal, mainframe, atau

31

Proses kompresi dilakukan dengan langkah-langkah sebagai berikut :

1. a4 dikombinasikan dengan a5 dan digantikan dengan simbol gabungan

a45, di mana frekuensinya adalah 20.

2. Sekarang tinggal tersisa 4 simbol, a1 dengan frekuensi 40, dan a2, a3,

dan a45 dengan frekuensi masing-masing 20. Simbol a3 dan a45 dipilih,

gabungkan keduanya dan ganti dengan simbol pembantu a345 yang

frekuensinya 40.

3. Tiga simbol tersisa, a1, a2, dan a345, dengan frekuensi 40, 20, dan 40.

Simbol a2 dan a345 dipilih, gabungkan dan ganti dengan simbol a2345

yang frekuensinya 60.

4. Akhirnya, gabungkan dua simbol tersisa, a1 dan a2345 dan ganti dengan

a12345 dengan frekuensi 100.

Setelah tree selesai dibuat, tambahkan kode 0 untuk rusuk atas dan

kode 1 untuk rusuk bawah.

Gambar 2.3 Gambar Huffman Tree

Page 25: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00214-IF-Bab 2.pdfPerangkat keras dapat berupa sebuah komputer personal, mainframe, atau

32

Kode-kode yang didapat adalah 0, 10, 110, 1110, dan 1111. Jumlah bit

yang digunakan untuk menyimpan keseluruhan kode adalah 40 * 1 + 20 * 2

+ 20 * 3 + 10 * 4 + 10 * 4 = 220 bit. Hal ini berarti 2.2 bit per simbol yang

menandakan adanya pengurangan karena satu simbol biasanya disimpan

dengan 8 bit.

Daftar simbol dan frekuensi harus disimpan agar proses dekompresi

dapat berjalan. Hal ini berati menambah beberapa byte ke hasil kompresi.

Algoritma dekompresi sangatlah sederhana. Mulai pada awal, baca bit

pertama pada hasil kompresi. Jika bit tersebut adalah nol, maka bergeraklah

ke rusuk atas dari tree, jika bernilai satu maka bergeraklah ke rusuk bawah

dari tree. Baca bit berikutnya dan lakukan hal yang sama. Jika menemui

sebuah leaf, maka sebuah simbol asli telah ditemukan dan simbol tersebut

dimasukkan ke dalam hasil dekompresi. Kemudian dilanjutkan dengan bit

berikutnya.

2.5 Unified Modelling Language (UML)

Unified Modelling Language pertama kali dikembangkan pada pertengahan

tahun 1990 oleh perusahaan Rational Software. UML telah menjadi standar yang

digunakan untuk membuat rancangan aplikasi berorientasi obyek. Menurut Booch,

Grady, dkk. (1999, p13), Unified Modelling Language merupakan suatu bahasa

yang menggunakan model dan diagram standar untuk merancang model bagi suatu

proyek yang berbasis pemrograman berorientasi objek. UML adalah suatu bahasa

standar untuk membuat cetak biru piranti lunak. Dengan membuat cetakan biru

(blue print) akan membantu pengembang aplikasi untuk memvisualisasikan

Page 26: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00214-IF-Bab 2.pdfPerangkat keras dapat berupa sebuah komputer personal, mainframe, atau

33

permasalahan yang dihadapi dalam pengembangan suatu proyek. UML membantu

pengembang aplikasi untuk mengetahui kebutuhan pengguna (user requirement),

membantu rancangan proyek yang lebih baik dan untuk menghasilkan kode

program yang lebih baik. UML hanya suatu bahasa dan juga satu bagian dari

metode pengembangan perangkat lunak. Banyak program yang dapat digunakan

untuk membuat diagram UML, misalnya Rational Rose, Visio 2000, Visual

Modeler, Enterprise Architect, dan sebagainya.

Use case diagram merupakan suatu diagram yang menunjukkan sekumpulan

use case, actor, dan relationship. Diagram ini merupakan sesuatu yang penting

terutama dalam mengorganisasi dan memperagakan perilaku suatu sistem. Notasi-

notasi yang terdapat pada use case diagram :

1. Use Case

Use case merupakan suatu deskripsi dari sekumpulan urutan tindakan

yang dilaksanakan sistem untuk menghasilkan hasil yang diperlukan actor.

Gambar 2.4 Contoh Simbol Use Case

2. Actor

Actor merupakan sekumpulan peran yang dimainkan seorang user dari

use case ketika saling berinteraksi dengan use case.

Gambar 2.5 Contoh Simbol Actor

Page 27: BAB 2 LANDASAN TEORI - library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2/2007-2-00214-IF-Bab 2.pdfPerangkat keras dapat berupa sebuah komputer personal, mainframe, atau

34

3. Include

Include merupakan sebuah hubungan dalam use case diagram, yang

digunakan bila ada beberapa skenario yang berulang di beberapa use case

lainnya. Agar tidak terjadi pengulangan, skenario ini dibuat menjadi sebuah

use case yang akan diliputi oleh use case lainnya.

Actor1

CancelOrder

FindOrder

«uses»

Gambar 2.6 Contoh Include

4. Extend

Extend merupakan sebuah hubungan dalam use case diagram yang

digunakan saat sebuah variasi atas sebuah behaviour normal digambarkan, di

mana ingin digunakan bentuk yang lebih mudah untuk dikontrol dan

extension points dalam use case dasar dideklarasikan.

5. Generalization

Hubungan ini memungkinkan suatu child use case mewarisi behaviour

yang dimiliki oleh parent use case.