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

11

SKRIPSI
KOMPRESI DATA TEKS MENGGUNAKAN ALGORITMA
PPM MPREDICTION BY PARTIAL MATCHING)

Disusun oleh :
Gilang Himawan Widya Putra
0735010026

PROGRAM STUDI SISTEM INFORMASI
FAKULTAS TEKNOLOGI INDUSTRI FTI
UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”
JAWA TIMUR
2011

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

DAFTAR ISI


Halaman
TALAMAN JUDUL
TALAMAN PENGESATAN
ABSTRAK ……………………………………………………………………. i
KATA PENGANTAR …………………….………………………..……........ ii
DAFTAR ISI …………………………………………..…………….……..…. iv
DAFTAR TABLE …….………………………..…………………………….. ix
DAFTAR GAMBAR ………………………..………………………………... x
BAB I.PENDATULUAN
1.1 Latar Belakang ……………………………………………...……….. 1
1.2 Rumusan tasalah ……………………………………………............ 3
1.3 Batasan tasalah ……………………………………………………... 3
1.4 Tujuan ………………………………………………………...……... 3
1.5 tanfaat ……………………………………………………………… 3
1.6 tetodologi Penelitian ………………………………………...…....... 4
1.7 Sistematika Penulisan ……………………………………………….. 5

BAB II TINJAUAN PUSTAKA
2.1 Konsep Dasar Informasi ….………………………………………….. 7


Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

2.2 Kompresi Data ..……………………………………………...……… 9
2.2.1 Faktor Penting Kompresi Data …...……………………........... 11
2.2.2 Jenis Kompresi Data …………………………………........…. 12
2.2.3 tetode Kompresi data ……………………………...……..…. 12
2.2.4 Teknik Kompresi Data .………………………………........…. 13
2.2.5 Klasifikasi Teknik Kompresi ...………………………………. 14
2.2.6 Encoding Dan Decoding ….………………………..……...…. 15
2.3 Pengkodean Data ……………………..…………..………………... 16
2.3.1 BCD (Binary Coded Decimal) …………….…………………. 17
2.3.2 SBCDIC(Standart Binary Coded Decimal Interchange Code) . 17
2.3.3 EBCDIC(Extended Binary Coded Decimal Interchange Code) 18
2.3.4 ASCII(American Standard Code For Information Interchange) 18
2.4 Algoritma Kompresi PPt ………...………...……………………… 18
2.4.1 Pembentukan Pohon String ……………….………………….. 20
2.4.2 Proses Encoding ………….……………….………………….. 22
2.4.1 Proses Decoding ………….……………….………………….. 24
2.5 Unified todelling Language ….…………….…………………. 25

2.6 Semantik Dalam UtL …………………...…...……………………. 30
2.7 Notasi Dalam UtL ...……………………...……………………….. 32
2.7.1 Aktor ……………………..…………………………….......... 32
2.7.2 Use Case ………………………………………..……….…… 32

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

2.7.3 Class …..…………..………………………………….……… 33
2.7.4 Interface ………..…………………………………..………… 34
2.7.5 Interaction …….………………………………...…………… 34
2.7.6 Note …..…………………………………........……………… 35
2.7.7 Dependency ..………………………….…...………………… 35
2.7.8 Associantion .………………………............………………… 36
2.7.9 Generalization ………...………...…………………………… 36
2.7.10 Realization ………………………………………………….. 37
2.8 Embarcadero Delphi 2010 ……………………………………...…... 37

BAB III ANALISA PERMASALATAN
3.1 Analisa tasalah …..…………………………………..……………. 42

3.2 Analisis Dan Kebutuhan Fungsional ……….………...…………….. 43
3.3 Use Case Diagram ……………………………………..…………… 43
3.4 Sequence Diagram ….……………………………………………... 44
3.4.1 Sequence Diagram Compress .………………...…………….. 45
3.4.2 Sequence Diagram Decompress …………….……………….. 45

BAB IV PERANCANGAN DAN IMPLEMENTASI
4.1 Tujuan Perancangan Sistem …………………….………………….. 49

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

Judul

: Kompresi data teks menggunakan Algoritma PPM (Prediction By Partial
Matching) Untuk keamanan system informas

Pembimbing 1

: Nur Cahyo Wibowo S.kom M.Kom


Pembimbing 2

: Agus Hermanto S.Kom

Penyusun

: Gilang Himawan Widya Putra

Abstr ak

Seiring dengan berkembangnya teknologi saat ini, data memiliki
peranan yang sangat penting, data tersebut tidak hanya berupa teks, gambar,
audio atau bahkan video data yang digunakan tidak memiliki ukuran yang sangat
besar, tapi kini dapat memiliki ukuran yang sangat besar. Untuk itu diperlukan
sebuah teknik untuk mengubah ukuran data tersebut agar menjadi lebih kecil.
Teknik ini disebut dengan pemampatan atau yang lebih dikenal dengan kompresi
data
Kompresi Data adalah suatu proses pengubahan sekumpulan data
menjadi suatu bentuk kode untuk menghemat kebutuhan tempat

penyimpanan data. Algoritma Prediction By Partial Matching (PPM)
menggunakan teknik lossless yaitu tidak menghilangkan informasi sedikitpun,
hanya mewakili beberapa informasi yang sama dan dikelompokan dalam metode
kompresi statis, metode ini bersifat two-pass.
Hasil yang akan dibandingkan meliputi, kapasitas hasil kompresi,
rasio kompresi serta waktu kompresi dan dekompresi. Sesuai dengan hasil uji
coba yang dilakukan terlihat bahwa data yang semula mempunyai ukuran lebih
besar dapat terkompresi dengan sangat baik diimplementasikan pada file bertipe
teks dan gambar bitmap karena mempunyai rasio yang tinggi.
.

Kata kunci : PPM, Prediction By Partial Matching, Kompresi, Lossless

i

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

KATA PENGANTAR


