Belajar Web Programming PHP, HTML, MySQL dan Tutorial

Mengenkripsi Data Dengan MD5() dan SHA1()

Mengenkripsi Data Dengan MD5() dan SHA1()

Dalam pembuatan suatu aplikasi berbasis web, keamanan data yang diakses melalui web tersebut merupakan hal yang perlu diperhatikan. Dimasa sekarang teknik-teknik untuk menerobos keamanan dari sebuah aplikasi web telah berkembang signifikan untuk itu perlu dipahami bahwa data-data yang tersimpan dalam database khususnya password untuk melakukan verifikasi login perlu dienkripsi agar value dari password tersebut tidak terbaca secara gamblang.

Pada tutorial kali ini kita menggunakan fungsi yang sudah ada pada php yaitu md5() dan sha1(). untuk penjelasan lebih lanjut mengenai md5() dan sha1() tidak dibahas disini dan anda dapat mencari informasi tersebut melalui google. md5 dan sha1 merupakan enkripsi yang sering disebut dengan "hash function" dimana hasil enkripsinya tidak dapat dikembalikan lagi atau di decrypt kembali untuk memperoleh data sebelum dienkripsi. Keunikan ini menjadikan md5 dan sha1 sebagai barometer untuk mengotentifikasi pengguna apakah adalah benar user yang sesungguhnya yang telah melakukan login.

Dengan teknik tertentu bisa saja orang lain diluar sepengetahuan kita membuka dan membaca database dari aplikasi web yang kita buat. Jika password yang tersimpan tersebut telah dienkripsi maka orang lain tersebut akan kesulitan menebak apa sebenarnya password yang kita simpan tersebut. Oleh karena itu satu-satunya yang mungkin untuk menebak data yang dienkripsi tersebut adalah dengan menggunakan teknik "brute force"

Untuk memulai tutorial ini maka silahkan buat sebuah file dengan nama index.php letakan di dalam folder www (wamp) atau htdocs (xampp) dan kemudian silahkan ketik kode dibawah ini :

<?php
error_reporting("E_ALL & ~E_NOTICE");
?>
<!DOCTYPE HTML>
<html>
<head>
 <title>Mengenkripsi data dengan md5() dan sha1</title>
</head>
<body>
<h2>Mengenkripsi data dengan md5() dan sha1</h2>
<hr>
<form action="" method="post">
<table width="100%">
<tr>
 <td width="100">NIM</td>
 <td><input type="text" name="nim" placeholder="NIM Anda..." style="padding: 6px 5px;"></td>
</tr>
<tr>
 <td width="100">Password</td>
 <td><input type="password" name="password" placeholder="Password Anda..." style="padding: 6px 5px;"></td>
</tr>
<tr>
 <td width="100"></td>
 <td><input type="submit" value="Signin" style="padding: 6px 5px;"></td>
</tr>
</table>
</form>

<hr>
<?php
$nim    = trim($_POST[nim]);
$password = trim($_POST[password]);

if (!empty($nim) && !empty($password))
{
 $md5pass = md5($password);
 $sh1pass = sha1($password);

 $pjgmd5pass = strlen($md5pass);
 $pjgsh1pass = strlen($sh1pass);
?>
<h2>Data Login Mahasiswa</h2>

<table width="100%">
<tr>
 <td width="150">NIM</td>
 <td>: <?php echo $nim;?></td>
 <td rowspan="2">Panjang</td>
</tr>
<tr>
 <td width="150">Password Asli</td>
 <td>: <?php echo $password;?></td>
</tr>
<tr>
 <td width="150">md5() encryption</td>
 <td>: <?php echo $md5pass;?></td>
 <td><?php echo $pjgmd5pass;?> Karakter</td>
</tr>
<tr>
 <td width="150">sha1() encryption</td>
 <td>: <?php echo $sh1pass;?></td>
 <td><?php echo $pjgsh1pass;?> Karakter</td>
</tr>
</table>
<hr>
<i>Selamat mencoba ^^ </i>
<?php
}
?>
</body>
</html>

