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 yan g
berhubungan dengan asp ek keamanan info rmasi, 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 jarin gan karena yang
menjadi pokok dari fun gsi komputer dan jaringan adalah data ataupun informasi.
Komputer dan jaringannya menjadi sarana bagi distribusi data dan informasi, maka
data dan informasi tersebut harus diamank an agar hanya orang-orang yang berhak
mengaksesnya yang dap at mengetahui maupun menggunakan data tersebut. Salah
satu cara yang p aling banyak digunak an 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 yan g
merupakan bagian dari kriptografi.
Ada empat tujuan mendasar dari kriptografi yang juga merup akan aspek
keamanan informasi, yaitu :
1. Kerahasiaan, adalah aspek yang berhubungan dengan penjagaan isi informasi
dari siapapun kecuali yang memiliki otoritas atau kunci r ahasia 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.
|
3. Autentikasi, adalah aspek yang berhubun gan dengan indetifikasi atau
pengenalan baik secara kesatuan sistem maupun informasi itu sendiri.
Dua pihak yang saling berkomunikasi harus saling memperkenalkan diri.
Informasi yan g dikirim harus diautentikasi keaslian, isi datanya, waktu
pengiriman, dan lain-lain.
4. Non-repudiation (menolak penyan gk alan), adalah usaha untuk mencegah
terjadinya penyangkalan terhadap pengiriman suatu informasi oleh yang
mengirimkan, atau harus dapat membuktikan bahwa suatu pesan berasal dari
seseoran g, apabila ia men yangkal mengirim informasi tersebut.
2.2 Sejarah kriptografi
Kriptogr afi sudah digunakan sekitar 40 abad yang lalu oleh orang-orang Mesir
untuk mengirim pesan ke pasukan yang berada di medan peran g 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 den gan batang k ayu.
Pada zaman Romawi, Julius Caesar telah menggunakan teknik kriptografi yang
sekaran g dian ggap 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 d apat 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 yan g lalu (berupa hieroglyph yang tidak stan dard pad a
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 seb agai faktor
yang memperpendek perang dunia II.
|
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 men yediakan layanan keamanan. Dimulai dari usaha
Feistel pada IBM diawal tahun 70an dan mencapai puncaknya pada 1977 dengan
pengangkatan DES (Data Encryption Standa rd) sebagai standar pemrosesan
informasi federal US untuk mengenkripsi informasi federal US untuk mengenkripsi
informasi yan g 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-op erasi
tertentu yang diperlukan untuk menyelesaikan suatu masalah
ataupun mengerjakan
suatu tugas tertentu. Algoritma merupakan urutan langk ah instruksi yang logis.
Setiap langk ah instruksi mengerjakan su atu tindakan aksi. Apabila suatu aksi
dilaksanakan, maka operasi atau sejumlah operasi
yang b ersesu aian 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
|
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 Jafar 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 dilaksanak an.
2. Output
Sifat ini berarti algoritma mengh asilkan suatu kelu aran setelah dilaksanakan.
3. Definitif
Sifat ini berarti, lan gkah langk ah 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. Gener al
Sifat ini berarti, algoritma berlaku untuk setiap himpunan input.
2.4 Algoritma kriptografi
Menurut Bruce Schneier, Algoritma kriptografi atau serin g disebut dengan
cipher adalah suatu fungsi matematis yan g digunakan untuk melakukan enkripsi dan
dekripsi. Ada dua macam algoritma kriptografi, yaitu algoritma simetris (symmetric
algorithms) dan algoritma asimetris (asymmetric algorithms).
|
![]() =
=
=
=
2.4.1 Algoritma simetris
Algoritma simetris adalah algoritma kriptografi yang menggunakan kunci
enkripsi yan g 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. Masalah nya akan menjadi rumit apabila
komunikasi dilakukan secar a 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.
Plainteks Chiperteks Plainteks
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 rah asia adalah kunci yang
dirahasiakan dan hanya orang-orang tertentu saja yang boleh mengetahuinya.
|
![]() Keuntungan utama dari algoritma ini adalah memberikan jaminan keamanan
kepada siapa saja yang melakukan pertukaran informasi meskipun di antara merek a
tidak ada kesepakatan mengenai keamanan pesan terlebih dahulu maupun saling
tidak mengenal satu sama lainnya.
Plainteks Chiperteks Plainteks
Gambar 2.2 Skema Algoritma Asimetris
2.4.3 Penentuan bilangan prima
Tujuan pen entuan bilangan prima adalah untuk mempermudah dalam
penentuan elemen primitif.
Digunakan bilan gan prima p sehingga
p 2.q + 1
dengan q adalah bilan gan prima sehingga nilai minimal p adalah 5 dan q adalah 2.
Bilangan prima p tersebut disebut sebagai bilangan prima.
Langkah pen entuan bilan gan prima tersebut dinyatakan sebagai berikut:
a. Tentukan bilan gan 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)
|
![]() 2.4.4 Penentuan elemen primitif
Teorema:
Suatu elemen yang membangun disebut elemen primitif (primitive root)
mod p. Bila mod p 1 dan mod p 1. Jika keduanya dipenuhi, maka a
adalah elemen primitif dari .
Langkah penentuan elemen primitif tersebut dapat dinyatak an sebagai berik ut:
a. Tentukan bilangan prima p = 5 dan a Zp *
b. Hitung q dengan persamaan (2)
c. Hitung mod p dan mod p.
d. Jika mod p = 1 atau mod p = 1, maka a bukan merupakan elemen
primitif.
e. Jika mod p 1 dan mod p 1, maka a bukan merupakan elemen
primitif.
2.4.5 Pembentukan kunci berdasarkan bilangan prima dan elemen primitif
Setelah bilangan prima dan elemen primitif diper oleh, kunci publik dan kunci
rahasia untuk algoritma ElGamal dapat dibentuk. Algoritma ElGamal dalam bentuk
prosesnya menggunakan bilangan bulat untuk perhitungan. Oleh k arena itu, pesan
yang terkandung dalam plaintext harus dalam bentuk bilangan bulat.
Untuk memenuhi persyaratan tersebut, digunakan kode ASC II (American
Standard for Information Interchange) yang merupakan representasi numeric dari
karakter-karakter yang digunakan dalam komputer, serta mempun yai nilai minimum
0 dan maksimal 255.
Selanjutnya, dengan k ondisi-kondisi tersebut, pembentukan kunci dapat
dibentuk dengan mengacu pada langkah berikut:
a. Tentukan bilangan prima p = 5 dan a Zp *
b. Pilih a {0,1,..., p - 2} sembarang.
c. Hitung nilai ß dengan rumus ß = mod p
Diperoleh kunci publik (p, a, ß) yang dap at dipublikasikan serta nilai kunci
rahasia a yang dirahasiakan nilainya. Pihak yang membu
kunci publik dan kunci
rahasia merupakan pihak penerima pesan. Sedangkan piha
pengirim hanya
mengetahui kunci publik dari penerima untuk mengenkripsi pesan yan
akan dikirim.
|
![]() 2.4.6 Proses pembuatan kunci
Proses pertama adalah pembentukan kunci yan g terdiri dari kunci rahasia dan
kunci publik. Pada proses ini dibutuhkan sebuah bilangan prima p yan g digunakan
untuk membentuk grup , elemen primitif a dan sebarang a {0,1,..., p -2}.
Kunci publik algoritma ElGamal berupa pasangan 3 bilangan, yaitu ( p, a, ß), dengan
persamaan yan g digunakan sebagai berikut.
= mod p
Sedangkan kunci rahasianya adalah bilangan a tersebut.
Karen a pada algoritma ElGamal menggunakan bilangan bulat dalam proses
perhitungannya, maka pesan harus dikonversi ke dalam suatu bilangan bulat. Untuk
mengub ah 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 melaku kan
pembentukan kunci. Algoritma Pembentukan Kunci Input : Bilangan prima aman p >
255 dan elemen primitif a *. Output : Kunci publik (p, a, ß) dan kunci rahasia a.
Langkah :
1. Pilih a {0,1,..., p -2}.
2. Hitung = .
3. Publikasikan nilai p, a, dan ß , serta rahasiakan nilai a.
Pihak yang membuat kunci publik dan kunci rahasia adalah pen erima,
sedangkan pihak pengirim hanya mengetahui kun
publik yang diberikan oleh
penerima, dan kunci publik tersebut digunaka
untuk mengenkripsi pesan. Jadi,
kentungan menggunakan algoritma kriptografi kun
publik adalah tidak ada
permasalah an pada distribusi kunci apabila jumla
pengirim sangat banyak serta
|
![]() 2.5 Metode ElGamal
Algoritma ElGamal merupakan algoritma kripto gr afi 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 pembentuk an kunci, proses enkripsi dan proses dek ripsi. Algoritma ini
merupakan cipher blok, yaitu melakukan proses enkripsi pada blok-blok plaintext
dan mengh asilkan blok-blok ciphertext yang kemudian dilakukan proses dekripsi,
dan hasilnya digabungkan kembali menjadi pesan yan g 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 yan g
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 a *. Ditentukan
P = *. C = * × * dan a {0, 1,..., p - 2}. Didefinisikan
K = {(p, a, a, ß) : = mod p}.
Nilai p, a dan ß dipublikasikan, dan nilai a dirahasiakan.
Untuk K = {(p ,a, 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
|
![]() Algoritma ini disebut Algoritma diskret karena nilainya berhingga dan
bergantung pada bilangan prima yang digunakan. Karena bilan gan prima yang
digunak an adalah
bilangan prima besar, maka sangat sulit bahkan tidak mungkin
menurunkan kunci privat dari kunci publik yang diketahui walaupun seran gan
dilakukan den gan men ggunakan sumberdaya komputer yan g sangat besar.
ElGamal digunakan dalam
perangkat lunak linux dikembangkan oleh GNU
yang merupakan directory dari pro gram PGP serta progra
keamanan jaringan
lainnya. Keamanan algoritma ini terletak pada sulitnya menghitung algoritm
diskrit.
Masalah algo rtima diskrit adalah, jika p adalah b ilangan prima
an g dan y adalah
sembarang bilangan bulat. Carilah x sedemikian (mod p).
2.5.1 Kelebihan algoritma ElGa mal
Algoritma ElGamal dikenal sebagai kriptografi digital
signature karena
algoritma ini berfun gsi 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 dap at dipilih secara acak u ntuk
menentukan kunci.
2. Pada algoritma ElGamal tidak hanya kunci privat yang perlu dijamin
kerahasiann ya, tetapi autentikasi kunci publik juga harus tetap dijaga.
3. Kunci publik dan kunci privat pad a algoritma ElGamal tidak perlu diubah
dalam periode waktu yang panjang.
4. Algoritma ElGamal bisa dimanfaatkan untuk mengirimkan sebuah pesan
rahasia, yaitu den gan 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 menggunak an bilangan yang berbeda-beda. Satu
karakter yang direperesentasikan dengan menggunakan bilangan bulat ASCII akan
mengh asilkan kode dalam bentuk blok yang terdiri dari atas dua nilai (a,b).
|
![]() 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 ASC II 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 dir ahasiak an oleh penerima, hitung nilai
plaintext dengan menggunakan diatas.
|
![]() 2.6 SDLC (System Development Live Cycle)
SDLC adalah tahapan-tahapan pek erjaan yang dilakukan oleh analis sistem dan
programmer dalam membangun sistem informasi. Ada beberapa mod el SDLC.
Model yang cukup populer dan banyak digunakan adalah waterfall. Model yang
digunak an pada p enulisan skripsi ini adalah dengan model waterfall.
Model ini adalah model yang muncul pertama kali yaitu sekitar tahun 1970
sehingga sering dian ggap 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 b erurutan. Sebagai contoh tahap desain harus menunggu selesainya
tahap sebelumnya yaitu tahap requirement. Secara umum tahapan pada model
waterf all dapat dilihat pada gambar berikut :
Gambar 2.3 Waterfall Method
Gambar di atas adalah tahapan umum dari mod
proses ini menurut, Pressman
(1992:25). Software Engineering : A Practicioner
Approach. United States. Akan
tetapi Roger S. Pressman memecah model i
menjadi 6 tahapan meskipun secara
garis besar sama den gan tahapan-tahapan model waterfa
|
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 d an difokuskan pad a software. Untuk
mengetahui sifat dari progr am yang ak an dibuat, maka para software en gineer
harus mengerti tentang domain informasi dari software, misaln ya 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 yan g 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 dimen gerti 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 diujicobaka
Demikian juga dengan software.
Semua fungsi-fungsi software harus diujicobaka
agar software bebas dari
error, dan h asilnya haru s benar-benar sesu
dengan kebutuhan yang sudah
|
6. Maintenance
Pemeliharaan suatu software diperlukan, termasuk di dalamny
adalah
pengemban gan, karena software yang dibuat tidak selaman ya han y
seperti itu.
Ketika dijalankan mun gkin saja masih ada errors kecil yan
tidak ditemukan
sebelumnya,
atau ada penambahan fitur-fitur yang belum ad
pada softwar e
tersebut. Pengembangan diperlukan ketika adanya perubah an da
eksternal
perusahaan seperti ketika ada pergantian sistem operasi, ata
perangkat
lainnya.
2.7 Sistem aturan proses enkripsi dan dekripsi
Proses Enkripsi :
Upload file
File disini yang bisa dienkripsi dalam bentuk file .txt.
Input bilan gan 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 nantin ya.
Proses Dekripsi :
Upload file
Memasukkan file yang enkripsi yang telah diterima.
Input private key
Memasukkan private key yang diterima bersamaan dengan fil
enkripsi, dan
mendapatkan hasil plaintext dari chipertext file enkripsi yan
diterima setelah
menginput private key dan file enkripsi.
2.8 UML (Unified Modelling Language)
Menurut Whitten (2004, p408) UML adalah suatu konvensi pemodelan yang
digunak an untuk menentukan atau menggambarkan sebuah sistem piranti lunak yang
terkait dengan objek. UML terdiri dari berbagai tipe diagram, antara lain : (Joseph
Schmuller, 1999).
|
![]()
Flowchart
Flowchart merupakan gambar atau baga
yang memperlihatkan urutan dan
hubungan antar proses beserta instruksiny
Gambaran ini dinyatakan dengan
simbol. Dengan demikian setiap simb
menggambarkan proses tertentu.
Sedangkan hubungan antar pros
digambarkan dengan garis penghubung.
Flowchart ini merup akan langkah aw
pembuatan program. Dengan adanya
flowchart urutan poses kegiatan menjadi lebi
jelas. Setelah flowch art selesai
disusun, selanjutn ya pemrogram (programme
menerjemahk annya ke bentuk
program dengan bahasa pemrograman
Mulai
Tulis surat
Ambil amplop
Masukkan surat
ke amplop
Lem amplop
Ingat
alamatnya tidak Lihat di buku alamat
Tulis di amplop
Tempel peran gko
Poskan
Selesai
Gambar 2.4 Contoh Flowchart Pengiriman
Surat
|
![]()
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 san gat 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).
Gambar 2.5 Co ntoh Use case Diagr am Transaksi Pembayaran
|
![]()
Class diagram
Class diagram adalah digram yang digunakan untuk menampilkan beberapa
kelas serta paket-paket yang ad a dalam sistem/perangkat lunak yang sedang kita
gunakan. Class diagram memberikan kita gambaran (diagram statis) tentan g
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 yan g 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 men unjukan kelas-kelas yang ada dari sebuah sistem dan
hubungannya secara logika. Class diagram menggambarkan struktur statis dari
sebuah sistem. Karen a 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
|
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 op erasi. 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 restaur ant, 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.
|
![]() 6. Kasir langsun g 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 Diagr am menurut Fowler (2005:163) adalah teknik untuk
menggambarkan lo gika 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 mendukun g beha viour paralel.
Node pada sebuah Activity Diagram disebut sebagai action, sehingga diagram
tersebut menampilkan sebuah activity yang tersusun dari action.
Pada bagian ini akan dijelaskan perpindah an activity setelah dilakukan sebuah event
atau action pada rancangan program aplikasi ini dengan cara Activity Diagram.
|
![]() Keterangan Simbol :
Tampilkan Menu
Mulai
Selesai
Gambar 2.8 Contoh Activity Diagram Mesin ATM
|
2.9 Email
Email merupakan aplikasi TCP/IP yang paling b anyak 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 den gan 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 yan g mengamankan komunikasi
antara client dan server. Protokol ini memfasilitasi penggunaan enkripsi untuk data
yang rahasia membantu menjamin integritas in formasi 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 dat
untuk dikirimkan,
dipecahkan kedalam blok-blok yang teratur, kemudia
dikompres bila perlu,
menerapkan MAC, dienkripsi, dan hasilnya
dikirmkan.
tempat tujuan data
dideskripsi, verifikasi, dekompres, dan disusun kembal
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 dap at diindetifikasi dengan
menggunakan URL seperti web pada umumnya. Namun yan g membedakan web
service dengan web pada umumn ya adalah interak si yang diberikan oleh web service.
Berbeda dengan URL web pada umumn ya, URL web service hanya mengandun g
kumpulan informasi, perintah, konfigurasi atau sintaks yang berguna memban gun
sebuah fungsi-fungsi tertentu dari aplikasi.
|
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 conto h, seorang pengguna layanan web
tertentu mengetikan alamat url web untuk membentuk sebuah request. Req uest akan
sampai pada server, diolah dan kemudian disajikan dalam bentuk sebuah respon.
Dengan singkat kata terjadilah hubungan client-server secara sederhana.
Sedangk an pada web service hubungan antara client dan server tidak terjadi
secar a 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 per antar a yang disebut
sebagai web service. Peran dari web service ini akan mempermudah distribusi
sekaligus integr asi database yan g tersebar di beberapa server sekaligus.
2.12 PHP
PHP merupakan singkatan dari PHP : Hypertext Preprocesso r, adalah sebuah
bahasa scripting yang terpasang pada HTML. Sebagian besar sintaks mir ip 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 cep at.
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 menerjemahk an kode-kode tersebut sehingga
mengh asilkan suatu tampilan yang indah. Lain haln ya 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.
|
Program php dapat ditambahkan dengan mengapit program tersebut di antara
tanda <? dan ?>. Tanda-tanda tersebut biasan ya 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 d an berad a 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 men yatu 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 ju mlah pengunjung di dalam webnya.
Kemudian ia mengeluark an Personal Home Page Tools versi 1.0 secara gratis. Versi
ini pertama kali keluar pada tahun 1995. Isinya adalah sekumpulan script PERL yang
dibuatn ya untuk membuat halaman webnya menjadi dinamis. Kemudian pada
tahun1996 ia mengeluarkan PHP versi 2.0 yang kemampuann ya 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 teran yar 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 En gine 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 librar y
tambahan seperti pada PHP3. Tujuan dari bahasa scripting ini adalah untu k membuat
aplikasi-aplikasi yang dijalankan di atas teknologi web. Dalam hal ini, aplikasi pada
umumnya akan memberikan hasil pada web browser, tetapi prosesn ya secara
keseluruhan dijalankan web server.
|
2.12.2 Kelebihan php
Ketika e-commerce semakin berkembang, situs-situs yang statispun semakin
ditinggalkan Karena dianggap sud ah 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 b esar designer
web banyak b eralih 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 dap at didukung oleh PHP adalah :
1. Oracle
2. MySQL
3. Sybase
4. PostgreSQL
5. dan lainnya
Keunggulan lainn ya 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 menggunak an
PHP sebagai modul dari apache di antaranya adalah :
1. Tingkat keamanan yan g 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
menggun akan apache sebagai webserver. Versi PHP yang kita gunakan adalah PHP4
untuk windows.
|
|