Syukur Alhamdulillaahi rabbil ‘alamin terucap ke hadirat Allah SWT atas
segala limpahan Kekuatan-Nya sehingga dengan segala keterbatasan waktu,
tenaga, pikiran dan keberuntungan yang dimiliki penyusun, akhirnya penyusun
dapat menyelesaikan Skripsi yang berjudul “Kompresi Data Menggunakan
Algoritma PPM ( Prediction By Partial Matching) Untuk Keamanan Sistem
Infor masi” tepat pada waktunya. Skripsi dengan beban 4 SKS ini disusun guna
diajukan sebagai salah satu syarat untuk menyelesaikan program Strata Satu (S1)
pada program studi Sistem Informasi, Fakultas Teknologi Industri, UPN
”VETERAN” Jawa Timur.
Melalui Skripsi ini penyusun merasa mendapatkan kesempatan emas untuk
memperdalam ilmu pengetahuan yang diperoleh selama di bangku perkuliahan,
terutama berkenaan tentang penerapan teknologi perangkat bergerak. Namun,
penyusun menyadari bahwa Skripsi ini masih jauh dari sempurna. Oleh karena itu
penyusun sangat mengharapkan saran dan kritik dari para pembaca untuk
pengembangan aplikasi lebih lanjut.

Surabaya, November 2011

(penyusun)


ii
Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

BAB I
PENDAHULUAN

1.1.

Latar Belakang
Di era sekarang ini kebutuhan akan informasi semakin diperlukan. Maka

dari itu sekarang banyak layanan-layanan jasa dari internet yang berusaha sebaik
mungkin untuk menyediakan informasi yang disediakan setidaknya membutuhkan
jumlah data yang tidak lagi berukuran kecil. Semakin membesarnya jumlah data
tidak dapat diimbangi dengan semakin besarnya kapasitas media penyimpanan.
Disamping itu ukuran data yang besar akan mengakibatkan pemborosan pada
penggunaan resource jaringan ketika data tersebut diakses oleh user lain yang
berada di tempat yang jauh. Data-data yang dibutuhkan tersebut tidak hanya
berupa teks tetapi dapat juga berupa data audio (multimedia) dan juga dapat

berupa gambar. Oleh karena itu dibutuhkan cara untuk bagaimana mengkompres
data-data tersebut sehingga dapat disimpan dalam media penyimpanan yang
terbatas, sekaligus terjamin keamanannya karena hanya pihak tertentu saja yang
dapat mengakses data tersebut.
Teknologi kompresi data berkembang seiring dengan kemajuan teknologi
informasi. Melalui teknologi kompresi ini, penyebaran data menjadi lebih cepat
karena ukuran data yang lebih kecil dari ukuran aslinya sehingga mempermudah
proses pengiriman data atau dapat mengurangi kebutuhan terhadap kapasitas
media penyimpanan.

1

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

2

Kompresi adalah proses pengubahan sekumpulan data menjadi bentuk
kode dengan tujuan untuk menghemat kebutuhan tempat penyimpanan dan waktu
untuk transmisi data. Kompresi data dilakukan dengan mengkodekan setiap

karakter di dalam pesan atau data dengan mengkodekan setiap karakter di dalam
pesan atau data dengan kode yang lebih pendek. Pada saat ini banyak sekali
algoritma yang digunakan untuk mengkompresi data. Antara lain algoritma
Huffman, LZ Family, RLE, LZMA, CTW, Deflate, Arithmetic coding, Half Byte
dan lain-lain. Pada pembuatan tugas akhir ini algoritma yang digunakan untuk
mengompresi data adalah algoritma Prediction by Partial Matching (PPM).
Algoritma Prediction by Partial Matching (PPM) adalah teknik kompresi
data statis berdasarkan konteks pemodelan dan prediksi.. Algoritma ini termasuk
dalam kelas losless compression yaitu tidak menghilangkan informasi sedikitpun
hanya mewakilkan beberapa informasi yang sama. Metode ini bersifat two-pass
yaitu menggunakan peta kode yang selalu sama, fase pertama untuk menghitung
kemungkinan tiap simbol dan menentukan peta kodenya dan fase kedua untuk
mengubah pesan menjadi kumpulan kode yang akan di transmisikan.
Berdasarkan uraian tersebut diatas, maka dalam tugas akhir topik yang
diambil adalah Kompresi Data Teks Menggunakan Algoritma PPM
(Pr ediction By Partial Matching).

1.2.

Perumusan Masalah

Rumusan masalah yang digunakan dalam tugas akhir ini adalah :

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

3

Bagaimana membuat aplikasi untuk memperkecil ukuran suatu data
melalui kompresi dengan menggunakan algoritma PPM ?

1.3.

Batasan Masalah
Agar pembahasan dan penyusunan tugas akhir ini dapat dilakukan secara

terarah dan tidak menyimpang serta sesuai dengan apa yang diharapkan, maka
perlu ditetapkan batasan-batasan dari masalah yang dihadapi, yaitu :
a. Aplikasi yang dibuat dapat dijalankan pada Sistem Operasi Windows 7
b. Perangkat lunak yang digunakan untuk membangun aplikasi ini adalah Delphi
c. Algoritma kompresi yang digunakan pada kompresi data ini adalah algoritma
Prediction by Partial Matching (PPM)
d. Data yang dijadikan bahan kompresi adalah berupa file dokumen yang
berekstensi .doc, .docx, .rtf, .txt, .xls, .xlsx, .ppt, .pptx, .dan pdf.

1.4.

Tujuan
Adapun tujuan yang ingin dicapai dalam pengerjaan tugas akhir ini adalah
Untuk

membangun

suatu

perangkat

lunak

aplikasi

kompresi

data

menggunakan algoritma PPM (Prediction by Partial Matching) pada dokumen
teks, sehingga dapat memperkecil ukuran data agar data tersebut dapat
dikirimkan dengan relatif cepat.

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

4

1.5.

Manfaat
Adapun manfaat dan tujuan yang ingin diperoleh dari pengerjaan tugas

akhir ini adalah :
a. Dapat menerapkan ilmu selama mengikuti perkuliahan untuk menyelesaikan
permasalahan dalam tugas akhir ini.
b. Dapat mengimplementasikan algorithma prediction by partial matching untuk
membuat aplikasi kompresi data dokumen teks.
c. Membantu pengamanan informasi data dokumen teks agar hanya pihak
tertentu saja yang dapat melihat informasi yang terdapat dalam dokumen teks.

1.6.

Metodologi Penelitian
Adapun metode penelitian yang dipergunakan dalam pengerjaan tugas

akhir ini adalah :
a. Studi Literatur
Mencari referensi dan bahan pustaka tentang teori-teori yang berhubungan
dengan permasalahan yang akan dikerjakan dalam tugas akhir ini.
b. Studi Kasus
Mencari contoh-contoh kasus serupa yang berhubungan dengan permasalahan
dalam tugas akhir ini.
c. Analisis dan Perancangan
Membuat analisa berdasarkan data-data yang sudah dimiliki, membuat model
matematisnya dan merancang alur penyelesaian berdasarkan algoritma PPM.

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

