Tuesday, September 27, 2011

TEKNIK PENYEMBUNYIAN PESAN FILE DAN TEXT DENGAN METODE ENKRIPSI DES DAN ENKRIPSI RC4


BAB I
PENDAHULUAN


1.1   Latar Belakang

Keamanan suatu informasi pada jaman global ini makin menjadi sebuah  kebutuhan  vital  dalam  berbagai  aspek  kehidupan. Suatu informasi akan memiliki nilai lebih tinggi apabila menyangkut tentang aspek-aspek keputusan bisnis, keamanan, ataupun kepentingan umum. Dimana informasi-informasi tersebut tentunya akan banyak diminati oleh berbagai pihak yang juga memiliki kepentingan di dalamnya.
Oleh karena itu, steganografi semakin dibutuhkan  guna memberikan keamanan yang maksimal dalam proses pengiriman informasi. Steganografi merupakan cara untuk menyembunyikan suatu pesan atau data rahasia di dalam data atau pesan lain yang tampak tidak mengandung apa-apa, kecuali bagi orang yang mengerti kuncinya. Teknik steganografi umum digunakan bersamaan dengan menggunakan dua media yang berbeda, dimana salah satunya berfungsi sebagai media  yang berisikan informasi cover file (carrier file) dan yang lain berfungsi sebagai media pembawa informasi tersebut (secret file).
Aplikasi Steganografi yang sekarang ini ada masih mengandalkan satu enkripsi saja sehingga hanya ada satu perlindungan password saja atau bahkan tampa password. Dan jarang yang menggunaka zip compression pada pesan yang akan disisipkan sehingga apabila pesan yang disisipkan itu banyak atau besar maka media pembawa informasi akan mengalami perbedaan yang besar pula dengan aslinya, sehingga ini akan membuat mudah diketahui oleh pihak yang tidak berkepentingan.
1
 
Kekurangan Least Significant Bit Insertion (LSB) dari contoh 8 bit pixel yang menggunakan teknik LSB maka dapat secara drastis mengubah unsur pokok dari warna dari pixel. Hal itu dapat menunjukkan perbedaan yang nyata dari cover image menjadi stego image, sehingga perbedaan tersebut dapat dinyataan sebagai keberadaan steganografi. Namun metode LSB ini memiliki keuntugan yaitu cepat dan mudah, serta sudah ada aplikasi yang mendukung[14].  
Melalui proyek akhir ini dibangun suatu aplikasi yang mengimplementasikan steganografi dengan menggunakan metode Least Significant Bit sebagai cara untuk menyembunyikan suatu data berbentuk file multimedia apapun ke dalam media file multimedia apapun juga. Penggunaan teknologi steganografi ini diharapkan dapat  membantu upaya dalam peningkatan pengamanan pengiriman informasi dan mempermudah perlindungan atas hak cipta hasil  karya  media  elektronik. Selain  itu,  untuk lebih merampingkan ukuran data digunakan algoritma zip compression, dan agar menjaga data lebih aman digunakan algoritma enkripsi RC4 untuk mengacak data teks pada plain textnya dan algortima enkripsi DES untuk mengacak bit dari (carier file) yang telah dikompresi yang akan disisipkan ke file media pembawanya.
Steganografi yang digabung dengan algoritma zip compression diharapkan bisa membuat data teks lebih kecil sehingga mudah disisipkan ke media file pembawanya (secret file), sekaligus bias mengecoh orang lain kalau tidak ada file rahasia didalam media file tersebut. Dan untuk menambah keamanan data, maka data yang akan disisipkan sudah diacak dengan menggunakan algoritma enkripsi DES yang jarang digunakan untuk system keamanan karena dianggap kuno dan kurang aman. Karena jarang digunakan inilah yang menjadi kelebihan kriptografi ini. Untuk itulah algoritma enkripsi RC4 digunakan untuk menyempurnakan enkripsi pada secret text yang apabila enkripsi DES sudah terbuka maka text tersebut tidak bisa dibaca karena sebelumnya text sudah teracak dengan kunci tertentu sehingga pesan rahasia akan sangat aman karena mengalami 2 proses enkripsi yang berbeda.

 1.2.   Rumusan Masalah

Dalam pelaksanaan tugas akhir ini terdapat beberapa permasalahan yang  menjadi  titik  utama  pembahasan,  diantaranya  adalah  sebagai berikut :
1.    Bagaimana menyisipkan suatu pesan rahasia berupa text dan file multimedia ke dalam sebuah file multimedia menggunakan metode Least Significant Bit dengan menambahkan atau memodifikasi tahapannya dengan algoritma zip compression, enkrpsi RC4, enkripsi DES.
2.    Bagaimana menyisipkan suatu pesan rahasia ke dalam sebuah file multimedia agar tidak mudah diketahui oleh yang tidak berhak, tetapi mudah dibuka oleh yang berhak.
3.    Bagaimana mengambil kembali informasi dari berkas stego (file hasil proses encoding steganografi) tanpa mengurangi atau merusak informasi tersebut. Agar orang ataupun kelompok yang berhak menerima pesan rahasia tersebut dapat melihat pesannya, sedangkan yang tidak berhak tidak bisa membuknya.

1.3   Batasan Masalah

Sedangkan batasan masalah pada proyek akhir agar tidak terjadi kesalahan persepsi dan tidak meluasnya pokok bahasan antara lain :
a.       Pembahasan mengenai pengamanan file rahasia dengan algoritma enkripsi RC4, DES dan Zip compression.
b.      Teknik steganografi dengan enkripsi ganda (RC4 & DES) hanya akan digunakan atau diterapkan pada pesan rahasia berupa teks. Sedangkan untuk file yang disisipkan hanya akan menggunakan enkripsi DES.


 1.4   Tujuan Penelitan

Tujuan yang hendak dicapai dalam tugas akhir ini adalah merancang dan menciptakan suatu perangkat lunak yang dapat mengamankan text rahasia yang akan disisip kedalam cover file (carier file) yaitu dengan 2 enkripsi yang berbeda yaitu dengan algoritma RC4 yang digunakan untuk mengacak plain text dan algoritma DES untuk mengacak bit file text dengan pilhan yang beragam file multimedia yang akan menjadi cover file (carier file) maupun yang akan menjadi file rahasia, agar orang ataupun kelompok yang berhak menerima pesan rahasia tersebut dapat melihat pesannya, sedangkan yang tidak berhak tidak bisa membuknya.
Memanipulasi file multimedia yang di dalamnya terdapat informasi rahasia sehingga pesan rahasia tersebut tidak dapat diketahui keberadaannya dan secara kasat mata tidak terjadi perubahan yang signifikan pada file multimedia yang sebagai cover hasil manipulasi.

1.5   Manfaat Penelitian

