BAB 2.
LANDASAN TEORI
2.1. Keamanan Data Data atau informasi merupakan suatu asset yang sangat berharga dan harus dilindungi.
Informasi
merupakan
data
yang
sudah
diproses
dan
diinterpretasikan menjadi sesuatu yang bermakna. Dan informasi dihimpun dari data yang memiliki relevansi dengan satu atau beberapa orang pada suatu waktu. Dengan adanya kemajuan dalam teknologi informasi, komunikasi dan komputer maka kemudian muncul masalah baru, yaitu masalah keamanan akan data dan informasi. Dalam hal ini akan membuka peluang bagi orangorang yang tidak bertanggung jawab untuk menggunakannya sebagai tindak kejahatan. Dan tentunya akan merugikan pihak tertentu. Karena bila pesan yang dikirim berisi sesuatu yang bersifat rahasia sehingga pesan tersebut dibaca oleh pihak yang tidak berhak, maka bocorlah kerahasiaan pesan yang dikirim. Ini adalah masalah keamanan pesan yang dinamakan kerahasiaan. Aman berarti bebas dari ancaman bahaya bahwa pengirim menginginkan pesan yang akan dikirim ke penerima sampai dengan utuh tanpa ada kurang atau lebih pada pesan tersebut, artinya tidak ada manipulasi pesan selama pesan itu dalam perjalanan menuju penerima, dan harus dipastikan bahwa pesan yang diterima oleh penerima adalah pesan asli yang memang dikirim oleh pengirim tanpa ada penambahan atau pengurangan terhadap isi pesan yang memungkinkan akan merubah arti dari isi pesan tersebut. Ketika penerima telah yakin bahwa pesan yang dikirimkan tersebut memang benar berasal dari pengirim, bukan dari orang lain yang menyamar, dan pengirim juga yakin bahwa penerima pesan adalah orang yang ditujukan, maka hal tersebut adalah masalah keamanan pesan yang dinamakan otentikasi. Jika seseorang pernah menerima pesan, namun pengirim membantah bahwa pernah mengirimnya. Maka masalah keamanan tersebut disebut penyangkalan (repudiation). Saat ini banyak orang yang membantah bahwa telah mengirim atau menerima pesan. Padahal pesan tersebut telah dikirim dan diterima oleh
2-1
http://digilib.mercubuana.ac.id/
orang yang tepat. Jika pengirim membantah telah mengirim pesan, maka anda perlu membuktikan ketidak benaran tersebut (non-repudiation). Keempat masalah keamanan tersebut adalah kerahasiaan, integritas data, otentikasi, dan penyangkalan dapat diselesaikan dengan menggunakan kriptografi. Kriptografi tidak hanya menyediakan alat untuk keamanan pesan tetapi juga sekumpulan teknik yang berguna. Pentingnya informasi menyebabkan perlu dilakukan pengamanan terhadap informasi untuk menjaga keabsahan dan nilai yang dimiliki oleh informasi tersebut,
agar
tidak
disalahgunakan
oleh
pihak
lain
yang
tidak
bertanggungjawab. Keamanan informasi merupakan cabang studi dari teknologi informasi yang mengkhususkan diri untuk mempelajari metode dan teknik untuk melindungi informasi dan sistem informasi dari akses, penggunaan, penyebaran, perusakan, perubahan, dan penghancuran tanpa otorisasi yang sah. Keamanan data pada komputer tidak hanya tergantung pada teknologi saja, tetapi dari aspek prosedur dan kebijakan keamanan yang diterapkan serta jika firewall dan perangkat keamanan lainnya bisa dibobol oleh orang yang tidak berhak, maka peran utama kriptografi untuk mengamankan data atau dokumen dengan menggunakan teknik enkripsi sehingga data atau dokumen tidak bisa dibaca (Herryawan, 2010). 2.2. Ancaman Dan Aspek Keamanan Dalam Komunikasi Data Proteksi data dan informasi dalam komunikasi komputer menjadi penting karena nilai informasi itu sendiri dan meningkatnya penggunaan computer di berbagai sektor. Melihat kenyataan semakin banyak data yang diproses dengan komputer dan dikirim melalui perangkat komunikasi elektronik maka ancaman terhadap pengamanan data akan semakin meningkat. Terdapat banyak faktor yang mengancam keamanan komunikasi data. Ancaman-ancaman tersebut menjadi masalah terutama dengan semakin meningkatnya komunikasi data yang bersifat rahasia. Secara garis besar, ancaman terhadap komunikasi data dapat dibagi menjadi 2 macam, yaitu: 1. Ancaman Aktif mencakup kecurangan dan kejahatan terhadap komunikasi data. Dari sekian banyak faktor-faktor yang dapat mengancam
2-2
http://digilib.mercubuana.ac.id/
keamanan dari suatu data, maka berdasarkan tekniknya, faktor-faktor tersebut dapat dikelompokkan ke dalam empat jenis ancaman, yaitu: a. Interruption Terjadi bila data yang dikirimkan dari A tidak sampai pada orang yang berhak. Interruption merupakan pola penyerangan terhadap sifat availability (ketersediaan data). Contohnya adalah merusak dan membuang data-data pada suatu sistem komputer, sehinggga menjadi tidak ada dan tidak berguna. b. Interception Yaitu serangan ini terjadi jika pihak ketiga berhasil mendapatkan akses informasi dari dalam sistem komunikasi. Interception merupakan pola penyerangan
terhadap
sifat
confidentiality
(kerahasiaan
data).
Contohnya, dengan menyadap data yang melalui jaringan public (wiretapping) atau menyalin secara tidak sah file atau program. Interception mengancam sifat kerahasiaan data. c. Modification Pada serangan ini pihak ketiga berhasil merubah pesan yang dikirimkan. Modification merupakan pola penyerangan terhadap sifat integrity (keaslian data). d. Fabrication Merupakan ancaman terhadap integritas, yaitu orang yang tidak berhak yang meniru atau memalsukan suatu objek ke dalam sistem. Jadi, penyerang berhasil mengirimkan pesan menggunakan identitas orang lain.
Fabrication
merupakan pola penyerangan
terhadap sifat
authenticity. 2. Ancaman Pasif mencakup kegagalan sistem, kesalahan manusia dan bencana alam. Ancaman-ancaman tersebut diatas menjadi masalah terutama dengan semakin meningkatnya komunikasi data yang bersifat rahasia. Untuk mengantisipasi ancaman-ancaman tersebut perlu dilakukan usaha untuk melindungi data yang dikirim melalui saluran komunikasi salah satunya adalah dengan teknik enkripsi. Dan untuk masalah kekuatan pengamanannya tergantung pada algoritma metode enkripsi tersebut dan kunci yang digunakannya. Aspek keamanan komunikasi data terdiri dari:
2-3
http://digilib.mercubuana.ac.id/
a. Authentication Memberi jaminan bahwa semua pelaku dalam komunikasi adalah otentik atau mereka yang dapat di-klaim. b. Integrity Aspek yang menjamin bahwa data tidak dirubah tanpa ada ijin pihak yang berwenang (authorized), menjaga keakuratan dan keutuhan data serta metode prosesnya untuk menjamin aspek integrity. c. Privacy and Confidentiality Aspek yang menjamin kerahasiaan data atau informasi, memastikan bahwa informasi hanya dapat diakses oleh orang yang berwenang dan menjamin kerahasiaan data yang dikirim, diterima dan disimpan. d. Non-repudiation Adalah usaha untuk mencegah terjadinya penyangkalan terhadap pengiriman atau terciptanya suatu informasi oleh yang mengirimkan atau membuat. Non-repudiation menyediakan metode untuk menjamin bahwa tidak terjadi kesalahan dalam melakukan klaim terhadap pihak yang melakukan transaksi. e. Availibility Aspek yang menjamin bahwa data akan tersedia saat dibutuhkan, memastikan pengguna yang berhak dapat menggunakan data dan perangkat terkait. 2.3. Kriptografi 2.3.1
Pengertian Kriptografi Kriptografi (cryptography) berasal dari bahasa Yunani: “cryptos” artinya “secret” (rahasia), sedangkan “graphein” artinya “writing” (tulisan). Jadi, kriptografi
berarti
“secret
writing”
(tulisan
rahasia).
Kriptografi
merupakan seni menyembunyikan informasi yang hendak disampaikan ke pihak lain. Kriptografi adalah perpaduan dari matematika dan ilmu komputer yang dikembangkan pada teori informasi dan keamanan informasi. Sesuai dengan definisinya, kriptografi memiliki tujuan untuk menjaga kerahasiaan (confidentiality) dan memastikan bahwa pesan yang akan tiba ke penerima adalah asli, tidak direkayasa di perjalanan. Masalah keamanan informasi tersebut dinamakan otentikasi. (Stallings, 2011) 2-4
http://digilib.mercubuana.ac.id/
Saat ini kriptografi lebih dari sekedar privacy, tetapi juga untuk tujuan data integrity, authentication, dan nonrepudiation. (Sadikin, 2012) Dalam sebuah algoritma kriptografi, terdapat tiga unsur yaitu: 1.
Enkripsi, yaitu proses mengubah plaintext menjadi ciphertext.
2.
Dekripsi, yaitu proses mengubah ciphertext menjadi plaintext.
3.
Kunci, merupakan kunci yang digunakan untuk proses enkripsi maupun dekripsi.
Menurut Rifki Sadikin (2012), menyatakan bahwa: Kriptografi adalah ilmu yang bersandarkan pada teknik matematika untuk berurusan dengan keamanan informasi seperti kerahasiaan, keutuhan data dan otentikasi entitas. Kriptografi berkembang menjadi sebuah seni merahasiakan pesan (kata “graphy” di dalam “cryphtography” itu sendiri sudah menyiratkan sebuah seni) (Sadikin, 2012). Di dalam kriptografi terdapat berbagai istilah atau terminologi. Beberapa istilah yang penting untuk diketahui antara lain: a. Pesan, plaintext, dan ciphertext Adalah data atau informasi yang dapat dibaca atau dimengerti maknanya. Nama lain untuk pesan adalah plainteks (plaintext) atau teks-jelas (cleartext). Pesan dapat berupa data atau informasi yang dikirim (melalui kurir, saluran telekomunikasi, dsb) atau yang disimpan di dalam media perekaman (kertas, storage, dsb). Pesan yang disimpan hanya berupa teks. Agar pesan tidak dapat dimengerti maknanya oleh pihak lain, maka pesan perlu disandikan ke bentuk lain yang tidak dapat dipahami. Bentuk pesan yang tersandi disebut cipherteks (ciphertext) atau
kriptogram
(cryptogram).
Ciphertext
harus
dapat
ditransformasikan kembali menjadi plaintext semula agar pesan yang diterima bisa dibaca. b. Pengirim dan penerima Komunikasi data melibatkan pertukaran pesan antara dua entitas. Pengirim (sender) adalah entitas yang mengirim pesan kepada entitas lainnya. Penerima (receiver) adalah entitas yang menerima pesan. Entitas disini dapat berupa orang, kartu kredit, dan sebagainya. Pengirim tentu menginginkan pesan dapat dikirim secara aman, yaitu ia 2-5
http://digilib.mercubuana.ac.id/
yakin bahwa pihak lain tidak dapat membaca isi pesan yang ia kirim. Solusinya adalah dengan cara menyandikan pesan menjadi ciphertext. c. Enkripsi dan dekripsi Proses menyandikan plaintext menjadi ciphertext disebut enkripsi (encryption). Sedangkan proses mengembalikan ciphertext menjadi plaintext dinamakan dekripsi (decryption). Enkripsi dan dekripsi dapat diterapkan baik pada pesan yang dikirim maupun pesan yang tersimpan. d. Cipher dan kunci Algoritma kriptografi disebut juga cipher yaitu aturan untuk enkripsi dan dekripsi, atau fungsi matematika yang digunakan untuk enkripsi dan dekripsi. Beberapa cipher memerlukan algoritma yang berbeda untuk enkripsi dan dekripsi. Konsep matematis yang mendasari algoritma kriptografi adalah relasi antara dua buah himpunan yang berisi elemen-elemen plaintext dan himpunan yang berisi ciphertext. Enkripsi dan dekripsi merupakan fungsi yang memetakan elemenelemen antara dua himpunan tersebut. Misalkan P menyatakan plaintext dan C menyatakan ciphertext, maka: E(P) = C → fungsi enkripsi E memetakan P ke C D(C) = P → fungsi dekripsi D memetakan C ke P Karena proses enkripsi kemudian dekripsi mengembalikan pesan ke pesan asal, maka persamaan: D(E(P)) = P harus benar. Kriptografi mengatasi masalah keamanan data dengan menggunakan kunci, yang dalam hal ini algoritma tidak dirahasiakan lagi, tetapi kunci harus tetap dijaga kerahasiaannya. Kunci (key) adalah parameter yang digunakan untuk transformasi enkripsi dan dekripsi. Kunci biasanya berupa string atau deretan bilangan. Jika menggunakan kunci K, maka fungsi enkripsi dan dekripsi ditulis sebagai berikut: EK(P)=C dan DK(C)=P Dan kedua fungsi tersebut memenuhi: DK(EK(P))=P Keterangan: E = Enkripsi D = Dekripsi 2-6
http://digilib.mercubuana.ac.id/
P = Plaintext C = Ciphertext K = Kunci Jika pesan “P” dienkripsikan dengan “E” menggunakan suatu kunci “K” maka menghasilkan “C”. Sedangkan pada proses dekripsi,
pesan
“C”
tersebut
didekripsikan
dengan
“D”
menggunakan kunci “K” sehingga menghasilkan pesan “P” yang sama seperti pesan semula. Dengan menggunakan kunci K, maka fungsi enkripsi dan dekripsi dapat ditulis sebagai skema diperlihatkan pada Gambar 2-1 berikut :
Gambar 2-1 Skema Enkripsi dan Dekripsi Dengan Menggunakan Kunci Sumber: (Kromodimoeljo, 2009, p5 )
2.3.2
Sejarah Kriptografi Kriptografi memiliki sejarah yang panjang dan mengagumkan. Penulisan rahasia ini dapat dilacak kembali ke 300 tahun SM saat digunakan oleh bangsa mesir. Sejarah penulisan rahasia tertua dapat ditemukan pada peradaban Mesir kuno, yakni tahun 3000 SM. Bangsa Mesir menggunakan ukiran rahasia yang disebut dengan hieroglyphics untuk menyampaikan pesan kepada orang-orang yang berhak. Jenis tulisan ini bukanlah bentuk standar untuk menulis pesan. Hierollyphcs diturunkan dari bahasa yunani hieroglyphica yang berarti ukiran rahasia. Hierollyphcs berevolusi menjadi hieratic, yaitu stylized script yang lebih mudah untuk digunakan.
2-7
http://digilib.mercubuana.ac.id/
Gambar 2-2 Tulisan Hieroglyph Sumber: (Ariyus, 2008, p13)
Awal tahun 400 SM bangsa Spartan di Yunani memanfaatkan kriptografi di bidang militer dengan menggunakan alat yang disebut scytale, yakni pita panjang berbahan daun papyrus yang dibaca dengan cara digulungkan ke sebatang silinder. Sedangkan peradaban Cina dan Jepang menemukan kriptografi pada abad 15 M.
Gambar 2-3 Tulisan Scytale Sumber: http://www.kajianpustaka.com/
Secara historis ada empat kelompok yang berkontribusi terhadap perkembangan kriptografi, dimana mereka menggunakan kriptografi untuk menjamin kerahasiaan dalam komunikasi pesan penting, yaitu kalangan militer, kalangan diplomatik, penulis buku harian, dan pencinta (lovers). Diantara keempat kelompok ini, kalangan militer yang memberikan kontribusi paling penting karena pengiriman pesan di dalam suasana perang membutuhkan teknik enkripsi dan dekripsi yang rumit.
2-8
http://digilib.mercubuana.ac.id/
Kriptografi juga digunakan untuk tujuan keamanan. Kalangan gereja pada masa awal agama Kristen menggunakan kriptografi untuk menjaga tulisan relijius dari gangguan otoritas politik atau budaya yang dominan saat itu. Mungkin yang sangat terkenal adalah “Angka si Buruk Rupa (Number of the Beast) di dalam Kitab Perjanjian Baru. Angka “666” menyatakan cara kriptografi (yaitu di enkripsi) untuk menyembunyikan pesan berbahaya, para ahli percaya bahwa pesan tersebut mengacu pada Kerajaan Romawi. Di
India,
kriptografi
digunakan
oleh
pencinta
(lovers)
untuk
berkomunikasi tanpa diketahui orang. Bukti ini ditemukan di dalam buku Kama Sutra yang merekomendasikan wanita seharusnya mempelajari seni memahami tulisan dengan cipher. Pada Abad ke-17, sejarah kriptografi mencatat korban ketika ratu Skotlandia, Queen Mary, dipancung setelah surat rahasianya dari balik penjara (surat terenkripsi yang isinya rencana membunuh Ratu Elizabeth I) berhasil dipecahkan oleh seorang pemecah kode. (Munir, 2006) Seperti yang telah disebutkan di atas bahwa kriptografi umum digunakan di kalangan militer. Pada Perang Dunia ke II, Pemerintah Nazi Jerman membuat mesin enkripsi yang dinamakan Enigma. Mesin yang menggunakan beberapa buah rotor (roda berputar) ini melakukan enkripsi dengan cara yang sangat rumit. Namun Enigma cipher berhasil dipecahkan oleh pihak Sekutu dan keberhasilan memecahkan Enigma sering dikatakan sebagai faktor yang memperpendek perang dunia ke-2 (Churchhouse, 2004). Di Italia sekitar tahun 1460, Leon Battista Alberti mengembangkan disk cipher untuk enkripsi. Sistemnya terdiri dari dua disk konsentris. Setiap disk memiliki alfabet di sekelilingnya dan dengan memutar satu disk berhubungan dengan yang lainnya. Sistem disk digunakan secara luas selama perang sipil US. Federal Signal Officer mendapatkan hak paten pada sistem disk mirip dengan yang ditemukan oleh Leon Battista Alberti di Italia, dan dia menggunakannya untuk mengkodekan sinyal-sinyal bendera disetiap tempat. Sistem Unix menggunakan cipher substitusi yang disebut ROT 13 yang menggeser alfabet sebanyak 13 tempat. Mesin kriptografi mekanik yang disebut Hegelin Machine dibuat pada tahun 1920 oleh Boris Hegelin di 2-9
http://digilib.mercubuana.ac.id/
Scockholm, Swedia. Di US, mesin Hegelin dikenal sebagai M-209, pada tahun 20-an, Herbert O. Yardley bertugas pada organisasi rahasia USMI-8 yang dikenal sebagai “Black Chamber”. MI-8 menjebol kode-kode sejumlah negara. Selama konferensi Angkatan Laut Washington tahun 1921-1922, US membatasi negosiasi dengan Jepang karena MI-8 telah memberikan rencana negosiasi Jepang yang telah disadap oleh sekretaris negara US. Departemen negara menutup MI-8 pada tahun 1929 sehingga Yardley merasa kecewa. Sebagai wujud kekecewaannya, Yardley menerbitkan buku The American Black Chamber, yang menggambarkan kepada dunia rahasia dari MI-8. Sebagai konsekuensinya, pihak Jepang menginstal kode-kode baru. Karena keahliannya dalam bidang ini, maka Yardley dikenal sebagai “Bapak Kriptografi Amerika”. The German Enigma Machine Militer Jerman menggunakan mesin cipher substitusi polialfabetik disebut Enigma sebagai sistem pengkodean utama selama PD II. Enigma menggunakan rotor mekanis untuk pengkodean dan pendekodean. Seorang Belanda, Hugo Koch mengembangkan mesin ini pada 1919, dan diproduksi untuk pasar komersial pada 1923 oleh Arthur Scherbius. Scherbius mendapatkan hak paten pada mesin Enigma untuk perusahaan Berlin
Chiffriermasschinen
Aktiengesellschaft.
Pakar
cryptanalysis
Polandia, Marian Rejewski, bekerja bersama Perancis dari 1928 sampai 1938, berhasil memecahkan pengkabelan sistem 3 rotor yang digunakan Jerman saat itu dan menciptakan berkas kartu yang dapat mengantisipasi 6 kali 17,576 kemungkinan posisi rotor. Jerman mengubah indikator sistem dan jumlah rotor menjadi 6 pada 1938, sehingga meningkatkan kesulitan untuk memecahkan cipher Enigma. Dalam kerjanya pada 1938, Polandia dan Perancis mengkonstruksi mesin prototipe yang disebut “The Bombe” untuk memecahkan cipher Enigma. Namanya diturunkan dari bunyi detikan yang dihasilkan oleh mesin. Usaha memecahkan cipher Enigma diambil alih oleh Inggris di Bletchley Park Inggris dan dipimpin oleh banyak ilmuwan terkemuka termasuk Alan Turing. Prototipe Bombe Turing muncul pada 1940, dan Bombe berkecepatan tinggi dikembangkan oleh Inggris dan Amerika pada 1943. 2-10
http://digilib.mercubuana.ac.id/
Perkembangan komputer dan sistem komunikasi pada tahun 60an berdampak pada permintaan dari sektor-sektor private sebagai sarana untuk melindungi informasi dalam bentuk digital dan untuk menyediakan layanan keamanan. Dimulai dari usaha Feistel pada IBM di awal tahun 70an dan mencapai puncaknya pada 1977 dengan pengangkatan DES (Data Encryption Standard) sebagai standar pemrosesan informasi federal US untuk mengenkripsi informasi yang unclassified. DES merupakan mekanisme kriptografi yang paling dikenal sepanjang sejarah. Pengembangan paling mengejutkan dalam sejarah kriptografi terjadi pada 1976 saat Diffie dan Hellman mempublikasikan New Directions in Cryptography.
Tulisan
ini
memperkenalkan
konsep
revolusioner
kriptografi kunci publik dan juga memberikan metode baru dan jenius untuk pertukaran kunci, keamanan yang berdasar pada kekuatan masalah logaritma diskret. Meskipun penulis tidak memiliki realisasi praktis pada ide enkripsi kunci publik saat itu, idenya sangat jelas dan menumbuhkan ketertarikan yang luas pada komunitas kriptografi. Pada 1978 Rivest, Shamir dan Adleman menemukan rancangan enkripsi kunci publik dan tanda tangan, yang sekarang disebut RSA. Rancangan RSA berdasar pada masalah matematika yang sulit untuk kriptografi menggiatkan kembali usaha untuk menemukan metode yang lebih efisien untuk pemfaktoran. Tahun 80an menunjukkan peningkatan luas di area ini, sistem RSA masih aman. Kelas lain yang merupakan rancangan kunci publik praktis ditemukan oleh ElGamal pada 1985. Rancangan ini juga berdasar pada masalah logaritma diskret. Salah satu kontribusi penting dari kriptografi kunci publik adalah tanda tangan digital. Pada 1991 standar internasional pertama untuk tanda tangan digital (ISO/IEC 9796) diadopsi. Standar ini berdasar pada rancangan kunci publik RSA. Pada 1994 pemerintah US mengadopsi Digital Signature Standard, sebuah mekanisme yang berdasar pada rancangan kunci publik ElGamal.
2-11
http://digilib.mercubuana.ac.id/
Gambar 2-4 The German Enigma Machine Sumber: http://www.bbc.co.uk/
2.3.3
Tujuan Kriptografi Tujuan kritografi adalah melindungi data dari ancaman yang disengaja atau tidak disengaja. Aspek–aspek keamanan data dalam kriptografi adalah sebagai berikut: 1. Kerahasiaan (confidentiality) Layanan yang diguanakan untuk menjaga isi informasi dari semua pihak kecuali pihak yang memiliki otoritas terhadap informasi tersebut. Ada beberapa pendekatan untuk menjaga menjaga kerahasiaan, dari pengamanan secara fisik hingga penggunaan algoritma matematika yang membuat data tidak dapat dipahami. 2. Integritas data (data integrity) Layanan penjagaan pengubahan data dari pihak yang tidak berwenang. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi pesan oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain kedalam pesan sebenarnya. 3. Otentikasi (authentication) Layanan yang berhubungan dengan identifikasi, baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi (user authentication atau entity authentication) maupun mengidentifikasi kebenaran sumber pesan
(data
origin
authentication).
Dua
pihak
yang
saling
berkomunikasi harus dapat mengontentikasi satu sama lain sehingga ia dapat memastikan sumber pesan tersebut. Pesan yang dikirim melalui saluran komunikasi juga harus diotentikasi asalnya. Otentikasi sumber 2-12
http://digilib.mercubuana.ac.id/
pesan secara implisit juga memberikan kepastian integritas data, sebab jika pesan telah dimodifikasi berarti sumber pesan sudah tidak benar. Oleh karena itu, layanan integritas data selalu dikombinasikan dengan layanan otentikasi sumber pesan. 4. Nirpenyangkalan (non-repudiation) Layanan untuk mencegah entitas yang berkomunikasi melakukan penyangkalan,
yaitu
pengirim
pesan
menyangkal
melakukan
pengiriman atau penerima pesan menyangkal telah menerima pesan tersebut. 2.3.4
Manfaat Kriptografi Karena sangat menjamin keamanan pengguna, kriptografi sangat bermanfaat untuk menyembunyikan dan mengamankan data pengguna. Alasan pengguna untuk menyembunyikan data bisa berbagai macam. Salah satunya, ada yang membutuhkan kriptografi untuk alasan privasi dan kepentingan rahasia pengguna. Sehingga dengan adanya kriptografi ini, pengguna tidak perlu cemas ataupun takut jika privasinya akan terbongkar. Selain untuk alasan privasi, kriptografi juga digunakan untuk alasan autentikasi
dimana
penerima
pesan
dapat
memastikan
bahwa
pesan/informasi yang didapat tidak mengalami perubahan dan dikirimkan oleh orang yang diinginkan. Sehingga penerima pesan tidak perlu khawatir jika pesan yang dikirimkan merupakan pesan palsu yang dikirimkan oleh orang lain yang mengatasnamakan pengirim yang diinginkan. Tidak ada yang bisa mengirimkan pesan selain orang yang diinginkan. Dengan demikian, hal ini sangat memudahkan kita untuk berkoordinasi bersama sekalipun terdapat kehadiran mata-mata musuh. Inilah yang digunakan di dalam militer oleh para pengenkripsi untuk mengirim pesan agar tidak disadap oleh pihak lain. Dibalik kelebihan-kelebihan kriptografi itu, kriptografi tidak menjamin 100% keamanan data/pesan tertentu. Masih ada kemungkinan di mana para
hacker
yang
mencoba-coba
membobol
password
dengan
memasukkan kata kunci acak. Sekalipun memakan waktu yang sangat lama karena password yang dienkripsi bisa lebih dari 100 digit, tetapi kemungkinan bocor masih tetap ada.
2-13
http://digilib.mercubuana.ac.id/
2.4. Serangan Terhadap Kriptografi 2.4.1
Jenis-jenis Serangan Serangan
(“serangan
kriptanalisis”)
terhadap
kriptografi
dapat
dikelompokkan dengan beberapa cara: 1. Berdasarkan keterlibatan penyerang dalam komunikasi, serangan dapat dibagi atas dua macam, yaitu: a. Passive attack (Serangan pasif) Pada serangan ini, penyerang tidak terlibat dalam komunikasi antara pengirim dan penerima, namun penyerang menyadap semua pertukaran pesan antara kedua entitas tersebut. Tujuannya adalah untuk mendapatkan sebanyak mungkin informasi yang digunakan untuk kriptanalisis. Beberapa metode penyadapan antara lain: wiretapping: penyadap mencegat data yang ditransmisikan pada saluran kabel komunikasi dengan menggunakan sambungan perangkat keras. electromagnetic eavesdropping: penyadap mencegat data yang ditrasnmisikan melalui saluran wireless, misalnya radio dan microwave. acoustic eavesdropping: menangkap gelombang suara yang dihasilkan oleh suara manusia. b. Active attack (Serangan aktif) Pada jenis serangan ini, penyerang mengintervensi komunikasi dan ikut mempengaruhi sistem untuk keuntungan dirinya. Misalnya penyerang mengubah aliran pesan seperti menghapus sebagian ciphertext, mengubah ciphertext, menyisipkan potongan ciphertext palsu, me-replay pesan lama, mengubah informasi yang tersimpan, dan sebagainya. 2. Berdasarkan banyaknya informasi yang diketahui oleh kriptanalis, maka serangan dapat dikelompokkan menjadi lima jenis, yaitu: a. Ciphertext-only attack Ini adalah jenis serangan yang paling umum namun paling sulit, karena informasi yang tersedia hanyalah ciphertext saja. Kriptanalis memiliki beberapa ciphertext dari beberapa pesan, semuanya dienkripsi dengan algoritma yang sama. Untuk itu kriptanalis 2-14
http://digilib.mercubuana.ac.id/
menggunakan beberapa cara, seperti mencoba semua kemungkinan kunci secara exhaustive search. Menggunkan analis frekuensi, membuat
terkaan
berdasarkan
informasi
yang
diketahui,dan
sebagainya. b. Known-plaintext attack Ini adalah jenis serangan dimana kriptanalis memiliki pasangan plaintext dan ciphertext yang berkoresponden. c. Chosen-plaintext attack Serangan jenis ini lebih hebat dari pada known-plaintext attack, karena kriptanalis dapat memilih plaintext yang dimilikinya untuk dienkripsikan, yaitu plaintext-plaintext yang lebih mengarahkan penemuan kunci. d. Chosen-ciphertext attack Ini adalah jenis serangan dimana kriptanalis memilih ciphertext untuk didekripsikan dan memiliki akses ke plaintext hasil dekripsi. e. Chosen-text attack Ini adalah jenis serangan yang merupakan kombinasi chosenplaintext attack dan chosen-chiphertext attack. 3. Berdasarkan teknik yang digunakan dalam menemukan kunci, maka serangan dapat dibagi menjadi empat, yaitu: a. Exhaustive attack atau brute force attack Ini adalah serangan untuk mengungkap plaintext atau kunci dengan menggunakan semua kemungkinan kunci. Diasumsikan kriptanalis mengetahui algoritma kriptografi yang digunakan oleh pengirim pesan. Selain itu kriptanalis memiliki sejumlah ciphertext dan plaintext yang bersesuaian. b. Analytical attack Pada jenis serangan ini, kriptanalis tidak mencoba-coba semua kemungkinan kunci tetapi menganalisis kelemahan algoritma kriptografi untuk mengurangi kemungkinan kunci yang tidak ada. Diasumsikan kriptanalis mengetahui algoritma kriptografi yang digunakan oleh pengirim pesan. Analisis dapat menggunakan pendekatan matematik dan statistik dalam rangka menemukan kunci.
2-15
http://digilib.mercubuana.ac.id/
c. Related-key attack Kriptanalis memiliki ciphertext yang dienkripsi dengan dua kunci berbeda. Kriptanalis tidak mengetahui kedua kunci tersebut namun ia mengetahui hubungan antara kedua kunci, misalnya mengetahui kedua kunci hanya berbeda 1 bit. d. Rubber-hose cryptanalysis Ini mungkin jenis serangan yang paling ekstrim dan paling efektif. Penyerang mengancam, mengirim surat gelap, atau melakukan penyiksaan sampai orang yang memegang kunci memberinya kunci untuk mendekripsi pesan. 2.4.2
Kompleksitas Serangan Kompleksitas serangan dapat diukur dengan beberapa cara, yaitu: 1. Kompleksitas data (data complexity) Jumlah data (plaintext dan ciphertext) yang dibutuhkan sebagai masukan untuk serangan. Semakin banyak data yang dibutuhkan untuk melakukan serangan, semakin kompleks serangan tersebut, yang berarti semakin bagus sistem kriptografi tersebut. 2. Kompleksitas waktu (time complexity) Waktu yang dibutuhkan untuk melakukan serangan. Semakin lama waktu yang dibutuhkn untuk melakukan serangan, berarti semakin bagus kriptografi tersebut. 3. Kompleksitas ruang memori (space/storage complexity) Jumlah memori yang dibutuhkan untuk melakukan serangan. Semakin banyak memori yang dibutuhkan untuk melakukan serangan, berarti semakin bagus sistem kriptografi tersebut.
2.5. Algoritma Kriptografi Dipandang dari segi era pengembangannya, ilmu kriptografi dibagi menjadi dua, yaitu kriptografi klasik dan kriptografi modern. 2.5.1
Kriptografi Klasik Kriptografi klasik merupakan teknik kriptografi yang sudah digunakan pada zaman dahulu sebelum komputer ditemukan atau sudah ditemukan namun belum secanggih sekarang. Kriptografi klasik ini melakukan pengacakan huruf atau plaintext. Kriptografi ini hanya melakukan 2-16
http://digilib.mercubuana.ac.id/
pengacakan pada huruf A – Z, kriptografi semacam ini sangatlah tidak disarankan untuk mengamankan informasi-informasi penting karena dapat dipecahkan dalam waktu singkat. Salah satu contoh algoritma dari kriptografi klasik adalah vigenere cipher. Vigenere cipher adalah jenis algoritma kriptografi klasik yang ditemukan oleh Giovan Battista Bellaso. Salah satu metode untuk melakukan enkripsi dengan
algoritma
ini
yaitu
dengan
menggunakan
tabula
recta
(bujursangkar vigenere).
Gambar 2-5 Contoh Tabula Recta Algoritma Kriptografi Vigenere Cipher (Sumber: Munir, 2006:11)
Kolom paling kiri dari bujursangkar menyatakan huruf-huruf kunci, sedangkan baris paling atas menyatakan huruf-huruf plaintext. Setiap baris di dalam bujursangkar menyatakan huruf-huruf ciphertext yang diperoleh dengan caesar cipher, yang mana jumlah pergeseran huruf plaintext ditentukan nilai numerik huruf kunci tersebut (yaitu, a=0, b=1, c=2, ..., z=25). Jika plaintext adalah ADIKS dan kunci adalah KUNCI maka penggunakaan kunci secara periodiknya adalah sebagai berikut: 2-17
http://digilib.mercubuana.ac.id/
Plaintext : ADIKS Kunci : KUNCI Ciphertext : KXVMA Untuk mendapatkan ciphertext dari teks dan kunci di atas, untuk huruf plaintext pertama A, ditarik garis vertikal dari huruf A dan ditarik garis mendatar dari huruf k, perpotongannya adalah pada kotak yang berisi huruf K. Dengan cara yang sama, ditarik garis vertikal dari huruf D dan ditarik garis mendatar pada huruf u, perpotongannya adalah pada kotak yang juga berisi berisi huruf X begitu juga untuk karakter berikutnya, maka dapat dihasilkan ciphertext KXVMA. 2.5.2
Kriptografi Modern Kriptografi modern merupakan teknik kriptografi yang beroperasi dalam mode bit ketimbang mode karakter. Pengoprasi kriptografi ini dalam mode bit berarti semua data dan informasi (kunci, plaintext, maupun ciphertext) semua dinyatakan dalam rangkaian string ataupun bit biner 0 dan 1. Teknik enkripsi dan dekripsinya pun memproses semua data dan informasi dalam bentuk rangkaian bit. Rangkaian bit yang menyatakan plaintext dienkripsi menjadi ciphertext dalam bentuk rangkaian bit, demikian sebaliknya. Berdasarkan kunci yang digunakan untuk proses enkripsi dan dekripsi, Kriptografi terdiri dari dua macam, yaitu kriptografi simetri (symmetric
cryptography)
dan
kriptografi
asimetri
(asymmetric
cryptography). 2.5.2.1 Algoritma Simetris Algoritma Simetris adalah algoritma yang menggunakan kunci yang sama untuk enkripsi dan dekripsinya. Algoritma kriprografi simetris sering disebut algoritma kunci rahasia, algoritma kunci tunggal, atau algoritma satu kunci, dan mengharuskan pengirim dan penerima menyetujui suatu kunci tertentu. Kelebihan dari algoritma simetris ini adalah proses enkripsi dan dekripsi membutuhkan waktu yang singkat dibandingkan dengan algoritma asimetris. Sedangkan kelemahan dari algoritma simetris ini adalah terletak pada pengiriman kunci. Seperti yang telah dibahas, proses enkripsi dan dekripsi menggunakan kunci yang sama sehingga kerahasiaan kunci tersebut harus dijaga. 2-18
http://digilib.mercubuana.ac.id/
Gambar 2-6 Proses Enkripsi dan Dekripsi Algoritma Simetris Sumber: http://www.laits.utexas.edu/
2.5.2.2 Algoritma Asimetris Algoritma Asimetris adalah pasangan kunci kriptografi yang salah satunya digunakan untuk proses enkripsi dan satu lagi dekripsi. Semua orang yang mendapatkan kunci publik dapat menggunakannya untuk mengenkripsi suatu pesan, sedangkan hanya satu orang saja yang memiliki rahasia itu, yang dalam hal ini kunci rahasia, untuk melakukan pembongkaran terhadap kode yang dikirim untuknya. Untuk memperoleh atribut ini, algoritma dirancang pada mekanisme yang sulit untuk dipecahkan secara matematika. Dalam algoritma asimetris kunci enkripsi dibuka, sehingga siapapun yang ingin berkomunikasi dapat menggunakannya. Tetapi untuk kunci dekripsinya hanya satu pihak saja yang mempunyai kunci tersebut. Oleh karena itu, kunci yang digunakan untuk enkripsi disebut kunci publik, sedangkan kunci yang digunakan untuk dekripsi disebut kunci pribadi atau kunci rahasia. Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA (merupakan singkatan dari nama penemunya, yakni Rivest, Shamir dan Adleman).
Gambar 2-7 Proses Enkripsi dan Dekripsi Algoritma Asimetris Sumber: http://www.laits.utexas.edu/
2-19
http://digilib.mercubuana.ac.id/
Dalam algoritma asimetris ini memiliki banyak kelebihan dan kekurangan diantaranya: -Kelebihan algoritma asimetris: 1. Hanya kunci privat yang perlu dijaga kerahasiaannya oleh setiap entitas yang berkomunikasi (tetapi, otentikasi kunci publik tetap harus terjamin). Tidak ada kebutuhan mengirim kunci privat sebagaimana pada sistem simetris. 2. Pasangan kunci publik/kunci privat tidak perlu diubah, bahkan dalam periode waktu yang panjang. 3. Dapat digunakan untuk mengamankan pengiriman kunci simetris. 4. Beberapa algoritma kunci publik dapat digunakan untuk memberi tanda tangan digital pada pesan. -Kelemahan algoritma asimetris: 1. Enkripsi dan dekripsi data umumnya lebih lambat daripada sistem simetris, karena enkripsi dan dekripsi menggunakan bilangan yang besar dan melibatkan operasi perpangkatan yang besar. 2. Ukuran ciphertext lebih besar daripada plaintext (bisa dua sampai empat kali ukuran plaintext). 3. Ukuran kunci relatif lebih besar daripada ukuran kunci simetris. 4. Karena kunci publik diketahui secara luas dan dapat digunakan setiap orang, maka ciphertext tidak memberikan mengenai otentikasi pengirim. 5. Tidak ada algoritma kunci publik yang terbukti aman. Kebanyakan algoritma
mendasarkan
keamanan
pada
sulitnya
memecahkan
persoalan-persoalan aritmetik yang menjadi dasar pembangkit kunci. Kriptografi kunci publik juga tidak aman dari serangan man in the middle attack. Orang di ”tengah” mengintersepsi komunikasi lalu berpura-pura sebagai salah satu pihak yang berkomunikasi untuk mengetahui informasi rahasia. 2.6. Algoritma Konversi Biner Dalam penelitian ini algoritma yang dipakai yaitu algoritma kriptografi vigenere cipher dan algoritma konversi biner 8 bit. Dimana hasil dari
2-20
http://digilib.mercubuana.ac.id/
plaintext tersebut di konversi ke dalam bentuk biner (8 bit). Algoritma konversi biner adalah pengembangan algoritma vigenere cipher. 2.7. Tools Pengembangan Aplikasi 2.7.1
PHP PHP adalah sebuah bahasa pemrograman yang diperintahnya dilaksanakan pada server dan kemudian hasilnya ditampilkan pada komputer klien. PHP juga merupakan HTML embedded, yaitu perintah PHP dituliskan bersamaan dengan perintah-perintah HTML. Dapat dikatakan tanpa HTML, maka PHP dapat digunakan sebagaimana mestinya. HTML (HyperText Markup Language) sendiri merupakan bahasa untuk membuat tampilan web. Jadi, disini ada sinergi dari dua bahasa yang saling menguatkan, yaitu PHP dan HTML. Menurut dokumen resmi PHP, PHP singkatan dari Hypertext Preprocessor yang merupakan bahasa berbentuk skrip yang ditempatkan dalam server dan diproses di server. Hasilnyalah yang dikirimkan ke klien, tempat pemakai menggunakan browser. Secara khusus, PHP dirancang untuk membentuk web dinamis. Artinya, dapat membentuk suatu tampilan berdasarkan permintaan terkini. Misalnya, bisa menampilkan isi database ke halaman Web. Pada prinsipnya, PHP mempunyai fungsi yang sama dengan skrip-skrip seperti ASP (Active Server Page), Cold Fusion, ataupun Perl. Kelahiran PHP bermula saat Rasmus Lerdorf membuat sejumlah skrip Perl yang dapat mengamati siapa saja yang melihat-lihat daftar riwayat hidupnya, yakni pada tahun 1994. Skrip-skrip ini selanjutnya dikemas menjadi tool yang disebut “personal home page”, paket inilah yang menjadi cikal-bakal PHP. Pada tahun 1995, Rasmus menciptakan PHP/FI versi 2. pada versi inilah pemrogram dapat menempelkan kode terstruktur didalam tag HTML. Yang menarik, kode PHP juga bisa berkomunikasi dengan database dan melakukan perhitungan-perhitungan yang kompleks sambil jalan. Pada saat ini, PHP cukup popular sebagai piranti pemrograman Web, terutama di lingkungan Linux. Walaupun demikian, PHP sebernarnya juga
2-21
http://digilib.mercubuana.ac.id/
dapat berfungsi pada server-server yang berbasis UNIX, Windows NT, dan Macintosh. Bahkan versi untuk Windows 95/98 pun tersedia. Dikutip dari situs w3techs.com, (diakses pada 22 April 2016), berikut adalah market share penggunaan bahasa pemrograman server-side untuk mayoritas website di seluruh dunia :
Gambar 2-8 Market Share Penggunaan Bahasa Pemrograman Server-Side Sumber: http://www.w3techs.com
2.7.1.1 Kelebihan PHP Di antara maraknya pemrograman server web saat ini adalah ASP.Net, JSP, CFM dan PHP. Jika dibandingkan di antara ketiga pemrograman server web di atas terdapat kelebihan dari PHP itu sendiri yaitu : 1. PHP merupakan sebuah bahasa script yang tidak melakukan sebuah kompilasi dalam penggunaannya. Tidak seperti hanya pemrograman aplikasi seperti Visual Basic dan sebagainya. 2. PHP dapat berjalan pada web server yang dirilis oeh Microsoft seperti IIS atau PWS juga pada apache yang bersifat open source. 3. Karena
sifatnya
yang
open
source
maka
perubahan
dan
perkembangan interpreter pada PHP lebih cepat dan mudah karena banyak milis dan developer membantu pengembangannya.
2-22
http://digilib.mercubuana.ac.id/
4. PHP dapat berjalan pada tiga sistem operasi yaitu linux, Unix dan Windows dan juga dapat dijalankan secara runtime pada suatu console. 5. Cepat dan powerfull. PHP mampu membuat halaman dinamis, memanipulasi form dan dapat dihubungkan dengan database. 2.7.1.2 Sintaks PHP Script PHP menyatu dengan file HTML, dieksekusi dan bekerja di komputer server (server side). PHP banyak digunakan untuk membuat website yang dinamis. Dibawah ini adalah salah satu contoh bagaimana script PHP menyatu dalam file HTML: Sample.php 1 2
3
sample php
4
5
6 7
8 9
echo “uji sample php “; ?>
10 11
12 Baris ke-1 hingga ke-6 dan baris-10 hingga ke-12 adalah file HTML. Script PHP disisipkan pada baris ke-7 yang diawali dengan tag pembuka pada baris ke9. 2.7.2
Notepad++ Notepad++ adalah suatu text editor yang berjalan pada Operating System(OS) Windows. Notepad++ disini menggunakan komponenkomponen Scintilla agar dapat menampilkan dan menyunting text dan 2-23
http://digilib.mercubuana.ac.id/
berkas
source
code
berbagai
bahasa
pemrograman.
Notepad++
didistribusikan sebagai Free Software (gratis) Proyek ini dilayani oleh Sourceforge.net dengan telah diunduh lebih dari 27 juta kali dan dua kali memenangkan penghargaan SourceForge Community Choice Award for Best Developer Tool. Pengembang dari Notepad++ disini adan Don Ho yang diriliskan pada tanggal 24 November 2003, dengan memiliki license dari GNU General Public License dengan ukuran program yang kecil yaitu 5.5MB. Bahasa pemrograman yang didukung oleh notepad++ adalah bahasa C++ karena fungsi-fungsinya yang dimasukan kedalam daftar fungsi dan kata-katanya akan berubah sesuai dengan makna kata C++. Berikut ini adalah bahasa pemrograman yang didukung oleh Notepad++ :
ActionScript, Ada, ASP, Assembler, autoIt
Batch
C, C++, C#, Caml, Cmake, COBOL, CSS
D, Diff
Flash ActionScript, Fortran
Gui4CLI
Haskell, HTML
Berkas INI, InnoSetup
Java, Javascript, JSP
KiXtart
LISP, Lua
Makefile, Matlab, MS-DOS
NSIS
Objective-C
Pascal, Perl, PHP, Postscript, PowerShell, Properties file, Python
R, Resource file, Ruby
Shell, Scheme, Smalltalk, SQL
TCL, TeX
XML
YAML
Dan kali ini saya ingin memberitahu kenapa kita menggunakan notepad++ untuk membuat Web Programming yang biasa memakai bahasa 2-24
http://digilib.mercubuana.ac.id/
pemrograman HTML, PHP, Javascript, SQL, CSS, sedangkan masih ada banyak software lain yang lebih canggih dalam pembuatan web programming
selain
notepad++
seperti
Dreamweaver,
Bluefish,
Eclipse, CoffeeCup Free HTML Editor.
Gambar 2-9 Tampilan Notepad++
2.7.2.1 Keunggulan Notepad++ Dalam Software Web Programming 1. Simple, Ringan dan Cepat dibandingkan dengan text editor lainnya, notepad++ tidak perlu menunggu loading opening library, terlebih seperti pada software adobe dreamweaver dan eclipse apa lagi untuk PC / Laptop yang memiliki specification yang rendah. 2. Bracket Matching atau bisa dibilang mengumpulkan yang sesuai (berpasangan), biasanya digunakan pada saat menuliskan syntax percabangan, perulangan dan bagian utama program. Fungsi ini berguna untuk kita jika menuliskan block program yang panjang dan terkadang kita lupa untuk menutup block program yang telah kita buat 3. Syntax Highlighting tampilan source code, disini kita bisa melihat warna pada setiap fungsi dari syntax. Jadi kita tidak bingung menggolongkan kegunaan syntax yang kita tulis dan dapat dibaca dengan mudah. Contoh tulisan yang berwarna hijau biasanya terdapat pada statment jika kita menuliskan komentar pada sebuah program. 4. Syntax Folding atau melipat source code, ini hampir sama seperti bracket matching sebelumnya. Jika bracket matching digunakan untuk menunjukan awal dan akhir suatu block program. Syntax Folding disini 2-25
http://digilib.mercubuana.ac.id/
tidak jauh beda tetapi, digunakan untuk menyembunyikan block program tertentu agar terlihat lebih ringkas tampilannya agar programmer tidak perlu melihat seluruh syntaxnya apa lagi jika sudah sampai lebih 1000 baris lebih. 5. Quick Color Picker++ fungsi ini berguna pada saat kita menuliskan kode warna pada html atau pun CSS tetapi tidak harus menuliskan kodenya terlebih jika kita lupa kode pada warna yang kita inginkan, biasanya akan muncul kotak dengan banyak aneka warna yang kita tinggal pilih, setelah memilih nanti kode warna tersebut akan muncul. 6. FingerText, biasa digunakan untuk menuliskan bahasa PHP di notepad++, fungsi ini berfungsi untuk memudahkan pengetikan syntax dengan kata tertentu sebagai pemicu/trigger dan menggantikannya dengan menekan tombol TAB. Contoh kata g akan berubah menjadi $_GET. 2.7.3
XAMPP Xampp merupakan suatu paket yang terdiri dari Apache, MySQL, PHP, dan Perl yang dapat digunakan untuk membantu proses instalasi produk tersebut. XAMPP merupakan pengembangan dari LAMP (Linux Apache, MySQL, PHP and PERL), XAMPP merupakan project non profit yang dikembangkan oleh Apache Friends yang didirikan Kai ’Oswalad’, Seidler dan Kay Vogelgesang pada tahun 2002, project mereka ini bertujuan mempromosikan penggunaan Apache Web Server. Xampp ditemukan pada musim semi tahun 2002. Adapun keuntungan dari Xampp antara lain: 1. Xampp dapat berjalan pada operating system Linux dan Windows. Dan kemungkinan juga akan berjalan di Machintosh. 2. Mudah bagi programmer apabila ingin berganti versi PHP, cukup melakukan switch versi. 3. Mudah dan cepat dalam proses instalasi.
2-26
http://digilib.mercubuana.ac.id/
Gambar 2-10 Logo XAMPP Sumber: http://www.google.com
2.7.4
Web Browser Web browser berfungsi sebagai perangkat lunak yang berguna untuk mengakses informasi web ataupun untuk melakukan transaksi via web. Beberapa contoh browser yang ada saat ini seperti: Internet Explorer, Mozila Firefox, Opera, Netscape, Safari. Cara kerja browser yaitu dengan membaca dokumen HTML yang diambil dari web server melalui ISP sebagai koneksi internet, kemudian ditampilkan melalui browser pada komputer. Web browser berkomunikasi dengan web server lewat jaringan komunikasi mengunakan protokol HTTP. Browser mengirim pesan meminta dokumen atau layanan tertentu web server. Web server kemudian menanggapi dengan mengirim dokumen atau menjalankan layanan tertentu di server dan mengirim hasil menggunakan protokol HTTP. Kemudian browser akan menerima dokumen (HTML) tanggapan dari web server dan menampilkannya dilayar. Protokol HTML dirancang untuk dapat menggabung semua protokol internet seperti Goper, Telnet, WAIS, dan sebagainya dalam satu protokol tunggal. Semua layanan protokol lain dikemas sebagai layanan-layanan yang disediakan lewat interaksi web browser dan web server.
2.8. Diagram Alir (Flowchart) Pemakaian komputer dewasa ini telah sedemikian pesatnya sejalan dengan kemajuan teknologi komputer itu sendiri. Kebanyakan komputer digunakan untuk memproses dan menyimpan data informasi. Untuk melakukan tugastugas tersebut komputer harus diprogram terlebih dahulu. Sebelum sebuah program dibuat alangkah baiknya kalau dibuat logika atau urutan-urutan intruksi program dalam suatu diagram yang disebut diagram alir (flowchart).
2-27
http://digilib.mercubuana.ac.id/
Diagram alir merupakan suatu urutan-urutan logika atau langkah-langkah pembuatan program. Dapat disimpulkan bahwa flowchart adalah intruksi dari suatu program yang digambarkan dengan menggunakan simbol-simbol khusus. 2.9. UML (Unified Modeling Language) Permodelan (modeling) adalah proses merancang peranti lunak (software) sebelum melakukan pengkodean (coding). Model peranti 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 kompleks sebuah sistem, semakin penting pula penggunaan teknik permodelan yang baik. Dengan menggunakan model, diharapkan pengembangan peranti lunak dapat memenuhi semua kebutuhan pengguna dengan lengkap dan tepat, termasuk faktor-faktor seperti scalability, robustness, security, dan sebagainya. Unified Modeling Language (UML) adalah sebuah ”bahasa” yang telah menjadi
standar
dalam
industri
untuk
visualisasi,
merancang
dan
mendokumentasikan sistem peranti lunak. UML menawarkan sebuah standar untuk merancang model sebuah sistem. Dalam aplikasi ini menggunakan 2 buah diagram yaitu use case diagram dan activity diagram. 2.9.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 pekerjaanpekerjaan tertentu. Use case diagram dapat sangat membantu bila kita sedang menyusun requirement sebuah sistem, mengkomunikasikan rancangan dengan klien, dan merancang test case untuk semua feature yang ada pada sistem. Sebuah dapat meng-include fungsionalitas use case lain sebagai bagian 2-28
http://digilib.mercubuana.ac.id/
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 di-include oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang common. Sebuah use case juga dapat mengextend use case lain dengan behaviour-nya sendiri. Sementara hubungan generalisasi antar use case menunjukkan bahwa use case yang satu merupakan spesialisasi dari yang lain (Wahono, R.S, 2003).
2-29
http://digilib.mercubuana.ac.id/
Tabel 2.1 Simbol-simbol Pada Use Case Diagram No
Gambar
1
Nama
Keterangan
Actor
Menspesifikasikan himpunan peran yang pengguna mainkan ketika berinteraksi dengan use case
2
Depedency
3
Generalization
4
Include
5
Extend
6
Association
7
System
8
Use Case
9
Collaboration
10
Note
2.9.2
Hubungan dimana perubahan yang terjadi pada suatu elemen mandiri (independent) akan mempengaruhi elemen yang bergantung padanya elemen yang tidak mandiri Hubungan dimana objek anak (descendent) berbagi perilaku dan struktur data dari objek yang ada di atasnya objek induk (ancestor) Menspesifikasikan bahwa use case sumber secara eksplisit Menspesifikasikan bahwa use case target memperluas perilaku dari use case sumber pada suatu titik yang diberikan Apa yang menghubungkan antara objek satu dengan objek lainnya Menspesifikasikan paket yang menampilkan sistem secara terbatas Deskripsi dari urutan aksi-aksi yang ditampilkan sistem yang menghasilkan suatu hasil yang terukur bagi suatu actor Interaksi aturan-aturan dan elemen lain yang bekerja sama untuk menyediakan perilaku yang lebih besar dari jumlah dan elemenelemennya (sinergi) Elemen fisik yang eksis saat aplikasi dijalankan dan mencerminkan suatu sumber daya komputasi
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. 2-30
http://digilib.mercubuana.ac.id/
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. 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. 2.9.3
Class Diagram Class diagram adalah gambaran secara grafis mengenai struktur objek statis dari suatu sistem, menunjukkan kelas-kelas objek yang menyusun sebuah sistem dan juga hubungan antara kelas objek tersebut.
Tabel 2.2 Simbol-simbol Pada Class Diagram No
Gambar
Nama
Keterangan Hubungan dimana objek anak (descendent) berbagi perilaku dan struktur data dari objek yang ada di atasnya objek induk (ancestor)
1
Generalization
2
Nary Association
Upaya untuk menghindari asosiasi dengan lebih dari 2 objek
3
Class
Himpunan dari objek-objek yang berbagi atribut serta operasi yang sama
4
Collaboration
Interaksi aturan-aturan dan elemen lain yang bekerja sama untuk menyediakan perilaku yang lebih besar dari jumlah dan elemenelemennya (sinergi)
5
Realization
Operasi yang benar-benar dilakukan oleh suatu objek
6
Depedency
7
Association
Hubungan dimana perubahan yang terjadi pada suatu elemen mandiri (independent) akan mempengaruhi elemen yang bergantung padanya elemen yang tidak mandiri Apa yang menghubungkan antara objek satu dengan objek lainnya 2-31
http://digilib.mercubuana.ac.id/