Rekayasa Aplikasi Internet 2017 · PDF filePemrograman Berorientasi Obyek dengan PHP dan...
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
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