Manfaat dari apliksi yang dibuat ini adalah untuk memberikan keamanan penuh kepada instansi maupun perorangan yang akan mengirim suatu pesan rahasia dengan pilihan file multimedia yang beragam sekaligus dengan kemampuan ukuran yang lebih besar atau banyak dari aplikasi steganografi sebelumnya kepada penerima, dengan mengecoh dari bentuk stego file yang tidak ada bedanya dengan yang sebelum disisipi pesan membuat orang lain tidak mengetahui adanya pesan rahasia.
Semoga penelitian ini bisa menjadi inpirasi untuk dikembangkan lagi cara pengiriman pesan rahasia dan sekaligus menjadi tren pegiriman pesan rahasia saat ini. 



BAB II
LANDASAN TEORI


2.1   Pengertian RPL

Istilah Reakayasa Perangkat Lunak (RPL) secara umum disepakati sebagai terjemahan dari istilah Software engineering. Istilah Software Engineering mulai dipopulerkan pada tahun 1968 pada software engineering Conference yang diselenggarakan oleh NATO. Sebagian orang mengartikan RPL hanya sebatas pada bagaimana membuat program komputer. Padahal ada perbedaan yang mendasar antara perangkat lunak (software) dan program komputer.
Perangkat lunak adalah seluruh perintah yang digunakan untuk memproses informasi. Perangkat lunak dapat berupa program atau prosedur. Program adalah kumpulan perintah yang dimengerti oleh komputer sedangkan prosedur adalah perintah yang dibutuhkan oleh pengguna dalam memproses informasi (O’Brien, 1999).
Pengertian RPL sendiri adalah suatu disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal yaitu analisa kebutuhan pengguna, menentukan spesifikasi dari kebutuhan pengguna, disain, pengkodean, pengujian sampai pemeliharaan sistem setelah digunakan. Dari pengertian ini jelaslah bahwa RPL tidak hanya berhubungan dengan cara pembuatan program komputer. Pernyataan ”semua aspek produksi” pada pengertian di atas, mempunyai arti semnua hal yang berhubungan dengan proses produksi seperti manajemen proyek, penentuan personil, anggaran biaya, metode, jadwal, kualitas sampai dengan pelatihan pengguna merupakan bagian dari RPL[12].


5
 
 

2.1.1   Sejarah RPL

Istilah software engineering digunakan pertama kali pada akhir 1950-an dan awal 1960-an. Saat itu, masih terdapat perdebatan tajam mengenai aspek engineering dari pengembangan perangkat lunak. Pada tahun 1968 dan 1969, komite sains NATO mensponsori dua konferensi tentang rekayasa perangkat lunak, yang memberikan dampak kuat terhadap pengembangan rekayasa perangkat lunak. Banyak yang menganggap dua konferensi inilah yang menandai awal resmi profesi rekayasa perangkat lunak[12].
Pada tahun 1960-an hingga 1980-an, banyak masalah yang ditemukan para praktisi pengembangan perangkat lunak. Banyak project yang gagal, hingga masa ini disebut sebagai krisis perangkat lunak. Kasus kegagalan pengembangan perangkat lunak terjadi mulai dari project yang melebihi anggaran, hingga kasusu yang mengakibatkan kerusakan fisik dan kematian. Salah satu kasus yang terkenal antara lain meledaknya roket Ariane akibat kegagalan perangkat lunak. Selama bertahun-tahun, para peneliti memfokuskan usahanay untuk menemukan teknik jitu untuk memecahkan masalah krisi perangkat lunak. Berbagai teknik, metode, alat, proses diciptakan dan diklaim sebagai senjata pamungkas untuk memecahkan kasus ini. Mulai dari pemrograman terstruktur, pemrograman berorientasi objek, pernagkat pembantu pengembangan perangkat lunak (CASE tools), berbagai standar, UML hingga metode formal diagung-agungkan sebagai senjaat pamungkas untuk menghasilkan software yang benar, sesuai anggaran dan tepat waktu. Pada tahun 1987, Fred Brooks menulis artikel No Silver Bullet, yang berproposisi bahwa tidak ada satu teknologi atau praktek yang sanggup mencapai 10 kali lipat perbaikan dalam produktivitas pengembanan perngkat lunak dalam tempo 10 tahun.
Sebagian berpendapat, no silver bullet berarti profesi rekayasa perangkat lunak dianggap telah gagal. Namun sebagian yang lain justru beranggapan, hal ini menandakan bahwa bidang profesi rekayasa perangkat lunak telah cukup matang, karena dalam bidang profesi lainnya pun, tidak ada teknik pamungkas yang dapat digunakan dalam berbagai kondisi.

2.1.2   Tujuan RPL

Secara umum tujuan RPL tidak berbeda dengan bidang rekayasa yang lain. Hal ini dapat kita lihat pada Gambar di bawah ini:








KINERJA
 


BIAYAA
 

WAKTU
 
 




Gambar 2.1  Tujuan RPL [Sumber: 12]
Dari Gambar di atas dapat diartikan bahwa bidang rekayasa akan selalu berusaha menghasilkan output yang kinerjanya tinggi, biaya rendah dan waktu penyelesaian yang tepat. Secara lebih khusus kita dapat menyatakan tujuan RPL adalah:
a.       memperoleh biaya produksi perangkat lunak yang rendah
b.      menghasilkan pereangkat lunak yang kinerjanya tinggi, andal dan tepat waktu
c.       menghasilkan perangkat lunak yang dapat bekerja pada berbagai jenis platform
d.      menghasilkan perangkat lunak yang biaya perawatannya rendah.

2.1.3        Ruang Lingkup RPL

Sesuai dengan definisi yang telah disampaikan sebelumnya, maka ruang lingkup RPL dapat digambarkan sebagai berikut:





Gambar 2.2  Ruang lingkup RPL (Abran et.al., 2004).
a.       software Requirements berhubungan dengan spesifikasi kebutuhan dan persyaratan perangkat lunak
b.      software desain mencakup proses penampilan arsitektur, komponen, antar muka, dan karakteristik lain dari perangkat lunak
c.       software construction berhubungan dengan detail pengembangan perangkat lunak, termasuk algoritma, pengkodean, pengujian dan pencarian kesalahan
d.      software testing meliputi pengujian pada keseluruhan perilaku perangkat lunak
e.       software maintenance mencakup upaya-upaya perawatan ketika perangkat lunak telah dioperasikan
f.       software configuration management berhubungan dengan usaha perubahan konfigurasi perangkat lunak untuk memenuhi kebutuhan tertentu
g.      software engineering management berkaitan dengan pengelolaan dan pengukuran RPL, termasuk perencanaan proyek perangkat lunak
h.      software engineering tools and methods mencakup kajian teoritis tentang alat bantu dan metode RPL
i.        software engineering process berhubungan dengan definisi, implementasi pengukuran, pengelolaan, perubahan dan perbaikan proses RPL
j.        software quality menitik beratkan pada kualitas dan daur hidup perangkat lunak.

2.1.4        RPL dan Disiplin Ilmu Lain

