2006-2-01268-if-bab 2

Download 2006-2-01268-IF-Bab 2

If you can't read please download the document

Upload: firman-syah

Post on 15-Nov-2015

222 views

Category:

Documents


4 download

DESCRIPTION

kriptografi

TRANSCRIPT

Microsoft Word - BAB II.doc

BAB 2

LANDASAN TEORI

2.1.Kriptografi

2.1.1 Pengertian Kriptografi

Kriptografi terdiri dari dua kata yang berasal dari bahasa Yunani, yaitu: kryptos dan graphia. Arti kata kryptos adalah sesuatu yang disembunyikan, tidak dikenal, terselubung, rahasia atau misterius. Sedangkan graphia berarti tulisan. Jadi, kriptografi dapat dijelaskan secara harfiah sebagai tulisan rahasia atau terkadang disebut sebagai seni dan ilmu tulisan rahasia. Menurut buku yang berjudul Applied Cryptography karangan Bruce Schneider (John Wiley & Sons,1996), kriptografi merupakan suatu seni atau ilmu untuk menjaga kerahasiaan dari sebuah tulisan agar tetap aman, tanpa diketahui pihak yang tidak berkepentingan. Pakar ilmu kriptografi dikenal sebagai kriptografer. Selain kriptografi, ada kripanalisis yang merupakan kebalikan dari proses kriptografi dalam kriptologi. Kriptologi ini termasuk salah satu cabang ilmu algoritma di bidang matematika. Para pelaku kriptologi dikenal sebagai kriptologis. Pada kripanalisis, penganalisa dan pemecah kode ciphertext menjadi plaintext tanpa melaui proses deskripsi yang wajar disebut kripanalis. Algoritma kriptografi dan seluruh kemungkinan ciphertext, plaintext, dan key(kunci-kunci lainnya) disebut kriptosistem. Plaintext adalah pesan/data asli yang dapat dibaca. Ciphertext adalah pesan/data yang acak, yang sulit diartikan. Key adalah nilai yang digunakan untuk mengubah plaintext menjadi ciphertext.

6

Dalam ilmu kriptografi terdapat aspek-aspek keamanan, meliputi : authority(pemalsuan), data integrity(keutuhan data), authentication(autentikasi), non- repudiation(tidak ada penyangkalan). Sebenarnya kriptografi sudah digunakan sejak zaman Romawi oleh Julius Caesar dalam keperluan militernya. Pada saat perang dunia ke-II, Jerman dan Jepang juga menggunakan algoritma kriptografi dalam berkomunikasi untuk kebutuhan militernya, namun kunci dari Enigma(produk kriptografi Jerman) dan Purple(produk kriptografi Jepang) dapat dipecahkan oleh sekutu, sehingga dengan mudah sekutu dapat mengetahui langkah-langkah pertahanan dan perlawanan mereka, dan segera menyusun cara mengantisipasi. Kriptografi dahulu hanya menjadi bidang khusus yang diperlajari didalam kemiliteran.

2.1.2 Cryptanalysis (Kripanalisis)

Ilmu ini digunakan untuk mendapatkan plaintext tanpa harus mengetahui kunci secara wajar (proses deskripsi). Pendapat mengenai kripanalisis ini pertama kali dinyatakan sekitar abad ke-19 oleh Dutchman A Kerckhoffs bahwa kerahasiaannya berada pada kunci, dan analisis sandi memiliki rincian lengkap mengenai algoritma kriptografi dan implementasinya. Menurut Lars Knudsen, ada beberapa jenis penggolongan pemecahan algoritmanya, yaitu :1) Total break(pemecahan total) yang berhasil menemukan key(kunci) yang digunakan untuk melindungi data dalam rumus : Dk(C) = PD=deskripsiC=ciphertext

K=keyP=plaintext

2) Global deduction(deduksi global) dengan mendapatkan algoritma alternatif yang ekuivalen dengan rumus diatas, tanpa harus mengetahui kunci

3) Instance/ Local deduction(deduksi lokal) dengan mendapatkan plaintext atau

ciphertext yang disadap

4) Information deduction(deduksi informasi) memperoleh informasi tentang kunci atau plaintextnya.Cara-cara untuk mengukur kompleksitas serangan :

1. Data complexity(kompleksitas data), jika jumlah data yang digunakan untuk serangan hanya sedikit, kualitas algoritma yang digunakan kurang baik2. Processing complexity(kompleksitas proses), semakin cepat waktu yang tersedia untuk melakukan serangan yang sering disebut faktor kerja, semakin buruk kualitas algoritma yang digunakan3. Storage requirements(kebutuhan penyimpanan) mengukur jumlah memori yang dibutuhkan untuk melakukan serangan.

2.1.3 Serangan Keamanan Kriptografi

Menurut Stallings (1995,p5) ada beberapa jenis serangan terhadap keamanan yang ada dalam suatu sistem komputer,dan dapat dikelompokkan berdasarkan fungsi dari sistem komputer. Jika dilihat secara garis besar, ada informasi yang berasal dari suatu sumber yang kemudian akan menuju ke suatu titik tujuan.

Gambar 2.1 Aliran Normal

Gambar diatas menunjukkan aliran normal dari pengiriman pesan, jika tidak terjadi serangan diantaranya pengirim dan penerima.Secara umum, serangan keamanan dibagi menjadi empat kategori, yakni :

1) Interupsi merupakan aset yang dapat menghancurkan atau merusak, sehingga sudah tidak dapat digunakan kembali. Interupsi ini dapat menyerang bagian availability(kemampuan). Contohnya kerusakan pada hard disk atau terjadinyakelumpuhan sistem manajemen file.

Gambar 2.2 Interupsi

2) Intersepsi, yaitu pihak yang sebenarnya tidak berhak memiliki hak akses.Serangan ini dapat dilakukan oleh komputer maupun manusia dan dapat mengacaukan kerahasiaan suatu aset., misalnya hacker.I

Gambar 2.3 Intersepsi

3) Modifikasi adalah pihak ketiga yang tidak mempunyai hak untuk mengakses suatu data, tetapi juga merusak data tersebut. Ini merupakan serangan pada keutuhan data, seperti mengubah isi file atau data, sehingga akan menyebabkan

tampilan yang berbeda dan memodifikasi isi atau pesan yang dikirimkan melalui