5

Perancangan aplikasi dimulai dengan perancangan basis data dan antar muka
aplikasi, kemudian merancang detail algoritma PPM.
d. Implementasi Program
Mengimplementasikan teknik algoritma yang akan digunakan. Detail
mengenai implementasi program dilakukan sesuai hasil analisis dan
perancangan aplikasi pada tahapan sebelumnya.

e. Pengujian Aplikasi
Pengujian dilakukan pada aplikasi yang telah dibuat. Menguji validitas dan
efektifitas algoritma yang diterapkan pada aplikasi.
f. Evaluasi dan Penarikan kesimpulan
Evaluasi dilakukan untuk mengetahui kinerja aplikasi kompresi data teks
sesuai ukuran dan format data teksnua, selanjutnya dilakukan penarikan
kesimpulan.

1.7.

Sistematika Penulisan
Sistematika penulisan tugas akhir ini adalah sebagai berikut :

BAB I

PENDAHULUAN
Bab ini berisi latar belakang masalah, identifikasi masalah, maksud
dan tujuan yang ingin dicapai, batasan masalah, metodologi
penelitian yang diterapkan dalam memperoleh dan mengumpulkan
data, waktu dan tempat penelitian, serta sistematika penulisan.

BAB II

TINJ AUAN PUSTAKA

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

6

Membahas berbagai konsep dasar dan teori-teori yang berkaitan
dengan topik masalah yang diambil dan hal-hal yang berguna
dalam proses analisis permasalahan.
BAB III

ANALISIS PERMASALAHAN
Menganalisis masalah dari model penelitian untuk memperlihatkan
keterkaitan antar variabel yang diteliti serta model matematis untuk
analisisnya.
.

BAB IV

PERANCANGAN DAN IMPLEMENTASI
Membahas perancangan sistem menggunakan notasi UML dan
pengimplementasian hasil perancangan sistem yang telah dibuat ke
bentuk aplikasi yang akan dibangun.

BAB V

UJ I COBA DAN EVALUASI
Membahas uji coba aplikasi yang dibuat, untuk mengetahui tingkat
keberhasilan kompresi dan prosentasi hasil kompresinya, kemudian
melakukan evaluasi keberhasilan sistem.

BAB VI

PENUTUP
Berisi kesimpulan dan saran yang sudah diperoleh dari hasil
penulisan tugas akhir.

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

BAB II
TINJ AUAN PUSTAKA

2.1.

Konsep Dasar Infor masi
Konsep dasar informasi adalah data yang kemudian diolah dengan

kriteria tertentu untuk menghasilkan informasi yang dibutuhkan. Data dapat
diartikan segala

sesuatu

yang

perlu

diolah

terlebih

dahulu

untuk

mendapatkan suatu informasi. Definisi Sistem Informasi Informasi merupakan
hal yang sangat penting bagi manajemen dalam mengambil suatu keputusan.
Suatu informasi dapat diperoleh dari sistem informasi atau juga disebut
dengan

Processing

system

atau

information Processing

system

atau

information-generating system. Sistem informasi didefinisikan oleh Robert A.
Leitchdan K. Roscoe Davis adalah “suatu sistem didalam sebuah organisasi
yang mempertemukan kebutuhan pengolahan transaksi harian, mendukung
orperasi, bersifat menejerial dan kegiatan strategi dari suatu organisasi dan
menyediakan pihak luar tertentu dengan laporan-laporan yang diperlukan”.
Penggunaan teknologi komputer sangat diperlukan untuk membantu pengolahan
data yang bersifat rutin dan membutuhkan ketelitian yang tinggi diantaranya :
siklus informasi, kualitas informasi, nilai informasi.
a. Siklus Informasi
Siklus informasi data merupakan bentuk yang masih mentah sehingga perlu diolah
untuk proses lebih lanjut. Data diolah melalui suatu model untuk dihasilkan
informasi.Data yang diolah untuk menghasilkan informasi menggunakan suatu
model prosestetentu agar dapat lebih berguna dalam bentuk informasi. Data yang
7

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

8

diolah melalui suatu model menjadi informasi, penerima kemudian menerima
informasi tersebut, membuat suatu keputusan dan melakukan tindakan dan
menghasilkan suatu tindakan yang akan membuat sejumlah data kembali. Data
tersebut akan ditangkap sebagai input, diproses kembali melalui suatu model
sampai membentuk suatu siklus informasi.
Proses
Input

Out put

Data

Dasar

Penerima

Data

Hasil
Tindakan

Keputusan

Gambar 2.1 Siklus Informasi
b. Kualitas Informasi
Kualitas informasi merupakan bagian dari karakteristik informasi,diukur
berdasarkan Relevansi, Tepat waktu, dan Akurasi hal ini dapat digambarkan pada

AKURASI

TEPAT WAKTU

R EL EV A N SI

gambar 2.2 dibawah ini

Gambar 2.2. Komponen Kualitas Informasi

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

9

c. Nilai Informasi
Nilai dari informasi ditentukan dari dua hal, yaitu manfaat dan biaya untuk
mendapatkannya. Suatu informasi dikatakan bernilai bila manfaatnya lebih efektif
dibandingkan dengan biaya untuk mendapatkannya. Akan tetapi perlu
diperhatikan bahwa informasi yang digunakan didalam suatu sistem informasi
umumnya digunakan untuk beberapa kegunaan. Sehingga tidak memungkinkan
dan sulit untuk menghubungkan suatu bagian informasi pada suatu masalah
tertentu dengan biaya untuk memperolehnya. Pengukuran nilai informasi biasanya
dihubungkan dengan analisis Cost Effectiveness atau Cost Benefit.

2.2.

Kompresi Data
Sistem komunikasi dirancang untuk mentransmisi informasi yang

dibangkitkan oleh sumber ke beberapa tujuan. Sumber informasi mempunyai
beberapa bentuk yang berbeda. Sebagai contoh, dalam radio broadcasting, sumber
biasanya sumber audio (suara atau music). dalam TV broadcasting, sumber
informasi biasanya sebuah sumber video yang keluarannya berupa image
bergerak. Output dari sumber-sumber ini adalah sinyal analog dan sumbernya
disebut sumber analog.
Kontras dengan komputer dan tempat penyimpanan data (storage) seperti
disk magnetic atau optical, menghasilkaan ouput berupa sinyal diskrit (biasanya
karakter binary atau ASCII). Sinyal yang menjadi sumbernya biasa disebut
dengan sumber diskrit. baik sumber analog maupun diskrit, sebuah komunikasi
digital dirancang untuk mentransmisi informasi dalam bentuk digital. Sehingga
konsenkuensi keluaran dari sumber harus diubah dahulu menjadi bentuk keluaran

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

