BAB 2.
LANDASAN TEORI
Landasan teori dan dasar pengetahuan
penelitian ini terkait dengan :
Steganografi, Waveform Audio File Format (WAV), LSB Encoding, Rekayasa Perangkat Lunak, Pemodelan UML, dan .NET Framework 2.1 Steganografi Istilah steganography berasal dari Bahasa Yunani, yaitu steganos yang berarti penyamaran atau penyembunyian dan graphein yang berarti tulisan. Jadi, steganografi bisa diartikan sebagai seni menyamarkan/menyembunyikan pesan tertulis ke dalam pesan lainnya. Steganography dan cryptography adalah saudara sepupu dalam keluarga spycraft. Cryptography adalah pengacakan suatu pesan sehingga artinya tidak mudah dimengerti, sedangkan steganography berarti menghilangkan pesan sehingga pesan tersebut tidak dapat dilihat. Suatu pesan dalam chipertext tidak mungkin membangun kecurigaan pihak penerima karena suatu pesan yang dibuat menggunakan metode steganografi tidak akan kelihatan. (Ariyus, 2009) Steganografi menyembunyikan pesan dalam data lain tanpa mengubah data yang ditumpanginya tersebut sehinggga data yang ditumpanginya sebelum dan sesudah proses penyembunyian hampir terlihat sama. Plaintext disembunyikan dengan berbagai teknik, di antaranya : 1. Menandai karakter : menulis ulang pesa yang dipilih menggunakan pensil. Tanda yang ditulis di atas kertas tersebut tidak kelihatan, kecuali bila dipegang dan diarahkan ke tempat yang terang. 2. Tinta yang tidak kelihatan: menulis pesan menggunakan tinta khusus sehingga pesan yang ditulis tidak bisa dilihat kecuali menggunakan bahan kimia tertentu. 3. Pin puncture: melubangi pesan yang dikirim menggunakan peniti atau alat tertentu sehingga jika dilihat secara sekilas tidak terlihat adanya lubang pada pesan tersebut. Pesan bisa dibaca menggunakan lampu dengan sudut tertentu.
2-1 http://digilib.mercubuana.ac.id/
4. Memanipulasi pita pada mesin ketik: menggunakan garis antara dengan suatu pita hitam yang menghasilkan tulisan yang tidak bisa dilihat, kecuali menggunakan sorotan lampu yang benar-benar kuat. 5. Menulis pesan di atas panel kayu yang kemudian disembunyikan dengan cara melapisinya dengan lilin untuk menutupinya yang dikenal dengan istilah wax tablets. Menurut sejarah, metode penulisan tersebut pernah dilakukan oleh Demeratus (orang Yunani) pada tahun 400 sebelum masehi. Pada
dasarnya,
terdapat
tujuh
teknik
yang
digunakan
dalam
steganography, yaitu: 1. Injection
Merupakan satu teknik menanamkan pesan rahasia secara langsung ke suatu media. Salah satu mesalah dari teknik ini adalah ukuran media yang diinjeksi menjadi lebih besar dari ukuran normalnya sehingga mudah dideteksi. Teknik itu sering juga disebut Embedding. 2. Subtitusi
Data noral digantikan dengan data rahasia. Biasanya, hasil teknik itu tidak terlalu mengubah ukuran data asli, tetapi tergantung pada file media dan data yang akan disembunyikan. Teknik subtitusi bisa menurunkan kualitas media yang ditumpangi. 3. Transform Domain
Teknik ini sangat efektik. Pada dasarnya, ransformasi domain menyembunyikan data pada “transform space”. Akan sangat lebih efektif bila teknik ini diterapkan pada file berekstensi Jpeg (gambar). 4. Spread Spectrum
Sebuah teknik pentransmisian menggunakan pseudo-noise code, yang independen terhadap data informasi sebagai modulator bentuk gelombang untuk menyebarkan energi sinyal dalam sebuah jalur komunikasi informasi. Oleh penerima, sinyal dikumpulkan kembali mengunakan replika pseudo-noise code tersinkronisasi. 5. Statistical Method
2-2 http://digilib.mercubuana.ac.id/
Teknik ini disebut juga skema steganographic 1 bit. Skema tersebut menanamkan satu bit informasi pasa media tumpangan dan mengubah statistic walaupun hanya 1 bit. Perubaha statistic ditunjukkan dengan indikasi 1 dan jika tidak ada perubahan, terlihat indikasi 0. System ini bekerja berdasarkan kemampuan penerima dalam membedakan informasi yang dimodifikasi dan yang belum. 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 diilih untuk menyembunyikan pesan. Contoh dari metode ini adalah Spam Mimic. 2.2 WAV WAV adalah singkatan dari istilah dalam bahasa Inggris Waveform Audio File Format merupakan standar format berkas audio yang dikembangkan oleh Microsoft dan IBM. WAV merupakan varian dari format bitstream RIFF dan mirip dengan format IFF dan AIFF yang digunakan komputer Amiga dan Macintosh. Baik WAV maupun AIFF kompatibel dengan sistem operasi Windows dan Macintosh. Walaupun WAV dapat menampung audio dalam bentuk terkompresi, umumnya format WAV merupakan audio yang tidak terkompres. 2.3 LSB Encoding Dalam komputerisasi, Least Significant Bit (LSB) adalah posisi bit dalam bilangan integer yang memberikan nilai unit, yaitu menentukan apakah jumlah ini genap atau ganjil. LSB terkadang disebut dengan right-most bit karenan posisi nya yang berada pada paling kanan. Berikut contoh nilai pada bilangan 149 dan bilangan biner nya.
2-3 http://digilib.mercubuana.ac.id/
Binary (Decimal: 149)
Bit weight for given bit position n ( 2n )
Bit position label
1
0
0
1
0
1
0
1
27
26
25
24
23
22
21
20
MSB ___ ___ ___ ___ ___ ___ LSB
Tabel 2.1 Posisi LSB Least Significant Bit (LSB) Coding adalah cara paling mudah untuk melekatkan (embed) informasi dalam file digital audio. Dengan mengganti least significant bit dari setiap point sampling dengan pesan biner. Dalam LSB coding data transmission rate yang ideal adalah 1 kbps per 1 kHz. Dalam sebagian implementasinya, 2 least significant bit akan di ganti dengan 2 pesan bit. Ini akan meningkatkan jumlah data yang di encode, tapi juga akan meningkatkan jumlah noise dalam file audio nya. Utuk meng extract pesan pada LSB encoded file suara, penerima harus meng akses ke urutan sample indeks yang digunakan pada saat proses embed. Normalnya, panjang pesan yang di encode lebih kecil daripada total nomor dari sample file suara (Roy, 2012). 2.3.1
Standard LSB LSB watermark encoder biasanya memilih subset dari semua sample audio yang available yang dipilih oleh secret key. Operasi subtitusi (pergantian) pada LSB dilakukan pada subset ini, dimana bit yang disembunyikan (hidden bit), diganti dengan dengan bit yang asli. Proses extract hanya mengambil watermark dengan membaca nilai-nilai bit dari objek audio stegano. Oleh karena itu, decoder membutuhkan semua sample audio stegano yang digunakan selama proses embedding (encode).
2.3.2
Modified LSB
2-4 http://digilib.mercubuana.ac.id/
Metode Steganografi yang paling umum pada format suara adalah Least Significant Bit Modification. Metode ini banyak digunakan karena komputasinya tidak terlalu kompleks dan pesan yang disembunyikan cukup aman. Metode ini memodifikasi nilai yang paling kurang signifikan dari jumlah bit dalam 1 byte file carrier. Bit yang memiliki signifikansi paling tinggi adalah numerik yang memiliki nilai tertinggi (misal, 27 = 128), artinya bila terjadi perubahan pada bit ini akan menghasilkan perubahan yang sangat signifikan. Bit yang memiliki signifikansi paling rendah adalah numerik yang memiliki nilai terendah (misal, 20 = 1), artinya bila terjadi perubahan pada bit ini akan menghasilkan perubahan yang tidak terlalu signifikan. 2.4 Rekayasa Perangkat Lunak Rekayasa
perangkat
lunak
(software
engineering)
merupakan
pembangunan dengan menggunakan prinsip atau konsep rekayasa dengan tujuan menghasilkan perangkat lunak yang bernilai ekonomi yang dipercaya dan bekerja secara efisien menggunakan mesin(A. S. & Shalahuddin, 2013). Perangkat lunak banyak dibuat dan pada akhirnya sering tidak digunakan karena tidak memenuhi kebutuhan pelanggan atau bahkan karena masalah non-teknis seperti keengganan pemakai perangkat lunak (user) untuk mengubah cara kerja dari manual ke otomatis. Oleh karena itu rekayasa perangkat lunak dibutuhkan agar perangkat lunak yang dibuat tidak hanya menjadi perangkat lunak yang tidak terpakai. Rekayasa perangkat lunak lebih fokus pada praktik pengembangan perangkat lunak dan mengirimkan perangkat lunak yang bermanfaat kepada pelanggan. Adapun ilmu komputer lebih fokus pada teori dan konsep dasar perangkat komputer, rekayasa perangkat lunak lebih fokus pada bagaimana membuat perangkat lunak yang memenuhi kriteria berikut:
Dapat terus dipelihara setelah perangkat lunak selesai dibuat seiring berkembangnya tekonologi dan lingkungan (maintainability).
Dapat diandalkan dengan proses bisnis yang dijalakan dan perbuhan yang terjadi (dependentbility dan robust).
2-5 http://digilib.mercubuana.ac.id/
Efisien dari segi sumber daya dan penggunaan.
Kemampuan untuk dipakai sesuai dengan kebutuhan (usability).
Dari kriteria diatas maka perangkat lunak yang baik adalah perangkat lunak yang dapat memenuhi kebutuh pelanggan (customer) atau pengguna (user) atau berorientasi pada pelanggan atau pemakai perangkat lunak, bukan berorientasi pada pembuat atau pengembang perangkat lunak. 2.4.1
Ruang Lingkup Rekayasa Perangkat Lunak Ruang lingkup Rekayasa perangkat lunak dapat digambarkan sebagai
berikut :
Gambar 2-1 Ruang lingkup Rekayasa Perangkat Lunak 2.4.2
Software Development Life Cycle SDLC atau Software Development Life Cycle adalah proses mengembangkan atau mengubah suatu sistem perangkat lunak dengan menggunakan model-model dan metodologi yang digunakan orang untuk mengembangkan sistem-sistem perangkat lunak sebelumnya (berdasarkan best practice atau cara-cara yang sudah teruji baik). Seperti halnya proses metamorfosis pada kupu-kupu, untuk menjadi kupu-kupu yang indah maka dibutuhkan beberapa tahap untuk dilalui, sama halnya dengan membuat perangkat lunak, memiliki daur tahapan yang dilalui agar menghasilkan perangkat lunak yang berkualitas (A. S. & Shalahuddin, 2013).
2-6 http://digilib.mercubuana.ac.id/
Tahapan-tahapan yang ada pada SDLC secara global adalah sebagi berikut: 1) Inisiasi (initiation) Tahapan ini biasasnya ditandai dengan pembuatan proposal proyek perangkat lunak. 2) Pengembangan konsep sistem (system concept development) Mendefinisikan lingkup konsep termasuk dokumen lingkup sistem, analisis manfaat biaya, manajemen rencana, dan pembelajaran kemudahan system. 3) Perencanaan (planning) Mengembangkan rencana manajemen proyek dan dokumen perencanaan lainnya. Menyediakan dasar untuk mendapatkan sumber daya (resources) yang dibutuhkan untuk memperoleh solusi. 4) Analisis kebutuhan (requirement analysis) Menganalisis kebutuhan pemakai sistem perangkat lunak (user) dan
mengembangkan
kebutuhan
user.
Membuat
dokumen
kebutuhan fungsional. 5) Desain (design) Mentransformasikan kebutuhan detail menjadi kebutuhan yang sudah lengkap, dokumen desain sistem fokus pada bagaimana dapat memenuhi fungsi-fungsi yang dibutuhkan. 6) Pengembangan (development) Mengkonversi desain ke sistem informasi yang lengkap termasuk bagaimana memperoleh dan melakukan instalasi lingkungan sistem yang dibutuhkan; membuat basis data dan mempersiapkan prosedur kasus pengujian; mempersiapkan berkas atau file pengujian, pengkodean, pengkompilasian, memperbaiki dan membersihkan program; peninjauan pengujian. 7) Integrasi dan pengujian (integration dan test) Mendemonstrasikan
sistem
perangkat
lunak
bahwa
telah
memenuhi kebutuhan yang dispesifikasikan pada dokumen
2-7 http://digilib.mercubuana.ac.id/
kebutuhan fungsional. Dengan diarahkan oleh staf penjamin kualitas (quality assurance) dan user. Menghasilkan laporan analisis pengujian. 8) Implementasi (implementation) Termasuk pada persiapan implementasi, implementasi perangkat lunak pada lingkungan produksi (lingkungan pada user) dan menjalankan resolusi dari permasalahan yang teridentifikasi dari fase integrasi dan pengujian. 9) Operasi dan pemeliharaan (operations and maintenance) Mendeskripsikan pekerjaan untuk mengoperasikan dan memlihara sistem informasi pada lingkungan produksi (lingkungan pada user), termasuk implementasi akhir dan masuk pada proses peninjauan. 10) Disposisi (disposition) Mendeskripsikan aktifikas akhir dari pengembangan sistem dan membangun data yang sebenarnya sesuai dengan aktivitas user. 2.4.3
Model Waterfall Model SDLC air terjun (waterfall) sering juga disebut sebagai model sekuensial linier (sequential linear) atau alur hidup klasik (classic life cycle). Model air terjun menyediakan pendekatan alur hidup perangkat lunak secara sekuensial atau terurut dimulai dari analisis, desain, pengodean, pengujian, dan tahap pendukung (support). Berikut adalah gambar dari model air terjun:
2-8 http://digilib.mercubuana.ac.id/
Analisis
Desain
Pengodean
Pengujian
Pemeliharaan
Gambar 2-2 Ilustrasi Model Waterfall
Analisa kebutuhan perangkat lunak Proses pengumpulan kebutuhan dilakukan scara intensif untuk menspesifikasikan kebutuhan perangkat lunak agar dapat dipahami perangkat lunak seperti apa yang dibutuhkan oleh user. Spesifikasi kebutuhan
perangkat
lunak
pada
tahap
ini
perlu
untuk
didokumentasikan.
Desain Desain perangkat lunak adalah proses multi langkah yang fokus pada desain pembuatan program perangkat lunak termasuk struktur data, arsitektur perangkat lunak, representasi antarmuka, dan prosedur pengodean. Tahap ini mentranslasikan kebutuhan perangkat lunak dari tahap analisis menjadi representasi desain agar dapat diimplementasikan mejadi program pada tahap selanjutnya. Desain perangkat lunak yang dihasilkan pada tahap ini juga perlu untuk didokumentasikan.
Pembuatan kode program
2-9 http://digilib.mercubuana.ac.id/
Desain harus ditranslasikan ke dalam program perangkat lunak. Hasil dari tahap ini adalah program komputer sesuai dengan desain yang telah dibuat pada tahap desain.
Pengujian Pengujian fokus pada perangkat lunak secara logika dan fungsional dan memastika bahwa semua bagia sudah diuji. Hal ini dilakukan untuk meminimalisir kesalahan (error) dan memsatikan keluaran yang dihasilkan sesuai dengan yang diinginkan.
Pendukung atau Pemeliharaan Sebuah perangkat lunak dapat mengalami perubahan ketika sudah dikirimkan ke user. Perubahan bisa terjadi karena adanya kesalahan yang muncul dan tidak terdeteksi saat pengujian atau terjadi
karena
perangkat
lunak
harus
beradaptasi
dengan
lingkungan baru. Tahap pendukung atau pemeliharaan dapat mengulangi proses pengembangan mulai dari analisis spesifikasi untuk perbuahan perangkat lunak yang sudah ada, tapi tidak untuk membuat perangkat lunak baru. 2.4.4
Pengujian Perangkat Lunak Perangkat lunak sering mendapatkan kesalahan (error) pada proses-proses tertentu pada saat perangkat lunak sudah berada di tangan user. Kesalahan pada perangkat lunak ini sering disebut dengan “bug”. Untuk menghindari banyaknya bug maka diperlukan adanya pengujian perangkat lunak sebelum perangkat lunak diberikan ke pelanggan atau selama perangkat lunak masih terus dikembangkan. Adanya bug adalah suatu yang biasa, bahkan di sebuah perangkat lunak yang sudah besar dan terkenal pun biasanyan masih terdapat bug. Oleh karena itu tidak perlu merasa tersinggung atau bersedih jika masih ditemukan bug pada perangkat lunak yang dikembangkan. Yang bisa dilakukan pengembang perangkat lunak adalah meminimalisir bug dengan melakukan pengujian. Kelakukan perangkat lunak yang tidak sesuai dengan spesifikasi yang dibutuhkan bisa dianggap sebagai bug.
2-10 http://digilib.mercubuana.ac.id/
Pengujian adalah salah satu set aktivitas yang direncanakan dan sistematis untuk menguji atau mengevaluasi kebenaran yang diinginkan (A. S. & Shalahuddin, 2013). Aktivitas pengujian terdiri dati satu set atau sekumpulan langkah dimana dapat menempatkan desain kasus uji yang spesifik dan metode pengujian. Secara umum pola pengujian pada perangkat lunak adalah sebagi berikut :
Pengujian dimulai dari level komponen hingga integrasi antar komponen menjadi sebuah sistem.
Teknik pengujian berbeda-beda sesuai dengan berbagai sisi atau unit uji dalam waktu yang berbeda-beda pula, bergantung pada pengujian pada bagian mana yang dibutuhkan.
Pengujian dilakukan oleh pengembang perangkat lunak, jika untuk proyek besar, pengujian bisa dilakukan oleh tim uji yang tidak terkait dengan tim pengembang perangkat lunak (Independent Test Group). Pengujian perangkat lunak adalah sebuah elemen sebuah topik
yang memiliki cakupan luas dan sering dikaitkan dengan verifikasi (verification) dan validasi (validation) (A. S. & Shalahuddin, 2013). Verifikasi mengacu pada sekumpulan aktivitas yang menjamin bahwa perangkat lunak mengimplementasikan dengan benar sebuah fungsi yang spesifik. Validasi mengacu pada sekumpulan aktivitas yang berbeda yang menjamin bahwa perangkat lunak yang dibangun dapat ditelusuri sesuai dengan kebutuhan pelanggan (customer). Dapat juga dikatakan sebagai berikut :
Verifikasi : “Apakah produk yang dibangun dengan benar?” atau “Apakah proses pengembangan produk sudah benar dan telah mengimplementasikan fungsi yang benar?”.
Validasi : “Apakah sudah membangun produk yang benar?” atau “Apakah hasil produk sudah sesuai dengan yang diinginkan?”.
2.4.5
Verifikasi Pengujian Pengujian untuk verifikasi memiliki tahapan sebagai berikut : 2-11 http://digilib.mercubuana.ac.id/
Pengujian Unit
Pengujian Integrasi
Pengujian Sistem
Pengujian Penerimaan
Gambar 2-3 Pengujian perangkat lunak Pengujian diawali dari pengujian unit. Unit disini bisa berupa kumpulan fungsi atau prosedur yang memiliki keterkaitan pada pemrograman terstruktur atau class pada pemrograman berorientasi objek. Unit juga dapat berupa modul atau dikenal juga sebagai package. Setelah unit-unit selesai diuji maka dilakukan pengujian integrasi. Pengujian integrasi sebaiknya dilakukan secara bertahap, tidak dilakukan secara satu tahap langsung di akhir untuk menghindari kesulitan penelusuran jika terjadi kesalahan (error). Pengujian integrasi lebih pada pengujian penggabungan dari dua atau lebih unit pada perangkat lunak. Setelah pengujian integrasi maka dilakukan pengujian sistem, yang dimana unit-unit proses yang sudah diintergrasikan akan diuji dengan antarmuka yang sudah dibuat sehingga pengujian ini dimaksudkan untuk menguji sistem perangkat lunak secara keseluruhan dan diuji secara satu sistem. Setelah pengujian sistem selesai maka dapat dilakukan pengujian penerimaan perangkat lunak oleh pelanggan (customer) atau pengguna (user). Pengujian penerimaan digunakan untuk mengetahui kepuasan pelanggan atau user terhadap perangkat lunak yang sudah dibuat. Jika pelanggan sudah puas dengan perangkat lunaknya, maka perangkat lunak tersebut dapat diserahkan kepada pelanggan (customer). 2.4.6
Validasi Pengujian Pengujian untuk validasi memiliki beberapa pendekatan sebagai berikut :
2-12 http://digilib.mercubuana.ac.id/
Black-Box Testing (pengujian kotak hitam) Pengujian kotak hitam menguji perangkat lunak dari segi spesifikasi fungsional tanpa menguji desain dan kode program. Pengujian dimaksudkan untuk mengetahui apakah fungsi-fungsi, masukan dan keluaran dari perangkat lunak tersebut sudah sesuai dengan spesifikasi yang dibutuhkan. Pengujian kotak hitam dilakukan dengan membuat kasus uji yang bersifat mencoba semua fungsi dengan memakai perangkat lunak sesuai dengan spesifikasi yang dibutuhkan. Kasus uji yang dibuat untuk melakukan pengujian kotak hitam harus dibuat dengan kasus benar dan kasus salah.
White-Box Testing (pengujian kota putih) Pengujian kotak putih menguji perangkat lunak dari segi desain dan kode program, apakah mampu menghasilkan fungsi-fungsi, masukan dan keluaran dari perangkat lunak tersebut sudah sesuai dengan spesifikasi yang dibutuhkan. Pengujian kotak putih dilakukan dengan memeriksa logika dari kode program. Pembuatan kasus uji bisa mengikuti standar pengujian dari standar pemrograman yang seharusnya.
2.5 Pemodelan UML (Unified Modeling Language) Pada perkembangan teknik pemrograman berorientasi objek, muncullah sebuah standarisasi bahasa pemodelan untuk pembangunan perangkat lunak yang dibangun dengen menggunakan teknik pemrograman berorientasi objek, yaitu Unified Modeling Language (UML). UML muncul karena adanya kebutuhan pemodelan visual untuk menspesifikasikan, menggambarkan, membangun dan dokumentasi dari sistem perangkat lunak (A. S. & Shalahuddin, 2013). UML merupakan bahasa visual untuk pemodelan dan komunikasi mengenai sebuah sistem dengan menggunakan diagram dan teksteks pendukung.
2-13 http://digilib.mercubuana.ac.id/
Pada UML versi 2.3 terdapat 13 macam diagram yang dikelompokan menjadi 3 kategori. Pembagian kategori dan macam-macam diagram tersbut dapat dilihat pada gambar dibawah.
Structure Diagrams
Behavior Diagrams
Interaction Diagrams
Class diagram
Use case diagram
Sequence diagram
Object diagram
Activity diagram
Commucation diagram
Component diagram
State machine diagram
Timing diagram
Composite structure diagram
Interaction overview diagram
Package diagram
Deployment diagram
Gambar 2-4 Diagram UML Berikut ini penjelasan singkat dari pembagian kategori tersebut :
Structure diagrams yaitu kumpulan diagram yang digunakan untuk menggambarkan suatu struktur statis dari sistem yang dimodelkan.
Behaviour diagrams yaitu kumpulan diagram yang digunakan untk menggambarkan kelakuan sistem atau rangkaian perubahan yang terjadi pada sebuah sistem.
Interaction diagrams yaitu kumpulan diagram yang digunakan untuk menggambarkan interaksi sistem dengan sistem lain maupun interaksi antar subsistem pada suatu sistem.
2.5.1
Use Case Diagram Diagram use case merupakan pemodelan untuk kelakuan (behavior) sistem informasi yang akan dibuat (S & Shalahuddin, 2013). Diagram 2-14 http://digilib.mercubuana.ac.id/
use case mendeskripsikan sebuah interkasi antara satu atau lebih aktor dengan sistem informasi yang akan dibuat. Secara kasar, diagram use case digunakan untuk mengetahui fungsi apa saja yang ada di dalam sebuah sistem informasi dan siapa saja yang berhak menggunakan fungsi-fungsi tersebut.
Gambar 2-5 Contoh Use case Diagram (Pressman, 2010) Tabel 2-2 Notasi Pada Use Case Diagram (A. S. & Shalahuddin, 2013) Simbol
Deskripsi Fungsionalitas yang disediakan
Use case
sistem sebagai unit-unit yang saling bertukar pesan antar unit atau aktor. Biasanya dinyatakan dengan menggunakan kata kerja di awal frase nama use case. Aktor/actor
Orang, proses, atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat di luar sistem informasi yang akan dibuat
itu
sendiri,
sehingga
walaupun simbol dari aktor itu adalah
menyerupai
gambar
2-15 http://digilib.mercubuana.ac.id/
orang,
tetapi
aktor
tersebut
belum tentu merupakan orang. Asosiasi/association
Komunikasi antara aktor yang berpatisipasi pada use case atau use
case
memiliki
interaksi
dengan aktor. Ektensi/extend
Relasi use case tambahan ke sebuah use case dimana use case yang ditambah tersebut dapat berdiri sendiri walau tanpa use case tambahan tersebut. Seperti pada prinsip inheritance pada pemrograman berorientasi objek, biasanya use case tambahan memiliki nama depan yang sama dengan use case yang ditambah.
Generalisasi/generalization
Hubungan
generalisasi
dan
spesialisasi (umum – khusus) antara dua buah use case dimana fungsi yang satu adalah fungsi yang lebih umum dari yang lainnya. Include / Uses
Relasi use case tambahan ke sebuah use case dimana use case yang ditambahkan memerlukan use case ini untuk menjalankan fungsinya atau sebagai syarat untuk menjalankan use case tersebut.
2-16 http://digilib.mercubuana.ac.id/
Setiap diagram use case akan dilengkapi dengan skenario. Skenario diagram use case adalah alur jalannya proses use case dari sisi aktor dan sistem. 2.5.2
Sequence Diagram Diagram sekuen menggambarkan kelalukan objek pada use case dengan mendeskripsikan waktu hidup objek dan pesan yang dikirimkan dan diteriman antar objek. Oleh karena itu untuk menggambarkan diagram sekuan maka harus diketahui objek-objek yang dimiliki kelas yang menjadi objek tersebut. Membuat diagram sekuen diperlukan untuk mengiktui skenario yang ada pada diagram use case. Jumlah diagram yang harus digambar adalah minimal sebanyak pendefinisan use case yang memiliki proses sendiri atau yang penting semua use case yang telah didefinisikan interaksi jalannya pesan sudah dicakup pada diagtam sekuen sehingga semakin banyak use case yang didefinisikan maka diagram sekuen yang harus dibuat juga semakin banyak.
Gambar 2-6 Contoh Sequence Diagram (Pressman, 2010)
2-17 http://digilib.mercubuana.ac.id/
Tabel 2-3 Notasi Pada Sequence Diagram (A. S. & Shalahuddin, 2013) Simbol Aktor / Actor
Deskripsi Orang, proses, atau sistem lain yang berinterkasi dengan sistem informasi yang akan dibuat di luar sistem informasi itu sendiri. Walaupun simbol dari aktor
Atau
adalah gambar orang, belum tentu
merupakan
Biasanya
orang. dinyatakan
menggunakan kata benda di awal frase nama aktor. Garis hidup / lifeline
Menyatakan kehidupan suatu objek
Objek / Object
Menyatakan
objek
yang
berinteraksi pesan.
Waktu aktif / Active
Menyatakan
objek
dalam
keadaan aktif dan berinteraksi, semua yang terhubung dengan waktu aktif ini adalah sebuah tahapan
yang
dilakukan
di
dalamnya. Pesan tipe create
Menyatakan
suatu
objek
2-18 http://digilib.mercubuana.ac.id/
membuat objek yang lain, arah panah mengarah pada objek yang dibuat. Pesan tipe call
Menyatakan
suatu
objek
memanggil
operasi/metode
yang ada pada obejk lain atau dirinya sendiri. Arah panah mengarah
pada
memilik
objek
yang
operasi/metode,
sehingga metode yang dipanggil harus ada pada diagram class sesuai dengan kelas objek yang berinterkasi. Pesan tipe send
Menyatakan bahwa suatu objek mengirimkan data / masukan / informasi ke objek lainnya. Arah panah mengarah pada objek yang dikirimkan pesan.
Pesan tipe return
Menyatakan bahwa suatu onjek yang telah menjalankan suatu operasi
atau
metode
menghasilkan pengembalian
suatu pada
objek
tertentu, arah panah mengarah pada objek
yang menerima
kembalian. Pesan tipe destroy
Menyatakan
suatu
objek
mengakhiri hidup objek yang lain, arah panah mengarah pada objek yang diakhiri, sebaiknya jika
ada
create
maka
ada
destroy
2-19 http://digilib.mercubuana.ac.id/
2.5.3
Activity Diagram Diagram aktivitas atau activity diagram menggambarkan workflow (aliran kerja) atau aktivitas dari sebuah sistem , proses bisnis atau menu
yang
ada
pada
perangkat
lunak.
Diagram
aktivitas
menggambarkan aktivitas sistem dan tidak menggambarkan apa yang dilakukan oleh aktor. Diagram aktivitas juga banyak digunakan untuk mendefinisikan halhal berikut:
Rancangan proses bisnis dimana setiap uturan aktivitas yang digambarkan merupakan proses bisnis sistem yang didefinisikan.
Urutan atau pengelompokan tampilan dari sistem/user inteface dimana setiap aktivitas dianggap memiliki sebuah rancangan antarmuka tampilan.
Rancangan pengujian dimana setiap aktivitas dingaap memerlukan sebuah pengujian yang perlu didefinisikan kasus ujinya.
Rancangan menu yang ditampilkan pada perangkat lunak.
2-20 http://digilib.mercubuana.ac.id/
Gambar 2-7 Contoh Activity Diagram (Pressman, 2010) Tabel 2-4 Notasi Pada Activity Diagram (A. S. & Shalahuddin, 2013) Simbol
Deskripsi
Status awal / Start
Status
awal
aktivitas
dari
sebuah sistem. Sebuah diagram aktivitas memiliki sebuah status awal.
Aktivitas / Activity
Aktivitas yang dilakukan oleh suatu aktivitas
sistem. biasanya
Penamaan diawali
dengan kata kerja
2-21 http://digilib.mercubuana.ac.id/
Percabangan
Asosiasi percabangan dimana jika ada pilihan aktivitas lebih dari satu.
Penggabungan
Asosiasi
penggabungan
Asosiasi penggabungan dimana lebih
dari
satu
aktivitas
digabungkan menjadi satu. Status akhir / End
Status akhir yang dilakukan sistem.
Sebuah
diagram
aktivitas memiliki status akhir. Memisahkan organisasi bisnis
Swimlane
yang
bertanggungg
jawab
terhadap aktivitas yang terjadi.
2.6 .NET Framework Microsoft .NET Framework (dibaca Microsoft Dot Net Framework) merupakan sebuah software (perangkat lunak) framework yang berjalan utamanya pada sistem operasi Microsoft Windows. Saat ini .NET Framework umumnya telah terintegrasi dalam distribusi standar Windows (mulai dari Windows Server 2003 dan versi-versi Windows yang lebih baru). Framework
2-22 http://digilib.mercubuana.ac.id/
ini menyediakan kumpulan pustaka-pustaka (library) agar dapat bekerja sama dalam menjalankankan aplikasi berbasis Windows. Berbeda halnya dengan tipikal aplikasi konvensional umumnya, program yang ditulis dengan memanfaatkan .NET Framework berjalan pada lingkungan perangkat lunak melalui Common Language Runtime, dan bukan perangkat keras secara langsung. Hal ini memungkinkan aplikasi yang dibuat di atas .NET secara teoritis dapat berjalan pada perangkat keras apapun yang didukung oleh .NET Framework. Perangkat lunak ini adalah kunci penawaran utama dari Microsoft, dan dimaksudkan untuk digunakan oleh sebagian besar aplikasi-aplikasi baru yang dibuat untuk platform Windows. Selama ini, komputer hanya dapat mengerti satu bahasa saja, yaitu bahasa mesin (assembly), namun ketika mendevelope suatu aplikasi dengan bahasa .Net, kemudian dijalankan, maka komputer tidak akan memahami bahasa mesin tersebut sehingga komputer akan menampilkan pesan kesalahan (error message), hal ini disebabkan karena aplikasi yang dibangun dengan bahasa .Net ini membutuhkan suatu komponen yang berguna sebagai “penerjemah“. Hasil dari kompiler .Net sendiri bukanlah bahasa mesin pada umumnya (yang dapat dimengerti komputer). Bahasa mesin yang dihasilkan oleh kompiler .Net dinamakan “Intermediate Language (IL)“. IL merupakan mesin virtual yang dikembangkan oleh Microsoft, sehingga mesin virtual inilah yang hanya dapat memahami aplikasi yang dibuat dengan bahasa .Net, dan .Net Framework sendiri yang bertugas sebagai penerjemah perintah-perintah dalam IL menjadi bahasa mesin pada umumnya. Framework .NET terdiri dari 2 komponen utama, yaitu: 1. Common Language Runtime (CLR) Fungsi Common Language Runtime (disingkat menjadi CLR) adalah untuk mengatur eksekusi kode dan menyediakan layanan yang bisa membuat pembuatan kode jauh lebih mudah. Kata “runtime” di sini berarti kode yang sedang dijalankan, atau dengan kata lain kode yang sedang dieksekusi. Sementara itu kata “Common Language” berarti bahwa runtime ini mengatur eksekusi kode yang ditulis dalam
2-23 http://digilib.mercubuana.ac.id/
beberapa macam jenis bahasa yang menggunakan layanan yang sama—yakni .NET Framework. Microsoft mengembangkan C# untuk mengambil keuntungan dari CLR. Fitur C# akan bekerja secara maksimal dengan CLR. Akhirnya, bahasa Visual Basic yang populer pun juga berevolusi karena keberadaan CLR sehingga menjadi Visual Basic .NET. Para programmer Visual Basic yang klasik memang harus mempelajari beberapa fitur yang baru untuk menggunakan fitur CLR secara keseluruhan dengan menggunakan Visual Basic .NET. Bahasa C++, juga sama-sama berevolusi, menjadi Managed C++, sehingga bahasa tersebut juga bisa dijalankan di atas CLR. Kode yang dieksekusi oleh CLR disebut juga dengan sebutan managed code. Adalah bagian dari CLR, yang disebut dengan Common Type System (CTS) yang mendefinisikan tipe-tipe data yang harus disediakan oleh setiap bahasa agar bisa berjalan di atas CLR. Selain CTS, CLR juga memiliki bagian yang lain yang bertugas untuk mengatur fitur-fitur
yang harus dimiliki oleh setiap bahasa
pemrograman untuk mengembangkan program dalam managed code, yang dikenal dengan Common Language Specification (CLS). Para programmer yang hanya menggunakan fitur-fitur yang terdapat di dalam CLS dapat membangun sebuah aplikasi dengan beberapa macam bahasa. Mereka tahu, jika memang mereka menggunakan sebuah fitur dalam sebuah bahasa pemrograman tertentu dalam program mereka, program di dalam bahasa pemrograman lainnya juga akan dapat menggunakan komponen tersebut. 2. Base Class Library (BCL) Komponen kedua di dalam .NET Framework adalah sesuatu yang menyediakan banyak tipe dan sangat membantu proses pengembangan perangkat lunak, yang disebut dengan Base Class Library (BCL). Pustaka tersebut menggabungkan tipe-tipe tersebut di dalam ruang nama (namespace) yang menggabungkan tipe-tipe yang berkaitan. BCL mengandung lebih dari 100 buah ruang nama. Dengan adanya
2-24 http://digilib.mercubuana.ac.id/
BCL ini, maka kita bisa menggunakan Framework .NET untuk membuat berbagai macam aplikasi, seperti :
Aplikasi console
Aplikasi berbasis window (Windows Form)
Aplikasi ASP.NET (berbasis web)
Aplikasi Web Services XML
Aplikasi berbasis Windows Services
2-25 http://digilib.mercubuana.ac.id/