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 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 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.  
  
 tidak ada kepastian keamanan jalur  yang digunakan.
 
 
 
   
 
   
 
   
   
   
  
  
 
 
 
 
 
 
 
  
  
 
  
 
  
  
 
 
 
 
 
 
 
 
 
 
 
 
  
  
 
 
  
 
  
 
  
  
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.
  
 pada umumn ya.
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.