Rekayasa Aplikasi Internet 2017 · PDF filePemrograman Berorientasi Obyek dengan PHP dan...

of 212 /212
Rekayasa Aplikasi Internet 2017 Pengembangan Aplikasi Web dengan Laravel [email protected]

Embed Size (px)

Transcript of Rekayasa Aplikasi Internet 2017 · PDF filePemrograman Berorientasi Obyek dengan PHP dan...

  • Rekayasa Aplikasi Internet 2017

    Pengembangan Aplikasi Web dengan Laravel

    [email protected]

  • Garis Besar

    1. Laravel, Instalasi dan Struktur Aplikasinya

    2. Pemrograman Berorientasi Obyek dengan PHP dan Laravel

    3. Router dan Controller

    4. View dan Blade Templating

    5. Model, Migrasi dan Seeding

    6. Operasi CRUD

  • 1. Laravel, Instalasi dan StrukturAplikasinya

  • Apa itu Composer?

    Composer adalah suatu software yang mengelola PHP dependencies, tepatnya suatu sistem manajemen paket dan pemuatotomatis (auto loader) paket/kelas yang dibutuhkan.

    Composer memungkinkan kita untuk mendeklarasikan pustaka(library) yang dibutuhkan oleh proyek kita dan composer akanmengelolanya (install/update) untuk kita.

  • Laravel adalah suatu framework PHP Full-Stack (sisi front-end danback-end).

    Laravel punya banyak fitur seperti manajemen sesi (session) manajemen basis data, Composer dan banyak lainnya.

    Software Framework adalah platform re-usable universal untukmengembangkan aplikasi, produk dan solusi perangkat lunak.

    Apa itu Laravel?

  • Laravel mengikuti pola arsitektural model-view-controller (MVC) yang mengharuskan pemisahan antara business logic dari input dan bagian presentasi (tampilan, view) yang diasosiasikan dengansuatu graphical user interface (GUI).

    Pola rancangan MVC sangatlah popular dalam dunia pengembanganaplikasi web.

    MVC dan Laravel

  • Model berbasiskan pada item real-world seperti orang, bank account, atau product tertentu.

    Misal Jika kita membangun suatu blog, modelnya mungkinberupa post dan comment.

    Model biasanya permanen dan akan disimpan di luar aplikasi, seringnya di dalam basis data.

    Suatu model lebih dari sekedar data; Ia memberlakukan semua aturan bisnis yang berlaku untuk data tersebut.

    Sebagai contoh, jika diskon tidak boleh diterapkan pada pesanan kurang dari Rp. 100.000, model ini akan memberlakukan batasan itu.

    Model bertindak sebagai suatu gatekeeper sekaligus data store.

    Model

  • Representasi visual dari suatu model, sesuai dengan konteks yang diberikan.

    Biasanya berupa markup yang oleh framework dirender ke browser, sepertiHTML yang merepresentasikan blog post.

    Layer view bertanggungjawab untuk membangkitkan suatu user interface, normalnya berdasarkan pada data dalam model.

    Sebagai contoh, sebuah toko online akan memiliki daftar produk yang akan ditampilkan di layar katalog. Daftar ini akan dapat diakses melalui model, namun akan menjadi view (tampilan) yang mengakses daftar dari model dan memformatnya untuk pengguna akhir.

    Meskipun view dapat memberikan pengguna dengan berbagai cara untuk memasukkan data, view itu sendiri tidak pernah menangani data yang masuk. Urusan view dilaksanakan saat data akan ditampilkan.

    View

  • controller - Sang koordinator yang menyediakan link antara view danmodelnya.

    Controller bertanggungjawab memroses input, bertindak terhadapmodel, dan memutuskan tindakan apa yang harus dikerjakan, seperti merender suatu view atau mengalihkan ke halaman lain.

    Pada aplikasi blog, controller mungkin mencari komentar terbaru untuk sebuah postingan (model) dan meneruskannya ke view untuk rendering (ditampilkan ke browser).

    Controller

  • Komponen Laravel: Pola MVC

  • Framework PHP Lainnya

    Ada banyak framework PHP lain:

    SymfonyYii FrameworkCodeigniterCakePHPZend FrameworkAura

  • Sekilas Instalasi

    Jadi, rencana umum instalasi kita adalah menginstall Laravel dancomposer pada mesin lokal.

    Kita dapat mengembangkan aplikasi di situ, menjalankan web server pada mesin lokal.

    Tampilkan file-file tersebut pada browser lokal.

  • Instalasi Laravel

    Langkah 1:

    Buka www.laravel.com

    Langkah 2:

    Klik pada Documentation

    http://www.laravel.com/

  • Instalasi Laravel

    Pertama, Install Composer

    Langkah 3:

    Buka www.getcomposer.org

    Langkah 4:

    Klik tombol Download

    Langkah 5:

    Klik dua kali file yang telah didownload: Composer-Setup.exedan ikuti langkah-langkah instalasinya.

    http://www.getcomposer.org/https://getcomposer.org/Composer-Setup.exe

  • Kebutuhan Server Laravel 5.5

    PHP >= 7.0.0

    OpenSSL PHP Extension

    PDO PHP Extension

    Mbstring PHP Extension

    Tokenizer PHP Extension

    XML PHP Extension

  • Instalasi Laravel

    Buka Command Line (cmd)

    Run as Administrator

    Silakan pindah ke direktori dokumen web, misalnya c:\xampp\htdocs

    Jalankan composer untuk otomatisasi ketergantungan global:

    composer global require "laravel/installer"

  • Ketergantungan PHP

    composer global require "laravel/installer

    Itu mengaktifkan PHP dependency. Diperlukan beberapa menituntuk menginstall PHP dependency.

    Kemudian composer akan membangkitkan Autoload Files.

  • Membuat Proyek Baru

    Langkah berikutnya adalah membuat proyek baru.

    Perintah di bawah ini dapat digunakan untuk membuat proyek laravel.

    composer create-project --prefer-dist laravel/laravel rai2017

    Sebutkan nama proyek yang akan dibuat, misalnya rai2017

  • Server Pengembangan Lokal

    Setelah instalasi suatu proyek baru, Laravel membuatkan key untukaplikasi tersebut.

    Untuk memeriksa apakah Laravel sudah terinstall dengan benar, gunakan perintah php artisan serve.

    php artisan serve

    Perintah ini akan memulai suatu server untuk pengembanganaplikasi PHP pada URL http://localhost:8000

    http://localhost:8000/

  • Struktur File dariLaravel

  • Struktur File dari Laravel (1/3)

    app: direktori yang mengandung kerja utama aplikasi kita, inilahfolder dimana kita menempatkan semua model, controller dankelas lainnya.

    bootstrap: digunakan untuk mem-boostrap / men-startup Laravel.

    config: dimana konfigurasi dari aplikasi berada.

    databases: dimana migrasi dan seed disimpan.

    public: tempat meletakkan bagian dari aplikasi yang dapat diaksesoleh publik. Direktori ini juga menjadi rumah bagi aset lain sepertiimages, JavaScript dan CSS.

  • Struktur File dari Laravel (2/3)

    resource: inilah dimana semua view berada. Banyak file yang dapatdilihat pengguna front-end, seolah struktur dari aplikasi, terlihat di dalam folder ini.

    storage: dimana semua file cache dan log berada. Semuanya built-in dengan Laravel misalnya log error dan access.

    test: tergantung, jika anda menggunakan jenis framework unit testing, maka kita dapat meletakkan semua test dalam folder ini.

    vendor: dimana semua pustaka pihak ketiga berada, paket composer di install di sini.

  • Struktur File dari Laravel (3/3)

    File Composer.json: file untuk menentukan paket composer apa yang akan dimasukkan ke dalam aplikasi.

    File .env: file yang berisi konfigurasi koneksi ke suatudatabase dan beberapa konfigurasi lain.

    Routes: Di dalam folder inilah semua rute untuk aplikasiberada: web.php, api.php, console.php dan channels.php

    File Web.php: file dimana di dalamnya semua rute(standard) didefinisikan

  • Laragon

  • Download

  • Zeal

  • Membuat Proyek di Laragon

  • Vue.JS

  • PostgreSQL

  • 2. Pemrograman BerorientasiObyek dengan PHP dan Laravel

  • Obyektif

    MVC sebagaimana yang dianut oleh Laravel adalah OO, sehingga

    Frameworks Web & konsep pentingnya

    Contoh Framework web

    Pola rancangan perangkat lunak Model-View-Controller

    Perbandingan procedural vs OO

    Aspek dari OO dalam PHP Kelas Classes Properti Properties Metode Methods Inheritance Overriding

  • Framework Web

    Mendukung dan memudahkan pengembangan dynamic websites web applications web services

    Menyederhanakan tugas-tugas pengembangan umum seperti AJAX caching data validation database access debugging error handling security session management templating testing URL mapping user management

    Memperkenalkan code reuse (penggunaan ulang kode aplikasi)

    Frameworks merupakan contoh dari rancangan interface, bukan rancangan implementasi.

  • Beberapa Framework Web

    ASP.NET (terutama menggunakan C# atau VB, sedikit J#)

    Flask dan Django (Python)

    Drupal (CMS sebagai framework dan Drupal 8 menggunakan komponensymfony)

    Ruby

    WordPress??????

    Laravel, Yii, CodeIgniter, CakePHP, Zend, Symfony adalah beberapaframework PHP

    Ada banyak (ratusan?) framework tersebar mulai ASP.NET, C++, Java, Perl, PHP, Python s.d Ruby, dll.

    Lihat di http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks

  • Beberapa Framework Web

  • Aplikasi Itu CRUD

    Persistent storage membutuhkan CRUD Create

    Read (Retrieve)

    Update

    Destroy (Delete)

    Dalam istilah SQL: INSERT, SELECT, UPDATE & DELETE

    Program komputer sedikit banyak tapi CRUD

    Sistem informasi berbasis kertas atau computer adalah CRUD

    Arsitektur software MVC mencoba untuk memudahkan ataumengotomatiskan implementasi CRUD

  • Pola Rancangan Software Model-View-Controller

    Model Merepresentasikan perilaku dan data dari aplikasi Menyediakan informasi untuk views (R dari CRUD) Mengubah status ketika diinstruksikan oleh controller (CUD atau CRUD) Mengimplementasikan CRUD

    View Membawa (mengubah) model ke dalam antarmuka pengguna (user interface) Suatu model dapat mempunyai view berbeda untuk tujuan berbeda Views menerjemahkan user interface ke CRUD

    Controller