Kode diatas tidak menggunakan database, tetapi menunjukan suatu prosedur login beserta hasilnya.

$nim    = trim($_POST[nim]);
$password = trim($_POST[password]);

if (!empty($nim) && !empty($password))
Kode diatas digunakan untuk memberi nilai/value variabel $nim dan $password berdasarkan data yang diketikan dan dikirim oleh user kemudian dicek apakah data tersebut kosong atau tidak, jika tidak maka akan dilanjutkan ke prosedur berikutnya.

 $md5pass = md5($password);
 $sh1pass = sha1($password);

 $pjgmd5pass = strlen($md5pass);
 $pjgsh1pass = strlen($sh1pass);

kode diatas adalah proses enkripsi md5 dan sha1, serta menghitung panjang dari hasil masing-masing fungsi enkripsi.

hasilnya adalah md5() memiliki panjang 32 karakter sedangkan sha1 memiliki panjang 40 karakter. sangat panjang bukan karena 32 dan 40 karakter tersebut merupakan karakter hexa yang berbasis 16.

hasil dari kode diatas adalah sebagai berikut :

Mengenkripsi Data Dengan MD5() dan SHA1()


Cukup mudah bukan? silahkan dieksplorasi dan kreasikan kembali ya ^^

Menghitung Nilai Matakuliah Dengan PHP

Menghitung Nilai Matakuliah Dengan PHP

Pada waktu pertama kali belajar pemorgaman kita akan diajarkan untuk memahamai konsep dari pemrograman itu sendiri, dalam hal ini adalah logika dan algoritma. Dengan memahami logika pemrograman kita dapat memetakan suatu permasalahan secara logis sehingga dapat dihitung maupun diproses dengan menggunakan bantuan komputer. Agar komputer dapat memproses dan menghasilkan sesuatu yang kita inginkan maka diperlukan suatu langkah-langkah atau disebut juga algoritma agar komputer dapat melakukan pemrosesan data menjadi informasi dengan tahapan-tahapan yang benar.

Pada Tutorial PHP kali ini kita akan menyelesaikan suatu masalah mengenai bagaimana menghitung nilai matakuliah. Nilai matakuliah mempunyai standar penilaiannya sendiri dimana dalam hal ini kita menggunakan standar yang umum yaitu total dari penjumlahan nilai absensi, nilai tugas, uts dan uas dengan bobotnya masing-masing.

pada kasus ini kita menggunakan formula :

Nilai = (10% * Absensi) + (20% * Tugas) + (30% * UTS) + (40% * UAS)

dimana total nilai tersebut adalah 100% dengan range nilai : 0 - 100

untuk nilai tugas, uts dan uas standarnya lebih gampang dikarenakan menggunakan range nilai 0 - 100

sedangkan absensi sedikit lebih kompleks karena kita akan menentukan persentase kehadiran untuk di konversi menjadi nilai absensi

untuk memperoleh nilai absensi kita harus menginputkan jumlah kehadiran dan jumlah maksimal pertemuan dan kemudian jumlah kehadiran tersebut dibagi dengan jumlah maksimal pertemuan dimana hasilnya akan dikalikan dengan nilai 100 agar diperoleh nilai absensi dengan range 0 - 100

Nilai Absensi = ( jumlah hadir / jumlah pertemuan ) * 100


jika semua komposisi nilai sudah tepat maka kita bisa melakukan perhitungan nilai total.

sourcecode untuk menghitung nilai absensi dan nilai total adalah sebagai berikut :

<?php
$absensi= ($jk/$jp)*100;

$nilai  = ($absensi*0.1)+ ($tugas*0.2)+ ($uts*0.3)+ ($uas*0.4);
?>

Jika nilai total telah diperoleh maka kita bisa mengkonveri nilai tersebut menjadi grade dari E - A untuk menentukan nilai tersebut masuk kedalam grade apa maka kita memerlukan standar konversi nilai dimana menggunakan standar yang umum sebagai berikut :

A : 80 - 100
B : 70 - 79
C : 60 - 69
D : 50 - 59
E : 0 - 49

