BAB II LANDASAN TEORI 2.1 Sejarah Steganografi Teknik

advertisement
17
BAB II
LANDASAN TEORI
2.1 Sejarah Steganografi
Teknik steganografi ini sudah ada sejak 4000 tahun yang lalu di kota Menet Khufu,
Mesir. Awalnya adalah penggunaan hieroglyphic yakni menulis menggunakan karakterkarakter dalam bentuk gambar. Ahli tulis menggunakan tulisan Mesir kuno
ini untuk
menceritakan kehidupan majikannya. Tulisan Mesir kuno tersebut menjadi
ide untuk
membuat pesan rahasia saat ini. Oleh karena itulah, tulisan Mesir kuno yang menggunakan
gambar dianggap sebagai steganografi pertama di dunia (Ariyus, 2009). Tidak hanya
bangsa Mesir saja, bangsa-bangsa lain juga telah mengggunakan teknik steganografi pada
masa lalu, yaitu :
1) Teknik steganografi yang lain adalah tinta yang tidak tampak (invisible ink) yaitu
dengan menggunakan air sari buah jeruk, urin atau susu sebagai tinta untuk menulis
pesan. Cara membacanya adalah dengan dipanaskan di atas api. Tinta yang
sebelumnya tidak terlihat, ketika tekena panas akan menjadi gelap sehingga dapa
dibaca. Teknik ini digunakan oleh bangsa Romawi yang juga digunakan pada
Perang Dunia II.
2) Bangsa Cina menggunakan cara yang berbeda pula, yaitu manusia sebagai media
pembawa pesan. Orang itu akan dicukur rambutnya sampai botak dan pesan akan
dituliskan di kepalanya. Kemudian pesan akan dikirimkan ketika rambutnya sudah
tumbuh.
18
3) Pada masyarakat Yunani kuno teknik yang digunakan adalah dengan menggunakan
lilin sebagai media pembawa pesan. Lembaran pesan akan ditutup dengan lilin.
Untuk melihat isi pesan, pihak penerima harus memanaskan lilin terlebih dahulu.
4) Pada
Perang Dunia
II, bangsa Jerman
menggunakan microdots untuk
berkomunikasi. Penggunaan teknik ini digunakan pada microfilm chip yang harus
diperbesar sekitar 200 kali. Jerman menggunakan teknik ini untuk kebutuhan
perang sehingga pesan rahasia strategi tidak diketahui pihak lawan. Karena pada
saat itu teknik ini merupakan teknologi baru yang belum bisa digunakan lawan.
2.2 Pengertian Steganografi
Steganografi merupakan seni komunikasi rahasia dengan menyembunyikan pesan
pada objek yang tampaknya tidak berbahaya. Keberadaan pesan steganografi adalah
rahasia. Istilah Yunani ini berasal dari kata Steganos, yang berarti tertutup dan Graphia,
yang berarti menulis (Cox et al, 2008).
Istilah steganografi berasal dari bahasa Yunani, yaitu steganos yang berarti
penyamaran atau penyembunyian dan graphein yang berarti tulisan. Jadi, steganografi bisa
diartikan sebagai seni menyembunyikan pesan dalam data lain tanpa mengubah data yang
ditumpanginya tersebut sehingga data yang ditumpanginya sebelum dan setelah proses
penyembunyian hampir terlihat sama (Ariyus, 2009).
Steganografi adalah seni dan ilmu berkomunikasi dengan cara menyembunyikan
keberadaan komunikasi itu. Berbeda dengan Kriptografi, di mana musuh diperbolehkan
untuk mendeteksi, menangkal dan memodifikasi pesan tanpa bisa melanggar keamanan
tempat tertentu yang dijamin oleh suatu cryptosystem, tujuan dari steganografi adalah
untuk menyembunyikan pesan dalam pesan berbahaya lainnya dengan cara yang tidak
19
memungkinkan musuh apapun bahkan untuk mendeteksi bahwa ada pesan kedua. Secara
umum, teknik steganografi yang baik harus memiliki visual / imperceptibility statistik yang
baik dan payload yang cukup (Kekre et al, 2008).
2.3 Kriteria Steganografi Yang Baik
Menurut Munir (2006) Ada beberapa kriteria yang harus diperhatikan dalam
steganografi, yaitu :
1) Imperceptibility. Keberadaan pesan rahasia tidak dapat dipersepsi oleh inderawi.
Misalnya, jika covertext berupa citra, maka penyisipan pesan membuat citra stegotext
sukar dibedakan oleh mata dengan citra covertext-nya. Jika covertext berupa audio,
maka indera telinga tidak dapat mendeteksi perubahan pada audio stegotext-nya.
2) Fidelity. Mutu stegomedium tidak berubah banyak akibat penyisipan. Perubahan
tersebut tidak dapat dipersepsi oleh inderawi. Misalnya, jika covertext berupa citra,
maka penyisipan pesan membuat citra stegotext sukar dibedakan oleh mata dengan
citra covertext-nya. Jika covertext berupa audio, maka audio stegotext tidak rusak dan
indera telinga tidak dapat mendeteksi perubahan tersebut.
3) Recovery. Pesan yang disembunyikan harus dapat diungkapkan kembali. Karena tujuan
steganografi adalah data hiding, maka sewaktu-waktu pesan rahasia di dalam stegotext
harus dapat diambil kembali untuk digunakan lebih lanjut.
20
2.4 Teknik Steganografi
Menurut Ariyus (2009), ada tujuh teknik dasar yang digunakan dalam steganografi,
yaitu :
1) Injection, merupakan suatu teknik menanamkan pesan rahasia secara langsung ke suatu
media. Salah satu masalah dari teknik ini adalah ukuran media yang diinjeksi menjadi
lebih besar dari ukuran normalnya sehingga mudah dideteksi. Teknik ini sering juga
disebut embedding.
2) Substitusi, data normal digantikan dengan data rahasia. Biasanya, hasil teknik ini tidak
terlalu mengubah ukuran data asli, tetapi tergantung pada file media dan data yang akan
disembunyikan. Teknik substitusi bisa menurunkan kualitas media yang ditumpangi.
3) Transform Domain, teknik ini sangat efektif. Pada dasarnya, transformasi domain
menyembunyikan data pada transform space. Akan sangat lebih efektif teknik ini
diterapkan pada file berekstensi JPG.
4) Spread Spectrum, sebuah teknik pengtransmisian menggunakan pseudo-noise code,
yang independen terhadap data informasi 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.
5) Statistical Method, teknik ini disebut juga skema steganographic 1 bit. Skema tersebut
menanamkan satu bit informasi pada media tumpangan dan mengubah statistik
walaupun hanya 1 bit. Perubahan statistik ditunjukkan dengan indikasi 1 dan jika tidak
ada perubahan, terlihat indikasi 0. Sistem ini bekerja berdasarkan kemampuan
penerima dalam membedakan antara informasi yang dimodifikasi dan yang belum.
21
6) Distortion, metode ini menciptakan perubahan atas benda yang ditumpangi oleh data
rahasia.
7) Cover Generation, metode ini lebih unik daripada metode lainnya karena cover object
dipilih untuk menyembunyikan pesan. Contoh dari metode ini adalah Spam Mimic.
2.5 Proses Steganografi
Secara umum, terdapat dua proses didalam steganografi. Yaitu proses embedding
untuk menyembunyikan pesan dan ekstraksi untuk mengekstraksi pesan yang
disembunyikani. Proses-proses tersebut dapat dilihat pada gambar dibawah ini:
Key
Hiddenimage
Stegoimage
Stegomedium
Gambar 2.1 Embedding Citra
(Sumber: Digital Watermarking and Steganography. 2nd Edition.2008)
Key
Stegoimage
Hiddenimage
Stegomedium*
Gambar 2.2 Ekstraksi Citra
(Sumber: Digital Watermarking and Steganography. 2nd Edition.2008)
Keterangan:
= input/output
= input optional
*
= dalam banyak kasus hilang/tidak kembali
22
Gambar 2.1 menunjukkan proses penyembunyian pesan dimana di bagian pertama,
dilakukan proses embedding hiddenimage yang hendak disembunyikan secara rahasia ke
dalam stegomedium sebagai media penyimpanan, dengan memasukkan kunci tertentu
(key), sehingga dihasilkan media dengan data tersembunyi di dalamnya (stegoimage). Pada
Gambar 2.2, dilakukkan proses ekstraksi pada stegoimage dengan memasukkan key yang
sama sehingga didapatkan kembali hiddenimage. Kemudian dalam kebanyakan teknik
steganografi, ekstraksi pesan tidak akan mengembalikan stegomedium awal persis sama
dengan stegomedium setelah dilakukan ekstraksi bahkan sebagian besar mengalami
kehilangan. Karena saat penyimpanan pesan tidak dilakukan pencatatan kondisi awal dari
stegomedium yang digunakan untuk menyimpan pesan (Cox et al, 2008).
2.6 Metode Least Significant Bit
Strategi penyembunyian data citra
yang digunakan untuk menyisipkan citra
kedalam media citra adalah dengan metode Least Significant Bit (LSB). Dimana bit data
citra akan digantikan dengan bit paling rendah dalam media citra. Pada file citra 24 bit
setiap piksel pada citra terdiri dari susunan tiga warna, yaitu merah, hijau dan biru (RGB)
yang masing-masing disusun oleh bilangan 8 bit ( 1 byte ) dari 0 sampai 255 atau dengan
format biner 00000000 sampai 11111111. Informasi dari warna biru berada pada bit 1
sampai bit 8, dan informasi warna hijau berada pada bit 9 sampai dengan bit 16, sedangkan
informasi warna merah berada pada bit 17 sampai dengan bit 24.
Menurut Kekre et al (2008) istilah algoritma substitusi LSB adalah skema yang
paling sederhana untuk menyembunyikan pesan dalam sebuah citra host. Ia mengganti bit
yang tidak signifikan dari masing-masing piksel dengan sedikit aliran pesan terenkripsi.
Penerima dapat mengambil pesan dengan menguraikan LSB dari setiap piksel dari
23
stegoimage dengan kunci yang diberikan. Karena hanya sedikit yang signifikan dari piksel
yang berubah maka secara visual tidak terlihat oleh manusia.
Metode LSB merupakan teknik substitusi pada steganografi. Biasanya, arsip 24-bit
atau 8-bit digunakan untuk menyimpan citra digital. Representasi warna dari piksel–piksel
bisa diperoleh dari warna–warna primer, yaitu merah, hijau dan biru. Citra 24-bit
menggunakan 3 byte untuk masing–masing piksel, dimana setiap warna primer
direpresentasikan dengan ukuran 1 byte. Penggunaan citra 24-bit memungkinkan setiap
piksel direpresentasikan dengan nilai warna sebanyak 16.777.216. Dua bit dari saluran
warna tersebut biasa digunakan menyembunyikan data yang akan mengubah jenis warna
piksel-nya menjadi 64 warna. Hal itu akan mengakibatkan sedikit perbedaan yang tidak
bisa dideteksi secara kasat mata oleh manusia (Ariyus, 2009).
Untuk menjelaskan metode ini, digunakan citra digital sebagai stegomedium. Pada
setiap byte terdapat bit yang tidak signifikan. Misalnya pada byte 00011001, maka bit
LSB-nya adalah 1. Untuk melakukan penyisipan pesan, bit yang paling tepat untuk diganti
dengan bit pesan adalah bit LSB, sebab pengubahan bit tersebut hanya akan mengubah
nilai byte-nya menjadi satu lebih tinggi atau satu lebih rendah. Sebagai contoh, urutan bit
berikut ini menggambarkan 3 piksel pada stegomedium 24-bit.
(00100111 11101001 11001000)
(00100111 11001000 11101001)
(11001000 00100111 11101001)
Pesan yang akan disisipkan adalah karakter A yang nilai biner-nya adalah
01000001 (ASCII), maka akan dihasilkan stegoimage dengan urutan bit sebagai berikut:
(00100110 11101001 11001000)
(00100110 11001000 11101000)
24
(11001000 00100110 11101001)
Terlihat hanya empat bit rendah yang berubah (bit dengan garis bawah), untuk mata
manusia maka tidak akan tampak perubahannya. Secara rata-rata dengan metode ini hanya
setengah dari data bit rendah yang berubah, sehingga bila dibutuhkan dapat digunakan bit
rendah kedua bahkan ketiga (Lestriandoko, 2006).
2.7 Format Portable Network Graphics (PNG)
PNG (Portable Network Graphics) adalah salah satu format penyimpanan citra
yang menggunakan metode pemadatan yang tidak menghilangkan bagian dari citra tersebut
(lossless compression). Untuk keperluan pengolahan citra, format PNG bisa dijadikan
alternatif selama proses pengolahan citra, karena format ini tidak menghilangkan bagian
dari citra yang sedang diolah, sehingga penyimpanan berulang ulang dari citra tidak akan
menurunkan kualitas citra.
PNG Format berkas grafik yang didukung oleh beberapa web browser. PNG
mendukung transparansi gambar seperti GIF, berkas PNG bebas paten dan merupakan
gambar bitmap yang terkompresi.
Tabel 2.1 Perbandingan JPEG, GIF dan PNG
Teknik Kompresi
Lossy atau
Lossless
Warna
Warna
Transparan
JPEG
Huffman, DCT
Lossy
GIF
LZW
Lossless
PNG
Deflate
Lossless
RGB, grayscale
Indexed color
Tidak
Ya
Indexed color,
RGB, grayscale
Ya
(Sumber: Implementasi Steganografi dengan Metode Bit-Plane
Complexity Segmentation (BPCS) untuk Dokumen Citra Terkompresi)
25
2.8 Java
Java merupakan bahasa pemograman yang dikembangkan Sun Microsystem yang
dirilis pada tahun 1995 sebagai komponen utama dari Sun Microsystem (Platform) Java.
Bahasa ini dikembangkan dengan model yang mirip dengan bahasa C++ dan Smalltalk,
namun dirancang agar lebih mudah dipakai dan platform independent, yaitu dapat
dijalankan di berbagai jenis sistem operasi dan arsitektur komputer. Bahasa ini juga
dirancang untuk pemograman di Internet sehingga dirancang agar aman dan portable.
Proyek Java dimulai pada bulan Juni tahun 1991 oleh James Gosling. Pada mulanya
bahasa ini disebut Oak yang berasal dari pohon oak yang berada di luar kantor Gosling,
selain itu juga pernah berubah menjadi Greendon dan akhirnya dinamakan Java yang
berasal dari kumpulan kata acak. Gosling bertujuan untuk mengimplementasikan sebuah
mesin virtual dan bahasa yang mirip dengan notasi C / C++. Sun merilis implementasi
publik pertamanya Java 1.0 di tahun 1995 yang menjanjikan “Write Once, Run Anywhere”
(WORA) dimana dapat dijalankan dengan baik pada platform popular, cukup aman, dan
menyediakan fitur keamanan yang dapat dikonfigurasi.
Berdasarkan white paper resmi dari Sun, Java memiliki karakteristik sebagai
berikut :
1) Sederhana (Simple)
Bahasa pemrograman Java menggunakan sintaks mirip dengan C++, namun
sintaks pada Java merupakan penyederhanaan dari bahasa C++. Penyederhanaan
dilakukaan dengan menambahkan fitur-fitur pendukung yang belum terdapat dalam
C++ dan menghilangkan penggunaan pointer yang rumit dan multiple inheritance.
Java sederhana karena hanya memiliki 3 (tiga) tipe angka data primitive, boolean,
dan array. Selebihnya, semua yang ada di dalam Java adalah kelas. Fitur yang tidak
26
terdapat dalam C++, yang ditawarkan java, dua diantaranya automatic memori
allocation dan memori garbage collection (pengumpulan sampah). Dengan
mekanisme ini, user tidak perlu membebaskan memori yang dialokasikan, karena
semua dilakukan oleh Mesin Virtual Java. Java juga mendukung penulisan program
multi jalinan, yaitu suatu program yang dapat melakukan lebih dari satu pekerjaan
dalam waktu yang bersamaan.
2) Berorientasi Objek (Object Oriented)
Java mengunakan pemrograman berorientasi objek yang membuat program
dapat dibuat secara modular dan dapat dipergunakan kembali. Pemrograman
berorientasi objek memodelkan dunia nyata kedalam objek dan melakukan interaksi
antar objek-objek tersebut.
3) Terdistribusi (Distributed)
Java dibuat untuk membuat aplikasi terdistribusi secara mudah dengan adanya
libraries networking yang terintegrasi pada Java.
4) Interpreted
Program Java dijalankan menggunakan interpreter yaitu Java Virtual
Machine (JVM). Hal ini menyebabkan source code Java yang telah dikompilasi
menjadi Java bytecodes dapat dijalankan pada platform yang berbeda-beda.
5) Robust
Java mempuyai reliabilitas yang tinggi. Compiler pada Java mempunyai
kemampuan mendeteksi error secara lebih teliti dibandingkan bahasa pemrograman
lain. Java mempunyai Runtime-Exception handling untuk membantu mengatasi
error pada pemrograman.
27
6) Secure
Sebagai bahasa pemrograman untuk aplikasi internet dan terdistribusi, Java
memiliki beberapa mekanisme keamanan untuk menjaga aplikasi tidak digunakan
untuk merusak sistem komputer yang menjalankan aplikasi tersebut.
7) Architecture Neutral
Program Java merupakan platform independent. Program cukup mempunyai
satu buah versi yang dapat dijalankan pada platform berbeda dengan Java Virtual
Machine(JVM).
8) Portabel
Source code maupun program Java dapat dengan mudah dibawa ke platform
yang berbeda-beda tanpa harus dikompilasi ulang.
9) Performance
Performance pada Java sering dikatakan kurang tinggi. Namun performance
Java dapat ditingkatkan menggunakan kompilasi Java lain.
10) Multithreaded
Java mempunyai kemampuan untuk membuat suatu program yang dapat
melakukan beberapa pekerjaan secara sekaligus dan simultan.
11) Dynamic
Java didesain untuk dapat dijalankan pada lingkungan yang dinamis.
Perubahan pada suatu class dengan menambahkan properti ataupun metode dapat
dilakukan tanpa menggangu program yang menggunakan class tersebut.
Kode Java diproses melalui 2 (dua) tahap, yaitu fase kompilasi dan interpretasi.
Dalam fase kompilasi, source code dari Java (file .java) akan diterjemahkan menjadi
28
sebuah bahasa penengah (intermediate language) yang disebut Java Bytecode (file .class).
Setelah itu,bytecode siap untuk diinterpretasikan atau dijalankan dengan menggunakan
Java Virtual Machine (JVM).
Source Code
Kompiler
Java
Bytecode
JVM
Kode Natif
(Mesin)
Gambar 2.3 Proses Kompilasi dan Interpretasi Kode Java
(Sumber: roseindia.net)
2.9 Teknologi Java
Dengan berkembangnya versi terbaru dari Java yang disebut Java 2, teknologi Java
dibagi menjadi 3 (tiga) macam edisi, yaitu :
1) Teknologi Java pada perangkat mobile (J2ME)
Micro edition dari platform Java memenuhi permintaan dari pengembang
untuk menciptakan aplikasi guna memenuhi kebutuhan pasar dan konsumen. J2ME
merupakan teknologi Java yang menyediakan aplikasi robust untuk berbagai tipe
dan ukuran peralatan wireless dan wireline dari mobile phone, PDA dan sistem
telematik pada kendaraan.
2) Teknologi Java pada PC Desktop (J2SE)
Merupakan edisi standar dari platform Java yang didesain untuk
mengembangkan keamanan, kemudahan, dan aplikasi berperforma tinggi untuk
desktop dengan jangkauan yang luas meliputi sistem operasi seperti Apple
Macintosh, Linux, Microsoft Windows, dan Sun Solaris. Kompatibel dengan
desktop terutama pada lingkungan yang heterogen sehingga dapat menambah
produktifitas pengguna, komunikasi, dan kolaborasi dengan biaya yang sesuai.
29
3) Teknologi Java untuk bisnis menengah dan besar (J2EE)
Edisi Enterprise dari Platform Java ini dikhususkan untuk membantu
perkembangan bisnis dengan keperluan pengembangan yang besar, sebagai contoh
server dan aplikasi desktop dan juga aplikasi wireless mobile dan wireline. Hingga
saat ini telah lebih dari 5 (lima) juta download teknologi Java Enterprise (J2EE)
yang digunakan untuk kepentingan segala idustri dan tipe aplikasi dari proses
manajemen bisnis, otomatisasi penjualan dan layanan serta produktifitas kantor.
2.10 Unified Modeling Language (UML)
Unified Modeling Language (UML) adalah notasi yang lengkap untuk membuat
visualisasi model suatu sistem. Sistem berisi informasi dan fungsi, tetapi secara normal
digunakan untuk memodelkan sistem komputer. Di dalam pemodelan obyek guna
menyajikan sistem yang berorientasi pada objek pada orang lain, akan sangat sulit
dilakukan jika pemodelan tersebut dilakukan dalam bentuk kode bahasa pemrograman.
Kesulitan yang muncul adalah timbulnya ketidak jelasan dan salah interpretasi di dalam
pembacaan kode pemrograman untuk pemodelan objek tersebut.
Dimulai tahun 1994, Booch, Runbaugh dan Jacobson merupakan tiga tokoh yang
metodelogi-nya paling banyak dipakai mempelopori organisasi yang bertujuan menyatukan
metodelogi-metodelogi berorientasi objek, organisasi tersebut dinamakan OMG (Object
Modelling Group). Pada tahun 1995 OMG merealisasi draf pertama dari UML (versi 0.8)
dan pada tahun 1997 UML versi 1.1 muncul dan sekarang versi terbaru dari UML adalah
versi 2.0. Pada tahun 1997 Booch, Runbaugh dan Jacobson menyusun tiga buku tentang
UML. Sejak saat itulah UML telah menjelma menjadi standar bahasa pemodelan untuk
aplikasi berorientasi objek.
30
2.10.1 Diagram UML
UML merupakan sintak umum untuk membuat model logika dari suatu sistem dan
digunakan untuk menggambarkan sistem agar dapat dipahami selama fase analisis dan
desain. UML biasanya disajikan dalam bentuk diagram/gambar yang meliputi class beserta
atribut dan operasinya, serta hubungan antar class yang meliputi inheritance, association
dan komposisi.
Gambar 2.4 Diagram UML
(Sumber: en.wikipedia.org)
2.10.2 Use Case Diagram
Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah
sistem,
em, yang ditekankan adalah “apa”
“apa” yang diperbuat sistem, dan bukan “bagaimana”.
Sebuah use case mempresentasikan
asikan sebuah interaksi antara aktor dengan sistem. Use case
menggambarkan kata kerja seperti Login ke sistem, maintenance user dan sebagainya.
2.10.2.1 Lambang-lambang
lambang dalam Use Case Diagram
1) Aktor merupakan sebuah entita yang berinterkasi dengan use case.. Nama aktor
a
dituliskan di bawah gambar tersebut.
31
2) Use case menggambarkan sebuah fungsi terntentu yang disediakan oleh system
system, sebuah
subsistem atau urutan pertukaran pesan antara anggota system dan satu atau lebih actor
melakukan aksi yang dikerjakan oleh system.
3) Hubungan, menggambarkan hubungan association. Garis
aris ini digunakan untuk
menghubungkan antara actor dengan use case.
Contoh :
Gambar 2.5
2. Use Case Diagram
(Sumber: all-science-fair-projects.com)
2.10.2.2 Komponen-komponen
komponen Use Case Diagram:
1) Actor
Gambar 2.6 Actor
(Sumber: all-science-fair-projects.com)
Actor menggambarkan pengguna software aplikasi (user).
(
Actor membantu
memberikan suatu gambaran jelas tentang apa yang harus dikerjakan software aplikasi.
2) Use Case
Gambar 2.7 Use Case
(Sumber: all-science-fair-projects.com)
32
Use case menggambarkan perilaku software aplikasi, termasuk didalamnya
interaksi antara actor dengan software aplikasi tersebut.
3) Association / Directed Association
Gambar 2.8 Association
(Sumber: all-science-fair-projects.com)
Asosiasi, yaitu hubungan statis antar element. Umumnya menggambarkan element
yang memiliki atribut berupa element lain, atau element yang harus mengetahui eksistensi
element lain. Panah navigability menunjukkan arah query antar element.
4) Inheritance / Generalization
Gambar 2.9 Inheritance
(Sumber: all-science-fair-projects.com)
Inheritance (Pewarisan), yaitu hubungan hirarkis antar element. Element dapat
diturunkan dari element lain dan mewarisi semua atribut dan metoda element asalnya dan
menambahkan fungsionalitas baru, sehingga ia disebut anak dari element yang diwarisinya.
Kebalikan dari pewarisan adalah generalisasi.
33
5) Dependency
Gambar 2.10 Dependency
(Sumber: all-science-fair-projects.com)
Dependency/ketergantungan adalah suatu jenis hubungan yang menandakan bahwa
satu element, atau kelompok element, bertindak sebagai klien tergantung pada unsur lain
atau kelompok element yang berlaku sebagai penyalur. Ini merupakan suatu hubungan
lemah yang menandakan bahwa jika penyalur klien diubah maka klien secara otomatis
akan terpengaruh oleh perubahan tersebut. Ini merupakan suatu hubungan searah.
2.10.3 Class Diagram
Class adalah sebuah spesifikasi yang jika di-instansiasi akan menghasilkan sebuah
objek dan merupakan inti dari pengembangan berorientasi objek. Class menggambarkan
keadaan (attribute/property) suatu sistem, sekaligus menawarkan layanan untuk
memanipulasi keadaan tersebut (metode/fungsi).
Class diagram menggambarkan struktur dan deskripsi class, packed dan objek
beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi dan lainnya.
34
Tiga Area Pokok:
1.Nama
2.Atribut
3.Metoda
Atribut dan metoda dapat memiliki salah satu sifat berikut:
1) Private, tidak dapat di panggil dari luar class yang bersangkutan.
2) Protected, hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak
yang mewarisinya.
3) Public, dapat dipanggil oleh siapa saja.
Komponen Class Diagram:
1) Subsystem
Gambar 2.11 Subsystem
(Sumber: objectmentor.com)
Suatu package adalah suatu mekanisme umum untuk mengorganisir
element-element model, sedangkan suatu subsistem menggambarkan suatu unit
tingkah laku di dalam sistem fisik.
35
2) Class
Gambar 2.12 Class
(Sumber: objectmentor.com)
Suatu class adalah mendeskripsikan untuk satu set objek dengan struktur serupa,
perilaku/behavior, dan hubungan/relation.
3) Signal
Gambar 2.13 Signal
(Sumber: objectmentor.com)
Signal adalah suatu yang menggambarkan spesifikasi dari asynchronous stimulus
yang berkomunikasi antar kejadian.
4) Exception
Gambar 2.14 Exception
(Sumber: objectmentor.com)
36
Suatu Exception adalah suatu isyarat yang diangkat oleh behavior dalam suatu
ketika terjadi kesalahan.
5) Port
Gambar 2.15 Port
(Sumber: objectmentor.com)
Port adalah suatu struktural suatu peng-classan yang menetapkan suatu interaksi
beda yang menunjukan antara peng-class-an dan lingkungannya atau antara ( perilaku)
pengclass-an dan bagian internal nya.
2.10.4 Activity Diagram
Activity diagram menggambarkan berbagai alir aktifitas dalam sebuah sistem yang
sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi
dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses
paralel yang mungkin terjadi pada beberapa eksekusi. Activity diagram tidak
menggambarkan sifat internal dari sebuah sistem dan interaksi antara beberapa sub sistem
secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level
atas secara umum.
37
Simbol Activity Diagram
1) Start State: Menunjukkan dimulainya suatu workflow pada sebuah activity diagram.
Hanya ada satu start state dalam sebuah workflow. Pada UML, start state digambarkan
dengan simbol lingkaran yang solid.
Gambar 2.16 Start State
(Sumber: dewadirga.blogspot.com)
2) End State: Menggambarkan akhir atau terminal dari pada sebuah activity diagram. Bisa
terdapat lebih dari satu end state pada sebuah activity diagram. Pada UML, end state
digambarkan dengan simbol sebuah bull’s eye.
Gambar 2.17 End State
(Sumber: dewadirga.blogspot.com)
3) Activity: Menggambarkan sebuah pekerjaan/tugas dalam workflow. Pada UML, activity
digambarkan dengan simbol belah ketupat=‘lozenge’ (horizontal top and bottom with
convex sides).
Gambar 2.18 Activity
(Sumber: dewadirga.blogspot.com)
38
4) State Transitions : Menunjukkan kegiatan apa berikutnya setelah suatu kegiatan
sebelumnya. Pada UML, state transition digambarkan oleh sebuah solid line dengan
panah.
Gambar 2.19 State Transitions
(Sumber: dewadirga.blogspot.com)
5) Decisions : Suatu titik/point pada
activity diagram yang mengindikasikan suatu
kondisi dimana ada kemungkinan perbedaan transisi. Pada
UML, decision
digambarkan dengan sebuah simbol diamond.
Gambar 2.20 Decision
(Sumber: dewadirga.blogspot.com)
6) Swimlanes: Object swimlane untuk menggambarkan objek mana yang bertanggung
jawab untuk aktivitas tertentu.
Gambar 2.21 Swimlanes
(Sumber: argouml-stats.tigris.org)
39
Contoh Diagram Aktifitas:
7) Dengan Swimlane
Gambar 2.23 Contoh Activity Diagram Dengan Swimlane
(Sumber: jbug.jp)
40
8) Tanpa Swimlane
Gambar 2.24 Contoh Activity Diagram Tanpa Swimlane
(Sumber: sce.uhcl.edu)
Download