10

sumber digital yang biasanya dilakukan pada source encoder. Keluaran dari
sumber tersebut dapat diasumsikan menjadi sebuah digit biner sekuensial.
Pada akhir tahun 40-an dimana dimulainya tahun teori informasi, ide
pengembangan metode coding yang efesien baru dimulai dan dikembangkan.
Dimulainya penjelajahan ide dari entropy, information content dan redudansi.
Salah satu ide yang popular adalah apabila probabilitas dari simbol dalam suatu
pesan diketahui, maka terdapat cara untuk mengkodekan simbol, sehingga pesan
memakan tempat yang lebih kecil. Ide inilah yang menjadi cikal bakal dalam
terciptanya kompresi data.
Model pertama yang muncul untuk kompresi sinyal digital adalah
Shannon-Fano coding. Shannon dan fano (1948) terus menerus mengembangkan
algoritma ini yang menghasilkan codeord biner untuk setiap symbol (unik) yang
terdapat pada data file.
Huffman coding (1952) memakai hampir semua karakteristik dari
Shannon-fano coding. Huffman coding dapat menghasilkan kompresi data yang
efektif dengan mengurangkan jumlah redudansi dalam mengkodingkan simbol.
Telah dapat dibuktikan, bahwa Huffman coding merupakan metode fixed-length
yang paling efesien.
Pada limabelas tahun terakhir, Huffman coding telah digantikan oleh
Arithmetic coding. Arithmetic coding melewatkan ide untuk menggantikan sebuah
simbol masukan dengan kode yang spesifik. Algoritma ini menggantikan sebuah
aliran simbol masukan dengan sebuah angka keluaran single floating-point. Lebih

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

11

banyak bit dibutuhkan dalam angka keluaran, maka semakin rumit pesan yang
diterima.
Algoritma dictionary-based compression menggunakan metode yang
sangat berbeda dalam mengkompres data. Algoritma ini menggantikan string
variable-length dari simbol menjadi sebuah token. Token merupakan sebuah indek
dalam susunan kata di kamus. Apabila token kecil dari susunan kata, maka token
akan menggantikan prase tersebut dan kompresi pun terjadi.
Kompresi data (pemampatan data) merupakan suatu teknik untuk
memperkecil jumlah ukuran data (hasil kompresi) dari data aslinya. Pemampatan
data umumnya diterapkan pada mesin komputer, hal ini dilakukan karena setiap
simbol yang muncul pada komputer memiliki nilai bit-bit yang berbeda. Misal
pada ASCII setiap simbol yang dimunculkan memiliki panjang 8 bit, misal kode
A pada ASCII mempunyai nilai decimal 65, jika dirubah dalam bilangan biner
menjadi 010000001. Pemampatan data digunakan untuk mengurangkan jumlah
bir-bit yang dihasilkan dari setiap simbol yang muncul. Dengan pemampatan ini
diharapkan dapat mengurangi (memperkecil ukuran data) dalam ruang
penyimpanan.

2.2.1. Faktor Penting Kompresi Data
Dalam kompresi data, terdapat 4 (empat) faktor penting yang perlu diperhatikan,
yaitu :


Time process
Yaitu waktu yang dibutuhkan untuk menjalankan proses kompresi.



Completeness

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

12

Yaitu kelengkapan data setelah data tersebut dikompresi.


Ratio Compress
Yaitu ukuran data setelah data tersebut dikompresi



Optimaly
Yaitu perbandingan ukuran data sebelum dikompresi dengan data yang
telah dikompresi.

2.2.2. J enis Kompresi Data
Berdasarkan mode penerimaan data oleh manusia, kompresi data dapat
dibagi menjadi dua, yaitu :
a. Dialoque Mode
yaitu proses penerimaan data dimana pengirim dan penerima seakan berdialog
(real time), dimana kompresi data harus berada dalam batas penglihatan dan
pendengaran mausia. Contohnya pada video conference.
b. Retrieval Mode
yaitu proses penerimaan data tidak dilakukan secara real time. Jenis kompresi ini
dapat dilakukan random access terhadap data dan dapat bersifat interaktif.

2.2.3. Metode Kompresi Data
Berdasarkan tipe peta kode yang digunakan untuk mengubah pesan awal (isi file
input) menjadi sekumpulan codeword, metode kompresi terbagi menjadi dua
kelompok, yaitu :
a. Metode Statik

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

13

Menggunakan peta kode yang selalu sama. Metode ini membutuhkan dua fase
(two-pass) : fase pertama untuk menghitung probabilitas kemunculan tiap
simbol/karakter dan menentukan peta kodenya dan fase kedua untuk mengubah
pesan menjadi kumpulan kode yang akan ditransmisikan. Contohnya pada
Huffman static, arithmetic coding
b. Metode Dinamik (adaptif)
Menggunakan peta kode yang dapat diubah dari waktu ke waktu. Metode ini
disebut adaptif karena peta kode mampu beradaptasi terhadap karakteristik isi file
selama proses kompresi berlangsung. metode ini bersifat onepass, karena isi file
selama dikompres hanya diperlakukan satu kali pembacaan terhadap isi file.
Contohnya pada algoritma LZW dan DMC.
Berdasarkan teknik pengkodean atau pengubahan simbol yang digunakan, metode
kompresi dapat dibagi ke dalam tiga kategori, yaitu :
a. Metode simbolwise
Menghitung peluang kemunculan dari tiap simbol dalam file input, lalu
mengkodekan satu simbol dalam satu waktu, dimana simbol yang lebih sering
muncul diberi kode lebih pendek dibandinglan simbol yang lebih jarang muncul.
Contohnya pada Huffman coding, arithmetic coding.
b. Metode dictionary
Menggantikan karakter/fragmen dalam file input dengan indeks lokasi dari
karakter/fragmen tersebut dalam sebuah kamus (dictionary). Contohnya pada
algoritma LZW

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

14

c. Metode predictive
Menggunakan model finite-context atau finite-state untuk memprediksi distribusi
probabilitas dari simbol-simbol selanjutnya. Contohnya pada algoritma DMC

2.2.4. Teknik Kompresi Data