Cakupan ruang lingkup yang cukup luas, membuat RPL sangat terkait dengan disiplin dengan bidang ilmu lain. tidak saja sub bidang dalam disiplin ilmu komputer namun dengan beberapa disiplin ilmu lain diluar ilmu komputer[10].
Hubungan keterkaitan RPL dengan ilmu lain dapat dilihat pada gambar dibawah ini




Gambar 2.3. Keterkaitan RPL dengan bidang ilmu lain[Sumber: 12].
a.       bidang ilmu manajemen meliputi akuntansi, finansial, pemasaran, manajemen operasi, ekonomi, analisis kuantitatif, manajemen sumber daya manusia, kebijakan, dan strategi bisnis.
b.      bidang ilmu matematika meliputi aljabar linier, kalkulus, peluang, statistik, analisis numerik, dan matematika diskrit.
c.       bidang ilmu manajemen proyek meliputi semua hal yang berkaitan dengan proyek, seperti ruang lingkup proyek, anggaran, tenaga kerja, kualitas, manajemen resiko dan keandalan, perbaikan kualitas, dan metode-metode kuantitatif.
d.      bidang ilmu ergonomika menyangkut hubungan (interaksi) antar manusia dengan komponen-komponen lain dalam sistem komputer.
e.       bidang ilmu rekayasa sistem meliputi teori sistem, analisis biaya-keuntungan, pemodelan, simulasi, proses, dan operasi bisnis.

2.2.   Pengertian Steganografi

Steganografi (covered writing) didefinisikan sebagai ilmu  dan seni untuk menyembunyikan pesan rahasia (hiding message) sedemikian sehingga keberadaan (eksistensi) pesan tidak terdeteksi oleh indera manusia[6]. Media yang digunakan umumnya merupakan suatu media yang  berbeda  dengan  media  pembawa  informasi  rahasia,  dimana disinilah fungsi dari teknik steganografi yaitu sebagai teknik penyamaran menggunakan media lain yang berbeda sehingga informasi rahasia dalam media awal tidak terlihat secara jelas.
Steganografi biasanya sering disalahkaprahkan dengan kriptografi karenanya keduanya sama-sama bertujuan untuk melindungi informasi yang berharga. Perbedaan yang mendasar antara keduanya yaitu steganografi berhubungan dengan informasi tersembunyi sehingga tampak seperti tidak ada informasi tersembunyi sama sekali. Jika seseorang mengamati objek yang menyimpan informasi tersembunyi tersebut, ia tidak akan menyangka bahwa terdapat pesan rahasia dalam objek tersebut, dan karenanya ia tidak akan berusaha memecahkan informasi (dekripsi) dari objek tersebut[13].
Kata steganografi berasal dari bahasa Yunani, yaitu dari kata Steganos (tersembunyi) dan Graptos (tulisan). Steganografi di dunia modern biasanya mengacu pada informasi atau suatu arsip yang telah disembunyikan ke dalam suatu arsip citra digital, audio, atau video[9]. Teknik steganografi ini telah banyak digunakan dalam stratategi peperangan dan pengiriman sandi rahasia sejak jaman dahulu kala. Dalam perang Dunia II, teknik steganografi umum digunakan oleh tentara Jerman dalam mengirimkan pesan rahasia dari atau menuju Jerman.
Semakin pentingnya nilai dari sebuah informasi, maka semakin berkembang pula metode-metode yang dapat digunakan untuk melakukan penyisipan informasi yang didukung pula dengan semakin berkembangnya media elektronik. Berbagai macam media elektronik kini telah dapat digunakan untuk melakukan berbagai fungsi steganografi dengan berbagai macam tujuan dan fungsi yang diharapkan oleh penggunanya. Sebagai fungsi yang umum, steganografi digunakan untuk memberikan cap khusus dalam sebuah karya yang dibuat dalam format media elektronik sebagai identifikasi .
Satu hal esensial yang menjadi kelebihan steganografi adalah kemampuannya untuk menipu persepsi manusia, manusia tidak memiliki insting untuk mencurigai adanya arsip-arsip yang memiliki informasi yang tersembunyi di dalamnya, terutama bila arsip tersebut tampak seperti arsip normal lainnya. Namun begitu terbentuk pula suatu teknik yang dikenal dengan steganalysis, yaitu suatu teknik yang digunakan untuk mendeteksi penggunaan steganografi pada suatu arsip. Seorang steganalyst tidak berusaha untuk melakukan dekripsi terhadap informasi yang tersembunyi dalam suatu arsip, yang dilakukan adalah berusaha untuk menemukannya. Terdapat beberapa cara yang dapat digunakan untuk mendeteksi steganografi seperti melakukan pengamatan terhadap suatu arsip dan membandingkannya dengan salinan arsip yang dianggap belum direkayasa.

2.2.1   Sejarah Steganografi

Seperti kriptografi, penggunaan steganografi sebenarnya  telah digunakan berabad-abad yang lalu bahkan sebelum istilah steganografi itu sendiri muncul. Berikut adalah contoh penggunaan steganografi di masa lalu[6] :
1.      Selama terjadinya Perang Dunia ke-2, tinta yang tidak tampak (invisible ink) telah digunakan untuk menulis informasi pada lembaran kertas sehingga saat kertas tersebut jatuh di tangan pihak lain hanya akan tampak seperti lembaran kertas kosong biasa.
2.      Pada  sejarah  Yunani  kuno,  masyarakatnya  biasa  menggunakan seorang   pembawa   pesan   sebagai   perantara   pengiriman  pesan. Pengirim pesan tersebut akan dicukur rambutnya, untuk kemudian dituliskan suatu pesan pada kepalanya yang sudah botak. Setelah pesan dituliskan, pembawa pesan harus menunggu hingga rambutnya tumbuh kembali sebelum dapat mengirimkan pesan kepada pihak penerima. Pihak penerima   kemudian akan mencukur rambut pembawa pesan tersebut untuk melihat pesan yang tersembunyi.
3.      Metode lain yang digunakan oleh masyarakat Yunani kuno adalah dengan menggunakan lilin sebagai media penyembunyi pesan mereka. Pesan dituliskan pada suatu lembaran, dan lembaran tersebut akan ditutup dengan lilin untuk menyembunyikan pesan yang telah tertulis.  Pihak penerima kemudian akan menghilangkan lilin dari lembaran tersebut untuk melihat pesan yang disampaikan oleh pihak pengirim.

2.2.2   Metode Steganografi
Kebanyakan algoritma steganografi menggunakan sebuah kombinasi dari bidang jenis teknik untuk melakukan sebuah tugas dalam penyelubungan pesan rahasia dalam sebuah selubung berkas. Sebuah program steganografi dibutuhkan untuk melakukan hal-hal berikut (baik implisit melalui suatu perkiraan maupun eksplisit melalui sebuah perhitungan), menemukan kelebihan bits dalam selubung file yang dapat digunakan untuk menyelubungi pesan rahasia didalamnya, memilih beberapa diantaranya untuk digunakan dalam menyelubungi data dan penyelubungan data dalam bits dipilih sebelumnya. Ada empat jenis metode Steganografi, yaitu[11]:

2.2.2.1   Least Significant Bit Insertion (LSB)
Metoda yang digunakan untuk menyembunyikan pesan pada media digital tersebut berbeda-beda. Contohnya, pada berkas image pesan dapat disembunyikan dengan menggunakan cara menyisipkannya pada bit rendah atau bit yang paling kanan (LSB) pada data pixel yang menyusun file tersebut. Pada berkas bitmap 24 bit, setiap pixel (titik) pada gambar tersebut terdiri dari susunan tiga warna merah, hijau dan biru (RGB) yang masing-masing disusun oleh bilangan 8 bit (byte) dari 0 sampai 255 atau dengan format biner 00000000 sampai 11111111. Dengan demikian, pada setiap pixel berkas bitmap 24 bit kita dapat menyisipkan 3 bit data.
Kekurangan dari LSB Invertion: Dapat diambil kesimpulan dari contoh 8 bit pixel, menggunakan LSB Insertion dapat secara drastis mengubah unsur pokok warna dari pixel. Ini dapat menunjukkan perbedaan yang nyata dari cover image menjadi stego image, sehingga tanda tersebut menunjukkan keadaan dari steganografi. Variasi warna kurang jelas dengan 24 bit image, bagaimanapun file tersebut sangatlah besar. Antara 8 bit dan 24 bit image mudah diserang dalam pemrosesan image, seperti cropping (kegagalan) dan compression (pemampatan).
Keuntungan dari LSB Insertion : Keuntungan yang paling besar dari algoritma LSB ini adalah cepat dan mudah. Dan juga algoritma tersebut memiliki software steganografi yang mendukung dengan bekerja di antara unsur pokok warna LSB melalui manipulasi pallete (lukisan)[11].

2.2.2.2   Algorithms and Transformation
Algoritma compression adalah metode steganografi dengan menyembunyikan data dalam fungsi matematika. Dua fungsi tersebut adalah Discrete Cosine Transformation (DCT) dan Wavelet Transformation. Fungsi DCT dan Wavelet yaitu mentransformasi data dari satu tempat (domain) ke tempat (domain) yang lain. Fungsi DCT yaitu mentransformasi data dari tempat spatial (spatial domain) ke tempat frekuensi (frequency domain).

2.2.2.3   Redundant Pattern Encoding
Redundant Pattern Encoding adalah menggambar pesan kecil pada kebanyakan gambar. Keuntungan dari metode ini adalah dapat bertahan dari cropping (kegagalan). Kerugiannya yaitu tidak dapat menggambar pesan yang lebih besar.

2.2.2.4   Spread Spectrum method
Spread Spectrum steganografi terpencar-pencar sebagai pesan yang diacak (encrypted) melalui gambar (tidak seperti dalam LSB). Untuk membaca suatu pesan, penerima memerlukan algoritma yaitu crypto-key dan stego-key. Metode ini juga masih mudah diserang yaitu penghancuran atau pengrusakan dari kompresi dan proses image (gambar)[11].

2.2.3   Metode Steganografi pada Multimedia

Terdapat banyak metode yang digunakan dalam melakukan penyembunyian data ke dalam data lainnya. Berikut adalah penjelasan mengenai beberapa metode yang banyak digunakan dalam steganografi multimedia[4] :

2.2.3.1   Steganografi pada media teks

Rahasia penyandian pesan dalam teks dapat tugas yang sangat menantang. Ini karena file teks memiliki sangat sedikit data yang redundan untuk diganti dengan pesan rahasia. Kekurangan lainnya adalah kemudahan untuk mengubah steganografi berbasis teks sehingga dapat diubah oleh pihak yang tidak diinginkan dengan hanya mengubah teks itu sendiri atau reformatting teks ke bentuk lain (dari. TXT ke. PDF,dll). Ada banyak metode yang digunakan untuk steganografi berbasis teks.
Beberapa metode tersebut adalah seperti yang akan dijelaskan di bawah ini[4].
a.       Line-shift encoding melibatkan pergeseran sebenarnya dari setiap baris teks secara vertikal ke atas atau ke bawah oleh sesedikitnya 3 cm. Tergantung pada apakah jalur ini naik atau turun dari garis stasioner maka akan sama dengan nilai yang akan atau dapat dikodekan menjadi pesan rahasia.
b.      Word-shift encoding bekerja dalam banyak cara yang sama seperti cara line-shift encoding bekerja, hanya yang digunakan pada metode ini adalah ruang(spasi) horisontal di antara kata-kata untuk menyamakan nilai untuk pesan tersembunyi. Metode pengkodean ini lebih tidak terlihat daripada line-shift encoding tetapi mensyaratkan bahwa format teks mendukung variabel spacing. Fitur khusus pengkodean melibatkan pengkodean pesan rahasia ke dalam teks berformat dengan mengubah atribut teks tertentu seperti vertikal / horisontal panjang huruf seperti b, d, T, dll. Ini adalah metode pengkodean teks paling sulit untuk mengitersepsi setiap jenis teks berformat memiliki sejumlah besar fitur yang dapat digunakan untuk pengkodean pesan rahasia.
Ketiga metode pengkodean berbasis teks memerlukan baik file asli atau pengetahuan tentang format file asli untuk dapat mengekstraksi pesan rahasia.

2.2.3.2   Steganografi pada media image

