Oleh: Ahmad Syauqi Ahsan

dokumen-dokumen yang mirip
Oleh: Ahmad Syauqi Ahsan

Oleh: Ahmad Syauqi Ahsan

Oleh: Ahmad Syauqi Ahsan

Oleh: Ahmad Syauqi Ahsan

Oleh: Ahmad Syauqi Ahsan

Oleh: Ahmad Syauqi Ahsan

Oleh: Ahmad Syauqi Ahsan

PEMROGRAMAN PHP DASAR

Oleh: Ahmad Syauqi Ahsan

LAPORAN PRAKTIKUM TEKNOLOGI FRAMEWORK PERTEMUAN KE 1

Oleh: Ahmad Syauqi Ahsan

Oleh: Ahmad Syauqi Ahsan

Bagian II Dasar-Dasar CodeIgniter

Konsep dan Teknik Menguasai Modern OOP di PHP. Awan Pribadi Basuki CV. LOKOMEDIA

06/03/2018. Tidak memiliki parameter. Melakukan inisialisasi semua variabel private dengan nilai awal.

Memahami Workflow Zend_Controller dalam Zend Framework (Bag 2)

Pemrograman Web Berbasis Framework. Pertemuan 4 : Konsep MVC : Controller. Hasanuddin, S.T., M.Cs. Prodi Teknik Informatika UAD

Mengembangkan Component Joomla Oleh : Garry B.

protected/views/layouts/main.php adalah template view setiap halaman dalam aplikasi.

Validasi Form dengan CakePHP

PEMROGRAMAN WEB 09 JavaScript Lanjut

OBJECT ORIENTED PROGRAMMING DENGAN PHP. Janitra Panji

MODUL 3 Servlet dan JavaBean

PRAKTIKUM. Rekayasa Web. Modul 2: CRUD CodeIgniter Part I. Laboratorium Teknik Informatika Universitas Pasundan

CODEIGNITER 3. Belajar Mandiri. Zamah Sari

PHP & MYSQL. Universitas Komputer Indonesia 2004 Taryana. S

Pemrograman Berbasis Web

Praktikum Minggu VI 1 dan 2 Dasar-dasar Object Oriented Programming PHP

Materi 2 E-Commerce Lanjut (CodeIgniter) 3 SKS Semester 7 S1 Sistem Informasi UNIKOM 2015 Nizar Rabbi Radliya

Bab 4 Hasil dan Pembahasan

BAB III IMPLEMENTASI DAN PEMBAHASAN

PENERAPAN JAVA SERVER FACES UNTUK DESIGN PATTERN WEB

Advantages. Keunggulan :

Internet II. Pertemuan 4 & 5 Dasar Pemrograman PHP II. Sistem Komputer Universitas Serang Raya - Aditya Wicaksono, SKomp 1

STRUKTUR DASAR PHP ASUMSI 02/10/2014

Pemrograman Web Berbasis Framework. Pertemuan 8 : Penanganan File dan Image. Hasanuddin, S.T., M.Cs. Prodi Teknik Informatika UAD

Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno

MODUL PEMOGRAMAN WEB II STMIK IM BANDUNG MODUL PEMOGRAMAN WEB II. Oleh: CHALIFA CHAZAR. Chalifa Chazar edu.script.id

BAB 4 IMPLEMENTASI DAN EVALUASI. perangkat keras yang dibutuhkan pengguna maupun pengembang web serta penjelasan

STMIK DIKTAT SINGKAT MACROMEDIA DREAMWEAVER 8 SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER TASIKMALAYA.

BAB III METODOLOGI PENELITIAN

Pengenalan OOP. Object-Oriented programming (OOP) Menitikberatkan pada konsep object sebagai elemen dasar dari program.

Mengenal Codeigniter (CI) Framework

User interface & XML Layout

BAB III ANALISA DAN DESAIN SISTEM

MODUL 1 PENGENALAN OOP

SMH2D3 Web Programming. 7 BAB V PHP SESSION & COOKIES. H a l IDENTITAS. Kajian Teknik pemrograman menggunakan PHP

MODUL 8 Insert, Update, & delete

Modul-7 CRUD & Searching. Pemograman Web TEKNIK INFORMATIKA UNIVERSITAS PASUNDAN BANDUNG

1.1 Mengenal Visual Basic (VB) 1.2 Mengenal Integrated Development Environment (IDE) VB 6