Teknik kompresi data dapat digolongkan menjadi dua kelompok utama yaitu :
lossy dan lossless. Teknik kompresi secara lossy dimaksudkan dengan teknik
kompresi data dengan menghilangkan ketelitian data utama guna mendapatkan
data sekecil mungkin (kompresi data sebesar mungkin).

2.2.5. Klasifikasi Teknik Kompresi
Teknik kompresi data dapat digolongkan menjadi dua kelompok utama yaitu :
lossy dan lossless. Teknik kompresi secara lossy dimaksudkan dengan teknik
kompresi data dengan menghilangkan ketelitian data utama guna mendapatkan
data sekecil mungkin (kompresi data sebesar mengkin). Teknik kompresi data
secara lossless yaitu teknik kompresi data dengan mengurangkan jumlah data
yang terjadi redudansi (memiliki symbol yang sama) sebelum terjadi kompresi.
a. Lossy Compression
Merupakan teknik kompresi yang menghilangkan beberapa informasi data yang
dianggap tidak penting. Sehingga hasil data yang telah terkompresi tidak sama
dengan data yang sebelum dikompresi. Namun data yang telah terkompresi
tersebut sudah cukup untuk digunakan, walaupun datanya telah berubah.
Keunggulan dari teknik ini adalah file atau data yang telah terkompresi memiliki

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

15

ukuran yang lebih kecil dari ukuran data aslinya. Biasanya teknik kompresi ini
banyak diaplikasikan pada data gambar dan data audio.
b. Lossless Compression
Merupakan teknik kompresi yang mempertahankan kebutuhan informasi yang
dikandung oleh data, sehingga informasi yang terkandung pada file yang telah
terkompresi tetap terjaga meskipun ukurannya telah berubah dari ukuran data
aslinya. Keunggulan dari teknik ini adalah data yang telah terkompresi, apabila
didekompresi kembali akan menghasilkan data yang sama persis dengan data
aslinya. Biasanya teknik kompresi ini banyak diaplikasikan pada data teks.

2.2.6. Encoding Dan Decoding
Teknik kompresi dapat diklasifikasikan menjadi tiga kelompok, antara lain :
a. Entropy Encoding
Merupakan klasifikasi teknik kompresi yang bersifat loseless compression.
Tekniknya tidak berdasarkan media dengan spesifikasi dan karakteristik tertentu,
namun berdasarkan urutan data. Dan statistical encoding pada klasifikasi teknik
ini tidak memperhatikan semantik data. Contoh kelompok teknik kompresi ini
adalah pada Run-Length coding, Huffman coding, Arithmetic coding.
b. Source Coding
Merupakan klasifikasi teknik kompresi yang bersifat lossy compression.
Tekniknya berkaitan dengan data semantik (arti data) dan media. Contoh
kelompok teknik kompresi ini adalah pada prediction (DPCM, DM),

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

16

transformation (FFT, DCT), layered coding (bit position, subsampling, sub-band
coding), vector quantization
c. Hybrid Coding
Merupakan klasifikasi teknik kompresi yang bersifat gabungan antara lossy
compression dan loseless compression. Contoh kelompok teknik kompresi ini
adalah pada JPEG, MPEG, H.261, DVI.
Encoding merupakan teknik untuk mendapatkan kode-kode tertentu (encoder).
Dari kode-kode tersebut dapat diaplikasikan untuk pemampatan data dan
keamanan data. Dari data-data yang telah dikodekan tersebut, format-format isi
dari data tersebut berbentuk kode-kode yang tidak bisa dibaca oleh user. Agar
kode-kode tersebut bisa dibaca oleh user, maka kita perlu mengkodekan ulang
data tersebut. Hal ini biasa dikenal dengan nama decoding (decoder).
Secara umum pemampatan data merupakan merubah suatu simbol-simbol menjadi
suatu kode-kode. Pemampatan dikatakan efektif jika ukuran perolehan kode-kode
tersebut sangat kecil dibandingkan dengan ukuran kode simbol aslinya. Dari suatu
kode-kode atau simbol-simbol dasar suatu model akan dinyatakan dalam kode
khusus.
Proses decoding, yaitu proses pengembalian kode-kode yang telah dibuat menjadi
simbol-simbol yang dikenal oleh user. Proses decoder ini membaca header dari
kode-kode yang berisi informasi simbol dan jumlah simbol yang digunakan,
setelah pembacaan header proses encoder dengan model ditunjukan pada Gambar
2.3, sedangkan proses decoder dengan model ditunjukan pada Gambar 2.4
dibawah ini.

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

17

Gambar 2.3. Model Proses Enkoder

Gambar 2.4. Model Proses Dekode
2.3.

Pengkodean Data

Data disimpan di dalam komputer pada main memory untuk diproses. Sebuah
karakter data disimpan dalam main memory menempati posisi 1 byte. Komputer
generasi pertama, 1 byte terdiri dari 4 bit, komputer generasi kedua, 1 byte terdiri
dari 6 bit dan komputer generasi sekarang, 1 byte terdiri dari 8 bit. Suatu karakter
data yang disimpan di main memory diwakili dengan kombinasi dari digit binary
(binary digit atau bit). Suatu kode biner dapat digunakan untuk mewakili suatu
karakter.
Suatu komputer yang berbeda menggunakan kode biner yang berbeda untuk
mewakili suatu karakter. Komputer yang 1 byte terdiri dari 4 bit, menggunakan
kode binary yang berbentuk kombinasi 4 bit, yaitu BCD (Binary coded decimal).
Komputer yang menggunakan 6 bit untuk 1 bytenya, menggunakan kode biner
yang terdiri dari kombinasi 6 bit, yaitu SBCDIC (Standard Binary Coded Decimal

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

18

Interchange Code). Komputer yang terdiri dari 8 bit, menggunakan kode biner
yang terdiri dari kombinasi 8 bit, yaitu EBCDIC (extended Binary coded decimal
interchange code) atau ASCII (American standard code of information
interchange).

2.3.1. BCD (Binary Coded Decimal)
BCD merupakan kode biner yang digunakan hanya untuk mewakili nilai desimal
saja, yaitu angka 0 sampai dengan 9. BCD menggunakan kombinasi dari 4 bit,
sehingga sebanyak 16 (24 = 16) kemungkinan kombinasi yang dapat diperoleh
dan hanya 10 kombinasi yang dipergunakan.
Kode BCD yang orisinil sudah jarang dipergunakan untuk komputer generasi
sekarang, karena tidak dapat mewakili huruf atau simbol-simbol karakter khusus.