Menyembunyikan pesan rahasia dalam gambar digital adalah media yang paling banyak digunakan dari semua metode dalam dunia digital saat ini. Hal ini karena dengan media image maka dapat mengambil keuntungan dari daya terbatas dari sistem visual manusia (HVS). Hampir semua teks biasa, sandi teks, gambar, dan lainnya dapat dikodekan menjadi aliran bit dapat disembunyikan dalam gambar digital. Dengan pertumbuhan yang berkelanjutan dari kekuatan grafik dalam dunia komputer dan penelitian image steganografi, bidang ini akan terus tumbuh pada kecepatan yang sangat cepat.
Bagi komputer, image adalah array of numbers yang menyatakan intensitas cahaya pada berbagai titik atau pixel. Ketika berhadapan dengan gambar digital untuk digunakan dengan steganografi, 8-bit dan 24-bit per pixel file gambar biasanya khas. Keduanya memiliki kelebihan dan kekurangan, gambar 8-bit adalah format yang baik untuk menggunakan karena ukurannya yang relatif kecil. Kekurangannya adalah bahwa hanya 256 warna yang mungkin dapat digunakan yang dapat menjadi masalah potensial dalam pengkodean. Biasanya palet warna grayscale yang digunakan ketika berhadapan dengan gambar 8-bit seperti (. GIF) karena perubahan warna secara bertahap akan lebih sulit untuk dideteksi setelah gambar disisipkan dengan pesan rahasia. Gambar 24-bit memberikan lebih banyak fleksibilitas ketika digunakan untuk steganografi. Jumlah warna yang besar (lebih dari 16 juta) yang dapat digunakan melampaui sistem visual manusia (HVS), yang membuatnya sangat sulit sekali untuk mendeteksi pesan rahasia yang telah disisipkan. Manfaat lain yaitu bahwa jumlah pesan rahasia yang dapat disembunyikan jauh lebih besar dari pada pesan yang dapat disimpan dalam gambar 8-bit.Salah satu kekurangan utama untuk gambar digital 24-bit adalah ukurannya yang besar(biasanya dalam MB) membuat mereka lebih dicurigai daripada gambar 8-bit yang jauh lebih kecil ukurannya(biasanya dalam KB) ketika dikirim melalui sistem terbuka seperti Internet.
Solusi terbaik untuk mengatasi ukuran gambar 24-bit yang besar yaitu dengan mengkompresinya dengan teknik lossless karena teknik ini menjaga agar pesan rahasia tetap utuh saat gambar sudah dikompresi, akan tetapi kekurangannya yaitu ukuran gambar tidak banyak berkurang. Sedangkan teknik kompresi lossy sebaliknya yaitu, mengurangi ukuran gambar dalam jumlah cukup besar tetapi tidak menjamin keutuhan dari pesan rahasia.
Oleh karena itu teknik kompresi losslesslah yang umum dipilih mengingat tujuan utama dari steganografi adalah menyampaikan pesan rahasia dalam media.
Berikut akan dibahas teknik-teknik steganografi pada image yang popular yaitu Least Significant Bit(LSB) dan teknik Masking and Filtering. LSB adalah teknik yang paling populer digunakan untuk gambar digital. Dengan menggunakan LSB dari setiap byte (8 bit) dalam sebuah gambar untuk pesan rahasia, kita dapat menyimpan 3 bit data dalam setiap pixel untuk 24-bit gambar dan 1 bit pada setiap pixel untuk 8-bit gambar. Seperti yang Anda lihat, lebih banyak informasi yang dapat disimpan dalam gambar 24-bit. Tergantung pada palet warna yang digunakan untuk gambar sampul (yaitu, semua abu-abu), mungkin untuk mengambil 2 LSB's dari satu byte tanpa dapat dibedakan oleh sistem visual manusia (HVS). Satu-satunya masalah dengan teknik ini adalah bahwa teknik ini sangat rentan terhadap serangan seperti perubahan dan format terhadap gambar(contohnya, merubah dari. GIF ke. JPEG).
Teknik Masking dan Filtering steganografi pada gambar digital mirip seperti Digital Watermarking yang lebih populer dengan teknik kompresi lossy seperti (JPEG). Teknik ini sebenarnya memperbesar sebuah data gambar dengan menyembunyikan data rahasia atas data asli yang bertentangan dengan menyembunyikan informasi bagian dalam data. Beberapa ahli berpendapat bahwa ini jelas merupakan suatu bentuk penyembunyian informasi, tetapi tidak secara teknis merupakan steganografi. Kelebihan teknik Masking and Filtering bahwa mereka kebal terhadap manipulasi gambar yang membuatnya sangat kuat(robust).

2.2.3.3   Steganografi pada media audio

Penyandian pesan rahasia dalam audio adalah teknik yang paling menantang untuk digunakan saat berurusan dengan steganografi. Hal ini karena sistem pendengaran manusia (HAS) memiliki rentang dinamis yang dapat mendengarkan sehingga membuat manusia menjadi sangat peka terhadap perubahan suara sehingga sulit untuk menyisipkan pesan dalam media audio tanpa diketahui pendengarnya. Satu-satunya kelemahan dalam (HAS) yaitu ketika berusaha membedakan suara (suara keras menghanyutkan suara yang lemah) dan ini adalah hal yang harus dieksploitasi untuk mengkodekan pesan rahasia dalam media audio tanpa terdeteksi. Ada dua konsep untuk dipertimbangkan sebelum memilih teknik steganografi audio, yaitu format digital audio dan media transmisi audio. Ada tiga format audio digital biasanya digunakan yaitu Sample Quantization, Temporal Sampling Rate dan Perceptual Sampling.
Sample Quantization yang merupakan 16-bit arsitektur sampling linier yang digunakan oleh format audio populer seperti (WAV dan AIFF). Temporal Sampling Rate menggunakan frekuensi yang dapat dipilih (dalam KHz) untuk sampel audio. Umumnya, semakin tinggi sampling rate, semakin banyak ruang data yang dapat digunakan.
Format Perceptual Sampling merubah statistik audio secara drastis dengan hanya mengkodekan bagian yang dirasakan pendengar, dengan demikian mempertahankan suara tetapi mengubah sinyal. Format ini digunakan oleh audio digital yang paling popular di Internet saat ini yaitu ISO MPEG (MP3).
Medium transmisi (path audio yang diambil dari pengirim ke penerima) juga harus dipertimbangkan ketika melakukan steganografi audio. W. Bender [8] memperkenalkan empat kemungkinan media transmisi:
a.       Digital end to end - dari mesin ke mesin tanpa modifikasi.
b.      Peningkatan / penurunan resampling - tingkat sampel diubah tetapi tetap digital.
c.       Analog dan resampled - diubah menjadi sinyal analog dan resampled di tingkat yang berbeda.
d.      Over the air - sinyal ditransmisikan ke dalam frekuensi radio dan resampled dari mikrofon.
Berikut akan dibahas tiga metode steganografi audio yang populer, pertama yaitu Echo data hiding menggunakan gema dari file audio untuk menyembunyikan informasi. Dengan menambahkan suara ekstra kepada gema di dalam file audio, informasi dapat tersembunyi dengan baik karena metode ini dapat meningkatkan suara dari audio di dalam file audio.
Low-bit encoding menyisipkan pesan rahasia ke dalam least significant bit (LSB) dari file audio. Kapasitas saluran 1kb per detik per Kilohertz (44 kbps untuk 44 KHz sampel urutan). Metode ini mudah untuk menggabungkan tetapi sangat rentan terhadap kehilangan data akibat kebisingan saluran dan resampling. Phase encoding menggantikan fase awal segmen audio dengan fase referensi yang mewakili data yang tersembunyi. Hal ini dapat dianggap sebagai semacam enkripsi untuk sinyal audio dengan menggunakan apa yang dikenal sebagai Diskrit Fourier Transform (DFT), yang tidak lebih dari algoritma transformasi untuk sinyal audio.
Spread spectrum mengkodekan audio selama hampir seluruh spektrum frekuensi. Kemudian akan mengirimkan audio di frekuensi yang berbeda sehingga akan bervariasi, tergantung pada metode spektrum yang digunakan. Direct Sequence Spread Spectrum (DSSS) adalah salah satu metode yang menyebarkan sinyal dengan mengalikan sinyal sumber oleh beberapa urutan acak semu yang dikenal sebagai(CHIP). Laju sampling ini kemudian digunakan sebagai laju chip untuk mengkomunikasikan sinyal audio. Teknik pengkodean Spread spectrum merupakan sarana yang paling aman digunakan untuk mengirim pesan tersembunyi dalam audio, namun dapat memperkenalkan suara acak ke audio dengan demikian menciptakan kesempatan adanya kehilangan data.