jaringan.

Gambar 2.4 Modifikasi

4) Pemalsuan dengan penyisipan objek tiruan ke dalam sistem yang telah dibangun.Serangan ini berpengaruh pada autentikasi, seperti pemalsuan pesan dalam sebuah jaringan dengan cara menambah record-record ke dalam file.

Gambar 2.5 Pemalsuan

Beberapa macam serangan yang dapat dilakukan oleh kripanalis/pemecah kode dengan asumsi algoritma enkripsinya telah dikenal secara luas :1) Ciphertext only attack, yang didapatkan dengan serangan jenis ini hanyalah beberapa pesan chipertext yang semuanya dienkrip dengan algoritma yang sama. Pemecah kode dapat mencari kuncinya atau mendapatkan plaintext. Dapat dirumuskan dengan :Diketahui : C1 = Ek(P1), C2 = Ek(P2), C3 = Ek(P3), ...... Dicari: K dan P1, P2, P3, .......

2) Known-plaintext attack berguna untuk mendapatkan beberapa plaintext dan ciphertextnya. Jika pemecah kode dapat menemukan kunci, maka ciphertext yang telah dienkrip dengan algoritma yang sama, dapat diketahui plaintextnya. Diketahui: P1, P2, P3, .... dan C1, C2, C3, .....Dicari : K atau P lainnya

3) Chosen-plaintext attack, menggunakan serangan ini, kripanalis dapat mengetahui beberapa plaintext dan ciphertext, dan bebas memilih blok plaintext yang akan dienkrip dengan algoritma dan kunci yang sama.Diketahui: P1, P2, P3, .... dan C1, C2, C3, ..... dan kripanalis dapat memilih

P1, P2, P3

Dicari : K atau P lainnya

4) Adaptive-chosen-plaintext attack, serangan ini hampir sama dengan jenis chosen- plaintext attack, tetapi dengan menggunakan adaptive-chosen-plaintext attack kripanalis dapat memilih blok plaintext yang lebih kecil untuk dienkrip, memodifikasi pilihannya berdasarkan hasil enkripsi sebelumnya.5) Chosen- ciphertext attack membuat kripanalis untuk dapat memilih ciphertext yang berbeda untuk didekrip dan mempunyai akses terhadap plaintext yang dienkrip.Diketahui: C1,P1 = Dk(C1), C2,P2 = Dk(C2), .... Ci,Pi = Dk(Ci) Dicari : K6) Chosen- text attack merupakan gabungan dari chosen-plaintext attack dan chosen- ciphertext attack. Dapat digunakan terhadap algoritma kunci publik, namun lebih sering digunakan untuk algoritma simetri.

2.1.3.1 Serangan aktif

Serangan ini dapat melibatkan perubahan dari isi pesan yang disampaikan. Ada empat kategori yang termasuk serangan aktif, yakni :1. masquerade(penyamaran) terjadi ketika satu entity berpura-pura menjadi entity lain, yang memiliki hak akses. Biasanya dilakukan rangkaian autentikasi yang sah oleh pihak yang berhak, yang kemudian ditangkap, dipelajari, dan dipakai kembali oleh penyamar.2. replay(pengiriman ulang) memerlukan keterlibatan dari pengangkapan pasif suatu data dan transmisi yang mengakibatkan dampak yang tidak terotorisasi.3. modification of message(modifikasi pesan) dapat berupa penggantian sebagian isi pesan, penundaan penerimaan pesan, ataupun perubahan pada susunan urutan pesan.4. denial of service(penolakan pelayanan) meliputi perintangan terhadap penggunaan atau manajemen fasilitas komunikasi, maupun gangguan dalam jaringan, dengan mendisfungsikan jaringan atau memenuhi kapasitas ukuran pesan sampai berlebihan, sehingga menurunkan kinerja dari jaringan tersebut.Untuk dapat mendeteksi, memulihkan kerusakan, dan mengatasi serangan aktif, diperlukan perlindungan fisik terhadap seluruh fasilitas komunikasi dan jalur- jalurnya setiap waktu.

2.1.3.2 Serangan pasif

Pencurian dengar atau pemantauan transmisi termasuk dalam serangan pasif. Serangan pasif terdiri dari dua jenis, yaitu: analisa jalur dan penyingkapan isi pesan. Tujuan dari serangan ini adalah perolehan informasi yang ditransmisikan. Penyingkapan

isi pesan meliputi percakapan melalui telepon, pengiriman pesan melalui email, pertukaran file. Oleh karena itu, diperlukan suatu sistem yang dapat mencegah dan mengurangi resiko, agar hanya pihak yang berhak yang dapat mengetahui isi dari pesan yang disampaikan. Jika dibandingkan dengan serangan aktif, serangan pasif lebih sulit untuk dideteksi, tetapi masih ada cara yang dapat dilakukan untuk menggagalkannya dan apabila diserang, tidak banyak pengaruh pada isi pesan.

2.2 Algoritma Kriptografi Klasik dan Modern

Algoritma kriptografi terdiri dari dua jenis,yaitu algoritma kriptografi klasik dan modern.Algoritma kriptografi modern berhasil merahasiakan key(kunci) lebih baik daripada algoritma terbatas, dengan hanya menyembunyikan kunci, tanpa merahasiakan algoritma yang digunakan, yang sering disebut dengan password. Keamanan enkripsi hanya terletak pada kunci dan tidak tergantung pada kemungkinan algoritmanya dikenali. Sistem seperti inilah yang ada dalam algoritma DES dan RSA. Interval kemungkinan nilai kunci yang ada disebut keyspace.

2.2.1 Algoritma Kriptografi Klasik

Di dalam algoritma klasik, ada dua macam teknik yang biasa digunakan, yaitu :

1) Teknik Substitusi

Teknik substitusi adalah teknik mengubah setiap karakter yang ada dalam plaintext dengan karakter lain, misalnya : monoalfabet(satu karakter ciphertext menggantikan satu karakter plaintext), polialfabet(satu karakter ciphertext menggantikan lebih dari satu karakter plaintext), monograf/unilateral(satu macam enkripsi dilakukan terhadap satu karakter plaintext), dan

