BAB 2 LANDASAN TEORI 2.1 Citra Digital
Citra digital dapat didefenisikan sebagai fungsi f(x,y), berukuran M baris dan N kolom, dengan x dan y adalah koordinat spasial dan amplitudo f di titik kordinat f(x,y) dinamakan intensitas atau tingkat keabuan dari citra pada titik tersebut. Apabila nilai x, y dan nilai amplitudo f secara keseluruhan berhingga (finite) dan nilai bernilai diskrit maka dapat dikatakan bahwa citra tersebut adalah citra digital [6]. Kordinat citra digital dapat dilihat pada Gambar 2.1. Koordinat asal 0
1
2
3
4
5
N-1
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
0 1 2 3 4 5
M-1
Sebuah piksel
Gambar 2.1 Koordinat citra digital
Teknologi dasar untuk menciptakan dan menampilkan warna pada citra digital berdasarkan pada penelitian bahwa sebuah warna merupakan kombinasi dari tiga warna dasar, yaitu merah, hijau,dan biru (Red, Green, Blue-RGB) [9].
RGB adalah suatu model warna yang terdiri dari merah, hijau, dan biru, digabungkan dalam membentuk suatu susunan warna yang luas. Setiap warna dasar, misalnya merah, dapat diberi rentang-nilai. Untuk monitor komputer, nilai rentangnya
Universitas Sumatera Utara
paling kecil = 0 dan paling besar = 255. Pilihan skala 256 ini didasarkan pada cara mengungkap 8 digit bilangan biner yang digunakan oleh mesin komputer. Dengan cara ini, akan diperoleh warna campuran sebanyak 256 x 256 x 256 = 1677726 jenis warna. Sebuah jenis warna, dapat dibayangkan sebagai sebuah vektor di ruang 3 dimensi yang biasanya dipakai dalam matematika, koordinatnya dinyatakan dalam bentuk tiga bilangan, yaitu komponen-x, komponen-y dan komponen-z. Misalkan sebuah vektor dituliskan sebagai r = (x,y,z). Untuk warna, komponen-komponen tersebut digantikan oleh komponen R(ed), G(reen), B(lue). Jadi, sebuah jenis warna dapat dituliskan sebagai berikut: warna = RGB (30, 75, 255). Putih = RGB (255,255,255), sedangkan untuk hitam = RGB (0,0,0) [6].
2.1.1
Representasi Warna Digital
Warna digital adalah kombinasi dari tiga warna primer yaitu merah, hijau, dan biru (RGB). Setiap warna dapat dispesifikasikan sebagai triplet nilai intensitas RGB, dengan setiap intensitas berkisar antara 0 sampai 255, yaitu: Red
: RGB (255, 0, 0)
……….………….………..………………………(2.1)
Green : RGB (0, 255, 0)
.………………….……………………….……… (2.2)
Blue
…..………………………………………………. (2.3)
: RGB (0, 0, 255)
Dari nilai triplet RGB persamaan (2.1) sampai (2.3) di atas dapat dikonversikan ke dalam nilai desimal seperti dibawah ini:
Red
: 255*2560 + 0*2561 + 0*2562 = 255 + 0 + 0 = 255 ………..………...… (2.4)
Green : 0*2560 + 255*2561 + 0*2562 = 0 + 65,280 + 0 = 65,280 ……………… (2.5) Blue
: 0*2560 + 0*2561 + 255*2562 = 0 + 0 + 16,711,680 = 16,711,680 ….… (2.6)
Rumus dasar mencari nilai RGB citra adalah: R = COLOR And RGB(255, 0, 0)
….……….…………………………….…. (2.7)
G = (COLOR And RGB(0, 255, 0)) / 256
.……….…………………….....… (2.8)
B = ((COLOR And RGB(0, 0, 255)) / 256) / 256 ….……….……………….… (2.9) Dari persamaan (2.4) sampai (2.6) diatas, rumus RGB pada persamaan (2.7) sampai (2.9) menjadi:
Universitas Sumatera Utara
Nilai R = c and 255
…………………………………………........................... (2.10)
Nilai G = (c and 65,280)/256 ..………………...………………….……..…..….. (2.11) Nilai B = ((c and 16,711,680)/256)/256 ………………….....………………..... (2.12)
2.1.2
Format Citra Bitmap
Pada format bitmap, citra disimpan sebagai suatu matriks di mana masing – masing elemennya digunakan untuk menyimpan informasi warna untuk setiap piksel. Jumlah warna yang dapat disimpan ditentukan dengan satuan bit-per-piksel. Semakin besar ukuran bit-per-piksel dari suatu bitmap, semakin banyak pula jumlah warna yang dapat disimpan. Format bitmap ini cocok digunakan untuk menyimpan citra digital yang memiliki banyak variasi dalam bentuknya maupun warnanya, seperti foto, lukisan, dan frame video. Format file yang menggunakan format bitmap ini antara lain adalah BMP, DIB, PCX, GIF, dan JPG. Format yang menjadi standar dalam system operasi Microsoft Windows adalah format bitmap BMP atau DIB.
Karakteristik lain dari bitmap yang juga penting adalah jumlah warna yang dapat disimpan dalam bitmap tersebut. Ini ditentukan oleh banyaknya bit yang digunakan untuk menyimpan setiap titik dari bitmap yang menggunakan satuan bpp (bit per piksel). Dalam Windows dikenal bitmap dengan 1, 4, 8, 16, dan 24 bit per piksel. Jumlah warna maksimum yang dapat disimpan dalam suatu bitmap adalah n
sebanyak 2 , dimana n adalah banyaknya bit yang digunakan untuk menyimpan satu titik dari bitmap [5].
Berikut ini tabel yang menunjukkan hubungan antara banyaknya bit per piksel dengan jumlah warna maksimum yang dapat disimpan dalam bitmap, dapat dilihat pada Tabel 2.1.
Universitas Sumatera Utara
Tabel 2.1 Hubungan antara bit per piksel dengan jumlah warna maksimum pada bitmap No
2.1.3
Jumlah bit
Maksimum
per piksel
Warna
1
1
2
2
4
16
3
8
256
4
16
65536
5
24
16777216
Citra Format PNG (Portable Network Graphics)
Citra berformat PNG dikembangkan sebagai alternatif lain untuk GIF, yang menggunakan paten dari LZW–algoritma kompresi. PNG adalah format citra yang sangat baik untuk grafis internet, karena mendukung transparansi didalam perambah (browser) dan memiliki keindahan tersendiri yang tidak bisa diberikan GIF atau bahkan JPG.
Format PNG menggunakan teknik kompresi Loseless dan mendukung kedalaman warna 48 bit dengan tingkat ketelitian sampling: 1,2,4,8, dan 16 bit. Format ini memiliki alpha channel untuk mengkontrol transparency [10].
2.2 Kompresi Data
Kompresi Citra adalah aplikasi kompresi data yang dilakukan terhadap citra digital dengan tujuan untuk mengurangi redundansi dari data-data yang terdapat dalam citra sehingga dapat disimpan atau ditransmisikan secara efisien. Kompresi data dalam bidang ilmu komputer, ilmu pengetahuan dan seni adalah sebuah penyajian informasi ke dalam bentuk yang lebih sederhana. Kompresi data dapat di artikan juga sebagai proses yang dapat mengubah sebuah aliran data masukan (sumber atau data asli) ke dalam aliran data yang lain (keluaran atau data yang dikompresi) yang memiliki ukuran yang lebih kecil [4]. Kompresi data sangat populer sekarang ini karena dua alasan yaitu :
Universitas Sumatera Utara
1. Orang–orang lebih suka mengumpulkan data. Tidak peduli seberapa besar media penyimpanan yang dimilikinya. Akan tetapi cepat atau lambat akan terjadi overflow. 2. Orang–orang benci menunggu waktu yang lama untuk memindahkan data. Misalnya ketika duduk di depan komputer untuk menunggu halaman Web terbuka atau men-download sebuah file. Rasio kompresi data adalah ukuran persentase data yang telah berhasil dikompres. Secara matematis rasio kompresi data ditulis sebagai berikut:
Rasio kompresi = ( ukuran file asli – ukuran file terkompresi x 100 % ) ukuran file asli
Metode kompresi data dapat dikelompokkan dalam dua kelompok besar yaitu metode lossless dan metode lossy yaitu: 1. Metode lossless Pada teknik ini tidak ada kehilangan data atau informasi. Jika data dikompres secara lossless, data asli dapat direkonstruksi kembali sama persis dari data yang telah dikompresi, dengan kata lain data asli tetap sama sebelum dan sesudah kompresi. Secara umum teknik lossless digunakan untuk penerapan yang tidak bisa mentoleransi setiap perbedaan antara data asli dan data yang telah direkonstruksi. Data berbentuk tulisan misalnya file teks, harus dikompresi menggunakan teknik lossless,
karena
kehilangan
sebuah
karakter
saja
dapat
mengakibatkan
kesalapahaman. Lossless compression disebut juga dengan reversible compression karena data asli bisa dikembalikan dengan sempurna. Akan tetapi rasio kompresinya sangat rendah, misalnya pada data teks, gambar seperti GIF dan PNG. Contoh metode ini adalah Shannon-Fano Coding, Run Length Encoding, Arithmetic Coding dan lain sebagainya.
2. Metode lossy Pada teknik ini akan terjadi kehilangan sebagian informasi atau data. Data yang telah dikompresi dengan teknik ini secara umum tidak bisa direkonstruksi sama persis dari data aslinya. Di dalam banyak penerapan, rekonstruksi yang tepat bukan suatu masalah. Sebagai contoh, ketika sebuah sample suara ditransmisikan, nilai
Universitas Sumatera Utara
eksak dari setiap sample suara belum tentu diperlukan. Tergantung pada yang memerlukan kualitas suara yang direkonstruksi, sehingga banyaknya jumlah informasi yang hilang di sekitar nilai dari setiap sample dapat ditoleransi.
Umumnya teknik kompresi lossy membuang bagian-bagian data yang sebenarnya tidak berguna seperti data yang tidak dapat dilihat maupun didengar oleh manusia. Contoh metode ini adalah transform Coding, Wavelet dan lain-lain. Lossy compression disebut juga irreversible compression karena data asli mustahil untuk dikembalikan seperti semula. Kelebihan teknik ini adalah rasio kompresi yang tinggi dibanding metode lossless.
Keuntungan dari metode lossy atas lossless adalah dalam beberapa kasus metode lossy menghasilkan file kompresi yang lebih kecil dibandingkan dengan metode lossless. Metode lossy sering digunakan untuk mengkompresi suara, gambar dan video karena data tersebut dimaksudkan kepada human interpretation dimana pikiran dapat dengan mudah “mengisi bagian-bagian yang kosong” atau melihat kesalahan yang sangat kecil atau inkonsistensi. Sedangkan lossless digunakan untuk mengkompresi data untuk diterima ditujuan dalam kondisi asli seperti dokumen teks. Lossy akan mengalami generation loss pada data sedangkan pada lossless tidak terjadi karena data yang hasil dekompresi sama dengan data asli.
2.3 Dekompresi
Sebuah data yang sudah dikompres tentunya harus dapat dikembalikan lagi kebentuk aslinya, prinsip ini dinamakan dekompresi. Untuk dapat merubah data yang terkompres diperlukan cara yang berbeda seperti pada waktu proses kompres dilaksanakan. Jadi pada saat dekompresi catatan header yang berupa byte-byte tersebut terdapat catatan isi mengenai isi dari file tersebut [4]. Catatan header akan menuliskan kembali mengenai isi dari file tersebut, jadi isi dari file sudah tertulis oleh catatan header sehingga hanya tinggal menuliskan kembali pada saat proses dekompres. Proses dekompresi sempurna (kembali kebentuk aslinya). Secara umum proses kompresi dan dekompresi dapat dilihat pada Gambar 2.2.
Universitas Sumatera Utara
Kompresi
Citra Asli (PNG, BMP)
Dekompresi
Citra Hasil Kompresi (.sf,rle)
Gambar 2.2 Alur kompresi Lossless
2.4 Algoritma Shannon-Fano
Pada dasarnya cara kerja dari algoritma Shannon- Fano ini membentuk sebuah pohon, kemudian meng-encoding dan yang terakhir adalah mengembalikannya dalam bentuk karakter teks atau decoding. Pembuatan pohon pada Shannon-Fano dibuat berdasarkan proses dari atas ke bawah. Sebuah pohon Shannon-Fano dibangun sesuai dengan spesifikasi yang dirancang untuk mendefinisikan tabel kode yang efektif [1].
Secara umum langkah–langkah yang dilakukan sebelum melakukan kompresi file citra dengan metode Shannon-Fano adalah sebagai berikut [5]: 1. Baca header untuk mendapatkan informasi format citra. 2. Baca nilai piksel. 3. Hitung nilai RGB setiap piksel. 4. Hitung nilai Grayscale setiap piksel 5. Ambil nilai piksel citra ke 1 sampai ke n. 6. Hitung frekuensi kemunculan setiap nilai piksel.
Contoh menunjukkan pembangunan kode Shannon-Fano alfabet kecil. Kelima simbol-simbol yang dapat dikodekan memiliki frekuensi berikut: A = 15 ; B = 7 ; C = 6 ; D = 6 ; E = 5 Semua simbol-simbol yang diurutkan berdasarkan frekuensi, dari kiri ke kanan yang ditunjukkan pada Gambar 2.3 a. Menempatkan garis pemisah antara simbol-simbol B dan C menghasilkan total 22 di kelompok kiri dan total 17 di kelompok yang tepat. Ini meminimalkan perbedaan total antara dua kelompok. Dengan pembagian ini, A dan B akan masing-masing memiliki kode yang dimulai dengan 0 bit, dan C, D, dan E kode akan semua mulai dengan 1, seperti ditunjukkan pada Gambar 2.3.b. Kemudian, di
Universitas Sumatera Utara
sebelah kiri setengah dari pohon mendapat divisi baru antara A dan B, yang menempatkan A pada daun dengan kode 00 dan B pada daun dengan kode 01. Setelah empat divisi prosedur, pohon hasil kode. Pohon di final, tiga simbol dengan frekuensi tertinggi semuanya telah ditugaskan 2-bit kode, dan dua simbol dengan tuntutan yang lebih rendah memiliki 3-bit kode seperti ditunjukkan Gambar 2.3.
Gambar 2.3 Pohon Biner Shannon-Fano Setelah pohon jadi, maka proses selanjutnya adalah sama yaitu encoding dan decoding. Pada pohon Shannon-Fano, semua karakter dikelompokkan berurutan dari kiri ke kanan dari frekuensi yang sering muncul ke frekuensi yang umum. Untuk mempermudah dapat lihat dari contoh kasus yang direpresentasikan pada pohon berikut ini. Misal terdapat lima karakter A; B; C; D; E.
Tabel 2.2 Tabel Frekuensi Kemunculan Karakter
A
B
C
D
E
Kemunculan
45
15
15
13
12
Total
100
Kemunculan
Universitas Sumatera Utara
Dari data frekuensi diatas maka
dapat diilustrasikan dengan angka skala 100,
misalnya total dari seluruh kemunculan karakter tersebut adalah 100, maka data di atas menjadi : Frek A : 0,45 Frek B : 0,15 Frek C : 0,15 Frek D : 0,13 Frek E : 0,12.
Melihat dari hasil pembentukan bit baru hasil encoding, karakter A yang sering muncul (probabilitas hingga 0,45) hanya memiliki satu bit saja yaitu 00. Kompresi seperti ini membuat algoritma menjadi lebih efektif karena pohon terbentuk dari bawah (probabilitas kecil atau umum) ke atas (probabilitas besar atau sering) [9]. Maka pohon Shannon-Fano akan terbentuk seperti pada Gambar 2.4.
0 0
1 1
1
1 1
1
Gambar 2.4 Pohon Shannon-Fano
Berdasarkan pohon Shannon-Fano, maka proses encoding menjadi:
Tabel 2.3 Kode Shannon-Fano Karakter
A
B
C
D
E
Shannon-Fano Code
00
01
10
110 111
Dengan perhitungan jumlah kapasitas memori yang sama seperti di atas, maka didapat untuk total memori yaitu:
Universitas Sumatera Utara
45x2bit + 15x2bit + 15x2bit + 13x3bit + 12x3bit = 225 bit.
2.5 Run Length Encoding
Algoritma Run Length Encoding adalah melakukan kompresi dengan memindahkan pengulangan byte yang sama berturut-turut atau secara terus menerus. Algoritma ini digunakan untuk mengompresi citra yang memiliki kelompok-kelompok piksel yang berderajat keabuan yang sama. Pada metode ini dilakukan pembuatan rangkaian pasangan nilai (P,Q) untuk setiap baris piksel, dimana nilai P menyatakan nilai derajat keabuan, sedangkan nilai Q menyatakan jumlah piksel berurutan yang memiliki derajat keabuan tersebut [4].
Sebagai contoh sebuah citra dengan nilai piksel ”120, 120, 120, 120, 150, 200, 200, 200, 200, 150, 150, 150, 150, 120, 150, 150, 150, 150”, nilai piksel pertama 120, kedua 120, karakter ketiga 120, karakter keempat 120, dan karakter kelima 150, dikarenakan pada nilai piksel kelima tidak sama dengan sebelumnya, sehingga 4 nilai piksel pertama yang mengalami perulangan akan dijumlahkan semuanya dan nilai yang dijumlahkan adalah banyaknya nilai piksel yang akan diulang, sehingga output keempat nilai piksel yang pertama setelah dikompresi adalah hanya sebuah nilai piksel dan diikuti dengan nilai perulangan yaitu ”120,4”, setelah dilakukan kompresi 4 piksel pertama akan dilanjutkan ke nilai berikutnya yaitu nilai kelima 150, kemudian nilai keenam 200, dikarenakan nilai piksel keenam tidak sama dengan nilai piksel kelima, dan nilai piksel kelima tidak mengalami perulangan sehingga nilai piksel yang tidak mengalami perulangan akan ditambahkan kepada nilai piksel ”120,4”, sehingga menjadi ”120,4150”, dan seterusnya sehingga nilai piksel citra ” 120, 120, 120, 120, 150, 200, 200, 200, 200, 150, 150, 150, 150, 120, 150, 150, 150, 150” setelah dikompresi akan menjadi ”(120,4) (150,1) (200,4) (150,4) (120,1) (150,4)”. Dapat diperhatikan bahwa nilai piksel ” 120, 120, 120, 120, 150, 200, 200, 200, 200, 150, 150, 150, 150, 120, 150, 150, 150, 150” yang berukuran 18 byte / nilai piksel dapat dilihat dari Tabel 2.4.
Universitas Sumatera Utara
Tabel 2.4. Metode Kompresi RLE No
Simbol Masukan
Simbol Keluaran
Total Frekuensi
1
120, 120, 120, 120
120
4
2
150
150
1
3
200, 200, 200, 200
200
4
4
150, 150, 150, 150
150
4
5
120
120
1
6
150, 150, 150, 150
150
4
Dekompresi metode RLE adalah dengan menguraikan nilai angka menjadi nilai piksel yang diikuti nilai angka sebanyak nilai angka tersebut, misalnya pesan ”(120,4) (150,1)”, nilai 4 menyatakan banyaknya nilai piksel 120 yang diulang, sehingga setelah didekompresi pesan (120,4) (150,1) akan menjadi ” 120, 120, 120, 120, 150” yang dapat dilihat dari Tabel 2.5. Tabel 2.5 Metode Dekompresi RLE No
Simbol Masukan Simbol Keluaran
Total Frekuensi
1
120
4
120, 120, 120, 120
2
150
1
150
3
200
4
200, 200, 200, 200
4
150
4
150, 150, 150, 150
5
120
1
120
6
150
4
150, 150, 150, 150
Untuk mencatat tiap-tiap byte nilai yang diikuti maka digunakan suatu counter (pencatat jumlah banyaknya data yang keluar), counter menandakan berapa banyak pengulangan byte yang tercatat. Algoritma kompresi Run Length Encoding mempunyai suatu hasil yang baik untuk file yang besar, sehingga untuk mengkompresi data yang kecil tidak menguntungkan. Algoritma kompresi RLE hanya efisien dengan data yang berisi kelompok data (byte / karakter) yang berulang dan
Universitas Sumatera Utara
dapat digunakan pada file teks dimana file teks berisi banyak kelompok data yang berupa spasi atau tabulator, dan juga dapat diterapkan untuk citra (gambar) yang berisi area hitam atau putih yang besar. Metode kompresi Run Length Encoding digunakan untuk format file TIFF (.tiff), PDF (.pdf) dan Bitmap dengan area B/W yang besar (.bmp) [6]. 2.6 Pembacaan File Citra
Pada citra warna 24-bit (true color) tidak terdapat palet RGB, karena nilai RGB langsung diuraikan dalam data bitmap berbentuk biner. Untuk membaca nilai RGBnya, dilakukan mencari header-header serta data bitmap yang berisi informasi dimensi, format dan nilai piksel citra. Setiap elemen data bitmap panjangnya 3 byte, masing-masing byte menyatakan komponen R, G, dan B. Setiap byte data merepresentasikan 8 bit, jadi pada citra warna ada 3 byte x 8 bit = 24 bit kandungan warna.
Pada citra warna, tiap pixel-nya mengandung 24-bit kandungan warna atau 8bit untuk masing-masing warna dasar (R, G, dan B), dengan kisaran nilai kandungan antara 0 (00000000) sampai 255 (11111111) untuk tiap warna. Sebagai contoh suatu nilai pixel sebuah citra warna seperti pada Gambar 2.5.
Piksel 2 Piksel 1
111100001011010010111001 110100001011010010010100 101101101011010011110001 100100001010011011111001 Piksel100100001001010010000001 n 110101101011011111110001 111100111011011011110001 111101101011010110110001
Gambar 2.5 Contoh Nilai Piksel Citra Warna Pada contoh citra Gambar 2.5 di atas, data pertama adalah header yang berisi informasi nama file, jenis format dan dimensi citra. Di bawah data bitmap terdapat pixel pertama (f(x,y)) bernilai 111100001011010010111001 (biner).
Universitas Sumatera Utara
Misalkan diberikan citra warna dengan dimensi 300 x 200 piksel yang dihasilkan dari alat perekam digital. Tujuan yang hendak dicapai adalah mengelompokkan pola-pola yang sama agar diperoleh bagian-bagian yang mempunyai pola yang lebih tegas dan jelas. Citra warna 300 x 200 piksel dapat dilihat pada Gambar 2.6.
Gambar 2.6 Citra Warna 300 x 200 piksel.
Pada bagian pola yang teratur berisi nilai piksel dengan komponen warna (RGB) yang hampir sama dengan piksel tetangganya (berdekatan) sedangkan pada bagian pola yang tidak teratur berisi nilai piksel dengan komponen warna yang berbeda jauh dengan piksel tetangganya. Bagian citra Gambar 3.2 di atas yang akan diproses dengan segmentasi dengan terlebih dahulu menurunkan kualitas warna menjadi citra grayscale seperti dapat dilihat pada Gambar 2.7.
Piksel Citra 1 blok
Gambar 2.7 Citra Grayscale Untuk mendapatkan citra grayscale setiap piksel, terlebih dahulu dihitung nilai RGB setiap piksel. Selanjutnya nilai grayscale diperoleh dengan menggunakan rumus: f(i,j) = ∑𝑖=3 𝑗−1(𝑅 + 𝐺 + 𝐵 )/3 .................................................................. (2.13) Universitas Sumatera Utara
ket : f(i,j) = nilai piksel pada koordinat i,j R
= nilai warna merah
G = nilai warna hijau B = nilai warna hijau 2.7 Nilai Grayscale Citra
Matriks citra warna pada Gambar 2.6 di atas dikonversikan menjadi citra grayscale dengan menghitung rata-rata warna Red, Green dan Blue [7]. Secara matematis penghitungannya adalah sebagai berikut. fR (𝑥,𝑦)+ fG (𝑥,𝑦)+ fB (𝑥,𝑦)
f0 (x,y) = �
3
ket :
� ……………………………………..……....... (2.14)
f(x,y) = nilai piksel pada koordinat x,y fR
fG
= nilai warna merah = nilai warna hijau
Bf B = nilai warna hijau
2.8 UML (Unified Modeling Language)
Unified Modeling Language adalah sebuah bahasa grafis yang telah menjadi standar dalam industri untuk visualisasi, merancang dan mendokumentasikan sistem piranti lunak [2]. UML merupakan dasar fundamental dari teknik analisis berorientasi objek, berbentuk diagram – diagram yang digunakan untuk menampilkan konstruksi dari sistem berorientasi objek, seperti cetak biru (blue print) suatu pembangunan gedung yang menggambarkan konstruksi bangunan tersebut [2].
2.8.1
Use-case Diagram
Use-case diagram menggambarkan secara grafis perilaku perangkat lunak. Diagram ini memberikan gambaran menurut perspektif pengguna perangkat lunak. Sebuah usecase diagram mengandung actor, use-case dan interaksi antara actor dengan use-case. [2]. 2.8.1.1 Actor
Universitas Sumatera Utara
Actor merupakan segala sesuatu yang perlu berinteraksi dengan sistem untuk pertukaran informasi. Actor memberikan suatu gambaran jelas tentang apa yang harus dilakukan perangkat lunak. Actor dinotasikan seperti pada gambar berikut:
Gambar 2.9 Actor
2.8.1.2 Use case
Use case merupakan hasil penyusunan kembali lingkup fungsionalitas sistem menjadi banyak pernyataaan fungsionalitas sistem yang lebih kecil. Sebuah use case merepresentasikan satu tujuan tunggal dari sistem dan menggambarkan satu rangkaian kegiatan dan interaksi pengguna untuk mencapai tujuan [2]. Use case menggambarkan fungsi – fungsi sistem dari sudut pandang pengguna eksternal. Diagram ini juga dapat diartikan sebagai urutan transaksi berkaitan yang dilakukan satu actor dengan perangkat lunak. Use case dinotasikan seperti pada Gambar 2.10 berikut:
Gambar 2.10 Use case
2.8.1.3 Interaksi Actor dengan Use-case Interaksi Actor dengan Use case dinotasikan seperti pada gambar berikut:
Gambar 2.11 Use-case Diagram
Universitas Sumatera Utara
2.8.2 Activity Diagram
Activity diagram memodelkan alur kerja (workflow) sebuah proses bisnis dan urutan aktifitas dalam suatu proses. Diagram ini sangat mirip dengan sebuah flowchart karena kita dapat memodelkan sebuah alur kerja dari satu aktifitas ke aktifitas lainnya atau dari satu aktifitas ke dalam keadaan sesaat (state) [2]. Activity diagram menggambarkan aliran aktifitas dari sistem yang sedang dirancang, bagaimanan masing – masing aliran berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Diagram ini juga dapat menggambarkan proses parallel yang mungkin terjadi pada beberapa eksekusi. Contoh activity diagram diperlihatkan pada gambar berikut:
Gambar 2.12 Activity Diagram 2.8.3 Class Diagram
Universitas Sumatera Utara
Class diagram merupakan struktur kelas – kelas dari suatu sistem yang memperlihatkan hubungan antar kelas dan penjelasan tiap – tiap kelas. Pada diagram ini terdapat nama kelas, atribut dan operasi kelas tersebut. Selama proses analisis, class diagram memperlihatkan aturan – aturan dan tanggung jawab entitas yang menentukan perilaku sistem. Selama tahap desain, diagram ini berperan dalam menangkap struktur dari semua kelas yang membentuk arsitektur sistem yang dibuat [2]. Contoh class diagram diperlihatkan pada Gambar berikut:
Gambar 2.13 Class Diagram 2.8.4 Sequence Diagram
Sequence diagram menjelaskan interaksi objek yang disusun dalam suatu urutan waktu. Diagram ini memperlihatkan tahap demi tahap apa yang harus terjadi untuk menghasilkan sesuatu di dalam use-case. Sequence diagram secara khusus berinteraksi dengan use-case.
Masing-masing sequence diagram menggambarkan aliran pada suatu use case. Sequence diagram dapat dibaca dengan melihat pada objek-objek dan pesan-pesan (message). Objek-objek yang berperan dalam aliran diperlihatkan pada kotak empat persegi panjang yang melintas pada bagian atas diagram. Setiap objek memiliki garis hidup (lifeline), yang digambarkan sebagai garis vertikal di bawah nama suatu objek. Notasi sequence diagram digambarkan sebagai berikut:
Universitas Sumatera Utara
Gambar 2.14 Sequence Diagram
2.8.5 Package Diagram
Sebuah package adalah sebuah bentuk pengelompokkan yang memungkinkan pembangun untuk mengambil setiap bentuk di UML dan mengelompokkan elemen – elemennya dalam tingkatan unit yang lebih tinggi [2]. Diagram ini merupakan mekanisme pengelompokan yang digunakan untuk menandakan pengelompokan elemel – elemen model. Sebuah package dapat mengandung beberapa paket lain di dalamnya. Diagram ini digunakan untuk memudahkan mengorganisasi elemen – elemen model. Notasi package diagram digambarkan sebagai berikut:
Universitas Sumatera Utara
Gambar 2.15 Packege Diagram
2.8.6 Deployment Diagram
Deployment diagram menunjukkan susunan fisik sebuah sistem, menunjukkan bagian perangkat lunak yang berjalan pada perangkat keras [2]. Diagram ini adalah diagram dengan tipe implementasi yang digunakan untuk secara grafis menggambarkan arsitektur fisik dari perangkat lunak sistem. Diagram ini dapat digunakan untuk menunjukkan ketergantungan di antara komponen-komponen penyusun sistem. Deployment diagram menggambarkan bagaimana komponen dibangun dalam infrastruktur sistem, di mana suatu komponen (pada mesin, server atau perangkat keras apa), bagaimana kemampuan jaringan pada lokasi tersebut, spesifikasi server.
Sebuah node adalah server, workstation atau perangkat keras lain yang digunakan untuk membangun komponen dalam lingkungan sebenarnya.
Contoh deployment diagram diperlihatkan pada gambar berikut:
Gambar 2.16 Deployment Diagram
2.8.7
Analisis Persyaratan dengan UML
Universitas Sumatera Utara
Analisis persyaratan meliputi usaha untuk mengetahui apa kemampuan sebuah sistem yang diinginkan pengguna dan pelanggan dari sebuah pembuat perangkat lunak [2]. Analisis ini dilakukan untuk mendapatkan informasi atau persyaratan cukup untuk mempersiapkan model yang menggambarkan apa yang diperlukan dari perspektif pengguna. Diagram yang digunakan dalam analisis persyaratan yaitu: 1. Use case diagram yang digunakan untuk menunjukkan fungsionalitas suatu sistem dan bagaimana sistem berinterakasi dengan dunia luar. 2. Activity diagram yang menunjukkan alur kerja (work flow) sebuah proses bisnis dan urutan aktivitas dalam suatu proses. 3. Class diagram yang membantu dalam visualisasi struktur sistem yang mendeskripsikan jenis-jenis objek dalam suatu sistem dan hubungan yang terdapat diantara objek tersebut. 4. Package diagram yang digunakan untuk mengelompokkan elemen-elemen model atau kelas.
2.8.8
Desain dengan UML
Saat membuat desain adalah saat untuk berpikir secara teknis dalam menggambarkan diagram-diagram UML. Diagram yang digunakan dalam mendesain sistem yaitu: Class diagram dalam sudut pandang perangkat lunak, untuk menunjukkan class yang terdapat di dalam perangkat lunak dan bagaimana mereka saling berhubungan. 1. Sequence diagram untuk menjelaskan interaksi objek yang disusun dalam suatu urutan waktu. 2. Package diagram yang digunakan untuk mengelompokkan elemen-elemen model atau kelas. 3. Deployment diagram yang menunjukkan arsitektur fisik sebuah sistem.
2.9
Flowchart
Flowchart adalah bagan alir yang menggambarkan arus data dari program. Fungsi dari bagan alir ini adalah untuk memudahkan programmer di dalam perancangan program
Universitas Sumatera Utara
aplikasi [11]. Simbol-simbol yang digunakan pada bagan flowchart ini antara lain seperti pada Tabel 2.6.
Tabel 2.6 Simbol-simbol Flowchart Program [11] Simbol
Fungsi Terminator Menunjukkan awal dan akhir suatu proses. Data Digunakan untuk mewakili data input/output. Process Digunakan untuk mewakili proses. Decision Digunakan untuk suatu seleksi kondisi didalam program. Predefined Process Menunjukkan suatu operasi yang rinciannya ditunjukkan di tempat lain. Preparation Digunakan untuk memberi nilai awal variabel. Flow Lines Symbol Menunjukkan arah dari proses. Connector Menunjukkan penghubung ke halaman yang sama. Menunjukkan penghubung ke halaman yang baru.
Universitas Sumatera Utara