2.2.3.4   Steganografi pada media video

Steganografi pada video tidak kalah menantang dengan steganografi pada audio karena video merupakan gabungan dari image dan audio sehingga dalam steganografi video kita harus memperhatikan kedua aspek tersebut agar tidak terdeteksi oleh pihak lain dalam menyembunyikan pesan rahasia di dalamnya. Pada umumnya metode yang digunakan untuk metode DCT (Discrete Cosine Transform). Cara kerja DCT yaitu dengan sedikit mengganti setiap gambar dalam video, hanya sebanyak sampai tidak dapat dideteksi oleh mata manusia(HVS). DCT merubah nilai dari bagian tertentu dari image, dan biasanya membulatkannya ke atas.
Steganografi pada video mirip dengan steganografi pada image, selain informasi rahasia pda video disembunyikan dalam setiap frame dari video. Bila pesan rahasia yang disembunyikan hanya sedikit jumlahnya, video hasil steganografi pada umumnya tidak akan terdeteksi, tetapi semakin besar pesan yang disisipkan maka semakin dapat terdeteksi.
Video yang sudah disisipi pesan rahasia pasti tidak sama dengan video aslinya dan mengalami penurunan kualitas. Kualitas dari video steganografi dapat ditentukan. berdasarkan beberapa faktor :
- Mean Square Error (RMSE)
MSE adalah parameter yang digunakan untuk menentukan tingkat kesalahan pada image-stego.


……………………………..(2-1)
 
 


- Peak Signal to Noise Ratio(PSNR)
PSNR adalah nilai yang menyatakan tingkat noise atas citra yang telah disisipi pesan.


……………….………… (2-2)
 
 


- Mean Opinion Score (MOS)
Faktor ini merupakan faktor penilaian kualitas secara. subjektif berdasarkan criteria sebagai berikut.
            Tabel 2.1. Kriteria penilaian subjektif terhadap Steganografi Video
















2.3.   Kriptografi

Kriptografi adalah ilmu yang mempelajari teknik-teknik matematis yang berhubungan dengan aspek keamanan informasi seperti : keabsahan, integritas data, serta autentifikasi data. Kriptografi tidak berarti hanya memberikan keamanan informasi saja, namun lebih ke arah teknik-tekniknya. Ada empat tujuan dari ilmu kriptografi, yaitu[11] :
Kerahasiaan, adalah layanan yang digunakan untuk menjaga isi dari informasi dari siapapun kecuali yang memiliki otoritas,
integritas data, adalah berhubungan dengan penjagaan dari perubahan data secara tidak sah. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak yang tidak berhak, antara lain menyangkut penyisipan, penghapusan, dan pensubtitusian data lain ke dalam data yang sebenarnya
Autentikasi, adalah berhubungan dengan identifikasi, baik secara kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan melalui kanal harus diautentikasi keaslian, isi datanya, waktu pengiriman, dan lain-lain, non-repudiasi, yang berarti begitu pesan terkirim, maka tidak akan dapat dibatalkan.
skema-enkripsi-deskripsi-visio






                   Gambar 2.4. Diagram Kriptografi

2.4.   Enkripsi

Enkripsi adalah proses mengamankan suatu informasi dengan membuat informasi tersebut tidak dapat dibaca tanpa bantuan pengetahuan khusus. Dikarenakan enkripsi telah digunakan untuk mengamankan komunikasi di berbagai negara, hanya organisasi – organisasi tertentu dan individu yang memiliki kepentingan yang sangat mendesak akan kerahasiaan yang menggunakan enkripsi. Di pertengahan tahun 1970-an, enkripsi kuat dimanfaatkan untuk pengamanan oleh sekretariat agen pemerintah Amerika serikat pada domain publik, dan saat ini enkripsi telah digunakan pada sistem secara luas, seperti Internet e-commerce, jaringan Telepon bergerak dan ATM pada bank[10].

2.4.1   DES Encryption

DES (Data Encryption Standard) adalah algoritma cipher blok yang populer karena dijadikan standard algoritma enkripsi kunci- simetri, meskipun saat ini standard tersebut telah digantikan dengan algoritma yang baru, AES, karena DES sudah dianggap tidak aman lagi. Sebenarnya DES adalah nama standard enkripsi simetri, nama algoritma enkripsinya sendiri adalah DEA (Data Encryption Algorithm), namun nama DES lebih populer daripada DEA. Algoritma DES dikembangkan di IBM dibawah kepemimpinan W.L. Tuchman pada tahun 1972. Algoritma ini didasarkan pada algoritma Lucifer yang dibuat oleh Horst Feistel.
Algoritma ini telah disetujui oleh National Bureau of Standard (NBS) setelah penilaian kekuatannya oleh National Security Agency (NSA) Amerika Serikat. DES termasuk ke dalam sistem kriptografi simetri dan tergolong jenis cipher blok. DES beroperasi pada ukuran blok 64 bit. DES mengenkripsikan 64 bit plainteks menjadi 64 bit cipherteks dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkey). Kunci internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit. Cara kerja Algortima DES  :
1. Blok plainteks dipermutasi  dengan  matriks  permutasi  awal (initial permutation atau IP).
2. Hasil permutasi awal kemudian di-enchipering sebanyak 16 kali (16 putaran). Setiap putaran menggunakan kunci internal yang berbeda.
3.  Hasil   enciphering   kemudian   dipermutasi   dengan   matriks permutasi balikan (invers initial permutation atau IP-1) menjadi blok cipherteks.





Gambar 2.5. Diagram Enkripsi DES


2.4.2   RC4 (Rivest Code 4)