Untuk mempermudah konversi jika datanya banyak maka kita akan membuat fungsi untuk menampilkan konversi nilai tersebut seperti dibawah ini :
<?php
/* Fungsi Konversi nilai ke huruf */
/* Created by Daniel Ok */

function grade($nilai)
{
 if($nilai <= 100 ) { $grade = "A"; }
 if($nilai <  80 )  { $grade = "B"; }
 if($nilai <  70 )  { $grade = "C"; }
 if($nilai <  60 )  { $grade = "D"; }
 if($nilai <  50 )  { $grade = "E"; }

 return $grade;
}
?>

jika data konversi sudah diperoleh maka kita akan menggunakan fungsi percabangan untuk melakukan pengecekan nilai mata kuliah tersebut masuk kedalam grade apa. sourcecode dari pemrograman php ini ada dibawah ini :

<?php
error_reporting("E_ALL & ~E_NOTICE");
?>
<!DOCTYPE HTML>
<html>
<head>
 <title>Menghitung Nilai Matakuliah</title>
</head>
<body>
<?php
/* Fungsi Konversi nilai ke huruf */
/* Created by Daniel Ok */

function grade($nilai)
{
 if($nilai <= 100 ) { $grade = "A"; }
 if($nilai <  80 )  { $grade = "B"; }
 if($nilai <  70 )  { $grade = "C"; }
 if($nilai <  60 )  { $grade = "D"; }
 if($nilai <  50 )  { $grade = "E"; }

 return $grade;
}
?>
<form action="" method="post">
<div>NIM Mahasiswa</div>
<input type="text" name="nim" placeholder="NIM">
<div>Nama Mahasiswa</div>
<input type="text" name="nama" placeholder="Nama Lengkap"> 
<div>Jumlah Kehadiran</div>
<input type="text" name="jk" size="10">
<div>Jumlah Pertemuan</div>
<input type="text" name="jp" size="10">
<div>Nilai Tugas</div>
<input type="text" name="nilaitugas" size="10" placeholder="0-100"> 
<div>Nilai UTS</div>
<input type="text" name="nilaiuts" size="10" placeholder="0-100"> 
<div>Nilai UAS</div>
<input type="text" name="nilaiuas" size="10" placeholder="0-100"> 
<br>
<input type="submit" value="Simpan Data">
</form>

<hr>
<?php
$nim  = trim($_POST[nim]);
$nama  = trim($_POST[nama]);
$jk  = trim($_POST[jk]);
$jp  = trim($_POST[jp]);
$tugas  = trim($_POST[nilaitugas]);
$uts  = trim($_POST[nilaiuts]);
$uas  = trim($_POST[nilaiuas]);

$absensi= ($jk/$jp)*100;

$nilai  = ($absensi*0.1)+ ($tugas*0.2)+ ($uts*0.3)+ ($uas*0.4);
$grade  = grade($nilai);
?>
<h2>Data Nilai Mahasiswa</h2>

<table width="100%" bgcolor="grey" cellspacing="1">
 <tr bgcolor="white">
 <th width="100">NIM</th>
 <th>Nama Mahasiswa</th>
 <th width="100">Nilai Absensi</th>
 <th width="100">Nilai Tugas</th>
 <th width="100">Nilai UTS</th>
 <th width="100">Nilai UAS</th>
 <th width="100">Grade</th>
 </tr>
 <tr bgcolor="white">
 <td align="center"><?php echo $nim;?></td>
 <td><?php echo $nama;?></td>
 <td align="center"><?php echo $absensi;?></td>
 <td align="center"><?php echo $tugas;?></td>
 <td align="center"><?php echo $uts;?></td>
 <td align="center"><?php echo $uas;?></td>
 <td align="center"><?php echo $grade;?></td>
 </tr>
</table>
</body>
</html>

Sourcecode diatas akan menghasilkan tampilan sebagai berikut :
Menghitung Nilai Matakuliah Dengan PHP

Bagaimana? cukup mudah bukan, selamat mencoba yah ^^
Back To Top