MODUL PEMOGRAMAN WEB II STMIK IM BANDUNG MODUL PEMOGRAMAN WEB II. Oleh: CHALIFA CHAZAR. Chalifa Chazar edu.script.id

Pemrograman Web Berbasis Framework. Pertemuan 5 : Konsep MVC : View. Hasanuddin, S.T., M.Cs. Prodi Teknik Informatika UAD

Eksekusi file setup.exe yang ada dalam CD atau folder instalasi oracle.

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK (JAVA) PERTEMUAN 1 PENGENALAN LINGKUNGAN PEMROGRAMAN JAVA

BAB III ANALISIS DAN DESAIN SISTEM

Pengenalan JavaScript

3.1 APLIKASI YANG DITANGANI OLEH CODE GENERATOR

Belajar dasar codeigniter framework

Bab 2 Tinjauan Pustaka 2.1 Kajian Pustaka

Pengembangan Aplikasi Menggunakan Framework Code Igniter 3 Level Basic. Helmy Faisal Muttaqin, S.Kom, M.T

Pemrograman Java III

BAB IV ANALISIS DAN PERANCANGAN SISTEM

TUTORIAL CODEIGNITER Langkah Tepat menjadi Web Developer Handal, menguasai CodeIgniter, jalan membuat aplikasi berbasis website lebih mudah

MODUL 11 PHP&MYSQL UPDATE & SEARCHING

Modul II Object Oriented Programming

MODUL 2 PERANCANGAN INTERFACE

Pemrograman PHP Lanjut. Ahmad Zainudin, S.ST Pemrograman Internet

MODUL VII PEMROGRAMAN BERORIENTASI OBJEK

Class & Object 2 ~Praktikum~ Imam Fahrur Rozi

Step-Step dalam pembuatan Web

MODUL 3. Inheritance, Abstract Class, Interface TUJUAN PRAKTIKUM LANDASAN TEORI. A. Inheritance

BAB III ANALISIS DAN PERANCANGAN

BAB VII DASAR-DASAR PHP

USER MANUAL SUB PORTAL PUBLIK BUMN

Pemrograman Web Berbasis Framework. Pertemuan 6 : Konsep MVC : Model. Hasanuddin, S.T., M.Cs. Prodi Teknik Informatika UAD

Modul 6 Function dan Trigger

Cara Mudah Setup dan Memakai Framework PHP YII

CodeIgniter.

Otodidak VBA MS Excel untuk Pemula

Tutorial CakePHP Dasar Part III - Sorting, Pagination

Pemrograman Java III

BAB IX COOKIE DAN SESSION

MySQL Databases. Dasar-dasar MySQL dan Implementasi MySQL kedalam pemrograman PHP. Jakarta, 16 April 2011 Oleh: M. Awaludin, S.Kom

Pemrograman Web. Object Oriented Programming in PHP 5

Dokumentasi API Fadli Muharram

BAB II TINJAUAN PUSTAKA DAN DASAR TEORI. dilakukan dengan menggunakan teknologi yang berbeda beda. Selain itu terdapat

Pengantar. Persyaratan Sistem. Cara Menginstall

BAB II TINJAUAN PUSTAKA DAN DASAR TEORI. Beberapa penelitan yang terkait dengan penelitian ini adalah

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

[Tutorial VB6] Bab 4 Penggunaan Data dan Variabel

BAB 1 PEMROGRAMAN BERORIENTASI OBJEK

Menangani Input dari User

Pemrograman Lanjut. Interface

Panduan Pendampingan Sistem Integrasi JDIHN

TUTORIAL CONTENT MANAGEMENT SYSTEM WEB HOSTING JOOMLA

Membuat Tabel. Tahapan membuat tabel menggunakan Microsoft Access 2007 : 1. Pilih menu create >> table. Microsoft Office Access Field.

BAHASA PEMROGRAMAN JAVA

Pemrograman Web. Model View Controller. Adam Hendra Brata

Pemrograman Lanjut. Instance Variable Access Modifier Set dan Get Method

Transkripsi:

Oleh: Ahmad Syauqi Ahsan

