Framework Laravel


    Assalamualaikum wr wb, pada blog kali ini akhirnya kita memasuki materi framework terutama salah satu framework PHP yaitu Laravel. Setelah sekian lama kita mempelajari PHP dasar dan OOP PHP sudah saatnya kita menuju materi yang lebih jauh yaitu Laravel. Pada blog kali ini yang kita akan pelajari yaitu Penjelasan Mengenai Framework, Macam-macam Framework PHP, Cara Install Laravel , dan lain-lain yang pastinya bakal ada studi kasus. Langsung saja ke materinya

A. PHP Framework   

        Framework adalah sebuah software untuk memudahkan para programer untuk membuat sebuah aplikasi web yang di dalam nya ada berbagai fungsi diantaranya plugin, dan konsep untuk membentuk suatu sistem tertentu agar tersusun dan tersetruktur dengan rapih.

Macam - Macam Framework PHP :





B. 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). Dalam implementasinya kebanyakan framework dalam aplikasi website adalah berbasis arsitektur MVC. MVC memisahkan pengembangan aplikasi berdasarkan komponen utama yang membangun sebuah aplikasi seperti manipulasi data, antarmuka pengguna, dan bagian yang menjadi kontrol dalam sebuah aplikasi web.

C. Laravel
     
           Laravel adalah framework PHP MVC yang dikembangkan oleh Taylor Otwell pada tahun 2011 dan sekarang telah mencapai versi 7 dan dengan slogan laravel “PHP THAT DOESN’T HURT. CODE HAPPY & ENJOY THE FRESH AIR.” Kita akan merasa bahwa pemrograman php itu menyenangkan dan mudah karna Banyak sekali fitur-fitur yang akan sangat membantu kita dalam menulis code.

D. Fitur Laravel Framework 

  • RESTful Routing RESTful adalah cara baru dalam mengelola request seperti GET, POST, PUT, PATCH, DELETE, STORE
  • Composer Composer adalah Depedency Management PHP yang membantu programmer untuk menggunakan library. Semua dependency ini  di host di packagist.org
  • Command Line Tools (Artisan)  Fitur command line untuk memudahkan programmer melakukan beberapa pekerjaan, misalnya membuat database migration, server application, database seeding, creating controller & model dan masih banyak yang lainnya.
  • Beautiful Template Engine Laravel dilengkapi dengan template engine dengan nama Blade Template Engine untuk memudahkan penggabungan kode PHP pada HTML
  • Eloquent ORM Fitur Eloquent ORM (Object Relational Model) memungkinkan penulisan kode yang berhubungan dengan objek (Entitas / Tabel pada Database) dioperasikan menggunakan konsep OOP
  • Database Migration Fitur untuk menjaga histori migrasi database (CREATE, ALTER, DROP), mengaplikasikan migrasi baru ataupun mengembalikannya.

E. Penggunaan Laravel

1. Persiapan  
     
     Pastikan versi PHP pada komputer anda diatas 7.1, cek di PHP Info

     Install Composer terbaru        
     https://getcomposer.org/Composer-Setup.exe

2. Install Laravel via Composer

    Buka cmd dan masukan command dibawah ini



3. Struktur Folder



Folder utama laravel atau disebut dengan ROOT FOLDER

.env yaitu File konfigurasi yang hanya berlaku untuk environment local saja atau dimana file ini berada.

composer.json yaitu File yang berisi kumpulan dependency yang digunakan di project ini. Anda dapat menambahkannya dengan perintah composer require atau langsung menulisnya didalam file ini

folder app yaitu Tempat menyimpan seluruh file yang berhubungan dengan aplikasi yang akan dibangun dan tempat menyimpan file Model

folder config yaitu Tempat menyimpan seluruh file yang berhubungan dengan konfigurasi aplikasi Laravel yang akan dibangun, mulai dari database, tempat menyimpan file hasil upload, konfigurasi untuk melakukan pengiriman email, dan sebagainya.

folder database yaitu Tempat menyimpan seluruh file yang berhubungan dengan database migration dan database seeder

folder public yaitu Tempat menyimpan seluruh file yang nantinya dapat diakses secara publik oleh pengguna. Contohnya: css, js, gambar hasil upload, file selain gambar yang diupload oleh pengguna.

folder resources yaitu Tempat menyimpan seluruh file views dari aplikasi yang akan dibangun. Views menggunakan template engine bernama blade sehingga setiap kali anda membuat file untuk view, maka harus ditambahkan ekstensi .blade

web.php yaitu File yang berisi kumpulan route dari sistem yang akan dibangun. Route ini yang nantinya diakses oleh pengguna dan diarahkan sesuai dengan kode yang kita tulis.











4. Memulai pemogramman menggunakan Laravel

