Tuesday, February 18, 2014

BAB I-III pemograman PHP

BAB I
PENDAHULUAN
1.1. LATAR BELAKANG
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 : Oracle, MySQL, Sybase, PostgreSQL dan lainnya.
PHP dapat berjalan di berbagai sistem operasi seperti windows 98/NT, UNIX/LINUX, solaris maupun macintosh. PHP merupakan software yang open source yang dapat anda download secara gratis. Software ini juga dapat berjalan pada web server seperti PWS (Personal Web Server), Apache, IIS, AOLServer, fhttpd, phttpd dan sebagainya. PHP juga merupakan bahasa pemograman yang dapat kita kembangkan sendiri seperti menambah fungsi-fungsi baru.
1.2. RUMUSAN MASALAH
Makalah ini merumuskan tentang dasar-dasar pemrograman web  menggunakan PHP.
1.3. RUANG  LINGKUP
Dalam makalah ini, penulis membatasi masalah yang akan dibahas pada materi kuliah Pemrograman Terstruktur. Pembahasan lebih dikhususkan pada pemrograman web menggunakan PHP Hal tersebut dimaksudkan untuk mempertegas pembahasan sehingga dapat terfokus pada masalah yang akan dibahas serta dapat memberikan gambaran umum tentang isi makalah sehingga pembaca lebih mudah mempelajarinya.
1.4. MAKSUD DAN TUJUAN
Maksud dari penyusunan tugas ini adalah untuk memenuhi dan melengkapi salah satu tugas mata kuliah Pemrograman Terstruktur di Bina Sarana Informatika. Sedangkan tujuan dari penulisan tugas ini adalah:
  1. Menerapkan teori yang didapat selama belajar di Bina Sarana Informatika.
  2. Mengembangkan kreativitas dan wawasan penulis.
  3. Memberikan uraian pemrograman web dengan php secara lebih terperinci.
1.5. METODE PENGUMPULAN DATA
Untuk memperoleh data yang diperlukan dalam penyusunan tugas ini, penulis menggunakan Metode Browsing Internet, yaitu metode yang dilakukan dengan browsing atau membaca atau mencari referensi-referensi yang berkaitan dengan masalah yang dibahas dalam tugas ini di internet.
1.6. SISTEMATIKA PENULISAN
Untuk memudahkan pembaca dalam mempelajari dan mengetahui isi makalah ini, penulis memberikan uraian singkat mengenai gambaran pada masing-masing bab melalui sistematika penulisan yaitu :
BAB I PENDAHULUAN
Dalam bab ini, penulis menguraikan tentang latar belakang penulisan, rumusan masalah, ruang lingkup, maksud dan tujuan serta metode-metode yang digunakan dalam pengumpulan data untuk menyusun tugas ini. Selain itu, penulis juga menguraikan mengenai sistematika penulisan.
BAB II PEMBAHASAN
Pada bab ini, penulis menguraikan tentang materi-materi yang akan dibahas karena bab ini merupakan bab utama dari makalah ini. Dalam bab ini penulis menguraikan tentang
BAB III PENUTUP
Dalam bab ini, penulis menguraikan tentang kesimpulan-kesimpulan dari masalah yang dibahas serta saran-saran yang penulis ajukan guna perbaikan selanjutnya.