2.3.2. SBCDIC (Standard Binary Coded Decimal Interchange Code)
SBCDIC merupakan kode biner perkembangan dari BCD. BCD dianggap
tanggung, karena masih ada 6 kombinasi yang tidak dipergunakan, tetapi tidak
dapat digunakan untuk mewakili karakter yang lainnya. SBCDIC menggunakan
kombinasi 6 bit , sehingga lebih banyak kombinasi yang bisa dihasilkan, sebanyak
64 kombinasi kode, yaitu 10 kode untuk digit angka, 26 kode untuk huruf
alphabet dan sisanya karakter-karakter khusus yang dipilih.
Posisi bit di SBCDIC dibagi menjadi 2 zone, yaitu 2 bit pertama disebut dengan
alphabet position dan 4 bit berikutnya disebut dengan numeric bit position.

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

19

2.3.3. EBCDIC (Extended Binary Coded Decimal Interchange Code)
EBCDIC terdiri dari kombinasi 8 bit yang memungkinkan untuk mewakili
karakter sebanyak 256 kombinasi karakter. Pada EBCDIC, high-order bits atau 4
bit pertama disebut dengan zone bits dan low order bits atau 4 bit kedua disebut
dengan numeric bit.

2.3.4. ASCII (American Standard Code for Infor mation Interchange)
Kode ASCII yang standard menggunakan kombinasi 7 bit, dengan kombinasi
sebanyak 127 dari 128 kemungkinan kombinasi.
Kode ASCII 7 bit ini terdiri dari dua bagian, yaitu control characters dan
information characters merupakan karakter-karakter yang mewakili data [1].
Karakter-karakter graphic yang tidak dapat diwakili oleh ASCII 7 bit, dapat
diwakili dengan ASCII 8 bit karena lebiih banyak memberikan kombinasi
karakter.

2.4.

Algoritma kompresi PPM

Algoritma Prediction by Partial Matching (PPM) adalah teknik kompresi data
statis berdasarkan konteks pemodelan dan prediksi.. Algoritma ini termasuk
dalam kelas losless compression yaitu tidak menghilangkan informasi sedikitpun,
hanya mewakilkan beberapa informasi yang sama. Metode ini bersifat two-pass
yaitu menggunakan peta kode yang selalu sama, fase pertama untuk menghitung
kemungkinan tiap simbol dan menentukan peta kodenya dan fase kedua untuk
mengubah pesan menjadi kumpulan kode yang akan di transmisikan.

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

20

Pada proses, PPM menjalankan rangkaian model deret konteks, dari 0 hingga nilai
maksimum k yang ditetapkan sebelumnya, untuk memprediksi karakter-karakter
berikutnya. Untuk tiap statistik model konteks order i yang memuat semua simbol
yang telah tersusun, setiap panjang i berikutnya dalam input dan berapa kali
kejadiannya. Peluang kemungkinan dihitung dari statistik-statistik dengan cara:
setiap model, deret 0 hingga deret k, diperoleh dari distribusi peluang
kemungkinan yang terpisah dan secara efektif disatukan ke dalam satu bagian.

Gambar 2.5. Flowchart Algorithma PPM
Model deret terbesar adalah salah satu model yang secara default, digunakan
untuk memprediksi simbol awal. Namun, jika suatu simbol yang tidak diketahui
terhubung dengan suatu simbol “lepas” maka model lebih kecil akan digunakan

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

21

untuk prediksi. Proses akan berlanjut hingga salah satu model deret tertentu
memprediksikan simbol berikutnya.
2.4.1. Pembentukan pohon string
Masalah utama dalam pembentukan string adalah membangun struktur data
dimana semua konteks saling berhubungan dari setiap simbol ke simbol lainnya.
Struktur yang digambarkan disini adalah suatu jenis pohon tertentu. Disebut juga
sebagai tree. Tree adalah pohon, dimana struktur bercabang dari setiap tingkat
ditentukan oleh sebagian item data, tidak oleh keseluruhan item. Dalam proses ini,
deretan konteks N adalah suatu string yang mencakup semua konteks dengan
deret-deret N – 1 hingga 0, sehingga setiap konteks secara efektif menambahkan
satu simbol pada pohon.
Berikut langkah-langkah dalam sebuah pembentukan pohon string zxzyzxxyzx
dalam algoritma PPM adalah sebagai berikut :
1. Masukkan sebuah karakter pada kalimat yang akan di input ke dalam pohon
PPM sebagai node baru pada level 1.
2. Masukkan karakter selanjutnya pada kalimat yang akan di input. Periksa
pohon PPM tersebut, apakah ada node jembatan atau tidak pada pohon PPM,
jika ya, tambahkan karakter sebagai anak node dari jembatan, dan jika tidak,
tambahkan karakter sebagai node baru pada level 1.
3. Periksa node baru yang ditambahkan pada pohon PPM, apakah node tersebut
terletak pada level 1, jika ya, maka proses telah selesai, dan jika tidak cari
node terakhir pada pohon PPM yang mengalami perubahan pada level 1,
kemudian tambahkan node yang di input sebagai anak dari node tersebut.

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

22

4. Periksa node-node pada level 1, apakah ada karakter yang sama dengan
karakter node yang di input, jika ya, tambahkan node,jika tidak, buat node
baru pada level 1.
5. Ulangi langkah no 2, 3 dan 4 sampai karakter-karakter yang ada pada kalimat
yang akan di input telah digunakan pada pohon PPM.
Pada Gambar 2.6 diperlihatkan pembentukan pohon string zxzyzxxyzx di bawah ini :

Gambar 2.6. Proses Pembentukan Pohon String
2.4.2. Proses Encoding
Pada umumnya, algoritma kompresi data melakukan penggantian satu atau lebih
simbol input dengan kode tertentu. Berbeda dengan cara tersebut, algoritma kompresi

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

23

PPM menggantikan satu deretan simbol input dengan sebuah bilangan floating point.
Semakin panjang dan semakin kompleks pesan yang dikodekan, semakin banyak bit
yang diperlukan untuk keperluan tersebut.
Output dari algoritma kompresi PPM ini adalah satu angka yang lebih kecil dari 1 dan
lebih besar atau sama dengan 0. Angka ini secara unik dapat di- decode sehingga
menghasilkan deretan simbol yang dipakai untuk menghasilkan angka tersebut.
Untuk menghasilkan angka output tersebut, tiap simbol yang akan di- encode diberi
satu set nilai probabilitas. Contoh, andaikan kata SWISS_MISS akan di- encode.
Akan didapatkan tabel probabilitas berikut :