buka cmd di dalam folder laravel kalian dan ketikan php artisan serve , setelah muncul access link yang diberikan di chrome maka akan muncul seperti di bawah :


a. ubah dan tambahkan kodingan di bawah ini kedalam file web.php

Route::get('/'function () {
    return view('welcome');
});

Route::get('/belajar'function(){
    echo'Belajar PHP. Tulisan ini ditampilkan dari Routes';
});


b. setelah ditambahkan , buka link belajar dan hasilnya seperti di bawah ini


c. Bentuk penulisan route

  • Menulis nama-rute tidak boleh menggunakan simbol (!@#$%^&*()~`/.,;:’”)
  • nama-rute tidak boleh mengandung spasi, sebaiknya spasi diganti menggunakan dash (-)
d. Buat file baru di views dengan nama belajar.blade.php yang berisi string, lalu ubah route menjadi seperti di bawah ini :

Route::get('/belajar'function(){
    return view('belajar');
});

maka hasilnya seperti di bawah ini :




5.  Studi Kasus 1 
     
     Buat 3 rute berbeda (bebas) dengan tipe GET berdasarkan bentuk umum penulisan Route

Route::get('/belajar'function(){
    return view('belajar');
});

Route::get('/dummy1'function(){
    return view('dummy1');
});

Route::get('/dummy2'function(){
    return view('dummy2');
});


6. Studi Kasus 2

    Buat 3 views berbeda (bebas) dan panggil view tersebut di route yang sudah anda buat di studi kasus 1, hasilnya di bawah ini :





7. Studi Kasus 3 Analisis

Mengirim data ke view

a. cara 1 : Menggabungkan data dalam satu variabel array asosiatif, sehingga data yang dikirim ke view hanya 1 saja.


Route::get('/belajar'function(){
    
    // cara 1
    $data['nama']   = "Muhammad Fahru";
    $data['gender'] = "Laki -Laki";
    $data['ttl'] = "Bandung 9 September 2003";
    return view('belajar'$data);

});

Analisis

Kelebihan : Saat memanggil data dapat dilakukan dengan mudah, yaitu cukup memanggil variabel $data atau variable dari array, yang dimana maka secara otomatis semua data di variable $data tersebut akan langsung terpanggil. jika kita memliki banyak data cara ini cukup memudahkan dalam pemogramman

Kekurangan : tidak dapat mengambil data sesuai dengan keinginan dan kebutuhan kita karena akan memanggil semua data yang ada di dalam array



b. cara 2 :  Membuat variabel masing-masing untuk data yang akan dikirim ke view, gunakan compact untuk mengirimkan data ke view nyaBerdasarkan PHP documentation, COMPACT( ) adalah sebuah fungsi yang membuat ARRAY berdasarkan isi parameternya.


Route::get('/belajar'function(){
    
    // Cara 2
    $nama   = "Muhammad Ozi";
    $gender = "Laki - Laki";
    $ttl = "Bandung 9 September 2003";
    return view('belajar',compact('nama','gender','ttl'));
    
});

Analisis 

Kelebihan : kita bisa mengambil data sesuai dengan keinginan kita dengan memanggil nama variable yang ingin kita panggil  dengan cara menulis nama variablenya di parameter compact()

Kekurangan : Jika data/variable yang akan dipanggil cukup banyak, cara ini menjadi tidak efisien karena kita harus memanggil semua data secara manual/satu per satu.


Mengirim data ke view belajar dalam bentuk tabel

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        tr { font-size:20pxfont-family:Moon; }
    </style>
</head>
<body>
    <h1>Belajar PHP. Tulisan ini ditampilkan dari Views</h1>
    <table border="1" cellspacing="0" cellpadding="10" width="50%">
        <tr>
            <td>Nama</td>
            <td>:</td>
            <td>{{$nama}}</td>
        </tr>
        <tr>
            <td>Jenis Kelamin</td>
            <td>:</td>
            <td>{{$gender}}</td>
        </tr>
        <tr>
            <td>TTL</td>
            <td>:</td>
            <td>{{$ttl}}</td>
        </tr>        
    </table>
</body>
</html>

Hasilnya akan sama saja cara 1 dan cara 2, seperti di bawah ini :



Kesimpulan 

jadi sebenernya cara 1 dan cara 2 itu sama aja menggunakan array tapi dalam passing data ke view ada yang berbeda yaitu jenis arraynya. Jika disuruh pilih lebih baik menggunakan apa, saya sendiri akan jawab tegantung kebutuhan kita karena cara 1 dan cara 2 mempunyai kelebihannya masing masing



Mungkin cukup sekian materi framework laravel yang dapat saya berikan, semoga bermanfaat dan mohon maaf jika ada kesalahan penulisan. Wassalamualaikum wr wb.