Anda di halaman 1dari 88

M O D U L P R A K T I K U M

PEMROGRAMAN WEB

ACEP IRHAM GUFRONI, M.Eng.

TEKNIK INFORMATIKA
FAKULTAS TEKNIK UNIVERSITAS SILIWANGI
Jl. Siliwangi No. 24 Tasikmalaya Kotak Pos 164 Tlp. (0265) 323537

2017
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

MODUL 1
PEMROGRAMAN WEB : PHP ( 1 )

A. Tujuan:
1. Memahami tentang PHP
2. Memahami instalasi Apache dan PHP
3. Memahami tag-tag dalam PHP
4. Memahami tentang struktur kontrol

B. Dasar Teori
PENGENALAN PHP
PHP merupakan akronim dari ”PHP : Hypertext Presprocessor”. PHP merupakan
bahasa script yang biasa digunakan untuk web development yang dapat diselipkan
dalam HTML.
Berbeda dengan script-script lainnya seperti Java Script atau VB script, PHP dieksekusi
di lingkungan server, client hanya menerima hasil dari script yang telah dieksekusi, tanpa
bisa mengetahui kode yang digunakan.
Apa saja yang dapat dilakukan PHP?
PHP difokuskan pada scripting server-side, jadi Anda dapat melakukan apa yang bisa
dilakukan CGI dengan menggunakan PHP seperti mengambil data inputan form,meng-
generate konten halaman dinamis, mengirim dan menerima cookies dan masih banyak
lagi. Kemampuan dan supportnya untuk database juga sangat dapat diandalkan.
Sekarang ini, PHP bahkan dikembangkan untuk menjadi bahasa pemrograman. Untuk
lebih jelasnya, Anda dapat mencari informasi lebih lanjut di distro-distro Linux keluaran
baru.
Di lingkungan mana PHP bekerja?
Awalnya, PHP bekerja di lingkungan Linux, karena merupakan ’turunan’ bahasa PEARL
yang merupakan bahasa pemrograman native di lingkungan Linux dan Unix. Namun
seiring perkembangan dan kebutuhan maka PHP dibuat secara cross platform. PHP dapat
bekerja di lingkungan Windows maupun Linux.
PHP mengeksekusi server script lebih cepat dari server script manapun. PHP menempati
ranking pertama dalam hal kecepatan eksekusi, diikuti oleh ASP dan JSP.
Dengan kemampuannya, apakah PHP gratis?
PHP dapat anda Download secara free atau cuma-cuma. Kunjungi saja situs
www.php.net, dan download versi terbarunya.

Gambar 1. Konsep client-server dengan PHP

1
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

TAG DALAM PHP


Banyak cara untuk menyisipkan PHP dalam script HTML, ada berbagai macam bentuk
tag yang dapat digunakan, antara lain :
Cara I
<?php menandai awal tag
...
?> menandai akhir tag
Cara II
<? menandai awal tag
...
?> menandai akhir tag
Cara III
<script language=”php”> menandai awal script
...
</script> menandai akhir script
Namun untuk lebih mudahnya, kita akan menggunakan cara II mulai sekarang dan
seterusnya.
Ada kalanya kita sebagai pemrogram, karena banyaknya kode program atau variabel
dalam program, perlu menandai atau memberi komentar pada program. Komentar pada
program merupakan tulisan pada program yang tidak dieksekusi. Pada PHP, ada 3
macam cara penulisannya :
1. /* komentar */
Tulisan apapun yang berada di antara ’/*’ dan ’*/’ akan dianggap sebagai
komentar. Cara seperti ini sangat berguna dan efisien untuk pemberian
komentar yang memakan banyak baris.
2. // komentar
Tulisan di baris yang sama setelah ’//’ akan dianggap sebagai komentar.
Cara ini berguna untuk pemberian komentar singkat yang tak lebih dari 1
baris saja.
3. # komentar
Sama seperti ’//’, tulisan di baris yang sama setelah ’#’ akan dianggap
sebagai komentar. Cara ini berguna untuk pemberian komentar singkat
yang tak lebih dari 1 baris saja.

VARIABEL DAN TIPE DATA


Dalam PHP, penulisan variabel diawali dengan karakter ‘$’, kemudian diikuti dengan
huruf sebagai karakter pertama. Setelah itu, dapat dilajutkan dengan kombinasi huruf dan
angka. Variabel tidak boleh mengandung spasi maupun tanda baca di dalamnya, kecuali
underscore (’_’).
Variabel pada PHP bersifat “case sensitif”, yang berarti Anda harus memperhatikan
penulisan huruf besar dan huruf kecil. Variabel $jumlah berbeda dengan $Jumlah.
Contoh penamaan variabel yang benar :
$nama_pemakai
$kota_3
$user1
Contoh penamaan variabel yang salah :
$nama pemakai
$3kota
$us\er1

2
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

Tipe Data
Tipe data yang dapat diolah menggunakan PHP, antara lain :
1. Boolean
Nilai boolean menyatakan nilai kebenaran.
2. Integer
5
-9
1500
0123 octal
0xfb hexadecimal
3. Floating Point
0.8998
23e2
4. String
’Teks menggunakan aphostof’ ...menggunakan tanda petik tunggal
”Teks menggunakan quote” ...menggunakan tanda kutip
Pada tipe data string, terdapat escape character, yaitu karakter khusus yang digunakan
mewakili karakter ASCII dengan fungsi khusus. Untuk mendefinisikan karakter yang
akan ditampilkan jika karakter tersebut merupakan escape character
yaitu dengan mengawali karakter tersebut dengan tanda \ (backslash).
Daftar escape character:
\n linefeed (LF or 0x0A (10) in ASCII)
\r carriage return (CR or 0x0D (13) in ASCII)
\t horizontal tab (HT or 0x09 (9) in ASCII)
\\ backslash
\$ dollar sign
\" double-quote
\[0- the sequence of characters matching the regular expression is a
7]{1,3} character in octal notation
\x[0-9A- the sequence of characters matching the regular expression is a
Fa-f]{1,2} character in hexadecimal notation
5. Array
Tipe data array akan dibahas pada suatu bab tersendiri.
6. Object
Ini merupakan pengembangan PHP berorientasi objek. Tipe data objek merupakan
tipe data yang didalamnya mempunyai data dan method. Data tersebut didefinisikan
sebagai class terlebih dahulu.

Operator
Operator merupakan suatu tool/alat untuk keperluan manipulasi data. Operator dapat
dibedakan menjadi :
1. Operator Aritmetika

3
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

Contoh Nama Hasil


$a + $b Penjumlahan Jumlah $a dan $b.
$a - $b Pengurangan Selisih $a dan $b.
$a * $b Perkalian Hasil kali $a dan $b.
$a / $b Pembagian Quotient dari $a dan $b.
$a % $b Modulus Remainder dari $a dibagi $b.
2. Operator String
Menggunakan ’.’ (tanda titik)
$a = "Hello ";
$b = $a . "World!"; // sekarang $b berisi "Hello World!"

3. Operator Increment/Decrement
Contoh Nama Keterangan
Pre- Increment $a dengan 1, mengembalikan
++$a
increment $a.
Post- Mengembalikan $a, lalu increments $a
$a++
increment dengan 1
Pre- Decrements $ dengan 1, lalu
--$a
decrement mengembalikan $a.
Post- Mengembalikan $a, lalu decrements $a
$a--
decrement dengan 1
4. Operator Logika
Contoh Name Hasil
! $a Not TRUE jika $a bukan TRUE .
$a && $b And TRUE jika $a dan $b TRUE.
$a || $b Or TRUE jika $a atau $b TRUE.
5. Operator Ternary
Menggunakan tanda ’?’, dengan syntax : (ekspresi1) ? (ekspresi2) : (ekspresi3)
Operator ternary malakukan pengujian pada ekspresi1, jika hasilnya TRUE,
maka ekspresi 2 yang dijalankan, jika hasil ekspresi1 FALSE, maka ekspresi3
yang dijalankan.
Contoh :
<?
$a = 2;
$hasil = ($a<4) ? ($a*2) : ($a*3)
echo ”$hasil”;
?>
Dari contoh di atas, maka hasil yang terlihat adalah 4, namun jika nilai $a
diganti 5, maka hasilnya adalah 15.

6. OperatorPerbandingan
Contoh Nama Hasil
$a == $b Equal TRUE jika $a sama dengan $b.
ontoh Nama Hasil
$a != $b Not equal TRUE jika $a tidak sama dengan $b.
$a <> $b Not equal TRUE jika $a tidak sama dengan $b.
$a < $b Less than TRUE jika $a kurang dari $b.
$a > $b Greater than TRUE jika $a lebih dari $b.
4
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

Less than or
$a <= $b TRUE jika $a lebih kecil sama dengan $b.
equal to
Greater than
$a >= $b TRUE jika $a lebih besar sama dengan $b.
or equal to
7. Operator Assignment
Contoh :
$a = 4; //$a diisi dengan nilai 4
$a += 5; //sama dengan $a = $a + 5;

Untuk menampilakan data dapat digunakan print maupun echo. Sintaks yang digunakan
antara lain :
print(data);
atau
print data;
atau
echo(data);
atau
echo data;

Kedua perintah baik print maupun echo adalah sama saja, tergantung kebiasaan atau
kesukaan anda dalam menggunakannya. Yang perlu diperhatikan di sini adalah bahwa
untuk data string gunakanlah aphostophe (petik tunggal ‘) atau quote (petik ganda “).
Namun untuk pencetakan variabel, agar ditampilkan isinya, gunakan quote. Seperti pada
contoh di bawah ini.
Contoh :
<?
$a = 10;
$b = “test”;
echo “Dengan quote -> ”;
echo “nilai $b ku $a ”;
echo “Dengan aphostrophe -> ”;
echo ‘nilai $b ku $a’
?>
Hasil dari script di atas adalah :
Dengan quote -> nilai test ku 10Dengan aphostrophe -> nilai $b
ku $a

STRUKTUR KONTROL
Struktur kontrol merupakan inti dari logika pemrograman. Secara mendasar ada 3
struktur kontrol yaitu :
Sequence atau urutan
Selection atau pilihan
Iteration atau pengulangan

5
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

if / if else
Sintaks untuk stuktur kontrol menggunakan if else/ifelse :
if (ekspresi) {
perintah1;
perintah2;
...
}
Struktur kontrol if memeriksa isi ekspresi, dimana jika terpenuhi atau bernilai benar,
maka ia akan menjalankan perintah-perintah yang ada dalam blok.
Untuk banyak kondisi, bisa dilakukan dengan sintaks :
if (ekspresi1) {
perintah1;
...
}
elseif(ekspresi2) {
perintah2;
...
}
else {
perintah3;
...
}
switch

Dapat dikatakan switch adalah merupakan penyederhanaan dari bentuk if else


ataupun ifelse. Sintaks dari struktur kontrol menggunakan switch antara lain :
switch($variabel) {
case nilai1 :
perintah_jika_nilai1;
break;
case nilai2 :
perintah_jika_nilai2;
break;

[default :
perintah_untuk_nilai_default;
]
}
Untuk nilai default, tidaklah harus ada.

while
Sintaks :
while(ekspresi) {
perintah1;
...
}
do .. while
Sintaks :
do {
perintah1;
...
} while (ekspresi);

6
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

for
Sintaks :
for(nilai_awal ;syarat_terjadinya_loop ; inc_atau_dec)
{
perintah1;
...
}

break
Perintah break digunakan untuk keluar dari suatu pengulangan/loop.
Contoh :
for($a = 0; $a < 100 ; $a++)
{
if($a == 30) { break; }
else echo ”$a ,”;
}
Pada contoh di atas, akan memunculkan tulisan berupa nilai variabel a, mulai dari
0,1,2,3...hingga ketika mencapai nilai 30 maka loop akan berhenti karena perintah
break.
continue
Perintah continue digunakan untuk menuju step atau iterasi berikutnya dari suatu loop.
Contoh :
for($a = 0; $a<10; $a++)
{
if($a%2==0) continue;
echo “$a ”;
}
Pada contoh di atas, hasil yang akan didapat adalah “1 3 5 7 9”

LATIHAN 1.
1. Pemakaian Variabel

<HTML>
<HEAD>
<TITLE> Contoh Skrip PHP </TITLE>
<BODY>
<?
$nama = "Valentino Rossi";
echo "$nama berkata \"Katakan namamu!\"";
?>
</BODY>
</HTML>

7
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

2. Operator Penugasan
<?
$a = 3;
$b = 7;
$a += 5;
$b = ($c = 11) + 3;
echo "Nilai variabel a adalah = $a";
echo "<BR>";
echo "Nilai variabel b adalah = $b";
echo "<BR>";
echo "Nilai variabel c adalah = $c";
?>

3. Struktur Kontrol : Syntax if – else yang lain


<?
$a = 5;
$b = 7;
echo "a = $a <BR>";
echo "b = $b <BR>";
if ($a == $b)
echo "$s sama dengan $b";
elseif ($a > $b)
echo "$a lebih besar daripada $b";
else
echo "$a lebih kecil daripada $b";
?>

4. Struktur Kontrol : Switch

<?
$a = 5;
switch ($a) {
case 0:
echo '$a sama dengan 0';
break;
case 1:
echo '$a sama dengan 1';
break;
case 2:
echo '$a sama dengan 2';
break;
default:
echo '$a tidak sama dengan 0, 1, atau 2';
}
?>

8
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

5. Struktur Kontrol : do...while


<?
$i = 2;
do
{
echo "\$i = $i <BR>";
$i++;
}
while ($i < 5);
?>

6. Struktur Kontrol : break


<?
for ($i = 1; $i <= 10; $i++) {
if ($i == 6) {
break;
}
echo "\$i = $i <BR>";
}
?>

LATIHAN 2.

1. Buatlah proses seperti kalkulator yang bisa melakukan perhitungan :


a. Penjumlahan (+)
b. Pengurangan (-)
c. Perkalian (*)
d. Pembagian (/)
e. Modulus (%)
Terdapat 3 buah masukan yaitu : 2 variabel untuk input bilangan dan 1 variabel
untuk operator.
Contoh tampilan program :

LATIHAN 3.
1. Buatlah program untuk mengurutkan data dari 5 buah data yang acak!

9
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

MODUL 2
PEMROGRAMAN WEB : PHP (2)
A. Tujuan
1. Memahami tentang Array di PHP
2. Memahami penggunaan Fungsi dalam PHP
3. Memahami tentang String dan Date
4. Memahami tentang Modularisasi dalam PHP

B. Dasar Teori
I. ARRAY
Array merupakan variabel yang berisi lebih dari 1 variabel, atau dapat dikatakan sebagai
variabel jamak.
Sebagai analogi, ketika kita mempunyai banyak nama buah (kita anggap ini sebagai
variabel), maka daripada kita menyatakan tiap nama buah dengan variabel $buah1,
$buah2, $buah3, ...dst. Maka akan lebih baik dan efisien jika kita menggunakan variabel
$buah yang berupa array.
Variabel array pada PHP, kadang tidak perlu kita definisikan. Namun untuk indeks
array, kita menggunakan indeks mulai dari 0 hingga sejumlah elemen array dikurang 1.

Assignment Array
Ada beberapa cara untuk memberi nilai pada suatu variabel array, antara lain :

Contoh 1 :
$buah[0] = “nanas”;
$buah[1] = “mangga”;
$buah[2] = “jambu”;
Contoh 2 :
$buah[] = “nanas”;
$buah[] = “mangga”;
$buah[] = “jambu”;