poligraf/multilateral(satu macam enkripsi dilakukan terhadap lebih dari satu karakter plaintext). Jenis-jenis substitusi yang dikenal hingga saat ini adalah substitusi deret campuran kata kunci, substitusi monome-dinome-trinome, substitusi multilateral varian, substitusi digrafik, substitusi persegi empat standar, substitusi kode playfair, substitusi polialfabet periodik, dan enigma.2) Teknik Transposisi/ Permutasi

Di dalam teknik transposisi, hanya dilakukan permutasi atau perpindahan karakter. Namun biasanya dilakukan secara berulang-ulang, baik dengan kunci yang sama maupun kunci yang berbeda untuk setiap kali permutasi. Dan cara untuk memasukkan huruf plaintext dalam perpindahannya, dapat menggunakan empat macam pola, antara lain : pola Zig-zag, pola segitiga, pola spiral dan pola diagonal.Setelah mengalami beberapa perkembangan, dalam penjelasan dari Agen FBI Rusia Haynen pada tahun 1957, muncul suatu kode rahasia yang rumusannya merupakan penggabungan dari kedua teknik diatas , dikenal dengan nama kode rahasia VIC. Penggunaan sistem campuran ini dapat dilakukan tanpa penggunaan komputer. VIC memerlukan minimum 4kunci dan 3kali enkripsi. Sedangkan langkah-langkahnya diuraikan dengan substitusi, dilanjutkan transposisi dengan lebar baris seragam, dan terakhir teknik transposisi dengan lebar baris bervariasi.

2.2.2 Algoritma Kriptografi Modern

Algoritma kriptografi modern memerlukan pengoperasian komputer dalam penggunaannya. Berdasarkan jenis kuncinya, dikelompokkan menjadi : algoritma Simetri(konvensional)dan algoritma Asimetri atau algoritma public key(kunci publik).

2.2.2.1 Algoritma Simetri

Adalah algoritma yang sama digunakan dalam proses enkripsi maupun deskripsinya.

Gambar 2.6 Proses Enkripsi dan Dekripsi

Keamanan algoritma ini tergantung pada kesepakatan antara pengirim dan penerima dalam menyetujui kunci tertentu yang akan digunakan untuk berkomunikasi agar tetap rahasia. Karena apabila salah satunya membocorkan kunci tersebut, maka pihak yang tidak berkepentingan juga dapat mengetahui data itu, bahkan mengenkrip atau mendekrip seluruh isi pesan. Beberapa algoritma yang termasuk jenis ini adalah OTP, DES,RC2, RC4, RC5, RC6, IDEA, FEAL, SAFER, LOKI, CAST, GOST, A5, Twofish, Magenta, Blowfish, Kasumi, Rijndael(AES), dan lain-lain. Algoritma konvensional sendiri terdiri dari dua macam, yaitu: yang beroperasi pada plaintext yang berupa satu bit tunggal dalam satu waktu, dikenal sebagai algoritma aliran atau yang beroperasi pada plaintext dalam bit-bit yang dikelompokkan.Algoritma simetri terbagi menjadi dua jenis, yaitu block chipher dan stream cipher.

Block chipher adalah algoritma yang masukan dan keluarannya berupa satu buah blok yang terdiri dari 64 bit atau 128 bit. Jenis algoritma Data Encyption Standard(DES),

Advanced Encryption Standard(AES) dan International Data Encryption Algorithm(IDEA) tergolong sebagai algoritma simetri dengan block chipher. Terdapat empat jenis mode yang paling sering digunakan dalam enkripsi dalam hal memudahkan dan mengamankan cara penyandian, yakni :1. Mode Electronic Code Book(ECB) yang mengenkripsi setiap blok plaintext

menjadi satu blok ciphertext tanpa mempengaruhi blok pesan yang lain.

2. Mode Cipher Block Chaining(CBC) yang mengenkripsi plaintext yang sama menjadi ciphertext yang berbeda, karena blok ciphertext ini akan berhubungan dengan plaintextnya dan juga dengan blok ciphertext yang sebelumnya.3. Mode Cipher Feed Back(CFB) dengan mengenkripsi aliran ciphertext.

Ciphertext yang sebelumnya digunakan sebagai masukan dari algoritma enkripsi untuk menghasilkan keluaran yang acak. Keistimewaan dari mode ini dapat menghasilkan ciphertext yang panjangnya sama persis dengan plaintextnya. Tetapi ketergantungan dari perambatan kesalahannya cukup mengkhawatirkan, karena jika ada satu blok ciphertext yang mengalalmi keslahan, maka akan mempengaruhi blok-blok berikutnya.4. Mode Output Feed Back(OFB) tidak mengalirkan kesalahan. Jika ada satu bit yang mengalami kesalahan pada ciphertext, hanya akan mempengaruhi satu bit plaintext dari ciphertext yang salah, pada saat proses pembalikan kembali ke dalam plaintext (proses deskripsi). Biasanya digunakan untuk sistem analog yang didigitasikan, seperti : suara atau video.Stream cipher adalah ciphertext yang didapatkan dari hasil XOR setiap bit plaintext

dengan setiap bit kuncinya. Yang tergolong algoritma kriptografi simetri dengan

stream cipher, antara lain: One Time Pad(OTP), algoritma A5, algoritma RC4 dengan sistem keamanan dan rancangan masing-masing.

2.2.2.2 Algoritma Asimetri

Algoritma yang dirancang sedemikian rupa, sehingga kunci yang digunakan untuk enkripsi berbeda dengan kunci yang digunakan untuk mendeskripsi. Kunci enkripsinya dibuat publik, disebarluaskan, hingga seluruh pihak dapat mengetahui kunci tersebut. Namun, hanya pembaca yang dituju yang memiliki private key(kunci privat adalah pasangan dari kunci publik) yang dapat mendeskripsikan pesan dalam bentuk ciphertext yang diterimanya. Jenis algoritma yang termasuk algoritma asimetri adalah LUC, Digital Signature Algorithm(DSA) yang merupakan bagian dari standar tanda tangan digital, RSA yang disingkat dari nama para penemunya Ron Rivest, Adi Shamir, dan Loenard Adleman, Elliptic Curve Cryptography(ECC) yang merupakan algoritma alternatif dari RSA, EI, Diffie-Hellman(DH) yang hanya dapat digunakan untuk algoritma dalam melakukan pertukaran kunci,dan tidak dapat diimplementasikan dalam proses enkripsi, deskripsi maupun untuk tanda tangan digital, serta Quantum yang ditemukan pada tahun 1984 oleh Bennett dan Brassard yang mengandalkan pola sifat fisika cahaya.

