Anda di halaman 1dari 21

TUTORIAL

LARAVEL

RIKI PANDIKA
XI RPL 2

PENGERTIAN
LARAVEL ADALAH FRAMEWORK PHP DENGAN KODE TERBUKA (OPEN
SOURCE) DENGAN DESAIN MVC (MODEL-VIEW-CONTROLLER) YANG
DIGUNAKAN UNTUK MEMBANGUN APLIKASI WEBSITE.FRAMEWORK
INI PERTAMA KALI DIBANGUN OLEH TAYLOR OTWELL PADA TANGGAL
22 PEBRUARI2012.
KONSEP MVC
MODEL-VIEW-CONTROLLER ATAU MVC ADALAH SEBUAH METODE
UNTUK MEMBUAT SEBUAH APLIKASI DENGAN MEMISAHKAN DATA
(MODEL) DARI TAMPILAN (VIEW) DAN CARA BAGAIMANA
MEMPROSESNYA (CONTROLLER).
1. MODEL, MODEL MEWAKILI STRUKTUR DATA. BIASANYA MODEL
BERISI FUNGSI-FUNGSI YANG MEMBANTU SESEORANG DALAM
PENGELOLAAN BASIS DATA SEPERTI MEMASUKKAN DATA KE BASIS
DATA, PEMBARUAN DATA DAN LAIN-LAIN.
2. VIEW, VIEW ADALAH BAGIAN YANG MENGATUR TAMPILAN KE
PENGGUNA. BISA DIKATAKAN BERUPA HALAMAN WEB.
3. CONTROLLER, CONTROLLER MERUPAKAN BAGIAN YANG
MENJEMBATANI MODEL DAN VIEW.

4. CONTROLLER BERISI PERINTAH-PERINTAH YANG BERFUNGSI UNTUK


MEMPROSES SUATU DATA DAN MENGIRIMKANNYA KE HALAMAN
WEB.

COMPOSER
COMPOSER ADALAH DEPENDENSI MANAJER APLIKASI LEVEL UNTUK
BAHASA PEMROGRAMAN PHP YANG MENYEDIAKAN FORMAT
STANDAR UNTUK MENGELOLA DEPENDENSI SOFTWARE PHP DAN
LIBRARY YANG DIPERLUKAN. COMPOSER INI DIKEMBANGKAN OLEH
NILS ADERMANN DAN JORDIBOGGIANO, RILIS PERTAMA KALI PADA
TANGGAL 1 MARET 2012. COMPOSER INI TERINSPIRASI DARI NPMNYA NODE.JS DAN BUNDLER-NYA RUBY. COMPOSER DIGUNAKAN
MELALUI PERINTAH COMMAND LINE.
INSTALL COMPOSER

LINUX DAN MAC OSX


$ CURL -SS HTTPS://GETCOMPOSER.ORG/INSTALLER | PHP
ATAU JIKA BELUM MEMPUNYAI PAKET CURL
$ PHP -R "READFILE('HTTPS://GETCOMPOSER.ORG/INSTALLER');" | PHP
AGAR DAPAT DIAKSES SECARA GLOBAL KETIK PERINTAH BERIKUT

$ MV COMPOSER.PHAR /USR/LOCAL/BIN/COMPOSER
WINDOWS
DOWNLOAD INSTALLER DARI HTTPS://GETCOMPOSER.ORG/COMPOSERSETUP.EXE DANLAKUKAN INSTALASI.

FITUR LARAVEL

BUNDLES, BUNDEL ATAU IKATAN MENYEDIAKAN SISTEM KEMASAN


MODULAR. DENGAN FITUR INI KITA DAPAT DENGAN MUDAH UNTUK
MELAKUKAN PENAMBAHAN PAKET APLIKASI KE DALAM PROJECT
KITA. LARAVEL VERSI 4.X MENGGUNAKAN COMPOSER SEBAGAI
MANAJER APLIKASI.

ELOQUENT ORM (OBJECT-RELATIONAL MAPPING), MERUPAKAN


IMPLEMENTASI PHP LANJUTAN DARI ACTIVE RECORD YANG
MENYEDIAKAN METODE TERSENDIRI DALAM MENGATUR
RELATIONSHIP ANTAR OBYEK DI DATABASE. LARAVEL QUERY
BUILDER ADALAH SALAH SATU FITUR YANG DISUPPORT ELOQUENT.

APPLICATION LOGIC, FITUR PENGEMBANGAN APLIKASI SECARA