Pada contoh ini, PHP secara otomatis akan memberi indeks sesuai nilai indeks
terakhir dari array. Maka pada variabel $buah indeks 0 berisi ”nanas”, indeks 1
berisi ”mangga” dan indeks 2 akan berisi ”jambu”.
Contoh 3 :
$buah = array(”nanas”, ”mangga”, ”jambu”);

Pada contoh ini, suatu array dideklarasikan dengan memberi nilai secara
langsung. Hasilnya akan sama dengan contoh-contoh sebelumnya.

Array Asosiatif
Array asosiatif tidak menggunakan integer sebagai indeks, namun menggunakan string
sebagai indeks.
Contoh 1:
$hobi[”nanang”] = ”renang”;
$hobi[”eko”] = ”merokok”;

10
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

Contoh 2 :
$hobi = array(”nanang” => ”renang”, ”eko” => ”merokok”);

II. FUNGSI
Fungsi terbagi menjadi 3 :
1. Built-in
2. User Defined Function (UDF)
3. External

Fungsi Built-in
Fungsi yang sudah disediakan oleh PHP dan pemrogram dapat langsung memakainya.
Contoh :
Fungsi Matematika : sin, cos, tan, asin, deg2rad, dll.
Fungsi Tanggal & waktu : date, checkdate
Fungsi String : strlen, strpos, strtolower, strtoupper, substr, dll.

Fungsi UDF
Fungsi yang dibuat sendiri oleh pemrogram. Dapat diletakkan dimana saja dalam script
PHP, tapi sebaiknya diletakkan paling atas agar memudahkan dalam proses debugging
dalam tahap pembuatan dan pengembangan program.
Deklarasi UDF
function namafungsi([parameter]) {
Statement;
Statement;
….
}

Pemanggilan UDF
Sintaks :
$varhasil = &namafungsi ([parameter]);

Penggunaan tanda & tidak mutlak, karena PHP secara otomatis akan menganggap
sebagai fungsi karena tidak didahului dengan tanda $.

Fungsi External (Tidak dibahas dalam bab ini)


Daftar fungsi yang belum diaktifkan dalam keseluruhan modul PHP, untuk
mengaktifkannya secara otomatis dengan meregistrasikan pada file PHP.INI.

III. MODULARISASI
Modularisasi dalam pemrograman umum dilakukan dan sangat diperlukan untuk
mempermudah debugging dan pengembangan program. Modularisasi berarti melakukan
pembuatan program berdasarkan modul-modul. Setiap modul dikembangkan untuk
tujuan atau fungsi khusus. Modul dibuat secara general (umum). Modul dapat berupa
fungsi atau prosedur.

Require
Statement Require digunakan untuk membaca nilai variable dan fungsi-fungsi dari
sebuah file lain.

11
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

Cara penulisan statement Require adalah:


require(namafile);

Teknik ini cocok untuk membuat template (pola) yang memudahkan proses
pengembangan aplikasi dengan menggunakan pola tampilan. Misal dalam membuat
design web yang dilakukan dengan kerja tim, pola dan gambar-gambar yang dibutuhkan
dapat dibuat dengan teknik ini.
Statement Require ini tidak dapat dimasukkan diadalam suatu struktur looping misalnya
while atau for. Karena hanya memperbolehkan pemangggilan file yang sama tersebut
hanya sekali saja.

Include
Statement Include akan menyertakan isi suatu file tertentu. Include dapat diletakkan di
dalam suatu looping misalkan dalam statement for atau while.
Syntak penulisan :
include (namafile);

LATIHAN 1.

1. Menampilkan Array dengan menunjuk nomor indeksnya

<?
$anak[0] = "Faruq";
$anak[1] = "Alya";
$anak[2] = "Zahro";
echo "Isi array 0 adalah $anak[0]";
echo "<br>";
echo "Isi array 1 adalah $anak[1]";
echo "<br>";
echo "Isi array 2 adalah $anak[2]";
echo "<br>";
?>

2. Pemakaian Fungsi Built-in : Matematika


<?
$a = pow(2,10); //Fungsi perpangkatan
$b = sqrt(100); //Fungsi akar
$c = ceil(4.25); //Pembulatan keatas
$d = floor(4.25); //Pembulatan kebawah
echo "2 pangkat 10 = $a <br>";
echo "akar 100 = $b <br>";
echo "ceil(4.25) = $c <br>";
echo "floor(4.25) = $d <br>";
?>

12
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

3. Pemakaian Fungsi Built-in : String


<?
$str = "Belajar PHP ternyata Menyenangkan";
echo strtolower($str); //Ubah huruf ke kecil semua
echo "<br>";
echo strtoupper($str); //Ubah huruf ke besar semua
echo "<br>";
echo str_replace("Menyenangkan","mudah lho",$str);
//Mengganti string
?>

4. Pemakaian Fungsi UDF : Dengan Nilai Balik


<?
function psgpjg ($pjg, $lbr) {
$luas = $pjg * $lbr;
return $luas;
}
$bil1 = 5;
$bil2 = 3;
echo "Luas persegi panjang dengan pjg 5 dan lebar 3 =";
$luas=psgpjg($bil1,$bil2);
echo "hasil : $luas <br>";
?>

5. Modularisasi menggunakan include


a. Simpan file berikut dengan nama : contoh_include.php
<?php
echo ”========================<br>”;
echo “ Homepage Pribadi<br>”;
echo ”========================<br>”;
?>

b. Buat file untuk memanggil file php diatas.


<?php
include("contoh_include.php");
echo "<br>";
echo “Ini di luar dari include”;
?>

13
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

LATIHAN 2.
1. Buat program untuk mencari nilai max dan rata-rata dari 3 buah nilai, gunakan
fungsi dengan 3 nilai tsb dikirimkan dalam bentuk array sebagai parameter ke
fungsi. Berikan juga return value ke program utama
Misal :
Input :
4 6 2
Output :
Nilai max = 6

2. Buat program kalkulator sederhana, gunakan fungsi dengan parameter yang


dikirim ke fungsi berupa : 2 buah bilangan yang akan diproses (dalam bentuk
array), operator bilangan. Berikan juga header dan footer yang dipanggil dengan
perintah include.
Input :
Bilangan 1 : 4
Bilangan 2 : 7
Operasi : +
Output :
11

LATIHAN 3.
1. Buatlah program dengan menggunakan array untuk menghitung penjumlahan
antara 2 matriks dimensi 2x2.

14
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

MODUL 3
PEMROGRAMAN WEB : PHP ( 3)
A. Tujuan:
1. Memahami tentang penggunaan Form
2. Memahami tentang perbedaan antara metode GET & POST
3. Memahami tentang pemrosesan validasi form

B. Dasar Teori
PENGOLAHAN DATA DARI FORM
Web menerima input dari user atau pengunjung menggunakan metode GET dan POST.
GET akan mengirimkan data bersama dengan URL, sedangkan POST mengirimkannya
secara terpisah.
User mengirimkan data input dengan mengisi teks atau pilihan pada attribut form html.
Apa saja yang merupakan komponen form html diantaranya :

Form
<FORM ACTION=action base> form tags </FORM>
<FORM METHOD=method> form tags </FORM>
<FORM ENCTYPE=media type> form tags </FORM>
<FORM ACTION=action base TARGET="target window name"> form tags </FORM>
<FORM SCRIPT=URL> form tags </FORM>

Note : target window name diisikan berupa:


_blank
_self
_parent
_top

Form Input Check Box


<INPUT TYPE=CHECKBOX NAME=name VALUE=value>
<INPUT TYPE=CHECKBOX NAME=name VALUE=value CHECKED>

Form Input File


<INPUT TYPE=FILE NAME=name ACCEPT=mime type list>

Form Input Hidden


<INPUT TYPE=HIDDEN NAME=name VALUE=value>

Form Input Password


<INPUT TYPE=PASSWORD NAME=name>
<INPUT TYPE=PASSWORD NAME=name MAXLENGTH=length>
<INPUT TYPE=PASSWORD NAME=name SIZE=size>
<INPUT TYPE=PASSWORD NAME=name VALUE=value>

15
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

Form Input Radio Button


<INPUT TYPE=RADIO NAME=name VALUE=value>
<INPUT TYPE=RADIO NAME=name VALUE=value CHECKED>

Form Input Reset


<INPUT TYPE=RESET>

Form Input Submit


<INPUT TYPE=SUBMIT>
<INPUT TYPE=SUBMIT NAME=name>
<INPUT TYPE=SUBMIT VALUE=value>

Form Input Button


<INPUT TYPE=BUTTON>
<INPUT TYPE=BUTTON NAME=name>
<INPUT TYPE=BUTTON VALUE=value>

Form Input Text


<INPUT TYPE=TEXT NAME=name>
<INPUT TYPE=TEXT NAME=name MAXLENGTH=length>
<INPUT TYPE=TEXT NAME=name SIZE=size>
<INPUT TYPE=TEXT NAME=name VALUE=value>

Form Select
<SELECT NAME=name> option entries </SELECT>
<SELECT NAME=name MULTIPLE> option entries </SELECT>
<SELECT NAME=name SIZE=size> option entries </SELECT>
<SELECT NAME=name SRC=URL WIDTH=width HEIGHT=height UNITS=units> option entries </SELECT>
<OPTION> content
<OPTION SELECTED> content
<OPTION VALUE=value> content
<OPTION SHAPE=shape>

Form Text Area

<TEXTAREA NAME=name COLS=# columns ROWS=# rows> content </TEXTAREA>

FORM VALIDATION
Validasi proses merupakan hal yang harus diperhatikan dalam pembuatan web. Untuk
melakukan validasi bisa menggunakan Javascript maupun PHP script. Perbedaannya
dari keduanya, jika Javascript akan diproses disisi client, PHP script akan diproses disisi
server.

16
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

LATIHAN 1.
1. Perbandingan 2 bilangan menggunakan metode : POST
a. Untuk membuat inputan, dan beri nama file : bandingnilai.php
<html>
<head>
<title>Contoh Form dengan POST</title>
</head>
<body>
<form action="proc_post.php" method="post">
Bil I :
<input type="text" name="bil1">
<br>
Bil II:
<input type="text" name="bil2">
<br>
<input type="submit" value="Bandingkan">
</form>
</body>
</html>

b. Buat file untuk memproses variabel, beri nama filenya : proc_post.php


<html>
<head>
<title>Proses Input</title>
</head>
<body>
<?
$bil1=$_POST["bil1"];
$bil2=$_POST["bil2"];
?>
<h1>Perbandingan Bilangan </h1>
<hr>
Bil I : <?echo $bil1?>
<br>
Bil II: <?echo $bil2?>
<br>
<?
if ($bil1<$bil2){
echo "$bil1 lebih kecil dari $bil2";
}
elseif($bil1>$bil2){
echo "$bil1 lebih besar dari $bil2";
}
else{
echo "$bil1 sama dengan $bil2";
}
?>
</body>
</html>

17
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

2. Pemrosesan Buku Tamu dengan metode : POST


a. Untuk membuat inputan, dan beri nama file : bukutamu.php
<html>
<head>
<title>Contoh Form dengan POST</title>
</head>
<body>
<h1>Buku Tamu</h1>
Komentar dan saran sangat kami butuhkan untuk
meningkatkan kualitas situs kami.
<hr>
<form action="proc_bukutamu.php" method="post">
<pre>
Nama anda : <input type="text" name="nama" size="25"
maxlength="50">
Email address : <input type="text" name="email" size="25"
maxlength="50">
Komentar : <textarea name="komentar" cols="40"
rows="5"> </textarea>
<input type="submit" value="kirim">
<input type="reset" value="ulangi">
</pre>
</form>
</body>
</html>

b. Buat file untuk memproses variabel, beri nama filenya : proc_bukutamu.php

<html>
<head>
<title>Buku Tamu</title>
</head>
<body>
<?
$nama=$_POST["nama"];
$email=$_POST["email"];
$komentar=$_POST["komentar"];
?>
<h1>Data Buku Tamu </h1>
<hr>
Nama anda : <?echo $nama?>
<br>
Email address : <?echo $email?>
<br>
Komentar :
<textarea name="komentar" cols="40"
rows="5"><?echo $komentar?> </textarea>
<br>
</body>
</html>

18
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

6. Form Validation
a. Berbasis Javascript
<SCRIPT LANGUAGE="JavaScript">
function pesan() {
var ceknama = document.forms[0].elements[0].value;
var cekumur = document.forms[0].elements[1].value;
var cekemail = document.forms[0].elements[2].value;
if (ceknama.length == 0)
window.alert("Anda belum memasukkan nama Anda");
else if ((cekumur < 0) || (isNaN(cekumur)) ||
(cekumur.length == 0))
window.alert("Input umur Anda salah");
else if ((cekemail.length == 0) || (cekemail.indexOf("@",1)
== -1))
window.alert("Periksa kembali alamat email Anda");
else
document.forms[0].submit();

}
</SCRIPT>

<H1> Selamat Datang di Situs Kami </H1>


Silakan isi identitas Anda <BR>
<FORM NAME="identity" METHOD="post" ACTION="proses.php">
<PRE>
Nama : <INPUT TYPE="text" NAME="nama">
Umur : <INPUT TYPE="text" NAME="umur"> tahun
Email : <INPUT TYPE="text" NAME="email">
<INPUT TYPE="button" VALUE="Submit" onClick=pesan()>
</PRE>
</FORM>

b. Berbasis PHP Script.


Simpan sebagai data.php
<H1> Selamat Datang di Situs Kami </H1>
Silakan isi identitas Anda <BR>
<FORM METHOD="post" ACTION="proses.php">
<PRE>
Nama : <INPUT TYPE="text" NAME="nama">
Umur : <INPUT TYPE="text" NAME="umur"> tahun
Email : <INPUT TYPE="text" NAME="email">
<INPUT TYPE="submit" VALUE="Send">
</PRE>
</FORM>

19
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

Simpan sebagai proses.php


<?
$nama = $_POST["nama"];
$umur = $_POST["umur"];
$email = $_POST["email"];
if (strlen($nama) == 0)
echo "Silahkan masukkan nama anda<br>";
if ((trim($umur) == '') || ($umur < 0) ||
(ereg('[^0-9]', $umur)))
echo "Input umur anda salah<br>";
if (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-
]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)){
echo "Invalid email<br>";
}
?>

LATIHAN 2.
Buat web untuk penjualan handphone seperti berikut ini :
a. Produk : gunakan checkbox
b. ID Customer, Nama, Email, Alamat : gunakan text
c. Member : gunakan radio button
d. Pembayaran : gunakan combo box yang terdiri dari VISA, Master Card, Debit
BCA.
Lakukan validasi sebagai berikut :
ID Customer : harus sebagai bilangan, dan tidak boleh kosong.
Nama : tidak boleh kosong
Email : tidak boleh kosong, dan sesuai dengan format email
Alamat : tidak boleh kosong

20
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

LATIHAN 3.
1. Buatlah program untuk melakukan proses perhitungan dibawah ini, dengan POST.

21
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

MODUL 4
PEMROGRAMAN WEB : MySQL
A. Tujuan:
1. Memahami tentang sistem database
2. Memahami dasar-dasar MySQL.
3. Memahami relasi di MySQL

