• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2017

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

Copied!
84
0
0

Teks penuh

(1)

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

(2)

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

(3)

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

(4)

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

(5)

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.

.

(6)

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 ( Pr ediction 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

(7)

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

(8)

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 Kompr esi Data Teks Menggunakan Algoritma PPM

(Pr ediction By Partial Matching).

1.2. Perumusan Masalah

(9)

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

(10)

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

(11)

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.

(12)

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

(13)

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

(14)

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.

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

(15)

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. Kompr esi 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

(16)

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

(17)

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 Kompr esi Data

Dalam kompresi data, terdapat 4 (empat) faktor penting yang perlu diperhatikan,

yaitu :

Time process

Yaitu waktu yang dibutuhkan untuk menjalankan proses kompresi.

(18)

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 Kompr esi 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 Kompr esi Data

Berdasarkan tipe peta kode yang digunakan untuk mengubah pesan awal (isi file

input) menjadi sekumpulan codeword, metode kompresi terbagi menjadi dua

kelompok, yaitu :

(19)

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

(20)

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 Kompr esi 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 Kompr esi

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.

(21)

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

(22)

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

(23)

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

(24)

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 (Standar d Binar y 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

(25)

2.3.3. EBCDIC (Extended Binar y 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 Standar d 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

(26)

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

(27)

untuk prediksi. Proses akan berlanjut hingga salah satu model deret tertentu

memprediksikan simbol berikutnya.

2.4.1. Pembentukan pohon str ing

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,

(28)

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.Pr oses Encoding

Pada umumnya, algoritma kompresi data melakukan penggantian satu atau lebih

(29)

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 Pr obabilitas

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

(30)

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

(31)

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. Pr oses Decoding

(32)

Tabel 2.4. Proses Decoding untuk Kata “SWISS_MISS”

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

(33)

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.

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

(34)

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

(35)

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

(36)

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

(37)

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.

(38)

o collaboration diagram

implementation diagram

component diagram

deployment diagram

Diagram-diagram tersebut diberi nama berdasarkan sudut pandang yang

berbeda-beda 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,

(39)

Tujuan utama UML diantaranya untuk :

1. Memberikan model yang siap pakai, bahasa pemodelan visual yang ekspresif

untuk mengembangkan dan saling menukar model dengan mudah dan

dimengerti secara umum.

2. Memberikan bahasa pemodelan yang bebas dari berbagai bahasa

pemrograman dan proses rekayasa.

3. Menyatukan praktek-praktek terbaik yang terdapat dalam bahasa pemodelan.

Pertama, UML menggabungkan konsep Booch, OMT dan OOSE, sehingga UML

merupakan suatu bahasa pemodelan tunggal yang umum dan digunakan secara

luas oleh para user ketiga metode tersebut dan bahkan para user metode lainnya.

Kedua, UML menekankan pada apa yang dapat dikerjakan dengan metode-meode

tersebut.

Ketiga, UML berfokus pada suatu bahasa pemodelan standar, bahkan pada proses

standar. Meskipun UML harus diaplikasikan dalam konteks sebuah proses, dari

pengalaman, bahwa organisasi dan masalah yang berbeda juga memerlukan

proses yang berbeda pula.

UML tidak mencakup :

a. Bahasa Pemrograman

UML adalah bahasa pemodelan visual, bukan dimaksudkan untuk menjadi suatu

bahasa pemrograman visual, tetapi UML memberikan arah untuk bergerak kearah

kode.

(40)

Membuat standar sebuah bahasa diperlukan oleh tool-tool dan proses. UML

mendefinisikan semantik dan notasi, bukan sebuah tool. Contoh tool yang

menggunakan UML sebagai bahasanya adalah Rational Rose dan Enterprise

Architect.

c. Proses rekayasa

UML digunakan sebagai bahasa dalam proyek dengan proses yang berbeda-beda.

UML bebas dari proses dan mendefinisikan sebuah proses standar bukan tujuan

UML atau RFP dari OMG. Dalam pembahasan ini kita akan menggunakan sebuah

proses yang dikeluarkan Rational Software, yaitu Rational Unified Process (RUP)

2.7. Notasi Dalam UML

2.7.1. Actor

Gambar 2.8. Notasi Actor

Actor menggambarkan segala pengguna software aplikasi (user). Actor

memberikan suatu gambaran jelas tentang apa yang harus dikerjakan software

aplikasi. Sebagai contoh sebuah actor dapat memberikan input kedalam dan

menerima informasi dari software aplikasi, perlu dicatat bahwa sebuah actor

berinteraksi dengan use case, tetapi tidak memiliki kontrol atas use case. Sebuah

actor mungkin seorang manusia, satu device, hardware atau sistem informasi

lainnya.

(41)

2.7.2. Use Case

Gambar 2.9. Notasi Use Case

Use case menjelaskan urutan kegiatan yang dilakukan actor dan sistem

untuk mencapai suatu tujuan tertentu. Walaupun menjelaskan kegiatan, namun

use case hanya menjelaskan apa yang dilakukan oleh actor dan sistem bukan

bagaimana actor dan sistem melakukan kegiatan tersebut.

Use-case Konkret adalah use case yang dibuat langsung karena keperluan actor.

Actor dapat melihat dan berinisiatif terhadapnya

Use-case Abstrak adalah use case yang tidak pernah berdiri sendiri. Use case

abstrak senantiasa termasuk didalam (include), diperluas dari (extend) atau

memperumum (generalize) use case lainnya. Untuk menggambarkannya dalam

use case model biasanya digunakan association relationship yang memiliki

stereotype include, extend atau generalization relationship. Hubungan include

menggambarkan bahwa suatu use case seluruhnya meliputi fungsionalitas dari use

case lainnya. Hubungan extend antar use case berarti bahwa satu use case

merupakan tambahan fungsionalitas dari use case yang lain jika kondisi atau

(42)

2.7.3. Class

Gambar 2.10. Notasi Class

Class merupakan pembentuk utama dari sistem berorientasi obyek,

karena class menunjukkan kumpulan obyek yang memiliki atribut dan operasi

yang sama. Class digunakan untuk mengimplementasikan interface.

Class digunakan untuk mengabstraksikan elemen-elemen dari sistem yang sedang

dibangun. Class bisa merepresentasikan baik perangkat lunak maupun perangkat

keras, baik konsep maupun benda nyata.

Notasi class berbentuk persegi panjang berisi 3 bagian: persegi panjang

paling atas untuk nama class, persegi panjang paling bawah untuk operasi, dan

persegi panjang ditengah untuk atribut.

Atribut digunakan untuk menyimpan informasi. Nama atribut

menggunakan kata benda yang bisa dengan jelas merepresentasikan informasi

yang tersimpan didalamnya. Operasi menunjukkan sesuatu yang bisa dilakukan

oleh obyek dan menggunakan kata kerja.

2.7.4. Inter face

(43)

Interface merupakan kumpulan operasi tanpa implementasi dari suatu class.

Implementasi operasi dalam interface dijabarkan oleh operasi didalam class. Oleh

karena itu keberadaan interface selalu disertai oleh class yang

mengimplementasikan operasinya. Interface ini merupakan salah satu cara

mewujudkan prinsip enkapsulasi dalam obyek.

2.7.5. Interaction

Gambar 2.12. Notasi Interaction

Interaction digunakan untuk menunjukkan baik aliran pesan atau informasi antar

obyek maupun hubungan antar obyek. Biasanya interaction ini dilengkapi juga

dengan teks bernama operation signature yang tersusun dari nama operasi,

parameter yang dikirim dan tipe parameter yang dikembalikan.

2.7.6. Note

Gambar 2.13. Notasi Note

Note digunakan untuk memberikan keterangan atau komentar tambahan dari suatu

elemen sehingga bisa langsung terlampir dalam model. Note ini bisa disertakan ke

(44)

2.7.7. Dependency

Gambar 2.14. Notasi Dependency

Dependency merupakan relasi yang menunjukan bahwa perubahan pada salah satu

elemen memberi pengaruh pada elemen lain. Elemen yang ada di bagian tanda

panah adalah elemen yang tergantung pada elemen yang ada dibagian tanpa tanda

panah.

Terdapat 2 stereotype dari dependency, yaitu include dan extend. Include

menunjukkan bahwa suatu bagian dari elemen (yang ada digaris tanpa panah)

memicu eksekusi bagian dari elemen lain (yang ada di garis dengan panah).

Extend menunjukkan bahwa suatu bagian dari elemen di garis tanpa panah bisa

disisipkan kedalam elemen yang ada di garis dengan panah.

2.7.8. Association

Gambar 2.15. Notasi Asociation

Association menggambarkan navigasi antar class (navigation), berapa banyak

obyek lain yang bisa berhubungan dengan satu obyek (multiplicity antar class)

dan apakah suatu class menjadi bagian dari class lainnya (aggregation).

Navigation dilambangkan dengan penambahan tanda panah di akhir garis.

Bidirectional navigation menunjukkan bahwa dengan mengetahui salah satu class

(45)

navigation hanya dengan mengetahui class diujung garis association tanpa panah

kita bisa mendapatkan informasi dari class di ujung dengan panah, tetapi tidak

sebaliknya. Aggregation mengacu pada hubungan “has-a”, yaitu bahwa suatu

class memiliki class lain, misalnya Rumah memiliki class Kamar.

2.7.9. Generalization

Gambar 2.16. Notasi Generalization

Generalization menunjukkan hubungan antara elemen yang lebih umum ke

elemen yang lebih spesifik. Dengan generalization, class yang lebih spesifik

(subclass) akan menurunkan atribut dan operasi dari class yang lebih umum

(superclass) atau “subclass is superclass”. Dengan menggunakan notasi

generalization ini, konsep inheritance dari prinsip hirarki dapat dimodelkan.

2.7.10.Realization

Gambar 2.17. Notasi Realization

Realization menunjukkan hubungan bahwa elemen yang ada di bagian tanpa

panah akan merealisasikan apa yang dinyatakan oleh elemen yang ada di bagian

dengan panah. Misalnya class merealisasikan package, component merealisasikan

(46)

2.8. Embarcadero Delphi 2010

Delphi merupakan alat bantu pengembangan aplikasi yang berbasis

visual. Perangkat ini merupakan hasil pengembangan dari bahasa pemrograman

pascal yang diciptakan oleh Niklaus Wirth. Pada masa itu, Wirth bermaksud

membuat bahasa pemrograman tingkat tinggi sebagai alat bantu mengajar logika

pemrograman komputer kepada para mahasiswanya.

Bahasa pemrograman pascal ini kemudian dikembangkan oleh Borland

yang merupakan salah satu perusahaan software menjadi sebuah tools dengan

dibuatkan kompiler dan dijual ke pasar dengan nama TURBO PASCAL.

Seiring dengan ditemukannya metode pemrograman berorientasi obyek,

bahasa pemrograman pascal berevolusi menjadi object pascal dan dikembangkan

oleh Borland dengan nama Borland Delphi.

Keberhasilan Borland dalam mengembangkan Delphi menjadikan salah

satu bahasa yang populer dan disukai oleh banyak programmer, disamping Visual

Basic yang dikeluar Microsoft di kemudian hari.

Lingkungan pengembangan Delphi yang mudah, intuitif dan

memudahkan pemakai, berhasil melampaui popularitas rivalnya, yaitu Visual

Basic, sehingga pernah menyandang predikat “VB-Killer”.

Karena tuntutan perkembangan teknologi, Borland berganti nama

menjadi Code Gear, tetapi tetap mempergunakan nama Delphi untuk tools yang

(47)

Embarcadero dan namanya pun berubah menjadi Embarcadero RAD Studio

dengan tetap mempertahankan Delphi sebagai salah satu tools-nya.

Beberapa kelebihan yang dimiliki oleh Embarcadero Delphi 2010 ini

antara lain :

1. Delphi dibangun dengan menggunakan arsitektur native compiler, sehingga

proses kompilasi instruksi menjadi bahasa mesin menjadi lebih cepat.

2. Semua file yang disertakan saat proses kompilasi, digabungkan menjadi satu

sesuai dengan arsitektur native compiler, sehingga mengurangi

ketergantungan terhadap library ataupun file-file pendukung lainya, sesuai

dengan prinsip build once, runs everywhere

3. Delphi mempunyai kemampuan selective object linking, sehingga apabila

terdapat pemanggilan sebuah library dan ternyata tidak terdapat instruksi

dalam library tersebut yang dipergunakan dalam system, maka secara

otomatis, kompiler tidak akan menyertakan library tersebut dalam proses

kompilasinya. Hal ini berbeda dengan tools lain yang tidak mempunyai

kemampuan seperi itu. Dengan adanya kemampuan tersebut, maka file

eksekusi yang dihasilkan delphi menjadi lebih optimal.

4. Lingkungan pengembangan Delphi sangat intuitif karena semua komponen

yang menjadi alat utama desain visual telah ditampilkan saat pertama kali

langsung dapat diamati oleh user dan dapat digunakan secara langsung.

(48)

Gambar 2.19. Tampilan Awal Delphi

Dalam delphi seperti halnya bahasa visual lainnya menyediakan

komponen. Komponen adalah “jantung” bagi pemograman visual. Componen

Palette telah terbagi menjadi berbagai jenis komponen, diantaranya adalah

Standard, Additional, Win32, System, dan beberapa lainnya. Berikut ini adalah

uraian yang komponen palet yang paling sering dipergunakan, termasuk dalam

tugas akhir ini.

(49)

Tampak pada palet standard diatas (dengan urutan dari kiri ke kanan),

adalah frame, main menu, pop up menu, label, edit text, memo, button, check box,

radio button, list box, combo box, scroll bar, group box, radio group, panel dan

action list.

Gambar 2.21. Daftar Komponen Palet Additional

Pada palet additional terdapat komponen bit button, speed button, mask

edit, string grid, draw grid, image, shape, bevel, scroll box, list box, splitter, static

text, tlink label, control bar, application events, value list edit, labeled edit,

buttoned edit, color box, color list box, category button, button group, dock tab

set, tab set, tray icon, flow panel, grid panel, balloon hint, category group dan

action manager.

Gambar 2.22. Daftar Komponen Palet Win 32

Pada palet win 32 terdapat komponen tab control, page control, image

(50)

month calendar, tree view, list view, header control, status bar, tool bar, cool bar,

page scroller, Combo Box Ex, XP Manifest, Shell Resource.

Gambar 2.23. Daftar Komponen Palet System

Komponen yang terdapat dalam palet system adalah timer, paint box,

media player, ole container, comadmin dialog, DDE Client Conv, DDE Client

Item, DDE Server Conv dan DDE Server Item.

Gambar 2.24. Komponen Palet Dialog

Komponen yang terdapat dalam palet dialog adalah open dialog, save

dialog, open picture dialog, save picture dialog, open text file dialog, save text file

dialog, font dialog, color dialog, print dialog, printer setup dialog, find dialog,

replace dialog, page setup dialog.

Sebuah proyek Delphi akan terdiri dari berberapa file. Ada file yang

menyimpan program dan ada file lain yang menyimpan binari, gambar. Karena

(51)

sebuah aplikasi pada sebuah folder. Berbagai jenis file yang dibuat saat

membangun aplikasi menggunakan Delphi adalah sebagai berikut :

Tabel 2.5. Jenis-jenis File Dalam Delphi

Jenis File Keterangan

.dproj File proyek, fungsinya untuk linking object

.dfm File form, fungsinya menyimpan nilai properti form

.pas File unit, berisi source code prosedur dan fungsi

.dpk File package, berisi instalasi komponen

.res File resource

.cfg File konfigurasi proyek

.dof File pilihan proyek

.dcu Hasil kompilasi file .pas

(52)

Analisa adalah tahap aktifitas kreatif dimana analis berusaha memahami

permasalahan secara mendalam. Ini adalah proses interative yang terus berjalan

hingga permasalahan dapat dipahami dengan benar. Analisis bertujuan untuk

mendapatkan pemahaman secara keseluruhan tentang sistem yang akan dibuat

berdasarkan masukan dari pihak-pihak yang berkepentingan dengan sistem

tersebut.

3.1. Analisa Masalah

Permasalahan yang dibuat dalam tugas akhir ini adalah membuat

simulasi algoritma PPM untuk mengompresi data, kemudian

mengimplementasikannya pada proses pengiriman data. Hasil simulasi algoritma

PPM yang telah dibuat ini kemudian dilakukan uji coba, sehingga kita bisa

melihat hasil kompresi dan simulasi yang telah dibuat. Data dari hasil penelitian

dengan metode PPM ini beserta pengimplementasiannya akan dibandingkan

dengan data aslinya. Perbandingan yang akan dilakukan adalah berupa ukuran dan

waktu kompresi pada data yang sebelum dikompresi dan data yang sesudah

dikompresi serta perbandingan proses transfer data antara data yang sebelum

(53)

Dari perbandingan ini akan diperoleh kelebihan dan kekurangan dari

algoritma ini, dan selanjutnya dari perbandingan tersebut akan diperoleh

kesimpulan.

3.2. Analisis dan Kebutuhan fungsional

a. Actor Identification

Tahap pertama yang dilakukan dalam melakukan analisis berorientasi

objek menggunakan UML adalah menentukan actor atau pengguna sistem. Kata

aktor dalam konteks UML, menampilkan peran (roles) yang pengguna (atau

sesuatu di luar sistem yang dikembangkan yang dapat berupa perangkat keras, end

user, sistem yang lain, dan sebagainya).

b. Analisis dan Kebutuhan non-fungsional

Analisis dan kebutuhan non-fungsional meliputi analisis dan kebutuhan

pengguna, analisis dan kebutuhan perangkat keras, serta analisis dan kebutuhan

perangkat lunak.

c. Analisis dan Kebutuhan Pengguna (user)

Pengguna diartikan sebagai orang yang mengakses dan menggunakan

perangkat lunak aplikasi kompresi algoritma PPM, dalam hal ini pengguna harus

memiliki kemampuan dasar untuk mengoperasikan komputer dan memiliki

(54)

3.3. Use Case Diagram

Use case diagram digunakan untuk menggambarkan fungsionalitas yang

diharapkan dari sebuah sistem. Sebuah use case merepresentasikan sebuah

interaksi antara aktor dengan sistem. Use case diagram pada Gambar 3.1

menggambarkan bagaimana proses yang terjadi pada aplikasi kompresi data dan

transfer data serta bagaimana pengguna melakukan interaksi terhadap user.

Pada use case dalam gambar 3.1 tersebut terjadi beberapa proses yaitu :

1. User dapat melakukan proses kompresi file

2. User dapat melakukan proses dekompresi file

Gambar 3.1. Use Case Diagram Aplikasi Kompresi Data

3.4 Sequence Diagram

Data Sequence diagram menggambarkan interaksi antar objek di dalam

dan di sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa

message yang digambarkan terhadap waktu. Sequence diagram terdiri atar

(55)

Sequence diagram biasa digunakan untuk menggambarkan skenario atau

rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event

untuk menghasilkan output tertentu. Diawali sesuatu yang men-trigger aktivitas

tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa

yang dihasilkan.

Sequence Diagram yang digambarkan dalam perancangan sistem adalah

sebagai berikut :

3..4.1 Sequence Diagr am Compress

Sequence diagram menu compress dapat dilihat pada gambar :

Gambar 3.2. Sequence Diagram Compress

Pada sequence diagram di atas terjadi beberapa proses yaitu :

1. User masuk ke page compress

(56)

3. Membuat file hasil kompresi

4. Melakukan proses kompresi dan sistem menampilkan informasi file yang telah

dikompres

3.4.2 Sequence Diagram Decompress

Pada sequence diagram decompress di bawah ini terjadi beberapa proses yaitu :

1. User masuk ke page decompress

2. Menyimpan file hasil dekompresi

3. Melakukan proses dekompresi dan sistem menampilkan informasi file yang telah

didekompres.

Sequence diagram menu decompress dapat dilihat pada gambar 3.3 dibawah ini :

Gambar 3.3. Sequence Diagram Decompress

(57)

Untuk dapat memahami algorithma PPM berikut ini adalah cara kerja

algorithma PPM :

Gambar 3.4. Model Sekuensial Urutan Prediksi Kode Dalam Algorithma PPM

Input stream data sebagai xn = (X1, x2,..., Xn), xi ∈ A, di mana x n adalah

urutan simbol n dari alfabet A. Kemudian Untuk setiap simbol xi, I ∈ {1, 2,. . . ,

N}, dari aliran data masukan berdasarkan probabilitas kondisional p (xi| xi-1).

Encoder dan decoder beroperasi secara independen dari satu sama lain.

Dalam rangka untuk berhasil encode dan decode semua simbol, baik encoder dan

(58)

probabilitas kondisional p sama (xi| s) untuk masing-masing diberikan simbol xi

urutan s.

Kemudian gunakan konteks yang terbatas-model simbol untuk

memperkirakan distribusi probabilitas untuk simbol mendatang. Sebuah konteks k

order urutan simbol k berturut-turut dari aliran input data. Konteks ketertiban k

dari xi simbol arus adalah urutan simbol c ki = (xi-k, xi-(k-1),. . . , Xi-1).

Demikian pula, konteks dari setiap simbol k dilambangkan sebagai ck.

Himpunan semua konteks kemungkinan dari panjang k dapat

direpresentasikan sebagai pohon M-ary dengan kedalaman k, di mana M = | A |.

Mengingat K konteks panjang maksimum, model PPM adalah sebuah M-ary

konteks kedalaman pohon K dimana setiap konteks ck, K ≤ K, berisi satu set entri

simbol α ∈ A yang yang sebelumnya terlihat di ck. Setiap entri berisi hit ungan

jumlah penampilan simbol yang sesuai di ck.

P kondisional probabilitas (α | ck) menunjukkan perkiraan probabilitas

simbol α yang ditemukan di c konteks k, Dan itu adalah ditentukan berdasarkan

jumlah frekuensi dari semua simbol dilihat dalam konteks ck. untuk kasus ketika

simbol α sebelumnya tidak terlihat di ck (yaitu p (α | ck) = 0, model PPM

menerapkan mekanisme melarikan diri untuk beralih antara lama untuk konteks

(59)

yang berisi semua symbol dari alfabet A. Dengan cara ini, masalah

memperkirakan prediksi probabilitas peristiwa novel diterjemahkan ke konteks

switching dari konteks lebih lama untuk yang lebih pendek sampai simbol

masukan ditemukan.

Perhatikan bahwa simbol masukan xi dikodekan dengan perkiraan

probabilitas dari p (xi| c) = Li karena jumlah kumulatif dari semua simbol yang

sebelumnya dihadapi, xi, Adalah de facto dikodekan dengan p (xi| xi). Setelah

pemrosesan setiap simbol, frekuensi jumlah untuk entri yang sudah ada dan

(60)

Perancangan sistem adalah suatu proses yang menggambarkan

bagaimana suatu sistem dibangun untuk memenuhi kebutuhan pada fase analisis.

Adapun tahapan yang dilakukan dalam perancangan sistem ini membahas

mengenai tujuan perancangan sistem, dan perancangan antar muka.

4.1. Tujuan Perancangan Sistem

Perancangan sistem merupakan tindak lanjut dari tahap analisa.

Perancangan sistem bertujuan untuk memberikan gambaran sistem yang akan

dibuat. Dengan kata lain perancangan sistem didefinisikan sebagai penggambaran

atau pembuatan sketsa dari beberapa elemen yang terpisah kedalam satu kesatuan

yang utuh dan berfungsi. Selain itu juga perancangan bertujuan untuk lebih

mengarahkan sistem yang terinci, yaitu pembuatan perancangan yang jelas dan

lengkap yang nantinya akan digunakan untuk pembuatan simulasi. Aplikasi

kompresi ini dibuat dengan sederhana, sehingga diharapkan user dapat dengan

mudah menggunakan aplikasi kompresi ini.

Manfaat lain yang didapat dari perancangan sistem adalah apabila dalam

proses implementasi terjadi hambatan, dapat dilakukan perancangan ulang sistem

secara lebih mudah dengan demikian pengembang dapat menghemat waktu dan

Gambar

Tabel 2.2 Range Simbol Untuk Kata SWISS_MISS
Tabel 2.4. Proses Decoding untuk Kata “SWISS_MISS”
Gambar 2.7. Metodologi dalam UML
Gambar 2.20. Daftar komponen Palet Standard Delphi
+7

Referensi

Dokumen terkait

kepala rekam medis dan perekam medis yang bekerja di ruang Unit Rekam Medis saat ini sudah merasa tidak nyaman dengan ruang kerja saat ini dikarenakan ruang kerja dan

Ratio Setiap pemegang 69 saham lama berhak atas 41 HMETD, dimana setiap 1 HMETD memberikan hak untuk membeli 1 saham baru, dan setiap 41 saham hasil Pelaksanaan HMETD melekat

BTN telah menyusun ketentuan tentang PKBL sebagaimana tertuang dalam Peraturan Direksi No.17/PD/DPKK/1203 tahun 2003 tentang Program Kemitraan PT Bank Tabungan

b) Test Purpose : to verify that the DSEO Server complies with all requirements of GetProduct operation for the download of single file on-demand product. c) Test Method :. ฀

[r]

Untuk melakukan pengujian pada implementasi failover ini apakah berjalan dengan baik atau tidak adalah menghentikan cluster service, dengan cara menghentikan cluster

Artinya bahwa hilangnya pengetahuan tentang hakikat alam semesta dalam kehidupan manusia, yang telah dianulir oleh rasionalitas yang kemudian menjadi akar dari krisis

Berdasarkan hasil pengolahan data terhadap pengaruh orientasi pasar dan strategi pasar terhadap strategi bauran pemasaran, maka dapat dilihat pada tabel 6 yang