UMUM, BAIK DENGAN CONTROLLER ATAU PENDEKLARASIAN ROUTE

REVERSE ROUTING, FITUR YANG MEMPU MENDEFINISIKAN


HUBUNGAN ANTARA LINK DAN ROUTE, SEHINGGA MEMUNGKINKAN
PERUBAHAN LINK DARI ROUTE ATAU TANPA MELAKUKAN
PENGUBAHAN DI VIEW. RESTFULL CONTROLLERS, MERUPAKAN CARA
OPSIONAL UNTUK MEMISAHKAN LOGIKA ANTARA HTTP GET DAN POST

CLASS AUTO LOADING, MENYEDIAKAN FITUR UNTUK LOAD PHP


CLASS TANPA PERLU MELAKUKAN INCLUDE, ON-DEMAND LOADING
HANYA AKAN ME-LOAD CLASS YANG DIPERLUKAN.

VIEW COMPOSERS, MERUPAKAN KODE LOGIC YANG DIEKSEKUSI


KETIKA VIEW DI-LOAD

IOC CONTAINER, MEMUNGKINKAN OBYEK BARU YANG AKAN


DIHASILKAN SESUAI PRINSIP KONTROL, DENGAN INSTANSIASI
OPSIONAL DAN REFERENSI DARI OBYEK BARU.

MIGRATIONS, MENYEDIAKAN SISTEM KONTROL UNTUK SKEMA


DATABASE, SEHINGGA MEMUNGKINKAN UNTUK MENGHUBUNGKAN

ANTARA PERUBAHAN KODE APLIKASI DENGAN LAYOUT DATABASE,


MEMUDAHKAN DEPLOY DAN UPDATE APLIKASI.

UNIT TESTING, MENYEDIAKAN FITUR TESTING UNTUK MENDETEKSI


ATAU MENCEGAH KODE GANDA ATAU BERULANG (REGRESI), UNIT
TEST INI DAPAT DIJALANKAN MELALUI PERINTAH COMMAND LINE.

AUTOMATIC PAGINATION, FITUR YANG MEMUNGKINKAN


PEMBUATAN HALAMAN/PAGING SECARA OTOMATIS DENGAN METODE
YANG SUDAH DIINTEGRASIKAN KE LARAVEL.

DASAR DASAR FORM LARAVEL


1. 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 sebelumnya juga sudah belajar tentang blade, dengan code form seperti diatas
akan pasti lebih enak. Form diatas method default nya adalah POST, bagaimana kalau
mau mengganti method menjadi GET, Lihat code dibawah ini.

Form::open(array('url' => 'user', 'method' => 'GET'))

Tidak hanya POST dan GET yang bisa kita gunakan untuk selain itu
seperti PUT dan DELETEpun juga bisa.
Untuk agar bisa digunakan upload file kita biasanya
menggunakan enctype='multipart/form-data' di form laravel kita bisa
menggunakan 'files' => true code seperti ini.

Form::open(array('url' => 'profile', 'files' => true))

2. Label
Dalam membuat label dengan form bawaan laravel code seperti dibawah ini.

Form::label('nama', 'Nama')

3. Text, Text Area Password, Hidden Field dan Button.

Jika kita biasanya untuk membuat form input text, textarea, password dan hidden file
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 anda bisa menuliskan seperti dibawah ini.

Form::text('username')

Form::textarea('alamat')

Form::password('password')

Form::hidden('id')

Form::submit('Submit')

Untuk memberi nilai default contohnya seperti ini.

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

4. Checkbox dan Radio


Biasanya untuk buat Checkbox dan Radio seperti ini.

< input name="nama" type="checkbox" value="SeputarPemrograman">

< input name="nama" type="radio" value=" SeputarPemrograman ">

Jika menggunakan Form bawaan Laravel maka menjadi seperti ini.

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

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

Agar secara default tercentang atau Checked anda dapat menggunakan true seperti
ini.

Form::checkbox('nama', ' SeputarPemrograman ', true);


Form::radio('nama', ' SeputarPemrograman ', true);

5. File Input
Anda dapat menggunakan seperti dibawah ini.

Form::file('image')

6. Drop-Down List
Jika biasanya anda membuat dropd-down list dengan code sepanjang ini.

< select name="jeniskelamin">


< option value="L">Laki - Laki< /option>
< option value="P">Perempuan< /option>
< /select>

Dengan menggunakan Form bawaan laravel akan menjadi lebih pendek.

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

Untuk membuat list terseleksi secara default anda dapat menggunakan seperti ini.

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