BAB II
PEMBAHASAN
2.1. Pengertian PHP
PHP adalah singkatan dari”PHP: Hypertext Preprocessor”, yang merupakan sebuah bahasa scripting yang terpasang pada HTML. Sebagian besar sintaks mirip dengan bahasaC, Java dan Perl, ditambah beberapa fungsi PHP yang spesifik. Tujuan utama penggunaan bahasa ini adalah untuk memungkinkan perancang web menulis halaman web dinamik dengan cepat.
Program php harus diterjemahkan oleh web-server sehingga menghasilkan kode html yang dikirim ke browser agar dapat ditampilkan. Program ini dapat berdir isendiri ataupun disisipkan diantara kode-kode html sehingga dapat langsung ditampilkan bersama dengan kode-kode html tersebut. File html yang telah dibubuhi program php harus digantiekstensi-nya menjadi. php3 atau.php.
PHP pertama kali dibuat oleh Rasmus Lerdroft, seorang programmer C.
• Versiterbaru, yaituPHP 4.0 keluar pada tanggal 22 Mei 2000 merupakan versi yang lebih lengkap lagi dibandingkan dengan versi sebelumnya.
• Tujuan dari bahasa scripting ini adalah untuk membuat aplikasi-aplikasi yang dijalankan diatas teknologi web. Dalam hal ini, aplikasi pada umumnya akan memberikan hasil pada web browser, tetapi prosesnya secara keseluruhan dijalankan web server.
2.2. Sintaks dasar PHP
Ada empat macam cara penulisan kode PHP,  yaitu:
•<? echo (“iniadalahscript PHP\n”); ?>
•<?phpecho(“inijuga\n”); ?>
•<script language=”php”>
echo (“tulis pake ini jika html  editor  Anda tidak mengenaliPHP”);
</script>
•<% echo (“kalau yang  ini mirip dengan ASP”); %>
Paling  sering digunakan adalah cara pertama dan kedua. Perhatikan bahwa tiap akhir baris harus selalu diberi tanda titik koma(;).
Untuk menambahkan baris komentar pada PHP caranya adalah dengan meletakkan komentar tersebut disebelah  kanan  tanda// jika komentar  satu baris dan diantara/* dan*/ jika komentarnya lebih dari satu baris.
<? echo (“latihanPHP”; //ini adalah contoh komentar satu baris
/* kalau yang  ini adalah komentar
lebih dari satu baris*/
echo (“memang mudah”);
?>
2.3. Tipe Data
PHP mengenal tiga macam tipe data, yaitu:
  1. 1. Integer
Yang termasuk dalam tipe data ini adalah bilangan bulat (tidak pakai koma). contoh:
$a = 1234 // desimal
$b = -1234 // negatif
$c = 0123 // oktal
$d = 0×12 // heksadesimal
  1. 2. Floating point number
Disebut juga bilangan pecahan. Terdapat tanda titik yang merupakan pemisah antara bagian bulat dan pecahan.
$a = 1.234 // bentuk biasa
$b = 1.2e3 // bentuk  eksponensial
  1. 3. Strings
$a = “ini adalah tipe data  string”
Tipe Data: Array
Array  merupakan tipe data terstruktur yang berguna untuk menyimpan sejumlah data yang bertipe sama. Bagian yang  menyusun array disebut elemen array, yang masing-masing elemen dapat diakses tersendir imelalui indeks array.
  1. 1. Array berdimensi Satu
<?
$kota[0] = “Yogyakarta”;
$kota[1] = “Jakarta”;
$kota[2] = “Malang”;
$kota[3] = “Purwokerto”;
print (“Kota favorit saya adalah $kota[2]“);
?>
Kode diatas bila dijalankan pada browser, akan muncul tulisan:
Kota  favorit saya adalah Malang.
Indeks array dimulai dari 0. Jadi indeks array 0 menyatakan elemen pertama dari array, indeks array 1 menyatakan elemen array kedua, dan seterusnya.
  1. 2. Array Multidimensi
Yang termasuk dalam tipe data ini adalah bilangan bulat (tidak pakai koma).
contoh:<?
$buaht= array (
“apel” => array(
“warna” => “merah”,
“rasa” => “manis”
),
“pisang” => array(
“warna” => “kuning”,
“rasa” => “manis”
)
);
print (“Warna buah apel adalah”);
print ($buah["apel"]["warna"]).”<br>”;
print (“Rasa buahpisangadalah”);
print ($buah["pisang"]["rasa"]);
?>
Kode diatas akan menghasilkan tulisan
Warna buah apel adalah merah
Rasa buah pisang adalah manis
  • Konstanta
•Konstanta menyatakan nilai yang tetap didalam program.
•Pada PHP dikenal sejumlah karakter yang menggunakan penulisan secara    khusus.
Penulisan
Karakter yang dimaksud
\”
Petik ganda
\\
Backslash
\$
Tanda dolar
\n
New line
\r
Carriage return
\t
Tab
\x00 s/d \xFF
Karakter Hexadesimal
<HTML>
<HEAD>
<TITLE> Contoh Penulisan Karakter dengan </TITLE>
</HEAD>
<BODY>
<?php
$bahasa= “PHP”;
print(“\”Selamat Belajar PHP\”<BR>\n”);
print(“\$bahasa= $bahasa”);
?>
</BODY>
</HTML>
  • Variabel
Variabel digunakan dalam program untuk menyimpan nilai yang berubah-ubah.
Pada PHP selalu ditulis dengan awalan berupa$.
<HTML>
<HEAD>
<TITLE> Contoh Penaikan Isi variable </TITLE>
</HEAD>
<BODY>
<?php
$gaji= 2000000;
printf(“Gajisemula= %d
<BR>\n”, $gaji);
$gaji= 1.5 * $gaji;
printf(“Gaji sekarang=%d
<BR>\n”, $gaji);
?>
</BODY>
</HTML>
Linkup variable
<HTML>
<HEAD>
<TITLE> PengaruhLingkuplokal</TITLE>
</HEAD>
<BODY>
<?php
function ganti()
{
$bunga= “Mawar”;
}
$bunga= “Melati”;
print(“$bunga”);
?>
</BODY>
</HTML>
Selain variabel lokal dan global, pada  PHp dikenal istilah variabel statis. Variabel statis mempunyai sifat sebagai berikut:
•Hanya dapat diakses oleh fungsi yang  mendeklarasikannya
•Variabel tidak hilang saat eksekusi fungsi berakhir sehingga akan tetap             dikenali pada pemanggilan fungsi pada tahap berikutnya
•Inisialisasi (pemberian nilai awal) akan dilakukan sekali saja
Variabel Non Statis
<HTML>
<HEAD>
<TITLE> ContohVariabelNon-statis</TITLE>
<BODY>
</HEAD>
<?php
function hitung()
{
$pencacah= 0;
return ++$pencacah;
}
printf(“%d<BR>\n”, hitung());
printf(“%d<BR>\n”, hitung());
printf(“%d<BR>\n”, hitung());
?>
</BODY>
</HTML>
Variabel Statis
<HTML>
<HEAD>
<TITLE> Contoh Variabel Statis</TITLE>
</HEAD>
<BODY>
<?php
function hitung()
{
static $pencacah= 0;
return ++$pencacah;
}
printf(“%d<BR>\n”, hitung());
printf(“%d<BR>\n”, hitung());
printf(“%d<BR>\n”, hitung());
?>
</BODY>
</HTML>
  • Operator
Prioritas
Operator
Tertinggi
Terendah
()
~,!,++,–,$,&
*,/,%
+,-
<>,<=,>=
==,!=
^
!
||
=,+=,-=,*=,/=,&=,|=,^=,=
AND (&&)
XOR (||)
OR
2.4.  Pernyataan IF
Pernyataan if biasa dipakai untuk mengambil keputusan berdasarkan suatu kondisi. PHP memiliki 3 macam bentuk if :
•Bentuk if :                           if (ekspresi)
pernyataan
•Bentukif-else:                     if (ekspresi)
pernyataan_1
else pernyataan_2
•Bentukif-else:                     if (ekspresi)
pernyataan_1
elseifpernyataan_2
else pernyataan_3
ContohIF
<html>
<head>
<title> Contoh Penentuan Diskon
</title>
</head>
<body>
<?php
$total_beli= 200000;
$keterangan= “Takdapatdiskon”;
if ($total_beli>= 100000)
$keterangan= “Dapatdiskon”;
print(“$keterangan<BR>\n”);
?>
</body>
</html>
2.5. Pernyataan SWITCH
Switch digunakan apabila anda menjumpai persoalan yang melibatkan banyak alternative.
<html>
<head><title> Menentukan nama hari</title> </head>
<body>
<?php
$nama_hari= “Sunday”;
switch ($nama_hari) {
case “Sunday”: print(“Minggu”); break;
case “Monday”: print(“Senin”); break;
case “Tuesday”: print(“Selasa”); break;
case “Wednesday”: print(“Rabu”); break;
case “Thursday”: print(“Kamis”); break;
case “Friday”: print(“Jumat”); break;
default: print(“Sabtu”); }
?>
</body>
</html>
2.6. Pengulangan dengan For
PHP juga menyediakan fasilitas untuk melakukan pengulangan. Salah satunnya adalah dengan menggunakan For.
2.7. Mengenal function
Function atau merupakan sejumlah pernyataan yang dikemas dalam sebuah nama. Nama ini selanjutnya dapat dipanggil berkali-kali dibeberapa tempat pada program.
Tujuan penggunaan fungsi adalah:
-Memudahkan dalam mengembangkan program
-Menghemat ukuran program
Untuk membuat fungsi, harus mengikuti syntax sebagai berikut:
function namafungsi($parameter1, $parameter2)
{
pernyataan1;
pernyataan2;
}
Contoh1 : membuat fungsi yang  tidak mempunyai parameter
Nama file : fungsi1.php
<?function BukaTabel()
{echo “<table align=center width=\”80%\” border=0
cellspacing=1
cellpadding=0 bgcolor=#555555><tr><td>\n”;
echo “<table width=\”100%\” border=0 cellspacing=1
cellpadding=8
bgcolor=#ffffff><tr><td>\n”;
echo “<center>”; }
function TutupTabel()
{ echo “</td></tr></table></td></tr></table>\n”; }
?>
<html>
<head><title> LatihanFungsi1 </title> </head>
<body>
<?php
BukaTabel(); print (“Initabelpertama”);
TutupTabel(); print (“<br>”);
BukaTabel(); print (“Initabelkedua”);
TutupTabel();
?>
</body></html>
Contoh2 : membuat fungsi yang  mempunyai parameter
Namafile : fungsi2.ph
<?
function BukaTabel($warna1, $warna2)
{
echo “<table align=center width=\”80%\” border=0 cellspacing=1 cellpadding=0 bgcolor=\”$warna1\”><tr><td>\n”;
echo “<table width=\”100%\” border=0 cellspacing=1cellpadding=8
bgcolor=\”$warna2\”><tr><td>\n”;
echo “<center>”;
}
function TutupTabel()
{echo “</td></tr></table></td></tr></table>\n”;
}
?>
<html>
<head> <title> LatihanFungsi2 </title></head>
<body>
<?php
BukaTabel(“red”, “#dddddd”);
print (“Initabelpertama”);
print (“<table border=1 width=100%>”);
print (“<tr><td width=33% align=center> Kolom1 </td>”);
print (“<td width=33% align=center> Kolom2 </td>”);
print (“<td width=* align=center> Kolom3 </td> </tr>”);
print (“</table>”);
TutupTabel();
print (“<br>”);
BukaTabel(“blue”, “white”);
print (“Initabelkedua”);
TutupTabel();
?>
</body>
</html>
Nilai Balik
Umumnya fungsi memberikan nilai balik.
<HTML>
<HEAD><TITLE> Contoh fungsi dengan nilai balik </TITLE></HEAD>
<BODY>
<?php
function kuadrat($bilangan)
{
$tmp= $bilangan* $bilangan;return $tmp;
}
printf(kuadrat(5));
print(“<BR>\n”);
print(kuadrat(5.5));
?>
</BODY>
</HTML>
Nilai Argumen Bawaan
Perbedaan fungsi ini dengan fungsi sebelumnya terletak pada argumen kedua.Jika argumen kedua tidak disebutkan pada saat fungsi dipanggil, maka nilainya dianggap sama dengan1.
<HTML>
<HEAD>
<TITLE> Contoh nilai argument bawaan</TITLE></HEAD>
<BODY>
<?php
function tuliskar ($teks, $jumlah= 1) {
for ($i = 1;$i <= $jumlah;$i++)
print($teks); }
tuliskar(“P”,5); print(“<BR>\n”)
;tuliskar(“+”); print(“<BR>\n”);
tuliskar(“+”,1);
?>
</BODY>
</HTML>
2.8. Fungsi untuk Mengkonversi Data
PHP menyediakan perintah untuk melakukan konversi dari suatu tipe data ke tipe data lain. Salah satunya:
Settype($suhu, “double”);
Akan membuat isi variable suhu diubah menjadi bertipe double.
Fungsi
Keterangan
doubleval
Untuk memperoleh nilai bertipe double berdasarkan nilai argument. Bentuk pemanggilan: doubleval (argument)
Intval
Untuk memperoleh niali bertipe integer berdasarkan nilai argumen. Bentuk pemanggilan : intval (argumen)
Strval
Untuk memperoleh nilai bertipe string berdasarkan nilai argumen. Bentuk pemanggilan: strval (argumen)
Operasi dengan String
Operator titik (.) dan titik samadengan (.=)
Operator titik(.) berguna untuk menggabungkan dua buah string.
Operator .=
Contoh: $kata.= “Pagi”; identik dengan $kata= $kata. “Pagi”;
<HTML>
<HEAD>
<TITLE> Contoh Penggabungan String</TITLE>
<BODY>
<?php
$kalimat= “Hai”;
$kalimat=
$kalimat. ” ” . “Selamat”;
$kalimat.= “belajarPHP”;
print($kalimat);
?>
</BODY>
</HTML>
Mendalami Perintah Printf
Fungsi printf mempunyai bentuk pemanggilan sebagai berikut:
printf(format_string, argument …);
Format string menentukan format argumen dalam tampilan browser.
Kode
Keterangan
D
Bilangan bulat
B
Bilangan biner bulat
O
Bilangan octal
X
Bilangan hexadesimal. Huruf  dinyatakan dalam huruf kecil
X
Bilangan hexadesimal. Huruf dinyatakan dalam huruf besar
Penggunaan perintah print bisa dengan tanda kurung atau bisa juga tidak. Contoh: print (“Hallo”); identik dengan print “Hallo”;
Perintah Echo adalah alternatif lain dari print.
Bentuk penggunaannya: echo string
Contoh format printf
<HTML>
<HEAD>
<TITLE> ContohPenggabunganString</TITLE>
<BODY>
<?php
$data = “45.5 derajatCelcius”;
printf(“Formatd: %d <BR>\n”, $data);
printf(“Formatb: %b <BR>\n”, $data);
printf(“Formato: %o <BR>\n”, $data);
printf(“Formatx: %x <BR>\n”, $data);
printf(“FormatX: %X <BR>\n”, $data);
printf(“Formatc: %c <BR>\n”, $data);
printf(“Formats: %s <BR>\n”, $data);
printf(“Formatf: %f <BR>\n”, $data);
?>
</BODY>
</HTML>
Fungsi Dasar String
PHP menyediakan fungsi-fungsi yang berhubungan dengan string.
Fungsi
Keterangan
strlen
Menghitung panjang string
Strtoupper
Mengubah menjadi huruf besar
Strtolower
Mengubah menjadi huruf kecil
ucfirst
Mengubah huruf pertama suatu string menjadi huruf besar
ucwords
Mengubah huruf  pertama suatu kata menjadi huruf besar
Itrim
Menghilangkan spasi di awal/kiri string
rtrim
Menghilangkan spasi di akhir/kanan string
trim
Menghilangkan spasi di awal dan diakhir string
Substr
Mengambil suatu string dari string yang lain (awal string-> 0)
Substr_count
Menghitung jumlah suatu karakter/string dari string yang lain
Strpos
Mengetahui posisi suatu karakter dalam suatu string, dll
Fungsi Waktu
•Fungsi check date
Fungsi ini berguna untuk memeriksa kebenaran suatu tanggal.
Bentuk pemanggilannya: checkdate (bulan,tanggal,tahun)
Semua argumen bertipe integer. Hasilnya:
-TRUE, jika tanggal yang  menjadi argumennya adalah tanggal yang  valid
-FALSE, jika tanggal yang  menjadi argumennya adalah tanggal yang  tidak valid (31 februari 2001)
•Fungsi date
Fungsi ini digunakan untuk memperoleh tanggal atau jam pada sistem (server).
Bentuk pemanggilannya: date (string_format)
Pelajari string format untuk tanggal!
•Fungsi microtime
Fungsi ini menghasilkan waktu dalam satuan detik, dihitung semenjak tanggal 1 Januari 1970 jam 0:0:0. Nilai balik bertipe string.
•Fungsi time
Fungsi ini juga tidak memiliki argumen. Jadi bentuk pemanggilannya adalah time(). Kegunaannya sama dengan microtime tetapi nilai balik bertipe integer.
Contoh Fungsi Waktu
<HTML>
<HEAD>
<TITLE> Contoh Date</TITLE>
</HEAD>
<BODY>
<?php
printf(“1) date (\”D, d F Y\”) :
%s<BR>\n”, date(“D, d F Y”));
printf(“2) date (\”g, A\”) :
%s<BR>\n”,date(“gA”));
printf(“3) date (\”dS\”) : %s<BR>\n”,
date(“dS”));
?>
</BODY>
</HTML>
2.9. Menangani Berkas
v  Fungsi fopen
Fungsi ini menghasilkan nilai balik bertipe integer  yang menyatakan bahwa anda bisa melakukan pengaksesan terhadap berkas. Bentuk pemanggilan fungsi: fopen(nama_berkas, mode)
Model
Keterangan
r
Berkas hanya bisa dibaca. Penunjuk berkas akan diletakkan diawal berkas
r+
Berkas dibuka dengan mode  baca dan tulis. Penunjuk berkas akan diletakkan diawal berkas
w
Mode perekaman data. Berkas akan diciptakan kalau belum ada. Kalau sudah ada, isinya akan dihapus.
w+
Berkas dibuka dengan mode baca dan tulis. Berkas akan diciptakan kalau belum ada. Kalau sudah ada, isinya akan dihapus.
a
Mode  untuk penambahan data. Penunjuk berkas diletakkan pada akhir berkas. Apabila berkas belum ada, berkas akan diciptakan.
a+
Berkas dibuka dengan mode  baca dan tulis. Penunjuk berkas akan diletakkan diakhir berkas. Apabila berkas belum ada, berkas akan diciptakan
v  Fungsi fclose
Berguna untuk menutup berkas. Bentuk pemanggilannya: fclose(pegangan)
Argumen pegangan menyatakan pegangan berkas yang diperoleh saat memanggil fopen. Nilai balik fungsi ini dapat berupa:
-TRUE apabila berkas berhasi lditutup
-FALSE apabila berkas gagal ditutup
v  Fungsi fputs
Fungsi ini digunakan untuk merekam data ke berkas. Bentuk pemanggilannya: fputs (pegangan, data)
Fungsi memberikan nilai balik berupa:
-TRUE kalau data berhasil direkam
-FALSE kalau data gagal direkam
v  Fungsi fgets
Fungsi ini digunakan untuk membaca data yang terdapat dalam berkas. Bentuk pemanggilan: fgets (pegangan, panjang)
v  Fungsi fgetc
Berguna untuk membaca sebuah karakter dari berkas. Bentuk pemanggilannya: fgetc(pegangan)
Nilai balik berupa sebuah karakter yang sedang ditunjuk oleh penunjuk berkas. Adapun penunjuk berkas akan digeser ke posisi karakter berikutnya setelah data dibaca Fungsi feof
Fungsi ini berguna untuk memeriksa apakah penunjuk berkas sedang menuju akhir berkas atau tidak. Bentuk pemanggilannya: feof(pegangan)
v  Fungsi fseek
Berguna untuk memindahkan penunjuk  kesuatu posisi dalam berkas. Bentuk pemanggilannya: fseek(pegangan,ofset[,acuan])
Fungsi rewind
Berguna untuk meletakkan penunjuk berkas ke awal berkas. Bentuk pemanggilan: rewind(pegangan)
Fungsi ftell
Berguna untuk memperoleh posisi penunjuk berkas. Bentuk pemanggilannya: ftell(pegangan)
Fungsi fpassthru
Berguna untuk menampilkan seluruh data dimulai dari posisi penunjuk berkas hingga akhir berkas. Bentuk pemanggilannya: fpassthru(pegangan)
Contoh Manangani Berkas
<HTML>
<HEAD>
<TITLE> Contoh fpassthru</TITLE>
</HEAD>
<BODY>
<?php
$website =
$berkas= fopen($website,”r”);
if ($berkas)
fpassthru($berkas);
else
print(“Berkas$website tidak
dapat dibuka”);
fclose($berkas);
?>
</BODY>
</HTML>