Aplikasi Yii2 merupakan aplikasi yang menganut konsep Object Oriented Programming yang dibangun menggunakan Components Components merupakan sebuah (extended) class/objek dari yii\base\component. use yii\jui\datepicker; Yii application pun sebenarnya juga merupakan sebuah komponen. (Yii application dapat diakses melalui \Yii::$app) Class/objek komponen pada Yii2 adalah objek PHP dengan tambahan tiga fitur utama, yaitu: Properties Events Behaviors Salah satu contoh komponen adalah DatePicker widget. (lihat gambar disamping) Komponen ini dapat digunakan dengan mudah di view untuk memilih tanggal secara interaktif. Properti dari komponen juga dapat diubah dengan mudah untuk menyesuaikan konfigurasinya. echo DatePicker::widget([ 'language' => 'ru', 'name' => 'country', 'clientoptions' => [ 'dateformat' => 'yy-mm-dd', ], ]); Components di Yii2 sangat powerful, namun membutuhkan sumber daya (CPU & memory) yang cukup besar. Jika class/objek komponen yang anda buat tidak membutuhkan events dan behaviors, anda dapat membuatnya dengan meng-extend yii\base\object (instead of yii\base\component). 2

Jika diperlukan, anda dapat membuat custom component sendiri, dengan cara: Buat sebuah file php yang berisi custom component anda dan letakkan di directory components (buat jika belum ada). Tambahkan komponen anda kedalam file konfigurasi (web.php) Anda dapat memanggil custom component anda melalui \Yii::$app->nama_komponen $config = [ 'id' => 'basic', 'basepath' => dirname( DIR ), 'bootstrap' => ['log'], 'components' => [ 'mycomponent' => [ 'class' => 'app\components\mycomponent', ], //... // Inside some view <h2> Header: <?php \Yii::$app->myComponent->welcome()?> </h2> //... 3

// MyComponent.php <?php namespace app\components; use yii\base\component; Pada PHP, variable di dalam sebuah class (objek) juga disebut properties. Yii2 mengenalkan sebuah cara penanganan properties menggunakan method getter dan setter. Method getter adalah method yang namanya dimulai dengan kata get. Sedangkan setter dimulai dengan kata set. Anda dapat mengakses method getter atau setter ini seperti mengakses sebuah property biasa, dengan menggunakan kata setelah kata get ataupun set merupakan (lihat contoh disamping) Dengan getter dan setter, anda dapat membuat sebuah property pada class memiliki karakteristik tertentu. Misal: anda dapat membuat sebuah string property yang isinya selalu huruf kecil. Untuk membuat class (objek) yang memiliki kemampuan ini, anda harus meng-extend class tersebut dari yii\base\object. }?> class MyComponent extends Component { public $label1; private $_label2; public function getlabel2(){ return $this->_label2; } public function setlabel2($value){ $this->_label2 = strtolower($value); } Yii::$app->myComponent->label1 = 'My Label1'; echo "Label1: ". Yii::$app->myComponent->label1; echo "<br/>"; Yii::$app->myComponent->label2 = 'My Label2'; echo "Label1: ". Yii::$app->myComponent->label2; 4

Event dapat diartikan sebagai suatu kejadian. Dengan Event memungkinkan kita memasukkan kode program tertentu kedalam kode program lainnya di sembarang tempat. Sebuah Event dapat dikaitkan (attach) dengan satu atau lebih Event Handler. Event Handler adalah method yang akan secara otomatis dijalankan ketika sebuah Event terjadi (triggered). Contoh penggunaan Event: Anda ingin menghitung jumlah pengguna yang mengakses route "item/index" dan "item/create" Anda ingin aplikasi mengirimkan email ke admin jika ada pengguna yang menghapus data Anda ingin membuat notifikasi jika ada user baru. Dan lain-lain 5

1. Definisikan Event Definisi event akan lebih baik menggunakan konstanta (const) untuk menghindari kesalahan penulisan 2. Buat sebuah method yang berisi hal-hal yang akan dikerjakan jika terjadi suatu Event. Method ini disebut sebagai Event Handler. 3. Kaitkankan (attach) Event ke Event Handler 4. Trigger the Event menggunakan method trigger() 6

Dengan behaviors anda dapat meningkatkan kemampuan sebuah komponen tanpa harus mengubah komponen tersebut. Anda dapat meng-attach behaviors pada component dengan tehnik statically atau dynamically. Statically: anda dapat meng-attach behavior pada sebuah component dengan meng-override method behaviors(). Dynamically: anda dapat meng-attach behavior pada sebuah component dengan memanggil method attachbehavior(). class SiteController extends Controller{ // Attach behavior statically in Controller public function behaviors() { return [ 'access' => [ 'class' => AccessControl::className(), 'only' => ['logout'], 'rules' => [ [ 'actions' => ['logout'], 'allow' => true, 'roles' => ['@'], ], ], ], ]; } //... use app\components\mybehavior; // attach a behavior object dynamically $component->attachbehavior('mybehavior1', new MyBehavior); // attach a behavior class dynamically $component->attachbehavior('mybehavior2', MyBehavior::className()); 7

Yii2 menyediakan beberapa built-in behavior, diantaranya: class Item extends \yii\db\activerecord { // Attach behavior statically in Model public function behaviors() { return [ \yii\behaviors\timestampbehavior::classname(), \yii\behaviors\blameablebehavior::classname(), ]; } //... AccessControl behavior (contoh pada slide sebelumnya): digunakan untuk memfilter hak akses pengguna terhadap controller action. Timestamp behavior (contoh disamping): digunakan untuk mencatat waktu pembuatan dan perubahan data di table secara otomatis. Anda perlu membuat kolom created_at dan updated_at dengan tipe data int pada table terkait Blameable behavior (contoh disamping): digunakan untuk mencatat user_id yang melakukan pembuatan ataupun perubahan data di table secara otomatis. Anda perlu membuat kolom created_by dan updated_by dengan tipe data int pada table terkait 8

Configurations banyak digunakan ketika membuat objek baru ataupun menginisialisasi objek yang sudah ada. Format dari sebuah configuration dapat dideskripsikan dalam bentuk array seperti berikut: [ 'class' => 'ClassName', 'propertyname' => 'propertyvalue', 'on eventname' => $eventhandler, 'as behaviorname' => $behaviorconfig, ] Configuration untuk Yii application merupakan salah satu bentuk configuration yang sangat komplek. Sebagian besar dari widget juga dibentuk menggunakan configuration. 9

Alias digunakan untuk merepresentasikan path maupun URL. Sebuah alias harus dimulai dengan karakter @ Untuk mendefinisikan alias dapat anda lakukan dengan cara: // an alias of a file path Yii::setAlias('@foo', '/path/to/foo'); // an alias of a URL Yii::setAlias('@bar', 'http://www.example.com'); Anda juga dapat mendefinisikan alias berdasarkan alias yang lain Yii::setAlias('@foobar', @foo/bar'); 10

Alias juga dapat didefinisikan pada application s configuration (web.php) 'aliases' => [ '@foo' => '/path/to/foo', '@bar' => 'http://www.example.com', ], Untuk menggunakan alias dapat anda lakukan dengan memanggil method Yii::getAlias(). Contoh: echo Yii::getAlias('@foo'); // displays: /path/to/foo echo Yii::getAlias('@bar'); // displays: http://www.example.com echo Yii::getAlias('@foo/bar/file.php'); // displays: /path/to/foo/bar/file.php Di beberapa tempat, alias dapat digunakan tanpa harus memanggil method Yii::getAlias(). Contoh: $cache = new FileCache([ 'cachepath' => '@runtime/cache', ]); 11

@yii, the directory where the BaseYii.php file is located (also called the framework directory). @app, the base path of the currently running application. @runtime, the runtime path of the currently running application. Defaults to @app/runtime. @webroot, the web root directory of the currently running web application. It is determined based on the directory containing the entry script. @web, the base URL of the currently running Web application. It has the same value as yii\web\request::$baseurl. @vendor, the Composer vendor directory. Defaults to @app/vendor. @bower, the root directory that contains bower packages. Defaults to @vendor/bower. @npm, the root directory that contains npm packages. Defaults to @vendor/npm. 12

Aplikasi Yii bergantung pada mekanisme class autoloading untuk mengikutsertakan class-class yang dibutuhkan Autoloader dipasang ketika anda meng-include-kan file Yii.php Secara default, Yii menggunakan dua class autoloader, yaitu Composer autoloader dan Yii autoloader, yang diletakkan pada entry script (file index.php). Jika anda menggunakan beberapa class autoloader, pastikan Yii autoloader ditempatkan paling akhir. 13

Gunakan Event untuk melakukan pencatatan data statistic. Trigger Event ini di action index dan view pada frontend application! (Langkah ini untuk menggantikan mekanisme yang sama pada latihan sebelumnya) Tambahkan Timestamp dan Blameable behavior pada model Item! 14

15