B. Dasar Teori
PENGENALAN DATABASE
Basis Data
Himpunan kelompok data (arsip) yang saling berhubungan, yang diorganisasi
sedemikian rupa, sehingga kelak dapat dimanfaatkan kembali dengan cepat.
Komponen Sistem Basis Data:
a. Perangkat Keras (Hardware)
Komputer, memori, storage (Harddisk), peripheral, dll.
b. Sistem Operasi (Operating System)
Program yang menjalankan sistem komputer, mengendalikan resource komputer
dan melakukan berbagai operasi dasar sistem komputer.
c. Basis Data (Database)
Menyimpan berbagai obyek database (struktur tabel, indeks,dll)
d. DBMS (Database Management System)
Perangkat lunak yang memaintain data dalam jumlah besar.
e. Pemakai (User)
Para pemakai database.
f. Aplikasi (perangkat lunak) lain.
Program lain dalam DBMS.
Bahasa Basis Data
DBMS merupakan perantara antara user dengan database.
Cara komunikasi diatur dalam suatu bahasa khusus yang telah ditetapkan oleh
DBMS.
Contoh: SQL, dBase, QUEL, dsb.
Bahasa database, dibagi dalam 2 bentuk:
- Data Definition Language (DDL)
Digunakan dalam membuat tabel baru, indeks, mengubah tabel, menetukan
struktur tabel, dsb.
- Data Manipulation Language (DML)
a.Digunakan dalam memanipulasi dan pengambilan data pada database.
b.Manipulasi data, dapat mencakup:
- Pemanggilan data yang tersimpan dalam database (query)
- Penyisipan/penambahan data baru ke database
- Penghapusan data dari database
- Pengubahan data pada database

22
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

Gambar 1. Konsep client-server dengan PHP

DASAR-DASAR MySQL
Dalam bahasa SQL pada umumnya informasi tersimpan dalam tabel-tabel yang secara
logik merupakan struktur dua dimensi terdiri dari baris (row atau record) dan kolom
(column atau field). Sedangkan dalam sebuah database dapat terdiri dari beberapa table.
Beberapa tipe data dalam MySQL yang sering dipakai:

Tabel 1. Tipe data di MySQL

Membuat Database Dan Tabel


Untuk masuk ke dalam program MySQL pada prompt jalankan perintah berikut ini:
C:\>Program Files\xampp\mysql\bin>mysql –u root -p (Enter)
Kemudian akan masuk kedalam MySQL seperti tampilan dibawah ini:

23
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

Gambar 2. Tampilan mysql di command prompt

Bentuk prompt “mysql>” adalah tempat menuliskan perintah-perintah MySQL. Setiap


perintah SQL harus diakhiri dengan tanda titik-koma “;” .

Atau juga bisa dari phpmyadmin, kemudian pilih tab SQL untuk mengetikkan perintah-
perintah DML.
Ketikkan : http://localhost/phpmyadmin

Gambar 3. Tampilan mysql di phpmyadmin

Cara untuk membuat sebuah database baru adalah dengan perintah:


create database namadatabase;

Contoh:
create database informatika;

Untuk membuka sebuah database dapat menggunakan perintah berikut ini:


use namadatabase;
Contoh:
use informatika;

24
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

Perintah untuk membuat tabel baru adalah:


create table namatabel
(
struktur
);

Constraint
Constraint adalah batasan atau aturan yang ada pada table.
MySQL menyediakan beberapa tipe constraint berikut :
• NOT NULL
Suatu kolom yang didefinisikan dengan constraint NOT NULL tidak boleh berisi
nilai NULL. Kolom yang befungsi sebagai kunci primer (primary key) otomatis
tidak boleh NULL.
• UNIQUE
Mendefinisikan suatu kolom menjadi bersifat unik, artinya antara satu data dengan
data lainnya namanya tidak boleh sama, misal alamat email.
• PRIMARY KEY
Constraint PRIMARY KEY membentuk key yang unik untuk suatu table.
• FOREIGN KEY
FOREIGN KEY constraint didefinisikan pada suatu kolom yang ada pada suatu
table, dimana kolom tersebut juga dimiliki oleh table yang lain sebagai suatu
PRIMARY KEY, biasa dipakai untuk menghubungkan antara 2 tabel.
Contoh Pembuatan Tabel :
Misalkan kita ingin menyimpan data anggota yaitu: nomor, nama, email, alamat, kota.
Sedangkan strukturnya seperti tabel dibawah ini :

Tabel 2. Pembuatan tabel

25
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

Perintah MySQL untuk membuat tabel seperti diatas bisa dengan 2 cara sbb :
create table anggota ( create table anggota (
nomor int(6) not null primary key, nomor int(6) not null,
nama char(40) not null, nama char(40) not null,
email char(255) not null, email char(255) not null,
alamat char(80) not null, alamat char(80) not null,
kota char(20) not null kota char(20) not null,
); primary key (nomor)
);

Perintah-Perintah Dasar SQL


A. Pemasukan data
Untuk memasukkan sebuah baris (record) kedalam tabel MySQL adalah sebagai
berikut:

INSERT INTO table [(column1, column2,...])]


VALUES (value1, value2,...]);

Contoh :
Insert into anggota (nomor,nama,email,alamat,kota) values
(100,’Adi’,’adi@yahoo.com’,’Jl. Keputih 2A no 5’,’Surabaya’);
atau
Insert into anggota values (100,’Adi’,’adi@yahoo.com’,’Jl. Keputih 2A no 5’,
’Surabaya’);

Latihan:
Masukkan data-data berikut ini ke tabel anggota :

Nomor Nama Email Alamat Kota


100 Adi adi@yahoo.com Jl. Keputih 2A no 5 Surabaya
101 Arif arif@hotmail.com Jl. Gebang Lor 32D Surabaya
102 Iqbal iqbal@yahoo.com Jl. Klampis 3 Surabaya
103 Setyo setyo@mailcity.com Jl. Madiun 5 Sidoarjo
104 Ilham ilham@yahoo.com Jl. Surabaya 9 Malang
105 Syamsudin sam@yahoo.com Jl. Pabean 11 Surabaya
106 Faruq faruq@yahoo.com Jl. Raya 5 Kediri
107 Hari hari@yahoo.com Jl. Raya 9 Banyuwangi

B. Menghapus Record
Untuk menghapus suatu record dengan kondisi tertentu digunakan perintah sebagai berikut:

DELETE [FROM] table [WHERE condition];

26
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

Contoh :
a. Untuk menghapus record dengan no = 107
Delete from anggota where no=107;

b. Untuk menhapus seluruh record


Delete from anggota;

C. Memodifikasi Record
Untuk memodifikasi (merubah) isi record tertentu adalah dengan menggunakan perintah
sebagai berikut:

UPDATE table
SET column = value [, column = value, ...]
[WHERE condition];

Contoh :
Untuk meng-update data email di tabel anggota, nomor 107.
update anggota set email=’hari_s@hotmail.com’ where
nomor=107;

D. Menampilkan Isi Tabel


Bentuk umum :
SELECT [DISTINCT] < attribute-list >
FROM < table-list >
WHERE < condition>

Latihan:
1. Untuk menampilkan semua kolom(field) pada tabel anggota
select * from anggota;

2. Untuk menampilkan kolom (field) nomor dan nama pada tabel anggota
select nomor, nama from anggota;

3. Untuk menampilkan semua kolom pada tabel anggota yang berada pada kota
‘Surabaya’
select * from anggota where kota=’Surabaya’;

4. Untuk menampilkan semua kolom pada tabel anggota dengan urut nama
select * from anggota order by nama;

5. Untuk menghitung jumlah record pada tabel anggota


select count(*) from anggota;

6. Untuk menampilkan kota dengan tidak menampikan kota yang sama pada tabel
anggota
select distinct kota from anggota;

27
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

7. Untuk menampilkan nama dan email yang mempunyai email di ‘yahoo.com’


select nama,email from anggota where email like
‘%yahoo.com’;

8. Untuk menampilkan nomor, nama dan email yang nomornya diatas 103 dan yang
berawalan dengan huruf S.
select nomor, nama, email from anggota where nomor >=
103 AND nama like ‘S%’;

9. Untuk menampilkan nomor, nama yang nomornya diantara 103 ~ 105


select nomor, nama from anggota where nomor between 103 and 105.

LATIHAN 1.
1. Buatlah database baru dengan nama lat_mysql
2. Buatlah tabel dengan nama pegawai yang memiliki field sebagai berikut :

Kolom / Field Tipe data


ID int (5) not null
Nama varchar(20) not null
Alamat varchar(20) not null
Gaji int (10) not null

3. Masukkan data-data berikut ini :

ID Nama Alamat Gaji


100 Arif Surabaya 10000
101 Andi Jakarta 14000
102 Burhan Malang 12000
103 Fikri Madiun 15000
104 Fariz Malang 17000
105 Sigit Surabaya 20000
106 Ifan Kediri 16000
107 Hanif Yogyakarta 12000
108 Zakiuddin Surabaya 21000

4. Hapuslah record dengan ID 100.


5. Update data untuk ID 101 dan 102 sbb :

ID Nama Alamat Gaji


101 Naila Surabaya 10000
102 Rafi Semarang 14000

28
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

6. Buat perintah SQL berikut ini untuk menampilkan :


a. Semua kolom dari tabel pegawai
b. Kolom nama dan gaji dari tabel pegawai
c. Kolom nama dan alamat yang mempunyai nama dengan awalan F.
d. Kolom nama dan alamat yang mempunyai nama dengan akhiran n
e. Kolom nama dan gaji yang mempunyai gaji diatas 15000.
f. Kolom nama, alamat dan gaji yang bergaji diatas 13000 dan beralamat di Surabaya.
g. Kolom nama, gaji dengan range gaji antara 15000 ~ 20000.
h. Gaji max, min,rata2 dari tabel pegawai > select max(gaji), min(gaji), avg(gaji)
from pegawai.
LATIHAN 2.
1. Buatlah 2 tabel yaitu Pegawai ,Departemen yang saling berhubungan yang memiliki
field-field sbb :
a. Tabel Pegawai
Kolom / Field Tipe data Keterangan
ID_Peg int (5) not null Primary Key
Nama_Peg varchar(20) not null
Alamat varchar(20) not null
ID_Dept varchar (5) not null Foreign Key

b. Tabel Departemen
Kolom / Field Tipe data Keterangan
ID_Dept varchar (5) not null Primary Key
Nama_Dept varchar(20) not null
2. Isikan data untuk kedua tabel diatas :
a. Tabel Pegawai b. Tabel Departemen
ID_Dept Nama_Dept
ID_Peg Nama_Peg Alamat ID_Dept A001 IT
100 Arif Surabaya A001 A002 Produksi
101 Andi Jakarta A002 A003 HRD
102 Burhan Malang A001 A004 Engineering
3. Buatlah perintah SQL berikut :
a. Menampilkan nama pegawai, alamat pegawai dan nama departemen.
b. Menampilkan id pegawai, nama pegawai dan nama departemen.

LATIHAN 3.
1. Buatlah 3 buah tabel dengan relasi sebagai berikut :

2. Isi data di semua tabel diatas.


3. Tampilkan data
a. Nama mahasiswa, Nama mata kuliah dan nilainya.
b. Nama mahasiswa, nama mata kuliah dan SKS.
c. Nama dan alamat mahasiswa, nama mata kuliah, SKS dan nilainya.

29
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

MODUL 5
KONEKTIVITAS PHP DENGAN MySQL
A. Tujuan:
1. Memahami langkah-langkah koneksi PHP dengan MySQL.
2. Memahami perbedaan pengambilan record dari database.

B. Dasar Teori:
Langkah-langkah koneksi PHP-MySQL
1. Membuka koneksi ke server MySQL
mysql_connect()
Digunakan untuk melakukan uji dan koneksi kepada server database MySQL.
Sintaks :

$conn = mysql_connect (”host”,”username”,”password”);

$conn adalah nama variabel penampung status hasil koneksi kepada database.
host adalah nama host atau alamat server database MySQL.
username adalah nama user yang telah diberi hak untuk dapat mengakses server
database.
password adalah kata sandi untuk username untuk dapat masuk ke dalam database.

2. Memilih database yang akan digunakan di server


mysql_select_db()
Digunakan untuk melakukan koneksi kepada database yang dalam server yang berhasil
dikoneksi dengan perintah mysql_connect().

Sintaks :

$pilih = mysql_select_db(”namadatabase”,$conn);

$pilih berisi status koneksi kepada database.


$conn merupakan koneksi kepada server database yang berhasil.
namadatabase adalah nama database yang akan dikenai proses.

3. Mengambil sebuah query dari sebuah database.


mysql_query()
Digunakan untuk melakukan eksekusi perintah SQL untuk memanipulasi database yang
berhasil dilakukan koneksinya menggunakan mysql_select_db().
Sintaks :

$hasil = mysql_query(”SQL Statement”);

$hasil akan berupa record set apabila SQL Statement berupa perintah select.

30
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

4. Mengambil record dari tabel


a. mysql_fetch_array()
Digunakan untuk melakukan pemrosesan hasil query yang dilakukan dengan perintah
mysql_query(), dan memasukkannya ke dalam array asosiatif, array numeris atau
keduanya.

Sintaks :

$row = mysql_fetch_array($hasil);

$row adalah array satu record dari record $hasil yang diproses nomor record
sesuai dengan nomor urut dari proses mysql_fetch_array yang sedang dilakukan.
$hasil adalah record set yang akan diproses.

b. mysql_fetch_assoc()
Fungsi ini hampir sama dengan fungsi mysql_fetch_array(), hanya saja array yang
dihasilkan hanya array asosiatif.

Sintaks :

$row = mysql_fetch_assoc($hasil);

c. mysql_fetch_row()
Fungsi ini hampir sama dengan fungsi mysql_fetch_array(), hanya saja array yang
dihasilkan hanya array numeris.

Sintaks :

$row = mysql_fetch_row($hasil);

d. mysql_num_rows()
Fungsi ini digunakan untuk menghitung jumlah record yang ada pada database.

Sintaks :

$jml = mysql_num_rows($hasil);

$jml akan memiliki nilai sesuai dengan jumlah record yang ada.

31
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

LATIHAN 1.

1. Menguji interkoneksi PHP dengan MySQL.


<html>
<head>
<title>Koneksi Database MySQL</title>
</head>
<body>
<h1>Demo koneksi database MySQL</h1>
<?
$conn=mysql_connect
("localhost","root","");
if ($conn) {
echo "OK";
} else {
echo "Server not connected";
}
?>
</body>
</html>

2. Melihat perbedaan antara mysql_fetch_array(), mysql_fetch_assoc(),


mysql_fetch_row().

a. Buatlah tabel liga berikut ini, dengan 3 field : kode, negara, champion.
Create table liga (
kode char(3) not null,
negara char(15),
champion int
);

b. Isilah tabel dengan data berikut ini :

kode negara Champion


Jer Jerman 4
Spa Spanyol 3
Eng English 3

32
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

c. Akses databases menggunakan mysql_fetch_array()

<HTML>
<HEAD>
<title>Koneksi Database MySQL</title>
</HEAD>
<BODY>
<h1>Koneksi database dengan mysql_fetch_array</h1>
<?
$conn=mysql_connect ("localhost","root","")
or die ("koneksi gagal");
mysql_select_db("database",$conn);
$hasil = mysql_query("select * from liga",$conn);
while ($row=mysql_fetch_array($hasil)) {
echo "Liga " .$row["negara"]; //array asosiatif
echo " mempunyai " .$row[2]; //array numeris
echo " wakil di liga champion <br>";
}
?>
</BODY>
</HTML>

d. Akses databases menggunakan mysql_fetch_row()