2.10 Contoh Pemrogrman Web Sederhana
Tampilan Halaman Login
Tampilan Halaman Untuk Membuat Akun Baru
Tampilan Halaman Index

Tampilan Halaman Input Barang
Tampilan Halaman Lihat Barang
Tampilan Halaman Input Data Karyawan

Tampilan Halaman Lihat Data Karyawan









BAB III
PENUTUP
3.1. Kesimpulan
Didalam PHP terdapat memiliki banyak bagian yang masing-masing mempunyai fungsi dan kegunaan sendiri sesuai dengan kebutuhan  dan kondisi yang terjadi. Oleh karena itu kita harus mempelajari dengan telilti,,supaya dapat
3.2. Saran
Untuk menciptakan suatu program yang baik,seorang programmer sebaiknya: Menguasai bahasa pemrograman.
Dalam penulisan kode program harus teliti
  1. Sintaks dan semantik bahasa pemrograman haruslah konsisten dan tidak bermakna ganda
  2. Bahasa programmer yang baik haruslah berkemampuan untuk mendukung berbagai tipe data(integer, real, pointer,dsb) dan terstruktur dalam array, record ataupun object
Konsep dasar pemrograman meliputi proses bagaimana mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah. Proses dari masalah hingga terbentuk suatu algoritma disebut tahap pemecahan masalah, sedangkan tahap dari algoritma hingga terbentuk suatu solusi disebut dengan tahap implementasi. Solusi yang dimaksud adalah suatu program merupakan proses impelementasi dari algoritma yang disusun.
Untuk menciptakan suatu program yang baik yang memiliki portabilitas yang tinggi, sehingga memudahkan dalam merancang dan merawat program serta meningkatkan efektifitas penggunaan peralatan komputer dibutuhkan suatu standar program. Standar-standar tersebut sering dilihat oleh pemrogram sebagai batasan kreatifitas dan kemampuan untuk menuangkan berbagai ide ke dalam bentuk program. Namun dengan adanya standar akan membuat program menjadi konsisten dan mudah untuk dikembangkan.





