2.3 Algoritma Rijndael sebagai AES

Data Encryption Standard(DES) merupakan algoritma yang teraman di dunia selama puluhan tahun, namun masih memiliki kekurangan yaitu pada panjan bit dari DES yang hanya 56 bit, sehingga dianggap terlalu pendek. Karena didalam algoritma kriptografi modern dengan penggunaan komputer yang sangat intensif, panjang ukuran

bit yang digunakan sebagai kunci sangat berpengaruh. Untuk mengatasi hal itu, maka NIST mempersiapkan algoritma pengganti DES, yang disebut Advanced Encryption Standard(AES). Kontes terbuka untuk mendapatkan AES dimulai tahun 1997 dengan jumlah peserta sebanyak 21 tim. Pada seleksi tahap1, enam algoritma gugur, karena dinilai tidak sesuai kriteria. Seleksi tahap 2 menggugurkan 10 dari 15 algoritma lainnya yang dianggap kurang aman ataupun kurang efisien untuk diimplementasikan. Setelah terpilih 5 kandidat, akhirnya pada tahun 2000 terpilih sebuah algoritma AES yang dikenal juga dengan nama Rijndael, sesuai dengan nama penciptanya Dr.Vincent Rijmen dan Dr. Joan Daemen. Alasan terpilihnya Rijndael adalah karena algoritma tersebut memiliki keseimbangan antara keamanan dan fleksibilitas dalam berbagai platform baik sofware maupun hardware. Selain itu, kesederhanaan dari rancangan algoritma ini membuatnya memakan waktu yang lebih singkat, bila dibandingkan dengan kandidat-kandidat pesaingnya. Kriteria dari AES sendiri adalah sebagai berikut :1. Algoritma dipublikasikan secara meluas untuk memeriksa tingkat keamanannya

2. Algoritma harus merupakan block chipher

3. Diharuskan untuk dapat diimplementasikan dalam sofware dan hardware secara cepat4. Masukan berupa blok dengan ukuran sepanjang 128 bit

5. Kunci yang digunakan fleksibel dengan panjang 128 bit, 192 bit dan 256 bit

6. Algoritma harus mencakup fungsi hash(fungsi satu arah) yang memiliki kemampuan mengkompresi dan hasil kompresinya tidak dapat dikembalikan ke asalnya7. Dapat mengenkrip data yang berukuran 32 bit atau 64 bit, yang memungkinkan untuk mengenkrip aliran video dan audio secara real time

8. Dapat dimasukkan ke dalam smart card dengan CPU 8 bit

Disesuaikan dengan fleksibilitas panjang ukuran kunci yang diinginkan, Rijndael

menyusun kombinasi berikut untuk Kunci-Blok-Ronde :

Panjang kunci

Nk wordsUkuran Blok

Nb wordsRonde (rounds)

NrAES 128 bit4410AES 192 bit6412AES - 256 bit8414Tabel 2.1 Kombinasi panjang kunci, ukuran block dan jumalah putaran

Operasi AES dilakukan pada array 2dimensi yang disebut sebagai state, dengan panjang masing-masing state adalah 4 baris byte.

2.3.1 Enkripsi

Dalam enkripsi akan dilakukan operasi-operasi berikut untuk setiap ronde:

1. Transformasi SubBytes() merupakan operasi substitusi non-linier pada tiap-tiap byte dalam state dengan menggunakan tabel substitusi yang dinamakan S-box (kotak S).2. Transformasi ShiftRows() menggeser dengan cara memutar byte-byte pada baris

1, 2, dan 3 dari state dengan jumlah pergeseran yang bervariasi

3. Transformasi MixColumn() adalah perkalian terhadap matriks konstan yang dioperasikan pada kolom-kolom dalam state.4. Transformasi AddRoundKey() dengan cara menambahkan kunci ronde ke state

dalam operasi XOR.

Pada perputaran terakhir, transformasi MixColumn() tidak digunakan.

Apabila kunci yang diperlukan melebihi kapasitas jumlah yang tersedia, dalam hal ini hanya 128 bit sampai dengan 256 bit, dapat dilakukan ekspansi kunci untuk memenuhi kebutuhan subkey hingga ribuan bit melalui sebuah proses yang dinamakan key schedule.

2.3.2 Deskripsi

Dalam enkripsi akan dilakukan operasi-operasi berikut untuk setiap ronde:

1. Transformasi Inverse SubBytes() merupakan kebalikan operasi substitusi non- linier pada tiap-tiap byte dalam state dengan menggunakan tabel substitusi yang dinamakan S-box (kotak S).2. Transformasi Inverse ShiftRows() menggeser kembali ke tempat semula isi baris

1, 2, dan 3 dari state dengan jumlah pergeseran yang bervariasi

3. Transformasi Inverse MixColumn() adalah perkalian terhadap inverse matriks konstan yang dioperasikan pada kolom-kolom dalam state.4. Transformasi Inverse AddRoundKey() dengan cara menambahkan inverse kunci ronde ke state dalam operasi XOR.

2.4 Metodologi Berorientasi Objek

Metodologi akan membantu dalam pengaturan dari keseluruhan proyek dengan memecah proses pengembangannya menjadi bagian-bagian yang lebih kecil, untuk memberikan spesifikasi pada keinginan dan tidak adanya ketergantungan dari setiap task dengan cara merencanakannya terlebih dulu, dilanjutkan dengan penjadwalan dan pengawasan untuk setiap laporan selama pembangunan sistem. Metodologi yang dapat

digunakanterbagimenjadidua,yaitu:structured(terstruktur)danobject oriented(berorientasi objek). Ciri-ciri metodologi berorientasi objek adalah:1. Adanya encapsulation (pemaketan data-data dan operasi-operasi ke dalam sebuah objek), tidak ada data yang bersifat global2. Adanya inheritance (mekanisme untuk mendefinisikan sebuah kelas baru dalam sebuah kelas yang masih berjalan), adanya polymorphism (kemampuan untuk menyembunyikan implementasi lainnya di belakang antarmuka biasa)3. Lebih ditekankan pada tahapan awal dengan komunikasi lebih efektif

