BAB 2 LANDASAN TEORI 2.1 Kriptografi Kriptografi

advertisement
BAB 2
LANDASAN TEORI
2.1
Kriptografi
Kriptografi berasal dari bahasa yunani, terdiri dari dua suku kata yaitu kripto
dan graphia. Kripto artinya menyembunyikan, sedangkan graphia artinya tulisan.
Kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang
berhubungan dengan aspek keamanan informasi, seperti kerahasiaan data, keabsahan
data, integritas data, serta autentikasi data. Tetapi tidak semua aspek keamanan
informasi dapat diselesaikan oleh kriptografi. Kriptografi dapat pula diartikan
sebagai ilmu atau seni untuk menjaga keamanan pesan.
Kriptografi menjadi dasar bagi keamanan komputer dan jaringan karena yang
menjadi pokok dari fungsi komputer dan jaringan adalah data ataupun informasi.
Komputer dan jaringannya menjadi sarana bagi distribusi data dan informasi, maka
data dan informasi tersebut harus diamankan agar hanya orang-orang yang berhak
mengaksesnya yang dapat mengetahui maupun menggunakan data tersebut. Salah
satu cara yang paling banyak digunakan dalam mengamankan data adalah dengan
kriptografi.
Enkripsi adalah sebuah proses penyandian yang melakukan perubahan sebuah
kode pesan dari yang biasa dimengerti menjadi sebuah kode yang tidak dapat
dimengerti. Sedangkan proses kebalikan dari enkripsi disebut dengan dekripsi.
Proses enkripsi dan dekripsi memerlukan suatu mekanisme dari kunci tertentu yang
merupakan bagian dari kriptografi.
Ada empat tujuan mendasar dari kriptografi yang juga merupakan aspek
keamanan informasi, yaitu :
1.
Kerahasiaan, adalah aspek yang berhubungan dengan penjagaan isi informasi
dari siapapun kecuali yang memiliki otoritas atau kunci rahasia untuk
membuka informasi yang telah dienkripsi.
2.
Integritas Data, adalah aspek yang berhubungan dengan penjagaan dari
perubahan data secara tidak sah. Untuk menjaga integritas data, sistem harus
memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak yang
tidak berhak.
7
8
3.
Autentikasi, adalah aspek yang berhubungan dengan indetifikasi atau
pengenalan baik secara kesatuan sistem maupun informasi itu sendiri.
Dua pihak yang saling berkomunikasi harus saling memperkenalkan diri.
Informasi yang dikirim harus diautentikasi keaslian, isi datanya, waktu
pengiriman, dan lain-lain.
4.
Non-repudiation (menolak penyangkalan), adalah usaha untuk mencegah
terjadinya penyangkalan terhadap pengiriman suatu informasi oleh yang
mengirimkan, atau harus dapat membuktikan bahwa suatu pesan berasal dari
seseorang, apabila ia menyangkal mengirim informasi tersebut.
2.2
Sejarah kriptografi
Kriptografi sudah digunakan sekitar 40 abad yang lalu oleh orang-orang Mesir
untuk mengirim pesan ke pasukan yang berada di medan perang dan agar pesan
tersebut tidak terbaca oleh pihak musuh walaupun pembawa pesan tersebut
tertangkap oleh musuh. Sekitar 400 SM, kriptografi digunakan oleh bangsa Spartan
dalam bentuk sepotong papirius atau perkamen yang dibungkus dengan batang kayu.
Pada zaman Romawi, Julius Caesar telah menggunakan teknik kriptografi yang
sekarang dianggap kuno dan sangat mudah dibobol untuk keperluan militernya.
Metode yang digunakan oleh Julius Caesar ini sering dianggap awal dari kriptografi.
Informasi lengkap mengenai sejarah kriptografi dapat ditemukan didalam buku
David Kahn yang berjudul The Codebreakers. Buku yang tebalnya 1000 halaman ini
menulis secara rinci sejarah kriptografi mulai dari penggunaan kriptografi oleh
bangsa Mesir 4000 tahun yang lalu (berupa hieroglyph yang tidak standard pada
piramid) hingga penggunaan kriptografi pada abad ke-20. Sampai pada akhir perang
dunia pertama, kriptografi merupakan disiplin ilmu matematika yang hanya
dipelajari oleh orang-orang tertentu saja. Penelitian bidang ini tidah pernah sampai
kepada umum. Kriptografi juga digunakan di kalangan militer. Pada perang dunia ke
2, 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 chiper berhasil dipecahkan oleh
pihak sekutu dan keberhasilan memecahkan Enigma sering dikatakan sebagai faktor
yang memperpendek perang dunia II.
9
Perkembangan komputer dan sistem komunikasi pada tahun 60-an berdampak
pada permintaan dari sektor-sektor privat sebagai sarana untuk melindungi informasi
dalam bentuk digital dan untuk menyediakan layanan keamanan. Dimulai dari usaha
Feistel pada IBM diawal tahun 70an dan mencapai puncaknya pada 1977 dengan
pengangkatan DES (Data Encryption Standard) sebagai standar pemrosesan
informasi federal US untuk mengenkripsi informasi federal US untuk mengenkripsi
informasi yang unclassified. DES merupakan mekanisme kriptografi yang paling
dikenal sepanjang sejarah.
2.3
Algoritma
2.3.1 Pengertian algoritma
Algoritma adalah kumpulan urutan perintah yang menentukan operasi-operasi
tertentu yang diperlukan untuk menyelesaikan suatu masalah ataupun mengerjakan
suatu tugas tertentu. Algoritma merupakan urutan langkah instruksi yang logis.
Setiap langkah instruksi mengerjakan suatu tindakan aksi. Apabila suatu aksi
dilaksanakan, maka operasi atau sejumlah operasi yang bersesuaian dengan aksi itu
dikerjakan oleh pemroses. Bila data yang digunakan benar, maka algoritma akan
selalu berhenti dengan memberikan hasil yang benar pula. Pembuatan algoritma
harus selalu dikaitkan dengan :
a.
Kebenaran algoritma, yakni bila program selesai maka hasilnya juga benar
b.
Kompleksitas, lama dan jumlah waktu proses dan penggunaan memori.
Ciri dari algoritma:
•
Tepat sasaran
•
Fleksibel dan portable
•
Bersih dari kesalahan system ataupun logika
•
Murah dan efisien
•
Cepat waktu
•
Didokumentasikan
10
2.3.2 Definisi algoritma
Beberapa definisi dari kata Algoritma adalah sebagai berikut:
a.
Kamus Besar Bahasa Indonesia
Algoritma adalah urutan logis pengambilan keputusan untuk pemecahan
masalah.
b.
Abu Ja’far Muhammad Ibnu Musa Al-Khwarizmi
Algorima adalah langkah - langkah logis penyelesaian masalah yang disusun
secara sistematis dan logis.
c.
Goodman Hedetniemi
Algoritma adalah urutan-urutan terbatas dari operasi yang terdefinisi dengan
baik, yang masing-masin membutuhkan memory dan waktu yang terbatas
untuk menyelesaikan suatu masalah.
2.3.3 Sifat algoritma
Sifat-sifat dari algoritma adalah :
1.
Input
Sifat ini berarti algoritma harus memiliki kondisi awal sebelum dilaksanakan.
2.
Output
Sifat ini berarti algoritma menghasilkan suatu keluaran setelah dilaksanakan.
3.
Definitif
Sifat ini berarti, langkah – langkah dari algoritma sudah terdefinisi secara jelas.
4.
Finit
Sifat ini berarti , algoritma melakukan langkah yang terbatas jumlahnya dalam
mengolah input menjadi output.
5.
Efektif
Sifat ini berarti, algoritma dapat memberi sebuah solusi sesuai harapan.
6.
General
Sifat ini berarti, algoritma berlaku untuk setiap himpunan input.
2.4
Algoritma kriptografi
Menurut Bruce Schneier, Algoritma kriptografi atau sering disebut dengan
cipher adalah suatu fungsi matematis yang digunakan untuk melakukan enkripsi dan
dekripsi. Ada dua macam algoritma kriptografi, yaitu algoritma simetris (symmetric
algorithms) dan algoritma asimetris (asymmetric algorithms).
11
2.4.1 Algoritma simetris
Algoritma simetris adalah algoritma kriptografi yang menggunakan kunci
enkripsi yang sama dengan kunci dekripsinya. Algoritma ini mengharuskan pengirim
dan penerima menyetujui suatu kunci tertentu sebelum mereka saling berkomunikasi.
Keamanan algoritma simetris tergantung pada kunci, membocorkan kunci berarti
bahwa orang lain dapat mengenkripsi dan mendekripsi pesan. Agar komunikasi tetap
aman, kunci harus tetap dirahasiakan.
Sifat kunci yang seperti ini membuat pengirim harus selalu memastikan bahwa
jalur yang digunakan dalam pendistribusian kunci adalah jalur yang aman atau
memastikan bahwa seseorang yang ditunjuk membawa kunci untuk dipertukarkan
adalah orang yang dapat dipercaya. Masalahnya akan menjadi rumit apabila
komunikasi dilakukan secara bersama-sama oleh sebanyak n pengguna dan setiap
dua pihak yang melakukan pertukaran kunci, maka akan terdapat sebanyak
=
kunci rahasia yang harus dipertukarkan secara aman.
Kunci
A
Plainteks
enkripsi
Chiperteks
dekripsi
Plainteks
B
Gambar 2.1 Skema Algoritma Simetris
2.4.2 Algoritma asimetris
Algoritma asimetris, sering juga disebut dengan algoritma kunci publik,
menggunakan dua jenis kunci, yaitu kunci publik (public key) dan kunci rahasia
(secret key). Kunci publik merupakan kunci yang digunakan untuk mengenkripsi
pesan. Sedangkan kunci rahasia digunakan untuk mendekripsi pesan.
Kunci publik bersifat umum, artinya kunci ini tidak dirahasiakan sehingga
dapat dilihat oleh siapa saja. Sedangkan kunci rahasia adalah kunci yang
dirahasiakan dan hanya orang-orang tertentu saja yang boleh mengetahuinya.
12
Keuntungan utama dari algoritma ini adalah memberikan jaminan keamanan
kepada siapa saja yang melakukan pertukaran informasi meskipun di antara mereka
tidak ada kesepakatan mengenai keamanan pesan terlebih dahulu maupun saling
tidak mengenal satu sama lainnya.
Kunci Publik
Plainteks
Kunci Rahasia
Chiperteks
A
enkripsi
Plainteks
dekripsi
B
Gambar 2.2 Skema Algoritma Asimetris
2.4.3 Penentuan bilangan prima
Tujuan penentuan bilangan prima adalah untuk mempermudah dalam
penentuan elemen primitif.
Digunakan bilangan prima p sehingga
p 2.q + 1
dengan q adalah bilangan prima sehingga nilai minimal p adalah 5 dan q adalah 2.
Bilangan prima p tersebut disebut sebagai bilangan prima.
Langkah penentuan bilangan prima tersebut dinyatakan sebagai berikut:
a.
Tentukan bilangan prima p ≥ 5
b.
Hitung q dengan “persamaan (2)”
c.
Jika q merupakan bilangan prima, maka p merupakan bilangan prima aman.
d.
Jika q bukan merupakan bilangan prima, maka p bukan merupakan bilangan
prima aman.
Untuk menguji keprimaan suatu bilangan, digunakan suatu metode yang
disebut Teorema Fermat.
Teorema Fermat
Jika x adalah bilangan prima dan y adalah bilangan bulat yang tidak habis
dibagi dengan x, yaitu PBB(y,x) = 1,
maka y
x-1 ≡ 1 (mod p)
13
2.4.4 Penentuan elemen primitif
Teorema:
Suatu elemen yang membangun
mod p. Bila
mod p
1 dan
adalah elemen primitif dari
disebut elemen primitif (primitive root)
mod p
1. Jika keduanya dipenuhi, maka α
.
Langkah penentuan elemen primitif tersebut dapat dinyatakan sebagai berikut:
a.
Tentukan bilangan prima p ≥ 5 dan α ∈ Zp *
b.
Hitung q dengan “persamaan (2)”
c.
Hitung
d.
Jika
mod p dan
mod p.
mod p = 1 atau
mod p = 1, maka α bukan merupakan elemen
mod p ≠ 1 dan
mod p ≠ 1, maka α bukan merupakan elemen
primitif.
e.
Jika
primitif.
2.4.5 Pembentukan kunci berdasarkan bilangan prima dan elemen primitif
Setelah bilangan prima dan elemen primitif diperoleh, kunci publik dan kunci
rahasia untuk algoritma ElGamal dapat dibentuk. Algoritma ElGamal dalam bentuk
prosesnya menggunakan bilangan bulat untuk perhitungan. Oleh karena itu, pesan
yang terkandung dalam plaintext harus dalam bentuk bilangan bulat.
Untuk memenuhi persyaratan tersebut, digunakan kode ASCII (American
Standard for Information Interchange) yang merupakan representasi numeric dari
karakter-karakter yang digunakan dalam komputer, serta mempunyai nilai minimum
0 dan maksimal 255.
Selanjutnya, dengan kondisi-kondisi tersebut, pembentukan kunci dapat
dibentuk dengan mengacu pada langkah berikut:
a.
Tentukan bilangan prima p ≥ 5 dan α ∈ Zp *
b.
Pilih a ∈{0,1,..., p − 2} sembarang.
c.
Hitung nilai β dengan rumus β =
mod p
Diperoleh kunci publik (p, α, β) yang dapat dipublikasikan serta nilai kunci
rahasia a yang dirahasiakan nilainya. Pihak yang membuat kunci publik dan kunci
rahasia merupakan pihak penerima pesan. Sedangkan pihak pengirim hanya
mengetahui kunci publik dari penerima untuk mengenkripsi pesan yang akan dikirim.
14
2.4.6 Proses pembuatan kunci
Proses pertama adalah pembentukan kunci yang terdiri dari kunci rahasia dan
kunci publik. Pada proses ini dibutuhkan sebuah bilangan prima p yang digunakan
untuk membentuk grup
, elemen primitif α dan sebarang a
{0,1,..., p -2}.
Kunci publik algoritma ElGamal berupa pasangan 3 bilangan, yaitu ( p, α, β), dengan
persamaan yang digunakan sebagai berikut.
ߚ=
mod p
Sedangkan kunci rahasianya adalah bilangan a tersebut.
Karena pada algoritma ElGamal menggunakan bilangan bulat dalam proses
perhitungannya, maka pesan harus dikonversi ke dalam suatu bilangan bulat. Untuk
mengubah pesan menjadi bilangan bulat, digunakan kode ASCII (American Standard
for Information Interchange). Kode ASCII merupakan representasi numerik dari
karakter-karakter yang digunakan pada komputer, serta mempunyai nilai minimal 0
dan maksimal 255. Oleh karena itu, berdasarkan sistem kriptografi ElGamal di atas
maka harus digunakan bilangan prima yang lebih besar dari 255. Kode ASCII
berkorespondensi 1-1 dengan karakter pesan.
Berikut ini diberikan suatu algoritma yang dapat digunakan untuk melakukan
pembentukan kunci. Algoritma Pembentukan Kunci Input : Bilangan prima aman p >
255 dan elemen primitif a
*. Output : Kunci publik (p, α, β) dan kunci rahasia a.
Langkah :
1.
Pilih a
{0,1,..., p -2}.
2.
Hitung ߚ =
3.
Publikasikan nilai p, α, dan β , serta rahasiakan nilai a.
݉‫ ݌ ݀݋‬.
Pihak yang membuat kunci publik dan kunci rahasia adalah penerima,
sedangkan pihak pengirim hanya mengetahui kunci publik yang diberikan oleh
penerima, dan kunci publik tersebut digunakan untuk mengenkripsi pesan. Jadi,
kentungan menggunakan algoritma kriptografi kunci publik adalah tidak ada
permasalahan pada distribusi kunci apabila jumlah pengirim sangat banyak serta
tidak ada kepastian keamanan jalur yang digunakan.
15
2.5
Metode ElGamal
Algoritma ElGamal merupakan algoritma kriptografi asimetris. Pertama kali
dipublikasikan oleh Taher ElGamal pada tahun 1984. Algoritma ini pada mulanya
digunakan untuk digital signature, namun kemudian dimodifikasi sehingga juga bisa
digunakan untuk enkripsi dan dekripsi. Algoritma ini didasarkan atas masalah
logaritma diskret pada grup
Algoritma ElGamal terdiri dari tiga proses, yaitu
proses pembentukan kunci, proses enkripsi dan proses dekripsi. Algoritma ini
merupakan cipher blok, yaitu melakukan proses enkripsi pada blok-blok plaintext
dan menghasilkan blok-blok ciphertext yang kemudian dilakukan proses dekripsi,
dan hasilnya digabungkan kembali menjadi pesan yang utuh dan dapat dimengerti.
Untuk membentuk sistem kriptografi ElGamal, dibutuhkan bilangan prima p
dan elemen primitif grup
Untuk lebih jelasnya mengenai algoritma ElGamal,
berikut ini diberikan suatu sistem kriptografi ElGamal, yaitu sistem kriptografi yang
menggunakan algoritma ElGamal, definisi himpunan-himpunan plaintext, ciphertext
dan kunci, serta proses enkripsi dan dekripsi, seperti diberikan pada penjelasan
berikut ini.
Diberikan bilangan prima p dan sebuah elemen primitif α
P=
*. C =
*×
*. Ditentukan
* dan a {0, 1,..., p - 2}. Didefinisikan
K = {(p, α, a, β) : =
mod p}.
Nilai p, a dan β dipublikasikan, dan nilai a dirahasiakan.
Untuk K = {(p ,α, a, β), plaintext m
dan untuk suatu bilangan acak
rahasia k {0, 1,..., p - 2} didefinisikan
(m, k) = (
)
dengan
dan
. m mod p
untuk
* didefinisikan
(
)=
mod p
16
Algoritma ini disebut Algoritma diskret karena nilainya berhingga dan
bergantung pada bilangan prima yang digunakan. Karena bilangan prima yang
digunakan adalah bilangan prima besar, maka sangat sulit bahkan tidak mungkin
menurunkan kunci privat dari kunci publik yang diketahui walaupun serangan
dilakukan dengan menggunakan sumberdaya komputer yang sangat besar.
ElGamal digunakan dalam perangkat lunak linux dikembangkan oleh GNU
yang merupakan directory dari program PGP serta program keamanan jaringan
lainnya. Keamanan algoritma ini terletak pada sulitnya menghitung algoritma diskrit.
Masalah algortima diskrit adalah, jika p adalah bilangan prima dan g dan y adalah
sembarang bilangan bulat. Carilah x sedemikian
(mod p).
2.5.1 Kelebihan algoritma ElGamal
Algoritma ElGamal dikenal sebagai kriptografi digital signature karena
algoritma ini berfungsi dengan baik untuk mengirimkan sebuah tanda tangan digital
pada sebuah pesan. Kelebihan dari algoritma ElGamal yaitu:
1.
Plaintext yang sama dapat diubah menjadi chipertext yang berbeda, karena
bilangan bulat pada algoritma Elgamal dapat dipilih secara acak untuk
menentukan kunci.
2.
Pada algoritma ElGamal tidak hanya kunci privat yang perlu dijamin
kerahasiannya, tetapi autentikasi kunci publik juga harus tetap dijaga.
3.
Kunci publik dan kunci privat pada algoritma ElGamal tidak perlu diubah
dalam periode waktu yang panjang.
4.
Algoritma ElGamal bisa dimanfaatkan untuk mengirimkan sebuah pesan
rahasia, yaitu dengan menentukan kunci dari sebuah kriptografi simetris.
2.5.2 Proses enkripsi
Pada proses ini pesan dienkripsi menggunakan kunci publik dan sembarang
bilangan acak rahasia yang diterima oleh penerima pesan. Untuk setiap karakter
dalam pesan dienkripsi dengan menggunakan bilangan yang berbeda-beda. Satu
karakter yang direperesentasikan dengan menggunakan bilangan bulat ASCII akan
menghasilkan kode dalam bentuk blok yang terdiri dari atas dua nilai (a,b).
17
Langkah-langkah proses enkripsi :
a.
Ambil sebuah karakter dalam pesan yang akan dienkripsi dan transformasi
karakter tersebut kedalam kode ASCII sehingga diperoleh bilangan bulat.
Plaintext tersebut disusun menjadi blok-blok m1, m2, ..., sedemkian hingga
setiap blok mempresentasikan nilai didalam rentang 0 sampai p-1.
b.
Memillih bilangan acak g (g < p) dan x (x < p)
c.
Hitung y dalam persamaan y = gx mod p
d.
Memilih bilangan acak k, yang dalam hal ini 0 < k < p-1, sedemikian hingga k
relative prima dengan p-1.
e.
Hitung nilai a dan b dengan persamaan berikut :
a=
(mod p)
b=
m (mod p), m disini yaitu bilangan ASCII yang dilihat tiap perkarakter
pesan.
f.
Diperoleh chipertext untuk karakter m tersebut dalam blok (a,b)
g.
Melakukan proses diatas untuk seluruh karakter dalam pesan termasuk karakter
spasi.
2.5.3 Proses dekripsi
Dekripsi dari chipertext ke plaintext menggunakan kunci rahasia a yang
disimpan kerahasiaannya oleh penerima pesan.
Teorema :
Diberikan (p,g,y) sebagai kunci publik dan x sebagai kunci rahasia pada
algoritma ElGamal. Jika diberikan chipertext (a,b) maka
m = b/a mod p dengan m adalah plaintext,
dimana nilai
(
=
=
mod p
Langkah proses dekripsi :
a.
Ambil sebuah blok chipertext dari pesan yang telah dienkripsikan pengirim.
b.
Dengan menggunakan a yang dirahasiakan oleh penerima, hitung nilai
plaintext dengan menggunakan diatas.
18
2.6
SDLC (System Development Live Cycle)
SDLC adalah tahapan-tahapan pekerjaan yang dilakukan oleh analis sistem dan
programmer dalam membangun sistem informasi. Ada beberapa model SDLC.
Model yang cukup populer dan banyak digunakan adalah waterfall. Model yang
digunakan pada penulisan skripsi ini adalah dengan model waterfall.
Model ini adalah model yang muncul pertama kali yaitu sekitar tahun 1970
sehingga sering dianggap kuno, tetapi merupakan model yang paling banyak dipakai
didalam Software Engineering (SE). Model ini melakukan pendekatan secara
sistematis dan urut mulai dari level kebutuhan sistem lalu menuju ke tahap analisis,
desain, coding, testing / verification, dan maintenance. Disebut dengan waterfall
karena tahap demi tahap yang dilalui harus menunggu selesainya tahap sebelumnya
dan berjalan berurutan. Sebagai contoh tahap desain harus menunggu selesainya
tahap sebelumnya yaitu tahap requirement. Secara umum tahapan pada model
waterfall dapat dilihat pada gambar berikut :
Gambar 2.3 Waterfall Method
Gambar di atas adalah tahapan umum dari model proses ini menurut, Pressman
(1992:25). Software Engineering : A Practicioner’s Approach. United States. Akan
tetapi Roger S. Pressman memecah model ini menjadi 6 tahapan meskipun secara
garis besar sama dengan tahapan-tahapan model waterfall pada umumnya.
19
Berikut adalah penjelasan dari tahap-tahap yang dilakukan di dalam model ini
menurut Pressman:
1.
System / Information Engineering and Modeling
Permodelan ini diawali dengan mencari kebutuhan dari keseluruhan sistem
yang akan diaplikasikan ke dalam bentuk software. Hal ini sangat penting,
mengingat software harus dapat berinteraksi dengan elemen-elemen yang lain
seperti hardware, database, dsb. Tahap ini sering disebut dengan Project
Definition.
2.
Software Requirements Analysis
Proses pencarian kebutuhan diintensifkan dan difokuskan pada software. Untuk
mengetahui sifat dari program yang akan dibuat, maka para software engineer
harus mengerti tentang domain informasi dari software, misalnya fungsi yang
dibutuhkan, user interface, dsb. Dari 2 aktivitas tersebut (pencarian kebutuhan
sistem dan software) harus didokumentasikan dan ditunjukkan kepada
pelanggan.
3.
Design
Proses ini digunakan untuk mengubah kebutuhan-kebutuhan diatas menjadi
representasi ke dalam bentuk “blueprint” software sebelum coding dimulai.
Desain harus dapat mengimplementasikan kebutuhan yang telah disebutkan
pada tahap sebelumnya. Seperti 2 aktivitas sebelumnya, maka proses ini juga
harus didokumentasikan sebagai konfigurasi dari software.
4.
Coding
Untuk dapat dimengerti oleh mesin, dalam hal ini adalah komputer, maka
desain tadi harus diubah bentuknya menjadi bentuk yang dapat dimengerti oleh
mesin, yaitu ke dalam bahasa pemrograman melalui proses coding. Tahap ini
merupakan implementasi dari tahap design yang secara teknis nantinya
dikerjakan oleh programmer.
5.
Testing / Verification
Sesuatu yang dibuat haruslah diujicobakan. Demikian juga dengan software.
Semua fungsi-fungsi software harus diujicobakan, agar software bebas dari
error, dan hasilnya harus benar-benar sesuai dengan kebutuhan yang sudah
didefinisikan sebelumnya.
20
6.
Maintenance
Pemeliharaan suatu software diperlukan, termasuk di dalamnya adalah
pengembangan, karena software yang dibuat tidak selamanya hanya seperti itu.
Ketika dijalankan mungkin saja masih ada errors kecil yang tidak ditemukan
sebelumnya, atau ada penambahan fitur-fitur yang belum ada pada software
tersebut. Pengembangan diperlukan ketika adanya perubahan dari eksternal
perusahaan seperti ketika ada pergantian sistem operasi, atau perangkat
lainnya.
2.7
Sistem aturan proses enkripsi dan dekripsi
Proses Enkripsi :
•
Upload file
File disini yang bisa dienkripsi dalam bentuk file .txt.
•
Input bilangan acak
Memasukkan 1 bilangan prima yang harus lebih dari angka 250 agar tidak
terjadi kegagalan dalam proses enkripsi dan 2 buah bilangan acak yang kurang
dari bilangan prima, dan mendapatkan hasil enkripsi berupa chipertext dan
private key untuk proses dekripsi nantinya.
Proses Dekripsi :
•
Upload file
Memasukkan file yang enkripsi yang telah diterima.
•
Input private key
Memasukkan private key yang diterima bersamaan dengan file enkripsi, dan
mendapatkan hasil plaintext dari chipertext file enkripsi yang diterima setelah
menginput private key dan file enkripsi.
2.8
UML (Unified Modelling Language)
Menurut Whitten (2004, p408) UML adalah suatu konvensi pemodelan yang
digunakan untuk menentukan atau menggambarkan sebuah sistem piranti lunak yang
terkait dengan objek. UML terdiri dari berbagai tipe diagram, antara lain : (Joseph
Schmuller, 1999).
21
•
Flowchart
Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan
hubungan antar proses beserta instruksinya. Gambaran ini dinyatakan dengan
simbol. Dengan demikian setiap simbol menggambarkan proses tertentu.
Sedangkan hubungan antar proses digambarkan dengan garis penghubung.
Flowchart ini merupakan langkah awal pembuatan program. Dengan adanya
flowchart urutan poses kegiatan menjadi lebih jelas. Setelah flowchart selesai
disusun, selanjutnya pemrogram (programmer) menerjemahkannya ke bentuk
program dengan bahasa pemrograman
Mulai
Tulis surat
Ambil amplop
Masukkan surat
ke amplop
Lem amplop
T
Ingat
alamatnya tidak
Lihat di buku alamat
Y
Tulis di amplop
Tempel perangko
Poskan
Selesai
Gambar 2.4 Contoh Flowchart Pengiriman Surat
22
•
Use case diagram
Use case diagram secara grafis menggambarkan interaksi antara sistem, sistem
eksternal dan pengguna. Dengan kata lain, secara grafis mendeskripsikan siapa yang
akan menggunakan sistem dan dalam cara apa pengguna mengharapkan interaksi
dengan sistem itu. Use case adalah sebuah deskripsi dari tingkah laku sebuah sistem
yang dilihat dari sudut pandang user.
Bagi para pengembang, ini adalah tool yang sangat berharga : sebuah teknik
tried – and – true yang dipakai untuk mengumpulkan persyaratan sebuah sistem yang
dilihat dari sudut pandang user. Teknik pengumpulan tersebut penting jika tujuannya
adalah untuk membangun sebuah sistem yang bisa digunakan semua orang (bukan
hanya orang yang terbiasa dengan komputer).
Login
Input no antrian
pembeli
Input data barang
Input harga
Cek total biaya
Cetak struk
Gambar 2.5 Contoh Use case Diagram Transaksi Pembayaran
23
•
Class diagram
Class diagram adalah digram yang digunakan untuk menampilkan beberapa
kelas serta paket-paket yang ada dalam sistem/perangkat lunak yang sedang kita
gunakan. Class diagram memberikan kita gambaran (diagram statis) tentang
sistem/perangkat lunak dan relasi-relasi yang ada didalamnya. Definisi dari class
diagram adalah kumpulan objek-objek dengan dan mempunyai struktur umum,
behavior umum, relasi umum, dan semantic/kata yang umum. Kelas-kelas ditentukan
dengan cara memeriksa objek-objek dalam sequence diagram dan
kolaborasi
diagram. Sebuah class digambarkan seperti sebuah bujur sangkar dengan tiga bagian
ruangan. Kelas sebaiknya diberi nama menggunakan kata benda sesuai dengan
domain/bagian/kelompoknya, Jeffery (2004:432).
Class diagram yang menunjukan kelas-kelas yang ada dari sebuah sistem dan
hubungannya secara logika. Class diagram menggambarkan struktur statis dari
sebuah sistem. Karena itu class diagram merupakan tulang punggung atau kekuatan
dasar dari hampir setiap metode berorientasi objek termasuk UML (Henderi, 2008).
Elemen-elemen class diagram dalam pemodelan UML terdiri dari kelas-kelas,
struktur kelas, sifat kelas (class behavior), perkumpulan/gabungan (association),
pengumpulan/kesatuan (agregation), ketergantungan (dependency), relasi-relasi
turunannya, keberagaman, dan indikator navigasi, dan role name (peranan/tugas
nama).
Gambar 2.6 Contoh Class Diagram Jadwal Dosen
24
Pada class diagram gambar 2.7 dapat dilihat pada class dosen terdapat atribut
kode dosen, nama, alamat, dan tanggal lahir. Dan class dosen berelasi dengan class
jadwal yang mempunyai atribut jam mulai, dan jam berakhir yang mana 1 dosen bisa
mempunyai banyak jadwal atau bisa saja 1 dosen mempunyai 1 jadwal saja. Class
jadwal juga berelasi dengan class mata kuliah yang mempunyai atribut kode mata
kuliah, dan nama mata kuliah yang hubungannya disini 1 jadwal bisa memiliki
banyak mata kuliah atau 1 jadwal hanya mempunyai 1 mata kuliah.
•
Sequence diagram
Sequence Diagram secara grafis menggambarkan bagaimana objek berinteraksi
satu sama lain melalui pesan pada eksekusi sebuah use case atau operasi. Diagram ini
mengilustrasikan bagaimana pesan terkirim dan diterima diantara objek dan dalam
urutan apa.
Sequence Diagram digambarkan sebagai interaksi dari 2 grafik dimensional.
Dimensi vertikal merupakan sumbu waktu, yang berjalan makin ke bawah. Dimensi
horizontal menggambarkan peranan classifier yang menampilkan objek individual di
dalam kolaborasi. Tiap peranan classifier digambarkan dengan kolom vertikal –
sebagai lifeline. Dalam waktu selama objek ada, peranan dari object tersebut
digambarkan dengan garis putus – putus. Selama aktivasi prosedur pada sebuah
object masih aktif, lifeline digambarkan dengan garis ganda (double line). Pesan
ditunjukkan dengan gambar anak panah (arrow) dari lifeline suatu object menuju
object yang lainnya. Anak panah tersebut diatur menurun sesuai urutan waktu di
dalam diagram.
Sequence diagram menunjukkan interaksi yang dinamis berdasarkan waktu.
Mengambil contoh dari situasi disebuah restaurant, dengan logika seperti berikut :
1.
Pelayan memberikan daftar menu ke pelanggan.
2.
Setelah pelanggan menerima daftar menu, pelanggan memesan menu ke
pelayan.
3.
Kemudian pesanan pelanggan diberikan pelayan kepada koki yang kemudian
koki memasak pesanan pelanggan.
4.
Setelah makanan selesai dimasak, makanan diberikan lagi ke pelayan yang
kemudian diserahkan ke pelanggan.
5.
Ketika pelanggan memakan pesanan, pelayan memberikan daftar pesanan ke
kasir.
25
6.
Kasir langsung menghitung jumlah pembayaran, setelah selesai menghitung
kasir memberikan tagihan ke pelayan.
7.
Setelah pelanggan selesai makan, pelanggan meminta tagihan ke pelayan
yang kemudian pelayan langsung memberikan kepada pelanggan.
8.
Setelah diterima oleh pelanggan, pelanggan langsung menuju kasir untuk
dibayar.
Gambar 2.7 Contoh Sequence Diagram
•
Activity diagram
Activity
Diagram
menurut
Fowler
(2005:163)
adalah
teknik
untuk
menggambarkan logika prosedural, proses bisnis, dan jalur kerja. Dalam beberapa
hal Activity Diagram memainkan peran mirip diagram alir, tetapi perbedaan prinsip
antara notasi diagram alir adalah Activity Diagram mendukung behaviour paralel.
Node pada sebuah Activity Diagram disebut sebagai action, sehingga diagram
tersebut menampilkan sebuah activity yang tersusun dari action.
Pada bagian ini akan dijelaskan perpindahan activity setelah dilakukan sebuah event
atau action pada rancangan program aplikasi ini dengan cara Activity Diagram.
26
Keterangan Simbol :
Tampilkan Menu
Mulai
Selesai
Gambar 2.8 Contoh Activity Diagram Mesin ATM
27
2.9
Email
Email merupakan aplikasi TCP/IP yang paling banyak digunakan. Email
adalah pesan yang terdiri dari atas kumpulan string ASCII dalam format RFC 822
(dikembangkan tahun 1982). Email yang dikirim belum tentu akan diteruskan ke
komputer penerima, tapi disimpan dahulu dalam sebuah komputer server yang akan
online secara terus menerus dengan media penyimpanan yang relatif lebih besar
dibanding komputer biasa. Komputer yang melayani penerimaan email secara terus
menerus tersebut biasa disebut dengan mailserver atau mailhost.
2.10 SSL
Secure Socket Layer (SSL) adalah protokol yang digunakan untuk browsing
web secara aman. SSL bertindak sebagai protokol yang mengamankan komunikasi
antara client dan server. Protokol ini memfasilitasi penggunaan enkripsi untuk data
yang rahasia membantu menjamin integritas informasi yang dipertukarkan antara
website dan web browser.
Selain itu SSL adalah protokol berlapis, dalam tiap lapisannya sebuah data
terdiri dari panjang, deskripsi dan isi. SSL mengambil data untuk dikirimkan,
dipecahkan kedalam blok-blok yang teratur, kemudian dikompres bila perlu,
menerapkan MAC, dienkripsi, dan hasilnya dikirmkan. Di tempat tujuan data
dideskripsi, verifikasi, dekompres, dan disusun kembali. Hasilnya dikirimkan ke
klien diatasnya.
2.11 Web Service
Web service adalah aplikasi sekumpulan data, perangkat lunak atau bagian dari
perangkat lunak yang dapat diakses secara remote oleh berbagai piranti dengan
sebuah perantara tertentu. Secara umum, web service dapat diindetifikasi dengan
menggunakan URL seperti web pada umumnya. Namun yang membedakan web
service dengan web pada umumnya adalah interaksi yang diberikan oleh web service.
Berbeda dengan URL web pada umumnya, URL web service hanya mengandung
kumpulan informasi, perintah, konfigurasi atau sintaks yang berguna membangun
sebuah fungsi-fungsi tertentu dari aplikasi.
28
Web service dapat diartikan juga sebuah metode pertukaran data, tanpa
memperhatikan dimana sebuha database ditanamkan, dibuat dalam bahasa apa
sebuah aplikasi yang mengkonsumsi data, dan diplatform apa sebuah data itu
dikonsumsi. Web service mampu menunjang interoperabilitas. Sehingga web service
mampu menjadi sebuah jembatan penghubung antara berbagai sistem yang ada.
Web pada umumnya digunakan untuk melakukan respon dan request yang
dilakukan antara client dan sever. Sebagai contoh, seorang pengguna layanan web
tertentu mengetikan alamat url web untuk membentuk sebuah request. Request akan
sampai pada server, diolah dan kemudian disajikan dalam bentuk sebuah respon.
Dengan singkat kata terjadilah hubungan client-server secara sederhana.
Sedangkan pada web service hubungan antara client dan server tidak terjadi
secara langsung. Hubungan antara client dan server dijembatani oleh file web
service dalam format tertentu. Sehingga akses terhadap database akan ditanggani
tidak secara langsung oleh server, melainkan melalui perantara yang disebut
sebagai web service. Peran dari web service ini akan mempermudah distribusi
sekaligus integrasi database yang tersebar di beberapa server sekaligus.
2.12 PHP
PHP merupakan singkatan dari “PHP : Hypertext Preprocessor”, adalah sebuah
bahasa scripting yang terpasang pada HTML. Sebagian besar sintaks mirip dengan
bahasa C, JAVA, dan Perl, ditambah beberapa fungsi PHP yang spesifik. Tujuan
utama bahasa ini adalah untuk memungkinkan perancang web menulis halaman web
dinamik dengan cepat.
2.12.1 Hubungan PHP dengan HTML
Halaman web biasanya disusun dengan kode-kode html yang disimpan dalam
sebuah file berekstensi .html. File html ini dikirimkan oleh server (atau file) ke
browser,
kemudian
browser
menerjemahkan
kode-kode
tersebut
sehingga
menghasilkan suatu tampilan yang indah. Lain halnya dengan program php, program
ini harus diterjemahkan oleh web-server sehingga menghasilkan kode html yang
dikirim ke browser agar dapat ditampilkan. Program ini dapat berdiri sendiri ataupun
disisipkan di antara kode-kode html sehingga dapat langsung ditampilkan bersama
dengan kode-kode html tersebut.
29
Program php dapat ditambahkan dengan mengapit program tersebut di antara
tanda <? dan ?>. Tanda-tanda tersebut biasanya disebut tanda untuk escaping (kabur)
dari kode html. File html yang telah dibubuhi program php harus diganti ekstensi-nya
menjadi .php atau .php3.
PHP merupakan bahasa pemograman web yang bersifat server-side HTML =
embedded scripting, di mana script-nya menyatu dengan HTML dan berada si server.
Artinya adalah sintaks dan perintah-perintah yang kita berikan akan sepenuhnya
dijalankan di server tetapi disertakan HTML biasa. PHP dikenal sebgai bahasa
scripting yang menyatu dengan tag HTML, dieksekusi di server dan digunakan untuk
membuat halaman web yang dinamis seperti ASP (active Server Pages) dan JSP
(Java Server Pages).
PHP pertama kali dibuat oleh Rasmus Lerdroft, seorang programmer C.
Semula PHP digunakannya untuk menghitung jumlah pengunjung di dalam webnya.
Kemudian ia mengeluarkan Personal Home Page Tools versi 1.0 secara gratis. Versi
ini pertama kali keluar pada tahun 1995. Isinya adalah sekumpulan script PERL yang
dibuatnya untuk membuat halaman webnya menjadi dinamis. Kemudian pada
tahun1996 ia mengeluarkan PHP versi 2.0 yang kemampuannya telah mampu
mengakses database dan dapat terintegrasi dengan HTML.
Pada tahun 1998 tepatnya pada tanggal 6 Juni 1998 keluarlah PHP versi 3.0
yang dikeluarkan oleh Rasmus sendiri bersama kelompok pengembang softwarenya.
Versi teranyar yaitu PHP 4.0 keluar pada tanggal 22 Mei 2000 merupakan versi yang
lebih lengkap lagi dibandingkan dengan versi sebelumnya. Perubahan yang paling
mendasar pada PHP 4.0 adalah terintegrasinya Zend Engine yang dibuat oleh Zend
Suraski dan Andi Gutmans yang merupakan penyempurnaan dari PHP3 scripting
engine. Yang lainnya adalah build in HTTP session, tidak lagi menggunakan library
tambahan seperti pada PHP3. Tujuan dari bahasa scripting ini adalah untuk membuat
aplikasi-aplikasi yang dijalankan di atas teknologi web. Dalam hal ini, aplikasi pada
umumnya akan memberikan hasil pada web browser, tetapi prosesnya secara
keseluruhan dijalankan web server.
30
2.12.2 Kelebihan php
Ketika e-commerce semakin berkembang, situs-situs yang statispun semakin
ditinggalkan Karena dianggap sudah tidak memenuhi keinginan pasar karena situs
tersebut harus tetap dinamis selama setiap hari. Pada saat ini bahasa PERL dan CGI
sudah jauh ketinggalan jaman sehingga sebagian besar designer
web banyak beralih ke bahasa server-side scripting yang lebih dinamis seperti PHP.
Seluruh aplikasi berbasis web dapat dibuat dengan PHP. Namun kekuatan yang
paling utama PHP adalah pada konektivitasnya dengan system database di dalam
web. Sistem database yang dapat didukung oleh PHP adalah :
1.
Oracle
2.
MySQL
3.
Sybase
4.
PostgreSQL
5.
dan lainnya
Keunggulan lainnya dari PHP adalah PHP juga mendukung komunikasi
dengan layanan seperti protocol IMAP, SNMP, NNTP, POP3 bahkan HTTP. PHP
dapat diinstal sebagai bagian atau modul dari apache web server atau sebagai CGI
script yang mandiri. Banyak keuntungan yang dapat diperoleh jika menggunakan
PHP sebagai modul dari apache di antaranya adalah :
1.
Tingkat keamanan yang cukup tinggi
2.
waktu eksekusi yang lebih cepat dibandingkan dengan bahasa pemograman
web lainnya yang berorientasi pada server-side scripting.
3.
Akses ke system database yang lebih fleksibel. seperti MySQL.
Dalam modul ini kita akan mempelajari PHP sebagai server-side scripting yang
menggunakan apache sebagai webserver. Versi PHP yang kita gunakan adalah PHP4
untuk windows.
31
Download