DAFTAR PUSTAKA





Enkripsi dan deskripsi

BAB I
PENDAHULUAN
1.1       Latar Belakang
Di era globalisasi ini, dimana segala sesuatunya itu berjalan dengan cepat, kemajuan teknologi semkain memudahkan manusia untuk berkomunikasi dan saling bertukar informasi. Tetapi dengan kemajuan teknnologi itu pula dapat mengakibatkan informasi yang ditukar bisa terganggu dan bisa saja dapat di ubah oleh orang lain yang tidak berhak.
Keamanan dan kerahasiaan sebuah data atau informasi dalam komunikasi dan pertukaran informasi menjadi hal yang sangat penting. Itu dikarenakan seringkalinya data atau informasi yang penting kadang tidak sampai ke tangan si penerima atau juga bahkan bisa sampai ke tangan si penerima tapi data yang di terima tersebut di sadap terlebih dahulu tanpa pengetahun dari si pengirim maupun oleh si penerima itu sendiri. Dan bisa saja data asli tersebut oleh si penyadap dirubah datanya sehingga yang seharusnya dikirim ke si penerima berupa data yang asli menjadi data yang tidak sesuai, sehingga bisa menjatuhkan pihak si pengirim. Padahal isi data sebenarnya tidak seperti itu.
Hal inilah yang seringkali di takutkan oleh pihak – pihak yang saling ingin bertukar informasi. Mereka takut apakah data yang mereka kirim tersebut bisa sampai ke si penerima atau tidak, sehingga masalah keamanan dan rahasianya sebuah data merupakan hal yang sangat penting dalam pertukaran informasi. Maka dari itu saking pentingnya data yang di berikan tersebut agar bisa sampai ke penerima dalam bentuk yang autentik diperlukannya sebah metode untuk merahasiakan data yang dikirim tersebut.
Maka kebanyakan dari pihak – pihak yamg saling bertukar informasi itu menggunakan beberapa macam metode untuk menjaga kerahasiaan pesan mereka, diantaranya dengan menggunakan sebuah metode penyandian pesan yang bernama Kriptographi ( Cryptographi ) untuk merahasiakan pesan yang mereka kirimkan di sini penulis menggunakan Enkripsi dan Deskripsi.
1.2       Tujuan Enkripsi Dan Deskripsi
Enkripsi dapat digunakan untuk tujuan keamanan, tetapi teknik lain masih diperlukan untuk membuat komunikasi yang aman, terutama untuk memastikan integritas dan autentikasi dari sebuah pesan. Contohnya, Message Authentication Code (MAC) atau digital signature. Penggunaan yang lain yaitu untuk melindungi dari analisis jaringan komputer.
Deskripsi adalah upaya pengolahan data menjadi sesuatu yang dapat diutarakan secara jelas dan tepat dengan tujuan agar dapat dimengerti oleh orang yang tidak langsung mengalaminya sendiri.
1.3       Manfaat Enkripsi dan Deskripsi
Beberapa manfaat yang bisa didapatkan dari enkripsi dan deskripsi ini adalah :
a. Kerahasiaan suatu informasi terjamin
b. Menyediakan authentication dan perlindungan integritas pada algoritma checksum/hash
c. Menanggulangi penyadapan telepon dan email
d. Untuk digital signature. Digital signature adalah menambahkan suatu baris statemen pada suatu elektronik copy dan mengenkripsi statemen tersebut dengan kunci yang kita miliki dan hanya pihak yang memiliki kunci dekripsinya saja yang bisa membukanya.
e. Untuk digital cash