Itu adalah dasar dasar form dari bawaan framework laravel dan masih banyak yang
lain silahkan ke website laravel.com

MEMBUAT FORM SEDERHANA


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

Pertama buat dahulu file didalam folder views bernama formsederhana.blade.php dan
isikan dengan 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','place


holder'=>'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 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.'< b


r/> Alamat '.$alamat;
}

// Hilangkan spasi antara < dan br/

Lalu buka routes.php dan tambahkan code dibawah ini.

Selesai

Router

Kebanyakan framework PHP melakukan mapping otomatis antara URL


dengan controller . Oleh sebab itu, untuk membuat sebuah halaman, Anda minimal
harus membuat satu buah controller. Tetapi, laravel melakukan pendekatan yang
sedikit berbeda. Mapping URL harus didaftarkan secara manual di
file app/routes.php . Anda bisa me-mapping suatu URL ke sebuah controller , tapi
hal tersebut tidak wajib. Untuk sebuah aksi sederhana, Anda bisa langsung
melakukannya di Router .

Untuk lebih jelasnya, mari kita buat sebuah halaman selamat datang dengan URL
[http://localhost/laravel/public/halo] yang akan menampilkan tulisan Halo bro.
Buka file app/routes.php , lalu tambahkan kode untuk routing:

Route::get('/halo', function()
{
return "Halo, bro";
});

Selesai, buka browser Anda dan ketikkan URL [http://localhost/laravel/public/halo],


Anda sudah berhasil membuat halaman web pertama dengan laravel.
Pada prinsipnya website hanyalah masalah request-response, Anda minta URL apa,
maka server akan memberikan respon yang bersesuaian. Seperti itulah
tugas router , memetakan URL yang diminta ke bagian kode tertentu.

Controller

Dalam konsep MVC biasanya sebuah URL dipetakan ke sebuah controller , dan
karena konsep MVC sudah mendarah daging di kalangan web programmer, maka kita
akan membuat satu halaman lagi dengan url /halo-juga, outputnya mirip, tapi kali ini
menggunakan controller .

Buka kembali file app/routes.php , lalu tambahkan router baru:

Route::get('/halo-juga', 'SiteController@haloJuga');

Penjelasan dari kode di atas, jika ada yang meminta url /halo-juga, maka laravel akan
mengeksekusi fungsi haloJuga() di dalam SiteController . Nah, karena
SiteController-nya belum ada, maka langkah selanjutnya adalah membuat controller .

Tambahkan file baru app/controllers/SiteController.php :

class SiteController extends BaseController {


public function haloJuga()
{
return 'halo juga, bro';
}
}

Buka [http://localhost/laravel/public/halo-juga] dan lihat hasilnya. Selamat, Anda


berhasil membuat halaman kedua dengan laravel, kali ini memanfaatkan controller .

View

Pada contoh di atas, kita cuma menampilkan string sederhana ke browser. Ngomongngomong soal browser, agar kelihatan valid tentunya string tersebut harus dibungkus
dengan tag html yang lengkap, seperti berikut ini:

<html>
<head>
<title>d</title>
</head>
<body>
halo juga, bro
</body>
</html>

Tugas Anda selanjutya adalah memodifkasi contoh yang sudah diberikan, sehingga
bisa menghasilkan tag html yang lengkap.
Hehe, apakah Anda akan memodifikasi kodenya menjadi seperti ini:

public function haloJuga()


{
return '<html><head><title></title></head><body>halo juga, bro</body></html>';
}

Memformat tampilan langsung dari controller jelas tidak menyenangkan, dan


memang tidak dianjurkan. Tampilan adalah tugas front-end developer, dan front-end
developer tidak suka controller , mereka cuma suka view . Untuk menghindari
kebencian mereka, mari kita buatkan view-nya.
Modifikasi kembali fungsi haloJuga() seperti berikut ini:

public function haloJuga()


{
return View::make('halo_juga');
}

Fungsi View::make('nama_file') akan memanggil file view terpisah sesuai nama


yang diberikan. Selanjutnya kita buat file baru app/views/halo_juga.php :

<html>
<head>
<title></title>
</head>
<body>

halo juga, bro


</body>
</html>

Jika Anda ingin menerapkan prinsip satu folder view untuk satu controller, yang
berarti file app/view/halo_juga.php dipindahkan ke app/views/site/halo_juga.php ,
maka kodenya tinggal diedit sedikit menjadi View::make('site.halo_juga') . Tanda
titik (dot) digunakan sebagai separator folder.