Tabel 2.1 Contoh Probabilitas Untuk Kata SWISS_MISS
Karakter

Probabilitas

S

5/10

W

1/10

I

2/10

M

1/10

_

1/10

Setelah probabilitas tiap karakter diketahui, karakter akan diberikan range tertentu
yang nilainya berkisar di antara 0 dan 1, sesuai dengan probabilitas yang ada.
Dalam hal ini tidak ada ketentuan urut-urutan penentuan segmen, asalkan antara
encoder dan decoder melakukan hal yang sama. Dari Tabel 2.1 di atas dibentuk
Tabel 2.2 berikut:

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

24

Tabel 2.2 Range Simbol Untuk Kata SWISS_MISS

Dari tabel ini, satu hal yang perlu dicatat adalah tiap karakter melingkupi range
yang disebutkan kecuali bilangan yang tinggi.
Hasil proses enkoding dapat dilihat dalam Tabel 2.3 berikut ini :
Tabel 2.3 Proses Encoding untuk Kata “SWISS_MISS”
Karakter

LOW

HIGH

CR

0.0

1.0

1.0

S

0.5

1.0

0.5

W

0.70

0.75

0.05

I

0.71

0.72

0.001

S

0.715

0.72

0.0005

S

0.7175

0.72

0.0025

_

0.7175

0.71775

0.00025

M

0.717525

0.717550

0.000025

I

0.717530

0.717535

0.0000025

S

0.7175325

0.717535

0.00000025

S

0.71753375

0.717535

0.00000125

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

25

Dalam melakukan proses encoding dipakai algoritma berikut:
Set low = 0.0
Set high = 1.0
While (simbol input masih ada) do
Ambil simbol input
CR = high – low
High = low + CR*high_range (simbol)
Low = low + CR*low_range (simbol)
End While
Cetak Low
Di sini ‘’Low adalah output dari proses algoritma PPM.
Untuk kata ‘’SWISS_MISS di atas, pertama kita ambil karakter “S. Nilai CR
adalah 1-0 = 1. High_range (S) = 1.0, Low_range(S) = 0.5.
Kemudian didapatkan nilai high = 0.00 + CR*1.0 =1.0 low = 0.00 + CR*0.5 = 0.5
Kemudian diambil karakter „W. Nilai CR adalah 1.0 – 0.5 = 0.5.
High_range(W)= 0.5, Low_range (W) = 0.4. Kemudian didapatkan nilai
high = 0.5 + CR*0.5 = 0.75 low = 0.5 + CR*0.4 = 0.70
Dari proses ini didapatkan nilai
Low = 0.71753375 Nilai inilah yang ditransmisikan untuk membawa pesan
„SWISS_MISS.

2.4.3. Proses Decoding
Berikut ini adalah cara melakukan decoding, perhatikan tabel 2.4 berikut ini :

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

26

Tabel 2.4. Proses Decoding untuk Kata “SWISS_MISS”

ES

Karakter

L

H

CR

0.4350675

S

0.5

1.0

0.5

0.350675

W

0.4

0.5

0.1

0.753375

I

0.2

0.4

0.2

0.50675

S

0.5

1.0

0.5

0.0135

S

0.5

1.0

0.5

0.135

_

0

0.1

0.1

0.35

M

0.1

0.2

0.1

0.75

I

0.2

0.4

0.2

0.5

S

0.5

1.0

0.5

0

S

0.5

1.0

0.5

Untuk melakukan decoding dipakai algoritma berikut:
Ambil encoded-symbol (ES)
Do
Cari range dari simbol yang melingkupi ES
Cetak simbol
CR = high_range – low_range
ES = ES – low_range
ES = ES / CR
Until simbol habis

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

27

Dalam hal ini simbol habis bisa ditandai dengan simbol khusus (End of File
misalnya) atau dengan menyertakan panjang teks waktu dilakukan proses
kompresi.
Untuk pesan yang tadi di- encode (ES = 0.71753375) dilakukan proses decoding
sebagai berikut. Didapatkan range simbol yang melingkupi ES adalah
simbol/karakter „T.
Low_range= 0.5
High_range=1.0
CR = 1.0 - 0.5 = 0.5
ES = 0.71753375 – low_range
ES = 0.21753375
ES = 0.21753375 / CR
ES = 0.4350675

2.5.

Unified Modelling Language
Unified Modelling Language (UML) adalah sebuah "bahasa" yang telah

menjadi standar dalam industri untuk menentukan, visualisasi, merancang dan
mendokumentasikan artifact dari sistem software, untuk memodelkan bisnis dan
sistem non software lainnya. UML merupakan suatu kumpulan teknik terbaik
yang telah terbukti sukses dalam memodelkan sistem yang besar dan kompleks.
Dengan menggunakan UML kita dapat membuat model untuk semua
jenis aplikasi piranti lunak, dimana aplikasi tersebut dapat berjalan pada piranti
keras, sistem operasi dan jaringan apapun, serta ditulis dalam bahasa

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

28

pemrograman apapun. Tetapi karena UML juga menggunakan class dan operation
dalam konsep dasarnya, maka ia lebih cocok untuk penulisan piranti lunak dalam
bahasa-bahasa berorientasi objek seperti C++, Java, VB.NET. Walaupun
demikian, UML tetap dapat digunakan untuk modeling aplikasi prosedural dalam
VB atau C.
Seperti bahasa-bahasa lainnya, UML mendefinisikan notasi dan
syntax/semantik. Notasi UML merupakan sekumpulan bentuk khusus untuk
menggambarkan berbagai diagram piranti lunak. Setiap bentuk memiliki makna
tertentu, dan UML syntax mendefinisikan bagaimana bentuk-bentuk tersebut
dapat dikombinasikan. Notasi UML terutama diturunkan dari 3 notasi yang telah
ada sebelumnya: Grady Booch OOD (Object-Oriented Design), Jim Rumbaugh
OMT (Object Modeling Technique), dan Ivar Jacobson OOSE (Object-Oriented
Software Engineering).
Sejarah UML sendiri cukup panjang. Sampai era tahun 1990 seperti kita
ketahui puluhan metodologi pemodelan berorientasi objek telah bermunculan di
dunia. Diantaranya adalah: metodologi Booch, metodologi Coad , metodologi
OOSE, metodologi OMT, metodologi Shlaer-Mellor, metodologi Wirfs-Brock,
dan sebagainya. Masa itu terkenal dengan masa perang metodologi (method war)
dalam pendesainan berorientasi objek. Masing-masing metodologi membawa
notasi sendiri-sendiri, yang mengakibatkan timbul masalah baru apabila kita
bekerja sama dengan group/perusahaan lain yang menggunakan metodologi yang
berlainan.

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