<HTML>
<HEAD>
<title>Koneksi Database MySQL</title>
</HEAD>
<BODY>
<h1>Koneksi database dengan mysql_fetch_assoc</h1>
<?
$conn=mysql_connect ("localhost","root","")
or die ("koneksi gagal");
mysql_select_db("database",$conn);
$hasil = mysql_query("select * from liga",$conn);
while ($row=mysql_fetch_row($hasil)) {
echo "Liga " .$row[1];
echo " mempunyai " .$row[2];
echo " wakil di liga champion <br>";
}
?>
</BODY>
</HTML>

3. Membuat Buku Tamu


a. Buatlah tabel bukutamu yang memiliki 3 field : nama, email, komentar.
Create table bukutamu (
nama char(20) not null,
email char(20),
komentar char (40)
);

33
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

PROSES DI BUKU TAMU


1. Tambah data : bukutamu.htm -> prosestambah.php
2. Tampil data : view.php
3. Search data : search.htm -> hasilsearch.php

b. Buat form untuk buku tamu, beri nama bukutamu.htm

<HTML>
<HEAD>
<title>Buku Tamu</title>
</HEAD>
<BODY>
<h1>Buku Tamu untuk database MySQL</h1>
<form action="prosesTambah.php" method="post">
Nama : <input type="text" name="nama" size="35"
maxlength="50"> <br>
Email : <input type="text" name="email" size="35"
maxlength="50"> <br>
Komentar : <textarea name="komentar" rows="5"
cols="30"></textarea> <br>
<input type="submit" value="Simpan">
<input type="reset" value="Reset">
</form>
</BODY>
</HTML>
c. Buat file prosesTambah.php untuk memproses data dari bukutamu.htm dan
menambahkan data ke tabel bukutamu.
<HTML>
<HEAD>
<title>Simpan Buku Tamu</title>
</HEAD>
<BODY>
<h1>Simpan Buku Tamu MySQL</h1>
<?
$nama = $_POST["nama"];
$email = $_POST["email"];
$komentar = $_POST["komentar"];
$conn=mysql_connect ("localhost","root","")
or die ("koneksi gagal");
mysql_select_db("database",$conn);
echo "Nama : $nama <br>";
echo "Email : $email <br>";
echo "Komentar : $komentar <br>";
$sqlstr="insert into bukutamu (nama,email,komentar)
values ('$nama','$email','$komentar')";
$hasil = mysql_query($sqlstr,$conn);
echo "Simpan bukutamu berhasil dilakukan";
?>
</BODY>
</HTML>

34
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

d. Buat file view.php untuk menampilkan isi buku tamu.


<?
$conn = mysql_connect("localhost","root","");
mysql_select_db("database",$conn);
$hasil = mysql_query("select * from bukutamu",$conn);
$jumlah = mysql_num_rows($hasil);
echo "<center>Daftar Pengunjung</center>";
echo "Jumlah pengunjung : $jumlah";
$a=1;
while($baris = mysql_fetch_array($hasil))
{
echo "<br>";
echo $a;
echo "<br>";
echo "Nama : ";
echo $baris[0];
echo "<br>";
echo "Email : ";
echo $baris[1];
echo "<br>";
echo "Komentar : ";
echo $baris[2];
$a++;
}
?>

4. Membuat program searching database dengan menggunakan tabel no 3a


a. Buat file search.htm

<HTML>
<HEAD>
<title>Cari Database</title>
</HEAD>
<BODY>
<h1>Searching Buku Tamu untuk database MySQL</h1>
<form action="hasilsearch.php" method="post">
<select name="kolom">
<option value="nama">nama</option>
<option value="email">email</option>
</select>
Masukkan kata yang anda cari
<input type ="text" type ="text" name="cari">
<input type ="submit" value="cari" >
</form>
</BODY>
</HTML>

35
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

b. Buat file hasilsearch.php untuk menampilkan data