BAB II
LANDASAN TEORI
2.1       Enkripsi dan Deskripsi
Di bidang kriptografi, Enkripsi ialah proses mengamankan suatu informasi dengan membuat informasi tersebut tidak dapat dibaca tanpa bantuan pengetahuan khusus. Dikarenakan enkripsi telah digunakan untuk mengamankan komunikasi di berbagai negara, hanya organisasi-organisasi tertentu dan individu yang memiliki kepentingan yang sangat mendesak akan kerahasiaan yang menggunakan enkripsi. Di pertengahan tahun 1970-an, enkripsi kuat dimanfaatkan untuk pengamanan oleh sekretariat agen pemerintah Amerika Serikat pada domain publik, dan saat ini enkripsi telah digunakan pada sistem secara luas, seperti Internet e-commerce, jaringan Telepon bergerak dan ATM pada bank.
Enkripsi dapat digunakan untuk tujuan keamanan, tetapi teknik lain masih diperlukan untuk membuat komunikasi yang aman, terutama untuk memastikan integritas dan autentikasi dari sebuah pesan. Contohnya, Message Authentication Code (MAC) atau digital signature. Penggunaan yang lain yaitu untuk melindungi dari analisis jaringan komputer.
Secara singkat, proses enkripsi adalah proses mengubah teks terang menjadi teks tersandi.
Deskripsi adalah upaya pengolahan data menjadi sesuatu yang dapat diutarakan secara jelas dan tepat dengan tujuan agar dapat dimengerti oleh orang yang tidak langsung mengalaminya sendiri.
Dalam keilmuan, deskripsi diperlukan agar peneliti tidak melupakan pengalamannya dan agar pengalaman tersebut dapat dibandingkan dengan pengalaman peneliti lain, sehingga mudah untuk dilakukan pemeriksaan dan kontrol terhadap deskripsi tersebut. Pada umumnya deskripsi menegaskan sesuatu, seperti apa sesuatu itu kelihatannya, bagaimana bunyinya, bagaimana rasanya, dan sebagainya. Deskripsi yang detail diciptakan dan dipakai dalam disiplin ilmu sebagai istilah teknik.
BAB III
PEMBAHASAN
3.1       Enkripsi
Di bidang kriptografi, enkripsi ialah proses mengamankan suatu informasi dengan membuat informasi tersebut tidak dapat dibaca tanpa bantuan pengetahuan khusus. Dikarenakan enkripsi telah digunakan untuk mengamankan komunikasi di berbagai negara, hanya organisasi-organisasi tertentu dan individu yang memiliki kepentingan yang sangat mendesak akan kerahasiaan yang menggunakan enkripsi. Di pertengahan tahun 1970-an, enkripsi kuat dimanfaatkan untuk pengamanan oleh sekretariat agen pemerintah Amerika Serikat pada domain publik, dan saat ini enkripsi telah digunakan pada sistem secara luas, seperti Internet e-commerce, jaringan Telepon bergerak dan ATM pada bank.
Enkripsi dapat digunakan untuk tujuan keamanan, tetapi teknik lain masih diperlukan untuk membuat komunikasi yang aman, terutama untuk memastikan integritas dan autentikasi dari sebuah pesan. Contohnya, Message Authentication Code (MAC) atau digital signature. Penggunaan yang lain yaitu untuk melindungi dari analisis jaringan komputer.
Secara singkat, proses enkripsi adalah proses    mengubah teks terang menjadi teks tersandi.
3.1.1    Metode enkripsi simetris RC4
Ketika internet menjadi salah satu media komunikasi yang banyak digunakan orang, sebagian orang kemudian berpikir untuk menjadikanya sebagai media untuk transaksi komersial semacan internet banking, e-comerce, dan lain sebagainya. Kebutuhan akan hal itu kemudian didukung dengan lahirnya berbagai metode ataupun algoritma – algoritma enkripsi untuk pengamanan data misalnya MD2,MD4,MD5,RC4,RC5, dan lain sebagainya. Pembakuan penulisan pada kriptografi dapat ditulis dalam bahasa matematika. Fungsi-fungsi yang mendasar dalam kriptografi adalah enkripsi dan dekripsi. Enkripsi adalah proses mengubah suatu pesan asli (plaintext) menjadi suatu pesan dalam bahasa sandi (ciphertext).
C = E (M)
dimana
M = pesan asli
E = proses enkripsi
C = pesan dalam bahasa sandi (untuk ringkasnya disebut sandi)
Sedangkan dekripsi adalah proses mengubah pesan dalam suatu bahasa sandi menjadi pesan asli kembali.
M = D (C)
D = proses dekripsi
Dalam setiap transaksi di internet , idealnya, setiap data yang ditransmisikan harusnya terjamin :
•           Integritas data
Jaminan integritas data sangat penting, sehingga data yang di kirimkan akan sama persis dengan data yang diterima, tanpa mengalami perubahan apapun pada selama ditransmisikan.
•           Kerahasiaan data
Jaminan kerahasiaan data juga penting karena dengan demikian tidak ada pihak lain yang bisa membaca data yang ada selama data tersebut ditransmisikan.
•           Otentikasi akse data

Mekanisme otentikasi akses data menjamin bahwa data ditransmisikan oleh pihak yang benar dengan tujuan transimisi yang benar pula.
Teknik kriptografi data untuk enkripsi ada dua macam yaitu:
•           Kriptografi simetrik
Dengan model kriptografi ini, data di enkripsi dan didekripsi dengan kunci rahasia yang sama.
•           Kriptografi asimetrik
Dengan model kriptografi ini, data dienkripsi dan didekripsi dengan kunci rahasia yang berbeda.pasangan kunci untuk enkripsi dan dekripsi dikenal dengan private key dan public key.
Gbr-1. Metode enkripsi simetrik (1) dan asimetrik (2)
3.1.2    Keamanan metode enkripsi RC4
Perbandingan kemanan metode enkripsi DES dengan RC4 menurut penulisnya pada, http://www.geocities.com/amwibowo/resource/komparasi/komparasi.html adalah sebagai berikut :
Panjang kunci DES       Jaminan waktu untuk menemukan kunci
40-bit   0,4 detik
56-bit   7 jam
64-bit   74 jam 40 menit
128-bit 157.129.203.952.300.000 tahun
Tabel 1.1. Serangan brute-force pada DES

Panjang kunci RC4       Jaminan waktu untuk menemukan kunci
40-bit   15 hari
56-bit   2.691,49 tahun
64-bit   689.021,57 tahun
128-bit 12.710.204.652.610.000.000.000.000 tahun
Tabel 1.2. Serangan brute-force pada RC4
Dari tabel diatas dapat dilihat bahwa metode enkripsi dengan menggunkan RC4 masih lebih aman dibanding dengan metode enkripsi dengan DES.
3.1.3    Metode Enkripsi RSA
RSA di bidang kriptografi adalah sebuah algoritma pada enkripsi public key. RSA merupakan algoritma pertama yang cocok untuk digital signature seperti halnya ekripsi, dan salah satu yang paling maju dalam bidang kriptografi public key. RSA masih digunakan secara luas dalam protokol electronic commerce, dan dipercaya dalam mengamnkan dengan menggunakan kunci yang cukup panjang.
Algortima RSA dijabarkan pada tahun 1977 oleh tiga orang : Ron Rivest, Adi Shamir dan Len Adleman dari Massachusetts Institute of Technology. Huruf RSA itu sendiri berasal dari inisial nama mereka (Rivest—Shamir—Adleman). Clifford Cocks, seorang matematikawan Inggris yang bekerja untuk GCHQ, menjabarkan tentang sistem equivalen pada dokumen internal di tahun 1973. Penemuan Clifford Cocks tidak terungkap hingga tahun 1997 karena alasan top-secret classification.
Algoritma tersebut dipatenkan oleh Massachusetts Institute of Technology pada tahun 1983 di Amerika Serikat sebagai U.S. Patent 4405829. Paten tersebut berlaku hingga 21 September 2000. Semenjak Algoritma RSA dipublikasikan sebagai aplikasi paten, regulasi di sebagian besar negara-negara lain tidak memungkinkan penggunaan paten. Hal ini menyebabkan hasil temuan Clifford Cocks di kenal secara umum, paten di Amerika Serikat tidak dapat mematenkannya.
Pembangkitan Kunci
Semisal Alice berkeinginan untuk mengizinkan Bob untuk mengirimkan kepadanya sebuah pesan pribadi (private message) melalui media transmisi yang tidak aman (insecure). Alice melakukan langkah-langkah berikut untuk membuat pasangan kunci public key dan private key:
1.         Pilih dua bilangan prima p ≠ q secara acak dan terpisah untuk tiap-tiap p dan q. Hitung N = p q. N hasil perkalian dari p dikalikan dengan q.
2.         Hitung φ = (p-1)(q-1).
3.         Pilih bilangan bulat (integer) antara satu dan φ (1 < e < φ) yang juga merupakan coprime dari φ.
4.         Hitung d hingga d e ≡ 1 (mod φ).
•           bilangan prima dapat diuji probabilitasnya menggunakan Fermat’s little theorem- a^(n-1) mod n = 1 jika n adalah bilangan prima, diuji dengan beberapa nilai a menghasilkan kemungkinan yang tinggi bahwa n ialah bilangan prima. Carmichael numbers (angka-angka Carmichael) dapat melalui pengujian dari seluruh a, tetapi hal ini sangatlah langka.
•           langkah 3 dan 4 dapat dihasilkan dengan algoritma extended Euclidean; lihat juga aritmetika modular.
•           langkah 4 dapat dihasilkan dengan menemukan integer x sehingga d = (x(p-1)(q-1) + 1)/e menghasilkan bilangan bulat, kemudian menggunakan nilai dari d (mod (p-1)(q-1));