4.Model yang sudah dirancang dapat dikembangkan dan diperbaiki

Adapun kelebihan dari metodologi berorientasi objek bila dibandingkan yang terstruktur:1) Dapat digunakan kembali,sehingga akan lebih efisien daripada harus menulis ulang

2) Perawatan yang mudah

3) Lebih mudah untuk dites, karena setiap modul bersifat tidak tergantung pada modul lain, dapat dimasukkan ke dalam sistem besar secara terpisah dan dapat didefinisikan secara jelas.4) Sistem yang dibuat dapat berupa sebuah sistem yang besar dan kompleks

2.4.1 Unified Modelling Language (UML )

Diagram UML merupakan salah satu dari alat terpenting dari beberapa analisis kebutuhan dan perancangan dari sistem software(perangkat lunak) yang berbasiskan pada orientasi objek. Dalam diagram akan terlihat kelas-kelas, atribut-atribut dan operasi-operasi sebagaimana berhubungan sesuai dengan macam-macam tipe yang ada dalam kelas-kelas. UML adalah sebuah bahasa grafik standar dalam permodelan

software yang berdasarkan pada orientasi objek. UML mulai dikembangkan sejak pertengahan tahun 1990-an sebagai sebuah usaha bersama antara James Rumbaugh, Grady Booch, dan Ivar Jacobson, dengan pengembangan notasi masing-masing di awal tahun 1990-an. Lambang U yang berasal dari UML diartikan untuk unified (penggabungan), yang menunjukkan tiga pengembang yang mengkombinasikan fitur- fitur terbaik bahasa-bahasa yang telah dikembangkan sebelumnya. UML terbagi menjadi beberapa tipe diagram, yakni :1) Class diagram(diagram kelas) yang mendeskripsikan kelas-kelas yang ada dan sekaligus hubungan antar kelas tersebut.2) Interaction diagram(diagram interaksi) yang terdiri dari dua jenis,yaitu: sequence diagram dan collaboration diagram. Diagram ini menitikberatkan pada perilaku sistem dalam jangka waktu, dimana setiap objek melakukan interaksi masing- masing.3) State diagram and activity diagram yang menunjukkan bagaimana sistem berjalan internal.4) Component diagram and deployment diagram yang akan menonjolkan bagaimana bermacam-macam komponen yang ada di dalam sistem diurutkan secara logika dan fisik.UML itu sendiri tidak hanya berupa notasi-notasi yang digambarkan dalam diagram, tetapi juga memiliki fitur tambahan yang menarik :1. Rincian semantik yang mendeskripsikan pengertian dari notasi yang berbeda-beda.

2. Perpanjangan mekanisme yang memungkinkan perancang software dalam merepresentasikan konsep yang bukan merupakan bagian dari inti UML

3. Sebuah bahasa tekstual yang telah terasosiasi yang dikenal dengan nama OCL (Object Constraint Language) yang memungkinkan berbagai keadaan mengenai elemen-elemen yang ada di dalam diagram.

2.4.1.1 Interaction diagram

Interaction diagram(diagam interaksi) digunakan sebagai model dari aspek dinamika sebuah sistem software. Dari diagram tersebut dapat dilihat bagaimana sekumpulan aktor dan objek berkomunikasi dengan tiap-tiap langkah dari use case atau beberapa fungsionalitas. Diagam interaksi menunjukkan beberapa tipe komunikasi yang berbeda. Hal ini meliputi pesan yang melintas dalam hubungan (jaringan), panggilan prosedur sederhana, dan semuanya itu disebut messages. Elemen-elemen yang dapat ditemukan dalam interaction diagram antara lain: instance(hasil penurunan sifat) dari aktor-aktor dan kelas-kelas yang ada digambarkan dengan kotak-kotak yang berisi kelas dan identifikasi objek yang ditandai dengan garis bawah, messages(pesan-pesan) yang digambarkan dengan tanda panah dari aktor ke objek atau dari objek ke objek.Dua bentuk diagram interaksi adalah sequence diagram dan collaboration diagram. Dalam bentuk sederhana, keduanya mengandung informasi yang sama mengenai interaksi dan dapat dikonversikan ke dalam berbagai tipe. Sequence diagram lebih menitikberatkan pada urutan kegiatan pada sebuah time line. Sedangkan collaboration diagram(diagram kolaborasi) isinya lebih padat, termasuk hubungan- hubungan yang ada diantara objek dan aktor.

2.4.1.1.1 Sequence diagram

Menggambarkan urutan dari pesan-pesan yang dilakukan oleh sekumpulan objek ataupun aktor internal. Objek akan bergerak dari kiri menuju ke kanan melintasi diagram, biasanya digambarkan dengan aktor yang berada di posisi paling kiri. Dimensi vertikal merepresentasikan waktu. Poin awal terletak di bagian teratas dari diagram dan waktu progres berada dibawahnya, turun terus hingga mencapai bagian terbawah dalam gambar. Garis vertikal yang disebut lifeline, menghubungkan setiap objek atau aktor. Lifeline yang berbentuk sebuah kotak disebut activation box(kotak aktivasi), dalam jangka waktu dimana objek tesebut menunjukkan komputasi, akan dikatakan bahwa objek itu memiliki life activation. Sebuah pesan yang digambarkan dengan arah panahyang berada diantara kotak-kotak aktivasi dari pengirim kepada penerima.

: object lifeline: lifeline

: activation: message

Gambar 2.7 Petunjuk Kotak Aktivasi

Cth. sequence diagram 1 (pendaftaran kursus ):

Gambar 2.8 Sequance Diagram 1 (Pendaftaran Khusus)

2.4.1.1.2 Collaboration diagram

Menggambarkan beberapa objek yang bekerja bersama, ditonjolkan sebagai sebuah grafik dengan sekumpulan objek dan aktor secara vertikal. Diagram kolaborasi ini sangat mirip dengan sebuah instance diagram, kecuali pada penggambaran hubungan asosiasi. Juga memiliki persamaan dengan sequence diagram,namun tidak memiliki kotak aktivasi dan lifeline. Hanya terdapat hubungan komunikasi antara setiap pasangan objek dengan pengiriman pesan.

cth collaboration diagram (rancangan proxy):

Gambar 2.9 Collaboration Diagram (Rancangan Proxy)

2.4.1.2 State diagram