RC4 merupakan stream cipher yang didesain oleh Rivest untuk RSA Data Security (sekarang RSA Security) pada 1987. RC4 menggunakan panjang variabel kunci dari 1 s.d 256 byte untuk menginisialisasi state table. State table digunakan untuk pengurutan menghasilkan byteps eudo-random yang kemudian menjadi streamps eudo- random.
Setelah di-XOR dengan plaintext sehingga didapatkan ciphertext. Tiap elemen pada state table di swap sedikitnya sekali. Kunci RC4 sering dibatasi sampai 40 bit, tetapi dimungkinkan untuk mengunakan kunci 128 bit. RC4 memiliki kemampuan penggunaan kunci antara 1 sampai 2048 bit.
Panjang kunci merupakan faktor utama dalam sekuritas data. RC4 dapat memiliki kunci sampai dengan 128 bit. Protokol keamanan SSL (Secure Socket Layer) pada Netscape Navigator menggunakan algoritma RC4 40-bit untuk enkripsi simetrisnya. Tahun 1995, Damien Doligez menjebolnya menggunakan 120 komputer Unix yang terhubung pada jaringan dalam waktu 8 hari. Dengan cara seperti ini (Brute Force Attack), dijamin bahwa dalam 15 hari kunci itu pasti ditemukan.
Algoritma RC4 memiliki dua fase, setup kunci dan pengenkripsian. Setup untuk kunci adalah fase pertama dan yang paling sulit dalam algoritma ini. Dalam setup N-bit kunci (N merupakan panjang dari kunci), kunci enkripsi digunakan untuk menghasilkan variabel enkripsi yang menggunakan dua buah array, state dan kunci,dan sejumlah-N hasil dari operasi penggabungan. Operasi penggabungan ini terdiri dari pemindahan(swapping) byte, operasi modulo, dan rumus lain. Operasi modulo merupakan proses yang menghasilkan nilai sisa dari satu pembagian. Sebagai contoh, 11 dibagi 4 adalah 2 dengan sisa pembagian 3; begitu juga jika tujuh modulo empat maka akan dihasilkan nilai tiga.
Dahulu, variabel enkripsi dihasikan dari setup kunci dimana kunci akan di XOR kan dengan plain text untuk menghasilkan teks yang sudah terenkripsi. XOR merupakan operasi logik yang membandingkan dua bit biner. Jika bernilai beda maka akan dihasilkan nilai 1. Jika kedua bit sama maka hasilnya adalah 0. Kemudian penerima pesan akan mendekripnya dngan meng XOR-kan kembali dengan kunci yang sama agar dihasilkan pesan dari plain text tersebut[8].
RC4 terdiri dari 3 langkah utama:
a. Inisialisasi array S : S0 = 0, S1 = 1, S2 = 2, ... , S255 = 255 (inisialisasi array S dengan nilai yang sesuai dengan nilai indeks maing-masing elemen)
b. Permutasi nilai-nilai dalam larik dengan Key Scheduling Algorithm (KSA)
c. Bangkitkan aliran kunci dan lakukan enkripsi menggunakan Pseudo Random Generation Algorithm (PRGA)
Jika panjang kunci U < 256, lakukan padding sehingga panjang kunci menjadi 256 byte.




Gambar 2.6. Pseudo Random Generation Algorithm (PRGA) [Sumber: 8]

2.5      Zip Compression

Algoritma pemampatan data dengan format data ZIP termasuk dalam algoritma kompresi atau pemampatan yang bersifat lossless. Berbeda dengan algoritma pemampatan yang bersifat lossy yang menghilangkan sebagian informasi dari berkas yang di mampatkan untuk mendapatkan hasil yang optimum, algoritma kompresi yang bersifat   lossless seperti ZIP tidak membuang sedikitpun informasi yang dimiliki oleh berkas asal. Algoritma kompresi yang bersifat lossy umumnya digunakan untuk memampatkan berkas–berkas gambar, video ataupun suara, hal ini menimbang perubahan (penghilangan) sedikit pada berkas asal tidak akan menimbulkan efek yang  mampu  ditangkap   oleh indra manusia. Sedangkan algoritma kompresi yang bersifat lossless umumnya digunakan untuk berkas teks atau binary (executable). Hal ini mengingat perubahan yang kecil pada berkas yang dikompresi akan memberi pengaruh besar pada berkas hasil kompresi saat di dekompresi ulang. Misalnya pada suatu berkas program computer (source code), perubahan yang terjadi  walaupun  sedikit  akan  berakibat  pada  kesalahan  kode program tersebut saat di kompilasi setelah di dekompresi.
Berkas termampatkan dengan format zip dibuat dengan menggunakan algoritma kompresi deflate. Sebagaimana format gzip berkas  terkompresi  dengan  format zip dibuat dengan algoritma deflate yang pertama kali didisain oleh Philip Katz (1962-2000), algoritma deflate sendiri merupakan algoritma yang berbasiskan algoritma LZ77 dan kode Huffman (Huffman Codes). Spesifikasi format kompresi zip distandardisasi melalui RFC1952 yang ditulis oleh Peter Deutsch.
Meskipun algoritma deflate tidak dirancang untuk suatu tipe berkas secara spesifik, akan tetapi metode – metode pemampatan data yang dirancang khusus untuk tipe berkas tertentu, yang umumnya memiliki kerumitan yang lebih tinggi, umumnya memiliki performansi (dalam segi ukuran berkas hasil kompresi) yang lebih tinggi.  Pada  umumnya algoritma deflate (termasuk zip)  memiliki nilai faktor kompresi (compression factor) antara 2.5 sampai 3 untuk pemampatan berkas tipe teks dan memiliki nilai yang lebih kecil jika yang berkas dimampatkan adalah tipe binary (executable). Factor kompresi (compression factor)  merupakan  invers  dari  nilai  rasio kompresi (compression ratio) yang menunjukkan persentase ukuran berkas hasil pemampatan dibandingkan ukuran berkas sebelum dimampatkan


…..……………….……….… (2-3)
 





…..……………….……….… (2-4)
 



Dari persamaan tersebut terlihat, bahwa rasio kompresi akan selalu bernilai kurang dari 1, jadi jika suatu algoritma kompresi memiliki nilai rasio kompresi 0,5 maka algoritma ini mampu memampatkan berkas hingga menjadi separuh (50%) dari ukuran semula. Jadi semakin kecil nilai rasio kompresi dari suatu algoritma kompresi maka semakin bagus algoritma tersebut. Berkebalikan dengan nilai rasio kompresi adalah nilai faktor kompresi. Sehingga semakin besar nilai faktor kompresi dari suatu algoritma pemampatan data, maka algoritma tersebut berarti semakin baik. Pada umumnya nilai faktor kompresi lebih sering digunakan sebagai standard ukuran mengingat secara alamiah nilainya menunjukkan tingkat keandalan dari suatu algoritma (semakin besar nilai = semakin bagus kualitas).

2.6   Unified Modeling Language (UML)



Unified Modeling Language (UML) adalah alat bantu (tool) untuk pemodelan sistem, “UML adalah bahasa yang dapat digunakan untuk spesifikasi, visualisasi, dan dokumentasi sistem objek-oriented software pada fase pengembangan. UML merupakan unifikasi dari metode Booch, OMT, dan notasi Objectory, serta ide-ide terbaik metodologi lainnya seperti terlihat pada Gambar 1. Dengan menyatukan notasi metode-metode objek oriented tersebut, UML merupakan standar dasar dalam bidang analisis dan desain berorientasi-objek” (Quatrani, 1998).








Gambar 2.7   Unifikasi berbagai metode
pengembangan objek kedalam UML.[Sumber: 7]

2.6.1   View dan Diagram UML