•           langkah 2 PKCS#1 v2.1 menggunakan &lamda; = lcm(p-1, q-1) selain daripada φ = (p-1)(q-1)).
Pada public key terdiri atas:
•           N, modulus yang digunakan.
•           e, eksponen publik (sering juga disebut eksponen enkripsi).
Pada private key terdiri atas:
•           N, modulus yang digunakan, digunakan pula pada public key.
•           d, eksponen pribadi (sering juga disebut eksponen dekripsi), yang harus dijaga kerahasiaannya.
Biasanya, berbeda dari bentuk private key (termasuk parameter CRT):
•           p dan q, bilangan prima dari pembangkitan kunci.
•           d mod (p-1) dan d mod (q-1) (dikenal sebagai dmp1 dan dmq1).
•           (1/q) mod p (dikenal sebagai iqmp).
Bentuk ini membuat proses dekripsi lebih cepat dan signing menggunakan Chinese Remainder Theorem (CRT). Dalam bentuk ini, seluruh bagian dari private key harus dijaga kerahasiaannya.
Alice mengirimkan public key kepada Bob, dan tetap merahasiakan private key yang digunakan. p dan q sangat sensitif dikarenakan merupakan faktorial dari N, dan membuat perhitungan dari d menghasilkan e. Jika p dan q tidak disimpan dalam bentuk CRT dari private key, maka p dan q telah terhapus bersama nilai-nilai lain dari proses pembangkitan kunci.
Proses enkripsi pesan
Misalkan Bob ingin mengirim pesan m ke Alice. Bob mengubah m menjadi angka n < N, menggunakan protokol yang sebelumnya telah disepakati dan dikenal sebagai padding scheme.
Maka Bob memiliki n dan mengetahui N dan e, yang telah diumumkan oleh Alice. Bob kemudian menghitung ciphertext c yang terkait pada n:
Perhitungan tersebut dapat diselesaikan dengan cepat menggunakan metode exponentiation by squaring. Bob kemudian mengirimkan c kepada Alice.
Proses dekripsi pesan
Alice menerima c dari Bob, dan mengetahui private key yang digunakan oleh Alice sendiri. Alice kemudian memulihkan n dari c dengan langkah-langkah berikut:
Perhitungan diatas akan menghasilkan n, dengan begitu Alice dapat mengembalikan pesan semula m. Prosedur dekripsi bekerja karena
Kemudian, dikarenakan ed ≡ 1 (mod p-1) dan ed ≡ 1 (mod q-1), hasil dari Fermat’s little theorem.
Dan Dikarenakan p dan q merupakan bilangan prima yang berbeda, mengaplikasikan Chinese remainder theorem akan menghasilkan dua macam kongruen
Serta Contoh proses Berikut ini merupakan contoh dari enkripsi RSA dan dekripsinya. Parameter yang digunakan disini berupa bilangan kecil.
Kita membuat
p = 61  — bilangan prima pertama (harus dijaga kerahasiannya atau dihapus secara hati-hati)
q = 53  — bilangan prima kedua (harus dijaga kerahasiannya atau dihapus secara hati-hati)
N = pq = 3233 — modulus (diberikan kepada publik)
e = 17  — eksponen publik (diberikan kepada publik)
d = 2753          — eksponen pribadi (dijaga kerahasiannya)
Public key yang digunakan adalah (e,N). Private key yang digunakan adalah d. Fungsi pada enkripsi ialah:
encrypt(n) = ne mod N = n17 mod 3233
dimana n adalah plaintext Fungsi dekripsi ialah:
decrypt(c) = cd mod N = c2753 mod 3233
dimana c adalah ciphertext
Untuk melakukan enkripsi plaintext bernilai “123″, perhitungan yang dilakukan
encrypt(123) = 12317 mod 3233 = 855
Untuk melakukan dekripsi ciphertext bernilai “855″ perhitungan yang dilakukan
decrypt(855) = 8552753 mod 3233 = 123
Kedua perhitungan diatas diselesaikan secara effisien menggunakan square-and-multiply algorithm pada modular exponentiation.
3.1.4 Enkripsi Password
Password di Linux dibuat dengan menggunakan metode tingkat lanjut dalam enkripsi, yakni DES (Data Encryption Standard). Menurut Federal Processing Standards Publication 46-2, DES didefinisikan sebagai ;
Sebuah algoritma matematika untuk menjalankan enkripsi (enchypering) dan dekripsi (dechypering) informasi koding binary. Enkripsi mengkonversikan data menjadi bentuk yang sulit ditebak, disebut chyper. Proses dekripsi cypher mengkonversikan data kedalam bentuk aslinya, disebut plain-text. (terjemahan bebas)