Sebuah state diagram merupakan satu cara lain dalam mengekspresikan dinamika informasi tentang sebuah sistem, digunakan untuk mendeskripsikan perilaku sistem atau sebuah objek tunggal yang terlihat dari luar. Beberapa tipe yang berbeda dapat menyebabkan perubahan dari satu state(titik) ke titik yang lain. Pada masing- masing titik, sistem akan memiliki cara berperilaku yang berbeda. Sebuah transisi merepresentasikan sebuah perubahan titik dalam respon sebuah kegiatan. Sebuah titik hitam bulat menggambarkan titik awal,sedangkan titik bulat hitam dengan cincinmelingkar di bagian luarnya menggambarkan titik akhir dari kegiatan.

: start state(titik awal): end state(titik akhir)

: state(titik): transition(transisi)

Gambar 2.10 Simbol Titik Awal dan titik akhir dari Transisi

cth state diagram (pendaftaran kursus):

Gambar 2.11 State Diagram (Pendaftaran Kursus)

2.4.1.3 Activity diagram

Sebuah activity diagram(diagram aktivitas) menyerupai sebuah state diagram, selain memiliki simbol-simbol tambahan dan digunakan dalam konteks yang berbeda. Jika pada state diagram kebanyakan transisi disebabkan oleh kegiatan external(yang berada/berasal dari luar), maka pada activity diagram kebanyakan transisi disebabkan oleh kegiatan internal(yang berada/berasal dari dalam). Diagram ativitas digunakan untuk memahami aliran dari pekerjaan yang dilakukan oleh sebuah objek ataukomponen yang ditampilkan. Kelebihan dari diagram aktivitas adalah representasi dari aktivitas-aktivitas yang mungkin dilakukan. Kemungkinan itu digambarkan dalam tiga bentuk, yakni : fork, join, dan rendezvous.Fork berasal dari satu transisi yang kemudian melebar menjadi beberapa transisi. Sedangakan join merupakan kebalikan dari fork, berasal dari beberapa transisi yang selanjutnya berkumpul dan menjadi satu transisi. Rendezvous adalah gabungan beberapatransisi yang kemudian akan menyebar kembali menjadi lebih dari satu transisi.

: fork:join

:rendezvous

Gambar 2.12 Simbol Fork, Join, Rendezvous

cth activity diagram (pendaftaran kursus):

Gambar 2.13 Activity Diagram (Pendaftaran Kursus)

2.4.1.4 Class diagram

Intisari dari UML class diagram adalah mendeskripsikan data yang ditemukan di dalam sebuah sistem software. Simbol-simbol utama yang tampak di dalam class diagram, antara lain :1. Kelas-kelas yang merepresentasikan sebagai sebuah kotak dengan nama kelas itu di dalamnya2. Asosiasi yang menunjukkan penghubung yang berada di kelas yang satu dengan kelas lainnya3. Atribut yang merupakan data sederhana yang ditemukan di dalam kelas-kelas dan kelas turunan yang telah mendapatkan penurunan sifat induknya

4. Operasi yang merepresentasikan fungsi-fungsi yang ada di setiap kelas dan kelas turunannya5. Generalisasi dimana kelompok dari kelas-kelas menjadi hirarki masing-masing

Tahapan dalam pembangunan class diagram:

1) Mengidentifikasi proyek dan menbaginya kedalam kelas-kelas tertentu

2) Mengidentifikasi atribut dari setiap kelas

3) Memulai pembuatan konstruksi data

4) Mengidentifikasi operasi-operasi yang dilakukan dalam kelas-kelas

5) Mengidentifikasi hubungan antara kelas-kelas, dengan menggunakan asosiasi, agregasi, dan penurunan sifat6) Iterasi dan menemukan model yang paling sesuai

Di bawah ini akan dijelaskan secara lebih rinci mengenai:

1. Classes

Sebuah kelas diwakilkan dengan sebuah kotak dengan nama kelas tersebut di dalamnya. Nama dari kelas tersebut harus selalu dalam bentuk tunggal atau unik dan dimulai dengan huruf kapital. Dan pada saat membuat sebuah kelas didalam kelas diagram, maka dapat dikatakan bahwa sistem akan berisikan sebuah kelas yang didasarkan nama dari kelas yang sama tersebut, dan ketika sistem dijalankan, maka kelas akan diciptakan.2. Asosiasi Dan Multiplicity

Asosiasi digunakan untuk menunjukan bagaimana dua kelas atau lebih saling berhubungan. Asosiasi digambarkan seperti sebuah garis yang terletak diantara sepasang kelas.

Simbol-simbol mengindikasikan multiciply yang ditunjukkan dengan setiap bagian akhir dari sebuah asosiasi. Multiciply ditunjukkan oleh banyaknya contoh pada akhir sebuah kelas dan asosiasi dapat dihubungkan oleh simbol akhir kelas lain dari sebuah asosiasi.

Gambar 2.14 Contoh-contoh dari multiplicity

Ada 3 pola multiplicity yang biasa digunakan yaitu:

1. One to Many : Sebuah perusahaan memiliki banyak pegawai, tetapi seorang pegawai hanya dapat bekerja pada 1(satu) perusahaan. Ada pendapat lain yang menyatakan bahwa pendapat ini tidak benar, mungkin saja ada seseorang pegawai yang bekerja pada beberapa perusahaan.2. Many to Many : Seorang sekretaris dapat bekerja dengan 1(satu) atau lebih manejer dan seorang manejer bisa memiliki 1(satu) atau lebih sekretaris, tentu saja dengan hubungan 1 lawan 1 akan menjadi tipe yang umum antara beberapa sekretaris dan manajer. Tapi pada umumnya ada beberapa sekretaris yang bekerja untuk sebuah grup manajer, dan manajer-manajer yang sudah senior juga bisa memiliki 1 grup sekretaris. Dan hal ini juga dapat berarti bahwa sebuah sektretaris mungkin juga tidak memiliki

manajer. Dapat diputuskan bahwa tidak semua memenuhi hal ini dan harus ada satu sistem yang memungkinkan bahwa seorang manajer dapat mengawasi setiap sekretaris.3. One to One : Untuk setiap perusahaan, dapat dipastikan memiliki 1 dewan direktur.

