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)