7
BAB II TINJAUAN PUSTAKA
II.1.
Kriptografi Kriptografi pada awalnya dijabarkan sebagai ilmu yang mempelajari
bagaimana menyembunyikan pesan. Namun pada pengertian modern kriptografi adalah ilmu yang bersandarkan pada teknik matematika untuk berurusan dengan keamanan informasi seperti kerahasiaan, keutuhan data dan otentikasi entitas. Jadi pengertian
kriptografi
modern
adalah
tidak
saja
berurusan
hanya
denganpenyembunyian pesan namun lebih pada sekumpulan tkenik menyediakan keamanan informasi. Sistem kriptografi terdiri dari 5 bagian yaitu: 1. Plaintext : pesan atau data dalam bentuk aslinya yang dapat terbaca. Plaintext adalah masukan bagi algoritma enkripsi untuk selanjutnya digunakan istilah teks asli sebagai padanan kata plaintext 2. Secret key : secret key yang juga merupakan masukan bagi algoritma enkripsi merupakan nilai yang bebas terhadap teks asli dan menentukan hasil keluaran algoritma enkripsi. Untuk selanjutnya digunakan istilah kunci rahasia sebagai padanan kata secret key 3. Ciphertext : ciphertext adalah keluaran algoritma enkripsi.Chiphertext dapat dianggap sebagai pesan dalam bentuk tersembunyi. Algoritma enkripsi yang baik akan menghasilkan ciphertext yang terlihat acak. Untuk selanjutnya digunakan istilah teks sandi sebagai padanan kata ciphertext. 7
8
4. Algoritma Enkripsi: Algoritma enkripsi memiliki masukan teks asli dan kunci rahasia. Algoritma enkripsi melakukan transformasi terhadap teks asli sehingga menghasilkan teks sandi. 5. Algoritma Dekkripsi: Algoritma dekkripsi memiliki masukan yaitu teks sandi dan kunci rahasia. Algoritma dekripsi memulihkan kembali teks sandi menjadi teks asli bila kunci rahasia yang dipakai algoritma dekripsi sama dengan kunci rahasia yang dipakai algoritma enkripsi. ( Rifki Sadikin ; 2012 : 15)
II.1.1. Algoritma Base64 RC4 merupakan salah satu jenis stream cipher, yaitu memproses unit atau input data, pesan atau informasi pada satu saat. Unit atau data pada umumnya sebuah byte atau bahkan kadang kadang bit (byte dalam hal RC4). Dengan cara ini enkripsi atau dekripsi dapat dilaksanakan pada panjang yang variabel. Algoritma ini tidak harus menunggu sejumlah input data, pesan atau informasi tertentu sebelum diproses, atau menambahkan byte tambahan untuk mengenkrip. Contoh stream cipher adalah RC4, Seal, A5, Oryx, dan lain-lain. Tipe lainnya adalah block cipher yang memproses sekaligus sejumlah tertentu data (biasanya 64 bit atau 128 bit blok), contohnya : Blowfish, DES, Gost, Idea, RC5, Safer, Square, Twofish, RC6, Loki97, dan lain-lain. RC4 merupakan enkripsi stream simetrik proprietary yang dibuat oleh RSA Data Security Inc (RSADSI). Penyebarannya diawali dari sebuah source code yang diyakini sebagai RC4 dan dipublikasikan secara 'anonymously' pada tahun 1994. Algoritma yang dipublikasikan ini sangat identik dengan implementasi RC4 pada produk resmi. RC4 digunakan secara luas pada beberapa
9
aplikasi dan umumnya dinyatakan sangat aman. Sampai saat ini diketahui tidak ada yang dapat memecahkan/membongkarnya, hanya saja versi ekspor 40 bitnya dapat dibongkar dengan cara "brute force" (mencoba semua kunci yang mungkin). RC4 tidak dipatenkan oleh RSADSI, hanya saja tidak diperdagangkan secara bebas (trade secret). Algoritma RC4 cukup mudah untuk dijelaskan. RC4 mempunyai sebuah S-Box, S0,S1,...,S255, yang berisi permutasi dari bilangan 0 sampai 255, dan permutasi merupakan fungsi dari kunci dengan panjang yang variabel. Terdapat dua indeks yaitu
i
dan
j, yang diinisialisasi dengan bilangan nol. Untuk
menghasilkan random byte langkahnya adalah sebagai berikut : i = ( i + 1 ) mod 256 j = ( j + Si ) mod 256 swap Si dan Sj t = (Si + Sj) mod 256 K = St Byte K di XOR dengan plaintexs untuk menghasilkan cipherteks atau di XOR dengan cipherteks untuk menghasilkan plainteks. Enkripsi sangat cepat kurang lebih 10 kali lebih cepat dari DES. Inisialisasi S-Box juga sangat mudah. Pertama isi secara berurutan S0 = 0, S1 = 1,...,S255 = 255. Kemudian isi array 256 byte lainnya dengan kunci yang diulangi sampai seluruh array K0, K1,...,K255 terisi seluruhnya. Set indeks j dengan nol, Kemudian lakukan langkah berikut :
10
for i = 0 to 255 j = (j + Si + Ki) mod 256 swap Si dan Sj Salah satu kelemahan dari RC4 adalah terlalu tingginya kemungkinan terjadi tabel S-box yang sama, hal ini terjadi karena kunci user diulang-ulang untuk mengisi 256 bytes, sehingga 'aaaa' dan 'aaaaa' akan menghasilkan permutasi yang sama. Untuk mengatasi ini maka pada implementasinya nanti kita menggunakan hasil hash 160 bit SHA dari password kita untuk mencegah hal ini terjadi. Kekurangan lainnya ialah karena enkripsi RC4 adalah XOR antara data bytes dan pseudo-random byte stream yang dihasilkan dari kunci, maka penyerang akan mungkin untuk menentukan beberapa byte pesan orisinal dengan meng-XOR dua set cipher byte, bila beberapa dari pesan input diketahui (atau mudah untuk ditebak). Untuk mengatasinya pada aplikasinya kita menggunakan initialization vector (IV) yang berbeda-beda untuk setiap data, sehingga bahkan untuk file yang sama akan dihasilkan ciphertext yang berbeda. IV ini tidak perlu dirahasikan karena digunakan hanya agar setiap proses enkripsi akan menghasilkan ciphertext yang berbeda. Untuk lebih meningkatkan keamanan dari metoda ini dapat juga mengembangkan inisialisasi kunci yang baru yang kita sebut saja inisialisasi SK (strengtened key), pada proses ini kunci user di-expand hingga 260 byte (tetapi kemudian hanya 256 byte saja yang digunakan) dengan menggunakan SHA-1, caranya pertama kunci user dijadikan kunci, kemudian 1-20 byte pertama pada buffer diproses dengan SHA kemudian digestnya diletakan pada 20 byte pertama,
11
kemudian diambil byte 1-40 diproses dengan SHA dan hasilnya diletakan mulai pada byte 20, berikutnya byte 1-60 hasilnya diletakkan pada mulai byte 40, dan seterusnya. Kemudian buffer ini dienkrip dengan RC4, lalu buffer dijadikan kunci kembali, proses terakhir ini diulang sebanyak 16 kali untuk mencoba mencampur dengan baik sehingga dihasilkan kunci yang se-random mungkin. Untuk lebih jelas tetang proses ini dapat dilihat pada listing. Penggunaan SHA pada proses inisialisasi kunci bukanlah hal yang baru, hal ini dapat dilihat pada proses inisialisasi kunci SEAL misalnya. Penggunaan proses primitif enkripsi pada inisialisasi kunci juga digunakan juga pada Blowfish ataupun Cobra-128. Secara teoritis dengan proses ini akan ekivalen dengan menggunakan kunci sebesar 2048 bit, walaupun penulis sendiri tidak yakin akan hal ini (mungkin pembaca ada yang bisa memberikan tanggapan). Metoda ini tampaknya sedikit lebih rumit dari pada inisialisasi kunci standar, tetapi pada Pentium 133 prosesnya hanya memerlukan waktu kurang sari 10ms saja. Metoda ini walaupun kami anggap lebih kuat, tetapi belum teruji sehingga dalam penerapan aplikasinya terdapat dua pilihan yaitu dengan metoda SK ini atau dengan metoda standar. ( Hanriawan A. Mooduto ; ISSN : 1412-5080 ; 68 ; 2004)
II.2.
Jaringan Komputer Jaringan
komputer
(Computer
Network)
dapat
diartikan
sebagai
sekelompok komputer yang dihubungkan menggunakan media tertentu sehingga antar komputer dapat saling berhubungan untuk berbagai data, informasi, program aplikasi dan pernagkat keras, seperti printer, scanner, CD/DVD Drive, ataupun hardisk. ( Anonim ; 2013 :1 )
12
Jaringan komputer adalah sebuah kumpulan komputer, prinnter, dan peralatan lainnya yang saling terhubung. Informasi dan data bergerak melalui kabel-kabel sehingga memungkinkan pengguna jaringan komputer dapat saling bertukar dokumen dan data. ( Edy Victor Haryanto ; 2012 : 12)
II.2.1. Konsep Client Server Jaringan Client Server menghubungkan komputer server dengan komputer klien/workstation. Komputer server adalah komputer yang menyediakan fasilitas bagi komuter-komputer klien/workstation yang terhubung dalam jaringan. Sedangkan komputer adalah komputer yang menggunakan fasilitas yang disediakan oleh komputer server. Komputer server pada sebuah jaringan tipe client server disebut dengan dedicated server. Karena komputer yang digunakan hanya sebagian penyedia fasilitas untuk komputer klien/workstation. Komputer server
tidak
dapat
berperan
sebagai
komputer
klien/workstation.
(Anonim ; 2010 : 3) Keunggulan tipe jaringan client server adalah sebagai berikut : 1. Terdapat administrator jaringan yang mengelola sistem keamanan dan administrasi jaringan, sehingga sistem keamanan dan administrasi jaringan akan lebih terkontrol. 2. Komputer server difungsikan sebagai pusat data, komputer klien dapat mengakses data yang ada dari komputer klien manapun. Apabila terdapat komputer klien yang rusak, pengguna masih dapat mengakses data dari komputer klien yang lain.
13
3. Pengaksesan data lebih tinggi karena penyediaan dan pengelolaaan fasilitas jaringan dilakukan oleh komputer server. Dan komputer server tidak terbebani dengan tugas lain sebagai workstation. 4. Pada tipe jaringan Client Server, sistem backup data lebih baik, karena backup data dapat dilakukan terbpusat di komputer server. Apabila data pada komputer klien/workstation mengalami masalah atau kerusakan masih tersedia backup pada komputer server. Kelemahan tipe jaringan Client server adalah sebagai berikut : 1. Biaya mahal, karena membutuhkan komputer yang memiliki kemampuan yang difungsikan sebagai kompute rserver. 2. Kelancaran jaringan tergantung pada komputer server. Bila komputer server mengalami gangguan maka maka jaringan akan terganggu.
II.3.
Komunikasi Data Kata komunikasi merupakan suatu kata yang dapat diartikan sebagai cara
untuk menyampaikan atau menyebarluaskan data dan informasi, sedangkan kata informasi berarti berita, pikiran, pendapat dalam berbagai bentuk. Manusia dapat melakukan komunikasi dengan berbagai cara, berbicara secara langsung, berbisik, mengirim surat dan lain sebagainya. Dari berbagai cara komunikasi manusia ini masih terdapat banyak kekurangan dan kelemahan yaitu : 1. Jarak yang jauh (bahkan sampai menyeberangi lautan), 2. Waktu yang lama untuk menyampaikan pesan. 3. Biaya yang relatif mahal.
14
Kekurangan tersebut bisa diatasi seiring dengan perkembangan teknologi informasi. Dengan teknologi komunikasi sekarang ini, hanya dengan menekan beberapa tombol maka jarak dan waktu untuk melakukan komunikasi tidak lagi menjadi kendala yang berarti. Teknologi komunikasi terus dikembangkan dengan tujuan memudahkan manusia
dalam
melakukan
komunikasi.
Para
ahli
terdorong
untuk
mengembangkan teknik komunikasi jarak jauh yang lebih efisien dengan metode telekomunikasi yang memanfaatkan teknologi elektronika, yang dikenal dengan istilah teknik komunikasi data. Komunikasi data merupakan cara mengirimkan data menggunakan sistem transmisi elektronik dari satu komputer ke komputer lain atau dari satu komputer ke terminal tertentu. Sedangkan data itu sendiri merupakan sinyal elektromagnetik yang dibangkitkan oleh sumber data yang ditangkap dan dikirimkan ke terminal penerima. Ariyus(2008:3)
II.3.1. Tujuan Komunikasi Data Tujuan komunikasi data adalah mengirim data dalam jumlah besar dan waktu yang singkat dengan cara yang efisien dan ekonomis dari suatu tempat ke tempat lain tanpa ada kesalahan. (Edy Victor Hariyanto;2012:2) Komunikasi data memiliki keuntungan yang dapat diterapkan pada beberapa perangkat komputer, yaitu : 1. Memungkinkan penggunaan komputer atau terminal secara terpusat (sentralisasi)
ataupun
tersebar
menajemen dalam hal kontrol.
(desentralisasi)
sehingga
mendukung
15
2. Mempermudah kemungkinan pengolahan dan pengaturan data yang ada dalam berbagai macam sistem komputer. 3. Mengurangi waktu untuk pengolahan data. 4. Mendapatkan data langsung dari sumbernya (mempertinggi kehandalan). 5. Mempercepat penyebaran informasi.
II.4.
Tinjauan Umum Website Menurut Fatansyah dalam bukunya ”Basis Data” Secara terminologi,
”Website adalah kumpulan dari halaman-halaman situs, yang biasanya terangkum dalam sebuah domain atau subdomain, yang tempatnya berada di dalam World Wide Web (WWW) di Internet”. ”Sebuah web page adalah dokumen yang ditulis dalam format HTML (Hyper Text Markup Language), yang hampir selalu bisa diakses melalui HTTP, yaitu protokol yang menyampaikan informasi dari server website untuk ditampilkan kepada para pemakai melalui web browser. Semua publikasi dari website-website tersebut dapat membentuk sebuah jaringan informasi yang sangat besar”. Halaman-halaman dari website akan bisa diakses melalui sebuah URL yang biasa disebut homepage. URL ini mengatur halaman-halaman situs untuk menjadi sebuah hirarki, meskipun, hyperlink-hyperlink yang ada di halaman tersebut mengatur para pembaca dan memberitahu mereka sususan keseluruhan dan bagaimana arus informasi ini berjalan. Beberapa website membutuhkan subskripsi (data masukan) agar para user bisa mengakses sebagian atau keseluruhan isi website tersebut, contohnya ada
16
beberapa situs-situs bisnis, situs-situs e-mail gratisan, yang membutuhkan subskripsi agar kita bisa mengakses situs tersebut. “Website static adalah salah satu bentuk website yang isi didalam website tersebut tidak dimaksudkan untuk di update secara berkala, dan biasanya di maintain secara manual oleh beberapa orang yang menggunakan software editor”. Website dynamic adalah website yang secara berkala, informasi didalamnya berubah, atau website ini bisa berhubungan dengan user dengan berbagai macam cara atau metode (HTTP cookies atau Variabel Database, sejarah kunjungan, variabel sesi dan lain-lain) bisa juga dengan cara interaksi langsung menggunakan form dan pergerakan mouse. Ketika web server menerima permintaan dari user untuk memberikan halaman tertentu, maka halaman tersebut akan secara otomatis di ambil dari media penyimpanan sebagai respon dari permintaan yang diminta oleh user. Sebuah situs dapat menampilkan dialog yang sedang berlangsung diantara dua user, memantau perubahan situasi, atau menyediakan informasi yang berkaitan dengan sang user. Ada banyak jenis sistem software yang dapat dipakai untuk menggenerate Dynamic Web System dan Situs Dynamic, beberapa diantaranya adalah ColdFusion (CFM), Active Server Pages (ASP), Java Server Pages (JSP) dan PHP, bahasa program yang mampu untuk meng-generate Dynamic Web System dan situs dinamis.
17
Plugin tersedia untuk menambah menambah banyaknya feature dan kemampuan dari web browser, dimana plugin ini dipakai untuk membuka content yang biasanya berupa cuplikan dari gambar bergerak (active content) contohnya adalah Flash, Shockwave atau Applets yang ditulis dalam bahasa java. Dynamic HTML juga menyediakan untuk user supaya dia bisa secara interaktif dan realtime, meng-update di web page tersebut, halaman yang dirubah tidak perlu di load atau di reloaded agar perubahannya dapat dilihat, biasanya perubahan yang dilakukan mereka memakai DOM dan Javascript yang sudah tersedia pada semua web browser sekarang ini.
II.5.
Pemrograman PHP PHP (PHP Hypertext Prepocessor) adalah bahasa scripting server-side
bagi pemrograman web. Secara sederhana, PHP merupakan tool bagi pengembangan web dinamis. PHP sangat populer karena memiliki fungsi build-in lengkap, cepat, mudah dipelajari, dan bersifat gratis. Skrip PHP cukup disisipkan pada kode HTML agar dapat bekerja. PHP dapat berjalan di berbagai web server dan sistem operasi yang berbeda. Selain PHP, sebenarnya ada beberapa alternatif teknologi sejenis. Masingmasing teknologi memmiliki kelebihan dan kekurangan. Beberapa teknologi sejenis yang cukup populer diantaranya adalah : 1. Active Server Pages (ASP), ASP merupakan produk komersial yang dikembangkan microsoft. Teknologi ini menggunakan basis microsoft IIS (Internet Information Service). Saat ini microsoft juga menyempurnakan teknologi ini dengan projek ASP.NET. mahalnya biaya implementasi
18
ASP.NET menyebabkan teknologi ini masih kurang diminati di kalangan pengembang web. 2. Cold Fusion Markup Language (CFML), CFML merupakan produk komersial yang dikembangkan Macromedia. Teknologi ini menggunakan Cold Fusion Server. Secara historis, seperti halnya PHP, CFML adalah pengembangan Script PERL. CFML menggunakan metode tag base, seperti HTML. Bagi sebagian pengguna, metode ini dianggak memiliki kelebihan karena mudah digunakan. Namun bagi sebagian pengguna lainnya, metode tag base menjadi kendala tersendiri, karena sulit membedakan mana kode script server-side dan aman kode HTML. Selain itu, faktor biaya implementasi tentunya menjadi pertimbangan tersendiri. 3. Java Server Pages (JSP), JSP merupakan teknologi yang didukung oleh Sun Microsystems. Teknologi ini dikembangkan dari bahasa pemrograman Java, yagn dikenal dengan portabilitas dan kompatibilitasnya. JSP berkembang secara variatif, baik secara komersial maupun secara open source. Pengembangan JSP oleh berbagai kalangan berpedoman pada standar yang ditetapkan oleh Sun Microsystems, yaitu Java 2 Enterprise Edition (J2EE). Keanekaragaman versi JSP karena adanya perbedaan pengembangan menyebabkan implementasi JSP cukup membingungkan, terutama bagi kalangan yang ingin memulai mempelajarinya. Anonim, (2007 : 2)
19
II.5.1. Struktur Pemrograman PHP Struktur pengatur aliran program, mempunyai rangkain perintah yang harus ditulis untuk memenuhi beberapa keadaan, yaitu : 1. Mengulang suatu perintah jika suatu kondisi terpenuhi. 2. Melanjutkan sebuah pernyataan bila kondisi terpenuhi. 3. Memilih sebuah pilihan dari beberapa alternatif bila kondisi terpenuhi Struktur kendali terbagi menjadi dua jenis, yaitu struktur kendali percabangan (pengambilan keputusan) dan pengulangan (looping). 1. Percabangan Struktur kendali percabangan adalah struktur kendali yang memungkinkan pemilihan atas perintah yang akan dijalankan sesuai dengan kondisi tertentu. Contoh :
if(kondisi) { Pernyataan yang akan dijalankan bila kondisi bernilai besar }
2. Pengulangan Pengulangan digunakan untuk suatu perintah sebanyak yang diinginkan tanpa harus menulis ulang. Contoh :
for(nilai_awal; nilai_akhir; penambahan/pengurangan) { Pernyataan yang akan dijalankan }
20
II.6.
UML (Unified Modelling Language) Pemodelan (modeling) adalah proses merancang piranti lunak sebelum
melakukan pengkodean (coding). Model piranti lunak dapat dianalogikan seperti pembuatan blueprint pada pembangunan gedung. Membuat model dari sebuah sistem yang kompleks sangatlah penting karena kita tidak dapat memahami sistem semacam itu secara menyeluruh. Semakin komplek sebuah sistem, semakin penting pula penggunaan teknik pemodelan yang baik. Dengan menggunakan model, diharapkan pengembangan piranti lunak dapat memenuhi semua kebutuhan pengguna dengan lengkap dan tepat, termasuk faktor-faktor seperti scalability, robustness, security, dan sebagainya. Kesuksesan suatu pemodelan piranti lunak ditentukan oleh tiga unsur, yang kemudian terkenal dengan sebuan segitiga sukses (the triangle for success). Ketiga unsur tersebut adalah metode pemodelan (notation), proses (process) dan tool yang digunakan. Memahami notasi pemodelan tanpa mengetahui cara pemakaian yang sebenarnya (proses) akan membuat proyek gagal. Dan pemahaman terhadap metode pemodelan dan proses
disempurnakan
dengan
penggunaan
tool
(Yuni Sugiarti ; S.T, M.Kom ; 2013 : 33)
Gambar II.1. The Triangle For Success Sumber : Yuni Sugiarti, S.T, M.Kom ( 2013 : 33)
yang
tepat.
21
Unified Modelling Language (UML) adalah sebuah "bahasa" yg telah menjadi
standar
dalam
industri
untuk
visualisasi,
merancang
dan
mendokumentasikan sistem piranti lunak. UML menawarkan sebuah standar untuk merancang model sebuah sistem. Dengan menggunakan UML kita dapat membuat model untuk semua jenis aplikasi piranti lunak, dimana aplikasi tersebut dapat berjalan pada piranti keras, sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemrograman apapun. Tetapi karena UML juga menggunakan class dan operation dalam konsep dasarnya, maka ia lebih cocok untuk penulisan piranti lunak dalam bahasa-bahasa berorientasi objek seperti C++, Java, C# atau VB.NET. Walaupun demikian, UML tetap dapat digunakan untuk modeling aplikasi prosedural dalam VB atau C. Seperti bahasa-bahasa lainnya, UML mendefinisikan notasi dan syntax/semantik. Notasi UML merupakan sekumpulan bentuk khusus untuk menggambarkan berbagai diagram piranti lunak. Setiap bentuk memiliki makna tertentu, dan UML syntax mendefinisikan bagaimana bentuk-bentuk tersebut dapat dikombinasikan. Notasi UML terutama diturunkan dari 3 notasi yang telah ada sebelumnya: Grady Booch OOD (Object-Oriented Design), Jim Rumbaugh OMT (Object Modeling Technique), dan Ivar Jacobson OOSE (Object-Oriented Software Engineering).
Sejarah UML sendiri cukup
panjang. Sampai era tahun 1990 seperti kita ketahui puluhan metodologi pemodelan berorientasi objek telah bermunculan di dunia. Diantaranya adalah: metodologi booch, metodologi coad, metodologi OOSE, metodologi OMT, metodologi shlaer-mellor, metodologi wirfs-brock, dsb. Masa itu terkenal dengan masa perang metodologi (method war) dalam pendesainan berorientasi objek.
22
Masing-masing metodologi membawa notasi sendiri-sendiri, yang mengakibatkan timbul masalah baru apabila kita bekerjasama dengan group/perusahaan lain yang menggunakan metodologi yang berlainan. Dimulai pada bulan Oktober 1994 Booch, Rumbaugh dan Jacobson, yang merupakan tiga tokoh yang boleh dikata metodologinya banyak
digunakan
mempelopori usaha
untuk
penyatuan
metodologi pendesainan berorientasi objek. Pada tahun 1995 direlease draft pertama dari UML (versi 0.8). Sejak tahun 1996 pengembangan tersebut dikoordinasikan oleh Object Management Group (OMG – http://www.omg.org). Tahun 1997 UML versi 1.1 muncul, dan saat ini versi terbaru adalah versi 1.5 yang dirilis bulan Maret 2003. Booch, Rumbaugh dan Jacobson menyusun tiga buku serial tentang UML pada tahun 1999. Sejak saat itulah UML telah menjelma menjadi standar bahasa pemodelan untuk aplikasi berorientasi objek.
Gambar II.2. Metodelogi Pemodelan Berorientasi Objek Sumber : Yuni Sugiarti, S.T, M.Kom ( 2013 : 33)
23
II.6.1. Konsep Dasar UML Dari berbagai penjelasan rumit yang terdapat di dokumen dan buku-buku UML. Sebenarnya konsepsi dasar UML bisa kita rangkumkan dalam beberapa diagram yaitu : 1. Use case diagram 2. Class diagram 3. Statechart diagram 4. Activity diagram 5. Sequence diagram 6. Collaboration diagram 7. Component diagram 8. Deployment diagram Dalam pembuatan skripsi ini penulis menggunakan diagram Use Case yang terdapat di dalam UML. Adapun maksud dari Use Case Diagram diterangkan dibawah ini. 1.
Use Case Diagram Use case diagram menggambarkan fungsionalitas yang diharapkan dari
sebuah sistem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”. Sebuah use case merepresentasikan sebuah interaksi antara aktor dengan sistem. Use case merupakan sebuah pekerjaan tertentu, misalnya login ke sistem, meng-create sebuah daftar belanja, dan sebagainya. Seorang/sebuah aktor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan tertentu. Use case diagram dapat sangat
24
membantu
bila
kita
sedang
menyusun
requirement
sebuah
sistem,
mengkomunikasikan rancangan dengan klien, dan merancang test case untuk semua feature yang ada pada sistem. Sebuah use case dapat meng-include fungsionalitas use case lain sebagai bagian dari proses dalam dirinya. Secara umum diasumsikan bahwa use case yang di-include akan dipanggil setiap kali use case yang meng-include dieksekusi secara normal. Sebuah use case dapat diinclude oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang common. Sebuah use case juga dapat meng-extend use case lain dengan behaviour-nya sendiri. Sementara hubungan generalisasi antar use case menunjukkan bahwa use case yang satu merupakan spesialisasi dari yang lain. (Yuni Sugiarti ; S.T, M.Kom ; 2013 : 41) Tabel II.1. Simbol Use Case Diagram Simbol Use Case
Nama UseCase
Deskripsi Fungsionalitas yang disediakan sistem sebagai unit-unit yang saling bertukar pesan antar unit atau aktor ; biasanya dinyatakan dengan menggunakan kata kerja diawal frase nama use case
UseCase Aktor
Nama Aktor Asosiasi/Association
Orang, proses, atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat diluar sistem informasi yang akan dibuat itu sendiri, jadi walaupun simbol dari aktor adalah gambar orang, tapi aktor belum tentu merupakan orang ; biasanya dinyatakan menggunakan kata benda diawal frase nama aktor. Komunikasi antar aktor dan usecase yang berpartisipasi pada usecase atau usecase memiliki interaksi dengan aktor.
25
Extend
<<extend>>
Relasi usecase tambahan kesebuah usecase dimana usecase yang ditambahkan dapat berdiri sendiri walau tanpa usecase tambahan itu mirip dengan prinsip inheritance pada program berorientasi objek; biasanya usecase tambahan memiliki nama depan dengan usecase yang ditambahkan, arah panah menunjuk pada usecase yang dituju, Contoh:
Input data dosen
Include <
>
Update data dosen
Relasi usecase tambahan kesebuah usecase dimana usecase yang ditambahkan memerlukan usecase ini untuk menjalankan fungsinya atau sebagai syarat dijalankan usecase ini. Ada dua sudut pandang yang cukup besar mengenai include diusecase include berarti usecase yang di tambahkan akan selalu dipanggil saat usecase tambahan dijalankan, contoh:
Pendaftaran
< > Kartu Anggota
Sumber : Yuni Sugiarti, S.T, M.Kom ( 2013 : 42) 2. Class Diagram Diagram kelas atau class diagram menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang akan dibuat untuk membangun sistem. Kelas memiliki apa yang disebut atribut dan metode atau operasi. Berikut adalah simbolsimbol pada diagram kelas :
26
Tabel II.2. Class Diagram Simbol Package
Deskripsi Package merupakan sebuah bungkusan dari satu atau lebih kelas
package
Operasi
Kelas pada struktur sistem
Nama Kelas +Attribute 1 +Attribute2
Operation 1( ) Antar muka / interface
Sama dengan konsep interface dalam pemograman berorientasi objek
Interface
Asosiasi 1
1..
Asosiasi berarah /Directed Asosiasi
Relasi antar kelas dan makna umum , asosiasi biasanya juga disertai dengan multiplicity Relasi antar kelas dengan makna kelas yang satu di gunakan oleh kelas yang lain asosiasi biasanya juga disertai dengan multiplicity Relasi antar kelas dengan makna generalisasi –
Generalisasi
spesialisasi (umum-khusus) Ketergantungan/defedency
Relasi antar kelas dengan makna ketergantungan antar kelas
Agregasi
Relasi antar kelas dengan makna semua bagian (whole part)
Sumber : Yuni Sugiarti, S.T, M.Kom ( 2013 : 59)
27
Main
TPustaka
+main() +uiLogin() +uiMenu() +uiMengelolaPustaka() +uiMengelolaAnggota() +uiMengelolaPeminjaman() 1
+id +judul +jenis +jumlah +tahun +pengarang MengelolaPustaka
1 1
1
+cariPustakaById() +cariPustakaByJudul() +cariPustakaByJenis() +cariPustakaByPengarang() +memasukkanPustaka() +ubahPustaka() +hapusPustaka()
1 1
1
1..* 1
1
Login
+setId() +getId() +setJudul() +getJudul() +setJenis() +getJenis() +setJumlah() +getJumlah() +setTahun() +getTahun() +setPengarang() +getPengarang() 1..*
+validasiLogin() +logout()
1 1
1..* KoneksiBasisData
TAnggota
1 1
1..*
1
+id +nama +alamat +telepon
MengelolaAnggota +cariAnggotaByNama() +cariAnggotaById() +memasukkanAnggota() +mengubahAnggota() +menghapusAnggota()
1
+host +database +username +password +membukaKoneksi() +eksekusiQuerySelect() +eksekusiQueryUpdate() +tutupKoneksi()
+setId() +getId() +setNama() +getNama() +setAlamat() +getAlamat() 1..*+setTelepon() +getTelepon()
1..*
TPeminjaman 1..* 1
+id +tgl_peminjaman +id_anggota +id_pustaka +tgl_kembali
1 11
MengelolaPeminjaman +memasukkanPeminjaman() +mencariPeminjaman() +ubahPeminjaman()
1 1..*
+setId() +getId() +setTglPeminjaman() +getTglPeminjaman() +setIdAnggota() +getIdAnggota() +setIdPustaka() +getIdPustaka() +setTglKembali() +getTglKembali()
Gambar II.3. Contoh Class Diagram Sumber : Yuni Sugiarti, S.T, M.Kom ( 2013 : 63) 3. Sequence Diagram Diagram Sequence menggambarkan kelakuan/prilaku objek pada use case dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan
28
diterima antar objek. Oleh karena itu untuk menggambarkan diagram sequence maka harus diketahui objek-objek yang terlibat dalam sebuah use case beserta metode-metode yang dimiliki kelas yang diinstansiasi menjadi objek itu. Banyaknya diagram sequence yang harus digambar adalah sebanyak pendefinisian use case yang memiliki proses sendiri atau yang penting semua use case yang telah didefinisikan interaksi jalannya pesan sudah dicakup pada diagram sequence sehingga semakin banyak use case yang didefinisikan maka diagram sequence yang harus dibuat juga semakin banyak. Tabel II.3. Simbol Sequence Diagram Simbol
Nama Object
; Object1
Actor
Lifeline
Activation
Message
Message
Keterangan Object merupakan instance dari sebuah class dan di tuliskan tersusun secara horizontal digambarkan sebagai sebuah class (kotak) dengan nama obyek didalamnya yang diawali dengan sebuah titik koma Actor juga dapat berkomunikasi dengan object , maka actor juga dapat di urtutkan sebagai kolom. Simbol actor sama dengan simbol pada actor Use case Diagram Lifeline mengindikasikan keberadaan sebuah object dalam basis waktu.notasi untuk lifeline adalah garis putus-putus vertikal yang ditarik dari sebuah object. Activation dinotasikan sebagai sebuah kotak segi empat yang digambar pada sebuah lifeline activation mengindikasikan sebuah obyek yang akan melakukan sebuah aksi. Message digambarkan dengan anak panah horizontal antara activation. Message mengindikasikan komunikasi antar objectobject
Sumber : Yuni Sugiarti, S.T, M.Kom ( 2013 : 63)
29
Costomer
Login Screen
Security Manager
Users
Login
Validate User Check Use Details [ User Details ] Validate
1 : Use Case Model >
Gambar II.4. Contoh Sequence Diagram Sumber : Yuni Sugiarti, S.T, M.Kom ( 2013 : 63) 4. Activity Diagram Activity diagram menggambarkan berbagai alir aktivitas dalam 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 merupakan state diagram khusus, di mana sebagian besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal processing). Oleh karena itu activity diagram tidak menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum.
30
Sebuah aktivitas dapat direalisasikan oleh satu use case atau lebih. Aktivitas
menggambarkan
proses
yang
berjalan,
sementara
use
case
menggambarkan bagaimana aktor menggunakan sistem untuk melakukan aktivitas. Sama seperti state, standar UML menggunakan segiempat dengan sudut membulat
untuk
menggambarkan
aktivitas.
Decision
digunakan
untuk
menggambarkan behaviour pada kondisi tertentu. Untuk mengilustrasikan prosesproses paralel (fork dan join) digunakan titik sinkronisasi yang dapat berupa titik, garis horizontal atau vertikal. Tabel II.4. Simbol Activity Diagram Simbol
Keterangan Titik awal
Titik Akhir Activity Pilihan untuk mengambil keputusan Fork; digunakan untuk menunjukkan kegiatan yang dilakukan secara paralel atau untuk menggabungkan dua kegiatan paralel menjadi satu.
Rake; menunujkan adanya dekomposisi Tanda waktu Tanda pengiriman Tanda penerimaan Aliran akhir (flow final) Sumber : Yuni Sugiarti, S.T, M.Kom ( 2013 : 75)
31
Activity diagram dapat dibagi menjadi beberapa object swimlane untuk menggambarkan objek mana yang bertanggung jawab untuk aktivitas tertentu. Find Beverage
[no coffee]
decision
Start
Put Coffee In Filter
Add Water to Reservoir
Get Cups Get Can of Cola
Put Filter In Machine
[no cola]
Turn on Machine
Brew Coffee
Pour Coffee
Drink Beverage End
Gambar II.5. Activity Diagram Sumber : Yuni Sugiarti, S.T, M.Kom ( 2013 : 76)