Dan seorang dewan pengurus hanya bekeja untuk 1 perusahaan. Sebuah perusahaan harus mempunyai sebuah dewan pengurus, dan begitu juga sebaliknya.

Kelas Asosiasi

Antar kelas-kelas asosiasi dihubungkan dengan garis putus-putus. Contoh pada gambar dibawah ini menerangkan bahwa sebuah kelas baru bernama Registration. Namun, sebuah kelas asosiasi dapat diberi nama sesuai dengan kegunaan kelas asosiasi yang baru dibuka tersebut yang merefleksikan arti dari asosiasi; dan kemudian nama Register asosiasi itu tidak perlu lagi digunakan.Selain dari keterkaitan dengan asosiasi, sebuah kelas asosiasi tidak ada beda dengan kelas yang lain, secara umum itu bisa memiliki beberapa sub kelas dengan

asosiasi lain yang terkait.

Gambar 2.15 Sebuah hubunganmany-to-many dari sebuah kelas asosiasi, dan sebuah diagram ekuivalen dengan menggunakan 2 hubungan One to Many.

Diagram yang disebelah kiri dapat bertransformasi menjadi seperti diagram disebelah kanan, yang menggunakan hubungan One-to-Many, setiap pasang kelas yang dihubungkan dengan hubungan Many-to-Many dengan sebuah kelas asosiasi bisa dirubah menjadi seperti bentuk diagram yang ada disebelah kanan. Kedua diagram dapat diimplementasikan dengan cara yang sama, tetapi diagram yang kiri lebih jelas karena memperlihatkan pentingnya hubungan Student dan CourseSection. Di lain pihak diagram yang kanan lebih mudah dibaca.

1. Reflexive associations

Sebuah asosiasi memungkinkan sebuah kelas untuk yang dihubungkan dengan asosiasinya. 2 contoh bentuk tersebut dapat dilihat pada diagram dibawah ini. Sebuah Course dapat mengajukan kepada course persyaratan yang lain untuk diambil terlebih dahulu. Jika ada 2 course yang memiliki material yang hampir sama maka dapat mengambil salah satu dan sebaliknya. Bentuk Course seperti ini dapat juga dikatakan sebagai disebut mutually exclusive. Asosiasi pertama berbentuk asimetris karena kegunaan dari kelas ini berbeda satu sama lain. Bentuk dari asosiasi yang kedua adalah simetris. Untuk lebih meperjelas hal tersebut sebaiknya asosiasi asimetris menggunakan urutan dibandingkan nama dari asosiasi.

Gambar 2.16 Contoh dari reflexive associations

2. Directionality in associations

Asosiasi dan link biasa disebut sebagai bi-directional. Contoh: jika sebuah objek pengemudi dihubungkan dengan objek mobil, kemudian mobil juga dihubungkan secara implisit dengan pengemudi tersebut.

Hal ini sangat memungkinkan untuk membatasi arah dari suatu hubungan asosiasi dengan menambahkan suatu simbol panah diakhir asosiasi. Untuk contohnya ada pada gambar diagram dibawah ini, yang memperlihatkan dua kelas yang ada didalam sebuah aplikasi penanggalan. Pengguna dari aplikasi ini dapat menghubungkan jumlah catatan yang ditulis dimana pun dengan hari yang mana pun. Suatu kejadian dari kelas Day akan perlu mengetahui kejadian dengan kelas Note yang dihubungkan dengannya.

Gambar 2.17 Diagram asosiasi directional

3. Generalization

Kesalahan yang dibuat oleh pemula biasanya akan melebih-lebihkan generalisasi. Pada gambar diagram dibawah ini akan memperlihatkan perbedaan taksonomi dari jenis- jenis produk yang mungkin dijual oleh toko musik. Tetapi untuk meyakinkan eksitensi dari masing-masing kelas, ada suatu operasi yang akan dilakukan berdasarkan perbedaan dikelas tersebut. Lihatlah gambar dibawah ini:

Gambar 2.18 Kelas hirarki yang tidak ada perbedaannya didalam operasi.

4. Instance Diagrams

Sebuah instance diagram memperlihatkan sebuah contoh konfigurasi dari objek dan hubungan yang mungkin ada pada poin-poin tertentu selama sebuah program dijalankan.Perbedaan antara asosiasi dan generalisasi adalah:

Asosiasi dijelaskan dengan suatu hubungan yang akan ada diantara kejadian disaat waktu prosesnyaGeneralisasi dijelaskan dengan suatu hubungan antara kelas-kelas didalam kelas diagram.

2.4.2 Pemrograman Java

Java adalah bahasa pemrograman yang sederhana. Java mulai dikembangkan sejak Agustus 1991 oleh Sun Microsystems dengan nama Oak yang merupakan kependekan dari Object Application Kernel. Sekitar Januari 1995 , nama Oak diubah menjadi Java karena dianggap kurang komersil. Java juga merupakan gabungan dari sifat-sifat sejumlah bahasa pemrograman, seperti C, C++, Object-C, SmallTalk, CommonLISP. Pemrograman Java tidak bergantung pada platform yang berjalan,

walaupun demikian Java tidak dapat dijalankan di setiap sistem atau komputer. Adapun

sistem operasi yang dapat menjalankan Java :

SISTEM OPERASIVENDORAIXIBMOS/2IBMOS/390 dan OS/400IBMDG/UXData General CorporationDigital OpenVMSDigital Equipment CorporationDigital UnixDigital Equipment CorporationHP-UXHewlett Packard (HP)IRIXSilicon GraphicsMacOSAppleNetwareNovellSolarisSun MicrosystemsWindowsMicrosoft CorporationLinuxBanyak perusahaanTabel 2.2 PlatForm yang mendukung Java

Selain dapat digunakan untuk membuat program, Java juga mendukung sumberdaya internet yang sedang populer saat ini, yakni World Wide Web(WWW) dan mendukung aplikasi klien-server dalam jaringan Local Area Network(LAN) maupun Wide Area Network(WAN), karena dilengkapi dengan unsur keamanan. Tingkat

portabilitas pada Java tidak hanya sebatas sourcecode(kode sumber), tetapi juga pada bytecode(kode biner), karena kode biner berbeda dengan kode mesin yang bergantung pada platform yang berjalan. Kode biner dapat dipahami semua platform yang dilengkapi dengan interpreter Java. Java merupakan bahasa pemrograman yang berorientasi objek. Sebagai bahasa pemrograman berorientasi objek, Java juga menggunakan kelas-kelas untuk membentuk objek dan dapat menggunakan konseppewarisan. Skema pengkompilasian kode sumber untuk menerjemahkan kode biner:

