BAB 2 LANDASAN TEORI
Di bab ini akan dibahas teori-teori dasar dan langkah-langkah yang diperlukan dalam penyusunan skripsi ini, seperti langkah untuk melakukan penyisipan dan langkah untuk melakukan pengekstraksian. 2.1
Gambar Digital Gambar atau image atau citra ialah benda buatan manusia, biasanya berbentuk dua dimensi, yang mempunyai kemiripan dengan suatu obyek, biasanya obyek-obyek fisik atau manusia. Gambar dapat berupa dua dimensi, seperti foto atau tampilan pada layar, dan dapat pula berbentuk tiga dimensi seperti patung. Gambar dapat ditangkap dengan alat optik seperti kamera, cermin, lensa, teleskop, mikroskop, dan objek atau fenomena alami seperti mata atau permukaan air. Menurut Darma Putra (2010,p19), gambar digital ialah representasi dari gambar dua dimensi di dalam komputer. Gambar digital merupakan sebuah larik (array) yang berisi nilai-nilai riil atau kompleks yang direpresentasikan dengan deretan bit tertentu. Suatu gambar dapat didefinisikan sebagai fungsi (x,y) berukuran M baris dan N kolom, dengan x dan y adalah koordinat spasial, dan f di titik koordinat (x,y) sebagai intensitas dari gambar tersebut dengan nilai x, y, dan f berhingga.
6
Gambar 2.1 Koordinat Gambar Digital Sumber: Putra, Darma (2010,p20)
Bagian terkecil dari sebuah gambar disebut dengan piksel (pixel). Nilai suatu piksel memiliki nilai dalam rentang tertentu, dari nilai minimum sampai nilai maksimum. Jangkauan yang digunakan berbeda-beda tergantung dari jenis warnanya. Berdasarkan nilai pikselnya, gambar dapat dibedakan menjadi: a. Citra Biner Citra yang hanya memiliki dua kemungkinan nilai piksel yaitu hitam dan putih. b. Citra Grayscale Citra grayscale merupakan citra digital yang hanya memiliki satu nilai kanal pada setiap pikselnya. Warna yang dimiliki adalah warna dari hitam, keabuan, dan putih.
7
c. Citra Warna (8 bit) Citra yang setiap piksel dari citra warna hanya diwakili oleh 8 bit dengan jumlah warna maksimum yang dapat digunakan 256 warna. d. Citra Warna (16 bit) Citra warna 16 bit biasanya disebut sebagai citra highcolor , setiap piksel nya diwakili dengan 2 byte memory (16 bit). Warna 16 bit memiliki 65.536 warna. e. Citra Warna (24 bit) Setiap piksel dari citra warna 24 bit diwakili dengan 24 bit sehingga memiliki total 16.777.216 warna. Setiap poin informasi piksel (Red,Green,Blue) disimpan ke dalam 1 byte data. 8 bit menyimpan nilai biru, 8 bit menyimpan nilai hijau, dan 8 bit menyimpan nilai merah. Gambar digital juga memiliki sistem ruang warna. Sistem warna yang umumnya digunakan ialah: a. RGB (Red Green Blue) yang terdiri dari tiga buah warna utama yaitu merah, hijau, dan biru. b. YCbCr yang merupakan merupakan domain yang berbeda dengan domain warna RGB yang terdiri dari luminance (Y), chrominance biru (Cb), chrominance merah (Cr). Luminance membawa informasi tentang tingkat kecerahan. Sedangkan chrominance membawa informasi tentang kekuatan warna.
8
2.2
JPEG Image Gambar JPEG (Joint Photographic Experts Group) biasa digunakan sebagai metode kompresi gambar. Algoritma kompresi dari JPEG berupa lossy compresion yang bekerja dengan cara menghilangkan beberapa komponenkomponen asli yang dianggap sebagai elemen-elemen redundan dari gambar sehingga kita dapat mendapatkan gambar yang sangat mirip dengan gambar originalnya akan tetapi dengan ukuran yang lebih kecil. Semakin besar kompresi, maka semakin banyak informasi yang dihilangkan.
2.3
Steganografi Menurut
Budi
(2004,p1)
definisi
steganografi
adalah
seni
untuk
menyembunyikan pesan di dalam pesan lainnya sedemikian rupa sehingga orang lain tidak menyadari ada sesuatu di dalam pesan tersebut. Pesan tersembunyi tersebut hanya diketahui oleh si pengirim dan penerima pesan. Berbeda dengan kriptografi, kriptografi menyamarkan arti dari suatu pesan, tapi tidak menyembunyikan bahwa ada suatu pesan. Kata "steganografi" berasal dari bahasa Yunani steganos, yang artinya “tersembunyi atau terselubung”, dan graphein, “menulis”. Salah satu penggunaan steganografi klasik yang pernah dipakai adalah menyembunyikan pesan rahasia pada kepala seseorang yang telah dibotaki, kemudian mengirimnya setelah kepala orang tersebut ditumbuhi rambut kembali. Kini, steganografi modern menggunakan berkas digital sebagai penampung pesannya. Berkas digital tersebut dapat bervariasi, mulai dari berkas teks, gambar, suara (audio), atau video. Media penampung berupa gambar yang belum disisipi
9
data disebut cover-image, sedangkan gambar yang telah disisipi data disebut stego-image. Penambahan key atau kunci dapat dilakukan untuk meningkatkan keamanan data. Langkah-langkah steganografi secara umum dapat dilihat pada gambar 2.2.
Gambar 2.2 Langkah steganografi secara umum
Keuntungan penggunaan steganografi adalah memungkinkan pengiriman data secara rahasia tanpa diketahui bahwa data sedang dikirim. Ini membuat pihak ketiga tidak menyadari keberadaan data tersebut. Sebaliknya, penggunaan kriptografi akan menarik kecurigaan pihak ketiga bahwa ada sesuatu yang disembunyikan dalam data yang sedang dikirim. 2.3.1 Kriteria Steganografi Dalam menyembunyikan data, ada beberapa kriteria yang harus dipenuhi. a. Impercepbility. Keberadaan pesan tidak dapat dipersepsi oleh indrawi. Jika pesan disisipkan ke dalam sebuah suara, suara yang telah disisipi pesan harus tidak dapat dibedakan dengan suara asli oleh telinga. Begitu pula dengan gambar, mata akan sulit mendapati perbedaan antara gambar asli dan gambar yang telah disisipi pesan.
10
b. Fidelity. Mutu media penampung tidak berubah banyak akibat penyisipan. Perubahan yang terjadi harus tidak dapat dipersepsi oleh indrawi. c. Recovery. Pesan yang disembunyikan harus dapat diungkap kembali. Tujuan steganografi adalah menyembunyikan informasi, maka sewaktuwaktu informasi yang disembunyikan ini harus dapat diambil kembali untuk dapat digunakan lebih lanjut sesuai keperluan. 2.3.2
Jenis Steganografi Dalam pemakaiannya, steganografi dapat digolongkan menjadi dua jenis, yaitu: a. Non-blind steganografi, dimana gambar asli yang digunakan sebagai cover-image dibutuhkan untuk mengekstraksi data yang disisipkan. b. Blind steganografi, dimana untuk proses pengekstraksian data yang disisipkan tidak dibutuhkan gambar asli yang digunakan sebagai coverimage.
2.4
Metode-Metode Steganografi
2.4.1 Least Significant Bit (LSB) Metode Least Significant Bit (LSB) bekerja dengan cara menyembunyikan pesan pada bit rendah atau bit yang terletak paling kanan pada data piksel yang menyusun file sebuah gambar. Seperti kita ketahui untuk file bitmap 24 bit maka setiap piksel (titik) pada gambar tersebut terdiri dari susunan tiga warna merah, hijau dan biru (RGB) yang masing-masing disusun oleh bilangan 8 bit dari 0 sampai 255 atau dengan format biner 00000000 sampai 11111111. Dengan
11
demikian pada setiap piksel file bitmap 24 bit kita dapat menyisipkan 3 bit data. Untuk menjelaskan metode ini, digunakan gambar digital sebagai cover-object. Pada setiap byte terdapat bit yang paling kurang berarti (Least Significant Bit atau LSB). Misalnya pada byte 00011001, maka bit LSB nya adalah 1.
Untuk
melakukan penyisipan pesan, bit yang paling cocok untuk diganti dengan bit pesan adalah bit LSB, sebab pengubahan bit tersebut hanya akan mengubah nilai bytenya menjadi satu lebih tinggi atau satu lebih rendah. Sebagai contoh, urutan bit berikut ini menggambarkan 3 piksel pada cover-image 24-bit. (00100111 11101001 11001000) (00100111 11001000 11101001) (11001000 00100111 11101001) Pesan yang akan disisipkan adalah karakter “A”, yang nilai biner-nya adalah 10000001, maka akan dihasilkan stego-image dengan urutan bit sebagai berikut: (00100111 11101000 11001000) (00100110 11001000 11101000) (11001000 00100111 11101001) Ada dua jenis teknik yang dapat digunakan pada metode LSB, yaitu penyisipan pesan secara sekuensial dan secara acak. Sekuensial berarti pesan rahasia disisipkan secara berurutan dari data titik pertama yang ditemukan pada file gambar, yaitu titik pada pojok kanan bawah gambar. Sedangkan acak berarti penyisipan pesan rahasia dilakukan secara acak pada gambar, dengan masukan kata kunci (stego-key).
12
Gambar 2.3 Least Significant Bit Sumber: Wohlgemuth, Sven (2002,p10)
2.4.2 Transformasi dan Algoritma Metode steganografi yang lain adalah menyembunyikan data dalam fungsi matematika yang disebut algoritma compression. Terdapat beberapa metode seperti Discrete Cosine Transformation (DCT), Discrete Fourier Transformation (DFT),
dan
Discrete
Wavelet
Transformation
(DWT).
Fungsi
DCT
mentransformasi data dari domain spasial (spatial domain) ke domain frekuensi (frequency domain) dengan membagi piksel-piksel ke dalam 8 x 8 blok piksel dan mentransformasikannya.
13
2.4.2.1 Discrete Cosine Transformation (DCT) Discrete Cosine Transformation (DCT) dimensi dua mempunyai rumus umum sebagai berikut:
Di mana D(i,j) adalah hasil dari transformasi DCT di koordinat (i,j). Adapun i dan j, mereka sediri adalah koordinat di domain frekuensi. Dan untuk C(n), akan bernilai akar seperdua (1/(2)^0,5) untuk n = 0, dan C(n) akan bernilai satu untuk yang lainnya. C(n) sendiri adalah fungsi penormalisasi. Lalu p(x,y) adalah nilai salah satu komponen dari Y, Cb, atau Cr di koordinat (x,y). Sedangkan M dan N merupakan jumlah blok piksel yang digunakan. Sedangkan Inverse Discrete Cosine Transformation (IDCT) memiliki rumus umum sebagai berikut:
2.4.3 Spread Spectrum Image Steganography Metode spread spectrum pertama kali dikenalkan pada sekitar pertengahan tahun 1950. Spread spectrum adalah sebuah teknik pentransmisian dengan menggunakan pseudo-noise code, sebagai modulator bentuk gelombang untuk menyebarkan energi sinyal dalam sebuah jalur komunikasi (bandwidth) yang lebih besar daripada sinyal jalur komunikasi informasi. Oleh penerima, sinyal dikumpulkan kembali menggunakan replika pseudo-noise code tersinkronisasi.
14
Spread spectrum menggunakan pita lebar, noise-like sinyal. Karena sifatnya yang noise-like, spread spectrum sulit untuk terdeteksi, dipotong, atau ter-demodulasi. Hal – hal inilah yang menyebabkan spread spectrum digunakan untuk komunikasi militer selama bertahun-tahun. Dalam penerapan spread spectrum ke dalam steganografi gambar, spread spectrum bekerja dengan cara menyimpan data yang ingin disembunyikan sebagai gaussian noise di dalam sebuah gambar (Marvel, Boncelet, and Retter 1998, Marvel et al. 1999). Noise tersebut merupakan noise yang melekat pada proses akuisisi gambar, dan jika kita menyimpannya pada tingkat frekuensi rendah, maka perubahan tersebut tidak akan terdeteksi oleh mata manusia ataupun oleh analisis komputer jika tidak disertai akses ke gambar asli. 2.5
Metode Spread Spectrum dengan Pseudorandom Chaos Theorem
2.5.1 Encoding Metode Spread Spectrum Metode spread spectrum ini memanfaatkan domain frekuensi dari suatu gambar. Langkah yang pertama kali dilakukan dalam steganografi dengan metode spread spectrum ini adalah mentransformasikan gambar ke domain frekuensi. Selanjutnya, bit data disisipkan pada koefisien transformasi (misalnya koefisien DCT, DFT, atau DWT). Gambar 2.4 Menunjukkan langkah-langkah dalam melakukan encoding dengan metode spread spectrum.
15
Gambar 2.4 Encoding Metode Spread Spectrum Sumber: Cox, Ingermar J. et al (1997,p5)
2.5.1.1 Transformasi Domain Frekuensi Cara kerja transformasi domain frekuensi JPEG yaitu pertama, JPEG membagi gambar menjadi blok-blok yang besar setiap blok-nya 8 x 8 piksel sehingga tidak ada variasi warna yang cukup berarti dalam ukuran seperti ini. Kemudian, format gambar RGB (Red Green Blue) yang dimiliki oleh gambar pada umumnya dikonversi menjadi YCbCr. Manusia memiliki sensitifitas yang lebih tinggi terhadap luminance dibandingkan
terhadap
chrominance
sehingga
kita
dapat
memanfaatkan
perbedaan-perbedaan yang terdapat pada chrominance tersebut untuk melakukan perubahan. Setelah itu, masing-masing nilai YCbCr tersebut dikurangi dengan 128 agar kita mendapatkan interval nilai dari -128 sampai dengan 127, hal ini dilakukan karena transformasi ke domain frekuensi DCT yang didesain untuk
16
bekerja pada piksel dengan interval tersebut. Kemudian dilakukan perubahan terhadap blok 8 x 8 piksel tersebut menjadi domain frekuensi menggunakan DCT (Discrete Cosine Transform) tipe kedua untuk dua dimensi sehingga kita memperoleh representasi warna dari YCbCr dalam bentuk domain frekuensi. Jika DCT diterapkan blok 8 x 8 maka dengan N = 8 dan x dan y bernilai 0 sampai 7, rumus tersebut akan menjadi:
Koefisien pertama pada DCT dua dimensi yang terletak pada D(0,0) disebut koefisien DC. Sedangkan koefisien lainnya disebut koefisien AC. Pada transformasi DCT, terdapat juga istilah low frequency (koefisien frekuensi rendah), mid frequency (koefisien frekuensi menengah), dan high frequency (koefisien frekuensi tinggi).
Gambar 2.5 Pembagian frekuensi koefisien DCT pada blok 8 x 8
17
2.5.1.2 Modulasi Data Setelah dilakukan transformasi domain, kemudian dilakukan penyusunan data yang akan disisipkan. Penyusunan data menurut Cox et al.(1997) dilakukan dengan cara mula-mula data informasi yang akan disisipkan ke dalam cover-image ditransformasikan menjadi sebuah deretan bilangan biner. Deret tersebut dinotasikan dengan w (wi,....,wn). Kemudian dilakukan proses pengacakan data dengan bilangan chaos yang dibangkitkan menggunakan persamaan logistik dengan nilai awal xo. Panjang dari barisan bilangan chaos (S1) ini disesuaikan dengan panjang dari deret data. Jika panjang data lebih kecil dari panjang bilangan chaos, bilangan chaos tersebut akan dipotong sesuai dengan ukuran data. Sebaliknya, jika panjang data lebih besar dari panjang bilangan chaos, maka bilangan tersebut akan diulang sampai panjangnya sama dengan panjang data. Setelah panjang bilangan chaos tersebut sama dengan panjang deret data, barisan bilangan chaos yang merupakan bilangan riil tersebut ditransformasikan menjadi nilai biner dengan fungsi:
Dimana Tw merupaka nilai rata-rata dari seluruh barisan bilangan chaos yang telah dibangkitkan dengan persamaan logistik. Kemudian barisan bilangan pseudonoise tersebut di XOR-kan dengan pesan yang akan disisipkan. Data hasil XOR (dinotasikan dengan w’) tersebut yang mempunyai elemenelemen bilangan 0 dan 1 diubah menjadi nilai bipolar dengan cara mengubah nilai bit 0 menjadi -1, sedangkan nilai bit 1 tidak dilakukan perubahan.
18
Dengan persamaan logistik, dibuat kembali sebuah barisan bilangan y dengan nilai awal yo (xo≠yo). Barisan ini kemudian dikalikan dengan w’.
Nilai dari w’’ digunakan untuk melakukan penyisipan data pada matriks frekuensi. 2.5.1.3 Penentuan Lokasi Penyisipan Data Penentuan lokasi penyisipan pada domain frekuensi dilakukan dengan memperhatikan fidelity dan robustness (ketahanan data). Penyisipan pada koefisien bernilai kecil yang normalnya terletak pada frekuensi tinggi tidak mengakibatkan perubahan gambar yang signifikan akan tetapi rentan terhadap modifikasi gambar, sedangkan penyisipan pada koefisien bernilai besar yang normalnya terletak pada frekuensi rendah relatif mengakibatkan perubahan pada gambar akan tetapi lebih kuat terhadap modifikasi gambar. Maka dari itu, dengan memperhatikan karakteristik fidelity dan robustness, data akan disisipkan di daerah yang memiliki koefisien-koefisien bernilai besar dari matriks transformasi dengan melakukan pengecualian kepada koefisien DC (Koefisien pertama pada DCT dua dimensi yang terletak pada D(0,0)). Penentuan koefisien-koefisien bernilai besar yang akan disisipi dari matriks transformasi tersebut dilakukan dengan melakukan penelusuran terhadap setiap blok-blok matriks tersebut. Semua koefisien nilai yang terdapat pada setiap blok matriks transformasi tersebut dianggap positif sehingga tanda negatif tidak mempengaruhi besar kecilnya nilai.
19
2.5.1.4 Penyisipan Data Pada Matriks Frekuensi Langkah selanjutnya pada proses penyisipan data menggunakan rumus mengacu pada metode yang dikembangkan oleh Cox et al. yang mempunyai rumus sebagai berikut:
Di’ = Di (1 + αwi”) Dimana Di’ adalah koefisien transformasi frekuensi setelah dimodifikasi , Di adalah koefisien transformasi frekuensi sebelum dimodifikasi, dan wi” adalah nilai bit dari data yang disisipkan yang merupakan bagian dari deretan bilangan riil w” = wi”,...,wn”. Data tersebut diacak sehingga setiap bilangan riil wi” bersifat independen terhadap bilangan riil lainnya. Dalam pengimplementasian spread spectrum, nilai bilangan riil acak tersebut diproses sehingga berada antara 0 dan 1 agar tidak terlalu jauh mengubah gambar asli namun tetap kuat terhadap pengolahan atau manipulasi. Sedangkan nilai α merupakan bilangan bulat positif. Penggunaan nilai α mempengaruhi kekuatan gambar, α berfungsi sebagai ukuran relatif seberapa banyak Di akan diubah. Nilai α yang besar dapat mengakibatkan terjadinya perubahan pada gambar dan melemahkan gambar terhadap pengolahan lanjutan dibandingkan dengan nilai α yang kecil. Oleh karena itu dipilih α = 0.1 pada skripsi ini. Setelah proses penyisipan selesai, dilakukan invers transformasi domain frekuensi untuk mendapatkan stego-image.
20
Gambar 2.6 Proses penyisipan data Sumber: Munir, Rinaldi et al. (2007,p3)
2.5.1.5 Invers Transformasi Domain Frekuensi Invers transformasi domain frekuensi merupakan langkah yang berkebalikan dengan transformasi domain frekuensi. Setelah diperoleh matriks dari perhitungan invers transformasi domain frekuensi tersebut, nilai dari setiap blok matriks tersebut kemudian ditambahkan dengan 128 untuk mendapatkan interval dari 0 sampai 255 kembali. Kemudian matriks YCbCr tersebut diubah kembali menjadi matriks RGB. 2.5.2 Decoding Metode Spread Spectrum Proses decoding merupakan proses untuk mengambil / mengekstraksi kembali data yang telah disisipkan ke dalam sebuah gambar. Proses ini dilakukan dengan membandingkan domain frekuensi dari cover-image dan stego-image.
21
Gambar 2.7 Proses Decoding Metode Spread Spectrum Sumber: Cox, Ingermar J. et al (1997,p6) Dengan membandingkan koefisien hasil transformasi domain frekuensi dari kedua gambar tersebut, didapatkan nilai selisih koefisien-koefisien tersebut yang menandakan adanya proses penyisipan pada gambar tersebut.
Gambar 2.8 Ilustrasi perbandingan domain frekuensi cover-image dan stego-image
22
Kemudian koefisien-koefisien yang didapatkan tersebut digunakan untuk menghitung kembali deret data yang disisipkan dengan rumus:
wi * : nilai data dari deret ke – i : koefisien pada stego-image : koefisien pada cover-image Setelah nilai wi * didapatkan. wi * di XOR-kan barisan bilangan yo, sehingga kita memperoleh informasi data yang disisipkan dan dapat disusun kembali menjadi bentuk gambar. 2.5.3 Pseudorandom Pada steganografi, pembangkitan bilangan acak dapat digunakan untuk menentukan kunci penyisipan dan ekstraksi data dari berkas media. Komputer mampu menghasilkan bilangan semu acak (pseudorandom). Deret bilangan pseudorandom adalah sejumlah bilangan besar yang bersifat seperti noise akan tetapi bersifat deterministik dan dapat diproduksi ulang. 2.5.3.1 Chaos Theorem Chaos theorem atau teori chaos dapat digunakan sebagai pseudorandom. Teori chaos merupakan teori yang memiliki tingkat pengacakan yang tinggi namun bersifat deterministik (dimungkinkan membangkitkan nilai-nilai dengan kepastian tertentu). Karakteristik yang umum di dalam teori chaos adalah
23
kepekaannya terhadap perubahan kecil nilai awal (sensitive dependence on initial condition). Kepekaan ini berarti bahwa perbedaan kecil pada nilai awal fungsi, setelah fungsi diiterasi sejumlah kali, akan menghasilkan perbedaan yang sangat besar pada nilai fungsinya. Salah satu fungsi chaos sederhana ialah persamaan logistik (logistic map) yang biasa dipakai di dalam ekologi untuk mensimulasikan pertumbuhan spesies di dalam ekosistem. Persamaan logistik dinyatakan sebagai:
Dimana 0 ≤ µ ≤ 4, dengan xo sebagai nilai awal iterasi. Daerah asal x adalah 0 sampai 1. Konstanta µ menyatakan laju pertumbuhan fungsi. Jika µ bernilai 4 maka iterasi akan bergantung sepenuhnya pada nilai awal xo dan nilai yang dihasilkan akan bersifat acak. Nilai-nilai chaos yang dihasilkan bertipe bilangan riil dan berada di dalam rentang yang lengkap antara 0 dan 1. 2.6
Pengukuran Kualitas Gambar Penilaian kualitas gambar terkompresi JPEG dilakukan secara subjektif dan objektif. Penilaian subjektif dilakuan dengan cara melihat gambar secara kasat mata. Penilaian objektif dilakukan dengan cara menghitung nilai PSNR (Peak Signal to Noise Ratio). Nilai PSNR dalam satuan desibel (dB) dihitung berdasarkan persamaan:
Dimana: MAXI
: Nilai maksimum piksel
24
Dengan: 1 3
,
,
, ,
Dimana:
2.7
MSE
: nilai Mean Square Error dari gambar
M
: panjang gambar dalam piksel
N
: lebar gambar dalam piksel
i,j
: koordinat masing-masing piksel
F
: gambar pertama
K
: gambar kedua
Rekayasa Piranti Lunak Menurut Pressman (2005), dalam pembuatan sebuah program untuk memecahkan sebuah masalah, diperlukan tahap-tahap perencanaan agar program yang dibuat menghasilkan hasil yang sesuai dengan tujuan. Terdapat beberapa model yang dapat digunakan sebagai dasar tahap-tahap perencanaan pembuatan sebuah program. Pemilihan model-model tersebut disesuaikan dengan kebutuhan dan metode yang digunakan. Metode yang akan digunakan pada perancangan program aplikasi non-blind steganografi ini adalah : Linear Sequencial Model (waterfall model) Model linear sequencial model atau waterfall model adalah model klasik yang bersifat sistematis, berurutan dalam tahapan pembangunan sebuah program.
25
Gambar 2.9 Waterfall Model
a. Requirements analysis and definition: Mengumpulkan kebutuhan secara lengkap kemudian kemudian dianalisis dan didefinisikan kebutuhan yang harus dipenuhi oleh program yang akan dibangun. Fase ini harus dikerjakan secara lengkap untuk bisa menghasilkan desain yang lengkap. b. System and software design: Desain dikerjakan setelah kebutuhan selesai dikumpulkan secara lengkap. c. Implementation and unit testing: desain program diterjemahkan ke dalam kode-kode dengan menggunakan bahasa pemrograman yang sudah ditentukan. Program yang dibangun langsung diuji baik secara unit. d. Integration and system testing: Penyatuan unit-unit program kemudian diuji secara keseluruhan (system testing).
26
e. Operation
and
maintenance:
mengoperasikan
program
dilingkungannya dan melakukan pemeliharaan, seperti penyesuaian atau perubahan karena adaptasi dengan situasi sebenarnya. 2.8
Unified Modelling Languange UML (Unified Modeling Language) adalah sebuah standarisasi untuk menetukan, visualisasi, kontruksi, dan mendokumentasikan sistem perangkat lunak. UML merupakan sekumpulan simbol dan diagram untuk memodelkan sebuah software. Dengan menggunakan UML, desain software dapat diwujudkan dalam bentuk simbol dan diagram yang kemudian dapat diterjemahkan ke dalam bahasa pemrograman apapun. UML mendeskripsikan OOP (Object-Oriented Programming) menjadi beberapa diagram, yaitu: a. Class Diagram Class diagram mendekripsikan kelompok obyek-obyek dengan properti, perilaku (operasi) dan relasi yang sama. Sehingga dengan adanya class diagram dapat memberikan pandangan global atas sebuah sistem. Class diagram menunjukkan hubungan antar class dalam sistem yang sedang dibangun dan bagaimana mereka saling berkolaborasi untuk mencapai suatu tujuan. b. Object Diagram Diagram yang menjelaskan tentang nama obyek, atribut dan metode yang dipakai.
27
c. Component Diagram Component diagram menggambarkan struktur dan hubungan antar komponen piranti lunak, termasuk ketergantungan (dependency) di antaranya. d. Deployment Diagram Menggambarkan tata letak sebuah system secara fisik, menampakkan bagianbagian software yang berjalan pada bagian-bagian hardware, menunjukkan hubungan komputer dengan perangkat (nodes) satu sama lain dan jenis hubungannya. Di dalam nodes, executeable component dan object yang dialokasikan untuk memperlihatkan unit perangkat lunak yang dieksekusi oleh node tertentu dan ketergantungan komponen. e. Use Case Diagram Use-case diagram menjelaskan manfaat dari aplikasi jika dilihat dari sudut pandang orang yang berada diluar sistem (actor). Diagram ini menunjukkan fungsionalitas suatu sistem atau kelas dan bagaimana sistem berinteraksi dengan dunia luar. Use-case diagram dapat digunakan selama proses analisa untuk menangkap requirements atau permintaan terhadap sistem dan untuk memahami bagaimana sistem tersebut harus berkerja.Selama tahap desain, use-case diagram menetapkan perilaku dari aplikasi saat implementasi. Dalam sabuah model memungkinkan terdapat satu atu beberapa use-case diagram. f. Sequence Diagram Sequence diagram menjelaskan interaksi objek yang disusun dalam suatu urutan waktu. Kegunaannya untuk menunjukkan rangkaian pesan yang dikirim antara object juga interaksi antara object, sesuatu yang terjadi pada titik tertentu dalam eksekusi sistem.
28
g. Collaboration Diagram Collaboration diagram juga menggambarkan interaksi antar objek seperti sequence diagram, tetapi lebih menekankan pada peran masing-masing objek dan bukan pada waktu. h. Flow Diagram Flow diagram menggambarkan aliran data informasi dan transformasi (proses) dari data, dimulai dari pemasukan data sampai menghasilkan keluaran (output) data. i. Activity Diagram Activity diagram memodelkan berbagai alur kerja yang menunjukkan urutan aliran suatu aktifitas. Activity diagram paling cocok untuk memodelkan urutan aktifitas dalam suatu sistem karena dapat juga menggambarkan aktfitas parallel yang mungkin terjadi dalam suatu sistem.
Hal-hal yang telah dijelaskan di atas akan menjadi dasar teori dalam penulisan skripsi ini dan menjadi acuan dalam membuat bab selanjutnya.