View adalah jendela (window) yang merupakan aspek pandang UML terhadap sistem. Sebuah sistem harus dijelaskan dengan sejumlah aspek/pandangan yang berbeda, misalnya aspek fungsional (struktur statik dan interaksi dinamik), aspek non-fungsional (timing requirement, reliability, deployment), dan aspek organisasional (pengorganisasian pekerjaan, mapping ke kode, dan modul). Sistem dijelaskan oleh sejumlah view, dimana masing-masing view merupakan proyeksi dari sistem secara komplit yang memperlihatkan aspek tertentu dari sistem. UML memperkenalkan lima buah view untuk memandang sistem yaitu: Use-Case View, Logical View, Component view, Deployment View dan Concurrency View (Eriksson dan Penker, 1998). Booch (1998) menyebut view ini sebagai “Arsitektur 4+1” dan menyebut Concurrency View sebagai Process View.



2.6.1.1   Use-Case View.

 Untuk menampilkan fungsi fungsi dari sistem berkaitan dengan aktor eksternal. Aktor yang ber-interaksi dengan sistem dapat berupa seorang user atau sistem lainnya. Use-case view ditujukan untuk para cus-tomer, designer, developer, dan tester. Use-case view merupakan bagian sentral dari view karena isinya menjadi pengen-dali view yang lain. Tujuan akhir dari sebuah sistem adalah untuk menyedia-kan fungsi-fungsi yang dijelaskan dalam use-case view, karena itu use-case view mempengaruhi seluruh view lainnya. Use-case View juga digunakan untuk validasi dan verifikasi sistem.

2.6.1.2   Logical View.      

Untuk menampilkan bagaimana fungsi-fungsi didisain didalam sistem , dalam kaitannya dengan struktur statik dan perilaku dinamik sistem. Logical view menjelaskan bagaimana fungsi-fungsi sistem di sediakan, terutama berguna bagi para designer dan developer. Berbeda dengan use case view, logica view melihat bagian dalam dari sistem. Sistem dijelaskan dengan struktur statik (kelas, objek, dan relasi) dan kolaborasi dinamik yang terjadi ketika objek-objek mengirim pesan satu sama lain. Struktur statik di visualisasikan dalam diagramkelas dan objek, sedang model dinamiknya divisualisasi dalam diagram state, diagram sekuen, diagram kola-borasi dan diagram aktivity.

2.6.1.3   Component View.

Untuk menampilkan pengorganisasian program (code) dari komponen code, menjelaskan implementasi dari modul - modul yang tersedia dan dependensinya. Component View terutama untuk para pengembang, view berisi diagram komponen.

2.6.1.4   Concurrency/Process View.
Untuk menampilkan concurrency di dalam sistem, khususnya pada persoalan yang berhubungan dengan komunikasi dan sinkronisasi yang muncul dalam sistem concurrent. Concurrency/Prosess view ditujukan bagi para pengembang dan integrator sistem,berisi diagram dinamik (state, sekuen, kolaborasi, dan aktivity) dan diagram implementasi (diagram komponen dan deployment)
   Tabel 2.2  Penempatan diagram dalam view UML[Sumber: 7].

2.6.1.5   Deployment View.

Memperlihatkan deployment sistem pada arsitektur fisik dengan komputer dan piranti pendukung yang diperkenalkan sebagai nodes. Deploymen view ditujukan bagi pengembang, integrator, dan tester, isi view berupa diagram deployment. View ini juga mencakup mapping yang memperlihatkan bagaimana komponen-komponen di-deployment pada arsitektur fisik; misalnya program atau objek yang mana di eksekusi pada komputer tertentu.
Diagram adalah visualisasi grafik yang memperlihatkan susunan dari simbol-simbol elemen yang disusun untuk menggambarkan bagian atau aspek tertentu dari sistem. Sebuah model sistem secara tipikal mem-punyai beberapa diagram. Sebuah diagram adalah bagian spesifik dari view, apabila digambarkan akan mengambil tempat pada view tertentu. Beberapa jenis diagram dapat menjadi bagian dari beberapa view, tergantung pada isi diagram. UML memperkenalkan sembilan macam diagram yaitu: diagram Use Case, Kelas, Objek, State, Sekuen, kolaborasi, Aktivity, Kom-ponen dan diagram Deployment. Tabel 1 memperlihatkan penempatan Diagram dalam view UML.

2.6.2   Tahap Pengembangan Perangkat Lunak UML

Tahap pengembangan sistem perangkat lunak didalam UML meliputi: Analisis Kebutuhan (Requirement Analysis), Analisis Sistem (Analysis), Desain (Design), Implementasi ( Implementation) dan Testing.

2.6.2.1   Analisis Kebutuhan

UML menggunakan Use cases untuk menangkap kebutuhan customer/user. Melalui Use cases aktor luar yang berinteraksi dengan sistem dimodelkan bersama dengan fungsi-fungsi yang mereka perlukan dari system (use cases). Aktor dan use cases dihubungkan dengan suatu relasi (relationship). Actor dan use cases ditampilkan dalam bentuk diagram beserta dokumentasinya pada view diagram Use case. Dokumentasi use cases dalam bentuk text diberikan secara terpisah (file) untuk memperjelas use cases.

2.6.2.2   Analisis System

Fase analisis konsen dengan abstraksi primer (kelas dan objek) dan mekanisme yang muncul dalam problem domain. Kelas-kelas diidentifikasi bersama dengan relasinya satu sama lain, dan ditampilkan pada diagram kelas. Kolaborasi antar kelas untuk mengerjakan use case juga dijelaskan melalui model dinamik UML. Pada fase analisis ini hanya kelas-kelas dalam problem domain yang dimodelkan, bukan kelas – kelas implementasi teknik.

2.6.2.3   Desain

Pada tahap desain hasil analisis didetailkan untuk solusi teknik. Kelas-kelas baru ditambahkan untuk menyediakan infrastruktur teknik: user interface, penanganan database untuk menyimpan objek kedalam database, komunikasi dengan sistem lain, interfacing dengan peralatan dalam sistem ditambahkan.

2.6.2.4   Implementasi/programming

Pada tahap programming kelas-kelas yang dibentuk pada tahap desain dikonversi menjadi code sesungguhnya dalam bahasa pemrograman objek-oriented melalui proses generate. Hasil generate berupa skeleton dari program. Selanjutnya menjadi tugas programmer untuk menyelesaikan program hasil generate. Editing yang dilakukan oleh programmer tidak akan di dihapus (ditimpa) saat model di generate ulang.

2.6.2.5   Testing

Testing terhadap sistem software biasanya berupa tes unit, tes integrasi, tes sistem, dan tes acceptance. Tes unit adalah tes terhadap kelas individual atau terhadap sekelompok kelas, biasanya dilakukan oleh programmer. Tes integrasi mengintegrasikan komponen dan kelaskelas dalam rangka verifikasi. Tes system memandang sistem sebagai kotak hitam (black box) dalam rangka validasi bahwa system berfungsi sesuai dengan harapan end user. Tes acceptance dilakukan oleh customer untuk verifikasi bahwa sistem sesuai dengan kebutuhan, sama seperti tes sistem. Test unit menggunakan diagram kelas dan spesifikasi kelas, test integrasi menggunakan diagram komponen dan diagram kolaborasi, dan tes sistem menggunakan diagram use-case untuk melakukan validasi.