Kode sumber dalam bahasa Java

Kompiler Java

Kode biner- kode hasil kompilasi Sama untuk semua platform

Interpreter JavaWindowsLinuxDan lain-lain

Berbeda untuk setiap platform

Gambar 2.19 Skema pengkompilasian kode sumber untuk menerjemahkan kode biner

2.4.3 System Development Lifecycle (SDLC)

Tipikal SDLC terdiri dari 10 tahap yang meliputi:

1. Inisialisasi

2. Pengembangan konsep sistem

3. Perencanaan

4. Analisis

5. Perancangan

6. Pengembangan

7. Penggabungan dan Percobaan

8. Pelaksanaan

9. Perawatan

10. Penempatan

Selengkapnya akan dijelaskan dengan gambar dan fase-fase di bawah :

Gambar 2.20 Systems Development Life Cycle (SDLC) Life-Cycle Phases

1 Fase inisialisasi

Inisialisasi suatu sistem dimulai pada saat kepentingan bisnis dan kesempatan sudah diketahui. Seorang ketua pelaksana dipilih untuk mengatur proyek tersebut. Kepentingan bisnis ini didokumentasikan dalam sebuah proposal konsep. Setelah proposal konsep tersebut disetujui, fase pengembangan konsep sistem dimulai.

2 Fase pengembangan konsep sistem

Pada saat kepentingan bisnis diterima, pendekatan-pendekatan untuk mempraktekan konsep tersebut dipertimbangkan untuk suatu kemungkinan dan ketepatan. Sistem batasan dokumen mengindentifikasi lingkup suatu sistem dan memerlukan persetujuan pegawai senior dan dana sebelum memulai suatu fase perencanaan.

3 Fase perencanaan

Lebih jauh lagi suatu konsep dikembangkan untuk menerangkan bagaimana suatu bisnis beroperasi sesaat setelah sistem yang disetujui untuk digunakan, dan untuk menilai bagaimana suatu sistem mempengaruhi pekerja dan privasi konsumer. Untuk menjamin suatu produk atau servis memenuhi syarat tepat waktu dan sesuai anggaran yang diminta, sumber-sumber proyek aktifitas, jadwal, peralatan, dan kelanjutannya harus dipastikan. Sebagai tambahan, sertifikasi keamanan dan akreditasi aktifitas dimulai dengan mengindentifikasi keperluan sistem keamanan dan menyempurnakan kelemahan penilaian.

4 Fase keperluan analisis

Pengguna keperluan fungsional secara formal memastikan dan menggambarkan keperluan tersebut dalam bentuk data, sistem pelakasaan, keamanan dan keperluan standar untuk sistem tersebut. Semua keperluan dipastikan sampai pada tingkat ketelitian yang cukup untuk proses suatu rancangan sistem. Semua keperluan harus dapat diukur dan dicoba dan berhubungan dengan kepentingan bisnis dan kesempatan yang ada dalam fase perencanaan.

5 Fase perancangan

Karakter fisik sistem dirancang selama fase ini berlangsung. Lingkungan pengoperasian diadakan, subsistem, pemasukan dan pengeluaran ditetapkan, dan sumber-sumber disediakan untuk proses. Segala keperluan pemasukan atau persetujuan harus didokumentasikan dan diproses lagi oleh pengguna. Karakter fisik sistem tersebut dispesifikkan dan rancangan yang lebih rinci dipersiapkan. Kemudian subsistem yang diidentifikasi saat perancangan digunakan untuk membuat struktur yang lebih detil dari sistem tersebut. Setiap subsistem merupakan bagian dari satu atau lebih unit rancangan atau modul. Spesifikasi logis yang lebih detil dipersiapkan untuk setiap modul software.

6 Fase pengembangan

Rincian spesifikasi dihasilkan pada saat fase perancangan diubah kedalam bentuk hardware, komunikasi, software yang dapat dijalankan. Software dapat dicoba kedalam suatu unit, digabungkan, dan dicoba kembali secara sistematik. Hardware dipasangkan dan dicoba.

7 Penggabungan dan fase percobaan

Bermacam-macam komponen suatu sistem digabungkan dan dicoba secara sistematik. Pengguna mencoba sistem untuk memastikan bahwa peralatan funsional, yang dipastikan dalam dokumen peralatan fungsional, sesuai dengan pengembangan atau sistem modifikasi. Dahulukan melakukan penginstalan dan pengoperasian sistem dalam lingkungan produksi, sistem tersebut harus mendapat sertifikat dan akreditasi aktifitas.

8 Fase pelaksanaan

Sistem atau sistem modifikasi diinstal dan membuat pengoperasian dalam lingkungan produksi. Fase ini dirancang setelah sistem dicoba dan diterima oleh pengguna. Fase ini terus berjalan sampai sistem beroperasi dalam produksi dikondisikan dengan ketersediaan peralatan pengguna.

9 Operasi dan fase perawatan

Sistem operasi sedang berjalan. Sistem dimonitor untuk kelangsungan pelaksanaan sehubungan dengan peralatan pengguna, dan sistem keperluan modifikasi bekerjasama. Sistem operational secara bertahap dinilai melalui pengulangan proses untuk memutuskan apakah sistem tersebut dibuat lebih efisien dan efektif. Operasi berlanjut selama sistem tersebut dapat beradaptasi secara efektif untuk merespon kepentingan organisasi. Pada saat modifikasi atau perubahan diidentifikasi seperlunya, sistem tersebut harus memasuki fase perencanaan.

10 Fase penempatan

Aktifitas penempatan memastikan perintah penghapusan sistem dan menyimpan informasi penting tentang sistem tersebut sehingga beberapa atau semua informasi dapat diaktifkan kembali suatu saat jika diperlukan. Keterangan tertentu diberikan untuk kepentingan pemeliharaan data yang diproses oleh sistem, sehingga data tersebut dapat secara efektif dipindahkan ke sistem lain atau diterima sehubungan dengan catatan peraturan manajemen yang dapat digunakan dan kebijakan, untuk akses potensial selanjutnya.