Enkripsi dan dekripsi dilakukan tergantung pada kunci (key). Kunci ini dibuat berdasarkan masukan dari user pada saat mengetikkan password terdiri dari binary 64 digit. Jika password yang diketikkan kurang dari binary 64 digit, maka DES akan menambahkannya secara otomatis. Dari binary 64 digit, 56 dipergunakan untuk enkripsi, dan 8 dipergunakan untuk cek kesalahan (error checking).
Saat seorang penyusup (atau siapa saja) akan melakukan crack terhadap password di Linux, mereka biasanya mempergunakan kamus (dictionary attack). Saat melakukan crack, penyusup akan mengambil kata-kata dari kamus, kemudian mengenkripsinya dengan DES. Dalam proses ini, kata demi kata diberikan secara terus menerus, kemudian diproses sebagaimana Linux memproses passwordnya. Hasilnya akan dicocokkan dengan daftar yang ada di /etc/passwd. Jika cocok, program cracker akan memberitahukan kepada penyusup, bahwa password sudah berhasil ditemukan.
Untuk meningkatkan keamanan password dalam jaringan Anda, baca kembali sub bab tentang Discretionary Access Control.
3.1.5 Enkripsi Untuk Keamanan Data Pada Jaringan
Salah satu hal yang penting dalam komunikasi menggunakan computer untuk menjamin kerahasian data adalah enkripsi. Enkripsi dalah sebuah proses yang melakukan perubahan sebuah kode dari yang bisa dimengerti menjadi sebuah kode yang tidak bisa dimengerti (tidak terbaca). Enkripsi dapat diartikan sebagai kode atau chiper. Sebuah sistem pengkodean menggunakan suatu table atau kamus yang telah didefinisikan untuk mengganti kata dari informasi atau yang merupakan bagian dari informasi yang dikirim. Sebuah chiper menggunakan suatu algoritma yang dapat mengkodekan semua aliran data (stream) bit dari sebuah pesan menjadi cryptogram yang tidak dimengerti (unitelligible). Karena teknik cipher merupakan suatu sistem yang telah siap untuk di automasi, maka teknik ini digunakan dalam sistem keamanan komputer dan network.
Pada bagian selanjutnya kita akan membahas berbagai macam teknik enkripsi yang biasa digunakan dalam sistem sekuriti dari sistem komputer dan network.
—- more —-
A. Enkripsi Konvensional.
Proses enkripsi ini dapat digambarkan sebagai berikut :
Plain teks -> Algoritma Enkripsi -> Cipher teks ->Algoritma Dekrispsi -> Plain teks
User A | | User B
|———————-Kunci (Key) ——————–|
Gambar 1
Informasi asal yang dapat di mengerti di simbolkan oleh Plain teks, yang kemudian oleh algoritma Enkripsi diterjemahkan menjadi informasi yang tidak dapat untuk dimengerti yang disimbolkan dengan cipher teks. Proses enkripsi terdiri dari dua yaitu algoritma dan kunci. Kunci biasanya merupakan suatu string bit yang pendek yang mengontrol algoritma. Algoritma enkripsi akan menghasilkan hasil yang berbeda tergantung pada kunci yang digunakan. Mengubah kunci dari enkripsi akan mengubah output dari algortima enkripsi.
Sekali cipher teks telah dihasilkan, kemudian ditransmisikan. Pada bagian penerima selanjutnya cipher teks yang diterima diubah kembali ke plain teks dengan algoritma dan dan kunci yang sama.
Keamanan dari enkripsi konvensional bergantung pada beberapa faktor. Pertama algoritma enkripsi harus cukup kuat sehingga menjadikan sangat sulit untuk mendekripsi cipher teks dengan dasar cipher teks tersebut. Lebih jauh dari itu keamanan dari algoritma enkripsi konvensional bergantung pada kerahasian dari kuncinya bukan algoritmanya. Yaitu dengan asumsi bahwa adalah sangat tidak praktis untuk mendekripsikan informasi dengan dasar cipher teks dan pengetahuan tentang algoritma diskripsi / enkripsi. Atau dengan kata lain, kita tidak perlu menjaga kerahasiaan dari algoritma tetapi cukup dengan kerahasiaan kuncinya.
Manfaat dari konvensional enkripsi algoritma adalah kemudahan dalam penggunaan secara luas. Dengan kenyataan bahwa algoritma ini tidak perlu dijaga kerahasiaannya dengan maksud bahwa pembuat dapat dan mampu membuat suatu implementasi dalam bentuk chip dengan harga yang murah. Chips ini dapat tersedia secara luas dan disediakan pula untuk beberapa jenis produk. Dengan penggunaan dari enkripsi konvensional, prinsip keamanan adalah menjadi menjaga keamanan dari kunci.
Model enkripsi yang digunakan secara luas adalah model yang didasarkan pada data encrytion standard (DES), yang diambil oleh Biro standart nasional US pada tahun 1977. Untuk DES data di enkripsi dalam 64 bit block dengan menggunakan 56 bit kunci. Dengan menggunakan kunci ini, 64 data input diubah dengan suatu urutan dari metode menjadi 64 bit output. Proses yang yang sama dengan kunci yang sama digunakan untuk mengubah kembali enkripsi.
B. Enkripsi Public-Key
Salah satu yang menjadi kesulitan utama dari enkripsi konvensional adalah perlunya untuk mendistribusikan kunci yang digunakan dalam keadaan aman. Sebuah cara yang tepat telah diketemukan untuk mengatasi kelemahan ini dengan suatu model enkripsi yang secara mengejutkan tidak memerlukan sebuah kunci untuk didistribusikan. Metode ini dikenal dengan nama enkripsi public-key dan pertama kali diperkenalkan pada tahun 1976.