<?
$kolom=$_POST['kolom'];
$cari=$_POST['cari'];
$conn=mysql_connect("localhost","root","");
mysql_select_db("database", $conn);
$hasil=mysql_query("select * from bukutamu where
$kolom like '%$cari%'", $conn);
$jumlah=mysql_num_rows($hasil);
echo "<br>";
echo "Ditemukan: $jumlah";
echo "<br>";
while($baris=mysql_fetch_array($hasil))
{
echo "Nama : ";
echo $baris[0];
echo "<br>";
echo "Email : ";
echo $baris[1];
echo "<br>";
echo "Komentar :";
echo $baris[2];
}
?>

LATIHAN 2.
Modifikasilah program diatas, sehingga memiliki 3 tombol yaitu,
1. Bukutamu untuk inputkan data
2. Tampilkan untuk menampilkan database bukutamu dalam bentuk tabel.
3. Search untuk melakukan searching database bukutamu dalam bentuk tabel.

36
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

MODUL 6
INSTALASI LARAVEL
A. Tujuan:
1. Memahami apa itu laravel.
2. Mampu melakukan installasi laravel di xampp maupun web server lainnya.

B. Dasar Teori
Laravel adalah sebuah Framework PHP yang bersifat opensource yang ditulis oleh
Taylor Otwell dengan lisensi dibawah MIT License. Laravel dibuat untuk membatu para
developer khususnya dalam membuat sebuah web dengan sintak yang sederhana, elegan,
ekspresif dan menyenangkan. Seperti yang ditulis dalam website nya.

Laravel sebuah framework yang terbilang baru dalam PHP. Berbeda dengan
framework sebelumnya. Laravel dibuat supaya kegiatan memprograman sebuah aplikasi
web menjadi lebih menyenangkan versi baru Laravel, yaitu Laravel 5 diadaptasi
framework yang telah telah ada sebelumnya yaitu simfony, hanya tentu saja Laravel
lebih expressif dalam hal syntax.

Cara Instal Laravel


Dalam melakukan istallasi laravel di bagi menjadi (2) dua bagian yaitu via install laravel
dan via composer. pada installasi laravel kali ini kita menggunakan via compose, dan
pada insalasi laravel via composer terdapar (2) dua cara, yang pertama menggunakan
composer create project yang kedua menggunakan komposer install

A. Install Composer Created Project


Untuk dapat menginstal laravel kita akan menggunakan composer. Composer adalah
sebuah dependency ‘manager’ untuk PHP. Anda dapat menambah library yang
dibutuhkan untuk website anda secara otomatis tanpa perlu mendownload satu persatu.

Adapun proses instalasi composer adalah sebagai berikut:


1. Download Composer disini https://getcomposer.org/

37
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

2. Double klik file tersebut sehingga muncul dialog setup install composer
kemudian klik Next.

3. Kemudian masukan path php yang sudah diiintal di komputer. Disini dicontohkan
path php nya yaitu di “D:/xampp/php/php.exe”kemudian klik next.

38
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

4. Jika versi php sudah memenuhi standar instalasi laravel, maka akan muncul
tampilan sebagai berikut. Kemudian klik Install.

5. Setelah proses installasi selesai klik finish.

6. Jika sudah berhasil instal composer, untuk mengecek apakan composer sudah
berjalan dengan baik, buka Command Promt kemudian tuliskan “composer”. Jika
berhasil composer akan tampil sebagai berikut .

39
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

B. Install Package Laravel


Setelah berhasil menginstal composer, kita akan menginstal package laravel.
Buka Command Prompt kemudian arahkan direktori ke XAMPP/htdocs
yang sudah di instal

Kemudian ketikan syntax berikut :

Syntax diatas untuk mengunduh laravel dengan nama projeknya: “Laravel”


Tunggu hingga proses download selesai.

40
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

Setelah proses download atau unduh selesai, silakan mengecek di folder


htdocs apakah sudah ada folder dengan nama laravel. Seperti pada gambar
berikut.

Untuk mengecek apakah laravel sudah terinstal yaitu dengan cara buka xampp-
control kemudian centang apache dan mysql. Buka browser kemudian ketik
http://localhost/laravel/public . Jika tampilan sebagai berikut, berarti package laravel
yang diinstal sudah berjalan.

LATIHAN
Kerjakan ulang seluruh percobaan pada modul ini, dengan parameter yang berbeda!
(penentuan parameter latihan ditentukan oleh asisten lab.)

41
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

MODUL 7
BASIC ROUTING PADA LARAVEL
A. Tujuan:
1. Memahami konsep dasar routing pada laravel.
2. Mampu melakukan basic routing pada laravel

B. Dasar Teori
Dalam routing kita akan mengenal yaitu GET dan POST, pastinya sudah tidak asing lagi
bagi yang terbiasa belajar atau membuat website. Secara gamblang kita bisa melihat
perbedaannya, GET data dan parameter akan terlihat di url sedangkan POST tidak
terlihat di url. Tapi framework laravel bagian routing GET dan POST ini mempunyai
cara kerja yang berbeda dan yang dimaksud bukan $_GET maupun $_POST kalau
dilaravel $_GET dan $_POST ini bisa kita pelajari di bagian basic input di laravel.com
contohnya Input::get(‘name’); . Tapi di modul ini atau didalam routing laravel GET
disini digunakan untuk menampilkan, parsing atau mengirimkan data. Sedangkan POST
digunakan untuk menangani sebuah form untuk menerima hasil inputan data.

Di laravel maupun di dunia programming kita pasti mengenal istilah RESTful. RESTful
mempunyai beberapa method selain $_GET dan $_POST
yaitu PUT/PATCH dan DELETE. Apa itu RESTful, RESTful merupakan sebuah teknik
di arsitektur software untuk sistem terdistribusi seperti World Web Wide. Contoh nyata
penggunaan Restful itu sendiri seperti kita berkunjung di sebuah web contohnya saja
4.shared lalu kita bisa login dengan akun facebook.Tapi ditutorial ini kita tidak akan
membahas lebih dalam mengenai RESTful.

Di modul ini tidak akan membahas mengenai method POST, karena method ini akan
dibahas pada moduk form laravel. Sedangkan RESTful akan dibahas pada modul
pembuatan crud. Pada modul ini kita hanya akan membahas penggunaan GET.
Catatan : routing dapat didefinisikan atau dituliskan di folder app lalu file routes.php.

GET
Method ini dalam laravel biasanya digunakan untuk menampilkan view maupun data.
Buka Project yang telah di install pada modul sebelumnya.kemudian cari file routes.php
yang berada dalam folder app.

BASIC ROUTE
Secara dasar penggunaan dasar route sebagai berikut, silahkan buka file routes.php anda
akan menemukan code seperti dibawah ini.
Route::get('/', function()
{
return View::make('hello');
});

Pada code diatas, diganti menjadi seperti dibawah ini.


Route::get('/',function()
{
return'Ini Contoh Halaman Home';
});

Route::get adalah method digunakan untuk route dengan method get seperti yang
dijelaskan diatas.

42
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

Tanda '/', menunjukan route yang di definisikan atau dibuat untuk route utama atau
halaman utama contoh seperti seputarpmrograman.com bukan
seputarpmrograman.com/tutorial-laravel.
return'Ini Contoh Halaman Home'; menunjukan mengembalikan suatu nilai yang
berisi “Ini Contoh Halaman Home”.
Untuk cara menjalankan hasil route diatas silahkan ketik url :
<a href="projectlaravel/public/">
http://localhost/projectlaravel/public/</a>

Hasilnya menampilkan

ROUTE PARAMETERS
Fungsi route parameters ini adalah mengirimkan sebuah nilai atau parameter ke route
atau ke controller. Di route parameters kita dibagi menjadi beberapa bagian :
1. Basic Route Parameters (Dasar Route Berparameter)
2. Route Parameters (Route Berparameter Lebih dari Satu)
3. Optional Route Parameters (Opsional Route Parameter)
4. Optional Route Parameters with Defaults (Opsional Route Parameter dengan Nilai
Default).

Basic Route Parameters (Dasar Route Berparameter)


Tambahkan code berikut ke file routes.php
Route::get('profile/{nama}',function($nama)
{
return'Profile Nama : '.$nama;
});

profile/{nama} , digunakan untuk definisi / penamaan route / urlnya sedangkan untuk


{nama} adalah variable yang dikirimkan atau parameternya.
function($nama) , digunakan untuk menangkap parameter
return'Profile Nama : '.$nama; , digunakan untuk Menampilkan kalimat Profile Nama
: Sesuai Parameter.

Contoh cara menjalankan ketikan url seperti ini :


http://localhost/projectlaravel/public/profile/Andri

Maka yang dihasilkan akan seperti ini :

Route Parameters (Route Berparameter Lebih dari Satu)


Untuk mengirim parameter lebih dari satu dari contoh dasar route berparameter kita
hanya perlu menambahkan /{parameter-baru}.

Lebih jelasnya lihat contoh dibawah ini dan bandingkan dengan contoh sebelumnya.
Tambahkan code berikut ini ke routes.php
Route::get('profile/{id}/{nama}',function($id, $nama)
{
return'Profile ID / Nama : '.$id.' / '.$nama;
});

43
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

profile/{id}/{nama} , digunakan untuk definisi / penamaan route / urlnya sedangkan


untuk {id} adalah variable yang dikirimkan atau parameternya. {nama} adalah
parameter kedua.
function($id, $nama) , digunakan untuk menangkap parameter
return'Profile ID / Nama : '.$id.' / '.$nama; , digunakan untuk Menampilkan kalimat
Profile Nama : Sesuai Parameter Pertama / Sesuai Parameter Kedua .

Coba jalankan dengan perintah / url seperti ini :


http://localhost/projectlaravel/public/profile/1/Andri

Maka hasilnya menjadi seperti ini

Optional Route Parameters (Opsional Route Parameter)


Opsional Route Parameter adalah sebuah pilihan jika parameter tidak dicantumkan maka
akan diganti dengan null dengan demikian program akan tetap jalan. Contohnya,
silahkan pada bagian sebelumnya dihilangkan parameternya, apa yang terjadi?, program
akan error.

Sekarang mari kita lihat contoh dari opsional route parameter ini.
Route::get('profile/{nama?}', function($nama = null)
{
return $nama;
});

profile/{nama?} , digunakan untuk define / penamaan route / urlnya, {nama?} artinya


jika parameter tidak ditemukan akan diganti null dengan code berikut $nama = null.

return $nama; , mengembalikan nilai parameternya.

Coba jalankan dengan perintah / url seperti ini :


http://localhost/projectlaravel/public/profile

maka hasilnya akan blank page / kosong, jika dijalankan seperti ini
http://localhost/projectlaravel/public/profile/Andri

Maka menghasilkan “Profile Nama : Andri”.

Optional Route Parameters With Defaults (Opsional Route Parameter dengan Nilai
Default)
Opsional Route Parameter dengan Nilai Default ini hampir sama dengan Opsional Route
Parameter Cuma perbedaannya yaitu kita bisa memberikan nilai default pada suatu
parameter jika parameternya tidak ditemukan, contohnya :
Route::get('profile/{nama?}', function($nama = 'Andri')
{
return $nama;
});

profile/{nama?} , digunakan untuk define / penamaan route / urlnya, {nama?} artinya


jika parameter tidak ditemukan akan diganti null dengan code berikut $nama = 'Andri'.

Coba jalankan dengan perintah / url seperti ini :


http://localhost/projectlaravel/public/profile
44
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

maka yang ditampilkan “Profile Nama : Andri” karena defaultnya Andri jika kita ubah
menjadi Rudi maka yang dihasilkan “Profile Nama : Rudi”.

LATIHAN
Kerjakan ulang seluruh percobaan pada modul ini, dengan parameter yang berbeda!
(penentuan parameter latihan ditentukan oleh asisten lab.)

45
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

MODUL 7
MEMAHAMI DASAR CONTROLLER
DAN VIEW PADA LARAVEL
A. Tujuan:
1. Memahami konsep dasar routing pada laravel.
2. Mampu melakukan basic controller dan view pada laravel

B. Dasar Teori
Setelah mempelajari routing laravel pada modul sebelumnya. Selanjutnya bagaimana
memahami cara kerja controllers dan views di Framework Laravel. Bagaimana cara
kerja antara routing, controller, view dan model. Sebelumnya kita harus tahu konsep
MVC. M adalah Model, Model digunakan untuk query atau proses mengambil data
dari database. V adalah View, View digunakan untuk tampilan user berupa html, css, js
dan data yang bersifat client. Sedangkan C adalah Controller, yang digunakan untuk
mangatur atau menjembatani antara model dan view juga bisa digunakan untuk
mengatur alur program.

Berikut ini gambar dari MVC.

Pada modul hanya akan dibahas Controller dan View. Dari percobaan pada modul
sebelumnya kita akan menggabungkan dengan controller dan view.

Untuk persiapan buka file routes.php , dan didalam folder controllers buat file dengan
nama ProfileController.php.

Setelah itu ProfileController.php isi dengan code berikut :


< ?php
class ProfileController extends BaseController {
}
//Untuk spasi diantara tanda < dan ? silahkan dihapus

BASIC CONTROLLERS ( DASAR CONTROLLER )


Dasar controller ini adalah bagaimana cara dasar untuk dapat menjalankan controller
tersebut dengan bantuan route.

46
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

Apakah masih ingat code dibawah ini terletak dimana ?


Route::get('/',function()
{
return'Ini Contoh Halaman Home';
});

Syntax code ini terletak di file routes.php, seperti yang dijelaskan sebelumnya di
modul routing, routing digunakan untuk menentukan uri atau format url. Pada
percobaan modul sebelumnya, string Ini Contoh Halaman Home berada dirouting itu
sendiri, apabila di dalam fungsi Route::get('/',function() ini terdapat banyak baris,
puluhan atau sampai ratusan baris, tentu tidak akan efisien, ditambah lagi fungsi –
fungsi yang lainnya. Maka dari itu controller ini berfungsi memecah syntax, bagaimana
caranya agar fungsi – fungsi yang puluhan bahkan ratusan itu kita pindah ke controller.
Lihat syntax code sederhana dibawah ini.
Route::get('/',function()
{
return'Ini Contoh Halaman Home';
});

Syntax code diatas dapat diganti dengan syntax code dibawah ini.
Route::get('/', 'ProfileController@index');

Dan, di ProfileController.php yang sebelumnya dibuat, tambahkan syntax code


berikut ini.
public function index()
{
return'Ini Contoh Halaman Home';
}

Hasilnya di ProfileController.php menjadi seperti ini


class ProfileController extends BaseController {
public function index()
{
return'Ini Contoh Halaman Home';
}
}

Penjelasan dari syntax code didalam routes.php yang telah diganti sebelumnya;
Route::get('/', 'ProfileController@index');

Route::get adalah method digunakan untuk digunakan untuk menampilkan view


maupun data.
Tanda '/', menunjukan route yang di definisikan atau dibuat untuk route utama atau
halaman utama.
ProfileController , adalah nama file ataupun class controller.
index , adalah method atau fungsi yang berada di controller.

Untuk mencoba menajalankan program sama seperti sebelumnya ketikan url seperti ini
http://localhost/projectlaravel/public/

Hasilnya pun sama seperti modul routing, Itu adalah Cara Dasar menggunakan
Controller.

47
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

CONTROLLER DENGAN ROUTE PARAMETERS


Percobaan diatas adalah cara menggunakan controller secara dasar, sekarang bagaimana
jika kita parsing atau mengirim parameter di controller seperti yang dilakukan di
routing.

Ubah syntax code dibawah ini yang berada di routes.php


Route::get('profile/{nama}',function($nama)
{
return'Profile Nama : '.$nama;
});

Menjadi
Route::get('profile/{nama}', 'ProfileController@profile');

Dan didalam controller file ProfileController.php tambah fungsi berikut ini dibawah
fungsi index.
public function profile($nama)
{
return'Profile Nama : '.$nama;
}

Keterangan syntax code;


Route::get('profile/{nama}', 'ProfileController@profile');

profile/{nama}, menunjukan route yang di definisikan. {nama} adalah parameter.


ProfileController , adalah nama file ataupun class controller.
profile , adalah method atau fungsi yang berada di controller.
public function profile($nama) . adalah sebuah fungsi bernama profile yang
menangkap sebuah parameter dengan variabel nama.
return'Profile Nama : '.$nama; , mengembalikan nilai dari parameter nama.

Untuk menjalankannya juga masih sama seperti modul sebelumnya.


http://localhost/projectlaravel/public/profile/Andri

Hasilnya pun juga sama.

KOLABORASI ANTARA VIEW DAN CONTROLLER


Setelah membahas cara kerja controller, bagaimana menggabungkan view dengan
controller. Sebelumnya di folder views buatlah sebuah file bernama profile.php isikan
syntax code berikut :
Profile ID / Nama : < ?php echo $id; ?> / < ?php echo $nama; ?>
//Untuk spasi diantara tanda < dan ? silahkan dihapus

Kemudian di controller, ProfileController.php tambah fungsi berikut dibawah fungsi


profileview.
public function profileview($id,$nama)
{
$data =
[
'id' => $id, // Menyimpan nilai dari variable id ke dalam array
'nama' => $nama // Menyimpan nilai dari variable nama ke dalam array
];
return View::make('profile',$data); // Parsing data ke dalam view
lalu ditampilkan.
}

48
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

Dan yang terakhir ganti syntax code didalam routes.php ini.


Route::get('profile/{id}/{nama}',function($id, $nama)
{
return'Profile ID / Nama : '.$id.' / '.$nama;
});

Menjadi seperti ini.


Route::get('profile/{id}/{nama}', 'ProfileController@profileview');
Keterangan syntax code :
$data =
[
'id' => $id, // Menyimpan nilai dari variable id ke dalam array
'nama' => $nama // Menyimpan nilai dari variable nama ke dalam array
];

Syntax code diatas digunakan untuk menyimpan nilai dari variabel id dan nama ke dalam
variabel data berbentuk array.
return View::make('profile',$data); , digunakan untuk memanggil atau menampilkan
file di folder views dan data. 'profile' disini adalah nama file yang berada didalam folder
views.
$data adalah data berbentuk array yang dikirim ke dalam view atau profile.php di folder
views.

LATIHAN
Kerjakan ulang seluruh percobaan pada modul ini, dengan parameter yang berbeda!
(penentuan parameter latihan ditentukan oleh asisten lab.)

49
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

MODUL 8
MEMANFAATKAN TEMPLATE BLADE
PADA LARAVEL
A. Tujuan:
1. Memahami konsep dasar template pada laravel dengan blade.
2. Mampu melakukan menerapkan blade templating pada laravel

B. Dasar Teori
Di bagian ini kita akan mempelajari blade dan cara memanfaatkannya. Blade adalah
template engine yang disediakan oleh framework laravel atau bawaan dari framework
laravel. Blade adalah konversi dari bahasa pemrograman PHP ke Blade itu sendiri agar
lebih mudah dipahami dan lebih singkat. Kenapa kita harus menggunakan Blade ?
Karena dengan menggunakan blade dalam mengatur layout web yang kita bangun akan
lebih mudah. Mudah disini jika anda sudah mengetahui dasar – dasar blade itu sendiri.

DASAR - DASAR BLADE


Menampilkan Data ( echo )
Nama Saya : {{{ $nama }}}

Jika Menggunakan PHP Identik dengan


Nama Saya : < ?php echo $nama; ?>

Anda juga bisa menggunakan fungsi dibawah ini


Nama Saya : {{ $nama }}

Menampilkan Data Setelah dilakukan Pengecekan


Fungsi ini bermanfaat ketika proses pengecekan variabel. Jika ditemukan maka
menampilkan variabel itu sendiri, jika tidak akan menampilkan variabel defaultnya.
Lebih jelasnya lihat dibawah ini.
{{{ isset($name) ? $name : 'Default' }}}

Atau bisa menggunakan code dibawah ini lebih simple.


{{{ $name or 'Default' }}}

Menampilkan Raw Text dengan Curly Braces


Untuk menampilkan text raw dalam blade kita bisa menggunakan tanda @{{ … }}
seperti dibawah ini.
@{{ Kalimat yang ingin ditampilkan }}

Menggunakan Statemen (If Endif, If Else Endif)


Untuk menggunakan statemen if di blade caranya dibawah ini.
@if ('A'==='A')
@{{ Betul ini adalah A }}
@endif

Cara menggunakan If Else di blade


@if ('A'==='A')
@{{ Betul ini adalah A }}
@else
@{{ Ini Bukan A }}
@endif

50
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

Menggunakan If Elseif
@if ('A'==='A')
@{{ Betul ini adalah A }}
@elseif ('B'==='B' )
@{{ Betul ini adalah B }}
@else
@{{ Ini Bukan A dan B }}
@endif

Menggunakan Perulangan (For, Foreach, While)


Fungsi Menggunakan For maupun Foreach di blade
For
@for ($i = 0; $i < 10; $i++)
{{$i}}
@endfor

Foreach
@foreach ($users as $user)
ID user {{ $user->id }}
@endforeach

While
@while (true)
I'm looping forever.
@endwhile

Include Sub View


@include('nama view')

Memberikan Komentar
Untuk memberikan komentar pada blade caranya berikut ini
{{-- Dengan begini kalimat ini tidak tampil --}}

MEMADUKAN BLADE DENGAN TEMPLATE BOOTSTRAP


Syntax code diatas adalah dasar – dasar dari template blade, selanjutnya kita akan
membuat template sederhana dari bootstrap dengan memanfaatkan blade templating.
Secara sederhana untuk kerangka membuat layout dengan balde dan membagi menjadi
bagian kecil seperti gambar dibawah ini.

51
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

Untuk persiapan membuat templating sederhana menggunakan laravel ini, berikut yang
perlu dipersiapkan :

1. Download template bootstrap


2. Buka projectlaravel yang sudah dibahas pada modul sebelumnya lalu tambahkan
folder layouts dan includes didalam folder views.
3. Dari hasil download template boostrap diatas dibagi menjadi beberapa
bagian header, sidebar dan content. Kemudian buat file didalam
folder layouts dengan nama master.blade.php dan didalam folder includes buat file
bernama header.blade.php dan sidebar.blade.php.

Pada tahap pertama didalam folder sb-admin hasil template download bootstrap, copy
folder css, js, font awesome dan folder font, lihat gambar dibawah ini.

Folder diatas pindahkan ke folder assets didalam folder public, atau yang pada modul
sebelumnya adalah projectlaravel. Jika belum ada folder assets buat dahulu. Jika sudah
buka file bernama blank-page.html di folder template boostrap, copy semua syntax
code paste ke file master.blade.php.

Kemudian di file master.blade.php cari code dibawah ini :

< link href ="css/bootstrap.min.css" rel ="stylesheet">


< link href ="css/sb-admin.css" rel ="stylesheet">
< link href ="font-awesome-4.1.0/css/font-
awesome.min.css" rel ="stylesheet" type="text/css">

//Untuk spasi diantara tanda < dan link silahkan dihapus

Ubah menjadi seperti ini


{{ HTML::style('assets/css/bootstrap.min.css') }}
{{ HTML::style('assets/css/sb-admin.css') }}
{{ HTML::style('assets/font-awesome-4.1.0/css/font-awesome.min.css') }}

Dan syntax code paling bawah:


< script src="js/jquery-1.11.0.js">
< script src="js/bootstrap.min.js">

//Untuk spasi diantara tanda < dan script silahkan dihapus

Ubah menjadi seperti ini


{{ HTML::script('assets/js/jquery-1.11.0.js') }}
{{ HTML::script('asstes/js/bootstrap.min.js') }}

Selanjutnya syntax code di master.blade.php kita bagi ke dalam beberapa bagian yaitu
header, sidebar dan content. Pertama kali kita ambil syntax code untuk header.

Ambil atau cut code di master.blade.php diantara tanda <! -- Brand and toggle get
grouped for better mobile display --> sampaidengan tanda <! -- Sidebar Menu Items -
These collapse to the responsive navigation menu on small screens --> dan paste ke
header.blade.php.
Jadi di file header.blade.php ada sekitar kurang lebih 113 baris syntax code.

52
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

Di dalam file master.blade.php yang syntax codenya kita ambil tadi ganti syntax
codenya menjadi seperti dibawah ini.
@include('includes.header')

Jadi master.blade.php akan menjadi seperti ini.

Masih di master.blade.php kali ini kita akan mengambil syntax code untuk
sidebar.blade.php

Ambil syntax code diantara <! -- Sidebar Menu Items - These collapse to the responsive
navigation menu on small screens --> sampai dengan <! -- /.navbar-collapse --> paste
atau taruh dalam file sidebar.blade.php. tempat syntax code yang baru kita ambil
ditambahkan code berikut:
@include('includes.sidebar')

Tampilan syntax code di master.blade.php akan menjadi seperti gambar dibawah ini.

Untuk selanjutnya yaitu cari di folder views file yang bernama profile.php lalu ubah
namanya / rename menjadi profile.blade.php. Kemudian isi file itu ganti dengan syntax
code dibawah ini:
@extends('layouts.master')
@section('content')
< div class="row">
< div class="col-lg-12">
< h1 class="page-header">
Halaman
< small>Profile< /small>
< /h1>
Profile ID / Nama : {{{ $id }}} / {{{ $nama }}}
< /div>
< /div>
@stop

//Untuk spasi diantara tanda < dan div, /div, h1 ,/h1 ,small, /small
silahkan dihapus

Kembali buka master.blade.php


diantara < !-- Page Heading --> sampai dengan < !-- /.row -->code didalamnya diganti
dengan syntax code berikut:
@yield('content')

53
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

Sehingga di master.blade.php menjadi seperti dibawah ini.

Dari tahap ini kita sudah dapat melihat hasil percobaan. Pada browser ketik url berikut ini.
http://localhost/projectlaravel/public/profile/1/Andri

Maka hasilnya seperti ini

Sekarang kita ubah sedikit didalam file controller yang bernama ProfileController.php.
Silahkan diubah menjadi seperti:
< ?php
class ProfileController extends BaseController {
public function index()
{
return View::make('home');
}

public function profile($nama)


{
$data =
[
'nama' => $nama
];
return View::make('profile',$data);
}
}

//Untuk spasi diantara tanda < dan ?php silahkan dihapus

Kemudian buka file profile.blade.php yang berada dalam folder views. Ubah syntax code
dibawah ini:
Profile ID / Nama : {{{ $id }}} / {{{ $nama }}}

Menjadi seperti ini


Nama : {{{ $nama }}}

54
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

Selanjutnya buat file bernama home.blade.php dan tempatkan di dalam folder views,
kemudian isi dengan syntax code berikut ini:
@extends('layouts.master')
@section('content')
< div class="row">
< div class="col-lg-12">
< h1 class="page-header">
Halaman
< small>Beranda< /small>
< /h1>
Ini Halaman Home / Beranda
< /div>
< /div>
@stop

//Untuk spasi diantara tanda < dan div, /div, h1, /h1, small, /small
silahkan dihapus

Untuk selanjutnya buka file sidebar.blade.php di dalam folder includes. Dan ganti syntax
codenya menjadi seperti dibawah ini.
< div class="collapse navbar-collapse navbar-ex1-collapse">
< ul class="nav navbar-nav side-nav">
< li>
< a href="{{ URL::to('/') }}">< i class="fa fa-
fw fa-dashboard">< /i> Home< /a>
< /li>
< li>
< a href="{{ URL::to('profile/Andri') }}"><
i class="fa fa-fw fa-user">< /i> Profile< /a>
< /li>
< /ul>
< /div>

//Untuk spasi diantara tanda < dan div, /div, ul, /ul, li, /li, a, /a,
i, i/ silahkan dihapus

Silahkan dicoba dijalankan dengan mengetikan url seperti ini:


http://localhost/projectlaravel/public/
http://localhost/projectlaravel/public/profile/Andri

Sekarang menu sidebar sudah berfungsi silahkan dicoba!

LATIHAN
Kerjakan ulang seluruh percobaan pada modul ini, dengan parameter yang berbeda!
(penentuan parameter latihan ditentukan oleh asisten lab.)

55
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

MODUL 9
DASAR FORM SEDERHANA PADA LARAVEL
A. Tujuan:
1. Memahami konsep dasar form pada laravel.
2. Mampu membuat form sederhana pada laravel

B. Dasar Teori
Form biasanya digunakan untuk menginputkan, menampung, memasukan data. Di
laravel terdapat class form yang akan mempermudah dalam pembuatan form
DASAR – DASAR FORM LARAVEL
Pembuka Form
Biasanya untuk membuat form kita memerlukan seperti code dibawah ini.
< form method="POST" action="…" >

< /form>

Didalam laravel kita dapat menulisnya seperti ini.


{{ Form::open(array('url' => '…')) }}

{{ Form::close() }}

Kita juga pada modul sebelumnya juga sudah belajar tentang blade, syntax code form
pun menerapkan konsep penulisan yang sama. Form diatas method default nya adalah
POST, untuk mengganti method menjadi GET, Lihat syntax code dibawah ini.
Form::open(array('url' => 'user', 'method' => 'GET'))

Tidak hanya POST dan GET yang bisa kita gunakan, selain itu juga seperti PUT dan
DELETE pun juga bisa.

Untuk fungsi upload file biasanya menggunakan enctype='multipart/form-data' di form


laravel kita bisa menggunakan 'files' => true , dengan syntax code seperti ini:
Form::open(array('url' => 'profile', 'files' => true))

Label
Dalam membuat label dengan form bawaan laravel, syntax codenya seperti dibawah ini.
Form::label('nama', 'Nama')

Text, Text Area Password, Hidden Field dan Button.


Syntax code umum yang digunakan untuk membuat form input text, textarea, password
dan hidden file, biasa seperti ini.
< input name="username" type="text">
< textarea name="alamat" cols="50" rows="10"> < /textarea>
< input name="password" type="password" >
< input name="id" type="hidden">
< input type="submit" value="Submit">

Di Framework Laravel penulisannya seperti dibawah ini.


Form::text('username')
Form::textarea('alamat')
Form::password('password')
Form::hidden('id')
Form::submit('Submit')

Untuk memberi nilai default digunakan syntax code:


Form::text('nama', 'SeputarPemrograman')

56
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

Checkbox dan Radio


Biasanya untuk me Checkbox dan Radio seperti ini.
< input name="nama" type="checkbox" value="ProjectLaravel">
< input name="nama" type="radio" value=" ProjectLaravel ">

Jika menggunakan Form bawaan Laravel maka menjadi seperti ini.


{{Form::checkbox('nama', ' SeputarPemrograman ')}}
{{Form::radio('nama', ' SeputarPemrograman ')}}

Agar secara default tercentang atau Checked dapat menggunakan true seperti ini.
Form::checkbox('nama', ' SeputarPemrograman ', true);
Form::radio('nama', ' SeputarPemrograman ', true);

File Input
Digunakan syntax code berikut:
Form::file('image')

Drop-Down List
Jika biasanya anda membuat dropd-down list dengan syntax code berikut:
< select name="jeniskelamin">
< option value="L">Laki - Laki< /option>
< option value="P">Perempuan< /option>
< /select>

Dengan menggunakan Form bawaan laravel akan menjadi lebih ringkas:


Form::select('jeniskelamin', array('L' => 'Laki - Laki', 'P'
=> 'Perempuan'))

Untuk membuat list terseleksi secara default dapat digunakan:


Form::select('jeniskelamin', array('L' => 'Laki - Laki', 'P'
=> 'Perempuan'), 'L')

Itu adalah dasar – dasar form dari fungsi bawaan framework laravel, masih sangat
banyak fungsi lainnya, silahkan langsung kunjungi website laravel.com

MEMBUAT FORM SEDERHANA


Percobaan diatas telah menjelaskan dasar – dasar dari penggunaan form laravel.
Selanjutnya kita akan membuat form laravel seperti gambar dibawah ini.

57
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

Pertama buat dahulu file didalam folder views bernama formsederhana.blade.php dan
isikan dengan syntax code berikut ini.
@extends('layouts.master')
@section('content')
< div class="row">
< div class="col-lg-12">
< h1 class="page-header">
Halaman
Form Sederhana
< /h1>
{{ Form::open(array('url' => 'formsederhana')) }}
< div class="form-group">
{{ Form::label('nama', 'Nama') }}
{{ Form::text('nama',
null, array('class' => 'form-control','placeholder'=>'masukkan
nama')) }}
< /div>
< div class="form-group">
{{ Form::label('jeniskelamin', 'Jenis
Kelamin') }}
{{ Form::select('jeniskelamin', array('L' => 'Laki
- Laki', 'P' => 'Perempuan'), null, array('class' => 'form-
control','placeholder'=>'Pili Jenis Kelamin')) }}
< /div>
< div class="form-group">
{{ Form::label('alamat', 'Alamat') }}
{{ Form::textarea('alamat', null, array('class'
=> 'form-control','placeholder'=>'masukkan alamat')) }}
< /div>
{{ Form::submit('Kirim', array('class' => 'form-
control')) }}
{{ Form::close() }}
< /div>
< /div>
@stop

// Hilangkan spasi antara < dan div, /div, h1, /h1

Setelah itu buka controller ProfileController.php dan tambahkan syntax code/ fungsi
berikut ini, dibawah fungsi profile.
public function formsederhana()
{
return View::make('formsederhana');
}
public function postformsederhana()
{
$nama = Input::get('nama');
$jeniskelamin = Input::get('jeniskelamin');
$alamat = Input::get('alamat');
return 'Nama : '.$nama.'< br/> Jenis Kelamin :
'.$jeniskelamin.'< br/> Alamat '.$alamat;
}

// Hilangkan spasi antara < dan br/

Selanjutnya buka routes.php dan tambahkan syntax code dibawah ini.


Route::get('formsederhana', 'ProfileController@formsederhana');
Route::post('formsederhana', 'ProfileController@postformsederhana');

Dan yang terakhir buka file sidebar.blade.php dan tambahkan syntax code ini.
< li>
< a href="{{ URL::to('formsederhana') }}">
< i class="fa fa-fw fa-edit">< /i> Form Sederhana< /a>
< /li>
// Hilangkan spasi antara < dan li, /li, a, /a, i, i/

Dibawah syntax code berikut:


< li>

58
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

< a href="{{ URL::to('profile/Andri') }}">< i class="fa fa-fw fa-user">


< /i> Profile< /a>
< /li>

// Hilangkan spasi antara < dan li, /li, a, /a, i, i/

Maka di sidebar akan muncul menu baru seperti gambar berikut.

LATIHAN
Kerjakan ulang seluruh percobaan pada modul ini, dengan parameter yang berbeda!
(penentuan parameter latihan ditentukan oleh asisten lab.)

59
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

MODUL 10
MENGGUNAKAN MIGRATIONS DAN SCHEMA
BUILDER PADA LARAVEL
A. Tujuan:
1. Memahami konsep migration dan schema builder pada laravel.
2. Mampu menerapkan konsep migration dan schema builder pada laravel.

B. Dasar Teori
Migrations (migrasi) adalah sebuah fasilitas di laravel yang digunakan untuk
mempermudah dalam melakukan perubahan database. Schema Builder digunakan untuk
membuat sebuah skema database. Dengan menggunakan migrations dan schema builder
kita tidak direpotkanuntuk membuka phpmyadmin, sqlyog, ataupun aplikasi lain untuk
membuat database. Dengan menerapkan konsep migrations dan schema builder akan
sangat mempermudah dalam pembuatan project dengan skala besar yang melibatkan
banyak developer.

PERINTAH DASAR MIGRATIONS (MIGRASI)


Creating Migrations (Membuat Migrasi)
Untuk migrasi kita bisa menggunakan migrate:make.
Untuk membuat mrigrasi baru kita dapat menggunakan peritah dibawah ini.
php artisan migrate:make create_users_table

Perintah diatas akan membuat file didalam folder php app/database/migrations. Nanti
di file itulah kita bisa membuat schema databasenya.
create_users_table dapat diganti sesuai dengan kebutuhan.

Running Migrations (Menjalankan Migrasi)


Untuk menjalankan atau memigrasi schema yang telah dibuat sebelumnya dapat
digunakan perintah dibawah ini.
php artisan migrate

Perintah diatas digunakan untuk menjalankan semua migrasi yang ada.


Jika hanya ingin menjalankan path atau vendor tertentu bisa menggunakan perintah ini.
php artisan migrate --path=app/foo/migrations

php artisan migrate --package=vendor/package

Rolling Back Migrations


Untuk merollback database yang telah dibuat sebelumnya dengan perintah berikut ini.
php artisan migrate:rollback

Perintah diatas hanya merollback data terakhir saja jika ingin merollback keseluruhan dapat
menggunakan perintah berikut ini.
php artisan migrate:reset

60
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

SCHEMA BUILDER (SKEMA BUILDER)


Builder digunakan untuk membuat skema database yang berupa table dan field.

Creating & Dropping Tables (Membuat dan Menghapus tabel)


Berikut ini adalah perintah dasar untuk membuat tabel.
Schema::create('profiles', function($table)
{
});

Untuk rename tabel bisa menggunakan perintah berikut.


Schema::rename($from, $to);

Jika memiliki lebih dari satu koneksi database dapat menggunakan perintah ini dan dipilih
menurut koneksi yang diinginkan.
Schema::connection('koneksi1')->create(' profiles ', function($table)
{
});

Untuk menghapus tabel yang telah dibuat bisa menggunakan perintah dibawah ini.
Schema::drop(' profiles ');
atau
Schema::dropIfExists(' profiles ');

Adding, Renaming & Dropping Columns (Menambah, Mengubah & Mengahpus


Kolom)
Adakalanya ketika membuat program diharuskan menambahkan kolom pada suatu tabel,
didalam skema builder ini bisa menggunakan perintah berikut:
Schema::table('profiles', function($table)
{
$table->string('notlep');
});

Untuk mengubah kolom bisa menggunakan perintah renameColumn seperti dibawah ini.
Schema::table('profiles', function($table)
{
$table->renameColumn('from', 'to');
});

Sedangkan untuk menghapus kolom bisa menggunakan perintah berikut ini.


Schema::table('profiles', function($table)
{
$table->dropColumn('notlep');
});

Untuk menghapus kolom lebih dari satu, digunakan:


$table->dropColumn('notlep');

Menjadi:
$table->dropColumn(array('notlep', 'email'));

Adding Indexes & Foreign Keys


Menambahkan index pada tabel tertentu dan kolom tertentu bisa menggunakan perintah
dibawah ini.
$table->string('email')->unique();

Sedangkan untuk menambahkan foreign key digunakan perintah berikut:


$table->integer('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users');

61
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

MENERAPKAN MIGRATION (MIGRASI) DAN SCHEMA BUILDER (SKEMA


BUILDER)
Setelah memahami dasar dasar dari migrasi dan skema builder, saatnya untuk mencoba
secara langsung agar kita lebih tahu cara penggunaannya dari fungsi yang dijelaskan
diatas.

Kita buka dahulu project laravel yang telah dibuat di modul sebelumnya, dan buat
database bernama belajarlaravel. Buka folder app/config dan cari file bernama
database.php. silahkan cari code seperti dibawah ini.
'mysql' => array(
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'database',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),

Ubah menjadi:
'mysql' => array(
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'belajarlaravel', // nama database yang telah
dibuat
'username' => 'root', // user
'password' => '', //password untuk xampp default kosong.
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),

Selanjutnya ketikan perintah ini ke command prompt / cmd


php artisan migrate:make create_profiles_table

lebih jelasnya lihat gambar dibawah ini.

cd \xampp\htdocs\projectlaravel, digunakan untuk mengalihkan ke folder projectlaravel


php artisan migrate:make create_profiles_table, digunakan untuk perintah membuat
migrasi.

62
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

Jika sudah berhasil seperti gambar diatas lihat di folder projectlaravel di folder
app/database/migrations dan akan terdapat file seperti ini:
2014_09_25_145940_create_profiles_table.php

dan berisi seperti ini:


< ?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateProfilesTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
//
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
}

Selanjutnya didalam syntax code diatas ubah menjadi seperti dibawah ini.
< ?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateProfilesTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('profiles', function($table)
{
$table->increments('id');
$table->string('nama')->length(100);
$table->enum('jeniskelamin', array('L', 'P'));
$table->string('alamat')->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('profiles');
}
}

Kemudian jalankan perintah berikut ini di command prompt / cmd.


php artisan migrate

63
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

Lebih jelasnya lihat gambar dibawah ini.

Selanjutnya kemudian cek apakah tabel profiles yang telah dibuat masuk ke dalam
database belajarlaravel seperti ini.

LATIHAN
Kerjakan ulang seluruh percobaan pada modul ini, dengan parameter yang berbeda!
(penentuan parameter latihan ditentukan oleh asisten lab.)

64
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

MODUL 10
MEMBANGUN CREATE, READ, UPDATE DAN
DELETE MENGGUNAKAN QUERY BUILDER DI
LARAVEL
A. Tujuan:
1. Memahami konsep dasar C.R.U.D pada laravel.
2. Mampu melakukan operasi dasar C.R.U.D menggunakan query builder pada laravel

B. Dasar Teori
Create, read, update dan delete biasanya disingkat CRUD. Operasi CRUD ini digunakan
untuk membuat, membaca, mengubah dan menghapus data dalam database. Operasi
CRUD adalah operasi umum untuk mengolah data.

Apa itu query builder, jika pernah mempelajari framework codeigniter pasti sudah tidak
asing lagi, di framework codeigniter biasa disebut active record. Sedangkan di
framework laravel disebut sebagai query builder. Dengan query builder syntax code
yang dibuat akan ringkas sehingga memudahkan dalam hal penulisan. Disamping itu
ketika akan migrasi ke database lain kita tidak perlu mengubah query. Query builder
sama dengan sql / query yang biasa digunakan, contoh select * from tabel; Tetapi, di
query builder lebih dipersingkat lagi dan dibuat agar support dengan beberapa database.

Pada modul ini akan membuat operasi crud sederhana seperti tampilan gambar dibawah
ini

Dengan menggunakan phpMyAdmin Buatlah struktur table dengan nama database


berikut ini:
Nama Database : belajarlaravel
Nama Tabel : profiles

Struktur tabel silahkan dilihat gambar dibawah:

65
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

Dengan syntax code berikut:


CREATE TABLE IF NOT EXISTS `profiles` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`nama` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
`jeniskelamin` enum('L','P') COLLATE utf8_unicode_ci NOT NULL,
`alamat` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
AUTO_INCREMENT=4 ;

Jika telah selesai membuat database diatas, lakukan konfigurasi database.php didalam
folder app/config.
'mysql' => array(
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'belajarlaravel',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),

Kemudian dilanjutkan dengan membuat controller terlebih dahulu bernama


CrudController.php

Letakkan dalam folder app/controllers. Kemudian isi dengan syntax code dibawah ini.
< ?php
class CrudController extends \BaseController {
public function index()
{
$profiles = DB::table('profiles')->paginate(5);
$profiles =
[
'profiles' => $profiles
];
return View::make('crud.index', $profiles);
}
}

Selanjutnya buat folder bernama crud didalam folder app/views. Setelah itu di dalam
folder crud buat file bernama index.blade.php dan isikan dengan syntax code dibawah ini.
@extends('layouts.master')
@section('content')
< div class="row">
< div class="col-lg-12">
< h1 class="page-header">
Halaman
< small>Daftar Profile< /small>
< /h1>
@if (Session::has('message'))
{{ Session::get('message') }}
@endif
< p>< a href="{{ URL::to('crud/create') }}" class="btn btn-
primary" role="button">Tambah Profile Baru< /a>< /p>
< div class="table-responsive">
< table class="table table-bordered table-hover">
< thead>
< tr>
< th>ID< /th>
< th>Nama< /th>
< th>Jenis Kelamin< /th>
< th width="146">Aksi< /th>
< /tr>
< /thead>

66
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

< tbody>
@foreach($profiles as $value)
< tr>
< td>{{{ $value->id }}}< /td>
< td>{{{ $value->nama }}}< /td>
< td>{{{ $value->jeniskelamin
== 'L' ? 'Laki - laki' : 'Perempuan' }}}< /td>
< td>
< div class="btn-group">
< a href="{{ URL::to('crud/edit/'.$value->id)
}}" class="btn btn-primary">Ubah< /a>
< a href="{{ URL::to('crud/destroy/'.$value-
>id) }}" class="btn btn-primary">Hapus< /a>
< /div>
< /td>
< /tr>
@endforeach
< /tbody>
< /table>
< /div>
{{$profiles->links()}}
< /div>
< /div>
@stop

// agar berjalan dengan baik hilangkan spasi sesudah tandan <

Selanjutnya buka file routes.php didalam folder app tambahkan syntax code dibawah ini.
Route::get('crud', 'CrudController@index');

Untuk menjalankan hasil syntax code diatas ketikan url seperti ini.
http://localhost/projectlaravel/public/crud

(sebelumnya isikan terlebih dahulu data ke dalam table secara manual di phpmyadmin,
diisikan isian data bebas.)

maka akan tampil halaman seperti gambar dibawah ini.

Gambar diatas adalah ketika berhasil menampilkan data dari database.

Selanjutnya kita akan membuat form tambah data profile. Tambahkan syntax code berikut ini
di contoller bernama CrudController.php dibawah function index.
public function create()
{
return View::make('crud.create');
}
public function store()
{
$rules = array(
'nama' => 'required',
'jeniskelamin' => 'required',
);
$validator = Validator::make(Input::all(), $rules);
if ($validator->fails()) {
return Redirect::to('crud/create')->withErrors($validator)-
>withInput();
} else {
DB::table('profiles')->insert(
array(

67
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

'nama' => Input::get('nama'),


'jeniskelamin' => Input::get('jeniskelamin'),
'alamat' => Input::get('alamat')
)
);
Session::flash('message', 'Data Berhasil Ditambahkan');
return Redirect::to('crud');
}
}

Kemudian buat file bernama create.blade.php didalam folder crud yang sebelumnya sudah
dibuat dan isikan syntax code dibawah ini.
@extends('layouts.master')
@section('content')
< div class="row">
< div class="col-lg-12">
< h1 class="page-header">
Halaman
< small>Tambah Profile< /small>
< /h1>
{{ Form::open(array('url' => 'crud/create')) }}
< div class="form-group">
{{ Form::label('nama', 'Nama') }}
{{ Form::text('nama', null, array('class' => 'form-
control','placeholder'=>'masukkan nama')) }}
{{ '< div>'.$errors->first('nama').'< /div>' }}
< /div>
< div class="form-group">
{{ Form::label('jeniskelamin', 'Jenis Kelamin') }}
{{ Form::select('jeniskelamin', array('L' => 'Laki
- Laki', 'P' => 'Perempuan'), null, array('class' => 'form-
control','placeholder'=>'Pili Jenis Kelamin')) }}
{{ '< div>'.$errors->first('jeniskelamin').'<
/div>' }}
< /div>
< div class="form-group">
{{ Form::label('alamat', 'Alamat') }}
{{ Form::textarea('alamat', null, array('class'
=> 'form-control','placeholder'=>'masukkan alamat')) }}
< /div>
{{ Form::submit('SIMPAN', array('class' => 'form-
control')) }}
{{ Form::close() }}
< /div>
< /div>
@stop

// agar berjalan dengan baik hilangkan spasi sesudah tandan <

Kemudian di routes.php tambahkan syntax code dibawah ini.


Route::get('crud/create','CrudController@create');
Route::post('crud/create','CrudController@store');

Selanjutnya jalankan dengan menekan tombol tambah profile baru atau ketikan url berikut:
http://localhost/projectlaravel/public/crud/create

68
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

Sehingga menampilkan form sebagai berikut ini.

Silahkan dicoba input data dan lihat hasilnya.

Setelah membuat tambah data kita akan membuat update atau ubah data. Untuk itu
tambahkan syntax code dibawah ini didalam controller CrudController.php dibawah
function store.
public function edit($id)
{
$profilesbyid = DB::table('profiles')->where('id',$id)-
>first();
$profilesbyid =
[
'profilesbyid' => $profilesbyid
];
return View::make('crud.edit', $profilesbyid);
}
public function update($id)
{
$rules = array(
'nama' => 'required',
'jeniskelamin' => 'required',
);
$validator = Validator::make(Input::all(), $rules);
if ($validator->fails()) {
echo "string";
return Redirect::to('crud/edit/'.$id)-
>withErrors($validator)->withInput();
} else {
DB::table('profiles')
->where('id', $id)
->update(array(
'nama' => Input::get('nama'),
'jeniskelamin' => Input::get('jeniskelamin'),
'alamat' => Input::get('alamat')
));
Session::flash('message', 'Data Berhasil Diubah');
return Redirect::to('crud');
}
}

Kemudian dibuat file bernama edit.blade.php didalam folder crud dan isikan syntax code
dibawah ini.
@extends('layouts.master')
@section('content')
< div class="row">
< div class="col-lg-12">
< h1 class="page-header">
Halaman
< small>Ubah Profile< /small>
< /h1>
{{ Form::model($profilesbyid, array('route'
=> array('crud.update', $profilesbyid->id))) }}
< div class="form-group">
69
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

{{ Form::label('nama', 'Nama') }}
{{ Form::text('nama', null, array('class' => 'form-
control','placeholder'=>'masukkan nama')) }}
{{ '< div>'.$errors->first('nama').'< /div>' }}
< /div>
< div class="form-group">
{{ Form::label('jeniskelamin', 'Jenis Kelamin') }}
{{ Form::select('jeniskelamin', array('L' => 'Laki -
Laki', 'P' => 'Perempuan'), null, array('class' => 'form-
control','placeholder'=>'Pili Jenis Kelamin')) }}
{{ '< div>'.$errors->first('jeniskelamin').'< /div>' }}
< /div>
< div class="form-group">
{{ Form::label('alamat', 'Alamat') }}
{{ Form::textarea('alamat', null, array('class'
=> 'form-control','placeholder'=>'masukkan alamat')) }}
< /div>
{{ Form::submit('SIMPAN', array('class' => 'form-control'))
}}
{{ Form::close() }}
< /div>
< /div>
@stop

// agar berjalan dengan baik hilangkan spasi sesudah tandan <

Tambahkan juga syntax code dibawah ini didalam routes.php


Route::get('crud/edit/{id}', 'CrudController@edit');
Route::post('crud/update/{id}', array('as' => 'crud.update', 'uses'
=> 'CrudController@update'));

Sekarang coba jalankan untuk mengubah data dengan menekan tombol ubah maka akan
tampil form seperti gambar ini.

Ubah data apapun dan klik tombol simpan dan amati apa yang terjadi.

70
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

Yang terakhir adalah membuat fungsi untuk menghapus data, tambahkan syntax code berikut
di controller CrudController.php dibawah function update.
public function destroy($id)
{
DB::table('profiles')->where('id', '=', $id)->delete();
Session::flash('message', 'Data Berhasil Dihapus');
return Redirect::to('crud');
}

Dan di dalam routes.php tambahkan juga syntax code dibawah ini.


Route::get('crud/destroy/{id}','CrudController@destroy');

Selanjutnya klik menu hapus untuk menghapus data, dan amati apa yang terjadi.

LATIHAN
Kerjakan ulang seluruh percobaan pada modul ini, dengan parameter yang berbeda!
(penentuan parameter latihan ditentukan oleh asisten lab.)

71
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

MODUL 11
C. R. U. D. MENGGUNAKAN ELOQUENT ORM DAN
RESTFUL RESOURCE CONTROLLERS LARAVEL

A. Tujuan:
1. Memahami konsep dasar C.R.U.D dalam Eloquent dan RESTfull laravel.
2. Mampu menerapkan konsep eloquent ORM dan RESTfull pada laravel

B. Dasar Teori
Pada modul ini akan sedikit dibahas lagi apa itu CRUD. Create, read, update dan delete
biasanya disingkat CRUD. Operasi CRUD digunakan untuk membuat, membaca,
mengubah dan menghapus data dalam database. Untuk CRUD pada modul ini kita akan
memanfaatkan Eloquent ORM dan RESTful Resource Controllers. Eloquent ORM
adalah ORM (Object Relational Mapping) yang dibundling bersama Laravel Framework.
Dengan ORM kita akan lebih mudah dalam membuat proses CRUD. Sedangkan
RESTful Resource Controllers adalah untuk mempermudah dalam membuat RESTful
controllers. RESTful resource adalah semua hal yang bisa diakses dan ditransfer melalui
web antara client dan server.

Contohnya saja pada aplikasi facebook atau google plus. Untuk login pada suatu website
tertentu dapat digunakan data pihak ketiga yaitu facebook dan google plus.

Sebelum melanjutkan membuat CRUD dengan Eloquent ORM dan RESTful Resource
Controllers, buat database terlebih dahulu sesuai modul sebelumnya:
Nama Database : belajarlaravel
Nama Tabel : profiles

Lakukan konfigurasi pada file database.php didalam folder app/config. Untuk isinya disesuaikan
dengan pengaturan pada modul sebelumnya.

Kemudian buka project yang telah diinstall, selanjutnya buat file bernama IvudController.php
didalam folder app/controllers.

Cara yang lebih cepat dapat menggunakan peritah berikut ini pada artisan.
php artisan controller:make IvudController

72
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

Lebih jelasnya lihat gambar dibawah ini.

cd \xampp\htdocs\projectlaravel , digunakan untuk mengarahkan ke dalam folder project kita.


php artisan controller:make IvudController , perintah untuk membuat file controller tanpa
membuat secara manual dan langsung terisi perintah dasar.
Jika menggunakan ini dan berhasil menjalankan perintah diatas langsung lihat
folder app/controllers maka disitu akan ada file baru.

Apabila dibuat secara manual file controller IvudController.php nya, dengan menggunakan
controller:make isikan dengan syntax code berikut:
< ?php
class IvudController extends \BaseController {
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*
* @return Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @return Response
*/
public function store()
{
//
}
/**
* Display the specified resource.
*
* @param int $id
* @return Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param int $id
* @return Response
73
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

*/
public function update($id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return Response
*/
public function destroy($id)
{
//
}
}

// agar program berjalan lancar hapus spasi setelah tanda <

Masih dalam file IvudController.php , ganti function index diatas menjadi seperti dibawah
ini.
public function index()
{
$profiles = Profile::paginate(5);
$profiles =
[
'profiles' => $profiles
];
return View::make('ivud.index', $profiles);
}

Kemudian buat file bernama Profile.php didalam folder app/models dan isikan dengan
syntax code dibawah ini.
< ?php class Profile extends Eloquent {
}

// agar program berjalan lancar hapus spasi setelah tanda <

Langkah selanjutnya adalah membuat folder bernama ivud didalam folder app/views.
Setelah itu di dalam folder ivud buat file bernama index.blade.php dan isikan dengan syntax
code dibawah ini.
@extends('layouts.master')
@section('content')
< div class="row">
< div class="col-lg-12">
< h1 class="page-header">
Halaman
< small>Daftar Profile< /small>
< /h1>
@if (Session::has('message'))
{{ Session::get('message') }}
@endif
< p>< a href="{{ URL::to('ivud/create') }}" class="btn btn-
primary" role="button">Tambah Profile Baru< /a>< /p>
< div class="table-responsive">
< table class="table table-bordered
table-hover">
< thead>
< tr>
< th>ID< /th>
< th>Nama< /th>
< th>Jenis Kelamin< /th>
< th width="146">Aksi< /th>
< /tr>
< /thead>
< tbody>
@foreach($profiles as $value)
< tr>
< td>{{{ $value->id }}}< /td>
< td>{{{ $value->nama }}}<
/td>
74
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

< td>{{{ $value->jeniskelamin


== 'L' ? 'Laki - laki' : 'Perempuan' }}}< /td>
< td>
{{ Form::open(array('url'
=> 'ivud/' . $value->id)) }}
< div class="btn-group">
< a href="{{
URL::to('ivud/' . $value->id . '/edit') }}" class="btn btn-
primary">Ubah< /a>
{{
Form::hidden('_method', 'DELETE') }}
{{Form::button('Hapus', a
rray('type' => 'submit', 'class' => 'btn btn-primary'))}}
< /div>
{{ Form::close() }}
< /td>
< /tr>
@endforeach
< /tbody>
< /table>
< /div>
{{$profiles->links()}}

< /div>
< /div>
@stop

// agar program berjalan lancar hapus spasi setelah tanda <

Selanjutnya buka file routes.php pada folder app dan tambahkan syntax code dibawah ini.
Route::resource('ivud', 'IvudController');

Dengan syntax code route diatas kita tidak perlu membuat route masing-masing, cukup satu
baris sudah mewakili satu CRUD.

Route tersebut dijalankan dengan mengetikkan url:


http://localhost/projectlaravel/public/ivud

Hasilnya pun sama seperti pada modul sebelumnya.

Selanjutnya ganti syntax code function create dan store di dalam file IvudController.php
menjadi seperti berikut:
public function create()
{
return View::make('ivud.create');
}
public function store()
{
$rules = array(
'nama' => 'required',
'jeniskelamin' => 'required',
);
$validator = Validator::make(Input::all(), $rules);
if ($validator->fails()) {
return Redirect::to('ivud/create')-
>withErrors($validator)->withInput();
} else {
$profile = new Profile;
$profile->nama = Input::get('nama');

75
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

$profile->jeniskelamin = Input::get('jeniskelamin');
$profile->alamat = Input::get('alamat');
$profile->save();
Session::flash('message', 'Data Berhasil Ditambahkan');
return Redirect::to('ivud');
}
}

Kemudian buat file didalam folder app/views bernama create.blade.php dan isikan
syntax code dibawah ini.
@extends('layouts.master')
@section('content')
< div class="row">
< div class="col-lg-12">
< h1 class="page-header">
Halaman
< small>Tambah Profile< /small>
< /h1>
{{ Form::open(array('url' => 'ivud')) }}
< div class="form-group">
{{ Form::label('nama', 'Nama') }}
{{ Form::text('nama', null, array('class' => 'form-
control','placeholder'=>'masukkan nama')) }}
{{ '< div>'.$errors->first('nama').'< /div>' }}
< /div>
< div class="form-group">
{{ Form::label('jeniskelamin', 'Jenis Kelamin') }}
{{ Form::select('jeniskelamin', array('L' => 'Laki -
Laki', 'P' => 'Perempuan'), null, array('class' => 'form-
control','placeholder'=>'Pili Jenis Kelamin')) }}
{{ '< div>'.$errors->first('jeniskelamin').'< /div>'
}}
< /div>
< div class="form-group">
{{ Form::label('alamat', 'Alamat') }}
{{ Form::textarea('alamat', null, array('class'
=> 'form-control','placeholder'=>'masukkan alamat')) }}
< /div>
{{ Form::submit('SIMPAN', array('class' => 'form-
control')) }}
{{ Form::close() }}
< /div>
< /div>
@stop

// agar program berjalan lancar hapus spasi setelah tanda <

Untuk menjalankannya coba ketikan url:


http://localhost/projectlaravel/public/ivud/create

76
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

Hasilnya akan seperti gambar dibawah ini.

Isikan data lalu klik tombol simpan dan amati apa yang terjadi.

Selanjutnya silahkan ganti syntax code function edit dan update pada file
IvudController.php seperti dibawah ini.
public function edit($id)
{
$profilesbyid = Profile::findOrFail($id);
$profilesbyid =
[
'profilesbyid' => $profilesbyid
];
return View::make('ivud.edit', $profilesbyid);
}
public function update($id)
{
$rules = array(
'nama' => 'required',
'jeniskelamin' => 'required',
);
$validator = Validator::make(Input::all(), $rules);

if ($validator->fails()) {
return Redirect::to('ivud/'.$id.'/edit')-
>withErrors($validator)->withInput();
} else {
$profile = Profile::findOrFail($id);
$profile->nama = Input::get('nama');
$profile->jeniskelamin = Input::get('jeniskelamin');
$profile->alamat = Input::get('alamat');
$profile->save();
Session::flash('message', 'Data Berhasil Diubah');
return Redirect::to('ivud');
}
}

Kemudian buat file bernama edit.blade.php didalam folder app/views/ivud dan isikan
dengan syntax code dibawah ini.
@extends('layouts.master')
@section('content')
< div class="row">
< div class="col-lg-12">
< h1 class="page-header">
Halaman
< small>Ubah Profile< /small>
< /h1>
{{ Form::model($profilesbyid, array('route'
=> array('ivud.update', $profilesbyid->id),'method' => 'PUT')) }}
< div class="form-group">
{{ Form::label('nama', 'Nama') }}
{{ Form::text('nama', null, array('class' => 'form-
control','placeholder'=>'masukkan nama')) }}
{{ '< div>'.$errors->first('nama').'< /div>' }}
< /div>
< div class="form-group">
77
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

{{ Form::label('jeniskelamin', 'Jenis Kelamin') }}


{{ Form::select('jeniskelamin', array('L' => 'Laki -
Laki', 'P' => 'Perempuan'), null, array('class' => 'form-
control','placeholder'=>'Pili Jenis Kelamin')) }}
{{ '< div>'.$errors->first('jeniskelamin').'< /div>'
}}
< /div>
< div class="form-group">
{{ Form::label('alamat', 'Alamat') }}
{{ Form::textarea('alamat', null, array('class'
=> 'form-control','placeholder'=>'masukkan alamat')) }}
< /div>
{{ Form::submit('SIMPAN', array('class' => 'form-
control')) }}
{{ Form::close() }}
< /div>
< /div>
@stop

// agar program berjalan lancar hapus spasi setelah tanda <

Untuk coba menjalankannya silahkan ketik url berikut:


http://localhost/projectlaravel/public/ivud/1/edit

atau bisa klik tombol ubah maka hasilnya seperti gambar dibawah ini.

Selanjutnya membuat syntax code untuk delete data, syntax code function destroy dalam
file IvudController.php diganti menjadi seperti dibawah ini.
public function destroy($id)
{
$profile = Profile::findOrFail($id);
$profile->delete();
Session::flash('message', 'Data Berhasil Dihapus');
return Redirect::to('crud');
}

78
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

Terakhir tambahkan syntax code dibawah ini di folder app/views/includes lalu cari
file sidebar.blade.php

< li>
< a href="{{ URL::to('ivud') }}">< i class="fa fa-fw fa-edit">< /i>
CRUD Eloquent ORM< /a>
< /li>

// agar program berjalan lancar hapus spasi setelah tanda <

Jalankan Menu Hapus data, kemudian amati apa yang terjadi

LATIHAN
Kerjakan ulang seluruh percobaan pada modul ini, dengan parameter yang berbeda!
(penentuan parameter latihan ditentukan oleh asisten lab.)

79
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

MODUL 12
MEMBUAT AUTHENTICATION USER SEDERHANA
A. Tujuan:
1. Memahami konsep authentication pada laravel.
2. Mampu menerapkan authentication sederhana pada laravel

B. Dasar Teori
Authentication yang akan dibahas pada modul ini adalah auth basic atau dasar, dan bukan bukan
berbasis ACL (Access Control List) maupun RBAC (Role Based Access ControL). Di
Framework laravel telah disediakan komponen atau fungsi - fungsi yang kita perlukan untuk
membuat authentication. Sebelum membahasa lebih jauh tentang auth laravel, kita harus paham
apa itu auth. Auth dalam aplikasi adalah digunakan untuk membatasi user tertentu dalam
mengakses aplikasi atau program bahkan menu tertentu. Dalam membuat auth kita biasanya
memerlukan form login yang berisi inputan username atau email dan password. Sebelum belajar
membuat auth akan saya perkenalan dahulu fungsi – fungsi auth yang ada dilaravel.

FUNGSI DASAR AUTH


Password
Di laravel secara default password disimpan dengan metode hash menggunakan Bcrypt.
Berikut ini adalah code untuk membuat password menggunakan metode Ha sh
$password = Hash::make('secret');

Untuk mengecek password sama atau tidak anda bisa menggunakan code dibawah ini.
if (Hash::check('secret', isikanpasswordyangtelahdihash))
{
}

Untuk cek password rehashed gunakan syntax code:


if (Hash::needsRehash($hashed))
{

$hashed = Hash::make('secret');

Authenticating Users
Untuk masuk dalam aplikasi bisa digunakan syntax code dibawah ini.
if (Auth::attempt(array('email' => $email, 'password' => $password)))
{
return Redirect::intended('dashboard');
}

Sedangkan untuk mengecek apakah pengguna sudah benar – benar login dapat
menggunakan syntax code dibawah ini.
if (Auth::check())
{
}

Atribut remember me atau ingat saya, di laravel bisa menggunakan syntax code:
if (Auth::attempt(array('email' => $email, 'password' => $password), true))
{
}

80
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

Untuk mengecek apakah remember me atau ingat saya sudah bekerja apa belum bisa dicoba
dengan menuliskan syntax code dibawah ini.
if (Auth::viaRemember())
{
}

Untuk menampilkan status user, apakah aktif atau tidak bisa menggunakan syntax code dibawah
ini.
if (Auth::attempt(array('email' => $email, 'password' => $password, 'active'
=> 1)))
{
}

Untuk mengakses data user yang telah login bisa menggunakan seperti ini.
$email = Auth::user()->email;

Atau untuk id bisa seperti ini


$id = Auth::id();

Sedangkan untuk logout bisa menggunakan syntax code:


Auth::logout();

BELAJAR MEMBUAT AUTH SEDERHANA


Pada modul ini kita akan belajar membuat auth sederhana. Tampilannya seperti gambar
dibawah ini.

Langkah awal yaitu konfigurasi file database.php di dalam folder app/config. Buat database
dengan tabel bernama users. Disini kita akan memanfaatkan migration yang ada dilaravel dan
juga sudah kita bahas di modul sebelumnya.

Jalankan perintah ini didalam command prompt / cmd.


php artisan migrate:make create_users_table

Untuk lebih jelasnya lihat gambar dibawah ini.

81
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

Cd \xampp\htdocs\projectlaravel, digunakan untuk mengalihkan atau mengarahkan ke folder


projectlaravel
php artisan migrate:make create_users_table, digunakan untuk membuat migration

Jika sukses maka akan dengan sendirinya akan dibuatkan file


bernama tanggal_create_users_tabel.php didalam folder app/database/migrations.

Buka file tersebut dan isikan syntax code dibawah ini.


public function up()
{
Schema::create('users', function(Blueprint $table)
{
$table->increments('id');
$table->string('name', 50);
$table->string('username', 50);
$table->string('email', 300);
$table->string('password', 100);
$table->string('remember_token', 100)->nullable();
$table->timestamps();
});
}

public function down()


{
Schema::drop('users');
}

Jika selesai simpan dan di command prompt / cmd jalankan perintah ini.
php artisan migrate

Lebih jelasnya lihat gambar dibawah ini.

Disini kita juga memanfaatkan seeder laravel fungsinya untuk membuat / memasukan data,
dibuat untuk testing aplikasi atau web yang dibuat.

Buat file bernama UserTableSeeder.php didalam folder app/seeds dan isikan syntax code
dibawah ini.
< ?php
class UserTableSeeder extends Seeder
{
public function run()
{
DB::table('users')->delete();
User::create(array(
'name' => 'Andri Riantana',
'username' => 'seputarpemrograman',
'email' => 'seputarpemrograman@gmail.com',
'password' => Hash::make('qwerty'),
));
}
}

// Hilangkan spasi setelah tanda <

82
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

Kemudian buka file DatabaseSeeder.php yang berada di app/seeds ubah syntax codenya
menjadi seperti ini.
public function run()
{
Eloquent::unguard();
$this->call('UserTableSeeder');
}

Kemudian buka command prompt dan jalankan perintah berikut ini.


php artisan db:seed

Berikut gambar tampilannya.

Jika berhasil maka di database sudah terdapat tabel bernama users beserta isinya.

Atau, dapat juga membuat tabel secara manual dengan struktur tabel seperti dibawah ini.

Berikut adalah sql / query nya


CREATE TABLE IF NOT EXISTS `users` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
`username` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
`email` varchar(300) COLLATE utf8_unicode_ci NOT NULL,
`password` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
`remember_token` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
`created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
AUTO_INCREMENT=2 ;

INSERT INTO `users` (`id`, `name`, `username`, `email`, `password`,


`remember_token`, `created_at`, `updated_at`) VALUES
(1, 'Andri
Riantana', 'seputarpemrograman', 'seputarpemrograman@gmail.com', '$2y$10$5Xy
oNvbr2mS5I9yCxOpzSODirKC44HgT7xGcYJYCA5D3YT3KXsREu', 'Eq5sI4kijZlws93D5ItSha
ULr7tAyOeLxwlodALakiQiUQ2jFE16YL7EMYgq', '2014-10-03 11:34:32', '2014-10-03
11:56:17');

83
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

Selanjutnya buat file bernama UserController.php letakkan didalam


folder app/controllers dan isikan syntax code dibawah ini.
< ?php
class UserController extends \BaseController {
public function login()
{
return View::make('login');
}
public function doLogin()
{
$rules = array(
'email' => 'required|email',
'password' => 'required|alphaNum|min:5'
);
$validator = Validator::make(Input::all(), $rules);
if ($validator->fails()) {
return Redirect::to('login')
->withErrors($validator)
-
>withInput(Input::except('password'));
} else {
$userdata = array(
'email' => Input::get('email'),
'password' =>
Input::get('password')
);
if (Auth::attempt($userdata)) {
return Redirect::to('/');
} else {
return Redirect::to('login');
}
}
}
public function logout()
{
Auth::logout();
return Redirect::to('login');
}
}

//Hilangkan spasi setelah tanda <

Buat file lagi bernama login.blade.php letakkan di folder app/views dan isikan syntax code
berikut:
< !DOCTYPE html>
< html lang="en">
< head>
< title>Halaman Login< /title>
{{ HTML::style('assets/css/bootstrap.min.css') }}
{{ HTML::style('assets/css/sb-admin.css') }}
{{ HTML::style('assets/font-awesome-4.1.0/css/font-awesome.min.css') }}
< /head>
< body>
< div class="row">
< div class="col-lg-4 text-center">
< /div>
< div class="col-lg-4 text-center">
< div class="panel panel-default">
< div class="panel-body">
{{ Form::open(array('url' => 'login')) }}
< h1>Login< /h1>
< p>
{{ $errors->first('email') }}
{{ $errors->first('password') }}
< /p>
< p>
{{ Form::label('email', 'Email') }}
{{ Form::text('email',
Input::old('email'), array('class' => 'form-
control','placeholder'=>'Masukkan Email')) }}
< /p>
< p>
84
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

{{ Form::label('password', 'Password')
}}
{{
Form::password('password', array('class' => 'form-
control','placeholder'=>'Masukkan Password')) }}
< /p>
< p>{{ Form::submit('Login', array('class' => 'form-
control')) }}< /p>
{{ Form::close() }
< /div>
< /div>
< /div>
< div class="col-lg-4 text-center">
< /div>
< /div>
< /body>
< /html>

// Hilangkan spasi setelah tanda <

Selanjutnya buka file routes.php yang berada dalam folder app. Dan tambahkan syntax code
dibawah ini.
Route::group(array('before' => 'auth'), function()
{
Route::get('logout', array('uses' => 'UserController@logout'));

// Route yang ingin diproteksi taruh disini


});

Route::get('login', array('uses' => 'UserController@login'));


Route::post('login', array('uses' => 'UserController@doLogin'));

Syntax codedari modul sebelumnya:


Route::group(array('before' => 'auth'), function()
{
Route::get('/', 'ProfileController@index');
Route::get('profile/{nama}', 'ProfileController@profile');
Route::get('profile/{id}/{nama}', 'ProfileController@profileview');
Route::get('profile/{nama?}', function($nama = null)
{
return $nama;
});

Route::get('profile/{nama?}', function($nama = 'Andri')


{
return $nama;
});

Route::get('formsederhana', 'ProfileController@formsederhana');
Route::post('formsederhana', 'ProfileController@postformsederhana');
Route::get('crud', 'CrudController@index');
Route::get('crud/create','CrudController@create');
Route::post('crud/create','CrudController@store');
Route::get('crud/edit/{id}', 'CrudController@edit');
Route::post('crud/update/{id}', array('as' => 'crud.update', 'uses'
=> 'CrudController@update'));
Route::get('crud/destroy/{id}','CrudController@destroy');
Route::resource('ivud', 'IvudController');
Route::get('logout', array('uses' => 'UserController@logout'));
});

Route::get('login', array('uses' => 'UserController@login'));


Route::post('login', array('uses' => 'UserController@doLogin'));

85
Modul Praktikum Pemrograman Web |
Teknik Informatika |
Universitas Siliwangi |

Yang terakhir pastikan terdapat file bernama User.php didalam folder app/models.
Sekarang coba jalankan dengan mengetikan url seperti ini.
http://localhost/projectlaravel/public/login

Untuk username / email : projectLaravel@gmail.com


Password : qwerty

Kemudian tambahkan syntax code dibawah ini dalam file sidebar.blade.php dalam
folder app/views/includes.
< li>
< a href="{{ URL::to('logout') }}">< i class="fa fa-fw fa-power-off"><
/i> Logout< /a>
< /li>

// Hilangkan spasi setelah tanda <

Tampilan login seperti gambar dibawah ini.

LATIHAN
Kerjakan ulang seluruh percobaan pada modul ini, dengan parameter yang berbeda!
(penentuan parameter latihan ditentukan oleh asisten lab.)

86

Anda mungkin juga menyukai