29

Dimulai pada bulan Oktober 1994 Booch, Rumbaugh dan Jacobson, yang
merupakan tiga tokoh yang boleh dikatakan metodologinya banyak digunakan
mempelopori usaha untuk penyatuan metodologi pendesainan berorientasi objek.
Pada tahun 1995 direlease draft pertama dari UML (versi 0.8). Sejak tahun 1996
pengembangan tersebut dikoordinasikan oleh Object Management Group (OMG –
http://www.omg.org). Tahun 1997 UML versi 1.1 muncul, dan saat ini versi
terbaru adalah versi 1.5 yang dirilis bulan Maret 2003. Booch, Rumbaugh dan
Jacobson menyusun tiga buku serial tentang UML pada tahun 1999. Sejak saat
itulah UML telah menjelma menjadi standar bahasa pemodelan untuk aplikasi
berorientasi objek.
Object Management Group, Inc. (OMG) adalah sebuah organisasi
international yang dibentuk pada 1989, didukung lebih dari 800 anggota, terdiri
dari perusahaan sistem informasi, software developer, dan pada user sistem
komputer. Organisasi ini salah satunya bertugas membuat spesifikasi “manajemen
objek” untuk menetapkan kerangka bersama dalam rekayasa software.

Gambar 2.7. Metodologi dalam UML
Sasaran

OMG

adalah

membantu

perkembangan

object-oriented

technology dan mengarahkannya dengan mendirikan Object Management

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

30

Architecture (OMA). OMA menentukan infrastruktur konseptual yang didasarkan
pada seluruh spesifikasi yang dikeluarkan OMG.
OMG kemudian mengeluarkan UML, dimana dengan adanya UML ini
diharapkan dapat mengurangi kekacauan dalam bahasa pemodelan yang selama
ini terjadi dalam lingkungan industri. UML diharapkan juga dapat menjawab
masalah penotasian dan mekanisme tukar menukar model yang terjadi selama ini.
Saat ini piranti lunak semakin luas dan besar lingkupnya, sehingga tidak
bisa lagi dibuat asal-asalan. Piranti lunak saat ini seharusnya dirancang dengan
memperhatikan hal-hal seperti scalability, security, dan eksekusi yang robust
walaupun dalam kondisi yang sulit. Selain itu arsitekturnya harus didefinisikan
dengan jelas, agar bug mudah ditemukan dan diperbaiki, bahkan oleh orang lain
selain programmer aslinya. Keuntungan lain dari perencanaan arsitektur yang
matang adalah dimungkinkannya penggunaan kembali modul atau komponen
untuk aplikasi piranti lunak lain yang membutuhkan fungsionalitas yang sama.
Pemodelan (modeling) adalah proses merancang piranti lunak sebelum
melakukan pengkodean (coding). Model piranti lunak dapat dianalogikan seperti
pembuatan blueprint pada pembangunan gedung. Membuat model dari sebuah
sistem yang kompleks sangatlah penting karena kita tidak dapat memahami sistem
semacam itu secara menyeluruh. Semakin komplek sebuah sistem, semakin
penting pula penggunaan teknik pemodelan yang baik.
Dengan menggunakan model, diharapkan pengembangan piranti lunak
dapat memenuhi semua kebutuhan pengguna dengan lengkap dan tepat, termasuk
faktor-faktor seperti scalability, robustness, security, dan sebagainya. Kesuksesan

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

31

suatu pemodelan piranti lunak ditentukan oleh tiga unsur, yang kemudian terkenal
dengan sebutan segitiga sukses (the triangle for success). Ketiga unsur tersebut
adalah metode pemodelan (notation), proses (process) dan tool yang digunakan.
Memahami notasi pemodelan tanpa mengetahui cara pemakaian yang sebenarnya
(proses) akan membuat proyek gagal. Dan pemahaman terhadap metode
pemodelan dan proses disempurnakan dengan penggunaan tool yang tepat.
UML menyediakan beberapa notasi dan artifact standar yang bisa
digunakan sebagai alat komunikasi bagi para pelaku dalam proses analisis dan
desain. Artifact didalam UML didefinisikan sebagai informasi dalam bentuk yang
digunakan atau dihasilkan dalam proses pengembangan perangkat. Contohnya
adalah source code yang dihasilkan oleh proses pemrograman.
Yang harus diperhatikan untuk menjaga konsistensi antar artifact selama
proses analisis dan desain adalah bahwa setiap perubahan yang terjadi pada satu
artifact harus juga dilakukan pada atifact sebelumnya.
Untuk membuat suatu model, UML memiliki diagram grafis sebagai
berikut
use case diagram
class diagram
behavior diagram
statechart diagram
activity diagram
interaction diagram
o sequence diagram

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

32

o collaboration diagram
implementation diagram
component diagram
deployment diagram
Diagram-diagram tersebut diberi nama berdasarkan sudut pandang yang berbedabeda terhadap sistem dalam proses analisis atau rekayasa.
Dibuatnya berbagai jenis diagram diatas karena :
1. Setiap sistem yang kompleks selalu paling baik jika didekati melalui
himpunan berbagai sudut pandang yang kecil yang satu sama lain hampir
saling bebas (independent). Sudut pandang tunggal senantiasa tidak
mencukupi untuk melihat sistem yang besar dan kompleks.
2. Diagram yang berbeda-beda tersebut dapat menyatakan tingkatan yang
berbeda-beda dalam proses rekayasa.
3. Diagram-diagram tersebut dibuat agar model yang dibuat semakin mendekati
realitas.

2.6.

Semantik Dalam UML
OMG telah menetapkan semantik (makna istilah) semua notasi UML

dalam model struktural dan model behavior. Model struktural (model statis),
menekankan stuktur obyek dalam sebuah sistem, menyangkut kelas-kelas,
interface, atribut dan hubungan antar komponen. Model behavioral (model
dinamis), menekankan perilaku obyek dalam sebuah sistem, termasuk metode,
interaksi, kolaborasi dan state history.

Hak Cipta © milik UPN "Veteran" Jatim :
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.

33

Tujuan utama UML diantaranya untuk :
1. Memberikan model yang siap pakai, bahasa pemodelan visual yang ekspresif
untuk mengembangkan dan