Plain teks -> Algoritma Enkripsi -> Cipher teks -> Algoritma Dekrispsi -> Plain teks
User A | | User B
Private Key B —-|
|———————-Kunci (Key) ——————–|
Gambar 2
Algoritma tersebut seperti yang digambarkan pada gambar diatas. Untuk enkripsi konvensional, kunci yang digunakan pada prosen enkripsi dan dekripsi adalah sama. Tetapi ini bukanlah kondisi sesungguhnya yang diperlukan. Namun adalah dimungkinkan untuk membangun suatu algoritma yang menggunakan satu kunci untuk enkripsi dan pasangannya, kunci yang berbeda, untuk dekripsi. Lebih jauh lagi adalah mungkin untuk menciptakan suatu algoritma yang mana pengetahuan tentang algoritma enkripsi ditambah kunci enkripsi tidak cukup untuk menentukan kunci dekrispi. Sehingga teknik berikut ini akan dapat dilakukan :
1.         Masing – masing dari sistem dalam network akan menciptakan sepasang kunci yang digunakan untuk enkripsi dan dekripsi dari informasi yang diterima.
2.         Masing – masing dari sistem akan menerbitkan kunci enkripsinya ( public key ) dengan memasang dalam register umum atau file, sedang pasangannya tetap dijaga sebagai kunci pribadi ( private key ).
3.         Jika A ingin mengisim pesan kepada B, maka A akan mengenkripsi pesannya dengan kunci publik dari B.
4.         Ketika B menerima pesan dari A maka B akan menggunakan kunci privatenya untuk mendeskripsi pesan dari A.
Seperti yang kita lihat, public-key memecahkan masalah pendistribusian karena tidak diperlukan suatu kunci untuk didistribusikan. Semua partisipan mempunyai akses ke kunci publik ( public key ) dan kunci pribadi dihasilkan secara lokal oleh setiap partisipan sehingga tidak perlu untuk didistribusikan. Selama sistem mengontrol masing – masing private key dengan baik maka komunikasi menjadi komunikasi yang aman. Setiap sistem mengubah private key pasangannya public key akan menggantikan public key yang lama. Yang menjadi kelemahan dari metode enkripsi publik key adalah jika dibandingkan dengan metode enkripsi konvensional algoritma enkripsi ini mempunyai algoritma yang lebih komplek. Sehingga untuk perbandingan ukuran dan harga dari hardware, metode publik key akan menghasilkan performance yang lebih rendah. Tabel berikut ini akan memperlihatkan berbagai aspek penting dari enkripsi konvensional dan public key.
Enkripsi Konvensional
Yang dibutuhkan untuk bekerja :
1.         Algoritma yang sama dengan kunci yang sama dapat digunakan untuk proses dekripsi – enkripsi.
2.         Pengirim dan penerima harus membagi algoritma dan kunci yang sama.
Yang dibutuhkan untuk keamanan :
1.         Kunci harus dirahasiakan.
2.         Adalah tidak mungkin atau sangat tidak praktis untuk menerjemahkan informasi yang telah dienkripsi.
3.         Pengetahuan tentang algoritma dan sample dari kata yang terenkripsi tidak mencukupi untu menentukan kunci.
Enkripsi Public Key
Yang dibutuhkan untuk bekerja :
1.         Algoritma yang digunakan untuk enkripsi dan dekripsi dengan sepasang kunci, satu untuk enkripsi satu untuk dekripsi.
2.         Pengirim dan penerima harus mempunyai sepasang kunci yang cocok.
Yang dibutuhkan untuk keamanan :
1.         Salah satu dari kunci harus dirahasiakan.
2.         Adalah tidak mungkin atau sangat tidak praktis untuk menerjemahkan informasi yang telah dienkripsi.
3.         Pengetahuan tentang algoritma dan sample dari kata yang terenkripsi tidak mencukupi untu menentukan kunci.
3.2       Deskripsi
Deskripsi adalah upaya pengolahan data menjadi sesuatu yang dapat diutarakan secara jelas dan tepat dengan tujuan agar dapat dimengerti oleh orang yang tidak langsung mengalaminya sendiri.
Dalam keilmuan, deskripsi diperlukan agar peneliti tidak melupakan pengalamannya dan agar pengalaman tersebut dapat dibandingkan dengan pengalaman peneliti lain, sehingga mudah untuk dilakukan pemeriksaan dan kontrol terhadap deskripsi tersebut. Pada umumnya deskripsi menegaskan sesuatu, seperti apa sesuatu itu kelihatannya, bagaimana bunyinya, bagaimana rasanya, dan sebagainya. Deskripsi yang detail diciptakan dan dipakai dalam disiplin ilmu sebagai istilah teknik.
Saat data yang dikumpulkan, deskripsi, analisis dan kesimpulannya lebih disajikan dalam angka-angka maka hal ini dinamakan penelitian kuantitatif. Sebaliknya, apabila data, deskripsi, dan analisis kesimpulannya disajikan dalam uraian kata-kata maka dinamakan penelitian kualitatif.
3.2.1 Deskripsi cipher blok
Cipher blok merupakan salah satu pendekatan dalam algoritma kriptografi kunci simetrik. Pendekatan lain adalah cipher aliran. Perbedaan mendasar keduanya adalah jika cipher blok memproses dalam suatu kumpulan bit sekaligus sebagai suatu unit dan cipher aliran memproses bit per bit. Panjang blok yang biasa diimplementasikan oleh perancang algoritma kriptografi adalah kelipatan 64 bit. Pada awal tahun 1990-an, panjang blok yang paling umum adalah 64 bit.
Masyrakat merasa dengan panjang kunci 64 bit telah cukup aman dan tidak mungkin ada komputer yang mampu menyerang dengan metode brute force. Namun dengan berlalunya waktu, ternyata mungkin untuk menyerang algoritma dengan kunci 64 bit menggunakan metode brute force. Oleh karena itu panjang blok umum berkembang menjadi 128 bit pada awal 2000-an, atau bahkan akhir-akhir ini mulai umum ditemukan algoritma dengan panjang blok 256 bit.
Dengan panjang blok 128 bit (hampir semua algoritma mengimplementasikan panjang kunci sama dengan panjang blok), maka secara teoritis, memerlukan 2128/220 detik (dengan asumsi satu detik dapat mencoba 1000000 kemungkinan kunci) yang merupakan lebih dari 1 triliun tahun. Blok cipher pertama kalinya diperkenalkan oleh IBM dengan Lucifer-nya pada tahun 1970-an yang didasarkan pada karya Horst Feistel. Versi revisi dari Lucifer yang lebih dikenal dengan Data Encryption Standard (DES) diadopsi sebagai standar algoritma kriptografi oleh US National Bureau of Standard (NBS).
Algoritma kunci simetri merupakan metode enkripsi yang menggunakan kunci yang sama untuk enkripsi dan dekripsi, seperti ditunjukkan pada Gambar 1 atau bisa juga seperti Gambar 2 dibawah ini.
Gambar 1
Gambar 2
Dari gambar diatas dapat kita lihat bahwa untuk mengirimkan pesan antara si pengirim dan si penerima menggunakan satu kunci atau kunci yang di gunkan sama. Maksudnya adlah kunci yang digunakan untuk mengenkripsi pesan dan kunci yang digunakan untuk mengdekripsikan pesan sama. Berarti mereka dalam melakukan komunikasi menggunkan satu kunci yang disebut kunci asimetri. Proses enkripsi dan dekripsi keduanya menggunakan kunci yang sama K1=K2.
Pertama kali sebelum pesan dikirim pesan tersebut masih dalam keadaan asli atau belum di enkripsi atau yang lebih dikenal dengan nama plaintext atau cleartext. Kemudian pada saat pesan tersebut dikirim pesan tersebut terlebih dahulu dilakukan proses encription (encipherment) yaitu proses menyandikan pesan plaintext kedalam chipertext yang apabila di buka akan berupa algoritma atau kata-kata yang sama sekali tidak dimengerti, sehingga orang lain tidak bisa membaca data yang telah di enkripsi tersebut. Kemudian setelah sampai di si penerima untuk mengubah chipertext tadi ke dalam plaintext disebut dengan decryption (dechiperment). Sedangkan Orang yang melakukan enkripsi terhadap suatu pesan atau praktisi kriptographi disebut “Cryptographer”. Pendistribusian Kunci pada Kriptografi Kunci Simetri tidak dapat dilakukan menggunakan saluran/ media yang akan digunakan untuk komunikasi, diperlukan media khusus untuk distribusi kunci, beberapa kunci mungkin membutuhkan beberapa media paralel untuk distribusinya.











BAB IV
KESIMPULAN
Kesimpulan
Sama seperti teknologi canggih lainnya, enkripsi dapat digunakan untuk mengamankan data bagi perusahaan, militer, pemerintahan, individu untuk tujuan yang baik. Namun enkripsi juga dapat digunakan untuk menyembunyikan informasi bagi para penjahat.
Enkripsi dapat digunakan untuk tujuan keamanan, tetapi teknik lain masih diperlukan untuk membuat komunikasi yang aman, terutama untuk memastikan integritas dan autentikasi dari sebuah pesan. Contohnya, Message Authentication Code (MAC) atau digital signature. Penggunaan yang lain yaitu untuk melindungi dari analisis jaringan komputer.
Dalam keilmuan, deskripsi diperlukan agar peneliti tidak melupakan pengalamannya dan agar pengalaman tersebut dapat dibandingkan dengan pengalaman peneliti lain, sehingga mudah untuk dilakukan pemeriksaan dan kontrol terhadap deskripsi tersebut. Pada umumnya deskripsi menegaskan sesuatu, seperti apa sesuatu itu kelihatannya, bagaimana bunyinya, bagaimana rasanya, dan sebagainya. Deskripsi yang detail diciptakan dan dipakai dalam disiplin ilmu sebagai istilah teknik.






DAFTAR PUSTAKA
http://id.wikipedia.org/wiki/Enkripsi
http://kambing.ui.ac.id/bebas/v01/DLL/ServerLinux/node166.html
http://www.ittelkom.ac.id/library/index.php?view=article&catid=20%3Ainformatika&id=112%3Aalgoritma-enkripsi-rsa&option=com_content&Itemid=15
http://oasisnet.wordpress.com/2007/11/22/enkripsi-untuk-keamanan-data-pada-jaringan/
http://webcache.googleusercontent.com/search?q=cache:wG1CjVZAxdsJ:www.unsri.ac.id/upload/arsip/Trisnawati_08053111015.doc+deskripsi+pada+jaringan+komputer&cd=6&hl=id&ct=clnk&gl=id
Wicaksono, Adi. (2003). Pemrograman Internet dan XML pada Ponsel dengan Midlet Java. Jakarta: PT Elex Media Komputindo.
Kriptografi [online], available http://www.geocities.com/amwibowo/resource/ komparasi/komparasi.html [12 desember 2005].
Sukmawan, Budi.(1998). RC4 STREAM CIPHER, available http://bdg.centrin.net.id/ ~budskman/rc4.htm [12 desember 2005].